1. Trang chủ
  2. » Cao đẳng - Đại học

Giáo trình Lý thuyết mật mã và an toàn thông tin: Phần 2 - Trường Đại Học Quốc Tế Hồng Bàng

20 20 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 287,24 KB

Nội dung

Rabin còng ®Ò xuÊt mét hÖ mËt m· kho¸ c«ng khai dùa vµo cïng bµi to¸n sè häc khã nãi trªn... Mét sè hÖ mËt m· x¸c suÊt kho¸ c«ng khai còng ® − îc ph¸t triÓn sau ®ã bëi Goldwasser-Mica[r]

(1)

CHƯƠNG IV Các hệ mật mà khoá công khai 4.1 Giới thiệu mở đầu

4.1.1 S i mật mã khố cơng khai

(2)

hệ t−ơng tự dựa độ khó tốn t−ơng tự lơgarit rời rạc cấu trúc nhóm cyclic hữu hạn, nhóm điểm nguyên đ−ờng cong eliptic, v.v Để tăng độ bảo mật, hệ mật mã ElGamal dùng với t− cách đầu vào cho thuật tốn lập mật mã mình, ngồi khố cơng khai rõ, yếu tố ngẫu nhiên đ−ợc chọn tuỳ ý, điều làm cho hệ mật mã trở thành hệ mật mã xác suất khố cơng khai Một số hệ mật mã xác suất khố cơng khai đ−ợc phát triển sau Goldwasser-Micali Blum-Goldwasser Tất hệ mật mã khoá cơng khai kể đ−ợc trình bày ch−ơng với số tính chất liên quan chỳng

4.1.2 Một số toán

Sau ta nhắc lại số toán số học đ−ợc sử dụng đến xây dựng hệ mật mã khố cơng khai nh− nói Các tốn phần lớn đ−ợc trình bày ch−ơng II, số đ−ợc phát triển thêm cho ứng dụng trực tiếp xây dựng hệ mã cụ thể, ta liệt kê d−ới lần để thuận tiện cho dẫn sau

Bài toán phân tích số nguyên (thành thừa số nguyên tố):

Cho số nguyên dơng n , tìm tất ớc số nguyên tố nó, tìm dạng phân tích tắc n =

1

k

k

pα pα pα , pi số nguyên tố cặp khác αi≥

Bài tốn có liên hệ mật thiết với tốn thử tính ngun tố hay thử tính hợp số số nguyên, nh−ng với mà ta biết đến nay, d−ờng nh− khó nhiều so với hai tốn thử tính nguyên tố tính hợp số

Trong lý thuyết mật mã, toán th−ờng đ−ợc sử dụng với liệu n số nguyên Blum, tức số ngun d−ơng có dạng tích hai số ngun t ln no ú

Bài toán RSA (Rivest-Shamir-Adleman) :

Cho số nguyên dơng n tích hai số nguyên tố lẻ khác nhau, số nguyên dơng e cho gcd(e, (n)) =1, số nguyên c ; tìm số nguyên m cho mec(mod )n

Điều kiện gcd(e,φ (n)) =1 bảo đảm cho việc với số nguyên c ∈ {0,1, ,n -1} có số m ∈ {0,1, ,n -1} cho

(mod )

e

mc n

(3)

tìm đ−ợc d =e -1modφ (n), tìm đ−ợc m =c d

modn Nh−

vậy, toán RSA qui dẫn thời gian đa thức tốn phân tích số ngun Tuy ch−a có chứng minh cho việc qui dẫn ng−ợc lại nh−ng nhiều ng−ời tin hai tốn t−ơng đ−ơng với độ phc tớnh toỏn

Bài toán thặng d bậc hai :

Cho số nguyên lẻ n hợp số, số nguyên aJn ,

tập tất số a có ký hiệu Jacobi a

n

⎛⎜

⎜⎜ =1 Hãy định xem a có thặng d− bậc hai theo modn hay không?

⎞⎟ ⎟⎟ ⎝ ⎠

Trong lý thuyết mật mÃ, toán thờng đợc xét với trờng hợp nlà số nguyên Blum, tức n tích hai số nguyên tố p q , n =p.q Ta ý trờng hợp này, aJn ,

thì a thặng d bậc hai theo modn vµ chØ a p ⎛ ⎞⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎟

⎜⎝ ⎠=1, điều kiện thử đ−ợc dễ dàng t−ơng đ−ơng với điều kiện a (p -1)/2≡ (modp) Nh− vậy, tr−ờng hợp này, toán thặng d− bậc hai qui dẫn thời gian đa thức tốn phân tích số ngun Mặt khác, khơng biết cách phân tích n thành thừa số ngun tố nay, khơng có cách giải đ−ợc toán thặng d− bậc hai thời gian đa thức Điều củng cố thêm niềm tin toán thặng d− bậc hai tốn phân tích số ngun có độ khó t−ơng ng

Bài toán tìm bậc hai modn :

Cho số nguyên lẻ n hợp sè Blum, vµ mét sè a ∈Qn ,

tøc a thặng d bậc hai theo modn HÃy tìm bậc hai a theo modn, tøc t×m x cho x 2≡a (modn)

(4)

Nh− vậy, tốn tìm bậc hai modn qui dẫn thời gian đa thức tốn phân tích số ngun Ng−ợc lại, có thuật tốn giải tốn tìm bậc hai modn xây dựng thuật tốn giải tốn phân tích số ngun nh− sau: Chọn ngẫu nhiên số x với gcd(x,n) =1, tính a =x2modn Dùng thuật tốn cho a để tìm bậc hai modn a Gọi bậc hai tìm đ−ợc y Nếu y ≡±x (modn), phép thử coi nh− thất bại, ta phải chọn tiếp số x khác y ≢ ±x (modn), gcd(x-y, n) chắn −ớc số không tầm th−ờng n, cụ thể p q Vì n có bậc hai modn nên xác suất thành công lần thử 1/2, số trung bình (kỳ vọng toán học) phép thử để thu đ−ợc thừa số p hayq n 2, từ ta thu đ−ợc thuật tốn giải tốn phân tích số ngun (Blum) với thời gian trung bình đa thức Tóm lại, theo nghĩa khơng chặt chẽ lắm, ta xem hai tốn phân tích số ngun tìm bậc hai modn khó tng ng

Bài toán lôgarit rời rạc :

Cho số nguyên tố p, phần tử nguyên thuỷ theo modp (hay phần tử nguyên thuỷ Zp

), phần tử Zp

.Tìm số nguyên x (0 xp - 2) cho αx ≡ β (modp)

Trong mục 2.4.3 ta giới thiệu qua toán này, biết tr−ờng hợp chung, ch−a có thuật tốn giải tốn thi gian a thc

Bài toán đợc suy rộng cho nhóm cyclic hữu hạn nh sau:

Bài toán lôgarit rời rạc suy rộng :

Cho nhóm cyclic hữu hạn G cấp n, phần tử sinh (nguyên thuỷ) G, phần tử G Tìm số nguyên x (0 xn - 1) cho αx = β

Các nhóm đ−ợc quan tâm nhiều lý thuyết mật mã là: nhóm nhân tr−ờng hữu hạn GF (p) - đẳng cấu với nhóm Zp

∗ cđa tr−êng Zp ,nhóm nhân 2m

F trờng hữu hạn GF (2m), nhóm

nhân Zn ={a:0 −a n 1, gcd( , ) 1a n = }cña trờng Zn với n hợp số,

nhúm gm điểm đ−ờng cong elliptic xác định mt trng hu hn, v.v

Bài toán Diffie-Hellman :

(5)

HÃy tìm giá trị αabmodp

Có thể chứng minh đ−ợc tốn Diffie-Hellman qui dẫn đ−ợc tốn lơgarit rời rạc thời gian đa thức Thực vậy, giả sử có thuật tốn giải tốn lơgarit rời rạc Khi đó, cho liệu vào tốn Diffie-Hellman gồm p, α,αamodp αbmodp; tr−ớc hết dùng thuật tốn cho (p, α ,αamodp) ta tìm đ−ợc , sau tính đa −ợc αabmodp=(αb a) mod p Ng−ời ta chứng minh đ−ợc hai tốn lơgarit rời rạc Diffie-Hellman t−ơng đ−ơng mặt tính tốn số tr−ờng hợp, ví dụ p -1 B-mịn với B = O ((lnp)c ),c số

T−ơng tự nh− với tốn lơgarit rời rạc, ta định nghĩa tốn Diffie-Hellman suy rộng cho nhóm cyclic hữu hạn khác

Bài toán tổng tập (hay toán KNAPSACK) :

{a a1, 2, ,an}

Cho tập số nguyên d−ơng số nguyên d−ơng s Hãy xác định xem có hay khơng tập aj

mà tổng chúng s Một cách t−ơng đ−ơng, xác định xem có hay khơng xi ∈{0,1} (1≤i ≤ n) cho 1

n i i

i= a x =s

Bài toán toán NP- đầy đủ, tức thuộc lớp tốn khó mà ch−a tìm đ−ợc thuật tốn giải chúng thời gian đa thức !

Bài toán giải mã mã tuyến tính :

Mã tuyến tính lớp mã truyền tin có tính chất tự sửa sai đ−ợc sử dụng kỹ thuật truyền tin số hố Khơng vào chi tiết lớp mã này, ta phát biểu trực tiếp tốn giải mã mã tuyến tính nh− sau:

Cho mét ma trËn cÊp n xm A=(aij) gồm thành phần

hoặc 1, vectơ y =(y1,y2, ,ym) giá trị 1, số nguyên

dơng K Hỏi: có hay không vectơ x =(x1,x2, ,xn) gồm số

hoặc có không nhiều K số cho víi mäi j (1≤j ≤ m): ?

1

(mod

n

i ij j

i

x a y

=

∑ 2)

(6)

4.2 HÖ mật mà khoá công khai RSA 4.2.1 Mô tả hÖ mËt m· RSA

Sơ đồ chung hệ mật mã khố cơng khai đ−ợc cho

