KR100654933B1 - 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법 - Google Patents

사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법 Download PDF

Info

Publication number
KR100654933B1
KR100654933B1 KR1020050093374A KR20050093374A KR100654933B1 KR 100654933 B1 KR100654933 B1 KR 100654933B1 KR 1020050093374 A KR1020050093374 A KR 1020050093374A KR 20050093374 A KR20050093374 A KR 20050093374A KR 100654933 B1 KR100654933 B1 KR 100654933B1
Authority
KR
South Korea
Prior art keywords
certificate
short
user
value
user terminal
Prior art date
Application number
KR1020050093374A
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 KR1020050093374A priority Critical patent/KR100654933B1/ko
Application granted granted Critical
Publication of KR100654933B1 publication Critical patent/KR100654933B1/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/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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]

Abstract

본 발명은 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서의 발급, 변경 및 폐기를 포함하는 인증서비스를 제공하는 인증시스템 및 인증방법에 관한 것이다.
본 발명에 따르는 인증시스템은, 마스터인증서를 발급받고, 마스터인증서정보의 인자값(CI, s, r)을 클라이언트 및 서버에 분산하여 저장하고, 사용자의 비밀번호 입력 인스턴스마다 고유한 개인키를 생성하여 메시지에 전자서명 연산을 수행하고, 사용자정보에 암호화 연산을 수행하고, 단기인증서 발급요청을 전송하여 단기인증서를 전송받고, 전자문서를 수신자에게 전송하고, 수신받은 전자문서에 대하여 전자서명 검증 연산을 수행하여 인증서비스를 제공받는 사용자단말; 마스터인증서를 발급하는 마스터인증서 발급서버; 및 마스터인증서정보의 인자값을 등록받고, 단기인증서 발급요청을 전송받아 공개키를 포함하는 단기인증서를 생성하여 전송하는 인증서비스를 제공하는 단기인증서 발급서버를 포함한다. 본 발명에 따르면, 사용자의 패스워드 입력 인스턴스마다 연산을 통하여 인증키 및 인증서를 생성하기에 외부 공격자로부터 안전하게 전자문서를 교환할 수 있다.
패스워드, 인증, 개인키, 공개키, 검증, 전자문서, 발급, 변경, 폐기

Description

사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를 인증하는 인증시스템 및 인증방법{System and its method for authenticating dynamically created certificate by user's password input}
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술하는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니된다.
도 1은 본 발명의 일 실시예에 따른 인증시스템의 구성도.
도 2는 본 발명의 일 실시예에 따른 마스터인증서 발급서버의 내부 구조도.
도 3은 본 발명의 일 실시예에 따른 단기인증서 발급서버의 내부 구조도.
도 4는 본 발명의 일 실시예에 따른 사용자단말의 내부 구조도.
도 5는 본 발명의 일 실시예에 따른 인증방법의 전체 순서도.
도 6은 본 발명의 일 실시예에 따른 마스터인증서 발급과정의 상세 순서도.
도 7은 본 발명의 일 실시예에 따른 푸시모델에 따른 단기인증서 발급과정의 상세 순서도.
도 8은 본 발명의 일 실시예에 따른 풀모델에 따른 단기인증서 발급과정의 상세 순서도.
도 9는 본 발명의 일 실시예에 따른 사용자단말의 인증서 변경과정의 상세 순서도.
도 10은 본 발명의 일 실시예에 따른 사용자단말 및 단기인증서 발급서버의 인증서 변경과정의 상세 순서도.
도 11은 본 발명의 일 실시예에 따른 단기인증서 즉시 폐기 과정의 상세 순서도.
* 도면의 주요 부분에 대한 부호의 설명 *
1 : 인증시스템 2 : 사용자단말
3 : 마스터인증서 발급서버 4 : 단기인증서 발급서버
21 : 마스터인증서 관리부 22 : 마스터인증서 등록부
23 : 푸시모델 전송부 24 : 푸시모델 수신부
25 : 풀모델 전송부 26 : 풀모델 수신부
27 : 제 1인증서 변경부 28 : 제 2인증서 변경부
29 : 인증서 폐기부
본 발명은 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를 인증하는 인증시스템 및 인증방법으로서, 더욱 상세하게는, 사용자의 패스워드 입력 인스턴스마다 소정의 연산을 수행하여 동적으로 생성되는 인증서의 발급, 변경 및 폐기 의 인증서비스를 제공하는 시스템 및 방법에 관한 것이다.
사용자 인증서버스에 있어서, 보편적으로 사용되는 방법으로서는 종래의 공개키 기반 구조(PKI:Public Key Infrastructure)하에서 인증기관이 발급한 공개키 인증서를 검증하는 것이 있다.
종래 공개키 기반구조는 인증기관이 사용자에게 한 쌍의 공개키, 개인키(비밀키)를 생성하여 인증서를 부여한다. 공개키는 인증기관에서 공중에 공개되며 개인키는 오직 사용자 단 한 사람에게만 부여된다.
이와 같은 구조에서 A사용자가 본인의 문서임을 증명하여 B사용자에게 전자문서(메시지)를 보낼 때에는 다음과 같은 원리에 기반한다. A는 전자 문서를 자신의 개인키로 서명하고 공개키를 포함하는 인증서를 첨부하여 B사용자에게 전송한다. B사용자는 전자문서를 전송받고 인증서를 검증하고 A사용자인지 확인한 후 A의 공개키로 서명을 검증하여 참인 경우 A 사용자가 진정으로 보낸 문서임을 확인할 수 있다.
또한, A사용자가 B사용자만 읽을 수 있는 전자문서를 송부할 때에는 다음과 같은 원리에 기반한다. A사용자는 B의 공개키로 전자문서를 암호화여 B사용자에게 전송하고, B사용자는 자신의 비밀키로 복호화한다. 이와 같은 문서는 오직 B사용자 단 한 사람만이 해독하여 읽을 수 있는 문서이다(서명과 암호화는 다른 것임).
전술한 종래 인증서의 경우, 사용자가 인증기관으로부터 인증서를 한 번 발급받으면 폐기 후 새 인증서를 받기 전까지는 변경이 불가능하였다. 또한, 종래 인증서에는 사용자의 고정된 개인키 또는 개인키 + 공개키가 함께 저장되어 사용자는 제 3자에게 개인키가 노출되지 않도록 관리에 주의를 기울여야 하는 문제점이 있었다.
또한, 사용자가 인증서를 저장하는 방법으로는 하드웨어 스마트카드를 이용하는 것이 가장 안정적이다. 그러나 대부분의 사용자는 별도의 스마트카드 판독기를 구매하여 인증서를 저장하는 것보다 간편하게 하드디스크 저장방식을 이용하고 있는 실정이다. 하드디스크에 저장된 개인키는 패스워드로 암호화된 형태로 저장되는데 이런 암호화된 파일은 공격자에게 노출되었을 경우 사전공격(Dictionary attack)같은 공격에 취약하다는 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위한 것으로서, 하드웨어 스마트카드 없이 사전공격과 같은 제 3자의 공격으로부터 안전하게 공개키 기술을 사용할 수 있도록 사용자가 비밀번호를 입력하는 인스턴스마다 고유한 개인키 및 공개키를 생성하는 인증서 이용 기술을 제시하는 것이다.
또 다른 발명의 목적들은 다음과 같다.
1. 전수공격 (exhaustive key search attack) 방지 : 모든 가능한 키 값을 일일이 대입한 후 맞는 키 값을 찾아내는 공격
2. 내부자공격(insider attack) 방지 : 패스워드가 서버에 저장될 경우, 서버의 내부자가 패스워드에 접근하여 획득한 후 필요한 자원에 접근하는 공격
3. 사회공격 (social attack) 방지 : 사용자가 기억하기 쉽도록 자신의 정보(생일, 전화번호)로 패스워드를 설정한 경우, 사용자의 사회정보를 이용하여 패스 워드를 유추해 내는 공격, 패스워드 피싱도 일종의 사회 공격
4. 단일점 실패 (single point of failure) 방지 : 패스워드가 서버에 저장될 경우 서버의 보안이 깨짐에 따라 패스워드가 유출되는 공격
5. 포워드 보안(forward secrecy)을 제공 : 하나의 키가 공격자에게 노출되더라도 다른 키들은 안정한 경우. 예를 들면 특정 패스워드가 노출되더라도 그 패스워드에 기반하여 생성된 다른 키는 공격자가 알 수 없는 경우.
6. 점진적 보안(proactive security)을 제공하는 방법을 제시 : 비밀분산(secret sharing)은 t개의 컴퓨터에 분산하여 정보를 저장하고 n개의 정보를 알 때 암호화 연산(예를 들어 서명)을 수행할 수 있다. 여기서, 점진적 보안이란 여러 곳에 분산되어 있는 비밀정보를 바꿈으로써, 공격자가 n보다 작은 컴퓨터들을 해킹하고 필요한 정보를 획득했을 때 이 획득된 정보들을 무용지물로 만드는 기술.
7. 즉시 폐기(instant revocation)를 제공 : 사용자의 인증서가 폐기되면 인증서 폐기 목록(CRL)에 등록해야 하지만 인증서 폐기 목록없이 폐기하는 기술.
전술한 바와 같은 목적을 달성하기 위한 본 발명의 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를 인증하는 인증시스템에 따르면, 유무선 네트워크를 통하여 사용자의 비밀번호 입력 인스턴스마다 고유하게 생성되는 인증키(개인키, 공개키) 및 인증서의 발급/변경/폐기의 인증서비스를 제공하는 인증시스템에 있어서, 마스터인증서 발급요청을 전송하여 마스터인증서를 발급받고, 상기 마스터인증서정보의 인자값(CI, s, r)을 클라이언트 및 서버에 분산하여 저장하고, 사용 자의 비밀번호 입력 인스턴스마다 고유한 개인키를 생성하여 메시지에 전자서명 연산을 수행하고, 사용자정보에 암호화 연산을 수행하고, 단기인증서 발급요청을 전송하여 단기인증서를 전송받고, 전자서명한 전자문서를 수신자에게 전송하고, 수신받은 상기 전자문서에 대하여 전자서명 검증 연산을 수행하여 인증서비스를 제공받는 사용자단말; 상기 사용자단말로부터 상기 마스터인증서 발급요청을 전송받고, 상기 마스터인증서를 생성하여 응답하는 마스터인증서 발급서버; 및 상기 사용자단말로부터 상기 인자값을 등록받고, 상기 단기인증서 발급요청을 전송받아 상기 개인키에 대응하여 고유하게 생성되는 공개키를 포함하는 상기 단기인증서를 생성하여 전송하는 인증서비스를 제공하는 단기인증서 발급서버를 포함하는 것을 특징으로 한다.
또한, 본 발명의 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를 인증하는 인증방법에 따르면, 유무선 네트워크를 통하여 사용자의 비밀번호 입력 인스턴스마다 변경되는 인증키(개인키, 공개키) 및 인증서의 발급/변경/폐기의 인증서비스를 제공하는 인증방법에 있어서, (1)사용자단말이 마스터인증서 발급서버로 마스터인증서 발급요청을 전송하여 마스터인증서를 전송받는 단계; (2)전송받은 상기 마스터인증서의 정보를 상기 사용자단말 및 단기인증서 발급서버에 분산하여 저장하는 단계; (3)즉시 폐기를 위한 인증값을 저장매체에 백업하는 단계; (4)푸시모델에 의거하여 단기인증서 발급서버로부터 단기인증서를 전송받고 수신측 사용자단말로 전자서명된 전자문서를 전송하고, 수신측 사용자단말이 상기 전자문서를 검증하는 단계; (5)풀모델에 의거하여 전자서명된 전자문서를 수신측 사용자단말로 전송하고, 수신측 사용자단말에서 단기인증서 발급서버로부터 단기인증서를 전송받아 상기 전자문서를 검증하는 단계; (6)사용자의 패스워드와 마스터 인증서의 인자값 s를 변경하는 단계; (7)사용자의 패스워드와 마스터 인증서의 인자값 s를 변경하고, 상기 단기인증서 발급서버에 저장된 인자값 r을 변경하는 단계; 및 (8)상기 단기인증서 발급서버로 상기 인증값을 포함하는 단기인증서 즉시 폐기요청을 전송하여 인증서비스를 해지하는 단계를 포함하는 것을 특징으로 한다.
이하, 이상과 같은 구성요소 들을 포함하여 이루어진 본 발명의 바람직한 일 실시예를 첨부 도면을 통하여 보다 구체적으로 살펴본다.
<1. 본 발명의 기호 정의>
먼저, 설명에 앞서 아래 표 1은 본 발명에서 사용되는 기호를 정의한다.
기호 설명
|| 접합(concatenation)을 나타낸다. (ex. 123||456= 123456)
a ∈ RA 집합 A에서 랜덤 원소 a를 선택하는 것을 나타낸다.
Zp * 집합 {1,2 ......, p-1} (여기서 p는 소수)를 나타낸다. (ex. P를 5라 가정할 때 Zp *= {1,2,3,4})
Zp 집합 {0, 1, ......, p-1}를 나타낸다. (ex. P를 5라 가정할 때 Zp= {0, 1,2,3,4})
Sx(m) 메시지(전자문서) m에 대한 개인키 x를 이용한 전자서명 연산을 나타낸다. 그 결과는 서명값은 σ이다.
Vy(m, σ) 공개키 y를 이용한 메시지 m과 그에 대응하는 서명값 σ에 대한 검증 연산을 나타낸다. 계산 결과값은 참 또는 거짓이다.
h() : {0, 1}* -> Zq* 단방향 해쉬 함수
ex(e1, e2, ...) 개인키 x로 엘리먼트 e1, e2 ... 을 암호화하는 암호화 함수
<2. 인증시스템>
2.1 인증시스템의 구성
도 1은 본 발명의 일 실시예에 따른 인증시스템(1)의 구성을 도시한다.
본 발명의 일 실시예에 따른 인증시스템(1)은 유무선 네트워크를 통하여 연결되는 사용자단말(2), 마스터인증서 발급서버(3) 및 단기인증서 발급서버(4)를 포함하여 구성된다.
상기 사용자단말(2)에는 인증서관리 프로그램이 설치되고, 그 프로그램은 서버(3, 4)와 유무선 네트워크상에서 데이터를 송수신하여 인증서의 발급, 생성, 변경 및 폐기를 포함하는 인증서비스를 인터페이스한다. 본 발명에서 사용자는 마스터인증서(MPC : master password certificate)와 단기인증서(SLC : short-lived certificate) 2가지를 사용한다. 마스터인증서(MPC)는 본 발명의 인증서비스를 제공받기 위하여 처음에 한 번만 발급받는 인증서로서, 그 인증서정보는 사용자단말(2) 및 단기인증서 발급서버(4)에 분산되어 저장된다. 단기인증서(SLC)는 마스터인증서의 전제(신뢰)하에서 사용자의 전자문서 송수신시에 인증서 발급 인스턴스마다 소정의 연산을 통하여 매번 변경되는 값으로 동적 생성된다. 즉, 마스터인증서는 본 발명의 인증서비스를 받기 위한 허가 또는 자격조건을 판단하는데 요구되는(required/static) 인증서 개념이며, 단기인증서는 그 마스터인증서를 신뢰하며 실제로 사용자가 인증서를 발급할 때마다 변경되는 (selective/dynamic) 인증서 개념이다.
또한, 인증서 관리 프로그램은 사용자의 패스워드 입력에 따라 고유한 개인키를 생성하고, 그 개인키로 개별적인 인증서비스 요청 메시지(발급(생성), 변경, 폐기)를 암호학적 연산을 통하여 생성되는 서명값을 단기인증서 발급서버(4)로 전송하고, 단기인증서 발급서버(4)로부터 처리 결과를 수신한다.
상기 마스터인증서 발급서버(3)는 사용자단말(2)로부터 마스터인증서 발급요청을 전송받고 마스터인증서를 발급한다. 마스터인증서는 본 발명의 인증서비스를 이용하기 위해서 최초로 한 번만 발급되는 인증서이다. 마스터인증서를 구성하는 정보(인자값) 중에서 일부 인자값은 사용자단말(2)에 저장되고 나머지 인자값은 단기인증서 발급서버(4)에 저장된다.
상기 단기인증서 발급서버(4)는 마스터인증서 정보의 일부를 전송받아 저장하고, 사용자의 단기인증서 생성(발급), 변경, 폐기 요청에 대한 메시지를 전송받고 사용자의 유효성을 판단한다. 사용자의 유효성 판단과정은 사용자의 개인키에 대응하는 공개키를 연산하여 생성하고, 그 공개키로 메시지의 서명값을 검증하여 사용자의 전자서명을 검증 연산하는 것이다. 검증이 성공일 경우 사용자의 요청에 따라 단기인증서를 발급, 변경 또는 폐기한다.
전술한 바와 같이, 본 발명의 기술에서는 사용자의 개인키가 사용자단말(2)에서 사용자의 패스워드 입력 인스턴스마다 소정의 연산을 통하여 동적 생성되고, 대응하는 공개키 역시 단기인증서 발급서버(4)에서 소정의 연산을 통하여 동적 생성된다. 이처럼 인증키(개인키 및 공개키)가 고정되는 것이 아니라 소정의 연산을 통하여 동적 생성되는 기술은 전술한 전수공격, 포워드 보안을 차단하는 원인이 된다. 또한, 마스터인증서 정보가 사용자단말(2) 및 단기인증서 발급서버(4)에 분산되어 저장된다. 이처럼 마스터인증서 정보의 분산저장은 전술한 내부자 공격, 사회공격, 단일점 실패, 점진적 보안 기술을 제공하는 원인이 된다.
2.2 마스터인증서 발급서버의 내부 구조
도 2는 본 발명의 일 실시예에 따른 마스터인증서 발급서버(3)의 내부 구조를 도시한다.
본 발명의 일 실시예에 따른 마스터 인증서 발급서버(3)는 인증정보 공개부(31) 및 마스터인증서 발급부(32)를 포함하여 구성된다.
상기 인증정보 공개부(31)는 사전 구축을 통하여 인증서비스 제공을 위한 소정값과 공개키를 공개한다. 도메인 파라미터로 q|p-1되는 큰 소수 p, q를 선택하고 크기가 q가 되는 곱하기 부분 그룹(subgroup)의 생성자 g를 생성하여 도메인 파라미터 (p, q, g)와 일방향 해쉬함수 h()를 공개한다. 그리고 개인키 xca RZq *를 선택하고 공개키 yca = gXca mod p를 계산한 후 공개키 yca를 공개한다. 여기서, 공개는 요청에 의하여 누구라도 조회할 수 있다는 것이다.
상기 마스터인증서 발급부(32)는 사용자단말(2)로부터 사용자정보 IDA 및 r'를 포함하는 마스터인증서 발급요청을 전송받고, 임의값 k RZq * 를 선택하고, 사용자ID, 발행자 ID, 유효 기간 등을 포함하는 인증서정보 CI(certificate information)를 생성하고, 수학식 s'= -xca·h(CI||r) - k mod q 및 r = r'·gk mod p을 연산하고, 인자값 CI, s' r을 포함하는 마스터인증서정보(은닉 MPC(CI, s', r))를 사용자단말(2)로 전송한다. 사용자단말(2)에서 전송받은 은닉 MPC를 완전 MPC로 변경하고 저장하는 처리에 대해서는 도 4의 마스터인증서 관리부(21)를 통하여 후술한다.
2.3 단기인증서 발급서버의 내부 구조
도 3은 본 발명의 일 실시예에 따른 단기인증서 발급서버(4)의 내부 구조를 도시한다.
본 발명의 일 실시예에 따른 단기인증서 발급서버(4)는 인증정보 공개부(41), 사용자정보 관리부(42), 단기인증서 발급부(43), 단기인증서 변경부(44) 및 단기인증서 폐기부(45)를 포함하여 구성된다.
상기 인증정보 공개부(41)는 전술한 마스터인증서 발급서버(3)의 인증정보 공개부(31)와 마찬가지로 사전 구축을 통하여 인증서비스 제공을 위한 공개키를 공개한다. 암호화(encryption)를 위한 자신의 개인키 Xoca .e와 공개키 Yoca .e 및 전자서명(signature)을 위한 개인키 Xoca .s와 공개키 Yoca .s를 생성하고 공개키 Yoca .e, Yoca .s를 공개한다.
상기 사용자정보 관리부(42)는 사용자단말(2)이 마스터인증서 발급서버(3)로부터 전송받은 마스터인증서정보의 일부 인자값 CI 및 r을 전송받고 저장한다.
상기 단기인증서 발급부(43)는 사용자단말(2)로부터 단기인증서 발급요청 메시지(m1)와 사용자의 단기인증서 개인키(x)로 전자서명 연산(σ1=Sx(m1))된 전자서명값을 전송받고, 사용자의 공개키 y = gs''yca h (CI||r)r mod p를 생성한 후 생성된 공개키 y를 이용하여 전자서명 검증 연산 Vy(m1, σ1)을 수행하고, 그 공개키 y를 포함하는 단기인증서(SLC= SXoca.s(y||CI*))를 생성하여 사용자단말(2)로 전송한다.
본 발명에서 단기인증서 발급은 발신자가 단기인증서 발급부(43)로 단기인증서를 발급요청하고 발급받은 인증서를 수신자에게 전송하는 푸시모델(도 7 참조)과, 발신자가 수신자에게 메시지를 전송하고 수신자가 단기인증서 발급부(43)로 단기인증서 발급요청하여 제공받은 단기인증서로 메시지의 전자서명을 검증하는 풀모델(도 8참조)이 있다.
상기 단기인증서 변경부(44)는 사용자단말(2)로부터 인증서 변경요청을 전송받고, 사용자의 전자서명을 검증하여 일치할 경우 새로운 r''값을 저장하고, 인증서 변경 결과를 상기 사용자단말로 전송한다(도 10 참조).
상기 단기인증서 폐기부(45)는 사용자단말(2)로부터 즉시 폐기용 인증값 sb를 포함하는 단기인증서 즉시 폐기요청을 전송받고, 수신자 및 전자서명을 확인하고, 일치할 경우 단기인증서의 인증 서비스를 중단한다. 전술한 종래의 공개키 기반구조에서는 한번 생성된 인증서는 그 고정값을 매 인스턴스마다 동일하게 사용하고 사용자가 폐기해야만 새로운 인증서를 발급받기 때문에 사용자의 인증서 폐기 이력을 저장해야만 했으나 본 기술에서는 인스턴스마다 인증서가 새로 생성되는 기술이기에 인증서 이력정보를 관리할 필요없이 즉시 폐기가 가능하다.
2.4 사용자단말의 내부 구조
도 4는 본 발명의 일 실시예에 따른 사용자단말(2)의 내부 구조를 도시한다.
본 발명의 일 실시예에 따른 사용자단말(2)은 마스터인증서 관리부(21), 마스터인증서 등록부(22), 푸시모델 전송부(23), 푸시모델 수신부(24), 풀모델 전송부(25), 풀모델 수신부(26), 제 1인증서 변경부(27), 제 2인증서 변경부(28) 및 인증서 폐기부(29)를 포함하여 구성된다.
상기 마스터인증서 관리부(21)는 마스터인증서를 마스터인증서 발급서버(3)로부터 전송받는다. 사용자단말(2)의 인증서 관리 프로그램은 임의값 a RZq * 및 살트값 v ∈ RZq *를 선택하고 사용자의 패스워드 pw 및 v로 수학식 π= h(pw||v) 및 r'= ga+π mod p를 연산하고 마스터인증서 발급서버(3)로 사용자ID(IDA) 및 상기 r'를 포함하는 마스터인증서 발급요청을 전송한다.
그리고 마스터인증서 발급서버(3)로부터 사용자ID, 발행자 ID, 유효 기간 등을 포함하는 CI, s' 및 r로 구성된 은닉 MPC(CI, s', r)를 전송받고, 은닉정보 a를 이용한 수학식 s= s'-a mod q을 수행하여 완전 MPC (CI, s, r)로 변경한다. 따라서, 마스터인증서 정보의 수신과정에서 s'가 제 3자에게 노출되더라도 은닉정보 a에 의하여 연산이 수행되기 때문 사용자의 패스워드를 알아낼 수 없다(참고 : 마스터 인증서 발급과정에서의 통신 채널은 인증되고 암호화된 채널이기 때문에 제 3자는 아무런 정보도 알아 낼 수 없음).
상기 마스터인증서 등록부(22)는 인자값 s와 전술한 v를 내부 메모리에 저장하고, 나머지 인자값 CI 및 r을 단기인증서 발급서버(4)로 등록하여 인자값을 분산 저장한다. 따라서 제 3자(공격자)는 사용자단말(2) 및 단기인증서 발급서버(4)를 모두 공격해야만 MPC(CI, s, r)를 얻는 어려움이 있다.
상기 푸시모델 전송부(23)는 발신자가 단기인증서를 발급받는 발신측 사용자단말(2)의 프로세스로서, 발신자의 패스워드 입력 인스턴스마다 고유하게 생성된 개인키(x)를 이용하여 인증서 요청 메시지((m1), 전자서명값(σ1) 및 사용자정보의 암호화 연산값(e)을 상기 단기인증서 발급서버로 전송한다.
그리고 단기인증서 발급서버(4)로부터 개인키 x에 대응하여 고유하게 생성된 공개키(y)를 포함하는 상기 단기인증서(SLC)를 전송받고, 수신측 사용자단말(2)로 단기인증서, 전자문서(m2) 및 전자서명값(σ2)을 전송한다.
상기 푸시모델 수신부(24)는 전술한 발신측 푸시모델 전송부(23)에 대응하는 수신측 사용자단말(2)의 프로세스로서, 전송받은 전자서명된 전자문서를 수신측 사용자단말(2)에서 단기인증서에 포함되는 공개키로 전자서명 검증 연산을 수행하여 발신 사용자 및 전자문서의 진정성을 검증한다. 푸시모델의 보다 상세한 설명은 도 7을 참조하여 후술한다.
상기 풀모델 전송부(25)는 발신측 사용자단말(2)의 프로세스로서, 발신자의 패스워드 입력 인스턴스마다 고유하게 생성된 상기 개인키(x)를 이용하여 인증서요청 메시지(m1), 인증서요청 메시지 m1에 대응하는 전자서명값(σ1), 전자문서(m2), 전자문서 m2에 대응하는 전자서명값(σ2) 및 사용자정보의 암호화 연산값(e)을 수신측 사용자단말(2)로 전송한다.
상기 풀모델 수신부(26)는 전술한 발신측 풀모델 전송부(25)에 대응하며 수신자가 단기인증서를 발급받는 수신측 프로세스로서, 전송받은 상기 m1, σ1 및 e를 수신측 사용자단말(2)에서 단기인증서 발급서버(4)로 전송하여 공개키를 포함하는 단기인증서(SLC)를 전송받고, 전송받은 공개키로 전자서명 검증 연산을 수행하여 발신 사용자 및 상기 전자문서의 진정성을 검증한다. 풀모델의 보다 상세한 설명은 도 8을 참조하여 후술한다.
전술한 MPC(CI, s, r) 인자값 중에서 s, r을 변경시킴으로써 인증서의 변경이 가능하다. 제 1인증서 변경부(27)는 사용자단말(2)의 인증서정보를 변경하는 것이고, 제 2인증서 변경부(28)는 사용자단말(2) 및 단기인증서 발급서버(4) 양측의 인정서 정보를 변경하는 것이다.
상기 제 1인증서 변경부(27)는 사용자단말(2)에 저장된 인증서정보(s, v)가 제 3자에게 노출되었거나 노출되었다는 의심이 들 경우, 사용자로부터 변경된 패스워드를 입력받고 새로운 살트값 v'를 선택하여 내부 메모리에 저장된 마스터인증서의 인자값 s를 s'= s-π+π'로 변경한다(도 9 참조).
상기 제 2인증서 변경부(28)는 사용자단말(2) 및 단기인증서 발급서버(4)에 저장된 정보가 제 3자에게 노출되었거나 노출되었다는 의심이 들 경우, 사용자단말(2)에서 마스터인증서의 인자값 s를 변경하고 단기인증서 발급서버(4)에서 인자값 r을 변경한다(도 10 참조).
인증서 폐기부(29)는 폐기용 인증값(sb)을 포함하는 단기인증서 즉시 폐기요청을 단기인증서 발급서버(4)로 전송하여 단기인증서의 인증서비스 이용을 해지한다.
<3. 인증방법>
3.1 인증시스템의 전체 수행 단계
도 5는 본 발명의 일 실시예에 따른 인증방법의 전체 순서를 도시한다.
마스터인증서 발급단계(S10)에서는 사용자단말(2)이 마스터인증서 발급서버(3)로 마스터인증서 발급요청을 전송하여 마스터인증서 MPC(CI, s', r)를 전송받는다. 여기서, 사용자가 마스터인증서 발급서버(3)를 통하여 마스터인증서를 발급받는 동안의 대화 채널은 인증되고 암호화된 채널이다.
사용자단말(2)은 전송받은 마스터인증서의 MPC(CI, s, r)중 s값은 사용자단말(2)에 CI, r값은 단기인증서 발급서버(4)에 분산하여 저장한다(S20).
사용자단말(2)은 즉시 폐기를 위한 인증값 sb = s'-a-π mod q 를 백업 저장소(예, 플로피디스크, CD 등)에 저장한다(S30). sb는 인증서 폐기를 위한 인자로서 단계(S80)를 도시하는 도 11을 통하여 후술한다.
이상의 단계(S10) 내지 단계(S30)은 프로그래밍 시퀀스에 따라 순서적으로 동작하는 것이고, 이하의 단계(S40) 내지 단계(S60)은 동적 시퀀스로 수행되는 것으로서 단계(S30)의 종료 이후에 순서적으로 동작하는 것은 아니다. 즉, 단계(S10), 단계(30), 단계(40), 단계(60)은 동적으로 수행된다.
발신측 사용자단말(3)은 푸시모델에 의거하여 단기인증서 발급서버(4)로부터 단기인증서를 전송받고, 수신측 사용자단말(3)로 전자서명된 전자문서를 전송하고, 수신측 사용자단말(2)은 전송받은 단기인증서의 공개키로 전자문서를 검증한다(S40).
발신측 사용자단말(3)은 전자서명된 전자문서를 수신측 사용자단말(3)로 전송하고, 수신측 사용자단말(3)은 단기인증서 발급서버(4)로부터 단기인증서를 전송받아 전자문서를 검증한다(S50).
사용자단말(2)은 필요에 따라 사용자의 패스워드와 마스터 인증서의 인자값 s를 변경한다(S60).
사용자단말(2)은 필요에 따라 사용자의 패스워드와 마스터 인증서의 인자값 s를 변경하고, 단기인증서 발급서버(4)에 저장된 인자값 r을 변경한다(S70).
사용자단말(2)은 필요에 따라 단기인증서 발급서버(4)로 인증값을 포함하는 단기인증서 즉시 폐기요청을 전송하여 인증서비스를 해지한다(S80).
3.1 마스터 인증서 발급 단계
도 6은 본 발명의 일 실시예에 따른 마스터인증서 발급과정의 상세 순서를 도시한다.
마스터인증서 발급서버(10)는 사전 구축을 통하여 도메인 파라미터로 q|p-1되는 큰 소수 p, q를 선택하고, 크기가 q가 되는 곱하기 부분 그룹(subgroup)의 생성자 g를 생성한다. 그리고 도메인 파라미터 (p, q, g)와 일방향 해쉬함수 h()를 공개한다. 마스터인증서 발급서버(10)는 자신의 개인키 xca RZq * 를 선택하고 공개키 yca = gXca mod p를 계산한 후 공개키를 공개한다(S11).
또한, 단기인증서 발급서버(4) 역시 사전 구축을 통하여 암호화를 위한 자신의 개인키 Xoca .e와 공개키 Yoca .e 및 전자서명을 위한 개인키 Xoca .s와 공개키 Yoca .s를 생성하고 공개키들을 공개한다.
사용자는 사용자단말(2)을 통하여 마스터인증서 발급서버(10)에 접속하여 인증서 발급을 요청한다. 사용자단말(2)에는 소정의 인증서 관리 프로그램이 설치되어 사용자의 인증서 발급 과정을 인터페이스한다. 사용자는 프로그램을 실행하여 패스워드pw를 입력하고, 프로그램은 패스워드 pw가 유효할 경우 임의값 a ∈ RZq * 및 살트값(salt) v ∈ RZq * 를 선택한다. 그리고 π= h(pw||v) 및 r' =ga+π mod p를 연산하고 IDA'와 r'를 마스터인증서 발급서버(10)에 전송한다(S12). 여기서 IDA'는 사용자의 이름, 또는 ID가 될 수 있으며, 마스터인증서 발급서버(10)에서는 IDA'와 자체 정보(예 : 기관명, 나라 등등)를 이용하여 고유한 사용자DN(distinguish name)을 생성하고 IDA로 표기한다.
마스터인증서 발급서버(10)는 임의값 k RZq * 를 선택하고 r = r'·gk mod p 및 s'= -xca·h(CI||r) - k mod q를 계산한다. CI는 사용자ID(IDA), 발행자 ID, 유효 기간 등을 포함하는 인증서정보이다. 마스터인증서 발급서버(10)는 은닉 MPC를 사용자단말(2)로 전송한다(S13). 전술한 은닉 MPC는 CI, s' 및 r로 구성되는 마스터인증서 정보이다.
사용자단말(2)은 수신한 은닉 MPC(CI, s', r을 수신하고(S21), s = s'-a mod q를 계산하고 gπ= gsyca h (CI||r)r mod p 인지 확인한다. 맞으면 사용자단말(2)은 은닉 MPC(CI, s', r)를 완전 MPC(CI, s, r)로 완성하고(S22), s 및 v를 저장한다(S23). 그리고 MPC의 r 및 CI를 단기인증서 발급서버(4)에 등록을 하고, 단기인증서 발급서버(4)는 이를 안전하게 저장한다(S24).
전술한 과정을 통하여 사용자의 마스터인증서(MPC)의 부분값(s)은 사용자단말(2)에 저장되며, 나머지 값(CI, r)들은 단기인증서 발급서버(4)에 저장된다. 사용자는 단기인증서(SLC)를 이용할 때마다 매번 서로 다른 인증서를 부여받는다. 따라서, 제 3자가 특정 사용자의 마스터인증서정보를 해킹하기 위해서는 사용자단말(2) 및 단기인증서 발급서버(4) 모두를 공격해야 하는 어려움이 있기에 보안성 높은 인증 서비스를 제공한다. 또한, 사용자단말(2)과 단기인증서 발급서버(4) 모두 공격당하면 인증서를 폐기(도 11 참조)해야 하고, 둘 중 하나만 공격당하면 인증서 변경을 통하여 s(도 9 참조)를 변경하거나 또는 s와 r(도 10 참조)을 변경함으로써 계속적으로 새로운 인증서 발급을 요청할 수 있다.
3.2 푸시모델에 의한 인증서 발급(메시지 전송) 단계
도 7은 본 발명의 일 실시예에 따른 푸시모델에 기초하는 단기인증서 발급과정의 상세 순서를 도시한다.
푸시모델은 발신자(사용자 A)가 발송하는 전자문서를 개인키로 전자서명한 후 단기인증서 발급서버(4)로부터 대응하는 공개키를 포함하는 단기인증서를 발급받고, 수신자(사용자 B)에게 전송하여 수신자가 전자문서와 서명값을 검증하는 모델이다.
사용자 A는 사용자단말(2)에서 프로그램을 실행하여 원본문서를 지정하고 패스워드를 입력하여 전자서명을 요청한다(S41). 프로그램은 패스워드를 확인한 후 그 패스워드와 쌀트(salt) 값 v를 이용해서 π = h(pw||v)를 계산하고(pw, v 및 π는 매 인스턴스마다 동일한 값임), 임의값 b ∈ RZq * 를 선택하여 s'' = s + b mod q 와 단기 개인키(short-lived private key) x = π+b mod q를 계산한다(S42). 여기서 임의값 b에 의하여 s'', x는 매 인스턴스마다 변경된다. 또한, 사용자 A의 IDA 및 s'' 값을 단기인증서 발급서버(4)의 공개키 Yoca .e로 암호화하여 e = EYoca .e(s'', IDA)를 생성하고, 인증서 요청 메시지 m1 및 e에 대해서 사용자 A의 개인키 x로 서명하여 σ1= Sx(e||m1)을 생성한다(S43). 사용자단말(2)은 인증서 요청 메시지 m1, 전자서명 σ1 및 e를 단기인증서 발급서버(4)로 전송한다(S44). 여기서 인증서 요청 메시지 m1은 사용자ID, 타임스탬프(메시지 m의 생성 시간값) 등을 포함한다.
단기인증서 발급서버(4)는 e를 복호화하여 (s'', IDA)를 복원해내고 사용자ID를 포함하는 등록된 CI 및 r를 찾고 단기 사용자 공개키 y(= gs''yca h (CI||r) r mod p)를 계산하고 전자서명 σ1을 확인하기 위하여 검증연산 Vy(m1, σ1)를 수행한다(S45). 만약 전자서명 확인이 틀리면 처리를 정지한다. 만약 그렇지 않다면 단기인증서 발급서버(4)는 단기 사용자 공개키(y)를 포함하는 단기인증서 SXoca .s(y||CI*)를 사용자단말(2)로 전송한다(S46). 여기서 CI*는 사용자ID, 발행자 ID, 유효기간 등을 나타내는 인증서정보이다.
사용자단말(2)은 필요한 서명을 수행하여 SLC(인증서), m2(전자문서) 및 σ2(서명값 Sx(m2))을 수신측 사용자단말(2)에 전송한다(S47).
수신측 사용자단말(2)은 단기인증서(SLC)가 사용자 A의 것인지를 확인하고 Vy(m2, σ2) 연산을 통하여 사용자 A의 전자서명을 검증한다. 검증 결과 참으로 판단되면 사용자 B는 사용자 A의 진정성을 신뢰함과 동시에 전자문서의 진정성을 신뢰하게 된다(S48).
3.3 풀모델에 의한 인증서 발급(메시지 전송) 단계
도 8은 본 발명의 일 실시예에 따른 풀모델에 기초하는 단기인증서 발급과정의 상세 순서를 도시한다.
풀모델은 전술한 푸시모델과 달리 발신자(사용자 A)가 발송하는 전자문서를 개인키로 전자서명하여 발송하면 수신자(사용자 B)가 단기인증서 발급서버(4)로부터 대응하는 공개키를 포함하는 단기인증서를 발급받고 전자문서와 서명값을 검증하는 모델이다. 즉 푸시모델과 풀모델은 단기인증서를 발급받는 주체에 차이가 있다.
사용자단말(2)은 사용자 A로부터 pw를 입력받고(S51), pw와 쌀트(salt) 값 v를 이용해서 π = h(pw||v)를 계산하고 임의값 b ∈ RZq *를 선택하고 s'' = s + b mod q 및 단기 개인키(short-lived private key) x = π+b mod q를 연산한다(S52). 사용자 A의 IDA 및 s'' 값을 단기인증서 발급서버(4)의 공개키 Yoca .e로 암호화하여 e = EYoca .e(s'', IDA)를 생성한다. 인증서 요청 메시지 m1 및 e에 대해서 사용자 A의 개인키 x로 서명하여 σ1= Sx(e||m1)을 생성한다. 여기서 인증서 요청 메시지 m1은 수신자ID, 타임스탬프(m1의 생성 시간값) 등을 포함한다. 발신측 사용자단말(2)은 수신측 사용자단말(2)에게 보낼 전자문서 (m2)및 이에 대한 서명 σ2= Sx(m2)을 생성하고, m1, σ1, m2, σ2 및 e 값을 전송한다(S53).
수신측 사용자단말(2)은 받은 정보 중 e, m1 및 σ1를 단기인증서 발급서버(4)에 전송한다(S54).
단기인증서 발급서버(4)는 e값으로부터 s'' 및 사용자 A의 ID (IDA)를 단기인증서 발급서버(4)의 개인키 Xoca .e로 복호화 해낸다. IDA를 바탕으로 CI 및 r값을 찾아내고 사용자 A의 단기 공개키 값 (short-lived public key) y= gs''yca h(CI||r)r mod p 을 계산한다. 생성된 단기 공개키 값 y를 이용해서 받은 인증서 요청 메시지 m1 및 e 값에 대한 서명 σ1를 확인한다. 즉 Vy(e||m1, σ1)를 계산한다(S55). 만약 서명이 틀리면 처리를 정지한다. 만약 그렇지 않다면 사용자 A의 단기인증서 SLC = SXoca.s(y||CI*)를 생성한다. 여기서 CI*는 인증서정보, 즉 사용자ID, 발행자 ID 및 유효 기간 등의 정보이다. 생성된 단기인증서는 수신측 사용자단말(2)에 전송된다(S56).
수신측 사용자단말(2)에서 사용자 B의 인증서 관리 프로그램은 수신받은 사용자 A의 단기인증서에 있는 공개키 y를 이용해서 m2, σ2를 확인한다. 즉 Vy(m2, σ2)를 계산한다(S57).
3.4 사용자단말에서의 인증서 변경 단계
도 9는 본 발명의 일 실시예에 따른 사용자단말의 인증서 변경과정의 상세 순서를 도시한다.
이 과정은 사용자의 pw와 사용자단말(2)에 저장된 살트값 v 및 s가 제 3자에게 노출되어 개인키를 임의로 생성할 수 있을 때 사용자가 pw와 s값을 변경하여 공격자의 공격을 방어하는 것이다.
사용자는 인증서 관리 프로그램을 실행하여 s값 변경을 선택한다. 기존의 사용자 패스워드 pw를 입력하면, 프로그램은 살트값(salt) v로 π를 연산한다(S61). 그리고 사용자가 인증서 변경을 위하여 새로운 패스워드 pw'를 입력하면 프로그램은 새로운 살트값 v'을 선택하고 π'= h(pw'||v')를 계산한다(S62). 사용자 A는 기존의 s값을 새로운 s''(= s-π+π')로 대체한다. 사용자단말(2)은 차후 pw'를 새로운 패스워드로 사용한다(S63).
3.5 사용자단말 및 단기인증서 발급서버에서의 인증서 변경 단계
도 10은 본 발명의 일 실시예에 따른 사용자단말(2) 및 단기인증서 발급서버(4)의 인증서 변경과정의 상세 순서를 도시한다.
이 과정은 전술한 도 9에서와 같이 사용자의 pw 또는 사용자단말(2)에 저장된 정보(s, v)가 제 3자에게 노출되었거나 노출 여부를 의심할 때 또는 단기인증서 발급서버(4)에 저장된 MPC 정보(r)의 노출을 의심할 때 수행하는 과정이다.
사용자단말(2)은 기존의 패스워드 pw를 입력받아 살트 v와 함께 π = h(pw||v)를 연산한다(S71). 새로운 패스워드 값 pw' 을 입력받아 새로운 살트 v'를 선택하고 π' = h(pw'||v')를 연산한다(S72). 임의값 b, c ∈ RZq *를 선택하고 s'' = s + b mod q, x = π + b mod q 및 a = -π+c+π' mod q를 계산한다. 그리고 e = EYoca.e(IDA, s'', a) 및 σ= Sx(e||m)를 연산한다. 여기서 인증서 변경 메시지 m은 타임스탬프, IDoca , 패스워드 변경을 나타내는 정보 값을 포함한다. 사용자단말(2)은 서명값 σ, 암호화된 값 e 및 m을 단기인증서 발급서버(4)에 전송한다(S73).
단기인증서 발급서버(4)는 수신한 m으로부터 타임스탬프가 일정 기간(약 5분) 안에 만들어진 것인지 확인하고 수신자ID가 단기인증서 발급서버(4)의 ID(IDoca)인지 확인한다(S74). 만약 틀리면 처리를 정지한다. 그렇지 않다면 e값을 자신의 암호화 개인키로 복호화하고 (IDA, s'', a)를 획득한다. 단기인증서 발급서버(4)는 사용자ID를 이용해서 r 및 CI값을 찾고 단기 공개키 y = gs''yca h(CI||r)r mod p 를 계산한다. 생성된 공개키를 이용해서 사용자 서명 σ를 확인한다. 즉, Vy(e||m, σ)을 계산한다(S75). 만약 서명이 맞지 않다면 처리를 정지한다. 그렇지 않다면 d = ga mod p를 계산하고 기존에 r''값이 저장되어 있는지 확인한다. 기존 r''이 존재한다면 r''×d를 새로운 r''값으로 하고 저장한다. 그렇지 않다면 d값을 r''값으로 저장한다. 단기인증서 발급서버(4)는 성공을 나타내는 메시지 S, 타임스탬프 T 및 암호화된 사용자ID인 Ef(a)(IDA)를 사용자단말(2)로 보낸다(S76).
사용자단말(2)은 수신한 타임스탬프를 확인하고 정해진 시간 내에 만들어지지 않았다면 처리를 정지한다. 그렇지 않다면 암호화된 사용자ID를 복호화하고 수신자ID가 IDA가 아니면 처리를 정지한다. 그렇지 않다면 사용자단말(2)은 기존의 s를 s-c mod q로 대체하고 저장한다. 또한, 새로운 살트 v'로 기존의 v를 대체하고 새로운 pw'로 pw를 대체한다. 이렇게 사용자가 s, r, 그리고 패스워드를 바꾼 경우 즉 r''가 존재하는 경우 단기인증서 발급서버(4)에서 단기 공개키를 생성하는 수학식은 y = gs''yca h(CI||r)rr'' mod p가 된다(S77).
3.6 인증서 즉시 폐기 단계
도 11은 본 발명의 일 실시예에 따른 단기인증서 즉시 폐기 과정의 상세 순서를 도시한다.
사용자단말(2)은 패스워드를 입력받고 살트값 v와 함께 π값을 연산한다(S81). 임의값 b ∈ RZq *를 선택하고 s'' = s + b mod q와 x = π+b mod q을 연산하고, 백업장치로부터 sb를 복구한다. 그리고 e = EYoca .e(sb, s'', IDA)를 연산하여 서명값 σ= Sx(e||m)을 생성한다. 여기서 m은 즉시 폐기 메시지로서 타임스탬프, 수신자ID를 포함한다. 사용자단말(2)은 σ, e, m을 단기인증서 발급서버(4)에 전송한다(S82).
단기인증서 발급서버(4)는 타임스탬프가 일정한 시간 내에 만들어졌는지 그리고 수신자ID가 자신의 ID인지 확인한다(S83). 만약 아니라면 처리를 정지한다. 그렇지 않다면 (sb, s'', IDA)를 암호화 연산값 e로부터 복호화해 내고 IDA를 이용해서 CI와 r을 찾고 공개키 y = gs''yca h(CI||r)r mod p을 생성한다. 생성된 공개키를 이용해서 전자서명 σ을 확인한다. 즉 Vy(e||m, σ)를 계산한다(S84). 만약 전자서명이 틀리다면 처리를 정지한다. 그렇지 않다면
Figure 112005056279187-pat00001
가 yca -h(CI||r)r-1 mod p인지 검사한다. 만약 맞으면 사용자 정보 (CI, r)에 더 이상 처리를 하지 않도록 표시를 한다(S85).
상술한 바와 같이, 본 발명에 따른 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를 인증하는 인증시스템 및 인증방법의 실시예가 구성된다. 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
본 발명에 따른 인증시스템 및 인증방법은, 사용자의 패스워드 입력 인스턴스마다 연산을 통하여 인증키 및 인증서를 생성하기에 공격자는 공개된 정보를 바탕으로 사전공격을 할 수 없으며 전수공격을 행해야 한다. 그러나 충분히 큰 p와 q에 대해서 전수공격은 불가능하기에 전자문서의 보안성을 강화시킨다.
또한, 공격자는 사용자의 패스워드 및 클라이언트와 서버에 각각 분산 저장되는 인증서 부분값 s, r을 모두 공격해야만 유효한 인증서를 생성할 수 있기에 단기인증서 발급서버는 단일점 실패에 대해서 강하다.
또한, r값을 알고 있는 내부자 공격인 경우도 단일점 실패와 마찬가지로 공격을 하지 못한다. 패스워드는 항상 임의값 b로 암호화되어 있기 때문에 패스워드를 알아내어도 단기 개인키 값을 알아내지 못하며 단기 개인키 값을 알아내어도 패스워드를 알아내지 못한다. 그리고 단기 개인키를 알아내도 다른 단기 개인키 값을 알아낼 수 없다. 따라서 포워드 보안을 제공한다.
또한, 사용자의 정보 s, r, 패스워드를 공격자가 그 중 하나를 알아도 사용 자가 값들을 변경한 경우 획득된 기존의 정보는 무용지물이 된다.
또한 사용자가 인증서를 즉시 폐기(instant revocation)를 행한 경우 어떤 한 공격자도 인증서를 발급받지 못하게 된다. 그리고 포워드 보안 때문에, 즉 과거의 단기 개인키를 알아낼 수 없기 때문에, 타임스탬프 인증기관 없이 과거의 서명을 바꿀 수가 없게 된다. 따라서 즉시 인증서 폐기 이후로는 어떠한 이도 새로운 서명을 만들거나 과거의 서명을 변조하는 것이 불가능하다.

Claims (23)

  1. 유무선 네트워크를 통하여 사용자의 비밀번호 입력 인스턴스마다 고유하게 생성되는 인증키(개인키, 공개키) 및 인증서의 발급/변경/폐기의 인증서비스를 제공하는 인증시스템에 있어서,
    마스터인증서 발급요청을 전송하여 마스터인증서를 발급받고, 상기 마스터인증서정보의 인자값(CI, s, r)을 클라이언트 및 서버에 분산하여 저장하고, 사용자의 비밀번호 입력 인스턴스마다 고유한 개인키를 생성하여 메시지에 전자서명 연산을 수행하고, 사용자정보에 암호화 연산을 수행하고, 단기인증서 발급요청을 전송하여 단기인증서를 전송받고, 전자서명한 전자문서를 수신자에게 전송하고, 수신받은 상기 전자문서에 대하여 전자서명 검증 연산을 수행하여 인증서비스를 제공받는 사용자단말;
    상기 사용자단말로부터 상기 마스터인증서 발급요청을 전송받고, 상기 마스터인증서를 생성하여 응답하는 마스터인증서 발급서버; 및
    상기 사용자단말로부터 상기 인자값을 등록받고, 상기 단기인증서 발급요청을 전송받아 상기 개인키에 대응하여 고유하게 생성되는 공개키를 포함하는 상기 단기인증서를 생성하여 전송하는 인증서비스를 제공하는 단기인증서 발급서버
    를 포함하는 것을 특징으로 하는 인증시스템.
  2. 제 1항에 있어서,
    상기 사용자단말은,
    임의값 a ∈ RZq * 및 살트값 v ∈ RZq *를 선택하고 사용자의 패스워드 pw 및 상기 v로 수학식 π= h(pw||v) 및 r'=ga+π mod p를 수행하고 상기 마스터인증서 발급서버(3)로 사용자ID(IDA) 및 상기 r'를 포함하는 마스터인증서 발급요청을 전송하고, 사용자ID, 발행자 ID, 유효 기간 등을 포함하는 CI, s' 및 r로 구성된 은닉 MPC 인자값을 전송받고 은닉정보 a를 이용한 수학식 s= s'-a mod q을 수행하여 완전 MPC 인자값 CI, s, r로 변경하는 마스터인증서 관리부;
    상기 s 및 v를 내부에 저장하고, 상기 CI 및 r을 상기 단기인증서 발급서버로 등록하여 상기 인자값을 분산 저장하는 마스터인증서 등록부;
    푸시모델에 기반하여 발신자의 패스워드 입력 인스턴스마다 고유하게 생성된 상기 개인키(x)를 이용하여 인증서 요청 메시지(m1) 및 전자서명값(σ1) 및 사용자정보의 암호화 연산값(e)을 상기 단기인증서 발급서버로 전송하고, 상기 단기인증서 발급서버로부터 상기 x에 대응하여 고유하게 생성된 공개키(y)를 포함하는 상기 단기인증서(SLC)를 전송받고, 수신측 사용자단말로 상기 단기인증서, 전자문서(m2) 및 전자서명값(σ2)을 전송하는 푸시모델 전송부;
    상기 푸시모델 전송부(발신측)로부터 전송받은 전자서명된 전자문서를 수신측 사용자단말에서 상기 공개키로 전자서명 검증 연산을 수행하여 발신 사용자 및 상기 전자문서의 진정성을 검증하는 푸시모델 수신부;
    풀모델에 기반하여 발신자의 패스워드 입력 인스턴스마다 고유하게 생성된 상기 개인키(x)를 이용하여 인증서요청 메시지(m1), 전자서명값(σ1), 전자문서(m2), 전자서명값(σ2) 및 사용자정보의 암호화 연산값(e)을 수신측 사용자단말로 전송하는 풀모델 전송부;
    상기 풀모델 전송부(발신측)로부터 전송받은 상기 m1, σ1 및 e를 수신측 사용자단말에서 상기 단기인증서 발급서버로 전송하여 공개키를 포함하는 상기 단기인증서(SLC)를 전송받고, 상기 공개키로 전자서명 검증 연산을 수행하여 발신 사용자 및 상기 전자문서의 진정성을 검증하는 풀모델 수신부;
    사용자의 변경된 패스워드를 입력받고 새로운 살트값 v'를 선택하여 내부 메모리에 저장된 마스터인증서의 인자값 s를 변경하는 제 1인증서 변경부;
    사용자의 변경된 패스워드를 입력받고 새로운 살트값 v'를 선택하여 내부 메모리에 저장한 마스터인증서의 인자값 s를 변경하고, 상기 단기인증서 발급서버에 저장된 r을 변경하는 제 2인증서 변경부;
    폐기용 인증값(sb)을 포함하는 단기인증서 즉시 폐기요청을 상기 단기인증서 발급서버로 전송하여 단기인증서의 인증서비스를 해지하는 인증서 폐기부
    를 포함하는 것을 특징으로 하는 인증시스템.
  3. 제 1항에 있어서,
    상기 마스터인증서 발급서버는,
    도메인 파라미터로 q|p-1되는 큰 소수 p, q를 선택하고, 크기가 q가 되는 곱하기 부분 그룹(subgroup)의 생성자 g를 생성하고, 도메인 파라미터 (p, q, g)와 일방향 해쉬함수 h()를 공개하고, 개인키 xca RZq *를 선택하고 공개키 yca = gXca mod p를 계산한 후 공개키를 공개하는 인증정보 공개부;
    상기 사용자단말로부터 IDA 및 r'를 포함하는 마스터인증서 발급요청을 전송받고, 임의값 k ∈ RZq *를 선택하고, 사용자ID, 발행자 ID, 유효 기간 등을 포함하는 인증서정보 CI를 생성하고, 수학식 s'= -xca·h(CI||r) - k mod q 및 r = r'·gk mod p을 연산하고, 상기 인자값 CI, s' r을 포함하는 마스터인증서정보를 상기 사용자단말로 전송하는 마스터 인증서 발급부
    를 포함하는 것을 특징으로 하는 인증시스템.
  4. 제 1항에 있어서,
    상기 단기인증서 발급서버는,
    암호화를 위한 자신의 개인키 Xoca .e와 공개키 Yoca .e 및 전자서명을 위한 개인키 Xoca .s와 공개키 Yoca .s를 생성하고 공개키들을 공개하는 인증정보 공개부;
    상기 사용자단말로부터 인자값 CI 및 r을 전송받고 저장하여 사용자의 단기인증서 이용을 허가하는 사용자정보 관리부;
    상기 사용자단말로부터 메시지(m1)와 사용자의 단기인증서 개인키(x)로 전자서명 연산(σ1= Sx(m1))된 전자서명값을 전송받고 전자서명 검증 연산을 통하여 검증된 사용자에게 공개키를 포함하는 단기인증서(SLC= SXoca .s(y||CI*))를 생성하여 전송하는 단기인증서 발급부;
    상기 사용자단말로부터 인증서 변경요청을 전송받고, 사용자의 전자서명을 검증하여 일치할 경우 새로운 r''값을 저장하고, 인증서 변경 결과를 상기 사용자단말로 전송하는 단기인증서 변경부; 및
    상기 사용자단말로부터 sb를 포함하는 단기인증서 즉시 폐기요청을 전송받고, 수신자 및 전자서명을 확인하고, 일치할 경우 단기인증서의 인증 서비스를 중단하는 단기인증서 폐기부
    를 포함하는 것을 특징으로 하는 인증시스템.
  5. 제 1항, 제 2항 또는 제 4항 중 어느 한 항에 있어서,
    상기 사용자단말은,
    사용자의 패스워드 pw 및 기존의 쌀트값 v로 π = h(pw||v)를 연산하고 임의값 b ∈ RZq *를 선택하고 수학식 s'' = s + b mod q 와 x = π+b mod q를 수행하여 개인키(x)로 전자서명 연산을 수행하고, 푸시모델(발신자요청) 또는 풀모델(수신자요청)을 이용하여 상기 단기인증서 발급요청을 상기 단기인증서 발급서버로 전송하 고,
    상기 단기인증서 발급서버로부터 공개키(y)를 포함하는 단기인증서를 전송받는 것을 특징으로 하는 인증시스템.
  6. 제 1항 또는 제 2항에 있어서,
    상기 사용자단말은,
    사용자(발신자)의 정보를 단기인증서 발급서버의 공개키 Yoca .e로 암호화하는 암호화 수학식 e = EYoca .e(s'', IDA)를 이용하는 것을 특징으로 하는 인증시스템.
  7. 제 1항, 제 2항 또는 제 4항 중 어느 한 항에 있어서,
    상기 사용자단말은,
    즉시 폐기의 인증을 위하여 마스터 인증서를 발급받은 후 인자값 s를 이용하는 수학식 sb= s'-a-π 를 통하여 얻어지는 인증값 상기 sb를 플로피 디스크, CD를 포함하는 저장매체에 백업하고, 단기인증서 즉시 폐기요청시 상기 sb를 상기 단기인증서 발급서버로 전송하는 것을 특징으로 하는 인증시스템.
  8. 제 1항 또는 제 2항에 있어서,
    상기 사용자단말은,
    사용자의 패스워드 pw와 기존의 살트값 v로 π= h(pw||v)를 연산하고, 변경된 pw'를 입력받아 새로운 살트값 v' ∈ RZq * 를 선택하여 π' = h(pw'||v')를 연산하고, 수학식 s'= s-π+π'를 이용하여 생성한 상기 s'로 기존의 s를 대체함으로써 사용자의 패스워드를 변경하고 마스터인증서의 인자값 s의 변경을 통하여 단기인증서를 변경하는 것을 특징으로 하는 인증시스템.
  9. 제 1항, 제 2항 또는 제 4항 중 어느 한 항에 있어서,
    상기 사용자단말은,
    사용자의 패스워드 pw와 기존의 살트값 v로 π = h(pw||v)를 연산하고, 변경된 pw'를 입력받아 새로운 살트값 v' ∈ RZq *를 선택하여 π' = h(pw'||v')를 연산하고, 임의값 b, c ∈ RZq *를 선택하여 s'' = s + b mod q, x = π + b mod q 및 a = -π+c+π' mod q를 연산하고, 암호화 연산 e = EYoca .e(IDA, s'', a) 및 전자서명 연산 σ= Sx(e||m)을 수행하여 상기 e, 인증서 변경 메시지 m 및 σ를 상기 단기인증서 발급서버로 전송하고,
    상기 단기인증서 발급서버로부터 성공을 나타내는 메시지 S, 타임스탬프 T 및 암호화된 사용자ID인 Ef(a)(IDA)를 포함하는 결과를 전송받아 결과가 성공이고 복호화한 상기 IDA가 사용자의 ID이면 기존의 s를 s'= s-c mod q로 대체하는 것을 특 징으로 하는 인증시스템.
  10. 제 1항, 제 2항 또는 제 4항 중 어느 한 항에 있어서,
    상기 단기인증서 발급서버는,
    상기 사용자단말로부터 전자서명 σ, 암호값 e(EYoca .e(IDA, s'', a)), 인증서 변경요청 메시지 m을 포함하는 인증서 변경요청을 전송받고,
    공개키 y = gs''yca h (CI||r)r mod p를 생성하여 전자서명 검증 연산 Vy(e||m, σ)을 수행하고, 서명이 일치할 경우 d = ga mod p를 계산하고 기존에 r''값이 저장되어 있는지 확인하여 기존 r''이 존재하면 r''×d를 새로운 r''값으로 하고 존재하지 않으면 d값을 r''값으로 저장하고, 성공을 나타내는 메시지 S, 타임스탬프 T 및 암호화된 사용자ID인 Ef(a)(IDA)를 상기 사용자단말로 전송하는 것을 특징으로 하는 인증시스템.
  11. 제 10항에 있어서,
    상기 단기인증서 발급서버는,
    상기 사용자단말의 인증서 변경요청에 따라서 상기 r''가 존재할 경우, 상기 사용자단말의 풀모델 또는 푸시모델에 따른 단기인증서 발급요청에 대하여 수학식 y = gs''yca h(CI||r)rr'' mod p로 변경하여 상기 공개키 y를 생성하는 것을 특징으로 하 는 인증시스템.
  12. 제 1항, 제 2항 또는 제 4항 중 어느 한 항에 있어서,
    상기 사용자단말은,
    사용자의 패스워드 pw 및 기존의 쌀트값 v로 π = h(pw||v)를 연산하고, 임의값 b ∈ RZq *을 선택하고, s'' = s + b mod q 와 단기 개인키 x = π+b mod q를 연산하고, 백업장치로부터 sb를 조회하고, 암호화 연산 e= EYoca .e(sb, s'', IDA) 및 전자서명 연산 σ= Sx(e||m)을 수행하고, 상기 e, σ 및 타임스탬프, 수신자ID, 즉시 폐기 메시지를 포함하는 m을 상기 단기인증서 발급서버에 전송하여 상기 단기인증서의 인증서비스를 해지하는 것을 특징으로 하는 인증시스템.
  13. 제 1항, 제 2항 또는 제 4항 중 어느 한 항에 있어서,
    상기 단기인증서 발급서버는,
    상기 사용자단말로부터 암호화 연산값 e= EYoca .e(sb, s'', IDA), 전자서명 σ= Sx(e||m) 및 메시지 m(타임스탬프, 수신자ID 및 즉시 폐기 메시지로 구성)을 포함하는 단기인증서 즉시 폐기요청을 전송받고,
    상기 타임스탬프가 일정한 시간 내에 만들어졌는지 여부와 수신자ID가 자신 의 ID인지 확인하고, 상기 e로부터 sb, s'' 및 IDA를 복호하고, 상기 IDA를 이용해서 CI와 r을 찾아 공개키 y = gs''yca h(CI||r)r mod p을 생성하고, 상기 공개키를 이용해서 전자서명 검증 연산 Vy(e||m, σ)을 수행하고,
    Figure 112005056279187-pat00002
    = yca -h(CI||r)r-1 mod p인지 검사하고, 일치하면 인증서정보 CI, r에 더 이상 인증서비스를 수행하지 않도록 표시하여 인증서비스를 해지하는 것을 특징으로 하는 인증시스템.
  14. 유무선 네트워크를 통하여 사용자의 비밀번호 입력 인스턴스마다 변경되는 인증키(개인키, 공개키) 및 인증서의 발급/변경/폐기의 인증서비스를 제공하는 인증방법에 있어서,
    (1)사용자단말이 마스터인증서 발급서버로 마스터인증서 발급요청을 전송하여 마스터인증서를 전송받는 단계;
    (2)전송받은 상기 마스터인증서의 정보를 상기 사용자단말 및 단기인증서 발급서버에 분산하여 저장하는 단계;
    (3)즉시 폐기를 위한 인증값을 저장매체에 백업하는 단계;
    (4)푸시모델에 의거하여 단기인증서 발급서버로부터 단기인증서를 전송받고 수신측 사용자단말로 전자서명된 전자문서를 전송하고, 수신측 사용자단말이 상기 전자문서를 검증하는 단계;
    (5)풀모델에 의거하여 전자서명된 전자문서를 수신측 사용자단말로 전송하 고, 수신측 사용자단말에서 단기인증서 발급서버로부터 단기인증서를 전송받아 상기 전자문서를 검증하는 단계;
    (6)사용자의 패스워드와 마스터 인증서의 인자값 s를 변경하는 단계;
    (7)사용자의 패스워드와 마스터 인증서의 인자값 s를 변경하고, 상기 단기인증서 발급서버에 저장된 인자값 r을 변경하는 단계; 및
    (8)상기 단기인증서 발급서버로 상기 인증값을 포함하는 단기인증서 즉시 폐기요청을 전송하여 인증서비스를 해지하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
  15. 제 14항에 있어서,
    상기 단계(1)는,
    (1-1)상기 마스터 인증서 발급서버가 도메인 파라미터로 q|p-1되는 큰 소수 p, q를 선택하고, 크기가 q가 되는 곱하기 부분 그룹(subgroup)의 생성자 g를 생성하고, 도메인 파라미터 (p, q, g)와 일방향 해쉬함수 h()를 공개하고, 개인키 xca∈ RZq *를 선택하고 공개키 yca = gXca mod p를 계산한 후 공개키를 공개하는 단계;
    (1-2)상기 사용자단말이 사용자의 패스워드 pw를 입력받고, 임의값 a∈ RZq * 및 살트값(salt) v ∈ RZq *를 선택하고, π= h(pw||v) 및 r'(=ga+π mod p)를 연산하 고, 사용자ID IDA 및 상기 r'를 마스터인증서 발급서버(10)에 전송하여 마스터인증서(MPC)의 발급을 요청하는 단계; 및
    (1-3)마스터인증서 발급서버가 임의값 k ∈ RZq *를 선택하고 r = r'·gk mod p 및 s'= -xca·h(CI||r) - k mod q를 연산하고, CI(사용자ID, 발행자ID, 유효기간을 포함하는 인증서정보), s' 및 r로 구성되는 은닉 MPC를 전송하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
  16. 제 14항에 있어서,
    상기 단계(2)는,
    (2-1)상기 사용자단말이 은닉 MPC(CI, s', r)를 전송받는 단계;
    (2-2)상기 s'를 수학식 s= s'-a mod q을 이용하여 완전 MPC(CI, s, r)를 완성하고 gπ= gsyca h (CI||r)r mod p 인지 확인하여 마스터인증서의 유효성을 검사하는 단계;
    (2-3)인자값 s 및 v를 내부 메모리에 저장하는 단계; 및
    (2-4)상기 단기인증서 발급서버로 인자값 CI 및 r을 전송하여 등록하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
  17. 제 14항에 있어서,
    상기 단계(3)는,
    상기 사용자단말이 수학식 sb= s'-a-π 연산을 통하여 얻어지는 폐기용 인증값 상기 sb를 플로피 디스크, CD를 포함하는 저장매체에 백업하는 단계인 것을 특징으로 하는 인증방법.
  18. 제 14항에 있어서,
    상기 단계(4)는,
    (4-1)발신측 사용자단말이 프로그램을 통하여 사용자(발신자)의 패스워드 pw를 입력받는 단계;
    (4-2)상기 pw 및 쌀트값 v를 이용해서 π = h(pw||v)를 연산하고 임의값 b ∈ RZq *을 선택하고 s'' = s + b mod q 와 개인키 x = π+b mod q를 연산하는 단계;
    (4-3)상기 개인키 x로 인증서 요청 메시지 m1(사용자ID, 타임스탬프 포함)에 대한 전자서명 연산 σ1= Sx(m1)을 수행하는 단계;
    (4-3)사용자ID IDA 및 상기 s''를 상기 단기인증서 발급서버의 공개키 Yoca .e로 암호화 연산 e = EYoca .e(S'', IDA)을 수행하고, 수신자ID 및 타임스탬프를 포함하는 인증서 요청 메시지 m1의 전자서명 연산 σ1= Sx(e||m1)을 수행하는 단계;
    (4-4)상기 m1, σ1 및 e를 단기인증서 발급서버로 전송하여 단기인증서 발급 을 요청하는 단계;
    (4-5)상기 단기인증서 발급서버는 사용자ID를 포함하는 등록된 CI 및 r를 찾고, 사용자의 공개키 y (gs''yca h(CI||r)r mod p)를 연산하고, 전자서명 검증 연산 Vy(m1, σ1)을 수행하여 검증하는 단계;
    (4-6)상기 공개키(y)를 포함하는 단기인증서(SLC) SXoca.s(y||CI*)를 상기 사용자단말로 전송하는 단계;
    (4-7)상기 사용자단말은 SLC(인증서), m2(전자문서) 및 σ2(Sx(m2))을 수신측 사용자단말로 전송하는 단계; 및
    (4-8)수신측 사용자단말은 단기인증서(SLC)가 사용자 A의 것인지를 확인하고 전자서명 검증 연산 Vy(m2, σ2)을 수행하여 검증하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
  19. 제 14항에 있어서,
    상기 단계(5)는,
    (5-1)발신측 사용자단말이 프로그램을 통하여 사용자(발신자)의 패스워드 pw를 입력받는 단계;
    (5-2)상기 pw 및 쌀트값 v를 이용해서 π = h(pw||v)를 연산하고 임의값 b ∈ RZq *를 선택하고 s'' = s + b mod q 와 개인키 x = π+b mod q를 연산하는 단계;
    (5-3)사용자ID IDA 및 상기 s''를 상기 단기인증서 발급서버의 공개키 Yoca .e로 암호화 연산 e = EYoca .e(S'', IDA)을 수행하고, 수신자ID 및 타임스탬프를 포함하는 인증서 요청 메시지 m1의 전자서명 연산 σ1= Sx(e||m1)을 수행하고, 전자문서 m2의 전자서명 연산 σ2= Sx(m2)를 수행하고, 수신측 사용자단말로 상기 m1, σ1, m2, σ2 및 e 값을 전송하는 단계;
    (5-4)수신측 사용자단말은 전송받은 상기 e, m1 및 σ1를 상기 단기인증서 발급서버로 전송하여 발신자의 단기인증서를 요청하는 단계;
    (5-5)상기 단기인증서 발급서버(4)는 상기 e로부터 s'' 및 IDA를 상기 단기인증서 발급서버의 개인키 Xoca .e로 복호화하고, 발신자의 IDA로 CI 및 r값을 조회하여 사용자(발신자)의 공개키 y = gs''yca h(CI||r)r mod p를 연산하고, 상기 y를 이용해서 전자서명 검증 연산 Vy(e||m1, σ1)을 수행하여 검증하는 단계;
    (5-6)사용자(발신자)의 공개키를 포함하는 단기인증서 SLC = SXoca.s(y||CI*)를 연산하고, 생성된 단기인증서를 수신측 사용자단말로 전송하는 단계; 및
    (5-7)수신측 사용자단말이 전송받은 단기인증서의 공개키 y를 이용해서 전자 서명 검증 연산 Vy(m2, σ2)을 수행하여 검증하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
  20. 제 14항에 있어서,
    상기 단계(6)는,
    (6-1)사용자단말이 프로그램을 실행하여 사용자의 패스워드 pw를 입력받고, 상기 pw 및 쌀트값 v를 이용해서 π = h(pw||v)를 연산하는 단계;
    (6-2)변경된 pw'를 입력받고, 상기 pw' 및 새로운 살트값 v' ∈ RZq *를 선택하여 π' = h(pw'||v')를 연산하는 단계; 및
    (6-3)수학식 s'= s-π+π'를 이용하여 생성한 s'로 기존의 s를 대체하고 사용자의 패스워드를 pw'로 변경하여 마스터인증서의 인자값 s의 변경을 통하여 단기인증서를 변경하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
  21. 제 14항에 있어서,
    상기 단계(7)는,
    (7-1)사용자단말이 프로그램을 실행하여 사용자의 패스워드 pw를 입력받고, 상기 pw 및 쌀트값 v를 이용해서 π = h(pw||v)를 연산하는 단계;
    (7-2)변경된 pw'를 입력받고, 상기 pw' 및 새로운 살트값 v' ∈ RZq *를 선택하여 π' = h(pw'||v')를 연산하는 단계;
    (7-3)임의값 b, c ∈ RZq * 를 선택하여 s'' = s + b mod q, x = π+b mod q 및 a = -π+c+π' mod q를 연산하고, 암호화 연산 e = EYoca .e(IDA, s'', a) 및 전자서명 연산 σ= Sx(e||m)을 수행하여 상기 e, 인증서 변경 메시지 m 및 σ를 상기 단기인증서 발급서버로 전송하는 단계;
    (7-4)상기 단기인증서 발급서버가 상기 m으로부터 타임스탬프가 일정 기간 내에 만들어진 것인지 확인하고, 수신자ID가 상기 단기인증서 발급서버의 ID(IDoca)인지 확인하는 단계;
    (7-5)상기 e를 복호화하여 IDA, s'', a를 얻고, 상기 IDA로 CI, r을 조회하여 공개키 y = gs''yca h(CI||r)r mod p를 생성하고, 상기 y로 전자서명 검증 연산 Vy(e||m, σ)을 수행하여 검증하는 단계;
    (7-6)d = ga mod p를 연산하여 기존에 r''값이 저장되어 있는지 확인하고, 기존 r''가 존재한다면 r''×d를 새로운 r''값으로 저장하고, 기존 r''가 없다면 d값을 r''값으로 저장하고, 성공을 나타내는 메시지 S, 타임스탬프 T 및 암호화된 사용자ID인 Ef (a)(IDA)를 상기 사용자단말로 전송하는 단계; 및
    (7-7)상기 사용자단말이 상기 T를 확인하여 정해진 시간 내에 만들어졌는지 검사하고, 암호화된 사용자ID를 복호화하고 수신자ID가 IDA인지를 검사하고, 기존의 s를 s-c mod q로 대체하여 저장하고, 새로운 살트 v'로 기존의 v를 대체하는 단계; 를 포함하는 것을 특징으로 하는 인증방법.
  22. 제 14항 또는 제 21항에 있어서,
    상기 단계(7)는,
    상기 단기인증서 발급서버에서 r값을 변경하여 r''가 존재하는 경우, 공개키를 생성 수학식을 y = gs''yca h(CI||r)rr'' mod p로 변경하는 것을 특징으로 하는 인증방법.
  23. 제 14항에 있어서,
    상기 단계(8)는,
    (8-1)사용자단말이 프로그램을 실행하여 사용자의 패스워드 pw를 입력받고, 상기 pw 및 쌀트값 v를 이용해서 π = h(pw||v)를 연산하는 단계;
    (8-2)임의값 b ∈ RZq *를 선택하여 s'' = s + b mod q, x = π + b mod q를 연산하고 백업장치로부터 sb를 조회하고 암호화 연산 e= EYoca .e(sb, s'', IDA)를 수행 하고, 전자서명 σ= Sx(e||m)을 연산하고, 상기 e, σ 및 타임스탬프, 수신자ID, 즉시 폐기 메시지를 포함하는 m을 상기 단기인증서 발급서버로 전송하는 단계;
    (8-3)상기 단기인증서 발급서버는 상기 타임스탬프가 일정한 시간 내에 만들어졌는지 여부와 수신자ID가 자신의 ID(IDoca)인지 확인하는 단계;
    (8-4)상기 e로부터 sb, s'' 및 IDA를 복호하고, 상기 IDA를 이용해서 CI와 r을 찾아 공개키 y = gs''yca h(CI||r)r mod p을 생성하고, 상기 공개키를 이용해서 전자서명 검증 연산 Vy(e||m, σ)을 수행하여 검증하는 단계; 및
    (8-5)
    Figure 112005056279187-pat00003
    = yca -h(CI||r)r-1 mod p인지 검사하고, 일치하면 인증서정보(CI, r)에 더 이상 인증서비스를 수행하지 않도록 표시하여 인증서비스를 해지하는 단계
    를 포함하는 것을 특징으로 하는 인증방법.
KR1020050093374A 2005-10-05 2005-10-05 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법 KR100654933B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050093374A KR100654933B1 (ko) 2005-10-05 2005-10-05 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050093374A KR100654933B1 (ko) 2005-10-05 2005-10-05 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법

Publications (1)

Publication Number Publication Date
KR100654933B1 true KR100654933B1 (ko) 2006-12-08

Family

ID=37732420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050093374A KR100654933B1 (ko) 2005-10-05 2005-10-05 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법

Country Status (1)

Country Link
KR (1) KR100654933B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101223649B1 (ko) 2011-05-17 2013-01-17 김기범 Uip를 이용한 사용자 인증 방법 및 인증 시스템
US8584213B2 (en) 2010-09-29 2013-11-12 Xerox Corporation Automated encryption and password protection for downloaded documents
KR20220040741A (ko) * 2020-09-24 2022-03-31 주식회사 엘지유플러스 Did에 기초한 암호화 방식을 이용한 데이터 통신 방법 및 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8584213B2 (en) 2010-09-29 2013-11-12 Xerox Corporation Automated encryption and password protection for downloaded documents
KR101223649B1 (ko) 2011-05-17 2013-01-17 김기범 Uip를 이용한 사용자 인증 방법 및 인증 시스템
KR20220040741A (ko) * 2020-09-24 2022-03-31 주식회사 엘지유플러스 Did에 기초한 암호화 방식을 이용한 데이터 통신 방법 및 장치
KR102467558B1 (ko) * 2020-09-24 2022-11-16 주식회사 엘지유플러스 Did에 기초한 암호화 방식을 이용한 데이터 통신 방법 및 장치

Similar Documents

Publication Publication Date Title
CN113014392B (zh) 基于区块链的数字证书管理方法及系统、设备、存储介质
US6868160B1 (en) System and method for providing secure sharing of electronic data
US7937584B2 (en) Method and system for key certification
CN101800637B (zh) 令牌提供
US7139910B1 (en) Systems and methods for obtaining digital signatures on a single authoritative copy of an original electronic record
US6058188A (en) Method and apparatus for interoperable validation of key recovery information in a cryptographic system
JP4639084B2 (ja) セキュア認証の暗号方法および暗号装置
US20170250797A1 (en) Secure and delegated distribution of private keys via domain name service
US8108678B1 (en) Identity-based signcryption system
KR0146437B1 (ko) 인증교환 방법, 복원형 전자서명 방법, 부가형 전자서명 방법, 키교환 방법, 복원형 다중전자서명 방법, 부가형 다중전자서명 방법 및 블라인드 전자서명 방법
US6202150B1 (en) Auto-escrowable and auto-certifiable cryptosystems
JP2003521154A (ja) 電子識別情報を発行する方法
CN109981287B (zh) 一种代码签名方法及其存储介质
US10826711B2 (en) Public key infrastructure and method of distribution
GB2487503A (en) Authentication of digital files and associated identities using biometric information
Benantar The Internet public key infrastructure
Simmons Secure communications and asymmetric cryptosystems
CN114257366A (zh) 信息同态处理方法、装置、设备及计算机可读存储介质
KR100654933B1 (ko) 사용자의 패스워드 입력에 따라서 동적 생성되는 인증서를인증하는 인증시스템 및 인증방법
US7447904B1 (en) Systems and methods for obtaining digital signatures on a single authoritative copy of an original electronic record
CN111314059B (zh) 账户权限代理的处理方法、装置、设备及可读存储介质
AU8656498A (en) Auto-recoverable auto-certifiable cryptosystems
US7139911B2 (en) Password exposure elimination for digital signature coupling with a host identity
KR100453113B1 (ko) 결정적 디피-헬만군에서id에 기반한 디지털 서명 및 그인증 방법
JP2005311531A (ja) デジタル署名処理方法及びそのためのプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20091022

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee