KR102236242B1 - Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input - Google Patents

Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input Download PDF

Info

Publication number
KR102236242B1
KR102236242B1 KR1020190133941A KR20190133941A KR102236242B1 KR 102236242 B1 KR102236242 B1 KR 102236242B1 KR 1020190133941 A KR1020190133941 A KR 1020190133941A KR 20190133941 A KR20190133941 A KR 20190133941A KR 102236242 B1 KR102236242 B1 KR 102236242B1
Authority
KR
South Korea
Prior art keywords
value
secret key
component
public
generating
Prior art date
Application number
KR1020190133941A
Other languages
Korean (ko)
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 주식회사 크립토랩
Priority to KR1020190133941A priority Critical patent/KR102236242B1/en
Application granted granted Critical
Publication of KR102236242B1 publication Critical patent/KR102236242B1/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/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/0825Key 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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

The present invention relates to a method of generating a public value using a fuzzy extractor and a method of generating a secret key by using the same public value and a secondary input value. A method of allowing an electronic computing device to generate a public key by a fuzzy extractor according to an embodiment of the present invention includes: a first step including step 1-1 of randomly selecting component (b) of a 1-bit (∈{0, 1}) secret key when the secret key generation module of the electronic computing device receives an input value, and step 1-2 of determining component (H) of the public value determined according to the component (b) of the selected private key; and a second step of determining a public value component (H) for each secret key component by repeating the first step by a predetermined number of bits (k) of the private key. A plurality of public values and private keys can be generated without lowering security.

Description

퍼지 추출기를 이용한 공개값 생성 방법 및 그 공개값과 2차 입력값을 입력받아 비밀키를 생성하는 방법{Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input}Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input}

본 발명은 퍼지 추출기를 이용한 공개값 생성 방법 및 그 공개값과 2차 입력값을 입력받아 비밀키를 생성하는 방법에 대한 것으로서 좀 더 자세하게는 복수 개의 서로 다른 기관에 대해서 퍼지 추출기를 이용하여 서로 다른 공개값을 생성하고 그에 따른 비밀키 생성을 하더라도 보안성이 저해되지 않는 방법에 대한 것이다.The present invention relates to a method of generating a public value using a fuzzy extractor and a method of generating a secret key by receiving the public value and a secondary input value. It is about a method in which security is not compromised even if a public value is generated and a secret key is generated accordingly.

온라인을 통한 디지털 데이터 전송 등이 활발해지는 것과 함께 데이터의 보안성을 고양하기 위하여 데이터 암호화 방법이 널리 사용되고 있다. 데이터 암호화를 위한 방법으로는 대칭키 암호화, 공개키 암호화 등의 방법이 있는데 어느 암호화를 사용하더라도 비밀키는 필수적으로 필요하다.Data encryption methods are widely used in order to enhance the security of data along with the increase in digital data transmission through online. Methods for data encryption include symmetric key encryption, public key encryption, and the like, but no matter which encryption is used, a secret key is essential.

그런데 비밀키는 일반적으로 기억하기 어려우며 소정의 저장소에 보관하는 경우에는 해킹의 위험성이 매우 커서 보안에 취약하다.However, it is difficult to remember the secret key in general, and if it is stored in a predetermined storage, the risk of hacking is very high and it is vulnerable to security.

그런 문제를 해결하기 위해서 자연계에 존재하는 랜덤한 입력값 예를 들어 생체 정보에 기초하여 비밀키를 생성함으로써 굳이 비밀키를 저장하지 않더라도 비밀키를 이용한 암호화를 수행할 수 있는 방법이 Yevgeniy Dodis 등에 의해 작성되어 2008년 1월 20일에 발간된 논문 "Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data"(논문 1)에 기재되어 있다.In order to solve such a problem, Yevgeniy Dodis, etc., is a method that can perform encryption using a secret key even if the secret key is not necessarily stored by generating a secret key based on a random input value that exists in nature, for example, biometric information. It is described in the paper "Fuzzy Extractors: How to Generate Strong Keys from Biometrics and Other Noisy Data" (paper 1) published on January 20, 2008.

퍼지 추출기(Fuzzy Extractor)에, 랜덤 입력값 예를 들어 생체 정보를 입력하면 공개값(H)과, 비밀키로 사용가능한 랜덤 스트링(r)이 생성된다. 공개값(H)은 공개되는 값으로서 저장하며 랜덤 스트링(r)은 따로 저장하지 않는다.When a random input value, such as biometric information, is input to the fuzzy extractor, a public value H and a random string r usable as a secret key are generated. The public value (H) is stored as a public value, and the random string (r) is not separately stored.

그 후에 퍼지 추출기에 2차 입력값 즉 동일한 생체 정보 및 상기 공개값(H)을 퍼지 추출기에 입력하면 동일한 랜덤 스트링(r)이 생성된다. 즉 비밀키를 따로 저장하지 않더라도 공개값만 있으면 자신의 생체 정보를 입력함으로써 비밀키를 생성하여 사용할 수 있게 되는 장점이 있다.After that, when the second input value, that is, the same biometric information and the public value H, is input to the fuzzy extractor, the same random string r is generated. That is, even if the secret key is not separately stored, there is an advantage in that it is possible to generate and use the secret key by inputting biometric information of itself if there is only a public value.

그런데 사용자는 복수 개의 서로 다른 기관(서비스 주체)에 대해서 생체 정보로부터 생성되는 각각 다른 비밀키를 사용하고 싶어할 수 있다. 그런 경우 퍼지 추출기에서 생성하는 공개값이 서로 달라지며, 그에 따라서 생성되는 비밀키(랜덤 스트링) 역시 서로 다른 복수 개로 생성될 수 있다.(reusable fuzzy extractor) 그러나 그렇게 복수 개의 서로 다른 공개값과 비밀키가 생성되는 경우 기존의 퍼지 추출기를 통한 비밀키 생성 방법은 보안성에 문제가 생길 수 있다.However, the user may want to use different secret keys generated from biometric information for a plurality of different organizations (service subjects). In such a case, the public values generated by the fuzzy extractor are different from each other, and accordingly the generated secret keys (random strings) may also be generated in different plurality (reusable fuzzy extractor). However, such a plurality of different public values and private keys When is generated, the method of generating the secret key through the existing fuzzy extractor may cause a security problem.

본 발명은 일반적으로 낮은 엔트로피를 가지는 생체 정보를 퍼지 추출기에 입력하여 공개값을 생성하고, 2차 입력값 및 공개값을 퍼지 추출기에 입력하여 비밀키를 생성하더라도 복수 개의 공개값과 비밀키를 보안성 저하없이 생성할 수 있는 방법을 제공하는 것을 목적으로 한다.In the present invention, biometric information having low entropy is generally input to a fuzzy extractor to generate a public value, and a plurality of public values and secret keys are secured even if the secret key is generated by inputting the secondary input value and the public value to the fuzzy extractor. It aims to provide a method that can be produced without deteriorating the properties.

본 발명에 의한 전자적 연산 장치가 퍼지 추출기(Fuzzy Extractor)에 의해 공개값을 생성하는 방법은, 전자적 연산 장치의 비밀키 생성 모듈이 입력값(

Figure 112019109465986-pat00001
)을 입력받으면 1-비트(∈{0, 1})로 구성된 비밀키의 성분(b)을 랜덤하게 선택하는 제1-1 단계와, 선택된 비밀키의 성분(b)에 따라 결정되는 공개값의 성분(H)을 결정하는 제1-2 단계를 포함하는 제1 단계와; 미리 결정되어 있는 비밀키의 비트(k) 만큼 제1 단계를 반복하여 각 비밀키 성분에 대한 공개값 성분(H)을 결정하는 제2 단계를 포함한다.In the method of generating a public value by an electronic computing device according to the present invention by a fuzzy extractor, the secret key generation module of the electronic computing device is an input value (
Figure 112019109465986-pat00001
) Is input, step 1-1 of randomly selecting the component (b) of the secret key composed of 1-bit (∈{0, 1}), and the public value determined according to the component (b) of the selected secret key. A first step including a 1-2 step of determining the component (H) of; And a second step of determining a public value component (H) for each secret key component by repeating the first step by a predetermined bit k of the secret key.

제1-2 단계는, b = 0 이면 공개값 성분(H)을

Figure 112019109465986-pat00002
로 결정하고, b = 1 이면 공개값 성분(H)을
Figure 112019109465986-pat00003
로 결정하는 단계이다.Step 1-2, if b = 0, the public value component (H) is
Figure 112019109465986-pat00002
And if b = 1, the public value component (H) is
Figure 112019109465986-pat00003
It is a step to decide.

Figure 112019109465986-pat00004
Figure 112019109465986-pat00005
는 랜덤 이진 벡터이며, Ii는 입력값(ω)으로부터 랜덤하게 선택되는
Figure 112019109465986-pat00006
비트만큼의 원소를 가리키는 랜덤 인덱스 집합이다.
Figure 112019109465986-pat00004
Wow
Figure 112019109465986-pat00005
Is a random binary vector, and I i is randomly selected from the input value (ω)
Figure 112019109465986-pat00006
It is a set of random indices indicating elements as many as bits.

Figure 112019109465986-pat00007
는 랜덤 인덱스 집합(Ii)을 구성하는
Figure 112019109465986-pat00008
비트의 원소를 입력으로받아 1-비트(∈{0, 1}) 출력값을 출력하는 임의의 술어 함수(Predicate 함수)이다.
Figure 112019109465986-pat00007
Constitutes a set of random indices (I i)
Figure 112019109465986-pat00008
It is an arbitrary predicate function that receives a bit element as an input and outputs a 1-bit (∈{0, 1}) output value.

술어 함수는

Figure 112019109465986-pat00009
로 정의되는 XOR-Maj 함수가 될 수 있다.The predicate function is
Figure 112019109465986-pat00009
It can be an XOR-Maj function defined as.

랜덤 인덱스 집합 Ii 및 랜덤 이진 수열

Figure 112019109465986-pat00010
는 다른 의사 난수 생성기에 의해서 생성될 수 있다.Set of random indices I i and random binary sequence
Figure 112019109465986-pat00010
Can be generated by other pseudorandom number generators.

상기 방법에 의해 생성된 공개값 및 2차 입력값(

Figure 112019109465986-pat00011
)을 입력받아 전자적 연산 장치가 퍼지 추출기를 이용하여 비밀키를 생성하는 방법은,
Figure 112019109465986-pat00012
를 비교값(h')으로 산출하는 제3 단계와; H의 마지막 성분 벡터(
Figure 112019109465986-pat00013
또는
Figure 112019109465986-pat00014
)와 비교값(h')의 해밍 거리를 산출하는 제4 단계와; 제4 단계에서 산출된 해밍거리가 소정의 값보다 작거나 같으면 비밀키의 성분(b)을 "1"로 출력하고, 그렇지 않으면 "0"으로 출력하는 제5 단계와; 미리 결정되어 있는 비밀키의 비트(k) 만큼 제3 단계 내지 제5 단계를 반복하여 비밀키를 생성하는 제6 단계를 포함한다.The public value and the secondary input value generated by the above method (
Figure 112019109465986-pat00011
) And the electronic computing device generates a secret key using a fuzzy extractor,
Figure 112019109465986-pat00012
A third step of calculating as the comparison value h'; The vector of the last component of H (
Figure 112019109465986-pat00013
or
Figure 112019109465986-pat00014
A fourth step of calculating a Hamming distance between) and the comparison value h'; A fifth step of outputting a component (b) of the secret key as "1" if the Hamming distance calculated in the fourth step is less than or equal to a predetermined value, and outputting it as "0"otherwise; And a sixth step of generating a secret key by repeating the third to fifth steps as many as a predetermined bit (k) of the secret key.

상기 소정의 값은

Figure 112019109465986-pat00015
이며, p는
Figure 112019109465986-pat00016
Figure 112019109465986-pat00017
가 동일일 확률이다.The predetermined value is
Figure 112019109465986-pat00015
And p is
Figure 112019109465986-pat00016
Wow
Figure 112019109465986-pat00017
Is the probability that is equal.

본 발명에 의하면 입력값(ω)이 샘플될 랜덤 분포의 엔트로피가 크지 않은 상황에서도 공개값의 크기와 비밀키 재생성의 시간이 입력의 에러에 대한 다항식 시간으로 표현되므로, 입력의 에러에 대해 지수 크기와 시간을 소요했던 종래의 퍼지 추출기에 비해서 매우 효율적이고 빠른 성능을 제공하는 효과가 있다.According to the present invention, even when the entropy of the random distribution to which the input value (ω) is sampled is not large, the size of the public value and the time of regeneration of the secret key are expressed as the polynomial time for the error of the input. Compared to the conventional purge extractor, which took time and time, there is an effect of providing very efficient and fast performance.

도 1은 퍼지 추출기의 작동을 표시하는 블록도.
도 2는 본 발명에 의한, 퍼지 추출기의 공개값 생성 과정의 흐름도.
도 3은 본 발명에 의한, 2차 입력값과 공개값을 퍼지 추출기가 입력받아 비밀키를 재생성하는 과정의 흐름도.
1 is a block diagram showing the operation of a purge extractor.
2 is a flowchart of a process of generating an open value of a fuzzy extractor according to the present invention.
3 is a flowchart of a process of regenerating a secret key by receiving a second input value and a public value by a fuzzy extractor according to the present invention.

이하에서는 첨부 도면을 참조하여 본 발명의 양호한 실시예에 대해서 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.

본 명세서에서 수행되는 정보(데이터) 전송/수신 과정은 필요에 따라서 암호화/복호화가 적용될 수 있으며, 본 명세서 및 특허청구범위에서 정보(데이터) 전송 과정을 설명하는 표현은 별도로 언급되지 않더라도 모두 암호화/복호화하는 경우도 포함하는 것으로 해석되어야 한다. 본 명세서에서 "A로부터 B로 전송(전달)" 또는 "A가 B로부터 수신"과 같은 형태의 표현은 중간에 다른 매개체가 포함되어 전송(전달) 또는 수신되는 것도 포함하며, A로부터 B까지 직접 전송(전달) 또는 수신되는 것 만을 표현하는 것은 아니다. 본 발명의 설명에 있어서 각 단계의 순서는 선행 단계가 논리적 및 시간적으로 반드시 후행 단계에 앞서서 수행되어야 하는 경우가 아니라면 각 단계의 순서는 비제한적으로 이해되어야 한다. 즉 위와 같은 예외적인 경우를 제외하고는 후행 단계로 설명된 과정이 선행 단계로 설명된 과정보다 앞서서 수행되더라도 발명의 본질에는 영향이 없으며 권리범위 역시 단계의 순서에 관계없이 정의되어야 한다. 그리고 본 명세서에서 “A 또는 B”은 A와 B 중 어느 하나를 선택적으로 가리키는 것뿐만 아니라 A와 B 모두를 포함하는 것도 의미하는 것으로 정의된다. 또한, 본 명세서에서 "포함"이라는 용어는 포함하는 것으로 나열된 요소 이외에 추가로 다른 구성요소를 더 포함하는 것도 포괄하는 의미를 가진다.Encryption/decryption may be applied to the information (data) transmission/reception process performed in this specification as needed, and expressions describing the information (data) transmission process in this specification and claims are all encrypted/ It should be interpreted as including the case of decryption. In this specification, expressions in the form of "transmitted from A to B (transmitted)" or "received from A by B" include those transmitted (transmitted) or received with another medium in the middle, and directly from A to B It does not just express what is transmitted (delivered) or received. In the description of the present invention, the order of each step is to be understood without limitation, unless the preceding step must be performed logically and temporally prior to the subsequent step. That is, except for the above exceptional cases, even if a process described as a subsequent step is performed prior to a process described as a preceding step, the essence of the invention is not affected, and the scope of rights should be defined regardless of the order of the steps. And in the present specification, "A or B" is defined to mean not only selectively indicating any one of A and B, but also including both A and B. In addition, in the present specification, the term "comprising" has the meaning of encompassing further including other elements in addition to the elements listed as including.

본 명세서에서 "모듈" 또는 “유니트”라 함은 범용적인 하드웨어와 그 기능을 수행하는 소프트웨어의 논리적 결합을 의미한다. In this specification, the term "module" or "unit" means a logical combination of general-purpose hardware and software that performs the function.

본 명세서에서는 본 발명의 설명에 필요한 최소한의 구성요소만을 설명하며, 본 발명의 본질과 관계가 없는 구성요소는 언급하지 아니한다. 그리고 언급되는 구성요소만을 포함하는 배타적인 의미로 해석되어서는 아니되며 언급되지 않은 다른 구성요소도 포함할 수 있는 비배타적인 의미로 해석되어야 한다.In the present specification, only the minimum components necessary for the description of the present invention are described, and components not related to the essence of the present invention are not mentioned. In addition, it should not be interpreted as an exclusive meaning including only the mentioned components, but should be interpreted as a non-exclusive meaning that may include other components not mentioned.

