Nothing Special   »   [go: up one dir, main page]

KR20230109526A - Device and method for multi-factor authentication using bitwise fully homomorphic envryption - Google Patents

Device and method for multi-factor authentication using bitwise fully homomorphic envryption Download PDF

Info

Publication number
KR20230109526A
KR20230109526A KR1020220044464A KR20220044464A KR20230109526A KR 20230109526 A KR20230109526 A KR 20230109526A KR 1020220044464 A KR1020220044464 A KR 1020220044464A KR 20220044464 A KR20220044464 A KR 20220044464A KR 20230109526 A KR20230109526 A KR 20230109526A
Authority
KR
South Korea
Prior art keywords
user
authentication
ciphertext
terminal
binary code
Prior art date
Application number
KR1020220044464A
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 고려대학교 산학협력단
Publication of KR20230109526A publication Critical patent/KR20230109526A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic 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/3231Biological data, e.g. fingerprint, voice or retina
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

생체 인식 기반 멀티 팩터 인증 시스템 및 인증 장치가 개시된다. 상기 생체 인식 기반 멀티 팩터 인증 시스템은 사용자의 제1 생체 데이터에 대응하는 제1 암호문을 포함하는 등록 요청 메시지를 서버로 송신하는 제1 단말, 사용자의 제2 생체 데이터에 대응하는 제2 암호문을 포함하는 인증 요청 메시지를 상기 서버로 송신하는 제2 단말, 및 상기 제1 단말로부터 수신되는 상기 등록 요청 메시지에 응답하여 상기 사용자의 생체 데이터를 등록하고, 상기 제2 단말로부터 수신되는 인증 요청 메시지에 응답하여 상기 사용자에 대한 인증을 수행하는 상기 서버를 포함하고, 상기 서버는 상기 제1 암호문과 상기 제2 암호문에 대한 비트 단위 연산을 통해 인증 동작을 수행한다.A biometric based multi-factor authentication system and authentication device are disclosed. The biometric-based multi-factor authentication system includes a first terminal that transmits a registration request message including a first cryptogram corresponding to first biometric data of a user to a server, and a second cryptogram corresponding to second biometric data of a user. A second terminal transmits an authentication request message to the server, registers the biometric data of the user in response to the registration request message received from the first terminal, and responds to the authentication request message received from the second terminal and the server performing authentication for the user by performing an authentication operation on the first cipher text and the second cipher text through a bitwise operation.

Description

비트 단위 기반 완전동형암호를 이용한 멀티 팩터 인증 장치 및 방법{DEVICE AND METHOD FOR MULTI-FACTOR AUTHENTICATION USING BITWISE FULLY HOMOMORPHIC ENVRYPTION}Multi-factor authentication device and method using bit-based full homomorphic encryption

본 발명은 멀티 팩터 인증 방법에 관한 것으로, 특히 비트 단위 기반 완전동형암호를 이용한 생체인식 기반 멀티 팩터 인증 장치 및 방법에 관한 것이다.The present invention relates to a multi-factor authentication method, and more particularly, to an apparatus and method for biometric-based multi-factor authentication using bit-based fully homomorphic encryption.

최근, 클라우드가 사용자가 원하는 서비스를 대행해 주는 클라우드 기반 서비스 기술이 급증하고 있다. 그러나, 사용자의 데이터를 클라우드와 함께 공유함으로써, 사용자의 데이터 프라이버시에 대한 문제가 발생한다. 이에 대응하여, 동형암호 기술(homomorphic encryption)을 사용하면 서버는 사용자의 데이터에 대해 아무런 정보를 얻지 못하고, 다만 사용자가 요청한 쿼리만을 수행하게 된다. 클라우드는 사용자에게 결괏값을 돌려주고, 사용자는 개인정보를 노출하지 않고 결괏값을 얻을 수 있게 된다.Recently, a cloud-based service technology in which a cloud acts as an agent for a service desired by a user is rapidly increasing. However, by sharing the user's data with the cloud, a problem regarding the user's data privacy arises. Correspondingly, with homomorphic encryption, the server does not obtain any information about the user's data, but only performs the query requested by the user. The cloud returns the result value to the user, and the user can obtain the result value without exposing personal information.

본 발명에서는 동형암호를 통해 사용자 데이터 프라이버시를 보존하면서 논리 게이트를 바탕으로 한 알고리즘을 이용해 저장된 생체 기반 데이터와 새로 입력한 생체 기반 데이터 사이의 유사도를 비교하여 인증 가능 여부를 진단할 수 있는 장치 또는 방법론을 다룬다.In the present invention, an apparatus or methodology capable of diagnosing whether authentication is possible by comparing the degree of similarity between stored biometric-based data and newly entered biometric-based data using an algorithm based on logic gates while preserving user data privacy through homomorphic encryption deals with

멀티 팩터 인증은 비밀번호와 같이 해당 이용자만이 알고 있는 요소(지식기반), 하드웨어 토큰과 같이 해당 이용자만이 갖고 있는 요소(소유기반), 생체인식 정보와 같이 해당 이용자만의 고유 요소(속성기반), 어떤 인물의 반복된 행동이나 기기 사용 방식(행위기반), GPS나 이동통신과 같이 특정 장소(장소기반) 등의 인증 요소 중 두 가지 이상의 인증 수단을 조합하여 사용자를 인증하는 접근 제어 방식을 말한다. 서로 다른 방식에 속하는 인증 요소를 조합하는 이 인증 방식을 통해 보안을 더 강화할 수 있다.Multi-factor authentication is an element known only to the user, such as a password (knowledge-based), an element possessed only by the user, such as a hardware token (possession-based), and an element unique to the user, such as biometric information (attribute-based). It refers to an access control method that authenticates a user by combining two or more authentication methods among authentication factors such as repeated actions of a person, method of using a device (action-based), and specific location (location-based) such as GPS or mobile communication. . Security can be further strengthened through this authentication method that combines authentication factors belonging to different methods.

본 발명이 이루고자 하는 기술적인 과제는 사용자의 데이터 프라이버시를 보호할 수 있는 비트 단위 기반 완전동형암호를 이용한 멀티 팩터 인증 장치 및 방법을 제공하는 것이다.A technical problem to be achieved by the present invention is to provide a multi-factor authentication apparatus and method using bit-based fully homomorphic encryption capable of protecting user data privacy.

본 발명의 일 실시예에 따른 생체 인식 기반 멀티 팩터 인증 시스템은 사용자의 제1 생체 데이터에 대응하는 제1 암호문을 포함하는 등록 요청 메시지를 서버로 송신하는 제1 단말, 사용자의 제2 생체 데이터에 대응하는 제2 암호문을 포함하는 인증 요청 메시지를 상기 서버로 송신하는 제2 단말, 및 상기 제1 단말로부터 수신되는 상기 등록 요청 메시지에 응답하여 상기 사용자의 생체 데이터를 등록하고, 상기 제2 단말로부터 수신되는 인증 요청 메시지에 응답하여 상기 사용자에 대한 인증을 수행하는 상기 서버를 포함하고, 상기 서버는 상기 제1 암호문과 상기 제2 암호문에 대한 비트 단위 연산을 통해 인증 동작을 수행한다.In a biometric based multi-factor authentication system according to an embodiment of the present invention, a first terminal that transmits a registration request message including a first cryptogram corresponding to a user's first biometric data to a server, and a user's second biometric data A second terminal that transmits an authentication request message including a corresponding second cipher text to the server, registers the user's biometric data in response to the registration request message received from the first terminal, and receives from the second terminal and the server performing authentication for the user in response to a received authentication request message, wherein the server performs an authentication operation through a bitwise operation on the first cipher text and the second cipher text.

본 발명의 일 실시예에 따른 인증 장치는 제1 단말로부터 사용자의 제1 생체 데이터에 대응하는 제1 암호문을 포함하는 등록 요청 메시지를 수신하여 상기 사용자에 대한 등록을 수행하는 등록부, 및 상기 제2 단말로부터 상기 사용자의 제2 생체 데이터에 대응하는 제2 암호문을 포함하는 인증 요청 메시지를 수신하여 상기 사용자에 대한 인증을 수행하는 인증부를 포함하고, 상기 인증부는 비트 단위로 상기 제1 암호문과 상기 제2 암호문에 포함되는 대응되는 비트에 대한 배타적 논리합(XOR) 연산을 수행하는 XOR 연산부, 상기 XOR 연산 결과에 대한 덧셈 연산을 수행하는 덧셈 연산부, 상기 덧셈 연산의 결과를 상기 제1 이진 코드 또는 상기 제2 이진 코드에 포함되는 비트의 수로 나누는 나눗셈 연산을 수행하는 나눗셈 연산부, 및 상기 나눗셈 연산의 결과를 미리 정해진 기준값과 비교 연산을 수행하여 인증 결과를 도출하는 비교 연산부를 포함한다.An authentication device according to an embodiment of the present invention includes a registration unit configured to register a user by receiving a registration request message including a first cryptogram corresponding to first biometric data of a user from a first terminal, and the second and an authentication unit configured to receive an authentication request message including a second ciphertext corresponding to second biometric data of the user from a terminal and perform authentication of the user, wherein the authentication unit includes the first ciphertext and the first ciphertext in units of bits. 2 XOR operation unit for performing an exclusive OR (XOR) operation on the corresponding bits included in the ciphertext, an addition operation unit for performing an addition operation on the XOR operation result, the result of the addition operation to the first binary code or the first binary code 2 It includes a division operation unit for performing a division operation divided by the number of bits included in the binary code, and a comparison operation unit for deriving an authentication result by performing a comparison operation between the result of the division operation and a predetermined reference value.

본 발명의 실시예에 멀티 팩터 인증 장치 및 방법에 의할 경우, 민감한 생체 데이터를 아무에게도 공개하지 않고 안전하게 인증받을 수 있는 효과가 있다.In the case of the multi-factor authentication apparatus and method according to an embodiment of the present invention, there is an effect of securely authenticating sensitive biometric data without disclosing it to anyone.

