160 likes | 475 Views
Zero Knowledge Proofs. Zero Knowledge Proof (ZKP). Alice 는 비밀에 대한 어떤 정보도 밝히지 않으면서 자신이 비밀을 갖고 있다는 것을 증명하기를 원한다 . Bob 은 Alice 가 비밀을 알고 있다는 것을 증명해야 한다 . 자신은 비밀에 대한 어떤 정보를 얻지 못하더라도 . 과정은 확률에 기반을 두고 있다 . Bob 은 Alice 가 비밀을 알고 있을 확률이 아주 높다는 것으로 증명할 수 있다 .
E N D
Zero Knowledge Proofs Chapter 9 Simple Authentication protocols
Zero Knowledge Proof (ZKP) • Alice는 비밀에 대한 어떤 정보도 밝히지 않으면서 자신이 비밀을 갖고 있다는 것을 증명하기를 원한다. • Bob은 Alice가 비밀을 알고 있다는 것을 증명해야 한다. • 자신은 비밀에 대한 어떤 정보를 얻지 못하더라도. • 과정은 확률에 기반을 두고 있다. • Bob은 Alice가 비밀을 알고 있을 확률이 아주 높다는 것으로 증명할 수 있다. • 대화식 증명 시스템(interactive proof system) Chapter 9 Simple Authentication protocols
Bob의 동굴 • Alice는 R과 S 사이의 문을 열수 있는 비밀 주문을 알고 있다고 주장한다. (“열려라 참깨!”) • 과연 Alice는 Bob에게 비밀 주문을 밝히지 않고 자신이 이 비밀을 알고 있다고 확신시킬 수 있을까? P Q R S Chapter 9 Simple Authentication protocols
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
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
Fiat-Shamir • 공개:N과 v (= S2 mod N) • Alice는 랜덤값 r을 선택한다. • Bob은 e를 선택한다. e {0,1} • Bob은 다음을 검증한다. • y2 = r2S2e = r2(S2)e = xve mod N 비밀값 S 랜덤값 r x = r2 mod N e {0,1} y = rSe mod N Bob Alice Chapter 9 Simple Authentication protocols
Fiat-Shamir: e = 1 • 공개:N과 v (= S2 mod N) • Alice는 랜덤값 r을 선택한다. • 만약 Bob이 e =1을 선택했다면, • Bob은 다음의 식을 검증한다. • y2 = xv mod N • 이 경우 Alice는 S를 알고 있음이 틀림없다. 비밀값 S 랜덤값 r x = r2 mod N e = 1 y = rS mod N Alice Bob Chapter 9 Simple Authentication protocols
Fiat-Shamir: e = 0 • 공개:N과 v (= S2 mod N) • Alice는 랜덤값 r을 선택한다. • 만약 Bob이 e = 0를 선택했다면, • Bob은 다음의 식을 검증해야 한다. • y2 = x mod N • 이 경우 Alice는 S를 알고 있을 필요는 없다. 비밀값 S 랜덤값 r x = r2 mod N e = 0 y = r mod N Alice Bob Chapter 9 Simple Authentication protocols
Fiat-Shamir • 공개:N과 v (= S2 mod N) • 비밀: Alice는 S를 안다. • Alice의 약속(commit) • 랜덤값r을 선택하고x (= r2 mod N)을 보낸다. • Bob의 도전(challenge) • e {0,1}를 Alice에게 보낸다. • Alice의 응답(response) • Alice는y (= rSe mod N)를 Bob에게 보낸다. • Bob의 확인(check) • y2 = xve mod N Chapter 9 Simple Authentication protocols
Fiat-Shamir는 맞는가? • 수학은 맞는다. • 공개: v = S2 • Alice to Bob:x = r2과 y = rSe • Bob의 검증: y2 = xve mod N • Trudy는 Bob이 자신이 Alice라고 속일 수 없을까? • 만약 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
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
현실 세계에서의 ZKP • 공개키는 사용자를 밝히게 된다. • 공개키를 전송할 때 익명성이 보장되지 않는다. • ZKP는 자신의 존재를 드러내지 않고 인증을 할 수 있는 방법을 제공한다. • ZKP는Microsoft’s Next Generation Secure Computing Base (NGSCB)에서 사용 • ZKP는 단지 수학자들의 재미와 게임 만은 아니다! Chapter 9 Simple Authentication protocols
최적의 인증 프로토콜은? • 여러가지 요인에 달려있다… • 적용하는 응용의 성격 • 허용할 수 있는 지연 시간 • 허용할 수 있는 비용 • 사용할 수 있는 암호화 알고리즘 • 공개키, 대칭키, 해쉬 함수 • 상호 인증이 필요한가? • 세션키가 필요한가? • PFS는? • 익명성은?, 등등. Chapter 9 Simple Authentication protocols