KR20210065809A - Protocol management server to support zero knowledge-snarks based proof services and operating method thereof - Google Patents

Protocol management server to support zero knowledge-snarks based proof services and operating method thereof Download PDF

Info

Publication number
KR20210065809A
KR20210065809A KR1020200002438A KR20200002438A KR20210065809A KR 20210065809 A KR20210065809 A KR 20210065809A KR 1020200002438 A KR1020200002438 A KR 1020200002438A KR 20200002438 A KR20200002438 A KR 20200002438A KR 20210065809 A KR20210065809 A KR 20210065809A
Authority
KR
South Korea
Prior art keywords
key
proof
value
serial code
verification
Prior art date
Application number
KR1020200002438A
Other languages
Korean (ko)
Other versions
KR102364042B1 (en
Inventor
길광은
박준성
이상래
송상엽
홍승필
Original Assignee
주식회사 한컴위드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 한컴위드 filed Critical 주식회사 한컴위드
Publication of KR20210065809A publication Critical patent/KR20210065809A/en
Application granted granted Critical
Publication of KR102364042B1 publication Critical patent/KR102364042B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3218Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]

Abstract

Disclosed are a protocol management server for supporting a zero-knowledge succinct non-interactive argument-of-knowledge (zk-SNARK)-based authentication service and an operating method thereof. According to the present invention, the protocol management server generates and stores an authentication key and a verification key, which are a pair, when a request for generating the authentication key for performing zk-SNARK-based authentication is received from an authenticator terminal, and transmits the verification key to a verifier terminal when a request for transmitting the verification key is received from the verifier terminal so as to enable key exchange by a reliable third party rather than direct key exchange between the authenticator terminal and the verifier terminal, so that reliability in a zk-SNARK-based authentication protocol is further enhanced.

Description

영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버 및 그 동작 방법{PROTOCOL MANAGEMENT SERVER TO SUPPORT ZERO KNOWLEDGE-SNARKS BASED PROOF SERVICES AND OPERATING METHOD THEREOF}A protocol management server to support zero-knowledge-snark-based proof service and its operation method

본 발명은 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버 및 그 동작 방법에 대한 것이다.The present invention relates to a protocol management server for supporting a zero-knowledge-snake-based authentication service and an operating method thereof.

최근, 인터넷의 활용이 증가함에 따라 사용자 인증과 관련된 보안 기술의 중요성이 증대되고 있다.Recently, as the use of the Internet increases, the importance of security technology related to user authentication is increasing.

이러한 보안 기술 중 하나로 영지식 증명(zero-knowledge proof)은 거래 상대방에게 어떠한 정보도 제공하지 않은 채, 자신이 해당 정보를 가지고 있다는 사실을 증명하는 것을 의미한다. 영지식 증명은 다자간의 비대면 통신 프로토콜에서 정보보호 기능을 제공하는데 사용될 수 있다.As one of these security technologies, zero-knowledge proof means to prove that you have the information without providing any information to the counterparty. Zero-knowledge proofs can be used to provide information protection in multi-party, non-face-to-face communication protocols.

이러한 영지식 증명과 관련된 기술 중 영지식-스나크(zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge)는 기존의 영지식 증명을 좀 더 간결하고(succinct) 비상호적인 환경(non-interactive)에서 적용 가능하도록 변형한 기술을 의미한다.Among the technologies related to zero-knowledge proof, zk-SNARKs (zero-knowledge Succinct Non-interactive Argument of Knowledge) is a more succinct, non-interactive argument of knowledge. ) means the technology modified to be applicable in

영지식-스나크는 증명자가 자신이 알고 있는 비밀 값을 자신이 정말로 알고 있음을 입증하는 데에 사용될 수 있다.Zero-knowledge snark can be used by a prover to prove that it really knows the secret value it knows.

관련해서, 증명자가 알고 있는 비밀 값을 w라고 하는 경우, 증명자는 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 증명 키(proving key: pk)와 상기 증명 키에 대응되는 검증 키(verifying key: vk)를 생성하고, 상기 비밀 값 w에 대한 해시 값 x를 생성한 후 하기의 수학식 1과 같이, 영지식-스나크 기반의 증명 값 생성 함수인 P()에 상기 비밀 값 w, 상기 해시 값 x 및 상기 증명 키 pk를 입력으로 인가함으로써, 증명 값 prf를 생성할 수 있다. 그러고 나서, 상기 증명자는 상기 증명 값 prf와 상기 해시 값 x 및 상기 검증 키 vk를 검증자에게 전달할 수 있다.In relation to this, if the secret value known by the prover is w, the prover has a proof key (pk) usable in a zero-knowledge-Snark-based proof protocol and a verifying key (vk) corresponding to the proof key. ), and after generating a hash value x for the secret value w, as shown in Equation 1 below, the secret value w and the hash value x in P( ), which is a zero-knowledge-Snark-based proof value generation function and by applying the proof key pk as an input, a proof value prf may be generated. The prover can then pass the proof value prf, the hash value x and the verification key vk to the verifier.

Figure pat00001
Figure pat00001

이때, 검증자는 상기 증명자로부터 상기 증명 값 prf와 상기 해시 값 x 및 상기 검증 키 vk를 수신하게 되면, 하기의 수학식 2와 같이, 영지식-스나크 기반의 증명 값 검증 함수인 v()에 상기 증명 값 prf와 상기 해시 값 x 및 상기 검증 키 vk를 입력으로 인가함으로써, 상기 증명 값 prf가 참인지 거짓인지 여부를 검증할 수 있다.At this time, when the verifier receives the proof value prf, the hash value x, and the verification key vk from the prover, as shown in Equation 2 below, the zero-knowledge-Snark-based proof value verification function v() is By applying the proof value prf, the hash value x, and the verification key vk as inputs, it is possible to verify whether the proof value prf is true or false.

Figure pat00002
Figure pat00002

만약, 상기 증명 값 prf가 참으로 산출되는 경우, 검증자는 증명자가 상기 비밀 값 w를 정말 알고 있다고 판단할 수 있고, 상기 증명 값 prf가 거짓으로 산출되는 경우, 검증자는 증명자가 상기 비밀 값 w를 속였다고 판단할 수 있다.If the proof value prf yields true, the verifier can determine that the prover really knows the secret value w. If the proof value prf yields false, the verifier determines that the prover knows the secret value w. can be considered deceived.

기존의 영지식-스나크 기반의 증명 프로토콜은 신뢰할 수 있는 공인된 제3자의 개입없이, 증명자와 검증자 상호 간의 정보 교환을 통해서 이루어지고 있었다는 점에서, 신뢰성이 확보되지 못하는 문제가 발생할 수 있었다.Since the existing zero-knowledge-snark-based proof protocol was conducted through information exchange between the prover and the verifier without the intervention of a trusted and authorized third party, a problem in that reliability could not be secured could occur.

이와 관련해서, 증명자와 검증사 사이에서 증명 키와 검증 키를 발급 및 관리하는 소정의 프로토콜 관리 서버를 둠으로써, 영지식-스나크 기반의 증명 프로토콜에서의 신뢰성을 향상시킬 수 있는 기술의 도입을 고려할 수 있다.In this regard, by providing a predetermined protocol management server that issues and manages the proof key and the verification key between the prover and the verifier, the introduction of a technology that can improve reliability in the zero-knowledge-snark-based proof protocol is encouraged. can be considered

인터넷 웹페이지, '영지식 스나크', http://wiki.hash.kr/index.php/%EC%98%81%EC%A7%80%EC%8B%9D_%EC%8A%A4%EB%82%98%ED%81%AC(2019년 7월 27일 공개)Internet webpage, 'Zero Knowledge Snark', http://wiki.hash.kr/index.php/%EC%98%81%EC%A7%80%EC%8B%9D_%EC%8A%A4%EB %82%98%ED%81%AC (released July 27, 2019) Nir Bitansky, Ran Canetti, Alessandro Chiesa, Eran Tromer, 'From Extractable Collision Resistance to Succinct Non-Interactive Arguments of Knowledge, and Back Again', ITCS 2012, pp. 326~349(2012년 공개)Nir Bitansky, Ran Canetti, Alessandro Chiesa, Eran Tromer, 'From Extractable Collision Resistance to Succinct Non-Interactive Arguments of Knowledge, and Back Again', ITCS 2012, pp. 326-349 (released in 2012)

본 발명에 따른 프로토콜 관리 서버는 증명자 단말로부터 영지식-스나크 기반의 증명을 위한 증명 키의 생성 요청이 수신되면, 증명 키와 검증 키 쌍을 생성하여 저장해 두고, 검증자 단말로부터 상기 검증 키에 대한 전송 요청이 수신되면, 상기 검증 키를 상기 검증자 단말로 전달해 주어, 상기 증명자 단말과 상기 검증자 단말 간의 직접적인 키 교환이 아닌 신뢰할 수 있는 제3자에 의한 키 교환을 가능하게 함으로써, 영지식-스나크 기반의 증명 프로토콜에서의 신뢰성을 더욱 강화할 수 있도록 한다.The protocol management server according to the present invention generates and stores a pair of a proof key and a verification key when a request for generation of a proof key for zero-knowledge-Snark-based proof is received from a prover terminal, and stores the pair of proof key and verification key in the verification key from the verifier terminal. When a transmission request is received, the verification key is delivered to the verifier terminal to enable key exchange by a trusted third party rather than direct key exchange between the prover terminal and the verifier terminal. It allows to further strengthen the reliability of the knowledge-snark-based proof protocol.

본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버는 증명자 단말로부터 영지식-스나크(zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge) 기반의 증명 값 생성에 사용하기 위한 증명 키(proving key)의 생성 요청을 수신하는 증명 키 생성 요청 수신부, 상기 증명 키의 생성 요청에 대응하여 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 제1 증명 키 및 상기 제1 증명 키에 대응되는 제1 검증 키(verifying key)를 생성하는 키쌍 생성부, 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드를 생성하는 시리얼 코드 생성부, 상기 고유 시리얼 코드로 제1 시리얼 코드가 생성되면, 키 데이터베이스에 상기 제1 시리얼 코드와 함께 상기 제1 시리얼 코드에 대응되도록 상기 제1 증명 키와 상기 제1 검증 키를 저장하는 키쌍 저장 처리부, 상기 제1 증명 키와 상기 제1 시리얼 코드를 상기 증명자 단말로 전송하는 증명 키 발급부, 상기 증명자 단말이 상기 제1 증명 키를 이용하여 영지식-스나크 기반의 증명 값을 생성한 후 상기 증명 값과 상기 제1 시리얼 코드를 검증자 단말로 전송함에 따라, 상기 검증자 단말이 상기 증명자 단말로부터 전송받은 상기 증명 값의 검증에 사용하기 위한 검증 키의 전송 요청을 상기 프로토콜 관리 서버로 전송하게 되면, 상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 수신하는 검증 키 요청 수신부 및 상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하여 상기 검증자 단말로 전송하는 검증 키 전송부를 포함한다.A protocol management server for supporting a zero-knowledge-Snark-based authentication service according to an embodiment of the present invention is a zero-knowledge-snark (zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge) based A proof key generation request receiving unit that receives a request for generation of a proof key for use in generating a proof value, a first proof key usable in a zero-knowledge-snake-based proof protocol in response to the request for generating the proof key, and A key pair generation unit for generating a first verification key corresponding to the first verification key, a serial code generation unit for generating a unique serial code for indexing the first verification key and the first verification key, the When a first serial code is generated as a unique serial code, a key pair storage processing unit for storing the first authentication key and the first verification key to correspond to the first serial code together with the first serial code in a key database; A proof key issuing unit that transmits one proof key and the first serial code to the prover terminal, and the proof value after the prover terminal generates a zero-knowledge-Snark-based proof value using the first proof key and as the first serial code is transmitted to the verifier terminal, when the verifier terminal transmits a request for transmission of a verification key for use in verification of the proof value received from the verifier terminal to the protocol management server , a verification key request receiving unit for receiving the first serial code together with a request for transmission of the verification key from the verifier terminal, and the first serial code from the key database based on the first serial code received from the verifier terminal and a verification key transmitter for extracting the first verification key stored in correspondence with the code and transmitting it to the verifier terminal.

또한, 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법은 증명자 단말로부터 영지식-스나크 기반의 증명 값 생성에 사용하기 위한 증명 키의 생성 요청을 수신하는 단계, 상기 증명 키의 생성 요청에 대응하여 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 제1 증명 키 및 상기 제1 증명 키에 대응되는 제1 검증 키를 생성하는 단계, 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드를 생성하는 단계, 상기 고유 시리얼 코드로 제1 시리얼 코드가 생성되면, 키 데이터베이스에 상기 제1 시리얼 코드와 함께 상기 제1 시리얼 코드에 대응되도록 상기 제1 증명 키와 상기 제1 검증 키를 저장하는 단계, 상기 제1 증명 키와 상기 제1 시리얼 코드를 상기 증명자 단말로 전송하는 단계, 상기 증명자 단말이 상기 제1 증명 키를 이용하여 영지식-스나크 기반의 증명 값을 생성한 후 상기 증명 값과 상기 제1 시리얼 코드를 검증자 단말로 전송함에 따라, 상기 검증자 단말이 상기 증명자 단말로부터 전송받은 상기 증명 값의 검증에 사용하기 위한 검증 키의 전송 요청을 상기 프로토콜 관리 서버로 전송하게 되면, 상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 수신하는 단계 및 상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하여 상기 검증자 단말로 전송하는 단계를 포함한다.In addition, the operation method of the protocol management server for supporting the zero-knowledge-Snake-based authentication service according to an embodiment of the present invention is the generation of a proof key for use in generating a zero-knowledge-Snark-based proof value from a prover terminal. receiving a request; generating a first proof key usable in a zero-knowledge-Snark-based proof protocol in response to the request for generating the proof key and a first verification key corresponding to the first proof key; 1 generating a unique serial code for indexing a proof key and the first verification key. When the first serial code is generated with the unique serial code, the first serial code is stored together with the first serial code in a key database. storing the first authentication key and the first verification key to correspond to each other; transmitting the first authentication key and the first serial code to the prover terminal; After generating a zero-knowledge-Snark-based proof value by using the method and transmitting the proof value and the first serial code to the verifier terminal, the verifier terminal is used to verify the proof value transmitted from the verifier terminal. When a request for transmission of a verification key for use is transmitted to the protocol management server, receiving the first serial code together with a request for transmission of the verification key from the verifier terminal and the second received from the verifier terminal and extracting the first verification key stored corresponding to the first serial code from the key database based on the first serial code and transmitting the extracted key to the verifier terminal.

본 발명에 따른 프로토콜 관리 서버는 증명자 단말로부터 영지식-스나크 기반의 증명을 위한 증명 키의 생성 요청이 수신되면, 증명 키와 검증 키 쌍을 생성하여 저장해 두고, 검증자 단말로부터 상기 검증 키에 대한 전송 요청이 수신되면, 상기 검증 키를 상기 검증자 단말로 전달해 주어, 상기 증명자 단말과 상기 검증자 단말 간의 직접적인 키 교환이 아닌 신뢰할 수 있는 제3자에 의한 키 교환을 가능하게 함으로써, 영지식-스나크 기반의 증명 프로토콜에서의 신뢰성을 더욱 강화할 수 있다.The protocol management server according to the present invention generates and stores a pair of a proof key and a verification key when a request for generation of a proof key for zero-knowledge-Snark-based proof is received from a prover terminal, and stores the pair of proof key and verification key in the verification key from the verifier terminal. When a transmission request is received, the verification key is delivered to the verifier terminal to enable key exchange by a trusted third party rather than direct key exchange between the prover terminal and the verifier terminal. Reliability in the knowledge-snark-based proof protocol can be further strengthened.

도 1은 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법을 도시한 순서도이다.
1 is a diagram illustrating a structure of a protocol management server for supporting a zero-knowledge-snake-based authentication service according to an embodiment of the present invention.
2 is a flowchart illustrating an operation method of a protocol management server for supporting a zero-knowledge-snake-based authentication service according to an embodiment of the present invention.

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. These descriptions are not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. In describing each drawing, like reference numerals are used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, refer to those of ordinary skill in the art to which the present invention belongs. It has the same meaning as is commonly understood by those who have it.

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, in various embodiments of the present invention, each of the components, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, an ASIC (Application Specific Integrated Circuit), etc. may be implemented with various well-known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks in the accompanying block diagram or steps in the flowchart are computer program instructions that are loaded in a processor or memory of equipment capable of data processing, such as a general-purpose computer, a special-purpose computer, a portable notebook computer, and a network computer, and perform specified functions. can be interpreted as meaning Since these computer program instructions may be stored in a memory provided in a computer device or in a memory readable by a computer, the functions described in the blocks of the block diagrams or the steps of the flowcharts are produced as articles of manufacture containing instruction means for performing the same. could be In addition, each block or each step may represent a module, segment, or portion of code comprising one or more executable instructions for executing the specified logical function(s). It should also be noted that, in some alternative embodiments, it is also possible for the functions recited in blocks or steps to be executed out of the prescribed order. For example, two blocks or steps shown in succession may be performed substantially simultaneously or in the reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 구조를 도시한 도면이다.1 is a diagram illustrating the structure of a protocol management server for supporting a zero-knowledge-snake-based authentication service according to an embodiment of the present invention.

도 1을 참조하면, 본 발명에 따른 프로토콜 관리 서버(110)는 증명 키 생성 요청 수신부(111), 키쌍 생성부(112), 시리얼 코드 생성부(113), 키쌍 저장 처리부(114), 증명 키 발급부(116), 검증 키 요청 수신부(117) 및 검증 키 전송부(118)를 포함한다.Referring to FIG. 1 , the protocol management server 110 according to the present invention includes a proof key generation request receiving unit 111 , a key pair generating unit 112 , a serial code generating unit 113 , a key pair storage processing unit 114 , and a proof key It includes an issuing unit 116 , a verification key request receiving unit 117 , and a verification key transmitting unit 118 .