본 발명은 전자적 연산이 가능한 컴퓨터, 서버 컴퓨터, 스마트폰과 같은 모바일 디바이스 등의 전자적 연산 장치에 의해서 수행되며, 후술하는 본 발명의 각 단계의 수학적 연산 및 산출은 해당 연산 또는 산출을 하기 위해 공지되어 있는 코딩 방법 및/또는 본 발명에 적합하게 고안된 코딩에 의해서 컴퓨터 연산으로 구현될 수 있다.The present invention is performed by an electronic computing device such as a computer capable of electronic calculation, a server computer, and a mobile device such as a smartphone, and the mathematical calculation and calculation of each step of the present invention described below are known to perform the corresponding calculation or calculation. It can be implemented as a computer operation by a coding method and/or a coding designed suitable for the present invention.

그리고 본 명세서에서 "값"이라 함은 스칼라값 뿐만 아니라 벡터 및 행렬, 다항식도 포함하는 광의의 개념으로 정의된다.In the present specification, the term "value" is defined in a broad sense including not only scalar values, but also vectors, matrices, and polynomials.

본 명세서에서 특정값에 대해 암호화 또는 해쉬 등과 같은 연산을 하여 소정의 값을 획득한다는 의미는 해당 특정값 뿐만 아니라 해당 특정값의 변형값(예를 들어, 특정값에 소정의 값을 추가로 연산하거나 소정의 규칙에 따라서 해당 특정값을 변화시키는 등의 과정을 통해서 산출된 다른 값)에 대한 암호화 또는 해쉬 등의 연산도 포함하는 것으로 정의된다.In the present specification, the meaning of obtaining a predetermined value by performing an operation such as encryption or hashing on a specific value means not only the specific value, but also the modified value of the specific value (for example, a predetermined value is additionally calculated or It is defined as including an operation such as encryption or hash for another value calculated through a process such as changing a corresponding specific value according to a predetermined rule.

본 명세서에서 설명하는 예시적인 실시예는 본 명세서에 개시(開示)되는 장치의 구조, 기능, 제작 및 용도와 방법의 원리에 대한 전반적인 이해를 제공한다. 이러한 하나 이상의 실시예가 첨부 도면에 도시되어 있다. 당업자라면 여기에 구체적으로 기재되고 첨부 도면에 도시되어 있는 장치 및 방법이 비제한적이고 예시적인 실시예이며 본 발명의 권리범위는 특허청구범위에 의해서 정의된다는 점을 이해할 것이다. 하나의 예시적인 실시예와 관련되어 도시되고 설명되는 특징은 다른 실시예의 특징과도 결합될 수 있다. 그러한 수정(modification) 또는 변경(variation)은 본 발명의 권리범위에 포함되도록 의도된다.The exemplary embodiments described herein provide a general understanding of the principles of the structure, function, fabrication, and use and method of the device disclosed herein. One or more such embodiments are shown in the accompanying drawings. Those skilled in the art will understand that the apparatus and methods specifically described herein and shown in the accompanying drawings are non-limiting and exemplary embodiments, and that the scope of the present invention is defined by the claims. Features shown and described in connection with one exemplary embodiment may be combined with features of other embodiments. Such modifications or variations are intended to be included within the scope of the present invention.

본 명세서의 첨부 도면에 도시되어 있는 장치의 각 구성요소는 도면에 명시적으로 도시된 형태, 크기, 치수뿐만 아니라 본 발명이 의도하는 기능을 수행할 수 있는 형태, 크기, 치수라면 어느 것이든 적용될 수 있다.Each component of the device shown in the accompanying drawings of the present specification may be applied in any form, size, or dimension capable of performing the functions intended by the present invention, as well as the shape, size, and dimensions explicitly shown in the drawings. I can.

도 1에는 퍼지 추출기(Fuzzy Extractor)가 입력값(ω)을 입력받아서 공개값(H)을 생성하는 것과, 2차 입력값(ω')과 상기 공개값(H)을 입력받아서 비밀키(b')를 생성하는 과정을 설명하기 위한 블록도가 도시되어 있다.In FIG. 1, a fuzzy extractor receives an input value (ω) to generate a public value (H), and a secondary input value (ω') and the public value (H) are received and a secret key (b). A block diagram for explaining the process of generating') is shown.

공개값(H)을 생성할 때에 사용자는 입력값(ω) 예를 들어 지문 정보나 홍채 정보 등의 생체 정보를 생성 모듈(10)에 입력한다(도 1(A)). 생성 모듈(10)은 퍼지 추출기의 구성요소이다. 생성 모듈(10)은, 입력값(ω)에 기초하여 소정의 연산을 거쳐 공개값(H)과 비밀키(b)를 생성하고, 공개값(H)을 소정의 저장소에 저장한다.When generating the public value H, the user inputs the input value ω, for example, biometric information, such as fingerprint information or iris information, into the generation module 10 (Fig. 1(A)). The generation module 10 is a component of the purge extractor. The generation module 10 generates the public value H and the private key b through a predetermined operation based on the input value ω, and stores the public value H in a predetermined storage.

그렇게 공개값(H)을 저장한 다음에, 추후에 퍼지 추출기를 통해 비밀키를 생성하기 위해서는, 도 1(B)에 도시된 바와 같이 2차 입력값(ω')과 이미 공개되어 있는 공개값(H)을 재생성 모듈(20)에 입력한다. 그렇게 하면 비밀키(b')가 생성되는데 퍼지 추출기 이론에 따르면 재생성 모듈(20)이 생성한 비밀키(b')는, 공개값(H) 생성시에 입력한 입력값(ω)과 2차 입력값(ω')이 소정의 범위 이내의 차이를 가진다면 공개값 생성시에 생성된 비밀키(b)와 동일하게 생성될 수 있다.After storing the public value H in this way, in order to generate the secret key through the fuzzy extractor in the future, as shown in Fig. 1(B), the secondary input value ω'and the public value that has already been disclosed (H) is input into the regeneration module 20. Then, the secret key (b') is generated. According to the fuzzy extractor theory, the secret key (b') generated by the regeneration module 20 is secondary to the input value (ω) input at the time of generating the public value (H). If the input value ω'has a difference within a predetermined range, it may be generated in the same manner as the secret key b generated when the public value is generated.

무작위성(randomness) 연산을 포함하는 퍼지 추출기의 특성에 따르면, 최초에 생성되는 공개값은 비록 동일인의 생체정보라도 입력값이 입력될 때마다 다르게 생성될 수 있다. 그렇게 다르게 생성된 공개값들은 복수 개의 기관(서비스 제공 주체)에 대해서 각각 개별적으로 서로 다른 비밀키를 재생성하는데에 사용하도록 등록될 수 있다. 본 발명에 따른 공개값 생성 방법 및 비밀키 재생성 방법에 따르면 복수 개의 공개값을 등록하여 사용하더라도 보안성이 저하되지 않는다.According to the characteristics of the fuzzy extractor including a randomness operation, the initially generated public value may be generated differently each time an input value is input, even if the biometric information of the same person is input. The public values thus generated differently may be registered for use in regenerating different private keys individually for a plurality of organizations (service providers). According to the method for generating a public value and a method for regenerating a private key according to the present invention, security is not reduced even if a plurality of public values are registered and used.

도 2에는 본 발명에 의한 퍼지 추출기의 공개값 생성 과정의 흐름도가 도시되어 있다.2 is a flowchart illustrating a process of generating an open value of the fuzzy extractor according to the present invention.

먼저 생성 모듈(10)에 입력값(ω)이 입력된다(단계 200). 입력값(ω)은 사용자의 생체 정보가 될 수 있다. 생체 정보는, 지문정보, 정맥정보, 홍채정보 등을 포함할 수 있다. 입력값은 임의의 랜덤 분포로 표현될 수 있는 정보이면 충분하며 반드시 생체 정보일 필요는 없다. 예를 들어, 수기서명이나 음성 그리고 인간의 기억(비밀번호) 등의 정보도 입력값이 될 수 있다.First, an input value ω is input to the generation module 10 (step 200). The input value ω may be the user's biometric information. The biometric information may include fingerprint information, vein information, iris information, and the like. The input value is enough information that can be expressed in an arbitrary random distribution, and does not necessarily have to be biometric information. For example, information such as handwritten signature, voice, and human memory (password) can also be input values.

입력값(ω)은 n 비트 벡터로서 다음과 같이 표현될 수 있다.The input value ω is an n-bit vector and can be expressed as follows.

Figure 112019109465986-pat00018
Figure 112019109465986-pat00018

n 비트의 입력값(

Figure 112019109465986-pat00019
)을 입력받으면 1 비트인 비밀키 성분(b)를 랜덤하게 선택한다(단계 220). 즉 비밀키 성분(b)은 "0" 또는 "1" 중에서 어느 하나로 랜덤하게 선택된다.n-bit input value (
Figure 112019109465986-pat00019
When) is inputted, a 1-bit secret key component (b) is randomly selected (step 220). That is, the secret key component (b) is randomly selected from either "0" or "1".

"m"은 후술하는 의사난수발생함수가 출력하는 출력값의 비트수이다."m" is the number of bits of the output value output by the pseudo-random number generation function described later.

비밀키 성분(b)이 결정되면 결정된 비밀키에 따라서 공개값(H)을 결정한다(단계 230). 이 과정을 좀 더 상세하게 설명한다.When the secret key component (b) is determined, the public value (H) is determined according to the determined secret key (step 230). This process will be described in more detail.

비밀키 성분(b)이 "0"이면 랜덤 이진 벡터

Figure 112019109465986-pat00020
를 선택한다. 본 명세서에서 화살표 상측의 "$" 표시는 랜덤하게 선택하는 것을 의미한다.Random binary vector if secret key component (b) is "0"
Figure 112019109465986-pat00020
Choose In the present specification, the "$" mark on the upper side of the arrow means selecting at random.

다음 단계의 설명에 앞서서 본 발명에 의한 방법에 사용하는 의사난수발생기에 대해서 설명한다.Prior to the description of the next step, a pseudorandom number generator used in the method according to the present invention will be described.

먼저

Figure 112019109465986-pat00021
비트의 입력을 받아서 1 비트의 출력값을 출력하는 임의의 술어 함수(P: Predicate function)을 다음과 같이 정한다.first
Figure 112019109465986-pat00021
An arbitrary predicate function (P) that receives a bit input and outputs an output value of 1 bit is determined as follows.

Figure 112019109465986-pat00022
(
Figure 112019109465986-pat00023
)
Figure 112019109465986-pat00022
(
Figure 112019109465986-pat00023
)

상기 술어 함수를 사용하여 의사난수발생함수(

Figure 112019109465986-pat00024
)의 각 성분함수 Gi는 다음과 같이 정할 수 있다.Using the predicate function above, a pseudorandom number generation function (
Figure 112019109465986-pat00024
Each component function G i of) can be determined as follows.

Figure 112019109465986-pat00025
Figure 112019109465986-pat00025

수학식 1은, 입력값

Figure 112019109465986-pat00026
의 원소 중에서
Figure 112019109465986-pat00027
비트 만큼의 부분집합을 골라서 그 부분집합에 대한 술어 함수(Predicate function)의 출력을 의사난수발생함수의 각 성분(Gi)으로 출력하는 것을 의미한다.Equation 1 is the input value
Figure 112019109465986-pat00026
Among the elements of
Figure 112019109465986-pat00027
It means to select a subset of bits and output the output of the predicate function for the subset as each component (G i ) of the pseudorandom number generation function.

술어 함수는 예를 들어 다음과 같은 XOR-Maj 함수가 될 수 있다.The predicate function can be, for example, the following XOR-Maj function.

Figure 112019109465986-pat00028
Figure 112019109465986-pat00028

의사난수발생함수의 각 성분(Gi) 산출시에 사용된 술어 함수의 입력값인

Figure 112019109465986-pat00029
비트의 입력값의 (랜덤) 인덱스 집합을
Figure 112019109465986-pat00030
라고 한다.The input value of the predicate function used when calculating each component (G i ) of the pseudorandom number generation function
Figure 112019109465986-pat00029
A set of (random) indices of the bit's input
Figure 112019109465986-pat00030
It is called.

비밀키 성분(b)이 "0"인 경우 공개값 성분(H)을 산출하는 과정으로 되돌아가면, 랜덤 이진 벡터

Figure 112019109465986-pat00031
를 선택한다.If the secret key component (b) is "0", returning to the process of calculating the public value component (H), a random binary vector
Figure 112019109465986-pat00031
Choose

그 후에 비밀키 성분(b)이 "0"인 경우 공개값 성분(H)을 다음과 같이 결정한다.Thereafter, when the secret key component (b) is "0", the public value component (H) is determined as follows.

Figure 112019109465986-pat00032
Figure 112019109465986-pat00032

그리고 비밀키 성분(b)이 "1"인 경우에는 공개값 성분((H)을 다음과 같이 결정한다.And when the secret key component (b) is "1", the public value component ((H) is determined as follows.

Figure 112019109465986-pat00033
Figure 112019109465986-pat00033

1비트의 비밀키 성분(b)를 공유하기 위해 수학식 2 또는 수학식 3에 따른 m개의 집합으로 이루어진 공개값 성분(H)를 출력한다.In order to share the 1-bit secret key component (b), the public value component (H) consisting of m sets according to Equation 2 or Equation 3 is output.

비밀키 성분이 k 비트인 경우에는 상기 과정을 k번 반복하여 공개값 성분을 출력한다.If the secret key component is k bits, the above process is repeated k times to output the public value component.

랜덤 인덱스 집합 Ii 및 랜덤 이진 수열

Figure 112019109465986-pat00034
는 다른 의사 난수 생성기에 의해서 생성될 수 있다. 예를 들어 특정 시드값(seed)을 공개하고 다른 의사난수 생성기(G')으로 Ii
Figure 112019109465986-pat00035
를 생성한다. 그러한 실시예의 경우에는, 다른 의사 난수 생성기(G')를 수행하는 시간이 더 소요될 수 있지만 공개 정보의 크기를 대폭 압축할 수 있다.Set of random indices I i and random binary sequence
Figure 112019109465986-pat00034
Can be generated by other pseudorandom number generators. For example, revealing a specific seed value and using another pseudorandom number generator (G') I i and
Figure 112019109465986-pat00035
Create In the case of such an embodiment, it may take more time to perform another pseudo-random number generator G', but the size of public information may be significantly compressed.

전술한 공개값(H)이 결정과정은, 사용자가 다른 기관에서 퍼지 추출 방법에 의한 비밀키를 사용하고자 추가적인 공개값 결정 과정을 수행하는 경우에도 동일하게 진행할 수 있으며, 과정의 순서는 동일하더라도 산출 도중에 수반되는 무작위성(randomness) 때문에 다른 공개값이 결정될 수 있다.The above-described public value (H) determination process can be performed in the same way even when a user performs an additional public value determination process in order to use a secret key by a fuzzy extraction method in another institution, and the procedure is calculated even if the sequence of the process is the same. Other disclosure values may be determined due to the randomness involved along the way.

공개값이 결정되어 공개된 후에, 사용자가 차후에 2차 입력값(ω') 예를 들어 지문 정보를 입력해서 비밀키를 재생성하는 과정이 도 3에 도시되어 있다.After the public value is determined and disclosed, a process of regenerating a secret key by a user subsequently inputting a secondary input value (ω'), for example, fingerprint information, is illustrated in FIG. 3.

사용자가 2차 입력값(ω')을 재생성 모듈(20)에 입력하면 공개값 역시 함께 퍼지 추출기의 재생성 모듈(20)로 입력된다(단계 300).When the user inputs the secondary input value ω'to the regeneration module 20, the public value is also input to the regeneration module 20 of the fuzzy extractor (step 300).

재생성할 비밀키 성분(b')을 산출하는 과정을 시작한다.The process of calculating the secret key component (b') to be regenerated begins.

먼저 단계(320)에서 비교값(h')을 산출한다. 비교값(h')은 다음과 같이 산출된다.First, in step 320, a comparison value h'is calculated. The comparison value h'is calculated as follows.

Figure 112019109465986-pat00036
Figure 112019109465986-pat00036

다음으로 기존에 생성되어 공개되어 있는 H의 마지막 성분 벡터와 h'의 해밍 거리를 산출한다(단계 330). 산출된 해밍 거리가 소정의 값보다 같거나 작으면 b'을 "1"로 출력하고(단계 350), 그렇지 않으면 b'을 "0"으로 출력한다(단계 360).Next, a Hamming distance of h'and the last component vector of H, which has been previously generated and published, is calculated (step 330). If the calculated Hamming distance is less than or equal to a predetermined value, b'is output as "1" (step 350), otherwise b'is output as "0" (step 360).

상기 소정의 값은 다음과 같은 수학식으로 결정한다.The predetermined value is determined by the following equation.

Figure 112019109465986-pat00037
Figure 112019109465986-pat00037

여기서 m은 의사난수발생함수의 출력값의 비트수이고, p는

Figure 112019109465986-pat00038
Figure 112019109465986-pat00039
가 동일할 확률이다.Where m is the number of bits of the output value of the pseudo-random number generation function, and p is
Figure 112019109465986-pat00038
Wow
Figure 112019109465986-pat00039
Is the probability that is equal.

이렇게 생성된 비밀키 성분(b')는 도 2의 과정을 거쳐서 생성된 비밀키 성분(b)와 동일하다. 비밀키 비트수가 k 비트이면 상기 재생성 과정을 k번 반복한다.The secret key component (b') generated in this way is the same as the secret key component (b) generated through the process of FIG. 2. If the number of secret key bits is k, the regeneration process is repeated k times.

본 발명에 의하면 입력값(ω)이 샘플될 랜덤 분포의 엔트로피가 크지 않은 상황에서도 공개값의 크기와 비밀키 재생성의 시간이 입력의 에러에 대한 다항식 시간으로 표현되므로, 입력의 에러에 대해 지수 크기와 시간을 소요했던 종래의 퍼지 추출기에 비해서 매우 효율적이고 빠른 성능을 제공하는 효과가 있다.According to the present invention, even when the entropy of the random distribution to which the input value (ω) is sampled is not large, the size of the public value and the time of regeneration of the secret key are expressed as the polynomial time for the error of the input. Compared to the conventional purge extractor, which took time and time, there is an effect of providing very efficient and fast performance.

이상 첨부 도면을 참고하여 본 발명에 대해서 설명하였지만 본 발명의 권리범위는 후술하는 특허청구범위에 의해 결정되며 전술한 실시예 및/또는 도면에 제한되는 것으로 해석되어서는 아니된다. 그리고 특허청구범위에 기재된 발명의, 당업자에게 자명한 개량, 변경 및 수정도 본 발명의 권리범위에 포함된다는 점이 명백하게 이해되어야 한다.Although the present invention has been described with reference to the accompanying drawings, the scope of the present invention is determined by the claims to be described later and should not be construed as being limited to the above-described embodiments and/or drawings. And it should be clearly understood that the improvements, changes and modifications of the invention described in the claims, which are obvious to those skilled in the art, are included in the scope of the present invention.

10: 생성 모듈
20: 재생성 모듈
10: generation module
20: regeneration module

Claims (4)

전자적 연산 장치가 퍼지 추출기(Fuzzy Extractor)에 의해 공개값을 생성하는 방법에 있어서,
전자적 연산 장치의 비밀키 생성 모듈이 입력값(
Figure 112019109465986-pat00040
)을 입력받으면 1-비트(∈{0, 1})로 구성된 비밀키의 성분(b)을 랜덤하게 선택하는 제1-1 단계와, 선택된 비밀키의 성분(b)에 따라 결정되는 공개값의 성분(H)을 결정하는 제1-2 단계를 포함하는 제1 단계와,
미리 결정되어 있는 비밀키의 비트(k) 만큼 제1 단계를 반복하여 각 비밀키 성분에 대한 공개값 성분(H)을 결정하는 제2 단계를 포함하며,
제1-2 단계는,
b = 0 이면 공개값 성분(H)을
Figure 112019109465986-pat00041
로 결정하고,
b = 1 이면 공개값 성분(H)을
Figure 112019109465986-pat00042
로 결정하는 단계이며,
Figure 112019109465986-pat00043
Figure 112019109465986-pat00044
는 랜덤 이진 벡터이며,
Ii는 입력값(ω)으로부터 랜덤하게 선택되는
Figure 112019109465986-pat00045
비트만큼의 원소를 가리키는 랜덤 인덱스 집합이며,
Figure 112019109465986-pat00046
는 랜덤 인덱스 집합(Ii)을 구성하는
Figure 112019109465986-pat00047
비트의 원소를 입력으로받아 1-비트(∈{0, 1}) 출력값을 출력하는 임의의 술어 함수(Predicate 함수)인,
퍼지 추출기(Fuzzy Extractor)를 이용한 공개값 생성 방법.
In the method of generating a public value by an electronic computing device by a fuzzy extractor (Fuzzy Extractor),
The secret key generation module of the electronic computing device is the input value (
Figure 112019109465986-pat00040
) Is input, step 1-1 of randomly selecting the component (b) of the secret key composed of 1-bit (∈{0, 1}), and the public value determined according to the component (b) of the selected secret key. A first step including a 1-2 step of determining the component (H) of,
And a second step of determining a public value component (H) for each secret key component by repeating the first step by a predetermined bit (k) of the secret key,
Step 1-2,
If b = 0, then the public value component (H) is
Figure 112019109465986-pat00041
And decided to
If b = 1, then the public value component (H) is
Figure 112019109465986-pat00042
It is a step to determine as,
Figure 112019109465986-pat00043
Wow
Figure 112019109465986-pat00044
Is a random binary vector,
I i is randomly selected from the input value (ω)
Figure 112019109465986-pat00045
It is a set of random indices pointing to an element as many as bits,
Figure 112019109465986-pat00046
Constitutes a set of random indices (I i)
Figure 112019109465986-pat00047
An arbitrary predicate function (Predicate function) that receives a bit element as an input and outputs a 1-bit (∈{0, 1}) output value,
A method of generating public values using a fuzzy extractor.
청구항 1에 있어서,
술어 함수는
Figure 112019109465986-pat00048
로 정의되는 XOR-Maj 함수인,
퍼지 추출기(Fuzzy Extractor)를 이용한 공개값 생성 방법.
The method according to claim 1,
The predicate function is
Figure 112019109465986-pat00048
XOR-Maj function defined as,
A method of generating public values using a fuzzy extractor.
청구항 1 또는 청구항 2에 있어서,
랜덤 인덱스 집합 Ii 및 랜덤 이진 수열
Figure 112019109465986-pat00049
는 다른 의사 난수 생성기에 의해서 생성되는,
퍼지 추출기(Fuzzy Extractor)를 이용한 공개값 생성 방법.
The method according to claim 1 or 2,
Set of random indices I i and random binary sequence
Figure 112019109465986-pat00049
Is generated by another pseudorandom number generator,
A method of generating public values using a fuzzy extractor.
청구항 1 또는 청구항 2의 방법에 의해 생성된 공개값 및 2차 입력값(
Figure 112019109465986-pat00050
)을 입력받아 전자적 연산 장치가 퍼지 추출기를 이용하여 비밀키를 생성하는 방법에 있어서,
Figure 112019109465986-pat00051
를 비교값(h')으로 산출하는 제3 단계와,
H의 마지막 성분 벡터(
Figure 112019109465986-pat00052
또는
Figure 112019109465986-pat00053
)와 비교값(h')의 해밍 거리를 산출하는 제4 단계와,
제4 단계에서 산출된 해밍거리가 소정의 값보다 작거나 같으면 비밀키의 성분(b')을 "1"로 출력하고, 그렇지 않으면 "0"으로 출력하는 제5 단계와,
미리 결정되어 있는 비밀키의 비트(k) 만큼 제3 단계 내지 제5 단계를 반복하여 비밀키를 생성하는 제6 단계를 포함하며,
상기 소정의 값은
Figure 112019109465986-pat00054
이며,
p는
Figure 112019109465986-pat00055
Figure 112019109465986-pat00056
가 동일일 확률인,
퍼지 추출기(Fuzzy Extractor)를 이용한 비밀키 생성 방법.
The public value and the secondary input value generated by the method of claim 1 or 2 (
Figure 112019109465986-pat00050
In the method for generating a secret key using a fuzzy extractor by an electronic computing device receiving ),
Figure 112019109465986-pat00051
A third step of calculating as the comparison value h',
The vector of the last component of H (
Figure 112019109465986-pat00052
or
Figure 112019109465986-pat00053
A fourth step of calculating the Hamming distance of) and the comparison value h',
A fifth step of outputting a component (b') of the secret key as "1" if the hamming distance calculated in the fourth step is less than or equal to a predetermined value, otherwise outputting it as "0";
And a sixth step of generating a secret key by repeating the third to fifth steps as many as a predetermined bit (k) of the secret key,
The predetermined value is
Figure 112019109465986-pat00054
Is,
p is
Figure 112019109465986-pat00055
Wow
Figure 112019109465986-pat00056
Is the probability that is equal,
Secret key generation method using fuzzy extractor.
KR1020190133941A 2019-10-25 2019-10-25 Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input KR102236242B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190133941A KR102236242B1 (en) 2019-10-25 2019-10-25 Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133941A KR102236242B1 (en) 2019-10-25 2019-10-25 Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input

Publications (1)

Publication Number Publication Date
KR102236242B1 true KR102236242B1 (en) 2021-04-06

Family

ID=75472687

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133941A KR102236242B1 (en) 2019-10-25 2019-10-25 Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input

Country Status (1)

Country Link
KR (1) KR102236242B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150095654A1 (en) * 2013-09-30 2015-04-02 Jiangtao Li Cryptographic key generation based on multiple biometrics
KR20190070472A (en) * 2017-12-13 2019-06-21 세종대학교산학협력단 Apparatus and method for generating cryptographic key using biometric information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150095654A1 (en) * 2013-09-30 2015-04-02 Jiangtao Li Cryptographic key generation based on multiple biometrics
KR20190070472A (en) * 2017-12-13 2019-06-21 세종대학교산학협력단 Apparatus and method for generating cryptographic key using biometric information

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Alzahraa J. Mohammmed 외 1명, Efficient and Flexible Multi-Factor Authentication Protocol Based on Fuzzy Extractor of Administrator's Fingerprint and Smart Mobile Device, www.mdpi.com/journal/cryptograp *
Jung Hee Cheon 외 3명, A Reusable Fuzzy Extractor with Practical Storage Size, Cryptography ePrint Archive: Report 2018/681 (2018.07.) *
MINHYE SEO 외 5명, Fuzzy Vector Signature and Its Application to Privacy-Perserving Authentication, IEEE Access (2019.05.) *

Similar Documents

Publication Publication Date Title
US10171459B2 (en) Method of processing a ciphertext, apparatus, and storage medium
US8429421B2 (en) Server-side encrypted pattern matching
Maes et al. Low-overhead implementation of a soft decision helper data algorithm for SRAM PUFs
JP4864877B2 (en) Computer-implemented method for storing data on a computer-readable medium
US9906511B1 (en) Secure impersonation detection
Belaïd et al. Side-Channel Analysis of Multiplications in GF (2128) Application to AES-GCM
EP2991264B1 (en) Encrypted text matching system, method and program
EP3637674A1 (en) Computer system, secret information verification method, and computer
EP2991265B1 (en) Encrypted text matching system, method and program
US9594918B1 (en) Computer data protection using tunable key derivation function
CN111368317B (en) Computer data encryption system and method
US8325913B2 (en) System and method of authentication
EP2991266B1 (en) Encrypted text matching system, method, and computer readable medium
KR102236242B1 (en) Method for Generating Public Value Using Fuzzy Extractor and Generating Secret Key Using the same Public Value and Second Input
Vo et al. A hash-based index method for securing biometric fuzzy vaults
Alattar et al. Anti-continuous collisions user-based unpredictable iterative password salted hash encryption
Gorbenko et al. Methods of building general parameters and keys for NTRU Prime Ukraine of 5 th–7 th levels of stability. Product form
CN114244517A (en) Data encryption and signature method and device, computer equipment and storage medium
Alarcon-Aquino et al. Biometric Cryptosystem based on Keystroke Dynamics and K-medoids
Woo et al. Robust and Reusable Fuzzy Extractors from Non-Uniform Learning with Errors Problem.
Jerjees et al. Hybrid ciphering method based on chaos logistic map and fingerprint information
KR102595938B1 (en) Polynomial inverse generating apparatus and method for an encryption system that encrypts and decrypts data using polynomials
Yasuda et al. Privacy-preserving fuzzy commitment for biometrics via layered error-correcting codes
US20180032740A1 (en) Adaptive system profile
Ciocan et al. A Modified Argon2i Using a Tweaked Variant of Blake3

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant