KR20210019889A - 인증 정보 템플릿 보호 시스템 및 방법 - Google Patents

인증 정보 템플릿 보호 시스템 및 방법 Download PDF

Info

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
Application number
KR1020190099085A
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 KR1020190099085A priority Critical patent/KR20210019889A/ko
Publication of KR20210019889A publication Critical patent/KR20210019889A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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/0844Key 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods 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/72Methods 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/722Modular multiplication
    • 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/0827Key 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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3033Public 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
    • 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/3236Cryptographic 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 중간 정보(
Figure pat00424
,
Figure pat00425
Figure pat00426
를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보(
Figure pat00427
)와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 신분 정보를 상기 서버에 송신하는 단계, 상기 서버로부터 제2 서버 정보(
Figure pat00428
)를 수신하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00429
Figure pat00430
)를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함한다.

Description

인증 정보 템플릿 보호 시스템 및 방법{SYSTEM AND METHOD FOR PROTECTING AUTHENTICATION TEMPLATE}
개시되는 실시예들은 인증 정보 템플릿 보호 기술과 관련된다.
오늘날 클라우드(cloud) 환경과 스마트 기기의 보급으로 다양한 온라인 서비스가 활성화됨에 따라, 편리하고 신속한 사용자 인증을 위해 기기 사용자의 생체 정보 또는 위치 정보 등을 사용한 인증의 필요성이 대두되고 있다.
그러나, 생체 정보, 위치 정보 등의 인증 정보는 민감한 프라이버시(privacy) 정보에 해당한다. 따라서, 해킹에 의해 유출될 시 예상되는 피해는 기존의 지식 기반 인증 정보와 소유 기반 인증 정보를 사용할 때에 비해 훨씬 크다.
이와 관련하여, 간편한 인증을 위해 인증에 필요한 정보를 규격화한 것을 인증 정보 템플릿(Template)이라 하는데, 종래의 인증 정보 템플릿을 이용한 인증 방법은 인증 정보 템플릿을 평문 형태로 저장하거나, 인증 서버에 암호화하여 저장하더라도 인증 요청이 있을 시 인증 정보를 복호화해서 평문 상태에서 인증을 시도하므로 인증 서버의 해킹 또는 관리자의 부주의로 인한 정보 유출 문제가 잔존해 있다.
한국 공개특허공보 제10-2001-0002738호(2001.01.15)
개시되는 실시예들은 인증 정보를 복호화하지 않고 인증을 수행함으로써 인증 정보 템플릿을 안전하게 보호하기 위한 것이다.
일 실시예에 따른 사용자 단말은, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
Figure pat00001
,
Figure pat00002
Figure pat00003
를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보(
Figure pat00004
)와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 신분 정보를 상기 서버에 송신하는 단계, 상기 서버로부터 제2 서버 정보(
Figure pat00005
)를 수신하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00006
Figure pat00007
)를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 사용자 단말은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00008
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
Figure pat00009
), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
Figure pat00010
) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
Figure pat00011
)를 포함할 수 있다.
상기 제2 중간 정보는 아래의 수학식 1 내지 4
[수학식 1]
Figure pat00012
[수학식 2]
Figure pat00013
[수학식 3]
Figure pat00014
[수학식 4]
Figure pat00015
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
Figure pat00016
은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
Figure pat00017
는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
Figure pat00018
는 상기 마스터 공개키의 구성원,
Figure pat00019
는 상기 제2 서버 정보, k 및 t는 난수,
Figure pat00020
Figure pat00021
는 상기 제2 중간 정보)
에 의하여 생성될 수 있다.
일 실시예에 따른 서버는, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자 단말로부터 사용자의 신분 정보(
Figure pat00022
) 및 제1 중간 정보(
Figure pat00023
,
Figure pat00024
Figure pat00025
를 수신하는 단계, 제1 서버 정보(
Figure pat00026
)를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계, 제2 서버 정보(
Figure pat00027
)를 생성하여 상기 사용자 단말로 송신하는 단계, 상기 사용자 단말로부터 제2 중간 정보(
Figure pat00028
Figure pat00029
) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보(
Figure pat00030
) 및 제4 서버 정보(
Figure pat00031
)를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 서버는, 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00032
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 5 및 6
[수학식 5]
Figure pat00033
[수학식 6]
Figure pat00034
(이때,
Figure pat00035
는 상기 rX의 원소,
Figure pat00036
는 상기 제1 서버 정보,
Figure pat00037
는 상기 제3 서버 정보)
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
Figure pat00038
(이때, H는 해시 함수(hash function),
Figure pat00039
는 상기 신분 정보,
Figure pat00040
는 상기 제4 서버 정보)
에 의하여 생성될 수 있다.
다른 실시예에 따른 사용자 단말은, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
Figure pat00041
,
Figure pat00042
Figure pat00043
를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보(
Figure pat00044
)와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00045
Figure pat00046
)를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 다른 실시예에 따른 사용자 단말은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00047
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
Figure pat00048
), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
Figure pat00049
) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
Figure pat00050
)를 포함할 수 있다.
청구항 11에 있어서,
상기 제2 중간 정보는 아래의 수학식 1 내지 3 및 8
[수학식 1]
Figure pat00051
[수학식 2]
Figure pat00052
[수학식 3]
Figure pat00053
[수학식 8]
Figure pat00054
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
Figure pat00055
은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
Figure pat00056
는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
Figure pat00057
는 상기 마스터 공개키의 구성원, k는 난수,
Figure pat00058
Figure pat00059
는 상기 제2 중간 정보,
Figure pat00060
은 상기 제2 세부 중간 정보)
에 의하여 생성될 수 있다.
다른 실시예에 따른 서버는, 하나 이상의 프로세서, 메모리 및 하나 이상의 프로그램을 포함하는 장치로서, 상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며, 상기 프로그램은, 사용자 단말로부터 사용자의 신분 정보(
Figure pat00061
) 및 제1 중간 정보(
Figure pat00062
,
Figure pat00063
Figure pat00064
를 수신하는 단계, 제1 서버 정보(
Figure pat00065
)를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 제2 중간 정보(
Figure pat00066
Figure pat00067
) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보(
Figure pat00068
) 및 제4 서버 정보(
Figure pat00069
)를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함한다.
상기 서버는, 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00070
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 실행하기 위한 명령어를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 9
[수학식 9]
Figure pat00071
(이때,
Figure pat00072
는 상기 rX의 원소,
Figure pat00073
는 상기 제1 서버 정보,
Figure pat00074
는 상기 제3 서버 정보)
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
Figure pat00075
(이때, H는 해시 함수(hash function),
Figure pat00076
는 상기 신분 정보,
Figure pat00077
는 상기 제4 서버 정보)
에 의하여 생성될 수 있다.
일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
Figure pat00078
,
Figure pat00079
Figure pat00080
를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보(
Figure pat00081
)와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 신분 정보를 상기 서버에 송신하는 단계, 상기 서버로부터 제2 서버 정보(
Figure pat00082
)를 수신하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00083
Figure pat00084
)를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함한다.
상기 방법은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00085
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
Figure pat00086
), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
Figure pat00087
) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
Figure pat00088
)를 포함할 수 있다.
상기 제2 중간 정보는 아래의 수학식 1 내지 4
[수학식 1]
Figure pat00089
[수학식 2]
Figure pat00090
[수학식 3]
Figure pat00091
[수학식 4]
Figure pat00092
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
Figure pat00093
은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
Figure pat00094
는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
Figure pat00095
는 상기 마스터 공개키의 구성원,
Figure pat00096
는 상기 제2 서버 정보, k 및 t는 난수,
Figure pat00097
Figure pat00098
는 상기 제2 중간 정보)
에 의하여 생성될 수 있다.
일 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자 단말로부터 사용자의 신분 정보(
Figure pat00099
) 및 제1 중간 정보(
Figure pat00100
,
Figure pat00101
Figure pat00102
를 수신하는 단계, 제1 서버 정보(
Figure pat00103
)를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계, 제2 서버 정보(
Figure pat00104
)를 생성하여 상기 사용자 단말로 송신하는 단계, 상기 사용자 단말로부터 제2 중간 정보(
Figure pat00105
Figure pat00106
) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보(
Figure pat00107
) 및 제4 서버 정보(
Figure pat00108
)를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함한다.
상기 방법은 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00109
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 5 및 6
[수학식 5]
Figure pat00110
[수학식 6]
Figure pat00111
(이때,
Figure pat00112
는 상기 rX의 원소,
Figure pat00113
는 상기 제1 서버 정보,
Figure pat00114
는 상기 제3 서버 정보)
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
Figure pat00115
(이때, H는 해시 함수(hash function),
Figure pat00116
는 상기 신분 정보,
Figure pat00117
는 상기 제4 서버 정보)
에 의하여 생성될 수 있다.
다른 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자로부터 제1 인증 정보(X)를 입력받는 단계, 상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
Figure pat00118
,
Figure pat00119
Figure pat00120
를 생성하는 단계, 상기 제1 중간 정보를 상기 사용자의 신분 정보(
Figure pat00121
)와 함께 서버에 송신하여 등록을 요청하는 단계, 상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계, 상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00122
Figure pat00123
)를 생성하는 단계 및 상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함한다.
상기 방법은 상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00124
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
Figure pat00125
), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
Figure pat00126
) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
Figure pat00127
)를 포함할 수 있다.
상기 제2 중간 정보는 아래의 수학식 1 내지 3 및 8
[수학식 1]
Figure pat00128
[수학식 2]
Figure pat00129
[수학식 3]
Figure pat00130
[수학식 8]
Figure pat00131
(이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
Figure pat00132
은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
Figure pat00133
는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
Figure pat00134
는 상기 마스터 공개키의 구성원, k는 난수,
Figure pat00135
Figure pat00136
는 상기 제2 중간 정보,
Figure pat00137
은 상기 제2 세부 중간 정보)
에 의하여 생성될 수 있다.
다른 실시예에 따른 방법은, 하나 이상의 프로세서들, 및 상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서, 사용자 단말로부터 사용자의 신분 정보(
Figure pat00138
) 및 제1 중간 정보(
Figure pat00139
,
Figure pat00140
Figure pat00141
를 수신하는 단계, 제1 서버 정보(
Figure pat00142
)를 생성하는 단계, 검증 테이블을 생성 및 저장하는 단계, 상기 사용자 단말로부터 제2 중간 정보(
Figure pat00143
Figure pat00144
) 및 상기 신분 정보를 수신하는 단계, 제3 서버 정보(
Figure pat00145
) 및 제4 서버 정보(
Figure pat00146
)를 생성하는 단계 및 상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함한다.
상기 방법은 상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
Figure pat00147
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함할 수 있다.
상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
상기 제3 서버 정보는 아래의 수학식 9
[수학식 9]
Figure pat00148
(이때,
Figure pat00149
는 상기 rX의 원소,
Figure pat00150
는 상기 제1 서버 정보,
Figure pat00151
는 상기 제3 서버 정보)
에 의하여 생성될 수 있다.
상기 제4 서버 정보는 아래의 수학식 7
[수학식 7]
Figure pat00152
(이때, H는 해시 함수(hash function),
Figure pat00153
는 상기 신분 정보,
Figure pat00154
는 상기 제4 서버 정보)
에 의하여 생성될 수 있다.
개시되는 실시예들에 따르면, 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 제안함으로써, 안전한 저장공간(Trust zone)이 없는 장치에서도 안전하게 인증 정보를 보호하여 온라인 상에서 안전하게 인증 서비스를 수행할 수 있다.
또한 개시되는 실시예들에 따르면, 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 제안함으로써, 비교적 간단하게 인증 정보를 보호하여 온라인 상에서 안전하게 인증 서비스를 수행할 수 있다.
또한 개시되는 실시예들에 따르면, 기존 공개키 기반 암호화 방식에서의 변수를 그대로 사용할 수 있도록 함으로써, 기존 암호화 방식이 적용된 환경에서도 효율적으로 안전하게 인증 서비스를 수행할 수 있다.
도 1은 일 실시예에 따른 일반적인 함수 암호 알고리즘을 설명하기 위한 도면
도 2는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 개요를 설명하기 위한 도면
도 3은 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 등록 알고리즘을 설명하기 위한 순서도
도 4는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 인증 알고리즘을 설명하기 위한 순서도
도 5는 일 실시예에 따른 인증 정보 템플릿 보호 시스템의 블록도
도 6은 일 실시예에 따른 인증 정보 템플릿 보호 방법의 흐름도
도 7은 일 실시예에 따른 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면
도 8은 일 실시예에 따른 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면
이하, 도면을 참조하여 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 개시되는 실시예들은 이에 제한되지 않는다.
실시예들을 설명함에 있어서, 관련된 공지기술에 대한 구체적인 설명이 개시되는 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 개시되는 실시예들에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
공개키 암호 방식 하에서는 평문을 공개키를 이용하여 암호화하고 개인키로 암호문을 복호화하여 다시 평문을 얻는다. 하지만 함수 암호 방식 하에서는 평문을 공개키로 암호화하고 주어진 함수와 관련된 비밀키를 사용하여 암호문을 평문으로 복호화하지 않고 함수값만을 얻을 수 있다. 따라서 함수 암호 방식을 이용하면 인증 정보를 암호화한 상태에서 인증을 수행할 수 있는 효과를 얻을 수 있다.
도 1은 일 실시예에 따른 함수 암호 알고리즘을 설명하기 위한 도면(100)이다. 도 1에 도시된 바와 같이, 함수 암호는 다음의 4가지 알고리즘으로 구성될 수 있다.
Setup(
Figure pat00155
) 알고리즘은, 보안 상수
Figure pat00156
를 입력으로 하여 마스터 공개키(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와의 유클리드 거리 함수의 제곱 값이 임계값
Figure pat00157
이하인 임의의 벡터를 Y라 하면, 등록 요청 정보를 이용하여 생성되는 특정 값은 아래의 수학식 1
[수학식 1]
Figure pat00158
(이때, H는 해시 함수(hash function),
Figure pat00159
는 사용자의 신분 정보, g는 등록 요청 정보를 이용하여 생성되는 특정 값의 생성원, r은 난수(random number), d는 유클리드 거리 함수)
에 의하여 생성될 수 있다.
이후, 인증 정보 템플릿 보호 시스템은 등록 요청 정보를 이용하여 생성된 특정 값과 f(Y)을 이용하여 생성된 특정 값이 서로 일치하는 경우에는 등록된 사용자와 미지의 사용자가 일치하는 것으로 판정하고(226), 두 값이 서로 다른 경우에는 등록된 사용자와 미지의 사용자가 불일치하는 것으로 판정할 수 있다(227).
개시되는 실시예들에서는 난수를 안전하게 저장할 수 없는 디바이스에 적합한 인증 프로토콜(protocol) 및 난수를 안전하게 저장할 수 있는 Trust Zone을 가지고 있는 디바이스에 적합한 인증 프로토콜을 구분하여 제안한다.
먼저 도 7은 일 실시예에 따른 난수를 안전하게 저장할 수 없는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면(700)이다. 이해를 돕기 위해, 이하 도 5 및 도 6을 참조하여 설명한다.
도 5는 일 실시예에 따른 인증 정보 템플릿 보호 시스템(500)의 블록도이다.
도 5를 참조하면, 일 실시예에 따른 인증 정보 템플릿 보호 시스템(500)은 전처리부(510), 사용자 단말(520) 및 서버(530)를 포함한다.
전처리부(510)는 보안 상수(
Figure pat00160
), 암호문의 벡터의 길이(l), 군(G), 소수(p) 및 생성원(g)을 설정하고 마스터 공개키(mpk) 및 마스터 비밀키(msk)를 생성한다.
구체적으로, 전처리부(510)는 위수가 소수 p인 생성원 g에 기초하여 군 G를 생성할 수 있고, 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 마스터 비밀키를 생성할 수 있으며, 위수가 마스터 비밀키의 각 구성원인 생성원 g에 기초하여 마스터 공개키를 생성할 수 있다.
이때, 마스터 비밀키의 구성원을 포함하는 집합을 이루는 원소의 기 설정된 개수는 인증에 필요한 정보의 개수를 의미할 수 있다. 예를 들어, 인증 정보의 종류가 위치 정보인 경우, 인증에 필요한 정보의 개수는 위도, 경도, 고도의 3가지 일 수 있다.
일 실시예에 따르면, 전처리부(510)는 아래의 수학식 2 내지 4에 의해 군을 설정하고 마스터 공개키 및 마스터 비밀키를 생성할 수 있다.
[수학식 2]
Figure pat00161
[수학식 3]
Figure pat00162
[수학식 4]
Figure pat00163
(이때, 상기 g는 위수가 상기 소수 p인 상기 군 G의 생성원,
Figure pat00164
은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합)
일 실시예에 따르면, 전처리부(510)는 설정된
Figure pat00165
, l, G, p, g, 생성된 mpk 및 msk를 사용자 단말(520) 및 서버(530)에 송신하는 별개의 구성일 수 있으나, 서버(530)와 전처리부(510)는 동일한 구성일 수도 있다.
한편, 생성원(g)를 이용하여 군을 설정하거나 mpk를 생성함에 있어서, g 연산의 종류는 모듈러(modular) 연산일 수 있다. 예를 들어, 모듈러-p 연산의 경우, 어떤 수를 p로 나누어 그 나머지를 구하는 연산을 의미한다. 다만, g 연산은 타원 곡선(Elliptic Curve)을 이용한 연산을 포함한 임의의 연산 방식 중 어느 하나일 수 있으며, 특정 연산 방식으로 한정되는 것은 아니다.
사용자 단말(520)은 정보 등록 요청 시 사용자로부터 제1 인증 정보(X)를 입력받고, 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
Figure pat00166
,
Figure pat00167
Figure pat00168
를 생성하고, 제1 중간 정보를 사용자의 신분 정보(
Figure pat00169
)와 함께 서버(530)에 송신하여 등록을 요청한다.
사용자 단말(520)은 정보 인증 요청 시 사용자의 신분 정보를 서버(530)에 송신하고, 서버(530)로부터 제2 서버 정보(
Figure pat00170
)를 수신하고, 사용자로부터 제2 인증 정보(Y)를 입력받고, 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00171
Figure pat00172
)를 생성하고, 제2 중간 정보를 신분 정보와 함께 서버(530)에 송신하여 인증을 요청한다.
사용자로부터 제1 인증 정보(X)를 입력받기 전, 사용자 단말(520)은 전처리부(510)로부터 보안 상수(
Figure pat00173
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신할 수 있다.
제1 중간 정보는 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 소수 p에 대해 모듈러-p 연산함으로써 생성되는 제1 세부 중간 정보(
Figure pat00174
)를 포함할 수 있다. 또한, 제1 중간 정보는 위수가 난수인 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
Figure pat00175
)를 포함할 수 있다. 또한, 제1 중간 정보는 위수가 제1 인증 정보 간 내적(inner product) 연산 결과에 난수를 곱한 값인 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
Figure pat00176
)를 포함할 수 있다.
일 실시예에 따르면, 사용자 단말(520)은 정보 등록 요청 시 아래의 수학식 5 내지 8에 의해 제1 중간 정보를 생성할 수 있다.
[수학식 5]
Figure pat00177
[수학식 6]
Figure pat00178
[수학식 7]
Figure pat00179
[수학식 8]
Figure pat00180
(이때, X는 제1 인증 정보,
Figure pat00181
는 소수 p로 나눈 나머지가 같은 정수들의 집합, r은 난수(random number),
Figure pat00182
,
Figure pat00183
Figure pat00184
는 제1 중간 정보)
또한, 일 실시예에 따르면, 사용자 단말(520)은 정보 인증 요청 시 아래의 수학식 9 내지 12에 의해 제2 중간 정보를 생성할 수 있다.
[수학식 9]
Figure pat00185
[수학식 10]
Figure pat00186
[수학식 11]
Figure pat00187
[수학식 12]
Figure pat00188
(이때, Y는 제2 인증 정보,
Figure pat00189
는 제2 서버 정보, k 및 t는 난수,
Figure pat00190
Figure pat00191
는 제2 중간 정보)
서버(530)는 정보 등록 시 사용자 단말(520)로부터 사용자의 신분 정보(
Figure pat00192
) 및 제1 중간 정보(
Figure pat00193
,
Figure pat00194
Figure pat00195
를 수신하여 제1 서버 정보(
Figure pat00196
)를 생성하고, 검증 테이블을 생성 및 저장한다.
또한, 검증 테이블 생성 시에는, 인증 정보 인증 여부를 결정하기 위한 임계값
Figure pat00197
를 정하고, 등록 요청 정보(X) 벡터와 임의의 벡터 Y 간의 유클리드 거리(Euclidean distance) 함수 d(X, Y) 값에 있어서
Figure pat00198
를 만족하는 모든 경우에 대해, 아래 표 1과 같은 검증 테이블을 생성할 수 있다.
Figure pat00199
Figure pat00200
0
Figure pat00201
1
Figure pat00202
2
Figure pat00203
... ...
Figure pat00204
Figure pat00205
또한 서버(530)는 정보 인증 시 사용자 단말(520)로부터 사용자의 신분 정보를 수신받아 제2 서버 정보(
Figure pat00206
)를 생성하여 사용자 단말(520)로 송신하고, 사용자 단말(520)로부터 제2 중간 정보(
Figure pat00207
Figure pat00208
) 및 신분 정보를 수신하여 제3 서버 정보(
Figure pat00209
) 및 제4 서버 정보(
Figure pat00210
)를 생성하며, 제4 서버 정보를 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정한다.
상기 사용자 단말(520)로부터 상기 신분 정보 및 상기 제1 중간 정보를 수신하기 전, 서버(530)는 전처리부(510)로부터 보안 상수(
Figure pat00211
), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신할 수 있다.
또한, 서버(530)는 마스터 비밀키와 제1 중간 정보 중 rX를 내적(inner product)한 결과에 모듈러-p 연산을 수행함으로써 제1 서버 정보를 생성할 수 있다.
일 실시예에 따르면, 서버(530)는 정보 등록 시 아래의 수학식 13에 의해 제1 서버 정보를 생성할 수 있다.
[수학식 13]
Figure pat00212
(이때,
Figure pat00213
는 제1 서버 정보)
또한 본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 14 및 15에 의해 제3 서버 정보를 생성할 수 있다.
[수학식 14]
Figure pat00214
[수학식 15]
Figure pat00215
(이때,
Figure pat00216
는 rX의 원소,
Figure pat00217
는 제3 서버 정보)
또한 본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 16에 의해 제4 서버 정보를 생성할 수 있다.
[수학식 16]
Figure pat00218
(이때, H는 해시 함수(hash function),
Figure pat00219
는 사용자의 신분 정보,
Figure pat00220
는 제4 서버 정보)
도 6은 본 발명의 일 실시예에 따른 인증 정보 템플릿 보호 방법의 흐름도(600)이다.
도 6을 참조하면, 사전 단계에서는 전처리부(510)에서 보안 상수(
Figure pat00221
), 암호문의 벡터의 길이(l), 군(G), 소수(p) 및 생성원(g)을 설정하고 마스터 공개키(mpk) 및 마스터 비밀키(msk)를 생성하며, 설정 및 생성한 정보들을 사용자 단말(520) 및 서버(530)에 송신할 수 있다(610).
이때, 상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성될 수 있다.
이후, 등록 요청 단계에서는 사용자 단말(520)이 사용자로부터 제1 인증 정보(X)를 입력받고, 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
Figure pat00222
,
Figure pat00223
Figure pat00224
를 생성하며, 제1 중간 정보를 사용자의 신분 정보(
Figure pat00225
)와 함께 서버(530)에 송신하여 등록을 요청한다(620).
이때, 제1 중간 정보는 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
Figure pat00226
), 위수가 난수인 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
Figure pat00227
) 및 위수가 제1 인증 정보 간 내적(inner product) 연산 결과에 난수를 곱한 값인 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
Figure pat00228
)를 포함할 수 있다.
이후, 등록 단계에서는 서버(530)가 사용자 단말(520)로부터 사용자의 신분 정보(
Figure pat00229
) 및 제1 중간 정보(
Figure pat00230
,
Figure pat00231
Figure pat00232
를 수신하고, 제1 서버 정보(
Figure pat00233
)를 생성하며, 검증 테이블을 생성 및 저장하여 인증 정보를 등록한다(630).
이때, 제1 서버 정보는 마스터 비밀키와 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성될 수 있다.
본 발명의 일 실시예에 따르면, 서버(530)는 정보 등록 시 아래의 수학식 13에 의해 제1 서버 정보를 생성할 수 있다.
[수학식 13]
Figure pat00234
(이때,
Figure pat00235
는 제1 서버 정보)
또한, 검증 테이블 생성 시에는, 인증 정보 인증 여부를 결정하기 위한 임계값
Figure pat00236
를 정하고, 등록 요청 정보(X) 벡터와 임의의 벡터 Y 간의 유클리드 거리(Euclidean distance) 함수 d(X, Y) 값에 있어서
Figure pat00237
를 만족하는 모든 경우에 대해, 상술한 표 1과 같은 검증 테이블을 생성할 수 있다.
이후, 인증 요청 단계에서는 사용자 단말(520)이 사용자의 신분 정보를 서버(530)에 송신하고, 서버(530)는 제2 서버 정보(
Figure pat00238
)를 사용자 단말(520)로 송신하며, 사용자 단말(520)은 사용자로부터 제2 인증 정보(Y)를 입력받고, 이를 이용하여 하나 이상의 제2 중간 정보(
Figure pat00239
Figure pat00240
)를 생성하고, 제2 중간 정보를 신분 정보와 함께 서버(530)에 송신하여 인증을 요청한다(640).
구체적으로, 사용자 단말(520)이 사용자의 신분 정보를 서버(530)에 송신하면 서버(530)는 이를 수신한 후 난수 t를 생성하여 수신한 신분 정보에 해당되는
Figure pat00241
을 이용하여
Figure pat00242
를 계산하고 사용자 단말(520)에 송신한다.
본 발명의 일 실시예에 따르면, 사용자 단말(520)은 정보 인증 요청 시 아래의 수학식 9 내지 12에 의해 제2 중간 정보를 생성할 수 있다.
[수학식 9]
Figure pat00243
[수학식 10]
Figure pat00244
[수학식 11]
Figure pat00245
[수학식 12]
Figure pat00246
(이때, Y는 제2 인증 정보,
Figure pat00247
는 제2 서버 정보, k 및 t는 난수,
Figure pat00248
Figure pat00249
는 제2 중간 정보)
이후, 인증 단계에서는 서버(530)가 사용자 단말(520)로부터 제2 중간 정보(
Figure pat00250
Figure pat00251
) 및 신분 정보를 수신하고, 제3 서버 정보(
Figure pat00252
) 및 제4 서버 정보(
Figure pat00253
)를 생성하여, 제4 서버 정보를 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정한다(650).
본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 14 및 15에 의해 제3 서버 정보를 생성할 수 있다.
[수학식 14]
Figure pat00254
[수학식 15]
Figure pat00255
(이때,
Figure pat00256
는 rX의 원소,
Figure pat00257
는 제3 서버 정보)
또한 본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 시 아래의 수학식 16에 의해 제4 서버 정보를 생성할 수 있다.
[수학식 16]
Figure pat00258
(이때, H는 해시 함수(hash function),
Figure pat00259
는 사용자의 신분 정보,
Figure pat00260
는 제4 서버 정보)
도 8은 본 발명의 일 실시예에 따른 난수를 안전하게 저장할 수 있는 장치에 적합한 인증 프로토콜을 설명하기 위한 도면(800)이다. 마찬가지로 이해를 돕기 위해 도 5 및 도 6을 참조하여 설명한다.
난수를 안전하게 저장할 수 있는 Trust Zone을 가지고 있는 장치의 경우 난수 r을 안전하게 저장할 수 있으므로, 인증 요청 및 인증과 관련된 일부 과정에서 전술한 도 5 내지 도 7을 참조한 설명과 차이가 있다. 따라서, 전처리부(510), 사용자 단말(520) 및 서버(530)의 동작과 관련하여, 아래에서 별도로 설명되지 않는 부분은 전술한 도 5 내지 도 7을 참조한 설명에 기재된 실시예를 따르는 것으로 간주한다.
사용자 단말(520)은 인증 요청 시 사용자에게 제2 인증 정보(Y)를 입력받는 것에 앞서 사용자의 신분 정보를 서버에 송신하지 않으며, 서버로부터 위수가 난수 r과 난수 t의 스칼라 곱(scalar product) 값인 생성원 g에 기초하여 생성된 값을 수신받지 않는다. 또한, 사용자 단말(520)은 제2 중간 정보 중
Figure pat00261
를 생성함에 있어서, 난수 t를 사용하지 않는다.
본 발명의 일 실시예에 따르면, 사용자 단말(520)은 정보 인증 요청 시 아래의 수학식 17에 의해 제2 중간 정보를 생성할 수 있다.
[수학식 17]
Figure pat00262
(이때, g는 생성원, Y는 제2 인증 정보,
Figure pat00263
는 제2 중간 정보)
서버(530)는 인증 요청 시 난수 t를 생성하지 않으며, 사용자의 신분 정보에 해당되는 제2 세부 중간 정보
Figure pat00264
을 이용하여 제2 서버 정보
Figure pat00265
를 생성하지 않는다.
본 발명의 일 실시예에 따르면, 서버(530)는 정보 인증 요청 시 아래의 수학식 18에 의해 제3 서버 정보를 생성할 수 있다.
[수학식 18]
Figure pat00266
(이때,
Figure pat00267
는 rX의 원소,
Figure pat00268
는 제1 서버 정보,
Figure pat00269
는 제3 서버 정보)
이상에서 대표적인 실시예들을 상세하게 설명하였으나, 개시되는 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 개시되는 실시예들의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 명세서에 기술된 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 청구범위뿐만 아니라 이 청구범위와 균등한 것들에 의해 정해져야 한다.
500: 인증 정보 템플릿(Template) 보호 시스템
510: 전처리부
520: 사용자 단말
530: 서버

Claims (36)

  1. 하나 이상의 프로세서;
    메모리; 및
    하나 이상의 프로그램을 포함하는 장치로서,
    상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
    상기 프로그램은,
    사용자로부터 제1 인증 정보(X)를 입력받는 단계;
    상기 제1 인증 정보(X)를 이용하여 하나 이상의 제1 중간 정보(
    Figure pat00270
    ,
    Figure pat00271
    Figure pat00272
    를 생성하는 단계;
    상기 제1 중간 정보를 상기 사용자의 신분 정보(
    Figure pat00273
    )와 함께 서버에 송신하여 등록을 요청하는 단계;
    상기 신분 정보를 상기 서버에 송신하는 단계;
    상기 서버로부터 제2 서버 정보(
    Figure pat00274
    )를 수신하는 단계;
    상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
    상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
    Figure pat00275
    Figure pat00276
    )를 생성하는 단계; 및
    상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함하는, 사용자 단말.
  2. 청구항 1에 있어서,
    상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00277
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 사용자 단말.
  3. 청구항 2에 있어서,
    상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
    Figure pat00278
    ), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
    Figure pat00279
    ) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
    Figure pat00280
    )를 포함하는, 사용자 단말.
  4. 청구항 3에 있어서,
    상기 제2 중간 정보는 아래의 수학식 1 내지 4
    [수학식 1]
    Figure pat00281

    [수학식 2]
    Figure pat00282

    [수학식 3]
    Figure pat00283

    [수학식 4]
    Figure pat00284

    (이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
    Figure pat00285
    은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
    Figure pat00286
    는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
    Figure pat00287
    는 상기 마스터 공개키의 구성원,
    Figure pat00288
    는 상기 제2 서버 정보, k 및 t는 난수,
    Figure pat00289
    Figure pat00290
    는 상기 제2 중간 정보)
    에 의하여 생성되는, 사용자 단말.
  5. 하나 이상의 프로세서;
    메모리; 및
    하나 이상의 프로그램을 포함하는 장치로서,
    상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
    상기 프로그램은,
    사용자 단말로부터 사용자의 신분 정보(
    Figure pat00291
    ) 및 제1 중간 정보(
    Figure pat00292
    ,
    Figure pat00293
    Figure pat00294
    를 수신하는 단계;
    제1 서버 정보(
    Figure pat00295
    )를 생성하는 단계;
    검증 테이블을 생성 및 저장하는 단계;
    상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계;
    제2 서버 정보(
    Figure pat00296
    )를 생성하여 상기 사용자 단말로 송신하는 단계;
    상기 사용자 단말로부터 제2 중간 정보(
    Figure pat00297
    Figure pat00298
    ) 및 상기 신분 정보를 수신하는 단계;
    제3 서버 정보(
    Figure pat00299
    ) 및 제4 서버 정보(
    Figure pat00300
    )를 생성하는 단계; 및
    상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함하는, 서버.
  6. 청구항 5에 있어서,
    상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00301
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 서버.
  7. 청구항 6에 있어서,
    상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 서버.
  8. 청구항 7에 있어서,
    상기 제3 서버 정보는 아래의 수학식 5 및 6
    [수학식 5]
    Figure pat00302

    [수학식 6]
    Figure pat00303

    (이때,
    Figure pat00304
    는 상기 rX의 원소,
    Figure pat00305
    는 상기 제1 서버 정보,
    Figure pat00306
    는 상기 제3 서버 정보)
    에 의하여 생성되는, 서버.
  9. 청구항 8에 있어서,
    상기 제4 서버 정보는 아래의 수학식 7
    [수학식 7]
    Figure pat00307

    (이때, H는 해시 함수(hash function),
    Figure pat00308
    는 상기 신분 정보,
    Figure pat00309
    는 상기 제4 서버 정보)
    에 의하여 생성되는, 서버.
  10. 하나 이상의 프로세서;
    메모리; 및
    하나 이상의 프로그램을 포함하는 장치로서,
    상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
    상기 프로그램은,
    사용자로부터 제1 인증 정보(X)를 입력받는 단계;
    상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
    Figure pat00310
    ,
    Figure pat00311
    Figure pat00312
    를 생성하는 단계;
    상기 제1 중간 정보를 상기 사용자의 신분 정보(
    Figure pat00313
    )와 함께 서버에 송신하여 등록을 요청하는 단계;
    상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
    상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
    Figure pat00314
    Figure pat00315
    )를 생성하는 단계; 및
    상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 실행하기 위한 명령어들을 포함하는, 사용자 단말.
  11. 청구항 10에 있어서,
    상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00316
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 사용자 단말.
  12. 청구항 11에 있어서,
    상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
    Figure pat00317
    ), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
    Figure pat00318
    ) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
    Figure pat00319
    )를 포함하는, 사용자 단말.
  13. 청구항 12에 있어서,
    상기 제2 중간 정보는 아래의 수학식 1 내지 3 및 8
    [수학식 1]
    Figure pat00320

    [수학식 2]
    Figure pat00321

    [수학식 3]
    Figure pat00322

    [수학식 8]
    Figure pat00323

    (이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
    Figure pat00324
    은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
    Figure pat00325
    는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
    Figure pat00326
    는 상기 마스터 공개키의 구성원, k는 난수,
    Figure pat00327
    Figure pat00328
    는 상기 제2 중간 정보,
    Figure pat00329
    은 상기 제2 세부 중간 정보)
    에 의하여 생성되는, 사용자 단말.
  14. 하나 이상의 프로세서;
    메모리; 및
    하나 이상의 프로그램을 포함하는 장치로서,
    상기 하나 이상의 프로그램은 상기 메모리에 저장되고 상기 하나 이상의 프로세서에 의해 실행되도록 구성되며,
    상기 프로그램은,
    사용자 단말로부터 사용자의 신분 정보(
    Figure pat00330
    ) 및 제1 중간 정보(
    Figure pat00331
    ,
    Figure pat00332
    Figure pat00333
    를 수신하는 단계;
    제1 서버 정보(
    Figure pat00334
    )를 생성하는 단계;
    검증 테이블을 생성 및 저장하는 단계;
    상기 사용자 단말로부터 제2 중간 정보(
    Figure pat00335
    Figure pat00336
    ) 및 상기 신분 정보를 수신하는 단계;
    제3 서버 정보(
    Figure pat00337
    ) 및 제4 서버 정보(
    Figure pat00338
    )를 생성하는 단계; 및
    상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 실행하기 위한 명령어들을 포함하는, 서버.
  15. 청구항 14에 있어서,
    상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00339
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 서버.
  16. 청구항 15에 있어서,
    상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 서버.
  17. 청구항 16에 있어서,
    상기 제3 서버 정보는 아래의 수학식 9
    [수학식 9]
    Figure pat00340

    (이때,
    Figure pat00341
    는 상기 rX의 원소,
    Figure pat00342
    는 상기 제1 서버 정보,
    Figure pat00343
    는 상기 제3 서버 정보)
    에 의하여 생성되는, 서버.
  18. 청구항 17에 있어서,
    상기 제4 서버 정보는 아래의 수학식 7
    [수학식 7]
    Figure pat00344

    (이때, H는 해시 함수(hash function),
    Figure pat00345
    는 상기 신분 정보,
    Figure pat00346
    는 상기 제4 서버 정보)
    에 의하여 생성되는, 서버.
  19. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    사용자로부터 제1 인증 정보(X)를 입력받는 단계;
    상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
    Figure pat00347
    ,
    Figure pat00348
    Figure pat00349
    를 생성하는 단계;
    상기 제1 중간 정보를 상기 사용자의 신분 정보(
    Figure pat00350
    )와 함께 서버에 송신하여 등록을 요청하는 단계;
    상기 신분 정보를 상기 서버에 송신하는 단계;
    상기 서버로부터 제2 서버 정보(
    Figure pat00351
    )를 수신하는 단계;
    상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
    상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
    Figure pat00352
    Figure pat00353
    )를 생성하는 단계; 및
    상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함하는, 방법.
  20. 청구항 19에 있어서,
    상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00354
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법.
  21. 청구항 20에 있어서,
    상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
    Figure pat00355
    ), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
    Figure pat00356
    ) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
    Figure pat00357
    )를 포함하는, 방법.
  22. 청구항 21에 있어서,
    상기 제2 중간 정보는 아래의 수학식 1 내지 4
    [수학식 1]
    Figure pat00358

    [수학식 2]
    Figure pat00359

    [수학식 3]
    Figure pat00360

    [수학식 4]
    Figure pat00361

    (이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
    Figure pat00362
    은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
    Figure pat00363
    는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
    Figure pat00364
    는 상기 마스터 공개키의 구성원,
    Figure pat00365
    는 상기 제2 서버 정보, k 및 t는 난수,
    Figure pat00366
    Figure pat00367
    는 상기 제2 중간 정보)
    에 의하여 생성되는, 방법.
  23. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    사용자 단말로부터 사용자의 신분 정보(
    Figure pat00368
    ) 및 제1 중간 정보(
    Figure pat00369
    ,
    Figure pat00370
    Figure pat00371
    를 수신하는 단계;
    제1 서버 정보(
    Figure pat00372
    )를 생성하는 단계;
    검증 테이블을 생성 및 저장하는 단계;
    상기 사용자 단말로부터 상기 신분 정보를 수신하는 단계;
    제2 서버 정보(
    Figure pat00373
    )를 생성하여 상기 사용자 단말로 송신하는 단계;
    상기 사용자 단말로부터 제2 중간 정보(
    Figure pat00374
    Figure pat00375
    ) 및 상기 신분 정보를 수신하는 단계;
    제3 서버 정보(
    Figure pat00376
    ) 및 제4 서버 정보(
    Figure pat00377
    )를 생성하는 단계; 및
    상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함하는, 방법.
  24. 청구항 23에 있어서,
    상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00378
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법.
  25. 청구항 24에 있어서,
    상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 방법.
  26. 청구항 25에 있어서,
    상기 제3 서버 정보는 아래의 수학식 5 및 6
    [수학식 5]
    Figure pat00379

    [수학식 6]
    Figure pat00380

    (이때,
    Figure pat00381
    는 상기 rX의 원소,
    Figure pat00382
    는 상기 제1 서버 정보,
    Figure pat00383
    는 상기 제3 서버 정보)
    에 의하여 생성되는, 방법.
  27. 청구항 26에 있어서,
    상기 제4 서버 정보는 아래의 수학식 7
    [수학식 7]
    Figure pat00384

    (이때, H는 해시 함수(hash function),
    Figure pat00385
    는 상기 신분 정보,
    Figure pat00386
    는 상기 제4 서버 정보)
    에 의하여 생성되는, 방법.
  28. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    사용자로부터 제1 인증 정보(X)를 입력받는 단계;
    상기 제1 인증 정보를 이용하여 하나 이상의 제1 중간 정보(
    Figure pat00387
    ,
    Figure pat00388
    Figure pat00389
    를 생성하는 단계;
    상기 제1 중간 정보를 상기 사용자의 신분 정보(
    Figure pat00390
    )와 함께 서버에 송신하여 등록을 요청하는 단계;
    상기 사용자로부터 제2 인증 정보(Y)를 입력받는 단계;
    상기 제2 인증 정보를 이용하여 하나 이상의 제2 중간 정보(
    Figure pat00391
    Figure pat00392
    )를 생성하는 단계; 및
    상기 제2 중간 정보를 상기 신분 정보와 함께 서버에 송신하여 인증을 요청하는 단계를 포함하는, 방법.
  29. 청구항 28에 있어서,
    상기 제1 인증 정보(X)를 입력받는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00393
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법.
  30. 청구항 29에 있어서,
    상기 제1 중간 정보는 상기 제1 인증 정보의 각 원소에 난수(random number)를 곱하여 상기 소수 p에 대해 모듈러(modular)-p 연산함으로써 생성되는 제1 세부 중간 정보(
    Figure pat00394
    ), 위수가 상기 난수인 상기 생성원 g에 기초하여 생성되는 제2 세부 중간 정보(
    Figure pat00395
    ) 및 위수가 상기 제1 인증 정보 간 내적(inner product) 연산 결과에 상기 난수를 곱한 값인 상기 생성원 g에 기초하여 생성되는 제3 세부 중간 정보(
    Figure pat00396
    )를 포함하는, 방법.
  31. 청구항 30에 있어서,
    상기 제2 중간 정보는 아래의 수학식 1 내지 3 및 8
    [수학식 1]
    Figure pat00397

    [수학식 2]
    Figure pat00398

    [수학식 3]
    Figure pat00399

    [수학식 8]
    Figure pat00400

    (이때, Y는 상기 제2 인증 정보, g는 상기 생성원,
    Figure pat00401
    은 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 l개의 정수들의 집합,
    Figure pat00402
    는 상기 소수 p로 나눈 나머지가 같은 정수들의 집합,
    Figure pat00403
    는 상기 마스터 공개키의 구성원, k는 난수,
    Figure pat00404
    Figure pat00405
    는 상기 제2 중간 정보,
    Figure pat00406
    은 상기 제2 세부 중간 정보)
    에 의하여 생성되는, 방법.
  32. 하나 이상의 프로세서들, 및
    상기 하나 이상의 프로세서들에 의해 실행되는 하나 이상의 프로그램들을 저장하는 메모리를 구비한 컴퓨팅 장치에서 수행되는 방법으로서,
    사용자 단말로부터 사용자의 신분 정보(
    Figure pat00407
    ) 및 제1 중간 정보(
    Figure pat00408
    ,
    Figure pat00409
    Figure pat00410
    를 수신하는 단계;
    제1 서버 정보(
    Figure pat00411
    )를 생성하는 단계;
    검증 테이블을 생성 및 저장하는 단계;
    상기 사용자 단말로부터 제2 중간 정보(
    Figure pat00412
    Figure pat00413
    ) 및 상기 신분 정보를 수신하는 단계;
    제3 서버 정보(
    Figure pat00414
    ) 및 제4 서버 정보(
    Figure pat00415
    )를 생성하는 단계; 및
    상기 제4 서버 정보를 상기 검증 테이블에 저장된 값과 비교하여 등록된 사용자가 맞는지 판정하는 단계를 포함하는, 방법.
  33. 청구항 32에 있어서,
    상기 신분 정보 및 상기 제1 중간 정보를 수신하는 단계의 수행 전, 전처리부로부터 보안 상수(
    Figure pat00416
    ), 암호문의 벡터의 길이(l), 군(G), 소수(p), 생성원(g), 마스터 공개키(mpk) 및 마스터 비밀키(msk) 정보를 수신하는 단계를 더 포함하며,
    상기 군은 위수가 상기 소수 p인 상기 생성원 g에 기초하여 생성되고, 상기 마스터 비밀키는 상기 소수 p로 나눈 나머지가 같은 정수들 중 임의로 추출한 기 설정된 개수의 정수들의 집합에 속하는 원소들을 구성원으로 하여 생성되며, 상기 마스터 공개키는 위수가 상기 마스터 비밀키의 각 구성원인 상기 생성원 g에 기초하여 생성되는, 방법.
  34. 청구항 33에 있어서,
    상기 제1 서버 정보는 상기 마스터 비밀키와 상기 제1 중간 정보 중 rX를 내적한 결과에 모듈러(modular)-p 연산을 수행함으로써 생성되는, 방법.
  35. 청구항 34에 있어서,
    상기 제3 서버 정보는 아래의 수학식 9
    [수학식 9]
    Figure pat00417

    (이때,
    Figure pat00418
    는 상기 rX의 원소,
    Figure pat00419
    는 상기 제1 서버 정보,
    Figure pat00420
    는 상기 제3 서버 정보)
    에 의하여 생성되는, 방법.
  36. 청구항 35에 있어서,
    상기 제4 서버 정보는 아래의 수학식 7
    [수학식 7]
    Figure pat00421

    (이때, H는 해시 함수(hash function),
    Figure pat00422
    는 상기 신분 정보,
    Figure pat00423
    는 상기 제4 서버 정보)
    에 의하여 생성되는, 방법.
KR1020190099085A 2019-08-13 2019-08-13 인증 정보 템플릿 보호 시스템 및 방법 KR20210019889A (ko)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010002738A (ko) 1999-06-17 2001-01-15 정선종 네트워크 시스템의 인증 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
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