S = (P , C , K , E , D ) (1) P tập ký tự rõ, C là tập ký tự mã, K là tập khoá K , khố K gồm có hai phần K =(K’,K''), K'là khố cơng khai dành cho việc lập mật mã, cịn K''là khố bí mật dành cho việc giải mã Với ký tự rõ x∈P , thuật toán lập mã E cho ta ký tự mã t−ơng ứng y =E (K', x) ∈ C , và với ký tự mã y thuật toán giải mã D sẽ cho ta lại ký tự rõ x : D(K'', y) = D(K'', E (K', x)) =x

Để xây dựng hệ mật mà khoá công khai RSA, ta chọn trớc số nguyên n =p.q tích hai sè nguyªn tè lín, chän mét sè e cho gcd(e,φ (n)) =1, vµ tÝnh sè d cho

e.d 1(mod (n))

Mỗi cặp K =(K’,K''), víi K' =(n,e) vµ K'' = d sÏ lµ cặp khoá hệ mật mà RSA cụ thÓ cho mét ng−êi tham gia

Nh− vậy, sơ đồ chung hệ mật mã RSA đ−ợc định nghĩa danh sách (1), đó:

P = C = Zn , n số nguyên Blum, tức tích

cđa hai sè nguyªn tè;

K = {K =(K’,K''): K' =(n,e) vµ K'' = d, gcd(e,φ (n)) =1, e.d≡ 1(modφ (n))};

E và D đ−ợc xác định bởi:

E (K', x) = xemodn, víi mäi x∈P ,

D(K'', y) = yd modn, víi mäi y∈C

Để chứng tỏ định nghĩa hợp thức, ta phải chứng minh với cặp khoá K =(K' ,K'' ), x∈P , ta có

D(K'', E (K', x)) = x

Thực vậy, e.d ≡ 1(modφ (n)) ta viết e.d = t φ (n) +1 Nếu x nguyên tố với n , dùng định lý Euler (xem 2.1.3) ta có

D(K'', E (K', x)) = ( ) ( )

(mod )

ed t n t n

xxφ + ≡xφ x n =x

Nếu x không nguyên tố với n , n =p.q , x chia hết cho p nguyên tố với q, x chia hết cho q nguyên tố với p, φ (n) =(p -1).(q -1),trong hai tr−ờng hợp ta có

( ) ( )

(mod ), (mod );

t n t n

x x p

x x q

φ φ

+ +

(7)

từ suy ( )

(mod ),

t n

xφ + ≡x n tøc D(K'', E (K', x)) =x

Thí dụ: Giả sử chọn n =p.q = 2357.2551 = 6012707, ta có φ (n) = (p -1).(q -1)=2356.2550 = 6007800 Chọn e = 3674911, tính đ−ợc d = 422191 cho e.d ≡ 1(modφ (n)) Một ng−ời dùng A chọn khố công khai K' =(n =6012707, e = 3674911) giữ khố bí mật K'' =d =422191 Một đối tác B muốn gửi cho A thông báo x =5234673, dùng khố cơng khai để tạo mật mã y =xe

= 52346733674911mod6012707 = 3650502 A nhËn đợc y, giải mà đợc rõ x =3650502422191mod 6012707 =5234673

4.2.2 Thùc hiÖn hÖ mËt m· RSA

Để thực hệ mật mã RSA cho mạng truyền tin bảo mật, việc xây dựng ch−ơng trình tính tốn hàm E (với tham biến đầu vào n ,e x) hàm D (với tham biến đầu vào n ,d y), ta phải chọn cho ng−ời tham gia (n,e,d) để tạo khố cơng khai K' khố bí mật K'' Hệ mã ng−ời tham gia có khả bảo mật n =p.q số nguyên lớn (và p,q phải số nguyên tố lớn); lớn có nghĩa p,q phải có biểu diễn thập phân cỡ 100 chữ số, n có cỡ 200 chữ số thập phân, hay n≥ 10200!

Tính tốn số e,d , hay thực hàm E , D , đều chủ yếu thực phép tính số học số nguyên lớn; vấn đề chục năm qua, khoa lập trình máy tính đề xuất nhiều ch−ơng trình máy tính làm việc có hiệu quả, ta tham khảo để sử dụng thực thi hệ mật mã RSA nh−

nhiỊu hƯ mËt m· kh¸c

4.2.3 TÝnh b¶o mËt cđa mËt m· RSA

Bài toán thám mã (khi biết mã) mật mã RSA là: biết khố cơng khai K' =(n,e), biết mã y =x e

modn, tìm x Bài tốn tốn RSA đ−ợc trình bày mục 4.1.2 Trong mục ta chứng tỏ biết hai thừa số p,q n dễ tìm đ−ợc x từ y, nói chung có chứng để coi tốn RSA (hay tốn thám mã RSA) có độ khó t−ơng đ−ơng với tốn phân tích số ngun (Blum) thành thừa số nguyên tố Do đó, giữ tuyệt mật khố bí mật d , hay giữ tuyệt mật thừa số p,q , có ý nghĩa định đến việc bảo vệ tính an tồn hệ mật mã RSA

(8)

ng−ời tham gia phải độc lập lựa chọn tham số n, e,d riêng mình, chọn n có nghĩa chọn thừa số p,q n (n =p.q), có p,q nên tính đ−ợc φ (n) = (p -1).(q -1), từ tìm đ−ợc e,d t−ơng đối dễ dàng; nh−ng mà sau chọn ng−ời tham gia phải giữ tuyệt đối bí mật giá trị p,q,d , cơng bố khố cơng khai (n,e) mà thơi

Tuy nhiên, điều kiện chung, cịn thực tế cịn nhiều sơ hở mà ng−ời thám mã lợi dụng để cơng vào tính bảo mật hệ mã RSA khó mà l−ờng tr−ớc hết đ−ợc; sau số tr−ờng hợp đơn giản biết mà ta cần ý:

1.Dùng môđuyn n chung Giả sử có hai ng−ời tham gia A B sử dụng môđuyn chung n khố cơng khai mình, chẳng hạn A chọn khố cơng khai (n,e) giữ khố bí mật d, B chọn khố cơng khai (n,a) giữ khố bí mật b Một ng−ời tham gia thứ ba C gửi văn cần bảo mật x đến A B dùng khố cơng khai nói để gửi đến A mật mã y =x emodn

và gửi đến B mật mã z =xamodn Ta chứng tỏ ng−ời thám mã O dựa vào thông tin n,e,a,y,z đ−ờng công khai mà phát rõ x nh− sau:

a TÝnh c = e -1moda,

b Sau tính h = (ce -1)/a , c Và ta đ−ợc x = yc

(z h

)-1 modn

Thực vậy, theo định nghĩa trên, ce -1 chia hết cho a, ta có: yc

(z h

)-1modn = x ec

( 1) / 1

(xa cea) mod− n=xce.(xce− −) modn=x Nh−

vậy, tr−ờng hợp việc truyền tin bảo mật khơng cịn an tồn Vì vậy, ta cần nhớ dùng hệ RSA để tổ chức mạng truyền tin bảo mật, cần tránh dùng môđuyn n chung cho ng−ời tham gia khác nhau!

Dùng số mũ lập mã e bé Để cho việc tính tốn hàm lập mã đ−ợc hiệu quả, ta dễ có xu h−ớng chọn số mũ e hàm lập mã số nguyên bé, chẳng hạn e =3 Tuy nhiên, mạng truyền tin bảo mật dùng hệ mật mã RSA, có nhiều ng−ời chọn số mũ lập mã e bé giống có nguy bị cơng việc thám mã nh− sau : Giả sử có ba ng−ời tham gia chọn ba khố cơng khai (n1, e), (n2, e), (n3, e) với số mũ e =3 Một ng−ời tham gia A muốn gửi thông báo x cho ba ng−ời đó, để bảo mật, gửi mã ci = x3modni cho ng−ời thứ i Ba

môđuyn ni khác nhau, có phần cặp nguyên tố với

(9)

1

2

3

mod mod mod

m c n

m c n

m c n

≡ ⎧ ⎪ ≡ ⎨ ⎪ ≡ ⎩

Vì x≤ni , nên x 3≤ n1n2n3 , có m =x Vậy ta đ−a đ−ợc

bài tốn tìm bậc ba theo nghĩa đồng d− modni toán tỡm

căn bậc ba theo nghĩa số học thông thờng: tìm bậc ba m ta đợc x, tức đợc rõ!

Vi nhng lý khỏc, ng−ời ta có chứng để chứng tỏ hệ RSA khơng bảo đảm an tồn ta dùng khố có số mũ giải mã d số ngun bé, thuật tốn giải mã có làm việc hiệu Vì thế, sử dụng hệ mật mã RSA, để bảo đảm an toàn ta nên chọn số mũ e d số ngun lớn, có kích cỡ lớn gần nh− thân số n

Lợi dụng tính nhân hàm lập mà Ta ý r»ng hµm lËp m· f (x) = x emodn cã tÝnh nh©n (multiplicative property), nghÜa

là f (x.y) = f (x).f (y) Dựa vào tính chất đó, ta thấy c mật mã rõ x, c =c u emodn mật mã rõ xu Do đó, lấy đ−ợc mật mã c , để phát rõ x ng−ời thám mã chọn ngẫu nhiên số u tạo mã c ,và ng−ời thám mã có khả thám mã theo kiểu ô có mã đ−ợc chọn ằ (xem 1.5.1), tức có khả với c đ−ợc chọn tìm rừ

tơng ứng x =xu ,thì rõ gốc cần phát x

=

mod

x u n Tất nhiên, khả ngời thám mà có lực giải

quyết toán thám mà theo kiểu có mà đợc chän lµ rÊt hiÕm,

nh−ng tr−ờng hợp mà vấn đề bảo mật dễ

bị cơng, ta khơng thể khơng tính đến để tìm cách tránh!

TÊn c«ng b»ng cách lặp phép mà Ta ý hàm

lËp m· f (x) = x e

modn phép hoán vị tập Zn ={0,1, ,n -1},

do với c∈Zn ta thực lặp phép lập mã để đ−ợc

2

0 , mod , mod , , mod ,

i

e e e

i

c =c c =c n c =c n c =c n

ắt tìm đợc số k cho ck =cek modn c= NÕu c mÃ

ca mt bn rừ x no ú, c =x e

modn, ngời thám mà xuất

phát từ c thực lặp phép lập mà nh tìm đợc số k ≥

bé cho ck =c Và ta có số hạng tr−ớc ck -1=x,

bản rõ cần phát Thuật tốn hình thức đơn giản,

nh−ng hiệu thực khơng đáng hy vọng lắm, số phép lặp

cÇn thùc hiƯn nãi chung cã thể lớn, cỡ số phép hoán

vị Zn , tức n !, với số n có khoảng 200 chữ số thập phân

Trên thực tế, theo thuật toán nói ta cã thĨ dƠ dµng cã

(10)

tốn nh− làm việc có hiệu thiết thực, nh− trình bày phần trên, ch−a có! Vì vậy, nguy bị thám mã thuật tốn đơn giản nói tính an tồn hệ mật mã RSA không đáng ngại

Về khả che giấu mật mã Mật mã, giữ đ−ợc bí mật, khả che giấu thông tin nó, tức biết mã y khó lịng tìm đ−ợc thông tin để phát rõ x Một cách thơ thiển, ta nói rõ x không che giấu đ−ợc qua phép lập mật mã RSA eK (x) =x

e

modn, nÕu eK (x) =x Nãi c¸ch

khác, x không che giấu đ−ợc mã x x Tiếc với hệ mật mã RSA có rõ khơng che giấu đ−ợc, rõ x = -1, 0, modn (vì số mũ e ln ln số lẻ) Ng−ời ta chứng minh đ−ợc n =p.q, số rõ x∈Zn khơng che giấu đ−ợc

(1+gcd(e -1, p -1)).(1+gcd(e -1, q -1))

Vì e -1, p -1, q -1 số chẵn, nên số 9, nên hệ RSA có rõ không che giấu đ−ợc Tuy nhiên, th−ờng n, p q, lớn, nên tỷ lệ rõ khơng che giấu đ−ợc nói chung bé khơng đáng kể, khả gặp rõ không che giấu đ−ợc không tạo nên nguy đáng kể việc dùng hệ mật mã RSA

4.3 HÖ mËt mà khoá công khai Rabin 4.3.1 Mô tả hệ mËt m· Rabin

Sơ đồ hệ mật mã khố cơng khai Rabin đ−ợc cho S = (P , C , K , E , D ),

trong đó: P =C = Zn , n số nguyên Blum, n =p.q, với

p q hai số ngun tố có tính chất p ≡ 3(mod4), q≡ 3(mod4), K = {K = (K', K'') : K'=(n,B), K'' =(p,q), 0≤B ≤ n –1}, thuật toán E và D đ−ợc xác định

E(K',x) = x (x +B) modn ,

D(K'',y) =

2

mod

4

B B

y n

+ −

(11)

Trong mạng truyền tin bảo mật với sơ đồ mật mã Rabin, ng−ời tham gia chọn cho yếu tố n,B,p,q để lập nên khố cơng khai khố bí mật

Ta chó ý r»ng với khoá K, thuật toán eK= E(K',.)

dK= D(K'',.) không lập thành cặp song ¸nh, thĨ lµ eK

khơng phải đơn ánh, w bậc hai theo modn eK′(w(x +

2

B

) -2

B

) = eK′(x), mà ta có đến bậc hai

1 theo modn ,tức ta có giá trị khác đối số x cho giá trị eK′(x)

Bây nói đến thuật tốn giải mã dK′′= D(K'',.) Đặt C =

B 2/4 +y, ta cã

K

d ′′(y) = CB/ m odn, để có dK′′(y), ta cần

tính Cmodn, tức cần giải ph−ơng trình z 2≡ C modn Ph−ơng trình t−ơng đ−ơng với hệ thống gồm hai ph−ơng trình sau đây:

(2)

2

mod , mod

z C p

z C q

⎧ ≡ ⎪ ⎨

≡ ⎪⎩

V× p q số nguyên tố nên ta cã

1 1mod p C p − ≡ , 1mod q C q − ≡

Theo giả thiết, p 3(mod4) q 3(mod4), nªn

4

p+ q+1

va` số nguyên; ta có

1

2

4

( ) (mod ), ( ) (mod )

p q

C C p C C

+ +

± ≡ ± ≡ q

Do đó,ph−ơng trình z 2≡ C modn , hay hệ ph−ơng trình (2), có nghiệm theo modn , t−ơng ứng với hệ ph−ơng trình sau :

( 1) / ( 1) /

( 1) / ( 1) /

(mod ) (mod )

(mod ) (mod )

p p

q q

z C p z C p

z C q z C q

+ + + + ⎧ ≡ ⎧ ≡ ⎪ ⎪ ⎨ ⎨ ≡ ≡ − ⎪ ⎪ ⎩ ⎩

( 1) / ( 1) /

( 1) / ( 1) /

(mod ) (mod )

(mod ) (mod )

p p

q q

z C p z C p

z C q z C q

+ + + + ⎧ ≡ − ⎧ ≡ − ⎪ ⎪ ⎨ ⎨ ≡ ≡ − ⎪ ⎪ ⎩ ⎩

Cả nghiệm hệ ph−ơng trình theo modn đ−ợc viết chung d−ới ký hiệu Cmodn, thuật toán giải mã

K

(12)

ThÝ dơ : Gi¶ sư n =77 = 7.11, B =9 (ở p =7, q =11) Ta có

K

e ′(x) = x + 9x mod77, K

d ′′(y) = 1+ −y 43mod 77,

v× 2-1=39mod77, 9.2-1 =9.39 =43mod77, B 2=4mod77, B 2/4 =1mod 77 Víi x =44 ta cã eK′(x) = 44

2+9.44 =2332 =22mod77, mã t−ơng ứng với x y = 22 Bây giải mã với mã y =22, thủ tục nói ta tìm đ−ợc giá trị 1+ =y 22+ = 23 theo mod77 10,67,32,45, từ giá trị có dK′′(y)

K

d ′′(y) = 44, 24, 66,

Bản rõ nằm giá trị đó, tr−ờng hợp 44 4.3.2 Tính an tồn hệ mật mã Rabin

Trong định nghĩa hệ mật mã Rabin, khố cơng khai (n,B), khố bí mật (p,q) tức cặp thừa số nguyên tố n Nh−

vậy, tính an tồn hệ mật mã nằm việc giữ bí mật thừa số p q Định nghĩa phép giải mã cho ta thấy yếu tố có ý nghĩa định phép giải mã việc tính bậc hai số theo modn Trong mục 4.1.2 tốn tìm bậc hai theo modn (với n hợp số Blum) đ−ợc chứng tỏ có độ khó t−ơng đ−ơng với tốn phâ n tích n thành thừa số ngun tố Vì vậy, toán giải mã hệ mật mã Rabin, tốn giữ bí mật khố bí mật (p,q), tốn phân tích số ngun thành thừa số nguyên tố có độ khó t−ơng đ−ơng Và yếu tố bảo đảm tính an tồn hệ mật mã Rabin !

4.4 HƯ mật mà khoá công khai ElGamal 4.4.1 Mô tả hÖ mËt m· ElGamal

Hệ mật mã ElGamal đ−ợc T ElGamal đề xuất năm 1985, dựa vào độ phức tạp tốn tính lơgarit rời rạc, sau nhanh chóng đ−ợc sử dụng rộng rãi vấn đề bảo mật truyền tin mà vấn đề xác nhận chữ ký điện tử

Sơ đồ hệ mật mã khố cơng khai ElGamal đ−ợc cho

S = (P , C , K , E , D ), đó: P =Zp

, C =Zp Zp ì

(13)

ở phần tử nguyên thuỷ theo modp, tức Zp

C¸c thuËt to¸n lËp m· eK′= E (K',.) giải mà dK= D(K'',.)

c xỏc nh nh− sau: Với x∈P =Zp∗, để lập mật mã cho x tr−ớc hết ta chọn thêm số ngẫu nhiên k ∈Zp -1 tính:

K

e ′(x,k ) = (y1, y2), víi

1

mod , mod

k k

y p

y x p

α β ⎧ = ⎪ ⎨

=

⎪⎩

Với số ngẫu nhiên k bất kỳ, ta xem eK′(x,k ) mật mã

x Và thuật toán giải mã đ−ợc xác định

K

d ′′(y1, y 2) =

1

2.( 1) mod

a

y yp

Các phép lập mật mã giải mã đ−ợc xác định nh− hợp thức, ta có với x∈P =Zp k ∈Zp -1 :

dK′′(eK′(x,k )) =

k.( k a) mod k kmod xβ α − p x= β β− p x=

Ta ý mạng truyền thông bảo mật với việc dùng sơ đồ mật mã ElGamal, ng−ời tham gia tự chọn cho tham số p,α, a, tính β, sau lập cơng bố khố cơng khai K'=(p,α ,β), nh−ng phải giữ tuyệt mật khố bí mật K'' = a Bài tốn biết khố cơng khai tìm khố bí mật tốn tính lơgarit rời rạc đ−ợc kể đến mục 4.1.2, tốn khó ch−a có thuật tốn làm việc thời gian đa thức giải đ−ợc

Thí dụ : Chọn p = 2579, α =2, a =765, ta tính đ−ợc β = 2765 = 949 mod2579 Ta có khố cơng khai (2579, 2, 949) khố bí mật 765 Giả sử để lập mật mã cho x =1299, ta chọn ngẫu nhiên k =853, có

K

e ′(1299, 853) = (2853, 1299 949853)mod2579

= (453, 2396)

Và giải mà ta đợc lại

K

d ′′(453, 2396) = 2396 (453765)-1mod2579 = 1299

4.4.2 TÝnh an toµn cđa hƯ mËt m· ElGamal

(14)

nếu số nguuyên tố p đợc chọn số nguyên tố Sophie Germain (tức có dạng 2q +1, với q số nguyên tố lớn)

Ngồi ra, cịn có khả khố bí mật K'' = abị lộ cẩu thả việc sử dụng số ngẫu nhiên k, đặc biệt để lộ số k đ−ợc dùng Thực vậy, để lộ số k, khố bí mật a đ−ợc tính theo công thức sau đây:

1

2

( ) mod( 1)

a= −x ky yp

Nh− vậy,một ng−ời thám mã có khả cơng theo kiểu “biết rõ” (xem 1.5.1) phát khốanếu biết k Một tr−ờng hợp khác làm tính an toàn hệ mật mã ElGamal việc dùng số k cho nhiều lần lập mật mã Thực vậy, giả sử dùng số ngẫu nhiên k cho hai lần lập mã, lần cho x1 , lần cho x2 , đ−ợc mã t−ơng ứng (y1,y2) (z1,z2) Vì dùng số k nên y1=z1 Và theo cơng thức lập mã ta có z2/y2 = x2/x1, tức x2 = x1.z2/y2 Nh− vậy, ng−ời thám mã, lần “biết rõ” dễ dàng phát đ−ợc rõ lần sau

4.4.3 C¸c hƯ mËt m· tơng tự ElGamal

Hệ mật mà ElGamal đợc xây dựng dựa yếu tố : nhóm hữu hạn cyclic (Zp

), phần tư nguyªn thủ (α ∈Zp

) cho tốn tính lơgarit rời rạc (tính a = logαβ , tức cho β tìm a cho β = α a modp) khó thực Vì vậy, có đủ yếu tố ta xây dựng hệ mật mã t−ơng tự ElGamal Nh− vậy, sơ đồ hệ mật mã t−ơng tự ElGamal đ−ợc cho

S = (P , C , K , E , D ),

trong đó: P =G, C =G Gì , với G nhóm cyclic hữu hạn; K ={K = (K', K'') : K'=(G,α ,β) , K'' = a , β = α a}, α phần tử ngun thuỷ nhóm G

C¸c thuật toán lập mà eK= E (K',.) giải mà dK′′= D(K'',.)

đ−ợc xác định nh− sau: Với x∈P =G, để lập mật mã cho x tr−ớc

hÕt ta chän thªm mét sè ngÉu nhiªn k (0≤ ≤k G) råi tÝnh:

K

e ′(x,k ) = (y1, y2), víi

1

2

k k

y

y x

α β ⎧ = ⎪ ⎨

= ⎪⎩

Với số ngẫu nhiên k bất kỳ, ta xem eK′(x,k ) mật mã

x Và thuật toán giải mã đ−ợc xác định

K

d ′′(y1, y 2) =

1

2.( 1) mod

a

y yp

(15)

Có hai lớp nhóm th−ờng đ−ợc sử dụng để xây dựng hệ mật mã t−ơng tự ElGamal nhóm nhân tr−ờng Galois GF(pn

) nhóm cộng đ−ờng cong elliptic xác định tr−ờng hữu hạn

Nhãm nh©n cña tr−êng Galois GF(pn) : Tr−êng Galois

GF(pn) trờng đa thức với hệ số Z

p lÊy theo

môđuyn đa thức bậc n bất khả qui; với phép cộng phép nhân phép cộng phép nhân đa thức theo mơđuyn Tr−ờng có pn

phÇn tư, xem phần tử đa thức bËc n -1 víi hƯ sè thc Zp = {0,1,2, ,p -1}, chí vectơ n chiều mà c¸c

thành phần hệ số đa thức Tập tất đa thức khác lập thành nhóm nhân tr−ờng GF (pn),và ng−ời ta chứng minh

đ−ợc nhóm nhân cyclic

Nh− vËy, nhãm G = GF (pn) {0} lµ nhãm cyclic cÊp pn-1 ta

có thể chọn phần tử nguyên thuỷ nhóm đó, thiết lập tốn lơgarit rời rạc t−ơng ứng, từ xây dựng đ−ợc hệ mật mã t−ơng tự ElGamal

Nhãm céng cđa ®−êng cong elliptic : Giả sử p số nguyên tố > §−êng cong e p c ylli ti

;

2=x3+a.x+b trªn Z

p , trong

a,b ∈Zp số thoả mãn 4a3+27b2 (modp), c nh

nghĩa tập hợp tất điểm (x,y) Zp ì Zp thoả mÃn phơng

trình

y2x3+a.x+b (modp),

cựng với phần tử đặc biệt mà ta ký hiệu O Tập hợp đ−ợc ký hiệu E Trên tập E ta xác định phép cộng nh− sau : Giả sử P =(x1, y1) Q = (x2, y2) hai điểm E Nếu x1=x2 y1= -y2 ta định nghĩa P +Q =O ; khơng P +Q = (x3, y3),

x3 = λ2-x1-x2 , y3 = λ (x1-x3) - y1 , víi

22

1

( ) /( ),

(3 ) / ,

y y x x khi P Q

x a y khi P Q

λ= ⎨⎧⎪ − − ≠

+ =

⎪⎩

Ngoài ra, ta định nghĩa thêm : P +O = O+P = P

(16)

4.5 Các hệ mật mã dựa toán NP-đầy đủ 4.5.1 Nguyên tắc chung

Nh− giới thiệu ch−ơng II, toán NP-đầy đủ toán mà ch−a tìm đ−ợc thuật tốn với độ phức tạp tính tốn đa thức để giải chúng Và tính khóằ tốn lại đ−ợc bảo đảm kiện cần có thuật tốn với độ phức tạp đa thức giải tốn NP-đầy đủ toán NP-đầy đủ giải đ−ợc thời gian đa thức

Đối với số tốn NP-đầy đủ, khơng có thuật tốn với độ phức tạp đa thức để giải liệu tốn, nh−ng có lớp liệu mà chúng có thuật tốn để giải với thời gian chấp nhận đ−ợc Với tốn nh− ta sử dụng để xây dựng hệ mật mã khố cơng khai với nguyên tắc chung nh− sau : Hệ mật mã có phép giải mã t−ơng đ−ơng với việc tìm lời giải cho tốn NP-đầy đủ đó; nhiên có thủ tục để biến liệu nói chung tốn NP-đầy đủ thành liệu thuộc lớp đặc biệt mà giải đ−ợc thuật toán với độ phức tạp thời gian chấp nhận đ−ợc Nh− vậy, ta biến đ−ợc phép lập mã thành hàm ô cửa sập phía ằ, sở để xây dựng hệ mật mã khố cơng khai t−ơng ứng

Ta xét sau hai trờng hợp xây dựng đợc hệ mật mà khoá công khai theo cách nh : hệ mật mà Merkle-Hellman dựa toán ba lô (hay toán tỉng tËp con), vµ hai lµ hƯ mËt m· Mc-Eliece dựa toán giải mà tuyến tính tự sửa sai

4.5.2 HÖ mËt m· Merkle-Hellman

Bài tốn ba lơ (tức tốn KNAPSACK, đ−ợc gọi toán tổng tập con) đ−ợc đặt nh− sau: Cho tập số nguyên d−ơng {a a1, 2, ,an}và số nguyên d−ơng s Hãy xác

định xem có hay khơng tập aj mà tổng chúng

s Một cách t−ơng đ−ơng, xác định xem có hay khơng xi

∈{0,1} (1≤i ≤ n) cho n1 i i

i= a x =s

(17)

Bài toán NP-đầy đủ, nhiên ta hạn chế toán liệu I =({a a1, 2, ,an},T ), {a a1, 2, ,an}l dóy

siêu tăng, tức dÃy thoả mÃn ®iỊu kiƯn

1

1

2, 3, , : ,

j

j i

i

j n a

=

∀ = >∑a

thì việc tìm trả lời dễ dàng, chẳng hạn thuật tốn đơn giản d−ới đây:

1 for i =n downto do

if T> ai then T = Tai, xi = 1, else xi = if

1

n

i i

i

x a T

=

=

then X =( , ,x1 xn)is the solution of problem,

else there is no solution

Bây giờ, để chuẩn bị xây dựng sơ đồ mật mã Merkle-Hellman, ta chọn tr−ớc số nguyên d−ơng n số nguyên tố p đủ lớn Với ng−ời tham gia đ−ợc chọn khoá K = (K', K''), khố bí mật K'' = (A, p, a) gồm dãy siêu tăng A=

{a a1, 2, ,an}thoả mÃn số a, 1< a < p ; khoá công

khai K' = {b

1

, n

i i

a p

=

∑ <

1, ,bn} víi bi = a.ai modp

Sơ đồ hệ mật mã Merkle-Hellman đ−ợc định nghĩa

S = (P , C , K , E , D ),

trong P = {0,1}n , C ={0,1, ,n(p -1)}, K là tập khoá K =

(K', K'') nh− đ−ợc xây dựng Các thuật toán lập mật mã giải mã đ−ợc xác định bởi:

Víi mäi x=( , ,x1 xn)∈ P thuËt to¸n lËp m· cho ta E (K', x) =

1

n

i i i

x b

=

∑ ;

và với y∈C , ta tính z =a-1.y modp, sau giải tốn balơ liệu I =({a a1, 2, ,an},z ) ta đ−ợc lời giải ( , ,x1 xn),

lời giải giá trị D (K'', y)

Thí dụ: Chọn n =6, khố bí mật có p = 737, A={12, 17, 33, 74, 157, 316}, a =635 Tính đ−ợc khố cơng khai {250, 477, 319, 559, 200, 196} Với rõ x = 101101 ta có mã t−ơng ứng y = 1324 Để giải mã, tr−ớc hết tính z = a-1.y modp = 635-1.1324 mod737 = 435, sau giải tốn balơ với dãy siêu tăng A z ta đ−ợc

(18)

Hệ mật mã Merkle-Hellman đ−ợc đề xuất sớm, từ năm 1978, đến năm 1985 Shamir tìm đ−ợc ph−ơng pháp thám mã thời gian đa thức dựa vào thuật toán Lenstra giải toán qui hoạch động Tuy nhiên, sau đó, vào năm 1988, Chor Rivest có đ−a cách khác xây dựng hệ mật mã dựa vào toán balơ, giữ đ−ợc an tồn

4.5.3 HÖ mËt m· McEliece

Hệ mật mã McEliece đ−ợc xây dựng dựa vào tính NP-đầy đủ tốn giải mã tuyến tính tự sửa sai (trong lý thuyết truyền tin) Bài toán đ−ợc đặt nh− sau: giả sử nguồn tin tập từ k bit nhị phân, tức tập hợp {0,1}k, đ−ợc truyền kênh có nhiễu, tức truyền trực tiếp dãy từ k bit thơng tin mà ta nhận đ−ợc bị sai lệch ta không nhận đ−ợc thông tin đ−ợc truyền Để khắc phục sai lệch ng−ời ta tìm cách mã hoá nguồn tin gốc cách thêm cho từ k bit mang thông tin số bit dùng để tự hiệu chỉnh, tức thực phép mã hoá biến từ k bit ban đầu thành từ n bit, với n > k, đ−ợc gọi từ mã Phép mã hố tuyến tính phép mã hoá đ−ợc thực cách nhân từ k bit ban đầu x với ma trận G cấp kìn để đ−ợc từ mã n bit y, y =x.G (các phép toán cộng nhân đ−ợc thực theo mod2) Ta định nghĩa khoảng cách Hamming hai từ mã n bit số vị trí mà hai từ mã có giá trị khác nhau; khoảng cách d hệ mã khoảng cách Hamming bé hai từ mã Nh− vậy, hệ mã tuyến tính đ−ợc xác định ma trận G (gọi ma trận sinh), đ−ợc đặc tr−ng ba số [n,k,d ] Nếu d = 2t +1, hệ mã có khả tự sửa sai đến t sai ngẫu nhiên nhiễm phải nhiễu kênh truyền Tuy nhiên, việc tự sửa sai (tức nhận đ−ợc từ mã có đến t sai ta tìm lại đ−ợc từ k bit thơng tin ban đầu) hệ mã tuyến tính nh− nói chung phức tạp, tốn giải mã tuyến tính tự sửa sai đ−ợc chứng minh tốn NP-khó, tức ch−a biết có thuật tốn làm việc thời gian đa thức giải đ−ợc Mặc dầu vậy, ng−ời ta tìm đ−ợc số lớp riêng hệ mã tuyến tính mà chúng xây dựng đ−ợc thuật toán giải mã tự sửa sai làm việc có hiệu quả, hệ mã Goppa lớp nh− Hệ mã Goppa loại hệ mã tuyến tính có đặc tr−ng n = 2m, d =2t +1, k =n -mt , có ma trận sinh G

cấp kìn đ−ợc xây dựng dựa số tính chất đại số tr−ờng GF(2n)-mà ta không vào chi tiết

(19)

ma trận S khả nghịch cấp kìk Z2 ma trận hoán vị P cấp n ìn (cũng có phần tử Z2) để biến hệ mã Goppa với ma trận sinh G thành hệ mã tuyến tính “phổ biến” với ma trận sinh G* =SGP; biến hệ mã Goppa có thuật tốn giải mã hiệu thành hệ mã tuyến tính nói chung mà ta biết việc giải mã tự sửa sai NP-khó Hệ mật mã mà ta xây dựng có thuật toán giải mã “dễ” ng−ời nh−

giải mã Goppa, “khó” ng−ời ngồi nh− giải mã tuyến tính nói chung!

Nh− vậy, hệ mật mã khố cơng khai McEliece đ−ợc xác định

S = (P , C , K , E , D ),

trong P ={0,1}k, C = {0,1}n , K là tập hợp khoá K = (K', K''),

với khố bí mật K''= (G,S,P ) gồm ma trận sinh G hệ mã Goppa, ma trận khả nghịch S cấp kìk Z2 ma trận hốn vị P cấp n ìn ; khố cơng khai K' = G* ma trận “đã đ−ợc biến đổi” nói

Thuật tốn lập mật mã E (K',.): P →C đ−ợc xác định

E (K', x) = x G* +e ,

trong e ∈ {0,1}n vectơ ngẫu nhiên có trọng số t , tức có t

thµnh phần Thuật toán giải mà D (K'',.) đợc thùc hiƯn theo ba b−íc nh− sau víi mäi y∈C = {0,1}n :

1 TÝnh y1 = y.P

–1

,

2 Giải mã Goppa y1, giả sử đ−ợc x1 Tính D (K'', y) = x1 S

-1

Dễ thử lại thuật toán lập mật mã giải mã xác định nh− hợp thức, với x∈P ={0,1}k, ta có

D (K'', E (K', x)) = x ,

Đẳng thức với vectơ e có trọng số ≤t Hệ mật mã t−ơng tự nh− hệ mật mã ElGamal chỗ lập mật mã ta chọn thêm cho liệu vào yếu tố ngẫu nhiên; sau ta gọi hệ mật mã nh− hệ mật mã xác suất

(20)

lín, kh¸ bÊt tiƯn cho viƯc thùc thi thùc tÕ, v× mà hệ mật mà McEliece cha đợc sử dơng phỉ biÕn l¾m

4.6 Các hệ mật mã xác suất khố cơng khai 4.6.1 Đặt vấn đề định nghĩa

Mật mã xác suất ý t−ởng đ−ợc đề xuất Goldwasser Micali từ năm 1984, xuất phát từ yêu cầu giải vấn đề sau đây: Giả thiết ta có hệ mật mã khố cơng khai, ta muốn lập mật mã cho rõ gồm bit Điều th−ờng gặp ta muốn bí mật truyền thơng tin có nội dung có khơng, tức thơng tin đặc biệt quan trọng nh−ng gồm bit Nếu ta dùng hệ mật mã khố cơng khai thơng th−ờng, mật mã đ−ợc truyền eK′(0) eK′(1), ng−ời thám

m· cã thĨ kh«ng biÕt cách giải mÃ, nhng lại hoàn toàn tính trớc giá trị eK(0) eK(1), lấy đợc mà truyền

trờn kờnh truyn tin công cộng, cần so sánh mã nhận đ−ợc với hai eK′(0) eK′(1) đ−ợc tính sẵn đủ biết đ−ợc

thông tin mật đ−ợc truyền Các hệ mật mã khố cơng khai có đ−ợc tính bảo mật từ thơng tin mã khó lịng khai thác đ−ợc thơng tin rõ, nh−ng rõ ràng điều khơng cịn đ−ợc bảo đảm số rõ ít, chẳng hạn nh− rõ có độ dài cực ngắn, hay nh− tr−ờng hợp trên, số rõ hai, cụ thể

Mục đích việc xây dựng mật mã xác suất để bảo đảm không thông tin rõ khai thác đ−ợc (trong thời gian đa thức) từ mã; điều này, hệ mật mã khố cơng khai, đ−ợc thực cách tạo cho rõ nhiều mã khác thu đ−ợc cách ngẫu nhiên với việc sử dụng số ngẫu nhiên tiến trình lập mã Sau định nghĩa hệ mật mã xác suất khố cơng khai:

Định nghĩa Một hệ mật mã xác suất khố cơng khai đ−ợc xác định

S = (P , C , K , E , D, R ),

trong P , C , K đ−ợc hiểu nh− hệ mật mã khố cơng khai thông th−ờng, R tập phần tử ngẫu nhiên, với K = (K', K'')∈K , thuật tốn lập mật mã eK′= E(K',.): P ìR →C

vàgiải mã dK′′= D(K'',.): C →P thoả mãn đẳng thức:

víi mäi x∈P , r ∈R , dK′′(eK′(x,r )) = x

Ngày đăng: 01/04/2021, 01:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN