Các hình thức tấn công đối với mã hóa RSA

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị smartphone (Trang 26)

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 nhố ẫ iên có độ ớ l n phù h p và p và q 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 s nguyên t nh ế ặ ừa ố ố ỏ 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

2.2.5.2. Tấn công liên quan đến tốc độ

RSA có tốc độ c hi n chthự ệ ậ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 để ải mã (thông thườ gi ng khóa ngắn hơn nhiều so với văn bản)

2.2.5.3. T n công vào quá trình phân ph i khoá ấ

Quá trình phân ph i khóa c n ch ng lố ầ ố ại được tấn công đứng giữa (man- - -middle in the 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 Eve có kh ời ả 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 đọ ấ ả văn bảc t t c 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)

2.2.5.4. T n công d a trên thấ ời gian

N u k t n công nế ẻ ấ ắm đủ thông tin v ph n c ng th c hi n mã hóa và ề ầ ứ ự ệ xác định được th i gian giờ ải mã đố ới v i một số ả b n mã l a ch n thì có ự ọ thể nhanh chóng tìm ra khóa d. D ng t n công này có th ạ ấ ểáp dụng đối với hệ ng ch thố ữ ký điệ ử ử ụn t s d ng RSA. M t d ng t n công th c t : phân tích th a s RSA dùng m ng máy tính (Máy ch ộ ạ ấ ự ế ừ ố ạ ủ web dùng SSL)

Để ch ng l i t n công d a trên thố ạ ấ ự ời gian là đảm b o quá trình gi mã luôn di n ra ả ải ễ trong thời gian không đổ ấ ể văn bải b t k n mã

2.2.5.5. T n công l a ch n thích nghi b n mã ấ

D ng t n công lạ ấ ựa chọn thích nghi b n mã (adaptive chosen ciphertext attack) có th ả ể thực hi n trên th c t i v i mệ ự ế đố ớ ột văn bản mã hóa bằng RSA. Văn bản này được mã hóa d a trên tiêu chu n PKCS #1 v1, m t tiêu chu n chuyự ẩ ộ ẩ ển đổ ải b n rõ có kh ả năng ki m tra tính h p l cể ợ ệ ủa văn bản sau khi gi i mã. Do nh ng khi m khuyả ữ ế ết của PKCS #1, Bleichenbacher có th c hi n m t t n công lên b n RSA dùng cho giao thểthự ệ ộ ấ ả ức SSL (tìm được khóa phiên). Do phát hi n này, các mô hình chuyệ ển đổi an toàn hơn như chuyển đổi mã hóa bất đối x ng tứ ối ưu (Optimal Asymmetric Encryption Padding) được khuy n cáo s d ng. ng th i phòng nghiên c u cế ử ụ Đồ ờ ứ ủa RSA cũng đưa ra phiên bản mới của

PKCS #1 có kh ả năng chống lại dạng t n công nói trên. ấ

2.3. CHỮ KÝ S RSA Ố 2.3.1. Đặt vấn đề

Trong trao đổi thông tin, thông điệp được truyền đi giữa bên g i và bên nh n c n có ử ậ ầ các tiêu chu n c n xác miẩ ầ nh, đó chính là xác thực. Xác th c thông báo là m t k thuự ộ ỹ ật trong mật mã học đểxác minh tính đúng đắn của thông báo đuợc g i. M t thông báo ử ộ

- Thông báo có nguồn gốc rõ ràng, chính xác - Nội dung thông báo toàn vẹn không b ị thay đổi - Thông báo được gửi đúng trình tự và thời điểm

Xác th c thông báo b o vự ả ệ hai bên tham gia trong quá trình trao đổi thông tin t k ừ ẻ thứ ba. Tuy nhiên, xác th c thông báo không có tác d ng khi bên g i và bên nh n ự ụ ử ậ muốn gây h i cho nhau: ạ

- Bên nh n gi mậ ả ạo thông báo c a bên g i ủ ử - Bên gửi chối là đã gửi thông báo đến bên nh n ậ

Chữ ký s không nh ng giúp xác th c thông báo mà còn b o v mố ữ ự ả ệ ỗi bên kh i bên kia ỏ Ở ph n này cung c p nhầ ấ ững đề xuất để n khai m t mã khóa công khai d a trên triể ậ ự thu t toán ậ RSA:

- Những s nguyên t m t mã. ố ố ậ - Lược đồ mã hóa

- Lược đồchữ ký s ố

Những gi i thi u nh m vào ớ ệ ằ ứng d ng ph bi n trong máy tính và các h ụ ổ ế ệthống truy n ề thông. Người ta k v ng r ng nh ng chu n ng d ng dỳ ọ ằ ữ ẩ ứ ụ ựa trên đặ ảc t này có th bao ể g m nh ng ràng bu c. ồ ữ ộ

2.3.2. Các biểu tượng

c – Đạ i diện d ữliệu mã hóa, một số ữ gi a 0 và n-1. C – ữ ệ D li u mã hóa, m t chu i sộ ỗ ố ệ h 8.

d S – ố mũ khóa riêng RSA.

di S – ố mũ hàm CRT của thừa số ộ c ng ri, m t s ộ ố nguyên dương e*di≡ 1 (mod(ri-1)), i=3, …, u.

e*dP≡1(mod(p-1))

dQ S – ố mũ hàm CRT của q, m t s ộ ố nguyên dương e*dQ≡1(mod(q-1))

e – ố mũ công khai RSA S

EM – Thông điệp được mã hóa, m t xâu hộ ệ 8.

emBits –Chiều dai theo bits của thông điệp được mã hóa EM. emLen – Chi u dài theo h 8 cề ệ ủa thông điệp được mã hóa EM. GCD (. , .) – Hàm ước s chung l n nh t c a hai s không âm. ố ớ ấ ủ ố Hash – Hàm băm.

hLen –Chiều dài d ữliệu đầu ra theo h 8 cệ ủa hàm băm Hash. k –Chiều dài theo h 8 cệ ủa số modulus RSA n.

K – Khóa riêng RSA.

L – Nhãn RSAES-OAEP tùy ch n, m t chuọ ộ ỗ ệi h 8.

LCM – Hàm b i sộ ố chung nh nhỏ ất của m t danh sách s nguyên không âm. ộ ố m – Đạ i diện thông điệp, một số nguyên dương giữa 0 và n- 1.

M – Thông điệp, m t chu i hộ ỗ ệ 8.

mask D u ra hàm MGF, m– ữliệ ột xâu hệ 8. maskLen –Chiều dài của xâu hệ 8 mask. MGF – Hàm sinh mask.

mgfSeed –Nhân, từ đó mask được sinh, m t xâu h 8. ộ ệ mLen Chi n dài theo h 8 c a m– ề ệ ủ ột thông điệp M.

(n, e) – Khóa công khai RSA.

p, q Hai th– ừa số nguyên t cố ủa số modulus n RSA. qInv H s CRT, m t s – ệ ố ộ ố nguyên dương nhỏ hơn p q*qInv≡1(mod p)

ri– Thừ ốa s nguyên t c a s modulus n RSA, bao g m r1=p, r2=q, và nh ng th a s ố ủ ố ồ ữ ừ ố b xung n u c n. ổ ế ầ

s – Đạ i diện ch ký, mữ ột số ữ gi a 0 và n-1. S – Ch ký, m t chuữ ộ ỗ ệi h 8.

sLen – Chi u dài h 8 c a khóa biề ệ ủ ến thiên (salt) EMSA-PSS.

ti – ệ ố H s CRT c a th a sủ ừ ố nguyên t c ng ri, mố ộ ột số nguyên dương nhỏ hơn ri -

r1*r2*….*ri 1*ti≡1(mod ri), i=3, …, u

