KR101903246B1 - 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템 - Google Patents

얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템 Download PDF

Info

Publication number
KR101903246B1
KR101903246B1 KR1020160158894A KR20160158894A KR101903246B1 KR 101903246 B1 KR101903246 B1 KR 101903246B1 KR 1020160158894 A KR1020160158894 A KR 1020160158894A KR 20160158894 A KR20160158894 A KR 20160158894A KR 101903246 B1 KR101903246 B1 KR 101903246B1
Authority
KR
South Korea
Prior art keywords
bio
generating
key
random numbers
values
Prior art date
Application number
KR1020160158894A
Other languages
English (en)
Other versions
KR20180059980A (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 KR1020160158894A priority Critical patent/KR101903246B1/ko
Publication of KR20180059980A publication Critical patent/KR20180059980A/ko
Application granted granted Critical
Publication of KR101903246B1 publication Critical patent/KR101903246B1/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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • G06K9/00268
    • 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
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/168Feature extraction; Face representation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Collating Specific Patterns (AREA)

Abstract

얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템이 개시된다. 인증 방법은 사용자와 관련하여 입력된 제1 얼굴 이미지 및 패스워드를 결합하여 제1 특징 벡터를 추출하고, 상기 추출된 제1 특징 벡터를 이용하여 제1 바이오 핀(BioPIN)을 생성하는 단계, 상기 사용자를 위한 N(상기 N은 자연수)개의 제1 비밀 난수들을 계수로 갖는 제1 N-1차 다항식을 생성하는 단계, 상기 제1 N-1차 다항식을 이용하여 T(상기 T는 상기 N 이상의 자연수)개의 서로 다른 미지수 값들에 대한 T개의 제1 함수값들을 생성하는 단계, 상기 제1 함수값들 각각과 상기 제1 바이오 핀간의 배타적 논리합 연산을 통해 바이오 키를 생성하는 단계 및 상기 바이오 키를 저장하여 관리하는 단계를 포함할 수 있다.

Description

얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템{METHOD AND SYSTEM FOR CREATING ENCRYPTION KEY BASED ON FACE IMAGE}
아래의 설명은 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템에 관한 것이다.
사용자나 전자서명의 인증을 위한 암호 키 또는 데이터의 암호화 및 복호화를 위한 암호 키를 생성하기 위한 다양한 종래기술들이 존재한다. 예를 들어, 한국공개특허 제10-2009-0090974호는 무선통신시스템에서 암호키 생성 장치 및 방법에 관한 것으로, 기지국으로부터 제공되는 난수를 이용하여 암호 키를 생성하는 기술을 개시하고 있다. 다른 예로, 한국공개특허 제10-2005-0023050호는 분할 생체정보를 이용한 암호키 생성 방법 및 이를 이용한 사용자 인증 방법에 관한 것으로, 사용자로부터 입력받은 생체정보를 소정의 규칙에 따라서 2 이상의 그룹으로 분할하고, 분할된 생체정보 중의 일부 그룹을 사용하여 암호키를 생성하는 기술을 개시하고 있다.
얼굴 이미지와 패스워드를 결합하여 생성한 특징 벡터로부터 바이오 핀을 생성하고, 비밀 난수들을 계수로 갖는 다항식의 함수값들과 바이오 핀간의 배타적 논리합(exclusive OR) 연산 결과를 바이오 키로서 생성 및 관리함으로써, 비밀 난수들을 은닉할 수 있는 키 생성 방법 및 시스템을 제공한다.
얼굴 이미지와 패스워드를 결합하여 생성한 특징 벡터로부터 바이오 핀을 생성하고, 바이오 핀과 바이오 키간의 배타적 논리합 연산 결과를 이용하여 다항식의 함수값들을 계산하고, 계산된 함수값들을 이용하여 다항식을 복원함으로써, 은닉된 비밀 난수들을 복구할 수 있는 키 생성 방법 및 시스템을 제공한다.
사용자와 관련하여 입력된 제1 얼굴 이미지 및 패스워드를 결합하여 제1 특징 벡터를 추출하고, 상기 추출된 제1 특징 벡터를 이용하여 제1 바이오 핀(BioPIN)을 생성하는 단계; 상기 사용자를 위한 N(상기 N은 자연수)개의 제1 비밀 난수들을 계수로 갖는 제1 N-1차 다항식을 생성하는 단계; 상기 제1 N-1차 다항식을 이용하여 T(상기 T는 상기 N 이상의 자연수)개의 서로 다른 미지수 값들에 대한 T개의 제1 함수값들을 생성하는 단계; 상기 제1 함수값들 각각과 상기 제1 바이오 핀간의 배타적 논리합 연산을 통해 바이오 키를 생성하는 단계; 및 상기 바이오 키를 저장하여 관리하는 단계를 포함하는 것을 특징으로 하는 키 생성 방법을 제공한다.
일측에 따르면, 상기 키 생성 방법은, 상기 사용자와 관련하여 입력된 제2 얼굴 이미지 및 패스워드를 결합하여 제2 특징 벡터를 추출하고, 상기 추출된 제2 특징 벡터를 이용하여 제2 바이오 핀을 생성하는 단계; 상기 저장된 바이오 키와 상기 제2 바이오 핀간의 배타적 논리합 연산을 통해 T 개의 제2 함수값들을 생성하는 단계; 상기 서로 다른 미지수 값들과 상기 제2 함수값들을 이용하여 제2 N-1차 다항식을 생성하는 단계; 및 상기 생성된 제2 N-1차 다항식의 N개의 계수들을 N개의 제2 비밀 난수들로서 복원하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
다른 측면에 따르면, 상기 제2 N-1차 다항식을 생성하는 단계는, 상기 서로 다른 미지수 값들과 상기 제2 함수값들의 쌍들로 식별되는 좌표들을 이용한 연립방정식을 통해 상기 제2 N-1차 다항식의 계수들을 계산하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 키 생성 방법은, 상기 생성된 제1 바이오 핀에 대한 ECC(Error Correcting Code)를 생성 및 저장하는 단계를 더 포함하고, 상기 제2 바이오 핀을 생성하는 단계는, 상기 생성된 제2 바이오 핀을 상기 저장된 ECC를 이용하여 오류 보정하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 서로 다른 미지수 값들은 등간격이나 부등간격을 갖는 값들의 시퀀스인 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 바이오 키를 저장하여 관리하는 단계는, 상기 제1 N-1차 다항식 또는 상기 N개의 제1 비밀 난수들을 더 저장하여 관리하고, 상기 키 생성 방법은, 상기 제1 N-1차 다항식 및 상기 제2 N-1차 다항식을 비교하거나 또는 상기 N개의 제1 비밀 난수들 및 상기 N 개의 제2 비밀 난수들을 비교하여 상기 사용자를 인증하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
또 다른 측면에 따르면, 상기 키 생성 방법은, 상기 N개의 제1 비밀 난수들을 이용하여 암호화된 데이터를 상기 N 개의 제2 비밀 난수들을 이용하여 복호화하거나, 상기 N개의 제1 비밀 난수들을 이용하여 생성된 전자서명을 상기 N 개의 제2 비밀 난수들을 이용하여 인증하는 단계를 더 포함하는 것을 특징으로 할 수 있다.
상기 키 처리 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체를 제공한다.
컴퓨터와 결합되어 상술한 키 처리 방법을 컴퓨터에 실행시키기 위해 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.
키 생성 방법을 실행하기 위해 컴퓨터로 구현되는 키 생성 시스템에 있어서, 컴퓨터에서 판독 가능한 명령을 저장하는 메모리; 및 상기 메모리에 저장된 명령을 실행하도록 구현되는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 사용자와 관련하여 입력된 제1 얼굴 이미지 및 패스워드를 결합하여 제1 특징 벡터를 추출하고, 상기 추출된 제1 특징 벡터를 이용하여 제1 바이오 핀(BioPIN)을 생성하고, 상기 사용자를 위한 N(상기 N은 자연수)개의 제1 비밀 난수들을 계수로 갖는 제1 N-1차 다항식을 생성하고, 상기 제1 N-1차 다항식을 이용하여 T(상기 T는 상기 N 이상의 자연수)개의 서로 다른 미지수 값들에 대한 T개의 제1 함수값들을 생성하고, 상기 제1 함수값들 각각과 상기 제1 바이오 핀간의 배타적 논리합 연산을 통해 바이오 키를 생성하고, 상기 바이오 키를 저장하여 관리하는 것을 특징으로 하는 키 생성 시스템을 제공한다.
얼굴 이미지와 패스워드를 결합하여 생성한 특징 벡터로부터 바이오 핀을 생성하고, 비밀 난수들을 계수로 갖는 다항식의 함수값들과 바이오 핀간의 배타적 논리합(exclusive OR) 연산 결과를 바이오 키로서 생성 및 관리함으로써, 비밀 난수들을 은닉할 수 있다.
얼굴 이미지와 패스워드를 결합하여 생성한 특징 벡터로부터 바이오 핀을 생성하고, 바이오 핀과 바이오 키간의 배타적 논리합 연산 결과를 이용하여 다항식의 함수값들을 계산하고, 계산된 함수값들을 이용하여 다항식을 복원함으로써, 은닉된 비밀 난수들을 복구할 수 있다.
도 1은 본 발명의 일실시예에 있어서, 바이오 핀 및 ECC의 생성 과정의 예를 도시한 도면이다.
도 2는 본 발명의 일실시예에 있어서, 바이오 키의 생성 과정의 예를 도시한 도면이다.
도 3은 본 발명의 일실시예에 있어서, 비밀 난수를 복구하는 과정의 예를 도시한 도면이다.
도 4는 본 발명의 일실시예에 있어서, 바이오 핀 및 바이오 키의 생성 과정의 예를 도시한 도면이다.
도 5는 본 발명의 일실시예에 따른 키 생성 방법을 이용한 사용자 인증 과정의 예를 도시한 도면이다.
도 6은 본 발명의 일실시예에 있어서, 키 생성 시스템의 내부 구성을 설명하기 위한 블록도이다.
도 7은 본 발명의 일실시예에 있어서, 키 생성 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이다.
도 8은 본 발명의 일실시예에 따른 키 생성 시스템이 수행할 수 있는 키 생성 방법의 예를 도시한 흐름도이다.
도 9는 본 발명의 일실시예에 있어서, 키 생성 방법이 더 포함할 수 있는 단계들의 예를 도시한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
본 발명에 따른 실시예들은 얼굴 이미지에 기반하여 암호 키를 생성하는 키 생성 방법 및 시스템에 관한 것으로, 키 생성 시스템은 물리적인 장치로 구현될 수 있다.
1. 바이오 핀(BioPIN) 추출(또는 생성)
본 발명의 실시예들에 따른 키 생성 시스템은 사용자에 대한 얼굴 이미지와 패스워드를 입력받고, 입력된 얼굴 이미지와 패스워드를 이용하여 해당 사용자를 위한 바이오 핀(BioPIN)을 생성할 수 있다. 예를 들어, 키 생성 시스템은 얼굴 이미지를 통해 추출된 얼굴 이미지 특징 벡터와 패스워드를 이용하여 생성된 매트릭스간의 내적 결과를 스레스홀딩(thresholding)하여 얻어지는 비트열을 바이오 핀으로서 생성할 수 있다. 얼굴 이미지에서의 얼굴 인식을 통해 얼굴 이미지 특징 벡터를 생성하기 위해, LDA(Linear Discriminant Analysis)나 LBP(Local Binary Pattern)와 같이 이미 잘 알려진 기술들이 활용될 수 있음을 당업자가 용이하게 이해할 수 있을 것이다. 이러한 바이오 핀의 생성 과정에 대해서는 추후 보다 구체적인 실시예를 통해 더욱 자세히 설명한다.
2. ECC(Error Correcting Code) 생성
본 발명의 실시예들에 따른 키 생성 시스템은 생성된 바이오 핀을 이용하여 바이오 핀에 대한 ECC를 생성할 수 있다. 생성된 ECC는 바이오 핀에 대한 오차 보정용으로 이용될 수 있다.
3. 바이오 키(BioKey) 추출(또는 생성)
본 발명의 실시예들에 따른 키 생성 시스템은 사용자를 위해 m-비트(m은 자연수, 일례로 64) 크기의 비밀 난수 N(N은 자연수) 개의 집합 {n1, n2, …, nN -1, nN}를 생성할 수 있다. 이때, 각각의 비밀 난수들은 아래 수학식 1과 같이 표현되는 함수 f(x)에서의 N-1차 다항식의 상수들일 수 있다.
Figure 112016115943992-pat00001
이때, 이러한 비밀 난수들의 시퀀스가 사용자를 위한 키가 될 수 있다. 이때, N-1차 다항식이 노출되는 경우, 사용자를 위한 키가 노출될 수 있다. 따라서, 키 생성 시스템은 사용자를 위한 키가 노출되지 않도록 아래와 같이 바이오 키를 생성하여 바이오 키만을 저장할 수 있다.
예를 들어 키 생성 시스템은, 바이오 핀의 코드워드(codeword) 개수가 T(T는 자연수) 개라 할 때, T 개의 임의의 x값들 {a1, a2, …, aT -1, aT}에 대한 T개의 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)}을 수학식 1에 따라 계산할 수 있다. 이때, T 개의 x값들 각각은 양의 정수일 수 있다.
이 경우, 키 생성 시스템은 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)} 각각과 앞서 생성된 바이오 핀간의 배타적 논리합(exclusive OR) 연산을 처리하여 그 결과값들을 바이오 키로서 생성할 수 있다. f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)}과 x값들 {a1, a2, …, aT -1, aT}을 모두 알 수 있는 경우, 연립방정식을 이용하여 역으로 N-1차 다항식의 계수들인 비밀 난수들을 계산해낼 수 있기 때문에, 키 생성 시스템은 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)} 각각과 앞서 생성된 바이오 핀간의 배타적 논리합 연산을 통해 바이오 핀을 알지 못하는 경우에는 f(x)값들 {f(a1), f(a2), …, f(aT-1), f(aT)}을 알 수 없도록 만들 수 있다.
비트간 배타적 논리합은 특정 비트의 반전이므로, 2회 반복하면 원래의 값이 나오게 된다. 따라서, 추후 원래의 바이오 핀을 다시 생성할 수 있다면, 키 생성 시스템은 바이오 키와 바이오 핀간의 배타적 논리합 연산을 처리하여 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)}을 구할 수 있으며, 키 생성 시스템이 x값들 {a1, a2, …, aT -1, aT}을 알고 있다는 가정하에 수학식 1에 따른 N-1차 다항식의 계수들인 비밀 난수들을 역으로 계산해낼 수 있다.
예를 들어, 키 생성 시스템을 포함하는 서버에 비밀 난수들로 암호화된 데이터가 존재하는 경우, 서버는 상술한 과정을 통해 역으로 계산해낸 비밀 난수들을 이용하여 암호화된 데이터를 복호화할 수 있다.
다른 실시예에서는, 비밀 난수들이 인증을 위한 데이터로서 활용될 수도 있다. 예를 들어, 키 생성 시스템을 포함하는 서버는 비밀 난수들을 사용자의 인증을 위한 데이터로서 저장할 수 있다. 이 경우, 서버는 저장된 비밀 난수들과 역으로 계산된 비밀 난수들을 비교함으로써, 얼굴 데이터와 비밀번호를 제시한 사용자를 인증할 수 있다.
이때, 얼굴 이미지는 동일한 사용자에 대해서도 달라질 수 있고, 이에 따라 얼굴 이미지들을 통해 추출되는 얼굴 이미지 특징 벡터들이 달라질 수 있다. 앞서 설명한 ECC는 이러한 차이점에 따른 오차를 보정하기 위해 사용될 수 있다.
그러나, 오차를 보정하더라도 생성된 바이오 핀은 이전에 생성된 바이오 핀과 다를 수 있다. 이 경우, 바이오 핀과 바이오 키간의 배타적 논리합 연산을 통해 복원되는 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)} 중 적어도 하나의 원소의 값(f(ai)값, i=자연수)이 원래의 값과 달라질 수 있다. 이를 위해, T는 N보다 큰 값을 가질 수 있다. 즉, T개의 f(x)값들 중 N개의 정확한 f(x)값들만 얻어낼 수 있다면, 정확한 함수 f(x)를 얻을 수 있고, 정확한 비밀 난수들의 값을 얻어낼 수 있다.
또한, 보간법(interpolation)이 활용될 수도 있다. 보간법은 실변수 x의 함수 f(x)의 모양은 미지이나, 어떤 간격(등간격이나 부등간격이나 상관없다)을 가지는 2개 이상인 변수의 값 xi(i=1, 2, …, n)에 대한 함수값 f(xi)가 알려져 있을 경우, 그 사이의 임의의 x에 대한 함수값을 추정하는 것을 말한다. 이를 위해, T 개의 임의의 x값들 {a1, a2, …, aT -1, aT}은 등간격이나 부등간격을 갖는 값들로 이루어질 수 있고, 키 생성 시스템은 보간법을 이용하여 달라진 f(ai)값에 대한 원래 값을 추정할 수 있다.
도 1은 본 발명의 일실시예에 있어서, 바이오 핀 및 ECC의 생성 과정의 예를 도시한 도면이다. 도 1은 키 생성 시스템(100)으로 사용자의 얼굴 이미지(110)와 패스워드(120)가 입력되는 예를 나타내고 있다. 일례로, 키 생성 시스템(100)이 사용자의 단말기에 구현된 경우, 사용자의 단말기가 포함하는 카메라를 통해 촬영된 얼굴 이미지(110)가 키 생성 시스템으로 입력되거나 또는 사용자의 단말기의 저장소에 저장된 얼굴 이미지(110)가 키 생성 시스템으로 입력될 수 있다. 또한, 패스워드(120)는 사용자의 단말기의 입력 장치를 통해 입력된 문자열로서 키 생성 시스템으로 입력될 수 있다. 다른 예로, 키 생성 시스템(100)이 사용자의 단말기와 네트워크를 통해 통신하는 서버에 구현된 경우, 사용자의 단말기로부터 서버로 전송된 얼굴 이미지(110)와 패스워드(120)가 서버에 구현된 키 생성 시스템(100)으로 입력될 수 있다.
입력된 얼굴 이미지(110)와 패스워드(120)는 특징 추출 모듈(130)로 입력되어 특징 벡터가 추출될 수 있고, 기설정된 스레스홀드(140)를 이용한 스레스홀딩을 통해 비트열로 구성된 사용자의 바이오 핀(BioPIN, 150)이 생성될 수 있다. 스레스홀딩은 추출된 특징 벡터의 엘리먼트들 각각의 값과 스레스홀드(140)간의 비교를 통해 비트열을 얻는 과정을 의미할 수 있다. 예를 들어, 엘리먼트의 값이 스레스홀드(140)보다 작거나 같은 경우엔 '0'의 비트값이, 엘리먼트의 값이 스레스홀드(140)보다 큰 경우엔 '1'의 비트값이 결정될 수 있다. 즉, 추출된 특징 벡터가 포함하는 엘리먼트들 각각에 대한 비트값들이 결정되어 바이오 핀(150)이 생성될 수 있다.
생성된 바이오 핀(150)은 ECC 생성 모듈(160)로 입력되어 바이오 핀(150)에 대한 ECC(170)가 생성될 수 있다.
도 2는 본 발명의 일실시예에 있어서, 바이오 키의 생성 과정의 예를 도시한 도면이다.
제1 점선박스(210)는 키 생성 시스템이 사용자를 위한 N개의 비밀 난수들을 생성하는 과정의 예를 나타내고 있다. 여기서 N은 자연수일 수 있다.
제2 점선박스(220)는 키 생성 시스템이 생성된 N 개의 비밀 난수들을 계수로 갖는 N-1차 함수 fx를 생성하는 과정의 예를 나타내고 있다.
제3 점선박스(230)는 키 생성 시스템이 T 개의 ai의 값들에 대응하는 T개의 f(ai) 값들을 생성하는 과정의 예를 나타내고 있다. 이때, T는 N 이상의 자연수일 수 있으며, i는 1이상 T 이하의 값을 가질 수 있다.
제4 점선박스(240)는 생성된 T개의 f(ai) 값들 각각과 바이오 핀간의 배타적 논리합(exclusive OR) 연산을 처리하는 과정의 예를 나타내고 있다.
제5 점선박스(250)는 생성된 T개의 f(ai) 값들 각각과 바이오 핀간의 배타적 논리합 연산의 처리 결과로서 바이오 키가 생성되는 예를 나타내고 있다.
생성된 바이오 키는 키 생성 시스템에 저장 및 관리될 수 있다.
도 3은 본 발명의 일실시예에 있어서, 비밀 난수를 복구하는 과정의 예를 도시한 도면이다. 도 3은 새롭게 입력된 얼굴 이미지 및 패스워드를 통해 생성된 바이오 핀(310)과 키 생성 시스템이 저장하고 있는 바이오 키(320)간의 배타적 논리합 연산을 통해 비밀 난수들을 복구하는 예를 나타내고 있다. 이때, 이미 설명한 바와 같이, 키 생성 시스템은 바이오 핀(310)과 바이오 키(320)간의 배타적 논리합 연산을 통해 T개의 f(ai) 값들을 얻을 수 있다. 또한, 키 생성 시스템은 T 개의 ai의 값들을 알고 있기 때문에 함수 fx를 위한 T 개의 좌표를 얻을 수 있으며, 이 중 적어도 N 개의 정확한 좌표를 이용하여 함수 fx를 얻을 수 있다. 얻어진 함수 fx의 계수들이 비밀 난수들에 대응되기 때문에, 키 생성 시스템은 사용자를 위한 비밀 난수들을 복구할 수 있게 된다.
이하에서는 도 4 및 도 5를 통해 본 발명의 일실시예에 따른 키 생성 방법을 이용한 사용자 인증 프로세스를 설명한다. 도 4 및 도 5에서는 얼굴 인식을 위한 LDA(Linear Discriminant Analysis)를 이용하여 바이오 핀을 생성하는 예를 설명하나, 바이오 핀을 생성하는 방법이 이에 한정될 필요는 없으며, 얼굴 이미지를 위한 특징 벡터를 추출할 수 있고, 이를 패스워드와 결합하기 위한 다양한 방법들 중 하나가 활용될 수 있다.
도 4는 본 발명의 일실시예에 있어서, 바이오 핀 및 바이오 키의 생성 과정의 예를 도시한 도면이고, 도 5는 본 발명의 일실시예에 따른 키 생성 방법을 이용한 사용자 인증 과정의 예를 도시한 도면이다.
도 4는 사용자 등록 과정의 예를 설명하고 있으며, 사용자 등록 과정이 포함하는 바이오 핀 생성 과정(410)과 바이오 키 생성 과정(420)을 도시하고 있다.
바이오 핀 생성 과정(410)에서 Xi는 입력되는 i 번째 얼굴 이미지를 의미할 수 있다. 입력된 i 번째 얼굴 이미지에 대한 특징 추출 과정(Feature Extraction, 411)을 통해 입력된 i 번째 얼굴 이미지에 대한 특징 벡터 Yi가 추출될 수 있다. 또한, 특징 추출 과정(411)을 통해 입력된 i 번째 얼굴 이미지에 대한 투영행렬(projection matrix) U가 추출될 수 있다.
또한, 바이오 핀 생성 과정(410)에서 πi는 사용자의 패스워드를 의미할 수 있다. 키 생성 시스템은 입력된 사용자의 패스워드 πi를 이용한 순열행렬 생성 과정(Permutation matrix Generation, 412)을 통해 순열행렬의 역행렬
Figure 112016115943992-pat00002
가 생성될 수 있다. 이때, ki는 순열행렬의 생성을 위해 키 생성 시스템이 제공하는 기설정된 값일 수 있다.
랜덤한 투영행렬 생성 과정(Random projection matrix Generation, 413)은 랜덤한 투영행렬 Ri를 생성하는 과정일 수 있다. 생성된 투영행렬 Ri와 특징 벡터 Yi간의 내적 연산 과정(414)을 통해 RiYi가 계산될 수 있으며, 생성된 투영행렬 Ri, 순열행렬의 역행렬
Figure 112016115943992-pat00003
및 투영행렬U간의 내적을 통해
Figure 112016115943992-pat00004
가 계산될 수 있다.
RiYi는 스레스홀드를 이용한 스레스홀딩을 위해 바이오 해싱 과정(Bio-Hashing, 416)을 거칠 수 있으며, 이미 설명한 바와 같이 스레스홀딩을 통해 비트열로 구성된 해시스트링 HashStrij이 계산될 수 있다. 여기서, j는 바이오 핀을 각각 동일한 크기의 비트열로 구성되는 22개의 조각인 해시스트링 HashStrij으로 관리함을 의미할 수 있다. 이때, ECC 생성기(421)를 통해 각각의 해시스트링 HashStrij에 대한 ECCij들이 생성될 수 있다.
랜덤 오더 함수(Random order function, 422)는 함수를 파라미터로 전달하는 함수일 수 있다. 도 4에서는 함수 Fi를 파라미터로 전달하는 예를 설명하고 있다. 이때, 함수 Fi는 수학식 1을 통해 설명한 함수를 의미할 수 있다. 다시 말해, 함수 Fi에 따른 N-1차 다항식의 계수들이 사용자를 위한 N개의 비밀 난수들일 수 있다.
해시스트링 HashStrij들과 함수 Fi의 값들(앞서 설명한 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)}) 각각간의 배타적 논리합 연산 과정(423)을 통해 Keyij들이 계산될 수 있고, Keyij들을 포함하는 Keyi가 바이오 키로서 생성될 수 있다.
키 생성 시스템은 도 4에 도시된 바와 같이, 집합 {ki,
Figure 112016115943992-pat00005
, ECCi, Keyi}를 해당 사용자와 연관하여 저장함으로써 사용자들 등록할 수 있다.
도 5는 사용자 인증 과정을 설명하고 있다. 사용자가 사용자 인증을 위해 얼굴 이미지 X와 패스워드 πi를 입력한 예를 가정한다. 키 생성 시스템은 입력된 패스워드 πi와 ki를 입력으로 하는 순열행렬 생성 과정(Permutation matrix Generation, 510)을 통해 순열행렬
Figure 112016115943992-pat00006
를 생성할 수 있다. 또한, 키 생성 시스템은 얼굴 이미지 X와 순열행렬
Figure 112016115943992-pat00007
간의 내적 연산 과정(520)을 통해
Figure 112016115943992-pat00008
를 계산할 수 있으며,
Figure 112016115943992-pat00009
Figure 112016115943992-pat00010
의 내적 연산 과정(530)을 통해 Riy를 계산할 수 있다. 랜덤한 투영행렬 Ri는 사용자별 벡터 구분을 보다 명확히 하기 위해 활용될 수 있다. 이때, Riy에 대한 스레스홀딩을 위한 바이오 해싱 과정(540)을 통해 해시스트링 HashStri가 바이오 핀으로서 생성될 수 있다. 생성된 바이오 핀은 키 생성 시스템이 저장하고 있는 ECCi(ECCij들을 포함함)를 이용한 오류 보정 과정(550)을 통해 오차가 보정되어
Figure 112016115943992-pat00011
가 생성될 수 있으며, 생성된
Figure 112016115943992-pat00012
와 바이오 키인 Keyij들을 포함하는 Keyi간의 배타적 논리합 연산 과정(560)을 통해 함수값들(일례로, 앞서 설명한 f(x)값들 {f(a1), f(a2), …, f(aT -1), f(aT)})이 복구될 수 있으며, 키 생성 시스템이 알고 있는 x값들과 복구된 함수값들을 통해 함수의 계수들(비밀 난수들)이 구해짐에 따라 도 5에 나타난 바와 같이 함수
Figure 112016115943992-pat00013
가 구해질 수 있다.
키 생성 시스템은 매칭 과정(570)을 통해 앞서 구해진 함수
Figure 112016115943992-pat00014
와 키 생성 시스템이 저장하고 있는 함수 Fi를 비교함으로써 사용자의 인증 여부를 결정할 수 있다.
이미 설명한 바와 같이, 함수 Fi를 저장하지 않고, 구해진 함수
Figure 112016115943992-pat00015
의 계수들을 키로 이용하여 데이터를 암호화 또는 복호화하거나 전자 서명을 위한 키로 활용하는 등 보다 다양한 실시예들을 위해 비밀 난수들이 활용될 수도 있다.
도 6은 본 발명의 일실시예에 있어서, 키 생성 시스템의 내부 구성을 설명하기 위한 블록도이다. 본 발명의 실시예들에 따른 키 생성 시스템(600)은 적어도 하나의 물리적인 컴퓨터 장치를 통해 구현될 수 있으며, 도 6에 도시된 바와 같이 메모리(610), 프로세서(620), 통신 모듈(630) 그리고 입출력 인터페이스(640)를 포함할 수 있다. 메모리(610)는 컴퓨터에서 판독 가능한 기록매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 여기서 ROM과 비소멸성 대용량 기록장치는 메모리(610)와 분리되어 별도의 영구 저장 장치로서 포함될 수도 있다. 또한, 메모리(610)에는 운영체제와 적어도 하나의 프로그램 코드(일례로 본 발명의 실시예들에 따른 키 생성 방법을 수행하도록 키 생성 시스템(600)이 포함하는 기록매체에 저장되어 키 생성 시스템(600)을 제어하기 위한 컴퓨터 프로그램)가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 메모리(610)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(630)을 통해 메모리(610)에 로딩될 수도 있다.
프로세서(620)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(610) 또는 통신 모듈(630)에 의해 프로세서(620)로 제공될 수 있다. 예를 들어 프로세서(620)는 메모리(610)에 로딩된 프로그램 코드에 따라 수신되는 명령을 실행하도록 구성될 수 있다. 보다 구체적인 예로, 프로세서(620)는 메모리(610)에 로딩된 컴퓨터 프로그램의 코드에 따른 명령을 순차적으로 실행하여 본 발명의 실시예에 따른 키 생성 방법을 수행할 수 있다.
통신 모듈(630)은 실제 컴퓨터 네트워크를 통해 다른 물리적인 기기들과 서로 통신하기 위한 기능을 제공할 수 있다. 일례로, 키 생성 시스템(600)의 프로세서(620)가 처리하기 위한 얼굴 이미지와 패스워드는 컴퓨터 네트워크상의 다른 물리적인 기기로부터, 컴퓨터 네트워크와 통신 모듈(730)을 통해 키 생성 시스템(600)으로 수신되어 메모리(610)나 프로세서(620)로 전달될 수 있다. 역으로, 키 생성 시스템(600)이 수신된 얼굴 이미지와 패스워드에 대한 연산의 처리 결과가 통신 모듈(630)과 컴퓨터 네트워크를 통해 다른 물리적인 기기로 전송될 수도 있다.
입출력 인터페이스(640)는 입출력 장치(650)와의 인터페이스를 위한 수단일 수 있다. 예를 들어, 입출력 장치(650)에서 입력 장치는 키보드 또는 마우스 등의 장치를, 그리고 출력 장치는 디스플레이나 스피커와 같은 장치를 포함할 수 있다. 도 6에서 입출력 장치(650)는 키 생성 시스템(600)과 별도의 장치로 표현되었으나, 실시예에 따라 입출력 장치(650)가 키 생성 시스템(600)에 포함되도록 구현될 수도 있다.
또한, 다른 실시예들에서 키 생성 시스템(600)은 도 6의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다. 예를 들어, 키 생성 시스템(600)은 각종 물리적인 버튼이나 터치패널, 또는 광출력 장치 등의 다양한 구성요소들을 더 포함하도록 구현될 수 있음을 알 수 있다.
도 7은 본 발명의 일실시예에 있어서, 키 생성 시스템의 프로세서가 포함할 수 있는 구성요소의 예를 도시한 블록도이고, 도 8은 본 발명의 일실시예에 따른 키 생성 시스템이 수행할 수 있는 키 생성 방법의 예를 도시한 흐름도이다. 도 7은 앞서 설명한 키 생성 시스템(600)의 프로세서(620)가 포함할 수 있는 구성요소들로서 바이오 핀 생성부(710), 다항식 생성부(720), 함수값 생성부(730), 바이오 키 생성부(740) 및 바이오 키 관리부(750)를 나타내고 있다. 또한, 키 생성 시스템(600)의 프로세서(620)는 실시예에 따라 ECC 생성부(761), 오류 보정부(762), 사용자 인증부(763), 암복호화부(764) 및 전자서명 인증부(765) 중 적어도 일부를 선택적으로 더 포함할 수 있다. 이러한 프로세서(620) 및 프로세서(620)의 구성요소들은 도 8의 키 생성 방법이 포함하는 단계들(810 내지 870)을 수행할 수 있다. 이때, 프로세서(620) 및 프로세서(620)의 구성요소들은 메모리(610)가 포함하는 운영체제의 코드 및/또는 적어도 하나의 컴퓨터 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다. 여기서, 프로세서(620)의 구성요소들은 키 생성 시스템(600)에 저장된 컴퓨터 프로그램의 코드가 제공하는 제어 명령에 따라 프로세서(620)에 의해 수행되는 프로세서(620)의 서로 다른 기능들(different functions)의 표현들일 수 있다. 이때, 프로세서(620)는 키 생성 시스템(600)의 제어와 관련된 명령이 로딩된 메모리(610)로부터 필요한 제어 명령을 읽어드릴 수 있으며, 읽어들인 제어 명령에 따라 이후 설명될 단계들(810 내지 870)을 수행하도록 키 생성 시스템(600)을 제어할 수 있다.
단계(810)에서 바이오 핀 생성부(710)는 사용자와 관련하여 입력된 제1 얼굴 이미지 및 패스워드를 결합하여 제1 특징 벡터를 추출할 수 있다. 일례로, 제1 얼굴 이미지를 통해 추출된 특징 벡터와 패스워드에 기반하여 생성된 매트릭스간의 내적 연산 결과로서 제1 특징 벡터를 생성할 수 있다.
단계(820)에서 바이오 핀 생성부(710)는 추출된 제1 특징 벡터를 이용하여 제1 바이오 핀(BioPIN)을 생성할 수 있다. 이미 설명한 바와 같이, 바이오 핀 생성부(710)는 제1 특징 벡터가 포함하는 요소들 각각에 대한 스레스홀딩을 통해 비트열을 포함하는 제1 바이오 핀을 생성할 수 있다.
단계(830)에서 ECC 생성부(761)는 생성된 제1 바이오 핀에 대한 ECC를 생성 및 저장할 수 있다. ECC는 추후 제2 얼굴 이미지와 패스워드를 통해 생성되는 제2 바이오 핀의 오류를 보정하기 위해 이용될 수 있다. 동일한 사용자에 대해서도 얼굴 이미지들을 통해 추출되는 특징 벡터들이 서로 다를 수 있기 때문에 그 차이점을 보정하기 위해 이러한 ECC가 이용될 수 있음을 이미 설명한 바 있다.
단계(840)에서 다항식 생성부(720)는 사용자를 위한 N(N은 자연수)개의 제1 비밀 난수들을 계수로 갖는 제1 N-1차 다항식을 생성할 수 있다. 수학식 1을 통해 N개의 비밀 난수들을 계수로 갖는 N-1차 다항식에 대해 설명한 바 있다.
단계(850)에서 함수값 생성부(730)는 제1 N-1차 다항식을 이용하여 T(T는 N 이상의 자연수)개의 서로 다른 미지수 값들에 대한 T개의 제1 함수값들을 생성할 수 있다. 서로 다른 미지수 값들은 상술한 제1 N-1차 다항식에 따른 함수 f(x)에서 x로 입력될 값들을 의미할 수 있고, 제1 함수값들은 서로 다른 미지수 값들에 대한 함수값들을 의미할 수 있다.
단계(860)에서 바이오 키 생성부(740)는 제1 함수값들 각각과 제1 바이오 핀간의 배타적 논리합 연산을 통해 바이오 키를 생성할 수 있다. 이러한 바이오 키의 생성에 대해서는 앞서 자세히 설명한 바 있다.
단계(870)에서 바이오 키 관리부(750)는 바이오 키를 저장하여 관리할 수 있다. 저장된 바이오 키는 추후, 사용자를 위한 비밀 난수들을 복원하기 위해 이용될 수 있다.
도 9는 본 발명의 일실시예에 있어서, 키 생성 방법이 더 포함할 수 있는 단계들의 예를 도시한 흐름도이다. 도 9의 단계들은 도 8의 단계(870) 이후에 실행될 수 있다.
단계(910)에서 바이오 핀 생성부(710)는 사용자와 관련하여 입력된 제2 얼굴 이미지 및 패스워드를 결합하여 제2 특징 벡터를 추출하고, 추출된 제2 특징 벡터를 이용하여 제2 바이오 핀을 생성할 수 있다.
단계(920)에서 오류 보정부(762)는 생성된 제2 바이오 핀을 저장된 ECC를 이용하여 오류 보정할 수 있다. 이러한 ECC는 제1 얼굴 이미지와 제2 얼굴 이미지의 차이로 인해 발생하는 차이점을 보정하기 위해 이용될 수 있다.
단계(930)에서 함수값 생성부(730)는 저장된 바이오 키와 제2 바이오 핀간의 배타적 논리합 연산을 통해 T 개의 제2 함수값들을 생성할 수 있다.
단계(940)에서 다항식 생성부(720)는 서로 다른 미지수 값들과 제2 함수값들을 이용하여 제2 N-1차 다항식을 생성하여 생성된 제2 N-1차 다항식의 N개의 계수들을 N개의 제2 비밀 난수들로서 복원할 수 있다.
이때, N 개의 제2 함수값들만으로도 제2 N-1차 다항식을 생성할 수 있으나, 앞서 설명한 바와 같이 제1 얼굴 이미지와 제2 얼굴 이미지의 차이로 인해 제2 함수값들 중 적어도 하나의 값은 제1 함수값들 중 대응하는 값과 달라질 수 있다. 따라서, 다항식 생성부(720)는 N 개 이상인 T 개의 제2 함수값들 중 정확한 N개의 제2 함수값들을 복원할 수 있는 경우, 제2 비밀 난수들을 복원할 수 있다. 또한, 서로 다른 미지수 값들은 등간격이나 부등간격을 갖는 값들의 시퀀스일 수 있다. 이 경우, 다항식 생성부(720)는 보간법을 이용하여 달라진 함수값에 대한 원래 값을 추정할 수도 있다.
이후 설명되는 단계(951), 단계(952) 및 단계(953)은 실시예별로 하나씩 실행될 수 있다. 예를 들어, 단계(940) 이후에 단계(951), 단계(952) 및 단계(953) 중 어느 하나가 수행될 수 있으며, 단계(951), 단계(952) 및 단계(953) 중 어느 하나가 실행된 후, 키 생성 방법은 종료될 수 있다.
단계(951)에서 사용자 인증부(763)는 제1 N-1차 다항식 및 제2 N-1차 다항식을 비교하거나 또는 N개의 제1 비밀 난수들 및 N 개의 제2 비밀 난수들을 비교하여 사용자를 인증할 수 있다. 이러한 사용자 인증에 대해서는 도 4 및 도 5의 실시예를 통해 자세히 설명한 바 있다. 도 5에서는 다항식(함수)을 비교하고 있으나, 비밀 난수들이 다항식의 계수들이기 때문에 동일한 차수의 다항식들간의 비교는 계수들인 비밀 난수들의 비교에 대응될 수 있다. 이 경우 바이오 키 관리부(750)는 단계(870)에서 제1 N-1차 다항식 또는 N개의 제1 비밀 난수들을 단계(951)에서의 비교를 위해 더 저장하여 관리할 수 있다.
단계(952)에서 암복호화부(764)는 N개의 제1 비밀 난수들을 이용하여 암호화된 데이터를 N 개의 제2 비밀 난수들을 이용하여 복호화할 수 있다. 암복호화부(764)는 제1 비밀 난수들을 이용하여 데이터를 암호화하고, 도 8의 방법들을 통해 바이오 키를 관리할 수 있다. 추후, 데이터를 요청하는 사용자에게 제2 비밀 난수들을 통해 암호화된 데이터를 복호화하여 전달하는 실시예를 앞서 설명한 키 관리 방법을 통해 당업자라면 쉽게 이해할 수 있을 것이다.
단계(953)에서 전자서명 인증부(765)는 N개의 제1 비밀 난수들을 이용하여 생성된 전자서명을 N 개의 제2 비밀 난수들을 이용하여 인증할 수 있다. 전자서명 인증부(765)는 제1 비밀 난수들을 이용하여 전자서명을 생성하여 제공하고, 추후 사용자의 전자서명을 인증해야 할 필요가 있는 경우, 제2 비밀 난수들을 생성하여 전자서명을 인증할 수 있다. 이러한 전자서명의 인증을 위한 실시예 역시 앞서 설명한 키 관리 방법을 통해 당업자라면 쉽게 이해할 수 있을 것이다.
이처럼 본 발명의 실시예들에 따르면, 얼굴 이미지와 패스워드를 결합하여 생성한 특징 벡터로부터 바이오 핀을 생성하고, 비밀 난수들을 계수로 갖는 다항식의 함수값들과 바이오 핀간의 배타적 논리합(exclusive OR) 연산 결과를 바이오 키로서 생성 및 관리함으로써, 비밀 난수들을 은닉할 수 있다. 또한, 얼굴 이미지와 패스워드를 결합하여 생성한 특징 벡터로부터 바이오 핀을 생성하고, 바이오 핀과 바이오 키간의 배타적 논리합 연산 결과를 이용하여 다항식의 함수값들을 계산하고, 계산된 함수값들을 이용하여 다항식을 복원함으로써, 은닉된 비밀 난수들을 복구할 수 있다.
이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소 또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (10)

  1. 사용자와 관련하여 입력된 제1 얼굴 이미지 및 패스워드를 결합하여 제1 특징 벡터를 추출하고, 상기 추출된 제1 특징 벡터를 이용하여 제1 바이오 핀(BioPIN)을 생성하는 단계;
    상기 사용자를 위한 N(상기 N은 자연수)개의 제1 비밀 난수들을 계수로 갖는 제1 N-1차 다항식을 생성하는 단계;
    상기 제1 N-1차 다항식을 이용하여 T(상기 T는 상기 N 이상의 자연수)개의 서로 다른 미지수 값들에 대한 T개의 제1 함수값들을 생성하는 단계;
    상기 제1 함수값들 각각과 상기 제1 바이오 핀간의 배타적 논리합 연산을 통해 바이오 키를 생성하는 단계; 및
    상기 바이오 키를 저장하여 관리하는 단계
    를 포함하고,
    상기 사용자와 관련하여 입력된 제2 얼굴 이미지 및 패스워드를 결합하여 제2 특징 벡터를 추출하고, 상기 추출된 제2 특징 벡터를 이용하여 제2 바이오 핀을 생성하는 단계;
    상기 저장된 바이오 키와 상기 제2 바이오 핀간의 배타적 논리합 연산을 통해 T 개의 제2 함수값들을 생성하는 단계; 및
    상기 서로 다른 미지수 값들과 상기 제2 함수값들을 이용하여 제2 N-1차 다항식을 생성하여 상기 생성된 제2 N-1차 다항식의 N개의 계수들을 N개의 제2 비밀 난수들로서 복원하는 단계
    를 더 포함하는 것을 특징으로 하는 키 생성 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 제2 N-1차 다항식을 생성하는 단계는,
    상기 서로 다른 미지수 값들과 상기 제2 함수값들의 쌍들로 식별되는 좌표들을 이용한 연립방정식을 통해 상기 제2 N-1차 다항식의 계수들을 계산하는 것을 특징으로 하는 키 생성 방법.
  4. 제1항에 있어서,
    상기 생성된 제1 바이오 핀에 대한 ECC(Error Correcting Code)를 생성 및 저장하는 단계
    를 더 포함하고,
    상기 제2 바이오 핀을 생성하는 단계는,
    상기 생성된 제2 바이오 핀을 상기 저장된 ECC를 이용하여 오류 보정하는 것을 특징으로 하는 키 생성 방법.
  5. 제1항에 있어서,
    상기 서로 다른 미지수 값들은 등간격이나 부등간격을 갖는 값들의 시퀀스인 것을 특징으로 하는 키 생성 방법.
  6. 제1항에 있어서,
    상기 바이오 키를 저장하여 관리하는 단계는,
    상기 제1 N-1차 다항식 또는 상기 N개의 제1 비밀 난수들을 더 저장하여 관리하고,
    상기 제1 N-1차 다항식 및 상기 제2 N-1차 다항식을 비교하거나 또는 상기 N개의 제1 비밀 난수들 및 상기 N 개의 제2 비밀 난수들을 비교하여 상기 사용자를 인증하는 단계
    를 더 포함하는 것을 특징으로 하는 키 생성 방법.
  7. 제1항에 있어서,
    상기 N개의 제1 비밀 난수들을 이용하여 암호화된 데이터를 상기 N 개의 제2 비밀 난수들을 이용하여 복호화하거나, 상기 N개의 제1 비밀 난수들을 이용하여 생성된 전자서명을 상기 N 개의 제2 비밀 난수들을 이용하여 인증하는 단계
    를 더 포함하는 것을 특징으로 하는 키 생성 방법.
  8. 제1항 또는 제3항 내지 제7항 중 어느 한 항의 방법을 컴퓨터에 실행시키기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록매체.
  9. 키 생성 방법을 실행하기 위해 컴퓨터로 구현되는 키 생성 시스템에 있어서,
    컴퓨터에서 판독 가능한 명령을 저장하는 메모리; 및
    상기 메모리에 저장된 명령을 실행하도록 구현되는 적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는,
    사용자와 관련하여 입력된 제1 얼굴 이미지 및 패스워드를 결합하여 제1 특징 벡터를 추출하고, 상기 추출된 제1 특징 벡터를 이용하여 제1 바이오 핀(BioPIN)을 생성하고,
    상기 사용자를 위한 N(상기 N은 자연수)개의 제1 비밀 난수들을 계수로 갖는 제1 N-1차 다항식을 생성하고,
    상기 제1 N-1차 다항식을 이용하여 T(상기 T는 상기 N 이상의 자연수)개의 서로 다른 미지수 값들에 대한 T개의 제1 함수값들을 생성하고,
    상기 제1 함수값들 각각과 상기 제1 바이오 핀간의 배타적 논리합 연산을 통해 바이오 키를 생성하고,
    상기 바이오 키를 저장하여 관리하고,
    상기 사용자와 관련하여 입력된 제2 얼굴 이미지 및 패스워드를 결합하여 제2 특징 벡터를 추출하고, 상기 추출된 제2 특징 벡터를 이용하여 제2 바이오 핀을 생성하고,
    상기 저장된 바이오 키와 상기 제2 바이오 핀간의 배타적 논리합 연산을 통해 T 제2 함수값들을 생성하고,
    상기 서로 다른 미지수 값들과 상기 제2 함수값들을 이용하여 제2 N-1차 다항식을 생성하고,
    상기 생성된 제2 N-1차 다항식의 N개의 계수들을 N개의 제2 비밀 난수들로서 복원하는 것
    을 특징으로 하는 키 생성 시스템.
  10. 제9항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 서로 다른 미지수 값들과 상기 제2 함수값들의 쌍들로 식별되는 좌표들을 이용한 연립방정식을 통해 상기 제2 N-1차 다항식의 계수들을 계산하는 것
    을 특징으로 하는 키 생성 시스템.
KR1020160158894A 2016-11-28 2016-11-28 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템 KR101903246B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160158894A KR101903246B1 (ko) 2016-11-28 2016-11-28 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160158894A KR101903246B1 (ko) 2016-11-28 2016-11-28 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20180059980A KR20180059980A (ko) 2018-06-07
KR101903246B1 true KR101903246B1 (ko) 2018-10-01

Family

ID=62916365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160158894A KR101903246B1 (ko) 2016-11-28 2016-11-28 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101903246B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200080011A (ko) * 2018-12-26 2020-07-06 주식회사 아이콘루프 데이터를 분산해서 저장하는 시스템 및 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101974345B1 (ko) * 2018-12-06 2019-05-02 동국대학교 산학협력단 전자 서명을 통한 차량 간 보안 통신을 지원하는 커넥티드 차량용 데이터 통신 장치 및 그 동작 방법
CN111488592B (zh) * 2019-01-29 2023-08-25 武汉海康存储技术有限公司 数据加解密方法、装置及网络设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
andakumar, Karthik, and Anil K. Jain. "Multibiometric Template Security Using Fuzzy Vault." Biometrics: Theory, Applications and Systems, 2008. BTAS 2008, IEEE (2008.10.01.)
Kalaivani, K., and R. Sivakumar. "A Novel Fuzzy Based Bio-Key Management scheme for Medical Data Security." Journal of Electrical Engineering & Technology 11.5 (2016): 1509-1518. (2016.09.01)
Kang, Jeonil, DaeHun Nyang, and KyungHee Lee. "Two-factor face authentication using matrix permutation transformation and a user password." Information Sciences 269 (2014): 1-20. (2014.02.12.)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200080011A (ko) * 2018-12-26 2020-07-06 주식회사 아이콘루프 데이터를 분산해서 저장하는 시스템 및 방법
KR102181645B1 (ko) 2018-12-26 2020-11-24 주식회사 아이콘루프 데이터를 분산해서 저장하는 시스템 및 방법

Also Published As

Publication number Publication date
KR20180059980A (ko) 2018-06-07

Similar Documents

Publication Publication Date Title
CN109756338B (zh) 认证装置、验证装置的计算机实现方法和计算机可读介质
EP3337084B1 (en) Cryptographic data processing method, cryptographic data processing apparatus, and program
US11227037B2 (en) Computer system, verification method of confidential information, and computer
EP3656087A1 (en) Practical reusable fuzzy extractor based on the learning-with-error assumption and random oracle
JP2006121689A (ja) Drmシステムにおけるシステムキーを共有及び生成する方法、並びにその装置
KR101903246B1 (ko) 얼굴 이미지로부터 암호 키를 생성하는 방법 및 시스템
KR102008101B1 (ko) 함수 암호를 이용한 안전한 바이오 인증 방법
JP2015019292A (ja) 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法
KR101845192B1 (ko) 내적 연산 적용을 위한 지문 정보 변경 방법 및 시스템
KR102035249B1 (ko) 생체 정보를 이용한 암호화 키 생성 장치 및 방법
JP6488954B2 (ja) 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム
CN111758127B (zh) 秘密计算装置及其方法、秘密计算认证系统以及记录介质
KR101838432B1 (ko) 바이오매트릭스와 함수암호-내적을 이용한 인증 방법 및 시스템
JP6467063B2 (ja) 秘密認証符号付加装置、秘密認証符号付加方法、およびプログラム
US11706032B2 (en) Method and apparatus for user authentication
KR102199464B1 (ko) 컨소시엄 블록체인 참가 노드 간의 인증 방안
KR102122773B1 (ko) 복원가능 기능을 가지는 리댁터블 서명 시스템 및 방법
CN113408012A (zh) 故障检测
JP6830867B2 (ja) 追加データ付き認証暗号システム、復号装置、追加データ付き認証暗号方法、およびプログラム
KR101949579B1 (ko) 바이오매트릭스를 이용하여 키를 생성하는 방법 및 시스템
JP6780953B2 (ja) 認証装置、認証方法及び認証プログラム
KR102425916B1 (ko) 가변 길이 퍼지 데이터를 지원하는 격자 기반 퍼지 추출 장치 및 방법
KR102665929B1 (ko) 물리적으로 복제 불가능한 기능의 원격 재등록
KR102006566B1 (ko) 커피 라떼 프린트 저작권 보호를 위한 퍼지볼트 기반 영상 인증 방법 및 장치
JP7021375B2 (ja) 計算機システム、秘密情報の検証方法、及び計算機

Legal Events

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