Chapter 13. Digital Signatures

박병준·2022년 5월 26일
0

컴퓨터 보안

목록 보기
13/14

Digital Signature의 특성

누가 보낸 건지, 추가로 언제 보낸 건지 확인할 수 있다.

서명이 생성될 당시, 메시지의 내용에 대한 확인할 수 있다.

제3자가 분쟁을 해결할 수 있음을 보장한다.

Digital Signature 요구 조건

보낸 사람이 보낸 사실을 부인/위조할 수 없어야 한다.

서명 생성 및 확인이 쉬워야 한다.

private key가 없으면 서명 생성은 어려워야 한다.
기존 디지털 서명을 가지고 새 메시지를 구성하거나, 특정 메시지에 대한 사기 디지털 서명을 구성하여 디지털 서명을 위조하는 것은 계산상 불가능해야 한다.


Schnorr Identification

사용자 인증 프로토콜

Challenge-response 방식

단순히 똑같은 비밀번호를 입력하는 것이 아니라, 주어진 질문에 대해 계산을 해서 답하는 방식

  • 내가 비밀번호를 입력하는 것을 옆에서 누가 몰래 봐도 안전

  • 이 경우, 상대방(나를 인증하는 쪽)이 내 비밀번호(private key)를 알고 있어야 하는 거 아닌가?
    상대방이 나에 대해 얻어가는 정보는 없다.
    이걸 증명하는게 "zero-knowledge proof"

Bob이 만들어낼 질문, 즉 r이 무엇인지 미리 안다면 Alice가 아닌 다른 사람도 이 테스트를 통과할 수 있다.
이 문제를 해결하기 위해 다음과 같이 바꿀 수 있다.

"Fiat-Shamir heuristic" 방식

원래는 r을 받아서 Γ를 만들어 냈는데, 이제는 처음부터 Alice가 Γ를 만들어 Bob에게 보낸다.
Bob은 M(message)와 Γ를 넣고 hash를 돌려서 r을 만들어 냄 -> r = H(M||y)
결과적으로, Alice는 Bob에게 (Γ, y) 쌍을 보내는 것
Γ 먼저 정하고, Hash에 의해서 r을 생성하기 때문에, a를 가진 Alice만 이 테스트를 통과할 수 있다.
Verifier
r = H(M||y) 계산
y = α^y * v^r mod p 증명

Schnorr signature

Proof가 (Γ, y)로 구성되는 것이 아니라, M: (r, y)로 구성됨 <- 서명

Verifier
y' = α^y * v^r mod p 계산
r = H(M||y')

  • 순서만 바꾼 것.

출처
https://hororolol.tistory.com/477?category=897521
[Cryptography and Network Security: Principles and Practices]

profile
뿌셔뿌셔

0개의 댓글