Tải bản đầy đủ (.ppt) (23 trang)

BÁO CÁO MÔN HỆ THỐNG CHỨNG THỰC SỐ PKCS 4 : CÚ PHÁP CHÍNH MẬT MÃ HÓA CÔNG KHAI RSA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (611.01 KB, 23 trang )

ĐỀ TÀI THUYẾT TRÌNH
MÔN : HỆ THỐNG CHỨNG THỰC SỐ
PKCS 4 : CÚ PHÁP CHÍNH MẬT MÃ HÓA
CÔNG KHAI RSA
SV THỰC HiỆN :
VÒNG XỊT TẦY MSSV:07520311
NGUYỄN HUY BÌNH MSSV:07520027
MụC LụC
1. Một số khái niệm cơ bản về mã hóa
2. Mô hình mã hóa cơ bản
3. Mô tả sơ lượt thuật toán rsa
4. Hệ mã công khai
1. Tạo khóa
2. Mã hóa
3. Giải mã
5. Ví dụ
6. Tạo chữ ký số cho văn bản
7. Các vấn đề đặt ra trong thực tế
1. Quá trình tạo khóa
2. Tốc độ
3. Phân phối khóa
8. 8. Mã hóa đối xứng VS mã hóa bất đối xứng
1. M T S KHÁI NI M C B N V MÃ Ộ Ố Ệ Ơ Ả Ề
HÓA

L ch s c a m t mã h c đã có t r t s m, ban ị ử ủ ậ ọ ừ ấ ớ
đ u con ng i c g ng tìm m t cách đ b o v ầ ườ ố ắ ộ ể ả ệ
thông tin, tránh vi c thông tin b gi i mã khi ệ ị ả
ng i khác có đ c chúng. ườ ượ

Các h m t mã c đi n đ c s d ng nhi u ệ ậ ổ ể ượ ử ụ ề


nh ng d n d n chúng b c l m t h n ch l n. ư ầ ầ ộ ộ ộ ạ ế ớ
Do các cách mã hóa đ u d a trên ph ng pháp ề ự ươ
mã khóa bí m t, khi g i b n mã đi thì c n ph i ậ ử ả ầ ả
g i kèm theo c cách gi i mã. Bên c nh đó, n u ử ả ả ạ ế
cách mã hóa là quen thu c ho c đ n gi n thì ộ ặ ơ ả
ng i có đ c thông tin đã b mã hóa có th ti n ườ ượ ị ể ế
hành các cách đ dò ra lu t mã hóa đ có đ c ể ậ ể ượ
văn b n g c.ả ố
2. MÔ HÌNH MÃ HÓA C B NƠ ả
Các mô hình mã hóa có chung m t s thu t ng ộ ố ậ ữ
nh sau:ư

B n rõ: ả Là n i dung c a thông đi p c n g i đi ộ ủ ệ ầ ử
và c n đ c b o v an toàn. Nó có th là xâu các ầ ượ ả ệ ể
bít, các file văn b n, các file có c u trúc.ả ấ

Mã hoá: Là quá trình x lý thông đi p c n b o ử ệ ầ ả
m t tr c khi g i đi.ậ ướ ử

B n mã: ả Là k t qu thu đ c khi mã hóa b n rõ ế ả ượ ả
theo qui trình mã hóa c a ph ng pháp đang ủ ươ
đ c ch n.ượ ọ

Gi i mã: ả Là quá trì nh x lý ng c, ti n hành ử ượ ế
gi i mã b n mã đ thu l i b n rõ.ả ả ể ạ ả
3. MÔ T S L T THU T TOÁN RSAả Ơ Ượ ậ

Thuật toán RSA có hai khóa: khóa công khai (hay khóa
công cộng) và khóa bí mật (hay khóa cá nhân). Mỗi khóa
là những số cố định sử dụng trong quá trình mã hóa và

giải mã. Khóa công khai được công bố rộng rãi cho mọi
người và được dùng để mã hóa. Những thông tin được
mã hóa bằng khóa công khai chỉ có thể được giải mã
bằng khóa bí mật tương ứng.

Nói cách khác, mọi người đều có thể mã hóa nhưng chỉ
có người biết khóa cá nhân (bí mật) mới có thể giải mã
được.
3 MÔ T S L T THU T TOÁN RSAả Ơ Ượ ậ

Ta có thể mô phỏng trực quan một hệ mật mã khoá công khai
như sau : Bob muốn gửi cho Alice một thông tin mật mà Bob
muốn duy nhất Alice có thể đọc được. Để làm được điều này,
Alice gửi cho Bob một chiếc hộp có khóa đã mở sẵn và giữ lại
chìa khóa.

