Bài báo đề xuất xây dựng 2 dạng thuật toán xác lập khóa mới cho các hệ mật mã khóa đối xứng. Các thuật toán mới đề xuất có ưu điểm là việc thiết lập khóa được thực hiện chỉ sau một lần truyền thông tin thiết lập khóa. Hơn nữa, khóa bí mật còn được xác thực về nguồn gốc nên các thuật toán được đề xuất ở đây có thể chống lại các kiểu tấn công giả mạo rất hiệu quả. Mời các bạn cùng tham khảo!
Trang 1Hoàng Văn ViӋt1, NguyӉn Ĉӭc Thөy2, Bùi ThӃ TruyӅn3, Lѭu Hӗng DNJng3
1Bӝ tѭ lӋnh Thông tin liên lҥc, 2Trѭӡng Cao ÿҷng Kinh tӃ - Kӻ thuұt TP Hӗ Chí Minh, 3Hӑc viӋn Kӻ thuұt Quân sӵ Email: viethv76@gmail.com, thuyphulam2013@gmail.com, buithetruyen@gmail.com, luuhongdung@gmail.com
Abstract — Bài báo ÿӅ xuҩt xây dӵng 2 dҥng thuұt toán xác lұp
khóa m ӟi cho các hӋ mұt mã khóa ÿӕi xӭng Các thuұt toán mӟi
ÿӅ xuҩt có ѭu ÿiӇm là viӋc thiӃt lұp khóa ÿѭӧc thӵc hiӋn chӍ sau
m ӝt lҫn truyӅn thông tin thiӃt lұp khóa Hѫn nӳa, khóa bí mұt
còn ÿѭӧc xác thӵc vӅ nguӗn gӕc nên các thuұt toán ÿѭӧc ÿӅ xuҩt
ӣ ÿây có thӇ chӕng lҥi các kiӇu tҩn công giҧ mҥo rҩt hiӋu quҧ
Bài báo cNJng trình bày các phân tích, ÿánh giá vӅ mӭc ÿӝ an toàn
c ӫa thuұt toán mӟi ÿӅ xuҩt, cho thҩy khҧ năng ӭng dөng cӫa nó
trong th ӵc tӃ
Keywords- Symmetrical Key Cryptography S ystem, Key
Establishment, Key Agreement Protocols, Key Exchange Protocol,
Key Transport Protocols
I ĈҺTVҨNĈӄ Trong lƭnh vӵc bҧo mұt thông tin, các hӋ mұt mã khóa ÿӕi
xӭng (Symmetrical Key Cryptography System) có ѭu thӃ lӟn
vӅ tӕc ÿӝ thӵc hiӋn so vӟi các hӋ mұt mã khóa công khai
(Public Key Cryptography System), vì vұy chúng thѭӡng ÿѭӧc
sӱ dөng ÿӇ mã hóa các khӕi dӳ liӋu có kích thѭӟc lӟn, ÿһc biӋt
là trong các giao dӏch trӵc tuyӃn
Trong các hӋ mұt mã khóa ÿӕi xӭng, viӋc thiӃt lұp mӝt
khóa chung (Key Establishment) cho cҧ bên gӱi/mã hóa và bên
nhұn/giҧi mã là mӝt vҩn ÿӅ rҩt quan trӑng, phӭc tҥp và thѭӡng
ÿѭӧc hiӋn bҵng: a) các giao thӭc thӓa thuұn khóa (Key
Agreement Protocols), ӣ ÿó mӛi bên tham gia sӁ tҥo ra thông
tin ÿӇ thӓa thuұn cho viӋc thiӃt lұp 1 khóa bí mұt dùng chung
rӗi trao ÿәi cho nhau, vì thӃ các giao thӭc thӓa thuұn khóa còn
ÿѭӧc gӑi là giao thӭc trao ÿәi khóa (Key Exchange Protocol)
mà giao thӭc ÿҫu tiên thuӝc loҥi này ÿѭӧc ÿӅ xuҩt bӣi W
Diffie và M Hellman vào năm 1976 và ÿѭӧc gӑi là giao thӭc
trao ÿәi khóa Diffie-Hellman (Diffie-Hellman Key Exchange
Protocol) [1]; b) các giao thӭc chuyӇn khóa (Key Transport
Protocols), trong ÿó khóa bí mұt ÿѭӧc sinh bӣi mӝt trong hai
ÿӕi tѭӧng gӱi hoһc nhұn, rӗi ÿѭӧc mã hóa và truyӅn ÿӃn ÿӕi
tѭӧng kia bҵng mӝt thuұt toán mұt mã khóa công khai nhѭ
RSA [2] hay ElGamal [3] Tuy nhiên, thӓa thuұn khóa bҵng
giao thӭc Diffie-Hellman hay viӋc sӱ dөng các thuұt toán mұt
mã khóa công khai nhѭ RSA hay ElGamal trong các giao thӭc
chuyӇn khóa ÿӅu có chung mӝt nhѭӧc ÿiӇm căn bҧn là không
có khҧ năng chӕng lҥi mӝt sӕ dҥng tҩn công giҧ mҥo nhѭ tҩn
công “kҿ ÿӭng giӳa” (Man-In-the-Middle Attack) [4-6], do
chúng không có cѫ chӃ xác thӵc bҧn tin khi nhұn ÿѭӧc Bài báo
ÿӅ xuҩt xây dӵng mӝt dҥng thuұt toán xác lұp khóa mӟi, ѭu
ÿiӇm cӫa các thuұt toán mӟi ÿӅ xuҩt là có khҧ năng xác thӵc vӅ
nguӗn gӕc cӫa khóa bí mұt ÿѭӧc tҥo ra, nên có thӇ chӕng ÿѭӧc
các kiӇu tҩn công giҧ mҥo ÿã biӃt trong thӵc tӃ Mһt khác, quá
trình thiӃt lұp khóa chung bҵng các thuұt toán này chӍ cҫn thӵc
hiӋn 1 lҫn truyӅn dӳ liӋu nên có thӇ sӁ phù hӧp vӟi các ӭng dөng ÿòi hӓi tӕc ÿӝ thӵc hiӋn cao
II PHÁTTRIӆNTHUҰTTOÁNXÁCLҰPKHÓAMӞI
CHOCÁCHӊMҰTKHÓAĈӔIXӬNG 2.1 Thuұt toán xác lұp khóa dҥng 1
2.1.1 Thӫ tөc hình thành các tham sӕ hӋ thӕng và khóa công khai
Thӫ tөc bao gӗm các bѭӟc nhѭ sau:
1 - Chӑn mӝt nhóm Zp vӟi p là mӝt sӕ nguyên tӕ lӟn sao
cho bài toán logarit trong ∗
p
Z là khó giҧi và g là phҫn tӱ sinh cӫa ∗
p
2 - Khóa riêng x cӫa các ÿӕi tѭӧng tham gia trao ÿәi khóa
ÿѭӧc FKӑn là mӝt sӕnguyên thӓa mãn: 1<x<(p−1)
3 - Khóa công khai tѭѫng ӭng y cӫa các ÿӕi tѭӧng tham gia trao ÿәi khóa ÿѭӧc tính theo công thӭc:
p g
y= xmod (1.1) 4- Công khai các giá trӏ: p, g, y Giӳ bí mұt: x
2.1.2 Thӫ tөc xác lұp khóa Giҧ sӱ các ÿӕi tѭӧng tham gia trao ÿәi khóa ӣ ÿây là A và
B Giҧ thiӃt các ÿӕi tѭӧng A và B cNJng ÿã thӕng nhҩt sӱ dөng mӝt thuұt toán mұt mã khóa ÿӕi xӭng (ví dө: DES, AES, ) ÿӇ
mã hóa thông tin (văn bҧn, tài liӋu, ) cҫn trao ÿәi vӟi nhau
Ĉӕi tѭӧng A có khóa riêng là x A, khóa công khai tѭѫng ӭng là
yA; ÿӕi tѭӧng B có khóa riêng là xB và khóa công khai cӫa B
là yB Khóa công khai cӫa A và B ÿѭӧc hình thành theo Thͯ
t ͭc hình thành các tham s͙ h͏ th͙ng và khóa công khai ӣ Mͭc 2.1 1 Ӣ ÿây yA và yB cҫn phҧi ÿѭӧc chӭng thӵc bӣi mӝt CA (Certificate Authority) ÿáng tin cұy Thuұt toán cho phép các
ÿӕi tѭӧng A và B thiӃt lұp mӝt khóa bí mұt chung K, bao gӗm
các bѭӟc nhѭ sau:
B ˱ͣc 1: chӍ thӵc hiӋn bӣi A
1 - Chӑn mӝt giá trӏ ngүu nhiên k thӓa mãn:
1<k< p− Tính giá trӏ R theo công thӭc:
R= A kmod (1.2)
2 - Gӱi R cho B
B ˱ͣc 2: ÿѭӧc thӵc hiӋn bӣi cҧ A và B
1 - A hình thành khóa bí mұt chung KAB theo công thӭc:
B
AB + 1 mod
= (1.3)
2 - B hình thành khóa bí mұt chung KBA theo công thӭc:
A
BA= × mod (1.4)
ISBN: 978-604-67-0635-9
Trang 2Khóa bí mұt chung K cӫa A và B ӣ ÿây là:
BA
AB K K
Chú ý:
Có thӇ gia tăng tính ngүu nhiên cho khóa bí mұt chung
cӫa A và B bҵng cách sӱ dөng hàm băm (Hash function) H(.)
nhѭ sau:
) ( AB
K =
và:
) ( BA
K =
Khi ÿó khóa bí mұt chung cӫa A và B sӁ là:
B
K
Ӣ ÿây: K A là khóa bí mұt chung do bên A tҥo ra, còn KB là
khóa bí mұt chung ÿѭӧc tҥo ra phía bên B
Ví dө: Giҧ sӱ A và B thӕng nhҩt sӱ dөng hӋ mã AES vӟi
khóa 128 bit hoһc 256 bit ÿӇ trao ÿәi thông tin mұt Khi ÿó, A
và B có thӇ sӱ dөng hàm băm MD 5 hoһc SHA-256 ÿӇ gia
tăng tính ngүu nhiên cho khóa mұt nhѭ sau:
) (
K = hoһc: K A =SHA−256(K AB)
và:
) (
K = hoһc: K B =SHA−256(K BA)
Nh ̵n xét:
Ӣ thuұt toán mӟi ÿӅ xuҩt, khóa bí mұt chung cӫa 2 ÿӕi
tѭӧng A và B là: K K K g k x A x B p
BA
=
=
tin A gӱi cho B là: R=g kmodp Nhѭ vұy, thông tin mà A
chuyӇn cho B không phҧi là khóa bí mұt nhѭ trong các giao
thӭc chuyӇn khóa (sӱ dөng mұt mã khóa công khai nhѭ RSA,
El Gamal, ) mà chӍ là thông tin ÿӇ thiӃt lұp khóa, tӯ ÿó B sӁ
tҥo nên khóa bí mұt chung cho mình Vì vұy, thuұt toán mӟi
ÿӅ xuҩt không phҧi là mӝt giao thӭc chuyӇn khóa ÿã ÿѭӧc biӃt
ÿӃn trong thӵc tӃ Mһt khác, thông tin dùng ÿӇ thiӃt lұp khóa
bí mұt chung ӣ ÿây chӍ ÿѭӧc tҥo ra bӣi 1 trong 2 bên và gӱi
cho bên kia mà không phҧi do cҧ 2 cùng tҥo ra rӗi trao ÿәi cho
nhau nhѭ ӣ các giao thӭc thӓa thuұn khóa kiӇu
Diffie-Hellman Tӯ ÿó cho thҩy thuұt toán ÿѭӧc ÿӅ xuҩt ӣ ÿây là mӝt
dҥng giao thӭc xác lұp khóa mӟi cho các hӋ mұt khóa ÿӕi
xӭng
2.1.3 Tính ÿúng ÿҳn cӫa thuұt toán mӟi ÿӅ xuҩt
ĈiӅu cҫn chӭng minh ӣ ÿây là: cho p là sӕ nguyên tӕ và g
là phҫn tӱ sinh cӫa nhóm *
p
Z , 1<x A,x B<(p−1) ,
p
g
y x A
R= A kmod , K (y )(k )x A p
B
A
BA= × mod thì: K AB=K BA
Ch ͱng minh:
Thұt vұy, tӯ (1.1) và (1.3) ta có:
( )( )
p g
p p
g
p y
K
B A A
B
A
x x k x
k x
x k B
AB
mod mod
mod
mod
1
1
1
+ +
+
=
=
Mһt khác, tӯ (1.1), (1.2) và (1.4) ta lҥi có:
p p
g p g
p y
R K
B A B
A
B A
A
B
x x k x
x k
x x
x
x A BA
mod mod
mod
mod mod
mod
mod
1
1
+ +
=
=
×
=
×
=
(1.6)
Tӯ (1.5) và (1.6) suy ra ÿiӅu cҫn chӭng minh là:
BA
AB K
2.1.4 Mӭc ÿӝ an toàn cӫa thuұt toán mӟi ÿӅ xuҩt Mӭc ÿӝ an toàn cӫa thuұt toán mӟi ÿӅ xuҩt có thӇ ÿѭӧc ÿánh giá qua các khҧ năng nhѭ sau:
a) Kh ̫ năng ch͙ng ṱn công làm l͡ khóa bí m̵t
Tӯ (1.3) và (1.4) cho thҩy, mӝt ÿӕi tѭӧng thӭ 3 (kҿ tҩn công) muӕn tính ÿѭӧc khóa bí mұt chung (K) thì cҫn phҧi biӃt ÿѭӧc k
và xA hoһc xB nhӡ giҧi (1.1) và (1.2) ViӋc giҧi (1.1) và (1.2) thӵc chҩt là giҧi bài toán logarit rӡi rҥc - DLP (Discrete Logarithm Problem) [4-6] Nhѭ vұy, khҧ năng chӕng tҩn công làm lӝ khóa bí mұt chung cӫa thuұt toán mӟi ÿӅ xuҩt phө thuӝc vào mӭc ÿӝ khó cӫa bài toán logarit rӡi rҥc HiӋn tҥi, bài toán logarit rӡi rҥc vүn ÿѭӧc coi là bài toán khó nӃu tham sӕ p và các giá trӏ k, x A , x B ÿѭӧc chӑn ÿӫ lӟn ÿӇ tҩn công theo kiӇu
“vét cҥn” là không khҧ thi trong các ӭng dөng thӵc tӃ
b) Kh̫ năng ch͙ng ṱn công gi̫ m̩o
Giҧ sӱ C là kҿ tҩn công giҧ mҥo, vҩn ÿӅ ÿһt ra là C có thӇ mҥo danh A ÿӇ thiӃt lұp ÿѭӧc khóa bí mұt chung vӟi B hoһc
C mҥo danh B ÿӇ thiӃt lұp khóa bí mұt chung vӟi A bҵng thuұt toán mӟi ÿӅ xuҩt hay không?
Tr ˱ͥng hͫp thͱ nh̭t, C mҥo danh A ÿӇ thiӃt lұp khóa bí
mұt chung vӟi B Ĉҫu tiên C chӑn ngүu nhiên mӝt giá trӏ k thӓa mãn: 1<k<p−1 và tính: R=g kmodp, rӗi gӱi R cho B Khi nhұn ÿѭӧc R, B sӁ tính khóa bí mұt chung vӟi A theo (1.4) và ÿѭӧc: ( )
p g
K k x A x B
tính khóa bí mұt chung vӟi B theo (1.3), nhѭng do không biӃt
x A, nên C phҧi chӑn ngүu nhiên 1 giá trӏ ngүu nhiên ∗
A
x ÿӇ
tính K AB, nên sӁ nhұn ÿѭӧc: ( )
p g
K k x A x B
+
A
x ≠∗ , nên: K AB ≠K BA, nghƭa là C ÿã thҩt bҥi trong viӋc mҥo danh A ÿӇ thiӃt lұp khóa bí mұt chung vӟi B CNJng cҫn phҧi nhҩn mҥnh rҵng, viӋc lӵa chӑn ∗
A
x ÿӇ x =A∗ xA ӣ ÿây ÿѭӧc loҥi trӯ, vì ÿiӅu ÿó xҧy ra cNJng ÿӗng nghƭa vӟi viӋc giҧi ÿѭӧc bài toán logarit rӡi rҥc
Tr ˱ͥng hͫp thͱ hai, C mҥo danh B ÿӇ thiӃt lұp khóa
chung vӟi A Khi ÿó, A sӁ chӑn k thӓa mãn: 1<k< p−1ÿӇ
tính R theo (1.2) rӗi gӱi cho B, mà thӵc chҩt ngѭӡi nhұn ӣ
ÿây là C Sau ÿó A sӁ tính khóa bí mұt chung K AB theo (1.3)
Do C mҥo danh B, nên A sӁ sӱ dөng khóa công khai cӫa B ÿӇ tính khóa bí mұt chung và nhұn ÿѭӧc:
g
K k x A x B
AB + 1 mod
= Khi nhұn ÿѭӧc R, C tính khóa bí
mұt chung vӟi A theo (1.4), ÿiӅu cҫn chú ý ӣ ÿây là do C không biӃt ÿѭӧc khóa bí mұtxB cӫa B nên C phҧi chӑn ngүu nhiên mӝt giá trӏ x*B vӟi xác suҩt ÿӇ x =B∗ xB là rҩt nhӓ Do
ÿó giá trӏ K BA mà C nhұn ÿѭӧc ӣ ÿây sӁ là:
g
K k x A x B
+
= DӉ dàng thҩy rҵng: K AB≠K BA do
Trang 3
B
x ≠∗ Nói cách khác, C ÿã không thiӃt lұp ÿѭӧc khóa
chung vӟi A
Nhѭ vұy là trong cҧ 2 trѭӡng hӧp C ÿӅu không ÿҥt ÿѭӧc
mөc ÿích giҧ mҥo cӫa mình
2.2 Thuұt toán xác lұp khóa dҥng 2
2.2.1 Thӫ tөc hình thành tham sӕ hӋ thӕng và khóa
Thӫ tөc bao gӗm các bѭӟc nhѭ sau:
1 - Sinh 2 sӕ nguyên tӕ lӟn và mҥnh: p và q, sao cho:
) 1
(
| p−
q hay:p=N×q+1, vӟi N là sӕ nguyên
2 - Chӑn g ( −p1 ) /qmodp
=α , là phҫn tӱ sinh có bұc q cӫa nhóm Zp*, nghƭa là: 1<g < p và: g q ≡1modp, ӣ
p Z
∈
3 - Khóa riêng x ÿѭӧc Kunh WKjnh bҵng Fich FKӑn sӕ
nguyên thӓa mãn: 1<x < q
4 - Khóa công khai ÿѭӧc tính theo công thӭc:
p g
y= xmod (2.1)
5 - Công khai các giá trӏ: p, g, y Giӳ bí mұt: x
2.2.2 Thӫ tөc xác lұp khóa
Các ÿӕi tѭӧng cҫn trao ÿәi thông tin mұt cùng thӕng nhҩt
chӑn các tham sӕ p , q và g rӗi chӑn khóa riêng và tính khóa
công khai cӫa mình theo Thͯ tͭc hình thành khóa công khai ӣ
M ͭc 2.2.1 Giҧ sӱ ÿӕi tѭӧng gӱi/mã hóa thông tin ký hiӋu là A
có khóa bí mұt là x A, khóa công khai tѭѫng ӭng cӫa A là y A;
Ĉӕi tѭӧng nhұn/giҧi mã thông tin ký hiӋu là B có khóa bí mұt
là x B và khóa công khai cӫa B là y B Ӣ ÿây yA và yB cNJng cҫn
phҧi ÿѭӧc chӭng thӵc bӣi mӝt CA (Certificate Authority)
ÿáng tin cұy Các ÿӕi tѭӧng A và B thӕng nhҩt sӱ dөng mӝt
thuұt toán mұt mã khóa ÿӕi xӭng (ví dө: DES, AES, ) ÿӇ mã
hóa thông tin (văn bҧn, tài liӋu, ) cҫn trao ÿәi vӟi nhau, khi
ÿó thuұt toán ÿӇ thiӃt lұp mӝt khóa bí mұt chung cho phép A
mã hóa thông tin, B giҧi mã thông tin hoһc ngѭӧc lҥi, bao gӗm
các bѭӟc nhѭ sau:
B ˱ͣc 1: ChӍ thӵc hiӋn bӣi A
1 - Chӑn ngүu nhiên mӝt giá trӏ k thӓa mãn: 1<k < q
2 - Tính giá trӏ R theo công thӭc:
3 - Tính thành phҫn E theo công thӭc:
4 - Tính thành phҫn S theo công thӭc:
x
5 - Gӱi (E,S) cho ÿӕi tѭӧng B
B ˱ͣc 2: Ĉѭӧc thӵc hiӋn bӣi cҧ A và B
1 - A hình thành khóa bí mұt K AB theo công thӭc:
K AB B x A +k1 mod
2 - B hình thành khóa bí mұt K BA theo các bѭӟc:
2.1 - Tính giá trӏ R theo công thӭc:
(y ) p g
R= S× A Emod (2.6)
2.2 - Tính giá trӏ E theo công thӭc:
E=Rmodq (2.7)
2.3 - KiӇm tra nӃu E = E thì hình thành khóa bí mұt
K BA theo công thӭc:
p y
R
A
Khóa bí mұt chung K cӫa A và B ӣ ÿây là:
BA
K
Nh̵n xét:
- Tѭѫng tӵ thuұt toán ÿӅ xuҩt trong Mͭc 2.1, thuұt toán ÿӅ
xuҩt ӣ ÿây cNJng là mӝt dҥng giao thӭc xác lұp khóa mӟi mà không phҧi là các dҥng giao thӭc chuyӇn khóa hay thӓa thuұn khóa ÿã biӃt trong thӵc tӃ
- Thay vì gӱi cho B giá trӏ R nhѭ ӣ thuұt toán dҥng 1, ӣ
thuұt toán dҥng này A gӱi cho B cһp (E,S) ÿѭӧc tҥo ra tӯ R và
khóa bí mұt x A cӫa mình theo (2.3) và (2.4) Nhӡ ÿó B có thӇ khôi phөc lҥi giá trӏ R tӯ cһp (E,S) nhұn ÿѭӧc và khóa công khai y A cӫa A theo (2.6) Tӯ giá trӏ R này (trong B˱ͣc 2 ÿѭӧc
ký hiӋu là R), B sӁ tҥo ÿѭӧc khóa bí mұt dùng chung vӟi A
Vҩn ÿӅ quan trӑng là ӣ chӛ, R ÿѭӧc khôi phөc tӯ (E,S) nhӡ
khóa công khai cӫa A theo (2.6) chӭng tӓ rҵng (E,S) phҧi ÿѭӧc
A tҥo ra tӯ khóa bí mұt cӫa mình theo (2.3) và (2.4) ĈiӅu ÿó
có nghƭa là (E,S) và do ÿó khóa bí mұt mà B tҥo ÿѭӧc (K BA)
phҧi có nguӗn gӕc tӯ A Ĉây chính là cѫ chӃ xác thӵc nguӗn
gӕc khóa bí mұt cӫa thuұt toán mӟi ÿӅ xuҩt, nhӡ ÿó có thӇ
chӕng ÿѭӧc các kiӇu tҩn công giҧ mҥo khóa bí mұt
- Trong B ˱ͣc 2 cӫa thuұt toán mӟi ÿӅ xuҩt, B chӍ tҥo khóa
bí mұt chung vӟi A khi kiӇm tra thҩy thӓa mãn ÿiӅu kiӋn:
E
E = Tӯ (2.3), (2.4), (2.6) và (2.7) cho thҩy ÿiӅu kiӋn này
chӍ ÿѭӧc thӓa mãn nӃu (E,S) ÿѭӧc truyӅn tӯ A sang B nguyên
vҽn mà không có bҩt kǤ sӵ thay ÿәi nào cҧ Mӝt sӵ thay ÿәi giá trӏ cӫa E hoһc S hay ÿӗng thӡi cҧ hai ÿӅu dүn ÿӃn kӃt quҧ
là ÿiӅu kiӋn: E = E sӁ không ÿѭӧc thӓa mãn ĈiӅu ÿó có nghƭa
rҵng, nӃu ÿiӅu kiӋn ÿã chӍ ra ÿѭӧc thӓa mãn thì giá trӏ R ÿѭӧc
tҥo ra ӣ phía bên A sӁ ÿѭӧc khôi phөc chính xác ӣ phía bên B (R = R) và do ÿó khóa bí mұt chung K BAÿѭӧc tҥo ra phía bên
B sӁ bҵng chính khóa bí mұt ÿѭӧc tҥo ra ӣ phía bên A Nói khác ÿi, khóa bí mұt ÿã ÿѭӧc truyӅn toàn vҽn tӯ phía A sang cho phía B Ĉây chính là cѫ chӃ xác thӵc tính toàn vҽn cӫa khóa bí mұt ӣ thuұt toán mӟi ÿӅ xuҩt dҥng 2
2.2.3 Tính ÿúng ÿҳn cӫa thuұt toán ÿӅ xuҩt
ĈiӅu cҫn chӭng minh ӣ ÿây là: cho p, q là 2 sӕ nguyên tӕ
ÿӝc lұp thӓa mãn: q| (p− 1 ) , g (p− 1 ) /qmodp
p
Z
∈
q x
x A B<
< ,
A= mod , y g x B p
B= mod , 1<k < q ,
R= A kmod , E=Rmodq , S x (k E) q
K AB B x A +k1 mod
A
S× mod
A
BA= × mod , E=Rmodq thì: E = E và
BA
Chӭng minh:
Thұt vұy, tӯ (2.1) và (2.4) ta có:
p g
p g
g g
p p
g g
p y
g R
A
A A A
A A
x
E x E x x
E x
E k x
E A S
mod
mod
mod mod
mod
.
.
.
=
×
×
=
×
=
×
=
−
Tӯ (2.2) và (2.9) suy ra: R = R (2.10)
Tӯ (2.3), (2.7) và (2.10) suy ra ÿiӅu cҫn chӭng minh thӭ
nhҩt:
E q R q R
Trang 4
Tӯ (2.1), (2.2) và (2.5) ta có:
g
p p
g
p y
K
B A
A B
A
x x
k
k x x
k x B AB
mod
mod mod
mod
.
1
1
1
+
+ +
=
=
=
(2.11)
Mһt khác, tӯ (2.1), (2.8) và (2.10) ta lҥi có:
p g
p p g p g
p y
R
p y
R
K
B A
B A A
B B
x x
k
x x x
x A
x A BA
mod
mod mod mod
mod mod
.
.
1
.
+
=
×
=
×
=
×
=
(2.12)
Tӯ (2.11) và (2.12) ta có ÿiӅu cҫn chӭng minh thӭ hai:
K K
K AB= BA=
Nhѭ vұy tính ÿúng ÿҳn cӫa thuұt toán mӟi ÿӅ xuҩt ÿã
ÿѭӧc chӭng minh
2.2.4 Tính an toàn cӫa thuұt toán mӟi ÿӅ xuҩt
Mӭc ÿӝ an toàn cӫa thuұt toán mӟi ÿӅ xuҩt ӣ dҥng 2 cNJng
ÿѭӧc ÿánh giá qua các khҧ năng nhѭ sau:
a) Kh ̫ năng ch͙ng ṱn công làm l͡ khóa bí m̵t
Phân tích tѭѫng tӵ nhѭ ӣ Mөc 2.1.4 a) có thӇ thҩy rҵng
khҧ năng chӕng tҩn công làm lӝ khóa bí mұt cӫa 2 thuұt toán
này là nhѭ nhau và ÿӅu phө thuӝc vào tính khó giҧi cӫa bài
toán logarit rӡi rҥc
b) Kh̫ năng ch͙ng ṱn công gi̫ m̩o
Nhѭ ÿã chӍ ra trong phҫn Nh̵n xét cӫa Mͭc 2.2.2, nӃu
ÿiӅu kiӋn kiӇm tra: E = E không ÿѭӧc thӓa mãn thì B có thӇ
khҷng ÿӏnh cһp (E,S) nhұn ÿѭӧc hoһc không phҧi do A gӱi ÿӃn
hoһc ÿã bӏ thay ÿәi trong quá trình truyӅn ÿi tӯ A, vì thӃ khóa
mұt chung vӟi A sӁ không ÿѭӧc tҥo ra Phân tích tѭѫng tӵ nhѭ
ӣ mөc 2.1.4 b) cho thҩy ngay cҧ trѭӡng hӧp kҿ tҩn công mҥo
danh A tҥo ÿѭӧc cһp (E,S) thӓa mãn ÿiӅu kiӋn kiӇm tra nhѭ ÿã
chӍ ra thì cNJng không thӇ thiӃt lұp ÿѭӧc khóa bí mұt chung vӟi
B
III KӂTLUҰN Bài báo ÿӅ xuҩt 2 dҥng thuұt toán xác lұp khóa mӟi cho các hӋ mұt khóa ÿӕi xӭng, các thuұt toán mӟi ÿӅ xuҩt có các ÿһc ÿiӇm cѫ bҧn nhѭ sau:
- ThiӃt lұp khóa bí mұt chung giӳa các ÿӕi tѭӧng tham gia giao dӏch chӍ phҧi thӵc hiӋn mӝt 1 lҫn truyӅn dӳ liӋu duy
nhҩt tѭѫng tӵ nhѭ các giao thӭc chuyӇn khóa sӱ dөng mұt mã khóa công khai
- Thông tin ÿѭӧc chuyӇn tӯ ÿӕi tѭӧng gӱi/mã hóa sang ÿӕi tѭӧng nhұn/giҧi mã hoһc ngѭӧc lҥi, không phҧi là khóa bí
mұt mà chӍ là thông tin dùng ÿӇ thiӃt lұp khóa chung giӳa 2 ÿӕi tѭӧng, tѭѫng tӵ nhѭ thông tin dùng ÿӇ thӓa thuұn khóa trong các giao thӭc trao ÿәi khóa Tuy nhiên, thông tin này chӍ
cҫn truyӅn ÿi theo 1 chiӅu, do ÿó ӣ các thuұt toán mӟi ÿӅ xuҩt
viӋc truyӅn dӳ liӋu chӍ cҫn thӵc hiӋn 1 lҫn duy nhҩt
- Khóa bí mұt chung ÿѭӧc xác thӵc vӅ nguӗn gӕc và tính toàn vҽn (chӍ có ӣ dҥng thuұt toán thӭ 2), vì thӃ các thuұt toán này có khҧ năng chӕng ÿѭӧc các dҥng tҩn công giҧ mҥo ÿã
biӃt trong thӵc tӃ
Tính hiӋu quҧ và mӭc ÿӝ an toàn cӫa các thuұt toán mӟi
ÿӅ xuҩt cho thҩy khҧ năng ӭng dөng cӫa chúng trong thӵc tӃ là
rҩt khҧ quan
TÀILIӊUTHAMKHҦO [1] W Diffie & M Hellman, “New Directions in Cryptography”, IEEE Trans On Info Theory, IT-22(6):644-654, 1976
[2] R L Rivest, A Shamir, and L M Adleman, “A Method for Obtaining Digital Signatures and Public Key Cryptosystems”, Commun of the ACM, Vol 21, No 2, pp 120-126, 1978
[3] T ElGamal, “A public key cryptosystem and a signature scheme based
on discrete logarithms”, IEEE Transactions on Information Theory Vol IT-31, No 4 pp.469–472, 1985
[4] A Menezes, P van Oorschot and S Vanstone, “Handbook of Applied Cryptography”, Boca Raton, Florida: CRC Press, 1997
[5] D.R Stinson, “Cryptography: Theory and Practice”, CRC Press 1995 [6] Wenbo Mao, “Modern Cryptography: Theory and Practice”, Prentice Hall PTR, 2003