JP4774492B2 - 認証システム及び遠隔分散保存システム - Google Patents

認証システム及び遠隔分散保存システム Download PDF

Info

Publication number
JP4774492B2
JP4774492B2 JP2005514934A JP2005514934A JP4774492B2 JP 4774492 B2 JP4774492 B2 JP 4774492B2 JP 2005514934 A JP2005514934 A JP 2005514934A JP 2005514934 A JP2005514934 A JP 2005514934A JP 4774492 B2 JP4774492 B2 JP 4774492B2
Authority
JP
Japan
Prior art keywords
server
authentication
value
terminal device
data
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2005514934A
Other languages
English (en)
Other versions
JPWO2005041474A1 (ja
Inventor
秀樹 今井
和邦 古原
星漢 辛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Foundation for the Promotion of Industrial Science
Original Assignee
Foundation for the Promotion of Industrial Science
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 Foundation for the Promotion of Industrial Science filed Critical Foundation for the Promotion of Industrial Science
Priority to JP2005514934A priority Critical patent/JP4774492B2/ja
Publication of JPWO2005041474A1 publication Critical patent/JPWO2005041474A1/ja
Application granted granted Critical
Publication of JP4774492B2 publication Critical patent/JP4774492B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Description

本発明は、認証に関する情報の漏洩に強い認証システムとこの認証システムを用いて安全にデータを保存することができる遠隔分散保存システムに関する。
本願は、2003年10月28日に出願された特願2003−367527号に対し優先権を主張し、その内容をここに援用する。
従来からユーザの端末装置とサーバとの間において認証を行う方法として、ユーザIDとユーザのみが知っているパスワードとを端末装置から入力し、サーバ側に蓄えられている情報と一致すれば、正当なユーザであることを認証する方法が知られている。
しかし、この方法は、端末装置とサーバ間の通信経路中において、不正にこれらの情報が盗まれてしまうと、簡単に不正利用を許してしまうため、SSL(文献1)、TLS(文献2)、SSH(文献3)等の暗号化技術を用いて、情報の送受信を行うのが一般的である。これは、パスワードと秘密の値と公開されている値とを使用して認証を行うものである。
(文献1)A.Frier,P.Karlton,and P.Kocher.The SSL 3.0 Protocol.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.html
(文献3)IETF(Internet Engineering Task Force).Secure Shell(secsh)Charter.http://www.ietf.org/html.charters/secsh−charter.html
しかしながら、非特許文献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実施例>
以下、図面を参照しつつ、本発明の好適な実施例について説明する。ただし、本発明は以下の各実施例に限定されるものではなく、例えばこれら実施例の構成要素同士を適宜組み合わせてもよい。
この認証システムは、ユーザの端末装置とサーバの認証装置がお互いに相互認証しながら同じセッション鍵を確保するためのシステムである。
ここで、以下の説明において用いる記号について説明しておく。
p,qは素数であり、q|p−1という関係がある。q|p−1は、qはp−1を割りきることのできる値であることを意味する。また、g,hはmodp上の位数qの有限体(群)G={gmod p:0≦j<q}の生成元である(楕円曲線上の群でも同じように構成できる)。ここで、“gmod p”は、法指数演算で、gをj乗した値をpで割った残り(Remainder)という意味である。ここで、gは(1<g<p−1,g=1modp,g≠1modp(0<j<q))であり、hはh=gmodpである。つまり、p,qは演算体系(素体の標数)を示す。例えば、H=hmodp(0<x<q)でxは秘密情報である(つまり、Hが与えられた時、x=logHを求めるのは数学的に難しい問題;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)=α・xmodq)を、サーバの数がn個だったらn次多項式(p’(x)=α・x+α・x+・・・+α・xmodq)を発生する。ここで、αは(Z/qZ)から無作為に選ばれる。
例えば、一つのサーバの場合、p’(x)は、p’(x)=α・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)=α・xmodq)を、サーバの数がn個だったらn次多項式(p’(x)=α・x+α・x+・・・+α・xmodq)を発生する。ここで、αは(Z/qZ)から無作為に選ばれる。
例えば、一つのサーバの場合、p’(x)は、p’(x)=α・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)=α・xmodN)を、サーバの数がn個だったらn次多項式(p’(x)=α・x+α・x+・・・+α・xmodN)を発生する。ここで、αは(Z/qZ)から無作為に選ばれる。
例えば、一つのサーバの場合、p’(x)は、p’(x)=α・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)=α・xmodN)を、サーバの数がn個だったらn次多項式(p’(x)=α・x+α・x+・・・+α・xmodN)を発生する。ここで、αは(Z/qZ)から無作為に選ばれる。
例えば、一つのサーバの場合、p’(x)は、p’(x)=α・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’=(p’(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=α・x+Pooh93modqにより計算する。マスク演算器34は、結合器32から入力されたPと乱数発生器33において発生させた乱数RとからYを、Y=gR1・h−p(1)modpにより計算する。ここでp(1)は、p(1)=p’(1)+Pooh93=α・1+Pooh93modqにより計算する。ここで、「1」はサーバの認証IDを表す。通信処理部35はYをサーバ2へ送信し、サーバ2からYを受信する。マスター鍵生成器36は結合器32から出力されるPと乱数発生器33から出力されるRと受信したYを入力としてMKを、MK=(Y・h−p(1)R1modpにより計算して出力する。
続いて認証結果判断部37は、MKを入力として、V=HASH(00‖Y‖Y‖MK)によりVを計算してこのVを通信処理部35によりサーバ2へ送信し、サーバ2から受信したVとHASH(01‖Y‖Y‖MK)を比較する。ここで、HASHは一方向ハッシュ関数であるし、HASHの代わりにMAC(Message Authentication Code)を使ってもよい。
次に、認証結果判断部37においてVとHASH(01‖Y‖Y‖MK)が一致しない場合、認証結果判断部37は、エラー発生器38に対して、一致しないことを通知する。これを受けて、エラー発生器38はエラーを発生して処理を中断する。一方、認証結果判断部37においてVとHASH(01‖Y‖Y‖MK)が一致した場合はサーバ2が正当な装置として認証してセッション鍵生成器39は、SK=HASH(11‖Y‖Y‖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))=α・x+HASH(Pooh93‖ID(U)‖ID(S))modNにより計算する。マスク演算器34は、結合器32から入力されたPと乱数発生器33において発生させた乱数RとからYを、Y=gR1・h−p(1)modpにより計算する。ここでp(1)は、p(1)=p’(1)+HASH(Pooh93‖ID(U)‖ID(S))=α・1+HASH(Pooh93‖ID(U)‖ID(S))modNにより計算する。ここで、p’(1)はp’(x)でxの代わりに「1」入れて計算した値である。通信処理部35はYをサーバ2へ送信し、サーバ2からYを受信する。マスター鍵生成器36は結合器32から出力されるPと乱数発生器33から出力されるRと受信したYを入力としてMKを、MK=(Y・h−p(1)R1modpにより計算して出力する。
ユーザの端末装置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において発生させた乱数RとからYを、Y=gR1・h−p(1)modpにより計算する。ここでp(i)は、p(i)=p’(i)+HASH(Pooh93‖ID(U)‖ID(S))modNにより計算する。ここで、p’(i)はi番目のサーバに対してp’(x)でxの代わりに「i」入れて計算した値である。通信処理部35はYをサーバ2へ送信し、サーバ2からYを受信する。マスター鍵生成器36は結合器32から出力されるPと乱数発生器33から出力されるRと受信したYを入力としてMKを、MK=(Y・h−p(1)R1modpにより計算して出力する。
続いて認証結果判断部37は、MKを入力として、V=HASH(00‖Y‖Y‖MK)によりVを計算してこのVを通信処理部35によりサーバ2へ送信し、サーバ2から受信したVとHASH(01‖Y‖Y‖MK)を比較する。ここで、HASHは一方向ハッシュ関数であるし、HASHの代わりにMAC(Message Authentication Code)を使ってもよい。
次に、認証結果判断部37においてVとHASH(01‖Y‖Y‖MK)が一致しない場合、認証結果判断部37は、エラー発生器38に対して、一致しないことを通知する。これを受けて、エラー発生器38はエラーを発生して処理を中断する。一方、認証結果判断部37においてVとHASH(01‖Y‖Y‖MK)が一致した場合はサーバ2が正当な装置として認証してセッション鍵生成器39は、SK=HASH(11‖Y‖Y‖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において発生させた乱数RとからYを、Y=gR1・h−pmodpにより計算する。通信処理部35は、Yをサーバ2へ送信し、サーバ2からYを受信する。マスター鍵生成器36は結合器32から出力されるPと乱数発生器33から出力されるRと受信したYを入力としてMKを、MK=(Y・h−pR1modpにより計算して出力する。 続いて認証結果判断部37は、MKを入力として、V=HASH(00‖Y‖Y‖MK)によりVを計算してこのVを通信処理部35によりサーバ2へ送信し、サーバ2から受信したVとHASH(01‖Y‖Y‖MK)を比較する。ここで、HASHは一方向ハッシュ関数であるし、HASHの代わりにMAC(Message Authentication Code)を使ってもよい。
次に、認証結果判断部37においてVとHASH(01‖Y‖Y‖MK)が一致しない場合、認証結果判断部37は、エラー発生器38に対して、一致しないことを通知する。これを受けて、エラー発生器38はエラーを発生して処理を中断する。一方、認証結果判断部37においてVとHASH(01‖Y‖Y‖MK)が一致した場合はサーバ2が正当な装置として認証してセッション鍵生成器39は、SK=HASH(11‖Y‖Y‖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から発生させた乱数Rを入力としてYを、Y=gR2・Hmodpにより計算する。通信処理部44は、計算して得られたYを端末装置1に送信し、端末装置1から受信したYをマスター鍵生成器45へ出力する。マスク鍵生成器45はメモリ41から読み出したHと乱数発生器42からのRと通信処理部44からのYを入力としてMKを、MK=(Y・H)R2modpにより計算して、MKを出力する。
続いて認証結果判断部46は、MKを入力として、V=HASH(01‖Y‖Y‖MK)によりVを計算してこのVを通信処理部44により端末装置1へ送信し、端末装置1から受信したVとHASH(00‖Y‖Y‖MK)を比較する。ここで、HASHは一方向ハッシュ関数であるし、HASHの代わりにMAC(Message Authentication Code)を使ってもよい。
次に、認証結果判断部46においてVとHASH(00‖Y‖Y‖MK)が一致しない場合、認証結果判断部46は、エラー発生器47に対して、一致しないことを通知する。これを受けて、エラー発生器47はエラーを発生して処理を中断する。一方、認証結果判断部46においてVとHASH(00‖Y‖Y‖MK)が一致した場合は端末装置1が正当な装置として認証してセッション鍵生成器48は、SK=HASH(11‖Y‖Y‖MK)によりセッション鍵SKを生成する。
(2)多項式を利用した場合(その2)、多項式とハッシュ関数を利用した場合(その2)、ハッシュ関数を利用した場合(その2)、擬似乱数関数を利用した場合(その2)
サーバ2は、前述した多項式利用した場合(その2)、多項式とハッシュ関数を利用した場合(その2)、ハッシュ関数を利用した場合(その2)、擬似乱数発生器を利用した場合(その2)に関わらず次のように動作する。
サーバ2に備えたメモリ41に保存されたユーザIDとパスワードの認証データHを読み出す。マスク演算器43はメモリ41から読み出したHと乱数発生器42から発生させた乱数Rを入力としてYを、Y=gR2・hmodpにより計算する。通信処理部44は、計算して得られたYを端末装置1に送信し、端末装置1から受信したYをマスター鍵生成器45へ出力する。マスク鍵生成器45はメモリ41から読み出したHと乱数発生器42からのRと通信処理部44からのYを入力としてMKを、MK=(Y・hR2modpにより計算して、MKを出力する。
続いて認証結果判断部46は、MKを入力として、V=HASH(01‖Y‖Y‖MK)によりVを計算してこのVを通信処理部44により端末装置1へ送信し、端末装置1から受信したVとHASH(00‖Y‖Y‖MK)を比較する。ここで、HASHは一方向ハッシュ関数であるし、HASHの代わりにMAC(Message Authentication Code)を使ってもよい。
次に、認証結果判断部46においてVとHASH(00‖Y‖Y‖MK)が一致しない場合、認証結果判断部46は、エラー発生器47に対して、一致しないことを通知する。これを受けて、エラー発生器47はエラーを発生して処理を中断する。一方、認証結果判断部46においてVとHASH(00‖Y‖Y‖MK)が一致した場合は端末装置1が正当な装置として認証してセッション鍵生成器48は、SK=HASH(11‖Y‖Y‖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)=β・xmodq)を、サーバの数がn個だったらn次多項式(t’(x)=β・x+β・x+・・・+β・xmodq)を発生する。ここで、βは(Z/qZ)から無作為に選ばれる。例えば、一つのサーバの場合、T’=t’(x)は、t’(x)=β・xmodqとなる。ここで、ユーザの端末装置1に備えたメモリ12から記憶された多項式P’=p’(x)を読み出す。多項式t’(x)と多項式p’(x)が入力されたら更新値生成器14は、ユーザ保存用の更新された多項式P’とサーバ更新用の値H’を生成する。更新された多項式P’は、例えばP’=t’(x)+p’(x)=(α+β)・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)=β・xmodq)を、サーバの数がn個だったらn次多項式(t’(x)=β・x+β・x+・・・+β・xmodq)を発生する。ここで、βは(Z/qZ)から無作為に選ばれる。例えば、一つのサーバの場合、T’=t’(x)は、t’(x)=β・xmodqとなる。ここで、ユーザの端末装置1に備えたメモリ12から記憶された多項式P’=p’(x)を読み出す。多項式t’(x)と多項式p’(x)が入力されたら更新値生成器14は、ユーザ保存用の更新された多項式P’とサーバ更新用の値H’を生成する。更新された多項式P’は、例えばP’=t’(x)+p’(x)=(α+β)・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)=β・xmodN)を、サーバの数がn個だったらn次多項式(t’(x)=β・x+β・x+・・・+β・xmodN)を発生する。ここで、βは(Z/qZ)から無作為に選ばれる。例えば、一つのサーバの場合、T’=t’(x)は、t’(x)=β・xmodNとなる。ここで、ユーザの端末装置1に備えたメモリ12から記憶された多項式とハッシュ関数P’=(p’(x),HASH)を読み出す。多項式t’(x)と多項式p’(x)が入力されたら更新値生成器14は、ユーザ保存用の更新された多項式P’とサーバ更新用の値H’を生成する。更新された多項式P’は、例えばP’=t’(x)’+p’(x)=(α+β)・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)=β・xmodN)を、サーバの数がn個だったらn次多項式(t’(x)=β・x+β・x+・・・+β・xmodN)を発生する。ここで、βは(Z/qZ)から無作為に選ばれる。例えば、一つのサーバの場合、T’=t’(x)は、t’(x)=β・xmodNとなる。ここで、ユーザの端末装置1に備えたメモリ12から記憶された多項式とハッシュ関数P’=(p’(x),HASH)を読み出す。多項式t’(x)と多項式p’(x)が入力されたら更新値生成器14は、ユーザ保存用の更新された多項式P’とサーバ更新用の値H’を生成する。更新された多項式P’は、例えばP’=t’(x)+p’(x)=(α+β)・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∈Z )に対して暗号化関数は、EncPubK(m)=mmodNであり、復号化関数は、DecPriK(C)=CmodNである。ここで、暗号文Cと公開鍵(N,e)が与えられた時、メッセージmを求めるのは計算量的に困難である。RSAは、大きな数Nの素因数分解が難しいことから安全性を得ている。そして署名化関数は、SigPriK(m)=mmodNであり、検証化関数は、VerPubK(s)=smodNである。一般に、暗号システムでは、その安全性のレベルを記述する安全性パラメータを有する。ここでは、ハッシュ関数HASHの安全性パラメータとしてkを用い(ただし、1/2は無視できるほど小さいと仮定する)、RSA公開鍵方式の安全性パラメータとして1を用い、特に、RSAの法Nは長さ1であると仮定する。また、{0,1}は有限の2進数のストリングの集合を、{0,1}は長さkの2進数のストリングの集合を示す。ハッシュ関数HASHは{0,1}の入力から{0,1}の出力を出す安全な一方向関数であり、FDH(Full−Domain Hash)関数は{0,1}の入力からZ \{1}の出力を出す安全な一方向関数である。また、乱数発生器から発生される乱数はT(T∈Z )を無作為に生成する。また、‖は値を連結(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)=α・xmodN)を、サーバの数がn個だったらn次多項式(p’(x)=α・x+α・x+・・・+α・xmodN)を発生する。ここで、αはZ から無作為に選ばれる。例えば、一つのサーバの場合、p’(x)は、p’(x)=α・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)Lして記憶して保存する。
(2)多項式とFDH関数を利用する場合(その2)
次に、図13を参照して、多項式とFDH関数を利用する場合(その2)を利用する場合について説明する。
まず、FDH関数発生器122によりランダムにFDH関数FDHを発生する。そして、多項式発生器123によりランダムに多項式を発生する。このとき、登録するサーバの数が一つだったらxを変数とする1次多項式(p’(x)=α・xmodN)を、サーバの数がn個だったらn次多項式(p’(x)=α・x+α・x+・・・+α・xmodN)を発生する。ここで、αはZ から無作為に選ばれる。例えば、一つのサーバの場合、p’(x)は、p’(x)=α・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によりランダムに乱数R(R∈{0,1})を発生し、サーバに送信する。一方、サーバ2にあるRSA鍵生成器24により公開鍵(N,e)と秘密鍵(N,d)の対を生成する。そして、乱数発生器25によりランダムに乱数R(R∈{0,1})を発生する。RSA署名文生成器26は、端末装置1から受信したRとRSA鍵生成器24から生成された秘密鍵(N,d)と乱数発生器25から発生させた乱数Rを入力として、{m1≦j≦nの署名{s1≦j≦nを生成する(ただし、nはn≧log(PW・(e−1)/e)になるような整数である。ここで、PWはパスワードを表す。)。署名{s1≦j≦nは、{s=m modN}1≦j≦nにより計算する。ここで、{m1≦j≦nはHASH(n‖N‖e‖ID(U)‖ID(S)‖R‖R)の出力から長さ1のブロックをn個に分けて得たものである。ID(U)とID(S)はそれぞれユーザとサーバのIDを表す。サーバ2は、公開鍵(N,e)と計算して得られた署名文(R,{S1≦j≦n)を端末装置1に送信する。サーバ2の内部に備えたメモリ41は、RSA鍵生成器24から生成された秘密鍵(N,d)を記憶して保存する。
ユーザの端末装置1にある検証結果判断部18は、乱数発生器17において発生させたRとサーバ2から受信した((N,e),(R,{s1≦j≦n))を入力として、署名文(R,{s1≦j≦n)の検証を行う。{m,=s modN}1≦j≦nにより{m1≦j≦nを計算してこの{m1≦j≦nとHASH(n‖N‖e‖ID(U)‖ID(S)‖R‖R)を比較する。検証結果判断部18において{m1≦j≦nとHASH(n‖N‖e‖ID(U)‖ID(S)‖R‖R)が一致しない場合、検証結果判断部18は、エラー発生器19に対して、一致しないことを通知する。これを受けて、エラー発生器19はエラーを発生して処理を中断する。一方、検証結果判断部18において{m1≦j≦nとHASH(n‖N‖e‖ID(U)‖ID(S)‖R‖R)が一致した場合はサーバ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+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∈Z )とからZを、Z=T・WmodNにより計算する。通信処理部55はZをサーバ2へ送信し、サーバ2からVを受信する。
続いて認証結果判断部56は、乱数発生器53から出力されたTを入力として、HASH(01‖T‖ID(U)‖ID(S))を計算してサーバ2から受信したVと比較する。ここで、HASHの代わりにMACを使ってもよい。認証結果判断部56においてVとHASH(01‖T‖ID(U)‖ID(S))が一致しない場合、認証結果判断部56は、エラー発生器57に対して、一致しないことを通知する。これを受けて、エラー発生器57はエラーを発生して処理を中断する。一方、認証結果判断部56においてVとHASH(01‖T‖ID(U)‖ID(S))が一致した場合はサーバ2が正当な装置として認証して、検証子生成器58は、V=HASH(00‖T‖ID(U)‖ID(S))により検証子Vを計算してサーバ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+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∈Z )とからZを、Z=T・WmodNにより計算する。通信処理部55はZをサーバ2へ送信し、サーバ2からVを受信する。
続いて認証結果判断部56は、乱数発生器53から出力されたTを入力として、HASH(01‖T‖ID(U)‖ID(S))を計算してサーバ2から受信したVと比較する。ここで、HASHの代わりにMACを使ってもよい。認証結果判断部56においてVとHASH(01‖T‖ID(U)‖ID(S))が一致しない場合、認証結果判断部56は、エラー発生器57に対して、一致しないことを通知する。これを受けて、エラー発生器57はエラーを発生して処理を中断する。一方、認証結果判断部56においてVとHASH(01‖T‖ID(U)‖ID(S))が一致した場合はサーバ2が正当な装置として認証して、検証子生成器58は、V=HASH(00‖T‖ID(U)‖ID(S))により検証子Vを計算してサーバ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∈Z )とからZを、Z=T・WmodNにより計算する。通信処理部55はZをサーバ2へ送信し、サーバ2からVを受信する。
続いて認証結果判断部56は、乱数発生器53から出力されたTを入力として、HASH(01‖T‖ID(U)‖ID(S))を計算してサーバ2から受信したVと比較する。ここで、HASHの代わりにMACを使ってもよい。認証結果判断部56においてVとHASH(01‖T‖ID(U)‖ID(S))が一致しない場合、認証結果判断部56は、エラー発生器57に対して、一致しないことを通知する。これを受けて、エラー発生器57はエラーを発生して処理を中断する。一方、認証結果判断部56においてVとHASH(01‖T‖ID(U)‖ID(S))が一致した場合はサーバ2が正当な装置として認証して、検証子生成器58は、V=HASH(00‖T‖ID(U)‖ID(S))により検証子Vを計算してサーバ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)modNにより計算して出力する。ここで、Wは、W=FDH(H‖ID(U)‖ID(S))により計算する。検証子生成器63は、マスター鍵生成器62から入力されたTから検証子Vを、V=HASH(01‖T‖ID(U)‖ID(S))により計算する。通信処理部64は、計算して得られたVを端末装置1へ送信し、端末装置1から受信したVを認証結果判断部65へ出力する。
続いて認証結果判断部65は、マスター鍵生成器62から出力されたTを入力として、HASH(00‖T‖ID(U)‖ID(S))を計算して端末装置1から受信したVと比較する。ここで、HASHの代わりにMACを使ってもよい。認証結果判断部65においてVとHASH(00‖T‖ID(U)‖ID(S))が一致しない場合、認証結果判断部65は、エラー発生器66に対して、一致しないことを通知する。これを受けて、エラー発生器66はエラーを発生して処理を中断する。一方、認証結果判断部65においてVと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)modNにより計算して出力する。ここで、Wは、W=Hである。検証子生成器63は、マスター鍵生成器62から入力されたTから検証子Vを、V=HASH(01‖T‖ID(U)‖ID(S))により計算する。通信処理部64は、計算して得られたVを端末装置1へ送信し、端末装置1から受信したVを認証結果判断部65へ出力する。
続いて認証結果判断部65は、マスター鍵生成器62から出力されたTを入力として、HASH(00‖T‖ID(U)‖ID(S))を計算して端末装置1から受信したVと比較する。ここで、HASHの代わりにMACを使ってもよい。認証結果判断部65においてVとHASH(00‖T‖ID(U)‖ID(S))が一致しない場合、認証結果判断部65は、エラー発生器66に対して、一致しないことを通知する。これを受けて、エラー発生器66はエラーを発生して処理を中断する。一方、認証結果判断部65においてVと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)=β・xmodN)を、サーバの数がn個だったらn次多項式(t’(x)=β・x+β・x+・・・+β・xmodN)を発生する。ここで、βはZ から無作為に選ばれる。例えば、一っのサーバの場合、T’=t’(x)は、t’(x)=β・xmodNとなる。ここで、ユーザの端末装置1に備えたメモリ12から記憶された多項式とFDH関数P’=(p’(x),FDH)を読み出す。多項式t’(x)と多項式p’(x)が入力されたら更新値生成器14は、ユーザ保存用の更新された多項式P’とサーバ更新用の値H’を生成する。更新された多項式P’は、例えばP’=t’(x)+p’(x)=(α+β)・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∈Z )を発生する。ここで、ユーザの端末装置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が入力されたら更新値生成器27は、サーバ保存用の更新されたパスワード認証データ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}とユーザの所有物{U}をそれぞれ含めることはできなかった。これに対して、漏洩に強い認証方式を使うことでLS1にサーバ{S}とユーザの所有物{U}をそれぞれ含めることが可能となる。漏洩に強い認証方式を含む全ての遠隔認証方式はユーザの所有物{U}とサーバ{S}の両方から情報が漏洩すると利用者の記憶情報を全数探索でき、結果として、利用者に成りすまして遠隔分散保存されているデータをすべて入手できる。よって、LS2にユーザの所有物{U}とサーバ{S}の組み合わせ{US}を入れることはできなかった。これに対して、P’とH1,…,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、ID1,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+1のそれぞれに改ざん検出符号を付けてもよい。暗号器の出力がRS’1,…,RS’nである。
なお、(k,n)分散データ以外にも任意のアクセス構造を持った分散データを利用することが可能である。また、秘密分散器512には多項式や行列を使った情報量的に安全な分散方式や、暗号を使う計算量的に安全な分散方式を用いることが可能であるが、Rのサイズが小さい場合には、計算量的に安全な分散方式を用いることによるサイズの削減効果は小さいため、情報量的に安全な分散方式を用いた方がよい。
<端末にも分散データを保存する場合の遠隔分散保存装置におけるデータ復元処理>
次に、図27を参照して、端末にも分散データを保存する場合の遠隔分散保存装置におけるデータ復元処理について説明する。図27は、端末にも分散データを保存する場合の遠隔分散保存装置5の構成を示すブロック図である。ここでは、図23に示す構成と異なる部分のみを説明する。
データ復元器54は入力されたDIDに対応する分散データRS’1,…RS’nの内少なくともk個を通信器を介してサーバID1,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を用いてユーザのプライバシ情報を紐付けすることを防止することができる。
本発明の一実施形態における端末装置の構成を示すブロック図である。 図1に示すデータ伸長器11の構成を示すブロック図である。 図1に示すデータ伸長器11の構成を示すブロック図である。 図1に示すデータ伸長器11の構成を示すブロック図である。 相互認証及び鍵交換を行う装置の構成を示すブロック図である。 図5に示す端末装置1の構成を示すブロック図である。 図5に示すサーバ2の構成を示すブロック図である。 図1に示すデータ伸長器11の構成を示すブロック図である。 パスワード認証データ更新−1の端末装置1の構成を示すブロック図である。 パスワード認証データ更新−1のサーバ2の構成を示すブロック図である。 パスワード認証データ更新−2の端末装置1の構成を示すブロック図である。 パスワード認証データ更新−2のサーバ2の構成を示すブロック図である。 図1に示すデータ伸長器11の構成を示すブロック図である。 図1に示すデータ伸長器11の構成を示すブロック図である。 安全な通信を利用して初期化処理を行う場合のサーバ2の構成を示すブロック図である。 安全ではない通信を利用して初期化処理を行う場合の端末装置1及びサーバ2の構成を示すブロック図である。 図5に示す端末装置1の構成を示すブロック図である。 図5に示すサーバ2の構成を示すブロック図である。 マスター鍵を利用して更新化処理を行う場合の端末装置1の構成を示すブロック図である。 マスター鍵を利用して更新化処理を行う場合のサーバ2の構成を示すブロック図である。 端末に分散データを保存しない場合の遠隔分散保存装置5の構成を示すブロック図である。 図21に示すデータ分散器51の構成を示すブロック図である。 端末にデータを保存しない場合の遠隔分散保存装置5の構成を示すブロック図である。 図23に示すデータ復元器54の構成を示すブロック図である。 端末にも分散データを保存する場合の遠隔分散保存装置5の構成を示すブロック図である。 図25に示すデータ分割器51の構成を示すブロック図である。 端末にも分散データを保存する場合の遠隔分散保存装置5の構成を示すブロック図である。 図27に示すデータ復元器54の構成を示すブロック図である。

Claims (14)

  1. 端末装置とサーバ間において相互に認証を行う認証システムであって、
    前記端末装置は、
    ユーザ保存用の認証情報P’とRSA公開鍵(N,e)を予め記憶しておく記憶手段と、
    前記記憶手段から読み出した認証情報P’と認証時に入力されたパスワードを入力として所定の計算式により値Wを求める結合手段と、
    前記値Wと前記記憶手段から読み出したRSA公開鍵(N,e)と内部において発生させた乱数Tを入力として所定の計算式により値Zを求め、前記サーバへ送信するマスク演算手段とを備え、
    前記サーバは、
    サーバ登録用のパスワード認証データHとRSA秘密鍵(N,d)を予め記憶しておく記憶手段と、
    前記記憶手段から読み出したパスワード認証データHとRSA秘密鍵(N,d)と前記端末装置から受信した値Zを入力として所定の計算式により値Tを求めるマスター鍵生成手段とを備えたことを特徴とする認証システム。
  2. ユーザが予め決定したパスワードに基づいて、前記パスワード認証データHと前記認証情報P’を求めるデータ伸長手段をさらに備えたことを特徴とする請求項に記載の認証システム。
  3. 前記RSA公開鍵(N,e)と前記RSA秘密鍵(N,d)を求めるRSA鍵生成手段をさらに備えたことを特徴とする請求項に記載の認証システム。
  4. 前記端末装置は、
    前記サーバから受信した値V2と前記乱数Tを入力として所定の計算式による値V2と比較照合し、一致した場合にサーバを認証する認証結果判断手段と、
    前記乱数Tを入力として所定の計算式により値V1を求め、前記サーバへ送信する検証子生成手段をさらに備え、
    前記サーバは、
    前記値Tを入力として所定の計算式により値V2を求め、前記端末装置へ送信する検証子生成手段と、
    前記端末装置から受信した値V1と前記値Tを入力として所定の計算式による値V1と比較照合し、一致した場合に端末装置を認証する認証結果判断手段をさらに備えたことを特徴とする請求項1から3のいずれかに記載の認証システム。
  5. 前記端末装置及びサーバは、相互の認証が行われた場合に、セッション鍵を生成するセッション鍵生成手段をそれぞれに備えたことを特徴とする請求項に記載の認証システム。
  6. 前記認証情報P’は、多項式とFDH関数であることを特徴とする請求項1から5のいずれかに記載の認証システム。
  7. 前記認証情報P’は、FDH関数であることを特徴とする請求項1から5のいずれかに記載の認証システム。
  8. 前記RSA公開鍵(N,e)は、安全な通信を用いることを特徴とする請求項1から5のいずれかに記載の認証システム。
  9. 前記RSA公開鍵(N,e)は、安全ではない通信を用いることを特徴とする請求項1から5のいずれかに記載の認証システム。
  10. 前記端末装置は、
    更新情報T’を発生させる発生手段と、
    前記記憶手段に記憶されている認証情報P’と前記更新情報T’を入力し、所定の計算式によってサーバ更新用のパスワード認証データH’と新たな認証情報P’を求め、サーバ更新用のパスワード認証データH’を前記サーバへ送信するとともに、新たな認証情報P’を前記記憶手段に記憶する更新情報生成手段とを備え、
    前記サーバは、
    前記端末装置から送信されたサーバ更新用のパスワード認証データH’と前記記憶手段に記憶されたパスワード認証データHを入力し、所定の計算式によって新たなパスワード認証データHを求めて前記記憶手段に記憶されているパスワード認証データHを更新する更新情報生成手段を備えたことを特徴とする請求項に記載の認証システム。
  11. 前記端末装置は、
    前記記憶手段に記憶されている認証情報P’と前記乱数Tを入力し、所定の計算式によって新たな認証情報P’を求め、新たな認証情報P’を前記記憶手段に記憶する更新情報生成手段とを備え、
    前記サーバは、
    前記記憶手段に記憶されたパスワード認証データHと前記マスター鍵生成手段によって求めた値Tを入力し、所定の計算式によって新たなパスワード認証データHを求めて前記記憶手段に記憶されているパスワード認証データHを更新する更新情報生成手段を備えたことを特徴とする請求項に記載の認証システム。
  12. 前記端末装置は、
    秘密情報S’を発生させる発生手段と、
    前記記憶手段に記憶されている認証情報P’と前記秘密情報S’と新しいパスワードを入力し、所定の計算式によってサーバ更新用のパスワード認証データH’と新たな認証情報P’を求め、サーバ更新用のパスワード認証データH’を前記サーバへ送信するとともに、新たな認証情報P’を前記記憶手段に記憶する更新情報生成手段とを備え、
    前記サーバは、
    前記端末装置から送信されたサーバ更新用のパスワード認証データH’と前記記憶手段に記憶されたパスワード認証データHを入力し、所定の計算式によって新たなパスワード認証データHを求めて前記記憶手段に記憶されているパスワード認証データHを更新する更新情報生成手段を備えたことを特徴とする請求項に記載の認証システム。
  13. 端末装置とサーバ間において相互に認証を行う認証システムにおいて、記憶手段と、入力手段と、送信手段とを備える前記端末装置上のコンピュータで動作する認証プログラムであって、
    ユーザ保存用の認証情報P’とRSA公開鍵(N,e)を予め前記記憶手段に記憶しておく記憶処理と、
    前記記憶手段に記憶しておいた前記認証情報P’と、認証時に前記入力手段から入力されたパスワードを入力として所定の計算式により値Wを求める結合処理と、
    前記値Wと、前記記憶手段に記憶しておいた前記RSA公開鍵(N,e)と、内部において発生させた乱数Tを入力として所定の計算式により値Zを求め、該値Zを前記送信手段により前記サーバへ送信するマスク演算処理と
    を前記コンピュータに行わせることを特徴とする認証プログラム。
  14. 端末装置とサーバ間において相互に認証を行う認証システムにおいて、記憶手段と、受信手段とを備える前記サーバ上のコンピュータで動作する認証プログラムであって、
    サーバ登録用のパスワード認証データHとRSA秘密鍵(N,d)を予め前記記憶手段に記憶しておく記憶処理と、
    前記記憶手段に記憶しておいた前記パスワード認証データHと、前記RSA秘密鍵(N,d)と、前記受信手段により前記端末装置から受信した値Zを入力として所定の計算式により値Tを求めるマスター鍵生成処理と
    を前記コンピュータに行わせることを特徴とする認証プログラム。
JP2005514934A 2003-10-28 2004-10-07 認証システム及び遠隔分散保存システム Expired - Fee Related JP4774492B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005514934A JP4774492B2 (ja) 2003-10-28 2004-10-07 認証システム及び遠隔分散保存システム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003367527 2003-10-28
JP2003367527 2003-10-28
JP2005514934A JP4774492B2 (ja) 2003-10-28 2004-10-07 認証システム及び遠隔分散保存システム
PCT/JP2004/015184 WO2005041474A1 (ja) 2003-10-28 2004-10-07 認証システム及び遠隔分散保存システム

Publications (2)

Publication Number Publication Date
JPWO2005041474A1 JPWO2005041474A1 (ja) 2007-04-26
JP4774492B2 true JP4774492B2 (ja) 2011-09-14

Family

ID=34510297

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005514934A Expired - Fee Related JP4774492B2 (ja) 2003-10-28 2004-10-07 認証システム及び遠隔分散保存システム

Country Status (5)

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

Families Citing this family (52)

* 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 삼성전자주식회사 세션 키를 이용한 인증 방법 및 이를 위한 장치
KR100926631B1 (ko) * 2007-09-14 2009-11-11 (주)밀레니엄 포스 데이터 보안장치
GB2467462A (en) * 2007-09-14 2010-08-04 Millennium Force Co Ltd Data security apparatus
CN101425897B (zh) * 2007-10-29 2011-05-18 上海交通大学 一种用户认证方法、系统、服务器和用户节点
KR101016277B1 (ko) * 2007-12-20 2011-02-22 건국대학교 산학협력단 보안성이 강화된 sⅰp 등록 및 sⅰp 세션 설정 방법 및장치
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
JP5224481B2 (ja) * 2008-07-10 2013-07-03 独立行政法人産業技術総合研究所 パスワード認証方法
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
US8671265B2 (en) 2010-03-05 2014-03-11 Solidfire, Inc. Distributed data storage system providing de-duplication of data using block identifiers
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 주식회사 넥슨코리아 키보드 보안 장치 및 방법
US8861727B2 (en) * 2010-05-19 2014-10-14 Cleversafe, Inc. Storage of sensitive data 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
US9268653B2 (en) 2014-01-17 2016-02-23 Netapp, Inc. Extent metadata update logging and checkpointing
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
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
EP3698262B1 (en) * 2017-10-18 2023-08-02 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 株式会社東芝 暗号化装置、復号装置、暗号方法、復号方法、暗号化プログラム及び復号プログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245287A (ja) * 1991-01-31 1992-09-01 Matsushita Electric Ind Co Ltd 識別情報に基づく秘密鍵生成方法
JP2002208925A (ja) * 2001-01-10 2002-07-26 Ntt Advanced Technology Corp 可変認証情報を用いる資格認証方法
WO2002060119A1 (en) * 2001-01-23 2002-08-01 Mentor Graphics Corporations Authenticating communications

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 海南格方网络安全有限公司 计算机安全认证智能密钥
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04245287A (ja) * 1991-01-31 1992-09-01 Matsushita Electric Ind Co Ltd 識別情報に基づく秘密鍵生成方法
JP2002208925A (ja) * 2001-01-10 2002-07-26 Ntt Advanced Technology Corp 可変認証情報を用いる資格認証方法
WO2002060119A1 (en) * 2001-01-23 2002-08-01 Mentor Graphics Corporations Authenticating communications

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4774492B2 (ja) 認証システム及び遠隔分散保存システム
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
US7516321B2 (en) Method, system and device for enabling delegation of authority and access control methods based on delegated authority
Barker et al. NIST special publication 800-57
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
US20060195402A1 (en) Secure data transmission using undiscoverable or black data
EP3692682A1 (en) Systems, devices, and methods for hybrid secret sharing
EP3262784A1 (en) A system and methods for protecting keys in computerized devices operating versus a server
JP2001513227A (ja) ネットワーク環境における秘密最新乱数の管理および使用
CN101359991A (zh) 基于标识的公钥密码体制私钥托管系统
JPH11239124A (ja) 秘密鍵回復方法および装置
GB2401014A (en) Identifier based encryption method using an encrypted condition and a trusted party
CN109951276B (zh) 基于tpm的嵌入式设备远程身份认证方法
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
Shakiba Security analysis for chaotic maps-based mutual authentication and key agreement using smart cards for wireless networks
JP4758110B2 (ja) 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法
EP1649635A1 (en) Generation and validation of diffie-hellman digital signatures
Das A hybrid algorithm for secure cloud computing
KP et al. Sequential Computational Time-Released Encryption Technique Using Variable Time Delay
EP1394981A2 (en) Public key cryptograph communication method
JP2003173139A (ja) 公開検証可能暗号化装置、その復号装置、暗号化プログラムおよび復号プログラム
Singh et al. Encryption algorithms with emphasis on probabilistic Encryption & time stamp in network security
Im et al. Password Authentication Using One-Time Key-Based Signature and Homomorphic Encryption

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100914

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110324

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110519

R150 Certificate of patent or registration of utility model

Ref document number: 4774492

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140708

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees