Transcript 9장-2
Zero Knowledge Proofs
Chapter 9 Simple Authentication protocols
1
Zero Knowledge Proof (ZKP)
Alice는 비밀에 대한 어떤 정보도 밝히지 않
으면서 자신이 비밀을 갖고 있다는 것을 증명
하기를 원한다.
Bob은 Alice가 비밀을 알고 있다는 것을 증명
해야 한다.
과정은 확률에 기반을 두고 있다.
자신은 비밀에 대한 어떤 정보를 얻지 못하더라도.
Bob은 Alice가 비밀을 알고 있을 확률이 아주 높다
는 것으로 증명할 수 있다.
대화식 증명 시스템(interactive proof
system)
Chapter 9 Simple Authentication protocols
2
Bob의 동굴
Alice는 R과 S 사이
의 문을 열수 있는 비
밀 주문을 알고 있다
고 주장한다.
(“열려라 참깨!”)
과연 Alice는 Bob에
게 비밀 주문을 밝히
지 않고 자신이 이 비
밀을 알고 있다고 확
신시킬 수 있을까?
Chapter 9 Simple Authentication protocols
P
Q
R
S
3
Bob’s Cave
Bob: “Alice는 S쪽으로 나와라!”
P
Alice (조용히):
“열려라 참깨”
Q
만약 Alice가 비밀
을 모른다면,
R
S
Alic가 운 좋게 맞는 쪽으로 나올 확률은 ½이다.
만약 Bob이 이것을 n번 계속했을 때, Alice가 운 좋게 매번
맞는 쪽으로 나올 확률은 1/2n이다.
따라서 Bob은 매번 Alice가 맞는 쪽으로 나왔다면 Alice는 문
을 여는 비밀을 알고 있다고 확신할 수 있다.(매우 높은 확률
을 가지므로)
Chapter 9 Simple Authentication protocols
4
Fiat-Shamir Protocol
동굴에 기반을 둔 프로토콜은 매우 불편하다.
modulo N의 제곱근을 찾는 것은 힘들다고 알
려져 있다.
소인수 분해와 비슷: N = pq, p와 q는 소수
Alice는 비밀값 S를 갖고 있다.
N과 v (= S2 mod N)은 공개됨, S는 비밀값
동굴 없이 동일한 결과를 얻을 수 있을까?
v를 알더라도 S는 찾을 수 없다.
Alice는 S에 대한 어떤 정보도 제공하지 않으
면서 Bob에게 자신이 S를 갖고 있다는 것을
확신시켜야 한다.
Chapter 9 Simple Authentication protocols
5
Fiat-Shamir
비밀값 S
랜덤값 r
x = r2 mod N
e {0,1}
y = rSe mod N
Bob
Alice
공개: N과 v (= S2 mod N)
Alice는 랜덤값 r을 선택한다.
Bob은 e를 선택한다. e {0,1}
Bob은 다음을 검증한다.
y2 = r2S2e = r2(S2)e = xve mod N
Chapter 9 Simple Authentication protocols
6
Fiat-Shamir: e = 1
비밀값 S
랜덤값 r
x = r2 mod N
e=1
y = rS mod N
Alice
공개: N과 v (= S2 mod N)
Alice는 랜덤값 r을 선택한다.
만약 Bob이 e =1을 선택했다면,
Bob은 다음의 식을 검증한다.
Bob
y2 = xv mod N
이 경우 Alice는 S를 알고 있음이 틀림없다.
Chapter 9 Simple Authentication protocols
7
Fiat-Shamir: e = 0
비밀값 S
랜덤값 r
x = r2 mod N
e=0
Alice
Bob
공개: N과 v (= S2 mod N)
Alice는 랜덤값 r을 선택한다.
만약 Bob이 e = 0를 선택했다면,
Bob은 다음의 식을 검증해야 한다.
y = r mod N
y2 = x mod N
이 경우 Alice는 S를 알고 있을 필요는 없다.
Chapter 9 Simple Authentication protocols
8
Fiat-Shamir
공개: N과 v (= S2 mod N)
비밀: Alice는 S를 안다.
Alice의 약속(commit)
Bob의 도전(challenge)
e {0,1}를 Alice에게 보낸다.
Alice의 응답(response)
랜덤값 r을 선택하고 x (= r2 mod N)을 보낸다.
Alice는 y (= rSe mod N)를 Bob에게 보낸다.
Bob의 확인(check)
y2 = xve mod N
Chapter 9 Simple Authentication protocols
9
Fiat-Shamir는 맞는가?
수학은 맞는다.
Trudy는 Bob이 자신이 Alice라고 속일 수 없을
까?
공개: v = S2
Alice to Bob: x = r2과 y = rSe
Bob의 검증: y2 = xve mod N
만약 Trudy가 e = 0를 예측한다면, 메시지1에 x = r2
을, 메시지3에 y = r을 보낸다. (프로토콜에 따라서)
만약 e = 1을 예측한다면, 메시지1에 x = r2v1을 보
내고 메시지3에 y = r을 보낸다.
만약에 Bob이 e {0,1}의 값을 랜덤으로 선택한
다면, Trudy가 Bob을 속일 수 있을 확률은 ½이
다.
Chapter 9 Simple Authentication protocols
10
Fiat-Shamir Facts
Trudy는 ½의 확률로 Bob을 속일 수 있다.
하지만 n번 반복했을 때 Trudy가 Bob을 속일
확률은 1/2n이다.
Bob의 동굴과 같다!
Bob의 선택, e {0,1}는 예측할 수 없어야 한다.
Alice는 매번 새로운 r을 사용해야 한다. 그렇지
않으면,
If e = 0, Alice는 r 전송 (메시지 3)
If e = 1, Alice는 rS 전송 (메시지 3)
r과 rS에서 S를 찾을 수 있다.
Chapter 9 Simple Authentication protocols
11
현실 세계에서의 ZKP
공개키는 사용자를 밝히게 된다.
공개키를 전송할 때 익명성이 보장되지 않는다.
ZKP는 자신의 존재를 드러내지 않고 인증을 할
수 있는 방법을 제공한다.
ZKP는 Microsoft’s Next Generation Secure
Computing Base (NGSCB)에서 사용
ZKP는 단지 수학자들의 재미와 게임 만은 아니다!
Chapter 9 Simple Authentication protocols
12
최적의 인증 프로토콜은?
여러가지 요인에 달려있다…
적용하는 응용의 성격
허용할 수 있는 지연 시간
허용할 수 있는 비용
사용할 수 있는 암호화 알고리즘
공개키, 대칭키, 해쉬 함수
상호 인증이 필요한가?
세션키가 필요한가?
PFS는?
익명성은?, 등등.
Chapter 9 Simple Authentication protocols
13