07. Public Key Cryptography - Digital Signature

Yona·2021년 12월 6일
0

🌙 CS_security

목록 보기
16/24

DSA : digital siganture algorithm

  1. 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)이며,
    hp1h^{p-1} mod p=1p=1이다.
  1. User key
  • x (private key) : 0 < x < q
  • y (public key) : y=gxy=g^x(mod) pp
  1. Signing
  • ranom k를 고른다.
  • signature (r, s) 생성
    - r=(gxr=(g^x(mod) p)p) mod qq
    • s = [k1(H(M)+xr)][k^{-1}(H(M)+xr)] mod q
  1. Verificate (r,s)
  • v=(gu1yu2modp)v=(g^{u1}y^{u2}modp)mod q
    - u1=(H(M)w)modqu_1=(H(M)w)modq
    • u2=rwu_2=rw mod qq
    • w=s1w=s^{-1}(mod qq)
  • 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은 느리다.
profile
Sometimes you win, sometimes you learn 🏃‍♀️

0개의 댓글