u S c a các Th– ố ủ ừa số nguyên t c a hàm modulus RSA, u>2. ố ủ x M– ột số nguyên không âm.

X M t chu– ộ ỗi hệ 8 phù h p v i x. ợ ớ xLen –chiều dài c a chuủ ỗi hệ 8 X.

0x D u ch i di n h hexa c a m t s h 8 ho c m t chu i h – ấ ỉ đạ ệ ệ ủ ộ ố ệ ặ ộ ỗ ệ 8; “0x48” biểu th ị m t s h 8 v i giá tr ộ ố ệ ớ ị hexa 48; “(0x)48 09 0e” biểu th mị ột chu i ba s h 8 liên tiỗ ố ệ ếp với giá trị hexa theo trình t 48, 09 và 0e. ự

λ(n) – LCM (r1-1, r2-1, …, ru-1)

hàm lo i tr bít c a c– ạ ừ ủ ủa hai chuỗi hệ 8. ‖– Toán t c t ử ắ

≡ Biểu tượng đồng dư; a≡b(mod n) nghĩa là mộ ốt s nguyên n chia cho s nguyên a-ố b.

2.3.3. Các loại khóa

Hai loại khóa đượ ử ục s d ng trong các s nguyên t ố ố và lược đồ được định nghĩa trong tài li u này là ệ Khóa công khai RSAKhóa riêng RSA. Khóa công khai RSA và khóa bí m t RSA t o nên c p khóa RSA. ậ ạ ặ

Đặ ảc t này h cái gỗtrợ ọi là RSA đa nguyên tố ở đó số modulus có th có nhiể ều hơn hai th a s nguyên t . L i ích cừ ố ố ợ ủa RSA đa nguyên tố là chi phí tính toán thấp hơn cho giải mã và ki m tra ch ký sể ữ ố, được cung c p mà thuấ ật toán CRT đượ ử ục s d ng. Hiệu năng có thể đạt được trên các n n t ng b x ề ả ộ ử lý đơn tốt hơn, nhưng m t ng r t ở ộ ấ l n trên các n n tớ ề ảng đa bộ ử lý, nơi mà các số mũ modulus bao gồ x m có th ể dược x ửlý song song.

2.3.3.1. Khóa công khai RSA

Khóa công khai RSA gồm 2 thành phần:

- n S modulus RSA, m– ố ột số nguyên dương. - e – ố mũ công khai RSA, mộ S t số nguyên dương.

M t khóa công khai h p l , s Modulus n RSA là k t qu c a ri các s nguyên t ộ ợ ệ ố ế ả ủ ố ố riêng biệt u, i=1, 2, …, u ở đó u>=2, và số mũ công khai e RSA là mộ ốt s nguyên gi a 3 và n-1 thữ ỏa mãn GCD(e, λ(n))≡1, ở đó λ(n)≡LCM(r1 1, …, ru- -1). Theo quy ước, hai s nguyên t ố ố đầu tiên r1 và r2 cũng có thể ám ch p và q theo trình t . ỉ ự

2.3.3.2. Khóa riêng RSA

Khóa riêng RSA có thể có một trong hai đại diện.

- Đại diện đầu tiên bao g m m t c p (n, d), ồ ộ ặ ở đó các thành phần có nghĩa sau đây:

n s modulus RSA, m– ố ột số nguyên dương. d s – ố mũ riêng RSA, một số nguyên dương.

- Đại di n th 2 bao g m b ệ ứ ồ ộ năm (p, q, dP, dQ, qInv) và một chu i ba s (ri, di, ỗ ố ti), i= 3, …, u, mot cho mỗ ối s nguyên t không trong b ố ộ năm, ở đó các thành

p –Thừa số đầ u tiên, một số nguyên dương. q –Thừa số hai, mthứ ột số nguyên dương.

dP S – ố mũ CRT của thừa số đầ u tiên, một số nguyên dương. dQ S – ố mũ CRT của thừa số 2, m t s thứ ộ ố nguyên dươn. qInv H s – ệ ố CRT đầu tiên, một số nguyên dương.

ri– ừ ố ứ th a s th i, m t s ộ ố nguyên dương.

di S – ố mũ CRT ủc a thừa số i, mthứ ột số nguyên dương. ti– ệ ố h s CRT c a th a s th i, mủ ừ ố ứ ộ ố nguyên dương.t s

Trong một khóa riêng RSA h p l v i bi u di n th nhât, s modulus n RSA là gi ng ợ ệ ớ ể ệ ứ ố ố như trong khóa công khai RSA tương ứng và là k t qu c a ri các s nguyên t u, ế ả ủ ố ố i=1, 2, …, u, ở đó u>2. Số mũ khóa riêng d RSA là mộ ố nguyên dương nhỏ hơn n t s thỏa mãn : e*d ≡ 1 (mod , λ(n)). (2.1)

Ở đó e phù hợp v i s ớ ố mũ công khai RSA và λ(n) được định nghĩa như trên.

Trong m t khóa riêng RSA h p l v i bi u di n th 2, hai th a s p và q là hai thộ ợ ệ ớ ể ễ ứ ừ ố ừa s u tiên c a s Modulus n RSA (t c là, r1 và r2), s ố đầ ủ ố ứ ố mũ dP và dQ CRT là hai số nguyên dương nhỏ hơn p và q thỏa mãn theo trình t : ự

e*dP ≡ 1 (mod (p-1)) (2.2) e*dQ ≡ 1 (mod (q-1)) (2.3) và h s qInv hàm CRT là mệ ố ột số nguyên dương nhỏ hơn p thỏa mãn:

q*qInv ≡ 1 (mod p) (2.4)

N u u >2, bi u di n này s bao g m m t ho c nhi u b ế ế ễ ẽ ồ ộ ặ ề ộ ba (ri, di, ti), i=3, …, u. Hệ s ri là các th a s nguyên t b xung c a s ố ừ ố ố ổ ủ ốModulus n RSA. Mỗ ố mũ di CRT i s (i=3, …, u) thỏa mãn:

e*di≡ 1 (mod(ri-1)) (2.5)

Ri*ti≡ 1(mod ri) trong đó Ri=r1*r2*…ri-1 (2.6)

2.3.4. Các nguyên hàm mật mã

Các nguyên hàm m t mã là các toán t toán hậ ử ọc cơ bả ở đó các lược đồ ận m t mã có thể được xây dựng. Chúng được s d ng tri n khai trong ph n cử ụ ể ầ ứng cũng như các module ph n mầ ềm.

B n loố ại nguyên hàm được ch ra trong tài liỉ ệu này, đượ ổc t ch c theo c p: Mã hóa ứ ặ và gi i mã; ký và ki m tra ch ký. ả ể ữ

Đặ ả ềc t v các nguyên hàm th a nh n rừ ậ ằng các điều ki n c th nào có th t b ng ệ ụ ể ể đạ ằ các đầu vào, trong trường h p này là khóa các Khóa riêng và khóa công khai h p l . ợ ợ ệ

2.3.4.1. Các nguyên hàm mã hóa và giải mã.

M t nguyên hàm mã hóa t o ra mộ ạ ột đại di n mã hóa t mệ ừ ột đại diện thông điệp qua một khóa công khai, và một nguyên hàm gi i mã phả ục hồ ại l i thông điệm đại diệ ừn t đại di n mã hóa qua khóa riêng phù h p. ệ ợ

M t c p nguyên hàm mã hóa và giộ ặ ải mã được s dử ụng trong các lược đồmã hóa được định nghĩa trong tài liệu này: RSAEP/RSADP. RSAEP và RSADP có toán t gi ng ử ố hệt nhau, với các khóa khác nhau đầu vào.

RSAEP

