Professional Documents
Culture Documents
1
11.2
11.3
11.4
11.5
11.6
11.7
11.8
11.9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1
. . . . . . . . . . . 2
RSA . . . . . . . . . . . . . . . . . . . . . .10
Fiat-Shamir . . . . . . . . . . . . . . . . . . . . . . . . . .27
DSA . . . . . . . . . . . . . . . . . . . 32
. . . . . . . . . . . . . . . . . . . . . . . . .46
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .57
. . . . . . . . . . . . . . . .61
. . . . . . . . . . . . . . . . . . . . . . .69
11.1
.
, , .
( ,
),
, (
).
, ,
. .
(TTP) , ,
.
.
RSA,
.
A. Menezes, P. Van Oorschot, S. Vanstone.
1
: ..
. .
, .
11.2
. . 11.3
RSA, . RSA
. 11.4
10. ,
(DSA Digital Signature Algorithm), 11.5.
,
, 11.6. 11.7 ESIGN.
, , - (fail-stop)
11.8. , (.. , ,
) 11.9.
11.2
1.6 1.8.3 .
.
RSA (11.3) ElGamal (11.5)
. .
11.1.
11.2.1
1.
( ) .
2. ( ) .
A. Menezes, P. Van Oorschot, S. Vanstone.
2
: ..
3. ( )
(. ).
4. ( ) .
5. ( ) () , .
6. ( )
, .1
, , .
.
, ISO/IEC 9796 PKCS #1,
11.3.5 11.3.6, . 11.1 . 11.1 .
M
MS
(signing space).
(signature space).
11 M MS .
MR
R (. MR = Im(R)).
R1
R (. R1 : MR M).
M.
Mh
h (. h : M Mh) Mh MS .
11.1: .
11.1 ( 11.1)
(i) () M .
(ii) ( ) MS
( 11.2.2
11.2.3). M.
.
A. Menezes, P. Van Oorschot, S. Vanstone.
3
: ..
(iii) ( ) S M. .
(iv) ( ) R .
11.2.2 11.2.3 :
1.
2. . .
|R|
= 1, 11.2.
11.2
( ),
|R| > 1 ,
.
11.1 .
(11.6) .
11.1: .
11.2.2
, ,
.
(11.2.4).
11.3
A. Menezes, P. Van Oorschot, S. Vanstone.
4
: ..
DSA (11.5.1), ElGamal (11.5.2) Schnorr (11.5.3). 11.1.
11.4
:
.
1.
S = {SA,k : k R}. SA,k 11 Mh
S .
2. S VA Mh S {, }
VA m , s
, S A,k ( m ) = s
=
,
m Mh , s S , m = h ( m ) m M. VA -
.
3. VA S.
11.5 (
)
: s S m M,
.
1. . :
(i) k R.
(ii) m = h ( m ) s = S A,k ( m ) .
(iii) m s*. m s*
.
2. . :
(i) VA .
(ii) m = h ( m ) u = VA m , s .
(iii) , u = .
11.2
. :
(i) k R, SA,k
(ii) VA
A. Menezes, P. Van Oorschot, S. Vanstone.
5
: ..
(iii)
m M s* S , VA m , s = , m = h ( m ) .
11.2: .
11.6. ( )
(11.2.3) ,
.
h 11.5 (. 9.3). ()
. , .
11.2.3
.
, (. 11.3.3(viii)).
11.7
.
RSA (11.3.1), Rabin (11.3.4) NybergRueppel (11.5.4).
A. Menezes, P. Van Oorschot, S. Vanstone.
6
: ..
11.8
:
.
1. S = {SA,k: k
R}. SA,k 11 MS S
.
2. S VA VA SA,k MS k R. VA
,
.
3. VA S.
11.9
: s S m M,
. m
s.
1. . :
(i) k R.
(ii) m = R ( m ) s = S A,k ( m ) . (R . 11.1 11.10.)
(iii) s*
m .
2. . :
(i) VA .
( )
(ii) m = VA s .
(iii) m MR . ( m MR , .)
(iv) m m R 1 ( m ) .
11.3: .
A. Menezes, P. Van Oorschot, S. Vanstone.
7
: ..
11.3
.
:
(i) k R, SA,k
(ii) VA
(iii)
( )
s* S , VA s MR .
11.10 ( ) R R1
. R . , MR = MS. R SA,k
11 M MR MS S, .
( )
M S . s* S, VA s MR
m s*
( 11.9, 2) :
1. k R s* S.
( )
2. m = VA s .
3. m = R 1 ( m ) .
s* m
S .
11.11 ( ) M = {m : m {0, 1}n}
s*
VA(s*) MR.
11.12 ( ) R
R1 , R
S. 11.21 -
.
11.3.5.
, RSA
(11.3.1) Rabin (11.3.4).
11.13 ( ) 1.8.3
A. Menezes, P. Van Oorschot, S. Vanstone.
8
: ..
11.4: .
11.2.4
. .
1. . , . ( , .
11.3.2(i).)
2. .
. . (. 11.21.)
3. . .
,
( , . 11.66(iii)).
.
1. . ,
.
A. Menezes, P. Van Oorschot, S. Vanstone.
9
: ..
2. . . :
(i) .
.
(ii) .
. (non-adaptive)
.
(. 1.13.1).
(iii) .
.
11.15 ( ) ,
.
, ()
.
,
,
.
11.16 ( )
. ,
,
. ,
.
11.17 ( )
h ( ),
h , h .
11.3 RSA
RSA .
A. Menezes, P. Van Oorschot, S. Vanstone.
10
: ..
(. 3.2).
. (. 11.14).
11.3.1 RSA
O
RSA ]n = {0, 1, 2, , n 1}, n = pq
. 11 ,
. RSA
(. 11.1 ). MS S ]n. R: M ]n .
11.18 RSA
: RSA
.
:
1. p q (. 11.3.2).
2. n = pq = (p 1)(q 1).
3. e, 1 < e < , gcd(e, ) = 1.
4. ( 2.107)
d, 1 < d < , ed 1 (mod ).
5. (n, e) d.
11.19 RSA
: m M.
m .
1. . :
(i) m = R ( m ) , [0, n 1].
(ii) s = m d mod n.
(iii) m s.
2. . s m,
:
(i) (n, e) .
(ii) m = s e mod n.
(iii) m MR , .
(iv) m = R 1 ( m ) .
A. Menezes, P. Van Oorschot, S. Vanstone.
11
: ..
. s
m, s m d mod n, m = R ( m ) . ed 1 (mod ), s e m ed m ( mod n ) . , R 1 ( m ) = R 1 ( R ( m ) ) = m.
11.20 ( RSA )
. p = 7927, q = 6997 n
= pq = 55465219 = 79266996 = 55450296. e = 5 ed = 5d
1 (mod 55450296), d = 44360237. (n = 55465219,
e = 5) d = 44360237.
. ( . 11.3.3(ii)), M = ]n
R: M ]n R(m) = m m
M. m = 31229978, m = R ( m ) = 31229978
s m d mod n = 3122997844360237 mod 55465219 = 30729435.
. m = s e mod n = 307294355 mod 55465219
11.3.2 RSA
(i)
modulus n
, ,
, d e ed 1 (mod ). . p q n . , 8.2.2(i) 8.8.
(ii) RSA
To RSA ( , . 8.2.2(v))
, -
( ), s = s1s2
mod n s = (m1m2)d mod n. m = m1m2 (., m MR), s . ,
R , .,
a, b M, R(a b) R(a)R(b). 11.21,
R .
11.21 ( ) n modulus RSA d
. k = lg n n t , t < k/2. w = 2t
[1, n2t 1]. R R(m) =
A. Menezes, P. Van Oorschot, S. Vanstone.
12
: ..
(1 2)t . ,
( ), .
m. n d.
m.
( 2.107) n m = R ( m ) =
m2t = mw.
x, y r , xn + y m = r. y
y > 0,
y < 0,
s2
s3
s2
s3
m2d
d
m3
rw r
d
= = m mod n
yw y
m2d
( m3 )
rw r
d
= y = m mod n.
yw
,
. .
R.
11.3.3 RSA
(i)
RSA .
moduli .
.
(nA, eA) (nB, eB), . nA > n,
,
11.22.
11.22 ( ) nA = 83877499 = 62894113, eA = 5
dA = 37726937 n = 55465219, e = 5, d = 44360237. nA > n. m = 1368797
. :
1.
2.
A. Menezes, P. Van Oorschot, S. Vanstone.
13
: ..
, B :
1.
s = c d B mod nB = 3884223544360237 mod 55465219 = 4382681.
2.
m = s eA mod nA = 43826815 mod 62894113 = 54383568.
m m. s modulus
n. , ( n A nB ) n A 0.12.
.
1. . modulus.
, nA > n, A
B A. , , ,
. ,
.
.
2. moduli . moduli
. modulus moduli , .
moduli (t + 1) bit moduli t
bit.
3. modulus. p
q modulus n : bit
1 k bit 0. modulus n t bit
. n , 2t1 n
2t1 + 2t k1. p t 2 bit q 2t 1 p ( 2t 1 + 2t k 1 ) p n = pq
modulus (. 11.23). modulus
n ,
.
nA modulus s = m d A mod n A m. s 1 k + 1
bit, . s, nA,
0 bit modulus . s
1 k + 1 bit, , (1 2 ) , k k
100.
A. Menezes, P. Van Oorschot, S. Vanstone.
14
: ..
11.23 ( modulus)
modulus n 12 bit , bit 1
k = 3 bit 0. 6 bit, p = 37. -
q 211
= 56 ( 2
11
+2
= 62. -
(ii)
(. 11.2.4) RSA, R. 11.3.5 .
(.
11.3.2(ii)).
(iii) RSA
11.14 . , MD5 ( 9.5) 128,
11.9
. n modulus RSA k bit,
R 128 bit k
bit. 11.3.6 ,
.
(iv)
n = pq modulus RSA 2k bit, p q k bit .
, s = md mod n, m O(k3) bit ( , . 14.3
, . 14.6). p
q, s1 = m d mod p, s2 = m d mod q, s (. 14.75). O(k3),
.
. ,
O(k2) bit. e, , 3 216 + 12 , p
q , gcd(e, (p 1)(q 1)) = 1.
RSA, , . ,
A,
(. 13.4.2).
e = 216 + 1 e m e mod n
16 (. 14.6.1).
2
A. Menezes, P. Van Oorschot, S. Vanstone.
15
: ..
(v)
1996, moduli RSA 768 bit.
modulus 1024 bit
.
.
RSA e 216 + 1.
d (. 8.2.2(iv)).
(vi)
(bandwidth efficiency) ( 2)
MS ( 2) MR,
. ,
R. RSA ( Rabin, 11.3.4) ISO/IEC 9796 (11.3.5) k bit
2k bit MS
2k bit. .
, modulus 1024 bit, 512 bit.
(vii)
modulus RSA modulus (system-wide) (. 8.2.2(vi)).
e , (. 8.9(ii)).
(viii)
n modulus RSA 2k bit
11.19 k bit (. ). m k
bit. m k bit , m =
m1||m2||||mt ( 11.6
).
2kt bit. , A m l k . kt + 2k, kt m.
kt + 2k 2kt t 2, RSA . k
bit RSA .
11.3.4 Rabin
A. Menezes, P. Van Oorschot, S. Vanstone.
16
: ..
Rabin RSA (
11.19), e.3 ,
e = 2. MS Qn (
modulo n . 2.134)
. R M MS .
11.25
Rabin. ( ) 11.30.
11.24 Rabin
: .
:
1. p q
.
2. n = pq.
3. n (p, q).
11.25 Rabin
: m M. m .
1. . :
i) m = R ( m ) .
ii) s m mod n ( 3.44)
iii) m s.
2. . s m,
:
i) n .
ii) m s 2 mod n .
iii) m MR , .
iv) m = R 1 ( m ) .
11.26 ( Rabin )
. p = 7, q = 11 n = 77
(p = 7, q = 11). MS = Q77 = {1, 4, 9,
15, 16, 23, 25, 36, 37, 53, 58, 60, 64, 67, 71}. (
p q modulus RSA, = (p 1)(q 1)
. RSA, e gcd(e, ) = 1 .
3
A. Menezes, P. Van Oorschot, S. Vanstone.
17
: ..
m = R 1 ( m ) = 23.
11.27 ()
i) RSA ( 11.21),
R Rabin. , M = MS = Qn R(m) = m
m M. s ]n m = s 2 mod n, s m
. (,
.) , .
ii) , M . Rabin, R. , m , R
. , , modulo n
. m
bit R R(m) Qn.
, , .
Rabin
11.27(ii),
Rabin.
ISO/IEC 9796 (11.3.5).
MS, , (
) . 11.3.5.
11.28 p q 3
modulo 4, n = pq.
i) gcd(x, n) = 1, x(p1)(q1)/2 1 (mod n).
A. Menezes, P. Van Oorschot, S. Vanstone.
18
: ..
x
n
= 1 d = (n p q + 5)/8.
x, x Qn
x 2 d mod n =
n x, x Qn
( ) = 1. , x 2
2
{m ]n: m (n 6)/16}
MS
R(m) = 16m + 6 m M
MR
11.2: 11.30.
11.29 Rabin
: .
:
1. p 3 (mod 8), q 7 (mod 8) n =
pq.
2. n d = (n p q +
5)/8.
11.30 Rabin
: m M. m .
1. . :
i) m = R ( m ) = 16m + 6.
A. Menezes, P. Van Oorschot, S. Vanstone.
19
: ..
ii) Jacobi J = m (
n
2.149).
iii) J = 1, s = m d mod n.
iv) J = 1, s = ( m 2 ) mod n. 4
d
v) m s.
2. . s m,
:
i) n .
ii) m s 2 mod n. ( m
.)
iii) m 6 (mod 8), m = m.
iv) m 3 (mod 8), m = 2m.
v) m 7 (mod 8), m = n m.
vi) m 2 (mod 8), m = 2(n m).
vii) m MR (. 11.2) , .
viii) m = R 1 (m ) = (m 6) 16.
. = m = m /2, Jacobi 1.
11.28(iv) m , m /2 Jacobi 1. , 3 6 (mod 8). 11.28(iii), s2 mod n =
n , , Qn. n 5 (mod 8),
.
11.31 ( Rabin )
. p = 19, q = 31 n = pq = 589 d = (n p
q + 5)/8 = 68. n = 589, d =
68. MS , Jacobi
J 1 1, J = 0, gcd(m , n) 1. n.
, .
A. Menezes, P. Van Oorschot, S. Vanstone.
20
: ..
. m = 12, m = R(12) =
198,
m 198
=
= 1
n 589
102.
. m = s2 mod n = 1022 mod 589 = 391. m
7 (mod 8), m = n m = 589 391 = 198. , m =
R 1 (m ) = (198 6) 16 = 12 .
11.32 ( Rabin)
i) 11.30
Jacobi 1, n.
, y = 2d = s2 Jacobi 1
y2 (2)2d 2 (mod n) 11.28(iii). , ( y) ( + y)
Jacobi ( 2.149).
Jacobi (. 11.27)
modulo n.
modulo n (. 3.44). Jacobi ,
RSA
modulus. H e = 2
.
(. 14.18).
RSA RSA e = 3. Rabin ( 11.30) . Jacobi
.
11.34 ( ) Rabin
RSA (. 11.3.3(vi)).
21
: ..
.
ISO/IEC 9796 : (i) (ii)
k bit k bit (iii) (iv)
(. 11.14) (v) (padding) ,
. RSA ( 11.19) Rabin ( 11.30).
, (truncation)
ISO/IEC 9796 . 11.3
.
k
d
d 8 ( k + 3) 16 .
z
r
t
byte z = d 8 .
bit r = 8z d + 1.
, 2t
byte k 1 bit t = ( k 1) 16 .
11.3: ISO/IEC 9796.
11.35
( ISO/IEC 9796)
150 bit 1024 bit.
k (bit)
d (bit)
z (byte)
r (bit)
t (byte)
1024
150
19
64
A. Menezes, P. Van Oorschot, S. Vanstone.
22
: ..
1. . m ,
MP = 0r1||m, 1 r 8, bit MP 8. byte MP z: MP = mz||mz1||m2||m1,
mi byte.
2. . , ME, MP
MP t
byte : ME = MEt||MEt1||||ME2||ME1 ( MEi byte).
t z, byte
byte MP, byte byte
MP . , MEi+1 = m(i mod z)+1 0 i t 1.
3. . ME
byte MR = MR2t||MR2t1||||MR2||MR1 . MR (interleaving) t byte ME t byte byte MR2z . , MR2i1 = MEi
MR2i = S(MEi) 1 i t, S(u) byte u . u = u2||u1, u1 u2 4,
S(u) = (u2)|| (u1),
( , 4 .) , MR MR2z r MR2z. 5
4. forcing. IR k bit MR
:
) k 1 bit MR bit 1
) byte u2||u1 , u1||0110. ( IR 6 (mod 16).)
5. . k bit k bit ( ).
IR s
.
11.36 (RSA, Rabin) To ISO/IEC 9796
RSA ( 11.19)6 Rabin ( 11.19)7.
, . e RSA Rabin, n modulus d
. RR : (i) IR
e , e Jacobi IR ( 5
MR2z
d . d = 8z r + 1, z r. MR.
6
1 4 R, m
1i 11.19 IR.
7
To m IR, 1 11.25.
A. Menezes, P. Van Oorschot, S. Vanstone.
23
: ..
MR2 i S ( MR2 i 1 ) ,1 i t.
0, .
() z i MR2 i S ( MR2 i 1 ) 0.
() r 4 bit (). r
1 8.
MR, z byte MP :
() MP2i = MR2 i 1 , 1 i z.
3.
() r 1 bit MP
0.
() 8z r + 1 bit MP.
. s .
() MR
,
,
() , k 1 bit
MR k 1 bit MR.
11.3.6 PKCS #1
(PKCS public-key cryptography standards)
RSA (. 15.3.6).
PKCS #1 ( RSA).
A. Menezes, P. Van Oorschot, S. Vanstone.
24
: ..
PKCS #1
RSA. (MD2 MD5 9.51) , ,
. 11.4 . .
X Xi i .
k
n
p, q
e
d
M
MD
MD
n (k 11)
modulus, 28(k1) n < 28k
n
EB
ED
ab
BT
PS
S
||X||
(i) PKCS #1
D, ||D|| k 11. BT 00 01. PS ||PS|| = k 3 ||D||. BT = 00, PS ff.
( ) EB =
00||BT||PS||00||D.
11.37 ( )
(i) 00 EB,
, modulus n.
(ii) BT = 00, D (parsing) EB.
(iii) BT = 01, .
(iv) (iii) , BT = 01.
11.38 ( PKCS #1 )
n modulus 1024 bit ( k = 128). ||D|| = 20 , ||PS|| = 105
||EB|| = 128 .
(ii) PKCS #1
11.6().
, d
modulus n .
1. . - MD.
A. Menezes, P. Van Oorschot, S. Vanstone.
25
: ..
5. RSA. s = md mod n.
6. . s ED = ED1||ED2||||EDk, EDi
k
j i . S = ED.
s = 28( k i ) ED
i =1
1 = 00 n 28(k1), 0 m < n.
A. Menezes, P. Van Oorschot, S. Vanstone.
26
: ..
(iii) PKCS #1
11.6(). , S, e
modulus n.
1. .
() S, S 8.
() S s 4 .
() s > n.
2. RSA. m = se mod n.
3. . m k 6 .
4. (parsing). ,
PS D.
() .
() 00 01.
() PS < 8 .
5. .
() BER- D MD .
() MD2 MD5.
6. .
() -
MD.
() S , MD = MD.
11.4 Fiat-Shamir
10.30, - (witness-challenge response) . . Fiat-Shamir ( 10.24).
11.4.1 Feige-Fiat-Shamir
Feige-Fiat-Shamir Fiat Shamir, h : {0, 1} {0, 1}k k. {0, 1}k
k {0, 1} ( ).
A. Menezes, P. Van Oorschot, S. Vanstone.
27
: ..
o .
11.39 Feige-Fiat-Shamir
: .
:
1. p, q n = pq.
2. k s1, s2, , sk
Zn .
3. j = s j 2 mod n, 1 j k .
4. k- (1 ,2 ,...,k ) modulus n
k- ( s1 , s2 ,..., sk ) .
11.40 Feige-Fiat-Shamir
: m .
B
.
1. . :
(i) r, 1 r n 1.
(ii) u = r2 mod n.
(iii) e = (e1, e2, , ek) = h(m||u) ei {0, 1}.
(iv) s = r j =1 s j j mod n.
k
(iii) e = h(m||w).
(iv) , e = e.
.
k
w s 2 j j r 2 s j
e
j =1
j =1
2e j
j
j =1
ej
r 2 ( s 2j j ) j r 2 u (mod n).
e
j =1
, w = u e = e.
11.41 ( Feige-Fiat-Shamir )
. p = 3571, q = 4523
n = pq = 16151633. sj ( -
) j s j 1 .
A. Menezes, P. Van Oorschot, S. Vanstone.
28
: ..
11.42 ( Feige-Fiat-Shamir)
(i) RSA ( 11.19), modulus n (. 8.2.2(vi)). ,
(TTP) p q
.
(ii) Feige-Fiat-Shamir modulo n (. 3.5.2).
,
, h ,
si .
11.43 ( ) n
t bit, 11.39 kt bit. sj, 1 j k,
t < t o t, ,
sj. (k + 1) bit. , t = 768 k = 128, 98304 bit
99072 bit.
11.44 ( Feige-Fiat-Shamir )
TTP p q modulus n modulus
. 11.39
. . TTP j = f (IA||j), 1 j k,
f {0, 1} Qn j -
, sj j 1 modulo
n, 1 j k. ,
( TTP ) k- (s1,
s2, , sk). h, f modulus n .
11.39 ,
A. Menezes, P. Van Oorschot, S. Vanstone.
29
: ..
. TTP modulus n ,
.
11.45 ( Feige-Fiat-Shamir)
. 11.44, modulus nA k
1, 2, , k Qn ( 2 byte ).
sj j 1 modulo n, j, 1 j
k . nA 1, 2, , k. .
11.46 ( Feige-Fiat-Shamir) RSA
modulus t = 768, , , 1152 (, 768
384 ). FeigeFiat-Shamir ( 11.40) , , k/2 . , modulus
t = 768 k = 128 , , 64 , 6% RSA.
RSA e = 3, 64 , , Feige-Fiat-Shamir. , Feige-Fiat-Shamir ( DSA . 11.5)
RSA.
11.4.2 GQ
Guillou-Quisquater (GQ) (10.4.3)
( 11.48)
. h : {0, 1} ]n ,
n .
11.47 Feige-Fiat-Shamir
: (n, e, JA)
a.
:
1. p, q n =
pq.
2. e {1, 2, , n 1} , gcd(e, (p 1)(q 1)) = 1.
( 11.50 e.)
A. Menezes, P. Van Oorschot, S. Vanstone.
30
: ..
: m .
.
1. . :
(i) k r = ke mod n.
(ii) l = h(m||r).
(iii) s = kal mod n.
(iv) m (s, l).
2. . , :
(i) (n, e, JA) .
(ii) u = s e J Al mod n l =h(m||u).
(iii) , l = l.
.
u s e J Al (kal )e J Al k e (a e J A )l k e r (mod n).
, u = r l = l.
11.49 ( GQ )
. p = 20849, q = 27457 n = pq = 572450993. e = 47, JA =
1091522 JAae 1 (mod n) a = 214611724.
(n = 572450993, e = 47, JA = 1091522),
= 214611724.
. m = 1101110001, k = 42134 r = ke mod n = 297543350.
l = h(m||r) = 2713833 ( ) s =
kal mod n = (42134)2146117242713833 mod n = 252000854. m
(s = 252000854, l = 2713833).
. se mod n = 25200085447 mod n = 398641962, JAl
mod n = 10915222713833 mod n = 110523867 u = seJAl mod n = 297543350. u
= r, l = h(m||u) = h(m||r) = l, .
A. Menezes, P. Van Oorschot, S. Vanstone.
31
: ..
t l t (mod e) ( e ) .
(l, t), x , t = xe + l s = JAx mod n. seJAl (JAx)e JAl
JAxe+l JAt (mod n), , h(m||JAt) = l. , (s, l) () m.
11.51 ( ) ( 1996)
modulus n 768 bit. H 11.50
e 128 bit.
128 160 bit. modulus 768 bit
e 128 bit, GQ 896 + u bit, u
bit JA. a 768 bit.
11.52 ( GQ)
GQ ( 11.48) . modulus n 768 bit, e 128 bit
l 128 bit, ( ) 384
(128 64
e l). .
RSA ( 1152 )
Feige-Fiat-Shamir (64 )
(. 11.46). GQ Feige-FiatShamir (.
11.51).
11.53 ( GQ) 11.48
.
11.5 DSA
(DSA Digital
Signature Algorithm) .
]p ,
A. Menezes, P. Van Oorschot, S. Vanstone.
32
: ..
ElGamal 11.5.2. (.
11.2).
(. 11.14).
]p . , ,
,
.
11.5.1 (DSA)
1991 (NIST National
Institute of Standards and Technology) (DSA). DSA
(FIPS 186 Federal Information Processing Standard), (DSS Digital Signature Standard )
. ElGamal (. 11.5.2) .
h: {0, 1}* ]q
q. DSS (SHA-1
Secure Hash Algorithm), 9.53.
11.54 DSA
: .
:
1. q , 2159 < q < 2160.
2. t 0 t 8 p, 2511+64t
< p < 2512+64t, q (p 1).
3. ( q ]p .)
3.1 g ]p = g(p 1)/q mod p.
3.2 = 1 3.1.
4. a , 1 a q 1.
5. y = a mod p.
6. (p, q, , y) a.
11.55 ( p q DSA) 11.54
q p
A. Menezes, P. Van Oorschot, S. Vanstone.
33
: ..
: m .
.
1. . :
i) k, 0 < k < q .
ii) r = (k mod p) mod q (..,
2.143).
iii) k 1 mod q (.., 2.142).
iv) s = k 1{h(m) + ar} mod q.
v) m (r, s).
2. . (r, s) m, :
i) (p, q, , y) .
ii) 0 < r < q 0 < s < q , .
iii) w = s 1 mod q h(m).
iv) u1 = w h(m) mod q u2 = rw mod q.
v) = u1 y u2 mod p mod q.
vi) , = r.
. (r, s)
m, h(m) ar + ks (mod q) . w ,
w h(m) + arw k (mod q). u1 + au2 k (mod q).
u1
, = r , .
11.57 ( DSA )
. p = 124540019 q = 17389 , q
(p 1) (p 1)/q = 7162. A g = 110217528
34
: ..
. m k =
q, .
3.6.6. DSA ElGamal (11.5.2)
s,
( 11.66).
11.59 ( ) q
11.54 ( FIPS 186) 160 bit, p
64 512 1024 bit, . p 512 bit . 1996, modulus 768 bit . FIPS
186 p 1024 bit.
11.60 ( DSA) ,
p 768 bit.
, ( ) 240 ,
modulus 160 bit,
160 bit . 160 bit . DSA
-
. , -
RSA.
modulo p, 160 bit. ,
240 480 .
(. 14.91) , , 280 .
A. Menezes, P. Van Oorschot, S. Vanstone.
35
: ..
11.61 ( )
p q. DSS p, q . .
11.62 ( ) s1 mod q. s
= 0, s1 .
s 0 s ]q, s = 0 ()160. , . r 0.
r = 0 s = 0, k.
11.5.2 ElGamal
ElGamal .
h: {0, 1}* ]p, p .
DSA (11.5.1) ElGamal.
11.63 ElGamal
:
.
:
1. p ]p ( 4.84).
2. a, 1 a p 2.
3. y = a mod p (.., 2.143).
4. (p, , y) a.
11.64 ElGamal
: m .
.
1. . H :
i) k, 1 k p 2, gcd(k, p 1) = 1.
ii) r = k mod p (.., 2.143).
iii) k 1 mod (p 1) (.., 2.142).
iv) s = k 1{h(m) ar} mod (p 1).
v) m (r, s).
A. Menezes, P. Van Oorschot, S. Vanstone.
36
: ..
2. . (r, s) m,
:
i) (p, , y) .
ii) 1 r p 1 , .
iii) 1 = y rr s mod p.
iv) h(m) 2 = h(m) mod p.
v) , 1 = 2.
.
, s k 1{h(m) ar} (mod p 1). k ks
h(m) ar (mod p 1) h(m) ar + ks (mod p 1).
. p = 2357 = 2
]2357 . A a = 1751 y = a mod p = 21751 mod
11.66 ( ElGamal)
(i) (
11.64) m k -
37
: ..
. (u, ) gcd(, p 1) =
1. r = uy mod p = u+a mod p s = r1 mod (p 1). (r, s)
m = su mod (p 1), m ar
s 1
= u yv
= r.
(iii) ( ) p 1 (mod 4) :
() (p 1)
() S ]p ( , S Pohlig-Hellman (3.6.4)).
( )
( 2 11.64). , p 1 = q.
m :
() t (p 3)/2 r = q.
() z , qz yq (mod p), y
. ( q yq S q
S.)
() s = t {h(m) qz} mod (p 1).
() (r, s) m 2
11.64.
A. Menezes, P. Van Oorschot, S. Vanstone.
38
: ..
(iii) .
]p , ]p .
11.68 ( ElGamal)
(i) 11.64 ,
(k mod p),
( k 1 mod (p 1)) . ( .) off-line, ( -)
(on-line) .
(ii) , .
( )
3
2
lg p -
, ,
9
2
lg p . -
. 1 = h(m)yrrs mod p , 1 = 1. , 1
(
14.91)
15
8
lg p -
, 2.5 .
(iii) modulo p, modulo (p 1).
11.69 ( )
39
: ..
11.70 ( )
p , p (. 11.61).
(i) ElGamal
ElGamal ( 11.64).
( 1iv 11.64).
u = a + kw mod (p 1),
u = h(m), = r w = s (., h(m) = ar + ks mod (p 1)).
u, w s, r h(m) . 11.5 6 .
11.5: ElGamal.
modulo (p 1) modulo p.
11.71 ( ElGamal)
(i) 11.5
ElGamal 11.64.
, (3) (4) 11.5 s. (2) (3)
a 1 mod (p 1), .
(ii) (2) (4) rr.
xx c (mod p)
c. p, .
(ii) ElGamal
ElGamal, -
]p ,
G. 8.4.2
. 11.73 h: {0, 1}* ]n, n
A. Menezes, P. Van Oorschot, S. Vanstone.
40
: ..
G. r G
h(r).9
11.72 ElGamal
: G G
.
:
1. G n, . (
G .)
2. a, 1 a n 1.
y = a.
3. (, y), G a.
11.73 ElGamal
: m .
B
.
1. . H :
i) k, 1 k n 1, gcd(k, n) = 1.
ii) r = k.
iii) k 1 mod n.
iv) h(m) h(r).
v) s = k 1{h ( m ) ah ( r )} mod n.
vi) m (r, s).
2. . (r, s) m,
:
i) (, y) .
ii) h(m) h(r).
iii) 1 = yh(r) rs.
iv) 2 = h(m).
v) , 1 = 2.
11.74 ( ElGamal )
. F25
f (x) = x5 + x2 + 1 F2 . ( 2.231
F24 . ) 31 5- 11.6, 00000. =
9
A. Menezes, P. Van Oorschot, S. Vanstone.
41
: ..
11.6: F25 .
11.75
( ElGamal)
11.73
G (. 3.6). 11.66
ElGamal.
11.76 ( )
G (., r = k) ]n. H G.
11.77 ( ElGamal )
11.73 G
Fq.
. q
G = Fq .
11.5.3 Schnorr
A. Menezes, P. Van Oorschot, S. Vanstone.
42
: ..
ElGamal Schnorr.
DSA ( 11.56), ]p ,
q, p . h: {0, 1}* ]q. Schnorr
DSA ( 11.54),
p q.
11.78 Schnorr
: m .
.
1. . :
i) k, 1 k q 1.
ii) r = k mod p, e = h(m||r) s = ae + k mod q.
iii) m (s, e).
2. . (s, e) m,
:
i) (p, q, , y) .
ii) = s y e mod p e = h(m||).
iii) , e = e.
.
, s y e s y ae k r ( mod p ) . , h(m||) = h(m||r) e = e.
11.79 ( Schnorr )
. p = 129841 q = 541 , (p 1)/q =
11.80 ( Schnorr)
11.78 modulo p modulo
A. Menezes, P. Van Oorschot, S. Vanstone.
43
: ..
q. modulo p off-line.
, h(m||r)
. modulo p.
14.88 1.17 . q ElGamal 11.64, ( ) ElGamal.
11.5.4 ElGamal
ElGamal (11.5.2) (. ). ,
11.81
. , ElGamal
.
, MS = ]p , p , S = ] p ] q , q , q (p 1). R M MS.
11.81 DSA, p q.
11.81 Nyberg-Rueppel
: m M. m .
1. . :
i) m = R ( m ) .
ii) k, 1 k q 1 r =
k mod p.
mod p.
iii) e = mr
iv) s = ae + k mod q.
v) m (e, s).
2. . (e, s) m,
:
i) (p, q, , y) .
ii) 0 < e < p , .
iii) 0 s < q , .
iv) = s y e mod p m = e mod p.
v) m MR m MR , .
vi) m = R 1 ( m ) .
A. Menezes, P. Van Oorschot, S. Vanstone.
44
: ..
. ,
s y e s ae k ( mod p ) . , e k m k m ( mod p ) ,
.
11.82 ( Nyberg-Rueppel )
. p = 1256993 q = 3571,
q (p 1) , (p 1)/q = 352. g = 4207
Zp = 42077352 mod p = 441238. 1,
Zp 3571. , a = 2774
y = a mod p = 1013657. (p = 1256993, q =
3571, = 441238, y = 1013657), a = 2774.
. m, m = R(m) =
1147892 ( R(m) ).
k = 1001 , r = k mod p = 4412381001 mod p = 1188935, e = m r mod p =
11.83 ( Nyberg-Rueppel)
(i) 11.81 ElGamal ( 11.64), 11.66. DSA ( 11.56), ElGamal ( 11.58).
(ii) 11.81 ,
R (. 11.10)
. RSA,
R. . m M, m = R (m) (e, s)
m. e = m k mod p , k, s = ae + k mod q.
m = m l mod p , l. s = s + l mod q m MR , (e, s)
( )
m = R 1 m . ,
( 2 11.81). s y e
s + l ae
k + l (mod p) e k +l m k m l m (mod p ). m MR ,
(e, s)
m .
A. Menezes, P. Van Oorschot, S. Vanstone.
45
: ..
m r
. E = {Er : r ]p}
, Er r ]p MS = ]p ]p . m M,
k, 1 k q 1, r = k mod p, s = ae + k mod q.
(e, s) m. H s = ae + k mod q
m
.
11.6
, , .
.
.
, ( 11.6.3
).
, ,
.
, .
11.6.1 Rabin
Rabin
. .
. , . , -
A. Menezes, P. Van Oorschot, S. Vanstone.
46
: ..
. 11.7.
0
0(i)
K
0l = l .
0le||be1b1b0, be1b1b0 i.
l bit.
K.
Et
E t K. Et -
h
n
l bit l bit.
{0, 1} {0, 1}l.
.
11.7: Rabin.
11.85 Rabin
: E,
2n .
A :
1. E (.., DES).
2. 2n k1, k2, , k2n K,
l .
3. yi = Eki ( M 0 (i )), 1 i 2n.
: m . .
1. . :
i) h(m).
ii) si = Eki (h(m)),1 i 2n.
iii) m (s1, s2, , s2n).
2. . (s1, s2, , s2n) m,
:
i) (y1, y2, , y2n) .
ii) h(m).
iii) n rj, 1 rj 2n, 1 j n.
iv) krj ,1 j n.
v) ,
z j = Ekr ( M 0 (rj )) z j = yrj , 1 j n.
j
A. Menezes, P. Van Oorschot, S. Vanstone.
47
: ..
, TTP (., ).
4. TTP ui = Eki (h(m)),1 i 2n. ui = si n i, 1
i 2n, TTP ( ). n + 1 i ui = si, TTP
.
11.89 ( )
Rabin, 11.88, . A
m, o B k
n + 1 i ui = si, m ,
h(m) = h(m). . , ui = si n
i n 2iii -
2n
, 1 .
n
11.90 ( 11.86)
Rabin , ( ) n + 1
( ) (.
11.89). ( ) n 2n .
11.6.2 Merkle
Merkle ( 11.92) Rabin ( 11.86)
. TTP
A. Menezes, P. Van Oorschot, S. Vanstone.
48
: ..
11.91.
11.91 Merkle
: n bit, t = n + lg n + 1 .
:
1. t = n + lg n + 1 k1, k2, , kt
l .
2. i = h(ki), 1 i t. , h - h: {0, 1} {0, 1}l (. 9.2.2).
3. (1, 2, , t) (k1, k2, ,
kt).
m n bit, w = m||c,
c m. c lg n + 1 bit
, . , w
t = n + lg n + 1.
11.92 Merkle
: m n.
A.
1. . :
i) c, 0 m.
ii) w = m||c = (a1a2at).
iii) i1 < i2 < < iu w , ai j
= 1, 1 j u.
iv) s j = ki j ,1 j u.
v) m (s1, s2, , su).
2. . (s1, s2, , s2n) m,
:
i) (1, 2, , t) .
ii) c, 0 m.
iii) w = m||c = (a1a2at).
iv) i1 < i2 < < iu w , ai j
= 1, 1 j u.
v) , i j = h( s j ) , 1 j u.
11.93 ( Merkle) m
, w = m||c 1ii
11.92 (s1, s2, , su) m. h - ,
A. Menezes, P. Van Oorschot, S. Vanstone.
49
: ..
m m. w = m||c, c (lg n
+ 1) bit m.
(s1, s2, , su),
m 1 m
1 (, m 1 m 0
). m m c > c ( ). , c 1
c 0. , , .
11.94 ( 11.92)
(i) m n bit k l
(n + lg n + 1) bit (
) l (n + lg n + 1) bit . l (k + k)
bit , k n
k. , n = 128, l = 64 k = 72, 8704 bit (1088 byte) . 4800 bit (600
byte).
(ii) ki
(seed). , k*
l, ki = h(k*||i), 1 i t. k*
, .
(iii) , .
n + lg n + 1 .
11.95 ( Merkle)
11.92 l (n + lg n + 1) bit ( ). bit .
bit . kt bit. m = m1||m2||mt, mi k 0 2k 1 -
. U = i =1 (2k mi ) t 2k . U lg U lg
t
t + 1 + k bit. r = ( lg t + 1 + k ) k , U U
= u1||u2||||ur, ui k. w
= m1||m2||mt||u1||u2||||ur. t + r k1, k2, , kt+r
i = h 2
(ki ),1 i t + r. -
50
: ..
t 2d mi .
h1 . , h
-, h1 .
11.6.3
13.4.1
, , .
.
.
11.97 ( Merkle)
11.92 -
11.7:
Merkle.
A. Menezes, P. Van Oorschot, S. Vanstone.
51
: ..
.
mi Xi = (x1i, x2i, , xti), Ui = (u1i, u2i, , uti)
W = (w1i, w2i, , wti), 0 i 4, .
, Yi = (h(xji): 1 j t), Vi = (h(uji): 1 j t) i = (h(wji): 1
j t). h(Yi) = h(h(x1i)||h(x2i)||||h(xti)) 0 i 4, h(Vi)
h(i) . Merkle mi
Xi SA(mi, Xi), 0 i 4. Yi
SA(mi, Xi). , Ri = h(h(Yi)||h(Vi)||h(Zi)), 0 i 4.
11.8 Ri. Ui Wi
Ri.
R0 (TTP).
Ri
mi
Xi, Ui, Wi
Yi, Vi, Zi
h(Yi), h(Vi), h(Zi)
h(h(Yi)||h(Vi)||h(Zi))
SA(mi, Xi)
Yi
11.8: Ri (. 11.7).
11.9
.
m0
m1
m2
m3
m4
R0
R1
R2
R3
R4
TTP
SA(R1, U0)
SA(R2, W0)
SA(R3, U1)
SA(R4, W1)
11.9: (.
11.7).
,
m4 SA(m4, X4). Y4. Merkle 2 11.92.
Y4
. , :
1. h(V4), h(Z4) h(Y4) R4 = h(h(Y4)||h(V4)||h(Z4)).
2. SA(R4, W1) Z1 R4 11.92.
3. h(Y1), h(V1) h(Z1) R1 = h(h(Y1)||h(V1)||h(Z1)).
A. Menezes, P. Van Oorschot, S. Vanstone.
52
: ..
4. SA(R1, U0) V0
11.92.
5. h(Y0), h(Z0) h(V0) R0 = h(h(Y0)||h(V0)||h(Z0)).
6. TTP R0
TTP.
5 ( 11.7)
.
( , )
.
11.6.4 GMR
Godwasser, Micali Rivest (GMR) ( 11.102)
- (claw-free)
(. 11.98). .
GMR .
GMR ,
.
11.98 gi : X X, i = 0, 1, .
g0 g1 - (claw-free pair)
x, y X , g0(x) = g1(y). (x, y,
z) g0(x) = g1(y) = z (claw). gi, i = 0, 1,
, ,
g01 , g11 , , - .
g0, g1 - , gi1 i =
0, 1, x X. , g11 ( g 01 ) , x
X, g0(x) = z g11 ( z ) = y , (x, y, z).
11.99 (- ) n = pq, p 3
( ) = 1 1 Q
( ) = 1. , ( ) Jacobi ( 2.147). , D = {x: ( ) =
1 0 < x <
}. , g0: Dn Dn g1: Dn Dn
A. Menezes, P. Van Oorschot, S. Vanstone.
53
: ..
n
2
2
x mod n, x mod n < 2
g 0 ( x) =
x 2 mod n, x 2 mod n > n
2
2
2
4x mod n, 4x mod n < 2
g1 ( x) =
4x 2 mod n, 4x 2 mod n > n
2
n , g0, g1 :
(i) (g0 g1 Dn) g0(x) = g0(y), x2 y2 (mod n) (x2 y2 (mod
n) 1 Qn), x y (mod n). 0 < x, y < n/2, x
= y g0 Dn.
g1 Dn.
(ii) (g0 g1 -) x, y Dn , g0(x) = g1(y). x2 4y2 (mod n) (x2 4y2 (mod
( ) = 1, x
2 y
( ) = 1
x
n. n
.
(iii) (g0 g1 - )
n g 01 g11. , g0, g1
- .
11.99.
11.100 (- )
1
1
4
4
16
13
6
36
10
9
4
16
10
23
15
13
15
17
15
6
24
16
25
23
17
19
1
19
24
19
23
10
37
24
37
6
25
9
36
36
13
25
g0 g1 D77.
37
`17
9
11.101 GMR
: -
.
:
A. Menezes, P. Van Oorschot, S. Vanstone.
54
: ..
1. -
. (
g 01 g11. )
2. r X. ( r .)
3. (g0, g1, r) ( g01 , g11 ).
, g0, g1
g0 g1, (. 1.33) g0g1. , (g0g1)(r)
g0g1(r). MS
- (. 11.103).
11.102 GMR
: m = m1m2mt. O B
.
1. . :
() Sr (m) = ti =10 g m1t i (r ).
() m Sr(m).
2. . Sr(m) m,
:
() (g0, g1, r) .
() r = ti =1 g mi ( Sr (m)).
() , r = r.
.
t
t 1
i =1
i =1
j =0
r = g mi ( Sr (m)) = g mi g m1t j ( r )
u 1
j =u +1
i =0
g m j ( Sr (m)) = g m1u i (r ).
55
: ..
11.104 ( 11.102)
GMR , - m =
m1m2mt m = n1n2nu -
r.
t
u
i =1 g mi ( Sr (m)) = r = i =1 g ni ( Sr (m)). -
, h 1 mh nh.
gj ,
t
i =h
i =h
g mi ( Sr (m)) = g ni ( Sr (m))
i = h +1
i = h +1
g mh g mi ( Sr ( m)) = g nh g ni ( Sr (m)).
x = ti = h+1 g mi ( Sr (m)) y = ui = h +1 g ni ( Sr (m)),
( x, y, g mh ( x)).
. .
11.99, modulus n
(. .)
11.105 ( GMR .)
. n, p, q, g0, g1
11.100. r = 15 D77.
. m = 1011000011 .
Sr(m) = g11 D g11 D g01 D g01 D g 01 D g 01 D g11 D g11 D g01 D g11 (15) = 23.
m 23.
. ,
r = g1 D g0 D g1 D g1 D g0 D g 0 D g 0 D g0 D g1 D g1 (23) = 15.
r = r , o B .
GMR
GMR ( 11.102), (.
13.4.1). 11.6.3,
. , .
11.106 k 2k+1 1
2k . k .
k . Y1,
Y2, , Yn, n = 2k. *
R (. ). R TTP
. *
A. Menezes, P. Van Oorschot, S. Vanstone.
56
: ..
Yi Yi. Yi r GMR.
* .
* . r
rL rR t bit. rL||rR
GMR r. H
r, rL, rR Sr(rL||rR).
, b0L, b1L, b0R b1R t bit. H
rL, b0L, b1L, SrL (b0 L || b1L )
rR, b0R, b1R, SrR (b0 R || b1R ). b0L, b1L, b0R b1R , . , * .
11.8.
11.8: 2 GMR.
*
m. - g0, g1. m
x , m
Sx(m) .
11.7
11.3 (RSA ), 11.4
( Fiat-Shamir), 11.5 (DSA ),
11.6 ( ).
11.7.1
11.107
(TTP)
.
A. Menezes, P. Van Oorschot, S. Vanstone.
57
: ..
11.109 E =
{Ek: k K}, K . Ek l bit h: {0, 1}* {0, 1}l . TTP kT K .
, TTP .
11.108
: TTP. A :
1. kA K.
2. , kA TTP.
11.109
: Ek A .
TTP.
1. . m, :
() H = h(m).
() H u = Ek A ( H ).
() u TTP.
() TTP E k1 (u ) .
A
() TTP s = EkT ( H || I A ) s .
() m s.
2. . s m :
() = Ek B ( s ).
() IB TTP.
() TTP EkB1 ( ) s.
() TTP EkT1 ( s ) H || I A .
() TTP w = EkB ( H || I A ) w .
() EkB1 ( w) H || I A .
() (m) m.
() , = .
11.110 ( )
11.109
A. Menezes, P. Van Oorschot, S. Vanstone.
58
: ..
.
13.3 .
11.111 ( )
, 11.109 () . TTP,
TTP
TTP.
11.7.2 ESIGN
To ESIGN ( Efficient digital SIGNature )
.
h: {0,1}* Zn.
11.112 ESIGN
: .
:
1. p q , p q p, q
.
2. n = pq.
3. k 4.
4. (n, k) (p, q).
11.113 ESIGN
: s , sk mod n
. sk mod n .
1. . m, , :
() = h(m).
() x, 0 x pq.
() w = (( x k ) mod n) ( pq ) y = w (kx k 1 ) 1 mod p.
() s = x + ypq mod n.
() m s.
2. . s m,
:
() (n, k) .
() u = sk mod n z = h(m).
() z u z + 2
.
2 lg n
3
, -
A. Menezes, P. Van Oorschot, S. Vanstone.
59
: ..
. sk (x + ypq)k
k
= w + lp l Z. , sk x
+ pq(w + lp) x
+ pqw x
( h ( m ) x k ) mod n
h ( m ) x k + jn +
k
k
x
+
pq
pq
, .
29).
11.115 ( ESIGN)
( u = sk mod n). m ,
h(m) u h(m) + 2
s . h(m) h(m) (lg n)/3 bit. h
, 2(lg n)/3 m .
A. Menezes, P. Van Oorschot, S. Vanstone.
60
: ..
( ESIGN)
11.113 . k (. k = 4),
1. ,
modulus p. k = 4 modulus n 768 bit,
ESIGN (10 100 ) RSA modulus. RSA
.
11.8
. (., RSA)
.
11.8.1
, 11.2,
(blind signature schemes) . .
.
, a priori m
. m
.
.
11.117 ( )
( ) (
) a postiori m SB(m) .
m
A. Menezes, P. Van Oorschot, S. Vanstone.
61
: ..
. m SB(m) , .
.
:
1. . SB(x)
x.
2. f g ( ) , g(SB(f (m))) =
SB(m). f (blinding function), g (unblinding function) f(m) .
2 SB g.
11.118 ( RSA) n = pq
. SB B RSA ( 11.19) (n, e) d. k
gcd(n, k) = 1. f : ] n ] n
: .
m a priori , 0
m n 1. m
m.
1. . RSA B (n, e) d, . k
0 k n 1 gcd(n, k) = 1.
2. .
i) () O A , m* = mk e mod n .
ii) () , s* = (m*)d mod n, .
iii) () , s = k 1s* mod n, m.
11.8.2
(undeniable signature schemes)
, 11.2,
. .
11.120 ( )
A. Menezes, P. Van Oorschot, S. Vanstone.
62
: ..
i) ( )
( ). , ,
.
. , (
)
.
ii) .
.
. ,
. .
11.121 11.122
: .
:
1. p = 2q + 1, q .
2. ( q ]p .)
2.1 ]p = (p1)/q mod p.
2.2 = 1 2.1.
3. a {1, 2, , q1} y = a mod p.
4. (p, , y). a.
11.122 Chaum-van Antwerpen
: m q
]p . .
1. . :
i) s = mk mod p.
ii) m s.
2. . s
m, :
i) O B (p, , y) .
ii) O B x1, x2 {1, 2, , q 1}.
iii) O B z = s x1 y x2 mod p z .
iv) w = ( z )
a 1
.
A. Menezes, P. Van Oorschot, S. Vanstone.
63
: ..
v) w = m x1 x2 mod p ,
w = w.
.
w ( z)
a 1
s x1 y x
) (m
a 1
ax1
ax2
a 1
m x1 x2 w mod p,
.
11.123 , ,
11.123
( ) s
m, . s ma mod p.
11.122 1/q .
11.124
( )
() 11.122
:
(i) 11.122
(ii)
(iii) .
(i) () . (ii) (iii) ( 11.125).
11.125 11.122 .
11.125
Shaum-van Antwerpen
: s 11.122,
.
1. (p, , y).
2. O B x1, x2 {1, 2, , q 1} , z
= s x1 y x2 mod p z .
1
= s x1 y x2 mod p z .
A. Menezes, P. Van Oorschot, S. Vanstone.
64
: ..
6. , w = ( z ) a mod p w .
7. w = m x1 x2 mod p, s .
8. , c = ( w x2 ) x1 mod p c = ( w x2 ) x1 mod p . c = c,
c , s.
11.126 11.125 .
11.126 m s ( )
m.
(i) s , . s ma mod p 11.125 , w = w ( , s
).
(ii) s m, . s = ma mod p. 11.126 , . w = w ( A
) 1/q.
11.127
( )
(i) 11.122 -
q ]p (. 3.6.6).
(ii) B
2 11.122 x1, x2 . C
B s.
, 2 11.122
. m, x1, x2 l [1, q 1] 1
s = ((m x1 x2 )l y x2 ) x1 mod p.
z = s x1 y x2 mod p w = z l mod p. 11.122 s m.
.
11.8.3 - (fail-stop)
- , (
) , . . ,
.
A. Menezes, P. Van Oorschot, S. Vanstone.
65
: ..
-
,
. , --. - :
1. , .
2. .
3.
, , .
4. .
11.130 -. , ,
(. 11.6.3). --
11.134.
11.128 11.130
:
(TTP).
1. TTP :
() p q , q (p 1) Zq .
() ( G, q, Zp .)
(i) g Zp = g ( p 1) q mod p.
(ii) = 1 (i).
() a, 1 a q 1, = a
mod p. O a TTP.
() ( p, q, , ) .
2. :
() x1, x2, y1, y2 [0, q 1].
() 1 = x1 x2 2 = y1 y2 mod p.
() (1, 2, p, q, , )
x = ( x1 , x2 , y1 , y2 ).
A. Menezes, P. Van Oorschot, S. Vanstone.
66
: ..
11.129
( TTP)
q Zp
11.128, a,
, TTP.
11.130 - (van Heijst-Pedersen)
: q Zp .
1. . m [0, q 1],
:
() s1,m = x1 + my1 mod q s2,m = x2 + my2 mod q.
() m (s1,m, s2,m).
2. . (s1,m, s2,m) m,
:
() (1, 2, p, q, , ) .
s
() 1 = 12m mod p 2 = 1, m
s2, m
mod p.
() , 1 = 2 .
.
1,m
s2, m
2 (mod p).
11.130
x x . ( 11.134)
. 11.131 11.132.
11.131 (
) 11.130 (1, 2,
p, q, , ) x = ( x1 , x2 , y1 , y2 ).
(i) q2 x = ( x1 , x2 , y1 , y2 ) x1 , x2 , y1 , y2 ]q (1, 2) .
(ii) q2 (1, 2). q ]q, q
(s1,m, s2,m) m ( 11.130). , q2 q m.
A. Menezes, P. Van Oorschot, S. Vanstone.
67
: ..
(iii) m ]q m. q2 ,
(s1,m, s2,m) m, q m.
11.132 ( 11.131) p = 29 q = 7. = 16
q Zp . = 5 mod 29 = 23.
x = (2, 3, 5, 2) 1 = 2 3 mod
29 = 7, 2 = 5 2 mod 29 = 16. O q2 = 49
.
49 m = 1,
q = 7 (s1,m, s2,m).
.
O , m ]7,
7 (0, 5) m = 1.
11.133
( 11.30)
( )
m. .
A. Menezes, P. Van Oorschot, S. Vanstone.
68
: ..
(i) (.,
).
11.131(ii) m q/q2 = 1/q .
(ii) m (s1,m, s2,m) . 11.131(iii),
m 1/q ,
.
11.130.
. ,
,
a. a TTP ( 11.129), .
11.134 -- 11.130
m ) m
: s = ( s1, m , s2,
, a = log
.
( ) :
1. s = ( s1,m , s2,m ) m x (. 11.128).
2. s = s 1.
m )1 mod q.
3. a = ( s1,m s1, m ) ( s2,m s2,
11.134 . 11.131(iii), s
= s 1 11.134 1/q. (s
11.130), 1, m
s2, m
1, m
m
s2,
(mod p) 1, m
s1, m
m s2, m )
a ( s2,
(mod p)
11.9
11.1
1976 Diffie Hellman
[344, 345]. ,
A. Menezes, P. Van Oorschot, S. Vanstone.
69
: ..
70
: ..
71
: ..
mc||J. ,
.
11.3.6 PKCS#1 [1072]. To
,
.
ISO/IEC 9796.
, ,
. e = 3 e
= 216 + 1. PKCS#1 ( ) Boer Bosselaers [324], Desmedt Odlyzko
[341].
11.4
Feige-Fiat-Shamir ( 11.40),
Feige, Fiat Shamir [383], Fiat-Shamir [395],
. Fiat Shamir [395]
h . Feige, Fiat Shamir [383] .
11.44 Fiat Shamir [395]. 11.45
Micali Shamir [868], modulus nA
1, 2, , k .
moduli, j Qn, 1 j k,
n. , Micali Shamir
k
modulus,
.
GQ ( 11.48) Guillou Quisquater [524].
11.5
DSA ( 11.56) Kravitz [711] (Federal Information Processing Standard FIPS)
1991 ...
(Digital Signature Standard DSS)
1994, FIPS 186 [406]. Smid Branstad [1157]
DSA : , , ..,
,
. DSA RSA FIPS.
Naccache et al. [916]
DSA. , k 1 mod q 1iii
11.56 b,
A. Menezes, P. Van Oorschot, S. Vanstone.
72
: ..
73
: ..
ECDSA
10 IEEE.
Schnorr ( 11.78), Schnorr [1098],
(.
10.4.4). Schnorr - 11.78. k k mod p , - ki ki mod p , 1 i t, . De Rooij [315] t .
Brickell McCurley [207] Schnorr.
p , p
1, q p, q Zp .
s = ae + k mod (p 1) s = ae + k mod q Schnorr.
Schnorr, : (i) q Zp p
1. ,
Zp .
Okamoto [949] Schnorr
, Zp
- ( - ).
Schnorr , .
Nyberg-Rueppel ( 11.181) Nyberg Rueppel [936].
, , . Nyberg Rueppel [938]. RSA,
S ,
V, S V , V(S(m)) = m
m ]p, S(V(m)) m m ]p. (
m , ), DSA .
10
1996 (..)
A. Menezes, P. Van Oorschot, S. Vanstone.
74
: ..
.
(subliminal)
.
Simmons [1139, 1140, 1147, 1149]. O Simmons [1139]
l1 bit l2 bit ,
l1 l2 bit . l1 l2 bit
, ,
. bit,
, .
Simmons ElGamal . , s = k 1{h(m) ar}
mod (p 1), a , k .
, . Simmons [1147] DSA.
11.6
Rabin [1022] ( 11.86)
1978. Lamport [738] , Diffie
Hellman [345], . Diffie
. ,
Diffie-Lamport. Lamport [738]
, Bos
Chaum [172]. Bos Chaum
, RSA .
Merkle ( 11.92) Merkle
[853] 15.2.3(vi). 11.95
Merkle [853] Winternitz. Bleichenbacher Maurer [155] Lamport, Merkle Winternitz .
Merkle [850, 852, 853]
. ,
. Merkle [853]
. ,
, ,
A. Menezes, P. Van Oorschot, S. Vanstone.
75
: ..
. Merkle [853] .
GMR ( 11.102) Goldwasser, Micali Rivest [484],
-
- ( 11.99) .
Goldwasser, Micali Rivest
. , (., ). O Goldreich [465]
, ( 11.99), ,
, . Bellare Micali
[92] GMR -
( ). Naor Yung [920]
. Rompel
[1068], , . (
),
RSA
, , ,
.
on-line/off-line (. 15.2.3(ix))
Even, Golgreich Micali [377, 378]
(.., ).
(..,
RSA, Rabin, DSA). off-line
Merkle ( 11.92),
.
, off-line. off-line
. on-line
off-line
. , ,
.
A. Menezes, P. Van Oorschot, S. Vanstone.
76
: ..
11.7
11.109
Davies Price [308], Needham Schroeder [923].
To ESIGN ( 11.113 . 15.2.2(i)), Okamoto
Shiraishi [953], OSS, Ong, Schnorr Shamir [958]. OSS
Pollard . Ong, Schnorr Shamir [958] Estes et al.
[374]. To ESIGN
. [953]
k = 2 . Brickell DeLaurentis [202] . k = 3 . Brickell Odlyzko [209, . 516]. Okamoto [948] k 4.
k. Fujioka, Okamoto Miyaguchi [428] ESIGN
RSA .
11.8
(11.8.1) Chaum [242],
, .
( 11.119) Chaum
[243]. Chaum Pedersen [251]
ElGamal (11.5.2),
Schnorr (11.5.3), .
.
Chaum [245] . Camenisch, Piveteau Stadler [228]
DSA ( 11.56) Nyberg-Rueppel ( 11.81). Horster, Petersen Michels [563]
. Stadler, Piveteau Camenisch [1166]
.
Chum, Fiat Naor [250] ,
() .
, on-line
. , . , ,
(-),
. Okamoto [951] .
()
A. Menezes, P. Van Oorschot, S. Vanstone.
77
: ..
, .
(11.8.2) Chaum van Antwerpen [252], ( 11.125). Chaum [246]
( 2 11.122) .
. Chaum [247]
. , .
. Chaum [247] RSA. O Okamoto [950] .
, oyer et al.
[181], (11.8.2)
, () .
., - . . , . . -
. , .
. Boyar et al. [181]
ElGamal (11.5.2) ( )
- .
Chaum, van Heijst Pfitzmann [254] .
- (fail-stop) Waidner Pfitzmann [1227] Pfitzmann Waidner [971]. - - ( 11.98) (. Pfitzmann
Waidner [972]). van Heijst
A. Menezes, P. Van Oorschot, S. Vanstone.
78
: ..
: .
.
A. Menezes, P. Van Oorschot, S. Vanstone.
79
: ..