KR20210019889A - 인증 정보 템플릿 보호 시스템 및 방법 - Google Patents
인증 정보 템플릿 보호 시스템 및 방법 Download PDFInfo
- Publication number
- KR20210019889A KR20210019889A KR1020190099085A KR20190099085A KR20210019889A KR 20210019889 A KR20210019889 A KR 20210019889A KR 1020190099085 A KR1020190099085 A KR 1020190099085A KR 20190099085 A KR20190099085 A KR 20190099085A KR 20210019889 A KR20210019889 A KR 20210019889A
- Authority
- KR
- South Korea
- Prior art keywords
- information
- server
- equation
- authentication
- prime number
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/60—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
- G06F7/72—Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
- G06F7/722—Modular multiplication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0827—Key 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) involving distinctive intermediate devices or communication paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3033—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to pseudo-prime or prime number generation, e.g. primality test
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
인증 정보 템플릿 보호 시스템 및 방법이 개시된다. 본 발명의 일 실시예에 따른 인증 정보 템플릿 보호 방법은, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 신분 정보를 상기 서버에 송신하는 단계, 상기 서버로부터 제2 서버 정보()를 수신하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함한다.
Description
개시되는 실시예들은 인증 정보 템플릿 보호 기술과 관련된다.
오늘날 클라우드(cloud) 환경과 스마트 기기의 보급으로 다양한 온라인 서비스가 활성화됨에 따라, 편리하고 신속한 사용자 인증을 위해 기기 사용자의 생체 정보 또는 위치 정보 등을 사용한 인증의 필요성이 대두되고 있다.
그러나, 생체 정보, 위치 정보 등의 인증 정보는 민감한 프라이버시(privacy) 정보에 해당한다. 따라서, 해킹에 의해 유출될 시 예상되는 피해는 기존의 지식 기반 인증 정보와 소유 기반 인증 정보를 사용할 때에 비해 훨씬 크다.
이와 관련하여, 간편한 인증을 위해 인증에 필요한 정보를 규격화한 것을 인증 정보 템플릿(Template)이라 하는데, 종래의 인증 정보 템플릿을 이용한 인증 방법은 인증 정보 템플릿을 평문 형태로 저장하거나, 인증 서버에 암호화하여 저장하더라도 인증 요청이 있을 시 인증 정보를 복호화해서 평문 상태에서 인증을 시도하므로 인증 서버의 해킹 또는 관리자의 부주의로 인한 정보 유출 문제가 잔존해 있다.
개시되는 실시예들은 인증 정보를 복호화하지 않고 인증을 수행함으로써 인증 정보 템플릿을 안전하게 보호하기 위한 것이다.
일 실시예에 따른 사용자 단말은, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 신분 정보를 상기 서버에 송신하는 단계, 상기 서버로부터 제2 서버 정보()를 수신하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 사용자 단말은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보() 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보()를 포함할 수 있다.
상기 제2 중간 정보는 아래의 수학식 1 내지 4
[수학식 1]
[수학식 2]
[수학식 3]
[수학식 4]
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원, 은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합, 는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합, 는 상기 마스터 공개키의 구성원, 는 상기 제2 서버 정보, k 및 t는 난수, 및 는 상기 제2 중간 정보)
에 의하여 생성될 수 있다.
일 실시예에 따른 서버는, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계, 제1 서버 정보()를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계, 제2 서버 정보()를 생성하여 상기 사용자 단말로 송신하는 단계, 상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 서버는, 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 5 및 6
[수학식 5]
[수학식 6]
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
에 의하여 생성될 수 있다.
다른 실시예에 따른 사용자 단말은, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 다른 실시예에 따른 사용자 단말은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보() 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보()를 포함할 수 있다.
청구항 11에 있어서,
상기 제2 중간 정보는 아래의 수학식 1 내지 3 및 8
[수학식 1]
[수학식 2]
[수학식 3]
[수학식 8]
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원, 은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합, 는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합, 는 상기 마스터 공개키의 구성원, k는 난수, 및 는 상기 제2 중간 정보, 은 상기 제2 세부 중간 정보)
에 의하여 생성될 수 있다.
다른 실시예에 따른 서버는, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계, 제1 서버 정보()를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 서버는, 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 9
[수학식 9]
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
에 의하여 생성될 수 있다.
일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 신분 정보를 상기 서버에 송신하는 단계, 상기 서버로부터 제2 서버 정보()를 수신하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함한다.
상기 방법은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보() 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보()를 포함할 수 있다.
상기 제2 중간 정보는 아래의 수학식 1 내지 4
[수학식 1]
[수학식 2]
[수학식 3]
[수학식 4]
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원, 은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합, 는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합, 는 상기 마스터 공개키의 구성원, 는 상기 제2 서버 정보, k 및 t는 난수, 및 는 상기 제2 중간 정보)
에 의하여 생성될 수 있다.
일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계, 제1 서버 정보()를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계, 제2 서버 정보()를 생성하여 상기 사용자 단말로 송신하는 단계, 상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함한다.
상기 방법은 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 5 및 6
[수학식 5]
[수학식 6]
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
에 의하여 생성될 수 있다.
다른 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함한다.
상기 방법은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보() 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보()를 포함할 수 있다.
상기 제2 중간 정보는 아래의 수학식 1 내지 3 및 8
[수학식 1]
[수학식 2]
[수학식 3]
[수학식 8]
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원, 은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합, 는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합, 는 상기 마스터 공개키의 구성원, k는 난수, 및 는 상기 제2 중간 정보, 은 상기 제2 세부 중간 정보)
에 의하여 생성될 수 있다.
다른 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계, 제1 서버 정보()를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함한다.
상기 방법은 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 9
[수학식 9]
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
에 의하여 생성될 수 있다.
개시되는 실시예들에 따르면, 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 제안함으로써, 안전한 저장공간(Trust zone)이 없는 장치에서도 안전하게 인증 정보를 보호하여 온라인 상에서 안전하게 인증 서비스를 수행할 수 있다.
또한 개시되는 실시예들에 따르면, 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 제안함으로써, 비교적 간단하게 인증 정보를 보호하여 온라인 상에서 안전하게 인증 서비스를 수행할 수 있다.
또한 개시되는 실시예들에 따르면, 기존 공개키 기반 암호화 방식에서의 변수를 그대로 사용할 수 있도록 함으로써, 기존 암호화 방식이 적용된 환경에서도 효율적으로 안전하게 인증 서비스를 수행할 수 있다.
도 1은 일 실시예에 따른 일반적인 함수 암호 알고리즘을 설명하기 위한 도면
도 2는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 개요를 설명하기 위한 도면
도 3은 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 등록 알고리즘을 설명하기 위한 순서도
도 4는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 인증 알고리즘을 설명하기 위한 순서도
도 5는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 블록도
도 6은 일 실시예에 따른 인증 정보 템플릿 보호 방법의 흐름도
도 7은 일 실시예에 따른 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면
도 8은 일 실시예에 따른 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면
도 2는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 개요를 설명하기 위한 도면
도 3은 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 등록 알고리즘을 설명하기 위한 순서도
도 4는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 인증 알고리즘을 설명하기 위한 순서도
도 5는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 블록도
도 6은 일 실시예에 따른 인증 정보 템플릿 보호 방법의 흐름도
도 7은 일 실시예에 따른 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면
도 8은 일 실시예에 따른 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
공개키 암호 방식 하에서는 평문을 공개키를 이용하여 암호화하고 개인키로 암호문을 복호화하여 다시 평문을 얻는다. 하지만 함수 암호 방식 하에서는 평문을 공개키로 암호화하고 주어진 함수와 관련된 비밀키를 사용하여 암호문을 평문으로 복호화하지 않고 함수값만을 얻을 수 있다. 따라서 함수 암호 방식을 이용하면 인증 정보를 암호화한 상태에서 인증을 수행할 수 있는 효과를 얻을 수 있다.
도 1은 일 실시예에 따른 함수 암호 알고리즘을 설명하기 위한 도면(100)이다. 도 1에 도시된 바와 같이, 함수 암호는 다음의 4가지 알고리즘으로 구성될 수 있다.
Setup() 알고리즘은, 보안 상수 를 입력으로 하여 마스터 공개키(mpk)와 마스터 비밀키(msk)를 생성할 수 있다. 이때 보안 상수는 암호 알고리즘의 보안 강도를 나타내는 지표이다. 일반적으로 암호 알고리즘의 보안 강도는 공개키 및 비밀키의 비트(bit) 수에 비례하며, 보안 상수는 이러한 비트 수를 직접 기재하는 대신 관용적으로 사용하는 표기 방법이다.
Keygen(msk, X) 알고리즘은, 마스터 비밀키와 등록 요청 정보(X)를 이용하여 기 설정된 함수 f에 근거한 비밀키 sk(f)를 생성할 수 있다.
Encrypt(mpk, Y) 알고리즘은, 마스터 공개키를 이용하여 입력 정보(Y)를 암호문 Ct로 암호화할 수 있다.
Decrypt(sk(f), Ct) 알고리즘은, 암호문 Ct로부터 비밀키 sk(f)를 이용하여 입력 정보에 함수 f가 적용된 값 f(Y)를 얻을 수 있다. 이에 따라 입력 정보(Y)에 대한 직접적인 정보를 얻지 않고도 암호문(Ct)으로부터 입력 정보의 특정 함수값 f(Y)를 얻음으로써 사용자의 인증을 수행할 수 있다.
도 2는 일 실시예에 따른 인증 정보 템플릿(Template) 보호 시스템의 개요를 설명하기 위한 도면(200)이다.
도 2에 도시된 바와 같이, 일 실시예에 따른 인증 정보 템플릿 보호 시스템은 등록(Enrollment) 과정(210)과 인증(Authentication) 과정(220)으로 세분화될 수 있다. 등록 과정(210)은 시스템에 자신의 인증 정보를 등록하기 원하는 사용자가 수행하는 과정이며, 인증 과정(220)은 인증 정보를 등록한 사용자와 같은 사용자일지 알 수 없는 미지의 사용자가 수행하는 과정이다.
도 3은 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 등록 알고리즘을 설명하기 위한 순서도(210)이다.
도 3을 참조하면, 우선 인증 정보 템플릿 보호 시스템은 사용자의 등록 요청 정보를 수신할 수 있다(211).
이후, 인증 정보 템플릿 보호 시스템은 사용자의 등록 요청 정보에 기 생성된 마스터 비밀키 및 기 설정된 변환 함수 f를 적용하여 비밀키 sk(f)를 생성할 수 있다(212 및 213).
이후, 인증 정보 템플릿 보호 시스템은 시스템 하의 서버에 생성된 비밀키 sk(f)를 저장할 수 있다(214). 이 과정에서 등록 요청 정보를 이용하여 특정 값을 생성하고 서버에 이 값을 저장함으로써, 이를 인증 과정에서 인증 요청 정보의 함수 f 값을 이용하여 생성되는 특정 값과 비교하여 사용자 일치 여부를 검증할 수 있다.
도 4는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 인증 알고리즘을 설명하기 위한 순서도(220)이다.
도 4를 참조하면, 우선 인증 정보 템플릿 보호 시스템은 미지의 사용자의 인증 요청 정보(Y)를 수신할 수 있다(221).
이후, 인증 정보 템플릿 보호 시스템은 미지의 사용자의 인증 요청 정보에 기 생성된 마스터 공개키를 적용하여 암호화된 인증 요청 정보를 생성할 수 있다(222 및 223).
이후, 인증 정보 템플릿 보호 시스템은 암호화된 인증 요청 정보를 서버에 저장된 비밀키 sk(f)로 복호화하여 인증 요청 정보의 함수 f 값 f(Y)를 생성할 수 있다(224).
이후, 인증 정보 템플릿 보호 시스템은 등록 요청 정보를 이용하여 생성된 특정 값과 f(Y)를 이용하여 생성된 특정 값이 서로 일치하는지 여부를 판단할 수 있다(225).
일 실시예에 따르면, 등록 요청 정보를 이용하여 생성되는 특정 값은 등록 요청 정보 벡터와 임의의 벡터 간의 유클리드 거리(Euclidean distance) 함수를 이용하여 생성된 값과 사용자의 신분 정보를 연쇄 결합(concatenation)한 후 해시 함수를 적용한 값일 수 있다. 다만 등록 요청 정보를 이용하여 특정 값을 생성하는 방법은 이에 한정되지 않는다.
상세하게는, 등록 요청 정보 벡터를 X, 벡터 X와의 유클리드 거리 함수의 제곱 값이 임계값 이하인 임의의 벡터를 Y라 하면, 등록 요청 정보를 이용하여 생성되는 특정 값은 아래의 수학식 1
[수학식 1]
(이때, H는 해시 함수(hash function), 는 사용자의 신분 정보, g는 등록 요청 정보를 이용하여 생성되는 특정 값의 생성원, r은 난수(random number), d는 유클리드 거리 함수)
에 의하여 생성될 수 있다.
이후, 인증 정보 템플릿 보호 시스템은 등록 요청 정보를 이용하여 생성된 특정 값과 f(Y)을 이용하여 생성된 특정 값이 서로 일치하는 경우에는 등록된 사용자와 미지의 사용자가 일치하는 것으로 판정하고(226), 두 값이 서로 다른 경우에는 등록된 사용자와 미지의 사용자가 불일치하는 것으로 판정할 수 있다(227).
개시되는 실시예들에서는 난수를 안전하게 저장할 수 없는 디바이스에 적합한 인증 프로토콜(protocol) 및 난수를 안전하게 저장할 수 있는 Trust Zone을 가지고 있는 디바이스에 적합한 인증 프로토콜을 구분하여 제안한다.
먼저 도 7은 일 실시예에 따른 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면(700)이다. 이해를 돕기 위해, 이하 도 5 및 도 6을 참조하여 설명한다.
도 5는 일 실시예에 따른 인증 정보 템플릿 보호 시스템(500)의 블록도이다.
도 5를 참조하면, 일 실시예에 따른 인증 정보 템플릿 보호 시스템(500)은 전처리부(510), 사용자 단말(520) 및 서버(530)를 포함한다.
구체적으로, 전처리부(510)는 위수가 소수 p인 생성원 g에 기초하여 군 G를 생성할 수 있고, 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 마스터 비밀키를 생성할 수 있으며, 위수가 마스터 비밀키의 각 구성원인 생성원 g에 기초하여 마스터 공개키를 생성할 수 있다.
이때, 마스터 비밀키의 구성원을 포함하는 집합을 이루는 원소의 기 설정된 개수는 인증에 필요한 정보의 개수를 의미할 수 있다. 예를 들어, 인증 정보의 종류가 위치 정보인 경우, 인증에 필요한 정보의 개수는 위도, 경도, 고도의 3가지 일 수 있다.
일 실시예에 따르면, 전처리부(510)는 아래의 수학식 2 내지 4에 의해 군을 설정하고 마스터 공개키 및 마스터 비밀키를 생성할 수 있다.
[수학식 2]
[수학식 3]
[수학식 4]
일 실시예에 따르면, 전처리부(510)는 설정된 , l, G, p, g, 생성된 mpk 및 msk를 사용자 단말(520) 및 서버(530)에 송신하는 별개의 구성일 수 있으나, 서버(530)와 전처리부(510)는 동일한 구성일 수도 있다.
한편, 생성원(g)를 이용하여 군을 설정하거나 mpk를 생성함에 있어서, g 연산의 종류는 모듈러(modular) 연산일 수 있다. 예를 들어, 모듈러-p 연산의 경우, 어떤 수를 p로 나누어 그 나머지를 구하는 연산을 의미한다. 다만, g 연산은 타원 곡선(Elliptic Curve)을 이용한 연산을 포함한 임의의 연산 방식 중 어느 하나일 수 있으며, 특정 연산 방식으로 한정되는 것은 아니다.
사용자 단말(520)은 정보 등록 요청 시 사용자로부터 제1 인증 정보(X)를 입력받고, 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하고, 제1 중간 정보를 사용자의 신분 정보()와 함께 서버(530)에 송신하여 등록을 요청한다.
사용자 단말(520)은 정보 인증 요청 시 사용자의 신분 정보를 서버(530)에 송신하고, 서버(530)로부터 제2 서버 정보()를 수신하고, 사용자로부터 제2 인증 정보(Y)를 입력받고, 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하고, 제2 중간 정보를 신분 정보와 함께 서버(530)에 송신하여 인증을 요청한다.
사용자로부터 제1 인증 정보(X)를 입력받기 전, 사용자 단말(520)은 전처리부(510)로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신할 수 있다.
제1 중간 정보는 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 소수 p에 대해 모듈러-p 연산함으로써 생성되는 제1 세부 중간 정보()를 포함할 수 있다. 또한, 제1 중간 정보는 위수가 난수인 생성원 g에 기초하여 생성되는 제2 세부 중간 정보()를 포함할 수 있다. 또한, 제1 중간 정보는 위수가 제1 인증 정보 간 내적(inner product) 연산 결과에 난수를 곱한 값인 생성원 g에 기초하여 생성되는 제3 세부 중간 정보()를 포함할 수 있다.
일 실시예에 따르면, 사용자 단말(520)은 정보 등록 요청 시 아래의 수학식 5 내지 8에 의해 제1 중간 정보를 생성할 수 있다.
[수학식 5]
[수학식 6]
[수학식 7]
[수학식 8]
또한, 일 실시예에 따르면, 사용자 단말(520)은 정보 인증 요청 시 아래의 수학식 9 내지 12에 의해 제2 중간 정보를 생성할 수 있다.
[수학식 9]
[수학식 10]
[수학식 11]
[수학식 12]
서버(530)는 정보 등록 시 사용자 단말(520)로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하여 제1 서버 정보()를 생성하고, 검증 테이블을 생성 및 저장한다.
또한, 검증 테이블 생성 시에는, 인증 정보 인증 여부를 결정하기 위한 임계값 를 정하고, 등록 요청 정보(X) 벡터와 임의의 벡터 Y 간의 유클리드 거리(Euclidean distance) 함수 d(X, Y) 값에 있어서 를 만족하는 모든 경우에 대해, 아래 표 1과 같은 검증 테이블을 생성할 수 있다.
또한 서버(530)는 정보 인증 시 사용자 단말(520)로부터 사용자의 신분 정보를 수신받아 제2 서버 정보()를 생성하여 사용자 단말(520)로 송신하고, 사용자 단말(520)로부터 제2 중간 정보( 및 ) 및 신분 정보를 수신하여 제3 서버 정보() 및 제4 서버 정보()를 생성하며, 제4 서버 정보를 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정한다.
상기 사용자 단말(520)로부터 상기 신분 정보 및 상기 제1 중간 정보를 수신하기 전, 서버(530)는 전처리부(510)로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신할 수 있다.
또한, 서버(530)는 마스터 비밀키와 제1 중간 정보 중 rX를 내적(inner product)한 결과에 모듈러-p 연산을 수행함으로써 제1 서버 정보를 생성할 수 있다.
일 실시예에 따르면, 서버(530)는 정보 등록 시 아래의 수학식 13에 의해 제1 서버 정보를 생성할 수 있다.
[수학식 13]
또한 본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 14 및 15에 의해 제3 서버 정보를 생성할 수 있다.
[수학식 14]
[수학식 15]
또한 본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 16에 의해 제4 서버 정보를 생성할 수 있다.
[수학식 16]
도 6은 본 발명의 일 실시예에 따른 인증 정보 템플릿 보호 방법의 흐름도(600)이다.
도 6을 참조하면, 사전 단계에서는 전처리부(510)에서 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p) 및 생성원(g)을 설정하고 마스터 공개키(mpk) 및 마스터 비밀키(msk)를 생성하며, 설정 및 생성한 정보들을 사용자 단말(520) 및 서버(530)에 송신할 수 있다(610).
이때, 상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
이후, 등록 요청 단계에서는 사용자 단말(520)이 사용자로부터 제1 인증 정보(X)를 입력받고, 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하며, 제1 중간 정보를 사용자의 신분 정보()와 함께 서버(530)에 송신하여 등록을 요청한다(620).
이때, 제1 중간 정보는 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(), 위수가 난수인 생성원 g에 기초하여 생성되는 제2 세부 중간 정보() 및 위수가 제1 인증 정보 간 내적(inner product) 연산 결과에 난수를 곱한 값인 생성원 g에 기초하여 생성되는 제3 세부 중간 정보()를 포함할 수 있다.
이후, 등록 단계에서는 서버(530)가 사용자 단말(520)로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하고, 제1 서버 정보()를 생성하며, 검증 테이블을 생성 및 저장하여 인증 정보를 등록한다(630).
이때, 제1 서버 정보는 마스터 비밀키와 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
본 발명의 일 실시예에 따르면, 서버(530)는 정보 등록 시 아래의 수학식 13에 의해 제1 서버 정보를 생성할 수 있다.
[수학식 13]
또한, 검증 테이블 생성 시에는, 인증 정보 인증 여부를 결정하기 위한 임계값 를 정하고, 등록 요청 정보(X) 벡터와 임의의 벡터 Y 간의 유클리드 거리(Euclidean distance) 함수 d(X, Y) 값에 있어서 를 만족하는 모든 경우에 대해, 상술한 표 1과 같은 검증 테이블을 생성할 수 있다.
이후, 인증 요청 단계에서는 사용자 단말(520)이 사용자의 신분 정보를 서버(530)에 송신하고, 서버(530)는 제2 서버 정보()를 사용자 단말(520)로 송신하며, 사용자 단말(520)은 사용자로부터 제2 인증 정보(Y)를 입력받고, 이를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하고, 제2 중간 정보를 신분 정보와 함께 서버(530)에 송신하여 인증을 요청한다(640).
구체적으로, 사용자 단말(520)이 사용자의 신분 정보를 서버(530)에 송신하면 서버(530)는 이를 수신한 후 난수 t를 생성하여 수신한 신분 정보에 해당되는 을 이용하여 를 계산하고 사용자 단말(520)에 송신한다.
본 발명의 일 실시예에 따르면, 사용자 단말(520)은 정보 인증 요청 시 아래의 수학식 9 내지 12에 의해 제2 중간 정보를 생성할 수 있다.
[수학식 9]
[수학식 10]
[수학식 11]
[수학식 12]
이후, 인증 단계에서는 서버(530)가 사용자 단말(520)로부터 제2 중간 정보( 및 ) 및 신분 정보를 수신하고, 제3 서버 정보() 및 제4 서버 정보()를 생성하여, 제4 서버 정보를 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정한다(650).
본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 14 및 15에 의해 제3 서버 정보를 생성할 수 있다.
[수학식 14]
[수학식 15]
또한 본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 16에 의해 제4 서버 정보를 생성할 수 있다.
[수학식 16]
도 8은 본 발명의 일 실시예에 따른 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면(800)이다. 마찬가지로 이해를 돕기 위해 도 5 및 도 6을 참조하여 설명한다.
난수를 안전하게 저장할 수 있는 Trust Zone을 가지고 있는 장치의 경우 난수 r을 안전하게 저장할 수 있으므로, 인증 요청 및 인증과 관련된 일부 과정에서 전술한 도 5 내지 도 7을 참조한 설명과 차이가 있다. 따라서, 전처리부(510), 사용자 단말(520) 및 서버(530)의 동작과 관련하여, 아래에서 별도로 설명되지 않는 부분은 전술한 도 5 내지 도 7을 참조한 설명에 기재된 실시예를 따르는 것으로 간주한다.
사용자 단말(520)은 인증 요청 시 사용자에게 제2 인증 정보(Y)를 입력받는 것에 앞서 사용자의 신분 정보를 서버에 송신하지 않으며, 서버로부터 위수가 난수 r과 난수 t의 스칼라 곱(scalar product) 값인 생성원 g에 기초하여 생성된 값을 수신받지 않는다. 또한, 사용자 단말(520)은 제2 중간 정보 중 를 생성함에 있어서, 난수 t를 사용하지 않는다.
본 발명의 일 실시예에 따르면, 사용자 단말(520)은 정보 인증 요청 시 아래의 수학식 17에 의해 제2 중간 정보를 생성할 수 있다.
[수학식 17]
본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 요청 시 아래의 수학식 18에 의해 제3 서버 정보를 생성할 수 있다.
[수학식 18]
이상에서 대표적인 실시예들을 상세하게 설명하였으나, 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 개시되는 실시예들의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 명세서에 기술된 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
500: 인증 정보 템플릿(Template) 보호 시스템
510: 전처리부
520: 사용자 단말
530: 서버
510: 전처리부
520: 사용자 단말
530: 서버
Claims (36)
- 하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
사용자로부터 제1 인증 정보(X)를 입력받는 단계;
상기 제1 인증 정보(X)를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계;
상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계;
상기 신분 정보를 상기 서버에 송신하는 단계;
상기 서버로부터 제2 서버 정보()를 수신하는 단계;
상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계; 및
상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함하는, 사용자 단말. - 청구항 1에 있어서,
상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 사용자 단말. - 하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계;
제1 서버 정보()를 생성하는 단계;
검증 테이블을 생성 및 저장하는 단계;
상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계;
제2 서버 정보()를 생성하여 상기 사용자 단말로 송신하는 단계;
상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계;
제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계; 및
상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함하는, 서버. - 청구항 5에 있어서,
상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 서버. - 청구항 6에 있어서,
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 서버. - 하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
사용자로부터 제1 인증 정보(X)를 입력받는 단계;
상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계;
상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계;
상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계; 및
상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함하는, 사용자 단말. - 청구항 10에 있어서,
상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 사용자 단말. - 하나 이상의 프로세서;
메모리; 및
하나 이상의 프로그램을 포함하는 장치로서,
상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
상기 프로그램은,
사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계;
제1 서버 정보()를 생성하는 단계;
검증 테이블을 생성 및 저장하는 단계;
상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계;
제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계; 및
상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함하는, 서버. - 청구항 14에 있어서,
상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 서버. - 청구항 15에 있어서,
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 서버. - 하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
사용자로부터 제1 인증 정보(X)를 입력받는 단계;
상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계;
상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계;
상기 신분 정보를 상기 서버에 송신하는 단계;
상기 서버로부터 제2 서버 정보()를 수신하는 단계;
상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계; 및
상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함하는, 방법. - 청구항 19에 있어서,
상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법. - 하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계;
제1 서버 정보()를 생성하는 단계;
검증 테이블을 생성 및 저장하는 단계;
상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계;
제2 서버 정보()를 생성하여 상기 사용자 단말로 송신하는 단계;
상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계;
제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계; 및
상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함하는, 방법. - 청구항 23에 있어서,
상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법. - 청구항 24에 있어서,
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 방법. - 하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
사용자로부터 제1 인증 정보(X)를 입력받는 단계;
상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(, 및 를 생성하는 단계;
상기 제1 중간 정보를 상기 사용자의 신분 정보()와 함께 서버에 송신하여 등록을 요청하는 단계;
상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보( 및 )를 생성하는 단계; 및
상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함하는, 방법. - 청구항 28에 있어서,
상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법. - 하나 이상의 프로세서들, 및
상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
사용자 단말로부터 사용자의 신분 정보() 및 제1 중간 정보(, 및 를 수신하는 단계;
제1 서버 정보()를 생성하는 단계;
검증 테이블을 생성 및 저장하는 단계;
상기 사용자 단말로부터 제2 중간 정보( 및 ) 및 상기 신분 정보를 수신하는 단계;
제3 서버 정보() 및 제4 서버 정보()를 생성하는 단계; 및
상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함하는, 방법. - 청구항 32에 있어서,
상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법. - 청구항 33에 있어서,
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190099085A KR20210019889A (ko) | 2019-08-13 | 2019-08-13 | 인증 정보 템플릿 보호 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190099085A KR20210019889A (ko) | 2019-08-13 | 2019-08-13 | 인증 정보 템플릿 보호 시스템 및 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20210019889A true KR20210019889A (ko) | 2021-02-23 |
Family
ID=74688366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190099085A KR20210019889A (ko) | 2019-08-13 | 2019-08-13 | 인증 정보 템플릿 보호 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20210019889A (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010002738A (ko) | 1999-06-17 | 2001-01-15 | 정선종 | 네트워크 시스템의 인증 방법 |
-
2019
- 2019-08-13 KR KR1020190099085A patent/KR20210019889A/ko not_active Application Discontinuation
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010002738A (ko) | 1999-06-17 | 2001-01-15 | 정선종 | 네트워크 시스템의 인증 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110855671B (zh) | 一种可信计算方法和*** | |
US10178090B2 (en) | System and methods for protecting keys using garbled circuits | |
US10015159B2 (en) | Terminal authentication system, server device, and terminal authentication method | |
US8509449B2 (en) | Key protector for a storage volume using multiple keys | |
CN107317677B (zh) | 密钥存储及设备身份认证方法、装置 | |
RU2018103183A (ru) | Взаимная аутентификация конфиденциальной связи | |
JP7259868B2 (ja) | システムおよびクライアント | |
CN107733933B (zh) | 一种基于生物识别技术的双因子身份认证的方法及*** | |
US20050005106A1 (en) | Cryptographic method and apparatus | |
US9910478B2 (en) | Collation system, node, collation method, and computer readable medium | |
US10211986B2 (en) | Program collation system, node, collation method, and computer-readable medium | |
WO2020121461A1 (ja) | 照合システム、クライアントおよびサーバ | |
CN109905384B (zh) | 数据迁移方法及*** | |
CN106209730B (zh) | 一种管理应用标识的方法及装置 | |
CN108809936A (zh) | 一种基于混合加密算法的智能移动终端身份验证方法及其实现*** | |
WO2020121458A1 (ja) | 照合システム、クライアントおよびサーバ | |
US11101975B2 (en) | Ciphertext matching system and ciphertext matching method | |
CN106230600A (zh) | 一种动态口令的生成方法和*** | |
CN106257859A (zh) | 一种密码使用方法 | |
WO2020121459A1 (ja) | 認証システム、クライアントおよびサーバ | |
KR20190048422A (ko) | 인증 시스템 및 방법 | |
KR20210019889A (ko) | 인증 정보 템플릿 보호 시스템 및 방법 | |
CN109660490A (zh) | 数据处理方法、装置、***和存储介质 | |
KR20170087120A (ko) | 무인증서 공개키 암호 시스템 및 수신 단말기 | |
CN111818082B (zh) | 一种基于对称加密的数据传输方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |