KR101755995B1 - 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템 - Google Patents

동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템 Download PDF

Info

Publication number
KR101755995B1
KR101755995B1 KR1020160031397A KR20160031397A KR101755995B1 KR 101755995 B1 KR101755995 B1 KR 101755995B1 KR 1020160031397 A KR1020160031397 A KR 1020160031397A KR 20160031397 A KR20160031397 A KR 20160031397A KR 101755995 B1 KR101755995 B1 KR 101755995B1
Authority
KR
South Korea
Prior art keywords
user terminal
cipher text
matrix
user
cloud server
Prior art date
Application number
KR1020160031397A
Other languages
English (en)
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 KR1020160031397A priority Critical patent/KR101755995B1/ko
Application granted granted Critical
Publication of KR101755995B1 publication Critical patent/KR101755995B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • G06K9/00006
    • G06K9/00597

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Collating Specific Patterns (AREA)

Abstract

동형 암호를 이용한 원격 바이오 인증 방법 및 시스템이 개시된다. 원격 바이오 인증 방법은, 사용자 단말에서, 등록하고자 하는 아이디와 생체 정보를 포함하는 제1 이미지를 입력 받는 단계; 상기 사용자 단말에서, 상기 제1 이미지로부터 제1 특성벡터를 추출한 후 상기 제1 특성벡터를 이용하여 제1 유사도 측정 행렬을 계산하는 단계; 상기 사용자 단말에서, 동형 암호(homomorphic encryption)를 이용하여 상기 제1 유사도 측정 행렬을 암호화 한 제1 암호문을 생성하는 단계; 및 상기 사용자 단말에서, 상기 제1 암호문을 상기 아이디와 함께 클라우드 서버로 전송하여 상기 클라우드 서버 상에 등록하는 단계를 포함한다.

Description

동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템{METHOD AND SYSTEM FOR FEATURE VECTOR BASED REMOTE BIOMETRIC VERIFICATION USING HOMOMORPHIC ENCRYPTION}
본 발명의 실시예들은 신체 정보를 이용한 바이오 인증 기술에 관한 것이다.
사용자 정보를 내장하고 있는 시스템은 허가된 사용자의 접근만을 허용해야 하며, 접근이 허가된 적법한 사용자 인지를 판단하는 기술을 사용자 인증 기술이라 한다. 이러한 사용자 인증 기술은 인터넷 사이트의 로그인, 인터넷 뱅킹, 사용자 단말기 등에서 보안을 위해 널리 사용되고 있다.
또한, 오늘날 노트북, 스마트폰, 태블릿 PC 등의 사용자 단말기의 보급이 확산되면서 공공장소에서 이러한 단말기들을 이용한 인증 절차가 빈번하게 이뤄지고 있다.
이러한 장치들에서는 사용자 인증을 위해 패스워드(password) 및 개인 식별 번호(Personal Identification Number: 이하 PIN)를 입력하는 방식이 보편적으로 사용되고 있다. 하지만 이러한 장치들에서 사용되고 있는 패스워드나 PIN은 사용자가 편의를 위하여 기억하기 쉬운 특정 패턴을 사용하거나 짧은 패스워드나 PIN을 사용하기 때문에 공격, 특히 엿보기 공격이나 카메라가 촬영하는 공격에 취약하다.
이러한 패스워드나 PIN 입력을 이용한 사용자 인증 방법의 취약성에 대한 대안으로는 지문이나 홍채 등 신체 정보를 이용한 바이오 인증, 카드나 동글 등 하드웨어를 이용한 소유 기반 인증 등이 이용되고 있다.
다양한 형태의 공격으로부터 바이오 데이터를 보호할 수 있는 원격 바이오 인증 방법 및 시스템을 제공한다.
동형 암호를 이용하여 바이오 데이터를 원격에서 관리할 수 있는 원격 바이오 인증 방법 및 시스템을 제공한다.
사용자 단말에서, 등록하고자 하는 아이디와 생체 정보를 포함하는 제1 이미지를 입력 받는 단계; 상기 사용자 단말에서, 상기 제1 이미지로부터 제1 특성벡터를 추출한 후 상기 제1 특성벡터를 이용하여 제1 유사도 측정 행렬을 계산하는 단계; 상기 사용자 단말에서, 동형 암호(homomorphic encryption)를 이용하여 상기 제1 유사도 측정 행렬을 암호화 한 제1 암호문을 생성하는 단계; 및 상기 사용자 단말에서, 상기 제1 암호문을 상기 아이디와 함께 클라우드 서버로 전송하여 상기 클라우드 서버 상에 등록하는 단계를 포함하는 원격 바이오 인증 방법을 제공한다.
일 측면에 따르면, 상기 제1 유사도 측정 행렬을 계산하는 단계는, 상기 제1 특성벡터를 직렬화(serialization)하여 제1 행렬을 만들고 상기 제1 행렬과 미리 정해진 제2 행렬을 곱함으로써 상기 제1 유사도 측정 행렬을 계산하는 것을 특징으로 한다.
다른 측면에 따르면, 상기 원격 바이오 인증 방법은, 상기 사용자 단말에서, 상기 아이디에 대한 인증 요청으로서 상기 아이디와 함께 생체 정보를 포함하는 제2 이미지가 입력되면 상기 제2 이미지로부터 제2 특성벡터를 추출한 후 상기 제2 특성벡터를 이용하여 제2 유사도 측정 행렬을 계산하는 단계; 상기 사용자 단말에서, 동형 암호를 이용하여 상기 제2 유사도 측정 행렬을 암호화 한 제2 암호문을 생성하는 단계; 상기 사용자 단말에서, 상기 아이디와 상기 제2 암호문을 상기 클라우드 서버로 전송하여 비교 연산을 요청하는 단계; 상기 사용자 단말에서, 상기 클라우드 서버로부터 상기 아이디에 대한 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과를 수신하는 단계; 및 상기 사용자 단말에서, 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과에 따라 사용자 인증을 처리하는 단계를 더 포함한다.
또 다른 측면에 따르면, 상기 원격 바이오 인증 방법은, 상기 사용자 단말에서, 아이디 등록 요청에 따라 동형 암호화 키(homomorphic encryption key)를 생성하여 상기 사용자 단말 상에 저장하는 단계를 더 포함하고, 상기 사용자 인증을 처리하는 단계는, 상기 동형 암호화 키를 이용하여 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과에 대한 해독 연산(decryption)을 수행한 후 상기 해독 연산의 결과에 따라 상기 아이디의 로그인을 허용하는 것을 특징으로 한다.
사용자 단말에서, 아이디 등록 요청에 따라 동형 암호화 키(homomorphic encryption key)를 생성하여 저장하는 단계; 상기 사용자 단말에서, 등록하고자 하는 아이디와 생체 정보를 포함하는 제1 이미지가 입력되면 상기 제1 이미지로부터 제1 특성벡터를 추출하는 단계; 상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제1 특성벡터를 암호화 한 제1 암호문을 생성하는 단계; 상기 사용자 단말에서, 상기 제1 암호문을 상기 아이디와 함께 클라우드 서버로 전송하여 상기 클라우드 서버 상에 등록하는 단계; 상기 사용자 단말에서, 상기 아이디에 대한 인증 요청으로서 상기 아이디와 함께 생체 정보를 포함하는 제2 이미지가 입력되면 상기 제2 이미지로부터 제2 특성벡터를 추출하는 단계; 상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제2 특성벡터를 암호화 한 제2 암호문을 생성하는 단계; 상기 사용자 단말에서, 상기 아이디와 상기 제2 암호문을 상기 클라우드 서버로 전송하여 비교 연산을 요청하는 단계; 상기 사용자 단말에서, 상기 클라우드 서버로부터 상기 아이디에 대한 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과를 수신하는 단계; 상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과에 대한 해독 연산(decryption)을 수행하는 단계; 및 상기 사용자 단말에서, 상기 해독 연산의 결과에 따라 상기 아이디를 이용한 사용자 인증을 처리하는 단계를 포함하는 원격 바이오 인증 방법을 제공한다.
본 발명의 실시예에 따르면, 바이오 데이터를 원격 서버에 저장하는 클라우드 형태로 관리하고, 특히 동형 암호를 이용하여 암호화 된 형태로 바이오 데이터를 원격 서버에 저장함으로써 바이오 데이터의 유출을 보다 근본적으로 차단하여, 원격 서버를 완전히 신뢰할 수 없는 상황에서도 외부 공격에 대한 저항성과 안전성을 향상시킬 수 있다.
도 1은 본 발명의 일 실시예에 있어서, 사용자 인증 환경의 예를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 있어서, 원격 관리 서버의 내부 구성을 설명하기 위한 블록도이다.
도 3은 본 발명의 일 실시예에 있어서, 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다.
도 4는 본 발명의 일 실시예에 있어서, 바이오 데이터에 대한 특성벡터를 설명하기 위한 예시 도면이다.
도 5는 본 발명의 일 실시예에 있어서, 바이오 데이터의 원격 관리를 통한 사용자 등록 과정을 도시한 순서도이다.
도 6은 본 발명의 일 실시예에 있어서, 바이오 데이터의 원격 관리를 통한 사용자 인증 과정을 도시한 순서도이다.
도 7은 본 발명의 일 실시예에 있어서, 곱셈이 충분히 가능한 동형 암호를 사용할 경우의 바이오 데이터의 원격 관리를 통한 사용자 등록 과정을 도시한 순서도이다.
도 8은 본 발명의 일 실시예에 있어서, 곱셈이 충분히 가능한 동형 암호를 사용할 경우의 바이오 데이터의 원격 관리를 통한 사용자 인증 과정을 도시한 순서도이다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
본 실시예들은 신체 정보를 이용한 바이오 인증 기술에 관한 것으로, 상세하게는 사용자 인증을 위한 바이오 데이터를 원격에서 관리할 수 있는 원격 바이오 인증 방법 및 시스템에 관한 것이다.
본 명세서에서, '바이오 데이터'는 사용자 인증을 위해 입력 받는 생체 정보로서, 지문이나 홍채, 얼굴, 장문(손바닥), 손 모양, 음성, 필체 등을 의미할 수 있으나, 이에 한정되는 것은 아니며 사용자를 식별하는데 사용되는 모든 형태의 정보로 쉽게 확장이 가능하다. 이하에서는 얼굴을 바이오 데이터의 대표적인 예로 하여 설명하기로 한다.
사용자 인증은 특정 시스템(컴퓨터, 웹 서버, 스마트폰 등)에 접근을 시도하는 사용자가 접근 권한이 있는지를 확인하여 접근을 허용하는 일련의 절차로서, 얼굴 인식을 포함한 바이오 인증 기술을 이용할 수 있다.
그러나 현재까지의 바이오 인증은 안전성 측면에서 한 가지 문제점을 가지고 있다. 지식 기반 인증에서 패스워드 유출 시에는 패스워드를 교체하면 되고, 소유 기반 인증에서도 인증용 하드웨어의 도난 또는 분실 시에는 새로운 하드웨어로 대체하면 되지만, 바이오 데이터 유출 시에는 적절한 대응 방안이 없기 때문이다. 신체적 특징에 기반을 둔 바이오 데이터의 특성상 유출 시에는 해당 사용자의 바이오 인증 자체를 무력화시킬 수 있다. 따라서, 바이오 인증에서는 얼굴, 지문, 홍채 등 바이오 데이터 원본을 시스템에서 안전하게 관리하는 것이 다른 종류의 인증에 비해 더 중요한 조건이다.
이러한 문제에 대한 대안으로, 바이오 데이터를 로컬 시스템보다는 좀더 안전하게 관리되는 원격 서버에 저장하는 클라우드 형태의 개선 방안을 고려할 수 있다. 다만, 원격 클라우드 서버가 바이오 데이터를 무단으로 활용할 가능성을 배제할 수 없으므로 클라우드 서버에 바이오 데이터를 원본(예: 얼굴이나 홍채의 비트맵 이미지)이 아닌 변환된 형태로 저장하도록 하여야 한다. 이 경우 원격 클라우드 서버가 데이터를 악용하려고 시도하여도 해당 데이터는 바이오 데이터 원본이 아닌 변환된 형태이므로 유출 시 쓸모가 없게 된다.
본 발명은 동형 암호(homomorphic encryption) 기술을 이용하여 상기 문제를 해결하는 방안을 제시한다. 본 발명에 의하면, 원격 클라우드 서버에 바이오 데이터를 암호화된 형태로 저장함으로써 해당 서버 측에서 바이오 데이터 원본에 대한 정보를 알 수 없으며, 암호화된 상태에서의 바이오 데이터 간 비교 서비스를 제공할 수 있다.
도 1은 본 발명의 일 실시예에 있어서, 사용자 인증 환경의 예를 설명하기 위한 도면이다. 도 1은 사용자 단말(101) 및 원격 관리 서버(100)를 나타내고 있다. 도 1에서 화살표는 구성 요소 간에 유/무선 네트워크(10)를 이용하여 데이터가 송수신될 수 있음을 의미한다.
사용자 단말(101)은 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하도록 구성된 하나 이상의 프로세스들을 실행할 수 있다. 사용자 단말(101)은 원격 관리 서버(100)에 접속 가능한 모든 단말 장치를 의미할 수 있다.
사용자 단말(101)의 예로는 스마트폰(smart phone), 태블릿(tablet), 웨어러블 컴퓨터(wearable computer), PC(personal computer), 노트북 컴퓨터(laptop computer), 랩탑 컴퓨터(laptop computer) 등을 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다.
사용자 단말(101)은 네트워크(10)(예를 들어, 인터넷 혹은 로컬 영역 네트워크 등)에 직접적으로 혹은 간접적으로 결합될 수 있다. 예를 들어, 개인용 컴퓨터와 노트북 컴퓨터는 유선 네트워크 연결을 통해 네트워크(10)에 직접적으로 결합될 수 있다. 랩탑 컴퓨터는 랩탑 컴퓨터와 무선 액세스 포인트(Wireless Access Point)(즉, WAP) 간에 확립된 무선 통신 채널을 통해 네트워크(10)에 무선으로 결합될 수 있다. 스마트폰은 스마트폰과 셀룰러 네트워크/브리지 간에 확립된 무선 통신 채널을 통해 네트워크(10)에 무선으로 결합될 수 있다. 이때, 네트워크(10)는 하나 이상의 2차 네트워크들(미도시)과 통신할 수 있으며, 2차 네트워크들의 예로는 로컬 영역 네트워크(Local Area Network), 와이드 영역 네트워크(Wide Area Network), 또는 인트라넷(intranet)을 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다.
사용자 단말(101)은 상기에서 설명한 네트워크(10)를 통해 원격 관리 서버(100)와 서로 인터페이스 할 수 있다.
원격 관리 서버(100)는 원격의 클라우드 환경에서 바이오 데이터를 관리하기 위한 원격 클라우드 서버로서, 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하도록 구성된 하나 이상의 프로세스들을 실행할 수 있다. 이때, 원격 관리 서버(100)는 사용자 별 아이디와 바이오 데이터를 저장 및 유지하는 관리 서버 역할을 할 수 있다. 이때, 바이오 데이터는 동형 암호를 이용하여 암호화 된 형태로 저장될 수 있다.
원격 관리 서버(100)는 서버 컴퓨터에 해당되는 것으로, 서버 컴퓨터의 예로는 서버 컴퓨팅 디바이스, 개인용 컴퓨터, 서버 컴퓨터, 일련의 서버 컴퓨터들, 미니 컴퓨터, 및/또는 메인프레임 컴퓨터를 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다. 서버 컴퓨터는 분산형 시스템일 수 있고, 그리고 서버 컴퓨터의 동작들은 하나 이상의 프로세서들 상에서 동시에 그리고/또는 순차적으로 실행될 수 있다.
도 2는 본 발명의 일 실시예에 있어서, 원격 관리 서버의 내부 구성을 설명하기 위한 블록도이다.
도 2에 도시한 바와 같이, 본 실시예에 따른 원격 관리 서버(100)는 프로세서(210), 버스(220), 네트워크 인터페이스(230), 메모리(240) 및 데이터베이스(250)를 포함할 수 있다. 메모리(240)는 운영체제(241) 및 바이오 데이터 관리 루틴(242)를 포함할 수 있다. 다른 실시예들에서 원격 관리 서버(100)는 도 2의 구성요소들보다 더 많은 구성요소들을 포함할 수도 있다.
메모리(240)는 컴퓨터에서 판독 가능한 기록 매체로서, RAM(random access memory), ROM(read only memory) 및 디스크 드라이브와 같은 비소멸성 대용량 기록장치(permanent mass storage device)를 포함할 수 있다. 또한, 메모리(240)에는 운영체제(241)와 바이오 데이터 관리 루틴(242)을 위한 프로그램 코드가 저장될 수 있다. 이러한 소프트웨어 구성요소들은 드라이브 메커니즘(drive mechanism, 미도시)을 이용하여 메모리(240)와는 별도의 컴퓨터에서 판독 가능한 기록 매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록 매체는 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록 매체(미도시)를 포함할 수 있다. 다른 실시예에서 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록 매체가 아닌 네트워크 인터페이스(230)를 통해 메모리(240)에 로딩될 수도 있다.
버스(220)는 원격 관리 서버(100)의 구성요소들간의 통신 및 데이터 전송을 가능하게 할 수 있다. 버스(220)는 고속 시리얼 버스(high-speed serial bus), 병렬 버스(parallel bus), SAN(Storage Area Network) 및/또는 다른 적절한 통신 기술을 이용하여 구성될 수 있다.
네트워크 인터페이스(230)는 원격 관리 서버(100)를 컴퓨터 네트워크에 연결하기 위한 컴퓨터 하드웨어 구성요소일 수 있다. 네트워크 인터페이스(230)는 원격 관리 서버(100)를 무선 또는 유선 커넥션을 통해 컴퓨터 네트워크에 연결시킬 수 있다.
데이터베이스(250)는 바이오 데이터를 저장 및 유지하는 역할을 한다. 이때, 데이터베이스(250)는 사용자 별로 (아이디, 바이오 데이터) 쌍을 저장하며, 특히 바이오 데이터는 동형 암호를 이용하여 암호화 된 형태로 저장될 수 있다.
프로세서(210)는 기본적인 산술, 로직 및 원격 관리 서버(100)의 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(240) 또는 네트워크 인터페이스(230)에 의해, 그리고 버스(220)를 통해 프로세서(210)로 제공될 수 있다. 프로세서(210)는 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하기 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(240)와 같은 기록 장치에 저장될 수 있다.
도 3은 본 발명의 일 실시예에 있어서, 컴퓨터 시스템의 내부 구성의 일례를 설명하기 위한 블록도이다. 컴퓨터 시스템(300)은 적어도 하나의 프로세서(processor)(310), 메모리(memory)(320), 주변장치 인터페이스(peripheral interface)(330), 입/출력 서브시스템(I/O subsystem)(340), 전력 회로(350) 및 통신 회로(360)를 적어도 포함할 수 있다. 이때, 컴퓨터 시스템(300)은 사용자 단말(101)에 해당될 수 있다.
메모리(320)는, 일례로 고속 랜덤 액세스 메모리(high-speed random access memory), 자기 디스크, 에스램(SRAM), 디램(DRAM), 롬(ROM), 플래시 메모리 또는 비휘발성 메모리를 포함할 수 있다. 메모리(320)는 컴퓨터 시스템(300)의 동작에 필요한 소프트웨어 모듈, 명령어 집합 또는 그밖에 다양한 데이터를 포함할 수 있다. 이때, 프로세서(310)나 주변장치 인터페이스(330) 등의 다른 컴포넌트에서 메모리(320)에 액세스하는 것은 프로세서(310)에 의해 제어될 수 있다.
주변장치 인터페이스(330)는 컴퓨터 시스템(300)의 입력 및/또는 출력 주변장치를 프로세서(310) 및 메모리(320)에 결합시킬 수 있다. 프로세서(310)는 메모리(320)에 저장된 소프트웨어 모듈 또는 명령어 집합을 실행하여 컴퓨터 시스템(300)을 위한 다양한 기능을 수행하고 데이터를 처리할 수 있다.
입/출력 서브시스템(340)은 다양한 입/출력 주변장치들을 주변장치 인터페이스(330)에 결합시킬 수 있다. 예를 들어, 입/출력 서브시스템(340)은 모니터나 키보드, 마우스, 프린터 또는 필요에 따라 터치스크린이나 센서 등의 주변장치를 주변장치 인터페이스(330)에 결합시키기 위한 컨트롤러를 포함할 수 있다. 특히, 본 발명에 의하면 주변 장치는 바이오 인식을 위한 바이오 인식 센서를 포함할 수 있다. 다른 측면에 따르면, 입/출력 주변장치들은 입/출력 서브시스템(340)을 거치지 않고 주변장치 인터페이스(330)에 결합될 수도 있다.
전력 회로(350)는 단말기의 컴포넌트의 전부 또는 일부로 전력을 공급할 수 있다. 예를 들어 전력 회로(350)는 전력 관리 시스템, 배터리나 교류(AC) 등과 같은 하나 이상의 전원, 충전 시스템, 전력 실패 감지 회로(power failure detection circuit), 전력 변환기나 인버터, 전력 상태 표시자 또는 전력 생성, 관리, 분배를 위한 임의의 다른 컴포넌트들을 포함할 수 있다.
통신 회로(360)는 적어도 하나의 외부 포트를 이용하여 다른 컴퓨터 시스템과 통신을 가능하게 할 수 있다. 또는 상술한 바와 같이 필요에 따라 통신 회로(360)는 RF 회로를 포함하여 전자기 신호(electromagnetic signal)라고도 알려진 RF 신호를 송수신함으로써, 다른 컴퓨터 시스템과 통신을 가능하게 할 수도 있다.
이러한 도 3의 실시예는, 컴퓨터 시스템(300)의 일례일 뿐이고, 컴퓨터 시스템(300)은 도 3에 도시된 일부 컴포넌트가 생략되거나, 도 3에 도시되지 않은 추가의 컴포넌트를 더 구비하거나, 2개 이상의 컴포넌트를 결합시키는 구성 또는 배치를 가질 수 있다. 예를 들어, 모바일 환경의 통신 단말을 위한 컴퓨터 시스템은 도 3에 도시된 컴포넌트들 외에도, 터치스크린이나 센서 등을 더 포함할 수도 있으며, 통신 회로(360)에 다양한 통신 방식(WiFi, 3G, LTE, Bluetooth, NFC, Zigbee 등)의 RF 통신을 위한 회로가 포함될 수도 있다. 컴퓨터 시스템(300)에 포함 가능한 컴포넌트들은 하나 이상의 신호 처리 또는 어플리케이션에 특화된 집적 회로를 포함하는 하드웨어, 소프트웨어, 또는 하드웨어 및 소프트웨어 양자의 조합으로 구현될 수 있다.
이하에서는 본 발명에 따른 바이오 데이터를 기반으로 한 사용자 인증 절차의 구체적인 실시예를 설명하기로 한다.
동형 암호란 평문(plaintext)에 특정 연산을 수행하여 암호화한 결과와, 평문에 바로 암호화를 한 후 암호문(ciphertext) 상에서 같은 연산을 적용한 결과가 서로 같은 암호이다.
예를 들어, 덧셈에 대한 동형 암호는 평문 m1, m2의 암호화 연산 E 및 복호화 연산 D에 대해 D(E(m1+m2))=D(E(m1)+E(m2))를 만족하는 암호이며, 곱셈에 대한 동형 암호는 D(E(m1×m2))=D(E(m1)×E(m2))를 만족하는 암호이다.
본 발명에서는 평문 m1, m2가 정수 또는 실수인 경우를 고려하며, 덧셈에 대해서는 항상 동형의 성질을 유지하는 동형 암호, 즉 항상 D(E(m1+m2))=D(E(m1)+E(m2))를 만족하는 동형 암호를 제 1형 동형암호(Type-1 Homomorphic Encryption: 이하 HE1)라 정의하기로 한다. 또한, HE1의 성질을 유지하면서도 곱셈에 대해서 추가로 동형의 성질을 유지하는 동형 암호, 즉 D(E(m1×m2))=D(E(m1)×E(m2))도 성립하는 암호를 제 2형 동형암호(Type-2 Homomorphic Encryption: 이하 HE2)라 정의한다. HE1의 한 사례로는 1999년 Paillier가 EUROCRYPT에서 제안한 동형 암호(Pascal Paillier: Public-Key Cryptosystems Based on Composite Degree Residuosity Classes. EUROCRYPT 1999: 223-238)가 있으며, HE2의 사례로는 2005년 Boneh 등이 TCC 학술대회에서 제안한 동형 암호(Dan Boneh, Eu-Jin Goh, Kobbi Nissim: Evaluating 2-DNF Formulas on Ciphertexts. TCC 2005: 325-341)와 2015년 Catalano 등이 ACM-CCS 학술대회에서 제안한 동형 암호(Dario Catalano, Dario Fiore: Using Linearly-Homomorphic Encryption to Evaluate Degree-2 Functions on Encrypted Data. ACM Conference on Computer and Communications Security 2015: 1518-1529) 등이 있다.
이하에서는 동형 암호를 이용하여 안전하게 바이오 인식 기반 인증을 수행하는 방법을 설명한다. 설명의 편의상 얼굴 인식을 이용한 인증만을 설명하나, 지문이나 홍채, 장문(손바닥), 손 모양, 음성, 필체 등 기타 다른 바이오 인식 기반 인증에도 동일하게 적용할 수 있다.
일반적으로 얼굴 인식 기반 인증은 사용자 등록 단계와 사용자 인증 단계로 구성된다.
먼저, 사용자 등록 단계는 다음과 같은 과정으로 이루어진다.
1. 사용자 단말(101)은 사용자 등록을 위해 사용자로부터 아이디(ID)를 입력 받고 사용자가 바이오 데이터의 등록을 위해 카메라로 얼굴을 촬영하면 얼굴 원본 이미지를 획득할 수 있다. 예를 들어, 얼굴 원본 이미지는 도 4의 (a)와 같이 비트맵 이미지로 생성될 수 있다.
2. 사용자 단말(101)은 얼굴 원본 이미지의 영역을 구분하여 도 4의 (b)와 같이 영역 구분된 이미지를 얻을 수 있다. 사용자 단말(101)은 메모리 상에 저장된 비트맵 이미지(도 4의 (a)) 또는 영역 구분된 이미지 (도 4의 (b))로부터 특성벡터를 추출함으로써 도 4의 (c)와 같은 특성 벡터를 얻을 수 있다. 이 때, 특성 벡터의 원소의 개수가 n이라면 사용자 단말(101)은 추출된 특성벡터를 직렬화(serialization)하여 (n×1) 행렬로 만들고, 미리 정해진 (m×n) 변환 행렬을 곱하여 얼굴 기반 바이오 인증에서 유사도 비교 연산에 쓰일 (m×1) 행렬을 계산하고 이를 M이라 한다. (이를 "유사도 측정 행렬"이라 부르기로 한다.)
3. 사용자 단말(101)은 사용자로부터 입력된 아이디(ID)와 상기 2. 과정에서 생성된 행렬 M을 (ID, M) 쌍으로 사용자 단말(101) 내의 저장소에 저장한다.
다음으로, 사용자 인증 단계는 아래와 같다.
1. 사용자 단말(101)은 사용자로부터 아이디(ID)를 입력 받고, 사용자가 인증을 위하여 얼굴을 카메라로 촬영하면 얼굴 원본 이미지를 얻어 비트맵을 생성한다.
2. 사용자 단말(101)은 메모리 상의 얼굴 비트맵을 이용하여 n차원 특성벡터를 추출한다.
3. 사용자 단말(101)은 (m×n) 변환 행렬과 추출된 특성벡터를 곱하여, 유사도 측정 행렬 M'을 계산한다.
4. 사용자 단말(101)은 저장소에서 사용자가 입력한 아이디(ID)에 해당하는 순서쌍 (ID, M)을 찾아 행렬 M을 추출한다.
5. 사용자 단말(101)은 저장소에서 추출한 행렬 M과 사용자 인증 요청 과정에서 생성한 행렬 M'의 유사도를 계산하여, 그 결과가 정해진 기준 값(threshold score) 이상이면 해당 아이디(ID)의 로그인을 허용하며, 비교 점수가 기준 값 미만이면 로그인을 거부한다.
이때, 유사도는 두 행렬 M과 M'을 구성하는 원소들 간의 거리를 나타내는 지표로, 본 발명의 한 실시예에 따르면 유사도란 두 행렬의 유클리드 거리(Euclidean distance)나 맨하탄 거리(Manhattan distance)가 될 수 있다. 카메라를 이용한 원본 이미지 획득의 특성 상 화질, 조명의 색이나 조도, 렌즈의 이물질 등 주변 환경 변화, 얼굴 일부 영역이 카메라 찍히지 않음에 의한 특정 이미지 영역 손실, 촬영된 얼굴의 각도 등에 의해 같은 얼굴이라도 얼굴 이미지 획득 시마다 이미지 왜곡 및 손상 등 약간의 오차가 발생할 수 있는데, 이를 감안하여 두 행렬 M과 M' 간의 유사도가 100% 일치하지 않더라도 기준 값을 넘으면 같은 얼굴로 간주할 수 있다. 한편, 전혀 다른 얼굴이라도 우연히 행렬의 유사도가 높을 수 있으므로 기준 값을 너무 낮게 설정할 경우 타 사용자의 얼굴을 맞는 것으로 승인하는 오류가 생길 수 있다. 따라서, 유사도의 기준 값은 정상 사용자의 얼굴 인식 오차를 감내하면서 타 사용자는 인식하지 않도록 하는 적절한 수준에서 결정하게 된다.
일반적인 얼굴 인식 기반 인증 방식의 사용자 등록 단계에서 추출된 특성벡터 또는 행렬 M을 로컬 시스템인 사용자 단말(101) 내에 저장하므로 만약 시스템이 해킹 등 외부 공격에 노출될 경우 이들이 유출될 수 있다. 공격자는 특성벡터를 재구성하여 인증에 필요한 얼굴과 유사한 이미지를 획득할 수 있으며, 이렇게 획득된 이미지 출력하여 가짜 얼굴 이미지를 만들 수 있다. 이는 사용자의 얼굴이 사용되는 스마트폰, 출입구 개폐 장치 등 다양한 곳에 악용됨으로써 피해를 양산할 수 있다.
본 발명에서는 로컬 시스템에 대한 해킹 시 피해를 최소화하기 위해 특성벡터 또는 유사도 측정 행렬 M을 클라우드 서버인 원격 관리 서버(100)에 저장하며, 원격 관리 서버(100)에서 특성벡터나 행렬 M을 악용하는 것을 방지하기 위해 특성벡터나 행렬 M에 동형 암호를 적용하여 암호문만을 저장하도록 한다.
본 발명의 일 실시예에 따른 얼굴 인식 기반 인증은 사용자 등록과 사용자 인증 과정으로 구성된다.
먼저, 도 5를 참조하여 사용자 등록 단계의 구체적인 과정을 설명하기로 한다.
1. 로컬 시스템인 사용자 단말(101)은 얼굴 이미지 등록 과정에서 동형 암호를 위한 키 K를 생성한 후 생성된 동형 암호화 키 K를 사용자 단말(101) 상의 저장소에 저장한다(S51).
2. 사용자 단말(101)은 사용자로부터 아이디(ID)를 입력 받고 사용자가 등록을 위해 카메라로 얼굴을 촬영하여 얼굴 이미지를 획득한다(S52). 예를 들어, 얼굴 이미지는 도 4의 (a)와 같이 비트맵 이미지로 생성될 수 있다.
3. 사용자 단말(101)은 얼굴 이미지로부터 특성벡터를 추출하고 변환행렬과의 곱셈 연산을 통해 유사도 측정 행렬 M을 생성한다(S53).
4. 사용자 단말(101)은 행렬 M의 각 원소 ei를 구성하는 m개의 숫자를 각각 동형 암호에 의해 암호화하여 암호문 ct = (E(e1), …, E(em))을 생성한다(S54).
5. 사용자 단말(101)은 사용자로부터 입력된 아이디(ID)와 단계(S54)에서 동형 암호를 이용하여 암호화 된 암호문 ct를 사용자의 (아이디, 암호문) 쌍으로 구성하여 원격 관리 서버(100)로 전송한다(S55).
6. 원격 관리 서버(100)는 사용자 단말(101)로부터 수신된 사용자의 (아이디, 암호문) 쌍인 (ID, ct)를 데이터베이스에 저장함으로써 사용자 인증 정보를 등록한다(S56).
도 6을 참조하여, 사용자 인증 단계의 구체적인 과정을 설명하기로 한다. 이하는, 아이디가 ID인 사용자가 자신의 얼굴을 입력하고 인증을 수행하는 단계를 설명한 것이다.
1. 사용자 인증을 위해 사용자는 사용자 단말(101)에 아이디(ID)를 입력하고 카메라로 얼굴을 촬영하여 얼굴 이미지(비트맵 이미지)를 획득한다(S61).
2. 사용자 단말(101)은 얼굴 이미지로부터 특성벡터를 추출하고 변환행렬과의 곱셈 연산을 통해 유사도 측정 행렬 M'을 생성한다(S62).
3. 사용자 단말(101)은 행렬 M'의 각 원소 e'i를 구성하는 m개의 숫자를 각각 동형 암호에 의해 암호화하여 암호문 ct' = (E(e'1), …, E(e'm))을 생성한다(S63).
4. 사용자 단말(101)은 사용자로부터 입력된 아이디(ID)와 단계(S63)에서 동형 암호를 이용하여 암호화 된 암호문 ct'를 (아이디, 암호문) 쌍으로 구성하여 원격 관리 서버(100)로 전송한다(S64).
5. 원격 관리 서버(100)는 사용자 단말(101)로부터 사용자의 (아이디, 암호문) 쌍인 (ID, ct')가 수신되면 수신된 아이디 ID에 대해 이전에 저장한 (ID, ct)를 데이터베이스로부터 추출한다(S65).
6. 원격 관리 서버(100)는 아이디 ID에 대해 사용자 단말(101)로부터 수신된 암호문 ct'와 데이터베이스로부터 추출된 암호문 ct를 이용하여 두 암호문 간의 비교 연산(유사도 계산 연산)을 수행한다(S66).
7. 원격 관리 서버(100)는 두 암호문 간의 비교 연산 결과(암호화된 유사도 값)를 사용자 단말(101)로 전송한다(S67).
8. 사용자 단말(101)은 원격 관리 서버(100)로부터 암호문 비교 연산 결과가 수신되면 얼굴 등록 과정에서 생성된 동형 암호화 키 K를 이용하여 암호문 비교 연산 결과에 대한 해독 연산(decryption)을 수행한다(S68).
9. 사용자 단말(101)은 해독 연산 결과에 따라 사용자 인증을 처리할 수 있다(S69). 다시 말해, 사용자 단말(101)은 해독 연산 결과 값이 미리 정해진 기준 값 이상이면 사용자의 로그인을 허용하고, 기준 값 미만이면 사용자의 로그인을 거부할 수 있다.
본 발명의 일 실시예에 따르면 위의 단계 S66의 연산 결과는 암호화된 유사도 값으로, 단계 S53에서 계산되는 행렬 M과 단계 S63에서 계산되는 행렬 M' 간의 유사도 값의 암호문이 될 수 있다. 이는 M의 암호문인 ct와 M'의 암호문인 ct'에 유사도 계산 연산을 하는 것이, M과 M'을 평문 상태에서 유사도 계산 연산을 수행한 뒤 암호화하는 것과 동일하다는 동형 암호의 성질 때문이다.
유사도를 판단하기 위해서는 맨하탄 거리나 유클리드 거리 등을 사용할 수 있는데, 맨하탄 거리일 경우는 동형암호로 HE1을 이용 가능하며, 유클리드 거리일 경우는 HE2를 이용 가능하다. 맨하탄 거리나 유클리드 거리 이외의 다른 거리 기준을 이용하는 것도 가능하다.
본 발명의 일 실시예에 따른 얼굴 인식 기반 인증은 사용되는 동형 암호가 곱셈 연산을 충분히 지원하는 경우에는 다음과 같은 사용자 등록과 사용자 인증 방법으로 구성될 수 있다.
먼저, 도 7을 참조하여 사용자 등록 단계의 구체적인 과정을 설명하기로 한다.
1. 로컬 시스템인 사용자 단말(101)은 얼굴 이미지 등록 과정에서 동형 암호를 위한 키 K를 생성한 후 생성된 동형 암호화 키 K를 사용자 단말(101) 상의 저장소에 저장한다(S71).
2. 사용자 단말(101)은 사용자로부터 아이디(ID)를 입력 받고 사용자가 등록을 위해 카메라로 얼굴을 촬영하여 얼굴 이미지를 획득한다(S72). 예를 들어, 얼굴 이미지는 도 4의 (a)와 같이 비트맵 이미지로 생성될 수 있다.
3. 사용자 단말(101)은 얼굴 이미지로부터 n차원 특성벡터를 추출한다(S73).
4. 사용자 단말(101)은 3에서 추출된 특성벡터의 각 원소 e''i를 구성하는 n개의 숫자를 각각 동형 암호에 의해 암호화하여 암호문 ct'' = (E(e''1), …, E(e''n))을 생성한다(S74).
5. 사용자 단말(101)은 사용자로부터 입력된 아이디(ID)와 단계(S74)에서 동형 암호를 이용하여 암호화 된 암호문 ct''를 사용자의 (아이디, 암호문) 쌍으로 구성하여 원격 관리 서버(100)로 전송한다(S75).
6. 원격 관리 서버(100)는 사용자 단말(101)로부터 수신된 사용자의 (아이디, 암호문) 쌍 중 특성벡터의 암호문인 ct''와 변환 행렬을 암호문 상태로 행렬곱셈을 수행하여 암호화된 유사도 비교 행렬 EM을 계산한다(S76).
7. 원격 관리 서버(100)는 (아이디, 계산된 행렬) 쌍인 (ID, EM)을 데이터베이스에 저장함으로써 사용자 인증 정보를 등록한다(S77).
도 8을 참조하여, 사용자 인증 단계의 구체적인 과정을 설명하기로 한다. 이하는, 아이디가 ID인 사용자가 자신의 얼굴을 입력하고 인증을 수행하는 단계를 설명한 것이다.
1. 사용자 단말(101)은 사용자 인증을 위해 사용자가 아이디(ID)를 입력하고 카메라로 얼굴을 촬영하여 얼굴 이미지(비트맵 이미지)를 획득한다(S81).
2. 사용자 단말(101)은 얼굴 이미지로부터 특성벡터를 추출한다(S82).
3. 사용자 단말(101)은 2에서 추출된 특성벡터의 각 원소 e'''i를 구성하는 n개의 숫자를 각각 동형 암호에 의해 암호화하여 암호문 ct''' = (E(e'''1), …, E(e'''n))을 생성한다(S83).
4. 사용자 단말(101)은 사용자로부터 입력된 아이디(ID)와 단계(S83)에서 동형 암호를 이용하여 암호화 된 암호문 ct'''를 (아이디, 암호문) 쌍으로 구성하여 원격 관리 서버(100)로 전송한다(S84).
5. 원격 관리 서버(100)는 사용자 단말(101)로부터 사용자의 (아이디, 암호문) 쌍 중 특성벡터의 암호문인 ct'''와 변환행렬을 암호문 상태로 행렬곱셈을 수행하여 암호화된 행렬 EM'을 계산한다(S85).
6. 원격 관리 서버(100)는 (아이디, 계산된 행렬) 쌍인 (ID, EM)을 데이터베이스로부터 추출한다(S86).
7. 원격 관리 서버(100)는 아이디 ID에 대해 사용자 단말(101)로부터 수신된 암호문 EM'와 데이터베이스로부터 추출된 암호문 EM을 이용하여 두 암호문 간의 비교 연산(유사도 계산 연산)을 수행한다(S87).
8. 원격 관리 서버(100)는 두 암호문 간의 비교 연산 결과(암호화된 유사도 값)를 사용자 단말(101)로 전송한다(S88).
9. 사용자 단말(101)은 원격 관리 서버(100)로부터 암호문 비교 연산 결과가 수신되면 얼굴 등록 과정에서 생성된 동형 암호화 키 K를 이용하여 암호문 비교 연산 결과에 대한 해독 연산(decryption)을 수행한다(S89).
10. 사용자 단말(101)은 해독 연산 결과에 따라 사용자 인증을 처리할 수 있다(S810). 다시 말해, 사용자 단말(101)은 해독 연산 결과 값이 미리 정해진 기준 값 이상이면 사용자의 로그인을 허용하고, 기준 값 미만이면 사용자의 로그인을 거부할 수 있다.
본 발명의 일 실시예에 따르면 위의 단계 7의 비교 연산 결과는 암호화된 유사도 값으로, 단계 S76의 암호화된 행렬 EM의 평문과 단계 S85에서의 암호화된 행렬 EM'의 평문 간의 맨하탄 거리나 유클리드 거리의 암호문이 될 수 있다. 도 7과 8은 동형 암호가 곱셈 연산을 충분히 지원하는 경우에 대한 설명이므로, 충분한 수의 곱셈 연산이 가능한 HE2를 이용하여야 한다.
본 발명에 따른 얼굴 인식 기반 사용자 인증 방법은 다음과 같은 성질을 만족한다.
1. 정상적인 사용자 인증 기능 제공: 만약 사용자가 정상적인 얼굴 이미지를 입력하였다면 사용자 인증 단계에서 로컬 시스템이 복호화 하여 얻은 유사도 값은 기준 값 이상일 것이므로 로그인이 허용된다. 반면에, 잘못된 얼굴을 입력한다면 매우 높은 확률로 유사도는 기준 값 보다 낮게 계산될 것이므로 로그인이 거부된다.
2. 로컬 시스템 공격 시 얼굴 원본 이미지 보호: 로컬 시스템에 저장된 정보는 동형 암호를 위한 키 K밖에 없으므로, 로컬 시스템이 해커에 의해 공격 당하는 경우에도 사용자의 얼굴 원본 이미지는 안전하게 보호된다. 얼굴 원본 이미지 및 특성벡터 모두 로컬 시스템에는 저장되지 않는다.
3. 클라우드 서버에 의한 원본 이미지 및 특성벡터 복원 불가: 클라우드 서버는 얼굴 원본 이미지 또는 특성벡터를 직접 저장하는 것이 아니라 특성벡터나 유사도 측정 행렬의 암호문만을 저장하고 있으므로 원본 이미지 및 특성벡터를 복원할 수 없다. 이들을 얻어내기 위해서는 동형 암호 키 K를 정확히 알아야 하는데, 이 키는 로컬 시스템만이 알고 있기 때문이다. 만약 로컬 시스템을 해킹하여 동형 암호 키 K를 획득한 공격자가 클라우드 서버까지 공격에 성공한 경우에는 특성벡터나 유사도 측정 행렬을 복원할 수 있으므로 사전 공격(dictionary attack)이 가능하나, 현실적으로 두 시스템 모두 공격 당하는 상황은 발생하기 어렵다.
이와 같이, 본 발명의 한 실시예에 따르면, 바이오 데이터를 원격 서버에 저장하는 클라우드 형태로 관리하고, 특히 동형 암호를 이용하여 암호화 된 형태로 바이오 데이터를 원격 서버에 저장함으로써 바이오 데이터의 유출을 보다 근본적으로 차단하여 원격 서버를 완전히 신뢰할 수 있는 환경을 제공할 수 있고 외부 공격에 대한 저항성과 안전성을 향상시킬 수 있다.
본 발명의 실시예에 따른 방법들은 다양한 컴퓨터 시스템을 통하여 수행될 수 있는 프로그램 명령(instruction) 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 본 실시예에 따른 프로그램은 PC 기반의 프로그램 또는 모바일 단말 전용의 어플리케이션으로 구성될 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 프로세서, 콘트롤러, 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), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 원격 관리 서버
101: 사용자 단말

Claims (5)

  1. 사용자 단말에서, 아이디 등록 요청에 따라 동형 암호화 키(homomorphic encryption key)를 생성하여 상기 사용자 단말 상에 저장하는 단계;
    상기 사용자 단말에서, 등록하고자 하는 아이디와 생체 정보를 포함하는 제1 이미지를 입력 받는 단계;
    상기 사용자 단말에서, 상기 제1 이미지로부터 제1 특성벡터를 추출한 후 상기 제1 특성벡터를 이용하여 제1 유사도 측정 행렬을 계산하는 단계;
    상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제1 유사도 측정 행렬을 암호화 한 제1 암호문을 생성하는 단계;
    상기 사용자 단말에서, 네트워크를 통해 상기 제1 암호문을 상기 아이디와 함께 원격 서버인 클라우드 서버로 전송하여 상기 클라우드 서버 상에 등록하는 단계;
    상기 사용자 단말에서, 상기 아이디에 대한 인증 요청으로서 상기 아이디와 함께 생체 정보를 포함하는 제2 이미지가 입력되면 상기 제2 이미지로부터 제2 특성벡터를 추출한 후 상기 제2 특성벡터를 이용하여 제2 유사도 측정 행렬을 계산하는 단계;
    상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제2 유사도 측정 행렬을 암호화 한 제2 암호문을 생성하는 단계;
    상기 사용자 단말에서, 네트워크를 통해 상기 아이디와 상기 제2 암호문을 상기 클라우드 서버로 전송하여 비교 연산을 요청하는 단계;
    상기 사용자 단말에서, 상기 클라우드 서버로부터 상기 아이디에 대한 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과를 수신하는 단계; 및
    상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과에 대한 해독 연산(decryption)을 수행한 후 상기 해독 연산의 결과에 따라 사용자 인증을 처리하는 단계
    를 포함하고,
    상기 동형 암호화 키는 로컬 시스템인 상기 사용자 단말 상에 저장되고,
    상기 아이디와 상기 제1 암호문은 상기 사용자 단말의 사용자 인증 정보로서 원격 서버인 상기 클라우드 서버 상에 저장되고,
    상기 클라우드 서버는,
    상기 아이디에 대해 상기 사용자 인증 정보로서 저장된 상기 제1 암호문과 상기 사용자 단말에서 비교 연산을 요청할 때 상기 사용자 단말로부터 수신된 상기 상기 제2 암호문의 비교 연산을 수행하는 것
    을 특징으로 하는 원격 바이오 인증 방법.
  2. 제1항에 있어서,
    상기 제1 유사도 측정 행렬을 계산하는 단계는,
    상기 제1 특성벡터를 직렬화(serialization)하여 제1 행렬을 만들고 상기 제1 행렬과 미리 정해진 제2 행렬을 곱함으로써 상기 제1 유사도 측정 행렬을 계산하는 것
    을 특징으로 하는 원격 바이오 인증 방법.
  3. 삭제
  4. 삭제
  5. 사용자 단말에서, 아이디 등록 요청에 따라 동형 암호화 키(homomorphic encryption key)를 생성하여 저장하는 단계;
    상기 사용자 단말에서, 등록하고자 하는 아이디와 생체 정보를 포함하는 제1 이미지가 입력되면 상기 제1 이미지로부터 제1 특성벡터를 추출하는 단계;
    상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제1 특성벡터를 암호화 한 제1 암호문을 생성하는 단계;
    상기 사용자 단말에서, 네트워크를 통해 상기 제1 암호문을 상기 아이디와 함께 원격 서버인 클라우드 서버로 전송하여 상기 클라우드 서버 상에 등록하는 단계;
    상기 사용자 단말에서, 상기 아이디에 대한 인증 요청으로서 상기 아이디와 함께 생체 정보를 포함하는 제2 이미지가 입력되면 상기 제2 이미지로부터 제2 특성벡터를 추출하는 단계;
    상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제2 특성벡터를 암호화 한 제2 암호문을 생성하는 단계;
    상기 사용자 단말에서, 네트워크를 통해상기 아이디와 상기 제2 암호문을 상기 클라우드 서버로 전송하여 비교 연산을 요청하는 단계;
    상기 사용자 단말에서, 상기 클라우드 서버로부터 상기 아이디에 대한 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과를 수신하는 단계;
    상기 사용자 단말에서, 상기 동형 암호화 키를 이용하여 상기 제1 암호문과 상기 제2 암호문 간의 비교 연산 결과에 대한 해독 연산(decryption)을 수행하는 단계; 및
    상기 사용자 단말에서, 상기 해독 연산의 결과에 따라 상기 아이디를 이용한 사용자 인증을 처리하는 단계
    를 포함하고,
    상기 동형 암호화 키는 로컬 시스템인 상기 사용자 단말 상에 저장되고,
    상기 클라우드 서버는,
    상기 제1 암호문과 미리 정해진 변환 행렬을 행렬 곱셈하여 암호화 된 제1 유사도 비교 행렬을 계산하고,
    상기 아이디와 상기 제1 유사도 비교 행렬을 상기 사용자 단말의 사용자 인증 정보로서 저장하고,
    상기 사용자 단말에서 비교 연산을 요청할 때 상기 사용자 단말로부터 수신된 상기 상기 제2 암호문과 상기 변환 행렬을 행렬 곱셈하여 암호화 된 제2 유사도 비교 행렬을 계산하고,
    상기 아이디에 대해 상기 제1 유사도 비교 행렬과 상기 제2 유사도 비교 행렬의 비교 연산을 수행하는 것
    을 특징으로 하는 원격 바이오 인증 방법.
KR1020160031397A 2016-03-16 2016-03-16 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템 KR101755995B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160031397A KR101755995B1 (ko) 2016-03-16 2016-03-16 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160031397A KR101755995B1 (ko) 2016-03-16 2016-03-16 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템

Publications (1)

Publication Number Publication Date
KR101755995B1 true KR101755995B1 (ko) 2017-07-10

Family

ID=59355735

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160031397A KR101755995B1 (ko) 2016-03-16 2016-03-16 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101755995B1 (ko)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111967033A (zh) * 2020-08-28 2020-11-20 深圳康佳电子科技有限公司 基于人脸识别的图片加密方法、装置、终端及存储介质
CN112000940A (zh) * 2020-09-11 2020-11-27 支付宝(杭州)信息技术有限公司 一种隐私保护下的用户识别方法、装置以及设备
WO2021030634A1 (en) * 2019-08-13 2021-02-18 Facetec, Inc. Method and apparatus for creation and use of digital identification
WO2021049681A1 (ko) * 2019-09-10 2021-03-18 엘지전자 주식회사 클라우드 서버를 기초로 인증을 수행하는 전자 장치 및 그 제어 방법
US11157606B2 (en) 2014-08-28 2021-10-26 Facetec, Inc. Facial recognition authentication system including path parameters
US11256792B2 (en) 2014-08-28 2022-02-22 Facetec, Inc. Method and apparatus for creation and use of digital identification
KR102404763B1 (ko) * 2021-12-30 2022-06-02 주식회사 디사일로 동형 암호화된 이미지를 이용한 개인 식별 방법 및 시스템
US11405386B2 (en) 2018-05-31 2022-08-02 Samsung Electronics Co., Ltd. Electronic device for authenticating user and operating method thereof
US11418319B2 (en) 2020-04-30 2022-08-16 International Business Machines Corporation Ensure valid range of values of a vector for distance calculations using homomorphic encryption or functional encryption
CN114978623A (zh) * 2022-05-06 2022-08-30 支付宝(杭州)信息技术有限公司 一种基于隐私保护的人脸比对方法及装置
US11562055B2 (en) 2014-08-28 2023-01-24 Facetec, Inc. Method to verify identity using a previously collected biometric image/data
US11657132B2 (en) 2014-08-28 2023-05-23 Facetec, Inc. Method and apparatus to dynamically control facial illumination
USD987653S1 (en) 2016-04-26 2023-05-30 Facetec, Inc. Display screen or portion thereof with graphical user interface
US11727098B2 (en) 2014-08-28 2023-08-15 Facetec, Inc. Method and apparatus for user verification with blockchain data storage

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101603201B1 (ko) * 2015-09-18 2016-03-15 민운기 영상의 색 히스토그램 및 질감 정보를 이용한 영상 키 인증 방법 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101603201B1 (ko) * 2015-09-18 2016-03-15 민운기 영상의 색 히스토그램 및 질감 정보를 이용한 영상 키 인증 방법 및 시스템

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11562055B2 (en) 2014-08-28 2023-01-24 Facetec, Inc. Method to verify identity using a previously collected biometric image/data
US11991173B2 (en) 2014-08-28 2024-05-21 Facetec, Inc. Method and apparatus for creation and use of digital identification
US11874910B2 (en) 2014-08-28 2024-01-16 Facetec, Inc. Facial recognition authentication system including path parameters
US11727098B2 (en) 2014-08-28 2023-08-15 Facetec, Inc. Method and apparatus for user verification with blockchain data storage
US11157606B2 (en) 2014-08-28 2021-10-26 Facetec, Inc. Facial recognition authentication system including path parameters
US11256792B2 (en) 2014-08-28 2022-02-22 Facetec, Inc. Method and apparatus for creation and use of digital identification
US11693938B2 (en) 2014-08-28 2023-07-04 Facetec, Inc. Facial recognition authentication system including path parameters
US11657132B2 (en) 2014-08-28 2023-05-23 Facetec, Inc. Method and apparatus to dynamically control facial illumination
US11574036B2 (en) 2014-08-28 2023-02-07 Facetec, Inc. Method and system to verify identity
USD987653S1 (en) 2016-04-26 2023-05-30 Facetec, Inc. Display screen or portion thereof with graphical user interface
US11405386B2 (en) 2018-05-31 2022-08-02 Samsung Electronics Co., Ltd. Electronic device for authenticating user and operating method thereof
WO2021030634A1 (en) * 2019-08-13 2021-02-18 Facetec, Inc. Method and apparatus for creation and use of digital identification
WO2021049681A1 (ko) * 2019-09-10 2021-03-18 엘지전자 주식회사 클라우드 서버를 기초로 인증을 수행하는 전자 장치 및 그 제어 방법
US11418319B2 (en) 2020-04-30 2022-08-16 International Business Machines Corporation Ensure valid range of values of a vector for distance calculations using homomorphic encryption or functional encryption
CN111967033A (zh) * 2020-08-28 2020-11-20 深圳康佳电子科技有限公司 基于人脸识别的图片加密方法、装置、终端及存储介质
CN111967033B (zh) * 2020-08-28 2024-04-05 深圳康佳电子科技有限公司 基于人脸识别的图片加密方法、装置、终端及存储介质
CN112000940A (zh) * 2020-09-11 2020-11-27 支付宝(杭州)信息技术有限公司 一种隐私保护下的用户识别方法、装置以及设备
EP3968563A1 (en) * 2020-09-11 2022-03-16 Alipay (Hangzhou) Information Technology Co., Ltd. Privacy protection-based user recognition methods, apparatuses, and devices
US11277258B1 (en) 2020-09-11 2022-03-15 Alipay (Hangzhou) Information Technology Co., Ltd. Privacy protection-based user recognition methods, apparatuses, and devices
KR102404763B1 (ko) * 2021-12-30 2022-06-02 주식회사 디사일로 동형 암호화된 이미지를 이용한 개인 식별 방법 및 시스템
WO2023128345A1 (ko) * 2021-12-30 2023-07-06 주식회사 디사일로 동형 암호화된 이미지를 이용한 개인 식별 방법 및 시스템
CN114978623B (zh) * 2022-05-06 2023-11-17 支付宝(杭州)信息技术有限公司 一种基于隐私保护的人脸比对方法及装置
CN114978623A (zh) * 2022-05-06 2022-08-30 支付宝(杭州)信息技术有限公司 一种基于隐私保护的人脸比对方法及装置

Similar Documents

Publication Publication Date Title
KR101755995B1 (ko) 동형 암호를 이용한 특성벡터 기반 원격 바이오 인증 방법 및 시스템
US10104061B2 (en) Method and system for distinguishing humans from machines and for controlling access to network services
US11824991B2 (en) Securing transactions with a blockchain network
CN110334503B (zh) 利用一个设备解锁另一个设备的方法
US11063941B2 (en) Authentication system, authentication method, and program
US9485098B1 (en) System and method of user authentication using digital signatures
EP3206329B1 (en) Security check method, device, terminal and server
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
US11805122B2 (en) Encryption parameter selection
KR102008101B1 (ko) 함수 암호를 이용한 안전한 바이오 인증 방법
Verma et al. A novel model to enhance the data security in cloud environment
CN116018590A (zh) 动态私密性保护应用程序认证
KR101659226B1 (ko) 완전 동형 암호를 이용한 원격 바이오 인증 방법 및 시스템
KR102187545B1 (ko) 얼굴인식 기반의 사용자 인증을 통해 보안 문서를 제공하는 문서 관리 장치 및 그 동작 방법
KR102094606B1 (ko) 인증 장치 및 방법
Mainali et al. Privacy-enhancing context authentication from location-sensitive data
CN114338052B (zh) 一种身份认证的实现方法及装置
US11528130B1 (en) Stateless system to protect data
Narayanankutty et al. Novel authentication system for personal and domestic network systems using image feature comparison and digital signatures
US11528144B1 (en) Optimized access in a service environment
KR102648908B1 (ko) 사용자 인증 시스템 및 방법
US20240169350A1 (en) Securing transactions with a blockchain network
Rao et al. User Authentication System for Securing and Identifies by User and IoT Device
Liu et al. A Review on Biometric Encryption System in Cloud Computing
Liao Reusable user-device biometric authentication scheme for multi-service systems

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant