"Datu aizsardzība un kriptogrāfija."
Pasniedzējs prof. R.-M. Freivalds
11. lekcija
Protokols "Monētas mešana pa telefonu"
Darbojas divas personas: Alise un Bobs, kas viena otrai neuzticas. Mērķis "mest monētu", lai noskaidrotu "uzvarētāju", tā, lai abiem būtu vienādas izredzes uzvarēt un nevienam no dalībniekiem nebūtu iespējas krāpties.
Protokola realizācija:
Solis 1
A izvēlas divus lielus pirmskaitļus p un q
un paziņo to reizinājumu n=p*q.
Solis 2
B izvēlas gadījuma skaitli u
no intervāla (1 .. n/2) un paziņo z=u2(mod n).
Solis 3
A izrēķina ± x
un ± y , t.i. visas 4 kvadrātsaknes no z. Tas
ir iespējams, jo A zin, ka n=p*q.
Ar x' apzīmē mazāko no x
(mod n), un (-x)(mod n).
Līdzīgi ar y' apzīmē mazāko no y
(mod n), (-y) (mod n).
Pievērsiet uzmanību tam , ka u=x'
vai u=y'.
Solis 4
A zin, vai u=x'
vai u=y'. Precīzāk, A
atrod mazāko skaitli i, tādu, ka i-ais bits skaitlim x' atšķiras
no i-tā bita skaitlim y' un dod vienu no paziņojumiem:
"i-tais bits skaitlim u ir 0" vai "i-ais bits skaitlim u ir 1"
Solis 5
B pasaka A, vai uzminēts pareizi.
Solis6
B pasaka A skaitli u.
Solis7
A pasaka skaitļa n reizinātājus p
un q.
Piemērs:
Solis1:
A izvēlas divus lielus pirmskaitļus p
un q un paziņo to reizinājumu n=p*q.
p=37
q=97
n=3589
Solis2:
B izvēlas gadījuma skaitli u
no intervāla (1 .. n/2) un paziņo z=u2(mod n).
u=1780
z=17802(mod 3589)=2902
Solis3:
A izrēķina ± x
un ± y , t.i. visas 4 kvadrātsaknes no z. Tas
ir iespējams, jo A zin, ka n=p*q.
Ar x' apzīmē mazāko no x
(mod n), un (-x)(mod n).
Līdzīgi ar y' apzīmē mazāko no y
(mod n), (-y) (mod n).
Pievērsiet uzmanību, ka u=x' vai u=y'.
A saņem z=2902 (mod 3589), tā kā A zin ka 3589=37*97, tad var risināt sistēmu:
| { | u2=2902 mod(37) |
| w2=2902 mod(97) |
| { | u2=16 mod(37) |
| w2=89 mod(97) |
u1=4 mod(37) un u2=33 mod(37)
Rēķinam w1 un w2 pēc devītajā lekcijā aprakstītā varbūtiskā algoritma:
1.
u2=89(mod 97)
p=97 p-1=96=2e*q=25*3
(n/p)=-1
n=5
z=nq (mod p)
z=53 (mod 97)=28
2.
y=28
r=5
x=a(q-1)/2 (mod p)
x=89
b=a*x2 (mod p)=89*892(mod 97)=70
x=a*x(mod p)= 89*89(mod 97)=64
3.
(b2)m
1(mod 97)
m=1
50
m=2
73
m=3
96
No tā redzam ka mazākais m ir 4
4.
t=(y2)R-m-1
t=(282)5-4-1=28
y=282 (mod p) = 8
r=u x=64*28(mod 97) = 46 b=70*8=75
3.
(752)m
1(mod p)
m=1
96
m=2
1 - der.
4.
t=(82)4-2-1 =64
y=642(mod 97) = 22
r=m
r=2
x=x*t=46*64(mod 97)=34
b=b*y=75*22(mod 97)=1
3.
? b
1(mod
97)
Jā 1
1(mod 97)
No tā ir iegūts x =34
Tātad w1
34 un w2
-w1
63
Meklē ± x un ± y formā
(A*37+B*97) (mod 97*37).
Pirmajai saknei rēķina:
A*37
34 (mod 97) un B*97
4 (mod37)
B*97
4(mod 37)
meklē tādu s, lai 97*s
1(mod 37)
Pēc Fermā teorēmas s
9735 (mod 37), jeb s
2335 (mod
37)
231=23 (mod 37)
232=11 (mod 37)
234=10 (mod 37)
238=26 (mod 37)
2316=10 (mod 37)
2332=26 (mod 37)
s
2335(mod37)
26*11*23 (mod 37)
29
B
4*29 (mod 37)=5
[Turpinājums nākamajā lekcijā]