JP4774492B2 - 認証システム及び遠隔分散保存システム - Google Patents
認証システム及び遠隔分散保存システム Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 109
- 238000004364 calculation method Methods 0.000 claims description 79
- 238000004891 communication Methods 0.000 claims description 41
- 230000006837 decompression Effects 0.000 claims description 16
- 230000005540 biological transmission Effects 0.000 claims description 7
- 230000006870 function Effects 0.000 description 190
- 238000010586 diagram Methods 0.000 description 38
- 230000004044 response Effects 0.000 description 13
- 238000013500 data storage Methods 0.000 description 10
- 239000008186 active pharmaceutical agent Substances 0.000 description 7
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 6
- 238000012795 verification Methods 0.000 description 5
- 239000006185 dispersion Substances 0.000 description 4
- 239000000470 constituent Substances 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 101100061515 Caenorhabditis elegans csk-1 gene Proteins 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000005549 size reduction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/3026—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3271—Cryptographic 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/3273—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking 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号に対し優先権を主張し、その内容をここに援用する。
しかし、この方法は、端末装置とサーバ間の通信経路中において、不正にこれらの情報が盗まれてしまうと、簡単に不正利用を許してしまうため、SSL(文献1)、TLS(文献2)、SSH(文献3)等の暗号化技術を用いて、情報の送受信を行うのが一般的である。これは、パスワードと秘密の値と公開されている値とを使用して認証を行うものである。
(文献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
本発明の目的は、本発明による認証システムを用いて安全にデータを保存することができる遠隔分散保存システムを提供することである。
以下、図面を参照しつつ、本発明の好適な実施例について説明する。ただし、本発明は以下の各実施例に限定されるものではなく、例えばこれら実施例の構成要素同士を適宜組み合わせてもよい。
この認証システムは、ユーザの端末装置とサーバの認証装置がお互いに相互認証しながら同じセッション鍵を確保するためのシステムである。
ここで、以下の説明において用いる記号について説明しておく。
p,qは素数であり、q|p−1という関係がある。q|p−1は、qはp−1を割りきることのできる値であることを意味する。また、g,hはmodp上の位数qの有限体(群)G={gjmod p:0≦j<q}の生成元である(楕円曲線上の群でも同じように構成できる)。ここで、“gjmod p”は、法指数演算で、gをj乗した値をpで割った残り(Remainder)という意味である。ここで、gは(1<g<p−1,gq=1modp,gj≠1modp(0<j<q))であり、hはh=gamodpである。つまり、p,qは演算体系(素体の標数)を示す。例えば、H=hxmodp(0<x<q)でxは秘密情報である(つまり、Hが与えられた時、x=loghHを求めるのは数学的に難しい問題;Hの生成元hに対する離散対数問題)。また、乱数発生器から発生される乱数はR∈(Z/qZ)*を無作為に生成する。ここで、(Z/qZ)*は{1,2,・・・,q}の集合を示す。また、Nはパスワードの長さを示す。また、‖は値を連結(concatenation)するという意味である。
ユーザは、サーバに対して個人登録したい時、自分の端末装置の初期化を行う。図1は、ユーザの端末装置の初期化処理の構成を示すブロック図である。初期化は、ユーザがパスワードを入力すると、データ伸張器11によって、サーバ登録用のパスワード認証データHと、ユーザ保存用の値P’が生成され、パスワード認証データHは、サーバに受け渡され、値P’は、メモリ12へ保存する。ここで、データ伸長器11は、多項式、多項式とハッシュ関数、ハッシュ関数、擬似乱数発生器などで構成することが可能である。
初めに、図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)について説明する。
まず、多項式発生器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=p(1)=p’(1)+Pooh93modqにより計算できる。ここで、p’(1)はp’(x)でxの代わりにサーバのID(例えば、「1」)を入れて計算した値である。パスワード認証データHはユーザが直接にサーバに渡したり、郵便で送付したり、あるいは電話で知らせるなどして、安全に通知する必要がある。ユーザの端末装置の内部にあるメモリ12は多項式発生器から発生された多項式P’=p’(x)を記憶して保存する。
次に、図8を参照して、多項式とハッシュ関数を利用する場合(その1)について説明する。
まず、多項式発生器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=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)として記憶して保存する。
次に、図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’=(p’(x),HASH)として記憶して保存する。
次に、図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)として記憶して保存する。
次に、図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)として記憶して保存する。
次に、図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)として記憶して保存する。
次に、図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)として記憶して保存する。
<端末装置の動作>
(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を生成する。
次に、多項式とハッシュ関数を利用した場合の端末装置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))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において発生させた乱数R1とからY1を、Y1=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は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を生成する。
次に、ハッシュ関数を利用した場合の端末装置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を生成する。
次に、疑似乱数関数を利用した場合の端末装置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に備えたメモリ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を生成する。
ユーザは、サーバに対してすでに登録されたパスワード認証データを、自分が覚えているパスワードを変えずに、更新したい時、自分の端末装置の更新化を行う。図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)=(α1+β1)・xmodqにより計算できる。サーバ更新用の値H’、例えばH’=ht’(1)modpにより計算できる。ここで、t’(1)はt’(x)でxの代わりにサーバのID(例えば、「1」)入れて計算した値である。サーバ更新用の値H’はユーザが直接にサーバに渡したり、郵便で送付したり、あるいは電話で知らせるなどして、安全に通知する必要がある。ユーザの端末装置の内部にあるメモリ12は更新された多項式P’=t’(x)+p’(x)を記憶して保存する。
次に、図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)=(α1+β1)・xmodqにより計算できる。サーバ更新用の値H’、例えばH’=t’(1)modqにより計算できる。ここで、t’(1)はt’(x)でxの代わりにサーバのID(例えば、「1」)入れて計算した値である。サーバ更新用の値H’はユーザが直接にサーバに渡したり、郵便で送付したり、あるいは電話で知らせるなどして、安全に通知する必要がある。ユーザの端末装置の内部にあるメモリ12は更新された多項式P’=t’(x)+p’(x)を記憶して保存する。
次に、図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)=(α1+β1)・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)として記憶して保存する。
次に、図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)=(α1+β1)・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を記憶して保存する。
次に、図10を参照して、前述した多項式を利用した場合(その2)のサーバ2の更新化処理の動作を説明する。
まず、サーバ2に備えたメモリ41に保存されたユーザIDとパスワード認証データHを読み出す。ユーザの端末装置から送られたサーバ更新用の値H’とメモリ41から読み出したパスワード認証データHが入力されたら更新値生成器21は、サーバ保存用の更新されたパスワード認証データHを生成する。更新されたパスワード認証データHは、例えばH=p(1)+t’(1)modqにより計算できる。サーバの内部にあるメモリ41は更新されたパスワード認証データHを記憶して保存する。
次に、図10を参照して、前述した多項式とハッシュ関数を利用した場合(その2)のサーバ2の更新化処理の動作を説明する。
まず、サーバ2に備えたメモリ41に保存されたユーザIDとパスワード認証データHを読み出す。ユーザの端末装置から送られたサーバ更新用の値H’とメモリ41から読み出したパスワード認証データHが入力されたら更新値生成器21は、サーバ保存用の更新されたパスワード認証データHを生成する。更新されたパスワード認証データHは、例えばH=p(1)+t’(1)modNにより計算できる。サーバの内部にあるメモリ41は更新されたパスワード認証データHを記憶して保存する。
ユーザは、サーバに対してすでに登録されたパスワード認証データを、自分が覚えているパスワードを変えながら、更新したい時、自分の端末装置の更新化処理を行う。図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)を記憶して保存する。
次に、図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)を記憶して保存する。
次に、図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’を記憶して保存する。
以下、本発明の公開鍵暗号方式を使った実施例について説明する。ただし、本発明は以下の各実施例に限定されるものではなく、例えばこれら実施例の構成要素同士を適宜組み合わせてもよい。
ここで、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)関数は{0,1}*の入力からZN *\{1}の出力を出す安全な一方向関数である。また、乱数発生器から発生される乱数はT(T∈ZN *)を無作為に生成する。また、‖は値を連結(concatenation)するという意味である。
ユーザは、サーバに対して個人登録したい時、自分の端末装置の初期化を行う。図1は、ユーザの端末装置の初期化処理の構成を示すブロック図である。初期化は、ユーザがパスワードを入力すると、データ伸張器11によって、サーバ登録用のパスワード認証データHと、ユーザ保存用の値P’が生成され、パスワード認証データHは、サーバに受け渡され、値P’は、メモリ12へ保存する。ここで、データ伸長器11は、多項式とFDH関数、FDH関数などで構成することが可能である。
初めに、図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)Lして記憶して保存する。
次に、図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)として記憶して保存する。
次に、図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署名方式を使う。
初めに、図15を参照して、安全な通信を利用する場合の初期化処理について説明する。
まず、RSA鍵生成器23により公開鍵(N,e)と秘密鍵(N,d)の対を生成する。RSA公開鍵(N,e)はサーバが直接にユーザに渡したり、郵便で送付したり、あるいは電話で知らせるなどして、安全に通知する必要がある。サーバの内部にあるメモリ41はRSA秘密鍵(N,d)を記憶して保存する。
次に、図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≧loge(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)の検証を行う。{m,=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)を記憶して保存する。
<端末装置の動作>
(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を生成する。
次に、多項式と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を生成する。
次に、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を生成する。
次に、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を生成する。
ユーザは、サーバに対してすでに登録されたパスワード認証データを、自分が覚えているパスワードを変えずに、更新したい時、自分の端末装置の更新化を行う。図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 *から無作為に選ばれる。例えば、一っのサーバの場合、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)=(α1+β1)・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)として記憶して保存する。
次に、図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を記憶して保存する。
次に、図20を参照して、マスター鍵を利用する場合のサーバ2の更新化処理の動作を説明する。
まず、マスター鍵生成器62によりマスター鍵Tを生成する。ここで、サーバ2に備えたメモリ41から保存されたユーザIDとパスワード認証データHを読み出す。マスター鍵Tとメモリ41から読み出したパスワード認証データHが入力されたら更新値生成器27は、サーバ保存用の更新されたパスワード認証データHを生成する。更新されたパスワード認証データHは、H=p(1)+TmodNにより計算できる。サーバの内部にあるメモリ41は更新されたパスワード認証データHを記憶して保存する。
ユーザは、サーバに対してすでに登録されたパスワード認証データを、自分が覚えているパスワードを変えながら、更新したい時、自分の端末装置の更新化処理を行う。図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個渡してもよい。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
さらに、各サーバと端末装置とでユーザIDを同期させながら動的に変化させることで、盗聴者がユーザIDを用いてユーザのプライバシ情報を紐付けすることを防止することができる。
Claims (14)
- 端末装置とサーバ間において相互に認証を行う認証システムであって、
前記端末装置は、
ユーザ保存用の認証情報P’とRSA公開鍵(N,e)を予め記憶しておく記憶手段と、
前記記憶手段から読み出した認証情報P’と認証時に入力されたパスワードを入力として所定の計算式により値Wを求める結合手段と、
前記値Wと前記記憶手段から読み出したRSA公開鍵(N,e)と内部において発生させた乱数Tを入力として所定の計算式により値Zを求め、前記サーバへ送信するマスク演算手段とを備え、
前記サーバは、
サーバ登録用のパスワード認証データHとRSA秘密鍵(N,d)を予め記憶しておく記憶手段と、
前記記憶手段から読み出したパスワード認証データHとRSA秘密鍵(N,d)と前記端末装置から受信した値Zを入力として所定の計算式により値Tを求めるマスター鍵生成手段とを備えたことを特徴とする認証システム。 - ユーザが予め決定したパスワードに基づいて、前記パスワード認証データHと前記認証情報P’を求めるデータ伸長手段をさらに備えたことを特徴とする請求項1に記載の認証システム。
- 前記RSA公開鍵(N,e)と前記RSA秘密鍵(N,d)を求めるRSA鍵生成手段をさらに備えたことを特徴とする請求項1に記載の認証システム。
- 前記端末装置は、
前記サーバから受信した値V2と前記乱数Tを入力として所定の計算式による値V2と比較照合し、一致した場合にサーバを認証する認証結果判断手段と、
前記乱数Tを入力として所定の計算式により値V1を求め、前記サーバへ送信する検証子生成手段をさらに備え、
前記サーバは、
前記値Tを入力として所定の計算式により値V2を求め、前記端末装置へ送信する検証子生成手段と、
前記端末装置から受信した値V1と前記値Tを入力として所定の計算式による値V1と比較照合し、一致した場合に端末装置を認証する認証結果判断手段をさらに備えたことを特徴とする請求項1から3のいずれかに記載の認証システム。 - 前記端末装置及びサーバは、相互の認証が行われた場合に、セッション鍵を生成するセッション鍵生成手段をそれぞれに備えたことを特徴とする請求項4に記載の認証システム。
- 前記認証情報P’は、多項式とFDH関数であることを特徴とする請求項1から5のいずれかに記載の認証システム。
- 前記認証情報P’は、FDH関数であることを特徴とする請求項1から5のいずれかに記載の認証システム。
- 前記RSA公開鍵(N,e)は、安全な通信を用いることを特徴とする請求項1から5のいずれかに記載の認証システム。
- 前記RSA公開鍵(N,e)は、安全ではない通信を用いることを特徴とする請求項1から5のいずれかに記載の認証システム。
- 前記端末装置は、
更新情報T’を発生させる発生手段と、
前記記憶手段に記憶されている認証情報P’と前記更新情報T’を入力し、所定の計算式によってサーバ更新用のパスワード認証データH’と新たな認証情報P’を求め、サーバ更新用のパスワード認証データH’を前記サーバへ送信するとともに、新たな認証情報P’を前記記憶手段に記憶する更新情報生成手段とを備え、
前記サーバは、
前記端末装置から送信されたサーバ更新用のパスワード認証データH’と前記記憶手段に記憶されたパスワード認証データHを入力し、所定の計算式によって新たなパスワード認証データHを求めて前記記憶手段に記憶されているパスワード認証データHを更新する更新情報生成手段を備えたことを特徴とする請求項2に記載の認証システム。 - 前記端末装置は、
前記記憶手段に記憶されている認証情報P’と前記乱数Tを入力し、所定の計算式によって新たな認証情報P’を求め、新たな認証情報P’を前記記憶手段に記憶する更新情報生成手段とを備え、
前記サーバは、
前記記憶手段に記憶されたパスワード認証データHと前記マスター鍵生成手段によって求めた値Tを入力し、所定の計算式によって新たなパスワード認証データHを求めて前記記憶手段に記憶されているパスワード認証データHを更新する更新情報生成手段を備えたことを特徴とする請求項2に記載の認証システム。 - 前記端末装置は、
秘密情報S’を発生させる発生手段と、
前記記憶手段に記憶されている認証情報P’と前記秘密情報S’と新しいパスワードを入力し、所定の計算式によってサーバ更新用のパスワード認証データH’と新たな認証情報P’を求め、サーバ更新用のパスワード認証データH’を前記サーバへ送信するとともに、新たな認証情報P’を前記記憶手段に記憶する更新情報生成手段とを備え、
前記サーバは、
前記端末装置から送信されたサーバ更新用のパスワード認証データH’と前記記憶手段に記憶されたパスワード認証データHを入力し、所定の計算式によって新たなパスワード認証データHを求めて前記記憶手段に記憶されているパスワード認証データHを更新する更新情報生成手段を備えたことを特徴とする請求項2に記載の認証システム。 - 端末装置とサーバ間において相互に認証を行う認証システムにおいて、記憶手段と、入力手段と、送信手段とを備える前記端末装置上のコンピュータで動作する認証プログラムであって、
ユーザ保存用の認証情報P’とRSA公開鍵(N,e)を予め前記記憶手段に記憶しておく記憶処理と、
前記記憶手段に記憶しておいた前記認証情報P’と、認証時に前記入力手段から入力されたパスワードを入力として所定の計算式により値Wを求める結合処理と、
前記値Wと、前記記憶手段に記憶しておいた前記RSA公開鍵(N,e)と、内部において発生させた乱数Tを入力として所定の計算式により値Zを求め、該値Zを前記送信手段により前記サーバへ送信するマスク演算処理と
を前記コンピュータに行わせることを特徴とする認証プログラム。 - 端末装置とサーバ間において相互に認証を行う認証システムにおいて、記憶手段と、受信手段とを備える前記サーバ上のコンピュータで動作する認証プログラムであって、
サーバ登録用のパスワード認証データHとRSA秘密鍵(N,d)を予め前記記憶手段に記憶しておく記憶処理と、
前記記憶手段に記憶しておいた前記パスワード認証データHと、前記RSA秘密鍵(N,d)と、前記受信手段により前記端末装置から受信した値Zを入力として所定の計算式により値Tを求めるマスター鍵生成処理と
を前記コンピュータに行わせることを特徴とする認証プログラム。
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)
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)
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)
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 |
-
2004
- 2004-10-07 JP JP2005514934A patent/JP4774492B2/ja not_active Expired - Fee Related
- 2004-10-07 KR KR1020067008005A patent/KR100845018B1/ko not_active IP Right Cessation
- 2004-10-07 WO PCT/JP2004/015184 patent/WO2005041474A1/ja active Application Filing
- 2004-10-07 CN CN2004800307512A patent/CN1871810B/zh not_active Expired - Fee Related
- 2004-10-07 US US10/577,111 patent/US7895436B2/en not_active Expired - Fee Related
Patent Citations (3)
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 |