Bob nhận chiếc hộp, cho vào đó một tờ giấy viết thư bình
thường và khóa lại (như loại khoá thông thường chỉ cần sập
chốt lại, sau khi sập chốt khóa ngay cả Bob cũng không thể
mở lại được-không đọc lại hay sửa thông tin trong thư được
nữa).

Sau đó Bob gửi chiếc hộp lại cho Alice. Alice mở hộp với chìa
khóa của mình và đọc thông tin trong thư. Trong ví dụ này,
chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìa
khóa chính là khóa bí mật.
4. H MÃ CÔNG KHAIệ





4.1 T O KHÓAạ
1. Ch n 2 s nguyên t l n p và q v i p ≠ q, l a ọ ố ố ớ ớ ự
ch n ng u nhiên và đ c l p.ọ ẫ ộ ậ
2. Tính: n = pq.
3. Tính: giá tr hàm s le ị ố Ơ
φ
(n) = (p - 1)(q – 1) .
4. Ch n m t s t nhiên ọ ộ ố ự e sao cho 1 < e <
φ
(n) và
là s nguyên t cùng nhau v i ố ố ớ
φ
(n).
5. Tính: d sao cho : de 1 .≡
4.1 T O KHÓAạ
Khóa công khai bao g m:ồ

n, môđun, và

e, s mũ công khai (cũng g i là ố ọ s mũ mã hóaố ).
Khóa bí m tậ bao g m:ồ

n, môđun, xu t hi n c trong khóa công khai và ấ ệ ả
khóa bí m t, vàậ

d, s mũ bí m t (cũng g i là ố ậ ọ s mũ gi i mãố ả ).
4.2 MÃ HÓA

Gi s Bob mu n g i đo n thông tin ả ử ố ử ạ M cho Alice.

Đ u tiên Bob chuy n ầ ể M thành m t s ộ ố m < n theo
m t hàm có th đ o ng c (t ộ ể ả ượ ừ m có th xác đ nh ể ị
l i ạ M) đ c th a thu n tr c.ượ ỏ ậ ướ

Các chu n PKCS đ c thi t k đ th c hi n ẩ ượ ế ế ể ự ệ
công vi c chuy n đ i trên tr c khi mã hóa b ng ệ ể ổ ướ ằ
RSA b ng cách b sung thêm bít vào M. Các ằ ổ
ph ng pháp chuy n đ i c n đ c thi t k c n ươ ể ổ ầ ượ ế ế ẩ
th n đ tránh nh ng d ng t n công ph c t p ậ ể ữ ạ ấ ứ ạ
t n d ng kh năng bi t tr c đ c c u trúc c a ậ ụ ả ế ướ ượ ấ ủ
b n rõ.ả
4.2 MÃ HÓA

Lúc này Bob có m và bi t ế n cũng nh ư e do Alice
g i. Bob s tính ử ẽ c là b n mã hóa c a ả ủ m theo công
th c:ứ
c = m
e
mod n

Hàm trên có th tính d dàng s d ng ph ng ể ễ ử ụ ươ
pháp tính hàm mũ (theo môđun) b ng (thu t ằ ậ
toán bình ph ng và nhân) Cu i cùng Bob ươ ố
g i ử c cho Alice.
4.3 GI I MÃả

Alice nh n ậ c t Bob và bi t khóa bí m t ừ ế ậ d. Alice
có th tìm đ c ể ượ m t ừ c theo công th c sau:ứ

m = c

d
mod n

Bi t ế m, Alice tìm l i ạ M theo ph ng pháp đã ươ
th a thu n tr c. Quá trình gi i mã ho t đ ng ỏ ậ ướ ả ạ ộ
vì ta có

c
d
(m≡
e
)
d
m≡
ed

Do ed 1 (mod ≡ p-1) và ed 1 (mod ≡ q-1),
(theo Đ nh lý Fermat nh ) nên:ị ỏ

m
ed
m (mod p) và m≡
ed
m (mod q)≡

Do p và q là hai s nguyên t cùng nhau, áp ố ố
d ng đ nh lý s d Trung Qu c, ta có:ụ ị ố ư ố

m
ed

m (mod pq) hay c≡
d
m (mod n)≡
5. VÍ Dụ

Sau đây là m t ví d v i nh ng s c th . đây ộ ụ ớ ữ ố ụ ể Ở
chúng ta s d ng nh ng s nh đ ti n tính ử ụ ữ ố ỏ ể ệ
toán còn trong th c t ph i dùng các s có giá tr ự ế ả ố ị
đ l n. L y:ủ ớ ấ

p = 61 :s nguyên t th nh t (gi bí m t ho c ố ố ứ ấ ữ ậ ặ
h y sau khi t o khóa)ủ ạ