RSAEP((n, e), m) (2.7)

Đầu vào: (n. e) Khóa công khai RSA –

m, m nguyên gi a 0 và n-1. m – Đại diện thông điệ ột số ữ

Đầu ra: c i di n mã hóa, m t s nguyên gi a 0 và n-1. – Đạ ệ ộ ố ữ L ỗi: “Đại diện thông điệp ngoài phạm vi”

Giả đị nh: Khóa công khai RSA (n, e) hợ ệp l . Các bước:

1. Nếu đại diện thông điệp m không n m gi a 0 và n-1, k t qu i diằ ữ ế ả “đạ ện thông điệp ngoài phạm vị” và dừng l ại. 2. Để c≡me mod n. 3. Kết quả c. RSADP RSADP (K,c)

Đầu vào: K Khóa riêng RSA, – ở đó K có một trong các dạng sau đây. • Một cặp (n, d)

• Một bộ năm (p, q, dP, dQ, qInv) và một ch i ba rỗ ỗng (ri, di,ti), i=3, …, u) c – Đạ i diện b n mã, mả ột số nguyên gi a 0 và n-1. ữ

Đầu ra: m i di n b– Đạ ệ ản thông điệp, m t s gi a 0 và n-1. ộ ố ữ L ỗi: “Đại diện thông điệp ngoài phạm vi”.

Giả đị nh: Khóa riêng RSA K hợ ệp l . Các bước:

1. Nếu đại di n b n mã c không n m gi a 0 và n-1, k t qu ệ ả ằ ữ ế ả “Đại di n b n mã ngoài ệ ả phạm vi” và dừng thu t toán. ậ

2. Đại diện thông điệm m được tính toán như sau:

N u b u tiên (n, d) cế ộ đầ ủa K được sử ụng, để m≡cd modn d

N u b 2 (d, p, dP, dQ, qInv) và (ri, di, ti) cế ộthứ ủa K được sử ụ d ng, x ử lý như sau:

Để m1≡ cdP mod p và m2≡ cdQ mod q. N u u>2ế , cho mi≡ cdi mod ri, i=3, …, u. Cho h = m1-m2*qInv mod p.

N u u>2, cho R=ri và For i=3 ế Cho R=R*ri-1

Cho h=(mi-m)*ti(mod ri) Cho m = m+R*h

Kết quả m.

3.3.4.2. Các nguyên hàm ký s và ki m tra ch ố ữký.

M t nguyên hàm ký t o ra mộ ạ ộ ạt đ i di n ký t mệ ừ ột thông điệp qua khóa riêng, và một nguyên hàm ki m tra ký s phể ố ục hồi thông điệp t mừ ộ ạt đ i diện ký s qua khóa công ố khai tương ứng. M t c p nguyên hàm ký và ki m tra ch ộ ặ ể ữ ký được s dử ụng trong lược đồ ký s ố được định nghĩa trong tài liệu này và được đặ ảc t ởđây: RSASP1/RSAVP1. Các toán t toán ho c chính trong m i nguyên hàm là viử ạ ỗ ệc mũ hóa như trong các nguyên hàm mã hóa và gi i mã các ph n trên. RSASP1 và RSAVP1 giả ở ầ ống như RSADP và RSAEP ngo i tr tên cạ ừ ủa các đố ố đầu vào đầu ra; Chúng đượi s c phân biệt do chúng được sử ụ d ng trong các m c tiêu khác nhau. ụ

RSASP1

RSASP1 (K,m)

Đầu vào: K Khóa riêng RSA, – ở đó K có một trong các dạng sau đây. • M t c p (n, d) ộ ặ

• M t b ộ ộ năm (p, q, dP, dQ, qInv) và một ch i ba rỗ ỗng (ri, di,ti), i=3, …, u)

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và phát triển các ứng dụng chữ ký số trên các thiết bị smartphone (Trang 26)

Tải bản đầy đủ (PDF)

(70 trang)