또한, 클라우드는 복호화 없이 매칭 알고리즘을 수행하여 암호화된 매칭 결과를 출력할 수 있다. 이에 따라 사용자에게 별도의 데이터 사용 동의 없이 서비스를 제공할 수 있기 때문에 법적으로 데이터 프라이버시에 대한 우려를 해소할 수 있다.In addition, the cloud may output an encrypted matching result by performing a matching algorithm without decryption. Accordingly, since the service can be provided to the user without separate consent for data use, concerns over data privacy can be legally resolved.

본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 두 암호문을 대상으로 배타적 논리합 연산을 수행하는 과정을 설명하기 위한 도면이다.
도 2는 평문 이진 나눗셈을 설명하기 위함 흐름도이다.
도 3은 비트 단위 동형암호를 위한 실수 표현을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따른 인증 시스템을 도시한다.
도 5는 도 4에 도시된 인증 시스템에서 수행되는 인증 동작을 설명하기 위한 개념도이다.
도 6은 도 4에 도시된 제1 단말의 기능 블럭도이다.
도 7은 도 4에 도시된 제2 단말의 기능 블럭도이다.
도 8은 도 4에 도시된 서버의 기능 블럭도이다.
A detailed description of each drawing is provided in order to more fully understand the drawings cited in the detailed description of the present invention.
1 is a diagram for explaining a process of performing an exclusive OR operation on two ciphertexts.
2 is a flowchart for explaining plaintext binary division.
3 is a diagram for explaining a real number representation for bitwise homomorphic encryption.
4 illustrates an authentication system according to one embodiment of the present invention.
FIG. 5 is a conceptual diagram for explaining an authentication operation performed in the authentication system shown in FIG. 4 .
FIG. 6 is a functional block diagram of a first terminal shown in FIG. 4 .
FIG. 7 is a functional block diagram of a second terminal shown in FIG. 4 .
8 is a functional block diagram of the server 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 illustrated 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 may be embodied in many forms and are not limited to the embodiments described herein.

본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Embodiments according to the concept of the present invention can apply various changes and can have various forms, so the embodiments are illustrated in the drawings and described in detail in this specification. 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 components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another, e.g. without departing from the scope of rights according to the concept of the present invention, a first component may be termed a second component and similarly a second component may be termed a second component. A component may also be referred to as a first component.

어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, but other elements may exist in the middle. It should be. On the other hand, when a component is referred to as “directly connected” or “directly connected” to another component, it should be understood that no other component exists in the middle. Other expressions describing the relationship between components, such as "between" and "directly between" or "adjacent to" and "directly adjacent to", etc., should be interpreted similarly.

본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in this specification are only used to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "comprise" or "having" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in this specification, but one or more other features It should 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 the present invention belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, it should not be interpreted in an ideal or excessively formal meaning. don't

이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.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.

우선 본 발명을 설명하기 위해 사용된 기호에 대한 설명(또는 정의)과 (완전) 동형암호((Fully) Homomorphic Encryption) 함수에 대해 설명한다.First, a description (or definition) of symbols used to explain the present invention and a (Fully) Homomorphic Encryption function will be described.

은 배열(벡터)의 길이(length)를 나타내며, 암호문(c)은 비트의 로 표현된다. 여기서, ci는 한 개의 평문(xi) 비트가 암호화된 것을 의미한다. 평문 역시 비트의 로 나타낼 수 있다. Enc는 암호화를 의미하고, Dec는 복호화를 의미한다. 용어 bitwise는 특정 연산을 각 배열의 요소들 모두에게 각각 적용하는 것을 의미한다. represents the length of the array (vector), and the ciphertext (c) is bit of is expressed as Here, c i means that one plaintext (x i ) bit is encrypted. Plain text too bit of can be expressed as Enc means encryption and Dec means decryption. The term bitwise means to apply a specific operation to each of the elements of each array.

또한, HE는 동형암호 게이트(함수 또는 알고리즘을 의미할 수 있음)들과 일반 게이트들을 구분하기 위한 표시이다. 암호문의 각 원소는 LWE(Learning With Errors) 또는 RLWE(Ring Learning With Errors) 기반의 암호문으로, 샘플링된 각각의 원소들에 대해 잡음(noise)이 더해져 있다. 암호문 간에 연산을 수행하면, 출력되는 암호문은 기존의 암호문보다 잡음이 더해져 출력되고, 암호문에 일정 수준 이상의 잡음이 포함되면 암호문을 복호화 하더라도 정확한 값을 얻기 어렵다. 따라서, 일반적으로 완전동형암호 게이트는 연산 이후 잡음을 제거하기 위한 부트스트래핑(bootstrapping)이 필요하다.Also, HE is a mark for distinguishing between homomorphic encryption gates (which may mean functions or algorithms) and general gates. Each element of the ciphertext is LWE (Learning With Errors) or RLWE (Ring Learning With Errors) based ciphertext, and noise is added to each sampled element. When an operation is performed between ciphertexts, the output ciphertext is output with more noise than the existing ciphertext, and if the ciphertext contains more than a certain level of noise, it is difficult to obtain an accurate value even if the ciphertext is decrypted. Therefore, in general, fully homomorphic encryption gates require bootstrapping to remove noise after operation.

예컨대, 가 의미하는 것은 두 입력 암호비트 a[0], b[0]에 대해서 AND 연산을 수행하고, 연산 도중 발생하는 잡음이 bootstrapping에 의해 제거되어 반환되는 암호비트 값을 c 배열의 0번째 요소에 저장하는 것을 의미한다.for example, means that the AND operation is performed on the two input cipher bits a[0] and b[0], noise generated during the operation is removed by bootstrapping, and the returned cipher bit value is stored in the 0th element of c array. means to do

비트 단위를 기반으로 하는 홍채 인증 시스템 시나리오Bit-based iris authentication system scenario

(1) 두 암호문에 대한 배타적 논리합(1) Exclusive OR of two ciphertexts

도 1은 두 암호문을 대상으로 배타적 논리합(XOR) 연산을 수행하는 과정을 설명하기 위한 도면이다. 두 암호문에 대한 배타적 논리합은 제1 암호문(CX)에 대해, 새로 검증받을 제2 암호문(CY)과 같은 위치에 있지만 서로 값이 다른 비트의 개수를 찾기 위한 연산을 의미할 수 있다. 다시 말해, 두 암호문에서 서로 대응되는 위치의 비트의 값이 서로 다른 경우의 수를 찾기 위한 연산을 의미할 수 있다. 여기서 제1 암호문(CX)은 등록된 홍채 코드를 의미할 수 있고, 제2 암호문(CY)은 새로 검증받을 홍채 코드를 의미할 수 있다. XOR 연산은 두 홍채 암호비트 CX, CY에 대해 두 암호비트가 같으면 Enc(0)을, 두 암호비트가 다르면 Enc(1)을 출력한다. 따라서, 값이 서로 다른 비트의 개수는 연산 결과에서 Enc(1)의 개수와 동일할 수 있다.1 is a diagram for explaining a process of performing an exclusive OR (XOR) operation on two ciphertexts. The exclusive OR of the two ciphertexts may mean an operation for finding the number of bits of the first ciphertext (C X ) that are located in the same position as the second ciphertext (C Y ) to be newly verified but have different values. In other words, it may refer to an operation for finding the number of cases in which the values of bits corresponding to each other in two ciphertexts are different from each other. Here, the first cryptogram (C X ) may mean a registered iris code, and the second cryptogram (C Y ) may mean a new iris code to be verified. The XOR operation outputs Enc(0) if the two cipher bits are the same for the two iris cipher bits C X , C Y , and Enc (1) if the two cipher bits are different. Accordingly, the number of bits having different values may be equal to the number of Enc(1) in the operation result.

또한, 본 명세서에서 생체 데이터로 홍채 데이터를 예시적으로 설명하고 있으나, 본 발명이 이에 한정되는 것은 아니다. 즉, 생체 데이터는 홍채 데이터 이외에 지문 데이터, 정맥 데이터 등을 의미할 수도 있다.In addition, although iris data is exemplarily described as biometric data in the present specification, the present invention is not limited thereto. That is, the biometric data may mean fingerprint data, vein data, and the like in addition to iris data.

(2) 암호화된 데이터 간의 덧셈 연산(2) Addition operation between encrypted data

덧셈 연산 알고리즘은 암호화된 데이터 간의 덧셈 연산을 수행하는 알고리즘이다.The addition operation algorithm is an algorithm that performs an addition operation between encrypted data.

[덧셈 연산 알고리즘][Addition operation algorithm]

평문 상에서는 전가산기(full-adder)를 통해 덧셈을 구성할 수 있다. 마찬가지로, 이를 활용하면 암호문 간의 덧셈도 전가산기의 게이트와 같은 원리로 설계할 수 있고, 이를 나타내면 위 덧셈 연산 알고리즘과 같다.In plain text, addition can be constructed through a full-adder. Likewise, if this is used, addition between ciphertexts can be designed with the same principle as the gate of a full adder, and this is the same as the above addition operation algorithm.

덧셈 연산 알고리즘의 과정을 통해 동형암호 덧셈 결괏값이 반환된다. 덧셈 연산 알고리즘에서, HE.AND, HE.OR, HE.XOR의 게이트들(연산들)은 게이트에 입력한 두 입력값에 대해서 연산 도중 발생한 노이즈(noise)를 제거하는 부트스트랩핑(bootstrapping) 게이트들이다.Through the process of the addition operation algorithm, the homomorphic encryption addition result value is returned. In the addition operation algorithm, the gates (operations) of HE.AND, HE.OR, and HE.XOR are bootstrapping gates that remove noise generated during operation for two input values input to the gate. admit.

덧셈 연산 알고리즘을 이용하여, 두 홍채 암호비트에 대한 XOR 연산의 결괏값 res = Enc(0,1,1,0,1,1,1,0,…)에 대해 덧셈 연산(∑)을 각각의 비트마다 적용한다.Using the addition operation algorithm, the addition operation (∑) is performed on the resultant value res = Enc (0,1,1,0,1,1,1,0,...) of the XOR operation on the two iris cryptographic bits. applied bit by bit.

(3) 덧셈 연산의 결과를 홍채 암호비트 수로 나눗셈 연산(3) Dividing the result of the addition operation by the number of iris cryptographic bits

홍채의 암호비트 수 N으로 동형암호 덧셈 알고리즘으로 구한 값을 나누면 두 홍채의 매칭 결괏값을 얻을 수 있다. 홍채 코드는 비트 단위로 암호화되기 때문에 홍채의 암호비트 수 N은 홍채 코드를 이루는 비트 수와 동일할 수 있다.By dividing the value obtained by the homomorphic encryption addition algorithm by the number of cryptographic bits N of the iris, the matching result value of the two irises can be obtained. Since the iris code is encrypted in bit units, the number N of encrypted bits of the iris may be equal to the number of bits constituting the iris code.

이 때의 동형 나눗셈 연산은 평문과 암호문 간의 나눗셈 방법을 적용할 수 있다. 도 2는 평문 이진 나눗셈을 설명하기 위함 흐름도이다. 도 2를 참조하면, 먼저, Q와 M을 각각 배열의 길이가 인 피제수와 제수, 즉 Q를 M으로 나눈다고 가정하자. 또한, A라는 길이가 이고 모든 요소가 0인 벡터를 만든다.The isomorphic division operation at this time can apply a division method between plaintext and ciphertext. 2 is a flowchart for explaining plaintext binary division. Referring to FIG. 2, first, Q and M are the lengths of the arrays, respectively. Suppose we divide the in-divisor and the divisor, Q, by M. Also, the length of A is and all elements are 0 make a vector

이 0이 될 때까지 다음을 반복한다. 우선, 두 배열, Q와 A를 합치고(Q|A), 1비트 오른쪽으로 이동연산을 진행한다. 길이가 인 Q|A에서 왼쪽 비트를 Q라 하고, 오른쪽 비트만큼을 A라 저장한다. A를 M과 대소비교를 하여, A가 M보다 작으면 Q[0]에 0을, 반대의 경우는 1을 저장하고 A 배열에 A-M의 값을 저장한다. 그리고, 의 값을 1만큼 빼준다. Repeat until it becomes 0. First, the two arrays, Q and A, are combined (Q|A), and a shift operation is performed to the right by 1 bit. length left at Q|A which is Let the bit be Q, and the right Store as many bits as A. A is compared with M, and if A is less than M, 0 is stored in Q[0], and in the opposite case, 1 is stored, and the value of AM is stored in the A array. and, Subtract the value of by 1.

그리고, Q에 저장된 값이 Q를 M으로 나눈 몫이고 이를 반환한다.And, the value stored in Q is the quotient of Q divided by M, and it is returned.

하기의 나눗셈 연산 알고리즘은 동형암호로 암호화된 데이터의 나눗셈 연산 알고리즘이다.The following division operation algorithm is a division operation algorithm of data encrypted by homomorphic encryption.

[나눗셈 연산 알고리즘][Division operation algorithm]

상기 나눗셈 연산 알고리즘을 참조하면, 암호문은 값을 알 수 없어서 평문에서처럼 단순 비교 또는 if 가정을 진행할 수 없다. 상기 나눗셈 연산 알고리즘에서의 , , 는 도 2에서의 Q, M, A에 해당하고 암호문이다. 우선, 단순 비교 과정은 동형암호 대소비교 함수를 통해 해결할 수 있다(나눗셈 연산 알고리즘의 7번째 줄). 두 번째 if 가정은 HomCompS()의 값의 반환이 Enc(0) 또는 Enc(1)인 것에 착안하여, 이면 Enc(1)이고 이 값에 bootsNOT을 취한 값(d)은 도 2에서 Q[0] 값이 된다. 마찬가지로, 이면 HomCompS()의 값은 Enc(0)이고 이는 도 2에서 Q[0]값이 된다. 인 상황에서 Enc(0)에 bootsNOT을 취한 값, 즉 Enc(1)과 을 비트별로 bootsAND 연산을 적용하면, 값이 나오게 되고, 반대의 상황()에서는 Enc(1)이므로 bootsNOT을 취한 값, Enc(0)과 을 비트별로 bootsAND 연산을 적용하면 Enc(0)이 나오게 된다. 이를 통해 암호문 의 값이 정해지고, 이를 만큼 반복해주면, 몫을 실수 범위까지 확장하여 구할 수 있다.Referring to the division operation algorithm, since the value of the ciphertext is unknown, a simple comparison or if assumption cannot be performed as in the plaintext. In the division operation algorithm , , corresponds to Q, M, and A in FIG. 2 and is a cipher text. First of all, the simple comparison process can be solved through the homomorphic comparison comparison function (line 7 of the division operation algorithm). The second if assumption is HomCompS( ) is Enc (0) or Enc (1), is Enc(1), and the value (d) obtained by taking bootsNOT from this value becomes the Q[0] value in FIG. Likewise, if HomCompS( ) is Enc(0), which becomes the Q[0] value in FIG. In the situation of Enc(0), the value of bootsNOT is taken, that is, Enc(1) and Applying the bootsAND operation bit by bit, The value comes out, and the opposite situation ( ) is Enc(1), so the value taken from bootsNOT, Enc(0) and By applying the bootsAND operation bit by bit, Enc(0) is obtained. Through this, the ciphertext is set, and By repeating as many times as possible, the quotient can be extended to the range of real numbers.

또한, 암호문에서는 평문에서와 달리 부호를 알 수 없어 추가적인 연산을 진행해 주어야 한다. 나눗셈 연산 알고리즘의 15번째 줄에서 제수()와 피제수()의 부호비트 간에 bootsXOR 연산을 해주어 같은 부호면 Enc(0), 반대 부호면 Enc(1)을 에 저장한다. 1번째 줄에서는 제수와 피제수 모두 양으로 전환하여, 양의 값을 갖는 상황에서 나눗셈을 계속 진행하여, 값을 얻는다. 이 값에 대해 2의 보수를 취해주어 값을 저장하고, 앞서 말한 것처럼 두 입력값의 부호가 같은 경우 =이기 때문에, 이를 bootsNOT 취한 Enc(1)와 의 비트단위 별로 bootsAND를 취해 을 얻는다.Also, in the ciphertext, unlike in the plaintext, the sign cannot be known, so an additional operation must be performed. In line 15 of the division operation algorithm, the divisor ( ) and the dividend ( ), the bootsXOR operation is performed between the sign bits of the same sign, Enc (0), save to In the first line, both the divisor and the dividend are converted to positive, and the division continues in the situation of having a positive value, get value Take the 2's complement of this value Store the value and, as mentioned before, if both inputs have the same sign = Since Enc(1) takes bootsNOT this and Take bootsAND bit by bit of get

마찬가지로, 반대 부호를 갖는 경우 Enc(1)이 의 비트별로 bootsAND를 취해 을 얻는다. 마지막으로, 이 두 값을 더하게 되면 최종적으로 결과값 가 된다.Similarly, Enc(1) with the opposite sign take the bootsAND bit by bit of get Finally, when these two values are added, the final result becomes

또한, 상기 나눗셈 연산 알고리즘에서, Homabs는 절대값을 출력하는 동형암호의 함수, HomRShift는 왼쪽 이동연산 결과를 출력하는 동형암호의 함수, HomCompS는 대소비교(작다(<) 연산 결과를 출력하는 동형암호의 함수, HomSubt는 뺄셈연산 결과를 출력하는 동형암호의 함수, HomTwosComp는 2의 보수를 출력하는 동형암호의 함수, HomAdd는 덧셈 연산 결과를 출력하는 동형암호의 함수를 의미할 수 있다.In addition, in the division operation algorithm, Homabs is a homomorphic encryption function outputting an absolute value, HomRShift is a homomorphic encryption function outputting a left shift operation result, and HomCompS is a homomorphic encryption function outputting a comparison (less than (<) operation result) , HomSubt is a homomorphic encryption function that outputs a subtraction operation result, HomTwosComp is a homomorphic encryption function that outputs a 2's complement, and HomAdd is a homomorphic encryption function that outputs an addition operation result.

구체적인 예로, 12(즉, N=12)라는 숫자는 2진법으로 변환하면 1100(2)이 되고, 1비트씩 쉬프트(shift) 하면서 1과 0이 1/8과 -1/8 형태로 회로에 들어가게 된다. 이 방법을 이용하면 LWE 형태의 암호문에서 random mask에 해당하는 부분을 0으로 만들 수 있어(즉, LWE sample의 b=a·s+e에서 a가 0이 된다) Noiseless Trivial 형태의 결괏값 반환이 가능한다.As a specific example, the number 12 (ie, N=12) becomes 1100 (2) when converted to binary, and 1 and 0 are entered into the circuit in the form of 1/8 and -1/8 while shifting by 1 bit. will enter Using this method, the part corresponding to the random mask in the LWE type ciphertext can be made 0 (ie, a becomes 0 in b = a s + e of the LWE sample), so the result value in the form of Noiseless Trivial is returned. It is possible.

이렇게 변환된 평문의 암호화 값과, 암호화된 덧셈 결괏값을 이용해 동형 나눗셈 연산을 수행한다. The isomorphic division operation is performed using the encrypted value of the plaintext converted in this way and the encrypted addition result value.

이하는, 나눗셈 연산에 사용되는 동형암호 함수들에 대한 설명이다.The following is a description of homomorphic encryption functions used for division operations.

하기의 알고리즘은 대소비교 함수의 알고리즘이다.The following algorithm is an algorithm for a comparison function.

[대소비교(작음 비교) 알고리즘][Large comparison (small comparison) algorithm]

대소비교 알고리즘을 참조하면, 암호문 를 비교하여 보다 작으면 Enc(1)을 반환하고, 크면 Enc(0)을 반환하는 알고리즘이다. 즉, 이면 Enc(1), 반대의 경우는 Enc(0)이다.Referring to the comparison algorithm, the ciphertext and by comparing go It is an algorithm that returns Enc(1) if less than, and returns Enc(0) if greater. in other words, , Enc(1), otherwise Enc(0).

하기의 알고리즘은 뺄셈연산 함수의 알고리즘이다.The following algorithm is an algorithm of a subtraction operation function.

[뺄셈 알고리즘][Subtraction Algorithm]

뺄셈 연산은 동형암호 덧셈 연산, 즉, 에서 를 2의 보수로 바꿔주면 간단하게 얻을 수 있다. 즉, 입력값 중에서 에 HomTwosComp(2의 보수)를 취해주면(첫 번째 줄), 덧셈 게이트를 이용해 뺄셈을 진행할 수 있다. 즉, HomTwosComp()로 요약할 수 있다.The subtraction operation is a homomorphic addition operation, that is, at This can be easily obtained by converting to 2's complement. That is, the input Between If HomTwosComp (2's complement) is taken (first line), subtraction can be performed using the addition gate. in other words, HomTwosComp( ) can be summarized as

(4) 인증 결정을 위한 비교 연산(4) Comparison operation for authentication decision

나눗셈까지 수행한 결괏값이, 등록한 사용자와 같은 사용자인지 판단하기 위해 평가 함수(Eval)에 포함되어 있는 기준값(또는 임계값)과 비교 연산을 진행한다. 이때 사용하는 비교 연산 함수는 하기의 알고리즘과 같으며, 이는 암호문 a와 기준값 b를 동형비교하여 a가 b보다 작거나 같으면 Enc(1)을 반환하고, 크면 Enc(0)을 반환하는 알고리즘이다. 즉, Dec(a) ≤ Dec(b) 이면 Enc(1), 반대의 경우는 Enc(0)이다.A comparison operation is performed with a reference value (or threshold value) included in the evaluation function (Eval) to determine whether the resultant value obtained by division is the same user as the registered user. The comparison operation function used at this time is the same as the following algorithm, which isomorphically compares the ciphertext a and the reference value b, returns Enc(1) if a is less than or equal to b, and returns Enc(0) if it is greater. That is, if Dec(a) ≤ Dec(b), Enc(1), and vice versa, Enc(0).

[대소비교(작거나 같음 비교) 알고리즘][Comparison comparison (less than or equal comparison) algorithm]

상기 알고리즘에서, 게이트는 평문에서의 MUX 게이트와 같은 역할로 의 값에 따라 또는 를 출력한다. 실시예에 따라, 대소비교(작거나 같음 비교) 알고리즘은 상술한 대소비교(작음 비교) 알고리즘으로 대체도리 수도 있다.In the above algorithm, Gates play the same role as MUX gates in plaintext. according to the value of or outputs Depending on embodiments, the comparison (less than or equal to) algorithm may be replaced with the above-described comparison (less than or equal to) algorithm.

상술한 과정을 통해 나온 결괏값이 기준값보다 작거나 같을 경우 등록한 사용자의 홍채임을, 큰 경우 등록한 사용자의 홍채가 아님을 판단할 수 있다. 여기서, 비교 연산을 통해 도출된 결과, 즉 Enc(1) 또는 Enc(0)은 사용자의 개인키를 이용한 복호화 과정을 통해 평문으로 복호화될 수 있고, 복호화 결과에 따라 인증 여부를 판단할 수 있다.If the resultant value obtained through the above process is smaller than or equal to the reference value, it can be determined that the iris of the registered user is greater than the iris of the registered user. Here, the result derived through the comparison operation, that is, Enc(1) or Enc(0), can be decrypted into plain text through a decryption process using the user's private key, and authentication can be determined according to the decryption result.

이하에서는, 비트 단위 동형암호를 위한 실수 표현에 대해 기술한다.Hereinafter, a real number representation for bitwise homomorphic encryption will be described.

도 3은 비트 단위 동형암호를 위한 실수 표현을 설명하기 위한 도면이다.3 is a diagram for explaining a real number representation for bitwise homomorphic encryption.

종래의 정수 기반 동형암호 스키마를 이용한 방법은 실수 데이터에 대해 특정 값을 곱하여 정수로 만든 후 암호 알고리즘을 진행한다. 그러나, 이로 인하여 오차가 발생하게 되는 단점이 있다. 하지만, 본 발명에서는 비트 단위 기반 동형암호 기법을 사용하여, 실수 유효 숫자 범위를 유동적으로 정할 수 있다. 구체적으로, 도 3과 같이 암호화된 실수 데이터를 표현할 수 있다.In a method using a conventional integer-based homomorphic encryption scheme, an encryption algorithm is performed after multiplying real data by a specific value to make an integer. However, there is a disadvantage that an error occurs due to this. However, in the present invention, a range of real significant digits can be flexibly determined using a bit-based homomorphic encryption technique. Specifically, encrypted real data may be expressed as shown in FIG. 3 .

구체적으로 설명하면, 먼저 평문 및/또는 암호문 배열의 인덱스를 반대로 설정한다. 즉, 가장 오른쪽이 최상위 비트가 되게 한다.Specifically, first, the indexes of the array of plaintext and/or ciphertext are reversed. That is, the rightmost bit becomes the most significant bit.

일반적으로, 입력한 비트의 길이를 , 암호문의 배열을 , 번째 배열의 성분을 라 하면, 인덱스 0부터 까지의 만큼을 실수 데이터의 소수 부분(Fractional part)으로 할당하고, 인덱스 부터 까지 만큼을 실수 데이터의 정수 부분(Integer part)으로 할당한다. 마지막, 최상위 비트인 번째(인덱스 ) 비트를 부호 비트로 할당하여 실수를 표현한다.In general, the length of the input bits , an array of ciphertext , element of array , from index 0 up to Allocate as much as the fractional part of the real data, index from until as much as is assigned to the integer part of the real data. the last, most significant bit second (index ) bit as the sign bit to represent real numbers.

상술한 실수 표현 기법은 적어도 실수 값을 갖는 생체 데이터에 대하여 적용될 수 있다. 그러나, 실수가 아닌 정수 값을 갖는 생체 데이터의 경우라면 위 실수 표현 기법의 적용은 배제될 수도 있다.The above-described real number expression technique may be applied to at least biometric data having real values. However, in the case of biometric data having an integer value rather than a real number, the application of the above real number expression technique may be excluded.

도 4는 본 발명의 일 실시예에 따른 인증 시스템을 도시하고, 도 5는 도 4에 도시된 인증 시스템에서 수행되는 인증 동작을 설명하기 위한 개념도이다.4 illustrates an authentication system according to an embodiment of the present invention, and FIG. 5 is a conceptual diagram for explaining an authentication operation performed in the authentication system shown in FIG. 4 .

도 4와 도 5를 참조하면, 인증 시스템(10)은 제1 단말(100), 제2 단말(200), 및 서버(300)를 포함한다. 제1 단말(100), 제2 단말(200), 및 서버(300)는 적어도 프로세서 및/또는 메모리를 포함하는 컴퓨팅 장치로 구현될 수 있다. 또한, 제1 단말(100)과 서버(300) 그리고 제2 단말(200)과 서버(300)는 소정의 유무선 통신망을 통하여 데이터 및/또는 신호를 주고 받을 수 있다.Referring to FIGS. 4 and 5 , the authentication system 10 includes a first terminal 100 , a second terminal 200 , and a server 300 . The first terminal 100, the second terminal 200, and the server 300 may be implemented as a computing device including at least a processor and/or a memory. In addition, the first terminal 100 and the server 300 and the second terminal 200 and the server 300 may exchange data and/or signals through a predetermined wired or wireless communication network.

제1 단말(100)은 서버(300)와의 통신을 통해 사용자의 생체 정보를 서버(300)에 등록할 수 있다.The first terminal 100 may register the user's biometric information with the server 300 through communication with the server 300 .

구체적으로, 제1 단말(100)은 사용자의 생체 데이터를 암호화한 후 생체 데이터에 대한 암호문을 포함하는 등록 요청 메시지를 서버(300)로 송신함으로써, 사용자의 생체 데이터를 등록할 수 있다. 이때, 사용자를 식별하기 위한 식별 정보, 평가 함수, 및 평가 함수에 포함될 수도 있는 기준값(또는 임계값) 중 적어도 하나가 함께 전송될 수도 있다. 실시예에 따라, 기준값(또는 임계값) 역시 사용자의 개인키를 이용하여 암호화된 상태로 전송될 수 있다.Specifically, the first terminal 100 may register the user's biometric data by encrypting the user's biometric data and then transmitting a registration request message including the encrypted text of the biometric data to the server 300 . At this time, at least one of identification information for identifying the user, an evaluation function, and a reference value (or threshold value) that may be included in the evaluation function may be transmitted together. Depending on the embodiment, the reference value (or threshold value) may also be transmitted in an encrypted state using the user's private key.

제2 단말(200)은 서버(300)와의 통신을 통해 사용자에 대한 인증 동작을 수행할 수 있다. 이를 위해, 제2 단말(200)은 생체 데이터에 대한 암호문을 포함하는 인증 요청 메시지를 서버(300)로 전송하고, 이에 대한 응답으로 인증 결과를 수신한다. 또한, 제2 단말은 사용자의 개인키로 인증 결과를 복호화함으로써 인증 여부를 확인할 수 있다.The second terminal 200 may perform an authentication operation for a user through communication with the server 300 . To this end, the second terminal 200 transmits an authentication request message including encrypted text for biometric data to the server 300 and receives an authentication result as a response thereto. In addition, the second terminal can confirm authentication by decrypting the authentication result with the user's private key.

