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 = rSe mod N
Bob
Alice




공개: N과 v (= S2 mod N)
Alice는 랜덤값 r을 선택한다.
Bob은 e를 선택한다. e  {0,1}
Bob은 다음을 검증한다.

y2 = r2S2e = r2(S2)e = xve mod N
Chapter 9 Simple Authentication protocols
6
Fiat-Shamir: e = 1
비밀값 S
랜덤값 r
x = r2 mod N
e=1
y = rS mod N
Alice




공개: N과 v (= S2 mod N)
Alice는 랜덤값 r을 선택한다.
만약 Bob이 e =1을 선택했다면,
Bob은 다음의 식을 검증한다.


Bob
y2 = xv 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 (= rSe mod N)를 Bob에게 보낸다.
Bob의 확인(check)

y2 = xve mod N
Chapter 9 Simple Authentication protocols
9
Fiat-Shamir는 맞는가?

수학은 맞는다.




Trudy는 Bob이 자신이 Alice라고 속일 수 없을
까?



공개: v = S2
Alice to Bob: x = r2과 y = rSe
Bob의 검증: y2 = xve mod N
만약 Trudy가 e = 0를 예측한다면, 메시지1에 x = r2
을, 메시지3에 y = r을 보낸다. (프로토콜에 따라서)
만약 e = 1을 예측한다면, 메시지1에 x = r2v1을 보
내고 메시지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는 rS 전송 (메시지 3)
r과 rS에서 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