q = 53 :s nguyên t th hai (gi bí m t ho c ố ố ứ ữ ậ ặ
h y sau khi t o khóa)ủ ạ

n = pq = 3233: môđun (công b công khai)ố

e = 17 :s mũ công khaiố

d = 2753 :s mũ bí m tố ậ
5. VÍ Dụ

Khóa công khai là c p (ặ e, n). Khóa bí m t là ậ d. Hàm mã
hóa là:
encrypt(m) = m
e
mod n = m
17
mod 3233 v i ớ m là văn b n rõ. ả


Hàm gi i mã là:ả
decrypt(c) = c
d
mod n = c
2753
mod 3233 v i ớ c là văn b n mã.ả

Đ mã hóa văn b n có giá tr 123, ta th c hi n phép tính:ể ả ị ự ệ
encrypt(123) = 123
17
mod 3233 = 855

Đ gi i mã văn b n có giá tr 855, ta th c hi n phép tính:ể ả ả ị ự ệ
decrypt(855) = 855
2753
mod 3233 = 123

C hai phép tí nh trên đ u có th đ c th c hi n hi u qu ả ề ể ượ ự ệ ệ ả
nh gi i thu t bình ph ng và nhân.ờ ả ậ ươ
6. TạO CHữ KÝ Số CHO VĂN BảN

Thuật toán RSA còn được dùng để tạo chữ ký số cho văn bản.
Giả sử Alice muốn gửi cho Bob một văn bản có chữ ký của
mình. Để làm việc này, Alice tạo ra một giá trị băm (hash
value) của văn bản cần ký và tính giá trị mũ d mod n của nó
(giống như khi Alice thực hiện giải mã). Giá trị cuối cùng
chính là chữ ký điện tử của văn bản đang xét. Khi Bob nhận
được văn bản cùng với chữ ký điện tử, anh ta tính giá trị
mũ emod n của chữ ký đồng thời với việc tính giá trị băm của

văn bản. Nếu 2 giá trị này như nhau thì Bob biết rằng người
tạo ra chữ ký biết khóa bí mật của Alice và văn bản đã không
bị thay đổi sau khi ký.

Cần chú ý rằng các phương pháp chuyển đổi bản rõ
(như RSA-PSS) giữ vai trò quan trọng đối với quá trình mã
hóa cũng như chữ ký điện tử và không được dùng khóa chung
cho đồng thời cho cả hai mục đích trên.
7. AN TOÀN

Tại thời điểm năm 2005, số lớn nhất có thể được phân tích ra thừa
số nguyên tố có độ dài 663 bít với phương pháp phân tán trong khi
khóa của RSA có độ dài từ 1024 tới 2048 bít. Một số chuyên gia
cho rằng khóa 1024 bít có thể sớm bị phá vỡ (cũng có nhiều người
phản đối việc này). Với khóa 4096 bít thì hầu như không có khả
năng bị phá vỡ trong tương lai gần.

Năm 2010, các nhà khoa học thuộc Đại học Michigan đã công bố
phát hiện một kẽ hở trong hệ thống mật mã hoá RSA. Cách phá vỡ
hệ thống, lấy khoá bí mật RSA 1024 bit chỉ trong vài ngày thay vì
vài năm nếu tấn công theo cách thông thường - tấn công bằng brute
force (dò tìm lần lượt). Các nhà khoa học tạo một điện thế lớn để
gây lỗi hệ thống, từ đó giúp tìm ra khoá bí mật. Việc tấn công được
thực hiện trên một FPGA.

Vì vậy hiện nay người ta khuyến cáo sử dụng khóa có độ dài tối
thiểu 2048 bít.
7. CÁC VấN Đề ĐặT RA TRONG THựC Tế:
7.1 QUÁ TRÌNH T O KHÓAạ


Việc tìm ra 2 số nguyên tố đủ lớn p và q thường được thực
hiện bằng cách thử xác suất các số ngẫu nhiên có độ lớn phù
hợp (dùng phép kiểm tra nguyên tố cho phép loại bỏ hầu hết
các hợp số).

p và q còn cần được chọn không quá gần nhau để phòng
trường hợp phân tích n bằng phương pháp phân tích Fermat.
Ngoài ra, nếu p-1 hoặc q-1 có thừa số nguyên tố nhỏ
thì n cũng có thể dễ dàng bị phân tích và vì thế p và q cũng
cần được thử để tránh khả năng này.

Bên cạnh đó, cần tránh sử dụng các phương pháp tìm số ngẫu
nhiên mà kẻ tấn công có thể lợi dụng để biết thêm thông tin về
việc lựa chọn (cần dùng các bộ tạo số ngẫu nhiên tốt). Yêu
cầu ở đây là các số được lựa chọn cần đồng thời ngẫu nhiên
và không dự đoán được.
7.2 T C Đố ộ