인증 서버, 클라우드 서버, 인증 장치 등으로 명명될 수도 있는 서버(300)는 제1 단말(100)로부터 암호화된 생체 데이터 등을 포함하는 등록 요청 메시지를 수신하여 사용자를 등록하고, 제2 단말(200)로부터 수신되는 인증 요청 메시지에 대한 응답으로 인증 결과를 제2 단말로 송신할 수 있다.The server 300, which may be called an authentication server, a cloud server, or an authentication device, registers a user by receiving a registration request message including encrypted biometric data from the first terminal 100, and In response to the authentication request message received from ), an authentication result may be transmitted to the second terminal.

도 6은 도 4에 도시된 제1 단말의 기능 블럭도이다.FIG. 6 is a functional block diagram of a first terminal shown in FIG. 4 .

도 6을 참조하면, 제1 단말(100)은 생체 데이터 획득부(110), 키 생성부(120), 및 암호화부(130)을 포함한다. 실시예에 따라, 제1 단말(100)은 저장부(140)를 더 포함할 수 있다. 제1 단말(100)은 서버(300)와의 통신을 통해 사용자의 생체 데이터를 서버(300)에 등록할 수 있다.Referring to FIG. 6 , the first terminal 100 includes a biometric data acquisition unit 110 , a key generation unit 120 , and an encryption unit 130 . Depending on the embodiment, the first terminal 100 may further include a storage unit 140 . The first terminal 100 may register the user's biometric data with the server 300 through communication with the server 300 .

생체 데이터 획득부(110)는 사용자의 생체 데이터를 획득할 수 있다. 일 예로, 생체 데이터 획득부(110)는 외부의 촬영 장치(또는 녹음 장치)로부터 사용자의 홍채 이미지, 정맥 이미지, 얼굴 이미지, 및 사용자의 음성 데이터 중 적어도 하나를 수신하고 수신된 정보를 이진 코드로 변환할 수 있다. 이때, 외부의 촬영 장치(또는 녹음 장치)는 생체 데이터 획득부(110)의 일부로써 구현될 수도 있다. 또 다른 실시예로, 생체 데이터는 제1 단말(100) 또는 저장부(140)에 미리 저장되어 있을 수도 있다.The biometric data acquisition unit 110 may acquire user's biometric data. For example, the biometric data acquisition unit 110 receives at least one of a user's iris image, vein image, face image, and user's voice data from an external photographing device (or recording device) and converts the received information into binary code. can be converted In this case, an external photographing device (or recording device) may be implemented as a part of the biometric data acquisition unit 110 . As another embodiment, biometric data may be previously stored in the first terminal 100 or the storage unit 140 .

또한, 생체 데이터 획득부(110)는 획득된 이진 코드로부터 알려진 템플릿 생성 기법을 이용하여 취소가능한 템플릿(홍채 템플릿, 지문 템플릿, 얼굴 이미지 템플릿, 음성 템플릿)을 생성할 수도 있다. 템플릿화된 이진 코드를 통해, 사용자의 생체 정보의 유출로 인한 문제점을 해결할 수 있다.In addition, the biometric data acquisition unit 110 may generate revocable templates (iris templates, fingerprint templates, face image templates, and voice templates) using a known template generation technique from the obtained binary code. Through the templated binary code, it is possible to solve the problem caused by leakage of the user's biometric information.

또한, 생체 데이터 획득부(110)는 실수로 표현된 이진 코드를 상술한 실수 표현 기법을 이용하여 변환하거나 실수로 표현된 템플릿화된 이진 코드를 상술한 실수 표현 기법을 이용하여 변환할 수도 있다. 다만, 이진 코드나 템플릿화된 이진 코드가 실수가 아닌 경우, 즉 소수부가 없는 경우에 이러한 실수 표현 동작을 생략될 수도 있다.In addition, the biometric data acquisition unit 110 may convert a binary code expressed as a real number using the above-described real number expression technique, or may convert a templated binary code expressed as a real number using the above-described real number expression technique. However, when the binary code or the templated binary code is not a real number, that is, when there is no decimal part, this real number expression operation may be omitted.

키 생성부(120)는 소정의 키 생성 알고리즘을 이용하여 사용자의 개인키(또는 비밀키)를 생성할 수 있다. 이를 위해, 키 생성부(120)는 소정의 입력 인터페이스를 통해 사용자로부터 패스워드, 비밀 번호, PIN 코드, 패턴 등과 같은 키 생성을 위한 기초 정보를 수신하고, 수신된 기초 정보에 기초하여 개인키를 생성할 수 있다. 이때, 개인키는 (완전)동형암호 기법에서 평문을 암호문으로 암호화하거나, 및/또는 암호문을 평문으로 복호화하는 과정에서 이용되는 키를 의미할 수 있다. 즉, 개인키는 패스워드, 비밀 번호, PIN 코드, 또는 패턴 등과 같은 기초 정보를 입력으로 하는 소정의 키 생성 알고리즘(예컨대, (완전)동형암호 기법의 키 생성 알고리즘)을 수행함으로써 생성될 수 있다. 키 생성부(120)에 의해 생성된 개인키는 저장부(140)에 저장될 수 있다.The key generation unit 120 may generate a user's private key (or secret key) using a predetermined key generation algorithm. To this end, the key generation unit 120 receives basic information for key generation such as a password, password, PIN code, pattern, etc. from a user through a predetermined input interface, and generates a private key based on the received basic information. can do. In this case, the private key may refer to a key used in the process of encrypting plaintext into ciphertext and/or decrypting ciphertext into plaintext in the (complete) homomorphic encryption technique. That is, the private key can be generated by performing a predetermined key generation algorithm (eg, (perfect) homomorphic encryption key generation algorithm) that takes basic information such as a password, password, PIN code, or pattern as an input. The private key generated by the key generation unit 120 may be stored in the storage unit 140 .

암호화부(130)는 개인키를 이용하여 생체 데이터 획득부(110)에 의해 생성된 이진 코드 또는 템플릿(또는 템플릿화된 이진 코드)을 암호화하여 암호문을 생성할 수 있다. 암호화부(130)에 의한 암호화는 (완전)동형암호 기법의 암호화를 의미할 수 있다. 또한, 암호화부(130)는 생성된 암호문을 포함하는 등록 요청 메시지를 서버(300)로 송신할 수 있다. 이때, 암호화부(130)는 평가 함수, 사용자를 식별하기 위한 식별 정보, 및 기준값(평가 함수에 포함될 수도 있음) 중 적어도 하나를 등록 요청 메시지와 함께 서버(300)로 송신할 수도 있다. 평가 함수는 서버(300)에 의한 인증 동작 수행 중에 이용되는 함수 및/또는 알고리즘 등에 관한 정보를 의미할 수 있다. 실시예에 따라, 평가 함수나 기준값 등은 서버(300)에 미리 저장되어 있을 수 있으며, 이 경우 해당 정보를 서버(300)로 송신하는 동작은 생략될 수 있다.The encryption unit 130 may generate ciphertext by encrypting the binary code or template (or templated binary code) generated by the biometric data acquisition unit 110 using the private key. Encryption by the encryption unit 130 may mean encryption using a (complete) homomorphic encryption technique. In addition, the encryption unit 130 may transmit a registration request message including the generated ciphertext to the server 300 . At this time, the encryption unit 130 may transmit at least one of the evaluation function, identification information for identifying the user, and a reference value (which may be included in the evaluation function) to the server 300 together with the registration request message. The evaluation function may refer to information about a function and/or an algorithm used while performing an authentication operation by the server 300 . Depending on the embodiment, the evaluation function or reference value may be stored in advance in the server 300, and in this case, an operation of transmitting the corresponding information to the server 300 may be omitted.

실시예에 따라, 기준값은 사용자에 의해 결정될 수도 있다. 이 경우, 키 생성부(120)는 비밀 번호 등을 입력받는 과정 중에 또는 별도의 과정을 통해 기준값을 사용자로부터 수신할 수도 있다.Depending on the embodiment, the reference value may be determined by the user. In this case, the key generator 120 may receive the reference value from the user during the process of receiving a password or the like or through a separate process.

저장부(140)에는 제1 단말(100)에 의한 등록 과정을 수행하기 위한 프로그램, 소프트웨어 등이 일시적으로 또는 비일시적으로 저장되어 있을 수 있다. 또한, 저장부(140)에는 생체 데이터 획득부(110)에 의해 획득된 생체 데이터, 이진 코드, 템플릿, 키 생성부(120)에 의해 수신된 비밀 번호, PIN 번호, 기준값, 키 생성부(120)에 의해 생성된 개인키, 암호화부(130)에 의해 생성된 암호문 등이 일시적으로 또는 비일시적으로 저장될 수 있다.The storage unit 140 may temporarily or non-temporarily store programs and software for performing the registration process by the first terminal 100 . In addition, the storage unit 140 includes biometric data acquired by the biometric data acquisition unit 110, binary code, template, password received by the key generator 120, PIN number, reference value, and key generator 120. ) The private key generated by the encryption unit 130, the ciphertext generated by the encryption unit 130, etc. may be temporarily or non-temporarily stored.

도 7은 도 4에 도시된 제2 단말의 기능 블럭도이다.FIG. 7 is a functional block diagram of a second terminal shown in FIG. 4 .

도 7을 참조하면, 제2 단말(200)은 생체 데이터 획득부(210), 키 생성부(220), 암호화부(230), 및 복호화부(240)을 포함한다. 실시예에 따라, 제2 단말(200)은 저장부(250)를 더 포함할 수 있다. 제2 단말(200)은 서버(300)와의 통신을 통해 사용자에 대한 인증 동작을 수행할 수 있다. 실시예에 따라, 제2 단말(200)은 제1 단말(100)과 동일한 단말을 의미할 수도 있다.Referring to FIG. 7 , the second terminal 200 includes a biometric data acquisition unit 210, a key generation unit 220, an encryption unit 230, and a decryption unit 240. Depending on the embodiment, the second terminal 200 may further include a storage unit 250 . The second terminal 200 may perform an authentication operation for a user through communication with the server 300 . Depending on the embodiment, the second terminal 200 may mean the same terminal as the first terminal 100 .

생체 데이터 획득부(210)는 사용자의 생체 데이터를 획득할 수 있다. 일 예로, 생체 데이터 획득부(210)는 외부의 촬영 장치(또는 녹음 장치)로부터 사용자의 홍채 이미지, 정맥 이미지, 얼굴 이미지, 및 사용자의 음성 데이터 중 적어도 하나를 수신하고 수신된 정보를 이진 코드로 변환할 수 있다. 이때, 외부의 촬영 장치(또는 녹음 장치)는 생체 데이터 획득부(210)의 일부로써 구현될 수도 있다.The biometric data acquisition unit 210 may obtain user's biometric data. For example, the biometric data acquisition unit 210 receives at least one of a user's iris image, vein image, face image, and user's voice data from an external photographing device (or recording device) and converts the received information into binary code. can be converted In this case, an external photographing device (or recording device) may be implemented as a part of the biometric data acquisition unit 210 .

또한, 생체 데이터 획득부(210)는 획득된 이진 코드로부터 알려진 템플릿 생성 기법을 이용하여 취소가능한 템플릿(홍채 템플릿, 지문 템플릿, 얼굴 이미지 템플릿, 음성 템플릿)을 생성할 수도 있다. 템플릿화된 이진 코드를 통해, 사용자의 생체 정보의 유출로 인한 문제점을 해결할 수 있다.In addition, the biometric data acquisition unit 210 may generate revocable templates (iris templates, fingerprint templates, face image templates, and voice templates) using a known template generation technique from the obtained binary code. Through the templated binary code, it is possible to solve the problem caused by leakage of the user's biometric information.

또한, 생체 데이터 획득부(210)는 실수로 표현된 이진 코드를 상술한 실수 표현 기법을 이용하여 변환하거나 실수로 표현된 템플릿화된 이진 코드를 상술한 실수 표현 기법을 이용하여 변환할 수도 있다. 다만, 이진 코드나 템플릿화된 이진 코드가 실수가 아닌 경우, 즉 소수부가 없는 경우에 이러한 실수 표현 동작을 생략될 수도 있다.In addition, the biometric data acquisition unit 210 may convert a binary code expressed as a real number using the above-described real number expression technique, or may convert a templated binary code expressed as a real number using the above-described real number expression technique. However, when the binary code or the templated binary code is not a real number, that is, when there is no decimal part, this real number expression operation may be omitted.

키 생성부(220)는 소정의 키 생성 알고리즘을 이용하여 사용자의 개인키(또는 비밀키)를 생성할 수 있다. 이를 위해, 키 생성부(220)는 소정의 입력 인터페이스를 통해 사용자로부터 비밀 번호(PW), PIN 코드 등과 같은 키 생성을 위한 기초 정보를 수신하고, 수신된 기초 정보에 기초하여 개인키를 생성할 수 있다. 이때, 개인키는 (완전)동형암호 기법에서 평문을 암호문으로 암호화하거나, 및/또는 암호문을 평문으로 복호화하는 과정에서 이용되는 키를 의미할 수 있다. 키 생성부(220)에 의해 생성된 개인키는 저장부(250)에 저장될 수 있다.The key generation unit 220 may generate a user's private key (or secret key) using a predetermined key generation algorithm. To this end, the key generator 220 receives basic information for key generation such as a password (PW) and PIN code from the user through a predetermined input interface, and generates a private key based on the received basic information. can In this case, the private key may refer to a key used in the process of encrypting plaintext into ciphertext and/or decrypting ciphertext into plaintext in the (complete) homomorphic encryption technique. The private key generated by the key generation unit 220 may be stored in the storage unit 250 .

이때, 사용자에 의해 입력된 비밀 번호 등이 생체 데이터를 등록할 때 입력된 비밀 번호 등과 상이할 경우, 생성되는 개인키가 상이하기 때문에, 인증 과정은 진행될 수 없다. 즉, 상이한 개인키를 이용하여 암호화된 암호문은 등록된 암호문과 상이하기 때문에 서버에 의한 인증 결과는 인증 실폐가 된다.At this time, if the password input by the user is different from the password input when registering the biometric data, the authentication process cannot proceed because the generated private key is different. That is, since the ciphertext encrypted using the different private key is different from the registered ciphertext, the authentication result by the server becomes authentication failure.

암호화부(230)는 생성된 개인키를 이용하여 생체 데이터 획득부(210)에 의해 생성된 이진 코드 또는 템플릿(또는 템플릿화된 이진 코드)을 암호화하여 암호문을 생성할 수 있다. 암호화부(230)에 의한 암호화는 (완전)동형암호 기법의 암호화를 의미할 수 있다. 또한, 암호화부(230)는 생성된 암호문을 포함하는 인증 요청 메시지를 서버(300)로 송신할 수 있다. 이때, 암호화부(130)는 사용자를 식별하기 위한 식별 정보를 인증 요청 메시지와 함께 또는 별도의 동작을 통해서 서버(300)로 송신할 수도 있다.The encryption unit 230 may generate ciphertext by encrypting the binary code or template (or templated binary code) generated by the biometric data acquisition unit 210 using the generated private key. Encryption by the encryption unit 230 may mean encryption using a (complete) homomorphic encryption technique. Also, the encryption unit 230 may transmit an authentication request message including the generated cipher text to the server 300 . At this time, the encryption unit 130 may transmit identification information for identifying the user to the server 300 together with an authentication request message or through a separate operation.

복호화부(240)는 서버(300)로 부터 인증 결과를 수신하고, 수신된 결과를 개인키를 이용하여 복호화함으로써 인증 여부를 확인할 수 있다. 구체적으로, 인증 결과는 Enc(1) 또는 Enc(0)이다. 따라서, 제2 단말은 인증 결과를 복호화함으로써 인증 여부를 확인할 수 있다. 복호화 결과가 "1"인 경우 인증이 성공적으로 완료된 경우이고, 복호화 결과가 "0"인 경우 인증이 거부된 경우로 볼 수 있다. 실시예에 따라, 인증 결과 및/또는 복호화 결과의 구체적인 값은 상이할 수도 있다. 즉, 알고리즘의 수정에 따라, 복호화 결과가 "0"인 경우가 인증에 성공한 경우가 될 수도 있기 때문이다.The decryption unit 240 may receive an authentication result from the server 300 and decrypt the received result using a private key to confirm authentication. Specifically, the authentication result is Enc(1) or Enc(0). Therefore, the second terminal can check whether authentication has been performed by decoding the authentication result. If the decryption result is “1”, authentication is successfully completed, and if the decryption result is “0”, authentication is rejected. Depending on embodiments, specific values of the authentication result and/or the decryption result may be different. That is, this is because authentication may be successful when the decryption result is "0" according to the modification of the algorithm.

저장부(250)에는 제2 단말(200)에 의한 인증 과정을 수행하기 위한 프로그램, 소프트웨어 등이 일시적으로 또는 비일시적으로 저장되어 있을 수 있다. 또한, 저장부(250)에는 생체 데이터 획득부(210)에 의해 획득된 생체 데이터, 이진 코드, 템플릿, 키 생성부(220)에 의해 수신된 비밀 번호, PIN 번호, 기준값, 키 생성부(220)에 의해 생성된 개인키, 암호화부(230)에 의해 생성된 암호문, 복호화부(240)에 의한 복호화 결과 등이 일시적으로 또는 비일시적으로 저장될 수 있다.The storage unit 250 may temporarily or non-temporarily store programs and software for performing an authentication process by the second terminal 200 . In addition, the storage unit 250 includes the biometric data acquired by the biometric data acquisition unit 210, the binary code, the template, the password received by the key generator 220, the PIN number, the reference value, and the key generator 220. ), the ciphertext generated by the encryption unit 230, the decryption result by the decryption unit 240, etc. may be temporarily or non-temporarily stored.

도 8은 도 4에 도시된 서버의 기능 블럭도이다.8 is a functional block diagram of the server shown in FIG. 4;

도 8을 참조하면, 인증 서버 등으로 명명될 수도 있는 서버(300)는 등록부(310)와 인증부(320)를 포함한다. 실시예에 따라, 서버(300)는 저장부(330)를 더 포함할 수도 있다.Referring to FIG. 8 , a server 300, which may be referred to as an authentication server, includes a registration unit 310 and an authentication unit 320. Depending on the embodiment, the server 300 may further include a storage unit 330 .

등록부(310)는 제1 단말(100)과의 통신을 통해 사용자의 생체 데이터를 서버(300)의 저장부에 저장함으로써 사용자의 생체 데이터를 등록할 수 있다. 구체적으로, 등록부(310)는 제1 단말(100)로부터 수신되는 등록 요청 메시지를 수신하고, 수신된 등록 요청 메시지에 응답하여 사용자의 생체 데이터(암호문), 식별 정보, 평가 함수, 및 기준값 중 적어도 하나를 저장부(330)에 저장할 수 있다. 실시예에 따라, 등록부(310)는 등록이 완료된 후에 등록 완료 메시지를 제1 단말(100)로 송신할 수도 있다. 실시예에 따라, 제1 단말(100)로 부터 수신되는 평가 함수 및/또는 기준값은 서버(300)의 저장부(330)에 미리 저장되어 있을 수도 있다.The registration unit 310 may register the user's biometric data by storing the user's biometric data in the storage unit of the server 300 through communication with the first terminal 100 . Specifically, the registration unit 310 receives a registration request message received from the first terminal 100, and in response to the received registration request message, at least one of the user's biometric data (cipher text), identification information, an evaluation function, and a reference value. One may be stored in the storage unit 330 . Depending on the embodiment, the registration unit 310 may transmit a registration completion message to the first terminal 100 after registration is completed. Depending on the embodiment, the evaluation function and/or reference value received from the first terminal 100 may be previously stored in the storage unit 330 of the server 300 .

인증부(320)는 제2 단말(200)과의 통신을 통해 사용자 또는 사용자의 생체 데이터에 대한 인증 동작을 수행할 수 있다. 구체적으로, 인증부(320)는 제2 단말(200)로부터 수신되는 인증 요청 메시지에 응답하여 소정의 인증 동작을 수행하고 인증 결과를 제2 단말(200)로 송신할 수 있다.The authenticator 320 may perform an authentication operation for the user or the user's biometric data through communication with the second terminal 200 . Specifically, the authentication unit 320 may perform a predetermined authentication operation in response to an authentication request message received from the second terminal 200 and transmit an authentication result to the second terminal 200 .

인증부(320)는 배타적 논리합 연산부(XOR 연산부), 덧셈 연산부, 나눗셈 연산부, 및 비교 연산부를 포함할 수 있다. The authentication unit 320 may include an exclusive OR operation unit (XOR operation unit), an addition operation unit, a division operation unit, and a comparison operation unit.

XOR 연산부는 등록된 사용자의 생체 정보에 대응하는 암호문(제1 암호문)과 인증 대상 사용자의 생체 정보에 대응하는 암호문(제2 암호문)에 대한 배타적 논리합 연산을 비트 단위로, 즉 두 암호문의 대응되는 비트(동일한 위치의 비트)에 대하여 수행할 수 있다. 여기서, 제1 암호문은 제1 단말(100)로부터 수신되어 저장부(330)에 저장된 암호문을 의미하고, 제2 암호문은 제2 단말(200)로부터 수신된 암호문을 의미할 수 있다. 제1 암호문의 비트와 제2 암호문의 비트의 값이 서로 상이하면 XOR 연산의 결과는 Enc(1)이고, 제1 암호문의 비트와 제2 암호문의 비트의 값이 서로 동일하면 XOR 연산의 결과는 Enc(0)이 된다.The XOR operation unit performs an exclusive OR operation on the cipher text (first cipher text) corresponding to the biometric information of the registered user and the cipher text (second cipher text) corresponding to the biometric information of the user to be authenticated in units of bits, that is, the corresponding It can be performed on bits (bits in the same position). Here, the first cipher text may mean cipher text received from the first terminal 100 and stored in the storage unit 330 , and the second cipher text may mean cipher text received from the second terminal 200 . If the values of the bits of the first ciphertext and the bits of the second ciphertext are different from each other, the result of the XOR operation is Enc(1), and if the values of the bits of the first ciphertext and the bits of the second ciphertext are the same, the result of the XOR operation is It becomes Enc(0).

덧셈 연산부는 XOR 연산부에 의한 XOR 연산의 결과들에 대한 덧셈 연산을 수행할 수 있다. 덧셈 연산의 결과는 제1 암호문 및/또는 제2 암호문에 포함되는 비트 각각에 대응하는 XOR 연산의 결과를 더한 값이다. 물론, 덧셈 연산은 암호문 상태에서 수행된다. 결국, 덧셈 연산의 결과는 제1 암호문과 제2 암호문에 포함되는 비트들 중 서로 다른 값을 가진 비트의 개수를 의미할 수 있다.The addition operation unit may perform an addition operation on results of the XOR operation performed by the XOR operation unit. The result of the addition operation is a value obtained by adding the result of the XOR operation corresponding to each bit included in the first ciphertext and/or the second ciphertext. Of course, the addition operation is performed in the ciphertext state. After all, the result of the addition operation may mean the number of bits having different values among bits included in the first ciphertext and the second ciphertext.

나눗셈 연산부는 덧셈 연산의 결과를 생체 데이터를 이루는 이진 코드에 포함되는 비트의 수로 나눌 수 있다. 이때, 나눗셈 연산을 수행하기 위해서는 이진 코드에 포함되는 비트의 수를 암호화 한 후에 진행하여야 한다. 이에 관한 상세한 설명은 상술하였으므로, 구체적인 설명은 생략하기로 한다. 나눗셈 연산부에 의한 나눗셈 연산의 결과는 이진 코드에 포함된 비트들 중에서 상이한 값을 갖는 비트의 비율을 의미할 수 있고, 이 역시 암호화된 상태로 출력될 수 있다.The division operator may divide the result of the addition operation by the number of bits included in the binary code constituting the biometric data. At this time, in order to perform the division operation, the number of bits included in the binary code must be encrypted before proceeding. Since a detailed description has been given above, a detailed description thereof will be omitted. The result of the division operation by the division operation unit may mean a ratio of bits having different values among bits included in the binary code, and this may also be output in an encrypted state.

비교 연산부는 나눗셈 연산의 결과와 기준값을 비교하고 비교 결과를 출력할 수 있다. 일 예로, 비교 연산부는 나눗셈 연산의 결과가 기준값보다 작거나 같은지 소정의 알고리즘을 통해 판단할 수 있다. 다른 예로, 나눗셈 연산의 결과가 기준값보다 작은지 여부, 나눗셈 연산이 결과가 기준값보다 큰지 여부, 또는 나눗셈 연산의 결과가 기준갑보다 크거나 같은지 여부가 판단될 수도 있다. 판단 결과는 암호화된 상태로 제2 단말(200)로 송신될 수 있다.The comparison operation unit may compare a result of the division operation with a reference value and output a comparison result. For example, the comparison operation unit may determine whether the result of the division operation is less than or equal to the reference value through a predetermined algorithm. As another example, it may be determined whether the result of the division operation is less than the reference value, whether the result of the division operation is greater than the reference value, or whether the result of the division operation is greater than or equal to the reference value. The determination result may be transmitted to the second terminal 200 in an encrypted state.

저장부(330)에는 서버에 의한 인증 동작을 수행하기 위한 프로그램이나 소프트웨어 등이 저장되어 있을 수 있다. 또한, 저장부(330)에는 등록부에 의해 수신된 암호문, 평가 함수, 기준값, 인증부(320)에 의한 인증 동작 수행 중에 일시적으로 또는 비일시적으로 생성되는 데이터 등이 저장될 수 있다.A program or software for performing an authentication operation by a server may be stored in the storage unit 330 . In addition, the storage unit 330 may store ciphertext received by the registration unit, an evaluation function, a reference value, and data temporarily or non-temporarily generated while performing an authentication operation by the authentication unit 320 .

상술한 바와 같이, 비트 단위 완전동형암호를 이용해 클라우드 상의 암호화된 데이터들에 대해서 별도의 복호화 과정 없이 생체 인증을 수행할 수 있다. 클라우드 서버는 각각의 사용자로부터 받은 암호호된 데이터들을 바탕으로 생체 인증을 진행하고 결과를 사용자에게 제공할 수 있다. 이를 통해, 클라우드로부터 사용자 데이터 프라이버시를 지키면서, 사용자가 원하는 서비스를 클라우드가 대행해 주는 서비슬 제공할 수 있다. As described above, biometric authentication can be performed without a separate decryption process for encrypted data in the cloud using bit-wise fully homomorphic encryption. The cloud server may perform biometric authentication based on the encrypted data received from each user and provide the result to the user. Through this, while protecting user data privacy from the cloud, it is possible to provide a service that the cloud acts as an agent for a service desired by the user.

또한, 본 발명은 사용자와 클라우드 간에 복잡한 프로토콜을 사용하지 않는다. 사용자는 추출하여 인코딩된 홍채 정보를 암호화하여 클라우드로 전송하고, 클라우드는 사용자가 원하는 생체 인증 버시를 암호 회로를 통해 연산하여 사용자에게 돌려주면, 사용자는 이를 복호화하여 생체 인증 결과를 얻을 수 있다. In addition, the present invention does not use complex protocols between the user and the cloud. The user encrypts the extracted and encoded iris information and transmits it to the cloud, and the cloud computes the biometric authentication vertex desired by the user through an encryption circuit and returns it to the user, and the user decrypts it to obtain a biometric authentication result.

본 발명은 1단계 n-요소 인증 방식을 사용하기 때문에, 기존에 존재하는 n단계 n-요소 인증 방식에 비해 더 간단하면서도 보안을 강화활 수 있다.Since the present invention uses a one-step n-factor authentication method, it is simpler and more secure than the existing n-step n-factor authentication method.

이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, 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, 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), It may be implemented using one or more general purpose or special purpose computers, such as a Programmable Logic Unit (PLU), 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 running on the operating system. A processing device may also access, store, manipulate, process, and generate data in response to execution of software. For convenience of understanding, there are cases in which one processing device is used, but those skilled in the art will understand that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it can include. For example, a processing device may include a plurality of processors or a processor and a controller. Also, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of these, and may configure a processing device to operate as desired or process independently or collectively. You can command the device. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or to provide instructions or data to a processing device. , or may be permanently or temporarily embodied in the transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable 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 on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - Includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, ROM, RAM, flash memory, etc. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. 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 embodiments shown in the drawings, this is only exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. For example, the described techniques may be performed in an order different from the method described, and/or components of the described system, structure, device, circuit, etc. may be combined or combined in a different form than the method described, or other components may be used. Or even if it is replaced or substituted by equivalents, appropriate results can be achieved. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the attached claims.

100 : 제1 단말
200 : 제2 단말
300 : 서버
100: first terminal
200: second terminal
300: server

Claims (9)

사용자의 제1 생체 데이터에 대응하는 제1 암호문을 포함하는 등록 요청 메시지를 서버로 송신하는 제1 단말;
사용자의 제2 생체 데이터에 대응하는 제2 암호문을 포함하는 인증 요청 메시지를 상기 서버로 송신하는 제2 단말; 및
상기 제1 단말로부터 수신되는 상기 등록 요청 메시지에 응답하여 상기 사용자의 생체 데이터를 등록하고, 상기 제2 단말로부터 수신되는 인증 요청 메시지에 응답하여 상기 사용자에 대한 인증을 수행하는 상기 서버를 포함하고,
상기 서버는 상기 제1 암호문과 상기 제2 암호문에 대한 비트 단위 연산을 통해 인증 동작을 수행하는,
생체 인식 기반 멀티 팩터 인증 시스템.
a first terminal that transmits a registration request message including a first cipher text corresponding to the user's first biometric data to the server;
a second terminal for transmitting an authentication request message including a second cipher text corresponding to the user's second biometric data to the server; and
The server registers biometric data of the user in response to the registration request message received from the first terminal and performs authentication of the user in response to an authentication request message received from the second terminal;
The server performs an authentication operation through a bit-wise operation on the first ciphertext and the second ciphertext.
A biometric based multi-factor authentication system.
제1항에 있어서,
상기 제1 단말은 상기 제1 생체 데이터에 대응하는 제1 이진 코드를 상기 사용자의 개인키를 이용하여 암호화하여 상기 제1 암호문을 생성하고,
상기 제2 단말은 상기 제2 생체 데이터에 대응하는 제2 이진 코드를 상기 사용자의 개인키를 이용하여 암호화하여 상기 제2 암호문을 생성하는,
생체 인식 기반 멀티 팩터 인증 시스템.
According to claim 1,
The first terminal encrypts a first binary code corresponding to the first biometric data using the user's private key to generate the first ciphertext;
wherein the second terminal encrypts a second binary code corresponding to the second biometric data using the user's private key to generate the second ciphertext;
A biometric based multi-factor authentication system.
제2항에 있어서,
상기 개인키는 상기 사용자로부터 수신되는 패스워드, 비밀번호, 및 패턴 중 어느 하나를 입력으로 하는 키 생성 알고리즘을 수행함으로서 생성되는,
생체 인식 기반 멀티 팩터 인증 시스템.
According to claim 2,
The private key is generated by performing a key generation algorithm that takes any one of a password, password, and pattern received from the user as an input,
A biometric based multi-factor authentication system.
제2항에 있어서,
상기 서버는,
비트 단위로 상기 제1 암호문과 상기 제2 암호문에 포함되는 대응되는 비트에 대한 배타적 논리합(XOR) 연산을 수행하고,
상기 XOR 연산 결과에 대한 덧셈 연산을 수행하고,
상기 덧셈 연산의 결과를 상기 제1 이진 코드 또는 상기 제2 이진 코드에 포함되는 비트의 수로 나누는 나눗셈 연산을 수행하고,
상기 나눗셈 연산의 결과를 미리 정해진 기준값과 비교 연산을 수행하여 인증 결과를 도출하는,
생체 인식 기반 멀티 팩터 인증 시스템.
According to claim 2,
The server,
Performing an exclusive OR (XOR) operation on corresponding bits included in the first ciphertext and the second ciphertext in units of bits;
performing an addition operation on the result of the XOR operation;
Performing a division operation of dividing a result of the addition operation by the number of bits included in the first binary code or the second binary code;
Deriving an authentication result by performing a comparison operation of the result of the division operation with a predetermined reference value,
A biometric based multi-factor authentication system.
제4항에 있어서,
상기 제1 암호문과 상기 제2 암호문은 완전동형암호 기법의 암호화 알고리즘을 이용하여 생성되고,
제2 단말은 상기 인증 결과를 상기 사용자의 개인키를 이용하여 복호화하는,
생체 인식 기반 멀티 팩터 인증 시스템.
According to claim 4,
The first ciphertext and the second ciphertext are generated using an encryption algorithm of a fully homomorphic encryption technique,
The second terminal decrypts the authentication result using the user's private key,
A biometric based multi-factor authentication system.
제5항에 있어서,
상기 서버는 상기 제1 이진 코드 또는 상기 제2 이진 코드에 포함되는 비트의 수를 암호화하고, 암호화된 상태에서 상기 나눗셈 연산을 수행하는,
생체 인식 기반 멀티 팩터 인증 시스템.
According to claim 5,
The server encrypts the number of bits included in the first binary code or the second binary code and performs the division operation in an encrypted state.
A biometric based multi-factor authentication system.
제1 단말로부터 사용자의 제1 생체 데이터에 대응하는 제1 암호문을 포함하는 등록 요청 메시지를 수신하여 상기 사용자에 대한 등록을 수행하는 등록부; 및
상기 제2 단말로부터 상기 사용자의 제2 생체 데이터에 대응하는 제2 암호문을 포함하는 인증 요청 메시지를 수신하여 상기 사용자에 대한 인증을 수행하는 인증부를 포함하고,
상기 인증부는,
비트 단위로 상기 제1 암호문과 상기 제2 암호문에 포함되는 대응되는 비트에 대한 배타적 논리합(XOR) 연산을 수행하는 XOR 연산부;
상기 XOR 연산 결과에 대한 덧셈 연산을 수행하는 덧셈 연산부;
상기 덧셈 연산의 결과를 상기 제1 이진 코드 또는 상기 제2 이진 코드에 포함되는 비트의 수로 나누는 나눗셈 연산을 수행하는 나눗셈 연산부; 및
상기 나눗셈 연산의 결과를 미리 정해진 기준값과 비교 연산을 수행하여 인증 결과를 도출하는 비교 연산부를 포함하는,
인증 장치.
a registration unit receiving a registration request message including a first ciphertext corresponding to first biometric data of a user from a first terminal and registering the user; and
An authentication unit configured to receive an authentication request message including a second ciphertext corresponding to second biometric data of the user from the second terminal and perform authentication of the user;
The authentication unit,
an XOR operation unit performing an XOR operation on corresponding bits included in the first ciphertext and the second ciphertext in a bit-by-bit basis;
an addition operation unit that performs an addition operation on the result of the XOR operation;
a division operator performing a division operation by dividing the result of the addition operation by the number of bits included in the first binary code or the second binary code; and
Comprising a comparison operation unit for performing a comparison operation of the result of the division operation with a predetermined reference value to derive an authentication result,
authentication device.
제7항에 있어서,
상기 제1 암호문은 상기 제1 생체 데이터에 대응하는 제1 이진 코드를 상기 사용자의 개인키를 이용하여 암호화함으로써 생성되고,
상기 제2 암호문은 상기 제2 생체 데이터에 대응하는 제2 이진 코드를 상기 사용자의 개인키를 이용하여 암호화함으로써 생성되고,
상기 제1 암호문과 상기 제2 암호문은 완전동형암호 기법의 암호화 알고리즘을 이용하여 생성되는,
인증 장치.
According to claim 7,
The first ciphertext is generated by encrypting a first binary code corresponding to the first biometric data using the user's private key;
The second ciphertext is generated by encrypting a second binary code corresponding to the second biometric data using the user's private key;
The first ciphertext and the second ciphertext are generated using an encryption algorithm of a fully homomorphic encryption technique,
authentication device.
제8항에 있어서,
상기 나눗셈 연산부는 상기 제1 이진 코드 또는 상기 제2 이진 코드에 포함되는 비트의 수를 암호화하고, 암호화된 상태에서 상기 나눗셈 연산을 수행하는,
인증 장치.
According to claim 8,
The division operation unit encrypts the number of bits included in the first binary code or the second binary code and performs the division operation in an encrypted state,
authentication device.
KR1020220044464A 2022-01-13 2022-04-11 Device and method for multi-factor authentication using bitwise fully homomorphic envryption KR20230109526A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220005317 2022-01-13
KR1020220005317 2022-01-13

Publications (1)

Publication Number Publication Date
KR20230109526A true KR20230109526A (en) 2023-07-20

Family

ID=87426418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220044464A KR20230109526A (en) 2022-01-13 2022-04-11 Device and method for multi-factor authentication using bitwise fully homomorphic envryption

Country Status (1)

Country Link
KR (1) KR20230109526A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117061240A (en) * 2023-10-11 2023-11-14 北京金睛云华科技有限公司 Verifiable fingerprint matching privacy protection method in cloud environment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117061240A (en) * 2023-10-11 2023-11-14 北京金睛云华科技有限公司 Verifiable fingerprint matching privacy protection method in cloud environment
CN117061240B (en) * 2023-10-11 2023-12-19 北京金睛云华科技有限公司 Verifiable fingerprint matching privacy protection method in cloud environment

Similar Documents

Publication Publication Date Title
JP4938678B2 (en) Secure calculation of similarity measures
JP6037366B2 (en) Method for authenticating user corresponding to encrypted data and system for authenticating user corresponding to biometric data
KR101755995B1 (en) Method and system for feature vector based remote biometric verification using homomorphic encryption
Panchal et al. Biometric-based cryptography for digital content protection without any key storage
US9531539B2 (en) Information processing apparatus, and information processing method
US11227037B2 (en) Computer system, verification method of confidential information, and computer
US11418319B2 (en) Ensure valid range of values of a vector for distance calculations using homomorphic encryption or functional encryption
Alamélou et al. Pseudoentropic isometries: A new framework for fuzzy extractor reusability
Cheon et al. A reusable fuzzy extractor with practical storage size: Modifying Canetti et al.’s construction
US20150281188A1 (en) Method and apparatus for cryptographic processing
KR102008101B1 (en) Secure biometric authentication method using functional encryption
Agrawal et al. Game-set-MATCH: Using mobile devices for seamless external-facing biometric matching
Sun et al. [Retracted] Face Security Authentication System Based on Deep Learning and Homomorphic Encryption
KR20230109526A (en) Device and method for multi-factor authentication using bitwise fully homomorphic envryption
US10972271B2 (en) Secret authentication code adding device, secret authentication code adding method, and program
JP7098091B2 (en) Confidential information processing system, encryption device, encryption method and encryption program
US9386017B2 (en) Authentication device, system and method
Seo et al. Construction of a New Biometric‐Based Key Derivation Function and Its Application
KR100986980B1 (en) Biometric Authentication Methods, Clients, and Servers
KR102094606B1 (en) Apparatus and method for authentication
JP4440513B2 (en) Credential authentication method
CN116248255B (en) Privacy protection method and system based on network security
US12206778B2 (en) Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
Rathnavibhushana et al. A Social Wallet Scheme with Robust Private Key Recovery
KR102019388B1 (en) High Speed Biometric Authentication with Biometric Privacy

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20220411

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20241008

Patent event code: PE09021S01D