증명 키 생성 요청 수신부(111)는 증명자 단말(101)로부터 영지식-스나크(zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge) 기반의 증명 값 생성에 사용하기 위한 증명 키(proving key)의 생성 요청을 수신한다.The proof key generation request receiving unit 111 provides a proof key for use in generating a proof value based on zero-knowledge Succinct Non-interactive Argument of Knowledge (zk-SNARKs) from the prover terminal 101 . ) to receive a creation request.

키쌍 생성부(112)는 상기 증명 키의 생성 요청에 대응하여 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 제1 증명 키 및 상기 제1 증명 키에 대응되는 제1 검증 키(verifying key)를 생성한다.The key pair generator 112 generates a first proof key usable in a zero-knowledge-snake-based proof protocol and a first verifying key corresponding to the first proof key in response to the request for generating the proof key. do.

시리얼 코드 생성부(113)는 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드를 생성한다.The serial code generator 113 generates a unique serial code for indexing the first authentication key and the first verification key.

이때, 본 발명의 일실시예에 따르면, 시리얼 코드 생성부(113)는 사전 설정된 난수 생성 함수를 기초로 난수를 생성한 후 증명자 단말(101)의 고유 ID, 상기 증명 키의 생성 요청이 수신된 시간 및 상기 난수를 순차적으로 연접(concatenation)하여 제1 연접 데이터를 생성하고, 상기 제1 연접 데이터를 사전 설정된 시리얼 코드 생성용 해시 함수에 입력으로 인가하여 연산되는 해시 값을 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드로 생성할 수 있다.At this time, according to an embodiment of the present invention, the serial code generator 113 generates a random number based on a preset random number generation function, and then receives a unique ID of the prover terminal 101 and a request for generating the proof key. The first concatenated data is generated by sequentially concatenating the time and the random number, and the hash value calculated by applying the first concatenated data as an input to a preset hash function for generating a serial code is used as the first proof key and a unique serial code for indexing the first verification key.

키쌍 저장 처리부(114)는 상기 고유 시리얼 코드로 제1 시리얼 코드가 생성되면, 키 데이터베이스(115)에 상기 제1 시리얼 코드와 함께 상기 제1 시리얼 코드에 대응되도록 상기 제1 증명 키와 상기 제1 검증 키를 저장한다.When the first serial code is generated with the unique serial code, the key pair storage processing unit 114 is configured to correspond to the first serial code together with the first serial code in the key database 115 so that the first authentication key and the first serial code are generated. Store the verification key.

그리고, 증명 키 발급부(116)는 상기 제1 증명 키와 상기 제1 시리얼 코드를 증명자 단말(101)로 전송한다.Then, the authentication key issuing unit 116 transmits the first authentication key and the first serial code to the prover terminal 101 .

이때, 본 발명의 일실시예에 따르면, 증명자 단말(101)은 프로토콜 관리 서버(110)로부터 상기 제1 증명 키와 상기 제1 시리얼 코드가 수신되면, 영지식 증명의 대상이 되는 사전 저장되어 있는 비밀 값에 대한 해시 값을 산출한 후 상기 비밀 값과 상기 해시 값 및 상기 제1 증명 키를 증명 값의 생성을 위한 사전 설정된 영지식-스나크 기반의 증명 값 생성 함수에 입력으로 인가하여 상기 증명 값을 생성하고, 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값을 검증자 단말(102)로 전송할 수 있다.At this time, according to an embodiment of the present invention, when the first authentication key and the first serial code are received from the protocol management server 110, the prover terminal 101 is pre-stored as a target of zero-knowledge proof. After calculating the hash value for the secret value, the secret value, the hash value, and the first proof key are applied as inputs to a preset zero-knowledge-Snark-based proof value generating function for generating a proof value to prove the proof A value may be generated, and the proof value, the first serial code, and the hash value may be transmitted to the verifier terminal 102 .

관련해서, 상기 비밀 값을 w, 상기 해시 값을 x, 프로토콜 관리 서버(110)로부터 수신된 상기 제1 증명 키를 pk라고 하는 경우, 증명자 단말(101)는 하기의 수학식 3에서와 같이, 상기 증명 값 생성 함수 P()에 상기 비밀 값과 상기 해시 값 및 상기 제1 증명 키를 입력으로 인가하여 상기 증명 값 prf를 생성할 수 있다.In this regard, when the secret value is w, the hash value is x, and the first proof key received from the protocol management server 110 is pk, the prover terminal 101 is , by applying the secret value, the hash value, and the first proof key as inputs to the proof value generating function P( ), the proof value prf may be generated.

Figure pat00003
Figure pat00003

이때, 본 발명의 일실시예에 따르면, 검증자 단말(102)은 증명자 단말(101)로부터 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값이 수신되면, 프로토콜 관리 서버(110)로 상기 증명 값의 검증에 사용하기 위한 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 전송할 수 있다.At this time, according to an embodiment of the present invention, when the verification value, the first serial code, and the hash value are received from the prover terminal 101, the verifier terminal 102 sends the The first serial code may be transmitted together with a request for transmission of the verification key for use in verification of the proof value.

이때, 검증 키 요청 수신부(117)는 검증자 단말(102)로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 수신한다.In this case, the verification key request receiving unit 117 receives the first serial code together with the verification key transmission request from the verifier terminal 102 .

그리고, 검증 키 전송부(118)는 검증자 단말(102)로부터 수신된 상기 제1 시리얼 코드를 기초로 키 데이터베이스(115)로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하여 검증자 단말(102)로 전송한다.Then, the verification key transmitter 118 receives the first verification key stored in correspondence with the first serial code from the key database 115 based on the first serial code received from the verifier terminal 102 . It is extracted and transmitted to the verifier terminal 102 .

이때, 검증자 단말(102)은 프로토콜 관리 서버(110)로부터 상기 제1 검증 키가 수신되면, 상기 증명 값의 검증을 위한 사전 설정된 영지식-스나크 기반의 증명 값 검증 함수에 상기 증명 값과 상기 제1 검증 키 및 상기 해시 값을 입력으로 인가하여 상기 증명 값이 참인지 거짓인지 여부를 검증함으로써, 상기 비밀 값의 유효성을 확인할 수 있다.At this time, when the first verification key is received from the protocol management server 110, the verifier terminal 102 adds the proof value and the pre-set zero-knowledge-Snark-based proof value verification function for verification of the proof value. By applying the first verification key and the hash value as inputs to verify whether the proof value is true or false, the validity of the secret value can be verified.

관련해서, 전술한 바와 같이, 상기 비밀 값을 w, 상기 해시 값을 x, 상기 증명 값을 prf라고 하고, 프로토콜 관리 서버(110)로부터 수신된 상기 제1 검증 키를 vk라고 하는 경우, 검증자 단말(102)은 하기의 수학식 4에서와 같이, 상기 증명 값 검증 함수 v()에 상기 증명 값 prf와 상기 해시 값 x 및 상기 제1 검증 키 vk를 입력으로 인가함으로써, 상기 증명 값 prf가 참인지 거짓인지 여부를 검증할 수 있다.In relation to, as described above, when the secret value is w, the hash value is x, the proof value is prf, and the first verification key received from the protocol management server 110 is vk, the verifier The terminal 102 applies the proof value prf, the hash value x, and the first verification key vk to the proof value verification function v() as inputs, as shown in Equation 4 below, so that the proof value prf is You can test whether it is true or false.

Figure pat00004
Figure pat00004

결국, 본 발명에 따른 프로토콜 관리 서버(110)는 증명자 단말(101)로부터 영지식-스나크 기반의 증명을 위한 증명 키의 생성 요청이 수신되면, 증명 키와 검증 키 쌍을 생성하여 저장해 두고, 검증자 단말(102)로부터 상기 검증 키에 대한 전송 요청이 수신되면, 상기 검증 키를 검증자 단말(102)로 전달해 주어, 증명자 단말(101)과 검증자 단말(102) 간의 직접적인 키 교환이 아닌 신뢰할 수 있는 제3자에 의한 키 교환을 가능하게 함으로써, 영지식-스나크 기반의 증명 프로토콜에서의 신뢰성을 더욱 강화할 수 있다.After all, when a request for generating a proof key for zero-knowledge-Snark-based proof is received from the prover terminal 101, the protocol management server 110 according to the present invention generates and stores a pair of a proof key and a verification key, When a transmission request for the verification key is received from the verifier terminal 102, the verification key is transferred to the verifier terminal 102, so that direct key exchange between the prover terminal 101 and the verifier terminal 102 is performed. By enabling key exchange by a trusted third party, the reliability in the zero-knowledge-snake-based proof protocol can be further strengthened.

이때, 본 발명의 일실시예에 따르면, 프로토콜 관리 서버(110)는 검증자 단말(102)로 상기 제1 검증 키를 전달해 줄 때, 프로토콜 관리 서버(110)의 전자 서명을 추가하여 검증자 단말(102)로 함께 전달함으로써, 상기 제1 검증 키를 전달하는 프로토콜 관리 서버(110)에 대한 신뢰성을 보장하기 위한 구성을 더 포함할 수 있다. 이와 관련해서, 검증 키 전송부(118)는 상관 계수 저장부(119), 난수 요청부(120), 상관 값 생성부(121), 검증 키 추출부(122), 전자 서명부(123) 및 전송부(124)를 포함할 수 있다.At this time, according to an embodiment of the present invention, when the protocol management server 110 delivers the first verification key to the verifier terminal 102 , the electronic signature of the protocol management server 110 is added to the verifier terminal. By forwarding it together to 102 , it may further include a configuration for ensuring the reliability of the protocol management server 110 forwarding the first verification key. In this regard, the verification key transmission unit 118 includes the correlation coefficient storage unit 119, the random number request unit 120, the correlation value generation unit 121, the verification key extraction unit 122, the electronic signature unit 123, and transmission. part 124 .

상관 계수 저장부(119)에는 인증에 사용하기 위한 사전 설정된 제1 상관 계수(correlation coefficient)가 저장되어 있다.The correlation coefficient storage unit 119 stores a preset first correlation coefficient for use in authentication.

여기서, 상관 계수는 2개의 연속형 변수 간의 연관성에 대한 측도를 의미하는 것으로 하기의 수학식 5에 따라 연산될 수 있다.Here, the correlation coefficient refers to a measure of the correlation between two continuous variables, and may be calculated according to Equation 5 below.

Figure pat00005
Figure pat00005

여기서, R은 변수 x의 n개 자료 (x1, ..., xn)와 변수 y의 n개 자료 (y1, ..., yn) 간의 상관 계수,

Figure pat00006
는 x1, ..., xn의 평균,
Figure pat00007
는 y1, ..., yn의 평균을 의미한다. 보통, R이 1에 가까울수록 두 변수는 양의 상관관계를 갖는다고 볼 수 있고, R=0일 때 두 변수 간의 선형적인 연관성은 없다고 볼 수 있으며, R이 -1에 가까울수록 음의 상관관계를 갖는다고 볼 수 있다.where R is the correlation coefficient between the n data of variable x (x 1 , ..., x n ) and the n data of variable y (y 1 , ..., y n ),
Figure pat00006
is the mean of x 1 , ..., x n,
Figure pat00007
is the mean of y 1 , ..., y n . In general, as R is closer to 1, it can be seen that the two variables have a positive correlation, when R = 0, it can be seen that there is no linear correlation between the two variables, and as R is closer to -1, the correlation is negative. can be seen to have

난수 요청부(120)는 검증자 단말(102)로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드의 수신이 완료되면, 검증자 단말(102)로 n(n은 2이상의 자연수)개의 난수들의 전송을 요청한다.When the reception of the first serial code is completed together with the request for transmission of the verification key from the verifier terminal 102 , the random number request unit 120 sends n random numbers to the verifier terminal 102 (n is a natural number greater than or equal to 2). request their transmission.

이때, 검증자 단말(102)은 프로토콜 관리 서버(110)로부터 상기 n개의 난수들의 전송 요청이 수신되면, n개의 제1 난수들을 생성해서 프로토콜 관리 서버(110)로 전송할 수 있다.At this time, when the request for transmission of the n random numbers is received from the protocol management server 110 , the verifier terminal 102 may generate n first random numbers and transmit them to the protocol management server 110 .

상관 값 생성부(121)는 검증자 단말(102)로부터 난수들의 전송 요청에 대응해서 상기 n개의 제1 난수들이 수신되면, 상기 n개의 제1 난수들과의 상관 계수가 상기 제1 상관 계수로 연산되는 n개의 상관 값들을 생성한다.When the n first random numbers are received in response to a request for transmission of random numbers from the verifier terminal 102 , the correlation value generator 121 sets the correlation coefficient with the n first random numbers as the first correlation coefficient. Generates n correlation values to be computed.

검증 키 추출부(122)는 검증자 단말(102)로부터 수신된 상기 제1 시리얼 코드를 기초로 키 데이터베이스(115)로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출한다.The verification key extraction unit 122 extracts the first verification key stored corresponding to the first serial code from the key database 115 based on the first serial code received from the verifier terminal 102 . .

전자 서명부(123)는 상기 제1 검증 키가 추출되면, 상기 제1 검증 키와 상기 제1 시리얼 코드 및 상기 n개의 상관 값들을 순차적으로 연접하여 제2 연접 데이터를 생성한 후 상기 제2 연접 데이터를 사전 발급되어 있는 개인키로 암호화하여 전자 서명 값을 생성한다.When the first verification key is extracted, the electronic signature unit 123 sequentially concatenates the first verification key, the first serial code, and the n correlation values to generate second concatenated data, and then the second concatenated data is encrypted with a pre-issued private key to generate a digital signature value.

그리고, 전송부(124)는 상기 제1 검증 키를 검증자 단말(102)로 전송함과 동시에 상기 전자 서명 값을 검증자 단말(102)로 전송한다.In addition, the transmitter 124 transmits the first verification key to the verifier terminal 102 and simultaneously transmits the electronic signature value to the verifier terminal 102 .

이때, 본 발명의 일실시예에 따르면, 검증자 단말(102)은 상기 제1 상관 계수와 상기 개인키에 대응되는 공개키를 사전 저장하고 있을 수 있다. 이때, 검증자 단말(102)은 프로토콜 관리 서버(110)로부터 상기 제1 검증 키와 상기 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 복호화를 수행하여 상기 제2 연접 데이터를 복원할 수 있다.At this time, according to an embodiment of the present invention, the verifier terminal 102 may pre-store the public key corresponding to the first correlation coefficient and the private key. At this time, when the verifier terminal 102 receives the first verification key and the digital signature value from the protocol management server 110, the verifier terminal 102 performs decryption on the digital signature value based on the public key to perform the second connection data can be restored.

그러고 나서, 검증자 단말(102)은 상기 복원된 제2 연접 데이터에서 상기 제1 검증 키와 상기 제1 시리얼 코드를 제거하여 상기 n개의 상관 값들을 분리 추출한 후 앞서, 프로토콜 관리 서버(110)로 전송한 상기 n개의 제1 난수들과 상기 분리 추출된 n개의 상관 값들간의 상관 계수가 상기 제1 상관 계수로 연산되는지 확인할 수 있다.Then, the verifier terminal 102 removes the first verification key and the first serial code from the restored second concatenated data to separate and extract the n correlation values, and then to the protocol management server 110 . It may be confirmed whether a correlation coefficient between the transmitted n first random numbers and the n correlation values separated and extracted is calculated as the first correlation coefficient.

만약, 상기 n개의 제1 난수들과 상기 분리 추출된 n개의 상관 값들간의 상관 계수가 상기 제1 상관 계수로 연산되는 것으로 확인되는 경우, 전자 서명을 위한 개인키-공개키 쌍뿐 아니라, 상기 제1 상관 계수를 서로 공유하고 있는 진정한 프로토콜 관리 서버(110)에 의해 상기 전자 서명 값이 생성된 것이 맞다는 의미로 볼 수 있기 때문에, 검증자 단말(102)은 상기 전자 서명 값에 대한 검증을 완료 처리할 수 있다.If it is confirmed that the correlation coefficient between the n first random numbers and the separately extracted n correlation values is calculated as the first correlation coefficient, in addition to the private key-public key pair for the digital signature, the second Since it can be seen that the digital signature value is generated by the true protocol management server 110 that shares a correlation coefficient of 1 with each other, the verifier terminal 102 completes the verification of the electronic signature value. can be processed

하지만, 상기 n개의 제1 난수들과 상기 분리 추출된 n개의 상관 값들간의 상관 계수가 상기 제1 상관 계수로 연산되지 않는 것으로 확인되는 경우, 상기 전자 서명 값에 대한 복호화가 잘못되었거나, 프로토콜 관리 서버(110)와 검증자 단말(102) 간에 상기 제1 상관 계수를 제대로 공유하고 있지 않는 것으로 볼 수 있기 때문에, 검증자 단말(102)은 상기 전자 서명 값에 대한 검증을 실패로 처리할 수 있다.However, when it is confirmed that the correlation coefficient between the n first random numbers and the n correlation values separated and extracted is not calculated as the first correlation coefficient, the decoding of the digital signature value is incorrect, or protocol management Since it can be seen that the first correlation coefficient is not properly shared between the server 110 and the verifier terminal 102, the verifier terminal 102 may treat the verification of the digital signature value as a failure. .

검증자 단말(102)은 상기 전자 서명 값에 대한 검증을 수행한 결과, 상기 전자 서명 값에 대한 검증이 완료되면, 상기 제1 검증 키가 신뢰할 수 있는 프로토콜 관리 서버(110)에 의해 발급된 것이 맞는 것으로 볼 수 있기 때문에, 상기 제1 검증 키를 기초로 상기 증명 값에 대한 검증을 수행할 수 있다.As a result of verifying the electronic signature value, the verifier terminal 102 verifies that the first verification key is issued by the trusted protocol management server 110 when the verification of the electronic signature value is completed. Since it is considered correct, verification of the proof value may be performed based on the first verification key.

도 2는 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법을 도시한 순서도이다.2 is a flowchart illustrating an operation method of a protocol management server for supporting a zero-knowledge-snake-based authentication service according to an embodiment of the present invention.

단계(S210)에서는 증명자 단말로부터 영지식-스나크 기반의 증명 값 생성에 사용하기 위한 증명 키의 생성 요청을 수신한다.In step S210, a request for generating a proof key for use in generating a zero-knowledge-Snark-based proof value is received from the prover terminal.

단계(S220)에서는 상기 증명 키의 생성 요청에 대응하여 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 제1 증명 키 및 상기 제1 증명 키에 대응되는 제1 검증 키를 생성한다.In step S220, a first proof key usable in a zero-knowledge-Snark-based proof protocol and a first verification key corresponding to the first proof key are generated in response to the request for generating the proof key.

단계(S230)에서는 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드를 생성한다.In step S230, a unique serial code for indexing the first authentication key and the first verification key is generated.

단계(S240)에서는 상기 고유 시리얼 코드로 제1 시리얼 코드가 생성되면, 키 데이터베이스에 상기 제1 시리얼 코드와 함께 상기 제1 시리얼 코드에 대응되도록 상기 제1 증명 키와 상기 제1 검증 키를 저장한다.In step S240, when the first serial code is generated with the unique serial code, the first authentication key and the first verification key are stored in a key database to correspond to the first serial code together with the first serial code. .

단계(S250)에서는 상기 제1 증명 키와 상기 제1 시리얼 코드를 상기 증명자 단말로 전송한다.In step S250, the first authentication key and the first serial code are transmitted to the prover terminal.

단계(S260)에서는 상기 증명자 단말이 상기 제1 증명 키를 이용하여 영지식-스나크 기반의 증명 값을 생성한 후 상기 증명 값과 상기 제1 시리얼 코드를 검증자 단말로 전송함에 따라, 상기 검증자 단말이 상기 증명자 단말로부터 전송받은 상기 증명 값의 검증에 사용하기 위한 검증 키의 전송 요청을 상기 프로토콜 관리 서버로 전송하게 되면, 상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 수신한다.In step S260, as the prover terminal generates a zero-knowledge-snark-based proof value using the first proof key and transmits the proof value and the first serial code to the verifier terminal, the verification When the self terminal transmits to the protocol management server a request for transmission of a verification key to be used for verification of the proof value received from the verifier terminal, the first request for transmission of the verification key from the verifier terminal Receive serial code.

단계(S270)에서는 상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하여 상기 검증자 단말로 전송한다.In step S270, the first verification key stored in correspondence with the first serial code is extracted from the key database based on the first serial code received from the verifier terminal and transmitted to the verifier terminal. .

이때, 본 발명의 일실시예에 따르면, 상기 증명자 단말은 상기 프로토콜 관리 서버로부터 상기 제1 증명 키와 상기 제1 시리얼 코드가 수신되면, 영지식 증명의 대상이 되는 사전 저장되어 있는 비밀 값에 대한 해시 값을 산출한 후 상기 비밀 값과 상기 해시 값 및 상기 제1 증명 키를 상기 증명 값의 생성을 위한 사전 설정된 영지식-스나크 기반의 증명 값 생성 함수에 입력으로 인가하여 상기 증명 값을 생성하고, 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값을 상기 검증자 단말로 전송할 수 있다.At this time, according to an embodiment of the present invention, when the first authentication key and the first serial code are received from the protocol management server, the prover terminal stores the secret value that is the subject of zero-knowledge proof in advance. After calculating the hash value for the , the secret value, the hash value, and the first proof key are applied as inputs to a preset zero-knowledge-Snark-based proof value generating function for generating the proof value to generate the proof value. and transmit the proof value, the first serial code, and the hash value to the verifier terminal.

또한, 본 발명의 일실시예에 따르면, 상기 검증자 단말은 상기 증명자 단말로부터 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값이 수신되면, 상기 프로토콜 관리 서버로 상기 증명 값의 검증에 사용하기 위한 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 전송하고, 상기 프로토콜 관리 서버로부터 상기 제1 검증 키가 수신되면, 상기 증명 값의 검증을 위한 사전 설정된 영지식-스나크 기반의 증명 값 검증 함수에 상기 증명 값과 상기 제1 검증 키 및 상기 해시 값을 입력으로 인가하여 상기 증명 값이 참인지 거짓인지 여부를 검증함으로써, 상기 비밀 값의 유효성을 확인할 수 있다.In addition, according to an embodiment of the present invention, when the verifier terminal receives the proof value, the first serial code, and the hash value from the prover terminal, it is used to verify the proof value with the protocol management server. transmits the first serial code together with a request for transmission of the verification key for performing the above-mentioned procedure, and when the first verification key is received from the protocol management server, a preset zero-knowledge-snake-based proof value for verification of the proof value By applying the proof value, the first verification key, and the hash value to a verification function as inputs to verify whether the proof value is true or false, the validity of the secret value can be verified.

또한, 본 발명의 일실시예에 따르면, 단계(S230)에서는 사전 설정된 난수 생성 함수를 기초로 난수를 생성한 후 상기 증명자 단말의 고유 ID, 상기 증명 키의 생성 요청이 수신된 시간 및 상기 난수를 순차적으로 연접하여 제1 연접 데이터를 생성하고, 상기 제1 연접 데이터를 사전 설정된 시리얼 코드 생성용 해시 함수에 입력으로 인가하여 연산되는 해시 값을 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드로 생성할 수 있다.In addition, according to an embodiment of the present invention, in step S230, after generating a random number based on a preset random number generation function, the unique ID of the prover terminal, the time at which the request for generation of the proof key is received, and the random number are sequentially concatenated to generate first concatenated data, and a hash value calculated by applying the first concatenated data as an input to a preset hash function for generating a serial code is indexed with the first proof key and the first verification key It can be generated as a unique serial code for

또한, 본 발명의 일실시예에 따르면, 단계(S270)에서는 인증에 사용하기 위한 사전 설정된 제1 상관 계수가 저장되어 있는 상관 계수 저장부를 유지하는 단계, 상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드의 수신이 완료되면, 상기 검증자 단말로 n(n은 2이상의 자연수)개의 난수들의 전송을 요청하는 단계, 상기 검증자 단말로부터 난수들의 전송 요청에 대응해서 n개의 제1 난수들이 수신되면, 상기 n개의 제1 난수들과의 상관 계수가 상기 제1 상관 계수로 연산되는 n개의 상관 값들을 생성하는 단계, 상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하는 단계, 상기 제1 검증 키가 추출되면, 상기 제1 검증 키와 상기 제1 시리얼 코드 및 상기 n개의 상관 값들을 순차적으로 연접하여 제2 연접 데이터를 생성한 후 상기 제2 연접 데이터를 사전 발급되어 있는 개인키로 암호화하여 전자 서명 값을 생성하는 단계 및 상기 제1 검증 키를 상기 검증자 단말로 전송함과 동시에 상기 전자 서명 값을 상기 검증자 단말로 전송하는 단계를 포함할 수 있다.In addition, according to an embodiment of the present invention, in step S270, a step of maintaining a correlation coefficient storage in which a preset first correlation coefficient for use in authentication is stored, a request for transmission of the verification key from the verifier terminal When the reception of the first serial code is completed together with the step of requesting to transmit n (n is a natural number greater than or equal to 2) random numbers to the verifier terminal, n number of random numbers in response to the request for transmission of random numbers from the verifier terminal When 1 random numbers are received, generating n correlation values in which correlation coefficients with the n first random numbers are calculated as the first correlation coefficients, based on the first serial code received from the verifier terminal extracting the first verification key stored in correspondence with the first serial code from the key database; when the first verification key is extracted, the first verification key, the first serial code, and the n correlations After sequentially concatenating values to generate second concatenated data, encrypting the second concatenated data with a previously issued private key to generate an electronic signature value, and transmitting the first verification key to the verifier terminal; At the same time, it may include transmitting the digital signature value to the verifier terminal.

이때, 본 발명의 일실시예에 따르면, 상기 검증자 단말은 상기 제1 상관 계수와 상기 개인키에 대응되는 공개키를 사전 저장하고 있고, 상기 프로토콜 관리 서버로부터 상기 제1 검증 키와 상기 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 복호화를 수행하여 상기 제2 연접 데이터를 복원하고, 상기 복원된 제2 연접 데이터에서 상기 제1 검증 키와 상기 제1 시리얼 코드를 제거하여 상기 n개의 상관 값들을 분리 추출한 후 상기 n개의 제1 난수들과 상기 분리 추출된 n개의 상관 값들간의 상관 계수가 상기 제1 상관 계수로 연산되는지 확인함으로써, 상기 전자 서명 값에 대한 검증을 수행한 후 상기 전자 서명 값에 대한 검증이 완료되면, 상기 제1 검증 키를 기초로 상기 증명 값에 대한 검증을 수행할 수 있다.At this time, according to an embodiment of the present invention, the verifier terminal pre-stores the public key corresponding to the first correlation coefficient and the private key, and the first verification key and the electronic signature from the protocol management server When the value is received, the digital signature value is decrypted based on the public key to restore the second concatenated data, and the first verification key and the first serial code are obtained from the restored second concatenated data. After separating and extracting the n correlation values by removing them, verifying the digital signature value by checking whether the correlation coefficient between the n first random numbers and the n correlation values separated and extracted is calculated as the first correlation coefficient When verification of the digital signature value is completed after performing , verification of the proof value may be performed based on the first verification key.

이상, 도 2를 참조하여 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법은 도 1을 이용하여 설명한 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.The operation method of the protocol management server for supporting the zero-knowledge-snake-based authentication service according to an embodiment of the present invention has been described above with reference to FIG. 2 . Here, the operation method of the protocol management server for supporting the zero-knowledge-snake-based authentication service according to an embodiment of the present invention is a protocol management server for supporting the zero-knowledge-snake-based authentication service described with reference to FIG. 1 . Since it may correspond to the configuration of the operation of 110 , a more detailed description thereof will be omitted.

본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.The zero-knowledge-snake-based operating method of the protocol management server for supporting the authentication service according to an embodiment of the present invention may be implemented as a computer program stored in a storage medium for execution through combination with a computer.

또한, 본 발명의 일실시예에 따른 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the operation method of the protocol management server for supporting the zero-knowledge-snake-based authentication service according to an embodiment of the present invention is implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. can be The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described with specific matters such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , various modifications and variations are possible from these descriptions by those of ordinary skill in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and not only the claims to be described later, but also all those with equivalent or equivalent modifications to the claims will be said to belong to the scope of the spirit of the present invention. .

110: 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버
111: 증명 키 생성 요청 수신부 112: 키쌍 생성부
113: 시리얼 코드 생성부 114: 키쌍 저장 처리부
115: 키 데이터베이스 116: 증명 키 발급부
117: 검증 키 요청 수신부 118: 검증 키 전송부
119: 상관 계수 저장부 120: 난수 요청부
121: 상관 값 생성부 122: 검증 키 추출부
123: 전자 서명부 124: 전송부
101: 증명자 단말
102: 검증자 단말
110: Protocol management server for supporting zero-knowledge-snark-based proof service
111: proof key generation request receiving unit 112: key pair generation unit
113: serial code generation unit 114: key pair storage processing unit
115: key database 116: proof key issuer
117: verification key request receiving unit 118: verification key transmitting unit
119: correlation coefficient storage unit 120: random number request unit
121: correlation value generation unit 122: verification key extraction unit
123: electronic signature unit 124: transmission unit
101: prover terminal
102: verifier terminal

Claims (14)

영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버에 있어서,
증명자 단말로부터 영지식-스나크(zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge) 기반의 증명 값 생성에 사용하기 위한 증명 키(proving key)의 생성 요청을 수신하는 증명 키 생성 요청 수신부;
상기 증명 키의 생성 요청에 대응하여 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 제1 증명 키 및 상기 제1 증명 키에 대응되는 제1 검증 키(verifying key)를 생성하는 키쌍 생성부;
상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드를 생성하는 시리얼 코드 생성부;
상기 고유 시리얼 코드로 제1 시리얼 코드가 생성되면, 키 데이터베이스에 상기 제1 시리얼 코드와 함께 상기 제1 시리얼 코드에 대응되도록 상기 제1 증명 키와 상기 제1 검증 키를 저장하는 키쌍 저장 처리부;
상기 제1 증명 키와 상기 제1 시리얼 코드를 상기 증명자 단말로 전송하는 증명 키 발급부;
상기 증명자 단말이 상기 제1 증명 키를 이용하여 영지식-스나크 기반의 증명 값을 생성한 후 상기 증명 값과 상기 제1 시리얼 코드를 검증자 단말로 전송함에 따라, 상기 검증자 단말이 상기 증명자 단말로부터 전송받은 상기 증명 값의 검증에 사용하기 위한 검증 키의 전송 요청을 상기 프로토콜 관리 서버로 전송하게 되면, 상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 수신하는 검증 키 요청 수신부; 및
상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하여 상기 검증자 단말로 전송하는 검증 키 전송부
를 포함하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버.
In the protocol management server for supporting zero-knowledge-snake-based authentication service,
Proof key generation request receiving unit that receives a request for generating a proving key for use in generating a proof value based on zero-knowledge Succinct Non-interactive Argument of Knowledge (zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge) from the prover terminal ;
a key pair generator for generating a first proof key usable in a zero-knowledge-snake-based proof protocol and a first verifying key corresponding to the first proof key in response to the request for generating the proof key;
a serial code generator generating a unique serial code for indexing the first verification key and the first verification key;
a key pair storage processing unit for storing the first authentication key and the first verification key to correspond to the first serial code together with the first serial code in a key database when a first serial code is generated using the unique serial code;
an authentication key issuing unit that transmits the first authentication key and the first serial code to the prover terminal;
After the verifier terminal generates a zero-knowledge-Snark-based proof value using the first proof key, and transmits the proof value and the first serial code to the verifier terminal, the verifier terminal generates the proof When a request for transmission of a verification key to be used for verification of the verification value transmitted from a self terminal is transmitted to the protocol management server, receiving the first serial code together with a request for transmission of the verification key from the verifier terminal a verification key request receiving unit; and
A verification key transmitter for extracting the first verification key stored in correspondence with the first serial code from the key database based on the first serial code received from the verifier terminal and transmitting it to the verifier terminal
A protocol management server to support zero-knowledge-snark-based proof services, including:
제1항에 있어서,
상기 증명자 단말은
상기 프로토콜 관리 서버로부터 상기 제1 증명 키와 상기 제1 시리얼 코드가 수신되면, 영지식 증명의 대상이 되는 사전 저장되어 있는 비밀 값에 대한 해시 값을 산출한 후 상기 비밀 값과 상기 해시 값 및 상기 제1 증명 키를 상기 증명 값의 생성을 위한 사전 설정된 영지식-스나크 기반의 증명 값 생성 함수에 입력으로 인가하여 상기 증명 값을 생성하고, 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값을 상기 검증자 단말로 전송하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버.
According to claim 1,
The prover terminal is
When the first authentication key and the first serial code are received from the protocol management server, after calculating a hash value for a pre-stored secret value that is the subject of zero-knowledge proof, the secret value and the hash value and the A first proof key is applied as an input to a preset zero-knowledge-Snark-based proof value generation function for generating the proof value to generate the proof value, and the proof value, the first serial code, and the hash value are A protocol management server for supporting a zero-knowledge-snake-based authentication service transmitted to the verifier terminal.
제2항에 있어서,
상기 검증자 단말은
상기 증명자 단말로부터 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값이 수신되면, 상기 프로토콜 관리 서버로 상기 증명 값의 검증에 사용하기 위한 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 전송하고, 상기 프로토콜 관리 서버로부터 상기 제1 검증 키가 수신되면, 상기 증명 값의 검증을 위한 사전 설정된 영지식-스나크 기반의 증명 값 검증 함수에 상기 증명 값과 상기 제1 검증 키 및 상기 해시 값을 입력으로 인가하여 상기 증명 값이 참인지 거짓인지 여부를 검증함으로써, 상기 비밀 값의 유효성을 확인하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버.
3. The method of claim 2,
The verifier terminal is
When the proof value, the first serial code, and the hash value are received from the prover terminal, the first serial code is transmitted along with a request for transmission of the verification key for use in verification of the proof value to the protocol management server. and when the first verification key is received from the protocol management server, the proof value, the first verification key, and the hash value are added to a preset zero-knowledge-Snark-based proof value verification function for verification of the proof value. A protocol management server for supporting a zero-knowledge-snake-based proof service that verifies whether the proof value is true or false by applying as an input to verify the validity of the secret value.
제1항에 있어서,
상기 시리얼 코드 생성부는
사전 설정된 난수 생성 함수를 기초로 난수를 생성한 후 상기 증명자 단말의 고유 ID, 상기 증명 키의 생성 요청이 수신된 시간 및 상기 난수를 순차적으로 연접(concatenation)하여 제1 연접 데이터를 생성하고, 상기 제1 연접 데이터를 사전 설정된 시리얼 코드 생성용 해시 함수에 입력으로 인가하여 연산되는 해시 값을 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드로 생성하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버.
According to claim 1,
The serial code generator
After generating a random number based on a preset random number generation function, the unique ID of the prover terminal, the time at which the generation request for the proof key is received, and the random number are sequentially concatenated to generate first concatenated data, Zero-knowledge-Snark-based generating a hash value calculated by applying the first concatenated data as an input to a preset hash function for generating a serial code as a unique serial code for indexing the first verification key and the first verification key A protocol management server to support the attestation service of
제1항에 있어서,
상기 검증 키 전송부는
인증에 사용하기 위한 사전 설정된 제1 상관 계수(correlation coefficient)가 저장되어 있는 상관 계수 저장부;
상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드의 수신이 완료되면, 상기 검증자 단말로 n(n은 2이상의 자연수)개의 난수들의 전송을 요청하는 난수 요청부;
상기 검증자 단말로부터 난수들의 전송 요청에 대응해서 n개의 제1 난수들이 수신되면, 상기 n개의 제1 난수들과의 상관 계수가 상기 제1 상관 계수로 연산되는 n개의 상관 값들을 생성하는 상관 값 생성부;
상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하는 검증 키 추출부;
상기 제1 검증 키가 추출되면, 상기 제1 검증 키와 상기 제1 시리얼 코드 및 상기 n개의 상관 값들을 순차적으로 연접하여 제2 연접 데이터를 생성한 후 상기 제2 연접 데이터를 사전 발급되어 있는 개인키로 암호화하여 전자 서명 값을 생성하는 전자 서명부; 및
상기 제1 검증 키를 상기 검증자 단말로 전송함과 동시에 상기 전자 서명 값을 상기 검증자 단말로 전송하는 전송부
를 포함하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버.
According to claim 1,
The verification key transmission unit
a correlation coefficient storage unit storing a first correlation coefficient preset for use in authentication;
a random number request unit for requesting transmission of n random numbers (n is a natural number greater than or equal to 2) to the verifier terminal when reception of the first serial code is completed together with the request for transmission of the verification key from the verifier terminal;
When n first random numbers are received in response to a request for transmission of random numbers from the verifier terminal, a correlation value generating n correlation values in which a correlation coefficient with the n first random numbers is calculated as the first correlation coefficient generator;
a verification key extraction unit for extracting the first verification key stored in correspondence with the first serial code from the key database based on the first serial code received from the verifier terminal;
When the first verification key is extracted, the first verification key, the first serial code, and the n correlation values are sequentially concatenated to generate second concatenated data, and then the second concatenated data is previously issued to an individual an electronic signature unit for generating an electronic signature value by encryption with a key; and
A transmission unit for transmitting the first verification key to the verifier terminal and simultaneously transmitting the electronic signature value to the verifier terminal
A protocol management server to support zero-knowledge-snark-based proof services, including:
제5항에 있어서,
상기 검증자 단말은
상기 제1 상관 계수와 상기 개인키에 대응되는 공개키를 사전 저장하고 있고, 상기 프로토콜 관리 서버로부터 상기 제1 검증 키와 상기 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 복호화를 수행하여 상기 제2 연접 데이터를 복원하고, 상기 복원된 제2 연접 데이터에서 상기 제1 검증 키와 상기 제1 시리얼 코드를 제거하여 상기 n개의 상관 값들을 분리 추출한 후 상기 n개의 제1 난수들과 상기 분리 추출된 n개의 상관 값들간의 상관 계수가 상기 제1 상관 계수로 연산되는지 확인함으로써, 상기 전자 서명 값에 대한 검증을 수행한 후 상기 전자 서명 값에 대한 검증이 완료되면, 상기 제1 검증 키를 기초로 상기 증명 값에 대한 검증을 수행하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버.
6. The method of claim 5,
The verifier terminal is
The first correlation coefficient and the public key corresponding to the private key are pre-stored, and when the first verification key and the digital signature value are received from the protocol management server, the digital signature value is added to the digital signature value based on the public key. Decryption is performed to restore the second concatenated data, and after separating and extracting the n correlation values by removing the first verification key and the first serial code from the restored second concatenated data, the n first concatenated data When the verification of the digital signature value is completed after verification of the digital signature value is performed by checking whether the correlation coefficient between random numbers and the n correlation values separated and extracted is calculated as the first correlation coefficient, the A protocol management server for supporting a zero-knowledge-snake-based proof service that verifies the proof value based on a first verification key.
영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법에 있어서,
증명자 단말로부터 영지식-스나크(zk-SNARKs: zero-knowledge Succinct Non-interactive Argument of Knowledge) 기반의 증명 값 생성에 사용하기 위한 증명 키(proving key)의 생성 요청을 수신하는 단계;
상기 증명 키의 생성 요청에 대응하여 영지식-스나크 기반의 증명 프로토콜에서 사용 가능한 제1 증명 키 및 상기 제1 증명 키에 대응되는 제1 검증 키(verifying key)를 생성하는 단계;
상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드를 생성하는 단계;
상기 고유 시리얼 코드로 제1 시리얼 코드가 생성되면, 키 데이터베이스에 상기 제1 시리얼 코드와 함께 상기 제1 시리얼 코드에 대응되도록 상기 제1 증명 키와 상기 제1 검증 키를 저장하는 단계;
상기 제1 증명 키와 상기 제1 시리얼 코드를 상기 증명자 단말로 전송하는 단계;
상기 증명자 단말이 상기 제1 증명 키를 이용하여 영지식-스나크 기반의 증명 값을 생성한 후 상기 증명 값과 상기 제1 시리얼 코드를 검증자 단말로 전송함에 따라, 상기 검증자 단말이 상기 증명자 단말로부터 전송받은 상기 증명 값의 검증에 사용하기 위한 검증 키의 전송 요청을 상기 프로토콜 관리 서버로 전송하게 되면, 상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 수신하는 단계; 및
상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하여 상기 검증자 단말로 전송하는 단계
를 포함하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법.
A method of operating a protocol management server to support zero-knowledge-snark-based authentication service, the method comprising:
Receiving a request for generating a proving key for use in generating a proof value based on zero-knowledge Succinct Non-interactive Argument of Knowledge (zk-SNARKs) from a prover terminal;
generating a first proof key usable in a zero-knowledge-snake-based proof protocol and a first verifying key corresponding to the first proof key in response to the request for generating the proof key;
generating a unique serial code for indexing the first verification key and the first verification key;
when a first serial code is generated using the unique serial code, storing the first authentication key and the first verification key to correspond to the first serial code together with the first serial code in a key database;
transmitting the first authentication key and the first serial code to the prover terminal;
After the verifier terminal generates a zero-knowledge-Snark-based proof value using the first proof key, and transmits the proof value and the first serial code to the verifier terminal, the verifier terminal generates the proof When a request for transmission of a verification key to be used for verification of the verification value transmitted from a self terminal is transmitted to the protocol management server, receiving the first serial code together with a request for transmission of the verification key from the verifier terminal step; and
extracting the first verification key stored in correspondence with the first serial code from the key database based on the first serial code received from the verifier terminal and transmitting the first verification key to the verifier terminal;
A method of operating a protocol management server to support a zero-knowledge-snake-based proof service comprising a.
제7항에 있어서,
상기 증명자 단말은
상기 프로토콜 관리 서버로부터 상기 제1 증명 키와 상기 제1 시리얼 코드가 수신되면, 영지식 증명의 대상이 되는 사전 저장되어 있는 비밀 값에 대한 해시 값을 산출한 후 상기 비밀 값과 상기 해시 값 및 상기 제1 증명 키를 상기 증명 값의 생성을 위한 사전 설정된 영지식-스나크 기반의 증명 값 생성 함수에 입력으로 인가하여 상기 증명 값을 생성하고, 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값을 상기 검증자 단말로 전송하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법.
8. The method of claim 7,
The prover terminal is
When the first authentication key and the first serial code are received from the protocol management server, after calculating a hash value for a pre-stored secret value that is the subject of zero-knowledge proof, the secret value and the hash value and the A first proof key is applied as an input to a preset zero-knowledge-Snark-based proof value generation function for generating the proof value to generate the proof value, and the proof value, the first serial code, and the hash value are A method of operating a protocol management server to support a zero-knowledge-snake-based authentication service transmitted to the verifier terminal.
제8항에 있어서,
상기 검증자 단말은
상기 증명자 단말로부터 상기 증명 값과 상기 제1 시리얼 코드 및 상기 해시 값이 수신되면, 상기 프로토콜 관리 서버로 상기 증명 값의 검증에 사용하기 위한 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드를 전송하고, 상기 프로토콜 관리 서버로부터 상기 제1 검증 키가 수신되면, 상기 증명 값의 검증을 위한 사전 설정된 영지식-스나크 기반의 증명 값 검증 함수에 상기 증명 값과 상기 제1 검증 키 및 상기 해시 값을 입력으로 인가하여 상기 증명 값이 참인지 거짓인지 여부를 검증함으로써, 상기 비밀 값의 유효성을 확인하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법.
9. The method of claim 8,
The verifier terminal is
When the proof value, the first serial code, and the hash value are received from the prover terminal, the first serial code is transmitted along with a request for transmission of the verification key for use in verification of the proof value to the protocol management server. and when the first verification key is received from the protocol management server, the proof value, the first verification key, and the hash value are added to a preset zero-knowledge-Snark-based proof value verification function for verification of the proof value. A method of operating a protocol management server for supporting a zero-knowledge-snake-based proof service that verifies whether the proof value is true or false by applying as an input to verify the validity of the secret value.
제7항에 있어서,
상기 고유 시리얼 코드를 생성하는 단계는
사전 설정된 난수 생성 함수를 기초로 난수를 생성한 후 상기 증명자 단말의 고유 ID, 상기 증명 키의 생성 요청이 수신된 시간 및 상기 난수를 순차적으로 연접(concatenation)하여 제1 연접 데이터를 생성하고, 상기 제1 연접 데이터를 사전 설정된 시리얼 코드 생성용 해시 함수에 입력으로 인가하여 연산되는 해시 값을 상기 제1 증명 키와 상기 제1 검증 키의 인덱싱을 위한 고유 시리얼 코드로 생성하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법.
8. The method of claim 7,
The step of generating the unique serial code is
After generating a random number based on a preset random number generation function, the unique ID of the prover terminal, the time at which the generation request for the proof key is received, and the random number are sequentially concatenated to generate first concatenated data, Zero-knowledge-Snark-based generating a hash value calculated by applying the first concatenated data as an input to a preset hash function for generating a serial code as a unique serial code for indexing the first verification key and the first verification key The operation method of the protocol management server to support the attestation service of
제7항에 있어서,
상기 검증자 단말로 전송하는 단계는
인증에 사용하기 위한 사전 설정된 제1 상관 계수(correlation coefficient)가 저장되어 있는 상관 계수 저장부를 유지하는 단계;
상기 검증자 단말로부터 상기 검증 키의 전송 요청과 함께 상기 제1 시리얼 코드의 수신이 완료되면, 상기 검증자 단말로 n(n은 2이상의 자연수)개의 난수들의 전송을 요청하는 단계;
상기 검증자 단말로부터 난수들의 전송 요청에 대응해서 n개의 제1 난수들이 수신되면, 상기 n개의 제1 난수들과의 상관 계수가 상기 제1 상관 계수로 연산되는 n개의 상관 값들을 생성하는 단계;
상기 검증자 단말로부터 수신된 상기 제1 시리얼 코드를 기초로 상기 키 데이터베이스로부터 상기 제1 시리얼 코드에 대응되어 저장되어 있는 상기 제1 검증 키를 추출하는 단계;
상기 제1 검증 키가 추출되면, 상기 제1 검증 키와 상기 제1 시리얼 코드 및 상기 n개의 상관 값들을 순차적으로 연접하여 제2 연접 데이터를 생성한 후 상기 제2 연접 데이터를 사전 발급되어 있는 개인키로 암호화하여 전자 서명 값을 생성하는 단계; 및
상기 제1 검증 키를 상기 검증자 단말로 전송함과 동시에 상기 전자 서명 값을 상기 검증자 단말로 전송하는 단계
를 포함하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법.
8. The method of claim 7,
The step of transmitting to the verifier terminal is
maintaining a correlation coefficient storage in which a preset first correlation coefficient for use in authentication is stored;
requesting transmission of n random numbers (n is a natural number greater than or equal to 2) to the verifier terminal when reception of the first serial code is completed together with the request for transmission of the verification key from the verifier terminal;
generating n correlation values in which correlation coefficients with the n first random numbers are calculated as the first correlation coefficients when n first random numbers are received in response to the request for transmission of random numbers from the verifier terminal;
extracting the first verification key stored corresponding to the first serial code from the key database based on the first serial code received from the verifier terminal;
When the first verification key is extracted, the first verification key, the first serial code, and the n correlation values are sequentially concatenated to generate second concatenated data, and then the second concatenated data is previously issued to an individual generating an electronic signature value by encrypting it with a key; and
transmitting the first verification key to the verifier terminal and simultaneously transmitting the electronic signature value to the verifier terminal
A method of operating a protocol management server to support a zero-knowledge-snake-based proof service comprising a.
제11항에 있어서,
상기 검증자 단말은
상기 제1 상관 계수와 상기 개인키에 대응되는 공개키를 사전 저장하고 있고, 상기 프로토콜 관리 서버로부터 상기 제1 검증 키와 상기 전자 서명 값이 수신되면, 상기 공개키를 기초로 상기 전자 서명 값에 대한 복호화를 수행하여 상기 제2 연접 데이터를 복원하고, 상기 복원된 제2 연접 데이터에서 상기 제1 검증 키와 상기 제1 시리얼 코드를 제거하여 상기 n개의 상관 값들을 분리 추출한 후 상기 n개의 제1 난수들과 상기 분리 추출된 n개의 상관 값들간의 상관 계수가 상기 제1 상관 계수로 연산되는지 확인함으로써, 상기 전자 서명 값에 대한 검증을 수행한 후 상기 전자 서명 값에 대한 검증이 완료되면, 상기 제1 검증 키를 기초로 상기 증명 값에 대한 검증을 수행하는 영지식-스나크 기반의 증명 서비스를 지원하기 위한 프로토콜 관리 서버의 동작 방법.
12. The method of claim 11,
The verifier terminal is
The first correlation coefficient and the public key corresponding to the private key are pre-stored, and when the first verification key and the digital signature value are received from the protocol management server, the digital signature value is added to the digital signature value based on the public key. Decryption is performed to restore the second concatenated data, and after separating and extracting the n correlation values by removing the first verification key and the first serial code from the restored second concatenated data, the n first concatenated data When the verification of the digital signature value is completed after verification of the digital signature value is performed by checking whether the correlation coefficient between random numbers and the n correlation values separated and extracted is calculated as the first correlation coefficient, the A method of operating a protocol management server to support a zero-knowledge-snake-based proof service that verifies the proof value based on a first verification key.
제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.13. A computer-readable recording medium recording a computer program for executing the method of any one of claims 7 to 12 through combination with a computer. 제7항 내지 제12항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 7 to 12 through combination with a computer.
KR1020200002438A 2019-11-27 2020-01-08 Protocol management server to support zero knowledge-snarks based proof services and operating method thereof KR102364042B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190154041 2019-11-27
KR20190154041 2019-11-27

Publications (2)

Publication Number Publication Date
KR20210065809A true KR20210065809A (en) 2021-06-04
KR102364042B1 KR102364042B1 (en) 2022-02-17

Family

ID=76391878

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200002438A KR102364042B1 (en) 2019-11-27 2020-01-08 Protocol management server to support zero knowledge-snarks based proof services and operating method thereof

Country Status (1)

Country Link
KR (1) KR102364042B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130136119A (en) * 2012-06-04 2013-12-12 순천향대학교 산학협력단 Authentication method for device
JP2019149739A (en) * 2018-02-27 2019-09-05 ヤフー株式会社 Authentication device management apparatus, authentication device management method, authentication device management program, and authentication device management system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130136119A (en) * 2012-06-04 2013-12-12 순천향대학교 산학협력단 Authentication method for device
JP2019149739A (en) * 2018-02-27 2019-09-05 ヤフー株式会社 Authentication device management apparatus, authentication device management method, authentication device management program, and authentication device management system

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Eli Ben-Sasson et al "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture." (2019.02.05.) 1부.* *
Nir Bitansky, Ran Canetti, Alessandro Chiesa, Eran Tromer, 'From Extractable Collision Resistance to Succinct Non-Interactive Arguments of Knowledge, and Back Again', ITCS 2012, pp. 326~349(2012년 공개)
인터넷 웹페이지, '영지식 스나크', http://wiki.hash.kr/index.php/%EC%98%81%EC%A7%80%EC%8B%9D_%EC%8A%A4%EB%82%98%ED%81%AC(2019년 7월 27일 공개)

Also Published As

Publication number Publication date
KR102364042B1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
JP5710075B2 (en) Certificate validation
US8627424B1 (en) Device bound OTP generation
CN110401615B (en) Identity authentication method, device, equipment, system and readable storage medium
CN109818730B (en) Blind signature acquisition method and device and server
EP1714420B1 (en) One way authentication
US20180158058A1 (en) Apparatus and method to prevent execution of an unauthorized transaction via a distributed database
KR102218188B1 (en) Node device for performing certificate management based on a block chain and operating method thereof
CN104038486A (en) System and method for realizing user login identification based on identification type codes
CN110020869B (en) Method, device and system for generating block chain authorization information
KR20170026765A (en) Method of secure public auditing using self-certified signature in cloud storage and system of the same
KR101253683B1 (en) Digital Signing System and Method Using Chained Hash
CN109302286B (en) Fido equipment key index generation method
CN110990814A (en) Trusted digital identity authentication method, system, equipment and medium
KR102085466B1 (en) Method and apparatus for validating the identity of an entity
CN115550060B (en) Trusted certificate verification method, device, equipment and medium based on block chain
CN115438320B (en) Hidden data right determining method based on blockchain and digital fingerprint
KR102364042B1 (en) Protocol management server to support zero knowledge-snarks based proof services and operating method thereof
CN115604034A (en) Encryption and decryption method and system for communication connection and electronic equipment
CN114944921A (en) Login authentication method and device, electronic equipment and storage medium
JP4306232B2 (en) Proof system and evaluation system
CN112925535A (en) Method and device for installing embedded application of password chip
CN113051623A (en) Data processing method and device and electronic equipment
KR101591323B1 (en) Data transmission terminal apparatus and data transmission method for non-repudiation of the data transmission terminal apparatus
KR102203699B1 (en) Data transmission apparatus capable of digital signature through dirty paper coding and operating method thereof
KR102322435B1 (en) Method for extracting a same key from fuzzy data and method for authenticating user using the same

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant