Tải bản đầy đủ (.pdf) (4 trang)

Phát triển thuật toán xác lập khóa cho các hệ mật mã khóa đối xứng

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 (325.23 KB, 4 trang )

Hội+ӝL7KҧR4XӕF*LDYӅĈLӋQ7ӱ7UX\ӅQ7K{QJYj&{QJ1JKӋ7K{QJ7LQ (&,7

Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Cơng Nghệ Thơng Tin (ECIT 2015)

PHÁT TRIӆN THUҰT TỐN XÁC LҰP KHĨA
CHO CÁC Hӊ MҰT MÃ KHĨA ĈӔI XӬNG
Hồng Văn ViӋt1, NguyӉn Ĉӭc Thөy2, Bùi ThӃ TruyӅn3, Lѭu Hӗng DNJng3.
Bӝ 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: , , ,

1

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 tố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 tồn
cӫa thuұt tốn mӟi ÿӅ xuҩt, cho thҩy khҧ năng ӭng dөng cӫa nó
trong thӵc tӃ.

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ÁT TRIӆN THUҰT TỐN XÁC LҰP KHĨA MӞI
CHO CÁC Hӊ MҰT KHĨA ĈӔI XӬNG

2.1 Thuұt tố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

Keywords- Symmetrical Key Cryptography System, Key
Establishment, Key Agreement Protocols, Key Exchange Protocol,
Key Transport Protocols.

cho bài toán logarit trong
I.

ĈҺT VҨN Ĉӄ

sinh cӫa Z ∗p .

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.

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:
(1.1)
y = g x mod p
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 tố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à xA, 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 − 1) . Tính giá trӏ R theo cơng thӭc:
k
(1.2)
R = ( y A ) mod p
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:
(k +1). x
(1.3)
K AB = ( y B )
mod p
2 - B hình thành khóa bí mұt chung KBA theo cơng thӭc:
x
(1.4)
K BA = (R × y A ) mod p


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 tố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 tố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 tố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á

ISBN: 978-604-67-0635-9


Z ∗p là khó giҧi và g là phҫn tӱ

A

B

232



Hội+ӝL7KҧR4XӕF*LDYӅĈLӋQ7ӱ7UX\ӅQ7K{QJYj&{QJ1JKӋ7K{QJ7LQ (&,7

Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Cơng Nghệ Thơng Tin (ECIT 2015)
Khóa bí mұt chung K cӫa A và B ӣ ÿây là:

x

K BA = (R × y A ) B mod p

K = K AB = K BA

= g k . x A mod p × g x A mod p

(
= (g (

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:

K A = H ( K AB )
và:

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 tốn mӟi ÿӅ xuҩt phө thuӝc
vào mӭc ÿӝ khó cӫa bài tố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 tốn khó nӃu tham sӕ p và
các giá trӏ k , xA , xB ÿѭӧ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 k mod p , 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: K BA = g (k +1). xA . xB mod p . Trong khi ÿó, C cNJng
tính khóa bí mұt chung vӟi B theo (1.3), nhѭng do không biӃt
xA, nên C phҧi chӑn ngүu nhiên 1 giá trӏ ngүu nhiên

A

B


phҧi nhҩn mҥnh rҵng, viӋc lӵa chӑn x A ÿӇ x A = x A ӣ ÿâ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 KAB 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

mұt
chung

nhұn
ÿѭӧc:
( k +1). x A . xB
.
Khi
nhұn
ÿѭӧc
R,
C
tính
khóa

K AB = g
mod p
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ұt xB cӫa B nên C phҧi chӑn ngүu



y A = g x A mod p , yB = g x mod p ,
1 < k < ( p − 1) . NӃu:
(k +1). x A
k
mod p , K BA = (R × y A )x mod p
R = ( y A ) mod p , K AB = ( y B )
thì: K AB = K BA .
B

B

Chͱng minh:

(k +1). x A

x∗A ÿӇ

tính KAB, nên sӁ nhұn ÿѭӧc: K AB = g (k +1). x . x mod p . Do:
x∗A ≠ x A , 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

ĈiӅu cҫn chӭng minh ӣ ÿây là: cho p là sӕ nguyên tӕ và g
phҫn tӱ sinh cӫa nhóm Z *p , 1 < x A , xB < ( p − 1) ,

(1.5)

(k +1). x A . x B


= (g mod p )
mod p = g
mod p
Mһt khác, tӯ (1.1), (1.2) và (1.4) ta lҥi có:
xB

)

a). Kh̫ năng ch͙ng ṱn cơng làm l͡ khóa bí m̵t

B

Thұt vұy, tӯ (1.1) và (1.3) ta có:
(k +1). x A
K AB = ( y B )
mod p

xB

k +1). x A

Mӭc ÿӝ an toàn cӫa thuұt tốn mӟi ÿӅ xuҩt có thӇ ÿѭӧc
ÿánh giá qua các khҧ năng nhѭ sau:

Khi ÿó khóa bí mұt chung cӫa A và B sӁ là:
K = KA = KB
Ӣ ÿây: KA 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 A = MD5( K AB ) hoһc: K A = SHA − 256( K AB )
và:
K B = MD5( K BA ) 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 AB = K BA = g ( k +1). x . x mod p , cịn thơng
tin A gӱi cho B là: R = g k mod p . 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 tố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 DiffieHellman. Tӯ ÿó cho thҩy thuұt tố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


(1.6)

mod p

mod p mod p = g (k +1). x A . x B mod p
Tӯ (1.5) và (1.6) suy ra ÿiӅu cҫn chӭng minh là:
K AB = K BA .

2.1.4 Mӭc ÿӝ an tồn cӫa thuұt tốn mӟi ÿӅ xuҩt

K B = H ( K BA )

A

xB

)

*



nhiên mӝt giá trӏ x B vӟi xác suҩt ÿӇ xB∗ = xB là rҩt nhӓ. Do
ÿó giá trӏ KBA mà C nhұn ÿѭӧc ӣ ÿây sӁ là:

K BA = g ( k +1). x A . xB mod p . DӉ dàng thҩy rҵng: K AB ≠ K BA do

233



Hội+ӝL7KҧR4XӕF*LDYӅĈLӋQ7ӱ7UX\ӅQ7K{QJYj&{QJ1JKӋ7K{QJ7LQ (&,7

Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Cơng Nghệ Thơng Tin (ECIT 2015)

xB∗ ≠ xB . 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 tốn xác lұp khóa dҥng 2

(2.8)

K BA = ( R × y A ) xB mod p

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:
q | ( p − 1) hay: p = N × q + 1 , vӟi N là sӕ nguyên.
2 - Chӑn g = α ( p −1) / q mod p , là phҫn tӱ sinh có bұc q cӫa
*

nhóm Zp , nghƭa là: 1 < g < p và: g q ≡ 1 mod p , ӣ
*

ÿây: α∈Zp .
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:
(2.1)
y = g x mod p
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à xA, khóa cơng khai tѭѫng ӭng cӫa A là yA;

Ĉӕi tѭӧng nhұn/giҧi mã thông tin ký hiӋu là B có khóa bí mұt
là xB và khóa cơng khai cӫa B là yB. Ӣ ÿâ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 tố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 tố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:
k
(2.2)
R = ( y A ) mod p
3 - Tính thành phҫn E theo cơng thӭc:
(2.3)
E = R mod q
4 - Tính thành phҫn S theo cơng thӭc:
(2.4)
S = x A × (k − E ) mod q
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 KAB theo cơng thӭc:
x . ( k +1)
(2.5)
K AB = ( y B ) A
mod p
2 - B hình thành khóa bí mұt KBA theo các bѭӟc:
2.1 - Tính giá trӏ R theo cơng thӭc:

E
(2.6)
R = g S × ( y A ) mod p
2.2 - Tính giá trӏ E theo cơng thӭc:
(2.7)
E = R mod q

Khóa bí mұt chung K cӫa A và B ӣ ÿây là:
K = K AB = K BA
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 xA 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 yA 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 (KBA)
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 tố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 tố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 KBA ÿѭӧ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 tồn vҽn tӯ phía A sang
cho phía B. Ĉây chính là cѫ chӃ xác thӵc tính tồn vҽn cӫa
khóa bí mұt ӣ thuұt tố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) / q mod p , α ∈ Z *p ,

1 < x A , xB < q , y A = g x mod p , y B = g xB mod p ,
1< k < q ,
k
,
,
(
)
S
=
x
×
k

E
mod

q . NӃu:
R = ( y A ) mod p E = R mod q
A
x . (k +1 )
E
S
K AB = ( y B )
mod p ,
R = g × ( y A ) mod p ,
A

A

,

x

K BA = (R × y A ) B mod p

E = R mod q

thì:

E =E



K AB = K BA .
Chӭng minh:
Thұt vұy, tӯ (2.1) và (2.4) ta có:

E
R = g S × ( y A ) mod p
= g x A .(k − E ) × g x A mod p

(

(

= g

k. xA

×g

− xA . E

×g

xA . E

E

) mod p
)mod p

k .xA

(2.9)

= g mod p

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:

2.3 - KiӇm tra nӃu E = E thì hình thành khóa bí mұt
KBA theo cơng thӭc:

E = R mod q = R mod q = E

234



Hội+ӝL7KҧR4XӕF*LDYӅĈLӋQ7ӱ7UX\ӅQ7K{QJYj&{QJ1JKӋ7K{QJ7LQ (&,7

Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015)
Tӯ (2.1), (2.2) và (2.5) ta có:
K AB = ( y B )
= (g

xB

x A . (k + )1

III.

mod p

x A . ( k +1)


mod p )

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 tố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 tố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
tồn vҽn (chӍ có ӣ dҥng thuұt tốn thӭ 2), vì thӃ các thuұt tố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 tồ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.

(2.11)

mod p

= g (k +1). x A . x B mod p


Mһt khác, tӯ (2.1), (2.8) và (2.10) ta lҥi có:
xB

K BA = (R × y A ) mod p

(2.12)

x

= (R × y A ) B mod p
= g k . x A mod p × g x A mod p

(

=g

( k +1). x A . xB

xB

)

KӂT LUҰN

mod p

mod p

Tӯ (2.11) và (2.12) ta có ÿiӅu cҫn chӭng minh thӭ hai:

K AB = K BA = K

Nhѭ vұy tính ÿúng ÿҳn cӫa thuұt tốn mӟi ÿӅ xuҩt ÿã
ÿѭӧc chӭng minh.
2.2.4 Tính an tồn cӫa thuұt tốn mӟi ÿӅ xuҩt
Mӭc ÿӝ an tồn cӫa thuұt tố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
tố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.

TÀI LIӊU THAM KHҦO
[1]
[2]

[3]

[4]

[5]
[6]

235


W. Diffie & M. Hellman, “New Directions in Cryptography”, IEEE
Trans. On Info. Theory, IT-22(6):644-654, 1976.
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.
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.
A. Menezes, P. van Oorschot and S. Vanstone, “Handbook of Applied
Cryptography”, Boca Raton, Florida: CRC Press, 1997.
D.R Stinson, “Cryptography: Theory and Practice”, CRC Press 1995.
Wenbo Mao, “Modern Cryptography: Theory and Practice”, Prentice
Hall PTR, 2003.



×