yona_log
로그인
yona_log
로그인
07. Public Key Cryptography - Digital Signature
Yona
·
2021년 12월 6일
팔로우
0
CS
SSU
정보보안
0
🌙 CS_security
목록 보기
16/24
DSA : digital siganture algorithm
public parameter 생성
p : prime number
L bits ( 512 <= L <= 1024이면서 64의 배수여야 함)
q : prime factor of p-1
g : multiplicative order modulo p is q
h는 (1<h<p-1)이며,
h
p
−
1
h^{p-1}
h
p
−
1
mod
p
=
1
p=1
p
=
1
이다.
User key
x (private key) : 0 < x < q
y (public key) :
y
=
g
x
y=g^x
y
=
g
x
(mod)
p
p
p
Signing
ranom k를 고른다.
signature (r, s) 생성
-
r
=
(
g
x
r=(g^x
r
=
(
g
x
(mod)
p
)
p)
p
)
mod
q
q
q
s =
[
k
−
1
(
H
(
M
)
+
x
r
)
]
[k^{-1}(H(M)+xr)]
[
k
−
1
(
H
(
M
)
+
x
r
)
]
mod q
Verificate (r,s)
v
=
(
g
u
1
y
u
2
m
o
d
p
)
v=(g^{u1}y^{u2}modp)
v
=
(
g
u
1
y
u
2
m
o
d
p
)
mod q
-
u
1
=
(
H
(
M
)
w
)
m
o
d
q
u_1=(H(M)w)modq
u
1
=
(
H
(
M
)
w
)
m
o
d
q
u
2
=
r
w
u_2=rw
u
2
=
r
w
mod
q
q
q
w
=
s
−
1
w=s^{-1}
w
=
s
−
1
(mod
q
q
q
)
v=r인지 확인한다.
왜 r=v여야하는가?
example
RSA vs DSA signature
DSA는 512-1024bit security의 320bit signature 생성 ->
DSA보다 작은 크기의 signature
DSA는 digital scheme만 제공하고, no encryption supported.
DSA 는 q를 사용하여 signing 하는데 최적화되어있다. =>
RSA보다 signing은 빠르고, verification은 느리다.
Yona
Sometimes you win, sometimes you learn 🏃♀️
팔로우
이전 포스트
07. Public Key Cryptography - Elgamal public key
다음 포스트
7. Public Key Cryptography - Eliptic curve
0개의 댓글
댓글 작성