KR20060073647A - 인증 시스템 및 원격분산 보존 시스템 - Google Patents

인증 시스템 및 원격분산 보존 시스템 Download PDF

Info

Publication number
KR20060073647A
KR20060073647A KR1020067008005A KR20067008005A KR20060073647A KR 20060073647 A KR20060073647 A KR 20060073647A KR 1020067008005 A KR1020067008005 A KR 1020067008005A KR 20067008005 A KR20067008005 A KR 20067008005A KR 20060073647 A KR20060073647 A KR 20060073647A
Authority
KR
South Korea
Prior art keywords
value
server
authentication
data
password
Prior art date
Application number
KR1020067008005A
Other languages
English (en)
Other versions
KR100845018B1 (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 자이단호진 세이산기쥬츠켄큐쇼레이카이
Publication of KR20060073647A publication Critical patent/KR20060073647A/ko
Application granted granted Critical
Publication of KR100845018B1 publication Critical patent/KR100845018B1/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • 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/3026Public 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 polynomials generation, e.g. generation of irreducible polynomials
    • 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/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/3271Cryptographic 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 challenge-response
    • H04L9/3273Cryptographic 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 challenge-response for mutual authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

단말장치(1)는 입력된 패스워드에 기초하여 소정 계산에 의해 마스터키 생성기(36)에서 생성한 값(MK)으로부터 인증결과 판단부(37)에서 값(V1),(V2)를 계산해 서버(2)에 값(V1)을 송신하고, 상기 서버(2)는 안전한 통신수단에 의해 사전에 공유하여 기록해 놓은 상기 단말장치(1)의 서버 등록의 패스워드에 기초하여 소정 계산에 의해 마스터키 생성기(45)에 생성한 값(MK)으로부터 인증결과 판단부(46)에서 값(V1),(V2)을 계산하여 상기 단말장치(1)에 값(V2)을 송신하고, 이들 값을 소정 계산에 의해 산출할 수 있는지 여부에 의해 상호 인증을 하는 인증 시스템.

Description

인증 시스템 및 원격분산 보존 시스템{Authentication system and remotely- distributed storage system}
본 발명은, 인증에 관한 정보의 누설에 강한 인증 시스템과 이 인증 시스템을 사용하여 안전하게 데이터를 보존할 수 있는 원격분산 보존 시스템에 관한 것이다.
본원은 2003년 10월 28일에 출원된 일본특원2003-367527호에 대해 우선권을 주장하고, 그 내용을 여기에 원용한다.
종래부터 사용자의 단말장치와 서버 사이에서 인증을 하는 방법으로서, 사용자 ID와 사용자만이 알고 있는 패스워드를 단말장치로부터 입력하고, 서버쪽에 축적되어 있는 정보와 일치하면, 정당한 사용자라는 것을 인증하는 방법이 알려져 있다.
그러나 이 방법은 단말장치와 서버 간의 통신경로 중에서 부정하게 이들 정보가 도용되면 쉽게 부정 이용이 되기 때문에 SSL(문헌 1), TLS(문헌 2), SSH(문헌 3) 등의 암호화 기술을 사용하여 정보를 송수신하는 것이 일반적이다. 이것은 패스워드와 비밀의 값과 공개되어 있는 값을 사용하여 인증하는 것이다.
(문헌 1) A.Frier, P.Karlton, and P.Kocher. The SSL 3.0 Protoco1. Netscape Communications Corp., 1996, http://wp.netscape.com/eng/ss13/
(문헌 2) IETF(Internet Engineering Task Force). Transport Layer security(tls) Charter. http://www.ietf.org/html.charters/tls-charter.htm1
(문헌 3) IETF(Internet Engineering Task Force). Secure Shell(secsh)Charter. http://www.ietf.org/html.charters/secsh-charter.htm1
그러나 비특허문헌 1∼3에 나타내는 방법은, 사용자의 단말장치쪽에서 패스워드로 암호화된 정보 혹은 서버쪽에서 패스워드 인증 데이터가 누설된 경우에는 오프라인의 해석작업에 의해 패스워드를 구할 수 있게 된다는 문제가 있다. 서버에 대해 온라인으로 패스워드 입력을 반복하는 방법은, 패스워드를 잘못 입력한 횟수에 따라 억세스를 거부하는 등의 대책을 강구할 수 있지만, 오프라인의 해석작업은 방지책을 강구할 수 없다는 문제도 있다. 또 패스워드가 누설된 경우, 이 패스워드로 로그인할 수 있는 시스템 내에 보존되어 있는 데이터도 누설된다는 문제도 있다.
본 발명의 목적은, 정보의 누설에 강하고, 안전하게 암호키를 교환할 수 있는 인증 시스템을 제공하는 것이다.
본 발명의 목적은, 본 발명에 의한 인증 시스템을 사용하여 안전하게 데이터를 보존할 수 있는 원격분산 보존 시스템을 제공하는 것이다.
본 발명의 요지는, 단말장치와 서버 간에 상호 인증을 하는 인증 시스템으로서, 상기 단말장치는, 사용자가 사전에 결정해 놓은 패스워드에 기초하여 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장수단과, 상기 데이터 신장수단에 의해 구한 인증정보(P')를 미리 기억해 놓는 기억수단과, 상기 기억수단으로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)을 구하는 결합수단과, 상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산수단과, 상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단을 구비하고, 상기 값(MK)를 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에 상기 서버로부터 수신한 값(V2)과 상기 값(MK)을 입력하여 소정 계산식에 의해 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단수단을 구비한다. 상기 서버는, 상기 데이터 신장수단에 의해 구한 패스워드 인증 데이터(H)를 사전에 기억해 두는 기억수단과, 상기 기억수단에서 독출한 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산수단과, 상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단과, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 단말장치로 전송함과 동시에 상기 단말장치로부터 수신한 값(V1)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V1)을 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단수단을 구비한다.
본 발명의 요지는, 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 단말장치 상에서 동작하는 인증 프로그램으로서, 사용자가 사전에 결정해 놓은 패스워드에 기초하여, 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장처리와, 상기 데이터 신장처리에 의해 구한 인증정보(P')를 사전에 기억해 놓는 기억처리와, 상기 기억처리로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)를 구하는 결합처리와, 상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산처리와, 상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리와, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에 상기 서버로부터 수신한 값(V2)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V2)을 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단처리를 컴퓨터에 실행시킨다.
본 발명의 요지는, 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 단말장치 상에서 동작하는 인증 프로그램으로서, 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억처리와, 상기 기억처리에 의해 기억해 놓은 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산처리와, 상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리와, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 단말장치로 송신함과 동시에 상기 단말장치로부터 수신한 값(V1)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V1)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단처리를 컴퓨터에 실행시킨다.
본 발명의 요지는, 단말장치와 서버 간에 상호 인증을 하는 인증 시스템으로서, 상기 단말장치는, 사용자가 사전에 결정해 놓은 패스워드에 기초하여 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장수단과, 상기 데이터 신장수단에 의해 구한 인증정보(P')와 RSA키 생성수단에 의해 구한 RSA 공개키(N,e)를 사전에 기억해 놓는 기억수단과, 상기 기억수단으로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(W)을 구하는 결합수단과, 상기 값(W)과 상기 기억수단으로부터 독출한 RSA 공개키(N,e)와 내부에서 발생시킨 난수(T)를 입력하여 소정의 계산식에 의해 값(Z)을 구하고, 상기 서버로 송신하는 마스크 연산수단과, 상기 서버로부터 수신한 값(V2)과 상기 난수(T)를 입력하여 소정의 계산식에 의한 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단수단과, 상기 난수(T)를 입력하여 소정의 계산식에 의해 값(V1)을 구하고 상기 서버로 송신하는 검증자 생성수단을 구비하고, 상기 서버는 RSA 공개키(N,e)와 RSA 비밀키(N, d)를 구하는 RSA키 생성수단과, 상기 RSA키 생성수단에 의해 구한 RSA 비밀키(N,d)와 상기 데이터 신장수단에 의해 구한 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억수단과, 상기 기억수단으로부터 독출한 RSA 비밀키(N, d)와 패스워드 인증 데이터(H)와 상기 단말장치로부터 수신한 값(Z)을 입력하여 소정의 계산식에 의해 값(T)을 구하는 마스터키 생성수단과, 상기 값(T)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 상기 단말장치로 송신하는 검증자 생성수단과, 상기 단말장치로부터 수신한 값(V1)과 상기 값(T)을 입력하여 소정의 계산식에 의한 값(V1)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단수단을 구비한다.
본 발명의 요지는, 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 단말장치 상에서 동작하는 인증 프로그램으로서, 사용자가 사전에 결정해 놓은 패스워드에 기초하여 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장처리와, 상기 데이터 신장처리에 의해 구한 인증정보(P')와 RSA키 생성처리에 의해 구한 RSA 공개키(N,e)를 사전에 기억해 놓는 기억처리와, 상기 기억처리에 의해 기억해 놓은 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(W)을 구하는 결합처리와, 상기 값(W)과 상기 기억처리에 의해 기억해 놓은 RSA 공개키(N,e)와 내부에서 발생시킨 난수(T)를 입력하여 소정의 계산식에 의해 값(Z)을 구하고, 상기 서버로 송신하는 마스크 연산처리와, 상기 서버로부터 수신한 값(V2)과 상기 난수(T)를 입력하여 소정의 계산식에 의한 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단처리와, 상기 난수(T)를 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 상기 서버로 송신하는 검증자 생성처리를 컴퓨터에 실행시킨다.
본 발명의 요지는, 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 서버상에서 동작하는 인증 프로그램으로서, RSA 공개키(N,e)와 RSA 비밀키(N,d)를 구하는 RSA키 생성처리와, 상기 RSA키 생성처리에 의해 구한 RSA 비밀키(N,d)와 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억처리와, 상기 기억처리에 의해 기억해 놓은 RSA 비밀키(N,d)와 패스워드 인증 데이터(H)와 상기 단말장치로부터 수신한 값(Z)을 입력하여 소정의 계산식에 의해 값(T)을 구하는 마스터키 생성처리와, 상기 값(T)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 상기 단말장치로 송신하는 검증자 생성처리와, 상기 단말장치로부터 수신한 값(V1)과 상기 값(T)을 입력하여 소정의 계산식에 의한 값(V1)을 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단처리를 컴퓨터에 실행시킨다.
본 발명의 요지는, 단말장치와 복수의 서버 간에 상호 인증을 하고, 상기 단말장치 내의 보존 대상의 데이터를 상기 서버 내에 분산하여 보존하는 원격분산 보존 시스템으로서, 상기 단말장치는, 사용자가 사전에 결정해 놓은 패스워드에 기초하여 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장수단과, 상기 데이터 신장수단에 의해 구한 인증정보(P')를 미리 기억해 놓는 기억수단과, 상기 기억수단으로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)을 구하는 결합수단과, 상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산수단과, 상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단과, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에 상기 서버로부터 수신한 값(V2)과 값(V1)을 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단수단과,서버의 인증이 행해진 경우에 세션키(SK)를 서버의 수만큼 생성하는 세션키 생성수단과, 상기 보존 대상의 데이터를 분할하여 인증한 서버의 수와 동일수의 분할 데이터를 얻는 데이터 분할수단과, 상기 분할 데이터의 각각과 보존 대상의 데이터를 식별하는 식별정보를 보존처의 서버와 공유한 상기 세션키(SK)를 사용하여 암호화하고, 각 서버에 대해 송신하는 데이터 보존수단과, 분할 데이터가 보존된 각 서버로부터 분할 데이터를 수신하고, 상기 보존 대상의 데이터를 복원하는 데이터 복원 수단을 구비하고, 상기 서버는 상기 데이터 신장수단에 의해 구한 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억수단과, 상기 기억수단으로부터 독출한 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산수단과, 상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단과, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 단말장치로 송신함과 동시에상기 단말장치로부터 수신한 값(V1)과 값(V2)을 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단수단과, 단말장치의 인증이 행해진 경우에 세션키를 생성하는 세션키 생성수단과, 단말장치로부터 수신한 분할 데이터를 수신하는 데이터 수신수단과, 상기 분할 데이터를 기억하는 데이터 기억수단과, 상기 데이터 기억수단에 보존되어 있는 분할 데이터를 독출하여 단말장치로 송신하는 데이터 송신수단을 구비한 것을 특징으로 하는 원격분산 보존 시스템.
본 발명의 요지는, 단말장치와 복수의 서버 간에 상호 인증을 하고, 상기 단말장치 내의 보존 대상의 데이터를 상기 서버 내에 분산하여 보존하는 원격분산 보존 시스템에서의 단말장치 상에서 동작하는 원격분산 보존 프로그램으로서, 사용자가 사전에 결정해 놓은 패스워드에 기초하여 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장처리와, 상기 데이터 신장처리에 의해 구한 인증정보(P')를 사전에 기억해 놓는 기억처리와, 상기 기억처리로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)를 구하는 결합처리와, 상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산처리와, 상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리와, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하여 서버로 송신함과 동시에, 상기 서버로부터 수신한 값(V2)과 값(V1)을 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단처리와, 서버의 인증이 행해진 경우에 세션키(SK)를 서버의 수만큼 생성하는 세션키 생성처리와, 상기 보존 대상의 데이터를 분할하여 인증한 서버의 수와 동일수의 분할 데이터를 얻는 데이터 분할처리와, 상기 분할 데이터의 각각과 보존 대상의 데이터를 식별하는 식별정보를, 보존처의 서버와 공유한 상기 세션키(SK)를 사용하여 암호화하고, 각 서버에 대해 송신하는 데이터 보존처리와, 분할 데이터가 보존된 각 서버로부터 분할 데이터를 수신하고, 상기 보존 대상의 데이터를 복원하는 데이터 복원처리를 컴퓨터로 실행시키는 것을 특징으로 하는 원격분산 보존 프로그램.
본 발명의 요지는, 단말장치와 복수의 서버 간에 상호 인증을 하고, 상기 단말장치 내의 보존 대상의 데이터를 상기 서버 내에 분산하여 보존하는 원격분산 보존 시스템에서의 서버 상에서 동작하는 원격분산 보존 프로그램으로서, 데이터 신장처리에 의해 구한 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억처리와, 상기 기억처리로부터 독출한 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산처리와, 상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리와, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하여 단말장치로 송신함과 동시에, 상기 단말장치로부터 수신한 값(V1)과 값(V2)을 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단처리와, 단말장치의 인증이 행해진 경우에 세션키를 생성하는 세션키 생성처리와, 단말장치로부터 수신한 분할 데이터를 수신하는 데이터 수신처리와, 상기 분할 데이터를 기억하는 데이터 기억처리와, 상기 데이터 기억처리에 보존되어 있는 분할 데이터를 독출하여 단말장치로 송신하는 데이터 송신처리를 컴퓨터에 실행시키는 것을 특징으로 하는 원격분산 보존 프로그램.
도 1은 본 발명의 일실시형태에서의 단말장치의 구성을 도시한 블럭도이다.
도 2는 도 1에 도시한 데이터 신장기(伸長器)(11)의 구성을 도시한 블럭도이다.
도 3은 도 1에 도시한 데이터 신장기(11)의 구성을 도시한 블럭도이다.
도 4는 도 1에 도시한 데이터 신장기(11)의 구성을 도시한 블럭도이다.
도 5는 상호 인증 및 키 교환을 하는 장치의 구성을 도시한 블럭도이다.
도 6은 도 5에 도시한 단말장치(1)의 구성을 도시한 블럭도이다.
도 7은 도 5에 도시한 서버(2)의 구성을 도시한 블럭도이다.
도 8은 도 1에 도시한 데이터 신장기(11)의 구성을 도시한 블럭도이다.
도 9는 패스워드 인증 데이터 갱신-1의 단말장치(1)의 구성을 도시한 블럭도이다.
도 10은 패스워드 인증 데이터 갱신-1의 서버(2)의 구성을 도시한 블럭도이다.
도 11은 패스워드 인증 데이터 갱신-2의 단말장치(1)의 구성을 도시한 블럭도이다.
도 12는 패스워드 인증 데이터 갱신-2의 서버(2)의 구성을 도시한 블럭도이다.
도 13은 도 1에 도시한 데이터 신장기(11)의 구성을 도시한 블럭도이다.
도 14는 도 1에 도시한 데이터 신장기(11)의 구성을 도시한 블럭도이다.
도 15는 안전한 통신을 이용하여 초기화 처리를 하는 경우의 서버(2)의 구성을 도시한 블럭도이다.
도 16은 안전하지 않은 통신을 이용하여 초기화 처리를 하는 경우의 단말장치(1) 및 서버(2)의 구성을 도시한 블럭도이다.
도 17은 도 5에 도시한 단말장치(1)의 구성을 도시한 블럭도이다.
도 18은 도 5에 도시한 서버(2)의 구성을 도시한 블럭도이다.
도 19는 마스터키를 이용하여 갱신화 처리를 하는 경우의 단말장치(1)의 구성을 도시한 블럭도이다.
도 20은 마스터키를 이용하여 갱신화 처리를 하는 경우의 서버(2)의 구성을 도시한 블럭도이다.
도 21은 단말에 분산 데이터를 보존하지 않는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다.
도 22는 도 21에 도시한 데이터 분산기(51)의 구성을 도시한 블럭도이다.
도 23은 단말에 데이터를 보존하지 않는 경우의 원격분산 보존장치(5)의 구 성을 도시한 블럭도이다.
도 24는 도 23에 도시한 데이터 복원기(54)의 구성을 도시한 블럭도이다.
도 25는 단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다.
도 26은 도 25에 도시한 데이터 분할기(51)의 구성을 도시한 블럭도이다.
도 27은 단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다.
도 28은 도 27에 도시한 데이터 복원기(54)의 구성을 도시한 블럭도이다.
<제1실시예>
이하, 도면을 참조하면서 본 발명의 바람직한 실시예에 대해서 설명하기로 한다. 단, 본 발명은 이하의 각 실시예에 한정되는 것은 아니며, 예를 들면 이들 실시예의 구성요소끼리 적절히 조합해도 좋다.
이 인증 시스템은, 사용자의 단말장치와 서버의 인증장치가 서로 상호 인증하면서 같은 세션키를 확보하기 위한 시스템이다.
여기에서, 이하의 설명에서 사용하는 기호에 대해서 설명해 둔다.
p,q는 소수이고, q│p-1이라는 관계가 있다. q│p-1은, q는 p-1을 나머지가 없게 나눌 수 있는 즉, 정제할 수 있는 값을 의미한다. 또 g,h는 modp상의 위수(位數)(q)의 유한체(그룹)G={gjmodp:0≤j<q}의 생성원이다(타원곡선상의 그룹에서도 동 일하게 구성할 수 있다). 여기에서, "gj mod p"는, 법지수 연산으로 g를 j승한 값을 p로 나눈 나머지(Remainder)라는 의미이다. 여기에서, g는 (1<g<p-1, gq=1modp, gJ≠1modp(O<j<q))이고, h는 h=ga mod p이다. 즉, p,q는 연산체계(소체(素體)의 표수(票數))를 나타낸다. 예를 들면, H=hxmodp(0<x<q)에서 X는 비밀정보이다(즉, H가 주어졌을 때 x=10ghH를 구하는 것은 수학적으로 어려운 문제; H의 생성원(h)에 대한 이산대수 문제). 또 난수 발생기로부터 발생되는 난수는 R∈(Z/qZ)*을 무작위로 생성한다. 여기에서 (Z/qZ)*는 {1,2,…,q}의 집합을 나타낸다. 또 N은 패스워드의 길이를 나타낸다. 또 ∥는 값을 연결(concatenation)한다는 의미이다.
<단말장치의 초기화>
사용자는, 서버에 대해 개인 등록하고 싶을 때, 자신의 단말장치를 초기화한다. 도 1은, 사용자의 단말장치의 초기화 처리 구성을 도시한 블럭도이다. 초기화는, 사용자가 패스워드를 입력하면 데이터 신장기(11)에 의해 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 값(P')이 생성되고, 패스워드 인증 데이터(H)는 서버로 넘겨지고, 값(P')은 메모리(12)에 보존한다. 여기에서 데이터 신장기(11)는 다항식, 다항식과 해시함수, 해시함수, 의사(擬似) 난수 발생기 등으로 구성할 수 있다.
(1) 다항식을 이용하는 경우(1)
처음에, 도 2를 참조하여 다항식을 이용하는 경우(1)에 대해서 설명하기로 한다.
우선, 다항식 발생기(111)에 의해 랜덤으로 다항식을 발생시킨다. 이 때 등록하는 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(p'(x)=α1·xmodq)를, 서버의 수가 n개이면 n차 다항식(p'(x)=α1·x+α2·x2+…+αn·xnmodq)를 발생시킨다. 여기에서, α는 (Z/qZ)*로부터 무작위로 선택된다. 예를 들면, 하나의 서버의 경우 p'(x)는 p'(x)=α1·xmodq가 된다. 여기에서 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")을 입력한다. 다항식과 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(112)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=hp' (1)+ Pooh93modp에 의해 계산할 수 있다. 여기에서 p'(1)는 p'(x)에서 x 대신에 서버의 ID(예를 들면,「1」)를 넣어 계산한 값이다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나 우편으로 보내거나 혹은 전화로 알려 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 다항식 발생기로부터 발생된 다항식P'=p'(x)를 기억하여 보존한다.
(2) 다항식을 이용하는 경우(2)
다음으로, 도 2를 참조하여 다항식을 이용하는 경우(2)에 대해서 설명하기로 한다.
우선 다항식 발생기(111)에 의해 랜덤으로 다항식을 발생시킨다. 이 때 등록하는 서버의 수가 하나이면 x를 변수로 하는 1차 다항식 (p'(x)=α1·xmodq)를, 서버의 수가 n개이면 n차 다항식 (p'(x)=α1·x+α2·x2+…+αn·xnmodN)를 발생시킨다. 여기에서, α는 (Z/qZ)*로부터 무작위로 선택된다. 예를 들면 하나의 서버의 경우, p'(X)는, p'(x)=α1·xmodq가 된다. 여기에서 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 다항식과 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(112)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)=p'(1)+Pooh93modq에 의해 계산할 수 있다. 여기에서, p'(1)는 p'(x)에서 x 대신에 서버의 ID(예를 들면,「1」)를 넣어 계산한 값이다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화에 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 다항식 발생기로부터 발생된 다항식 P'=p'(x)를 기억하여 보존한다.
(3)다항식과 해시함수를 이용하는 경우(1)
다음으로, 도 8을 참조하여 다항식과 해시함수를 이용하는 경우(1)에 대해서 설명하기로 한다.
우선, 다항식 발생기(119)에 의해 랜덤으로 다항식을 발생시킨다. 이 때 등록하는 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(p'(x)=α1·xmodN)을, 서버의 수가 n개이면 n차 다항식(p'(x)=α1·x+α2·x2+…+αn·xnmodq)을 발생시킨다. 여기에서, α는 (Z/qZ)*로부터 무작위로 선택된다. 예를 들면, 하나의 서버의 경우, p'(X)는 p'(x)=α1·xmodN이 된다. 그리고 해시함수 발생기(120)에 의해 랜덤하게 해시함수(HASH)를 발생시킨다. HASH는 일방향 해시함수이다. 여기에서 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 다항식과 해시함수와 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(121)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=hp(1)modp에 의해 계산할 수 있다. 여기에서 p(1)는, p(1)=p'(1)+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 여기에서 ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 여기에서 p'(1)는 p'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
예를 들면, 등록하는 서버의 수가 n인 경우, 패스워드 인증 데이터 생성기(121)는 i번째 서버에 대해 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=hp (i)modp에 의해 계산할 수 있다. 여기에서 p(i)는, P(i)=p'(i)+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 i번째 서버의 ID를 나타낸다. 여기에서, p'(i)는 n차 다항 식 p'(x)에서 x 대신에「i」를 넣어 계산한 값이다.
패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 다항식 발생기로부터 발생된 다항식 p'(x)와 해시함수 발생기에서 발생된 해시함수(HASH)를 함께 P'=(p'(x), HASH)로서 기억하여 보존한다.
(4) 다항식과 해시함수를 이용하는 경우(2)
다음으로, 도 8을 참조하여 다항식과 해시함수를 이용하는 경우(2)에 대해서 설명하기로 한다.
우선, 다항식 발생기(119)에 의해 랜덤으로 다항식을 발생시킨다. 이 때 등록하는 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(p'(x)=α1·xmodN)을, 서버의 수가 n개이면 n차 다항식(p'(x)=α1·x+α2·x2+…+αn·xnmodN)을 발생시킨다.여기에서, α는 (Z/qZ)*로부터 무작위로 선택된다. 예를 들면, 하나의 서버의 경우, p'(X)는 p'(x)=α1·xmodN가 된다. 그리고 해시함수 발생기(120)에 의해 랜덤으로 해시함수(HASH)를 발생시킨다. HASH는 일방향 해시함수이다. 여기에서 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")을 입력한다. 다항식과 해시함수와 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(121)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)=p'(1)+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 여기에서, p'(1)는 p'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
예를 들면, 등록하는 서버의 수가 n인 경우, 패스워드 인증 데이터 생성기(121)는 i번째 서버에 대해 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=p(i)=p'(i)+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 i번째 서버의 ID를 나타낸다. 여기에서, p'(i)는 n차 다항식 p'(x)에서 x 대신에 「i」를 넣어 계산한 값이다.
패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 다항식 발생기로부터 발생된 다항식 p'(x)와 해시함수 발생기로부터 발생된 해시함수(HASH)를 함께 P'=(n'(x),HASH)로서 기억하여 보존한다.
(5) 해시함수를 이용하는 경우(1)
다음으로, 도 3을 참조하여 해시함수를 이용하는 경우(1)에 대해서 설명하기로 한다.
우선, 해시함수 발생기(113)에 의해 랜덤으로 해시함수(HASH)를 발생시킨다. 그리고 비밀값 발생기(114)도 랜덤으로 비밀값(S)을 발생시킨다. 여기에서, 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 해시함수(HASH)와 비밀값(S)과 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(115)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=hhash (S∥ Pooh93 ID (U)∥ ID (S))modp에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 해시함수 발생기(113)와 비밀값 발생기(114)로부터 발생된 해시함수(HASH)와 비밀값(S)을 함께 P'=(S,HASH)로서 기억하여 보존한다.
(6) 해시함수를 이용하는 경우(2)
다음으로, 도 3을 참조하여 해시함수를 이용하는 경우(2)에 대해서 설명하기로 한다.
우선, 해시함수 발생기(113)에 의해 랜덤으로 해시함수(HASH)를 발생시킨다. 그리고 비밀값 발생기(114)도 랜덤으로 비밀값(S)을 발생시킨다. 여기에서 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 해시함수(HASH)와 비밀값(S)과 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(115)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면, H=HASH(S=Pooh93∥ID(U)∥ID(S))modq에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나, 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 해시함수 발생기(113)과 비밀값 발생기(114)로부터 발생된 해시함수(HASH)와 비밀값(S)을 함께 P'=(S,HASH)로서 기억하여 보존한다.
(7) 의사 난수 발생기를 이용하는 경우(1)
다음으로, 도 4를 참조하여 의사 난수 발생기를 이용하는 경우(1)에 대해서 설명하기로 한다.
우선, 의사 난수 발생기(116)에 의해 랜덤으로 의사 난수 함수(PRNG)를 발생시킨다. 그리고 비밀값 발생기(117)도 랜덤으로 비밀값(S)을 발생시킨다. 여기에서, 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다.
의사 난수 함수(PRNG)와 비밀값(S)과 사용자의 패스워드가 입력된 것을 받아, 패스워드 인증 데이터 생성기(118)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=hPRNG (S∥ Pooh93 ID (U)∥ ID (S))modp에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나, 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메 모리(12)는 의사 난수 발생기(116)와 비밀값 발생기(117)로부터 발생시킨 의사 난수 함수(PRNG)와 비밀값(S)을 함께 P'=(S,PRNG)로서 기억하여 보존한다.
(8) 의사 난수 발생기를 이용하는 경우(2)
다음으로, 도 4를 참조하여 의사 난수 발생기를 이용하는 경우(2)에 대해서 설명하기로 한다.
우선, 의사 난수 발생기(116)에 의해·랜덤으로 의사 난수 함수(PRNG)를 발생시킨다. 그리고 비밀값 발생기(117)도 랜덤으로 비밀값(S)을 발생시킨다. 여기에서, 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 의사 난수 함수(PRNG)와 비밀값(S)과 사용자의 패스워드가 입력된 것을 받아, 패스워드 인증 데이터 생성기(118)은 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면, H=PRNG(S∥Pooh93∥ID(U)∥ID(S))modq에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나, 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 의사 난수 발생기(116)와 비밀값 발생기(117)로부터 발생시킨 의사 난수 함수(PRNG)와 비밀값(S)을 함께 P'.=(S,PRNG)로서 기억하여 보존한다.
다음으로, 도 6, 7을 참조하여 상기 초기화를 수행한 단말장치(1)와 서버(2)(도 5 참조) 간에 상호 인증 및 키 교환을 하는 동작을 설명한다.
<단말장치의 동작>
(1)다항식을 이용한 경우(1과 2)
처음에, 다항식을 이용한 경우의 단말장치(1)의 동작을 설명한다. 단말장치(1)는, 전술한 다항식을 이용한 경우(1), 다항식을 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
우선, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식 P'=p'(x)를 독출한다. 결합기(32)는 메모리(12)로부터 독출한 다항식 P'와 사용자가 입력한 패스워드에 의해 P=p(x)를 계산하여 출력한다. 예를 들면, p(x)=p'(x)+Pooh93=α1·x+Pooh93modq에 의해 계산한다. 마스크 연산기(34)는, 결합기(32)로부터 입력된 P와 난수 발생기(33)에서 발생시킨 난수(R1)로부터 Y1을, Y1=gR1·h-p(1)modp에 의해 계산한다. 여기에서 p(1)는, p(1)=p'(1)+Pooh93=α1·1+Pooh93modq에 의해 계산한다. 여기에서,「1」은 서버의 인증 ID를 나타낸다. 통신 처리부(35)는 Y1을 서버(2)로 송신하고, 서버(2)로부터 Y2를 수신한다. 마스터키 생성기(36)는 결합기(32)로부터 출력되는 P와 난수 발생기(33)로부터 출력되는 R1과 수신한 Y2를 입력하여 MK를, MK=(Y2·h-p(1))R1modp에 의해 계산하여 출력한다.
계속해서 인증결과 판단부(37)는, MK를 입력하여 V1=HASH(00∥Y1∥Y2∥MK)에 의해 V1을 계산하여 이 V1을 통신 처리부(35)에 의해 서버(2)로 송신하고, 서버(2) 로부터 수신한 V2와 HASH(01∥Y1∥Y2∥MK)를 비교한다. 여기에서, HASH는 일방향 해시함수이고, HASH 대신에 MAC(Message Authentication Code)를 사용해도 좋다.
다음으로, 인증결과 판단부(37)에서 V2와 HASH(01∥Y1∥Y2∥MK)가 일치하지 않는 경우, 인증결과 판단부(37)는 에러 발생기(38)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(38)는 에러를 발생시켜 처리를 중단한다. 한편, 인증결과 판단부(37)에서 V2와 HASH(01∥Y1∥Y2∥MK)가 일치한 경우에는 서버(2)가 정당한 장치로서 인증하여, 세션키 생성기(39)는 SK=HASH(11∥Y1∥Y2∥MK)에 의해 세션키(SK)를 생성한다.
(2) 다항식과 해시함수를 이용한 경우(1과 2)
다음으로, 다항식과 해시함수를 이용한 경우의 단말장치(1)의 동작을 설명한다. 단말장치(1)는, 전술한 다항식과 해시함수를 이용한 경우(1), 다항식과 해시함수를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
우선, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식과 해시함수 P'=(p'(x),HASH)를 독출한다. 결합기(32)는 메모리(12)로부터 독출한 다항식 p'(x)와 해시함수(HASH)와 사용자가 입력한 패스워드에 의해 P=p(x)를 계산하여 출력한다. 예를 들면, p'(x)가 1차 다항식인 경우, p(x)=p'(x)+HASH(Pooh93∥ID(U)∥ID(S))=α1·x+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 마스크 연산 기(34)는, 결합기(32)로부터 입력된 P와 난수 발생기(33)에서 발생시킨 난수(R1)로부터 Y1을, Y1=gR1·h-p(1)modp에 의해 계산한다. 여기에서 p(1)은, p(1)=p'(1)+HASH(Pooh93∥ID(U)∥ID(S))=α1·1+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 여기에서, p'(1)은 p'(x)에서 x 대신에 「1」을 넣어 계산한 값이다. 통신 처리부(35)는 Y1을 서버(2)로 송신하고, 서버(2)로부터 Y2를 수신한다. 마스터키 생성기(36)는 결합기(32)로부터 출력되는 P와 난수 발생기(33)로부터 출력되는 R1과 수신한 Y2를 입력하여 MK를, MK=(Y2·h-p(1))Rlmodp에 의해 계산하여 출력한다.
사용자의 단말장치(1)를 구비한 메모리(12)로부터 독출한 다항식 p'(x)가 n차 다항식인 경우, 결합기(32)는 다항식 p'(x)와 해시함수(HASH)와 사용자가 입력한 패스워드에 의해 P=p(x)를 계산하여 출력한다. 예를 들면, p(x)=p'(x)+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 마스크 연산기(34)는, 결합기(32)로부터 입력된 P와 난수 발생기(33)에서 발생시킨 난수(R1)로부터 Y1을, Y1=gR1·h-p(i)modp에 의해 계산한다. 여기에서 p(i)는, p(i)=p'(i)+HASH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 여기에서, p'(i)는 i번째 서버에 대해 p'(x)에서 x 대신에 「i」을 넣어 계산한 값이다. 통신 처리부(35)는 Y1을 서버(2) 에 송신하고, 서버(2)로부터 Y2를 수신한다. 마스터키 생성기(36)는 결합기(32)로부터 출력되는 P와 난수 발생기(33)로부터 출력되는 R1과 수신한 Y2를 입력하여 MK를, MK=(Y2·h-p(i))R1modp에 의해 계산하여 출력한다.
계속해서 인증결과 판단부(37)는 MK를 입력하여 V1=HASH(00∥Y1∥Y2∥MK)에 의해 V1을 계산하여 이 V1을 통신 처리부(35)에 의해 서버(2)로 송신하고, 서버(2)로부터 수신한 V2와 HASH(01∥Y1∥Y2∥MK)를 비교한다. 여기에서, HASH는 일방향 해시함수이고, HASH 대신에 MAC(Message Authentication Code)를 사용해도 좋다.
다음으로, 인증결과 판단부(37)에서 V2와 HASH(01∥Y1∥Y2∥MK)가 일치하지 않는 경우, 인증결과 판단부(37)는 에러 발생기(38)에 대해 일치하지 않는다고 통지한다. 이것을 받고, 에러 발생기(38)은 에러를 발생하여 처리를 중단한다. 한편 인증결과 판단부(37)에서 V2와 HASH(01∥Y1∥Y2∥MK)가 일치한 경우에는 서버(2)가 정당한 장치로서 인증하여 세션키 생성기(39)는, SK=HASH(11∥Y1∥Y2∥MK)에 의해 세션키(SK)를 생성한다.
(3) 해시함수를 이용한 경우(1과 2)
다음으로, 해시함수를 이용한 경우의 단말장치(1)의 동작을 설명한다. 단말장치(1)는, 전술한 해시함수를 이용한 경우(1), 해시함수를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
우선, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 비밀값와 해시함수 P'=(S,HASH)를 독출한다. 결합기(32)는 메모리(12)로부터 독출한 비밀값(S)과 해시함수(HASH)와 사용자가 입력한 패스워드에 의해 P=p를 계산하여 출력한다. 예를 들면 p는, p=HASH(S∥Pooh93∥ID(U)∥ID(S))modq에 의해 계산한다. 마스크 연산기(34)는, 결합기(32)로부터 입력된 P와 난수 발생기(33)에서 발생시킨 난수(R1)로부터 Y1을, Y1=gR1·h- pmodp에 의해 계산한다. 통신 처리부(35)는, Y1을 서버(2)에 송신하고, 서버(2)부터 Y2를 수신한다. 마스터키 생성기(36)는 결합기(32)로부터 출력되는 P와 난수 발생기(33)로부터 출력되는 R1과 수신한 Y2를 입력하여 MK를, MK=(Y2·h-P)R1modp에 의해 계산하여 출력한다.
계속해서 인증결과 판단부(37)는 MK를 입력하여 V1=HASH(00∥Y1∥Y2∥MK)에 의해 V1을 계산하여 이 V1을 통신 처리부(35)에 의해 서버(2)로 송신하고, 서버(2)로부터 수신한 V2와 HASH(01∥Y1∥Y2∥MK)를 비교한다. 여기에서, HASH는 일방향 해시함수이고, HASH 대신에 MAC(Message Authentication Code)를 사용해도 좋다.
다음으로, 인증결과 판단부(37)에서 V2와 HASH(01∥Y1∥Y2∥MK)가 일치하지 않는 경우, 인증결과 판단부(37)는 에러 발생기(38)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(38)은 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(37)에서 V2와 HASH(01∥Y1∥Y2∥MK)가 일치한 경우에는 서버(2)가 정당한 장치로서 인증하여 세션키 생성기(39)는, SK=HASH(11∥Y1∥Y2∥MK)에 의해 세션키(SK)를 생성한다.
(4) 의사 난수 발생기를 이용한 경우(1과 2)
다음으로, 의사 난수 함수를 이용한 경우의 단말장치(1)의 동작을 설명한다. 단말장치(1)는, 전술한 의사 난수 발생기를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
의사 난수 함수를 이용한 경우에는, 사용자의 단말장치(1)를 구비한 메모리(12)에 기억된 해시함수(HASH) 대신에 의사 난수 함수(PRNG)를 사용하는 것 외에는 해시함수를 이용한 경우와 동일한 동작이기 때문에 여기에서는 상세한 설명을 생략한다.
<서버의 동작>
(1) 다항식을 이용한 경우(1), 다항식과 해시함수를 이용한 경우(1), 해시함수를 이용한 경우(1), 의사 난수 함수를 이용한 경우(1)
서버(2)는, 전술한 다항식을 이용한 경우(1), 다항식과 해시함수를 이용한 경우(1), 해시함수를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(1)와 상관없이 다음과 같이 동작한다.
서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드의 인증 데이터(H)를 독출한다. 마스크 연산기(43)는 메모리(41)로부터 독출한 H와 난수 발생기(42)로부터 발생시킨 난수(R2)를 입력하여 Y2를, Y2=gR2·Hmodp에 의해 계산한다. 통신 처리부(44)는 계산하여 얻어진 Y2를 단말장치(1)로 송신하고, 단말장치(1)로부터 수신한 Y1을 마스터키 생성기(45)로 출력한다. 마스크키 생성기(45)는 메모리(41)에서 독출한 H와 난수 발생기(42)로부터의 R2와 통신 처리부(44)로부터의 Y1을 입력하여 MK를, MK=(Y1·H)R2modp에 의해 계산하고, MK를 출력한다.
계속해서 인증결과 판단부(46)는, MK를 입력하여 V2=HASH(01∥Y1∥Y2∥MK)에 의해 V2를 계산하여 이 V2를 통신 처리부(44)에 의해 단말장치(1)로 송신하고, 단말장치(1)로부터 수신한 V1과 HASH(00∥Y1∥Y2∥MK)를 비교한다. 여기에서, HASH는 일방향 해시함수이고, HASH 대신에 MAC(Message Authentication Code)를 사용해도 좋다.
다음으로, 인증결과 판단부(46)에서 V1과 HASH(00∥Y1∥Y2∥MK)가 일치하지 않는 경우, 인증결과 판단부(46)는 에러 발생기(47)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(47)은 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(46)에서 V1과 HASH(00∥Y1∥Y2∥MK)가 일치한 경우에는 단말장 치(1)가 정당한 장치로서 인증하여 세션키 생성기(48)는 SK=HASH(11∥Y1∥Y2∥MK)에 의해 세션키(SK)를 생성한다.
(2) 다항식을 이용한 경우(2), 다항식과 해시함수를 이용한 경우(2), 해시함수를 이용한 경우(2), 의사 난수 함수를 이용한 경우(2)
서버(2)는, 전술한 다항식을 이용한 경우(2), 다항식과 해시함수를 이용한 경우(2), 해시함수를 이용한 경우(2), 의사 난수 발생기를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
서버(2)에 구비한 메모리(41)에 보존된 사용자 ID와 패스워드의 인증 데이터(H)를 독출한다. 마스크 연산기(43)는 메모리(41)로부터 독출한 H와 난수 발생기(42)로부터 발생시킨 난수(R2)를 입력하여 Y2를, Y2=gR2·hHmodp에 의해 계산한다. 통신 처리부(44)는, 계산하여 얻어진 Y2를 단말장치(1)로 송신하고, 단말장치(1)로부터 수신한 Y1을 마스터키 생성기(45)로 출력한다. 마스크키 생성기(45)는 메모리(41)로부터 독출한 H와 난수 발생기(42)로부터의 R2와 통신 처리부(44)부터의 Y1을 입력하여 MK를, MK=(Y1·hH)R2modp에 의해 계산하고, MK를 출력한다.
계속해서 인증결과 판단부(46)는 MK를 입력하여 V2=HASH(01∥Y1∥Y2∥MK)에 의해 V2를 계산하여 이 V2를 통신 처리부(44)에 의해 단말장치(1)에 송신하고, 단말 장치(1)로부터 수신한 V1과 HASH(00∥Y1∥Y2∥MK)를 비교한다. 여기에서, HASH는 일방향 해시함수이고, HASH 대신에 MAC(Message Authentication Code)를 사용해도 좋다.
다음으로, 인증결과 판단부(46)에서 V1과 HASH(00∥Y1∥Y2∥MK)가 일치하지 않는 경우, 인증결과 판단부(46)는 에러 발생기(47)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(47)는 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(46)에서 V1과 HASH(00∥Y1∥Y2∥MK)가 일치한 경우에는 단말장치(1)가 정당한 장치로서 인증하여 세션키 생성기(48)는 SK=HASH(11∥Y1∥Y2∥MK)에 의해 세션키(SK)를 생성한다.
<패스워드 인증 데이터의 갱신-1>
사용자는 서버에 대해 이미 등록된 패스워드 인증 데이터를, 자신이 기억하고 있는 패스워드를 바꾸지 않고 갱신하고 싶을 때 자신의 단말장치를 갱신화한다. 도 9는, 사용자의 단말장치의 갱신화 처리 구성을 도시한 블럭도이다. 갱신화 처리는, 다항식 발생기(13)에 의한 다항식 T'와 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식 P'가 입력되면, 갱신값 생성기(14)에 의해 서버 갱신용의 값(H')과, 사용자 보존용의 갱신된 다항식 P'가 생성되고, H'는 서버에 넘겨지고, 갱신된 다항식 P'는 메모리(12)에 보존한다. 여기에서의 갱신화 처리는, 전술한 다항식을 이용한 경우(1), 다항식을 이용한 경우(2), 다항식과 해시함수를 이 용한 경우(1), 다항식과 해시함수를 이용한 경우(2)에 적용할 수 있다.
<단말장치의 갱신화 처리>
(1) 다항식을 이용한 경우(1)
처음에, 도 9를 참조하여 다항식을 이용한 경우(1)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 다항식 발생기(13)에 의해 랜덤으로 다항식을 발생시킨다. 이 때, 등록한 서버의 수가 하나이면 x를 변수로 하는 1차 다항식 (t'(x)=β1·xmodq)를, 서버의 수가 n개이면 n차 다항식(t'(x)=β1·x+β2·x2+…+βn·xnmodq)를 발생시킨다. 여기에서, β는 (z/qZ)*로부터 무작위로 선택된다. 예를 들면 한개의 서버의 경우, T'=t'(x)는 t'(x)=β1·xmodq가 된다. 여기에서 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식 P'=p'(x)를 독출한다. 다항식 t'(x)와 다항식 p'(x)가 입력되면 갱신값 생성기(14)는, 사용자 보존용의 갱신된 다항식 P'와 서버 갱신용의 값(H')을 생성한다. 갱신된 다항식 P'는, 예를 들면 P'=t'(x)+p'(x)=(α11)·xmodq에 의해 계산할 수 있다. 서버 갱신용의 값(H', 예를 들면 H'=ht' (1)modp에 의해 계산할 수 있다. 여기에서, t'(1)는 t'(x)에서 x 대신에 서버의 ID(예를 들면,「1」)를 넣어 계산한 값이다. 서버 갱신용의 값(H')은 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있 다. 사용자의 단말장치의 내부에 있는 메모리(12)는 갱신된 다항식 P'=t'(x)+p'(x)를 기억하여 보존한다.
(2) 다항식을 이용한 경우(2)
다음으로, 도 9를 참조하여 다항식을 이용한 경우(1)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 다항식 발생기(13)에 의해 랜덤으로 다항식을 발생시킨다. 이 때, 등록한 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(t'(x)=β1·xmodq)를, 서버의 수가 n개이면 n차 다항식(t'(x)=β1·x+β2·x2+…+βn·Xnmodq)를 발생시킨다. 여기에서, β는 (z/qZ)*로부터 무작위로 선택된다. 예를 들면, 한 서버의 경우, T'=t'(x)는, t'(x)=β1·xmodq가 된다. 여기에서, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식 P'=p'(x)를 독출한다. 다항식 t'(x)와 다항식 p'(x)가 입력되면 갱신값 생성기(14)는, 사용자 보존용의 갱신된 다항식 P'와 서버 갱신용의 값(H')를 생성한다. 갱신된 다항식 P'는, 예를 들면 P'=t'(x)+p'(x)=(α11)·xmodq에 의해 계산할 수 있다. 서버 갱신용의 값(H'), 예를 들면 H'=t'(1)modq에 의해 계산할 수 있다. 여기에서, t'(1)는 t'(x)에서 x 대신에 서버의 ID(예를 들면,「1」)를 넣어 계산한 값이다. 서버 갱신용의 값(H')은 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 갱신된 다항식 P'=t'(x)+p'(x)를 기억하여 보존한다.
(3) 다항식과 해시함수를 이용한 경우(1)
다음으로, 도 9를 참조하여 다항식과 해시함수를 이용한 경우(1)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 다항식 발생기(13)에 의해 랜덤으로 다항식을 발생시킨다. 이 때, 등록한 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(t'(x)=β1·xmodN)을, 서버의 수가 n개이면 n차 다항식(t'(x)=β1·x+β2·x2+…+βn·xnmodN)을 발생시킨다. 여기에서, β는(Z/qZ)*로부터 무작위로 선택된다. 예를 들면, 한 서버의 경우, T'=t'(x)는 t'(x)=β1·xmodN가 된다. 여기에서, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식과 해시함수 P'=(p'(x),HASH)를 독출한다. 다항식 t'(x)와 다항식 p'(x)가 입력되면 갱신값 생성기(14)는 사용자 보존용의 갱신된 다항식 P'와 서버 갱신용의 값(H')을 생성한다. 갱신된 다항식 P'는, 예를 들면 P'=t'(x)+p'(x)=(α11)·xmodN에 의해 계산할 수 있다. 서버 갱신용의 값(H'), 예를 들면 H'=ht' (1)modp에 의해 계산할 수 있다. 여기에서 t'(1)은 t'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
예를 들면, 등록한 서버의 수가 n인 경우, 갱신값 생성기(14)는 i번째 서버 에 대해 서버 갱신용의 값(H')을 생성한다. 서버 갱신용의 값(H')은, 예를 들면 H'=ht'(i)modp에 의해 계산할 수 있다. 여기에서, t'(i)는 n차 다항식 t'(x)에 x 대신에 「i」를 넣어 계산한 값이다.
서버 갱신용의 값(H')은 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 갱신된 다항식 P'=t'(x)+p'(x)와 메모리(12)로부터 독출한 해시함수(HASH)를 함께 P'=(t'(x)+p'(x),HASH)로서 기억하여 보존한다.
(4) 다항식과 해시함수를 이용한 경우(2)
다음으로, 도 9를 참조하여 다항식과 해시함수를 이용한 경우(2)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 다항식 발생기(13)에 의해 랜덤으로 다항식을 발생시킨다. 이 때, 등록한 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(t'(x)=β1·xmodN)을, 서버의 수가 n개이면 n차 다항식(t'(x)=β1·X+β2·x2+…+βn·XnmodN)을 발생시킨다. 여기에서, β는 (Z/qZ)*로부터 무작위로 선택된다. 예를 들면, 한 서버의 경우, T'=t'(x)는 t'(x)=β1·xmodN가 된다. 여기에서, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식과 해시함수 P'=(p'(x),HASH)를 독출한다. 다항식 T'(x)와 다항식 p'(x)가 입력되면 갱신값 생성기(14)는, 사용자 보존용의 갱신된 다항식 P'와 서버 갱신용의 값(H')를 생성한다. 갱신된 다항식 P'는, 예를 들면 P'=t'(x)+p'(x)=(α11)·xmodN에 의해 계산할 수 있다. 서버 갱신용의 값(H'), 예를 들면 H'=t'(1)modN에 의해 계산할 수 있다. 여기에서, t'(1)는 t'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
예를 들면, 등록한 서버의 수가 n인 경우, 갱신값 생성기(14)는, i번째 서버에 대해 서버 갱신용의 값(H')을 생성한다. 서버 갱신용의 값(H')은, 예를 들면 H'=t'(i)modN에 의해 계산할 수 있다. 여기에서, t'(i)는 n차 다항식 t'(x)에서 x 대신에 「i」를 넣어 계산한 값이다.
서버 갱신용의 값(H')은 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 갱신된 다항식 P'=t'(x)+p'(x)와 메모리(12)로부터 독출한 해시함수(HASH)를 함께 P'=(t'(x)+p'(x),HASH)로서 기억하여 보존한다.
<서버의 갱신화 처리>
(1) 다항식을 이용한 경우(1), 다항식과 해시함수를 이용한 경우(1)
처음에, 도 10을 참조하여 다항식을 이용한 경우(1), 다항식과 해시함수를 이용한 경우(1)의 서버(2)의 갱신화 처리 동작을 설명한다. 서버(2)는, 전술한 다항식을 이용한 경우(1), 다항식과 해시함수를 이용한 경우(1)와 상관 없이 다음과 같이 동작한다.
우선, 서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 사용자의 단말장치부터 보내진 서버 갱신용의 값(H')과 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 갱신값 생성기(21)는 서버 보존용의 갱신된 패스워드 인증 데이터(H)를 생성한다. 갱신된 패스워드 인증 데이터(H)는, 예를 들면 H=hp (1)·ht' (1)=hp (1)+ t' (1)modp에 의해 계산할 수 있다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터(H)를 기억하여 보존한다.
(2) 다항식을 이용한 경우(2)
다음으로, 도 10을 참조하여 전술한 다항식을 이용한 경우(2)의 서버(2)의 갱신화 처리 동작을 설명한다.
우선, 서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 사용자의 단말장치로부터 보내진 서버 갱신용의 값(H')과 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 갱신값 생성기(21)는, 서버 보존용의 갱신된 패스워드 인증 데이터(H)를 생성한다. 갱신된 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)+t'(1)modq에 의해 계산할 수 있다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터(H)를 기억하여 보존한다.
(3) 다항식과 해시함수를 이용한 경우(2)
다음으로, 도 10을 참조하여 전술한 다항식과 해시함수를 이용한 경우(2)의 서버(2)의 갱신화 처리 동작을 설명한다.
우선, 서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 사용자의 단말장치로부터 보내진 서버 갱신용의 값(H')과 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 갱신값 생성기(21)는, 서버 보존용의 갱신된 패스워드 인증 데이터(H)를 생성한다. 갱신된 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)+t'(1)modN에 의해 계산할 수 있다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터(H)를 기억하여 보존한다.
<패스워드 인증 데이터의 갱신-2>
사용자는, 서버에 대해 이미 등록된 패스워드 인증 데이터를, 자신이 기억하고 있는 패스워드를 바꾸면서 갱신하고 싶을 때, 자신의 단말장치를 갱신화 처리한다. 도 11은, 사용자의 단말장치의 갱신화 처리 구성을 도시한 블럭도이다. 갱신화 처리는, 비밀값 발생기(15)에 의한 비밀값(S')과 사용자의 새로운 패스워드(PW')와 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 P'가 입력되면, 패스워드 인증 데이터 갱신기(16)에 의해 서버 갱신용의 패스워드 인증 데이터(H')와, 사용자 보존용의 갱신된 P'가 생성되고, H'는 서버(2)에 넘겨지고, 갱신된 P'는 메모리(12)에 보존한다. 여기에서의 갱신화 처리는, 전술한 해시함수를 이용한 경우(1), 해시함수를 이용한 경우(2), 의사 난수 발생기를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(2)에 적용할 수 있다. 그리고 다항식을 이용한 경우(1), 다항식을 이용한 경우(2), 다항식과 해시함수를 이용한 경우(1), 다항식과 해시함 수를 이용한 경우(2)도 동일하게 초기화 처리와 동일한 동작을 사용하여 적용할 수 있기 때문에 여기에서는 상세한 설명을 생략한다.
<단말장치의 갱신화 처리>
(1) 해시함수를 이용한 경우(1)
처음에 도 11을 참조하여 해시함수를 이용한 경우(1)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 비밀값 발생기(15)에 의해 랜덤으로 비밀값(S')를 발생시킨다. 여기에서, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 P'=(S,HASH)를 독출한다. 사용자가 기억하고 있는 새로운 패스워드(PW')와 해시함수(HASH)와 비밀값(S')이 입력되면 패스워드 인증 데이터 갱신기(16)는, 사용자 보존용의 갱신된 P'와 서버 갱신용의 패스워드 인증 데이터(H')를 생성한다. 서버 갱신용의 패스워드 인증 데이터(H')는, 예를 들면 H'=hHASH ( S' Pw' ID (U)∥ ID (S))modp에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 서버 갱신용의 패스워드 인증 데이터(H')는 사용자가 직접 서버(2)에 건네주거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치(1)의 내부에 있는 메모리(12)는 갱신된 P'=(S',HASH)를 기억하여 보존한다.
(2) 해시함수를 이용한 경우(2)
다음으로, 도 11을 참조하여 해시함수를 이용한 경우(2)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 비밀값 발생기(15)에 의해 랜덤으로 비밀값(S')을 발생시킨다. 여기에서, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 P'=(S,HASH)를 독출한다. 사용자가 기억하고 있는 새로운 패스워드(PW')와 해시함수(HASH)와 비밀값(S')이 입력되면 패스워드 인증 데이터 갱신기(16)는, 사용자 보존용의 갱신된 P'와 서버 갱신용의 패스워드 인증 데이터(H')를 생성한다. 서버 갱신용의 패스워드 인증 데이터(H')는, 예를 들면 H'=HASH(S'∥PW'∥ID(U)∥ID(S))modq에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 서버 갱신용의 패스워드 인증 데이터(H')는 사용자가 직접 서버(2)에 건네주거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치(1)의 내부에 있는 메모리(12)는 갱신된 P'=(S',HASH)를 기억하여 보존한다.
(3) 의사 난수 발생기를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(2)
다음으로, 도 11을 참조하여 의사 난수 발생기를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(2)의 단말장치(1)의 갱신화 처리 동작을 설명한다.
의사 난수 함수를 이용한 경우(1과 2)는, 메모리(12)에 기억된 해시함수(HASH) 대신에 의사 난수 함수(PRNG)를 사용하는 것 외에는, 해시함수를 이용한 경우(1과 2)와 동일한 동작이기 때문에 여기에서는 상세한 설명을 생략한다.
<서버의 갱신화 처리>
(1) 해시함수를 이용한 경우(1), 해시함수를 이용한 경우(2), 의사 난수 발생기를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(2)
처음에, 도 12를 참조하여 해시함수를 이용한 경우(1), 해시함수를 이용한 경우(2), 의사 난수 발생기를 이용한 경우(1), 의사 난수 발생기를 이용한 경우(2)의 서버(2)의 갱신화 처리 동작을 설명한다. 서버(2)는, 전술한 해시함수를 이용한 경우(1과 2), 의사 난수 발생기를 이용한 경우(1과 2)와 상관 없이 다음과 같이 동작한다.
우선, 서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 사용자의 단말장치(1)로부터 보내진 서버 갱신용의 패스워드 인증 데이터(H')와 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 패스워드 인증 데이터 갱신기(22)는, 서버 보존용의 패스워드 인증 데이터(H)를 사용자의 단말장치(1)로부터 보내진 H'로 갱신한다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터 H=H'를 기억하여 보존한다.
<제2실시예>
이하, 본 발명의 공개키 암호 방식을 사용한 실시예에 대해서 설명하기로 한다. 단, 본 발명은 이하의 각 실시예에 한정되는 것은 아니며, 예를 들면 이들 실시예의 구성요소끼리 적절히 조합해도 좋다.
여기에서, RSA 공개키 암호 방식을 사용한 실시예를 설명하기 전에 몇가지 배경 지식 및 기초적인 기호에 대해 설명해 둔다.
공개키 암호 방식에서는, 공개키(PubK) 및 비밀키(PriK)의 쌍(PubK,PriK)가 존재한다. 공개키는 비밀이 아니며 누구라도 얻을 수 있다. 암호화는, 공개키를 사용하여 메세지(m)를 C=EncpubK(m)가 되는 암호문(C)을 생성할 수 있다. 암호문은 비밀키를 사용해야만 m=DeCpriK(C)으로 복호 가능하다. 암호문은, 공개키를 사용해서는 복호할 수 없다. 그리고 공개키 서명 방식에서는, 메세지(m)를 서명화하여 s=SigpriK(m)가 되는 서명문(m,s)을 생성할 수 있다. 서명문의 검증은, 공개키를 사용하여 m'=VerpubK(s)를 구하고, m과 m'을 비교할 수 있다. 즉, m과 m'이 일치한 경우에는 그 서명문(m,s)이 옳다는 것을 검증한다. 그렇지 않은 경우에는 (m,s)가 옳은 서명문은 아닌 것이다.
주지의 RSA 공개키 방식에서는, 공개키는 (N,e)이고, 비밀키는 (N,d)이다. 단 N은, 2개의 랜덤으로 선택된 큰 소수 p와 q의 곱이며(즉, N=p·q), e는, e와 (p-1)·(q-1)의 최대공약수가 1인 작은 임의의 수(예를 들면, e=3 혹은 e=216+1)이고, d는 e-1mod((p-1)·(q-1))이다. 안전성을 최대화하려면 p와 q를 같은 길이로 한다. 메세지(m)(m∈ZN *)에 대해 암호화 함수는 EnCpubK(m)=memodN이고, 복호화 함수는 DeCpriK(C)=CdmodN이다. 여기에서, 암호문(C)와 공개키(N,e)가 주어질 때 메세지(m) 을 구하는 것은 계산량적으로 곤란하다. RSA는, 큰 수(N)의 소인수분해가 어렵기 때문에 안전성을 확보했다. 그리고 서명화 함수는, SigpriK(m)=mdmodN이고, 검증화 함수는 VerpubK(s)=semodN이다. 일반적으로, 암호 시스템에서는 그 안전성의 레벨을 기술하는 안전성 파라미터를 갖는다. 여기에서는, 해시함수(HASH)의 안전성 파라미터로서 k를 사용하고(단, 1/2k는 무시할 수 있을 정도로 작다고 가정한다), RSA 공개키 방식의 안전성 파라미터로서 1을 사용하고, 특히 RSA의 법(N)은 길이 1이라고 가정한다. 또 {0,1}*은 유한의 2진수의 스트링의 집합을, {0,1}k는 길이 k의 2진수의 스트링의 집합을 나타낸다. 해시함수(HASH)는 {0,1}*의 입력으로부터 {0,1}k의 출력을 내는 안전한 일방향 함수이고, FDH(Full-Domain Hash)함수는 {O,1}*의 입력으로부터 ZN *\{1}의 출력을 내는 안전한 일방향 함수이다. 또 난수 발생기로부터 발생되는 난수는 T(T∈ZN *)을 무작위로 생성한다. 또 ∥는 값을 연결(concatenation)한다는 의미이다.
<단말장치의 초기화>
사용자는, 서버에 대해 개인 등록하고 싶을 때, 자신의 단말장치를 초기화한다. 도 1은, 사용자의 단말장치의 초기화 처리 구성을 도시한 블럭도이다. 초기화 는, 사용자가 패스워드를 입력하면 데이터 신장기(11)에 의해 서버 등록용의 패스워드 인증 데이터(H)와, 사용자 보존용의 값(P')이 생성되고, 패스워드 인증 데이터(H)는 서버에 넘겨지고, 값(P')은 메모리(12)에 보존한다. 여기에서 데이터 신장기(11)는 다항식과 FDH 함수, FDH 함수 등으로 구성할 수 있다.
(1) 다항식과 FDH 함수를 이용하는 경우(1)
처음에, 도 13을 참조하여 다항식과 FDH 함수를 이용하는 경우(1)에 대해서 설명하기로 한다.
우선, FDH 함수 발생기(122)에 의해 랜덤으로 FDH 함수(FDH)를 발생시킨다.그리고, 다항식 발생기(123)에 의해 랜덤으로 다항식을 발생시킨다. 이 때, 등록하는 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(p'(x)=α1·xmodN)을, 서버의 수가 n개이면 n차 다항식(p'(x)=α1·x+α2·x2+…+αn·xnmodN)을 발생시킨다. 여기에서, α는 ZN *으로부터 무작위로 선택된다. 예를 들면, 하나의 서버의 경우, p'(X)는 p'(x)=α1·xmodN이 된다. 여기에서, 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 다항식과 FDH 함수와 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(124)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)=p'(1)+Pooh93modN에 의해 계산할 수 있다. 여기에서, p'(1)는 p'(x)에서 x 대신에 서버의 ID(예를 들면,「1」)를 넣어 계산한 값이다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 다항식 발생기에서 발생된 다항식 p'(x)와 FDH 함수 발생기에서 발생된 FDH 함수(FDH)를 함께 P'=(p'(x),FDH)로서 기억하여 보존한다.
(2) 다항식과 FDH 함수를 이용하는 경우(2)
다음으로, 도 13을 참조하여 다항식과 FDH 함수를 이용하는 경우(2)를 이용하는 경우에 대해서 설명하기로 한다.
우선, FDH 함수 발생기(122)에 의해 랜덤으로 FDH 함수(FDH)를 발생시킨다. 그리고, 다항식 발생기(123)에 의해 랜덤으로 다항식을 발생시킨다. 이 때 등록하는 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(p'(x)=α1·xmodN)을, 서버의 수가 n개이면 n차 다항식(p'(x)=α1·x+α2·x2+…+αn·xnmodN)을 발생시킨다. 여기에서,α는 ZN *으로부터 무작위로 선택된다. 예를 들면, 하나의 서버의 경우, p'(X)는, p'(x)=α1·xmodN가 된다. 여기에서, 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. 다항식과 FDH 함수와 사용자의 패스워드가 입력되면 패스워드 인증 데이터 생성기(124)는 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)=p'(1)+FDH(Pooh93∥ID(U)∥ ID(S))modN에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 여기에서, p'(1)는 p'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
예를 들면, 등록하는 서버의 수가 n인 경우, 패스워드 인증 데이터 생성기(124)는 i번째 서버에 대해 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=p(i)=p'(i)+FDH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 i번째 서버의 ID를 나타낸다. 여기에서, p'(i)는 n차 다항식 p'(x)에서 x 대신에 「i」를 넣어 계산한 값이다.
패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 다항식 발생기에서 발생된 다항식 p'(x)와 FDH 함수 발생기에서 발생된 FDH 함수(FDH)를 함께 P'=(p'(x),FDH)로서 기억하여 보존한다.
(3) FDH 함수를 이용하는 경우
다음으로, 도 14를 참조하여 FDH 함수를 이용하는 경우에 대해서 설명하기로 한다.
우선, FDH 함수 발생기(125)에 의해 랜덤으로 FDH 함수(FDH)를 발생시킨다.그리고, 비밀값 발생기(126)에 의해 랜덤으로 비밀값(S)을 발생시킨다. 단, S는 모든 탐색 공격을 막을 수 있는 길이의 값이다(예를 들면, S는 80비트 이상의 값). 여기에서, 사용자는 자신이 기억하고 있는 패스워드(예를 들면, "Pooh93")를 입력한다. FDH 함수와 비밀값(S)과 사용자의 패스워드가 입력되면 패스워드 인증 데이터 발생기(127)은 패스워드 인증 데이터(H)를 생성한다. 패스워드 인증 데이터(H)는, 예를 들면 H=FDH(S=Pooh93∥ID(U)∥ID(S))에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 패스워드 인증 데이터(H)는 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 비밀값 발생기(126)로부터 발생된 비밀값(S)과 FDH 함수 발생기(125)로부터 발생된 FDH 함수(FDH)를 함께 P'=(S,FDH)으로서 기억하여 보존한다.
<단말장치와 서버의 초기화>
서버는, RSA 공개키를 사용자에게 송신하고 싶을 때, 초기화 처리를 한다. 서버는, RSA 공개키 방식에 따라서 공개키과 비밀키의 쌍을 생성하고, 그 공개키를 사용자에게 송신한다. 여기에서 초기화는, 안전한 통신, 안전하지 않은 통신 등으로 실현할 수 있다. 안전하지 않은 통신을 이용하는 경우에는, 사용자는 수신한 공개키가 바른지 아닌지를 결정한다. 이 사용자에 의한 결정은, 사용자에게 서버가 적당한 방법으로 선택한 공개키를 생성했는지 여부를 결정하는 방법을 제공한다. 즉, 서버가 제공한 공개키(e)와 (p-1)·(q-1)의 최대공약수가 1(즉, gcd(e,(p-1)·(q-1))=1)인지 아닌지 결정하기 위해 RSA 서명 방식을 사용한다.
(1) 안전한 통신을 이용하는 경우
처음에, 도 15를 참조하여 안전한 통신을 이용하는 경우의 초기화 처리에 대해서 설명하기로 한다.
우선, RSA키 생성기(23)에 의해 공개키(N,e)와 비밀키(N,d)의 쌍을 생성한다. RSA 공개키(N,e)는 서버가 직접 사용자에게 넘겨주거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 서버의 내부에 있는 메모리(41)는 RSA 비밀키(N,d)를 기억하여 보존한다.
(2) 안전하지 않은 통신을 이용하는 경우
다음으로, 도 16을 참조하여 안전하지 않은 통신을 이용하는 경우의 초기화 처리에 대해서 설명하기로 한다.
우선, 사용자의 단말장치(1)에 있는 난수 발생기(17)에 의해 랜덤으로 난수(R1)(R1∈{0,1}k)를 발생하여 서버에 송신한다. 한편, 서버(2)에 있는 RSA키 생성기(24)에 의해 공개키(N,e)와 비밀키(N,d)의 쌍을 생성한다. 그리고 난수 발생기(25)에 의해 랜덤으로 난수(R2)(R2∈{0,1}k)를 발생시킨다. RSA 서명문 생성기(26)는 단말장치(1)로부터 수신한 R1과 RSA키 생성기(24)로부터 생성된 비밀키(N,d)와 난수 발생기(25)로부터 발생시킨 난수(R2)를 입력하여 {mj}1≤j≤n의 서명 {sj}1≤j≤n을 생성한다(단, n은 n≥1oge(PW·(e-1)/e)가 되는 정수이다. 여기에서, PW 는 패스워드를 나타낸다.). 서명 {sj}1≤j≤n은, {sj=mj dmodN}1≤j≤n에 의해 계산한다. 여기에서, {mJ}1≤j≤n은 HASH(n∥N∥e∥ID(U)∥ID(S)∥R1∥R2)의 출력으로부터 길이 1의 블럭을 n개로 나누어 얻은 것이다. ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 서버(2)는, 공개키(N,e)와 계산하여 얻어진 서명문(R2,{sj}1≤j≤n)을 단말장치(1)에 송신한다. 서버(2)의 내부를 구비한 메모리(41)는 RSA키 생성기(24)로부터 생성된 비밀키(N,d)를 기억하여 보존한다.
사용자의 단말장치(1)에 있는 검증결과 판단부(18)는, 난수 발생기(17)에서 발생시킨 R1과 서버(2)로부터 수신한 ((N,e), (R2,{Sj}1≤j≤n)을 입력하여, 서명문(R2,{Sj}1≤j≤n)을 검증한다. {mj=Sj emodN}1≤j≤n에 의해 {mj}1≤j≤n을 계산하여 이 {mj}1≤j≤n와 HASH(n∥N∥e∥ID(U)∥ID(S)∥R1∥R2)를 비교한다. 검증결과 판단부(18)에서 {mj}1≤j≤n와 HASH(n∥N∥e∥ID(U)∥ID(S)∥R1∥R2)가 일치하지 않는 경우, 검증결과 판단부(18)는 에러 발생기(19)에 대해 일치하지 않는 것을 통지한다. 이것을 받아, 에러 발생기(19)는 에러를 발생하여 처리를 중단한다. 한편 검증결과 판단부(18)에서 {mj}1≤j≤n와 HASH(n∥N∥e∥ID(U)∥ID(S)∥R1∥R2)가 일치한 경우에는 서버(2)의 공개키(N,e)가 정당한 것으로 검증하여, 사용자의 단말장치(1) 내부에 구비한 메모리(12)에 공개키(N,e)를 기억하여 보존한다.
다음으로, 도 17, 18을 참조하여 전술한 초기화를 수행한 단말장치(1)와 서버(2)(도 5 참조) 간에 상호 인증 및 키 교환을 하는 동작을 설명한다.
<단말장치의 동작>
(1) 다항식과 FDH 함수를 이용한 경우(1)
처음에, 다항식과 FDH 함수를 이용한 경우(1)의 단말장치(1)의 동작을 설명한다.
우선, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식과 FDH 함수 P'=(p'(x),FDH)를 독출한다. 결합기(52)는 메모리(12)로부터 독출한 다항식 p'(x)과 FDH 함수(FDH)와 사용자가 입력한 패스워드에 의해 W=FDH(p(x)∥ID(U)∥ID(S))를 계산하여 출력한다. 여기에서, p(x)=p'(x)+Pooh93modN에 의해 계산한다. 예를 들면, p'(x)가 1차 다항식인 경우, p(x)=p(1)=p'(1)+Pooh93=α1·1+Pooh93modN에 의해 계산한다. 여기에서, p'(1)는 p'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
사용자의 단말장치(1)를 구비한 메모리(12)로부터 독출한 다항식 p'(x)가 n차 다항식인 경우, 결합기(52)는 다항식 p'(x)와 FDH 함수(FDH)와 사용자가 입력한 패스워드에 의해 W=FDH(p(x)∥ID(U)∥ID(S))를 계산하여 출력한다. 여기에서, p(x)=p'(x)+Pooh93modN에 의해 계산한다. 예를 들면, p(x)=p(i)=p'(i)+Pooh93modN에 의해 계산한다. 여기에서 p'(i)는 i번째 서버에 대해 p'(x)에 x 대신에「i」를 넣어 계산한 값이다.
마스크 연산기(54)는, 메모리(12)로부터 독출한 공개키(N,e)와 결합기(52)로부터 입력된 W와 난수 발생기(53)에서 랜덤으로 발생시킨 난수(T)(T∈ZN *)로부터 Z를, Z=Te·WmodN에 의해 계산한다. 통신 처리부(55)는 Z를 서버(2)로 송신하고, 서버(2)로부터 V2를 수신한다.
계속해서 인증결과 판단부(56)는, 난수 발생기(53)로부터 출력된 T를 입력하여 HASH(01∥T∥ID(U)∥ID(S))를 계산하여 서버(2)로부터 수신한 V2와 비교한다. 여기에서, HASH 대신에 MAC를 사용해도 좋다. 인증결과 판단부(56)에서 V2와 HASH(01∥T∥ID(U)∥ID(S))가 일치하지 않는 경우, 인증결과 판단부(56)는 에러 발생기(57)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(57)는 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(56)에서 V2와 HASH(01∥T∥ID(U)∥ID(S))가 일치한 경우에는 서버(2)가 정당한 장치로서 인증하여, 검증자 생성기(58)는, V1=HASH(00∥T∥ID(U)∥ID(S))에 의해 검증자(V1)를 계산하여 서버(2)로 송신한다. 동시에, 세션키 생성기(59)는 SK=HASH(11∥T∥ID(U)∥ID(S))에 의해 세션키(SK)를 생성한다.
(2) 다항식과 FDH 함수를 이용한 경우(2)
다음으로, 다항식과 FDH 함수를 이용한 경우(2)의 단말장치(1)의 동작을 설 명한다.
우선, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식과 FDH 함수P'=(p'(x),FDH)를 독출한다. 결합기(52)는 메모리(12)로부터 독출한 다항식p'(x)과 FDH 함수(FDH)와 사용자가 입력한 패스워드에 의해 W=FDH(p(x)∥ID(U)∥ID(S))를 계산하여 출력한다. 여기에서, P(x)=P'(x)+FDH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 예를 들면, p'(x)가 1차 다항식인 경우, P(x)=P(1)=P'(1)+FDH(Pooh93∥ID(U)∥ID(S))=α1·1+FDH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 여기에서, p'(1)는 p'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
사용자의 단말장치(1)를 구비한 메모리(12)로부터 독출한 다항식 p'(x)가 n차 다항식인 경우, 결합기(52)는 다항식p'(x)와 FDH 함수(FDH)와 사용자가 입력한 패스워드에 의해 W=FDH(p(x)∥ID(U)∥ID(S))를 계산하여 출력한다. 여기에서, p(x)=p'(x)+FDH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 예를 들면, p(x)=p(i)=p'(i)+FDH(Pooh93∥ID(U)∥ID(S))modN에 의해 계산한다. 여기에서, p'(i)는 i번째 서버에 대해 p'(x)에서 x 대신에 「i」을 넣어 계산한 값이다.
마스크 연산기(54)는, 메모리(12)로부터 독출한 공개키(N,e)와 결합기(52)로부터 입력된 W와 난수 발생기(53)에서 랜덤으로 발생시킨 난수(T)(T∈ZN *)로부터 Z를, Z=Te·WmodN에 의해 계산한다. 통신 처리부(55)는 Z를 서버(2)에 송신하고, 서 버(2)로부터 V2를 수신한다.
계속해서 인증결과 판단부(56)는, 난수 발생기(53)로부터 출력된 T를 입력하여, HASH(01∥T∥ID(U)∥ID(S))를 계산하여 서버(2)로부터 수신한 V2와 비교한다. 여기에서, HASH 대신에 MAC를 사용해도 좋다. 인증결과 판단부(56)에서 V2와 HASH(01∥T∥ID(U)∥ID(S))가 일치하지 않는 경우, 인증결과 판단부(56)는 에러 발생기(57)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(57)는 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(56)에서 V2와 HASH(01∥T∥ID(U)∥ID(S))가 일치한 경우에는 서버(2)가 정당한 장치로서 인증하여, 검증자 생성기(58)는 V1=HASH(00∥T∥ID(U)∥ID(S))에 의해 검증자(V1)를 계산하여 서버(2)에 송신한다. 동시에, 세션키 생성기(59)는 SK=HASH(11∥T∥ID(U)∥ID(S))에 의해 세션키(SK)를 생성한다.
(3) FDH 함수를 이용한 경우
다음으로 FDH 함수를 이용한 경우의 단말장치(1)의 동작을 설명한다.
우선, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 비밀값과 FDH 함수 P'=(S,FDH)를 독출한다. 결합기(52)는 메모리(12)로부터 독출한 비밀값(S)과 FDH 함수(FDH)와 사용자가 입력한 패스워드에 의해 W를 계산하여 출력한다. 예를 들면, W는 W=FDH(S∥Pooh93∥ID(U)∥ID(S))에 의해 계산한다. 마스크 연산기(54)는 메모리(12)로부터 독출한 공개키(N,e)와 결합기(52)로부터 입력된 W와 난수 발생기(53)에서 랜덤으로 발생시킨 난수(T)(T∈ZN *)로부터 z를, z=Te·WmodN에 의해 계산한다. 통신 처리부(55)는 Z를 서버(2)에 송신하고, 서버(2)로부터 V2를 수신한다.
계속해서 인증결과 판단부(56)는, 난수 발생기(53)로부터 출력된 T를 입력하여 HASH(01∥T∥ID(U)∥ID(S))를 계산하여 서버(2)로부터 수신한 V2와 비교한다. 여기에서, HASH 대신에 MAC를 사용해도 좋다. 인증결과 판단부(56)에서 V2와 HASH(01∥T∥ID(U)∥ID(S))가 일치하지 않는 경우, 인증결과 판단부(56)는 에러 발생기(57)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(57)은 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(56)에서 V2와 HASH(01∥T∥ID(U)∥ID(S))가 일치한 경우에는 서버(2)가 정당한 장치로서 인증하여 검증자 생성기(58)는, V1=HASH(00∥T∥ID(U)∥ID(S))에 의해 검증자(V1)를 계산하여 서버(2)에 송신한다. 동시에 세션키 생성기(59)는 SK=HASH(11∥T∥ID(U)∥ID(S))에 의해 세션키(SK)를 생성한다.
<서버의 동작>
(1) 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)
서버(2)는, 전술한 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
우선, 서버(2)를 구비한 메모리(41)로부터 보존된 사용자 ID와 패스워드의 인증 데이터(H)를 독출한다. 마스터키 생성기(62)는 메모리(41)로부터 독출한 H와 비밀키(N,d)와 단말장치(1)로부터 수신한 Z를 입력하여 T를, T=(Z/W)dmodN에 의해 계산하여 출력한다. 여기에서, W는 W=FDH(H∥ID(U)∥ID(S))에 의해 계산한다. 검증자 생성기(63)는, 마스터키 생성기(62)로부터 입력된 T로부터 검증자(V2)를, V2=HASH(01∥T∥ID(U)∥ID(S))에 의해 계산한다. 통신 처리부(64)는, 계산하여 얻어진 V2를 단말장치(1)에 송신하고, 단말장치(1)로부터 수신한 V1을 인증결과 판단부(65)에 출력한다.
계속해서 인증결과 판단부(65)는, 마스터키 생성기(62)로부터 출력된 T를 입력하여, HASH(00∥T∥ID(U)∥ID(S))를 계산하여 단말장치(1)로부터 수신한 V1과 비교한다. 여기에서, HASH 대신에 MAC를 사용해도 좋다. 인증결과 판단부(65)에서 V1과 HASH(00∥T∥ID(U)∥ID(S))가 일치하지 않는 경우, 인증결과 판단부(65)는, 에러 발생기(66)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(66)는 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(65)에서 V1과 HASH(00∥T∥ID(U)∥ID(S))가 일치한 경우에는 단말장치(1)가 정당한 장치로서 인증하고, 세션키 생성기(67)는 SK=HASH(11∥T∥ID(U)∥ID(S))에 의해 세션키(SK)를 생성한다.
(2) FDH 함수를 이용한 경우
다음으로 FDH 함수를 이용한 경우의 서버(2)의 동작을 설명한다.
우선, 서버(2)를 구비한 메모리(41)로부터 보존된 사용자 ID와 패스워드의 인증 데이터(H)를 독출한다. 마스터키 생성기(62)는 메모리(41)로부터 독출한 H와 비밀키(N,d)와 단말장치(1)로부터 수신한 Z를 입력하여 T를, T=(Z/W)dmodN에 의해 계산하여 출력한다. 여기에서, W는 W=H이다. 검증자 생성기(63)는 마스터키 생성기(62)로부터 입력된 T에서 검증자(V2)를, V2=HASH(01∥T∥ID(U)∥ID(S))에 의해 계산한다. 통신 처리부(64)는, 계산하여 얻어진 V2를 단말장치(1)에 송신하고, 단말장치(1)로부터 수신한 V1을 인증결과 판단부(65)로 출력한다.
계속해서 인증결과 판단부(65)는, 마스터키 생성기(62)로부터 출력된 T를 입력하여, HASH(00∥T∥ID(U)∥ID(S))를 계산하여 단말장치(1)로부터 수신한 V1과 비교한다. 여기에서, HASH 대신에 MAC를 사용해도 좋다. 인증결과 판단부(65)에서 V1과 HASH(00∥T∥ID(U)∥ID(S))가 일치하지 않는 경우, 인증결과 판단부(65)는, 에러 발생기(66)에 대해 일치하지 않는 것을 통지한다. 이것을 받고, 에러 발생기(66)는 에러를 발생하여 처리를 중단한다. 한편, 인증결과 판단부(65)에서 V1과 HASH(00∥T∥ID(U)∥ID(S))가 일치한 경우에는 단말장치(1)가 정당한 장치로서 인증하여 세션키 생성기(67)는, SK=HASH(11∥T∥ID(U)∥ID(S))에 의해 세션키(SK)를 생성한다.
<패스워드 인증 데이터의 갱신-1>
사용자는, 서버에 대해 이미 등록된 패스워드 인증 데이터를, 자신이 기억하고 있는 패스워드를 바꾸지 않고 갱신하고 싶을 때, 자신의 단말장치를 갱신화한다. 도 9, 도 19는, 사용자의 단말장치의 갱신화 처리 구성을 나타내는 블럭도이다. 여기에서의 갱신화 처리는, 전술한 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)와 마스터키를 이용하는 경우에 적용할 수 있다. 또 이 갱신화 처리에 의해 서버에 대한 replay 공격을 막을 수 있다.
<단말장치의 갱신화 처리>
(1) 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)
처음에, 도 9를 참조하여 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)의 단말장치(1)의 갱신화 처리를 설명한다. 단말장치(1)는, 전술한 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
우선, 다항식 발생기(13)에 의해 랜덤으로 다항식을 발생시킨다. 이 때, 등록한 서버의 수가 하나이면 x를 변수로 하는 1차 다항식(t'(x)=β1·xmodN)을, 서버의 수가 n개이면 n차 다항식(t'(x)=β1·x+β2·x2+…+βn·xnmodN)을 발생시킨다. 여기에서, β는 ZN *부터 무작위로 선택된다. 예를 들면, 1개의 서버의 경우, T'=t'(x)는 t'(x)=β1·xmodN이 된다. 여기에서, 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 다항식과 FDH 함수 P'=(p'(x),FDH)를 독출한다. 다항식 t'(x)와 다항식 p'(x)가 입력되면 갱신값 생성기(14)는, 사용자 보존용의 갱신된 다항식 P'과 서버 갱신용의 값(H')을 생성한다. 갱신된 다항식 P'는, 예를 들면 P'=t'(x)+p'(x)=(α11)·xmodN에 의해 계산할 수 있다. 서버 갱신용의 값(H'), 예를 들면 H'=t'(1)modN에 의해 계산할 수 있다. 여기에서, t'(1)은 t'(x)에서 x 대신에 「1」을 넣어 계산한 값이다.
예를 들면, 등록한 서버의 수가 n인 경우, 갱신값 생성기(14)는, i번째 서버에 대해 서버 갱신용의 값(H')을 생성한다. 서버 갱신용의 값(H')은, 예를 들면 H'=t'(i)modN에 의해 계산할 수 있다. 여기에서, t'(i)는 n차 다항식t'·(x)에 x 대신에 「i」를 넣어 계산한 값이다.
서버 갱신용의 값(H')은 사용자가 직접 서버에 넘기거나, 우편으로 보내거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 갱신된 다항식 P'=t'(x)+p'(x)와 메모리(12)로부터 독출한 FDH 함수(FDH)를 함께 P'=(t'(x)+p'(x),FDH)로서 기억하여 보존한다.
(2) 마스터키를 이용하는 경우
다음으로 도 19를 참조하여 마스터키를 이용하는 경우의 단말장치(1)의 갱신 화 처리 동작을 설명한다.
우선, 난수 발생기(53)에 의해 랜덤으로 난수(T)(T∈ZN *)를 발생시킨다. 여기에서, 사용자의 단말장치(1)에 구비한 메모리(12)로부터 기억된 다항식과 FDH 함수 P'=(p'(x),FDH)를 독출한다. 난수(T)와 다항식 p'(x)가 입력되면 갱신값 생성기(20)는, 사용자 보존용의 갱신된 다항식 P'를 생성한다. 갱신된 다항식 P'는, P'=T+p'(x)modN에 의해 계산할 수 있다. 사용자의 단말장치의 내부에 있는 메모리(12)는 갱신된 다항식 P=T+p'(x)와 메모리(12)로부터 독출한 FDH 함수(FDH)를 함께 P'=(T+p'(x),FDH)로서 기억하여 보존한다.
<서버의 갱신화 처리>
(1) 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)
처음에, 도 10을 참조하여 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)의 서버(2)의 갱신화 처리 동작을 설명한다. 서버(2)는, 전술한 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)와 상관 없이 다음과 같이 동작한다.
우선, 서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 사용자의 단말장치로부터 보내진 서버 갱신용의 값(H')과 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 갱신값 생성기(21)는, 서버 보존용의 갱신된 패스워드 인증 데이터(H)를 생성한다. 갱신된 패스워드 인증 데이터(H)는, 예를 들면 H=p(1)+t'(1)modN에 의해 계산할 수 있다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터(H)를 기억하여 보존한다.
(2) 마스터키를 이용하는 경우
다음으로 도 20을 참조하여, 마스터키를 이용하는 경우의 서버(2)의 갱신화 처리 동작을 설명한다.
우선, 마스터키 생성기(62)에 의해 마스터키(T)를 생성한다. 여기에서, 서버(2)를 구비한 메모리(41)로부터 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 마스터키(T)와 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 갱신값 생성기(20)는 서버 보존용의 갱신된 패스워드 인증 데이터(H)를 생성한다. 갱신된 패스워드 인증 데이터(H)는, H=p(1)+TmodN에 의해 계산할 수 있다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터(H)를 기억하여 보존한다.
<패스워드 인증 데이터의 갱신-2>
사용자는, 서버에 대해 이미 등록된 패스워드 인증 데이터를, 자신이 기억하고 있는 패스워드를 바꾸면서 갱신하고 싶을 때, 자신의 단말장치를 갱신화한다. 도 11은, 사용자의 단말장치의 갱신화 처리 구성을 도시한 블럭도이다. 갱신화 처리는, 비밀값 발생기(15)에 의한 비밀값(S')과 사용자의 새로운 패스워드(PW')와 사용자의 단말장치(1)를 구비한 메모리(12)로부터 기억된 P'가 입력되면, 패스워드 인증 데이터 갱신기(16)에 의해 서버 갱신용의 패스워드 인증 데이터(H')와, 사용자 보존용의 갱신된 P'가 생성되고, H'는 서버(2)로 넘겨지고, 갱신된 P'는 메모리(12)에 보존한다. 여기에서의 갱신화 처리는, 상술한 FDH 함수를 이용한 경우에 적용할 수 있다. 또 이 갱신화 처리에 의해 서버에 대한 replay공격을 막을 수 있다. 그리고, 다항식과 FDH 함수를 이용한 경우(1), 다항식과 FDH 함수를 이용한 경우(2)도 마찬가지로 초기화 처리와 동일한 동작을 사용하여 적용할 수 있기 때문에 여기에서는 상세한 설명을 생략한다.
<단말장치의 갱신화 처리>
(1) FDH 함수를 이용한 경우
도 11을 참조하여 FDH 함수를 이용한 경우의 단말장치(1)의 갱신화 처리 동작을 설명한다.
우선, 비밀값 발생기(15)에 의해 랜덤으로 비밀값(S')를 발생시킨다. 여기에서, 사용자의 단말장치(1)에 구비한 메모리(12)로부터 기억된 P'=(S,FDH)를 독출한다. 사용자가 기억하고 있는 새로운 패스워드(PW')와 FDH 함수(FDH)와 비밀값(S')이 입력되면 패스워드 인증 데이터 갱신기(16)는, 사용자 보존용의 갱신된 P'와 서버 갱신용의 패스워드 인증 데이터(H')를 생성한다. 서버 갱신용의 패스워드 인증 데이터(H')는, 예를 들면 H'= FDH(S'∥PW'∥ID(U)∥ID(S))에 의해 계산할 수 있다. 여기에서, ID(U)와 ID(S)는 각각 사용자와 서버의 ID를 나타낸다. 서버 갱신용의 패스워드 인증 데이터(H')는 사용자가 직접 서버(2)에 건네주거나, 우편으로 보내 거나 혹은 전화로 알리는 등 안전하게 통지할 필요가 있다. 사용자의 단말장치(1)의 내부에 있는 메모리(12)는 갱신된 P'=(S',FDH)를 기억하여 보존한다.
<서버의 갱신화 처리>
(1) FDH 함수를 이용한 경우
도 12를 참조하여 FDH 함수를 이용한 경우의 서버(2)의 갱신화 처리 동작을 설명한다.
우선, 서버(2)를 구비한 메모리(41)에 보존된 사용자 ID와 패스워드 인증 데이터(H)를 독출한다. 사용자의 단말장치(1)에서 보내진 서버 갱신용의 패스워드 인증 데이터(H')와 메모리(41)로부터 독출한 패스워드 인증 데이터(H)가 입력되면 패스워드 인증 데이터 갱신기(22)는, 서버 보존용의 패스워드 인증 데이터(H)를 사용자의 단말장치(1)로부터 보내진 H'로 갱신한다. 서버의 내부에 있는 메모리(41)는 갱신된 패스워드 인증 데이터 H=H'를 기억하여 보존한다.
이와 같이 다항식을 이용함으로써 부정 이용하려고 생각하고 있는 사람이 타인의 단말장치를 가지고 있다 해도 사용자의 패스워드는 정보 이론적으로 안전하다. 또 서버 내에 침입하여 보존되어 있는 정보를 얻었다 해도 사용자의 패스워드는 정보 이론적으로 안전하다. 또 해시함수와 의사 난수 발생기와 FDH 함수를 이용하는 경우에는, 부정 이용하려고 생각하고 있는 사람에게 있어서 사용자의 패스워드는 계산량적으로 안전하다.
다음으로, 전술한 기술을 응용한 장치에 대해서 설명하기로 한다.
<단말에 분산 데이터를 보존하지 않는 경우의 원격분산 보존장치에서의 데이터 보존처리>
다음으로, 도 21을 참조하여 단말에 분산 데이터를 보존하지 않는 경우의 원격분산 보존장치에서의 데이터 보존처리에 대해서 설명하기로 한다. 도 21은, 단말에 분산 데이터를 보존하지 않는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다.
사용자는 분산 보존하고 싶은 데이터(DATA)를 자신의 단말장치(21)로 처리하고, n대의 서버에 보존하는 데이터(S'1,…,S'n)로 분할한다. 분할 데이터(S'i)는 데이터의 ID인 DID와 함께 사용자의 단말장치(21)에 의해 서버의 인증장치와 공유된 키(SKi)를 사용하여 작성된 안전한 통신로를 사용할 수 있는 통신기(52)에 의해 서버(IDi)로 보내져 보존된다. 같은 방법으로 보존 데이터의 일람 정보를 분할하여 서버에 보존하는 것도 가능하다. 또 사용자의 단말장치(인증 데이터 갱신 모드)를 적당한 간격(기억정보가 오프라인 전량 탐색으로 구해지는 간격보다 짧은 간격으로, 예를 들면, 인증을 할 때마다 또는 2,3일에 1회 등)으로 동작시키고, P'와 각 서버에 기록되어 있는 H를 갱신하는 정보(UP', UH1, …, UHn)를 생성시키고, 그것들을 갱신한다.
이로써 서버에 보존되는 데이터와 인증용 데이터를 함께, 누설과 파손에 강해지도록 구성할 수 있다. 누설과 파손에 대한 내성은 (n,DS,LS1,LS2)의 4쌍의 파 라미터에 표현할 수 있다. DS,LS1,LS2는 함께 (누설이나 파손이 발생하는) 엔티티의 조합의 집합이고, DS는 데이터의 파손에 대한 내성, LS1,LS2는 누설에 대한 내성을 표현하고 있다. DS에는, 부서져도 상관 없는 엔티티의 조합이 기술된다. 재해 등의 이유로 로컬 백업을 포함시켜 보존하고 있는 데이터를 완전히 이용할 수 없게 되었다 해도 이용자가 자신의 데이터를 복원할 수 있는 범위의 파손 조합이 기술된다. LS1에는, 기록정보가 누설되어도 상관 없는 엔티티의 조합이 기술된다. 보존 데이터가 누설되더라도 공격자가 이용자의 데이터를 복원할 수 없는 범위의 누설 조합으로 한다. LS2에는 기록정보가 누설되더라도 나중에 어떠한 대항책을 취할 수 있는 범위의 엔티티의 조합이 기술된다. 보존 데이터가 누설되더라도 공격자가 이용자의 데이터를 복원할 수 없게 하는 대항책이 존재하는 범위의 누설 조합으로 한다.
또 사용자의 기억정보는 오프라인으로 전량 탐색할 수 있을 정도로 소량이라고 가정하면, 종래의 누설에 약한 인증 방식을 사용하는 경우, 공격자는 누설 정보와 통신로 상에서 얻은 정보를 사용하여 이용자의 기억정보를 전량 탐색할 수 있고, 결과적으로 이용자인 척 하면서 원격분산 보존되어 있는 데이터를 전부 입수할 수 있다. 즉, LS1에 서버{S}과 사용자의 소유물{U1}을 각각 포함시킬 수 없었다. 이에 반해 누설에 강한 인증 방식을 사용함으로써 LS1에 서버{S}와 사용자의 소유물{U}을 각각 포함시킬 수 있게 된다. 누설에 강한 인증 방식을 포함하는 모든 원격 인증 방식은, 사용자의 소유물{U}과 서버{S} 양쪽에서 정보가 누설되면 이용자의 기억정보를 전량 탐색할 수 있고, 결과적으로 이용자인 척 하면서 원격분산 보 존되어 있는 데이터를 전부 입수할 수 있다. 따라서 LS2에 사용자의 소유물{U}과 서버{S}의 조합{US}을 넣을 수 없었다. 이에 반해 P'와 Hl,…, Hn을 갱신함으로서 LS2에 사용자의 소유물과 서버의 조합을 집어넣을 수 있다.
다음으로, 도 22를 참조하여 도 21에 도시한 데이터 분산기(51)의 구성을 설명한다. 조정기(511)은 입력된 파라미터(n,k)를 비밀 분산기(512)에 건네준다. 비밀 분산기(512)는 입력된 파라미터(n,k)에 따라 보존 데이터(DATA)를 (k,n)분산 데이터(S1,S2,…,Sn)로 변환한다. 다음으로, 조정기(511)는 데이터의 ID인 DID부터 데이터 신장기(513)의 입력(x)을 생성하여 데이터 신장기(513)에 넘긴다. 데이터 신장기(513)은 대응하는 정보(H)를 출력하고, 그것을 암호기(514)에 넘긴다. 여기에서의 H는 오프라인에서의 전량 탐색에 강한 길이의 것을 이용한다. 데이터 신장기(513)가 짧은 H를 출력하는 경우에는 다른 x를 여러 데이터 신장기(513)에 넘기고, 얻어진 복수의 H를 이용한다. 암호기(514)는, H를 열쇠로 하여 n-k+1개 이상의 분산 데이터를 암호화한다. 또 S1,…,Sn-k+1의 각각에 개찬 검출부호를 붙여도 좋다. 암호기의 출력이 S'1,…,S'n이고, DID,IDl,ID2,…,IDn과 함께 데이터 분할기(51)의 출력이 된다.
더우기, (k,n)분산 데이터란, 원데이터가 n개로 분할된 데이터이고, 또한 그 어떤 k개로부터도 본래의 데이터를 복원할 수 있지만 k 미만부터는 복원할 수 없는 성질을 갖는 데이터이다. (k,n)분산 데이터 이외에도 임의의 억세스 구조를 가진 분산 데이터를 이용할 수 있다. 또 비밀 분산기는 다항식이나 행렬을 사용한 정보 량적으로 안전한 분산 방식 이외에 암호화를 사용함으로써 보존 데이터 사이즈를 줄일 수 있는 계산량적으로 안전한 분산 방식을 사용할 수 있다.
이 데이터 분할기(51)는, (n,DS,LS1,LS2)=(n,{CSn-k},{UC,CSn},{UCSk-1})을 실현하고 있다. {CS}는 클라이언트 및 서버의 기록정보 및 그 부분정보를 의미하고, {Sn}은 n대의 서버의 전(全)기록정보 및 그 부분정보를 의미한다. {C,S}는「클라이언트에 기록되어 있는 전정보 및 그 부분정보 혹은 서버에 기록되어 있는 전정보 및 그 부분정보」를 의미한다. {UCSk-1}로부터의 누설은 인증정보의 업데이트 처리로 대처할 수 있다. 공격자가 {UCSk-1}로부터 기억정보를 구하는 동안에 인증정보가 업데이트되면 공격자는 이용자의 데이터를 구할 수 없게 된다. 사용자의 소유물{U}의 분실(P'의 분실)에 대해서는, {U}에 기록되어 있는 데이터를 업데이트할 때마다 그 카피를 로컬로 작성함으로써 해결할 수 있다. 재해 등으로 로컬 카피 모두 {U}가 파손될 위험성에 대해서는, {U}에 기록되어 있는 데이터를 비밀 분산기에서 (k',n)분산 데이터로 분할하여 각 서버에도 보존해 둠으로써 해결할 수 있다. k'>= k의 경우, (n,DS,LS1,LS2)=(n,{UCSn-k',CSn-k},{UC,CSk'-1},{UCSk-1})을 실현하고 있으며, k'<k의 경우, (n,DS,LS1,LS2)=(n,{UCSn-k,CSn-k},{UC,CSk'-1},{UCSk-1,CSk-1})을 실현하고 있다.
또한 사용자의 소유물에 기록되어 있는 데이터와 기억정보 모두, 혹은 그들의 일부도 비밀 분산기에서 (k',n)분산 데이터로 분할하여 각 서버에도 보존해 두면, 사용자가 혹시 기억정보를 잊었다 해도 오프라인 해석에 의해(소유물의 기록정보와) 기억정보를 복원할 수 있다. 그 때, 1) 전부를 분산하는 경우에는 오프라인 해석을 생략할 수 있고, 2) 일부를 분산하는 경우에는 그 분량에 따라 오프라인 해석의 계산량을 삭감할 수 있다. 이 기능에 의해, 사용자는 제삼자에게 데이터를 복호하는 권한을 줄 때에, 데이터를 복원하는 용이함(공격자가 {CSk'}를 얻은 경우의 데이터 복원의 용이함도 동일)을 조정할 수 있게 된다.
<단말에 데이터를 보존하지 않는 경우의 원격분산 보존장치에서의 데이터 복원처리>
다음으로, 도 23을 참조하여 단말에 데이터를 보존하지 않는 경우의 원격분산 보존장치에서의 데이터 복원처리에 대해서 설명하기로 한다. 도 23은, 단말에 데이터를 보존하지 않는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다.
데이터 복원기(54)는, 입력된 DID에 대응하는 분산 데이터(S'1,…S'n) 중 적어도 k개를 통신기(52)를 통해 서버(ID1,ID2,…,IDn)로부터 받는다. 데이터 복원기(54)는 S'1,…,S'n) 중 적어도 k개를 처리하여 DATA를 복원한다. 같은 방법으로, 보존 데이터의 일람을 복원할 수도 있다. 또 사용자의 단말장치(21)(인증 데이터 갱신 모드)를 적당한 간격(기억정보가 오프라인 전량 탐색으로 구해지는 간격보다 짧은 간격으로, 예를 들면 인증을 할 때마다 또는 2,3일에 1회 등)으로 동작시키고, P'와 각 서버에 기록되어 있는 H를 갱신하는 정보(UP',UH1,…,UHn)를 생성시켜 그것들을 갱신한다.
다음으로, 도 24를 참조하여 도 23에 도시한 데이터 복원기(54)의 구성을 설명한다. 조정기(541)는 입력된 n대의 서버(ID,ID1,ID2,…,IDn)과 DID를 출력한다. 또 조정기(541)는 DID로부터 데이터 신장기(542)의 입력(x)을 생성하여 데이터 신장기(542)에 넘긴다. 데이터 신장기(542)는 대응하는 정보(H)를 출력하고, 그것을 암호기(543)에 넘긴다. 암호기(543)는 얻어진 분산 데이터(S'1,S'2,…,S'n) 중 암호화되어 있는 것을 복호하고 S1,S2,…,Sn을 비밀 분산 복원기로 넘긴다. 비밀 분산 복원기(544)는 넘겨받은 분산 데이터로부터 DATA를 복원한다. 더우기, 개찬 검출하여 개찬되지 않은 분산 데이터만을 k개 넘겨도 된다.
<단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치에서의 데이터 보존처리>
다음으로, 도 25를 참조하여 단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치에서의 데이터 보존처리에 대해서 설명하기로 한다. 도 25는, 단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다. 여기에서는, 도 21에 도시한 구성과 다른 부분만 설명한다.
사용자는 분산 보존하고 싶은 데이터(DATA)를 자신의 단말장치(21)로 처리하고, 바로 옆에 남기는 데이터(DL)과 n대의 서버에 보존하는 데이터(RS'1,…,RS'n)로 분할한다. DL은 바로 옆의 기록장치(55)에 보존되고, 분할 데이터(RS'1)는 데이터의 ID인 DID와 함께 사용자의 단말장치(21)에 의해 서버의 인증장치와 공유된 키(SKi)를 사용하여 작성된 안전한 통신로를 통해 서버(IDi)로 보내져 보존된다. 동일한 방법으로 보존 데이터의 일람 정보를 분할하여 서버에 보존할 수도 있다.
이와 같이 분산 데이터의 일부를 자신의 단말장치(21)에 둠으로써 서버와의 통신량을 삭감할 수 있다. 파손된 서버의 조합에 따라 통신량이 변하는 방식과 변하지 않는 방식이 가능하지만, 변하는 방법의 경우 n대의 서버 전체의 기억 영역을 삭감할 수 있다. 더우기, 누설과 파손에 대한 내성은, 데이터를 바로 옆에 두지 않는 경우와 동등하게 유지할 수 있다.
다음으로, 도 26을 참조하여 도 25에 도시한 데이터 분할기(51)의 구성을 설명한다. 여기에서는, 도 22에 도시한 구성과 다른 부분만을 설명한다. 암호기(515)는 난수 생성기(516)로부터 난수(R)를 받고, 이것을 키로 하여 보존 데이터를 암호화하고, 그것을 DL로서 출력한다. 조정기(511)는 입력된 파라미터(n,k)를 비밀 분산기(512)에 넘긴다. 비밀 분산기(512)는 입력된 파라미터(n,k)에 따라 R을 (k,n)분산 데이터(RS1,RS2,…,RSn)로 변환한다. 다음으로, 조정기(511)는 데이터의 ID인 DID로부터 데이터 신장기(513)의 입력(x)을 생성하여 데이터 신장기(513)에 넘긴다. 데이터 신장기(513)는 대응하는 정보(H)를 출력하고, 이것을 키로 하여 암호기(514)에 넘긴다. 여기에서의 H는 오프라인에서의 전량 탐색에 강한 길이의 것을 이용한다. 데이터 신장기(513)가 짧은 H를 출력하는 경우에는 다른 x를 복수의 데이터 신장기(513)에 넘기고, 얻어진 복수의 H를 이용한다. 암호기(514)는, H를 키로 하여 n-k+1개 이상의 분산 데이터를 암호화한다. 또 RS1,…,RSn-k+l의 각각에 개찬 검출부호를 붙여도 좋다. 암호기의 출력이 RS'1,…,RS'n이다.
더우기, (k,n)분산 데이터 이외에도 임의의 억세스 구조를 가진 분산 데이터를 이용할 수 있다. 또 비밀 분산기(512)에는 다항식이나 행렬을 사용한 정보량적으로 안전한 분산 방식이나, 암호를 사용하는 계산량적으로 안전한 분산 방식을 사용할 수 있지만, R의 사이즈가 작은 경우에는 계산량적으로 안전한 분산 방식을 사용함에 따른 사이즈의 삭감 효과는 적기 때문에, 정보량적으로 안전한 분산 방식을 사용하는 것이 바람직하다.
<단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치에서의 데이터 복원처리>
다음으로, 도 27을 참조하여 단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치에서의 데이터 복원처리에 대해서 설명하기로 한다. 도 27은, 단말에도 분산 데이터를 보존하는 경우의 원격분산 보존장치(5)의 구성을 도시한 블럭도이다. 여기에서는 도 23에 도시한 구성과 다른 부분만을 설명한다.
데이터 복원기(54)는 입력된 DID에 대응하는 분산 데이터(RS'1,…RS'n) 중 적어도 k개를 통신기를 통해 서버(IDl,ID2,…,IDn)로부터 받는다. 데이터 복원기(54)는 RS'1,…,RS'n 중 적어도 k개를 처리하여 DATA를 복원한다. 동일한 방법으로 보존 데이터의 일람을 복원할 수도 있다.
다음으로, 도 28을 참조하여 도 27에 도시한 데이터 복원기(54)의 구성을 설명한다. 여기에서는, 도 24에 도시한 구성과 다른 부분만을 설명한다. 조정기(541) 는 DID로부터 데이터 신장기(542)의 입력(x)을 생성하여 데이터 신장기(542)에 넘긴다. 데이터 신장기(542)는 대응하는 정보(H)를 출력하고 그것을 복호기(543)에 넘긴다. 복호기(543)는 얻어진 분산 데이터(RS'1,RS'2,…,RS'n) 중 암호화되어 있는 것을 복호하여 RS1,…,RSn을 비밀 분산 복원기(544)에 넘긴다. 비밀 분산 복원기(544)는 넘겨받은 분산 데이터로부터 DATA를 복호기(545)에 의해 복원한다. 또 개찬 검출을 하여 개찬되지 않은 분산 데이터를 k개 넘겨주어도 좋다.
더우기, 도면에 도시한 각 처리부의 기능을 실현하기 위한 프로그램을 컴퓨터 판독 가능한 기록매체에 기록하고, 이 기록매체에 기록된 프로그램을 컴퓨터 시스템으로 읽어들여 실행함으로써 인증처리, 키 교환처리를 해도 좋다. 더우기, 여기에서 말하는 「컴퓨터 시스템」이란, OS나 주변기기 등의 하드웨어를 포함하는 것으로 한다. 또 「컴퓨터 시스템」은 홈페이지 제공 환경(혹은 표시 환경)을 구비한 WWW 시스템도 포함하는 것으로 한다. 또 「컴퓨터 판독 가능한 기록매체」란, 플렉서블 디스크, 광자기 디스크, ROM, CD-ROM 등의 매체, 컴퓨터 시스템에 내장되는 하드 디스크 등의 기억장치를 가리킨다. 또한 「컴퓨터 판독 가능한 기록매체」란, 인터넷 등의 네트워크나 전화회선 등의 통신회선을 통해 프로그램이 송신된 경우의 서버나 클라이언트가 되는 컴퓨터 시스템 내부의 휘발성 메모리(RAM)와 같이 일정 시간 프로그램을 유지하고 있는 것도 포함하는 것으로 한다.
또 상기 프로그램은, 이 프로그램을 기억장치 등에 저장한 컴퓨터 시스템으로부터, 전송매체를 통해, 혹은 전송매체 내의 전송파에 의해 다른 컴퓨터 시스템으로 전송되어도 좋다. 여기에서 프로그램을 전송하는 「전송매체」는, 인터넷 등 의 네트워크(통신망)나 전화회선 등의 통신회선(통신선)과 같이 정보를 전송하는 기능을 갖는 매체를 가리킨다. 또 상기 프로그램은, 전술한 기능 일부를 실현하기 위한 것이어도 좋다. 또한 전술한 기능을 컴퓨터 시스템에 이미 기록되어 있는 프로그램과의 조합으로 실현할 수 있는 것, 이른바 차분 파일(차분 프로그램)이어도 좋다.
이 발명에 의하면, 단말장치쪽 혹은 서버쪽에서 장치 내에 보존되어 있는 정보가 누출된다 해도 오프라인 해석에 의해 패스워드를 찾아낼 수 없기 때문에 서버의 부정 이용을 방지할 수 있다는 효과가 얻어진다. 또 장치 내에 보존되어 있는 정보를 도용당하지 않기 위한 내(耐)탬퍼성의 모듈을 사용할 필요가 없기 때문에 장치의 구성을 간단히 할 수 있다. 또 공개키 암호 시스템과 같이 복잡한 키관리 처리를 할 필요가 없기 때문에 계산 처리를 향상시킬 수 있음과 동시에 처리 내용을 간단히 할 수 있다. 또 복수의 서버에 대해서도 확장할 수 있다.
또한 각 서버와 단말장치에서 사용자 ID를 동기시키면서 동적으로 변화시킴으로써 도청자가 사용자 ID를 사용하여 사용자의 프라이버시 정보를 첨부하는 것을 방지할 수 있다.

Claims (50)

  1. 단말장치와 서버 간에 상호 인증을 하는 인증 시스템으로서,
    상기 단말장치는,
    사용자 보존용의 인증정보(P')를 사전에 기억해 놓는 기억수단과,
    상기 기억수단으로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)을 구하는 결합수단과,
    상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산수단과,
    상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단을 구비하고,
    상기 서버는,
    서버 등록용의 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억수단과,
    상기 기억수단으로부터 독출한 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산수단과,
    상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단을,
    구비한 것을 특징으로 하는 인증 시스템.
  2. 제1항에 있어서, 사용자가 사전에 결정한 패스워드에 기초하여 상기 패스워드 인증 데이터(H)와 상기 인증정보(P')를 구하는 데이터 신장수단을 더 구비한 것을 특징으로 하는 인증 시스템.
  3. 제1항 또는 제2항에 있어서, 상기 단말장치는,
    상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에 상기 서버로부터 수신한 값(V2)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증 결과 판단수단을 더 구비하고,
    상기 서버는,
    상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 단말장치로 송신함과 동시에 상기 단말장치로부터 수신한 값(V1)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V1)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단수단을 더 구비한,
    것을 특징으로 하는 인증 시스템.
  4. 제3항에 있어서, 상기 단말장치 및 서버는, 상호 인증이 행해진 경우에 세션키를 생성하는 세션키 생성수단을 각각에 구비한 것을 특징으로 하는 인증 시스템.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 인증정보(P')는 다항식인 것을 특징으로 하는 인증 시스템.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 인증정보(P')는 다항식과 해시함수인 것을 특징으로 하는 인증 시스템.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 인증정보(P')는 해시함수인 것을 특징으로 하는 인증 시스템.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 인증정보(P')는 의사 난수 함수인 것을 특징으로 하는 인증 시스템.
  9. 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 단말장치 상에서 동작하는 인증 프로그램으로서,
    사용자 보존용의 인증정보(P')를 사전에 기억해 놓는 기억처리와,
    상기 기억해 놓은 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)를 구하는 결합처리와,
    상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산처리와,
    상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리를,
    컴퓨터에 실행시키는 것을 특징으로 하는 인증 프로그램.
  10. 제9항에 있어서, 사용자가 사전에 결정한 패스워드에 기초하여, 상기 인증정보(P')를 구하는 데이터 신장처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  11. 제9항 또는 제10항에 있어서, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에, 상기 서버로부터 수신한 값(V2)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  12. 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 서버 상에서 동작하는 인증 프로그램으로서,
    서버 등록용의 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억처리와,
    상기 기억해 놓은 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산처리와,
    상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리를,
    컴퓨터에 실행시키는 것을 특징으로 하는 인증 프로그램.
  13. 제12항에 있어서, 사용자가 사전에 결정한 패스워드에 기초하여 상기 패스워드 인증 데이터(H)를 구하는 데이터 신장처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  14. 제12항 또는 제13항에 있어서, 상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고 단말장치로 송신함과 동시에, 상기 단말장치로부터 수신한 값(V1)과 상기 값(MK)을 입력하여 소정의 계산식에 의한 값(V1)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  15. 제11항 또는 제14항에 있어서, 단말장치 및 서버에서 상호 인증이 행해진 경우에 세션키를 생성하는 세션키 생성처리를 각각에 구비한 것을 특징으로 하는 인증 프로그램.
  16. 제9항 내지 제15항 중 어느 한 항에 있어서, 상기 인증정보(P')는 다항식인 것을 특징으로 하는 인증 프로그램.
  17. 제9항 내지 제15항 중 어느 한 항에 있어서, 상기 인증정보(P')는 다항식과 해시함수인 것을 특징으로 하는 인증 프로그램.
  18. 제9항 내지 제15항 중 어느 한 항에 있어서, 상기 인증정보(P')는 해시함수인 것을 특징으로 하는 인증 프로그램.
  19. 제9항 내지 제15항 중 어느 한 항에 있어서, 상기 인증정보(P')는 의사 난수 함수인 것을 특징으로 하는 인증 프로그램.
  20. 제2항에 있어서, 상기 단말장치는,
    갱신정보(T')를 발생시키는 발생수단과,
    상기 기억수단에 기억되어 있는 인증정보(P')와 상기 갱신정보(T')를 입력하고, 소정의 계산식에 의해 서버 갱신용의 패스워드 인증 데이터(H')와 새로운 인증정보(P')를 구하고, 서버 갱신용의 패스워드 인증 데이터(H')를 상기 서버로 송신함과 동시에 새로운 인증정보(P')를 상기 기억수단에 기억하는 갱신정보 생성수단을 구비하고, ,
    상기 서버는,
    상기 단말장치로부터 송신된 서버 갱신용의 패스워드 인증 데이터(H')와 상 기 기억수단에 기억된 패스워드 인증 데이터(H)를 입력하고, 소정의 계산식에 의해 새로운 패스워드 인증 데이터(H)를 구하여 상기 기억수단에 기억되어 있는 패스워드 인증 데이터(H)를 갱신하는 갱신정보 생성수단을 구비한,
    것을 특징으로 하는 인증 시스템.
  21. 제2항에 있어서, 상기 단말장치는,
    비밀정보(S')를 발생시키는 발생수단과,
    상기 기억수단에 기억되어 있는 인증정보(P')와 상기 비밀정보(S')와 새로운 패스워드를 입력하고, 소정의 계산식에 의해 서버 갱신용의 패스워드 인증 데이터(H')와 새로운 인증정보(P')를 구하고, 서버 갱신용의 패스워드 인증 데이터(H')를 상기 서버로 송신함과 동시에 새로운 인증정보(P')를 상기 기억수단에 기억하는 갱신정보 생성수단을 구비하고,
    상기 서버는,
    상기 단말장치로부터 송신된 서버 갱신용의 패스워드 인증 데이터(H')와 상기 기억수단에 기억된 패스워드 인증 데이터(H)를 입력하고, 소정의 계산식에 의해 새로운 패스워드 인증 데이터(H)를 구하여 상기 기억수단에 기억되어 있는 패스워드 인증 데이터(H)를 갱신하는 갱신정보 생성수단을 구비한,
    것을 특징으로 하는 인증 시스템.
  22. 단말장치와 서버 간에 상호 인증을 하는 인증 시스템으로서,
    상기 단말장치는,
    사용자 보존용의 인증정보(P')와 RSA 공개키(N,e)를 사전에 기억해 놓는 기억수단과,
    상기 기억수단으로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(W)을 구하는 결합수단과,
    상기 값(W)과 상기 기억수단으로부터 독출한 RSA 공개키(N,e)와 내부에서 발생시킨 난수(T)를 입력하여 소정의 계산식에 의해 값(Z)을 구하여, 상기 서버로 송신하는 마스크 연산수단을 구비하고,
    상기 서버는,
    서버 등록용의 패스워드 인증 데이터(H)와 RSA 비밀키(N,d)를 사전에 기억해 놓는 기억수단과,
    상기 기억수단으로부터 독출한 패스워드 인증 데이터(H)와 RSA 비밀키(N,d)와 상기 단말장치로부터 수신한 값(Z)을 입력하여 소정의 계산식에 의해 값(T)을 구하는 마스터키 생성수단을,
    구비한 것을 특징으로 하는 인증 시스템.
  23. 제22항에 있어서, 사용자가 사전에 결정한 패스워드에 기초하여 상기 패스워드 인증 데이터(H)와 상기 인증정보(P')를 구하는 데이터 신장수단을 더 구비한 것을 특징으로 하는 인증 시스템.
  24. 제22항에 있어서, 상기 RSA 공개키(N,e)와 상기 RSA 비밀키(N,d)를 구하는 RSA키 생성수단을 더 구비한 것을 특징으로 하는 인증 시스템.
  25. 제22항, 제23항 또는 제24항에 있어서, 상기 단말장치는,
    상기 서버로부터 수신한 값(V2)과 상기 난수(T)를 입력하여 소정의 계산식에 의한 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단수단과,
    상기 난수(T)를 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 상기 서버로 송신하는 검증자 생성수단을 더 구비하고,
    상기 서버는,
    상기 값(T)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 상기 단말장치로 송신하는 검증자 생성수단과,
    상기 단말장치로부터 수신한 값(V1)과 상기 값(T)을 입력하여 소정의 계산식에 의한 값(V1)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단수단을 더 구비한
    것을 특징으로 하는 인증 시스템.
  26. 제25항에 있어서, 상기 단말장치 및 서버는 상호 인증이 행해진 경우에 세션키를 생성하는 세션키 생성수단을 각각에 구비한 것을 특징으로 하는 인증 시스템.
  27. 제22항 내지 제26항 중 어느 한 항에 있어서, 상기 인증정보(P')는 다항식과 FDH 함수인 것을 특징으로 하는 인증 시스템.
  28. 제22항 내지 제26항 중 어느 한 항에 있어서, 상기 인증정보(P')는 FDH 함수인 것을 특징으로 하는 인증 시스템.
  29. 제22항 내지 제26항 중 어느 한 항에 있어서, 상기 RSA 공개키(N,e)는 안전한 통신을 사용하는 것을 특징으로 하는 인증 시스템.
  30. 제22항 내지 제26항 중 어느 한 항에 있어서, 상기 RSA 공개키(N,e)는 안전하지 않은 통신을 사용하는 것을 특징으로 하는 인증 시스템.
  31. 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 단말장치 상에서 동작하는 인증 프로그램으로서,
    사용자 보존용의 인증정보(P')와 RSA 공개키(N,e)를 사전에 기억해 놓는 기억처리와,
    상기 기억해 놓은 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(W)을 구하는 결합처리와,
    상기 값(W)과 상기 기억해 놓은 RSA 공개키(N,e)와 내부에서 발생시킨 난수(T)를 입력하여 소정의 계산식에 의해 값(Z)을 구하고, 상기 서버로 송신하는 마 스크 연산처리를,
    컴퓨터에 실행시키는 것을 특징으로 하는 인증 프로그램.
  32. 제31항에 있어서, 사용자가 사전에 결정한 패스워드에 기초하여 상기 인증정보(P')를 구하는 데이터 신장처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  33. 제31항에 있어서, 상기 RSA 공개키(N,e)를 구하는 RSA키 생성처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  34. 제31항, 제32항 또는 제33항에 있어서, 상기 서버로부터 수신한 값(V2)과 상기 난수(T)를 입력하여 소정의 계산식에 의한 값(V2)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단처리와,
    상기 난수(T)를 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 상기 서버로 송신하는 검증자 생성처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  35. 단말장치와 서버 간에 상호 인증을 하는 인증 시스템에서의 서버 상에서 동작하는 인증 프로그램으로서,
    서버 등록용의 패스워드 인증 데이터(H)와 RSA 비밀키(N,d)를 사전에 기억해 놓는 기억처리와,
    상기 기억해 놓은 패스워드 인증 데이터(H)와 RSA 비밀키(N,d)와 상기 단말장치로부터 수신한 값(Z)을 입력하여 소정의 계산식에 의해 값(T)을 구하는 마스터키 생성처리를,
    컴퓨터에 실행시키는 것을 특징으로 하는 인증 프로그램.
  36. 제35항에 있어서, 사용자가 사전에 결정한 패스워드에 기초하여 상기 패스워드 인증 데이터(H)를 구하는 데이터 신장처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  37. 제35항에 있어서, 상기 RSA 비밀키(N,d)를 구하는 RSA키 생성처리를 컴퓨터에 더 실행시키는 것을 특징으로 하는 인증 프로그램.
  38. 제35항, 제36항 또는 제37항에 있어서, 상기 값(T)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 상기 단말장치로 송신하는 검증자 생성처리와,
    상기 단말장치로부터 수신한 값(V1)과 상기 값(T)을 입력하여 소정의 계산식에 의한 값(V1)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단처리를 컴퓨터에 실행시키는 것을 특징으로 하는 인증 프로그램.
  39. 제34항 또는 제38항에 있어서, 단말장치 및 서버에서 상호 인증이 행해진 경 우에, 세션키를 생성하는 세션키 생성처리를 각각에 구비한 것을 특징으로 하는 인증 프로그램.
  40. 제31항 내지 제39항 중 어느 한 항에 있어서,
    상기 인증정보(P')는, 다항식과 FDH 함수인 것을 특징으로 하는 인증 프로그램.
  41. 제31항 내지 제39항 중 어느 한 항에 있어서, 상기 인증정보(P')는 FDH 함수인 것을 특징으로 하는 인증 프로그램.
  42. 제31항 내지 제39항 중 어느 한 항에 있어서, 상기 RSA 공개키(N,e)는 안전한 통신을 사용하는 것을 특징으로 하는 인증 프로그램.
  43. 제31항 내지 제39항 중 어느 한 항에 있어서, 상기 RSA 공개키(N,e)는 안전하지 않은 통신을 사용하는 것을 특징으로 하는 인증 프로그램.
  44. 제23항에 있어서,
    상기 단말장치는,
    갱신정보(T')를 발생시키는 발생수단과,
    상기 기억수단에 기억되어 있는 인증정보(P')와 상기 갱신정보(T')를 입력하 고, 소정의 계산식에 의해 서버 갱신용의 패스워드 인증 데이터(H')와 새로운 인증정보(P')를 구하고, 서버 갱신용의 패스워드 인증 데이터(H')를 상기 서버에 송신함과 동시에 새로운 인증정보(P')를 상기 기억수단에 기억하는 갱신정보 생성수단을 구비하고,
    상기 서버는,
    상기 단말장치로부터 송신된 서버 갱신용의 패스워드 인증 데이터(H')와 상기 기억수단에 기억된 패스워드 인증 데이터(H)를 입력하고, 소정의 계산식에 의해 새로운 패스워드 인증 데이터(H)를 구해 상기 기억수단에 기억되어 있는 패스워드 인증 데이터(H)를 갱신하는 갱신정보 생성수단을 구비한,
    것을 특징으로 하는 인증 시스템.
  45. 제22항에 있어서, 상기 단말장치는,
    상기 기억수단에 기억되어 있는 인증정보(P')와 상기 난수(T)를 입력하고, 소정의 계산식에 의해 새로운 인증정보(P')를 구하고, 새로운 인증정보(P')를 상기 기억수단에 기억하는 갱신정보 생성수단을 구비하고,
    상기 서버는,
    상기 기억수단에 기억된 패스워드 인증 데이터(H)와 상기 마스터키 생성수단에 의해 구한 값(T)을 입력하고, 소정의 계산식에 의해 새로운 패스워드 인증 데이터(H)를 구해 상기 기억수단에 기억되어 있는 패스워드 인증 데이터(H)를 갱신하는 갱신정보 생성수단을 구비한,
    것을 특징으로 하는 인증 시스템.
  46. 제23항에 있어서, 상기 단말장치는,
    비밀정보(S')를 발생시키는 발생수단과,
    상기 기억수단에 기억되어 있는 인증정보(P')와 상기 비밀정보(S')와 새로운 패스워드를 입력하고, 소정의 계산식에 의해 서버 갱신용의 패스워드 인증 데이터(H')와 새로운 인증정보(P')를 구하고, 서버 갱신용의 패스워드 인증 데이터(H')를 상기 서버로 송신함과 동시에 새로운 인증정보(P')를 상기 기억수단에 기억하는 갱신정보 생성수단을 구비하고,
    상기 서버는,
    상기 단말장치로부터 송신된 서버 갱신용의 패스워드 인증 데이터(H')와 상기 기억수단에 기억된 패스워드 인증 데이터(H)를 입력하고, 소정의 계산식에 의해 새로운 패스워드 인증 데이터(H)를 구해 상기 기억수단에 기억되어 있는 패스워드 인증 데이터(H)를 갱신하는 갱신정보 생성수단을 구비한 것을 특징으로 하는 인증 시스템.
  47. 단말장치와 복수의 서버 간에 상호 인증을 하고, 상기 단말장치 내의 보존 대상의 데이터를 상기 서버 내에 분산하여 보존하는 원격분산 보존 시스템으로서,
    상기 단말장치는,
    사용자가 사전에 결정해 놓은 패스워드에 기초하여 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장수단과,
    상기 데이터 신장수단에 의해 구한 인증정보(P')를 사전에 기억해 놓는 기억수단과,
    상기 기억수단으로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)를 구하는 결합수단과,
    상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산수단과,
    상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단과,
    상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에 상기 서버로부터 수신한 값(V2)과 값(V1)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단수단과,
    서버의 인증이 행해진 경우에 세션키(SK)를 서버의 수만큼 생성하는 세션키 생성수단과,
    상기 보존 대상의 데이터를 분할하고, 인증한 서버의 수와 동일수의 분할 데이터를 얻는 데이터 분할수단과,
    상기 분할 데이터의 각각과 보존 대상의 데이터를 식별하는 식별정보를, 보존처의 서버와 공유한 상기 세션키(SK)를 사용하여 암호화하고, 각 서버에 대해 송신하는 데이터 보존수단과,
    분할 데이터가 보존된 각 서버로부터 분할 데이터를 수신하고, 상기 보존 대 상의 데이터를 복원하는 데이터 복원 수단을,
    구비하고,
    상기 서버는,
    상기 데이터 신장수단에 의해 구한 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억수단과,
    상기 기억수단으로부터 독출한 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산수단과,
    상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성수단과,
    상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 단말장치로 송신함과 동시에, 상기 단말장치로부터 수신한 값(V1)과 값(V2)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단수단과,
    단말장치의 인증이 행해진 경우에 세션키를 생성하는 세션키 생성수단과,
    단말장치로부터 수신한 분할 데이터를 수신하는 데이터 수신수단과,
    상기 분할 데이터를 기억하는 데이터 기억수단과,
    상기 데이터 기억수단에 보존되어 있는 분할 데이터를 독출하여 단말장치로 송신하는 데이터 송신수단을,
    구비한 것을 특징으로 하는 원격분산 보존 시스템.
  48. 제47항에 있어서, 상기 분할 데이터의 일부를 상기 단말장치 내에 보존하는 것을 특징으로 하는 원격분산 보존 시스템.
  49. 단말장치와 복수의 서버 간에 상호 인증을 하고, 상기 단말장치 내의 보존 대상의 데이터를 상기 서버 내에 분산하여 보존하는 원격분산 보존 시스템에서의 단말장치 상에서 동작하는 원격분산 보존 프로그램으로서,
    사용자가 사전에 결정해 놓은 패스워드에 기초하여, 서버 등록용의 패스워드 인증 데이터(H)와 사용자 보존용의 인증정보(P')를 구하는 데이터 신장처리와,
    상기 데이터 신장처리에 의해 구한 인증정보(P')를 사전에 기억해 놓는 기억처리와,
    상기 기억처리로부터 독출한 인증정보(P')와 인증시에 입력된 패스워드를 입력하여 소정의 계산식에 의해 값(P)를 구하는 결합처리와,
    상기 값(P)과 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y1)을 구하고, 상기 서버로 송신하는 마스크 연산처리와,
    상기 값(P)과 내부에서 발생시킨 난수와 상기 서버로부터 수신한 값(Y2)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리와,
    상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V1)을 구하고, 서버로 송신함과 동시에 상기 서버로부터 수신한 값(V2)과 값(V1)과 비교 대조 확인하고, 일치한 경우에 서버를 인증하는 인증결과 판단처리와,
    서버의 인증이 행해진 경우에 세션키(SK)를 서버의 수만큼 생성하는 세션키 생성처리와,
    상기 보존 대상의 데이터를 분할하여 인증한 서버의 수와 동일수의 분할 데이터를 얻는 데이터 분할처리와,
    상기 분할 데이터의 각각과 보존 대상의 데이터를 식별하는 식별정보를, 보존처의 서버와 공유한 상기 세션키(SK)를 사용하여 암호화하고, 각 서버에 대해 송신하는 데이터 보존처리와,
    분할 데이터가 보존된 각 서버로부터 분할 데이터를 수신하고, 상기 보존 대상의 데이터를 복원하는 데이터 복원처리를,
    컴퓨터에 실행시키는 것을 특징으로 하는 원격분산 보존 프로그램.
  50. 단말장치와 복수의 서버 간에 상호 인증을 하고, 상기 단말장치 내의 보존 대상의 데이터를 상기 서버 내에 분산하여 보존하는 원격분산 보존 시스템에서의 서버 상에서 동작하는 원격분산 보존 프로그램으로서,
    데이터 신장처리에 의해 구한 패스워드 인증 데이터(H)를 사전에 기억해 놓는 기억처리와,
    상기 기억처리로부터 독출한 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수를 입력하여 소정의 계산식에 의해 값(Y2)을 구하고, 상기 단말장치로 송신하는 마스크 연산처리와,
    상기 패스워드 인증 데이터(H)와 내부에서 발생시킨 난수와 상기 단말장치로 부터 수신한 값(Y1)을 입력하여 소정의 계산식에 의해 값(MK)을 구하는 마스터키 생성처리와,
    상기 값(MK)을 입력하여 소정의 계산식에 의해 값(V2)을 구하고, 단말장치로 송신함과 동시에 상기 단말장치로부터 수신한 값(V1)과 값(V2)과 비교 대조 확인하고, 일치한 경우에 단말장치를 인증하는 인증결과 판단처리와,
    단말장치의 인증이 행해진 경우에 세션키를 생성하는 세션키 생성처리와,
    단말장치로부터 수신한 분할 데이터를 수신하는 데이터 수신처리와,
    상기 분할 데이터를 기억하는 데이터 기억처리와,
    상기 데이터 기억처리에 보존되어 있는 분할 데이터를 독출하여 단말장치로 송신하는 데이터 송신처리를,
    컴퓨터에 실행시키는 것을 특징으로 하는 원격분산 보존 프로그램.
KR1020067008005A 2003-10-28 2004-10-07 인증 시스템 및 원격분산 보존 시스템 KR100845018B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003367527 2003-10-28
JPJP-P-2003-00367527 2003-10-28

Publications (2)

Publication Number Publication Date
KR20060073647A true KR20060073647A (ko) 2006-06-28
KR100845018B1 KR100845018B1 (ko) 2008-07-10

Family

ID=34510297

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067008005A KR100845018B1 (ko) 2003-10-28 2004-10-07 인증 시스템 및 원격분산 보존 시스템

Country Status (5)

Country Link
US (1) US7895436B2 (ko)
JP (1) JP4774492B2 (ko)
KR (1) KR100845018B1 (ko)
CN (1) CN1871810B (ko)
WO (1) WO2005041474A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009035304A2 (en) * 2007-09-14 2009-03-19 Millennium Force Co.Ltd Data security apparatus
GB2467462A (en) * 2007-09-14 2010-08-04 Millennium Force Co Ltd Data security apparatus
KR101016277B1 (ko) * 2007-12-20 2011-02-22 건국대학교 산학협력단 보안성이 강화된 sⅰp 등록 및 sⅰp 세션 설정 방법 및장치

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8363837B2 (en) * 2005-02-28 2013-01-29 HGST Netherlands B.V. Data storage device with data transformation capability
JP2006334803A (ja) * 2005-05-31 2006-12-14 Konica Minolta Business Technologies Inc 画像処理装置、および、その制御方法
GB0513375D0 (en) * 2005-06-30 2005-08-03 Retento Ltd Computer security
NO324315B1 (no) * 2005-10-03 2007-09-24 Encap As Metode og system for sikker brukerautentisering ved personlig dataterminal
JP4575283B2 (ja) * 2005-11-15 2010-11-04 株式会社東芝 暗号装置、復号装置、プログラム及び方法
JP4943183B2 (ja) * 2007-02-28 2012-05-30 Kddi株式会社 端末装置、データ管理システムおよびコンピュータプログラム
KR101391151B1 (ko) * 2007-06-01 2014-05-02 삼성전자주식회사 세션 키를 이용한 인증 방법 및 이를 위한 장치
CN101425897B (zh) * 2007-10-29 2011-05-18 上海交通大学 一种用户认证方法、系统、服务器和用户节点
JP2009175197A (ja) * 2008-01-21 2009-08-06 Toshiba Corp 暗号装置、復号装置、鍵生成装置及びプログラム
US8959199B2 (en) * 2008-03-18 2015-02-17 Reduxio Systems Ltd. Network storage system for a download intensive environment
JP5392741B2 (ja) * 2008-04-21 2014-01-22 独立行政法人産業技術総合研究所 Rsaをベースとしたパスワード認証方式及びその応用
US7522723B1 (en) * 2008-05-29 2009-04-21 Cheman Shaik Password self encryption method and system and encryption by keys generated from personal secret information
WO2010005071A1 (ja) 2008-07-10 2010-01-14 独立行政法人産業技術総合研究所 パスワード認証方法
EP2285042A1 (fr) * 2009-07-07 2011-02-16 Gemalto SA Module logiciel de sécurisation utilisant le chiffrement du haché d'un mot de passe concaténé avec une graine
US8433918B2 (en) * 2009-10-14 2013-04-30 Texas Instruments Incorporated Methods and systems for improving the security of password-based authentication protocols for IEEE 802.11 networks
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US9015489B2 (en) * 2010-04-07 2015-04-21 Microsoft Technology Licensing, Llc Securing passwords against dictionary attacks
KR101630462B1 (ko) * 2010-04-14 2016-06-14 주식회사 넥슨코리아 키보드 보안 장치 및 방법
US8874868B2 (en) * 2010-05-19 2014-10-28 Cleversafe, Inc. Memory utilization balancing in a dispersed storage network
JP5310761B2 (ja) 2011-03-04 2013-10-09 トヨタ自動車株式会社 車両ネットワークシステム
JP5750728B2 (ja) * 2011-10-19 2015-07-22 国立研究開発法人産業技術総合研究所 鍵共有システム、鍵生成装置、及びプログラム
KR20130050696A (ko) * 2011-11-08 2013-05-16 삼성전자주식회사 메모리 시스템
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US20140331061A1 (en) * 2013-05-02 2014-11-06 Solidfire, Inc Drive level encryption key management in a distributed storage system
WO2015013440A1 (en) * 2013-07-23 2015-01-29 Battelle Memorial Institute Systems and methods for securing real-time messages
US9405783B2 (en) * 2013-10-02 2016-08-02 Netapp, Inc. Extent hashing technique for distributed storage architecture
US9448924B2 (en) 2014-01-08 2016-09-20 Netapp, Inc. Flash optimized, log-structured layer of a file system
US9529546B2 (en) 2014-01-08 2016-12-27 Netapp, Inc. Global in-line extent-based deduplication
US9256549B2 (en) 2014-01-17 2016-02-09 Netapp, Inc. Set-associative hash table organization for efficient storage and retrieval of data in a storage system
US9268653B2 (en) 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US9798728B2 (en) 2014-07-24 2017-10-24 Netapp, Inc. System performing data deduplication using a dense tree data structure
US9671960B2 (en) 2014-09-12 2017-06-06 Netapp, Inc. Rate matching technique for balancing segment cleaning and I/O workload
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US9720601B2 (en) 2015-02-11 2017-08-01 Netapp, Inc. Load balancing technique for a storage array
US9762460B2 (en) 2015-03-24 2017-09-12 Netapp, Inc. Providing continuous context for operational information of a storage system
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
US9740566B2 (en) 2015-07-31 2017-08-22 Netapp, Inc. Snapshot creation workflow
US9876783B2 (en) 2015-12-22 2018-01-23 International Business Machines Corporation Distributed password verification
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US11418334B2 (en) * 2017-10-18 2022-08-16 Cryptography Research, Inc. Protecting modular inversion operation from external monitoring attacks
WO2019107314A1 (ja) * 2017-11-30 2019-06-06 株式会社アドテクニカ 情報処理装置、情報処理方法、情報処理システム及びプログラム
JP7057944B2 (ja) * 2018-11-15 2022-04-21 株式会社東海理化電機製作所 認証システム及び認証方法
DE102019001731A1 (de) * 2019-03-12 2020-09-17 data-team Datendienste GmbH Autorisierungsverfahren mittels Einmalpasswörtern
CN110768792B (zh) * 2019-09-30 2023-09-05 奇安信科技集团股份有限公司 主密钥生成方法、装置及敏感安全参数的加解密方法
JP7273742B2 (ja) * 2020-02-07 2023-05-15 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3027988B2 (ja) * 1991-01-31 2000-04-04 松下電器産業株式会社 識別情報に基づく秘密鍵生成方法
US6061799A (en) * 1997-10-31 2000-05-09 International Business Machines Corp. Removable media for password based authentication in a distributed system
CN1338841A (zh) * 2000-08-11 2002-03-06 海南格方网络安全有限公司 计算机安全认证智能密钥
JP2002208925A (ja) * 2001-01-10 2002-07-26 Ntt Advanced Technology Corp 可変認証情報を用いる資格認証方法
US6912653B2 (en) * 2001-01-23 2005-06-28 Erika Monika Gohl Authenticating communications
CN1150726C (zh) * 2002-10-01 2004-05-19 华中科技大学 一种安全网络传输方法及其系统
US7607009B2 (en) * 2003-02-10 2009-10-20 International Business Machines Corporation Method for distributing and authenticating public keys using time ordered exchanges

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009035304A2 (en) * 2007-09-14 2009-03-19 Millennium Force Co.Ltd Data security apparatus
WO2009035304A3 (en) * 2007-09-14 2009-05-14 Millennium Force Co Ltd Data security apparatus
KR100926631B1 (ko) * 2007-09-14 2009-11-11 (주)밀레니엄 포스 데이터 보안장치
GB2467462A (en) * 2007-09-14 2010-08-04 Millennium Force Co Ltd Data security apparatus
KR101016277B1 (ko) * 2007-12-20 2011-02-22 건국대학교 산학협력단 보안성이 강화된 sⅰp 등록 및 sⅰp 세션 설정 방법 및장치

Also Published As

Publication number Publication date
WO2005041474A1 (ja) 2005-05-06
US7895436B2 (en) 2011-02-22
JP4774492B2 (ja) 2011-09-14
CN1871810B (zh) 2010-09-08
US20070061572A1 (en) 2007-03-15
KR100845018B1 (ko) 2008-07-10
CN1871810A (zh) 2006-11-29
JPWO2005041474A1 (ja) 2007-04-26

Similar Documents

Publication Publication Date Title
KR100845018B1 (ko) 인증 시스템 및 원격분산 보존 시스템
US11621833B2 (en) Secure multiparty loss resistant storage and transfer of cryptographic keys for blockchain based systems in conjunction with a wallet management system
US11882218B2 (en) Matching system, method, apparatus, and program
US11431487B2 (en) Adaptive attack resistant distributed symmetric encryption
US7359507B2 (en) Server-assisted regeneration of a strong secret from a weak secret
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
US8396218B2 (en) Cryptographic module distribution system, apparatus, and program
US20060195402A1 (en) Secure data transmission using undiscoverable or black data
JP2003536320A (ja) 複数のサーバを使用した遠隔パスワード認証のためのシステム、方法およびソフトウェア
US20050005100A1 (en) Cryptographic method and system
US11374910B2 (en) Method and apparatus for effecting a data-based activity
JPH11239124A (ja) 秘密鍵回復方法および装置
US20050201555A1 (en) System, method and apparatus for secure computation on encrypted data
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
Shakiba Security analysis for chaotic maps-based mutual authentication and key agreement using smart cards for wireless networks
CN115336224A (zh) 自适应抗攻击分布式对称加密
JP4758110B2 (ja) 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法
George et al. Improved multi‐party verification protocol with reduced computational overhead in cloud storage system
Das A hybrid algorithm for secure cloud computing
KP et al. Sequential Computational Time-Released Encryption Technique Using Variable Time Delay
Singh et al. Encryption algorithms with emphasis on probabilistic Encryption & time stamp in network security
Gómez Pardo et al. Introduction to Public-Key Cryptography: The Diffie–Hellman Protocol
JP2000216774A (ja) 暗号文検証方法、そのプログラム記録媒体、及びその装置

Legal Events

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

Payment date: 20120521

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130528

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee