Giҧi thuұt s3u sӁ tính nghӏch đҧo modulo m cӫ3 3 và chӍ th c hiӋn vӟi các sӕ nguyên m>3>0 biӇu diӉn bҵng giã mã:... Có mӝt sӕ cách đӇ giҧi quyӃt vҩn đӅ đó.. Mà khó3 giҧi mã hó3 không thӇ
Trang 1c
c Ê
3 b đӗng dư modulo n nӃu |3b| là bӝi sӕ cӫ3 n Tӭc: NӃu chi3 3 cho n; b chi3 cho
n thì nhұn cùng sӕ dư
3!"#$%
&'(: 13 !3 (mod 10) vì (13 ± 3) = 10 là bӝi sӕ cӫ3 10
Modulo có mӕi qu3n hӋ vӟi sӕ dư trong phép chi3 phép toán tìm sӕ dư đôi khi cũng giӕng như phép toán modulo
&'(: 2 ) 14 ($ 12) 2 ! 14 ($ 12)
Nhưng: 38 Ł 14 ($ 12) thì đúng nhưng 38 = 14 ($ 12) lҥi không đúng
* c +,+-.Ê
ӕ nghӏch đҧo cӫ3 10 là 1/10 bӣi vì 10 × 1/10=1 Trong sӕ hӑc modulo thì vҩn đӅ nghӏch đҧo phӭc tҥp hơn
4 × x Ł 1 mod 7
Phương trình trên tương đương vӟi tìm x và k s3o cho
4x = 7k+1
vӟi điӅu kiӋn là cҧ x và k đӅu là sӕ nguyên
Vҩn đӅ chung đһt r3 tҥi đây là tìm x s3o cho
1 = (3 × x) mod n
có thӇ viӃt lҥi như s3u :
31 Ł x(mod n )
thu nhӓ vҩn đӅ Modulo là rҩt khó giҧi quyӃt Đôi khi nó là mӝt vҩn đӅ nhưng đôi khi lҥi không phҧi vұy
Ví dө : nghӏch đҧo cӫ3 5 modulo 14 là 3 bӣi
5 × 3 = 15 Ł 1 (mod 14)
Giҧi thuұt s3u sӁ tính nghӏch đҧo modulo m cӫ3 3 và chӍ th c hiӋn vӟi các sӕ nguyên m>3>0 biӇu diӉn bҵng giã mã:
Trang 2
&'(
Tìm sӕ nghӏch đҧo (nӃu có) cӫ3 30 theo môđun 101
Bưӟc i $ 3 4 7 89 8 8
1 30 11 8 2 1 3 7
2 11 8 3 1 3 7 10
3 8 3 2 2 7 10 27
4 3 2 1 1 10 27 ;:<
5 2 1 0
KӃt quҧ tính toán trong bҧng cho t3 37 Lҩy sӕ đӕi cӫ3 37 theo mođun 101 đưӧc
64 Vұy :9 ; $9)=>
Jcc J c
c
2 cccc
ccc
ccccc c c
ccccc c
ccccc cccccc
ccccc c
ccc
Trang 3: c 3.3"?30)" @ $AB3CB
Trong đó e là sӕ mũ lӟn n là sӕ chi3 đӇ lҩy dư
&'( Tính 413(mod 497)
Cách tính đơn thuҫn: 413=67108864 67108864 mod 497 =445
NӃu b và e lӟn thì be sӁ rҩt lӟn và tính " @ $sӁ mҩt nhiӅu thӡi gi3n và tӕn bӝ
nhӟ Có mӝt sӕ cách đӇ giҧi quyӃt vҩn đӅ đó Trong nӝi dung cӫ3 tiӇu luұn chúng tôi sӱ dөng giҧi pháp như s3u:
c Ł (3.b)(mod n) => ((3 (mod n)).(b (mod n))) (mod n)
Áp dөng công thӭc trên t3 có thuұt toán
&'( Tính 413(mod 497)
c=1 e¶=0 c Ł (b.c) (mod m)
c ÊE+F3G+H-C3IJ#ÊE+F3G+F3HG+33%
3 c ,++K3
Thuұt toán mã hó3 công kh3i là thuұt toán đưӧc thiӃt kӃ s3o cho khó3 mã hó3 là khác so vӟi khó3 giҧi mã Mà khó3 giҧi mã hó3 không thӇ tính toán đưӧc tӯ khó3
mã hó3 Khó3 mã hó3 gӑi là khó3 công kh3i (public key ) khó3 giҧi mã đưӧc gӑi là khó3 riêng (priv3te key)
t0L0 Ł
1/ Gán c=1 e¶=0 2/ e¶=e¶+1
3/ c Ł (b.c) (mod m) 4/ NӃu e¶<e qu3y lҥi bưӟc 2 Ngưӧc lҥi c là kӃt quҧ cҫn tìm
Trang 4M+= ÊE+F3AB3G+F3$EA?3.3$EG++3
Đһc trưng nәi bұt cӫ3 hӋ mã hó3 công kh3i là cҧ khó3 công kh3i (public key) và bҧn tin mã hó3 (ciphertext) đӅu có thӇ gӱi đi trên mӝt kênh thông tin không 3n toàn
* c -3NG3DO3$50+D$E+F3HG+33
ViӋc tính toán r3 cһp khó3 công kh3i KB và bí mұt kB d 3 trên cơ sӣ các điӅu kiӋn b3n đҫu phҧi đưӧc th c hiӋn mӝt cách dӉ dàng nghĩ3 là th c hiӋn trong thӡi gi3n đ3 thӭc
Ngưӡi gӱi A có đưӧc khó3 công kh3i cӫ3 ngưӡi nhұn B và có bҧn tin P cҫn gӱi đi
có thӇ dӉ dàng tҥo r3 đưӧc bҧn mã C
C =EKB(P) = EB (P)
Công viӋc này cũng trong thӡi gi3n đ3 thӭc
Ngưӡi nhұn B khi nhұn đưӧc bҧn tin mã hó3 C vӟi khó3 bí mұt kB thì có
thӇ giҧi mã bҧn tin trong thӡi gi3n đ3 thӭc
P =DkB (C)
:
3
Khái niӋm hӋ mұt mã RA đã đưӧc r3 đӡi năm 1976 bӣi các tác giҧ
R.RivetsK A.h3mir và L.Adlem3n
Trong hӋ mã hó3 RA các bҧn rõ các bҧn mã và các khó3 (public key và priv3te key) là thuӝc tұp sӕ nguyên ZN ={1 « N1} Trong đó tұp ZN vӟi N =pxq là các
sӕ nguyên tӕ khác nh3u cùng vӟi phép cӝng phép nhân mođun N tҥo r3 mođun sӕ hӑc N Khó3 mã hó3 EKB là cһp sӕ nguyên (N KB) và khó3 giҧi mã DkB là cһp sӕ nguyên (N kB) các sӕ là rҩt lӟn sӕ N có thӇ lên tӟi hàng trăm chӳ sӕ
Các phương pháp mã hó3 và giҧi mã hó3 là rҩt dӉ dàng
Công viӋc mã hó3 là s biӃn đәi bҧn rõ P (Pl3intext) thành bҧn mã C
(ciphertext) d 3 trên cһp khó3 công kh3i KB và bҧn rõ P theo công thӭc s3u đây
)2 P #Q%)Q P #$%#%
Công viӋc giҧi mã là s biӃn đәi ngưӧc lҥi bҧn mã C thành bҧn rõ P d 3 trên cһp khó3 bí mұt kB mođun N theo công thӭc s3u :
Q)R GP #%) GP #$%#*%
DӉ thҩy rҵng bҧn rõ b3n đҫu cҫn đưӧc biӃn đәi mӝt cách thích hӧp thành bҧn mã s3u đó đӇ có thӇ tái tҥo lҥi bҧn rõ b3n đҫu tӯ chính bҧn mã đó:
Q)R GP #2 P #Q%%#:%
Th3y thӃ (1) vào (2) t3 có:
Trang 5#Q P % GP )Q#$%#>%
T3 thҩy N =pxq vӟi p q là sӕ nguyên tӕ Trong toán hӑc đã chӭng minh đưӧc rҵng
nӃu N là sӕ nguyên tӕ thì công thӭc (4) sӁ có lӡi giҧi khi và chӍ khi:
PGP!#$w%#T%
Trong đó wN =LCM(p1 q1 )
(Lest Common Multiple) là bӝi sӕ chung nhӓ nhҩt
Nói mӝt cách khác đҫu tiên ngưӡi nhұn B l 3 chӑn mӝt khó3 công kh3i KB mӝt
cách ngүu nhiên Khi đó khó3 bí mұt kB đưӧc tính r3 bҵng công thӭc (5) ĐiӅu này
hoàn toàn tính đưӧc vì khi B biӃt đưӧc cһp sӕ nguyên tӕ (p q) thì sӁ tính đưӧc wN
&'(
N=11413=101x113 w(N) =100x112 =11200 =26x52x7 KB phҧi chӑn s3o cho không
chi3 hӃt cho 2 5 7 Chӑn chҷng hҥn KB =3533 khi đó
kB = KB1mod11200=6597 Và t3 có khó3 công kh3i là (N KB)=(11413 3533) khó3 bí
mұt là 6597 Phép lұp mã và giҧi mã là
Chӑn p và q
Tính N = p x q
Tính w N
Chӑn khó3 KP
Chӑn khó3 kP
C = PKB (mod N)
P = CkB (mod N)
K B
k B
Bҧn rõ P
Bҧn mã C
Bҧn rõ gӕc
Trang 6EKB(P) =PKB (mod N) =P3533 (mod 11413)
DkB(C) =CkB (mod N) =C6579 (mod 11413)
c Chương trình đưӧc viӃt bҵng ngôn ngӳ lұp trình C# có chӭc năng mô phӓng lҥi toàn bӝ quá trình mã hó3 và giҧi mã cӫ3 thuұt toán RA
c |iӋn tҥi thuұt toán chӍ cài đһt mã hó3 các ký t ho3 không dҩu
Gi3o diӋn cӫ3 chương trình
ëc w04M+I/WO3+04M++3
P: Nhұp văn bҧn cҫn mã hó3 vào ô ³Văn bҧn gӕc´
CO O TOAN
P*: Chương trình sӁ chuyӇn đәi văn bҧn đó thành chuӛi sӕ bҵng cách d 3 trên sӕ
thӭ t cӫ3 chӳ cái đó trong bҧng chӳ cái
CO O TOAN > 03152719152720150114
P:: Mã hó3 chuӛi sӕ d 3 trên +F3$E và sӕ
03152719152720150114 > 64241131545795607113154579471131517289
P>: Giҧi mã d 3 trên +F33.3
64241131545795607113154579471131517289 > 03152719152720150114
PT: Đư3 r3 văn bҧn gӕc d 3 trên chuӛi sӕ đưӧc giҧi mã