RSA có tốc độ thực hiện chậm hơn đáng kể so
với DES và các thuật toán mã hóa đối xứng khác. Trên
thực tế, Bob sử dụng một thuật toán mã hóa đối xứng
nào đó để mã hóa văn bản cần gửi và chỉ sử dụng RSA
để mã hóa khóa để giải mã (thông thường khóa ngắn hơn
nhiều so với văn bản).

Phương thức này cũng tạo ra những vấn đề an ninh mới.
Một ví dụ là cần phải tạo ra khóa đối xứng thật sự ngẫu
nhiên. Nếu không, kẻ tấn công (thường ký hiệu là Eve)
sẽ bỏ qua RSA và tập trung vào việc đoán khóa đối
xứng.

7.3 PHÂN PH I KHÓAố

Cũng giống như các thuật toán mã hóa khác, cách thức phân phối
khóa công khai là một trong những yếu tố quyết định đối với độ an
toàn của RSA. Quá trình phân phối khóa cần chống lại được tấn
công đứng giữa (man-in-the-middle attack). Giả sử Eve có thể gửi
cho Bob một khóa bất kỳ và khiến Bob tin rằng đó là khóa (công
khai) của Alice. Đồng thời Eve có khả năng đọc được thông tin trao
đổi giữa Bob và Alice. Khi đó, Eve sẽ gửi cho Bob khóa công khai
của chính mình (mà Bob nghĩ rằng đó là khóa của Alice).

Sau đó, Eve đọc tất cả văn bản mã hóa do Bob gửi, giải mã với khóa
bí mật của mình, giữ 1 bản copy đồng thời mã hóa bằng khóa công
khai của Alice và gửi cho Alice. Về nguyên tắc, cả Bob và Alice đều
không phát hiện ra sự can thiệp của người thứ ba. Các phương pháp
chống lại dạng tấn công này thường dựa trên các chứng thực khóa
công khai (digital certificate) hoặc các thành phần của hạ tầng khóa
công khai (public key infrastructure - PKI).
8. MÃ HÓA Đ I X NG VS MÃ HÓA ố ứ
B T Đ I X NGấ ố ứ

Các ph ng pháp mã hóa quy c có u đi m x lý r t ươ ướ ư ể ử ấ
nhanh so v i các ph ng pháp mã hóa khóa công c ng. ớ ươ ộ

Do khóa dùng đ mã hóa cũng đ c dùng đ gi i mã ể ượ ể ả
nên c n ph i gi bí m t n i dung c a khóa và mã khóa ầ ả ữ ậ ộ ủ
đ c g i là khóa bí m t (secret key). Ngay c trong ượ ọ ậ ả
tr ng h p khóa đ c trao đ i tr c ti p thì mã khóa ườ ợ ượ ổ ự ế
này v n có kh năng b phát hi n. V n đ khó khăn ẫ ả ị ệ ấ ề
đ t ra đ i v i các ph ng pháp mã hóa này chính là bài ặ ố ớ ươ

toán trao đ i mã khóa. ổ
8. MÃ HÓA Đ I X NG VS MÃ HÓA ố ứ
B T Đ I X NGấ ố ứ
6 4
1 2 8
2 5 6
5 1 2
1 K
2 K
4 K
Ñ o ä d a øi m a õ k h o ùa ( b i t s )
C h i p h í
Đồ thị so sánh chi phí công phá khóa bí mật
và khóa công cộng
8. MÃ HÓA Đ I X NG VS MÃ HÓA ố ứ
B T Đ I X NGấ ố ứ

Khóa công c ng d b t n công h n khóa bí m t. ộ ễ ị ấ ơ ậ

Đ tìm ra đ c khóa bí m t, ng i gi i mã c n ph i có ể ượ ậ ườ ả ầ ả
thêm m t s thông tin liên quan đ n các đ c tính c a ộ ố ế ặ ủ
văn b n ngu n tr c khi mã hóa đ tìm ra manh m i ả ồ ướ ể ố
gi i mã thay vì ph i s d ng ph ng pháp vét c n mã ả ả ử ụ ươ ạ
khóa.

Ngoài ra, vi c xác đ nh xem thông đi p sau khi gi i mã ệ ị ệ ả
có đúng là thông đi p ban đ u tr c khi mã hóa hay ệ ầ ướ
không l i là m t v n đ khó khăn. ạ ộ ấ ề

Đ i v i các khóa công c ng, vi c công phá hoàn toàn có ố ớ ộ ệ

th th c hi n đ c v i đi u ki n có đ tài nguyên và ể ự ệ ượ ớ ề ệ ủ
th i gian x lý. ờ ử
THANK FOR LISTENING

×