KR102398962B1 - 격자 기반 퍼지 추출 장치 및 방법 - Google Patents

격자 기반 퍼지 추출 장치 및 방법 Download PDF

Info

Publication number
KR102398962B1
KR102398962B1 KR1020190176233A KR20190176233A KR102398962B1 KR 102398962 B1 KR102398962 B1 KR 102398962B1 KR 1020190176233 A KR1020190176233 A KR 1020190176233A KR 20190176233 A KR20190176233 A KR 20190176233A KR 102398962 B1 KR102398962 B1 KR 102398962B1
Authority
KR
South Korea
Prior art keywords
data
helper data
remind
fuzzy
user
Prior art date
Application number
KR1020190176233A
Other languages
English (en)
Other versions
KR20210084740A (ko
Inventor
박종환
이동훈
서민혜
김종현
Original Assignee
상명대학교산학협력단
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 상명대학교산학협력단, 고려대학교 산학협력단 filed Critical 상명대학교산학협력단
Priority to KR1020190176233A priority Critical patent/KR102398962B1/ko
Publication of KR20210084740A publication Critical patent/KR20210084740A/ko
Application granted granted Critical
Publication of KR102398962B1 publication Critical patent/KR102398962B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

퍼지 데이터로부터 사용자의 키를 복구하기 위한 헬퍼 데이터를 생성하는 장치 및 방법과 상기 헬퍼 데이터를 이용하여 사용자의 키를 복구하는 장치 및 방법이 개시된다. 상기 헬퍼 데이터를 생성하는 방법은 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터를 수신하는 단계, 임의의 행렬을 선택하는 단계, 에러를 선택하는 단계, 랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 임의의 행렬을 포함하는 헬퍼 데이터를 생성하는 단계를 포함한다.

Description

격자 기반 퍼지 추출 장치 및 방법{DEVICE AND METHOD FOR FUZZY EXTRACTION FROM LATTICES}
본 발명은 퍼지 추출기(Fuzzy Extractor)에 관한 것으로, 특히 격자(Lattice)를 이용하여 추가적인 비밀 정보 없이 노이즈(Noise)가 포함된 퍼지 데이터로부터 암호학적인 키로 사용 가능한 동일한 랜덤 비트열(Bit string)을 안전하고 효율적으로 추출하는 방법에 관한 것이다.
LWE 문제(Learning with Errors problem).
LWE 문제는 2005년 Regev에 의해 처음 소개되었다.
Figure 112019134726412-pat00001
,
Figure 112019134726412-pat00002
,
Figure 112019134726412-pat00003
, 및
Figure 112019134726412-pat00004
는 양의 정수이고
Figure 112019134726412-pat00005
Figure 112019134726412-pat00006
Figure 112019134726412-pat00007
상의 임의의 분포라고 하자. 랜덤하게 선택된 행렬
Figure 112019134726412-pat00008
,
Figure 112019134726412-pat00009
, 및
Figure 112019134726412-pat00010
에 대하여,
Figure 112019134726412-pat00011
를 계산하자.
Figure 112019134726412-pat00012
가 주어졌을 때,
Figure 112019134726412-pat00013
를 찾는 것을 LWE 문제라고 정의한다. 일반적으로
Figure 112019134726412-pat00014
Figure 112019134726412-pat00015
를,
Figure 112019134726412-pat00016
는 표준편차가
Figure 112019134726412-pat00017
인 가우시안 분포
Figure 112019134726412-pat00018
를 의미한다.
RLWE 문제(Ring LWE problem).
RLWE 문제는 Lyubashevsky 등에 의해 처음 소개되었으며, LWE 문제를 링(Ring) 상에서 정의한 것이다.
Figure 112019134726412-pat00019
Figure 112019134726412-pat00020
는 양의 정수이고
Figure 112019134726412-pat00021
Figure 112019134726412-pat00022
Figure 112019134726412-pat00023
상의 임의의 분포라고 하자.
Figure 112019134726412-pat00024
에서 랜덤하게 선택된 차수가
Figure 112019134726412-pat00025
인 기약 다항식(Irreducible polynomial)
Figure 112019134726412-pat00026
에 대하여,
Figure 112019134726412-pat00027
를 모듈로(Modulo)
Figure 112019134726412-pat00028
에서의 링이라고 하자. 랜덤하게 선택된 링
Figure 112019134726412-pat00029
와 계수(Coefficient)들이 각각
Figure 112019134726412-pat00030
Figure 112019134726412-pat00031
에서 랜덤하게 선택된 링
Figure 112019134726412-pat00032
에 대하여,
Figure 112019134726412-pat00033
를 계산하자. 두 개의 링
Figure 112019134726412-pat00034
가 주어졌을 때,
Figure 112019134726412-pat00035
를 찾는 것을 RLWE 문제라고 정의한다.
LWR 문제(Learning with Rounding problem).
LWR 문제는 2012년 Banerjee, Peikert, 그리고 Rosen에 의해 처음 소개되었다. LWE 문제의 변형으로, 차이점은
Figure 112019134726412-pat00036
의 정확한 값을 숨기기 위해 LWE 문제에서는 가우시안 분포에서 선택한 작은 에러를 더해주는데, 이 부분을 대신하여 라운딩 함수
Figure 112019134726412-pat00037
를 연산하는 것이다. 동일한
Figure 112019134726412-pat00038
Figure 112019134726412-pat00039
에 대해서는 항상 동일한 값이 출력되기 때문에, 결정적인(Deterministic) 에러가 더해지는 것으로도 볼 수 있다.
Figure 112019134726412-pat00040
,
Figure 112019134726412-pat00041
,
Figure 112019134726412-pat00042
,
Figure 112019134726412-pat00043
, 및
Figure 112019134726412-pat00044
는 양의 정수이고,
Figure 112019134726412-pat00045
Figure 112019134726412-pat00046
상의 임의의 분포라고 하자. 랜덤하게 선택된 행렬
Figure 112019134726412-pat00047
Figure 112019134726412-pat00048
에 대하여,
Figure 112019134726412-pat00049
를 계산하자.
Figure 112019134726412-pat00050
가 주어졌을 때,
Figure 112019134726412-pat00051
를 찾는 것을 LWR 문제라고 정의한다.
RLWR 문제(Ring LWR problem).
RLWR 문제는 LWR 문제를 링 상에서 정의한 것으로, RLWE 문제와 유사하다. 차이점은
Figure 112019134726412-pat00052
의 정확한 값을 숨기기 위하여 링
Figure 112019134726412-pat00053
를 더해주는 대신,
Figure 112019134726412-pat00054
의 각 계수에 라운딩 함수를 연산하는 것이다. 랜덤하게 선택된
Figure 112019134726412-pat00055
와 각 계수가
Figure 112019134726412-pat00056
에서 랜덤하게 선택된 링
Figure 112019134726412-pat00057
에 대하여,
Figure 112019134726412-pat00058
를 계산하자. 즉,
Figure 112019134726412-pat00059
Figure 112019134726412-pat00060
번째 계수는
Figure 112019134726412-pat00061
Figure 112019134726412-pat00062
번째 계수에 라운딩 함수
Figure 112019134726412-pat00063
를 연산한 것이다.
Figure 112019134726412-pat00064
가 주어졌을 때,
Figure 112019134726412-pat00065
를 찾는 것을 RLWR 문제라고 정의한다. 여기서, 라운딩 함수는 입력값
Figure 112019134726412-pat00066
Figure 112019134726412-pat00067
를 구한 후,
Figure 112019134726412-pat00068
에 가장 가까운 정수값을 출력하는 함수이다. 출력값은
Figure 112019134726412-pat00069
에서 존재한다.
퍼지 추출기(Fuzzy Extractor, FE).
퍼지 추출기는 (임계치 이하의) 노이즈가 포함된 두 개의 데이터로부터 동일한 랜덤 비트열을 추출하는 기술이다. 퍼지 데이터의 대표적인 예로는 사용자의 생체 정보가 있으며, 퍼지 추출기를 통해 출력된 비트열은 암호 기법이나 인증 프로토콜에서 사용자의 비밀키로 사용될 수 있다. 퍼지 추출기 FE = (Gen, Rec )는 두 개의 알고리즘으로 구성된다.
- 생성(Gen). 퍼지 데이터
Figure 112019134726412-pat00070
를 입력으로 받아 헬퍼 데이터(Helper data)
Figure 112019134726412-pat00071
와 랜덤 비트열
Figure 112019134726412-pat00072
를 출력한다. 여기서,
Figure 112019134726412-pat00073
는 보안 상수를 의미할 수 있다.
- 복원( Rec ). 퍼지 데이터
Figure 112019134726412-pat00074
를 입력으로 받아 비트열
Figure 112019134726412-pat00075
를 출력한다.
(Correctness) 두 퍼지 데이터
Figure 112019134726412-pat00076
Figure 112019134726412-pat00077
의 거리를
Figure 112019134726412-pat00078
, 임계치(Threshold value)를
Figure 112019134726412-pat00079
라고 하자.
Figure 112019134726412-pat00080
를 만족하는 임의의 두 퍼지 데이터
Figure 112019134726412-pat00081
,
Figure 112019134726412-pat00082
Gen(
Figure 112019134726412-pat00083
)을 통해 생성된
Figure 112019134726412-pat00084
에 대하여,
Figure 112019134726412-pat00085
이 성립한다.
오류 정정 코드(Error Correcting Code, ECC ).
오류 정정 코드는 데이터를 전송하는 과정에서 오류가 발생했을 때 오류를 찾아내서 원래 값으로 복원할 수 있도록 하는 기법이다. 비트열에서의 오류 정정 코드의 경우, 1비트를 표현하기 위하여 1비트 이상의 중복(Redundant) 혹은 패리티(Parity) 비트를 사용함으로써 전송 과정에서 발생하는 오류를 탐지하고 정정할 수 있도록 한다. 오류 정정 코드 ECC = (Encode, Decode)는 두 개의 알고리즘으로 구성된다.
- 인코딩(Encode). 비트열
Figure 112019134726412-pat00086
을 입력으로 받아
Figure 112019134726412-pat00087
비트 코드워드(Codeword)
Figure 112019134726412-pat00088
를 출력한다. 여기서,
Figure 112019134726412-pat00089
는 보안 상수를 의미할 수 있다.
- 디코딩(Decode). 코드워드
Figure 112019134726412-pat00090
을 입력으로 받아 길이가
Figure 112019134726412-pat00091
인 비트열
Figure 112019134726412-pat00092
을 출력한다.
(Correctness) 두 코드워드
Figure 112019134726412-pat00093
의 해밍 거리(Hamming distance)를
Figure 112019134726412-pat00094
, ECC로 처리 가능한 최소 해밍 거리를
Figure 112019134726412-pat00095
라고 하자.
Figure 112019134726412-pat00096
를 통해 생성된 코드워드
Figure 112019134726412-pat00097
Figure 112019134726412-pat00098
를 만족하는 임의의 코드워드
Figure 112019134726412-pat00099
에 대하여,
Figure 112019134726412-pat00100
이 성립한다.
엠블럼 인코딩(EMBLEM encoding).
LWE와 LWR 문제를 기반으로 설계되는 기법의 경우 에러(Error)가 공개 정보에 포함되어 있기 때문에, 정확한 결과값을 얻기 위해서는 이를 처리하기 위한 인코딩/디코딩 방법이 추가적으로 필요하다. LWE 또는 LWR 문제를 기반으로 하여 설계되는 퍼지 추출기의 경우 공개된 헬퍼 데이터에 에러가 포함되며, 키를 복원(Rec)하는 과정에서 해당 에러를 제거하고 처음 생성(Gen)한 키를 정확하게 얻기 위하여 인코딩/디코딩이 사용된다. 본 발명에서는 엠블럼 인코딩/디코딩 방법을 사용한다.
- 본 발명에서 사용하는 엠블럼 인코딩 함수는 길이가
Figure 112019134726412-pat00101
인 비트열
Figure 112019134726412-pat00102
, 키를 복원할 때 발생하는 에러의 크기
Figure 112019134726412-pat00103
, 그리고 모듈러스(Modulus)
Figure 112019134726412-pat00104
를 입력으로 받아
Figure 112019134726412-pat00105
상의 벡터
Figure 112019134726412-pat00106
을 출력한다. 엠블럼 디코딩 함수는 인코딩의 역함수로, 벡터
Figure 112019134726412-pat00107
과 모듈러스
Figure 112019134726412-pat00108
를 입력으로 받아 벡터
Figure 112019134726412-pat00109
을 출력한다.
- 퍼지 데이터
Figure 112019134726412-pat00110
를 길이가
Figure 112019134726412-pat00111
인 비트열이라 하자. LWE 문제를 기반으로 설계된 퍼지 추출기의 경우, 키를 복원할 때 발생하는 에러의 크기는
Figure 112019134726412-pat00112
로 계산된다. 여기서,
Figure 112019134726412-pat00113
Figure 112019134726412-pat00114
는 랜덤하게 선택되며
Figure 112019134726412-pat00115
는 임계치가 작은 값
Figure 112019134726412-pat00116
라고 가정하면, 에러의 크기
Figure 112019134726412-pat00117
가 (높은 확률로)
Figure 112019134726412-pat00118
보다 작도록 설정한다.
- LWR 문제를 기반으로 설계된 퍼지 추출기의 경우, 키를 복원할 때 발생하는 에러의 크기는
Figure 112019134726412-pat00119
로 계산된다. 여기서,
Figure 112019134726412-pat00120
는 랜덤하게 선택되며
Figure 112019134726412-pat00121
는 임계치가 작은 값
Figure 112019134726412-pat00122
라고 가정하면, 에러의 크기
Figure 112019134726412-pat00123
가 (높은 확률로)
Figure 112019134726412-pat00124
보다 작도록 설정한다.
엠블럼 인코딩( EC ).
Figure 112019134726412-pat00125
를 입력으로 받아
Figure 112019134726412-pat00126
벡터
Figure 112019134726412-pat00127
을 출력한다.
- 입력값인 비트열
Figure 112019134726412-pat00128
의 길이를
Figure 112019134726412-pat00129
이라고 하고,
Figure 112019134726412-pat00130
이라고 하자. 모든
Figure 112019134726412-pat00131
에 대하여,
Figure 112019134726412-pat00132
를 계산한다.
-
Figure 112019134726412-pat00133
벡터
Figure 112019134726412-pat00134
을 출력한다.
엠블럼 디코딩( DC ).
Figure 112019134726412-pat00135
를 입력으로 받아 벡터
Figure 112019134726412-pat00136
을 출력한다.
- 입력값인 벡터
Figure 112019134726412-pat00137
Figure 112019134726412-pat00138
이라고 하자. 모든
Figure 112019134726412-pat00139
에 대하여,
Figure 112019134726412-pat00140
의 최상위 1비트를
Figure 112019134726412-pat00141
로 설정한다.
-
Figure 112019134726412-pat00142
벡터
Figure 112019134726412-pat00143
을 출력한다.
링-엠블럼 인코딩(R.EMBLEM encoding).
엠블럼 인코딩의 링 버전으로, RLWE와 RLWR 문제를 기반으로 설계되는 기법에 적용할 수 있는 인코딩/디코딩 방법이다.
- 본 발명에서 사용하는 링-엠블럼 인코딩 함수는 길이가
Figure 112019134726412-pat00144
인 비트열
Figure 112019134726412-pat00145
, 키를 복원할 때 발생하는 에러의 크기
Figure 112019134726412-pat00146
, 그리고 모듈러스
Figure 112019134726412-pat00147
를 입력으로 받아
Figure 112019134726412-pat00148
차 다항식
Figure 112019134726412-pat00149
을 출력한다. 링-엠블럼 디코딩 함수는 인코딩의 역함수로,
Figure 112019134726412-pat00150
차 다항식
Figure 112019134726412-pat00151
과 모듈러스
Figure 112019134726412-pat00152
를 입력으로 받아 벡터
Figure 112019134726412-pat00153
을 출력한다.
- 퍼지 데이터
Figure 112019134726412-pat00154
를 길이가
Figure 112019134726412-pat00155
인 비트열이라 하자. RLWE 문제를 기반으로 설계된 퍼지 추출기의 경우, 키를 복원할 때 발생하는 에러의 크기는
Figure 112019134726412-pat00156
로 계산된다. 여기서,
Figure 112019134726412-pat00157
Figure 112019134726412-pat00158
는 랜덤하게 선택되며,
Figure 112019134726412-pat00159
Figure 112019134726412-pat00160
는 각각
Figure 112019134726412-pat00161
Figure 112019134726412-pat00162
을 계수로 하는
Figure 112019134726412-pat00163
차 다항식을 의미한다. 또한, 다항식
Figure 112019134726412-pat00164
에 대하여,
Figure 112019134726412-pat00165
Figure 112019134726412-pat00166
Figure 112019134726412-pat00167
번째 계수를 의미한다.
Figure 112019134726412-pat00168
는 임계치가 작은 값
Figure 112019134726412-pat00169
라고 가정하면, 에러의 크기
Figure 112019134726412-pat00170
가 (높은 확률로)
Figure 112019134726412-pat00171
보다 작도록 설정한다.
- RLWR 문제를 기반으로 설계된 퍼지 추출기의 경우, 키를 복원할 때 발생하는 에러의 크기는
Figure 112019134726412-pat00172
로 계산된다. 여기서,
Figure 112019134726412-pat00173
는 랜덤하게 선택되며
Figure 112019134726412-pat00174
는 임계치가 작은 값
Figure 112019134726412-pat00175
라고 가정하면, 에러의 크기
Figure 112019134726412-pat00176
가 (높은 확률로)
Figure 112019134726412-pat00177
보다 작도록 설정한다.
링-엠블럼 인코딩( R.EC ).
Figure 112019134726412-pat00178
를 입력으로 받아 다항식
Figure 112019134726412-pat00179
을 출력한다.
- 입력값인 비트열
Figure 112019134726412-pat00180
의 길이를
Figure 112019134726412-pat00181
이라고 하고,
Figure 112019134726412-pat00182
이라고 하자. 모든
Figure 112019134726412-pat00183
에 대하여,
Figure 112019134726412-pat00184
를 계산한다.
-
Figure 112019134726412-pat00185
번째 계수가
Figure 112019134726412-pat00186
Figure 112019134726412-pat00187
차 다항식
Figure 112019134726412-pat00188
을 출력한다.
링-엠블럼 디코딩( R.DC ).
Figure 112019134726412-pat00189
를 입력으로 받아 벡터
Figure 112019134726412-pat00190
을 출력한다.
- 입력값인 다항식
Figure 112019134726412-pat00191
Figure 112019134726412-pat00192
번째 계수를
Figure 112019134726412-pat00193
라고 하자. 모든
Figure 112019134726412-pat00194
에 대하여,
Figure 112019134726412-pat00195
의 최상위 1비트를
Figure 112019134726412-pat00196
로 설정한다.
-
Figure 112019134726412-pat00197
벡터
Figure 112019134726412-pat00198
을 출력한다.
본 발명에서는 상술한 기법들을 이용하여 추가적인 비밀 정보 없이 노이즈가 있는 퍼지 데이터로부터 암호학적인 키로 사용이 가능한 동일한 랜덤 비트열을 안전하고 효율적으로 추출하는 방법을 제안하고자 한다.
대한민국 공개특허 제2007-0086656호 (2007.08.27. 공개) 대한민국 공개특허 제2017-0087755호 (2017.07.31. 공개)
본 발명이 이루고자 하는 기술적인 과제는 생체 정보와 같이 측정할 때마다 노이즈가 발생하는 퍼지 데이터를 이용하여, 추가적인 비밀 정보를 사용하지 않고도 암호학적 키로 사용할 수 있는 동일한 랜덤 비트열을 출력하는 퍼지 추출 장치 및 방법을 제공하는 것이다.
본 발명의 일 실시예에 따른 헬퍼 데이터를 생성하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터를 수신하는 단계, 임의의 행렬을 선택하는 단계, 에러를 선택하는 단계, 랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 임의의 행렬을 포함하는 헬퍼 데이터를 생성하는 단계를 포함한다.
본 발명의 일 실시예에 따른 키를 복구하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 사용자의 제2 퍼지 데이터와 상기 사용자의 헬퍼 데이터를 수신하는 단계, 제1 수학식을 연산하는 단계, 제2 수학식을 연산하는 단계, 및 상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 헬퍼 데이터를 생성하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터를 수신하는 단계, 랜덤하게 링를 선택하는 단계, 에러를 선택하는 단계, 랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 링을 포함하는 헬퍼 데이터를 생성하는 단계를 포함한다.
본 발명의 다른 실시예에 따른 키를 복구하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 사용자의 제2 퍼지 데이터와 상기 사용자의 헬퍼 데이터를 수신하는 단계, 제1 수학식을 연산하는 단계, 제2 수학식을 연산하는 단계, 및 상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따른 헬퍼 데이터를 생성하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 제1 퍼지 데이터를 수신하는 단계, 임의의 행렬을 선택하는 단계, 랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 임의의 행렬을 포함하는 헬퍼 데이터를 생성하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따른 키를 복구하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 사용자의 제2 퍼지 데이터와 상기 사용자의 헬퍼 데이터를 수신하는 단계, 제1 수학식을 연산하는 단계, 제2 수학식을 연산하는 단계, 및 상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함한다.
본 발명의 또 다른 실시예에 따른 헬퍼 데이터를 생성하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 상기 사용자의 제1 퍼지 데이터를 수신하는 단계, 랜덤하게 링을 선택하는 단계, 랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(ECC)의 인코딩 알고리즘을 수행하는 단계, 및 상기 링을 포함하는 헬퍼 데이터를 생성하는 단계를 포함한다.
본 발명의 또 다른 실실예에 따른 키를 복구하는 방법은, 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되고, 사용자의 제2 퍼지 데이터와 상기 사용자의 헬퍼 데이터를 수신하는 단계, 제1 수학식을 연산하는 단계, 제2 수학식을 연산하는 단계, 및 상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함한다.
본 발명의 실시 예에 따른 퍼지 추출 장치 및 방법에 의할 경우, 측정시마다 노이즈가 발생하는 퍼지 데이터를 이용하여 암호학적 키로 사용이 가능한 동일한 랜덤 비트열을 생성할 수 있는 효과가 있다.
또한, 본 발명에 의할 경우, 임계치 범위 내에 속하는 퍼지 데이터에 대해서만 동일한 랜덤 피트열을 생성하고 임계치를 초과하는 노이즈가 포함된 데이터에 대해서는 서로 다른 비트열이 출력된다.
또한, 본 발명에 의할 경우, 양자 컴퓨팅 환경에서도 안전하게 사용할 수 있는 퍼지 추출 장치 및 방법을 제공할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시예에 따른 LWE 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 다른 실시예에 따른 RLWE 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 3은 본 발명의 또 다른 실시예에 따른 LWR 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 또 다른 실시예에 따른 RLWR 기반의 퍼지 추출 기법을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 퍼지 추출 시스템을 도시한다.
도 6은 도 5에 도시된 제1 단말의 기능 블럭도이다.
도 7은 도 5에 도시된 제2 단말의 기능 블럭도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 '연결되어 있다'거나 '접속되어 있다'고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 '직접 연결되어 있다'거나 '직접 접속되어 있다'고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 '~사이에'와 '바로 ~사이에' 또는 '~에 이웃하는'과 '~에 직접 이웃하는' 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 그러나, 특허출원의 범위가 이러한 실시 예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
본 발명에서, 퍼지 데이터(Fuzzy data)는 고정된 길의의 비트열 형태로 표현된다. 지문 정보, 홍체 정보 등과 같은 퍼지 데이터는 사용자의 고유한 값으로, 사용자의 프라이버시 보호를 위해 퍼지 데이터는 시스템 전체적으로 노출되지 않도록 해야 한다.
길이가
Figure 112019134726412-pat00199
(
Figure 112019134726412-pat00200
은 임의의 자연수)인 두 벡터
Figure 112019134726412-pat00201
Figure 112019134726412-pat00202
의 거리(distance)는
Figure 112019134726412-pat00203
로 정의된다. 즉, 벡터 형태로 표현되는 두 개의 퍼지 데이터의 거리는 서로 상이한 값을 갖는 대응되는 비트의 개수를 의미할 수 있다. 임계치
Figure 112019134726412-pat00204
는 0과
Figure 112019134726412-pat00205
사이의 정수이다. 본 발명에서 두 개의 퍼지 데이터의 거리가 임계치보다 작은 경우, 두 개의 퍼지 데이터로부터 동일한 랜덤 비트열이 생성되어야 한다. 본 발명에서는 (1) LWE 문제를 기반으로 설계된 퍼지 추출기, (2) RLWE 문제를 기반으로 설계된 퍼지 추출기, (3) LWR 문제를 기반으로 설계된 퍼지 추출기, 그리고 (4) RLWR 문제를 기반으로 설계된 퍼지 추출기를 제안한다. 이하에서는, 각 퍼지 추출기의 구체적인 알고리즘을 설명하기로 한다.
(1) LWE 기반의 퍼지 추출기
본 기법에서는 오류 정정 코드 ECC = ( ECC .Encode, ECC .Decode)를 이용한다. ECC.Encode 알고리즘은 길이가
Figure 112019134726412-pat00206
(
Figure 112019134726412-pat00207
는 임의의 자연수)인 비트열을 입력으로 받아 길이가
Figure 112019134726412-pat00208
(
Figure 112019134726412-pat00209
Figure 112019134726412-pat00210
보다 큰 임의의 자연수)인 비트열을 출력하고, ECC .Decode 알고리즘은 반대로 길이가
Figure 112019134726412-pat00211
인 비트열을 입력받아 길이가
Figure 112019134726412-pat00212
인 비트열을 출력한다.
또한, 본 기법에서는 엠블럼 인코딩/디코딩 함수(EC/DC)를 이용한다. 인코딩 함수 EC의 입력값
Figure 112019134726412-pat00213
중에서 에러의 크기
Figure 112019134726412-pat00214
와 모듈러스
Figure 112019134726412-pat00215
는 이미 시스템 파라미터로 주어진 값으로 간주하여, 본 발명에서는
Figure 112019134726412-pat00216
의 입력값으로 비트열
Figure 112019134726412-pat00217
만 입력한다. 디코딩 함수
Figure 112019134726412-pat00218
도 마찬가지로 입력값
Figure 112019134726412-pat00219
를 고정된 값으로 간주하여 실제 입력값으로는 벡터
Figure 112019134726412-pat00220
만 입력한다. LWE 기반의 퍼지 추출기의 구체적인 단계는 다음과 같다.
생성(Gen)
생성 단계에서는 퍼지 데이터
Figure 112019134726412-pat00221
을 입력으로 받아 아래와 같이 사용자의 헬퍼 데이터(Helper data)
Figure 112019134726412-pat00222
와 랜덤 비트열
Figure 112019134726412-pat00223
를 생성한다. 여기서,
Figure 112019134726412-pat00224
는 보안 상수(security parameter)를 의미할 수 있다. 또한, 랜덤 비트열
Figure 112019134726412-pat00225
는 비밀키(secret key) 등과 같은 암호학적인 키로 사용가능하며, 헬퍼 데이터
Figure 112019134726412-pat00226
퍼지 데이터는 복원(Rec) 단계에서 동일한 랜덤 비트열을 생성하기 위해 이용되는 데이터이다.
Figure 112019134726412-pat00227
에서 랜덤하게 행렬
Figure 112019134726412-pat00228
를 선택한다. 여기서
Figure 112019134726412-pat00229
Figure 112019134726412-pat00230
보다 작은 양의 정수일 수 있다. 즉, 격자(Lattice)를 나타내는 행렬
Figure 112019134726412-pat00231
의 원소들은 비교적 작은 값들로 구성될 수 있다. 예시적으로,
Figure 112019134726412-pat00232
은 7이고
Figure 112019134726412-pat00233
는 13일 수 있다.
② 가우시안 분포
Figure 112019134726412-pat00234
에 대하여,
Figure 112019134726412-pat00235
에서 랜덤하게 벡터
Figure 112019134726412-pat00236
를 선택한다.
③ 랜덤 비트열
Figure 112019134726412-pat00237
를 선택한 후,
Figure 112019134726412-pat00238
를 계산한다.
Figure 112019134726412-pat00239
을 계산한다. 이때,
Figure 112019134726412-pat00240
는 엠블럼 인코딩 기법의 인코딩 함수를 의미한다.
⑤ 헬퍼 데이터
Figure 112019134726412-pat00241
와 랜덤 비트열
Figure 112019134726412-pat00242
를 출력한다.
복원( Rec )
복원 단계에서는 퍼지 데이터
Figure 112019134726412-pat00243
와 헬퍼 데이터
Figure 112019134726412-pat00244
를 입력으로 받아 다음과 같이 비트열
Figure 112019134726412-pat00245
을 생성한다.
Figure 112019134726412-pat00246
를 계산한다.
Figure 112019134726412-pat00247
를 계산한다. 이때,
Figure 112019134726412-pat00248
는 엠블럼 인코딩 기법의 디코딩 함수를 의미한다.
③ 비트열
Figure 112019134726412-pat00249
를 출력한다.
두 퍼지 데이터
Figure 112019134726412-pat00250
,
Figure 112019134726412-pat00251
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00252
를 만족한다.
Figure 112019134726412-pat00253
Figure 112019134726412-pat00254
이기 때문에,
Figure 112019134726412-pat00255
를 만족한다.
(2) RLWE 기반의 퍼지 추출기
본 기법에서는 오류 정정 코드 ECC = ( ECC .Encode, ECC .Decode)를 이용한다. ECC.Encode 알고리즘은 길이가
Figure 112019134726412-pat00256
(
Figure 112019134726412-pat00257
는 임의의 자연수)인 비트열을 입력으로 받아 길이가
Figure 112019134726412-pat00258
(
Figure 112019134726412-pat00259
Figure 112019134726412-pat00260
보다 큰 임의의 자연수)인 비트열을 출력하고, ECC .Decode 알고리즘은 반대로 길이가
Figure 112019134726412-pat00261
인 비트열을 입력받아 길이가
Figure 112019134726412-pat00262
인 비트열을 출력한다.
또한, 본 기법에서는 링-엠블럼 인코딩/디코딩 함수(R.EC/R.DC)를 이용한다. 인코딩 함수 R.EC의 입력값
Figure 112019134726412-pat00263
중에서 에러의 크기
Figure 112019134726412-pat00264
와 모듈러스
Figure 112019134726412-pat00265
는 이미 시스템 파라미터로 주어진 값으로 간주하여, 본 발명에서는
Figure 112019134726412-pat00266
의 입력값으로 비트열
Figure 112019134726412-pat00267
만 입력한다. 디코딩 함수
Figure 112019134726412-pat00268
도 마찬가지로 입력값
Figure 112019134726412-pat00269
를 고정된 값으로 간주하여 실제 입력값으로는
Figure 112019134726412-pat00270
차 다항식
Figure 112019134726412-pat00271
만 입력한다. RLWE 기반의 퍼지 추출기의 구체적인 단계는 다음과 같다.
생성(Gen)
생성 단계에서는 퍼지 데이터
Figure 112019134726412-pat00272
을 입력으로 받아 아래와 같이 사용자의 헬퍼 데이터
Figure 112019134726412-pat00273
와 랜덤 비트열
Figure 112019134726412-pat00274
를 생성한다. 여기서,
Figure 112019134726412-pat00275
는 보안 상수를 의미할 수 있다. 또한, 랜덤 비트열
Figure 112019134726412-pat00276
는 비밀키(secret key) 등과 같은 암호학적인 키로 사용가능하며, 헬퍼 데이터
Figure 112019134726412-pat00277
퍼지 데이터는 복원(Rec) 단계에서 동일한 랜덤 비트열을 생성하기 위해 이용되는 데이터이다.
Figure 112019134726412-pat00278
에서 랜덤하게 링
Figure 112019134726412-pat00279
를 선택한다. 여기서
Figure 112019134726412-pat00280
Figure 112019134726412-pat00281
보다 작은 양의 정수일 수 있다.
② 각 계수가 가우시안 분포
Figure 112019134726412-pat00282
에서 랜덤하게 선택된
Figure 112019134726412-pat00283
차 다항식
Figure 112019134726412-pat00284
를 생성한다.
③ 랜덤 비트열
Figure 112019134726412-pat00285
를 선택한 후,
Figure 112019134726412-pat00286
를 계산한다.
Figure 112019134726412-pat00287
을 계산한다. 이때,
Figure 112019134726412-pat00288
Figure 112019134726412-pat00289
번째 계수가
Figure 112019134726412-pat00290
Figure 112019134726412-pat00291
차 다항식을,
Figure 112019134726412-pat00292
은 링-엠블럼 인코딩 기법의 인코딩 함수를 의미한다.
⑤ 헬퍼 데이터
Figure 112019134726412-pat00293
와 랜덤 비트열
Figure 112019134726412-pat00294
를 출력한다.
복원(Rec)
복원 단계에서는 퍼지 데이터
Figure 112019134726412-pat00295
와 헬퍼 데이터
Figure 112019134726412-pat00296
를 입력으로 받아 다음과 같이 비트열
Figure 112019134726412-pat00297
을 생성한다.
Figure 112019134726412-pat00298
를 계산한다. 이때,
Figure 112019134726412-pat00299
Figure 112019134726412-pat00300
번째 계수가
Figure 112019134726412-pat00301
Figure 112019134726412-pat00302
차 다항식을 의미한다.
Figure 112019134726412-pat00303
를 계산한다. 이때,
Figure 112019134726412-pat00304
는 링-엠블럼 인코딩 기법의 디코딩 함수를 의미한다.
③ 비트열
Figure 112019134726412-pat00305
를 출력한다.
두 퍼지 데이터
Figure 112019134726412-pat00306
,
Figure 112019134726412-pat00307
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00308
를 만족한다.
Figure 112019134726412-pat00309
Figure 112019134726412-pat00310
이기 때문에,
Figure 112019134726412-pat00311
를 만족한다.
(3) LWR 기반의 퍼지 추출기
본 기법에서는 오류 정정 코드 ECC = ( ECC .Encode, ECC .Decode)를 이용한다. ECC.Encode 알고리즘은 길이가
Figure 112019134726412-pat00312
(
Figure 112019134726412-pat00313
는 임의의 자연수)인 비트열을 입력으로 받아 길이가
Figure 112019134726412-pat00314
(
Figure 112019134726412-pat00315
Figure 112019134726412-pat00316
보다 큰 임의의 자연수)인 비트열을 출력하고, ECC .Decode 알고리즘은 반대로 길이가
Figure 112019134726412-pat00317
인 비트열을 입력받아 길이가
Figure 112019134726412-pat00318
인 비트열을 출력한다.
또한, 본 기법에서는 엠블럼 인코딩/디코딩 함수(EC/DC)를 이용한다. 인코딩 함수 EC의 입력값
Figure 112019134726412-pat00319
중에서 에러의 크기
Figure 112019134726412-pat00320
와 모듈러스
Figure 112019134726412-pat00321
는 이미 시스템 파라미터로 주어진 값으로 간주하여, 본 발명에서는
Figure 112019134726412-pat00322
의 입력값으로 비트열
Figure 112019134726412-pat00323
만 입력한다. 디코딩 함수
Figure 112019134726412-pat00324
도 마찬가지로 입력값
Figure 112019134726412-pat00325
를 고정된 값으로 간주하여 실제 입력값으로는 벡터
Figure 112019134726412-pat00326
만 입력한다. 또한, 본 기법에서는
Figure 112019134726412-pat00327
(
Figure 112019134726412-pat00328
는 양의 정수)로 정의한다. LWR 기반의 퍼지 추출기의 구체적인 단계는 다음과 같다.
생성(Gen)
생성 단계에서는 퍼지 데이터
Figure 112019134726412-pat00329
을 입력으로 받아 아래와 같이 사용자의 헬퍼 데이터
Figure 112019134726412-pat00330
와 랜덤 비트열
Figure 112019134726412-pat00331
를 생성한다. 여기서,
Figure 112019134726412-pat00332
는 보안 상수를 의미할 수 있다. 또한, 랜덤 비트열
Figure 112019134726412-pat00333
는 비밀키(secret key) 등과 같은 암호학적인 키로 사용가능하며, 헬퍼 데이터
Figure 112019134726412-pat00334
퍼지 데이터는 복원(Rec) 단계에서 동일한 랜덤 비트열을 생성하기 위해 이용되는 데이터이다.
Figure 112019134726412-pat00335
에서 랜덤하게 행렬
Figure 112019134726412-pat00336
를 선택한다. 여기서
Figure 112019134726412-pat00337
Figure 112019134726412-pat00338
보다 작은 양의 정수일 수 있다. 즉, 격자(Lattice)를 나타내는 행렬
Figure 112019134726412-pat00339
의 원소들은 비교적 작은 값들로 구성될 수 있다. 예시적으로,
Figure 112019134726412-pat00340
은 7이고
Figure 112019134726412-pat00341
는 13일 수 있다.
② 랜덤 비트열
Figure 112019134726412-pat00342
를 선택한 후,
Figure 112019134726412-pat00343
를 계산한다.
Figure 112019134726412-pat00344
을 계산한다. 이때,
Figure 112019134726412-pat00345
는 엠블럼 인코딩 기법의 인코딩 함수를 의미한다.
④ 헬퍼 데이터
Figure 112019134726412-pat00346
와 랜덤 비트열
Figure 112019134726412-pat00347
를 출력한다.
복원( Rec )
복원 단계에서는 퍼지 데이터
Figure 112019134726412-pat00348
와 헬퍼 데이터
Figure 112019134726412-pat00349
를 입력으로 받아 다음과 같이 비트열
Figure 112019134726412-pat00350
을 생성한다.
Figure 112019134726412-pat00351
를 계산한다.
Figure 112019134726412-pat00352
를 계산한다. 이때,
Figure 112019134726412-pat00353
는 엠블럼 인코딩 기법의 디코딩 함수를 의미한다.
③ 비트열
Figure 112019134726412-pat00354
를 출력한다.
두 퍼지 데이터
Figure 112019134726412-pat00355
,
Figure 112019134726412-pat00356
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00357
를 만족한다.
Figure 112019134726412-pat00358
Figure 112019134726412-pat00359
이기 때문에,
Figure 112019134726412-pat00360
를 만족한다.
(4) RLWR 기반의 퍼지 추출기
본 기법에서는 오류 정정 코드 ECC = ( ECC .Encode, ECC .Decode)를 이용한다. ECC.Encode 알고리즘은 길이가
Figure 112019134726412-pat00361
(
Figure 112019134726412-pat00362
는 임의의 자연수)인 비트열을 입력으로 받아 길이가
Figure 112019134726412-pat00363
(
Figure 112019134726412-pat00364
Figure 112019134726412-pat00365
보다 큰 임의의 자연수)인 비트열을 출력하고, ECC .Decode 알고리즘은 반대로 길이가
Figure 112019134726412-pat00366
인 비트열을 입력받아 길이가
Figure 112019134726412-pat00367
인 비트열을 출력한다.
또한, 본 기법에서는 링-엠블럼 인코딩/디코딩 함수(R.EC/R.DC)를 이용한다. 인코딩 함수 R.EC의 입력값
Figure 112019134726412-pat00368
중에서 에러의 크기
Figure 112019134726412-pat00369
와 모듈러스
Figure 112019134726412-pat00370
는 이미 시스템 파라미터로 주어진 값으로 간주하여, 본 발명에서는
Figure 112019134726412-pat00371
의 입력값으로 비트열
Figure 112019134726412-pat00372
만 입력한다. 디코딩 함수
Figure 112019134726412-pat00373
도 마찬가지로 입력값
Figure 112019134726412-pat00374
를 고정된 값으로 간주하여 실제 입력값으로는
Figure 112019134726412-pat00375
차 다항식
Figure 112019134726412-pat00376
만 입력한다.
이하에서,
Figure 112019134726412-pat00377
에 대하여,
Figure 112019134726412-pat00378
Figure 112019134726412-pat00379
의 각 계수에 라운딩 함수
Figure 112019134726412-pat00380
를 연산한 것을 의미한다. 또한, 상수
Figure 112019134726412-pat00381
에 대하여,
Figure 112019134726412-pat00382
Figure 112019134726412-pat00383
의 각 계수에
Figure 112019134726412-pat00384
를 곱한 것을 의미한다. RLWR 기반의 퍼지 추출기의 구체적인 단계는 다음과 같다.
생성(Gen)
생성 단계에서는 퍼지 데이터
Figure 112019134726412-pat00385
을 입력으로 받아 아래와 같이 사용자의 헬퍼 데이터
Figure 112019134726412-pat00386
와 랜덤 비트열
Figure 112019134726412-pat00387
를 생성한다. 여기서,
Figure 112019134726412-pat00388
는 보안 상수를 의미할 수 있다. 또한, 랜덤 비트열
Figure 112019134726412-pat00389
는 비밀키(secret key) 등과 같은 암호학적인 키로 사용가능하며, 헬퍼 데이터
Figure 112019134726412-pat00390
퍼지 데이터는 복원(Rec) 단계에서 동일한 랜덤 비트열을 생성하기 위해 이용되는 데이터이다.
Figure 112019134726412-pat00391
에서 랜덤하게 링
Figure 112019134726412-pat00392
를 선택한다. 여기서,
Figure 112019134726412-pat00393
Figure 112019134726412-pat00394
보다 작은 양의 정수일 수 있다.
② 랜덤 비트열
Figure 112019134726412-pat00395
를 선택한 후,
Figure 112019134726412-pat00396
를 계산한다.
Figure 112019134726412-pat00397
을 계산한다. 이때,
Figure 112019134726412-pat00398
Figure 112019134726412-pat00399
번째 계수가
Figure 112019134726412-pat00400
Figure 112019134726412-pat00401
차 다항식을,
Figure 112019134726412-pat00402
은 링-엠블럼 인코딩 기법의 인코딩 함수를 의미한다.
④ 헬퍼 데이터
Figure 112019134726412-pat00403
와 랜덤 비트열
Figure 112019134726412-pat00404
를 출력한다.
복원( Rec )
복원 단계에서는 퍼지 데이터
Figure 112019134726412-pat00405
와 헬퍼 데이터
Figure 112019134726412-pat00406
를 입력으로 받아 다음과 같이 비트열
Figure 112019134726412-pat00407
을 생성한다.
Figure 112019134726412-pat00408
를 계산한다. 이때,
Figure 112019134726412-pat00409
Figure 112019134726412-pat00410
번째 계수가
Figure 112019134726412-pat00411
Figure 112019134726412-pat00412
차 다항식을 의미한다.
Figure 112019134726412-pat00413
를 계산한다. 이때,
Figure 112019134726412-pat00414
는 링-엠블럼 인코딩 기법의 디코딩 함수를 의미한다.
③ 비트열
Figure 112019134726412-pat00415
를 출력한다.
두 퍼지 데이터
Figure 112019134726412-pat00416
,
Figure 112019134726412-pat00417
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00418
를 만족한다.
Figure 112019134726412-pat00419
Figure 112019134726412-pat00420
이기 때문에,
Figure 112019134726412-pat00421
를 만족한다.
도 5는 본 발명의 일 실시예에 따른 퍼지 추출 시스템을 도시한다.
도 5를 참조하면, 인증 시스템, 키 추출 시스템, 키 복구 시스템 등으로 명명될 수도 있는 퍼지 추출 시스템(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)로 송신할 수 있다.
제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 키의 복구 등 다양한 동작을 수행할 수도 있다. 여기서, 애플리케이션은, 설계자에 의해 직접 작성되어 저장부에 저장 또는 갱신된 것일 수도 있고, 또는 유선 또는 무선 통신 네트워크를 통해 접속 가능한 전자 소프트웨어 유통망 등을 통하여 획득 또는 갱신된 것일 수도 있다.
도 6은 도 5에 도시된 제1 단말의 기능 블럭도이다.
도 6을 참조하면, 제1 단말(100)은 퍼지 데이터 수신부(110), 키 생성부(120), 헬퍼 데이터 생성부(130), 헬퍼 데이터 송신부(140), 및 저장부(150) 중 적어도 하나 이상을 포함할 수 있다. 제1 단말(100)은 사용자의 퍼지 데이터를 이용하여 제1 키와 상기 제1 키를 복구하는 과정에서 필요한 헬퍼 데이터를 생성하고, 상기 헬퍼 데이터를 서버(500)로 송신할 수 있다.
퍼지 데이터 수신부(110)는 소정의 입출력 장치를 이용하여 사용자로부터 지문 정보, 홍체 정보 등과 같은 생체 정보를 수신하고, 임의의 변환 알고리즘을 이용하여 수신된 생체 정보를 고정된 길이의 비트열 형태(
Figure 112019134726412-pat00422
)로 변환할 수 있다. 실시예에 따라, 퍼지 데이터 수신부(110)는 고정된 길이의 비트열 형태로 변환된 퍼지 데이터를 수신할 수도 있다. 즉, 본 발명에서 말하는 퍼지 데이터는 고정된 길이의 비트열 형태로 변환된 데이터를 의미할 수 있다. 퍼지 데이터 수신부(110)에 의해 수신된 퍼지 데이터 및/또는 고정된 길이의 비트열로 변환된 퍼지 데이터는 저장부(150)에 저장될 수 있다. 실시예에 따라, 사용자의 퍼지 데이터는 미리 저장부(150)에 저장될 수도 있고, 이 경우에 퍼지 데이터 수신부(110)는 제1 단말(100)에서 생략될 수도 있다.
키 생성부(120)는 랜덤 비트열(
Figure 112019134726412-pat00423
)을 선택할 수 있고, 상기 랜덤 비트열은 제1 키를 의미할 수 있다. 또한, 키 생성부(120)는 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드의 인코딩 알고리즘을 수행하고 그 결과(
Figure 112019134726412-pat00424
)를 산출할 수 있다. 키 생성부(120)에 의해 생성된 랜덤 비트열과 오류 정정 코드의 인코딩 알고리즘 결과는 저장부(150)에 저장될 수 있다.
헬퍼 데이터 생성부(130)는 앞서 설명한 4가지의 기법 중 적어도 하나를 이용하여 헬퍼 데이터
Figure 112019134726412-pat00425
를 생성할 수 있다. 생성된 헬퍼 데이터는 저장부(150)에 저장될 수 있다.
(1) LWE 기반의 퍼지 추출 기법을 이용하는 경우, 헬퍼 데이터 생성부(130)는
Figure 112019134726412-pat00426
에서 랜덤하게 행렬
Figure 112019134726412-pat00427
를 선택하고, 가우시안 분포
Figure 112019134726412-pat00428
에 대하여
Figure 112019134726412-pat00429
에서 랜덤하게 벡터
Figure 112019134726412-pat00430
를 선택하고,
Figure 112019134726412-pat00431
을 계산함으로써, 헬퍼 데이터
Figure 112019134726412-pat00432
를 생성할 수 있다.
(2) RLWE 기반의 퍼지 추출 기법을 이용하는 경우, 헬퍼 데이터 생성부(130)는
Figure 112019134726412-pat00433
에서 랜덤하게 링
Figure 112019134726412-pat00434
를 선택하고, 각 계수가 가우시안 분포
Figure 112019134726412-pat00435
에서 랜덤하게 선택된
Figure 112019134726412-pat00436
차 다항식
Figure 112019134726412-pat00437
를 생성하고,
Figure 112019134726412-pat00438
을 계산함으로써, 헬퍼 데이터
Figure 112019134726412-pat00439
를 생성할 수 있다.
(3) LWR 기반의 퍼지 추출 기법을 이용하는 경우, 헬퍼 데이터 생성부(130)는
Figure 112019134726412-pat00440
에서 랜덤하게 행렬
Figure 112019134726412-pat00441
를 선택하고,
Figure 112019134726412-pat00442
을 계산함으로써, 헬퍼 데이터
Figure 112019134726412-pat00443
를 생성할 수 있다.
(4) RLWR 기반의 퍼지 추출 기법을 이용하는 경우, 헬퍼 데이터 생성부(130)는
Figure 112019134726412-pat00444
에서 랜덤하게 링
Figure 112019134726412-pat00445
를 선택하고,
Figure 112019134726412-pat00446
을 계산함으로써, 헬퍼 데이터
Figure 112019134726412-pat00447
를 생성할 수 있다.
헬퍼 데이터 송신부(140)는 생성된 헬퍼 데이터를 서버(500)로 송신할 수 있다. 이때, 헬퍼 데이터 송신부(140)는 사용자의 식별 정보를 서버(500)로 송신할 수도 있다.
저장부(150)에는 퍼지 데이터 수신부(110)에 의해 수신된 퍼지 데이터, 고정된 길의의 비트열로 변환된 퍼지 데이터, 키 생성부(120)에 의해 선택된 랜덤 비트열, 오류 정정 코드의 인코딩 결과, 헬퍼 데이터 생성부(130)에 의해 생성된 헬퍼 데이터, 및 헬퍼 데이터를 생성하는 과정 중에 생성되는 데이터 등이 일시적으로 또는 비일시적으로 저장될 수 있다. 다만, 사용자의 생체 데이터 및/또는 랜덤 비트열은 사용자의 프라이버시 보호를 위해 제1 단말(100), 즉 저장부(150) 내에서 삭제되는 것이 바람직하다.
도 7은 도 5에 도시된 제2 단말의 기능 블럭도이다.
도 7을 참조하면, 제2 단말(300)은 퍼지 데이터 수신부(310), 헬퍼 데이터 수신부(320), 키 복구부(330), 및 저장부(340) 중 적어도 하나 이상을 포함할 수도 있다.
퍼지 데이터 수신부(310)는 소정의 입출력 장치를 이용하여 사용자로부터 지문 정보, 홍체 정보 등과 같은 생체 정보를 수신하고, 임의의 변환 알고리즘을 이용하여 수신된 생체 정보를 고정된 길이의 비트열 형태(
Figure 112019134726412-pat00448
)로 변환할 수 있다. 실시예에 따라, 퍼지 데이터 수신부(310)는 고정된 길이의 비트열 형태로 변환된 퍼지 데이터를 수신할 수도 있다. 즉, 본 발명에서 말하는 퍼지 데이터는 고정된 길이의 비트열 형태로 변환된 데이터를 의미할 수 있다. 퍼지 데이터 수신부(310)에 의해 수신된 퍼지 데이터 및/또는 고정된 길이의 비트열로 변환된 퍼지 데이터는 저장부(340)에 저장될 수 있다. 실시예에 따라, 퍼지 데이터 수신부(310)는 사용자의 식별 정보를 수신할 수도 있다.
헬퍼 데이터 수신부(320)는 서버(500)로부터 사용자의 헬퍼 데이터를 수신한다. 이를 위해, 헬퍼 데이터 수신부(320)는 사용자의 식별 정보를 포함하는 헬퍼 데이터 요청을 서버(500)로 송신할 수 있다. 실시예에 따라, 소정의 사용자 인증 동작이 수행될 수도 있다. 서버(500)는 사용자의 식별 정보에 대응하는 헬퍼 데이터를 헬퍼 데이터 수신부(320)로 송신할 수 있다. 헬퍼 데이터 수신부(320)에 의해 수신된 헬프 데이터는 저장부(340)에 저장될 수 있다.
키 복구부(330)는 앞서 설명한 4가지 기법 중에서 헬퍼 데이터를 생성하는 과정에 사용된 기법을 이용하여 사용자의 퍼지 데이터와 헬퍼 데이터로부터 제2 키를 복구할 수 있다.
(1) LWE 기반의 퍼지 추출 기법을 이용하는 경우, 키 복구부(330)는
Figure 112019134726412-pat00449
를 계산하고,
Figure 112019134726412-pat00450
를 계산하고, 오류 정정 코드의 디코딩 알고리즘을 수행함으로써, 제2 키(
Figure 112019134726412-pat00451
)를 복구할 수 있다. 이때, 두 퍼지 데이터
Figure 112019134726412-pat00452
,
Figure 112019134726412-pat00453
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00454
를 만족한다.
(2) RLWE 기반의 퍼지 추출 기법을 이용하는 경우, 키 복구부(330)는
Figure 112019134726412-pat00455
를 계산하고,
Figure 112019134726412-pat00456
를 계산하고, 오류 정정 코드의 디코딩 알고리즘을 수행함으로써, 제2 키(
Figure 112019134726412-pat00457
)를 복구할 수 있다. 이때, 두 퍼지 데이터
Figure 112019134726412-pat00458
,
Figure 112019134726412-pat00459
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00460
를 만족한다.
(3) LWR 기반의 퍼지 추출 기법을 이용하는 경우, 키 복구부(330)는
Figure 112019134726412-pat00461
를 계산하고,
Figure 112019134726412-pat00462
를 계산하고, 오류 정정 코드의 디코딩 알고리즘을 수행함으로써, 제2 키(
Figure 112019134726412-pat00463
)를 복구할 수 있다. 이때, 두 퍼지 데이터
Figure 112019134726412-pat00464
,
Figure 112019134726412-pat00465
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00466
를 만족한다.
(4) RLWR 기반의 퍼지 추출 기법을 이용하는 경우, 키 복구부(330)는
Figure 112019134726412-pat00467
를 계산하고,
Figure 112019134726412-pat00468
를 계산하고, 오류 정정 코드의 디코딩 알고리즘을 수행함으로써, 제2 키(
Figure 112019134726412-pat00469
)를 복구할 수 있다. 두 퍼지 데이터
Figure 112019134726412-pat00470
,
Figure 112019134726412-pat00471
의 거리가 임계치보다 작은 경우,
Figure 112019134726412-pat00472
를 만족한다.
저장부(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 : 서버

Claims (16)

  1. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법에 있어서,
    상기 사용자의 제1 퍼지 데이터를 수신하는 단계;
    임의의 행렬을 선택하는 단계;
    에러를 선택하는 단계;
    랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(Error Correcting Code, ECC)의 인코딩 알고리즘을 수행하는 단계; 및
    상기 임의의 행렬을 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고,
    상기 임의의 행렬(
    Figure 112021149417328-pat00576
    )를 선택하는 단계는,
    Figure 112021149417328-pat00577
    에서 상기 임의의 행렬(
    Figure 112021149417328-pat00578
    )을 선택하고,
    상기 에러(
    Figure 112021149417328-pat00579
    )를 선택하는 단계는, 가우시안 분포(
    Figure 112021149417328-pat00580
    )에 대하여
    Figure 112021149417328-pat00581
    에서 랜덤하게 벡터
    Figure 112021149417328-pat00582
    를 선택하고,
    상기
    Figure 112021149417328-pat00583
    , 상기
    Figure 112021149417328-pat00584
    , 및 상기
    Figure 112021149417328-pat00585
    은 임의의 자연수이고,
    상기 헬퍼 데이터(
    Figure 112021149417328-pat00586
    )를 생성하는 단계는 수학식을 연산하여 제2 헬퍼 데이터(
    Figure 112021149417328-pat00587
    )를 생성하고,
    상기
    Figure 112021149417328-pat00588
    는 엠블럼 인코딩(EMBLEM encoding) 기법의 인코딩 함수이고,
    상기
    Figure 112021149417328-pat00589
    은 오류 정정 코드의 인코딩 알고리즘의 수행 결과이고,
    상기 에러의 크기를 의미하는 상기
    Figure 112021149417328-pat00590
    와 모듈러스를 의미하는 상기
    Figure 112021149417328-pat00591
    는 시스템 파라미터로 미리 주어진,
    헬퍼 데이터를 생성하는 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기
    Figure 112021149417328-pat00489
    은 상기
    Figure 112021149417328-pat00490
    보다 작은 자연수이고,
    상기 제1 퍼지 데이터는 상기 사용자의 지문 데이터 또는 상기 사용자의 홍체 데이터인,
    헬퍼 데이터를 생성하는 방법.
  5. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 키를 복구하는 방법에 있어서,
    사용자의 제2 퍼지 데이터(
    Figure 112019134726412-pat00491
    )와 상기 사용자의 헬퍼 데이터(
    Figure 112019134726412-pat00492
    )를 수신하는 단계;
    제1 수학식을 연산하는 단계;
    제2 수학식을 연산하는 단계; 및
    상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함하고,
    상기 제1 수학식은
    Figure 112019134726412-pat00493
    이고,
    상기 제2 수학식은
    Figure 112019134726412-pat00494
    이고,
    상기
    Figure 112019134726412-pat00495
    는 엠블럼 인코딩 기법의 디코딩 함수이고,
    모듈러스를 의미하는 상기
    Figure 112019134726412-pat00496
    는 임의의 자연수인,
    키를 복구하는 방법.
  6. 제5항에 있어서,
    상기 헬퍼 데이터를 생성하는 과정 중에 사용된 상기 사용자의 제1 퍼지 데이터와 상기 제2 퍼지 데이터의 거리가 임계치보다 작은 경우, 상기 헬퍼 데이터를 생성하는 과정 중에 생성된 랜덤 비트열과 상기 제2 랜덤 비트열은 동일한 값을 갖는,
    키를 복구하는 방법.
  7. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법에 있어서,
    상기 사용자의 제1 퍼지 데이터(
    Figure 112021149417328-pat00497
    )를 수신하는 단계;
    Figure 112021149417328-pat00498
    에서 랜덤하게 링(
    Figure 112021149417328-pat00499
    )를 선택하는 단계;
    에러를 선택하는 단계;
    랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(ECC)의 인코딩 알고리즘을 수행하는 단계; 및
    상기 링(
    Figure 112021149417328-pat00500
    )을 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고,
    상기
    Figure 112021149417328-pat00501
    은 임의의 자연수이고,
    상기 에러(
    Figure 112021149417328-pat00592
    )를 선택하는 단계는, 각 계수가 가우시안 분포(
    Figure 112021149417328-pat00593
    )에서 랜덤하게 선택된
    Figure 112021149417328-pat00594
    차 다항식(
    Figure 112021149417328-pat00595
    )을 생성하고,
    상기
    Figure 112021149417328-pat00596
    은 임의의 자연수로써, 비트열 형식을 갖는 상기 제1 퍼지 데이터의 비트열의 길이를 의미하는,
    헬퍼 데이터를 생성하는 방법.
  8. 삭제
  9. 제7항에 있어서,
    상기 헬퍼 데이터(
    Figure 112021149417328-pat00507
    )를 생성하는 단계는 수학식을 연산하여 제2 헬퍼 데이터(
    Figure 112021149417328-pat00508
    )를 생성하고,
    상기
    Figure 112021149417328-pat00509
    Figure 112021149417328-pat00510
    번째 계수가
    Figure 112021149417328-pat00511
    Figure 112021149417328-pat00512
    차 다항식이고,
    상기
    Figure 112021149417328-pat00513
    는 링-엠블럼 인코딩 기법의 인코딩 함수이고,
    상기
    Figure 112021149417328-pat00514
    은 오류 정정 코드의 인코딩 알고리즘의 수행 결과이고,
    상기 에러의 크기를 의미하는 상기
    Figure 112021149417328-pat00515
    와 모듈러스를 의미하는 상기
    Figure 112021149417328-pat00516
    는 시스템 파라미터로 미리 주어진,
    헬퍼 데이터를 생성하는 방법.
  10. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 키를 복구하는 방법에 있어서,
    사용자의 제2 퍼지 데이터(
    Figure 112019134726412-pat00517
    )와 상기 사용자의 헬퍼 데이터(
    Figure 112019134726412-pat00518
    )를 수신하는 단계;
    제1 수학식을 연산하는 단계;
    제2 수학식을 연산하는 단계; 및
    상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함하고,
    상기 제1 수학식은
    Figure 112019134726412-pat00519
    이고,
    상기
    Figure 112019134726412-pat00520
    Figure 112019134726412-pat00521
    번째 계수가
    Figure 112019134726412-pat00522
    Figure 112019134726412-pat00523
    차 다항식이고,
    상기 제2 수학식은
    Figure 112019134726412-pat00524
    이고,
    상기
    Figure 112019134726412-pat00525
    는 엠블럼 인코딩 기법의 디코딩 함수이고,
    모듈러스를 의미하는 상기
    Figure 112019134726412-pat00526
    는 임의의 자연수인,
    키를 복구하는 방법.
  11. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법에 있어서,
    제1 퍼지 데이터(
    Figure 112021149417328-pat00527
    )를 수신하는 단계;
    임의의 행렬(
    Figure 112021149417328-pat00528
    )을 선택하는 단계;
    랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(ECC)의 인코딩 알고리즘을 수행하는 단계; 및
    상기 임의의 행렬을 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고,
    상기
    Figure 112021149417328-pat00529
    은 비트열 형태의 상기 제1 퍼지 데이터의 비트열의 길이이고,
    상기 임의의 행렬(
    Figure 112021149417328-pat00597
    )을 선택하는 단계는,
    Figure 112021149417328-pat00598
    에서 상기 임의의 행렬(
    Figure 112021149417328-pat00599
    )을 선택하고,
    상기 헬퍼 데이터(
    Figure 112021149417328-pat00600
    )를 생성하는 단계는, 수학식을 이용하여 제2 헬퍼 데이터(
    Figure 112021149417328-pat00601
    )를 생성하고,
    상기
    Figure 112021149417328-pat00602
    , 상기
    Figure 112021149417328-pat00603
    , 및 모듈러스를 의미하는 상기
    Figure 112021149417328-pat00604
    는 임의의 자연수인,
    헬퍼 데이터를 생성하는 방법.
  12. 삭제
  13. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 키를 복구하는 방법에 있어서,
    사용자의 제2 퍼지 데이터(
    Figure 112019134726412-pat00538
    )와 상기 사용자의 헬퍼 데이터(
    Figure 112019134726412-pat00539
    )를 수신하는 단계;
    제1 수학식을 연산하는 단계;
    제2 수학식을 연산하는 단계; 및
    상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함하고,
    상기 제1 수학식은
    Figure 112019134726412-pat00540
    이고,
    상기 제2 수학식은
    Figure 112019134726412-pat00541
    이고,
    상기
    Figure 112019134726412-pat00542
    는 엠블럼 인코딩 기법의 디코딩 함수이고,
    모듈러스를 의미하는 상기
    Figure 112019134726412-pat00543
    는 임의의 자연수인,
    키를 복구하는 방법.
  14. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 사용자의 퍼지 데이터로부터 키를 복구하는 과정에서 이용되는 헬퍼 데이터를 생성하는 방법에 있어서,
    상기 사용자의 제1 퍼지 데이터(
    Figure 112021149417328-pat00544
    )를 수신하는 단계;
    Figure 112021149417328-pat00545
    에서 랜덤하게 링(
    Figure 112021149417328-pat00546
    )을 선택하는 단계;
    랜덤 비트열을 선택하고 상기 랜덤 비트열을 입력으로 하는 오류 정정 코드(ECC)의 인코딩 알고리즘을 수행하는 단계; 및
    상기 링(
    Figure 112021149417328-pat00547
    )을 포함하는 헬퍼 데이터를 생성하는 단계를 포함하고,
    상기
    Figure 112021149417328-pat00548
    은 임의의 자연수이고,
    상기 헬퍼 데이터(
    Figure 112021149417328-pat00605
    )를 생성하는 단계는 수학식을 연산하여 제2 헬퍼 데이터(
    Figure 112021149417328-pat00606
    )를 생성하고,
    상기
    Figure 112021149417328-pat00607
    Figure 112021149417328-pat00608
    번째 계수가
    Figure 112021149417328-pat00609
    Figure 112021149417328-pat00610
    차 다항식이고,
    상기
    Figure 112021149417328-pat00611
    는 링-엠블럼 인코딩 기법의 인코딩 함수이고,
    상기
    Figure 112021149417328-pat00612
    은 오류 정정 코드의 인코딩 알고리즘의 수행 결과이고,
    상기 에러의 크기를 의미하는 상기
    Figure 112021149417328-pat00613
    와 모듈러스를 의미하는 상기
    Figure 112021149417328-pat00614
    는 시스템 파라미터로 미리 주어진,
    헬퍼 데이터를 생성하는 방법.
  15. 삭제
  16. 적어도 프로세서를 포함하는 컴퓨팅 장치에 의해 수행되는, 키를 복구하는 방법에 있어서,
    사용자의 제2 퍼지 데이터(
    Figure 112019134726412-pat00559
    )와 상기 사용자의 헬퍼 데이터(
    Figure 112019134726412-pat00560
    )를 수신하는 단계;
    제1 수학식을 연산하는 단계;
    제2 수학식을 연산하는 단계; 및
    상기 제2 수학식의 연산 결과를 입력으로 하는 오류 정정 코드의 디코딩 알고리즘을 수행하여 제2 랜덤 비트열을 생성하는 단계를 포함하고,
    상기 제1 수학식은
    Figure 112019134726412-pat00561
    이고,
    상기
    Figure 112019134726412-pat00562
    Figure 112019134726412-pat00563
    번째 계수가
    Figure 112019134726412-pat00564
    Figure 112019134726412-pat00565
    차 다항식이고,
    상기 제2 수학식은
    Figure 112019134726412-pat00566
    이고,
    상기
    Figure 112019134726412-pat00567
    는 엠블럼 인코딩 기법의 디코딩 함수이고,
    모듈러스를 의미하는 상기
    Figure 112019134726412-pat00568
    는 임의의 자연수인,
    키를 복구하는 방법.
KR1020190176233A 2019-12-27 2019-12-27 격자 기반 퍼지 추출 장치 및 방법 KR102398962B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190176233A KR102398962B1 (ko) 2019-12-27 2019-12-27 격자 기반 퍼지 추출 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190176233A KR102398962B1 (ko) 2019-12-27 2019-12-27 격자 기반 퍼지 추출 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20210084740A KR20210084740A (ko) 2021-07-08
KR102398962B1 true KR102398962B1 (ko) 2022-05-17

Family

ID=76893252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190176233A KR102398962B1 (ko) 2019-12-27 2019-12-27 격자 기반 퍼지 추출 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102398962B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070086656A (ko) 2004-12-28 2007-08-27 코닌클리케 필립스 일렉트로닉스 엔.브이. 생체측정 데이터 및 비밀 추출 코드를 사용하는 키생성
KR101767051B1 (ko) 2016-01-21 2017-08-10 안동과학대학교 산학협력단 퍼지 추론 기반 지정맥 영상 추출 방법 및 그 장치
US10521616B2 (en) * 2017-11-08 2019-12-31 Analog Devices, Inc. Remote re-enrollment of physical unclonable functions

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Charles Herder et al "Trapdoor Computational Fuzzy Extractors and Stateless Cryptographically-Secure Physical Unclonable Functions." IEEE Transactions on Dependable and Secure Computing, Vol. 14(1), pp. 65-82(2016.) 1부.*

Also Published As

Publication number Publication date
KR20210084740A (ko) 2021-07-08

Similar Documents

Publication Publication Date Title
WO2019153867A1 (zh) 二维码生成及识别
US10904006B2 (en) Method and apparatus for cryptographic data processing
JP6058245B2 (ja) 乱数拡大装置、乱数拡大方法及び乱数拡大プログラム
KR20150112893A (ko) 대수적 조작으로부터 데이터를 보호하는 방법
US11227037B2 (en) Computer system, verification method of confidential information, and computer
JP5854443B2 (ja) 誤り訂正符号方式を用いて計算環境における資産集合についての識別子を生成する変化許容力を有する方法
CN109934017A (zh) 校验信息生成和文件完整性校验方法、系统、设备及介质
KR20180104363A (ko) 메시지 인증이 가능한 부호 기반 암호화 장치 및 방법
CN110738513B (zh) 一种用于生成、验证兑换码的方法和装置
KR101903246B1 (ko) 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템
EP3142292B1 (en) Encrypted-data processing method, system, apparatus, and program
KR102398962B1 (ko) 격자 기반 퍼지 추출 장치 및 방법
KR102425916B1 (ko) 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법
KR20200107621A (ko) 신드롬을 기반으로 한 전자 서명을 통해 데이터 통신이 가능한 전자 장치 및 그 동작 방법
KR20190058884A (ko) 생체 정보 기반의 전자 서명이 가능한 데이터 전송 장치 및 그 동작 방법
KR101741186B1 (ko) 부분 복구가능 부호의 검증이 가능한 데이터 분산 저장 장치 및 방법
KR101590351B1 (ko) 분산 네트워크 프로토콜 기반의 데이터 전송 장치 및 그의 데이터 암호화 방법
JP5826202B2 (ja) 符号化装置、復号装置、符号化方法、復号方法及びプログラム
JP2011013428A (ja) 情報処理装置、コード生成方法、コード検証方法およびプログラム
JP5573041B2 (ja) 情報処理装置、コード生成方法、コード検証方法およびプログラム
JP6780953B2 (ja) 認証装置、認証方法及び認証プログラム
US20200228310A1 (en) Circuit concealing apparatus, calculation apparatus, and program
KR102407204B1 (ko) 보안이 개선된 암호압축 장치 및 방법
US20220405372A1 (en) Biometric authentication based on learning parity with noise
KR102347697B1 (ko) 저화질 이미지에서 대체 가능한 지문 템플릿을 생성하는 장치 및 방법

Legal Events

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