You are on page 1of 33

c 

   

   

i   

i i  i 
m 

Mӣ đҫu
Phương pháp RSA
Phương pháp DSA
One--time digital signature
One
r 
r    
 
 

Kác nhұn ngưӡi dùng (Authentication)


Tính toàn vҽn thông tin (Data Integrity)
Không thӇ tӯ chӕi trách nhiӋm (Non-
(Non-Repudiation)
r    !"

c     Ä  Ä chuӛi dӳ liӋu cho phép xác đӏnh


nguӗn gӕc/xuҩt xӭ/thӵc thӇ đã tҥo ra 1 thông điӋp.
điӋp.
i
           Ä  Ä phương pháp
tҥo ra chӳ ký điӋn tӱ
      Ä Ä ao gӗm m m m  m 

 m và m m m m   

 mm..
Ô 
   
Ô 
      
Ô 
     
r   

r Không gian thông điӋp


r Không gian thông điӋp đưӧc ký
Không gian chӳ ký
 Ánh xҥ 1-
1-1 tӯ r vào r (redundancy function)
r Ҧnh cӫa 
-1 Hàm ngưӧc cӫa 
 Hàm mӝt chiӅu vӟi tұp nguӗn r
r Không gian giá trӏ  (Ä r= r)
>  

chӳ ký điӋn tӱ vӟi phҫn đính kèm

r
r
  




 
()
= ( )
= )
rx 
;
; Rm  }}

s# $  %&'   (
'')

chӳ ký điӋn tӱ đi kèm vӟi thông điӋp gӕc


cҫn có thông điӋp (gӕc) cho quá trình kiӇm tra chӳ
ký điӋn tӱ
Sӱ dөng hàm m mұt mã (thay vì redundancy
function)
Ví dөÄ DSA ElGamal Schnorr«
4 

Vӟi mӛi
; R có thӇ dӉ dàng tính 

Phҧi dӉ dàng tính đưӧc 


Rҩt khó đӇ mӝt ngưӡi không phҧi là  có thӇ tìm
ra  ; r và ;
; sao cho ( )) = m
vӟi 
  ( )
c 
 * "+ #' ,'
 -'  . -'

r r
  



r

r r
 -1 
 
4 

Vӟi mӛi
; R có thӇ dӉ dàng tính 

có thӇ dӉ dàng tính 


Rҩt khó (computationally infeasi le) đӇ mӝt ngưӡi
không phҧi là  có thӇ tìm ra * ; sao
sao cho
(*) ; r
 /

r r r
    



r
r 

các mӭc đӝ ³Phá vӥ´ chiӃn lưӧc chӳ ký điӋn tӱ


tӱÄÄ
 Ä tìm đưӧc phương pháp hiӋu quҧ đӇ
im  Ä
³giҧ mҥo´ chӳ ký hӧp lӋ
lӋ..
BiӃt đưӧc private key?
Không iӃt private key nhưng tìm đưӧc phương pháp
hiӋu quҧ đӇ giҧ tҥo chӳ ký hӧp lӋ
lӋ..
Ä cho trưӟc mӝt thông điӋp ngưӡi
 m Ä
tҩn công à
  tҥo ra đưӧc chӳ ký hӧp lӋ
trên thông điӋp này.
này.
Ä có thӇ tìm và chӍ ra đưӧc mӝt
® mm Ä
thông điӋp (có thӇ vô nghĩa) nhưng dӉ dàng đӇ
ngưӡi tҩn công có thӇ tҥo ra đưӧc chӳ ký hӧp lӋ
trên thông điӋp này.
này.
[ 0 ' '12
[ 0 ' '12

Phát sinh khóa     


Tҥo chӳ ký
Tính  = ()
=  d mod 
Tính =
chӳ ký tương ӭng vӟi  là 
KiӇm tra chӳ ký
Nhұn đưӧc pu lic key (( )
Tính  =  mod 
KiӇm tra  ; r
Khôi phөc  = -1( )
[ 0 ' '12

Tҩn công
Phân tích ra thӯa sӕ nguyên tӕ mӝt sӕ nguyên lӟn
Khҧ nng nhiӅu cһp khóa cho ra cùng chӳ ký
Tính chҩt homomorphicÄ

Vҩn đӅ tái cҩu trúc nӝi dung (Re locking pro lem)
Tҫm quan trӑng cӫa redundancy functionÄ ISO/IEc
9796
[ 0 ' '12

Tính hiӋu quҧ (vӟi   là các sӕ nguyên tӕ


- it)
O(
3)
Tҥo chӳ ký O(

O(
2)
KiӇm tra chӳ ký O(

Bng thông
Bng thông phө thuӝc vào .
Ví dөÄ ISO/IEc 9796 ánh xҥ thông điӋp
- it thành
dãy gӗm 2

2
- it trong r vӟi chӳ ký dài 2

2
- it.
[ 0 ' '2

Phát sinh khóaÄ


1. chӑn 1 sӕ nguyên tӕ  160 it
0@m@í chӑn 2511+64
2. chӑn 0@ 511+64mm << 2512+64
512+64mm vӟi |-1

3. chӑn  trong Z* và ® = (-1)/ 1)/ mod  ® 1 (® (® là


phҫn tӱ sinh cӫa nhóm con ұc  cӫa Z*)
4. chӑn 1 @  @-1 tt((nh È= ® mod 
5. pu lic key ((  ® È) private key 
[ 0 ' '2
  2# 
   
[ 0 ' '2

Tҥo chӳ kýÄ


chӑn ngүu nhiên sӕ nguyên
0 <
< 
T(nh =(
=(®®
mod ) mod 
T(nh
-1 mod 
T(nh =
-1 ¥(() +  ) mod 
chӳ ký = ( )
[ 0 ' '2

KiӇm tra chӳ ký


KiӇm tra 0< < và 0<
0<< nӃu không thӓa thì kӃt
luұn là không chӳ ký hӧp lӋ
Tính = -1mod  và ()
Tính 1=¥()mod  2= ¥ mod 
Tính  = (®
(® 1È 2 mod ) mod 
chӳ ký hӧp lӋ Ó  =
=
[ 0 ' '2

Vҩn đӅ an toàn cӫa DSAÄ ài toán logarithm rӡi rҥc


trên Z[* và trên nhóm con cyclic ұc 
các tham sӕÄ
~160 it  76í~1K
Kác suҩt thҩt ҥiÄ trong quá trình kiӇm tra ta cҫn tính
nghӏch đҧo cӫa s. NӃu s=0 thì không tӗn tҥi nghӏch
đҧo
Pr[=0]= (1/2)160
Pr[
[ 0 ' '2

Tính hiӋu quҧ


Tҥo chӳ ký
Mӝt thao tác tính lũy thӯa modulo
Mӝt sӕ thao tác 160-
160- it (nӃu  ~ 76í it)
ViӋc tính lũy thӯa có thӇ đưӧc tính sҹn trưӟc
m      !
KiӇm tra chӳ ký
Hai thao tác tính lũy thӯa modulo
" #    !
[ 0 ' '3s
[ 0 ' '3s

Phát sinh khóa Ä   ®  È=® mod 


® là phҫn tӱ sinh cӫa ZZ
Pu lic key (
( ®) private key (
()
Tҥo chӳ ký
chӑn ngүu nhiên
1 @
@ -1 gcd(
gcd(

-1)=1
Tính = ®
mod 
Tính
-1 mod (
(-1)
Tính  =
-1 ¥ (() -  ) mod (
(-1)
chӳ ký là ( )
[ 0 ' '3s

KiӇm tra chӳ ký


KiӇm tra 1 @ @ -1
Tính 1 = È  mod 
(() và 2= ®() mod 

chӳ ký hӧp lӋ Ó 1=2
[ 0 ' '3s

Mӝt sӕ vҩn đӅ
Giá trӏ
phҧi phân iӋt cho mӛi thông điӋp đưӧc

(1-2)
=(
=((1)-(2))mod (-1)
NӃu gcd((
gcd((1-2)
) -1)=
)=11 thì có thӇ dӉ dàng xác
đinh giá trӏ
tӯ đó có đưӧc private key 
NӃu không dùng hàm m thì có thӇ ӏ tình trҥng
existential forgery
[ 0 ' '3s

Tính hiӋu quҧ


Tҥo chӳ ký
Mӝt thao tác tính lũy thӯa modulo
Mӝt thao tác sӱ dөng thuұt toán Euclide đӇ tính nghӏch
đҧo
Hai thao tác nhân modulo
KiӇm tra chӳ ký
Ba thao tác lũy thӯa modulo

Đӑc thêmÄ Generalized ElGamal Signature


[ 0 ' 'c 45
c 6457

chӳ ký dùng 1 lҫn (One


(One--Time Signature)
Đӏnh nghĩa Ä chiӃn lưӧc chӳ ký đưӧc sӱ dөng đӇ ký
tӕi đa 1 thông điӋp
NӃu dã
dãng lҥi c thӇ ӏ tҩn công đӇ tҥo chӳ ký giҧ.
cҫn c pu lic key mӟi cho mӛi thông điӋp cҫn ký
Hҫu hӃt các chiӃn lưӧc one-
one-time signature đӅu có tính
chҩt là thao tác tҥo và kiӇm tra chӳ ký rҩt nhanh
[ 0 ' '1!89: 

Tҥo khóa
chӑn 1 thuұt toán mã hóa khóa đӕi xӭng E (ví dө
như DES)
Phát sinh 2
2 dãy ngүu nhiên
1
2... ...

2;ß mӛi dãy


có đӝ dài 
Tính È=E
i(M0())  ;[1 2
[1 2]. )
M0() là iӇu diӉn nhӏ phân cӫa  đưӧc điӅn thêm
đӫ các it 0 ӣ phҫn đҫu đӇ có đưӧc dãy - it
Pu lic key là (È
(È1 È2 ...
...ÈÈ2)
private key là (

(
1
2 ...
...

2).
[ 0 ' '1!89: 

Tҥo chӳ kýÄ


Tính =E
(())  ;[1 2[1 2]
chӳ ký là (
(1 2 ...
...2)
KiӇm tra chӳ kýÄ
Tính ()
chӑn  sӕ ngүu nhiên phân iӋt  ;[1 2[1 2]
Yêu cҫu ngưӡi ký gӱi  trong sӕ 22 khóa. Nhұn đưӧc
dãy khóa
 ¢ Ä 1 @  @ 
KiӇm tra vӟi  khóa nhұn đưӧc È = E
(M0( ))?
j
KiӇm tra tҩt cҧ   = E
(())
j
1!89: 

Ngưӡi ký A ngưӡi kiӇm tra B và TTP


B cung cҩp  và chӳ ký cho TTP
TTP lҩy private key
1 ...
...

2 tӯ A
TTP kiӇm tra private key
TTP tính =E
(()) 1 @  @ .
NӃu  =  vӟi tӕi đa  giá trӏ cӫa  thì chӳ ký là ³giҧ´.
NӃu có ít nhҩt +1 giá trӏ ng nhau thì chӳ ký là ³thұt´
A có thӇ ³chӕi´ chӳ ký cӫa mình vӟi xác suҩt
Pr =