KR20190085674A - 전자 장치, 서버 및 그 제어 방법 - Google Patents

전자 장치, 서버 및 그 제어 방법 Download PDF

Info

Publication number
KR20190085674A
KR20190085674A KR1020180003826A KR20180003826A KR20190085674A KR 20190085674 A KR20190085674 A KR 20190085674A KR 1020180003826 A KR1020180003826 A KR 1020180003826A KR 20180003826 A KR20180003826 A KR 20180003826A KR 20190085674 A KR20190085674 A KR 20190085674A
Authority
KR
South Korea
Prior art keywords
code
masking
biometric
tag information
server
Prior art date
Application number
KR1020180003826A
Other languages
English (en)
Other versions
KR102411883B1 (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 KR1020180003826A priority Critical patent/KR102411883B1/ko
Priority to US16/959,587 priority patent/US20200389303A1/en
Priority to PCT/KR2019/000490 priority patent/WO2019139420A1/ko
Publication of KR20190085674A publication Critical patent/KR20190085674A/ko
Application granted granted Critical
Publication of KR102411883B1 publication Critical patent/KR102411883B1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)
  • Collating Specific Patterns (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

전자 장치를 개시한다. 본 장치는 태그 정보가 저장된 저장부, 통신부, 센서에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 생체 코드열 및 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 통신부를 통해 서버로 전송하며, 서버로부터 수신된 제2 암호문에 포함된 태그 정보가 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 제2 암호문을 복호화하여 제2 암호문에서 디스턴스 값 및 제2 마스킹 코드를 더한 값을 획득하고, 획득된 값을 통신부를 통해 서버로 전송하는 프로세서를 포함할 수 있으며, 디스턴스 값은, 생체 코드열 및 서버에 기저장된 생체 코드열 간의 디스턴스 값을 포함하며, 제2 마스킹 코드는, 서버가 제1 마스킹 코드에 기초하여 획득한 코드를 포함하도록 구현될 수 있다.

Description

전자 장치, 서버 및 그 제어 방법 { Electronic device, server and control method thereof }
본 발명은 사용자 인증을 수행하기 위한 전자 장치, 서버 및 그 제어 방법에 관한 것이다.
전자 기술이 발달함에 따라 서버에 데이터를 저장하고 사용자가 단말 장치를 이용하여 서버의 데이터를 이용하는 클라우딩 컴퓨팅 환경이 보편화되고 있다. 이에 따라, 단말 장치와 서버간 사용자 인증을 수행하기 위해 개인 정보, 생체 정보와 같은 보안이 요구되는 데이터가 송수신되고 있다.
특히, 보안성이 낮은 통신 환경에서 서버에 저장된 고객의 개인정보가 노출되는 사고가 빈번하게 일어나고 있다. 또한, 사용자 단말 장치에 대한 해킹, 악성 코드 침투와 같은 원인으로 개인정보가 노출되기도 한다.
이에 따라, 사용자 인증을 위한 암호문이 복호화되는 과정을 최소화하고 암호문 상태로 연산을 수행하여야 할 필요성이 대두되고 있다.
본 발명은 상술한 필요성에 따른 것으로, 본 발명의 목적은, 악의의 사용자 및 서버의 악의적 행동으로부터 개인 정보를 노출하지 않는 암호화 방법을 제공함에 있다.
본 발명의 일 실시 예에 따른 전자 장치는 태그 정보가 저장된 저장부, 통신부, 센서 및 상기 센서에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 상기 생체 코드열 및 상기 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 상기 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 상기 통신부를 통해 서버로 전송하며, 상기 서버로부터 수신된 제2 암호문에 포함된 태그 정보가 상기 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하고, 상기 획득된 값을 상기 통신부를 통해 서버로 전송하는 프로세서를 포함하며, 상기 디스턴스 값은, 상기 생체 코드열 및 상기 서버에 기저장된 생체 코드열 간의 디스턴스 값을 포함하며, 상기 제2 마스킹 코드는, 상기 서버가 상기 제1 마스킹 코드에 기초하여 획득한 코드를 포함할 수 있다.
이 경우, 상기 태그 정보는, 제1 태그 정보 및 제2 태그 정보를 포함하며, 상기 프로세서는, 상기 제2 암호문에 포함된 태그 정보가 상기 제1 태그 정보 및 상기 제2 태그 정보의 디스턴스와 일치하면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득할 수 있다.
또한, 상기 프로세서는, 사용자의 생체 데이터를 등록하기 위한 모드가 실행되면, 상기 센서에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 상기 획득된 생체 코드열 및 상기 제1 태그 정보를 암호화한 제3 암호문을 상기 통신부를 통해 상기 서버로 전송할 수 있다.
한편, 상기 저장부는, 비밀키를 저장하며, 상기 제1 암호문은, 상기 비밀키에 의해 암호화되며, 상기 제2 암호문은, 암호화된 상태의 상기 제1 암호문에 디스턴스 연산이 수행됨에 따라 획득될 수 있다.
한편, 상기 생체 데이터는, 지문 데이터, 음성 데이터, 안면 데이터, 홍채 데이터, 손금 데이터 및 정맥 분포 데이터 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시 예에 따른 서버는 사용자의 생체 데이터로부터 획득된 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보가 저장된 저장부, 통신부, 및 사용자 인증을 위한 제2 생체 코드열 및 제2 태그 정보가 암호화된 제1 암호문 및, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 상기 통신부를 통해 전자 장치로부터 수신하고, 상기 제1 암호문 및 상기 인증 정보 간 디스턴스 및, 제2 마스킹 암호 코드를 더한 값을 포함하는 제2 암호문을 상기 전자 장치로 전송하고, 상기 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값이 수신되면, 상기 제1 마스킹 코드로부터 획득된 제2 마스킹 코드에 기초하여 상기 제1 및 제2 생체 코드열의 디스턴스를 획득하고, 상기 획득된 디스턴스에 기초하여 사용자 인증을 수행하는 프로세서;를 포함하며, 상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 기초하여 획득될 수 있다.
이 경우, 상기 프로세서는, 상기 획득된 디스턴스가 기설정된 임계값 미만이면 상기 사용자 인증을 수행할 수 있다.
한편, 상기 제2 마스킹 코드는, 상기 제1 마스킹 코드에 임의의 정수열 α를 곱한 값이고, 상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 상기 임의의 정수열 α를 곱한 값을 포함할 수 있다.
본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 생체 데이터로부터 생체 코드열을 획득하고, 상기 생체 코드열 및 상기 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 상기 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 서버로 전송하는 단계 및 상기 서버로부터 수신된 제2 암호문에 포함된 태그 정보가 기 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하고, 상기 획득된 값을 서버로 전송하는 단계를 포함하며, 상기 디스턴스 값은, 상기 생체 코드열 및 상기 서버에 기저장된 생체 코드열 간의 디스턴스 값이며, 상기 제2 마스킹 코드는, 상기 서버가 상기 제1 마스킹 코드에 기초하여 획득한 코드를 포함할 수 있다.
이 경우, 상기 태그 정보는, 제1 태그 정보 및 제2 태그 정보를 포함하며, 상기 획득된 값을 서버로 전송하는 단계는, 상기 제2 암호문에 포함된 태그 정보가 상기 제1 태그 정보 및 상기 제2 태그 정보의 디스턴스와 일치하면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하여 서버로 전송할 수 있다.
또한, 사용자의 생체 데이터를 등록하기 위한 모드가 실행되면, 상기 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 상기 획득된 생체 코드열 및 상기 제1 태그 정보를 암호화한 제3 암호문을 상기 서버로 전송하는 단계를 포함할 수 있다.
한편, 상기 제1 암호문은, 비밀키에 의해 암호화되며, 상기 제2 암호문은, 암호화된 상태의 상기 제1 암호문에 디스턴스 연산이 수행됨에 따라 획득될 수 있다.
한편, 상기 생체 데이터는, 지문 데이터, 음성 데이터, 안면 데이터, 홍채 데이터, 손금 데이터 및 정맥 분포 데이터 중 적어도 하나를 포함할 수 있다.
본 발명의 일 실시 예에 따른 서버의 제어 방법은 사용자의 생체 데이터로부터 획득된 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보를 저장하는 단계, 사용자 인증을 위한 제2 생체 코드열 및 제2 태그 정보가 암호화된 제1 암호문 및, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 전자 장치로부터 수신하는 단계, 상기 제1 암호문 및 상기 인증 정보 간 디스턴스 및, 제2 마스킹 암호 코드를 더한 값을 포함하는 제2 암호문을 상기 전자 장치로 전송하는 단계 및 상기 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값이 수신되면, 상기 제1 마스킹 코드로부터 획득된 제2 마스킹 코드에 기초하여 상기 제1 및 제2 생체 코드열의 디스턴스를 획득하고, 상기 획득된 디스턴스에 기초하여 사용자 인증을 수행하는 단계를 포함하며, 상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 기초하여 획득될 수 있다.
이 경우, 상기 사용자 인증을 수행하는 단계는, 상기 획득된 디스턴스가 기설정된 임계값 미만이면 상기 사용자 인증을 수행할 수 있다.
한편, 상기 제2 마스킹 코드는, 상기 제1 마스킹 코드에 임의의 정수열 α를 곱한 값이고, 상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 상기 임의의 정수열 α를 곱한 값을 포함할 수 있다.
상술한 바와 같이 본 발명의 다양한 실시 예에 따르면, 사용자 단말과 서버가 각각 자신만이 복호화할 수 있는 태그를 암호문에 삽입함으로써 제3자는 물론 악의의 사용자 및 서버의 악의적 행동을 방지할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템을 나타내는 도면이다.
도 2는 본 발명의 일 실시 예에 따른 전자 장치의 세부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시 예에 따른 서버의 세부 구성을 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 전자 시스템을 설명하기 위한 흐름도이다.
도 5는 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 6은 본 발명의 일 실시 예에 따른 서버의 제어 방법을 설명하기 위한 흐름도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다. 
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 발명된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
도 1은 본 발명의 일 실시 예에 따른 전자 시스템을 설명하기 위한 도면이다.
전자 시스템(1000)은 전자 장치(100) 및 서버(200)를 포함할 수 있다.
전자 장치(100)는 스마트 폰, 스마트 TV, PDA, 셀룰러 폰, 데스크탑, 노트북 등 생체 인증이 가능한 다양한 전자 장치를 포함할 수 있다. 이 경우, 생체 인증이란 지문 인식, 홍채 인식, 안면 인식 등과 같은 다양한 생체 정보를 이용하여 암호화된 데이터에 접근하는 다양한 인증방법을 의미한다.
서버(200)는 복수의 서버 컴퓨터로 구현될 수 있다. 서버(200)는 암호화된 데이터를 저장할 수 있다. 또한, 전자 장치(100)의 생체 인증에 따라 사용자는 서버(200)의 암호화된 데이터에 접근할 수 있다.
본 발명의 일 실시 예에 따른 전자 시스템(1000)은 사용자가 전자 장치(100)에 생체 데이터를 센싱하면 전자 장치(100)는 생체 데이터를 기초로 생체 코드열을 획득할 수 있다. 전자 장치(100)는 생체 코드열을 포함한 제1 암호문을 서버(200)로 전송한다.
이 후, 서버(200)는 수신된 제1 암호문과 서버(200)에 저장된 인증 정보를 연산하여 전자 장치(100)로 연산한 결과인 제2 암호문을 전송한다. 여기서, 제2 암호문은 전자 장치(100)에서 센싱한 생체 코드열과 인증 정보에 포함된 생체 코드열의 디스턴스를 포함한다. 이 경우, 디스턴스란, 복수의 데이터의 편차 값을 의미하며, 디스턴스 값이 클수록 데이터들 간 편차가 크고, 일치도가 낮은 것을 의미한다.
전자 장치(100)는 수신된 제2 암호문에 포함되어 있는 태그 정보를 이용하여, 제3자가 아닌 전자 장치(100) 자신이 인증을 수행한 결과 제2 암호문이 도출되었는지 확인한다. 전자 장치(100)에 의해 제2 암호문이 도출된 것임을 확인하면, 서버(200)로 다시 디스턴스 값을 포함한 값을 전송하고, 서버(200)는 디스턴스 값에 기초하여 사용자 인증을 수행한다.
한편, 이하의 암호화 방법은 동형 암호화(Homomorphic Encryption) 방법을 포함할 수 있다. 동형 암호는 암호화된 상태로 암호문을 연산한다. 이에 따라, 악의의 사용자, 악의의 서버 컴퓨터 및 악의의 제3자로부터 생체 정보 유출을 방지할 수 있다. 이에 더하여, 전자 장치(100)와 서버(200)는 자신만이 알고 있는 고유의 정수 코드열을 암호문에 삽입하여 보안성을 높일 수 있다. 전자 장치(100) 및 서버(200)의 자세한 동작은 후술하도록 한다.
도 2는 본 발명의 일 실시 예에 따른 전자 장치의 세부 구성을 설명하기 위한 블록도이다.
본 발명의 일 실시 예에 따른 전자 장치(100)는 저장부(110), 센서(120), 통신부(130) 및 프로세서(140)를 포함할 수 있다.
저장부(110)는 전자 장치(100)의 동작에 필요한 다양한 데이터를 저장한다.
일 예로, 저장부(110)는 특정 전자 장치(100)가 인증을 수행하는지 여부를 확인하기 위한 태그 정보를 저장할 수 있다.
구체적으로, 태그 정보는 제1 태그 정보 및 제2 태그 정보를 포함할 수 있다. 제1 태그 정보는 사용자 등록 단계에서 서버(200)로 전송할 태그 정보에 해당하며, 제2 태그 정보는 사용자 인증 단계에서 서버(200)로 전송할 태그 정보에 해당한다. 자세한 사항은 후술한다.
다른 예로, 저장부(110)는 비밀키를 저장할 수 있다.
구체적으로, 비밀키는 후술할 CRT(Chinese Remainder Theorem) 동형 암호화에 사용되는 서로소 관계의 두 개의 정수를 포함할 수 있다. 또한, 비밀키는 전자 장치(100)만이 복호화 할 수 있는 값으로, 서버(200) 또는 제3자는 알 수 없는 값에 해당한다. 자세한 사항은 후술한다.
특히, 저장부(110)는 프로세서(140)가 각종 처리를 실행하기 위해 필요한 데이터를 저장한다. 일 예로, 프로세서(140)에 포함된 롬(ROM), 램(RAM) 등의 내부 메모리로 구현되거나, 프로세서(140)와 별도의 메모리로 구현될 수도 있다. 이 경우, 저장부(110)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 전자 장치(100)에 임베디드된 메모리의 경우 비휘발성 메모리, 휘발성 메모리, 플래시 메모리, 하드 디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등과 같은 형태로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, micro SD 카드, USB 메모리 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
센서(120)는 사용자의 생체 데이터를 인식하기 위한 복수의 센서를 포함할 수 있다.
구체적으로, 센서(120)는 특정 사용자의 생체 데이터를 센싱할 수 있는 지문 인식 센서, 음성 인식 센서, 안면 인식 센서, 홍채 센서, 손금 센서, 정맥 분포 센서 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되지 않으며, 사용자 생체 데이터를 이용해 특정 사용자를 인식할 수 있는 다양한 센서를 포함할 수 있다.
통신부(130)는 서버(200)와 통신을 수행한다.
통신부(130)는 전자 장치(100)에서 획득한 암호문을 전송하며, 서버(200)에서 획득한 암호문을 수신할 수 있다. 또한, 사용자 인증을 수행하기 위하여 암호문을 포함한 다양한 데이터를 송수신할 수 있다.
예를 들어, 통신부(130)는 IR(Infrared), WI-FI(Wireless Fidelity), Bluetooh, Zigbee, 비콘(Beacon), NFC(near field communication), WAN, LAN, 이더넷(Ethernet), IEEE 1394, HDMI, USB, MHL, AES/EBU, 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 다양한 통신 방식을 통해 통신을 수행할 수도 있다.
프로세서(140)는 전자 장치(100)의 전반적인 동작을 제어한다.
본 발명의 일 실시 예에 따라, 프로세서(140)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(140)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
프로세서(140)는 센서(120)에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 생체 코드열 및 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 통신부(130)를 통해 서버(200)로 전송할 수 있다.
구체적으로, 프로세서(140)는 생체 데이터로부터 n 비트의 생체 코드열을 획득할 수 있다. 즉, 사람의 생체 데이터로부터 n 비트열의 생체 코드열 x를 획득할 수 있다. 일 예로,
Figure pat00001
과 같은 형태로 획득할 수 있다. 다른 예로, 생체 데이터가 지문인 경우, 1024 bit의 생체 코드열을 획득할 수 있고, 생체 데이터가 홍채인 경우, 2048 bit의 생체 코드열을 획득할 수 있다. 다만, 구체적인 bit 수는 설명의 편의를 위함이며, 상술한 값에 한정되지는 않는다.
이 경우, 프로세서(140)는 지문 데이터, 음성 데이터, 안면 데이터, 홍채 데이터, 손금 데이터 및 정맥 분포 데이터 중 적어도 하나를 포함하는 생체 데이터로부터 n 비트열의 생체 코드열을 획득할 수 있다.
예를 들어, 홍채 데이터 만을 이용하여 생체 코드열을 획득할 수도 있지만, 보안성 향상을 위하여 홍채 및 지문 데이터를 이용하여 생체 코드열을 획득할 수도 있다.
이 후, 프로세서(140)는 획득한 생체 코드열과 태그 정보에 기초하여 제1 암호문을 획득할 수 있다.
이 경우, 태그 정보는 다른 외부 장치가 아닌 전자 장치(100)가 정해진 연산을 수행했다는 것을 확인하기 위한 정보에 해당한다. 즉, 태그 정보를 암호문에 삽입함으로써 다른 외부 장치가 서버(200)로 인증을 수행하는 것을 방지할 수 있다.
구체적으로, 프로세서(140)는 임의의 정수열로 이루어진 태그 정보를 획득할 수 있다. 즉, 무작위의 정수로 이루어진 태그 정보를 획득할 수 있다.
이 경우, 프로세서(140)는 생체 코드열의 비트수 n과 동일한 비트수로 구성된 태그 정보를 획득할 수 있다.
일 예로, 프로세서(140)는 생체 코드열의 비트 수인 n개의 임의의 정수 ri, si 및 태그 정보 tagi를 획득하여, 중국인의 나머지 정리(CRT, Chinese Remainder Theorem)를 이용한 암호문
Figure pat00002
= Enc(x, tag)를 획득할 수 있다.
Figure pat00003
이 경우, 암호문
Figure pat00004
는 서로 소인 정수 p1 및 p2에 의해 획득된 나머지를 포함할 수 있다. 즉, i번째 암호문
Figure pat00005
을 p1으로 나눈 나머지
Figure pat00006
및 i번째 암호문
Figure pat00007
을 p2로 나눈 나머지
Figure pat00008
를 포함하는 암호문을 획득할 수 있다.
이하에서, i는 i번째 비트수를 의미하며, 아래 첨자 i는 설명의 편의상 생략될 수 있다.
한편, 프로세서(140)는 추후에 암호문을 복호화하기 위하여 p1 및 p2를 비밀키로 식별하여 저장부(110)에 저장할 수 있다. 수학식 1에 포함된 p1 및 p2는 서버(200) 및 제3자는 알 수 없으며, 전자 장치(100)만 알고 있는 고유의 비밀키를 의미한다. 이 경우, p1 및 p2는 CRT에 따라 서로소인 정수가 될 수 있다.
또한, 프로세서(140)가 획득한 ri 및 si는 보안성 향상을 위한 작은 에러(small error)를 의미하며, Q1 및 Q2는 메시지 공간을 의미한다.
한편, 프로세서(140)는 획득한 태그 정보 tagi를 저장한 이후, 통신부(130)를 통해 서버(200)로 제1 암호문
Figure pat00009
를 전송한다.
한편, 프로세서(140)는 제1 마스킹 코드 및 제1 마스킹 코드를 암호화한 제1 마스킹 암호 코드를 획득하여 제1 암호문과 함께 전송할 수 있다.
평문으로 이루어진 제1 마스킹 코드는 이후 서버(200)에서 이용하기 위한 값이며, 제1 마스킹 암호 코드는 암호문의 보안성을 향상시키기 위한 값이다.
이 경우, 프로세서(140)는 상술한 수학식 1과 같은 CRT 동형 암호화에 의해 제1 마스킹 코드를 제1 마스킹 암호 코드로 암호화시킬 수 있다.
또한, 프로세서(140)는 제1 마스킹 코드 및 제1 마스킹 암호 코드는 생체 코드열의 비트 수 보다 큰 비트 수를 갖도록 획득할 수 있다. 제1 암호문을 마스킹 하기 위한 코드이기 때문이다.
이에 따라, 프로세서(140)는 제1 암호문, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 서버(200)로 전송할 수 있다.
한편, 프로세서(140)는 서버(200)로부터 제2 암호문을 수신하여, 제2 암호문에 포함된 태그 정보가 저장부(130)에 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 제2 암호문을 복호화하여 제2 암호문에서 디스턴스 값 및 제2 마스킹 코드를 더한 값을 획득할 수 있다. 이 후, 프로세서(140)는 획득된 값을 서버(200)로 전송할 수 있다.
구체적으로, 프로세서(140)는 제2 암호문에 포함된 태그 정보가 제1 태그 정보 및 제2 태그 정보의 디스턴스와 일치하면, 제2 암호문을 복호화하여, 제2 암호문에서 디스턴스 값 및 제2 마스킹 코드를 더한 값을 획득할 수 있다.
여기서, 디스턴스는 유클리디언 디스턴스(Euclidian distance) 또는 해밍 디스턴스(Hamming distance) 연산 방식으로 획득될 수 있으나 이에 한정되지는 않는다.
이 경우, 제1 태그 정보는 생체 데이터를 서버(200)에 등록하는 단계에서 서버(200)로 전송한 태그 정보에 해당한다. 제2 태그 정보는 사용자 인증을 수행하는 단계에서 서버(200)로 전송한 태그 정보에 해당한다.
프로세서(140)는 제1 태그 정보 및 제2 태그 정보를 서버(200)로 전송하기 전, 제1 태그 정보 및 제2 태그 정보를 저장부(110)에 저장할 수 있다. 제2 암호문에 포함된 태그 정보가 저장된 제1 태그 정보 및 저장된 제2 태그 정보의 디스턴스와 일치 여부를 식별하기 위함이다.
한편, 제2 암호문은 서버(200)가 전자 장치(100)로부터 수신한 암호문을 암호화된 상태로 연산을 수행하여 획득된 암호문을 포함한다. 자세한 사항은 서버(200)와 관련하여 후술한다.
한편, 프로세서(140)는 사용자의 생체 데이터를 등록하기 위한 모드가 실행되면, 센서(120)에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하여, 획득된 생체 코드열 및 제1 태그 정보를 암호화한 제3 암호문을 통신부(130)를 통해 서버(200)로 전송할 수 있다. 이 경우, 서버(200)는 제3 암호문을 인증 정보로 식별하여 서버의 저장부(210)에 저장할 수 있다.
한편, 디스턴스 값은 프로세서(140)가 획득한 생체 코드열 및 서버(200)에 기저장된 생체 코드열 간의 디스턴스 값이 될 수 있다. 디스턴스 값은 유클리디언 디스턴스(Euclidian distance) 또는 해밍 디스턴스(Hamming distance)값으로 획득될 수 있으나 이에 한정되지는 않는다.
즉, 디스턴스 값은 인증을 시도하는 프로세서(140)가 획득한 생체 코드열 및 서버(200)에 기저장된 생체 코드열 간 편차 값에 해당하며, 서버(200)는 디스턴스 값이 낮으면 인증이 성공된 것으로 식별할 수 있다.
한편, 제2 마스킹 코드는 프로세서(140)가 획득한 제1 마스킹 코드에 기초하여 서버(200)가 획득한 값이다. 구체적으로, 서버(200)는 제1 마스킹 코드에 임의의 정수 aj를 획득하여 곱한 후, 제2 마스킹 코드로 식별하여 획득할 수 있다. 이에 대한 구체적인 사항은 후술하도록 한다.
한편, 프로세서(140)는 서버(200)로부터 수신한 제2 암호문은 수학식 2와 같다.
Figure pat00010
프로세서(140)는 제2 암호문을 복호화하여 수학식 3과 같은 평문을 획득할 수 있다.
Figure pat00011
수학식 3에서 Rj는 j 비트 수를 갖는 제1 마스킹 코드를, aj는 j비트 수를 갖는 임의의 정수열을 가지며, R'은 제2 마스킹 코드를 나타낸다. 또한, d는 프로세서(140)가 획득한 생체 코드열 및 서버(200)에 기저장된 생체 코드열 간의 디스턴스 값을 나타낸다.
프로세서(140)는 수학식 3과 같은 평문을 획득하면, 디스턴스 값 d와 제2 마스킹 코드 R'를 더한 값을 획득하여 통신부(130)를 통해 서버(200)로 전송한다. 서버(200)는 수학식 3과 같은 평문을 수신하여 사용자 인증을 수행할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 서버의 세부 구성을 설명하기 위한 블록도이다.
본 발명의 일 실시 예에 따른 서버(200)는 저장부(210), 통신부(220) 및 프로세서(230)를 포함할 수 있다.
저장부(210)는 서버(200)의 동작에 필요한 다양한 데이터를 저장한다.
일 예로, 저장부(210)는 사용자의 생체 데이터로부터 획득한 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보를 저장할 수 있다. 이 경우, 인증 정보는 전자 장치(100)로부터 수신된 정보가 될 수 있다.
다른 예로, 저장부(210)는 제1 마스킹 코드를 기초로 획득한 제2 마스킹 코드를 저장할 수 있다. 제2 마스킹 코드는 사용자 인증 최종 단계에서 디스턴스 값을 획득하기 위해 사용할 수 있다.
저장부(210)는 상술한 전자 장치(100)의 저장부(110)와 유사하게 다양한 형태로 구현될 수 있으며 중복되는 내용은 생략한다.
통신부(220)는 전자 장치(100)와 통신을 수행한다.
구체적으로, 통신부(220)는 전자 장치(100)로부터 암호문을 수신하여 사용자 인증을 위한 연산을 수행한 후 전자 장치(100)로 연산된 암호문을 전송할 수 있다. 또한, 사용자 인증을 수행하기 위하여 암호문을 포함한 다양한 데이터를 송수신할 수 있다.
통신부(220)는 전자 장치(100)의 통신부(130)와 유사하게 다양한 형태로 구현될 수 있으며 중복되는 내용은 생략한다.
프로세서(230)는 서버(200)의 전반적인 동작을 제어한다. 또한, 프로세서(230)는 전자 장치(100)의 프로세서(140)와 유사하게 다양한 형태로 구현될 수 있다.
프로세서(230)는 사용자 인증을 위한 제2 생체 코드열 및 제2 태그 정보가 암호화된 제1 암호문 및, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 통신부(220)를 통해 전자 장치(100)로부터 수신할 수 있다.
이 경우, 프로세서(230)는 제1 암호문 및 인증 정보 간 디스턴스를 획득할 수 있다.
구체적으로, 프로세서(230)는 제2 생체 코드열
Figure pat00012
및 제2 태그 정보
Figure pat00013
를 포함하는 제1 암호문
Figure pat00014
및, 제1 생체 코드열
Figure pat00015
및 제1 태그 정보
Figure pat00016
를 포함하는 인증 정보
Figure pat00017
간 디스턴스를 계산한다.
도 2에서 상술한 바와 마찬가지로, 생체 코드열 및 태그 정보는 n 비트 열로 구성될 수 있으며, 디스턴스는 수학식 4와 같이 표현될 수 있다.
Figure pat00018
즉, 프로세서(230)는 제1 암호문 및 인증 정보간 디스턴스
Figure pat00019
를 획득할 수 있다. 이 경우, 제1 암호문 및 인증 정보간 디스턴스는 제1 생체 코드열 및 제2 생체 코드열의 디스턴스 값 d 및 제1 태그 정보 및 제2 태그 정보의 디스턴스 tag'를 포함할 수 있다. (d, tag')의 상단에 표시된 바(bar)는 암호화된 상태를 의미한다.
한편, 프로세서(230)는 제1 암호문 및 인증 정보 간 디스턴스 및, 제2 마스킹 암호 코드를 더한 값을 포함하는 제2 암호문을 전자 장치(100)로 전송할 수 있다.
이 경우, 제2 마스킹 암호 코드는 전자 장치(100)로부터 수신한 제1 마스킹 암호 코드에 기초하여 획득된 값이다.
구체적으로, 프로세서(230)는 수신된 제1 마스킹 암호 코드에 임의의 정수열 α를 곱하여 제2 마스킹 암호 코드를 획득할 수 있다. 또한, 프로세서(230)는 수신된 제1 마스킹 코드에 임의의 정수열 α를 곱하여 제2 마스킹 코드를 획득할 수 있다.
이 후, 프로세서(230)는 획득된 제2 마스킹 암호 코드를 상술한 제1 암호문 및 인증 정보간 디스턴스에 더하여 제2 암호문을 획득하고, 제2 암호문을 전자 장치(100)로 전송할 수 있다.
제2 마스킹 암호 코드는 전자 장치(100)가 임의로 생체 코드열 간 디스턴스 값을 낮추어 서버(200)에 요청함으로써, 악의의 사용자가 사용자 인증을 수행하는 것을 방지하기 위함이다. 즉, 디스턴스 값에 서버(200)만이 알고 있는 제2 마스킹 암호 코드를 더하여, 전자 장치(100)가 임의로 디스턴스 값을 조정하지 못하도록 한다.
이 후, 전자 장치(100)는 서버(200)로부터 수신된 제2 암호문에 포함된 태그 정보가 저장부(110)에 저장된 태그 정보에 기초하여 획득된 값으로 식별되면 전자 장치(100)는 서버(200)로 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값을 전송한다. 즉, 전자 장치(100)는 수신된 값에서 태그 정보를 제외한 값을 서버(200)로 전송한다. 이에 따라, 프로세서(230)는 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값을 수신할 수 있다.
이 후, 프로세서(230)는 제1 마스킹 코드로부터 획득된 제2 마스킹 코드에 기초하여 제1 및 제2 생체 코드열의 디스턴스를 획득할 수 있다.
구체적으로, 프로세서(230)가 수신한 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값에서, 제2 마스킹 코드를 차감하여 제1 및 제2 생체 코드열의 디스턴스를 획득할 수 있다. 여기서 제2 마스킹 코드는 상술한 바와 같이, 프로세서(230)가 제1 마스킹 코드에 임의의 정수열 α를 곱하여 획득한 값에 해당한다.
이 후, 프로세서(230)는 획득된 디스턴스에 기초하여 사용자 인증을 수행할 수 있다.
구체적으로, 프로세서(230)는 획득된 디스턴스가 기설정된 임계값 미만이면 사용자 인증을 수행할 수 있다. 상술한 바와 같이, 디스턴스는 제1 생체 코드열과 제2 생체 코드열의 디스턴스이다. 따라서, 디스턴스가 낮을수록, 생체 코드열 간 정확도가 높기 때문에, 디스턴스가 임계값 미만이면 사용자 인증을 수행할 수 있다.
도 2 및 도 3에서 상술한 바와 같이, 태그 정보를 이용한 연산을 수행하여 악의적인 서버가 생체 데이터를 획득하는 것을 방지할 수 있다. 또한, 마스킹 코드를 이용한 연산을 수행하여 악의적인 사용자가 임의로 디스턴스 값을 낮추어 사용자 인증을 수행하는 것을 방지할 수 있다.
도 4는 본 발명의 일 실시 예에 따른 전자 시스템을 설명하기 위한 흐름도이다.
본 발명의 일 실시 예에 따른 전자 장치(100)는 생체 데이터로부터 제2 생체 코드열을 획득하고, 기저장된 제2 태그 정보에 기초하여 제1 암호문을 획득할 수 있다. 또한, 제1 마스킹 코드 및 제1 마스킹 코드에 기초한 제1 마스킹 암호 코드를 획득할 수 있다(S401).
이 후, 전자 장치(100)는 제1 암호문, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 서버로 전송(S402)할 수 있다.
한편, 서버(200)는 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보를 저장(S403)할 수 있다.
이 경우, 인증 정보는 상술한 제1 암호문과 동일한 형태의 암호문으로 구성될 수 있다. 일 예로, 제1 암호문과 인증 정보는 모두 CRT 방식에 의한 동형 암호문으로 구현될 수 있다.
또한, 서버(200)가 제1 암호문을 수신하기 전에 전자 장치(100)로부터 인증 정보를 수신하여 저장(미도시)할 수 있다.
이 후, 서버(200)는 제1 암호문 및 인증 정보간 디스턴스인
Figure pat00020
를 획득(S404)할 수 있다. 구체적으로, 서버(200)는 상술한 수학식 4와 같은 디스턴스 연산으로
Figure pat00021
를 획득할 수 있다.
한편, 서버(200)는 제1 마스킹 암호 코드
Figure pat00022
에 임의의 정수열 α를 곱하여 제2 마스킹 암호 코드
Figure pat00023
를 획득할 수 있다.
이와 함께, 서버(200)는 제1 마스킹 코드(R, 0)에 임의의 정수열 α를 곱하여 제2 마스킹 코드 α(R, 0)을 획득(미도시)할 수 있다.
한편, 서버(200)는 획득된 제2 마스킹 코드를 저장부(210)에 저장할 수 있다. 이후 S411 단계에서 d를 획득하기 위함이다.
이 후, 서버(200)는 제1 암호문 및 인증 정보간 디스턴스
Figure pat00024
에 제2 마스킹 암호 코드
Figure pat00025
를 더한 값을 포함하는 제2 암호문 전자 장치(100)로 전송(S406)할 수 있다. 이 경우, 제2 암호문은
Figure pat00026
로 표현될 수 있다.
전자 장치(100)는 수신된 제2 암호문을 복호화하여, (d+R', tag')을 획득(S408)할 수 있다. 이 경우, R'은
Figure pat00027
를 의미한다.
이 후, 전자 장치(100)는 제1 태그 정보 및 제2 태그 정보의 디스턴스가 tag'와 일치하는지 식별(S408)할 수 있다. 구체적으로, 제1 태그 정보 및 제2 태그 정보 모두 전자 장치(100)에서 생성한 값이므로, 전자 장치(100)는 제1 태그 정보 및 제2 태그 정보 간 디스턴스 연산을 수행할 수 있다.
이 경우, 제1 태그 정보 및 제2 태그 정보의 디스턴스가 tag'과 일치하지 않으면 서버(200)와의 통신을 중단(S409)할 수 있다.
구체적으로, 전자 장치(100)가 수신한 tag'이 전자 장치(100) 자신이 식별한 제1 태그 정보 및 제2 태그 정보에 기초한 값이 아니라면, 악의의 서버가 전송한 암호문으로 식별하여 통신을 중단할 수 있다.
한편, 제1 태그 정보 및 제2 태그 정보의 디스턴스가 tag'과 일치하면, d+R'을 전송(S410)할 수 있다.
구체적으로, 전자 장치(100)는
Figure pat00028
가 성립하면, d+R'를 전송할 수 있다. 이 경우, tag*는 제1 태그 정보를, tag는 제2 태그 정보를 가리킨다.
이 후, 서버(200)는 수신된 d+R'에서 R'를 차감하여 d만을 획득(S411)할 수 있으며, d에 기초하여 사용자 인증을 수행(S412)할 수 있다.
구체적으로, d값은 제1 생체 코드열과 제2 생체 코드열의 디스턴스 값에 해당하므로, d에 따라 사용자 인증을 수행할 수 있다. 일 예로, d가 기설정된 임계치보다 낮은 디스턴스 값을 가진다면 기 저장된 제1 생체 코드열과 전자 장치(100)로부터 수신한 제2 생체 코드열의 차이가 크지 않다는 것으로 판단하여 사용자 인증을 수행할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
본 발명의 일 실시 예에 따른 전자 장치(100)는 생체 데이터로부터 생체 코드열을 획득하고, 생체 코드열 및 상기 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 서버(200)로 전송(S501)할 수 있다.
이 후, 전자 장치(100)는 서버로부터 수신된 제2 암호문에 포함된 태그 정보가 기 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 제2 암호문을 복호화하여 제2 암호문에서 디스턴스 값 및 제2 마스킹 코드를 더한 값을 획득하고, 획득된 값을 서버(200)로 전송(S502)할 수 있다.
이 경우, 디스턴스 값은 생체 코드열 및 서버(200)에 기저장된 생체 코드열 간의 디스턴스 값을 포함하며, 제2 마스킹 코드는 서버(200)가 제1 마스킹 코드에 기초하여 획득한 코드를 포함한다.
한편, 제2 암호문은 서버(200)가 제1 암호문 및 제2 마스킹 암호 코드에 기초하여 획득한 암호문을 포함하며, 제2 마스킹 암호 코드는 서버(200)가 제1 마스킹 암호 코드에 기초하여 획득한 코드를 포함한다.
한편, 전자 장치(100)와 관련된 자세한 동작은 상술한 도 2 내지 도 4에 설명하였으므로 생략한다.
도 6은 본 발명의 일 실시 예에 따른 서버의 제어 방법을 설명하기 위한 흐름도이다.
본 발명의 일 실시 예에 따른 서버(200)는 사용자의 생체 데이터로부터 획득된 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보를 저장(S601)할 수 있다. 이 경우, 인증 정보는 전자 장치(100)로부터 수신하여 저장한 값을 포함한다.
이 후, 서버(200)는 사용자 인증을 위한 제2 생체 코드열 및 제2 태그 정보가 암호화된 제1 암호문 및, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 전자 장치(100)로부터 수신(S602)할 수 있다.
서버(200)는 수신된 값 및 인증 정보에 기초하여, 제1 암호문 및 인증 정보 간 디스턴스 및, 제2 마스킹 암호 코드를 더한 값을 포함하는 제2 암호문을 전자 장치(100)로 전송(S603)할 수 있다.
이 후, 서버(200)는 전자 장치(100)로부터 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값이 수신되면, 제1 마스킹 코드로부터 획득된 제2 마스킹 코드에 기초하여 제1 및 제2 생체 코드열의 디스턴스를 획득하고, 획득된 디스턴스에 기초하여 사용자 인증을 수행(S604)할 수 있다.
이 경우, 서버(200)는 제2 마스킹 암호 코드는 제1 마스킹 암호 코드에 기초하여 획득할 수 있다.
한편, 서버(200)와 관련된 자세한 동작은 상술한 도 2 내지 도 4에 설명하였으므로 생략한다.
한편, 상술한 본 발명의 다양한 실시 예들에 따른 방법들 중 적어도 일부 구성은 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 발명의 다양한 실시 예들에 따른 방법들 중 적어도 일부 구성은, 기존 전자 장치(100)에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 발명의 다양한 실시 예들 중 적어도 일부 구성은 전자 장치(100)에 구비된 임베디드 서버를 통해 수행되는 것도 가능하다.
한편, 이상에서 설명된 다양한 실시 예들 중 적어도 일부 구성은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들 중 적어도 일부 구성이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들 중 적어도 일부 구성은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 전자 장치(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 전자 장치(100)에서의 처리 동작을 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 전자 장치 200 : 서버 1000 : 전자 시스템

Claims (16)

  1. 태그 정보가 저장된 저장부;
    통신부;
    센서; 및
    상기 센서에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 상기 생체 코드열 및 상기 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 상기 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 상기 통신부를 통해 서버로 전송하며,
    상기 서버로부터 수신된 제2 암호문에 포함된 태그 정보가 상기 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하고, 상기 획득된 값을 상기 통신부를 통해 서버로 전송하는 프로세서;를 포함하며,
    상기 디스턴스 값은, 상기 생체 코드열 및 상기 서버에 기저장된 생체 코드열 간의 디스턴스 값이며,
    상기 제2 마스킹 코드는, 상기 서버가 상기 제1 마스킹 코드에 기초하여 획득한 코드인, 전자 장치.
  2. 제1항에 있어서,
    상기 태그 정보는, 제1 태그 정보 및 제2 태그 정보를 포함하며,
    상기 프로세서는,
    상기 제2 암호문에 포함된 태그 정보가 상기 제1 태그 정보 및 상기 제2 태그 정보의 디스턴스와 일치하면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하는, 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    사용자의 생체 데이터를 등록하기 위한 모드가 실행되면, 상기 센서에 의해 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 상기 획득된 생체 코드열 및 상기 제1 태그 정보를 암호화한 제3 암호문을 상기 통신부를 통해 상기 서버로 전송하는, 전자 장치.
  4. 제1항에 있어서,
    상기 저장부는, 비밀키를 저장하며,
    상기 제1 암호문은, 상기 비밀키에 의해 암호화되며,
    상기 제2 암호문은, 암호화된 상태의 상기 제1 암호문에 디스턴스 연산이 수행됨에 따라 획득되는, 전자 장치.
  5. 제1항에 있어서,
    상기 생체 데이터는,
    지문 데이터, 음성 데이터, 안면 데이터, 홍채 데이터, 손금 데이터 및 정맥 분포 데이터 중 적어도 하나를 포함하는, 전자 장치.
  6. 사용자의 생체 데이터로부터 획득된 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보가 저장된 저장부;
    통신부; 및
    사용자 인증을 위한 제2 생체 코드열 및 제2 태그 정보가 암호화된 제1 암호문 및, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 상기 통신부를 통해 전자 장치로부터 수신하고,
    상기 제1 암호문 및 상기 인증 정보 간 디스턴스 및, 제2 마스킹 암호 코드를 더한 값을 포함하는 제2 암호문을 상기 전자 장치로 전송하고,
    상기 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값이 수신되면, 상기 제1 마스킹 코드로부터 획득된 제2 마스킹 코드에 기초하여 상기 제1 및 제2 생체 코드열의 디스턴스를 획득하고,
    상기 획득된 디스턴스에 기초하여 사용자 인증을 수행하는 프로세서;를 포함하며,
    상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 기초하여 획득되는, 서버.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 획득된 디스턴스가 기설정된 임계값 미만이면 상기 사용자 인증을 수행하는, 서버.
  8. 제6항에 있어서,
    상기 제2 마스킹 코드는, 상기 제1 마스킹 코드에 임의의 정수열 α를 곱한 값이고,
    상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 상기 임의의 정수열 α를 곱한 값인, 서버.
  9. 전자 장치 제어 방법에 있어서,
    생체 데이터로부터 생체 코드열을 획득하고, 상기 생체 코드열 및 상기 태그 정보가 암호화된 제1 암호문, 제1 마스킹 코드 및 상기 제1 마스킹 코드가 암호화된 제1 마스킹 암호 코드를 서버로 전송하는 단계; 및
    상기 서버로부터 수신된 제2 암호문에 포함된 태그 정보가 기 저장된 태그 정보에 기초하여 획득된 값으로 식별되면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하고, 상기 획득된 값을 서버로 전송하는 단계;를 포함하며,
    상기 디스턴스 값은, 상기 생체 코드열 및 상기 서버에 기저장된 생체 코드열 간의 디스턴스 값이며,
    상기 제2 마스킹 코드는, 상기 서버가 상기 제1 마스킹 코드에 기초하여 획득한 코드인, 제어 방법.
  10. 제9항에 있어서,
    상기 태그 정보는, 제1 태그 정보 및 제2 태그 정보를 포함하며,
    상기 획득된 값을 서버로 전송하는 단계는,
    상기 제2 암호문에 포함된 태그 정보가 상기 제1 태그 정보 및 상기 제2 태그 정보의 디스턴스와 일치하면, 상기 제2 암호문을 복호화하여 상기 제2 암호문에서 상기 디스턴스 값 및 상기 제2 마스킹 코드를 더한 값을 획득하여 서버로 전송하는, 제어 방법.
  11. 제10항에 있어서,
    사용자의 생체 데이터를 등록하기 위한 모드가 실행되면, 상기 센싱된 생체 데이터로부터 생체 코드열을 획득하고, 상기 획득된 생체 코드열 및 상기 제1 태그 정보를 암호화한 제3 암호문을 상기 서버로 전송하는 단계;를 포함하는, 제어 방법.
  12. 제9항에 있어서,
    상기 제1 암호문은, 비밀키에 의해 암호화되며,
    상기 제2 암호문은, 암호화된 상태의 상기 제1 암호문에 디스턴스 연산이 수행됨에 따라 획득되는, 제어 방법.
  13. 제9항에 있어서,
    상기 생체 데이터는,
    지문 데이터, 음성 데이터, 안면 데이터, 홍채 데이터, 손금 데이터 및 정맥 분포 데이터 중 적어도 하나를 포함하는, 제어 방법.
  14. 서버 제어 방법에 있어서,
    사용자의 생체 데이터로부터 획득된 제1 생체 코드열 및 제1 태그 정보가 암호화된 인증 정보를 저장하는 단계;
    사용자 인증을 위한 제2 생체 코드열 및 제2 태그 정보가 암호화된 제1 암호문 및, 제1 마스킹 코드 및 제1 마스킹 암호 코드를 전자 장치로부터 수신하는 단계;
    상기 제1 암호문 및 상기 인증 정보 간 디스턴스 및, 제2 마스킹 암호 코드를 더한 값을 포함하는 제2 암호문을 상기 전자 장치로 전송하는 단계; 및
    상기 제1 및 제2 생체 코드열의 디스턴스 및 제2 마스킹 코드를 더한 값이 수신되면, 상기 제1 마스킹 코드로부터 획득된 제2 마스킹 코드에 기초하여 상기 제1 및 제2 생체 코드열의 디스턴스를 획득하고, 상기 획득된 디스턴스에 기초하여 사용자 인증을 수행하는 단계;를 포함하며,
    상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 기초하여 획득되는, 제어 방법.
  15. 제14항에 있어서,
    상기 사용자 인증을 수행하는 단계는,
    상기 획득된 디스턴스가 기설정된 임계값 미만이면 상기 사용자 인증을 수행하는, 제어 방법.
  16. 제14항에 있어서,
    상기 제2 마스킹 코드는, 상기 제1 마스킹 코드에 임의의 정수열 α를 곱한 값이고,
    상기 제2 마스킹 암호 코드는, 상기 제1 마스킹 암호 코드에 상기 임의의 정수열 α를 곱한 값인, 제어 방법.
KR1020180003826A 2018-01-11 2018-01-11 전자 장치, 서버 및 그 제어 방법 KR102411883B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020180003826A KR102411883B1 (ko) 2018-01-11 2018-01-11 전자 장치, 서버 및 그 제어 방법
US16/959,587 US20200389303A1 (en) 2018-01-11 2019-01-11 Electronic device, server, and control method therefor
PCT/KR2019/000490 WO2019139420A1 (ko) 2018-01-11 2019-01-11 전자 장치, 서버 및 그 제어 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180003826A KR102411883B1 (ko) 2018-01-11 2018-01-11 전자 장치, 서버 및 그 제어 방법

Publications (2)

Publication Number Publication Date
KR20190085674A true KR20190085674A (ko) 2019-07-19
KR102411883B1 KR102411883B1 (ko) 2022-06-22

Family

ID=67219805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180003826A KR102411883B1 (ko) 2018-01-11 2018-01-11 전자 장치, 서버 및 그 제어 방법

Country Status (3)

Country Link
US (1) US20200389303A1 (ko)
KR (1) KR102411883B1 (ko)
WO (1) WO2019139420A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102403471B1 (ko) * 2021-12-30 2022-05-30 주식회사 디사일로 동형 암호화된 음성을 이용한 개인 식별 방법 및 시스템
KR102404763B1 (ko) * 2021-12-30 2022-06-02 주식회사 디사일로 동형 암호화된 이미지를 이용한 개인 식별 방법 및 시스템
KR20230067062A (ko) * 2021-11-09 2023-05-16 주식회사 디사일로 개인 정보 보호 데이터 분석을 위한 컴퓨팅 방법 및 시스템

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507699B2 (en) * 2019-09-27 2022-11-22 Intel Corporation Processor with private pipeline
KR20230061028A (ko) * 2021-10-28 2023-05-08 삼성에스디에스 주식회사 부채널 공격을 방지하기 위한 암호문 비교 장치 및 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008167107A (ja) * 2006-12-28 2008-07-17 Tokyo Institute Of Technology 公開鍵基盤を利用したチャレンジ・レスポンス認証方法
KR20080075956A (ko) * 2007-02-14 2008-08-20 에스케이씨앤씨 주식회사 생체정보를 이용하는 사용자 인증방법
KR101677114B1 (ko) * 2015-08-28 2016-11-18 고려대학교 산학협력단 동형 암호를 이용한 생체정보의 이상치 탐색 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9281941B2 (en) * 2012-02-17 2016-03-08 International Business Machines Corporation Homomorphic evaluation including key switching, modulus switching, and dynamic noise management
FR2992124B1 (fr) * 2012-06-18 2014-07-25 Morpho Procede de traitement de donnees securise
US20150381349A1 (en) * 2013-03-04 2015-12-31 Thomson Licensing Privacy-preserving ridge regression using masks
US10057068B2 (en) * 2013-05-28 2018-08-21 Hitachi, Ltd. Biometric signature system, signature verification method, registration terminal, signature generation terminal, and signature verification device
FR3018934B1 (fr) * 2014-03-24 2017-05-26 Morpho Procede d'enrolement de donnees dans une base pour la protection desdites donnees
KR20160133991A (ko) * 2015-05-14 2016-11-23 삼성전자주식회사 지문 등록 방법 및 지문 인증 방법
US20170293913A1 (en) * 2016-04-12 2017-10-12 The Governing Council Of The University Of Toronto System and methods for validating and performing operations on homomorphically encrypted data
CN106060073B (zh) * 2016-07-07 2019-03-26 北京仁信证科技有限公司 信道密钥协商方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008167107A (ja) * 2006-12-28 2008-07-17 Tokyo Institute Of Technology 公開鍵基盤を利用したチャレンジ・レスポンス認証方法
KR20080075956A (ko) * 2007-02-14 2008-08-20 에스케이씨앤씨 주식회사 생체정보를 이용하는 사용자 인증방법
KR101677114B1 (ko) * 2015-08-28 2016-11-18 고려대학교 산학협력단 동형 암호를 이용한 생체정보의 이상치 탐색 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230067062A (ko) * 2021-11-09 2023-05-16 주식회사 디사일로 개인 정보 보호 데이터 분석을 위한 컴퓨팅 방법 및 시스템
US11936792B2 (en) 2021-11-09 2024-03-19 Common Computer Inc Method and system for providing privacy-preserving data analysis
KR102403471B1 (ko) * 2021-12-30 2022-05-30 주식회사 디사일로 동형 암호화된 음성을 이용한 개인 식별 방법 및 시스템
KR102404763B1 (ko) * 2021-12-30 2022-06-02 주식회사 디사일로 동형 암호화된 이미지를 이용한 개인 식별 방법 및 시스템
WO2023128342A1 (ko) * 2021-12-30 2023-07-06 주식회사 디사일로 동형 암호화된 음성을 이용한 개인 식별 방법 및 시스템
WO2023128345A1 (ko) * 2021-12-30 2023-07-06 주식회사 디사일로 동형 암호화된 이미지를 이용한 개인 식별 방법 및 시스템

Also Published As

Publication number Publication date
WO2019139420A1 (ko) 2019-07-18
US20200389303A1 (en) 2020-12-10
KR102411883B1 (ko) 2022-06-22

Similar Documents

Publication Publication Date Title
KR102328725B1 (ko) 하나의 장치를 이용하여 다른 장치를 언로크하는 방법
US10681025B2 (en) Systems and methods for securely managing biometric data
KR20190085674A (ko) 전자 장치, 서버 및 그 제어 방법
JP6037366B2 (ja) 暗号化したものに対応するユーザーを認証する方法及びバイオメトリックデータに対応するユーザーを認証するシステム
US7770018B2 (en) Setting up a security access system
AU2013101034B4 (en) Registration and authentication of computing devices using a digital skeleton key
US20060107068A1 (en) Method of generating access keys
WO2016061899A1 (zh) 指纹解密方法及装置
US20060107041A1 (en) Assembling a security access system
US20060107315A1 (en) System that uses access keys
US20060107309A1 (en) Using an access key
EP1846830B1 (en) Access keys
WO2013091532A1 (zh) 图像传感器以及支付认证方法
US10511438B2 (en) Method, system and apparatus using forward-secure cryptography for passcode verification
KR101520722B1 (ko) 사용자 인증 방법, 서버 및 사용자 단말
US20060107065A1 (en) System that generates access keys
US9313185B1 (en) Systems and methods for authenticating devices
US9712499B2 (en) Method and apparatus for cryptographic processing
CN113221128B (zh) 账号和密码的存储方法及注册管理系统
US8769301B2 (en) Product authentication based upon a hyperelliptic curve equation and a curve pairing function
US9386017B2 (en) Authentication device, system and method
US20230362136A1 (en) Secure Data Exchange Using Format-Preserving Encryption
GB2622177A (en) Authentication processing services for generating high-entropy cryptographic keys
JPWO2018043466A1 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
CN113904850A (zh) 基于区块链私钥keystore安全登录方法、生成方法、系统及电子设备

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right