KR102322435B1 - Method for extracting a same key from fuzzy data and method for authenticating user using the same - Google Patents
Method for extracting a same key from fuzzy data and method for authenticating user using the same Download PDFInfo
- Publication number
- KR102322435B1 KR102322435B1 KR1020190088870A KR20190088870A KR102322435B1 KR 102322435 B1 KR102322435 B1 KR 102322435B1 KR 1020190088870 A KR1020190088870 A KR 1020190088870A KR 20190088870 A KR20190088870 A KR 20190088870A KR 102322435 B1 KR102322435 B1 KR 102322435B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- user
- data
- calculate
- server
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/02—Computing arrangements based on specific mathematical models using fuzzy logic
- G06N7/023—Learning or tuning the parameters of a fuzzy system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
Abstract
생체 정보로부터 키를 추출하는 방법이 개시된다. 상기 키를 추출하는 방법은 사용자 단말에서 수행되고, 보안 상수, 시스템 파라미터, 및 s 개의 제1 사용자 데이터들을 이용하여 헬퍼 데이터와 제1 키를 생성하는 셋업 단계, 및 상기 시스템 파라미터, 상기 헬퍼 데이터, 및 제2 사용자 데이터를 이용하여 상기 제1 키와 동일한 값을 갖는 제2 키를 추출하는 키 추출 단계를 포함하고, 상기 헬퍼 데이터는 임계치와 임의의 값을 포함한다.A method of extracting a key from biometric information is disclosed. The method for extracting the key is performed in a user terminal, and includes a setup step of generating helper data and a first key by using a security constant, a system parameter, and s pieces of first user data, and the system parameter, the helper data, and extracting a second key having the same value as the first key by using second user data, wherein the helper data includes a threshold value and an arbitrary value.
Description
본 발명은 생체 데이터와 같은 퍼지 데이터로부터 키를 추출하는 방법과 이를 이용하여 사용자를 인증하는 방법에 관한 것이다.The present invention relates to a method for extracting a key from fuzzy data such as biometric data and a method for authenticating a user using the same.
ECDSAECDSA 기법(Elliptic Curve Digital Signature Algorithm). Elliptic Curve Digital Signature Algorithm.
ECDSA 기법은 타원곡선 상에서 동작하는 전자서명(Digital Signature)으로, 서명을 생성하는 서명자(Signer)와 서명을 검증하는 검증자(Verifier)가 존재한다. ECDSA 기법은 키 생성 알고리즘(KeyGen), 서명 알고리즘(Sign), 및 검증 알고리즘(Verify)의 세 개의 다항 시간(Polynomial-time) 알고리즘으로 구성된다. 키 생성 알고리즘(KeyGen)에서는 보안 상수를 입력으로 하여 서명키(Signing key, )와 검증키(Verification key, )를 출력하며, 검증키()는 공개하고 서명키()는 안전하게 보관한다. 서명 알고리즘(Sign)에서는 서명자가 서명키()를 이용하여 메시지()에 대한 서명()을 생성하며, 검증 알고리즘(Verify)에서는 검증자가 서명자의 검증키()와 메시지()를 이용하여 서명()을 검증한다.The ECDSA technique is a digital signature that operates on an elliptic curve, and there are a signer that generates a signature and a verifier that verifies the signature. The ECDSA technique consists of three polynomial-time algorithms: a key generation algorithm (KeyGen), a signature algorithm (Sign), and a verification algorithm (Verify). In the key generation algorithm (KeyGen), the signing key (Signing key, ) and the verification key (Verification key, ) and the verification key ( ) is public and the signing key ( ) are stored safely. In the signature algorithm (Sign), the signer uses the signing key ( ) to message ( ) for signature ( ), and in the verification algorithm (Verify), the verifier uses the signer's verification key ( ) and the message ( ) to sign ( ) is verified.
DSA(Digital Signature Algorithm)는 미국 국립표준기술연구소(National Institude of Standards and Technology, NIST)에서 채택한 전자서명 표준 중 하나이며, ECDSA는 DSA를 타원곡선 상에서 구현한 기법을 의미한다. 시스템 내에서 사용되는 타원곡선에 대한 정보는 사용자들에게 공유되어 있다고 가정하며, 타원곡선 정보는 타원곡선 체와 방정식(Elliptic curve field and equation), 생성원 (Elliptic curve base point), 그리고 위수 (integer order of )을 포함할 수 있다. ECDSA 기법의 구체적인 동작은 다음과 같다.DSA (Digital Signature Algorithm) is one of the digital signature standards adopted by the US National Institute of Standards and Technology (NIST), and ECDSA refers to a technique that implements DSA on an elliptic curve. It is assumed that the information on the elliptic curve used in the system is shared with users, and the elliptic curve information includes the elliptic curve field and equation, the generator (Elliptic curve base point), and the order (integer order of ) may be included. A detailed operation of the ECDSA technique is as follows.
·키 생성(KeyGen). 서명자는 보안 상수 를 입력으로 받아 서명키 ()와 검증키 ()를 출력한다. 이때, 는 타원곡선 상에서의 상수 곱(Elliptic curve point multiplication by a scalar)을 의미한다. 는 공개하고 는 안전하게 저장한다.· Key Generation (KeyGen). The signer is a security constant takes as input the signing key ( ) and the verification key ( ) is output. At this time, denotes an elliptic curve point multiplication by a scalar. is disclosed is stored securely.
·서명(Sign). 서명자는 서명할 메시지 과 자신의 서명키 를 입력으로 하여 다음과 같이 서명 를 출력한다.·Sign. The signer is the message to sign and your signature key as input to sign as follows to output
① 을 계산한다. (는 암호학적인 해쉬 함수를 의미한다.)① to calculate ( is a cryptographic hash function.)
② 의 최상위 비트를 로 설정한다. (은 의 비트 길이를 의미한다.)② top of a bit set to ( silver of the bit length.)
③ 임의의 정수 를 선택하여 타원곡선 상의 점 를 계산한다.③ Any integer to select a point on the elliptic curve to calculate
④ 을 계산한다. (만약 이면, ①로 돌아간다.)④ to calculate (if If so, return to ①.)
⑤ 을 계산한다. (만약 이면, ①로 돌아간다.)⑤ to calculate (if If so, return to ①.)
⑥ 메시지 에 대한 서명 를 출력한다.⑥ Message signature for to output
·검증(Verify). 검증자는 서명 , 메시지 , 그리고 서명자의 검증키 를 입력으로 하여 다음과 같이 서명을 검증한다.·Verify. Validators sign , message , and the signer's verification key is input and the signature is verified as follows.
① , 을 만족하는지 확인한다. (만족하지 않으면 를 출력한다.)① , check that it satisfies (if not satisfied prints out.)
② 을 계산하고, 의 최상위 비트를 로 설정한다.② calculate, top of a bit set to
③ 을 계산한다.③ to calculate
④ 과 을 계산한다.④ class to calculate
⑤ 타원곡선 상의 점 를 계산한다.⑤ Point on the elliptic curve to calculate
⑥ 이 성립하면 를 출력하고, 그렇지 않으면 를 출력한다.⑥ If this is achieved output, otherwise to output
질의-응답 메커니즘(Challenge-Response Mechanism).Challenge-Response Mechanism.
질의-응답 메커니즘은 검증자가 생성한 질의(Challenge)를 증명자에게 전송하여 증명자가 자신의 비밀 값을 이용하여 질의에 응답(Response)하는 방식이다. 여기서 중요한 점은 주어진 질의에 대해 비밀 값을 알고 있는 증명자만이 올바른 응답을 할 수 있어야 한다는 것이다. 만약 고정된 질의를 사용하는 경우, 정당한 비밀 값을 모르는 공격자도 이전의 응답을 도청하여 저장하고 이를 재전송하는 공격이 가능하다. 또한, 예상되는 질의를 사용하는 경우, 공격자는 비밀 값이 없이도 정당한 응답을 생성할 수 있게 된다. 따라서, 질의의 새로움(Freshness)이 보장되어야 하며, 이를 위해 검증자는 증명자가 예상하지 못하는 매번 새로이 생성되는 질의 값을 사용해야 한다. 검증자가 랜덤한 질의를 하게 되는 경우, 이에 대한 증명자의 응답도 매번 바뀌게 된다. The question-response mechanism is a method in which the prover responds to the query using its secret value by sending the challenge generated by the verifier to the prover. The important point here is that only a prover who knows the secret value should be able to give a correct response to a given query. If a fixed query is used, an attacker who does not know a valid secret value can eavesdrop on the previous response, store it, and retransmit it. Also, when using expected queries, an attacker could generate a legitimate response without a secret value. Therefore, the freshness of the query must be guaranteed, and for this, the verifier must use a newly generated query value that the prover does not expect. When the verifier asks a random query, the prover's response to it also changes every time.
본 발명이 이루고자 하는 기술적인 과제는 노이즈를 포함하는 퍼지 데이터(fuzzy data)로부터 동일한 키를 추출하는 방법과 이를 이용하여 사용자를 인증하는 방법을 제공하는 것이다.An object of the present invention is to provide a method of extracting the same key from fuzzy data including noise and a method of authenticating a user using the same.
본 발명의 실시예에 따른 키를 추출하는 방법은 사용자 단말에서 수행되는, 노이즈를 포함하는 퍼지 데이터(fuzzy data)로부터 동일한 키를 추출하는 방법으로써, 보안 상수(), 시스템 파라미터(), 및 () 개의 제1 사용자 데이터들(, , 은 임의의 자연수)을 이용하여 헬퍼 데이터()와 제1 키()를 생성하는 셋업 단계, 및 상기 시스템 파라미터(), 상기 헬퍼 데이터(), 및 제2 사용자 데이터()를 이용하여 상기 제1 키()와 동일한 값을 갖는 제2 키()를 추출하는 키 추출 단계를 포함하고, 상기 헬퍼 데이터()는 임계치()와 임의의 값()을 포함한다.A method of extracting a key according to an embodiment of the present invention is a method of extracting the same key from fuzzy data including noise, performed in a user terminal, and a security constant ( ), system parameters ( ), and ( ) first user data ( , , is an arbitrary natural number) using helper data ( ) and the first key ( ), and the system parameters ( ), the helper data ( ), and the second user data ( ) using the first key ( ) and the second key ( ), including a key extraction step of extracting the helper data ( ) is the threshold ( ) and any value ( ) is included.
또한, 본 발명의 실시예에 따른 사용자 인증 방법은 적어도 하나의 사용자 단말과 서버 사이에서 수행되고, 상기 적어도 하나의 사용자 단말에 포함되는 제1 사용자 단말이 상기 사용자를 식별하기 위한 식별 정보, 헬퍼 데이터(), 및 검증키()를 상기 서버로 송신하는 사용자 등록 단계, 및 상기 적어도 하나의 사용자 단말에 포함되는 제2 사용자 단말이 상기 서버로부터 수신된 질의 메시지에 대응하는 응답 메시지를 상기 서버로 송신하는 사용자 인증 단계를 포함하고, 상기 헬퍼 데이터()는 임계치()와 임의의 값()을 포함하고, 상기 응답 메시지는 상기 질의 메시지에 포함된 질의값()에 대한 서명()을 포함한다.In addition, the user authentication method according to an embodiment of the present invention is performed between at least one user terminal and a server, and identification information and helper data for a first user terminal included in the at least one user terminal to identify the user ( ), and the verification key ( ) a user registration step of transmitting to the server, and a second user terminal included in the at least one user terminal comprising a user authentication step of transmitting a response message corresponding to the query message received from the server to the server, and , the helper data ( ) is the threshold ( ) and any value ( ), and the response message is a query value ( ) for signature ( ) is included.
본 발명의 실시 예에 따른 키 추출 방법과 인증 방법에 의할 경우, 추가적인 비밀 정보 없이 노이즈가 포함된 퍼지 데이터로부터 암호학적으로 사용 가능한 키를 매번 동일하게 추출할 수 있는 효과가 있다.According to the key extraction method and the authentication method according to an embodiment of the present invention, there is an effect that a cryptographically usable key can be equally extracted every time from fuzzy data including noise without additional secret information.
또한, 서로 다른 사용자의 정보로부터 서로 다른 키가 생성되도록 하기 위하여 사용자 별로 최적의 임계치를 설정함으로써, 오거부율(False Rejection Rate, FRR)과 오인식률(False Acceptance Rate, FAR)을 낮출 수 있는 효과가 있다.In addition, by setting an optimal threshold for each user so that different keys are generated from information of different users, the false rejection rate (FRR) and false acceptance rate (FAR) can be lowered. have.
또한, 지수 연산(Exponentiation)과 같은 복잡한 연산이 수행되지 않아 효율적으로 키를 추출할 수 있는 효과가 있다.In addition, there is an effect that a key can be efficiently extracted because a complex operation such as exponentiation is not performed.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 시스템을 도시한다.
도 2는 도 1에 도시된 사용자 단말의 기능 블럭도이다.
도 3은 도 1에 도시된 사용자 단말에서 수행되는 키 추출 방법을 설명하기 위한 흐름도이다.
도 4는 도 1에 도시된 시스템 상에서 수행되는 사용자 인증 방법을 설명하기 위한 흐름도이다.
도 5는 도 4에 도시된 사용자 등록 단계를 설명하기 위한 흐름도이다.
도 6은 도 4에 도시된 사용자 인증 단계를 설명하기 위한 흐름도이다.In order to more fully understand the drawings recited in the Detailed Description of the Invention, a detailed description of each drawing is provided.
1 shows a system according to an embodiment of the present invention.
FIG. 2 is a functional block diagram of the user terminal shown in FIG. 1 .
FIG. 3 is a flowchart illustrating a key extraction method performed in the user terminal shown in FIG. 1 .
FIG. 4 is a flowchart illustrating a user authentication method performed on the system shown in FIG. 1 .
FIG. 5 is a flowchart for explaining the user registration step shown in FIG. 4 .
FIG. 6 is a flowchart for explaining the user authentication step shown in FIG. 4 .
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in this specification are only exemplified for the purpose of explaining the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention are It may be implemented in various forms and is not limited to the embodiments described herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention may have various changes and may have various forms, the embodiments will be illustrated in the drawings and described in detail herein. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes all modifications, equivalents, or substitutes included in the spirit and scope of the present invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.Terms such as first or second may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one element from another, for example, without departing from the scope of the inventive concept, a first element may be termed a second element and similarly a second element. A component may also be referred to as a first component.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being “connected” or “connected” to another component, it may be directly connected or connected to the other component, but it is understood that other components may exist in between. it should be On the other hand, when it is said that a certain element is "directly connected" or "directly connected" to another element, it should be understood that the other element does not exist in the middle. Other expressions describing the relationship between components, such as "between" and "immediately between" or "neighboring to" and "directly adjacent to", etc., should be interpreted similarly.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used herein are used only to describe specific embodiments, and are not intended to limit the present invention. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate that a feature, number, step, operation, component, part, or combination thereof described herein exists, but one or more other features It is to be understood that it does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present specification. does not
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these examples. Like reference numerals in each figure indicate like elements.
본 발명에서는 생체 정보와 같이 노이즈(Noise)가 포함된 퍼지 데이터(Fuzzy data)를 이용하여 동일한 키를 추출하는 방법(Fuzzy Extractor, FE)과 이를 이용한 사용자 인증을 수행하는 방법을 제안한다. 생체 정보에는 홍채 정보, 지문 정보, 정맥 정보, 얼굴 이미지 정보 등이 있을 수 있다. 구체적으로, 본 발명은 (1) 사용자별로 최적의 임계치를 설정하는 방법, (2) 사용자의 데이터와 헬퍼 데이터로부터 키를 추출하는 방법, 그리고 (3) 이를 이용한 인증 프로토콜로 구성된다.The present invention proposes a method for extracting the same key (Fuzzy Extractor, FE) using fuzzy data including noise, such as biometric information, and a method for performing user authentication using the same. The biometric information may include iris information, fingerprint information, vein information, face image information, and the like. Specifically, the present invention consists of (1) a method of setting an optimal threshold for each user, (2) a method of extracting a key from user data and helper data, and (3) an authentication protocol using the same.
사용자 데이터와 임계치는 벡터(또는 실수 벡터) 형태로 표현된다. 사용자의 데이터를 벡터 형태로 추출하는 방법은 널리 알려져 있다. 예컨대, 가버 필터(Gabor filter)나 특징점(Minutiae point)을 이용한 방법이 대표적이다. 사용자의 데이터에 대한 프라이버시는 시스템 전체적으로 보호되어야 하며, 임계치를 포함한 사용자의 헬퍼 데이터(Helper data)는 공개된다.User data and thresholds are expressed in the form of vectors (or real vectors). A method of extracting user data in a vector form is widely known. For example, a method using a Gabor filter or a minutiae point is representative. The privacy of the user's data must be protected throughout the system, and the user's helper data including the threshold is disclosed.
본 명세서에서 두 벡터 와 의 거리는 로 정의될 수 있다. 가 임계치 보다 작다는 것은 모든 에 대하여 를 만족한다는 것을 의미한다. 또한, 상기 은 2 보다 크거나 같은 임의의 자연수(Natural number)일 수 있다.Two vectors herein Wow distance of can be defined as fall threshold less than all about means that it satisfies Also, said may be any natural number greater than or equal to 2.
또한, 본 발명에서 는 반올림 연산(Rounding operation)을 의미하며, 는 를 키로 하는 의사난수함수(Pseudo-random function, PRF)를 의미한다.Also, in the present invention means a rounding operation, Is It means a pseudo-random function (PRF) with a key.
이하에서는, 본 발명에 대하여 보다 구체적으로 설명하기로 한다.Hereinafter, the present invention will be described in more detail.
(1) 사용자 데이터를 이용하여 사용자별 임계치를 설정하는 방법(1) How to set a threshold for each user using user data
사용자 인증을 수행하는 과정에서 FRR(False Rejection Rate, 오거부율)과 FAR(False Acceptance Rate, 오인식률)을 최소화하기 위하여, 등록 과정에서 입력받은 사용자의 데이터를 이용하여 사용자별 최적의 임계치를 설정하여야 한다. 사용자별 임계치를 설정하는 방법은 초기화(Init)와 임계치 생성(ThreGen)의 두 단계로 구성된다.In order to minimize FRR (False Rejection Rate) and FAR (False Acceptance Rate) in the process of user authentication, it is necessary to set the optimal threshold for each user using the user data input during the registration process. do. The method of setting the threshold for each user consists of two steps: initialization (Init) and threshold generation (ThreGen).
초기화(reset( InitInit ))
사용자별로 최적화된 임계치를 설정하기 위해서는 먼저 등록 단계에서 입력받은 사용자 데이터로부터 사용자 데이터의 대푯값('제1 대푯값'이라 명명될 수도 있음) 와 임계치의 대푯값('제2 대푯값'이라 명명될 수도 있음) 을 설정하여야 한다. (는 2 이상의 자연수) 개의 사용자 데이터 를 입력받았을 때, 아래와 같이 ()번째 위치의 대푯값 와 를 생성한다.In order to set a threshold optimized for each user, a representative value of user data (which may be called a 'first representative value') from the user data input in the registration step first and a representative value of the threshold (may also be referred to as a 'second representative value') should be set. ( is a natural number greater than or equal to 2) user data When input is received, ( ) the representative value of the position Wow create
① 에서 이상치(Outlier)를 제거한다. 이상치를 제외한 데이터의 집합을 라고 하며, 이때의 인덱스(Index) 집합 는 를 만족한다. 본 단계는 데이터의 편차를 줄이기 위한 것이므로, 실시예에 따라 본 단계는 생략될 수도 있다. 이 경우, 단계 ②와 단계 ③에서는 이상치가 제거되지 않은 사용자 데이터 를 이용하여 대푯값을 설정할 수도 있다.① Remove outliers from A set of data excluding outliers , and the set of indexes at this time Is is satisfied with Since this step is to reduce data deviation, this step may be omitted depending on the embodiment. In this case, user data for which outliers are not removed in steps ② and ③ can also be used to set a representative value.
② 에서 이상치가 제거된 나머지 값들 을 대표하는 값을 로 설정한다. 대푯값으로는 평균(산술 평균, 기하 평균, 조화 평균, 가중 평균 등), 중앙값, 최빈값 등의 다양한 통계 지표가 사용될 수 있으며, 사용되는 환경에 따라 다르게 설정될 수 있다.② Remaining values from which outliers have been removed a value representing set to As representative values, various statistical indicators such as mean (arithmetic mean, geometric mean, harmonic mean, weighted mean, etc.), median, and mode may be used, and may be set differently depending on the environment in which they are used.
③ 에서 이상치가 제거된 나머지 값들 에 대하여 아래 수학식 1과 같이 임계치의 대푯값 를 설정한다.③ Remaining values from which outliers have been removed A representative value of the threshold as shown in Equation 1 below for to set
상기 수학식 1에서 는 양의 실수로써 로 설정될 수 있으나, 시스템에서 사용하는 퍼지 데이터의 특성이나 응용 환경에 따라서 상이한 값으로 설정될 수도 있다.In Equation 1 above is a positive real number However, it may be set to a different value depending on the characteristics of the fuzzy data used in the system or the application environment.
①번 단계에서, 이상치는 IQR 규칙(Interquartile Range rule), Grubb의 테스트(Grubb's test), 로버스트 테스트(Robust test) 등을 이용한 방법을 통해 제거될 수 있다. 그러나, 본 발명의 권리범위가 이에 제한되는 것은 아니며, 시스템에서 사용하는 퍼지 데이터의 특성이나 응용 환경에 따라 적합한 이상치 제거 방법이 사용될 수 있다.In step ①, the outlier may be removed through a method using the IQR rule (Interquartile Range rule), Grubb's test, robust test, or the like. However, the scope of the present invention is not limited thereto, and a suitable outlier removal method may be used according to the characteristics of the fuzzy data used in the system or the application environment.
임계치 생성(Create threshold ( ThreGenThreeGen ))
초기화 단계에서 설정된 대푯값 , 을 이용하여 다음과 같이 사용자에게 최적화된 임계치 벡터 를 생성할 수 있다.Representative value set in the initialization phase , Threshold vector optimized for the user as follows using can create
① 모든 에 대하여 를 계산한다.① All about to calculate
② 모든 에 대하여 와 를 계산한다.② All about Wow to calculate
③ 모든 에 대하여 중 가 더 작은 를 로 설정한다.③ All about middle is smaller cast set to
④ 임계치 를 출력한다.④ Threshold to output
상술한 임계치 생성 과정 중 ③ 단계에서는 두 개의 값 중 더 작은 값을 로 설정할 수도 있으며, 설정 방법은 응용 환경에 따라 달라질 수 있다.In step ③ of the above-described threshold generation process, the smaller of the two values is selected. It can also be set to , and the setting method may vary depending on the application environment.
(2) (2) 노이즈가noise 포함된 사용자 데이터로부터 키를 추출하는 방법 How to extract a key from embedded user data
두 개의 사용자 데이터 , 의 거리가 임계치 보다 작은 경우(또는 작거나 같은 경우), 두 개의 데이터로부터 동일한 키가 생성되어야 한다.two user data , distance is the threshold If less than (or less than or equal to), the same key must be generated from the two pieces of data.
시스템 파라미터 는 의사난수함수 와 암호학적 해쉬 함수 로 구성되며, 시스템 내 모든 사용자는 동일한 시스템 파라미터를 사용한다. 즉, 시스템 파라미터 는 사전에 공개되어 모든 사용자 단말 각각에 의해 공유된 정보일 수 있다.system parameters is a pseudo-random function and cryptographic hash functions , and all users in the system use the same system parameters. i.e. system parameters may be information that has been previously disclosed and shared by each of all user terminals.
노이즈가 포함된 사용자 데이터로부터 암호학적인 키를 추출하는 방법은 다음의 두 가지 알고리즘으로 구성된다.The method of extracting a cryptographic key from user data containing noise consists of the following two algorithms.
셋업set up (FE.Setup)(FE.Setup)
보안 상수 와 시스템 파라미터 , 및 개의 사용자 데이터 를 입력으로 받아 다음과 같이 사용자 헬퍼 데이터 와 키 를 생성한다.security constant and system parameters , and user data takes as input the user helper data as with key create
① 앞서 기술한 (1)의 방법(Init, ThreGen)을 이용하여 사용자 데이터의 대푯값 와 사용자 임계치 를 설정한다.① A representative value of user data using the method (Init, ThreGen) of (1) described above and user threshold to set
② 를 랜덤하게 선택한다.② is randomly selected.
③ 모든 에 대하여 를 계산한다.③ All about to calculate
④ 모든 에 대하여 를 계산한다.④ all about to calculate
⑤ 를 계산한다.⑤ to calculate
⑥ 사용자 헬퍼 데이터 와 키 를 출력한다.⑥ User helper data with key to output
키 추출 함수(FE.Extract)Key Extraction Function (FE.Extract)
시스템 파라미터 , 사용자 헬퍼 데이터 , 및 사용자의 데이터 을 입력으로 받아 다음과 같이 키 를 생성한다.system parameters , user helper data , and your data takes as input and the key as create
① 모든 에 대하여 를 계산한다.① All about to calculate
② 모든 에 대하여 를 계산한다.② All about to calculate
③ 를 계산한다.③ to calculate
④ 키 를 출력한다.④ key to output
여기서, 사용자의 데이터 대푯값 와 사용자의 데이터 사이의 거리가 임계치보다 작다면(또는 작거나 같다면), 키 추출 함수(EF.Extract)를 통해 추출된 키와 셋업(EF.Setup) 과정에서 생성된 키는 동일한 값을 가져야 한다.Here, the user's data representative value and user data If the distance between them is less than (or less than or equal to) the threshold, the key extracted through the key extraction function (EF.Extract) and the key generated in the setup (EF.Setup) process must have the same value.
(3) 서버-사용자 모델에서의 사용자 인증 프로토콜(3) User authentication protocol in server-user model
서버-사용자 모델에서 사용자는 서버에게 본인 인증을 수행한다. 이때, 사용자는 패스워드나 다른 비밀 정보 없이 사용자의 생체 정보와 같은 고유한 특성을 이용하여 인증을 수행한다. 인증 프로토콜은 등록 단계와 인증 단계로 구성되며, 노이즈가 포함된 사용자 데이터로부터 키를 추출하는 함수와 ECDSA 전자서명 기법을 이용하여 설계된다.In the server-user model, the user authenticates himself to the server. In this case, the user performs authentication using unique characteristics such as the user's biometric information without a password or other secret information. The authentication protocol consists of a registration step and an authentication step, and is designed using a function that extracts a key from user data containing noise and the ECDSA digital signature technique.
인증 프로토콜의 구체적인 단계는 다음과 같다. 여기서 노이즈가 포함된 사용자 데이터로부터 키를 추출하는 함수의 두 가지 알고리즘을 각각 FE.Setup, FE.Extract라고 표현하며((2)에서 설명), ECDSA 기법의 세 가지 알고리즘을 각각 KeyGen, Sign, Verify라고 표현한다.The specific steps of the authentication protocol are as follows. Here, the two algorithms of the function that extract the key from user data containing noise are expressed as FE.Setup and FE.Extract, respectively (described in (2)), and the three algorithms of the ECDSA technique are KeyGen, Sign, and Verify, respectively. express it
키 추출기(Fuzzy extractor, FE)에서 사용되는 시스템 파라미터 와 ECDSA에서 사용되는 타원곡선에 대한 정보는 시스템 전체적으로 사용되는 공개된 값으로, 시스템 내 모든 사용자들에게 주어진 값으로 가정한다.System parameters used by the fuzzy extractor (FE) The information on the elliptic curve used in and ECDSA is a public value used throughout the system and is assumed to be a value given to all users in the system.
등록 단계(Enrollment Phase)Enrollment Phase
·사용자는 생체 정보와 같은 자신의 특성 데이터 를 추출한다.・Users have their own characteristic data such as biometric information to extract
·사용자는 FE.Setup을 수행하여 사용자 헬퍼 데이터 와 키 를 생성한다.・Users perform FE.Setup to obtain user helper data with key create
·사용자는 KeyGen을 수행하여 를 서명키 로 하는 검증키 를 생성한다. 즉, FE.Setup을 통해 생성된 키 가 바로 ECDSA의 서명키 로 사용되며, 이는 KeyGen에서 를 랜덤하게 선택하는 과정을 FE.Setup이 대체한다고 볼 수 있다.·Users perform KeyGen to signing key verification key with create That is, the key generated through FE.Setup is the signature key of ECDSA , which is used by KeyGen It can be seen that FE.Setup replaces the process of randomly selecting .
·사용자는 서버에 자신의 아이디 와 함께 를 등록한다.・Users have their IDs on the server with register
인증 단계(Authentication Phase)Authentication Phase
·사용자가 먼저 자신의 아이디 를 서버에 전송하고, 서버는 그에 대응하는 사용자 헬퍼 데이터 와 질의값 를 사용자에게 전송한다.・Users first enter their ID to the server, and the server sends the corresponding user helper data and query value is sent to the user.
·사용자는 자신의 특성 데이터 를 추출한다.・Users have their own characteristic data to extract
·사용자는 FE.Extract를 수행하여 서명키 를 생성한다.· The user executes FE.Extract to sign key create
·사용자는 Sign을 수행하여 에 대한 서명 를 생성하고, 이를 서버에 전송한다. 즉, 서명 는 질의 에 대한 응답 으로 볼 수 있다.· Users sign signature for , and send it to the server. i.e. signature is the query response to can be seen as
· 서버는 Verify를 수행하여 가 에 대한 사용자의 정당한 서명인지를 검증한다.· Server performs Verify go Verifies whether the user's signature is valid.
·출력이 이면 정당한 사용자로, 출력이 이면 정당하지 않은 사용자로 판단한다.· output If it is a legitimate user, the output is Otherwise, it is judged as an invalid user.
도 1은 본 발명의 일 실시예에 따른 시스템을 도시한다.1 shows a system according to an embodiment of the present invention.
도 1을 참조하면, 시스템(10)은 복수의 사용자 단말들(100)과 서버(300)를 포함한다. 복수의 사용자 단말들(100) 각각은 서버(300)로부터 소정의 콘텐츠나 서비스를 제공받기 위하여, 서버(300)와 인증 동작을 수행할 수 있다. 서버(300)는 인증 동작을 완료한 사용자 단말에 한하여 소정의 콘텐츠나 서비스를 제공할 수 있다.Referring to FIG. 1 , a
복수의 사용자 단말들(100) 각각은 퍼지 데이터로부터 동일한 키를 추출할 수 있으며, 추출된 키를 이용하여 서버(300)와의 인증 동작을 수행할 수 있다. 복수의 사용자 단말들(100) 각각은 적어도 하나의 프로세서와 메모리를 포함하는 컴퓨팅 장치로써, PC(personal computer), 태블릿 PC, 노트북(notebook), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치나 모바일폰(mobile phone), 스마트폰(smart phone)과 같은 핸드헬드 장치(handheld device)로 구현될 수 있다.Each of the plurality of
시스템(10)에 포함된 사용자 단말(100)과 서버(300)는 임의의 전자 서명 기법(예컨대, DSA(Digital Signature Algorithm), ECDSA(Elliptic Curve Digital Signature Algorithm) 등)을 이용하여 서명을 생성하거나 생성된 서명에 대한 검증을 수행할 수 있다. 특히, ECDSA 기법이 이용될 경우, 사용되는 타원곡선에 대한 정보(타원곡선 정보)는 사용자 단말들(100)과 서버(300)에게 공유되어 있다고 가정하며, 타원곡선 정보는 타원곡선 체와 방정식(Elliptic curve field and equation), 생성원(Elliptic curve base point) , 그리고 위수(integer order of ) 이 포함할 수 있다.The
또한, 도 1에는 4개의 사용자 단말만이 도시되어 있으나, 본 발명이 사용자 단말의 개수에 제한되는 것은 아니다. 또한, 복수의 사용자 단말들 중 적어도 일부는 하나의 사용자가 사용하는 단말이거나, 각각의 단말이 서로 다른 사용자의 단말일 수도 있다. 즉, 각 사용자는 적어도 하나의 단말을 사용하여 서버(300)와 인증 동작을 수행할 수 있다.In addition, although only four user terminals are illustrated in FIG. 1 , the present invention is not limited to the number of user terminals. Also, at least some of the plurality of user terminals may be terminals used by one user, or each terminal may be terminals of different users. That is, each user may perform an authentication operation with the
복수의 사용자 단말들(100) 각각과 서버(300)의 구체적인 동작에 관하여는 후술하기로 한다.Specific operations of each of the plurality of
도 2는 도 1에 도시된 사용자 단말의 기능 블럭도이다.FIG. 2 is a functional block diagram of the user terminal shown in FIG. 1 .
도 2를 참조하면, 사용자 단말(100)은 셋업부(110)와 키 추출부(130)를 포함한다. 실시 예에 따라, 사용자 단말(100)은 등록부(150), 인증부(170), 및 저장부(190) 중 적어도 하나 이상을 더 포함할 수도 있다.Referring to FIG. 2 , the
셋업부(110)는 보안 상수 와 시스템 파라미터 , 및 () 개의 사용자 데이터 를 입력으로 받아 헬퍼 데이터 를 생성할 수 있다. 실시예에 따라, 셋업부(110)는 키 를 더 생성할 수도 있다. 이때, 시스템 파라미터 는 공개된 값으로, 사용자 단말(100)과 서버(300) 사이에서 미리 공유되어 저장부(190)에 저장되어 있는 정보일 수 있다.The
또한, 셋업부(110)는 소정의 인터페이스를 통하여 사용자로부터 퍼지 데이터를 복수회(예컨대, s회) 입력받을 수 있다. 상기 사용자 데이터 는 상기 퍼지 데이터로부터 추출된 데이터로써, 벡터(예컨대, 실수 벡터) 형태일 수 있다. 따라서, 셋업부(110)는 사용자로부터 입력받은 복수의 퍼지 데이터를 벡터 형태로 변화하는 동작을 수행할 수도 있다.Also, the
실시 예에 따라, 상기 사용자 데이터 는 미리 입력받은 후 저장부(190)에 저장되어 있는 데이터일 수도 있다.According to an embodiment, the user data may be data stored in the
셋업부(110)에 의한 헬퍼 데이터 의 생성 과정 및/또는 키 의 생성 과정은 다음과 같다.Helper data by the
① 앞서 기술한 (1)의 방법(Init, ThreGen)을 이용하여 사용자 데이터의 대푯값 와 사용자 임계치 를 설정한다.① A representative value of user data using the method (Init, ThreGen) of (1) described above and user threshold to set
② 를 랜덤하게 선택한다.② is randomly selected.
③ 모든 에 대하여 를 계산한다.③ All about to calculate
④ 모든 에 대하여 를 계산한다.④ all about to calculate
⑤ 를 계산한다.⑤ to calculate
⑥ 사용자 헬퍼 데이터 와 키 를 출력한다.⑥ User helper data with key to output
즉, 셋업부(110)는 임계치 와 임의의 비트 스트림 ()를 포함하는 헬퍼 데이터 를 생성할 수 있다. 또한, 셋업부(110)는 상술한 과정을 통하여 키 를 생성할 수도 있다.That is, the
또한, 셋업부(110)는 등록부(150)의 요청에 따라, 헬퍼 데이터 와 키 를 생성하고, 생성된 헬퍼 데이터 와 키 를 등록부(150)로 전송할 수도 있다. 실시예에 따라, 셋업부(110)는 임의의 서명 기법(예컨대, ECDSA 기법)의 키 생성 알고리즘(KeyGen)을 수행하여 키 를 서명키 로 하는 검증키 를 생성하고, 생성된 검증키 를 헬퍼 데이터 와 함께 등록부(150)로 송신할 수도 있다.In addition, the
키 추출부(130)는 시스템 파라미터 , 사용자의 헬퍼 데이터 , 및 사용자의 데이터 를 입력으로 받아 키 를 생성(또는 추출)할 수 있다. 이때, 소정의 인터페이스를 통하여 사용자로부터 퍼지 데이터를 입력받을 수 있다. 사용자 데이터 은 상기 퍼지 데이터로부터 추출된 데이터로써, 벡터(예컨대, 실수 벡터) 형태일 수 있다. 따라서, 키 추출부(130)는 사용자로부터 입력받은 복수의 퍼지 데이터를 벡터 형태로 변화하는 동작을 수행할 수도 있다.The
구체적으로, 키 추출부(130)는 다음과 같은 과정을 통해 키 를 생성하거나 추출할 수 있다.Specifically, the
① 모든 에 대하여 를 계산한다.① All about to calculate
② 모든 에 대하여 를 계산한다.② All about to calculate
③ 를 계산한다.③ to calculate
④ 키 를 출력한다.④ key to output
상술한 과정을 통하여, 키 추출부(130)는 노이즈가 포함되어 있는 퍼지 데이터로부터 매번 동일한 값을 갖는 키를 추출할 수 있다. 물론, 키가 추출되는 사용되는 사용자 데이터 와 사용자 데이터의 대푯값 사이의 거리 가 미리 정해진 임계치 보다 작거나 같아야(또는 작아야) 한다. 이를 위해, 키 추출부(130)는 사용자 데이터 와 사용자 데이터의 대푯값 사이의 거리 가 미리 정해진 임계치 보다 작은지(또는 작거나 같은지)를 판단한 후 이를 만족하는 경우에만 키 추출 동작을 수행할 수 있다. Through the above-described process, the
키 추출부(130)에 의해 생성된 키 는 상기 사용자를 인증하기 위한 과정 등에 이용될 수 있다. The key generated by the
또한, 키 추출부(130)는 인증부(170)의 요청에 따라, 사용자 데이터 으로부터 키 를 추출한고 추출된 키 를 인증부(170)로 전송할 수도 있다. 이때, 키 는 임의의 전자 서명 기법(예컨대, ECDSA 기법)에서 사용되는 서명키 로 설정되기 때문에, 키 추출부(130)는 서명키 를 생성한 후 생성된 서명키 를 인증부(170)로 전송하는 것으로 이해될 수도 있다.In addition, the
등록부(150)는 서버(300)와의 유무선 통신을 통해 사용자 단말(100)의 사용자를 등록할 수 있다.The
구체적으로, 등록부(150)는 상기 사용자의 등록을 요청하는 등록 요청 메시지를 서버(300)로 송신할 수 있다. 이때, 상기 서버(300)는 상기 등록 요청 메시지에 응답하여 등록에 필요한 정보를 요청하는 등록 정보 요청 메시지를 등록부(150)로 송신할 수 있다.Specifically, the
또한, 등록부(150)는 상기 등록 정보 요청 메시지에 응답하여, 상기 사용자의 등록에 필요한 정보인 등록 정보를 서버(300)로 송신할 수 있다. 상기 등록 정보는 상기 사용자를 식별하기 위한 식별 정보(예컨대, ID와 같은 식별자), 임계치 와 임의의 비트 스트림 를 포함하는 헬퍼 데이터 , 및 상기 사용자의 검증키 를 포함할 수 있다. 이때, 상기 식별 정보는 소정의 인터페이스를 통하여 상기 사용자로부터 입력받은 것이거나 입력받은 후 저장부(190)에 저장되어 있는 것일 수 있다.Also, in response to the registration information request message, the
또한, 헬퍼 데이터 및/또는 상기 사용자의 검증키 는 셋업부(110)에 의해 생성된 후 등록부(150)로 전송되거나 셋업부(110)에 의해 생성된 후 저장부(190)에 저장된 것일 수 있다. 실시예에 따라, 셋업부(110)는 생성된 키 를 등록부(150)로 전송하고, 등록부(150)는 임의의 전자 서명 기법(예컨대, ECDSA 기법)의 키 생성 알고리즘(KeyGen)을 수행하여 키 를 서명키 로 하는 검증키 를 생성할 수도 있다.Also, helper data and/or the user's verification key may be generated by the
등록부(150)에 의해 전송된 상기 등록 정보는 서버(300)에 안전하게 저장됨으로써 상기 사용자에 대한 등록 과정이 완료되게 된다. 상기 사용자에 대한 등록이 완료된 후 등록부(150)는 서버(300)로부터 등록 완료를 의미하는 메시지인 등록 완료 메시지를 수신할 수도 있다.The registration information transmitted by the
인증부(170)는 서버(300)와의 유무선 통신을 통해 사용자에 대한 인증 동작을 수행할 수 있다. 인증부(170)에 의한 인증 동작을 구체적으로 설명하면 다음과 같다.The
우선, 인증부(170)는 사용자에 대한 인증을 요청하는 메시지인 인증 요청 메시지를 서버(300)로 송신할 수 있다. 이때, 상기 인증 요청 메시지는 상기 사용자를 식별하기 위한 식별 정보(예컨대, 상기 사용자의 ID와 같은 식별자)를 포함할 수 있다.First, the
상기 인증 요청 메시지를 수신한 서버(300)는 상기 사용자의 인증을 위한 질의 메시지를 인증부(170)로 전송할 수 있다. 상기 질의 메시지는 상기 사용자, 즉 상기 식별 정보에 대응하는 헬퍼 데이터 와 질의값 을 포함할 수 있다.The
인증부(170)는 상기 질의 메시지에 응답하여 응답 메시지를 서버(300)로 송신할 수 있다. 상기 응답 메시지는 질의값 에 대한 서명 을 생성하고, 생성된 서명 를 서버(300)로 송신할 수 있다.The
질의값 에 서명 가 임의의 서명 기법(예컨대, ECDSA(Elliptic Curve Digital Signature Algorithm))의 서명 알고리즘(예컨대, ECDSA의 서명 알고리즘(Sign))을 통해 생성되는 경우, 서명을 위한 서명키 가 필요하다. 서명키 는 키 추출부(130)에 의해 생성된 키 로써, 키 추출부(130)로부터 인증부(170)로 전송될 수 있다. 또한, 키 추출부(130)는 사용자로부터 수신된 데이터를 이용하여 키 를 생성할 수 있다.query value sign on When is generated through a signature algorithm (eg, ECDSA's signature algorithm (Sign)) of an arbitrary signature technique (eg, Elliptic Curve Digital Signature Algorithm (ECDSA)), a signing key for signing is needed signing key is the key generated by the
도 3은 도 1에 도시된 사용자 단말에서 수행되는 키 생성 방법을 설명하기 위한 흐름도이다.FIG. 3 is a flowchart illustrating a key generation method performed in the user terminal shown in FIG. 1 .
우선, 키 생성 방법은 제1 사용자 단말에 의해 수행되는 셋업 단계(S11, S13, S15)와 제2 사용자 단말에 의해 수행되는 키 추출 단계(S17)를 포함할 수 있다. 상기 제1 사용자 단말과 상기 제2 사용자 단말은 동일한 단말을 의미할 수도 있으나, 실시예에 따라 서로 다른 단말을 의미할 수도 있다. 또한, 키 생성 방법을 설명함에 있어 앞선 기재와 중복되는 내용에 관하여는 그 기재를 생략하기로 한다.First, the key generation method may include a setup step (S11, S13, S15) performed by a first user terminal and a key extraction step (S17) performed by a second user terminal. The first user terminal and the second user terminal may mean the same terminal, but may mean different terminals according to embodiments. In addition, in the description of the key generation method, descriptions of contents overlapping with those described above will be omitted.
우선, 상기 제1 사용자 단말의 셋업부는 복수의 제1 사용자 데이터들 로부터 데이터의 대푯값 과 임계치 를 설정할 수 있다(S11).First, the setup unit of the first user terminal is a plurality of first user data Representative values of data from and threshold can be set (S11).
이후, 상기 셋업부는 사용자의 헬퍼 데이터 를 구성하는 임의의 값 를 선택할 수 있다(S13). 또한, 상기 셋업부는 상기 임의의 값 와 임계치 를 포함하는 사용자 헬퍼 데이터 와 제1 키 를 생성할 수 있다(S15). 셋업 단계에서 수신되는 데이터, 생성되는 데이터 등은 상기 제1 사용자 단말의 저장부에 저장될 수 있다.After that, the setup unit is a user's helper data any value that makes up can be selected (S13). In addition, the set-up unit is the arbitrary value and threshold User helper data containing and the first key can be generated (S15). Data received in the setup step, generated data, etc. may be stored in a storage unit of the first user terminal.
상기 제2 사용자 단말의 키 추출부는 상기 사용자로부터 제2 사용자 데이터 를 수신하고, 상기 제2 사용자 데이터로부터 제2 키 를 추출할 수 있다(S17). 상기 데이터의 대푯값 과 상기 제2 사용자 데이터 의 거리는 임계치 보다 작기 때문에 제2 키 와 제1 키 는 동일한 값을 가질 수 있다.The key extracting unit of the second user terminal receives the second user data from the user. receiving a second key from the second user data can be extracted (S17). Representative values of the data and the second user data distance of the threshold 2nd key because less than and the first key may have the same value.
도 4는 도 1에 도시된 시스템 상에서 수행되는 사용자 인증 방법을 설명하기 위한 흐름도이다.FIG. 4 is a flowchart illustrating a user authentication method performed on the system shown in FIG. 1 .
도 1 내지 도 4를 참조하면, 퍼지 데이터(예컨대, 사용자의 생체 데이터)를 이용한 인증 방법은 사용자 등록 단계(S100)와 사용자 인증 단계(S300)를 포함한다.1 to 4 , the authentication method using fuzzy data (eg, biometric data of a user) includes a user registration step S100 and a user authentication step S300 .
사용자 등록 단계(S100)는 서버(300)로부터 소정의 컨텐츠나 서비스를 제공받기 위해 사용자를 서버(300)에 등록하는 단계이며, 사용자 인증 단계(S300)는 서버(300)로부터 소정의 컨텐츠나 서비스를 제공받기 위해 사용자를 인증하기 위한 서버(300)로부터 인증을 받는 단계를 의미한다. 인증이 완료된 사용자는 서버(300)로부터 콘텐츠나 서비스를 제공받을 수 있다.The user registration step (S100) is a step of registering a user with the
사용자 등록 단계(S100)와 사용자 인증 단계(S300)의 구체적인 내용은 도 5와 도 6을 통해 설명하기로 한다.Specific details of the user registration step ( S100 ) and the user authentication step ( S300 ) will be described with reference to FIGS. 5 and 6 .
도 5는 도 4에 도시된 사용자 등록 단계를 설명하기 위한 흐름도이다.FIG. 5 is a flowchart for explaining the user registration step shown in FIG. 4 .
사용자는 서버(300)로부터 컨텐츠나 서비스를 제공받기 위해 서버(300)에 등록하여야 한다. 이를 위해, 사용자 단말(100)의 등록부(150)는 사용자에 대한 등록을 요청하는 등록 요청 메시지를 서버(300)로 송신할 수 있다(S110).A user must register with the
서버(300)는 사용자 단말(100)로부터 수신된 상기 등록 요청 메시지에 응답하여, 등록 대상인 사용자의 등록 정보를 요청하는 등록 정보 요청 메시지를 사용자 단말(100)로 송신하고, 사용자 단말(100)의 등록부(150)는 상기 등록 정보 요청 메시지를 수신할 수 있다(S130).In response to the registration request message received from the
등록부(150)는 상기 등록 정보 요청 메시지에 응답하여, 상기 사용자의 등록 정보를 서버(300)로 송신할 수 있다(S150). 상기 등록 정보는 상기 사용자를 서버(300)에 등록하기 위해 필요한 정보로써, 식별 정보, 헬퍼 데이터, 및 검증키를 포함할 수 있다. 상기 식별 정보는 상기 사용자를 식별하기 위한 정보로 사용자의 ID와 같은 식별자를 의미하고, 상기 헬퍼 데이터는 사용자 인증 단계에서 상기 사용자 단말(100)이 응답 메시지를 생성하는 과정에서 사용하는 데이터를 의미하고, 상기 검증키는 사용자 인증 단계에서 사용자 단말(100)이 서버(300)로 송신한 서명을 검증하기 위한 키를 의미할 수 있다.The
상기 등록 정보를 수신한 서버(300)는 상기 등록 정보를 내부의 저장 장치에 저장한 후 등록 완료 메시지를 사용자 단말(100)로 송신할 수 있다(S170).After receiving the registration information, the
상술한 과정을 통해, 상기 사용자에 대한 등록은 완료될 수 있다.Through the above-described process, registration for the user may be completed.
도 6은 도 4에 도시된 사용자 인증 단계를 설명하기 위한 흐름도이다. 사용자 등록 단계를 수행하는 사용자 단말과 사용자 인증 단계를 수행하는 사용자 단말은 하나의 단말이거나 서로 다른 단말일 수 있다. 즉, 사용자는 사용자 등록 단계를 수행한 사용자 단말을 이용하거나 사용자 등록 단계를 수행한 사용자 단말과는 다른 사용자 단말을 이용하여 사용자 인증 단계를 수행할 수 있다.FIG. 6 is a flowchart for explaining the user authentication step shown in FIG. 4 . The user terminal performing the user registration step and the user terminal performing the user authentication step may be one terminal or different terminals. That is, the user may perform the user authentication step by using a user terminal that has performed the user registration step or using a user terminal different from the user terminal that has performed the user registration step.
사용자가 서버(300)로부터 소정의 컨텐츠나 서비스를 제공받기 위해서는 사용자에 대한 인증을 완료하여야 한다. 이를 위해, 사용자 단말(100)의 인증부(170)는 상기 사용자에 대한 인증을 요청하는 인증 요청 메시지를 서버(300)로 송신할 수 있다(S310). 이때, 상기 인증 요청 메시지는 상기 사용자를 식별하기 위한 식별 정보(예컨대, 상기 사용자의 ID와 같은 식별자)를 포함할 수 있다.In order for a user to receive a predetermined content or service from the
사용자 단말(100)로부터 상기 인증 요청 메시지를 수신한 서버(300)는 질의 메시지를 사용자 단말(100)로 송신할 수 있다(S330). 상기 질의 메시지는 헬퍼 데이터 및/또는 질의값 을 포함할 수 있다. 헬퍼 데이터 는 사용자 등록 단계에서 사용자 단말(100)로부터 수신되어 서버(300)에 저장되어 있는 정보일 수 있다. 사용자 등록 단계를 수행한 단말과 사용자 인증 단계를 수행하는 사용자 단말이 동일한 경우, 헬퍼 데이터 는 사용자 단말(100) 내에 저장되어 있을 수 있어 별도의 송신 과정이 불필요할 수 있다. 그러나, 사용자 등록 단계를 수행한 사용자 단말과 사용자 인증 단계를 수행하는 사용자 단말이 다를 경우, 헬퍼 데이터 는 사용자 단말 내에 존재하지 않기 때문에, 사용자 인증을 수행하는 사용자 단말은 서버(300)로부터 헬퍼 데이터 를 수신하여야 한다. 즉, 사용자 등록 단계와 사용자 인증 단계를 동일한 사용자 단말이 수행하는 경우, 상기 질의 메시지에는 헬퍼 데이터 가 포함되어 있지 않을 수도 있다.Upon receiving the authentication request message from the
상기 질의 메시지를 수신한 인증부(170)는 응답 메시지를 생성하고, 상기 응답 메시지를 서버(300)로 송신할 수 있다(S350). 상기 응답 메시지에는 질의값 에 대한 서명 이 포함될 수 있다. 서명 을 생성하기 위해 필요한 서명키 는 키 추출부(130)에 의해 생성된 후 인증부(170)로 전송될 수 있다.Upon receiving the query message, the
사용자 단말(100)로부터 서명 을 수신한 서버(300)는 미리 저장되어 있는 검증키 를 이용하여 서명 을 검증할 수 있다. 실시예에 따라, 서버(300)는 ECDSA 기법의 검증 알고리즘(Verify)을 이용하여 서명 을 검증할 수 있다. 서명 에 대한 검증이 성공적으로 완료된 경우, 서버(300)는 인증 완료 메시지를 사용자 단말(100)로 송신할 수 있다.signature from the
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시 예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, ALU(Arithmetic Logic Unit), 디지털 신호 프로세서(Digital Signal Processor), 마이크로컴퓨터, FPA(Field Programmable array), PLU(Programmable Logic Unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(Operation System, OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술 분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(Processing Element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(Parallel Processor)와 같은, 다른 처리 구성(Processing Configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a set of hardware components and software components. For example, the devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA), and a PLU. It may be implemented using one or more general purpose computers or special purpose computers, such as a Programmable Logic Unit (Programmable Logic Unit), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other Processing Configurations are also possible, such as a Parallel Processor.
소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, and configure the processing device to operate as desired or independently or collectively processed You can command the device. The software and/or data may be any type of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or provide instructions or data to the processing device. , or may be permanently or temporarily embodied in a transmitted signal wave (Signal Wave). The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 좋ㅂ하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시 예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시 예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or preferably. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and used by 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 recording media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - Includes hardware devices specially configured to store and execute program instructions, such as Magneto-optical Media, 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. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to the embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. For example, the described techniques are performed in an order different from the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result. Accordingly, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.
10 : 시스템
100 : 사용자 단말
110 : 셋업부
130 : 키 추출부
150 : 등록부
170 : 인증부
300 : 서버10: system
100: user terminal
110: setup unit
130: key extraction unit
150: register
170: authentication unit
300 : server
Claims (9)
보안 상수(), 시스템 파라미터(), 및 () 개의 제1 사용자 데이터들(, , 은 임의의 자연수)을 이용하여 헬퍼 데이터()와 제1 키()를 생성하는 셋업 단계; 및
상기 시스템 파라미터(), 상기 헬퍼 데이터(), 및 제2 사용자 데이터()를 이용하여 상기 제1 키()와 동일한 값을 갖는 제2 키()를 추출하는 키 추출 단계를 포함하고,
상기 헬퍼 데이터()는 임계치()와 임의의 값()을 포함하는,
키를 추출하는 방법.
In the method of extracting the same key from fuzzy data including noise, performed in a user terminal,
security constant ( ), system parameters ( ), and ( ) first user data ( , , is an arbitrary natural number) using helper data ( ) and the first key ( ) to create a setup step; and
The system parameters ( ), the helper data ( ), and the second user data ( ) using the first key ( ) and the second key ( ) comprising a key extraction step of extracting,
The helper data ( ) is the threshold ( ) and any value ( ) containing,
How to extract the key.
상기 셋업 단계는,
상기 제1 사용자 데이터들을 대표하는 제1 대푯값()과 상기 임계치()를 설정하는 단계;
상기 임의의 값()을 선택하는 단계; 및
상기 제1 키()를 생성하는 단계를 포함하는,
키를 추출하는 방법.
According to claim 1,
The setup step is
A first representative value representing the first user data ( ) and the threshold ( ) to set;
Any value above ( ) to select; and
the first key ( ) comprising the step of creating
How to extract the key.
상기 제1 대푯값()과 상기 임계치()를 설정하는 단계는,
상기 제1 사용자 데이터들 중 이상치(Outlier)를 제거하는 단계;
이상치가 제거된 제1 사용자 데이터들(, )의 평균, 중앙값, 및 최빈값 중 어느 하나를 상기 제1 대푯값()으로 설정하는 단계;
제1 수학식을 이용하여 제2 대푯값()을 설정하는 단계;
모든 ()에 대하여, 제1 계산값()을 계산하는 단계;
모든 ()에 대하여, 제2 계산값()과 제3 계산값()을 계산하는 단계; 및
모든 ()에 대하여, ()가 더 작은 를 로 설정하거나, 가 더 큰 를 로 설정하는 단계를 포함하고,
상기 제1 수학식은 이고,
상기 는 양의 실수인,
키를 추출하는 방법.
3. The method of claim 2,
The first representative value ( ) and the threshold ( ) is set,
removing an outlier among the first user data;
The first user data from which the outlier has been removed ( , Any one of the mean, median, and mode of the first representative value ( ) to set;
Using the first equation, the second representative value ( ) to set;
every ( ) for the first calculated value ( ) to calculate;
every ( ) for the second calculated value ( ) and the third calculated value ( ) to calculate; and
every ( )about, ( ) is smaller cast or set to is bigger cast comprising the steps of setting
The first equation is ego,
remind is a positive real number,
How to extract the key.
상기 제1 키()를 생성하는 단계는,
모든 ()에 대하여, 제4 계산값()을 계산하는 단계;
모든 ()에 대하여, 제5 계산값()을 계산하는 단계;
제6 계산값()을 계산하는 단계; 및
상기 시스템 파라미터()에 포함된 암호학적인 해쉬 함수()를 이용하여 상기 제1 키()를 생성하는 단계를 포함하고,
상기 시스템 파라미터()에 포함된 상기 는 를 키로 하는 의사난수함수(Pseudo-random function, PRE)이고,
상기 는 반올림 연산(Rounding operation)을 의미하는,
키를 추출하는 방법.
4. The method of claim 3,
the first key ( ) to create the step,
every ( ) for the fourth calculated value ( ) to calculate;
every ( ) for the fifth calculated value ( ) to calculate;
6th calculated value ( ) to calculate; and
The system parameters ( ) in the cryptographic hash function ( ) using the first key ( ) comprising the steps of creating
The system parameters ( ) included in the above Is is a pseudo-random function (PRE) with a key,
remind means a rounding operation,
How to extract the key.
상기 키 추출 단계는,
모든 ()에 대하여, 제1 계산값()을 계산하는 단계;
모든 ()에 대하여, 제2 계산값()을 계산하는 단계;
제3 계산값()을 계산하는 단계; 및
상기 시스템 파라미터()에 포함된 암호학적인 해쉬 함수()를 이용하여 상기 제2 키()를 생성하는 단계를 포함하고,
상기 시스템 파라미터()에 포함된 는 를 키로 하는 의사난수함수이고,
상기 는 반올림 연산(Rounding operation)을 의미하는,
키를 추출하는 방법.
3. The method of claim 2,
The key extraction step is
every ( ) for the first calculated value ( ) to calculate;
every ( ) for the second calculated value ( ) to calculate;
the third calculated value ( ) to calculate; and
The system parameters ( ) in the cryptographic hash function ( ) using the second key ( ) comprising the steps of creating
The system parameters ( ) included in Is is a pseudo-random function with a key,
remind means a rounding operation,
How to extract the key.
상기 적어도 하나의 사용자 단말에 포함되는 제1 사용자 단말이 상기 사용자를 식별하기 위한 식별 정보, 헬퍼 데이터(), 및 검증키()를 상기 서버로 송신하는 사용자 등록 단계; 및
상기 적어도 하나의 사용자 단말에 포함되는 제2 사용자 단말이 상기 서버로부터 수신된 질의 메시지에 대응하는 응답 메시지를 상기 서버로 송신하는 사용자 인증 단계를 포함하고,
상기 헬퍼 데이터()는 임계치()와 임의의 값()을 포함하고,
상기 응답 메시지는 상기 질의 메시지에 포함된 질의값()에 대한 서명()을 포함하는,
사용자를 인증하는 방법.
In the method of authenticating a user, performed between at least one user terminal and a server,
Identification information, helper data ( ), and the verification key ( ) a user registration step of transmitting to the server; and
a user authentication step in which a second user terminal included in the at least one user terminal transmits a response message corresponding to the query message received from the server to the server,
The helper data ( ) is the threshold ( ) and any value ( ), including
The response message is a query value ( ) for signature ( ) containing,
How to authenticate users.
상기 사용자 등록 단계는,
상기 제1 사용자 단말이 상기 서버로 등록 요청 메시지를 송신하는 단계;
상기 제1 사용자 단말이 상기 서버로부터 수신된 등록 정보 요청 메시지에 대응하는 등록 정보를 상기 서버로 송신하는 단계를 포함하고,
상기 등록 정보는 상기 식별 정보, 상기 헬퍼 데이터(), 및 상기 검증키()를 포함하고,
상기 헬퍼 데이터()는,
() 개의 제1 사용자 데이터들(, , 은 임의의 자연수)을 대표하는 제1 대푯값()과 임계치()를 설정하는 단계; 및
상기 임의의 값()을 선택하는 단계를 수행함으로써 생성되고,
상기 제1 대푯값()과 상기 임계치()는,
상기 제1 사용자 데이터들 중 이상치(Outlier)를 제거하는 단계;
이상치가 제거된 제1 사용자 데이터들(, )의 평균, 중앙값, 및 최빈값 중 어느 하나를 상기 제1 대푯값()으로 설정하는 단계;
제1 수학식을 이용하여 제2 대푯값()을 설정하는 단계;
모든 ()에 대하여, 제1 계산값()을 계산하는 단계;
모든 ()에 대하여, 제2 계산값()과 제3 계산값()을 계산하는 단계; 및
모든 ()에 대하여, ()가 더 작은 를 로 설정하거나, 가 더 큰 를 로 설정하는 단계를 수행함으로써 생성되고,
상기 제1 수학식은 이고,
상기 검증키()는,
모든 ()에 대하여, 제4 계산값()을 계산하는 단계;
모든 ()에 대하여, 제5 계산값()을 계산하는 단계;
제6 계산값()을 계산하는 단계; 및
시스템 파라미터()에 포함된 암호학적인 해쉬 함수()를 이용하여 제1 키()를 생성하는 단계를 수행함으로써 생성되고,
상기 시스템 파라미터()에 포함된 상기 는 를 키로 하는 의사난수함수이고,
상기 검증키()는 상기 제1 키()이고,
상기 는 반올림 연산(Rounding operation)을 의미하는,
사용자를 인증하는 방법.
7. The method of claim 6,
The user registration step is
transmitting, by the first user terminal, a registration request message to the server;
and transmitting, by the first user terminal, registration information corresponding to the registration information request message received from the server to the server,
The registration information includes the identification information, the helper data ( ), and the verification key ( ), including
The helper data ( )Is,
( ) first user data ( , , is the first representative value ( ) and the threshold ( ) to set; and
Any value above ( ) is created by performing the step of selecting
The first representative value ( ) and the threshold ( )Is,
removing an outlier among the first user data;
The first user data from which the outlier has been removed ( , Any one of the mean, median, and mode of the first representative value ( ) to set;
Using the first equation, the second representative value ( ) to set;
every ( ) for the first calculated value ( ) to calculate;
every ( ) for the second calculated value ( ) and the third calculated value ( ) to calculate; and
every ( )about, ( ) is smaller cast or set to is bigger cast It is created by performing the steps of setting
The first equation is ego,
the verification key ( )Is,
every ( ) for the fourth calculated value ( ) to calculate;
every ( ) for the fifth calculated value ( ) to calculate;
6th calculated value ( ) to calculate; and
system parameters ( ) in the cryptographic hash function ( ) to the first key ( ) is created by performing the steps of generating
The system parameters ( ) included in the above Is is a pseudo-random function with a key,
the verification key ( ) is the first key ( )ego,
remind means a rounding operation,
How to authenticate users.
상기 사용자 인증 단계는,
상기 제2 사용자 단말이 상기 식별 정보를 포함하는 인증 요청 메시지를 상기 서버로 송신하는 단계;
상기 제2 사용자 단말이 상기 헬퍼 데이터()와 질의값()을 포함하는 질의 메시지를 상기 서버로부터 수신하는 단계; 및
상기 제2 사용자 단말이 상기 질의 메시지에 대응하는 응답 메시지를 상기 서버로 송신하는 단계를 포함하고,
상기 응답 메시지는 상기 질의값()에 대한 서명()을 포함하고,
상기 서명()을 생성하기 위한 서명키()는 시스템 파라미터(), 상기 헬퍼 데이터(), 및 제2 사용자 데이터()를 이용하여 생성되고,
상기 서명키()는,
모든 ()에 대하여, 제1 계산값()을 계산하는 단계;
모든 ()에 대하여, 제2 계산값()을 계산하는 단계;
제3 계산값()을 계산하는 단계; 및
시스템 파라미터()에 포함된 암호학적인 해쉬 함수()를 이용하여 제2 키()를 생성하는 단계를 수행함으로써 생성되고,
상기 서명키()는 상기 제2 키()이고,
상기 시스템 파라미터()에 포함된 상기 는 를 키로 하는 의사난수함수이고,
상기 는 반올림 연산(Rounding operation)을 의미하는,
사용자를 인증하는 방법.
7. The method of claim 6,
The user authentication step is
transmitting, by the second user terminal, an authentication request message including the identification information to the server;
The second user terminal is the helper data ( ) and the query value ( ) receiving a query message including a from the server; and
and transmitting, by the second user terminal, a response message corresponding to the query message to the server,
The response message is the query value ( ) for signature ( ), including
the signature ( ) to generate a signing key ( ) is the system parameter ( ), the helper data ( ), and the second user data ( ) is created using
the signing key ( )Is,
every ( ) for the first calculated value ( ) to calculate;
every ( ) for the second calculated value ( ) to calculate;
the third calculated value ( ) to calculate; and
system parameters ( ) in the cryptographic hash function ( ) to the second key ( ) is created by performing the steps of generating
the signing key ( ) is the second key ( )ego,
The system parameters ( ) included in the above Is is a pseudo-random function with a key,
remind means a rounding operation,
How to authenticate users.
상기 서버는 상기 검증키()를 이용하여 상기 서명()을 검증하는,
사용자를 인증하는 방법.9. The method of claim 8,
The server is the verification key ( ) to the signature ( ) to verify,
How to authenticate users.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190055428 | 2019-05-13 | ||
KR20190055428 | 2019-05-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200131716A KR20200131716A (en) | 2020-11-24 |
KR102322435B1 true KR102322435B1 (en) | 2021-11-10 |
Family
ID=73679420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190088870A KR102322435B1 (en) | 2019-05-13 | 2019-07-23 | Method for extracting a same key from fuzzy data and method for authenticating user using the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102322435B1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100878906B1 (en) * | 2007-06-22 | 2009-01-15 | 성균관대학교산학협력단 | Method and system for filtering of message in sensor network |
CN110166246B (en) | 2016-03-30 | 2022-07-08 | 创新先进技术有限公司 | Identity registration and authentication method and device based on biological characteristics |
KR101853610B1 (en) | 2017-11-07 | 2018-05-02 | 주식회사 시큐브 | Digital signature authentication system based on biometric information and digital signature authentication method thereof |
KR102181340B1 (en) * | 2018-05-11 | 2020-11-20 | 인하대학교 산학협력단 | Method and system for generating cryptographic key using biometrics and fuzzy vault |
-
2019
- 2019-07-23 KR KR1020190088870A patent/KR102322435B1/en active IP Right Grant
Non-Patent Citations (2)
Title |
---|
Minhye Seo 외 5명, Construction of a New Biometric-Based Key Derivation Function and Its Application, Hindawi Security and Communication Networks, Volume 2018 (2018.)* |
Nan Li 외 4명, Fuzzy Extractors for Biometric Identification, University of Wollongong Research Online (2017.)* |
Also Published As
Publication number | Publication date |
---|---|
KR20200131716A (en) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6882254B2 (en) | Safety verification methods based on biological characteristics, client terminals, and servers | |
US9871783B2 (en) | Universal enrollment using biometric PKI | |
Das et al. | A secure and efficient uniqueness-and-anonymity-preserving remote user authentication scheme for connected health care | |
Gunasinghe et al. | PrivBioMTAuth: Privacy preserving biometrics-based and user centric protocol for user authentication from mobile phones | |
JP5710075B2 (en) | Certificate validation | |
KR101755995B1 (en) | Method and system for feature vector based remote biometric verification using homomorphic encryption | |
Kim et al. | Cryptanalysis and improvement of a biometrics-based multi-server authentication with key agreement scheme | |
EP3121991B1 (en) | System and method of user authentication using digital signatures | |
US11227037B2 (en) | Computer system, verification method of confidential information, and computer | |
EP2991263B1 (en) | Offline pin authentication method and system for ic card | |
Ali et al. | Three-factor-based confidentiality-preserving remote user authentication scheme in multi-server environment | |
US11546164B2 (en) | Verification of biometric templates for privacy preserving authentication | |
US20150244695A1 (en) | Network authentication method for secure user identity verification | |
KR102274132B1 (en) | User authentication server that performs verification of electronic signature data generated based on biometric authentication in association with a plurality of verification servers and operating method thereof | |
KR101739203B1 (en) | Password-based user authentication method using one-time private key-based digital signature and homomorphic encryption | |
CN101964789A (en) | Method and system for safely accessing protected resources | |
Giri et al. | A novel and efficient session spanning biometric and password based three-factor authentication protocol for consumer USB mass storage devices | |
Agrawal et al. | Game-set-MATCH: Using mobile devices for seamless external-facing biometric matching | |
KR101579923B1 (en) | Method for generating one-time password and apparatus for performing the same | |
Verma et al. | A novel model to enhance the data security in cloud environment | |
CN114581091A (en) | Identity authentication method and device, computer equipment and storage medium | |
KR102322435B1 (en) | Method for extracting a same key from fuzzy data and method for authenticating user using the same | |
CN106533685B (en) | Identity authentication method, device and system | |
KR101659226B1 (en) | Method and system for remote biometric verification using fully homomorphic encryption | |
KR20210072711A (en) | Method and apparatus for mutual authentication between internet of things device and trusted server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |