KR20170053063A - 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법 - Google Patents

일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법 Download PDF

Info

Publication number
KR20170053063A
KR20170053063A KR1020150155350A KR20150155350A KR20170053063A KR 20170053063 A KR20170053063 A KR 20170053063A KR 1020150155350 A KR1020150155350 A KR 1020150155350A KR 20150155350 A KR20150155350 A KR 20150155350A KR 20170053063 A KR20170053063 A KR 20170053063A
Authority
KR
South Korea
Prior art keywords
password
signature
user authentication
remote server
result
Prior art date
Application number
KR1020150155350A
Other languages
English (en)
Other versions
KR101739203B1 (ko
Inventor
이문규
임종혁
Original Assignee
인하대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인하대학교 산학협력단 filed Critical 인하대학교 산학협력단
Priority to KR1020150155350A priority Critical patent/KR101739203B1/ko
Publication of KR20170053063A publication Critical patent/KR20170053063A/ko
Application granted granted Critical
Publication of KR101739203B1 publication Critical patent/KR101739203B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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
    • 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/3247Cryptographic 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 involving digital signatures
    • 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/3263Cryptographic 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 involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

일 실시예에 따른 사용자 인증 방법은, 아이디 및 제1 패스워드가 입력됨에 따라 제1 암호화를 수행하여 생성된 제1 암호문을 상기 아이디와 함께 원격 서버에 등록하는 단계; 사용자로부터 아이디 및 제2 패스워드가 입력되는 단계; 상기 사용자로부터 입력된 제2 패스워드를 해시 함수로 해시하여 해시 값을 생성하는 단계; 동형 암호화 방법을 이용하여 상기 제2 패스워드의 해시 값을 암호화하여 상기 제2 패스워드에 대한 제2 암호문을 생성하는 단계; 상기 아이디와 상기 제2 암호문을 상기 원격 서버로 전송하고, 상기 원격 서버로부터 상기 제1 암호문과 상기 제2 암호문 간의 연산 결과를 수신하는 단계; 상기 연산 결과에 대하여 동형 암호화 키를 이용하여 복호화를 수행하는 단계; 및 상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계를 포함할 수 있다.

Description

일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법{PASSWORD-BASED USER AUTHENTICATION METHOD USING ONE-TIME PRIVATE KEY-BASED DIGITAL SIGNATURE AND HOMOMORPHIC ENCRYPTION}
아래의 설명은 동형 암호 기술과 일회용 개인키 기반 전자 서명을 이용하여 패스워드 기반의 사용자 인증을 수행하는 방법 및 장치에 관한 것이다.
사용자 인증은 사용자가 컴퓨터, 웹 서버, 스마트 폰 등의 특정 시스템에 접근을 시도하는 경우, 접근 권한을 확인하여 접근을 허용하는 일련의 절차이다. 패스워드나 개인식별번호를 이용한 지식 기반 인증, 신체 정보를 이용한 바이오 인증, 하드웨어(카드, 동글 등)를 이용한 소유 기반 인증 등이 이용되고 있으며, 주로 패스워드를 이용한 인증이 가장 널리 쓰이고 있다. 패스워드 기반 인증은 사용자가 자신의 아이디와 패스워드를 입력하여 사용자 등록을 수행하고 시스템은 사용자 식별 정보 (아이디, 패스워드) 쌍을 특정 시스템 파일에 저장한다. 이후, 해당 아이디를 가진 사용자가 사용자 인증(로그인)을 시도할 때 입력하는 패스워드와 저장된 패스워드를 비교하여 일치할 경우 시스템으로의 접근을 허용하게 된다.
그러나 만약 시스템에 대한 공격으로 사용자들의 아이디 및 패스워드가 저장된 시스템 파일이 유출된다면 모든 사용자의 패스워드가 노출되는 문제점이 발생하기 때문에, 일반적으로 패스워드를 암호학적 해시 함수를 통해 해시된 상태로 저장하고, 인증과정에서도 입력받은 패스워드를 해시하여 저장된 값과 비교한다. 다시 말해, 사용자
Figure pat00001
의 아이디를
Figure pat00002
, 패스워드를
Figure pat00003
라 하고, 값
Figure pat00004
Figure pat00005
로 압축하는 단방향 암호학적 해시 함수
Figure pat00006
의 연산을
Figure pat00007
로 표시하면, 사용자 등록 시에 시스템은 사용자 식별 정보 쌍
Figure pat00008
를 저장한다. 이후, 아이디가
Figure pat00009
인 사용자가 인증(로그인)을 시도할 때 시스템은 입력하는 패스워드
Figure pat00010
에 대해
Figure pat00011
가 성립하는지를 확인하여 성립한다면 접근을 허용한다. 이때, 해시 함수
Figure pat00012
는 단방향 함수이기 때문에
Figure pat00013
가 충분한 엔트로피를 가지도록 선택된 경우에는 시스템에 대한 공격으로
Figure pat00014
가 유출된다 하여도,
Figure pat00015
값으로부터
Figure pat00016
를 복원하는 것은 불가능하다. 그러나 일반적으로 사용자들이 선택하는 패스워드는 '1234'나 'password'와 같이 통계적으로 매우 균일하지 못한 분포를 보인다. 이 같은 점을 이용하면 사전 공격(Dictionary Attack)이 가능해지는데, 이는 사용자들이 많이 선택하는 것으로 알려진 패스워드에 대해 해시 값을 공격자가 미리 계산하여 사전(Dictionary) 형태로 저장하고, 시스템 공격으로 획득한 해시 값을 사전에 포함된 해시 값과 대조하는 방식으로 사용자의 원본 패스워드를 유추하는 공격이다.
이를 방지하기 위해서는 해시 값이 사전 공격으로부터 더욱 높은 저항성을 지니도록 하거나 패스워드가 저장된 파일을 좀 더 안전하게 관리하는 등의 방법을 사용해야 한다. 전자의 경우는 일반적으로 패스워드에 임의의 값
Figure pat00017
를 추가하여 해시를 하는 방법이 많이 쓰이는데, 이는 등록 시
Figure pat00018
를 저장하고 인증(로그인) 시 입력된 패스워드
Figure pat00019
에 대해
Figure pat00020
가 성립하는지를 확인하는 방법이다. 이 때, 공격자는 사전 공격을 위한 사전 구성을 위해
Figure pat00021
값까지 고려해야 하므로, 공격자의 공격 복잡도를 다소 높이는 효과는 있다. 그러나 상기 방법은 패스워드 기반 인증의 문제를 근본적으로 해결하지는 못한다. 후자의 경우는 사용자 아이디, 패스워드 쌍,
Figure pat00022
및 해시 값을 원격 서버에 저장하는 방법이다. 이 경우에는 원격 서버를 신뢰할 수 있어야 한다는 강한 가정이 필요하다. 왜냐하면, 일반적으로 원격 서버는 로컬 시스템보다 외부 공격으로부터 안전하지만, 여러 사용자로부터 제공된 사용자 식별 정보들을 원격 서버 상에서 분석하여 원래의 값을 유추하는 데 유용한 정보를 얻어내려는 공격의 가능성을 배제할 수 없기 때문이다.
이와 같은 문제를 해결하기 위해 서버에 저장되는 값을 암호화하는 방법을 생각해 볼 수 있는데, 암호문 상태로 인증을 수행해야 한다는 특성 때문에 동형 암호(Homomorphic Encryption)와 같은 기술이 이용될 수 있다. 그러나 동형 암호는 암호화 되어있는 인증 결과를 확인 할 수 없기 때문에, 그 결과를 로컬 시스템이 확인해야 한다. 만약, 로컬 시스템이 탈취된 경우라면 공격에 활용할 수 있는 정보가 제공될 가능성이 존재하기 때문에, 패스워드를 인증하는 비교 과정에 동형 암호의 안전성을 보장할 수 있는 방법을 사용해야 한다.
본 발명이 해결하고자 하는 과제는 동형 암호 기술과 일회용 개인키 기반 전자 서명을 이용하여 패스워드 기반의 사용자 인증 방법 및 시스템을 제안한다.
일 실시예에 따르면, 사용자 인증 방법은, 아이디 및 제1 패스워드가 입력됨에 따라 제1 암호화를 수행하여 생성된 제1 암호문을 상기 아이디와 함께 원격 서버에 등록하는 단계; 사용자로부터 상기 아이디 및 제2 패스워드가 입력되는 단계; 상기 사용자로부터 입력된 제2 패스워드를 해시 함수로 해시하여 해시 값을 생성하는 단계; 동형 암호화 방법을 이용하여 상기 제2 패스워드의 해시 값을 암호화하여 상기 제2 패스워드에 대한 제2 암호문을 생성하는 단계; 상기 아이디와 상기 제2 암호문을 상기 원격 서버로 전송하고, 상기 원격 서버로부터 상기 제1 암호문과 상기 제2 암호문 간의 연산 결과를 수신하는 단계; 상기 연산 결과에 대하여 동형 암호화 키를 이용하여 복호화를 수행하는 단계; 및 상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계를 포함할 수 있다.
일측에 따르면, 상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계는, 서명을 위한 개인키를 보유한 서명자의 서명 정보를 서명 생성 연산을 기반으로 서명을 생성한 후, 상기 개인키를 폐기하고, 상기 서명자의 공개키와 상기 생성된 서명으로부터 서명 검증을 통하여 상기 서명 정보의 유효성을 판단하고, 상기 서명에 대한 재계산이 불가능하도록 개인키 기반의 전자 서명을 수행하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계는, 상기 복호화를 수행한 결과 및 서명자의 공개키로부터 서명 검증 연산을 통하여 서명 검증을 수행하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계는, 서명 검증이 성공적일 경우, 상기 아이디의 로그인을 허용하고, 상기 서명 검증이 비성공적일 경우, 상기 아이디의 로그인을 거부하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 아이디 및 상기 제1 패스워드가 입력됨에 따라 제1 암호화를 수행하여 생성된 제1 암호문을 상기 아이디와 함께 원격 서버에 등록하는 단계는, 상기 동형 암호화 키와 전자 서명을 위한 공개키 및 일회용 개인키를 포함하는 키쌍을 생성하고, 서명 정보를 결정하는 단계; 사용자로부터 상기 아이디 및 상기 제1 패스워드가 입력됨에 따라 상기 제1 패스워드를 해시하여 상기 제1 패스워드의 해시 값을 생성하는 단계; 상기 서명 정보를 서명 생성 연산에 기초하여 서명을 생성하여 서명 값을 획득하고, 상기 일회용 개인키를 폐기하는 단계; 상기 해시 값 및 상기 서명 값을 각 비트별로 배타적 논리합 연산을 수행하여 배타적 논리합 연산 결과를 생성하는 단계; 상기 동형 암호화 방법을 이용하여 상기 배타적 논리합 연산 결과를 암호화화여 제1 암호문을 생성하는 단계; 및 상기 원격 서버로 상기 아이디 및 상기 제1 암호문을 전송하여 상기 원격 서버 상에 등록하는 단계를 포함할 수 있다.
또 다른 일측에 따르면, 상기 원격 서버로 상기 아이디 및 상기 제1 암호문을 전송하여 상기 원격 서버 상에 등록하는 단계는, 상기 동형 암호화 키, 상기 전자 서명의 서명 확인을 위한 공개키 및 서명 정보가 저장되는 단계를 포함할 수 있다.
일 실시예에 따르면, 적어도 하나의 프로그램이 로딩된 메모리; 및 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 상기 프로그램의 제어에 따라, 동형 암호화 키와 전자 서명을 위한 공개키 및 일회용 개인키를 포함하는 키쌍을 생성하고, 서명 정보를 결정하는 과정; 아이디 및 제1 패스워드가 입력됨에 따라 상기 제1 패스워드를 해시하여 상기 제1 패스워드의 해시 값을 생성하는 과정; 상기 서명 정보를 서명 생성 연산에 기초하여 서명을 생성하여 서명 값을 획득하고, 상기 일회용 개인키를 폐기하는 과정; 상기 해시 값 및 상기 서명 값을 각 비트별로 배타적 논리합 연산을 수행하여 배타적 논리합 연산 결과를 생성하는 과정; 상기 동형 암호화 방법을 이용하여 상기 배타적 논리합 연산 결과를 암호화화여 제1 암호문을 생성하는 과정; 원격 서버로 상기 아이디 및 상기 제1 암호문을 전송하여 상기 원격 서버 상에 등록하는 과정; 사용자로부터 상기 아이디 및 제2 패스워드가 입력되는 과정; 상기 사용자로부터 입력된 제2 패스워드를 해시 함수로 해시하여 해시 값을 생성하는 과정; 동형 암호화 방법을 이용하여 상기 제2 패스워드의 해시 값을 암호화하여 상기 제2 패스워드에 대한 제2 암호문을 생성하는 과정; 상기 아이디와 상기 제2 암호문을 상기 원격 서버로 전송하고, 상기 원격 서버로부터 상기 제1 암호문과 상기 제2 암호문 간의 연산 결과를 수신하는 과정; 상기 연산 결과에 대하여 동형 암호화 키를 이용하여 복호화를 수행하는 과정; 및 상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 과정을 처리할 수 있다.
일 실시예에 따른 사용자 인증 시스템은 원격 서버에서 패스워드의 해시 값과 전자 서명 값을 배타적 논리합 연산이 수행된 연산 결과로 저장하기 때문에 패스워드 정보를 알 수 없으며, 암호화된 상태에서의 비교 서비스만을 제공한다.
일 실시예에 따른 사용자 인증 시스템은 로컬 시스템이 탈취된 경우에도 해커로부터 추가적인 조작을 통해 패스워드를 복원하는 공격을 차단할 수 있다.
도 1은 일 실시예에 따른 사용자 인증 시스템의 네트워크 환경을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 사용자 인증 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 사용자 인증 시스템의 사용자 등록 과정을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 사용자 인증 시스템의 사용자 인증 과정을 설명하기 위한 흐름도이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
동형 암호(Homomorphic Encryption)란 평문(plaintext)
Figure pat00023
Figure pat00024
에 대해 산술 연산 *을 적용할 경우,
Figure pat00025
를 만족하는 암호화 방법
Figure pat00026
를 의미한다. 만약 이 연산이 덧셈(곱셈)이면, 암호화 방법
Figure pat00027
를 덧셈(곱셈)에 대한 동형이라 한다. 또한, 덧셈과 곱셈에 대해 모두 동형인 암호를 완전 동형 암호(Fully homomorphic encryption)라고 한다. 이에 따라 아래의 설명에서는 암호화 방법
Figure pat00028
의 평문
Figure pat00029
인 경우를 고려하여 평문 간의 덧셈 및 곱셈 연산은 각 연산 이후 mod 2를 수행하고, 암호문(Ciphertext) 간의 덧셈 및 곱셈은 mod 없이 수행하는 경우를 고려한다. 다시 말해서, 암호화 연산
Figure pat00030
및 복호화 연산
Figure pat00031
에 대해
Figure pat00032
Figure pat00033
가 성립하는 완전 동형 암호를 고려한다. 정수 상에서 mod 2에 대한 덧셈 및 곱셈은 각각 배타적 논리합(Exclusive OR, 기호:
Figure pat00034
)과 논리곱(Logical AND, 기호:
Figure pat00035
)연산과 동치이므로,
Figure pat00036
Figure pat00037
가 성립한다.
일회용 개인키 기반의 전자 서명(One-Time Private Key-Based Digital Signature)이란 서명을 위한 개인키
Figure pat00038
를 보유한 서명자
Figure pat00039
가 서명 정보
Figure pat00040
를 서명 생성 연산
Figure pat00041
을 통하여 서명
Figure pat00042
를 생성한 후,
Figure pat00043
를 폐기하는 방법으로, 서명자
Figure pat00044
의 공개키
Figure pat00045
와 서명
Figure pat00046
로부터 서명 검증 연산
Figure pat00047
을 통해 서명 정보
Figure pat00048
의 유효성을 확인할 수 있으며, 어느 누구도 서명
Figure pat00049
를 다시 계산할 수 없도록 하는 방법을 의미한다. 다시 말해서, 전자 서명의 개인키는 일반적으로 전자 서명과는 다르게 단 한번만 서명에 이용될 수 있다.
임의의 길이 입력 비트를 가지는 값
Figure pat00050
Figure pat00051
비트 길이의 출력값
Figure pat00052
로 압축하는 단방향 암호학적 해시 함수를
Figure pat00053
라고 하자. 입력값
Figure pat00054
Figure pat00055
비트의 길이를 가질 때, 이를
Figure pat00056
으로 표현하고, 출력값
Figure pat00057
Figure pat00058
라 하면, 해시 함수
Figure pat00059
Figure pat00060
의 기능을 수행한다고 할 수 잇다.
일 실시예에 따른 사용자 인증 시스템은 일회용 개인키 기반의 전자 서명과 동형 암호를 이용하여 패스워드 기반의 사용자 인증을 수행할 수 있으며, 사용자 등록 및 사용자 인증의 두 단계로 구성될 수 있다.
도 1은 일 실시예에 따른 사용자 인증 시스템의 네트워크 환경을 설명하기 위한 도면이다.
도 1은 로컬 시스템(100) 및 원격 서버(110)를 나타내고 있다. 도 1에서 화살표는 구성 요소 간에 유/무선 네트워크(120)를 이용하여 데이터가 송수신될 수 있음을 의미한다. 로컬 시스템(100)은 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하도록 구성된 하나 이상의 프로세스들을 실행할 수 있다. 로컬 시스템(100)은 패스워드 관리를 위한 원격 서버(110)에 접속 가능한 모든 단말 장치를 의미할 수 있다.
로컬 시스템(100)은 예를 들면, 스마트 폰(Smart Phone), 태블릿(Tablet), 웨어러블 컴퓨터(Wearable Computer), PC(Personal Computer), 랩탑 컴퓨터(Laptop Computer) 등을 포함할 수 있으며, 이에 한정되는 것은 아니다.
로컬 시스템(100)은 네트워크(120)(예를 들어, 인터넷 혹은 로컬 영역 네트워크 등)에 직접적으로 혹은 간접적으로 결합될 수 있다. 예를 들어, 개인용 컴퓨터와 노트북 컴퓨터는 유선 네트워크 연결을 통해 네트워크(120)에 직접적으로 결합될 수 있다. 랩탑 컴퓨터는 랩탑 컴퓨터와 무선 액세스 포인트(Wireless Access Point)(즉, WAP) 간에 확립된 무선 통신 채널을 통해 네트워크(120)에 무선으로 결합될 수 있다. 스마트 폰은 스마트 폰과 셀룰러 네트워크/브리지 간에 확립된 무선 통신 채널을 통해 네트워크(120)에 무선으로 결합될 수 있다. 이때, 네트워크(120)는 하나 이상의 2차 네트워크들(미도시)과 통신할 수 있으며, 2차 네트워크들의 예로는 로컬 영역 네트워크(Local Area Network), 와이드 영역 네트워크(Wide Area Network), 또는 인트라넷(Intranet)을 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다.
로컬 시스템(100)은 상기에서 설명한 네트워크(120)를 통해 원격 서버(110)와 서로 인터페이스 할 수 있다.
원격 서버(110)는 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하도록 구성된 하나 이상의 프로세스들을 실행할 수 있다. 원격 서버(110)는 로컬 시스템(100)으로부터 전송된 아이디 및 암호문을 등록할 수 있다. 원격 서버(110)는 서버 컴퓨터에 해당되는 것으로, 서버 컴퓨터의 예로는 서버 컴퓨팅 디바이스, 개인용 컴퓨터, 서버 컴퓨터, 일련의 서버 컴퓨터들, 미니 컴퓨터, 및/또는 메인프레임 컴퓨터를 포함할 수 있지만 이러한 것으로만 한정되는 것은 아니다. 서버 컴퓨터는 분산형 시스템일 수 있고, 그리고 서버 컴퓨터의 동작들은 하나 이상의 프로세서들 상에서 동시에 그리고/또는 순차적으로 실행될 수 있다.
도 2는 일 실시예에 따른 사용자 인증 시스템의 구성을 설명하기 위한 블록도이다.
도 2에 도시한 바와 같이, 본 실시예에 따른 사용자 인증 시스템(200)은 프로세서(210), 버스(220), 네트워크 인터페이스(230), 메모리(240) 및 데이터베이스(250)를 포함할 수 있다. 메모리(240)는 운영체제(241) 및 서명 검증 루틴(242)를 포함할 수 있다. 다른 실시예들에서 사용자 인증 시스템(200)은 도 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)는 사용자 인증 시스템(200)의 구성요소들간의 통신 및 데이터 전송을 가능하게 할 수 있다. 버스(220)는 고속 시리얼 버스(High-Speed Serial Bus), 병렬 버스(Parallel Bus), SAN(Storage Area Network) 및/또는 다른 적절한 통신 기술을 이용하여 구성될 수 있다.
네트워크 인터페이스(230)는 사용자 인증 시스템(200)을 컴퓨터 네트워크에 연결하기 위한 컴퓨터 하드웨어 구성요소일 수 있다. 네트워크 인터페이스(230)는 사용자 인증 시스템(200)을 무선 또는 유선 커넥션을 통해 컴퓨터 네트워크에 연결시킬 수 있다.
데이터베이스(250)는 아이디 및 암호문을 저장 및 유지하는 역할을 한다. 이때, 데이터베이스(250)는 예를 들면, 로컬 시스템 및 원격 서버 각각에 존재할 수 있으며, 아이디 및 암호문을 저장할 수 있고, 동형 암호화 키, 전자 서명의 서명 확인을 위한 공개키 및 서명 정보를 저장할 수 있다.
프로세서(210)는 기본적인 산술, 로직 및 사용자 인증 시스템(200)의 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(240) 또는 네트워크 인터페이스(230)에 의해, 그리고 버스(220)를 통해 프로세서(210)로 제공될 수 있다. 프로세서(210)는 본 명세서에서 설명되는 특징들 중 하나 이상의 특징을 수행하기 위한 프로그램 코드를 실행하도록 구성될 수 있다. 이러한 프로그램 코드는 메모리(240)와 같은 기록 장치에 저장될 수 있다.
사용자 인증 시스템(200)은 사용자 등록 및 사용자 인증을 수행할 수 있다.
우선, 사용자 인증 시스템(200)의 사용자 등록 과정을 설명하기로 한다.
사용자 인증 시스템(200)은 로컬 시스템에서 동형 암호를 위한 키
Figure pat00061
와 전자 서명을 위한 키 쌍(공개키
Figure pat00062
, 일회용 개인키
Figure pat00063
)을 생성하고, 서명 정보
Figure pat00064
를 결정할 수 있다.
사용자 인증 시스템(200)은 사용자로부터 아이디(ID)와 제1 패스워드(PW)를 입력받을 수 있고, 해시 함수
Figure pat00065
를 통해 제1 패스워드를 해시하여
Figure pat00066
비트의 결과
Figure pat00067
를 생성할 수 있다. 사용자 인증 시스템(200)은
Figure pat00068
를 이용하여 서명 정보
Figure pat00069
를 서명 생성 연산
Figure pat00070
을 통해 서명을 생성하여
Figure pat00071
비트의 서명 값
Figure pat00072
을 획득하고,
Figure pat00073
를 폐기할 수 있다.
사용자 인증 시스템(200)은
Figure pat00074
Figure pat00075
를 각 비트별로 배타적 논리합(
Figure pat00076
) 연산을 수행하여
Figure pat00077
비트의 결과
Figure pat00078
를 생성할 수 있다. 사용자 인증 시스템(200)은 동형 암호화 방법
Figure pat00079
를 통하여 암호화하여 암호문
Figure pat00080
를 생성할 수 있다.
사용자 인증 시스템(200)에서 로컬 시스템은
Figure pat00081
를 원격 서버로 전송할 수 있고, 원격 서버는 아이디 및 제1 암호문을 저장할 수 있다. 이때, 로컬 시스템은
Figure pat00082
를 저장한다.
다음으로, 사용자 인증 시스템(200)의 사용자 인증 과정을 설명하기로 한다. 사용자 인증 시스템(200)은 '
Figure pat00083
'를 아이디로 가진 사용자가 패스워드를 입력할 때 사용자 인증을 수행하는 과정은 다음과 같다.
사용자 인증 시스템(200)은 로컬 시스템에 사용자로부터 아이디
Figure pat00084
와 패스워드
Figure pat00085
가 입력될 수 있다. 사용자 인증 시스템(200)는 사용자가 입력한 패스워드를 해시 함수
Figure pat00086
로 해시하여
Figure pat00087
비트
Figure pat00088
를 생성할 수 있다.
사용자 인증 시스템(200)은 동형 암호화 방법
Figure pat00089
를 통해 암호화하여 암호문
Figure pat00090
를 생성할 수 있다. 사용자 인증 시스템은 로컬 시스템에서
Figure pat00091
를 원격 서버에 전송할 수 있다. 사용자 로컬 시스템은 원격 서버에서 아이디
Figure pat00092
에 대해 사용자 등록 과정에서 저장한
Figure pat00093
를 이용하여
Figure pat00094
를 각각 계산한 결과
Figure pat00095
를 로컬 시스템으로 전송할 수 있다.
사용자 인증 시스템(200)은 로컬 시스템에서 수신한 암호문들 (
Figure pat00096
)에 대해 동형 암호화 키
Figure pat00097
를 이용하여
Figure pat00098
를 계산하여 결과 값
Figure pat00099
를 계산할 수 있다.
사용자 인증 시스템(200)은
Figure pat00100
Figure pat00101
로부터
Figure pat00102
로 서명 검증을 수행할 수 있고, 검증이 성공적일 경우 사용자의 로그인을 허용하고, 그렇지 않을 경우 로그인을 거부할 수 있다.
일 실시예에 따른 사용자 인증 시스템은 위와 같은 내용으로 구성한 패스워드 기반 사용자 인증 방법을 통하여 다음과 같은 성질을 만족한다.
1: 패스워드를 통한 정상적인 사용자 인증 기능 제공: 만약, 사용자가 정상적인 패스워드를 입력하였다면,
Figure pat00103
에 대해
Figure pat00104
일 것이므로,
Figure pat00105
가 성립한다. 이에 따라
Figure pat00106
는 성공적으로 수행된다.
2: 로컬 시스템의 완전 탈취 시 패스워드 보호: 로컬 시스템에는 동형 암호를 위한
Figure pat00107
와 일회용 개인키 기반 전자 서명의 서명 확인을 위한 키
Figure pat00108
서명 정보
Figure pat00109
가 저장되어 있다. 로컬 시스템이 해커에 의해 공격당하는 경우에, 공격자는 동형 암호문을 암/복호화할 수 있고, 전자 서명을 확인하고, 해당 서명 정보가
Figure pat00110
와 일치하는지 확인할 수 있다. 그러나 이 정보들로는 패스워드를 복구할 수 없으며, 서명도 할 수 없으므로 동형 암호문을 만들 수 있다 하여도 인증 서버를 이용한 공격조차 불가능하다.
예를 들어,
Figure pat00111
Figure pat00112
를 각 비트별로 배타적 논리합(
Figure pat00113
) 연산을 수행하여
Figure pat00114
비트의 결과
Figure pat00115
를 생성하는 과정을 수행하는 대신 단순히 패스워드의 해시 값
Figure pat00116
를 이용해
Figure pat00117
만을 계산하여 원격 서버에 저장하도록 설계할 경우, 로컬 시스템이 완전히 탈취된 경우, 인증 서버를 이용한 다음과 같은 공격이 가능하다. 공격자가 사용자를 사칭하여 전부 0으로만 구성된
Figure pat00118
비트 평문을 암호화하여 인정 서버에게 인증 요청을 하게 되면, 원격 서버는
Figure pat00119
에 대한
Figure pat00120
를 계산하기 때문에 로컬 시스템의 공격자가
Figure pat00121
를 계산하여 패스워드 원문을 획득할 수 있다.
그러나 본 발명에서 제안하는 방법은 암호화하는 대상이
Figure pat00122
이므로, 상기와 같이 전부 0으로만 구성된
Figure pat00123
비트 평문을 암호화하여 인증 서버에게 인증 요청을 하여도 공격자는
Figure pat00124
만을 복구할 수 있다.
Figure pat00125
Figure pat00126
중 하나를 생성할 수 없다면,
Figure pat00127
Figure pat00128
를 분리할 수 없으므로, 로컬 시스템이 완전히 탈취되어도 패스워드를 안전하게 보호할 수 있다.
3: 원격 서버에 의한 사전 공격(Dictionary Attack) 방지: 사용자 인증을 위한 원격 서버는 패스워드 원본이나 해시 값을 저장하는 것이 아니라 동형 암호문들만을 저장하고 있으므로, 사전 공격을 수행할 수 없다. 원격 서버를 공격하여 저장된 암호문
Figure pat00129
들을 획득하더라도 이들을 복호화하여
Figure pat00130
을 복원하고 사전 공격을 수행하여 이로부터 패스워드를 유추하기 위해서는 동형 암호화 키
Figure pat00131
와 공개키
Figure pat00132
서명 정보
Figure pat00133
를 알아야 하는데, 이 정보들은 로컬 시스템만이 알고 있다. 만약 로컬 시스템을 해킹하여 동형 암호 키
Figure pat00134
를 획득한 공격자가 원격 서버까지 성공적으로 공격하였다면 패스워드 사전 공격이 가능하지만, 해커가 로컬 시스템 및 원격 서버를 동시에 공격하여 성공하는 상황은 발생하기 어렵다.
도 3은 일 실시예에 따른 사용자 인증 시스템의 사용자 등록 과정을 설명하기 위한 흐름도이다.
사용자 인증 시스템은 사용자 등록 과정 및 사용자 인증 과정을 수행할 수 있다. 사용자 인증 시스템은 로컬 시스템(300)과 원격 서버(301) 사이의 동작을 통하여 사용자 등록 과정을 설명하기로 한다.
로컬 시스템(300)은 동형 암호화 키와 전자 서명을 위한 공개키 및 일회용 개인키를 포함하는 키쌍을 생성하고, 서명 정보를 결정할 수 있다(311). 로컬 시스템(300)은 사용자로부터 아이디 및 패스워드가 입력됨에 따라 패스워드를 해시하여 제1 패스워드의 해시 값을 생성할 수 있다(312).
로컬 시스템(300)은 서명 정보를 서명 생성 연산에 기초하여 서명을 생성하여 서명 값을 획득할 수 있고, 일회용 개인키를 폐기할 수 있다(313). 로컬 시스템(300)은 해시 값 및 서명 값을 각 비트별로 배타적 논리합 연산을 수행하여 배타적 논리합 연산 결과를 생성할 수 있다(314).
로컬 시스템(300)은 동형 암호화 방법을 이용하여 배타적 논리합 연산 결과를 암호화하여 암호문을 생성할 수 있다. 로컬 시스템(300)은 원격 서버(301)로 아이디 및 암호문을 전송할 수 있다. 원격 서버(301)는 로컬 시스템(300)으로부터 전송된 아이디 및 암호문을 수신함에 따라 아이디 및 암호문을 저장할 수 있다(316). 이때, 로컬 시스템(300)은 동형 암호화 키, 전자 서명의 서명 확인을 위한 공개키 및 서명 정보를 저장할 수 있다.
도 4는 일 실시예에 따른 사용자 인증 시스템의 사용자 인증 과정을 설명하기 위한 흐름도이다.
사용자 인증 시스템은 사용자 등록 과정 및 사용자 인증 과정을 수행할 수 있다. 사용자 인증 시스템은 로컬 시스템(400)과 원격 서버(401) 사이의 동작을 통하여 사용자 인증 과정을 설명하기로 한다.
로컬 시스템(400)은 사용자로부터 아이디 및 패스워드가 입력됨에 따라 사용자가 입력한 패스워드를 해시 함수로 해시하여 해시 값을 생성할 수 있다(411). 로컬 시스템(400)은 동형 암호화 방법을 이용하여 패스워드의 해시 값을 암호화하여 패스워드에 대한 암호문을 생성할 수 있다(412). 로컬 시스템(400)은 아이디와 암호문을 원격 서버(401)로 전송할 수 있다. 원격 서버(401)는 로컬 시스템(400)으로부터 전송된 아이디 및 암호문을 수신함에 따라 아이디에 대응하는 암호문을 추출할 수 있다(413). 원격 서버(401)는 암호문 간의 연산을 수행할 수 있다(414).
원격 서버(401)는 암호문 간의 연산 결과를 로컬 시스템(400)에 전송할 수 있다. 로컬 시스템(400)은 연산 결과에 대하여 동형 암호화 키를 이용하여 복호화를 수행할 수 있다(415). 로컬 시스템(400)은 복호화를 수행한 결과에 기초하여 사용자 인증을 처리할 수 있다(416). 로컬 시스템(400)은 복호화를 수행한 결과 및 서명자의 공개키로부터 서명 검증 연산을 통하여 서명 검증을 수행할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (7)

  1. 사용자 인증 방법에 있어서,
    아이디 및 제1 패스워드가 입력됨에 따라 제1 암호화를 수행하여 생성된 제1 암호문을 상기 아이디와 함께 원격 서버에 등록하는 단계;
    사용자로부터 상기 아이디 및 제2 패스워드가 입력되는 단계;
    상기 사용자로부터 입력된 제2 패스워드를 해시 함수로 해시하여 해시 값을 생성하는 단계;
    동형 암호화 방법을 이용하여 상기 제2 패스워드의 해시 값을 암호화하여 상기 제2 패스워드에 대한 제2 암호문을 생성하는 단계;
    상기 아이디와 상기 제2 암호문을 상기 원격 서버로 전송하고, 상기 원격 서버로부터 상기 제1 암호문과 상기 제2 암호문 간의 연산 결과를 수신하는 단계;
    상기 연산 결과에 대하여 동형 암호화 키를 이용하여 복호화를 수행하는 단계; 및
    상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계
    를 포함하는 사용자 인증 방법.
  2. 제1항에 있어서,
    상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계는,
    서명을 위한 개인키를 보유한 서명자의 서명 정보를 서명 생성 연산을 기반으로 서명을 생성한 후, 상기 개인키를 폐기하고, 상기 서명자의 공개키와 상기 생성된 서명으로부터 서명 검증을 통하여 상기 서명 정보의 유효성을 판단하고, 상기 서명에 대한 재계산이 불가능하도록 개인키 기반의 전자 서명을 수행하는 단계
    를 포함하는 사용자 인증 방법.
  3. 제1항에 있어서,
    상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계는,
    상기 복호화를 수행한 결과 및 서명자의 공개키로부터 서명 검증 연산을 통하여 서명 검증을 수행하는 단계
    를 포함하는 사용자 인증 방법.
  4. 제1항에 있어서,
    상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 단계는,
    서명 검증이 성공적일 경우, 상기 아이디의 로그인을 허용하고, 상기 서명 검증이 비성공적일 경우, 상기 아이디의 로그인을 거부하는 단계
    를 포함하는 사용자 인증 방법.
  5. 제1항에 있어서,
    상기 아이디 및 상기 제1 패스워드가 입력됨에 따라 제1 암호화를 수행하여 생성된 제1 암호문을 상기 아이디와 함께 원격 서버에 등록하는 단계는,
    상기 동형 암호화 키와 전자 서명을 위한 공개키 및 일회용 개인키를 포함하는 키쌍을 생성하고, 서명 정보를 결정하는 단계;
    사용자로부터 상기 아이디 및 상기 제1 패스워드가 입력됨에 따라 상기 제1 패스워드를 해시하여 상기 제1 패스워드의 해시 값을 생성하는 단계;
    상기 서명 정보를 서명 생성 연산에 기초하여 서명을 생성하여 서명 값을 획득하고, 상기 일회용 개인키를 폐기하는 단계;
    상기 해시 값 및 상기 서명 값을 각 비트별로 배타적 논리합 연산을 수행하여 배타적 논리합 연산 결과를 생성하는 단계;
    상기 동형 암호화 방법을 이용하여 상기 배타적 논리합 연산 결과를 암호화화여 제1 암호문을 생성하는 단계; 및
    상기 원격 서버로 상기 아이디 및 상기 제1 암호문을 전송하여 상기 원격 서버 상에 등록하는 단계
    를 포함하는 사용자 인증 방법.
  6. 제5항에 있어서,
    상기 원격 서버로 상기 아이디 및 상기 제1 암호문을 전송하여 상기 원격 서버 상에 등록하는 단계는,
    상기 동형 암호화 키, 상기 전자 서명의 서명 확인을 위한 공개키 및 서명 정보가 저장되는 단계
    를 포함하는 사용자 인증 방법.
  7. 적어도 하나의 프로그램이 로딩된 메모리; 및
    적어도 하나의 프로세서
    를 포함하고,
    상기 적어도 하나의 프로세서는, 상기 프로그램의 제어에 따라,
    동형 암호화 키와 전자 서명을 위한 공개키 및 일회용 개인키를 포함하는 키쌍을 생성하고, 서명 정보를 결정하는 과정;
    아이디 및 제1 패스워드가 입력됨에 따라 상기 제1 패스워드를 해시하여 상기 제1 패스워드의 해시 값을 생성하는 과정;
    상기 서명 정보를 서명 생성 연산에 기초하여 서명을 생성하여 서명 값을 획득하고, 상기 일회용 개인키를 폐기하는 과정;
    상기 해시 값 및 상기 서명 값을 각 비트별로 배타적 논리합 연산을 수행하여 배타적 논리합 연산 결과를 생성하는 과정;
    상기 동형 암호화 방법을 이용하여 상기 배타적 논리합 연산 결과를 암호화화여 제1 암호문을 생성하는 과정;
    원격 서버로 상기 아이디 및 상기 제1 암호문을 전송하여 상기 원격 서버 상에 등록하는 과정;
    사용자로부터 상기 아이디 및 제2 패스워드가 입력되는 과정;
    상기 사용자로부터 입력된 제2 패스워드를 해시 함수로 해시하여 해시 값을 생성하는 과정;
    동형 암호화 방법을 이용하여 상기 제2 패스워드의 해시 값을 암호화하여 상기 제2 패스워드에 대한 제2 암호문을 생성하는 과정;
    상기 아이디와 상기 제2 암호문을 상기 원격 서버로 전송하고, 상기 원격 서버로부터 상기 제1 암호문과 상기 제2 암호문 간의 연산 결과를 수신하는 과정;
    상기 연산 결과에 대하여 동형 암호화 키를 이용하여 복호화를 수행하는 과정; 및
    상기 복호화를 수행한 결과에 기초하여 상기 아이디를 이용한 사용자 인증을 처리하는 과정
    을 처리하는 사용자 인증 시스템.
KR1020150155350A 2015-11-05 2015-11-05 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법 KR101739203B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150155350A KR101739203B1 (ko) 2015-11-05 2015-11-05 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150155350A KR101739203B1 (ko) 2015-11-05 2015-11-05 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법

Publications (2)

Publication Number Publication Date
KR20170053063A true KR20170053063A (ko) 2017-05-15
KR101739203B1 KR101739203B1 (ko) 2017-05-23

Family

ID=58739464

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150155350A KR101739203B1 (ko) 2015-11-05 2015-11-05 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법

Country Status (1)

Country Link
KR (1) KR101739203B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190138384A (ko) * 2018-06-05 2019-12-13 아이리텍 잉크 분산 생체인증 시스템을 사용한 블록체인 상에서 신원 관리 방법
WO2020032351A1 (ko) * 2018-08-07 2020-02-13 한국스마트인증 주식회사 익명 디지털 아이덴티티 수립 방법
KR102084699B1 (ko) * 2019-08-22 2020-03-04 주식회사 알비엔 Otpa 블록체인 기반의 지역경제순환시스템
CN112749402A (zh) * 2021-01-07 2021-05-04 苍穹数码技术股份有限公司 电子数据的处理方法、装置、电子设备及存储介质
KR102466015B1 (ko) * 2021-06-21 2022-11-11 주식회사 크립토랩 동형 암호문을 처리하는 서버 장치 및 그 방법
KR20230045279A (ko) * 2021-09-28 2023-04-04 건국대학교 산학협력단 동형 암호화를 사용한 도커 이미지 인증 장치 및 방법

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102602119B1 (ko) 2018-04-06 2023-11-15 주식회사 크립토랩 블록체인 및 동형암호 기술을 이용하여 데이터를 공유하는 사용자 장치와 전자장치 및 그 방법들

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101475747B1 (ko) 2014-01-22 2014-12-23 고려대학교 산학협력단 동형 암호를 이용한 다자간 위탁 연산 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190138384A (ko) * 2018-06-05 2019-12-13 아이리텍 잉크 분산 생체인증 시스템을 사용한 블록체인 상에서 신원 관리 방법
WO2020032351A1 (ko) * 2018-08-07 2020-02-13 한국스마트인증 주식회사 익명 디지털 아이덴티티 수립 방법
KR102084699B1 (ko) * 2019-08-22 2020-03-04 주식회사 알비엔 Otpa 블록체인 기반의 지역경제순환시스템
CN112749402A (zh) * 2021-01-07 2021-05-04 苍穹数码技术股份有限公司 电子数据的处理方法、装置、电子设备及存储介质
CN112749402B (zh) * 2021-01-07 2024-04-23 苍穹数码技术股份有限公司 电子数据的处理方法、装置、电子设备及存储介质
KR102466015B1 (ko) * 2021-06-21 2022-11-11 주식회사 크립토랩 동형 암호문을 처리하는 서버 장치 및 그 방법
KR20230045279A (ko) * 2021-09-28 2023-04-04 건국대학교 산학협력단 동형 암호화를 사용한 도커 이미지 인증 장치 및 방법

Also Published As

Publication number Publication date
KR101739203B1 (ko) 2017-05-23

Similar Documents

Publication Publication Date Title
US11757662B2 (en) Confidential authentication and provisioning
KR101739203B1 (ko) 일회용 개인키 기반 전자 서명과 동형 암호를 이용한 패스워드 기반 사용자 인증 방법
US10797879B2 (en) Methods and systems to facilitate authentication of a user
CN108809646B (zh) 安全共享密钥共享系统
RU2718689C2 (ru) Управление конфиденциальной связью
KR101727660B1 (ko) 하나의 장치를 이용하여 다른 장치를 언로크하는 방법
Das et al. A secure and efficient uniqueness-and-anonymity-preserving remote user authentication scheme for connected health care
CN112425118B (zh) 公钥-私钥对账户登录和密钥管理器
WO2016026031A1 (en) Methods and systems for client-enhanced challenge-response authentication
JP6927981B2 (ja) パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。
US9942042B1 (en) Key containers for securely asserting user authentication
US11153074B1 (en) Trust framework against systematic cryptographic
US20210073359A1 (en) Secure one-time password (otp) authentication
Das A secure and robust password-based remote user authentication scheme using smart cards for the integrated epr information system
Mun et al. A novel secure and efficient hash function with extra padding against rainbow table attacks
CN111291398B (zh) 基于区块链的认证方法、装置、计算机设备及存储介质
CN114553566B (zh) 数据加密方法、装置、设备及存储介质
JP6037450B2 (ja) 端末認証システムおよび端末認証方法
KR102094606B1 (ko) 인증 장치 및 방법
EP3361670B1 (en) Multi-ttp-based method and device for verifying validity of identity of entity
US11528144B1 (en) Optimized access in a service environment
Li et al. Robust dynamic ID–based remote user authentication scheme using smart cards
KR102145679B1 (ko) Https 프로토콜에서 mitm 공격을 회피하는 방법
CN114338052B (zh) 一种身份认证的实现方法及装置
TWI746504B (zh) 實現會話標識同步的方法及裝置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant