KR20180006251A - 생체 코드를 등록 및 인증하는 방법 및 장치 - Google Patents

생체 코드를 등록 및 인증하는 방법 및 장치 Download PDF

Info

Publication number
KR20180006251A
KR20180006251A KR1020160109503A KR20160109503A KR20180006251A KR 20180006251 A KR20180006251 A KR 20180006251A KR 1020160109503 A KR1020160109503 A KR 1020160109503A KR 20160109503 A KR20160109503 A KR 20160109503A KR 20180006251 A KR20180006251 A KR 20180006251A
Authority
KR
South Korea
Prior art keywords
biometric
code
biometric code
hashed
error correction
Prior art date
Application number
KR1020160109503A
Other languages
English (en)
Other versions
KR101861591B1 (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 PCT/KR2017/008812 priority Critical patent/WO2018038444A1/ko
Publication of KR20180006251A publication Critical patent/KR20180006251A/ko
Application granted granted Critical
Publication of KR101861591B1 publication Critical patent/KR101861591B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • G06K9/00597
    • 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/18Eye characteristics, e.g. of the iris

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Ophthalmology & Optometry (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Collating Specific Patterns (AREA)
  • Storage Device Security (AREA)

Abstract

제 1 생체 정보를 수신하는 단계, 상기 제 1 생체 정보와 더미 데이터를 조합함으로써 제 1 생체 코드를 생성하는 단계, 상기 제 1 생체 코드를 에러 정정 코드로 인코딩하는 단계, 상기 제 1 생체 코드를 해쉬 함수에 의거하여 해쉬하는 단계 및 상기 인코딩된 제 1 생체 코드와 상기 해쉬된 제 1 생체 코드를 데이터베이스에 저장시키는 단계를 포함하는, 생체 코드를 등록 및 인증하는 방법이 개시된다.

Description

생체 코드를 등록 및 인증하는 방법 및 장치 {METHOD AND DEVICE FOR ENROLLING AND AUTHENTICATING BIOMETRIC CODE}
본 발명은 생체 코드를 등록 및 인증하는 방법 및 장치에 관한 것이다.
디바이스에 저장된 콘텐츠는 개인의 프라이버시와 관련된 중요한 데이터가 저장되는 경우가 많고, 개인의 프라이버시 보호에 대한 요구가 증대되고 있는 추세이다. 이에 따라, 콘텐츠의 암호화 및 복호화 방법에 대한 기술이 발전하고 있다.
그러나, 콘텐츠를 암호화 또는 복호화하기 위해서는 사용자가 별도의 절차를 수행해야 하기에, 콘텐츠의 암호화 또는 복호화 절차를 간소화하는 방법에 대한 수요가 증대되고 있다. 예를 들어, 생체 정보를 이용한 사용자 인증 및 암호화 기술이 소개되고 있다.
디지털 정보는 0 과 1로 이루어진 이진 정보수열(binary information sequence)로 표현된다고 가정할 수 있다. 이를 k 개의 비트 단위로 구성되는 블록들로 나누는데, 이러한 각각의 블록을 정보벡터(information vector)라 한다. 부호화(encoding) 과정은 하나의 정보벡터에 n 개의 비트로 구성된 벡터를 대응시키는 과정이다. 이 과정에서 대응되는 벡터를 부호어(codeword) 혹은 부호벡터(code vector)라 한다. 그리고 모든 부호어들의 집합을 [n, k] 부호라 부른다. 이러한 부호화 과정에서 추가되는 비트들을 패리티 비트(parity bit)라 하는데, 대부분의 경우 각각의 패리티 비트는 정보비트들의 특정한 선형결합으로 만들어진다. 일반적으로 주어진 n 과 k 에 대해 nk 개의 패리티 비트들을 어떠한 선형결합으로 설계하느냐에 따라 부호의 오류정정능력이 크게 달라진다.
등록특허공보 제 10-1622377호, 2016.05.12 등록
본 발명의 목적은 오리지널 생체 정보를 저장하지 않으면서 생체 정보를 등록 및 인증하는 인증 장치의 방법 및 그것을 포함하는 전자 장치를 제공하는데 목적을 갖는다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시 예에 따라 생체 코드를 등록 및 인증하는 방법은, 생체(=bio)에서 특징벡터를 추출하여 제 1 생체코드를 생성하는 단계(=w), 제 1 생체 코드(=w)를 수신하는 단계, 상기 제 1 생체 코드(w)에 더미 데이터를 연접함으로써 제 1 생체 코드(w||e)를 생성하는 단계, 상기 제 1 생체 코드(w||e)를 에러 정정 알고리즘에 의거하여 인코딩된 Codeword와 XOR하여 암호화 하는 단계, 상기 제 1 생체 코드(=w)를 해쉬 함수에 의거하여 해쉬하는 단계, 및 상기 encrypted bio data 된 제 1 생체 코드(=w||e XOR c = S)와 상기 해쉬된 제 1 생체 코드(=H(w))를 데이터베이스에 저장시키는 단계를 포함할 수 있다.
본 발명의 실시 예에 따라 생체 코드를 등록 및 인증하는 장치는, 생체를 수신하는 생체 인식 센서, 상기 생체에서 특징 벡터를 추출하여 생체 코드를 생성하는 [추출단계/장치], 상기 생체 코드에 더미 데이터를 부가하여 생체 더미 코드를 생성하고, 상기 생체 더미 코드를 ‘에러 정정 알고리즘에 의거하여 인코딩된 codeword’와 XOR하여 검증 코드를 생성하는 [인코딩단계/장치], 상기 생체 코드를 해쉬 함수에 의거하여 해쉬하고, 상기 검증 코드와 상기 해쉬된 생체 코드를 데이터베이스에 저장시키는 [저장장치], 및 상기 생체 코드에서 암호화키를 만들어 사용하는 [암호 장치]를 포함할 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시 예에 따라 생체 코드를 등록 및 인증하는 방법 및 장치는 오리지널 생체 정보, 예를 들어, 생체 코드를 직접 저장하지 않고, 대응하는 검증 데이터 및 해쉬된 생체 코드를 저장함으로써 사용자의 생체 코드를 등록하고, 등록된 생체 코드를 이용하여 간단하게 사용자 인증을 수행할 수 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 실시 예에 따른 생체 코드를 이용한 인증 시스템을 예시적으로 보여주는 블록도이다.
도 2는 본 발명의 실시 예에 따른 생체 등록 과정을 예시적으로 보여주는 래더 다이어그램이다.
도 3은 본 발명의 실시 예에 따른 랜덤 코드를 생성하는 방법을 예시적으로 보여주는 흐름도이다.
도 4는 본 발명의 실시 예에 따른 인증 장치의 생체 등록 과정에 대한 실시 예를 보여주는 도면이다.
도 5는 본 발명의 실시 예에 따른 인증 장치의 인증 과정에 대한 실시 예를 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따른 생체 코드를 이용하는 데이터 암호화 과정을 예시적으로 보여주는 블록도이다.
도 7은 본 발명의 실시 예에 따른 생체 코드를 이용하는 데이터 복호화 과정을 예시적으로 보여주는 도면이다.
도 8은 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
아래에서는 도면들을 이용하여 본 발명의 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있을 정도로 본 발명의 내용을 명확하고 상세하게 기재할 것이다.
도 1은 본 발명의 실시 예에 따른 생체 정보를 이용한 인증 시스템(10)을 예시적으로 보여주는 블록도이다. 도 1을 참조하면, 인증 시스템(10)은 인증 장치(100) 및 데이터베이스(DB, 200)를 포함할 수 있다. 여기서 생체 정보(biometric information)는, 지문, 음성, 얼굴 모양, 홍채 패턴, 손의 형태, 손등의 정맥 분포 등 아주 다양할 수 있다.
인증 장치(100)는 사용자의 제 1 생체 코드(예, C1)를 감지하고, 감지된 제 1 생체 코드(C1)를 ‘에러 정정 유닛(110)을 통하여 인코딩된 데이터’와 결합(XOR)하고, 결합된 제 1 생체 코드(Encrypted C1)를 검증 데이터로써 데이터 베이스(200)에 저장하도록 구현될 수 있다. 실시 예에 있어서, 인코딩된 제 1 생체 코드(Encrypted C1)는 에러 정정을 위한 패리티(parity)를 포함할 수 있다. 실시 예에 있어서, 제 1 생체 코드(C1)는 인증 장치(100)의 내부 혹은 외부의 생체 인식 센서(미도시)로부터 수신될 수 있다. 예를 들어, 제 1 생체 코드(C1)는 사용자의 홍채 코드일 때, 이러한 홍채 코드는 (주) 아이리시스의 LOCKIT 제품으로부터 제공될 수 있다. 다른 실시 예에 있어서, 제 1 생체 코드(C1)가 홍채 코드일 때, 인증 장치(100)는 LOCKIT 제품의 일부 혹은 전체 구성일 수 있다.
실시 예에 있어서, 생체 코드(C1, C2)는, 상대적으로 오리지널 생체 정보에 대한 에러 정정 능력을 향상시키도록 더미 데이터(dummy data)를 더 포함할 수 있다. 실시 예에 있어서, 에러 정정 유닛(110)은 다양한 종류의 에러 정정 코드(error correction code)에 의해 소프트웨어/하드웨어/펌웨어적으로 구현될 수 있다. 예를 들어, ECC 코드는 LDPC(low density parity check) code, BCH(Bose-Caudhro-Hocqeunghem) code, turbo code, 리드-솔로몬 코드(Reed-Solomon code), convolution code, RSC(recursive systematic code), TCM(trellis-coded modulation), BCM(Block coded modulation) 등의 코디드 모듈레이션(coded modulation), 혹은 그와 같은 것 일 수 있다. 아래에서는 설명의 편의를 위하여 에러 정정 유닛(110)은 BCH(Bose-Caudhro-Hocqeunghem) 코드로 구현되었다고 가정하겠다. 한편, 본 발명의 에러 정정 코드가 BCH에 제한되지 않는다고 이해되어야 할 것이다.
또한, 인증 장치(100)는 사용자의 제 1 생체 코드(C1)를 해쉬 유닛(120)을 통하여 해쉬하고, 해쉬된 제 1 생체 코드(Hashed C1)를 데이터베이스(200)에 저장하도록 구현될 수 있다. 실시 예에 있어서, 해쉬 유닛(120)은 소프트웨어/하드웨어/펌웨어적으로 구현된 해쉬 알고리즘을 포함할 수 있다. 예를 들어, 해쉬 유닛(120)은 SHA(secure hash algorithm; SHA-256, SHA-512)을 이용하여 구현될 수 있다. 한편, 본 발명의 해쉬 함수가 SHA에 제한되지 않는다고 이해되어야 할 것이다.
이로써, 데이터베이스(200)는, 사용자의 오리지널 제 1 생체 코드(C1)를 저장하지 않고, 제 1 생체 코드(C1)에 대응하는 검증 데이터(Encoded C1)와 해쉬된 생체 코드(Hashed Biometric Code)를 저장할 수 있다. 이를, 사용자 생체 코드의 등록이라고 부르겠다. 따라서, 본 발명의 인증 시스템(10)은 사용자의 오리지널 생체 정보(예, 생체 코드)를 저장하지 않으면서, 생체 코드를 등록할 수 있다.
또한, 등록된 생체 코드를 이용한 사용자 인증은 다음과 같이 진행될 수 있다. 설명의 편의를 위하여 사용자 인증을 원하는 사용자의 제 2 생체 코드(C2)가 수신되었다고 가정하겠다. 에러 정정 유닛(110)은, 에러 정정 코드 및 데이터베이스(200)의 인코딩된 제 1 생체 코드(Encrypted C1)를 이용하여 수신된 생체 코드(C2)의 에러를 정정할 수 있다. 에러 정정 유닛(110)의 에러 정정 능력 범위 내에서, 수신된 제 2 생체 코드(C2)의 에러가 정정될 수 있다. 이를, 제 2 생체 코드(C2)의 디코딩이라고 부르겠다. 디코딩된 제 2 생체 코드(Decoded C2, 혹은, C2’)는 해쉬 유닛(120)에 의해 해쉬 될 수 있다.
이후, 비교 유닛(130)은 이러한 해쉬된 디코딩된 제 2 생체 코드(Hashed C2’)와 데이터베이스(200)에 저장된 해쉬된 제 1 생체 코드(Hashed C1)을 비교함으로써, 사용자 인증 결과값(AUTHRSLT)을 출력할 수 있다. 만일, 해쉬 유닛(120)으로부터 출력된 해쉬된 제 2 생체 코드(Hashed C2’)와 데이터베이스(200)로부터 읽어온 해쉬된 제 1 생체 코드(Hashed C1)가 동일하면, 사용자 인증이 성공한 것이다. 반면에, 그렇지 않다면, 사용자 인증이 실패한 것이다.
데이터베이스(200)는 사용자의 생체 코드를 등록하는 과정에서 생성된 검증 데이터(Encrypted C1) 및 이에 대응하는 해쉬된 생체 코드(Hashed C1)를 저장하도록 구현될 수 있다. 즉, 검증 데이터(Encrypted C1) 및 해쉬된 생체 코드(Hashed C1)가 데이터베이스(200)에 저장되면, 사용자의 생체 코드가 등록된 것이다. 한편, 도 1에서 데이터베이스(200)는 인증 장치(100)에 별도로 존재한다. 하지만, 본 발명이 반드시 여기에 제한될 필요는 없다. 본 발명은 별도의 데이터베이스를 필요치 않고, 인증 장치(100)의 내부의 메모리에 검증 데이터(Encrypted C1) 및 해쉬된 생체 코드(Hashed C1)를 저장할 수도 있다. 본 발명의 실시 예에 따른 인증 시스템(10)은 오리지널 생체 정보, 예를 들어, 생체 코드를 직접 저장하지 않고, 대응하는 검증 데이터 및 해쉬된 생체 코드를 저장함으로써 사용자의 생체 코드를 등록하고, 등록된 생체 코드를 이용하여 간단하게 사용자 인증을 수행할 수 있다.
도 2는 본 발명의 실시 예에 따른 생체 등록 과정을 예시적으로 보여주는 래더 다이어그램이다. 도 1 및 도 2를 참조하면, 사용자의 생체 등록 과정은 다음과 같이 진행될 수 있다.
인증 장치(100)는 더미 데이터를 이용하여 사용자의 생체 코드를 생성할 수 있다. 실시 예에 있어서, 생체 코드는 사용자로부터 인식된 오리지널 생체 정보에 더미 데이터를 부가함으로써 생성될 수 있다. 여기서 오리지널 생체 정보는 생체 센서로부터 수신된 정보일 수 있다. 실시 예에 있어서, 오리지널 생체 정보는 4500 비트의 데이터이고, 더미 데이터는 3691 비트의 데이터일 수 있다. 한편, 오리지널 생체 정보의 크기 및 더미 데이터의 크기는 여기에 제한되지 않는다고 이해되어야 할 것이다.
실시 예에 있어서, 더미 데이터의 길이가 유동적으로 조정될 수 있다. 에러 정정 알고리즘의 에러 정정율은 제한될 수 있으므로, 오리지널 생체 정보에 더미 데이터를 부가함으로써 오리지널 생체 정보의 에러 정정율을 높일 수 있는 효과가 있다. 하지만, 더미 데이터의 크기가 커지면 연산량이 늘어날 수 있고, 더미 데이터가 짧아지면 공격에 취약해질 수 있고, 에러 정정능력 또한 떨어질 수 있다. 따라서, 적정한 크기의 더미 데이터를 이용하는 것이 필요하다.
일 실시 예에서, 더미 데이터의 크기는 오리지널 생체 정보의 크기와 비슷하거나 커야 할 수 있다. 더미 데이터의 크기가 오리지널 생체 정보의 크기보다 작을 경우, 더미 데이터가 공격의 대상이 될 수 있다.
일 실시 예에서, 더미 데이터의 크기는 인증 장치(100)의 처리속도에 따라 적응적으로 변화될 수 있다. 인증 장치(100)는 생체 코드를 등록 및 인증하는 알고리즘을 테스트하여, 전체 동작이 소정의 시간 내에 완료되도록 하는 더미 데이터의 크기의 범위를 설정할 수 있다. 인증 장치(100)는 설정된 범위 내에서 가장 큰 크기의 더미 데이터를 설정할 수 있다.
다른 실시 예에서, 더미 데이터의 크기의 하한과 상한이 존재할 수 있다. 예를 들어, 더미 데이터의 크기의 하한은 오리지널 생체 정보의 크기일 수 있다. 또한, 더미 데이터의 크기의 상한은 오리지널 생체 정보 크기의 세 배일 수 있다. 본 예시는 이해를 돕기 위해 서술된 것으로, 더미 데이터의 크기의 하한과 상한은 이에 제한되지 않는다. 이 경우, 인증 장치(100)의 처리 속도가 아무리 느려도 더미 데이터의 크기는 오리지널 생체 정보의 크기보다는 작아지지 않을 수 있다. 또한, 인증 장치(100)의 처리 속도가 아무리 빨라도 더미 데이터의 크기는 오리지널 생체 정보의 크기의 세 배보다는 커지지 않을 수 있다.
실시 예에 있어서, 더미 데이터는 랜덤하게 생성될 수 있다. 실시 예에 있어서, 더미 데이터는 해쉬 함수를 이용하여 랜덤하게 생성될 수 있다. 다른 실시 예에 있어서, 더미 데이터는 사전에 결정된 데이터일 수 있다. 예를 들어, 시간을 씨드값(seed value)으로 이용하여 더미 데이터가 결정될 수 있다.
일 실시 예에서, 더미 데이터는 0과 1의 조합으로 생성될 수 있다. 더미 데이터는 0만으로 이루어질 수도 있다. 더미 데이터에 포함된 0과 1의 비율이 비슷한 것이 보안에 있어서는 가장 바람직할 수 있다. 더미 데이터에 포함된 0과 1의 비율 차이가 클수록 보안에 있어 취약해질 수 있다. 반면에, 더미 데이터에 포함된 1의 비율이 클수록 에러 정정이 어려워질 수 있다. 따라서, 0과 1의 비율을 결정한 후, 랜덤함수를 이용하여 더미 데이터를 생성할 수 있다. 예를 들어, 0과 1의 비율을 9대 1로 결정한 후, 1의 위치를 랜덤함수를 이용하여 결정할 수 있다. 랜덤 함수에 포함되는 0과 1의 비율은 예시를 위해 서술된 것으로, 이에 제한되지 않는다.
이후, 에러 정정 유닛(110, 도 1 참조)은 생체 코드를 상기 알고리즘(더미, 인코딩과 결합하는 것)을 이용하여 인코딩할 수 있다(S12). 일 실시 예에서, 인코딩된 생체 코드가 암호화될 수 있다. 인코딩 및 암호화된 생체 코드(예, Encrypted C1)는 검증 데이터로 데이터베이스(200, 도 1 참조)에 저장될 수 있다(S12).
또한, 인증 장치(100)는 해쉬 유닛(120, 도 1 참조)을 이용하여 생체 코드를 해쉬 시킬 수 있다(S14). 해쉬된 생체 코드(예, Hashed C1)는 데이터베이스(200)에 저장될 수 있다(S22).
상술된 바와 같이, 사용자의 검증 데이터 및 해쉬된 생체 코드가 데이터베이스(200)에 저장됨으로써, 사용자 생체 등록 과정이 완료될 수 있다.
한편, 본 발명의 실시 예에 따른 인증 장치는 추가적으로 검증 데이터에 대한 랜덤화 동작을 수행할 수도 있다.
도 3은 본 발명의 실시 예에 따른 랜덤 코드를 생성하는 방법을 예시적으로 보여주는 흐름도이다. 도 3을 참조하면, 랜덤 코드 생성 과정은 다음과 같이 진행될 수 있다.
우선, 생체 코드가 수신될 수 있다(S13a). 생체 코드와 에러정정 알고리즘의 함수(g(x))를 이용하여 랜덤 코드가 생성될 수 있다(S13b). 실시 예에 있어서, g(x)는 BCH 코드 생성 함수 일 수 있다. 한편, 도 3에 도시된 랜덤 코드 생성 방법은 본 발명을 제한하지 않는 실시 예에 불과하다고 이해되어야 할 것이다.
도 4는 본 발명의 실시 예에 따른 인증 장치의 생체 등록 과정에 대한 실시 예를 보여주는 도면이다. 도 1 내지 도 4를 참조하면, 인증 장치(100, 도 1 참조)의 생체 등록 과정은 다음과 같다.
생체 코드(w)와 더미 데이터(e)의 연접한 값(w||e)과 랜덤 코드(c)를 XOR 연산함으로써 검증 데이터(S)가 생성 될 수 있다. 생체 코드(w)가 해쉬 함수에 의해 해쉬됨으로써, 해쉬된 생체 코드(H(w))가 생성될 수 있다. 이러한 검증 데이터(S)와 해쉬된 생체 코드(H(w))가 데이터베이스에 저장됨으로써, 사용자의 생체 코드가 등록될 수 있다. 여기서 더미 데이터(e)는 랜덤한 값을 가질 수 있다.
생체 코드(w)와 더미 데이터(e)를 부가하는 방법은 제한되지 않는다. 다른 실시 예에서, 더미 데이터(e)와 생체 코드(w)의 연접한 값(e||w)과 랜덤 코드(c)를 XOR 연산함으로써 검증 데이터(S)가 생성 될 수 있다. 또한, 더미 데이터(e)와 생체 코드(w)를 소정의 규칙에 따라 조합한 값과 랜덤 코드(c)를 XOR 연산함으로써 검증 데이터(S)가 발생될 수도 있다. 더미 데이터(e)에 생체 코드(w)를 부가하는 방법은, 더미 데이터(e)에 생체 코드(w)를 부가한 결과물에서 다시 더미 데이터(e)와 생체 코드(w)를 분리할 수 있는 규칙만 있다면 어떠한 방법이라도 이용될 수 있다.
도 5는 본 발명의 실시 예에 따른 인증 장치의 인증 과정에 대한 실시 예를 보여주는 도면이다. 도 1 내지 도 5를 참조하면, 인증 장치(100, 도 1 참조)의 생체 인증 과정을 다음과 같다.
사용자 인증을 원하는 생체 코드(w')와 더미 데이터가 연접될 것이다. 여기서 더미 데이터는 '0'으로 구성된 소정의 비트 데이터일 수 있다. 이 경우 연접한 값은 w'||0 이 될 것이다. 이렇게 연접한 값(w'||0)과 검증 데이터(S)에 대한 제 1 XOR(exclusive OR) 연산이 수행될 것이다. XOR 연산된 값(QQQ)은 BCH 디코더에 의해 디코딩 될 것이다. 여기서 연산된 값(QQQ) 은 아래의 수학식을 만족할 것이다.
S = w || e + c = w + c || e + c
QQQ = S + (w' || 0) = w'+ w + c || e + c = (w' + w || e ) + c
BCH의 codeword크기는 8191이고, message 길이는 391이고, 에러정정길이 t는 1403이라고 하자. 여기서 연접한 값(w||e)의 C에 대하여 QQQ가 갖는 해밍거리(Hamming distance)는, w‘과 w는 1350라 가정할 때, e는 53, 따라서 그것들의 합은 1403이다. 즉, QQQ는 C와 1403비트 차이가 날 수 있다. 그러므로 QQQ를 디코딩 하면 c를 얻을 수 있다.
이후, 디코딩된 값(c)과 검증 데이터(S)에 대한 제 2 XOR 연산이 수행될 것이다. 제 2 XOR 연산의 결과 값은, 도 4에 생체 등록시 이용된 연접한 값(w||e)이 될 것이다. 이렇게 생성된 연접한 값(w||e)이 w를 해쉬하는 데 이용된 해쉬 함수에 의해 해쉬 될 것이다.
비교 유닛(130, 도 1 참조)은 데이터베이스(200, 도 1 참조)로부터 읽혀진 해쉬된 생체 코드(H(w))와 해쉬 함수에서 해쉬된 값이 동일한 지를 비교함으로써, 인증 결과(AUTHRSLT)를 생성할 수 있다.
도 6은 본 발명의 실시 예에 따른 생체 코드를 이용하는 데이터 암호화 과정을 예시적으로 보여주는 블록도이다. 도 1 내지 도 6을 참조하면, 데이터 암호화 과정은 다음과 같다.
도 4 및 도 5에서 설명된 바와 같이, 사용자의 생체 코드(w), 더미 데이터(e), 및 랜덤 코드(c)를 이용하여 검증 데이터(S)와 해쉬된 생체 코드(H(w))가 생성될 수 있다(S110). 검증 데이터(S) 및 해쉬된 생체 코드(H(w))가 데이터베이스(200, 도 1 참조)가 저장될 수 있다(S120).
이후, 데이터 암호화를 원할 경우, 해쉬된 생체 코드(H(w))를 이용하여 데이터를 암호화시킬 수 있다(S130). 여기서 생체 코드(w)는 암호화키로 사용될 수 있다. 일 실시 예에서, 암호화키는 생체 코드(w)를 이용하여 생성될 수 있으며, 그 방법은 제한되지 않는다. 실시 예에 있어서, 암호화 키로 저장/비교할 때 인증에 사용할 코드는 해쉬된 코드(H(w))를 한번 더 해쉬한 H(H(w))일 수 있다. 다른 실시 예에 있어서, 비교할 코드 H(w)가 저장되지 않을 수도 있다. 인증기능이 빠지더라도 홍채에서 키가 생성되므로 다른 홍채로는 디코드가 불가하여 키를 생성할 수 없기 때문이다.
도 7은 본 발명의 실시 예에 따른 생체 코드를 이용하는 데이터 복호화 과정을 예시적으로 보여주는 도면이다. 도 1 내지 도 7을 참조하면, 데이터 복호화 과정은 다음과 같다.
암호화된 데이터에 대한 복호화 동작을 원할 경우, 사용자의 생체 코드를 수신하고, 수신된 생체 코드(w')와 데이터베이스(200, 도 1 참조)에 저장된 검증 데이터(S)를 이용하여 해쉬된 생체 코드(H(w))가 생성될 수 있다(S210). 해쉬된 생체 코드(H(w))가 생성되는 과정은 도 5에서 설명되었기 때문에 여기서는 설명을 생략하겠다. 생체 코드(w)를 이용하여 암호화된 데이터를 복호화시킬 수 있다(S220). 여기서 생체 코드(w)는 복호화키로 사용될 수 있다. 일 실시 예에서, 암호화된 데이터를 복호화시키기 위한 키는 생체 코드(w)를 이용하여 생성될 수 있으며, 그 방법은 제한되지 않는다. 이때, 데이터베이스(200)에 H(H(w))가 저장되고, 비교 대상은 H(H(w))와 H(H(w’)이다. 그러나 암호화키의 생성, 저장방식은 이에 한정하지 않는다.
도 8은 본 발명의 실시 예에 따른 전자 장치를 예시적으로 보여주는 블록도이다. 도 8을 참조하면, 전자 장치(1000)는 생체 인식 센서(1100), 인증 장치(1200), 및 암호 장치(1300)를 포함할 수 있다.
생체 인식 센서(1100)는 사용자의 생체를 인식하고 생체 정보를 생성하도록 구현될 수 있다. 도 8에 도시된 생체 인식 센서(1100)는 전자 장치(1000) 내부에 존재하지만, 본 발명이 여기에 제한될 필요는 없다. 생체 인식 센서는 전자 장치(1000)에 다양한 통신 프로토콜(유무선)에 의거하여 연결되고, 전자 장치(1000)의 외부에 존재할 수도 있다.
인증 장치(1200)는 도 1 내지 도 7에서 설명된 바와 같이 생체 코드를 등록 및 인증하도록 구현될 수 있다.
암호 장치(1300)는 등록된 생체 코드를 암/복호 동작의 난수 혹은 암호화키로 이용하도록 구현될 수 있다. 암호 장치(1300)는 데이터를 암호화 혹은 복호화시킬 수 있도록 구현될 수 있다. 암호 장치(1300)는 표준 암호에 의해 소프트웨어/하드웨어/펌웨어적으로 구현될 수 있다. 예를 들어 암호 장치(1300)는 AES(advanced encryption standard) 알고리즘으로 구현될 수 있다.
본 발명의 실시 예에 따른 인증 장치의 방법은, 생체(=bio)에서 특징벡터를 추출하여 제 1 생체코드를 생성하는 단계(=w), 제 1 생체 코드(=w)를 수신하는 단계, 상기 제 1 생체 코드(w)에 더미 데이터를 연접함으로써 제 1 생체 코드(w||e)를 생성하는 단계, 상기 제 1 생체 코드(w||e)를 에러 정정 알고리즘에 의거하여 인코딩된 Codeword와 XOR하여 암호화 하는 단계, 상기 제 1 생체 코드(=w)를 해쉬 함수에 의거하여 해쉬하는 단계, 및 상기 encrypted bio data 된 제 1 생체 코드(=w||e XOR c = S)와 상기 해쉬된 제 1 생체 코드(=H(w))를 데이터베이스에 저장시키는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 전자 장치는, 생체를 수신하는 생체 인식 센서, 상기 생체에서 특징 벡터를 추출하여 생체 코드를 생성하는 [추출단계/장치], 상기 생체 코드에 더미 데이터를 부가하여 생체 더미 코드를 생성하고, 상기 생체 더미 코드를 ‘에러 정정 알고리즘에 의거하여 인코딩된 codeword’와 XOR하여 검증 코드를 생성하는 [인코딩단계/장치], 상기 생체 코드를 해쉬 함수에 의거하여 해쉬하고, 상기 검증 코드와 상기 해쉬된 생체 코드를 데이터베이스에 저장시키는 [저장장치], 및 상기 생체 코드에서 암호화키를 만들어 사용하는 [암호 장치]를 포함할 수 있다.
한편, 상술된 본 발명의 내용은 발명을 실시하기 위한 구체적인 실시 예들에 불과하다. 본 발명은 구체적이고 실제로 이용할 수 있는 수단 자체뿐 아니라, 장차 기술로 활용할 수 있는 추상적이고 개념적인 아이디어인 기술적 사상을 포함할 것이다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100: 인증 장치
110: 에러 정정 유닛
120: 해쉬 유닛
130: 비교 유닛
200: 데이터베이스
w, w': 생체 코드
e: 더미 데이터
S: 검증 데이터
H(w): 해쉬된 생체 코드

Claims (10)

  1. 생체 코드를 등록 및 인증하는 방법에 있어서:
    제 1 생체 정보를 수신하는 단계;
    상기 제 1 생체 정보와 더미 데이터를 조합함으로써 제 1 생체 코드를 생성하는 단계;
    상기 제 1 생체 코드를 에러 정정 알고리즘에 의거하여 인코딩하는 단계;
    상기 제 1 생체 코드를 해쉬 함수에 의거하여 해쉬하는 단계; 및
    상기 인코딩된 제 1 생체 코드와 상기 해쉬된 제 1 생체 코드를 데이터베이스에 저장시키는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 에러 정정 알고리즘은 BCH(Bose-Caudhro-Hocqeunghem) 알고리즘인 방법.
  3. 제 1 항에 있어서,
    상기 에러 정정 알고리즘은 랜덤 코드를 포함하고,
    상기 랜덤 코드를 생성하는 단계를 더 포함하는 방법.
  4. 제 3 항에 있어서,
    상기 랜덤 코드를 생성하는 단계는,
    상기 제 1 생체 코드를 수신하는 단계; 및
    상기 제 1 생체 코드와 상기 에러 정정 알고리즘의 다항식 생성 함수를 이용하여 상기 랜덤 코드를 생성하는 단계를 포함하는 방법.
  5. 제 3 항에 있어서,
    상기 랜덤 코드와 상기 인코딩된 제 1 생체 코드를 XOR 연산하는 단계를 더 포함하고,
    상기 XOR 연산된 값이 상기 데이터베이스에 저장되는 검증 데이터인 방법.
  6. 제 1 항에 있어서,
    사용자 인증을 원하는 제 2 생체 정보를 수신하는 단계;
    상기 제 2 생체 정보와 더미 데이터를 조합함으로써 제 2 생체 코드를 생성하는 단계;
    상기 인코딩된 제 1 생체 코드 및 상기 에러 정정 알고리즘을 이용하여 상기 제 2 생체 코드에 대한 디코딩을 수행하는 단계;
    상기 디코딩된 제 2 생체 코드를 상기 해쉬 함수에 의거하여 해쉬하는 단계; 및
    상기 데이터베이스로부터 출력된 상기 해쉬된 제 1 생체 코드 및 상기 해쉬된 제 2 생체 코드를 비교하는 단계를 포함하는 방법.
  7. 제 6 항에 있어서,
    상기 디코딩을 수행하는 단계는,
    상기 제 2 생체 코드와 검증 데이터에 대한 제 1 XOR 연산을 수행하는 단계;
    상기 제 1 XOR 연산된 값을 상기 에러 정정 알고리즘에 의거하여 디코딩하는 단계; 및
    상기 디코딩된 값과 상기 검증 데이터에 대한 제 2 XOR 연산을 수행하는 단계를 포함하고,
    상기 검증 데이터는 상기 인코딩된 제 1 생체 코드인 방법.
  8. 제 7 항에 있어서,
    상기 제 2 XOR 연산된 값을 상기 해쉬 함수에 의거하여 해쉬하는 단계; 및
    상기 해쉬된 값과 상기 데이터베이스에 저장된 해쉬된 제 1 생체 코드를 비교하는 단계를 포함하는 방법.
  9. 제 1 항에 있어서,
    상기 제 1 생체 정보는 지문, 음성, 얼굴 모양, 홍채 패턴, 손의 형태, 및 손등의 정맥 분포 중에서 적어도 하나를 포함하는 방법.
  10. 생체 정보를 수신하는 생체 인식 센서;
    상기 생체 정보에 더미 데이터를 부가함으로써 생체 코드를 생성하고, 상기 생체 코드를 에러 정정 알고리즘에 의거하여 인코딩하고, 상기 생체 코드를 해쉬 함수에 의거하여 해쉬하고, 상기 인코딩된 생체 코드와 상기 해쉬된 생체 코드를 데이터베이스에 저장시키는 인증 장치; 및
    상기 데이터베이스에 저장된 해쉬된 생체 코드를 암호화키로 사용하는 암호 장치를 포함하는, 생체 코드를 등록 및 인증하는 장치.
KR1020160109503A 2016-07-08 2016-08-26 생체 코드를 등록 및 인증하는 방법 및 장치 KR101861591B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2017/008812 WO2018038444A1 (ko) 2016-07-08 2017-08-14 생체 코드를 등록 및 인증하는 방법 및 장치

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160087044 2016-07-08
KR20160087044 2016-07-08

Publications (2)

Publication Number Publication Date
KR20180006251A true KR20180006251A (ko) 2018-01-17
KR101861591B1 KR101861591B1 (ko) 2018-05-28

Family

ID=61025877

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020160109503A KR101861591B1 (ko) 2016-07-08 2016-08-26 생체 코드를 등록 및 인증하는 방법 및 장치
KR1020160109502A KR101852526B1 (ko) 2016-07-08 2016-08-26 암호 파일을 관리하는 모바일 장치의 방법 및 그것을 포함하는 암호 파일 관리 시스템
KR1020160113441A KR101882971B1 (ko) 2016-07-08 2016-09-02 생체정보를 이용하여 결제 인증을 수행하는 포스 장치, 시스템 및 그 제어방법

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020160109502A KR101852526B1 (ko) 2016-07-08 2016-08-26 암호 파일을 관리하는 모바일 장치의 방법 및 그것을 포함하는 암호 파일 관리 시스템
KR1020160113441A KR101882971B1 (ko) 2016-07-08 2016-09-02 생체정보를 이용하여 결제 인증을 수행하는 포스 장치, 시스템 및 그 제어방법

Country Status (2)

Country Link
KR (3) KR101861591B1 (ko)
WO (3) WO2018038445A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132707A (ko) * 2019-03-04 2021-11-04 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 고정 네트워크 가정용 게이트웨이들에 대한 인증 결정
KR102357694B1 (ko) * 2021-06-29 2022-02-08 주식회사 아이리시스 생체 정보를 이용한 퍼지 커밋먼트 기반 퍼지 축출 시스템 및 폐기 가능 생체 정보 보안 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102631694B1 (ko) 2020-01-02 2024-01-31 재단법인 대구경북과학기술원 데이터에 대한 암/복호화 및 채널코딩을 수행하는 방법 및 시스템
KR20230122447A (ko) * 2022-02-14 2023-08-22 삼성전자주식회사 생체 정보를 이용하여 컨텐트를 보호하는 디바이스 및 그 동작 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2316120C2 (ru) * 2004-05-12 2008-01-27 Корпорация "Самсунг Электроникс" Биометрическая система аутентификации
JP4684013B2 (ja) * 2005-06-06 2011-05-18 株式会社日立製作所 本人認証システム
KR20070074894A (ko) * 2006-01-11 2007-07-18 주식회사 라트칸 데이터 기록매체에 저장된 자료의 보안 방법
KR100787114B1 (ko) * 2006-06-20 2007-12-21 연세대학교 산학협력단 생체정보 변환 방법 및 이를 이용한 검증시스템
KR100952300B1 (ko) * 2008-04-07 2010-04-13 한양대학교 산학협력단 저장매체의 안전한 데이터 관리를 위한 단말 장치, 메모리및 그 방법
JP2012238256A (ja) * 2011-05-13 2012-12-06 Hitachi Ltd 生体認証装置、生体認証方法および生体認証プログラム
KR20130008125A (ko) * 2011-07-11 2013-01-22 주식회사 비즈모델라인 사용자의 결제수단과 동적 매핑된 결제식별번호를 이용한 결제
KR20140071605A (ko) * 2012-12-04 2014-06-12 삼성전자주식회사 데이터 처리 방법, 센서 장치 및 사용자 단말
KR20150121892A (ko) * 2014-04-22 2015-10-30 에스케이플래닛 주식회사 생체 정보 인식을 이용한 결제 방법, 이를 위한 장치 및 시스템
KR101622377B1 (ko) 2014-06-25 2016-05-19 주식회사 아이리시스 홍채인식보안기능이 구비된 usb장치 및 그 제어방법
KR101622253B1 (ko) * 2014-07-09 2016-05-19 전남대학교 산학협력단 생체정보 또는 생체정보로부터 파생된 정보 또는 사용자 특징 정보를 이용한 안전한 인증 시스템, 그 시스템에서의 인증 제어를 위한 장치 및 방법
KR20160016522A (ko) * 2014-07-31 2016-02-15 삼성전자주식회사 콘텐츠를 암호화/복호화하는 디바이스 및 방법
KR20160072682A (ko) * 2014-12-15 2016-06-23 삼성전자주식회사 생체 정보를 이용한 인증 방법 및 이를 위한 전자 장치

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210132707A (ko) * 2019-03-04 2021-11-04 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) 고정 네트워크 가정용 게이트웨이들에 대한 인증 결정
KR102357694B1 (ko) * 2021-06-29 2022-02-08 주식회사 아이리시스 생체 정보를 이용한 퍼지 커밋먼트 기반 퍼지 축출 시스템 및 폐기 가능 생체 정보 보안 시스템
WO2023277212A1 (ko) * 2021-06-29 2023-01-05 주식회사 아이리시스 생체 정보를 이용한 퍼지 커밋먼트 기반 퍼지 축출 시스템 및 폐기 가능 생체 정보 보안 시스템

Also Published As

Publication number Publication date
KR101861591B1 (ko) 2018-05-28
KR101852526B1 (ko) 2018-06-07
KR20180006250A (ko) 2018-01-17
KR20180006253A (ko) 2018-01-17
WO2018043951A1 (ko) 2018-03-08
KR101882971B1 (ko) 2018-07-27
WO2018038445A1 (ko) 2018-03-01
WO2018038444A1 (ko) 2018-03-01

Similar Documents

Publication Publication Date Title
EP1149475B1 (en) A fuzzy commitment scheme
JP6810348B2 (ja) 暗号データ処理方法、暗号データ処理装置および暗号データ処理プログラム
US9906363B2 (en) Encrypted data verification system, method and recording medium
KR101861591B1 (ko) 생체 코드를 등록 및 인증하는 방법 및 장치
KR101255357B1 (ko) 메시지 처리 방법, 통신 디바이스, 컴퓨터 판독가능 기록 매체
JP6588048B2 (ja) 情報処理装置
JP2006166433A (ja) バイオメトリックパラメータをデータベースに安全に記憶するための方法及びシステム、並びに、バイオメトリックパラメータをデータベースに安全に記憶してユーザを認証するための方法
US9882712B2 (en) Encrypted text matching system, method, and computer readable medium
Skoric et al. The spammed code offset method
KR101675674B1 (ko) 양자 메시지에 대한 양자 서명 장치
JP6229715B2 (ja) 暗号文照合システムと方法とプログラム
JP6488954B2 (ja) 暗号データ処理方法、暗号データ処理システム、暗号データ処理装置および暗号データ処理プログラム
US9900146B2 (en) Encrypted text matching system, method, and computer readable medium
CN111756540A (zh) 一种传送密文的方法、终端、服务器及系统
JP2015154291A (ja) デバイス固有情報生成装置及びデバイス固有情報生成システムとデバイス固有情報生成方法
Noto et al. Analysis of error correcting codes for the secure storage of biometric templates
KR101960797B1 (ko) 생체 정보를 이용한 otp 인증 방법 및 이를 실행하는 시스템
US12021847B2 (en) Secure data exchange using format-preserving encryption
CN111756525B (zh) 一种传送高质量密钥的方法、服务器、终端及系统
JP6598259B2 (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