KR20220054059A - 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법 - Google Patents
가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법 Download PDFInfo
- Publication number
- KR20220054059A KR20220054059A KR1020200138524A KR20200138524A KR20220054059A KR 20220054059 A KR20220054059 A KR 20220054059A KR 1020200138524 A KR1020200138524 A KR 1020200138524A KR 20200138524 A KR20200138524 A KR 20200138524A KR 20220054059 A KR20220054059 A KR 20220054059A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- helper data
- bit string
- fuzzy
- key
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- 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/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- 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/3236—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 cryptographic hash functions
- H04L9/3242—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 cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Analysis (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Storage Device Security (AREA)
- Image Analysis (AREA)
- Treatments For Attaching Organic Compounds To Fibrous Goods (AREA)
Abstract
가변 길이 퍼지 데이터로부터 사용자의 키를 복구하기 위한 헬퍼 데이터를 생성하는 장치 및 방법과 상기 헬퍼 데이터를 이용하여 사용자의 키를 복구하는 장치 및 방법이 개시된다. 상기 헬퍼 데이터를 생성하는 방법은 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터들을 수신하는 단계, 랜덤 비트열을 선택하는 단계, 모든 인덱스에 대하여, 랜덤 행렬을 선택하는 단계, 에러를 선택하는 단계, 제1 랜덤 비트열을 선택하고 상기 제1 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 랜덤 행렬을 포함하는 제1 헬퍼 데이터를 생성하는 단계를 수행하는 단계, 및 모든 인덱스에 대한 상기 제1 헬퍼 데이터를 포함하는 헬퍼 데이터를 생성하는 단계를 포함한다.
Description
본 발명은 퍼지 추출기(Fuzzy Extractor)에 관한 것으로, 특히 격자(Lattice)를 이용하여 추가적인 비밀 정보 없이 노이즈(Noise)가 포함된 가변 길이 퍼지 데이터로부터 암호학적인 키로 사용 가능한 동일한 랜덤 비트열(Bit string)을 안전하고 효율적으로 추출하는 장치 및 방법에 관한 것이다.
LWE 문제(Learning with Errors problem).
LWE 문제는 2005년 Regev에 의해 처음 소개되었다. , , , 는 양의 정수이고 와 는 상의 임의의 분포라고 하자. 랜덤하게 선택된 행렬 , , 및 에 대하여, 를 계산하자. 가 주어졌을 때, 를 찾는 것을 LWE 문제라고 정의한다. 일반적으로 는 를, 는 표준편차가 인 가우시안 분포 를 의미한다.
LWR 문제(Learning with Rounding problem).
LWR 문제는 2012년 Banerjee, Peikert, 그리고 Rosen에 의해 처음 소개되었다. LWE 문제의 변형으로, 차이점은 의 정확한 값을 숨기기 위해 LWE 문제에서는 가우시안 분포에서 선택한 작은 에러를 더해주는데, 이 부분을 대신하여 라운딩 함수 를 연산하는 것이다. 동일한 와 에 대해서는 항상 동일한 값이 출력되기 때문에, 결정적인(Deterministic) 에러가 더해지는 것으로도 볼 수 있다. , , , , 및 는 양의 정수이고, 는 상의 임의의 분포라고 하자. 랜덤하게 선택된 행렬 와 에 대하여, 를 계산하자. 가 주어졌을 때, 를 찾는 것을 LWR 문제라고 정의한다.
퍼지 추출기(Fuzzy Extractor, FE).
퍼지 추출기는 (임계치 이하의) 노이즈가 포함된 두 개의 데이터로부터 동일한 랜덤 비트열을 추출하는 기술이다. 퍼지 데이터의 대표적인 예로는 사용자의 생체 정보가 있으며, 퍼지 추출기를 통해 출력된 비트열은 암호 기법이나 인증 프로토콜에서 사용자의 비밀키로 사용될 수 있다. 퍼지 추출기 FE = (Gen, Rec )는 두 개의 알고리즘으로 구성된다.
(Correctness) 두 퍼지 데이터 와 의 거리를 , 임계치(Threshold value)를 라고 하자. 를 만족하는 임의의 두 퍼지 데이터 , 와 Gen()을 통해 생성된 에 대하여, 이 성립한다.
오류 정정 코드(Error Correcting Code, ECC).
오류 정정 코드는 데이터를 전송하는 과정에서 오류가 발생했을 때 오류를 찾아내서 원래 값으로 복원할 수 있도록 하는 기법이다. 비트열에서의 오류 정정 코드의 경우, 1비트를 표현하기 위하여 1비트 이상의 중복(Redundant) 혹은 패리티(Parity) 비트를 사용함으로써 전송 과정에서 발생하는 오류를 탐지하고 정정할 수 있도록 한다. 오류 정정 코드 ECC = (Encode, Decode)는 두 개의 알고리즘으로 구성된다.
(Correctness) 두 코드워드 의 해밍 거리(Hamming distance)를 , ECC로 처리 가능한 최소 해밍 거리를 라고 하자. 를 통해 생성된 코드워드 와 를 만족하는 임의의 코드워드 에 대하여, 이 성립한다.
엠블럼 인코딩(EMBLEM encoding).
LWE와 LWR 문제를 기반으로 설계되는 기법의 경우 에러(Error)가 공개 정보에 포함되어 있기 때문에, 정확한 결과값을 얻기 위해서는 이를 처리하기 위한 인코딩/디코딩 방법이 추가적으로 필요하다. LWE 또는 LWR 문제를 기반으로 하여 설계되는 퍼지 추출기의 경우 공개된 헬퍼 데이터에 에러가 포함되며, 키를 복원(Rec)하는 과정에서 해당 에러를 제거하고 처음 생성(Gen)한 키를 정확하게 얻기 위하여 인코딩/디코딩이 사용된다. 본 발명에서는 엠블럼 인코딩/디코딩 방법을 사용한다(비특허문헌 1 참조).
- 본 발명에서 사용하는 엠블럼 인코딩 함수는 길이가 인 비트열 , 키를 복원할 때 발생하는 에러의 크기 , 그리고 모듈러스(Modulus) 를 입력으로 받아 상의 벡터 을 출력한다. 엠블럼 디코딩 함수는 인코딩의 역함수로, 벡터 과 모듈러스 를 입력으로 받아 벡터 을 출력한다.
의사 난수 생성기(Pseudo-random Generator).
의사 난수 생성기는 실제 랜덤과 구분하기 어려운 비트열을 생성하는 알고리즘이다. 의사 난수 생성기 PRG는 랜덤 비트열 을 입력받아 비트열 를 출력한다. 이때 를 만족하며, 비트열 는 에서 랜덤하게 선택한 비트열과 다항 시간 안에 구분하기 어렵다.
메시지 인증 코드(Message Authentication Code, MAC).
메시지 인증 코드는 데이터 전송에서 오류가 발생하였는지 확인할 수 있는 알고리즘이다. 메시지 인증 코드 MAC는 일반적인 해시함수와 다르게 함수의 입력으로 비밀키 가 필요하며, 메시지 에 대해 비밀키 를 이용하여 메시지 인증 코드 을 생성한다. 데이터에 오류가 발생하였는지 확인을 위해서는 비밀키 에 대해 최초에 생성한 메시지 인증 코드 와 추후 전달받은 메시지 에 대한 메시지 인증 코드 를 비교함으로써 확인할 수 있다.
대칭키
암호(Symmetric-key Encryption).
본 발명에서는 상술한 기법들을 이용하여 추가적인 비밀 정보 없이 노이즈가 있는 가변 길이 퍼지 데이터로부터 암호학적인 키로 사용이 가능한 동일한 랜덤 비트열을 안전하고 효율적으로 추출하는 방법을 제안하고자 한다.
M. S대 S. Kim, D.H. Lee, and J.H. Park, "EMBLEM: (R)LWE-based key encapsulation with a new multi-bit encoding method", Int. J. Inf. Secur. (2019).
본 발명이 이루고자 하는 기술적인 과제는 생체 정보와 같이 측정할 때마다 노이즈가 발생하는 가변 길이 퍼지 데이터를 이용하여, 추가적인 비밀 정보를 사용하지 않고도 암호학적 키로 사용할 수 있는 동일한 랜덤 비트열을 출력하는 퍼지 추출 장치 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법은 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터들()을 수신하는 단계, 랜덤 비트열()을 선택하는 단계, 모든 ()에 대하여, 랜덤 행렬()을 선택하는 단계, 에러를 선택하는 단계, 제1 랜덤 비트열()을 선택하고 상기 제1 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 랜덤 행렬을 포함하는 제1 헬퍼 데이터를 생성하는 단계를 수행하는 단계, 및 모든 에 대한 상기 제1 헬퍼 데이터를 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고, 상기 는 보안 상수이고, 상기 , 상기 , 상기 , 및 상기 는 임의의 자연수이다.
본 발명의 일 실시예에 따른, 키를 복구하는 방법은 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 사용자의 제2 퍼지 데이터()와 헬퍼 데이터()를 수신하는 단계, 상기 헬퍼 데이터에서 을 만족하는 첫 번째 인덱스 를 선택하는 단계, 제1 수학식을 연산하는 단계, 상기 제1 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 비트열()을 생성하는 단계, 의사 난수 생성기를 이용하여 상기 제2 비트열로부터 난수()를 생성하는 단계, 메시지 인증 코드()를 생성하는 단계, 및 상기 메시지 인증 코드와 상기 헬퍼 데이터를 비교한 후 대칭키 암호의 복호화 알고리즘을 이용하여 제1 비트열()을 생성하는 단계를 포함하고, 상기 제1 수학식은 이고, 상기 는 엠블럼 인코딩 기법의 디코딩 함수이고, 모듈러스를 의미하는 상기 는 임의의 자연수이다.
본 발명의 다른 실시예에 따른, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법은 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터들()을 수신하는 단계, 랜덤 비트열()을 선택하는 단계, 모든 ()에 대하여, 랜덤 행렬()을 선택하는 단계, 제1 랜덤 비트열()을 선택하고 상기 제1 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘()을 수행하는 단계, 및 상기 랜덤 행렬을 포함하는 제1 헬퍼 데이터를 생성하는 단계를 수행하는 단계, 및 모든 에 대한 상기 제1 헬퍼 데이터를 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고, 상기 는 보안 상수이고, 상기 , 상기 , 상기 , 및 상기 는 임의의 자연수이다.
본 발명의 다른 실시예에 따른, 키를 복구하는 방법은 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 사용자의 제2 퍼지 데이터()와 헬퍼 데이터()를 수신하는 단계, 상기 헬퍼 데이터에서 을 만족하는 첫 번째 인덱스 를 선택하는 단계, 제1 수학식을 연산하는 단계, 상기 제1 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 비트열()을 생성하는 단계, 의사 난수 생성기를 이용하여 상기 제2 비트열로부터 난수()를 생성하는 단계, 메시지 인증 코드()를 생성하는 단계, 및 상기 메시지 인증 코드와 상기 헬퍼 데이터를 비교한 후 대칭키 암호의 복호화 알고리즘을 이용하여 제1 비트열()을 생성하는 단계를 포함하고, 상기 제1 수학식은 이고, 상기 는 엠블럼 인코딩 기법의 디코딩 함수이고, 모듈러스를 의미하는 상기 는 임의의 자연수이다.
본 발명의 실시예에 따른 퍼지 추출 장치 및 방법에 의할 경우, 측정시마다 노이즈가 발생하는 가변 길이 퍼지 데이터를 이용하여 암호학적 키로 사용이 가능한 동일한 랜덤 비트열을 생성할 수 있다.
또한, 본 발명에 의할 경우, 임계치 범위 내에 속하는 가변 길이 퍼지 데이터에 대해서만 동일한 랜덤 비트열을 생성하고 임계치를 초과하는 노이즈가 포함된 데이터에 대해서는 서로 다른 비트열이 출력된다.
또한, 본 발명에 의할 경우, 양자 컴퓨팅 환경에서도 공개된 정보와 출력된 비트열로부터 입력값인 퍼지 데이터의 정보가 노출되지 않는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 LWE 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 다른 실시예에 따른 LWR 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 퍼지 추출 시스템을 도시한다.
도 4는 도 3에 도시된 제1 단말의 기능 블럭도이다.
도 5는 도 3에 도시된 제2 단말의 기능 블럭도이다.
도 1은 본 발명의 일 실시예에 따른 LWE 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 다른 실시예에 따른 LWR 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 퍼지 추출 시스템을 도시한다.
도 4는 도 3에 도시된 제1 단말의 기능 블럭도이다.
도 5는 도 3에 도시된 제2 단말의 기능 블럭도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
본 발명의 개념에 따른 실시예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
본 발명에서, 퍼지 데이터(Fuzzy data)는 가변 길이의 비트열 형태로 표현된다. 지문 정보, 홍채 정보 등과 같은 퍼지 데이터는 사용자의 고유한 값으로, 사용자의 프라이버시 보호를 위해 퍼지 데이터는 시스템 전체적으로 노출되지 않도록 하여야 한다. 또한, 본 발명에서는 가변 길이의 비트열의 형태를 가진 퍼지 데이터를 처리하기 위해 초기 입력 단계에서 입력 기기를 여러 번 이용하여 다양한 길이의 퍼지 데이터를 입력받을 수 있다.
길이가 (은 임의의 자연수)인 두 벡터 와 의 거리(distance)는 로 정의된다. 즉, 벡터 형태로 표현되는 두 개의 퍼지 데이터의 거리는 서로 상이한 값을 갖는 대응되는 비트의 개수를 의미할 수 있다. 임계치 는 0과 사이의 정수이다. 본 발명에서 두 개의 퍼지 데이터의 거리가 임계치보다 작은 경우, 두 개의 퍼지 데이터로부터 동일한 랜덤 비트열이 생성되어야 한다.
본 발명에서는 오류 정정 코드 를 사용한다. 알고리즘(오류 정정 코드의 인코딩 알고리즘)은 길이가 인 비트열을 입력으로 받아 길이가 인 비트열을 출력하고, 알고리즘(오류 정정 코드의 디코딩 알고리즘)은 반대로 길이가 인 비트열을 입력받아 길이가 인 비트열을 출력한다.
또한, 본 발명에서는 대칭키 암호 를 사용한다. 알고리즘(대칭키 암호의 암호화 알고리즘)과 알고리즘(대칭키 암호의 복호화 알고리즘)은 길이가 인 비트열을 비밀키로 사용하여 메시지에 대한 암호문을 생성하거나, 암호문을 복호화하여 메시지를 복원한다.
본 발명에서는 (1) LWE 문제를 기반으로 설계된 퍼지 추출기와 (2) LWR 문제를 기반으로 설계된 퍼지 추출기를 제안한다. 이하에서는, 각 퍼지 추출기의 구체적인 알고리즘을 설명하기로 한다.
(1)
LWE
기반의 퍼지 추출기
본 기법에서는 엠블럼 인코딩/디코딩 함수 EC/DC를 사용한다. 인코딩 함수 EC의 입력값 중에서 에러의 크기 와 모듈러스 는 이미 시스템 파라미터로 주어진 값으로 간주하여, 본 발명에서는 의 입력값으로 비트열 만 입력한다. 디코딩 함수 도 마찬가지로 입력값 를 고정된 값으로 간주하여 실제 입력값으로는 벡터 만 입력한다.
생성(Gen)
생성 단계에서는 번의 측정을 통해 생성한 가변 길이 퍼지 데이터들 을 입력으로 받아 아래와 같이 사용자의 헬퍼 데이터(Helper data) 와 랜덤 비트열 를 생성한다. 여기서, 는 보안 상수(security parameter)를 의미할 수 있다. 또한, 랜덤 비트열 는 비밀키(secret key) 등과 같은 암호학적인 키로 사용 가능하며, 헬퍼 데이터 는 복원(Rec) 단계에서 동일한 랜덤 비트열을 생성하기 위해 이용되는 데이터이다.
(a) 랜덤 행렬 를 선택한다. 자연수 는 에 의해 결정된다. 즉, 격자(Lattice)를 나타내는 행렬 의 원소들은 비교적 작은 값들로 구성될 수 있다. 예시적으로, 은 7이고 는 13일 수 있다.
복원(
Rec
)
(e) 생성한 가 와 같은지 확인한다. 같으면 을 생성하여 출력한다. 다르면 를 만족하는 다음 인덱스로 (a)부터 다시 수행한다. 조건을 만족하는 인덱스가 없으면 새로운 퍼지 데이터를 입력받아 1부터 다시 수행한다.
복원 단계에서 입력된 퍼지 데이터 가 생성 단계에서 사용한 가변 길이 퍼지 데이터들 중 하나인 와 퍼지 데이터의 길이가 같고, 와 의 데이터 간 거리가 임계치보다 작으면, 복원 단계에서 출력한 비트열 가 와 같음을 아래 과정들을 통해 확인할 수 있다.
(2)
LWR
기반의 퍼지 추출기
본 기법에서는 엠블럼 인코딩/디코딩 함수(EC/DC)를 이용한다. 인코딩 함수 EC의 입력값 중에서 에러의 크기 와 모듈러스 는 이미 시스템 파라미터로 주어진 값으로 간주하여, 본 발명에서는 의 입력값으로 비트열 만 입력한다. 디코딩 함수 도 마찬가지로 입력값 를 고정된 값으로 간주하여 실제 입력값으로는 벡터 만 입력한다. 또한, 본 기법에서는 (는 양의 정수)로 정의한다. LWR 기반의 퍼지 추출기의 구체적인 단계는 다음과 같다.
생성(Gen)
생성 단계에서는 번(은 임의의 자연수)의 측정을 통해 생성한 가변 길이 퍼지 데이터들 을 입력으로 받아 아래와 같이 사용자의 헬퍼 데이터 와 랜덤 비트열 를 생성한다. 여기서, 는 보안 상수를 의미할 수 있다. 또한, 랜덤 비트열 는 비밀키(secret key) 등과 같은 암호학적인 키로 사용가능하며, 헬퍼 데이터 는 복원(Rec) 단계에서 동일한 랜덤 비트열을 생성하기 위해 이용되는 데이터이다.
복원(
Rec
)
(e) 생성한 가 와 같은지 확인한다. 확인 결과, 두 값이 같으면 을 생성하여 출력한다. 다르면 를 만족하는 다음 인덱스로 (a)부터 다시 수행한다. 조건을 만족하는 인덱스가 없으면 새로운 퍼지 데이터를 입력받아 1부터 다시 수행한다.
복원 단계에서 입력된 퍼지 데이터 가 생성 단계에서 사용한 가변 길이 퍼지 데이터들 중 하나인 와 퍼지 데이터의 길이가 같고, 와 의 데이터 간 거리가 임계치보다 작다면, 복원 단계에서 출력한 비트열 가 와 같음을 아래 과정들을 통해 확인할 수 있다.
도 3은 본 발명의 일 실시예에 따른 퍼지 추출 시스템을 도시한다.
도 3을 참조하면, 인증 시스템, 키 추출 시스템, 키 복구 시스템 등으로 명명될 수도 있는 퍼지 추출 시스템(10)은 제1 단말(100), 제2 단말(300), 및 서버(500)를 포함한다.
제1 단말(100)은 사용자의 제1 퍼지 데이터들을 이용하여 제1 키와 상기 제1 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성한다. 생성된 헬퍼 데이터는 서버(500)로 송신될 수 있으며, 상기 제1 키는 제1 단말(100) 내에서 삭제될 수 있다. 또한, 상기 헬퍼 데이터는 상기 사용자를 식별할 수 있는 식별 정보(예컨대, 상기 사용자의 ID)와 함께 상기 서버(500)로 송신될 수도 있다. 실시예에 따라, 제1 단말(100)과 서버(500) 사이에서 상기 사용자를 인증하기 위한 과정이 추가될 수도 있다.
서버(500)는 제1 단말(100)로부터 수신된 상기 헬퍼 데이터를 상기 사용자의 식별 정보와 함께 서버(500) 내에 구비된 저장 장치 또는 서버(500)와는 별도로 분리되어 구현된 저장 장치에 저장할 수 있다. 서버(500)는 상기 헬퍼 데이터를 요청하는 임의의 단말, 예컨대 제2 단말(500)의 요청에 응답하여 상기 헬퍼 데이터를 상기 임의의 단말로 송신할 수 있다. 상기 임의의 단말은 상기 헬퍼 데이터를 이용하여 상기 제1 단말이 생성한 상기 제1 키와 동일한 제2 키를 생성(또는 복구)할 수 있다.
제2 단말(300)은 사용자의 제2 퍼지 데이터와 서버(500)로부터 수신된 상기 헬퍼 데이터를 이용하여 상기 제1 키와 동일한 제2 키를 생성(또는 복구)할 수 있다. 구체적으로, 제2 단말(300)은 상기 사용자의 식별 정보(예컨대, 상기 사용자의 ID)를 포함하는 헬퍼 데이터 요청 메시지를 서버(500)로 송신하고, 서버(500)는 상기 헬퍼 데이터 요청 메시지에 응답하여 상기 사용자의 식별 정보에 대응하는 헬퍼 데이터를 제2 단말(300)로 송신할 수 있다. 실시예에 따라, 서버(500)는 상기 사용자에 대한 인증 과정을 수행한 후에, 인증에 성공한 경우에만 상기 헬퍼 데이터를 상기 제2 단말(300)로 송신할 수 있다. 또한, 실시예에 따라 제2 단말(300)은 제1 단말(100)을 의미할 수도 있다.
제1 단말(100), 제2 단말(300), 및 서버(500) 각각은 각종 연산 처리 및 신호 생성이 가능한 적어도 하나의 전자 장치를 포함할 수 있다. 여기서, 적어도 하나의 전자 장치는 프로세서 및/또는 프로세서가 설치된 컴퓨팅 장치를 포함할 수 있다. 프로세서는 중앙 처리 장치(CPU, Central Processing Unit), 마이크로 컨트롤러 유닛(MCU, Micro Controller Unit), 마이컴(Micom, Micro Processor), 애플리케이션 프로세서(AP, Application Processor), 전자 제어 유닛(ECU, Electronic Controlling Unit), 그래픽 처리 장치(GPU, Graphic Processing Unit) 및/또는 각종 연산 처리 및 제어 신호의 생성이 가능한 처리 장치 등을 포함할 수 있다. 이들 처리 장치는 하나 또는 둘 이상의 반도체 칩 및 관련 부품을 이용하여 구현될 수 있다. 또한, 컴퓨팅 장치는 데스크톱 컴퓨터, 랩톱 컴퓨터, 서버용 컴퓨터, 스마트 폰, 태블릿 피씨, 스마트 시계, 두부 장착형 디스플레이(HMD, Head Mounted Display) 장치, 휴대용 게임기, 내비게이션 장치, 개인용 디지털 보조기(PDA, Personal Digital Assistant), 인공지능 스피커 장치, 디지털 텔레비전, 셋톱 박스, 로봇, 가전 기기, ATM(Automated Teller Machine), 벤딩 머신(Vending machine), 기계 장치 및/또는 이외 정보 처리 기능을 수행할 수 있는 적어도 하나의 전자 장치를 포함할 수 있다.
제1 단말(100), 제2 단말(300), 및 서버(500) 각각은 저장부와 데이터 송수신이 가능하도록 직접 또는 간접적으로 연결되어 있을 수 있다. 저장부는 제1 단말(100)에 의한 헬퍼 데이터 생성 과정에서 이용되거나 이를 이용하여 생성되는 데이터, 제2 단말(300)에 의한 제2 키 복구 과정에서 이용되거나 이를 이용하여 생성되는 데이터, 또는 서버(500)에 저장되는 각 사용자의 식별 정보와 헬퍼 데이터를 일시적으로 또는 비일시적으로 저장할 수 있다. 저장부는 주기억장치 및 보조기억장치 중 적어도 하나를 포함할 수 있으며, 주기억장치는 롬(ROM) 및/또는 램(RAM) 등을 포함할 수 있고, 보조기억장치는 플래시 메모리 장치, SD(Secure Digital) 카드, 솔리드 스테이트 드라이브(SSD, Solid State Drive), 하드 디스크 드라이브(HDD, Hard Disc Drive) 컴팩트 디스크(CD), 디브이디(DVD) 및/또는 레이저 디스크 등을 포함할 수 있다.
제1 단말(100), 제2 단말(300), 및 서버(500) 각각은 저장부에 저장된 애플리케이션을 구동시켜, 헬퍼 데이터의 생성, 제2 키의 복구 등 다양한 동작을 수행할 수도 있다. 여기서, 애플리케이션은, 설계자에 의해 직접 작성되어 저장부에 저장 또는 갱신된 것일 수도 있고, 또는 유선 또는 무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망 등을 통하여 획득 또는 갱신된 것일 수도 있다.
도 4는 도 3에 도시된 제1 단말의 기능 블럭도이다.
도 4를 참조하면, 제1 단말(100)은 퍼지 데이터 수신부(110), 키 생성부(120), 헬퍼 데이터 생성부(130), 헬퍼 데이터 송신부(140), 및 저장부(150) 중 적어도 하나 이상을 포함할 수 있다. 제1 단말(100)은 사용자의 퍼지 데이터들을 이용하여 제1 키와 상기 제1 키를 복구하는 과정에서 필요한 헬퍼 데이터를 생성하고, 상기 헬퍼 데이터를 서버(500)로 송신할 수 있다.
퍼지 데이터 수신부(110)는 소정의 입출력 장치를 이용하여 사용자로부터 지문 정보, 홍채 정보 등과 같은 생체 정보를 수신하고, 임의의 변환 알고리즘을 이용하여 수신된 생체 정보를 비트열 형태로 변환할 수 있다. 사용자의 생체 정보의 수신과 비트열 형태의 변환 동작을 여러 차례 수행될 수 있다. 이 경우, 비트열 형태의 퍼지 데이터들 각각은 서로 동일한 길이를 갖거나 서로 상이한 길이를 가질 수 있다. 즉, 각 퍼지 데이터의 길이는 미리 정해진 길이를 갖지 않으며 생체 정보를 수신할 때마다 또는 비트열 형태로 변환할 때마다 상이한 길이를 갖는 퍼지 데이터가 생성될 수 있다. 또한, 실시예에 따라 퍼지 데이터 수신부(110)는 비트열 형태로 변환된 퍼지 데이터를 복수회 수신할 수도 있다. 이 경우에도, 수신된 퍼지 데이터들 각각의 길이는 동일할 수도 있고 상이할 수도 있다. 즉, 본 발명에서 말하는 퍼지 데이터는 가변 길이의 비트열 형태로 변환된 데이터를 의미할 수 있다.
퍼지 데이터 수신부(110)에 의해 수신된 퍼지 데이터들 및/또는 비트열로 변환된 퍼지 데이터들은 저장부(150)에 저장될 수 있다. 실시예에 따라, 사용자의 퍼지 데이터들은 미리 저장부(150)에 저장될 수도 있고, 이 경우에 퍼지 데이터 수신부(110)는 제1 단말(100)에서 생략될 수도 있다.
키 생성부(120)는 랜덤 비트열()을 선택할 수 있고, 상기 랜덤 비트열은 제1 키를 의미할 수 있다. 키 생성부(120)에 의해 생성된 랜덤 비트열은 저장부(150)에 저장될 수 있다.
헬퍼 데이터 송신부(140)는 생성된 헬퍼 데이터를 서버(500)로 송신할 수 있다. 이때, 헬퍼 데이터 송신부(140)는 사용자의 식별 정보를 서버(500)로 송신할 수도 있다.
저장부(150)에는 퍼지 데이터 수신부(110)에 의해 수신된 퍼지 데이터, 고정된 길의의 비트열로 변환된 퍼지 데이터, 키 생성부(120)에 의해 선택된 랜덤 비트열, 오류 정정 코드의 인코딩 결과, 헬퍼 데이터 생성부(130)에 의해 생성된 헬퍼 데이터, 및 헬퍼 데이터를 생성하는 과정 중에 생성되는 데이터 등이 일시적으로 또는 비일시적으로 저장될 수 있다. 다만, 사용자의 생체 데이터 및/또는 랜덤 비트열은 사용자의 프라이버시 보호를 위해 제1 단말(100), 즉 저장부(150) 내에서 삭제되는 것이 바람직하다.
도 5는 도 3에 도시된 제2 단말의 기능 블럭도이다.
도 5를 참조하면, 제2 단말(300)은 퍼지 데이터 수신부(310), 헬퍼 데이터 수신부(320), 키 복구부(330), 및 저장부(340) 중 적어도 하나 이상을 포함할 수도 있다.
퍼지 데이터 수신부(310)는 소정의 입출력 장치를 이용하여 사용자로부터 지문 정보, 홍채 정보 등과 같은 생체 정보를 수신하고, 임의의 변환 알고리즘을 이용하여 수신된 생체 정보를 비트열 형태로 변환할 수 있다. 실시예에 따라, 퍼지 데이터 수신부(310)는 비트열 형태로 변환된 퍼지 데이터를 수신할 수도 있다. 즉, 본 발명에서 말하는 퍼지 데이터는 비트열 형태로 변환된 데이터를 의미할 수 있다. 퍼지 데이터 수신부(310)에 의해 수신된 퍼지 데이터 및/또는 비트열로 변환된 퍼지 데이터는 저장부(340)에 저장될 수 있다. 실시예에 따라, 퍼지 데이터 수신부(310)는 사용자의 식별 정보를 수신할 수도 있다.
헬퍼 데이터 수신부(320)는 서버(500)로부터 사용자의 헬퍼 데이터를 수신한다. 이를 위해, 헬퍼 데이터 수신부(320)는 사용자의 식별 정보를 포함하는 헬퍼 데이터 요청을 서버(500)로 송신할 수 있다. 실시예에 따라, 소정의 사용자 인증 동작이 수행될 수도 있다. 서버(500)는 사용자의 식별 정보에 대응하는 헬퍼 데이터를 헬퍼 데이터 수신부(320)로 송신할 수 있다. 헬퍼 데이터 수신부(320)에 의해 수신된 헬프 데이터는 저장부(340)에 저장될 수 있다.
키 복구부(330)는 앞서 설명한 2가지 기법 중에서 헬퍼 데이터를 생성하는 과정에 사용된 기법을 이용하여 사용자의 퍼지 데이터와 헬퍼 데이터로부터 제2 키를 복구할 수 있다.
(1) LWE 기반의 퍼지 추출 기법을 이용하는 경우, 키 복구부(330)는 헬퍼 데이터에서 을 만족하는 첫 번째 인덱스 를 선택한 후 아래 과정을 수행한다. 만약 존재하지 않는다면, 퍼지 데이터 수신부(310)는 새로운 퍼지 데이터를 수신하고 키 복구부(330)는 새로운 퍼지 데이터를 이용하여 키 복구 과정을 수행한다.
(e) 생성한 가 와 같은지 확인한다. 같으면 을 생성하여 출력한다. 다르면 를 만족하는 다음 인덱스로 (a)부터 다시 수행한다. 조건을 만족하는 인덱스가 없는 경우, 퍼지 데이터 수신부(310)는 새로운 퍼지 데이터를 수신하고, 키 복구부(330)는 새로운 퍼지 데이터를 이용하여 키 복구 과정을 수행한다.
복원 단계에서 입력된 퍼지 데이터 가 생성 단계에서 사용한 가변 길이 퍼지 데이터들 중 하나인 와 퍼지 데이터의 길이가 같고, 와 의 데이터 간 거리가 임계치보다 작으면, 복원 단계에서 출력한 비트열 가 와 같다.
(3) LWR 기반의 퍼지 추출 기법을 이용하는 경우, 키 복구부(330)는 헬퍼 데이터에서 를 만족하는 첫 번째 인덱스 를 선택한다. 만약 존재하지 않는다면, 퍼지 데이터 수신부(310)는 새로운 퍼지 데이터를 수신하고, 키 복구부(330)는 새로운 퍼지 데이터를 이용하여 키 복구 과정을 수행한다.
(e) 생성한 가 와 같은지 확인한다. 확인 결과, 두 값이 같으면 을 생성하여 출력한다. 다르면 를 만족하는 다음 인덱스로 (a)부터 다시 수행한다. 조건을 만족하는 인덱스가 없는 경우, 퍼지 데이터 수신부(310)는 새로운 퍼지 데이터를 수신하고, 키 복구부(330)는 새로운 퍼지 데이터를 이용하여 키 복구 과정을 수행한다.
복원 단계에서 입력된 퍼지 데이터 가 생성 단계에서 사용한 가변 길이 퍼지 데이터들 중 하나인 와 퍼지 데이터의 길이가 같고, 와 의 데이터 간 거리가 임계치보다 작다면, 복원 단계에서 출력한 비트열 가 와 같다.
저장부(340)에는 퍼지 데이터 수신부(310)에 의해 수신된 퍼지 데이터, 비트열로 변환된 퍼지 데이터, 헬퍼 데이터 수신부(320)에 의해 수신된 헬퍼 데이터, 키 복구부(330)에 의해 복구된 제2 키, 상기 제2 키를 복구하는 과정에서 생성되는 데이터가 일시적으로 또는 비일시적으로 저장될 수 있다. 다만, 사용자의 생체 데이터 및/또는 상기 제2 키는 사용자의 프라이버시 보호를 위해 제2 단말(300), 즉 저장부(340) 내에서 삭제되는 것이 바람직하다.
이상에서 설명된 장치는 하드웨어 구성 요소, 소프트웨어 구성 요소, 및/또는 하드웨어 구성 요소 및 소프트웨어 구성 요소의 집합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성 요소는, 예를 들어, 프로세서, 콘트롤러, 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)도 가능하다.
소프트웨어는 컴퓨터 프로그램(Computer Program), 코드(Code), 명령(Instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(Collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성 요소(Component), 물리적 장치, 가상 장치(Virtual Equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(Signal Wave)에 영구적으로, 또는 일시적으로 구체화(Embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 좋ㅂ하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-optical Media), 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성 요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성 요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100 : 제1 단말
110 : 퍼지 데이터 수신부
120 : 키 생성부 130 : 헬퍼 데이터 생성부
140 : 헬퍼 데이터 송신부 150 : 저장부
300 : 제2 단말 310 : 퍼지 데이터 수신부
320 : 헬퍼 데이터 수신부 330 : 키 복구부
340 : 저장부 500 : 서버
120 : 키 생성부 130 : 헬퍼 데이터 생성부
140 : 헬퍼 데이터 송신부 150 : 저장부
300 : 제2 단말 310 : 퍼지 데이터 수신부
320 : 헬퍼 데이터 수신부 330 : 키 복구부
340 : 저장부 500 : 서버
Claims (17)
- 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법에 있어서,
상기 사용자의 제1 퍼지 데이터들()을 수신하는 단계;
랜덤 비트열()을 선택하는 단계;
모든 ()에 대하여,
랜덤 행렬()을 선택하는 단계;
에러를 선택하는 단계;
제1 랜덤 비트열()을 선택하고 상기 제1 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘을 수행하는 단계; 및
상기 랜덤 행렬을 포함하는 제1 헬퍼 데이터를 생성하는 단계를 수행하는 단계; 및
모든 에 대한 상기 제1 헬퍼 데이터를 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고,
상기 는 보안 상수이고,
상기 , 상기 , 상기 , 및 상기 는 임의의 자연수인,
헬퍼 데이터를 생성하는 방법. - 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 키를 복구하는 방법에 있어서,
사용자의 제2 퍼지 데이터()와 헬퍼 데이터()를 수신하는 단계;
상기 헬퍼 데이터에서 을 만족하는 첫 번째 인덱스 를 선택하는 단계;
제1 수학식을 연산하는 단계;
상기 제1 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 비트열()을 생성하는 단계;
의사 난수 생성기를 이용하여 상기 제2 비트열로부터 난수()를 생성하는 단계;
메시지 인증 코드()를 생성하는 단계; 및
상기 메시지 인증 코드와 상기 헬퍼 데이터를 비교한 후 대칭키 암호의 복호화 알고리즘을 이용하여 제1 비트열()을 생성하는 단계를 포함하고,
상기 제1 수학식은 이고, 상기 는 엠블럼 인코딩 기법의 디코딩 함수이고,
모듈러스를 의미하는 상기 는 임의의 자연수인,
키를 복구하는 방법. - 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법에 있어서,
상기 사용자의 제1 퍼지 데이터들()을 수신하는 단계;
랜덤 비트열()을 선택하는 단계;
모든 ()에 대하여,
랜덤 행렬()을 선택하는 단계;
제1 랜덤 비트열()을 선택하고 상기 제1 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘()을 수행하는 단계; 및
상기 랜덤 행렬을 포함하는 제1 헬퍼 데이터를 생성하는 단계를 수행하는 단계; 및
모든 에 대한 상기 제1 헬퍼 데이터를 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고,
상기 는 보안 상수이고,
상기 , 상기 , 상기 , 및 상기 는 임의의 자연수인,
헬퍼 데이터를 생성하는 방법. - 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 키를 복구하는 방법에 있어서,
사용자의 제2 퍼지 데이터()와 헬퍼 데이터()를 수신하는 단계;
상기 헬퍼 데이터에서 을 만족하는 첫 번째 인덱스 를 선택하는 단계;
제1 수학식을 연산하는 단계;
상기 제1 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 비트열()을 생성하는 단계;
의사 난수 생성기를 이용하여 상기 제2 비트열로부터 난수()를 생성하는 단계;
메시지 인증 코드()를 생성하는 단계; 및
상기 메시지 인증 코드와 상기 헬퍼 데이터를 비교한 후 대칭키 암호의 복호화 알고리즘을 이용하여 제1 비트열()을 생성하는 단계를 포함하고,
상기 제1 수학식은 이고, 상기 는 엠블럼 인코딩 기법의 디코딩 함수이고,
모듈러스를 의미하는 상기 는 임의의 자연수인,
키를 복구하는 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200138524A KR102425916B1 (ko) | 2020-10-23 | 2020-10-23 | 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200138524A KR102425916B1 (ko) | 2020-10-23 | 2020-10-23 | 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220054059A true KR20220054059A (ko) | 2022-05-02 |
KR102425916B1 KR102425916B1 (ko) | 2022-07-27 |
Family
ID=81593253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200138524A KR102425916B1 (ko) | 2020-10-23 | 2020-10-23 | 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102425916B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070086656A (ko) | 2004-12-28 | 2007-08-27 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 생체측정 데이터 및 비밀 추출 코드를 사용하는 키생성 |
KR20170087755A (ko) | 2016-01-21 | 2017-07-31 | 안동과학대학교 산학협력단 | 퍼지 추론 기반 지정맥 영상 추출 방법 및 그 장치 |
KR20190052631A (ko) * | 2017-11-08 | 2019-05-16 | 아나로그 디바이시즈 인코포레이티드 | 물리적으로 복제 불가능한 기능의 원격 재등록 |
-
2020
- 2020-10-23 KR KR1020200138524A patent/KR102425916B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070086656A (ko) | 2004-12-28 | 2007-08-27 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 생체측정 데이터 및 비밀 추출 코드를 사용하는 키생성 |
KR20170087755A (ko) | 2016-01-21 | 2017-07-31 | 안동과학대학교 산학협력단 | 퍼지 추론 기반 지정맥 영상 추출 방법 및 그 장치 |
KR20190052631A (ko) * | 2017-11-08 | 2019-05-16 | 아나로그 디바이시즈 인코포레이티드 | 물리적으로 복제 불가능한 기능의 원격 재등록 |
Non-Patent Citations (2)
Title |
---|
Charles Herder et al, Trapdoor Computational Fuzzy Extractors and Stateless Cryptographically-Secure Physical Unclonable Functions, IEEE Transactions on Dependable and Secure Computing 14.1 (2016.)* * |
M. S EM, S. Kim, D.H. Lee, and J.H. Park, "EMBLEM: (R)LWE-based key encapsulation with a new multi-bit encoding method", Int. J. Inf. Secur. (2019). |
Also Published As
Publication number | Publication date |
---|---|
KR102425916B1 (ko) | 2022-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2019153867A1 (zh) | 二维码生成及识别 | |
EP3337084B1 (en) | Cryptographic data processing method, cryptographic data processing apparatus, and program | |
US9960914B2 (en) | Semiconductor device and information processing system for encrypted communication | |
KR20150112893A (ko) | 대수적 조작으로부터 데이터를 보호하는 방법 | |
JP5510590B2 (ja) | 伝送システムと方法ならびにプログラム | |
JP6588048B2 (ja) | 情報処理装置 | |
US10985914B2 (en) | Key generation device and key generation method | |
Becker | Robust fuzzy extractors and helper data manipulation attacks revisited: Theory versus practice | |
EP3316160A1 (en) | Authentication method and apparatus for reinforced software | |
KR101942030B1 (ko) | 메시지에 대한 무결성 검증이 지원되는 부호 기반의 암호화가 가능한 전자 장치 및 그 동작 방법 | |
KR101913644B1 (ko) | 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법 | |
JP5609892B2 (ja) | 検証装置、秘密情報復元装置、検証方法、プログラム、及び秘密分散システム | |
KR101852526B1 (ko) | 암호 파일을 관리하는 모바일 장치의 방법 및 그것을 포함하는 암호 파일 관리 시스템 | |
KR101903246B1 (ko) | 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템 | |
EP3142292B1 (en) | Encrypted-data processing method, system, apparatus, and program | |
KR102425916B1 (ko) | 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법 | |
KR102024379B1 (ko) | 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법 | |
KR102398962B1 (ko) | 격자 기반 퍼지 추출 장치 및 방법 | |
US9705675B2 (en) | Method and system making it possible to test a cryptographic integrity of an error tolerant data item | |
TWI249666B (en) | Device using parity check bit to carry out data encryption protection and method thereof | |
CN110784868B (zh) | 无线通信的加密和解密、数据传输方法及无线通信系统 | |
KR101974345B1 (ko) | 전자 서명을 통한 차량 간 보안 통신을 지원하는 커넥티드 차량용 데이터 통신 장치 및 그 동작 방법 | |
JP5573041B2 (ja) | 情報処理装置、コード生成方法、コード検証方法およびプログラム | |
JP2011013428A (ja) | 情報処理装置、コード生成方法、コード検証方法およびプログラム | |
KR101219191B1 (ko) | 휘발성 메모리 내 키 정보 보호 장치 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |