지식증명서

Proof of knowledge

암호학에서 지식의 증명은 프로베라가 무언가를 알고 있다는 검증자를 '공조'하는 데 성공하는 쌍방향 증거다.기계가 '무엇을 알고 있다'는 것이 의미하는 것은 계산의 관점에서 정의된다.기계는 '무엇을 알고 있다'고, 만약 이것이 계산될 수 있다면, 기계에 입력으로 주어진다.프로베라의 프로그램이 반드시 지식 그 자체를 뱉어내지는 않기 때문에(영지식 증명서[1] 경우처럼) 지식 추출기라 불리는 다른 프로그램을 가진 기계를 도입하여 이러한 생각을 포착한다.우리는 대부분 다항 시간 제한 기계로 증명할 수 있는 것에 관심이 있다.이 경우 지식 요소 집합은 NP에서 일부 언어의 증인 집합으로 제한된다.

(를) NP의 L 과() W( ) 에 대한 증인의 집합이 증명에 수용되도록 한다.를 통해 우리는같은 관계를 정의할 수 있다 R = { , ): , W ( x ) } {\ Rin Lwin W

지식 오류 을(를) 가진 에 대한 지식 증명서는 프로베서 검증자 V 을(를) 가진 양당 프로토콜로, 다음 두 가지 속성이 있다.

  1. 완전성: (, ) R {\w에 있는 경우, 대한 증인 w 을(를) 알고 있는 프로베라 P이 자신의 하는 데성공한다.좀 더 형식적으로: ( (, )V( )→ 1)= 1즉, 프로베베라 P와 검증자 의 상호작용을 고려할 때 검증자가 확신할 확률은 1이다.
  2. 유효성: 타당성을 위해서는 악의적인 P~ 에 대한 Oracle 액세스 권한이 주어지는 경우 증인 추출 시 지식 E 의 성공 확률은 최소한 프로베라 ~ ieca}i만큼 높아야 한다.검증자를 설득하는 것.이 재산은 증인을 모르는 어떤 프로베라도 검증자를 설득하는데 성공할 수 없다는 것을 보장한다.

정의에 대한 세부 정보

이것은 유효성에 대한 보다 엄격한 정의다.[2]

을(를) 증인 관계가 되게 , W(x ){\ W 공개 값 지식 오류에 대한 모든 증인 집합이 되도록 한다.A proof of knowledge is -valid if there exists a polynomial-time machine , given oracle access to , such that for every , it is the case that and

결과 }은(는) 튜링 시스템 {\이(가 결론에 도달하지 않았음을 의미한다.

지식 오류 ( ) V 이(가) 실제로 증인을 알 수 없음에도 x {\을(를)할 가능성을 나타낸다지식 추출기 는 튜링 시스템의 지식으로 무엇을 의미하는지 표현하기 위해 사용된다. 이(가) ~ 에서 w 을(를) 추출할 수 있다면 ~ {이(가) w}의 값을 알고 있다고 말할 수 있다

이러한 유효성 속성의 정의는 유효성 속성과 강력한 유효성 속성의 조합이다.[2]예를 2- {\80} / p l( ){\1/\ {)과 같은 작은 지식 오류 의 경우 일반적인 대화형 교정보다 강한 것으로 볼 수 있다.

일반 대화형 교정쇄와의 관계

특정한 지식의 증거를 정의하기 위해서는 언어뿐만 아니라 검증자가 알아야 할 증인들도 정의해야 한다.어떤 경우에 특정한 증인을 계산하는 것은 어려울 수 있는 반면, 언어의 구성원 자격을 증명하는 것은 쉬울 수 있다.이는 예를 사용하여 가장 잘 설명된다.

을(를) 별도의 로그 문제 해결이 어렵다고 판단되는 생성기 을(를) 가진 순환 그룹이 되도록 한다.Deciding membership of the language is trivial, as every is in . However, finding the witness such that holds corresponds to solving t별개의 로그 문제야

프로토콜

슈노르 프로토콜

가장 단순하고 자주 사용되는 지식의 증명 중 하나인 이산 로그 지식의 증명은 슈노르 덕분이다.[3]프로토콜은 발전기 (가) 있는 순서 주기 그룹 에 대해 정의된다

= 에 대한 지식을 증명하기 위해 프로베러는 다음과 같이 검증기와 상호 작용한다

  1. 첫 번째 라운드에서 프로베러는 자신을 r{\r}에 맡긴다 따라서 첫 번째 메시지 = 약속이라고도 한다.
  2. 검증자는 임의로 선택한 c 로 응답한다.
  3. 를) 수신한 후 프로베러는 세 번째 및 마지막 메시지(응답) = r+ (를) 전송하여 그룹의 순서를 변경한다.

= y c {\ty^{을(를) 수락한다

다음과 같이 작동하는 추출기가 있기 때문에 이것이 유효한 지식의 증거임을 알 수 있다.

  1. proverl을 시뮬레이션하여 t = {\t=프로베러는 현재 상태 에 있다
  2. 임의 값 1}를 생성하여 프로베라로 입력한다. = + x {\1}.
  3. 프로베라를 Q Q)로 되감으십시오 이제 다른 랜덤 값 c }}개를 생성하고 프로베레버에 입력하여 s = + c .
  4. 출력 - )( 1- )-

Since , the output of the extractor is precisely .

이 프로토콜은 지식의 증명에 필요한 것은 아니지만 영지식이다.

시그마 프로토콜

위의 3-이동 구조(커밋, 챌린지, 응답)를 가지는 프로토콜을 시그마 프로토콜이라고[citation needed] 한다.그리스 문자 는 프로토콜의 흐름을 시각화한다.시그마 프로토콜은 이산 로그와 관련된 것과 같은 다양한 문장을 증명하기 위해 존재한다.이러한 증거를 이용하여 프로베러는 이산 로그의 지식을 증명할 수 있을 뿐만 아니라 이산 로그가 특정한 형태라는 것도 증명할 수 있다.예를 들어 1 }에 대해 y displaystyle }}의 두 로그가 같거나 일부 다른 선형 관계를 충족한다는 것을 증명할 수 있다.For a and b elements of , we say that the prover proves knowledge of and such that and .Equality corresponds to the special case where a = 1 and b = 0. As can be trivially computed from this is equivalent to proving knowledge of an x such that .

이것이 바로 지식의 증거에 의해 정확히 증명된 것을 표현하기 위해 흔히 사용되는 다음의 표기법 뒤의 직관이다.[4]

프로베러는 위의 관계를 충족시키는 x를 알고 있다고 진술한다.

적용들

지식의 증명서는 식별 프로토콜의 구축과 그 비 상호 작용 변종인 서명 체계에서 유용한 도구다.그러한 계획은 다음과 같다.

그룹 서명익명의 디지털 자격 증명 시스템 구축에도 사용된다.

참고 항목

참조

  1. ^ 샤피 골드워서, 실비오 미칼리, 찰스 라코프.대화형 교정 시스템의 지식 복잡성.로드아일랜드의 프로비던스 계산 이론에 관한 제17회 심포지엄의 진행. 1985.드래프트. 확장된 추상
  2. ^ a b Mihir Bellare, Oedded Goldreich: 지식의 증거 정의에 관하여.크립토 1992: 390–420
  3. ^ C P Schnorr, 스마트 카드에 대한 효율적인 식별 및 서명, G Brassard, ed.암호학의 진보 – Crypto '89, 239–252, Springer-Verlag, 1990.컴퓨터 과학 강의 노트, nr 435
  4. ^ 대규모 그룹을 위한 효율적인 그룹 서명 방식