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 (287.24 KB, 20 trang )
<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>
hệ t−ơng tự dựa trên độ khó của các bài tốn t−ơng tự lơgarit rời rạc
trên các cấu trúc nhóm cyclic hữu hạn, nhóm các điểm nguyên trên
đ−ờng cong eliptic, v.v... Để tăng độ bảo mật, hệ mật mã ElGamal
còn dùng với t− cách đầu vào cho thuật toán lập mật mã của mình,
ngồi khố cơng khai và bản rõ, một yếu tố ngẫu nhiên đ−ợc chọn
tuỳ ý, điều đó làm cho hệ mật mã trở thành một 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ũng
đ−ợc phát triển sau đó bởi Goldwasser-Micali và
Blum-Goldwasser. Tất cả các hệ mật mã khố cơng khai kể trên sẽ đ−ợc
trình bày trong ch−ơng này cùng với một số tính chất liên quan ca
chỳng.
Sau đây ta sẽ nhắc lại một số bài toán số học đ−ợc sử dụng
đến khi xây dựng các hệ mật mã khố cơng khai nh− nói ở trên.
Các bài tốn này phần lớn đã đ−ợc trình bày trong ch−ơng II, một
số đ−ợc phát triển thêm cho các ứng dụng trực tiếp khi xây dựng
các hệ mã cụ thể, ta liệt kê d−ới đây một lần để thuận tiện cho các
chỉ dẫn về 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ả các ớc số nguyên tố của
nó, hay là tìm dạng phân tích chính tắc của n = 1 2
1 . 2 ...
<i>k</i>
<i>k</i>
<i>p</i>α <i>p</i>α <i>p</i>α , trong
đó pi là các số nguyên tố từng cặp khác nhau và các αi≥ 1.
Bài tốn này có liên hệ mật thiết với các bài tốn thử tính
ngun tố hay thử tính hợp số của một số nguyên, nh−ng với
những gì mà ta biết đến nay, nó d−ờng nh− khó hơn nhiều so với
hai bài tốn thử tính ngun tố và tính hợp số.
Trong lý thuyết mật mã, bài toán này th−ờng đ−ợc sử dụng
với các dữ liệu n là số nguyên Blum, tức các số nguyên d−ơng có
dạng tích của hai số ngun tố lớn nào ú.
Bài toán RSA (Rivest-Shamir-Adleman) :
Cho số nguyên dơng n là tích của hai số nguyên tố lẻ khác
nhau, một số nguyên dơng e sao cho gcd(e, (n)) =1, và một số
nguyên c ; tìm một sè nguyªn m sao cho <i>me</i>≡<i>c</i>(mod )<i>n</i> .
Điều kiện gcd(e,φ (n)) =1 bảo đảm cho việc với mỗi số
nguyên c ∈ {0,1,...,n -1} có đúng một số m ∈ {0,1,...,n -1} sao cho
.
(mod )
<i>e</i>
<i>m</i> ≡<i>c</i> <i>n</i>
tìm đ−ợc d =e -1<sub>mod</sub>φ<sub> (</sub><sub>n</sub><sub>), và do đó sẽ tìm đ</sub><sub>−</sub><sub>ợc </sub><sub>m</sub><sub> =</sub><sub>c</sub> d
modn. Nh−
vậy, bài tốn RSA có thể qui dẫn trong thời gian đa thức về bài tốn
phân tích số nguyên. Tuy rằng cho đến nay ch−a có một chứng
minh nào cho việc qui dẫn ng−ợc lại nh−ng nhiều ng−ời vẫn tin
rằng hai bài tốn đó là t−ơng đ−ơng với nhau về độ phức tạp tính
tốn.
Bµi toán thặng d bậc hai :
Cho một số nguyên lẻ n là hợp số, và một số nguyên aJn ,
tập tất cả các số a có ký hiệu Jacobi <i>a</i>
<i>n</i>
⎛⎜
⎜⎜ =1. Hãy quyết định xem a có
là thặng d− bậc hai theo modn hay không?
⎞⎟
⎟⎟
⎝ ⎠
Trong lý thuyết mật mÃ, bài toán này cũng thờng đợc xét
với trờng hợp nlà số nguyên Blum, tức n là tích của hai số nguyên
tố p và q , n =p.q. Ta chó ý r»ng trong tr−êng hỵp này, nếu aJn ,
thì a là thặng d bậc hai theo modn khi vµ chØ khi <i>a</i>
<i>p</i>
⎛ ⎞⎟
⎜ ⎟
⎜ ⎟
⎜ ⎟
⎜⎝ ⎠=1, điều kiện
này có thể thử đ−ợc dễ dàng vì nó t−ơng đ−ơng với điều kiện a (p
-1)/2≡<sub> 1 (mod</sub><sub>p</sub><sub>). Nh</sub><sub>−</sub><sub> vậy, trong tr</sub><sub>−</sub><sub>ờng hợp này, bài tốn thặng d</sub><sub>−</sub>
bậc hai có thể qui dẫn trong thời gian đa thức về bài tốn phân tích
số ngun. Mặt khác, nếu khơng biết cách phân tích n thành thừa
số ngun tố thì cho đến nay, khơng có cách nào giải đ−ợc bài toán
thặng d− bậc hai trong thời gian đa thức. Điều đó củng cố thêm
niềm tin rằng bài tốn thặng d− bậc hai và bài tốn phân tích số
ngun là cú khú tng ng nhau.
Bài toán tìm căn bậc hai modn :
Cho một số nguyên lẻ n là hợp số Blum, và một số a Qn ,
tức a là một thặng d bậc hai theo modn . HÃy tìm một căn bậc hai
Nh− vậy, bài tốn tìm căn bậc hai modn có thể qui dẫn trong thời
gian đa thức về bài toán phân tích số nguyên. Ng−ợc lại, nếu có
thuật tốn giải bài tốn tìm căn bậc hai modn thì cũng có thể xây
dựng một thuật tốn giải bài tốn phân tích số ngun nh− sau:
Chọn ngẫu nhiên một số x với gcd(x,n) =1, và tính a =x2<sub>mod</sub><sub>n</sub><sub>. </sub>
Dùng thuật tốn cho a để tìm một căn bậc hai modn của a. Gọi
căn bậc hai tìm đ−ợc đó là y. Nếu y ≡±x (modn), thì phép thử coi
nh− thất bại, và ta phải chọn tiếp một số x khác. còn nếu y ≢ ±x
(modn), thì gcd(x-y, n) chắc chắn là một −ớc số không tầm th−ờng
của n, cụ thể là p hay là q. Vì n có 4 căn bậc hai modn nên xác suất
của thành công ở mỗi lần thử là 1/2, và do đó số trung bình (kỳ
vọng tốn học) các phép thử để thu đ−ợc một thừa số p hayq của n
là 2, từ đó ta thu đ−ợc một thuật tốn giải bà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 một
nghĩa khơng chặt chẽ lắm, ta có thể xem hai bài tốn phân tích số
ngun và tìm căn bậc hai modn là khú tng ng nhau.
Bài toán lôgarit rời rạc :
Cho số nguyên tố p, một phần tử nguyên thuỷ theo modp
(hay là phần tử nguyên thuỷ của <i>Zp</i>
), và một phần tử <i>Zp</i>
.Tìm
Trong mục 2.4.3 ta đã giới thiệu qua bài toán này, và biết
rằng trong tr−ờng hợp chung, cho đến nay ch−a có một thuật tốn
nào giải bài tốn này trong thi gian a thc.
Bài toán này cũng đợc suy rộng cho các nhóm cyclic hữu
hạn nh sau:
Bài toán lôgarit rời rạc suy rộng :
Cho một nhóm cyclic hữu hạn G cấp n, một phần tử sinh
(nguyên thuỷ) của G, và một phần tử G. Tìm số nguyên x (0
xn - 1) sao cho αx = β.
Các nhóm đ−ợc quan tâm nhiều nhất trong lý thuyết mật mã
là: nhóm nhân của tr−ờng hữu hạn GF (p) - đẳng cấu với nhóm <i>Zp</i>
∗
cđa trờng Zp ,nhóm nhân <sub>2</sub><i>m</i>
F của trờng hữu hạn GF (2m<sub>), nhóm </sub>
nhân <i>Z<sub>n</sub></i> =
nhúm gm cỏc im trờn một đ−ờng cong elliptic xác định trên một
tr−ờng hữu hn, v.v...
Bài toán Diffie-Hellman :
HÃy tìm giá trị <i>ab</i>mod<i>p</i>.
Cú th chng minh đ−ợc rằng bài toán Diffie-Hellman qui
dẫn đ−ợc về bài tốn lơgarit rời rạc trong thời gian đa thức. Thực
vậy, giả sử có thuật tốn giải bài tốn lơgarit rời rạc. Khi đó, cho
một bộ dữ liệu vào của bài toán Diffie-Hellman gồm p, α,α<i>a</i>mod<i>p</i>
và α<i>b</i>mod<i>p</i>; tr−ớc hết dùng thuật toán cho (p, α ,α<i>a</i>mod<i>p</i>) ta
tìm đ−ợc , và sau đó tính đ<i>a</i> −ợc α<i>ab</i>mod<i>p</i>=(α<i>b a</i>) mod .<i>p</i> Ng−ời ta
cũng chứng minh đ−ợc hai bài tốn lơgarit rời rạc và
Diffie-Hellman là t−ơng đ−ơng về mặt tính tốn trong một số tr−ờng hợp,
ví dụ p -1 là B-mịn với B = O ((lnp)c ),c là hằng số.
T−ơng tự nh− với bài tốn lơgarit rời rạc, ta cũng có thể định
nghĩa các bài tốn Diffie-Hellman suy rộng cho các nhóm cyclic
hu hn khỏc.
Bài toán tổng tập con (hay bài toán KNAPSACK) :
Cho một tập các số nguyên d−ơng và một số
ngun d−ơng s. Hãy xác định xem có hay khơng một tập con các aj
mà tổng của chúng bằng s. Một cách t−ơng đ−ơng, hãy xác định
xem có hay không các xi ∈{0,1} (1≤i ≤ <i>n</i>) sao cho <sub>1</sub> .
<i>n</i>
<i>i</i> <i>i</i>
<i>i</i>= <i>a x</i> =<i>s</i>
Bài toán này là một bài toán NP- đầy đủ, tức là thuộc lớp
những bài tốn khó mà cho đến nay ch−a tìm đ−ợc thuật toán giải
chúng trong thời gian đa thức !
Bài tốn giải mã đối với mã tuyến tính :
Mã tuyến tính là một lớp mã truyền tin có tính chất tự sửa
sai đ−ợc sử dụng trong kỹ thuật truyền tin số hố. Khơng đi vào
chi tiết của lớp mã này, ta có thể phát biểu trực tiếp bài tốn giải mã
đối với mã tuyến tính nh− sau:
Cho mét ma trËn cÊp n xm A=(aij) gồm các thành phần là 0
hoặc 1, một vectơ <b>y</b> =(y1,y2,...,ym) các giá trị 0 và 1, và một số nguyên
dơng K. Hỏi: có hay không một vectơ <b>x</b> =(x1,x2,...,xn) gồm các số 0
hoặc 1 và có không nhiều hơn K số 1 sao cho với mäi j (1≤j ≤ <i>m</i>):
?
1
. (mod
<i>n</i>
<i>i</i> <i>ij</i> <i>j</i>
<i>i</i>
<i>x a</i> <i>y</i>
=
≡
Sơ đồ chung của hệ mật mã khố cơng khai đ−ợc cho bởi
Để xây dựng một hệ mật mà khoá công khai RSA, ta chọn
trớc một số nguyên n =p.q là tích của hai số nguyên tố lớn, chọn
mét sè e sao cho gcd(e,φ (n)) =1, vµ tÝnh sè d sao cho
e.d 1(mod (n)).
Mỗi cặp K =(K<i>,K''</i>), với <i>K' =(</i>n,e) và K'' = <i>d</i> sẽ là một cặp khoá cđa
mét hƯ mËt m· RSA cơ thĨ cho mét ng−êi tham gia.
Nh− vậy, sơ đồ chung của hệ mật mã RSA đ−ợc định nghĩa
bởi danh sách (1), trong đó:
cđa hai sè nguyªn tè;
Để chứng tỏ định nghĩa trên là hợp thức, ta phải chứng minh rằng
với mọi cặp khoá K =(K' ,K'' ), và mọi x∈
Thực vậy, do e.d ≡ 1(modφ (n)) ta có thể viết e.d = t .φ (n) +1. Nếu x
nguyên tố với n , thì dùng định lý Euler (xem 2.1.3) ta có
. (mod ) .
<i>ed</i> <i>t</i> <i>n</i> <i>t</i> <i>n</i>
<i>x</i> ≡<i>x</i>φ + ≡<i>x</i>φ <i>x</i> <i>n</i> =<i>x</i>
Nếu x khơng ngun tố với n , thì do n =p.q , hoặc x chia hết cho p
và nguyên tố với q, hoặc x chia hết cho q và nguyên tố với p, và
φ (n) =(p -1).(q -1),trong cả hai tr−ờng hợp ta đều có
( ) 1
( ) 1
(mod ),
(mod );
<i>t</i> <i>n</i>
<i>t</i> <i>n</i>
<i>x</i> <i>x</i> <i>p</i>
<i>x</i> <i>x</i> <i>q</i>
φ
φ
+
+
từ đó suy ra ( ) 1
(mod ),
<i>t</i> <i>n</i>
<i>x</i>φ + ≡<i>x</i> <i>n</i> tøc
Thí dụ: Giả sử chọn n =p.q = 2357.2551 = 6012707, ta sẽ có φ (n) =
(p -1).(q -1)=2356.2550 = 6007800. Chọn e = 3674911, và tính đ−ợc
d = 422191 sao cho e.d ≡ 1(modφ (n)). Một ng−ời dùng A có thể
chọn khố cơng khai là K' =(n =6012707, e = 3674911) và giữ khố bí
mật K'' =d =422191. Một đối tác B muốn gửi cho A một thông báo
x =5234673, sẽ dùng khố cơng khai để tạo bản mật mã y =xe
=
52346733674911<sub>mod6012707 = 3650502. A nhận đ</sub><sub></sub><sub>ợc </sub><sub>y</sub><sub>, giải mà sẽ </sub>
đợc bản rõ x =3650502422191<sub>mod 6012707 =5234673. </sub>
Để thực hiện hệ mật mã RSA cho một mạng truyền tin bảo
mật, ngoài việc xây dựng các ch−ơng trình tính tốn hàm
Tính tốn các số e,d , hay thực hiện các hàm
nhiỊu hƯ mật mà khác.
Bài toán thám mã (khi chỉ biết bản mã) đối với mật mã RSA
là: biết khố cơng khai K' =(n,e), biết bản mã y =x e
modn, tìm x. Bài
tốn này chính là bài tốn RSA đ−ợc trình bày trong mục 4.1.2.
Trong mục đó ta đã chứng tỏ rằng nếu biết hai thừa số p,q của n thì
dễ tìm đ−ợc x từ y, và nói chung có bằng chứng để coi rằng bài tốn
RSA (hay bài tốn thám mã RSA) là có độ khó t−ơng đ−ơng với bà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 các thừa số p,q , là
có ý nghĩa rất quyết định đến việc bảo vệ tính an tồn của hệ mật
mã RSA.
ng−ời tham gia phải độc lập lựa chọn các tham số n, e,d của riêng
mình, chọn n cũng có nghĩa là chọn các thừa số p,q của n (n =p.q),
Tuy nhiên, đó là điều kiện chung, cịn trong thực tế vẫn có
thể cịn nhiều sơ hở mà ng−ời thám mã có thể lợi dụng để tấn cơng
vào tính bảo mật của các hệ mã RSA khó mà l−ờng tr−ớc hết đ−ợc;
sau đây là một số tr−ờng hợp đơn giản đã biết mà ta cần chú ý:
1.Dùng mơđuyn n chung. Giả sử có hai ng−ời tham gia A và
B cùng sử dụng một môđuyn chung n trong khố cơng khai của
mình, chẳng hạn A chọn khố cơng khai (n,e) và giữ khố bí mật d,
B chọn khố cơng khai (n,a) và giữ khố bí mật b. Một ng−ời tham
gia thứ ba C gửi một văn bản cần bảo mật x đến cả A và B thì dùng
các khố cơng khai nói trên để gửi đến A bản mật mã y =x e<sub>mod</sub><sub>n</sub>
và gửi đến B bản mật mã z =<i>xa</i>mod<i>n</i>. Ta sẽ chứng tỏ rằng một
ng−ời thám mã O có thể dựa vào những thơng tin n,e,a,y,z trên
đ−ờng công khai mà phát hiện ra bản rõ x nh− sau:
a. TÝnh c = e -1<sub>mod</sub><sub>a</sub><sub>, </sub>
b. Sau đó tính h = (ce -1)/a ,
c. Và ta đ−ợc x = yc
(z h
)-1<sub> mod</sub><sub>n</sub><sub>. </sub>
Thực vậy, theo định nghĩa trên, ce -1 chia hết cho a, và tiếp theo ta
có: yc
(z h
)-1<sub>mod</sub><sub>n</sub><sub> = </sub><sub>x</sub> ec
. ( 1) / 1 1 1
(<i>xa ce</i>− <i>a</i>) mod− <i>n</i>=<i>xce</i>.(<i>xce</i>− −) mod<i>n</i>=<i>x</i>. Nh−
vậy, trong tr−ờng hợp này việc truyền tin bảo mật khơng cịn an
tồn nữa. Vì vậy, ta cần nhớ khi dùng các 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 các ng−ời
tham gia khác nhau!
2. 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 của hàm lập mã
là một số nguyên bé, chẳng hạn e =3. Tuy nhiên, nếu trong một
mạng truyền tin bảo mật dùng các hệ mật mã RSA, nếu có nhiều
ng−ời cùng chọn số mũ lập mã e bé giống nhau thì sẽ có nguy cơ bị
tấn công bởi việc thám mã nh− sau : Giả sử có ba ng−ời tham gia
chọn ba khố cơng khai là (n1, e), (n2, e), (n3, e) với cùng số mũ e =3.
Một ng−ời tham gia A muốn gửi một thơng báo x cho cả ba ng−ời
đó, và để bảo mật, gửi bản mã ci = x3modni cho ngi th i. Ba
môđuyn ni là khác nhau, và có phần chắc là từng cặp nguyên tố với
1 1
2 2
3 3
mod
mod
mod
<i>m</i> <i>c</i> <i>n</i>
<i>m</i> <i>c</i> <i>n</i>
<i>m</i> <i>c</i> <i>n</i>
≡
⎧
⎪ ≡
⎨
⎪ ≡
⎩
Vì x≤ni , nên x 3≤ n1<i>n</i>2<i>n</i>3 , do đó ắt có m =x 3. Vậy là ta đã đ−a đ−ợc
bài tốn tìm căn bậc ba theo nghĩa đồng d− modni về bài tốn tìm
căn bậc ba theo nghĩa số học thông thờng: tìm căn bậc ba của m ta
đợc x, tức đợc b¶n râ!
Với những lý do khác, ng−ời ta đã có những bằng chứng để
chứng tỏ rằng hệ RSA cũng khơng bảo đảm an tồn nếu ta dùng
3. Lỵi dơng tÝnh nhân của hàm lập mÃ. Ta chú ý rằng hàm
lËp m· f (x) = x e<sub>mod</sub><sub>n</sub><sub> cã tÝnh nh©n (multiplicative property), nghÜa </sub>
là f (x.y) = f (x).f (y). Dựa vào tính chất đó, ta thấy rằng nếu c là mật
mã của bản rõ x, thì <i>c</i> =<i>c u</i>. <i>e</i>mod<i>n</i> sẽ là mật mã của bản rõ xu. Do
đó, khi lấy đ−ợc bản mật mã c , để phát hiện bản rõ x ng−ời thám
mã có thể chọn ngẫu nhiên một số u rồi tạo ra bản mã <i>c</i> ,và nếu
ng−ời thám mã có khả năng thám mã theo kiểu ơ có bản mã đ−ợc
chọn ằ (xem 1.5.1), tức có khả năng với <i>c</i> c chn tỡm ra bn rừ
tơng ứng là <i>x</i> =xu ,thì bản rõ gốc cần phát hiện sẽ là x
= 1
. mod
<i>x u</i> <i>n</i>. Tất nhiên, khả năng ngời thám mà có năng lực giải
quyết bài toán thám mà theo kiểu có bản mà đợc chọn là rÊt hiÕm,
nh−ng dầu sao đấy cũng là một tr−ờng hợp mà vấn đề bảo mật dễ
bị tấn công, ta khơng thể khơng tính đến để tìm cách tránh!
4. Tấn công bằng cách lặp phép mÃ. Ta cịng chó ý r»ng hµm
lËp m· f (x) = x e
modn là một phép hoán vị trên tËp Zn ={0,1,...,n -1},
do đó với mọi c∈Zn nếu ta thực hiện lặp phép lập mã để đ−ợc
2
0 , 1 mod , 2 mod ,..., mod ,...
<i>i</i>
<i>e</i> <i>e</i> <i>e</i>
<i>i</i>
<i>c</i> =<i>c c</i> =<i>c</i> <i>n c</i> =<i>c</i> <i>n</i> <i>c</i> =<i>c</i> <i>n</i>
ắt sẽ tìm đợc số k 1 sao cho <i>c<sub>k</sub></i> =<i>cek</i> mod<i>n c</i>= . Nếu c là bản mÃ
của một bản rõ x nào đó, c =x e
modn, thì ngời thám mà có thể xuất
phát từ c thực hiện lặp phép lập mà nh trên sẽ tìm ®−ỵc sè k ≥ 1
bé nhất sao cho ck =c . Và khi đó ta sẽ có số hạng tr−ớc đó ck -1=x, là
bản rõ cần phát hiện. Thuật tốn về hình thức là khá đơn giản,
nh−ng hiệu quả thực hiện khơng đáng hy vọng lắm, vì số phép lặp
cÇn thùc hiƯn nãi chung cã thĨ là rất lớn, cỡ bằng số các phép hoán
vị trên Zn , tức là bằng n !, với số n có khoảng 200 chữ số thập phân.
Trên thực tế, phỏng theo thuật toán nói trên ta có thể dƠ dµng cã
tốn nh− vậy làm việc có hiệu quả thiết thực, nh− đã trình bày
trong một phần trên, là ch−a có! Vì vậy, nguy cơ bị thám mã bằng
thuật tốn đơn giản nói trên đối với tính an tồn của hệ mật mã
RSA là không đáng ngại lắm.
5. Về khả năng che giấu của bản mật mã. Mật mã, sở dĩ nó
giữ đ−ợc bí mật, là do khả năng che giấu thơng tin của nó, tức là
biết bản mã y khó lịng tìm đ−ợc thơng tin nào để phát hiện ra bản
rõ x. Một cách thô thiển, ta nói bản rõ x là 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 là không che giấu đ−ợc nếu bản mã của x cũng chính là x.
Tiếc rằng với bất kỳ hệ mật mã RSA nào cũng có những bản rõ
khơng che giấu đ−ợc, đó là những bản rõ x = -1, 0, 1 modn (vì số
mũ e luôn luôn là số lẻ). Ng−ời ta chứng minh đ−ợc rằng nếu n
=p.q, thì số các bản rõ x∈Zn khơng che giấu đ−ợc là bằng
(1+gcd(e -1, p -1)).(1+gcd(e -1, q -1)).
Vì e -1, p -1, q -1 là các số chẵn, nên số đó ít nhất là 9, nên mỗi hệ
RSA có ít nhất 9 bản rõ không che giấu đ−ợc. Tuy nhiên, th−ờng n,
và do đó cả p và q, đều rất lớn, nên tỷ lệ các bản rõ khơng che giấu
đ−ợc nói chung là bé khơng đáng kể, và do đó khả năng gặp các
bản rõ không che giấu đ−ợc không tạo nên một nguy cơ đáng kể
nào đối với việc dùng các hệ mật mã RSA.
Sơ đồ hệ mật mã khố cơng khai Rabin đ−ợc cho bởi
trong đó:
p và q là hai số ngun tố có tính chất p ≡ 3(mod4), q≡ 3(mod4),
2
mod .
4 2
<i>B</i> <i>B</i>
<i>y</i> <i>n</i>
+ −
Trong một mạng truyền tin bảo mật với sơ đồ mật mã Rabin,
mỗi ng−ời tham gia chọn cho mình các yếu tố n,B,p,q để lập nên
khố cơng khai và khố bí mật ca mỡnh.
Ta chú ý rằng với mỗi bộ khoá K, các thuật toán <i>eK</i>=
và <i>dK</i>=
khụng phải là một đơn ánh, vì nếu w là một căn bậc hai của 1 theo
modn thì <i>eK</i>′(w(x +
2
<i>B</i>
)
-2
<i>B</i>
) = <i>eK</i>′(x), mà ta có đến 4 căn bậc hai của
1 theo modn ,tức là ta có 4 giá trị khác nhau của đối số x cho cùng
Bây giờ nói đến thuật toán giải mã <i>dK</i>′′=
B 2<sub>/4 +</sub><sub>y</sub><sub>, ta cã </sub>
<i>K</i>
<i>d</i> <sub>′′</sub>(y) = <i>C</i> −<i>B</i>/ 2 m od<i>n</i>, do đó để có <i>dK</i>′′(y), ta cần
tính <i>C</i>modn, tức cần giải ph−ơng trình z 2≡ <sub>C</sub><sub> mod</sub><sub>n</sub><sub> . Ph</sub><sub>−</sub><sub>ơng </sub>
trình đó t−ơng đ−ơng với hệ thống gồm hai ph−ơng trình sau đây:
(2)
2
2
mod ,
mod .
<i>z</i> <i>C</i> <i>p</i>
<i>z</i> <i>C</i> <i>q</i>
⎧ ≡
⎪
⎨
≡
V× p và q là các số nguyên tố nên ta có
1
2 <sub>1mod</sub>
<i>p</i>
<i>C</i> <i>p</i>
−
≡ ,
1
2 <sub>1mod</sub>
<i>q</i>
<i>C</i> <i>q</i>
−
≡ .
Theo gi¶ thiÕt, <i>p </i> 3(mod4) và <i>q</i> 3(mod4), nên 1
4 4
<i>p</i>+ <i>q</i>+1
va` là các
số nguyên; và ta có
1 1
2 2
4 4
( ) (mod ), ( ) (mod ).
<i>p</i> <i>q</i>
<i>C</i> <i>C</i> <i>p</i> <i>C</i> <i>C</i>
+ +
± ≡ ± ≡ <i>q</i>
Do đó,ph−ơng trình z 2≡ <sub>C</sub><sub> mod</sub><sub>n</sub><sub> , hay hệ ph</sub><sub>−</sub><sub>ơng trình (2), có 4 </sub>
nghiệm theo modn , t−ơng ứng với 4 hệ ph−ơng trình sau đây :
( 1) / 4 ( 1) / 4
( 1) / 4 ( 1) / 4
(mod ) (mod )
(mod ) (mod )
<i>p</i> <i>p</i>
<i>q</i> <i>q</i>
<i>z</i> <i>C</i> <i>p</i> <i>z C</i> <i>p</i>
<i>z C</i> <i>q</i> <i>z</i> <i>C</i> <i>q</i>
+ +
+ +
⎧ ≡ ⎧ ≡
⎪ ⎪
⎨ ⎨
≡ ≡ −
⎪ ⎪
⎩ ⎩
( 1) / 4 ( 1) / 4
( 1) / 4 ( 1) / 4
(mod ) (mod )
(mod ) (mod )
<i>p</i> <i>p</i>
<i>q</i> <i>q</i>
<i>z</i> <i>C</i> <i>p</i> <i>z</i> <i>C</i> <i>p</i>
<i>z C</i> <i>q</i> <i>z</i> <i>C</i> <i>q</i>
+ +
Cả 4 nghiệm của 4 hệ ph−ơng trình đó theo modn đều đ−ợc viết
chung d−ới một ký hiệu là <i>C</i>modn, và vì vậy thuật tốn giải mã
<i>K</i>
ThÝ dơ : Gi¶ sư n =77 = 7.11, B =9 (ở đây p =7, q =11). Ta cã
<i>K</i>
<i>e</i> ′(x) = x 2 + 9x mod77,
<i>K</i>
<i>d</i> <sub>′′</sub>(y) = 1+ −<i>y</i> 43mod 77,
v× 2-1<sub>=39mod77, 9.2</sub>-1<sub> =9.39 =43mod77, </sub><sub>B</sub> 2<sub>=4mod77, </sub><sub>B</sub> 2<sub>/4 =1mod 77. </sub>
Víi x =44 ta cã <i>eK</i>′(x) = 44
2<sub>+9.44 =2332 =22mod77, bản mã t</sub><sub>−</sub><sub>ơng </sub>
ứng với x là y = 22. Bây giờ giải mã với bản mã y =22, bằng thủ tục
nói trên ta có thể tìm đ−ợc 4 giá trị của 1+ =<i>y</i> 1 22+ = 23 theo
mod77 là 10,67,32,45, từ đó 4 giá trị có thể có của <i>dK</i>′′(y) là
<i>K</i>
<i>d</i> <sub>′′</sub>(y) = 44, 24, 66, 2.
Bản rõ nằm trong 4 giá trị đó, trong tr−ờng hợp này là 44.
Trong định nghĩa của hệ mật mã Rabin, khố cơng khai là
(n,B), khố bí mật là (p,q) tức là cặp thừa số nguyên tố của n . Nh−
vậy, tính an tồn của hệ mật mã nằm ở việc giữ bí mật các thừa số p
và q. Định nghĩa của phép giải mã cũng cho ta thấy rằng yếu tố có
ý nghĩa quyết định trong phép giải mã là việc tính căn bậc hai của
một số theo modn. Trong mục 4.1.2 bài tốn tìm căn bậc hai theo
modn (với n là hợp số Blum) đã đ−ợc chứng tỏ là có độ khó t−ơng
đ−ơng với bài tốn phâ n tích n thành thừa số ngun tố. Vì vậy,
bài tốn giải mã đối với hệ mật mã Rabin, cũng là bài tốn giữ bí
mật khố bí mật (p,q), và bài tốn phân tích số ngun thành thừa
số ngun tố là có độ khó t−ơng đ−ơng nhau. Và đó cũng là yếu tố
bảo đảm tính an tồn của hệ mt mó Rabin !
H mật mã ElGamal đ−ợc T. ElGamal đề xuất năm 1985, dựa
vào độ phức tạp của bài tốn tính lơgarit rời rạc, và sau đó đã
nhanh chóng đ−ợc sử dụng rộng rãi không những trong vấn đề bảo
mật truyền tin mà còn trong các vấn đề xác nhận và chữ ký điện tử.
Sơ đồ hệ mật mã khố cơng khai ElGamal đ−ợc cho bởi
∗
,
ở đây là một phần tử nguyên thủ theo modp, tøc cđa <i>Zp</i>
∗
.
C¸c tht to¸n lËp m· <i>eK</i>=
c xỏc định nh− sau: Với mỗi x∈
<i>K</i>
<i>e</i> ′(x,k ) = (y1, y2), víi
1
2
mod ,
. mod
<i>k</i>
<i>k</i>
<i>y</i> <i>p</i>
<i>y</i> <i>x</i> <i>p</i>
α
β
⎧ =
⎪
⎨
=
⎪⎩ .
Với mọi số ngẫu nhiên k bất kỳ, ta đều xem <i>eK</i>′(x,k ) là mật mã của
x. Và thuật toán giải mã đ−ợc xác định bởi
<i>K</i>
<i>d</i> <sub>′′</sub>(y1, y 2) =
1
2.( 1) mod .
<i>a</i>
<i>y</i> <i>y</i> − <i>p</i>
Các phép lập mật mã và giải mã đ−ợc xác định nh− vậy là
hợp thức, vì ta có với mọi x∈
<i>dK</i>′′(<i>eK</i>′(x,k )) =
. 1
. <i>k</i>.( <i>k a</i>) mod . <i>k</i>. <i>k</i>mod .
<i>x</i>β α − <i>p x</i>= β β− <i>p x</i>=
Ta chú ý rằng trong một mạng truyền thông bảo mật với
việc dùng sơ đồ mật mã ElGamal, mỗi ng−ời tham gia tự chọn cho
mình các tham số p,α, a, rồi tính β, sau đó lập và cơng bố khố cơng
khai K'=(p,α ,β), nh−ng phải giữ tuyệt mật khố bí mật K'' = <i>a</i>. Bài
tốn biết khố cơng khai tìm ra khố bí mật chính là bài tốn tính
lơgarit rời rạc đ−ợc kể đến trong mục 4.1.2, một bài tốn khó cho
đến nay ch−a có một thuật tốn nào làm việc trong thời gian đa
thức giải đ−ợc nó.
Thí dụ : Chọn p = 2579, α =2, a =765, ta tính đ−ợc β = 2765<sub> = 949 </sub>
mod2579. Ta có khố cơng khai (2579, 2, 949) và khố bí mật 765.
Giả sử để lập mật mã cho x =1299, ta chọn ngẫu nhiên k =853, sẽ có
<i>K</i>
<i>e</i> <sub>′</sub>(1299, 853) = (2853<sub>, 1299. 949</sub>853<sub>)mod2579 </sub>
= (453, 2396).
Và giải mà ta đợc l¹i
<i>K</i>
<i>d</i> <sub>′′</sub>(453, 2396) = 2396. (453765<sub>)</sub>-1<sub>mod2579 = 1299. </sub>
nếu số nguuyên tố p đợc chọn là số nguyên tố Sophie Germain
(tøc cã d¹ng 2q +1, víi q cịng là số nguyên tố lớn).
Ngoi ra, cũn cú khả năng khố bí mật <i>K''</i> = <i>a</i>bị lộ do cẩu thả
trong việc sử dụng số ngẫu nhiên k, đặc biệt là khi để lộ số k đ−ợc
dùng. Thực vậy, nếu để lộ số k, thì khố bí mật a đ−ợc tính ra ngay
theo cơng thức sau đây:
1
2 1
( ) mod( 1).
<i>a</i>= −<i>x</i> <i>ky y</i>− <i>p</i>−
Nh− vậy,một ng−ời thám mã có khả năng tấn cơng theo kiểu
“biết cả bản rõ” (xem 1.5.1) có thể phát hiện ra khoá<i>a</i>nếu biết k .
Một tr−ờng hợp khác làm mất tính an tồn của hệ mật mã
ElGamal là việc dùng cùng một số k cho nhiều lần lập mật mã.
Thực vậy, giả sử dùng cùng một số ngẫu nhiên k cho hai lần lập
mã, một lần cho x1 , một lần cho x2 , và đ−ợc các bản mã t−ơng ứng
Hệ mật mà ElGamal đợc xây dựng dựa trên các yếu tố :
một nhóm hữu hạn cyclic (<i>Zp</i>
), một phần tư nguyªn thủ (α ∈<i>Zp</i>
∗
)
sao cho bài tốn tính lơgarit rời rạc (tính a = logαβ , tức cho β tìm a
sao cho β = α <i>a</i> modp) là rất khó thực hiện. Vì vậy, nếu có đủ các
yếu tố đó thì ta có thể xây dựng các hệ mật mã t−ơng tự ElGamal.
Nh− vậy, sơ đồ của một hệ mật mã t−ơng tự ElGamal đ−ợc cho bởi
trong đó:
C¸c tht to¸n lËp m· <i>eK</i>′=
c xỏc nh nh sau: Với mỗi x∈
hÕt ta chän thªm mét sè ngÉu nhiªn k (0≤ ≤<i>k</i> <i>G</i>) råi tÝnh:
<i>K</i>
<i>e</i> ′(x,k ) = (y1, y2), víi
1
2 .
<i>k</i>
<i>k</i>
<i>y</i>
<i>y</i> <i>x</i>
α
β
⎧ =
⎪
⎨
=
⎪⎩
Với mọi số ngẫu nhiên k bất kỳ, ta đều xem <i>eK</i>′(x,k ) là mật mã của
x. Và thuật toán giải mã đ−ợc xác định bởi
<i>K</i>
<i>d</i> <sub>′′</sub>(y1, y 2) =
1
2.( 1) mod .
<i>a</i>
<i>y</i> <i>y</i> − <i>p</i>
Có hai lớp nhóm th−ờng đ−ợc sử dụng để xây dựng các hệ
mật mã t−ơng tự ElGamal là nhóm nhân của tr−ờng Galois GF(pn
)
và nhóm cộng của một đ−ờng cong elliptic xác định trên một
tr−ờng hữu hạn.
1. Nhãm nh©n cđa tr−êng Galois GF(pn<sub>)</sub><sub> : Tr</sub><sub>−</sub><sub>êng Galois </sub>
GF(pn<sub>) là tr</sub><sub></sub><sub>ờng của các đa thức với hệ số trong </sub><sub>Z</sub>
p lÊy theo
môđuyn là một đa thức bậc n bất khả qui; với phép cộng và phép
nhân là phép cộng và phép nhân đa thức theo mơđuyn đó. Trng
cú pn
phần tử, có thể xem mỗi phần tử là một đa thức bậc n -1 với
hƯ sè thc Zp = {0,1,2,...,p -1}, thËm chÝ lµ một vectơ n chiều mà các
thnh phn l cỏc hệ số của đa thức đó. Tập tất cả các đa thức khác
0 lập thành nhóm nhân của tr−ờng GF (pn<sub>),và ng</sub><sub>−</sub><sub>ời ta chứng minh </sub>
đ−ợc rằng nhóm nhân đó là cyclic.
Nh− vËy, nhãm G = GF (pn<sub>) {0} lµ nhãm cyclic cÊp </sub><sub>p</sub>n<sub>-1. ta </sub>
có thể chọn một phần tử ngun thuỷ của nhóm đó, và thiết lập bài
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.
2. Nhãm céng của đờng cong elliptic : Giả sử p là một số
nguyên tố > 3. Đờng cong e p c ylli ti
;
2<sub>=</sub><sub>x</sub>3<sub>+a.x</sub><sub>+</sub><i><sub>b </sub></i><sub>trªn</sub><sub> </sub><sub>Z</sub>
p<i><b> , </b></i>trong đó
<i>a</i>,b ∈Zp là các hằng số thoả mãn 4a3+27b2 ≢ 0 (modp), c nh
nghĩa là tập hợp tất cả các điểm (x,y) Zp ì Zp thoả mÃn phơng
trình
y2≡<sub>x</sub>3<sub>+</sub><i><sub>a.x</sub></i><sub>+</sub><i><sub>b</sub></i><sub> (mod</sub><sub>p</sub><sub>), </sub>
cùng với một phần tử đặc biệt mà ta ký hiệu là O . Tập hợp đó
đ−ợc ký hiệu là E. Trên tập E ta xác định một phép cộng nh− sau :
Giả sử P =(x1, y1) và Q = (x2, y2) là hai điểm của E. Nếu x1=x2 và
y1= -y2 thì ta định nghĩa P +Q =O ; nếu khơng thì P +Q = (x3, y3),
trong đó
x3 = λ2-x1-x2 , y3 = λ (x1-x3) - y1 ,
víi
<i> </i> 2<sub>2</sub> 1 2 1
1 1
( ) /( ),
(3 ) / 2 , .
<i>y</i> <i>y</i> <i>x</i> <i>x</i> <i>khi P</i> <i>Q</i>
<i>x</i> <i>a</i> <i>y</i> <i>khi P</i> <i>Q</i>
λ<sub>= ⎨</sub>⎧⎪ − − ≠
+ =
⎪⎩
Ngoài ra, ta định nghĩa thêm : P +O = O+P = P.
Nh− đã giới thiệu trong ch−ơng II, các bài toán NP-đầy đủ là
các bài toán mà cho đến nay ch−a tìm đ−ợc một thuật tốn với độ
phức tạp tính tốn đa thức nào để giải chúng. Và tính ơ khóằ của
các bài tốn đó lại đ−ợc bảo đảm bằng sự kiện là chỉ cần có một
thuật toán với độ phức tạp đa thức giải một bài tốn NP-đầy đủ
nào đó thì lập tức mọi bài toán NP-đầy đủ đều giải đ−ợc trong thời
gian đa thức.
Đối với một số bài toán NP-đầy đủ, tuy khơng có thuật tốn
với độ phức tạp đa thức để giải đối với mọi dữ liệu của bài tốn,
nh−ng có thể có một lớp các dữ liệu mà đối với chúng có thuật tốn
để giải với thời gian chấp nhận đ−ợc. Với những bài tốn nh− vậy
ta có thể sử dụng để xây dựng các hệ mật mã khố cơng khai với
ngun tắc chung nh− sau : Hệ mật mã sẽ có phép giải mã t−ơng
đ−ơng với việc tìm lời giải cho bài tốn NP-đầy đủ đó; tuy nhiên có
một thủ tục để biến một dữ liệu nói chung của bài tốn NP-đầy đủ
đó thành một dữ liệu thuộc lớp đặc biệt mà đối với nó có thể giải
đ−ợc bởi một 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 một hàm ơ cửa sập
một phía ằ, và đó là cơ sở để xây dựng hệ mật mã khoá cụng khai
tng ng.
Ta sẽ xét sau đây hai trờng hợp xây dựng đợc các hệ mật
mà khoá công khai theo cách nh vậy : một là hệ mật mÃ
Merkle-Hellman dựa trên bài toán sắp ba lô (hay bài toán tổng tập con), và
hai là hệ mật mà Mc-Eliece dựa trên bài toán giải mà tun tÝnh tù
sưa sai.
Bài tốn sắp ba lơ (tức bài tốn KNAPSACK, cũng đ−ợc gọi
là bài toán tổng tập con) đ−ợc đặt ra nh− sau: Cho một tập các số
nguyên d−ơng
định xem có hay khơng một tập con các aj mà tổng của chúng bằng
s. Một cách t−ơng đ−ơng, hãy xác định xem có hay không các xi
∈{0,1} (1≤i ≤ <i>n</i>) sao cho <i>n</i><sub>1</sub> <i><sub>i</sub></i> <i><sub>i</sub></i> .
<i>i</i>= <i>a x</i> =<i>s</i>
Bài toán này là NP-đầy đủ, tuy nhiên nếu ta hạn chế bài toán
trên các dữ liệu I =(
siêu tăng, tức là dÃy thoả mÃn điều kiện
1
1
2, 3,..., : ,
<i>j</i>
<i>j</i> <i>i</i>
<i>i</i>
<i>j</i> <i>n a</i>
−
=
∀ = >
thì việc tìm trả lời là khá dễ dàng, chẳng hạn có thể bằng thuật tốn
đơn giản d−ới đây:
1. <b>for i</b> =n downto 1 <b>do </b>
<b> if T</b>> a<i>i<b> then T</b></i> = <i>T</i> – <i>ai</i>, <i>xi = 1, </i><b>else </b><i>xi = 0 </i>
2. <b>if </b>
1
.
<i>n</i>
<i>i</i> <i>i</i>
<i>i</i>
<i>x a</i> <i>T</i>
=
=
<b> else </b>there is no solution.
Bây giờ, để chuẩn bị xây dựng một sơ đồ mật mã Merkle-Hellman,
ta chọn tr−ớc một số nguyên d−ơng n và một số nguyên tố p đủ
lớn. Với mỗi ng−ời tham gia sẽ đ−ợc chọn một bộ khố K = (<i>K'</i>, <i>K''</i>),
trong đó khố bí mật K'' = (<i>A</i>,<i> p</i>, <i>a</i>) gồm một dãy siờu tng A=
khai K' = {<i>b</i>
1
,
<i>n</i>
<i>i</i>
<i>i</i>
<i>a</i> <i>p</i>
=
1,...,<i>bn} </i>víi bi = a.a<i>i modp</i>.
Sơ đồ hệ mật mã Merkle-Hellman đ−ợc định nghĩa bởi
trong đó
(<i>K'</i>, <i>K''</i>) nh− đ−ợc xây dựng ở trên. Các thuật toán lập mật mã và
giải mã đ−ợc xác định bởi:
Víi mäi <i>x</i>=( ,...,<i>x</i>1 <i>xn</i>)∈
1
.
<i>n</i>
<i>i</i> <i>i</i>
<i>i</i>
<i>x b</i>
=
và với mọi y∈
lời giải đó là giá trị của
Thí dụ: Chọn n =6, khố bí mật có p = 737, A={12, 17, 33, 74, 157,
316}, <i>a =635. Tính đ</i>−ợc khố cơng khai là {250, 477, 319, 559, 200,
196}. Với bản rõ x = 101101 ta có bản mã t−ơng ứng là y = 1324. Để
giải mã, tr−ớc hết tính z = <i>a</i>-1.<i>y</i> mod<i>p</i> = 635-1.1324 mod737 = 435, sau
đó giải bài tốn sắp balô với dãy siêu tăng A và z ta đ−ợc
Hệ mật mã Merkle-Hellman đ−ợc đề xuất khá sớm, từ năm
1978, đến năm 1985 Shamir tìm đ−ợc một ph−ơng pháp thám mã
trong thời gian đa thức dựa vào một thuật toán của Lenstra giải bài
tốn qui hoạch động. Tuy nhiên, sau đó, vào năm 1988, Chor và
Rivest có đ−a ra một cách khác xây dựng hệ mật mã cũng dựa vào
bài tốn sắp balơ, cho đến nay vẫn giữ đ−ợc an tồn.
Hệ mật mã McEliece đ−ợc xây dựng dựa vào tính NP-đầy
đủ của bài 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 ra nh− sau: giả sử nguồn tin là tập các từ k
bit nhị phân, tức tập hợp {0,1}k, đ−ợc truyền đi trên một kênh có
nhiễu, tức là nếu truyền trực tiếp các dãy từ k bit thì thơng tin mà ta
nhận đ−ợc có thể bị sai lệch và ta khơng nhận đ−ợc đúng thông tin
đ−ợc truyền đi. Để khắc phục những sai lệch đó ng−ời ta tìm cách
mã hố nguồn tin gốc bằng cách thêm cho mỗi từ k bit mang thông
tin một số bit dùng để tự hiệu chỉnh, tức là thực hiện một phép mã
hoá biến mỗi từ k bit ban đầu thành một từ n bit, với n > k, đ−ợc
gọi là từ mã. Phép mã hố tuyến tính là phép mã hố đ−ợc thực
cấp kìn đ−ợc xây dựng dựa trên một số tính chất đại số của tr−ờng
GF(2n<sub>)-mà ở đây ta không đi vào các chi tiết. </sub>
ma trận S khả nghịch cấp kìk trên Z2 và một ma trận hốn vị P cấp
n ìn (cũng có các phần tử trong Z2) để biến hệ mã Goppa với ma
trận sinh G thành một hệ mã tuyến tính “phổ biến” với ma trận
sinh G* =SGP; vậy là đã biến hệ mã Goppa có thuật tốn giải mã
hiệu quả thành một hệ mã tuyến tính nói chung mà ta chỉ biết việc
giải mã tự sửa sai đối với nó là NP-khó. Hệ mật mã mà ta xây
dựng sẽ có thuật tốn giải mã là “dễ” đối với ng−ời trong cuộc nh−
giải mã Goppa, và là “khó” đối với ng−ời ngồi nh− giải mã tuyến
tính nói chung!
Nh− vậy, một hệ mật mã khố cơng khai McEliece đ−ợc xác
định bởi
trong đó
với khố bí mật <i>K''</i>= (G,S,P ) gồm một ma trận sinh G của một hệ
mã Goppa, một ma trận khả nghịch S cấp kìk trên Z2 và một ma
trận hốn vị P cấp n ìn ; khố cơng khai <i>K'</i> = G* là ma trận “đã
đ−ợc biến đổi” nói trên.
Thuật tốn lập mật mã
trong đó <b>e</b> ∈ {0,1}n<sub> là một vectơ ngẫu nhiên có trọng s </sub><sub>t</sub><sub> , tc cú </sub><sub>t</sub>
thành phần là 1. Thuật toán giải mÃ
1. TÝnh y1 = y.P
–1
,
2. Giải mã Goppa đối với y1, giả sử đ−ợc x1.
3. Tính
-1<sub>. </sub>
Dễ thử lại rằng các thuật toán lập mật mã và giải mã xác
định nh− trên là hợp thức, vì với mọi x∈
Đẳng thức đó đúng với mọi vectơ <b>e</b> bất kỳ có trọng số ≤t . Hệ mật
mã này cũng t−ơng tự nh− hệ mật mã ElGamal ở chỗ khi lập mật
mã ta có thể chọn thêm cho dữ liệu vào một yếu tố ngẫu nhiên; về
sau ta sẽ gọi những hệ mật mã nh− vậy là hệ mật mã xác suất.
lín, kh¸ bÊt tiƯn cho viƯc thùc thi trong thùc tÕ, v× vËy mà các hệ
mật mà McEliece cha đợc sử dụng phỉ biÕn l¾m.
Mật mã xác suất là một ý t−ởng đ−ợc đề xuất bởi Goldwasser
và Micali từ năm 1984, xuất phát từ yêu cầu giải quyết một vấn đề
sau đây: Giả thiết ta có một hệ mật mã khố cơng khai, và ta muốn
lập mật mã cho bản rõ chỉ gồm một bit. Điều đó th−ờng gặp khi ta
muốn bí mật truyền đi một thơng tin chỉ có nội dung là có hoặc
khơng, tức là một thơng tin đặc biệt quan trọng nh−ng chỉ gồm một
bit. Nếu ta dùng một hệ mật mã khố cơng khai thơng th−ờng, thì
bản mật mã đ−ợc truyền đi sẽ là <i>eK</i>′(0) hoặc <i>eK</i>′(1), một ng−ời thám
m· cã thĨ kh«ng biết cách giải mÃ, nhng lại hoàn toàn có thể tính
trớc các giá trị <i>eK</i>(0) và <i>eK</i>(1), và khi lấy đợc bản mà truyền đi
trờn kờnh truyn tin công cộng, chỉ cần so sánh bản mã nhận đ−ợc
đó với hai bản <i>eK</i>′(0) và <i>eK</i>′(1) đã đ−ợc tính sẵn là đủ biết đ−ợc
thông tin mật đ−ợc truyền đi là 0 hay là 1. Các hệ mật mã khố
cơng khai sở dĩ có đ−ợc tính bảo mật là vì từ thơng tin về bản mã
khó lịng khai thác đ−ợc thơng tin gì về bản rõ, nh−ng rõ ràng điều
đó khơng cịn đ−ợc bảo đảm nếu số các bản rõ là rất ít, chẳng hạn
nh− khi các bản rõ có độ dài cực ngắn, hay nh− tr−ờng hợp trên, số
các bản rõ chỉ là hai, cụ thể là 0 và 1.
Mục đích của việc xây dựng mật mã xác suất là để bảo đảm
không một thông tin nào về bản rõ có thể khai thác đ−ợc (trong
thời gian đa thức) từ bản mã; điều này, đối với các hệ mật mã khố
cơng khai, có thể đ−ợc thực hiện bằng cách tạo cho một bản rõ
nhiều bản mã khác nhau thu đ−ợc một cách ngẫu nhiên với việc sử
dụng các số ngẫu nhiên trong tiến trình lập mã. Sau đây là định
nghĩa về một 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 bởi một bộ
trong đó
vàgiải mã <i>dK</i>′′=
víi mäi x∈