JP5224481B2 - パスワード認証方法 - Google Patents
パスワード認証方法 Download PDFInfo
- Publication number
- JP5224481B2 JP5224481B2 JP2010519823A JP2010519823A JP5224481B2 JP 5224481 B2 JP5224481 B2 JP 5224481B2 JP 2010519823 A JP2010519823 A JP 2010519823A JP 2010519823 A JP2010519823 A JP 2010519823A JP 5224481 B2 JP5224481 B2 JP 5224481B2
- Authority
- JP
- Japan
- Prior art keywords
- server
- client
- authentication
- information
- mod
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 167
- 230000008569 process Effects 0.000 claims description 86
- 238000012545 processing Methods 0.000 claims description 54
- 230000004075 alteration Effects 0.000 claims description 39
- 238000012795 verification Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 19
- 230000014509 gene expression Effects 0.000 claims description 10
- 238000001514 detection method Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 76
- 238000004364 calculation method Methods 0.000 description 60
- 238000004891 communication Methods 0.000 description 27
- 230000004048 modification Effects 0.000 description 23
- 238000012986 modification Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 14
- 238000007796 conventional method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 101100289995 Caenorhabditis elegans mac-1 gene Proteins 0.000 description 3
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 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/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
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
- H04L9/0844—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
-
- 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
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Description
K=guy ……(式1)
によって計算し、この秘密Kに基づいてセッション鍵を生成する。
K=gy(u+r’) ……(式2)
により計算している。
ここで、
r’=H2(C‖S‖U‖Y)あるいはr’=1;
U=gu;
Y=Uy・r・Wy;
r=H2(C‖S‖U);
W=gH1(C‖S‖pw);
C:クライアント装置の識別子;
S:サーバ装置の識別子;
pw:ユーザが覚えているパスワード
である。
これらの認証方法において、位数qの群を(G,・)とし、その集合Gの生成元をgとし、U,W∈Gとする。また、”・”はG上の二項演算子であり、g1,g2∈Gとして、g1・g2をg1g2として表記し、g1・g1をg1 2として表記し、g1 i・g1 jをg1 i+jとして表記している。パスワードpw及びパスワード認証データWを利用することにより、KCI攻撃等に対する安全性が確保されている。
Ks=gy ……(式3)
ここで、yは前述の非特許文献1および非特許文献2の場合と同様であり、yはサーバで発生した乱数である(y∈(Z/qZ)*)。前述の場合と同様に、これらの認証方法においては、位数qの群を(G,・)とし、その集合Gの生成元をgとし、U,W∈Gとする。また、”・”はG上の二項演算子であり、g1,g2∈Gとして、g1・g2をg1g2として表記し,g1・g1をg1 2として表記し,g1 i・g1 jをg1 i+jとして表記している。
Y=Uy・Wy・r ……(式4)又は
Y=Uy・r・Wy ……(式4’)
ここで、rは関数H2()にU(あるいはUとほかの情報)を入力として求めた値であり、例えば、非特許文献1における方法と同様に、
r=H2 (C‖S‖U)
として計算することができる。ここで、Cはクライアント装置の識別子であり、Sはサーバ装置の識別子である。Wはクライアント識別子Cに対応してサーバの記憶装置に格納されるパスワード認証データ(パスワードベリファイア)であり、同様に、
W=gH1(C‖S‖pw)
などによって計算することができる。Wは予め計算しておき、サーバの記憶装置に格納しておくことができる。
KC=Y(1/b mod q) ……(式5)
ただし、
b=u+PW×r mod q(Y=Uy・Wy・rである場合) ……(式6)又は
b=u×r+PW mod q(Y=Uy・r・Wyである場合) ……(式6’)
である。ここで、PWは、ユーザが入力するパスワードpw(あるいはpwとほかの情報)を関数H1()に入力して求めた値であり、例えば、
PW=H1(C‖S‖pw)
で計算することができる。なお、pwは上記Wの計算の基礎になったパスワードと同じパスワードである。また、rは(式4)に関して説明したと同様に、関数H1()にU(あるいはUとほかの情報)を入力として求めた値であり、例えば、
r=H2(C‖S‖U)
として計算することができる。
U=gc・gPW・d
ここで、cとdは攻撃者が生成した乱数(c,d∈(Z/qZ)*)である。また、W=gPWであり、PW=H1(C‖S‖pw)である。このUを受信したサーバは以下のようにYを計算して返す。
Y=Uy・Wy・r
攻撃者がKCI攻撃を成功させるためには、Ya=Kになるようなaを探さなければならない。つまり、
(c+PW×d+PW×r)y×a=y mod q
を解かなければならない。上の式は以下のように簡単になる。
(c+PW(d+r))a=1 mod q
上の式の解は
c×a=1と(d+r)a=0
になる。ここで、攻撃者はパスワードの辞書攻撃をやらずにKCI攻撃を行うため、PWに係る項が0になる必要がある。c×a=1で、aは0ではないので、(d+r)a=0でd+r=0になるしかない。要するに、攻撃者はUを計算する時に、dとして「−r mod q」のような値を使わなければならない。ところがrはUにより決まる(一方向性関数の)ハッシュした値であるため、dを求めることはできない。言い換えると、KCI攻撃ができないということである。(式4’)についても同じように説明ができるが、ここでは省略する。
サーバが実行する処理が、
(a)上記サーバで生成した乱数y(y∈(Z/qZ)*)に基づいて、サーバ側マスター秘密Ksを、式:
Ks=gy ……(式7)
によって計算するステップと、
(b)上記クライアントで計算された第1クライアント情報Uを、第1識別情報(C,WID,id)と共に該クライアントから受信するステップと、
(c)上記受信した第1クライアント情報U及び第1識別情報を利用して、第1サーバ情報Yを、式:
Y=Uy・Wy・r ……(式8)、又は
Y=Uy・r・Wy ……(式8’)
によって計算するステップと、
(d)上記計算した第1サーバ情報Yを上記クライアントへ送信するステップと、
(e)上記サーバ側マスター秘密Ksを用いて、上記クライアントから受信したクライアント認証情報Vcを認証するステップと、
(f)上記サーバ側マスター秘密Ksを用いて、サーバ認証情報Vsを生成し、上記Vsをクライアントに送信するステップと、
を含み、
ただし、上の記載において、qは群(G,・)の位数を表し、gはその集合Gの生成元を表し、”・”は上記G上の二項演算子を表し、
式(8)及び式(8’)における記号Wはパスワードpwに関する情報を含む部分を表し、上記クライアントが生成したパスワード情報vに基づいて
W=gv ……(式9)、
又は上記クライアントが生成したパスワード情報vと上記クライアントが生成した乱数tのコミット値Tに基づいて
W=Tv=gt×v ……(式9’)
により得ることができる部分であり、該パスワード情報vは、上記パスワードpwを少なくとも入力とする関数H1()の出力から計算される値であり、×は整数上の掛け算であり、式(8)及び式(8’)における記号rは、上記クライアントが上記第1クライアント情報Uを計算するより前の時刻に知ることのできない値であると共に、上記サーバ及び上記クライアントのいずれにおいても計算可能な値を表し、
U,W,Y,T,g∈Gであり、
クライアントが実行する処理が、
(a’)上記クライアントで生成した乱数u(u∈(Z/qZ)*)に基づき、上記第1クライアント情報Uを、U=gu によって計算するステップと、
(b’)上記計算した第1クライアント情報Uを、上記第1識別情報と共に上記サーバに送信するステップと、
(c’)上記第1クライアント情報Uの送信に応じて、上記サーバから上記第1サーバ情報Yを受信するステップと、
(d’)上記 W=gv(式9)の場合に、
ブラインド値bを、上記パスワード情報v及び上記値rに基づいて、次の計算式:
b=u+v×r mod q(Y=Uy・Wy・rである場合) ……(式10)、又は
b=u×r+v mod q(Y=Uy・r・Wyである場合) ……(式10’)
によって計算するステップ、又は
上記 W=Tv=gt×v(式9’)の場合に、
上記クライアントが生成したパスワード情報vと上記クライアントが生成した乱数tに基づいて、前記ブラインド値bを、次の計算式:
b=u+t×v×r mod q(Y=Uy・Wy・rである場合)……(式11)、又は
b=u×r+t×v mod q(Y=Uy・r・Wyである場合)……(式11’)
によって計算するステップと、
(e’)受信した上記第1サーバ情報Yに基づいて、クライアント側マスター秘密KCを、
KC=Y(1/b mod q)
によって計算するステップと、
(f’)上記クライアント側マスター秘密KCを利用してクライアント認証情報Vcを生成し、上記サーバに送信するステップと
(g’)上記サーバから受信した上記サーバ認証情報Vsを、上記クライアント側マスター秘密Kcを利用して認証するステップと、
を含む。ただし、「1/b mod q」は「a×b≡1 mod q」を満たす1以上q未満の整数aを示す。
v=s+hpw mod q 又は
v=s×hpw mod q 又は
v=s(+)hpw 又は
上記パスワードpwと上記乱数sを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値と表記可能である。ただし、hpwは、上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値であり、(+)は排他的論理和である。
(a)上記クライアントが、少なくとも上記U(あるいは、上記Uと上記サーバから受信した乱数)に対して上記クライアント側改ざん検出子生成鍵を用いて改ざん検出子mac1を生成し、それを上記サーバに送信するステップと、
(b)上記サーバが、上記クライアントから受け取った改ざん検出子mac1を上記サーバ側改ざん検出子検証鍵を用いて検証し、それが検証されなかった場合に、該クライアント・サーバ間の相互認証を中断するステップと、
(c)同じく、上記サーバが、上記クライアントから受け取った改ざん検出子mac1を上記サーバ側改ざん検出子検証鍵を用いて検証し、それが検証された場合に、少なくとも上記Uと上記Yの組をログリストPs’に記録すると共に、少なくとも上記Uと上記Yに対して上記サーバ側改ざん検出子生成鍵を用いて改ざん検出子mac2を生成し、それを上記クライアントに送信するステップと、
(d)上記クライアントが、該サーバから送られてきた改ざん検出子mac2の検証に失敗した場合に、上記クライアント認証情報Vcを送信せず該クライアント・サーバ間の相互認証を中断するステップと、
(e)同じく上記クライアントが、該サーバから送られてきた改ざん検出子mac2の検証に成功した場合には、少なくとも上記Yと上記クライアント認証情報Vcに対して該クライアント側改ざん検出子生成鍵を用いて改ざん検出子mac3を生成し、その改ざん検出子を該サーバに送信すると共に、少なくとも上記Uと上記Yの組をログリストPcに記録するステップと、
(f)該サーバが、該クライアントから送られてきた改ざん検出子mac3の検証に失敗した場合に、該クライアント・サーバ間の相互認証を中断するステップと、
(g)同じく該サーバが、該クライアントから送られてきた改ざん検出子mac3の検証に成功し、かつ、該クライアントから送られてきた上記クライアント認証情報Vcの検証に失敗した場合に、少なくとも上記Uと上記Yの組をログリストPsに記録し、該クライアント・サーバ間の相互認証を中断するステップと、
(h)該クライアント・サーバ間の相互認証が正常に終了した際には、前回該クライアント・サーバ間の相互認証ステップが正常に終了した以降に該サーバと該クライアントが該クライアント・サーバ間の相互認証処理中に記録し続けたログリストPs、Pc、Ps’中の少なくともUとYの組を第三者に改ざんされない方法で比較するステップと、
を有することができる。
上記サーバ側の改ざん検出子生成鍵、
上記サーバ側の改ざん検出子検証鍵、
上記クライアント側の改ざん検出子生成鍵、
上記クライアント側の改ざん検出子検証鍵、
は全て同じ鍵とし、
上記クライアントと上記サーバが同じMAC鍵を使っても異なる改ざん検出子を生成できるように、上記クライアントと上記サーバとで、異なるMAC生成アルゴリズム、又は、異なるメッセージフォーマットを用いることとすることができる。
(a)該サーバが、該クライアント・サーバ間の相互認証ステップにより生成された上記サーバ側マスター秘密Ksに依存して生成される暗号化鍵を使って暗号化されたサーバ側データ鍵sdkを該クライアントに送信するステップと、
(b)該クライアントが、該サーバから送信された暗号化されたデータ鍵sdkを該クライアント・サーバ間の相互認証ステップにより生成された該クライアント側マスター秘密KCに依存して生成される暗号化鍵を使って復号するステップと、
(c)該クライアントが上記クライアント側データ鍵cdkと上記サーバ側データ鍵sdkからデータdkを復元するステップを持つ
こととすることができる。
(a’)該クライアントが、該クライアント・サーバ間の相互認証ステップにより生成された上記クライアント側マスター秘密Kcに依存して生成される暗号化鍵を使って暗号化されたクライアント側データ鍵cdkを該サーバに送信するステップと、
(b’)該サーバが、該クライアントから送信された暗号化されたクライアント側データ鍵cdkを該クライアント・サーバ間の相互認証ステップにより生成された該サーバ側マスター秘密Ksに依存して生成される暗号化鍵を使って復号するステップと、
(c’)該サーバが上記クライアント側データ鍵cdkと上記サーバ側データ鍵sdkからデータdkを復元するステップを持つ
こととすることができる。
dk’=cdk(+)sdk 又は
dk’=cdk+sdk mod q 又は
dk’=cdk×sdk mod q
とし、
dk=dk’ 又は
dk=(dk’)(+)hpw 又は
dk=(dk’)+hpw mod q 又は
dk=(dk’)×hpw mod q 又は
少なくともdk’とhpwを入力とする関数H3()の出力から計算できる値
により復元できることとすることができる。ここで、(dk’)はdk’の値を最初に計算するというステップを示しており、hpw は、上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値であり、(+)は排他的論理和である。
その相互認証で利用した該サーバの該記憶装置に記録されている情報である、上記第1識別情報、上記部分W又は上記パスワード情報v、クライアントが生成した乱数tのコミット値T、の全てあるいは一部、並びに、
該クライアントの該記憶装置に記録されている情報である、上記乱数t、上記第1識別情報、の全てあるいは一部を、
該クライアントと該サーバとの間でやりとりされた値、又は、該認証ステップで共有された上記マスター秘密KC(クライアント側)Ks(サーバ側)、又は上記マスター秘密と上記該サーバと該クライアントの間でやりとりされた値の両方を使って更新するステップを有することとすることができる。
「v=s+hpw mod q」または「v=s×hpw mod q」
により計算することができ、
上記更新するステップにおいて、上記サーバは、
「W’=W・gud」または「W’=Wud」
と表記されうるように上記部分WをW’に更新し、上記クライアントは、
「s’=s+ud mod q」または「s’=s×ud mod q」
と表記されうるように上記乱数sをs’に更新することとすることができる。
「v=s+hpw mod q」
により計算することができ、
上記更新するステップにおいて、上記サーバは、
「v’=v+ud mod q」
と表記されうるように上記パスワード情報vをv’に更新し、上記クライアントは、
「s’=s+ud mod q」
と表記されうるように上記乱数sをs’に更新することとすることができる。
v=s(+)hpw
により計算することができ、
上記更新するステップにおいて、上記サーバは、
v’=v(+)ud
と表記されうるように上記パスワード情報vをv’に更新し、上記クライアントは、
s’=s(+)ud
と表記されうるように上記乱数sをs’に更新することとすることができる。
v=s×hpw mod q
により計算することができ、
上記更新するステップにおいて、上記サーバは、
v’=v×ud mod q
と表記されうるように上記パスワード情報vをv’に更新し、上記クライアントは、
s’=s×ud mod q
と表記されうるように上記乱数sをs’に更新することとすることができる。なお、上記において、hpw は上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力であり、ud は上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値である。
その相互認証で利用した該サーバの該記憶装置に記録されている情報である、該サーバ側の改ざん検出子生成鍵、該サーバ側の改ざん検出子検証鍵の全てあるいは一部、及び、該クライアントの該記憶装置に記録されている情報である、上記クライアント側の改ざん検出子生成鍵、上記クライアント側の改ざん検出子検証鍵の全てあるいは一部を、該クライアントと該サーバとの間でやりとりされた値、又は、該認証処理で共有された上記マスター秘密Kc(クライアント側)Ks(サーバ側)、又は上記マスター秘密と上記該サーバと該クライアントの間でやりとりされた値の両方を使って更新するステップを有し、
上記サーバと上記クライアントが同じ上記MAC鍵MacKを用いる場合、上記サーバと上記クライアントがそれぞれ上記MAC鍵MacKをMacK’に更新するステップは、
MacK’=MacK(+)ud 又は
MacK’=MacK+ud mod q 又は
MacK’=MacK×ud mod q 又は
と表記可能である。ただし、ud は上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値である。
その相互認証で利用した該サーバの該記憶装置に記録されている情報である上記サーバ側データ鍵sdk及び、
該クライアントの該記憶装置に記録されている情報である上記クライアント側データ鍵cdkを、
該クライアントと該サーバとの間でやりとりされた値、又は、該認証処理で共有された上記マスター秘密Kc(クライアント側)Ks(サーバ側)、又は上記マスター秘密と上記該サーバと該クライアントの間でやりとりされた値の両方を使って更新するステップを有し、
上記クライアントが上記クライアント側データ鍵cdkを持ち、上記サーバが上記サーバ側データ鍵sdkを持つ場合、上記サーバと上記クライアントがそれぞれcdkとsdkをcdk’とsdk’に更新するステップは、
上記dk’が
dk’=cdk(+)sdk
と表記可能な場合、
cdk’=cdk(+)ud
sdk’=sdk(+)ud
と表記可能であり、
上記dk’が
dk’=cdk+sdk mod q
と表記可能な場合、
cdk’=cdk+ud mod q
sdk’=sdk−ud mod q
又は
cdk’=cdk−ud mod q
sdk’=sdk+ud mod q
と表記可能であり、
上記dk’が
dk’=cdk×sdk mod q
と表記可能な場合、
cdk’=cdk×ud mod q
sdk’=sdk/ud mod q
又は
cdk’=cdk/ud mod q
sdk’=sdk×ud mod q
と表記可能である。ただし、ud は上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値であり、−は整数上の引き算、「a=c/b mod q」はcが0でない場合「a×b≡c mod q」を満たす1以上q未満の整数aを示す。
図1は、実施例1として以下に説明する、パスワードのみを用いて認証を行う認証システム100の全体構成を説明するための図である。認証システム100は、ユーザの端末装置300とサーバの認証装置400とで構成される。ユーザの端末装置300は、ユーザから入力されたパスワードに基づいて、ある特徴的な演算を行う。サーバの認証装置400は、そのデータベース402にユーザのIDとパスワード認証データとを保持している。認証システム100において、ユーザの端末装置300は、サーバの認証装置400とインターネットのようなパブリックネットワークを通じてお互いに相互認証し、その相互認証が成功した場合のみ、お互いに同じセッション鍵を確保する。共有されたセッション鍵はユーザの端末装置300とサーバの認証装置400が後で行う通信内容を保護するために使われる。
次に、図2を参照して、認証システム100における初期化処理について説明する。この初期化処理において、ユーザの端末装置300は、ユーザから入力されたパスワードに基づいて、サーバの認証装置400と安全な通信路(例えば、直接に登録したり、郵便で送付したり、あるいは電話で知らせるなど)を用いて初期化処理を行い、サーバの認証装置400は内部にあるメモリあるいはデータベース402へユーザのIDとパスワード認証データを保存する。
図2に描かれるように、ユーザの端末装置300は、パスワード認証データ生成器302を有している。端末装置300における初期化処理において、パスワード認証データ生成器302は、ユーザから入力されたパスワードpwを入力として、パスワード認証データWを計算式:
W=gH1(C‖S‖pw)
により計算して出力する。その後端末装置300は、ユーザのIDとパスワード認証データ「C,W」とをサーバの認証装置400へ送信する。
図2に示すように、サーバの認証装置400における初期化処理において、認証装置400は、ユーザの端末装置300から受信したユーザのIDとパスワード認証データ「C,W」を、認証装置400の内部にあるメモリあるいはデータベース402へ格納する。
次に、図3および図4を参照して、パスワードのみを用いた認証システム100におけるプロトコル実行処理について説明する。このプロトコル実行処理は、図2を用いて説明した初期化処理が完了した後に行われる。当該プロトコル実行処理において、ユーザの端末装置300は、ユーザから入力されたパスワードに基づいてある特徴的な演算を行い、サーバの認証装置400とインターネットのようなパブリックネットワークを通じてお互いに相互認証する。前述のようにサーバの認証装置400は、ユーザのID及びパスワード認証データをデータベース402などに保持している。ユーザの端末装置300とサーバの認証装置400は、相互認証が成功した時のみ、互いに同じセッション鍵を確保する。
図3は、認証システム100のプロトコル実行を行うユーザの端末装置300の機能構成及び動作を説明するためのブロック図である。まず、この図を参照して、端末装置300における認証システム100のプロトコル実行処理について説明する。
U=gu
により計算して出力する。ブラインド生成器308は、ユーザから入力されたパスワードpwと乱数発生器306によりランダムに発生させた乱数uと公開値演算器304により出力された公開値Uとを入力として、ブラインドbを計算式:
b=u+H1(C‖S‖pw)×r mod q
により計算して出力する。ここで、
r=H2(C‖S‖U)
である。逆ブラインド演算器310は、ブラインド生成器308により出力されたブラインドbを入力として、逆ブラインドb−1を計算式:
b−1 mod q
により計算して出力する。ユーザの端末装置300は、図示しない通信処理部を介して、サーバの認証装置400に対して、ユーザのIDであるCと公開値演算器304により出力された公開値Uを送信する。
K=Y(1/b mod q)
により計算して出力する。
Vc=H(1‖C‖S‖U‖Y‖K)
により計算、入力メッセージInputMsgとともに出力する。ここで、入力メッセージは
InputMsg=C‖S‖U‖Y‖K
である。ここで、ハッシュ関数Hの代わりにMAC(Message Authentication Code)を使ってもよい。ユーザの端末装置300は、図示しない通信処理部を介して、認証子生成器314により出力された認証子Vcをサーバの認証装置400へ送信する。
SK=H(3‖InputMsg)
により計算して出力する。
図4は、認証システム100のプロトコル実行を行うサーバの認証装置400の機能構成及び動作を説明するためのブロック図である。次に、この図を参照して、サーバの認証装置400における認証システム100のプロトコル実行処理について説明する。
K=gy
により計算して出力する。
Wy・r
により計算して出力する。ここで、
r=H2(C‖S‖U)
である。別の方法としてrをサーバが生成してからクライアントに送ってもよい。第2ブラインド生成器405は、ユーザの端末装置300から受信した公開値Uと乱数発生器406によりランダムに発生させた乱数yとを入力として、第2ブラインドUyを計算式:
Uy
により計算して出力する。
Y=Uy・Wy・r
により計算して出力する。サーバの認証装置400は、図示しない通信処理部を介して、ユーザの端末装置300に対して、サーバのIDであるSとマスク演算器408により出力された値Yを送信する。
InputMsg=C‖S‖U‖Y‖K
である。
Vs=H(2‖InputMsg)
により計算して出力する。サーバの認証装置400は、図示しない通信処理部を介して、ユーザの端末装置300に対して、認証子生成器420により出力された認証子Vsを送信する。セッション鍵生成器422は、入力メッセージ集合器414から入力された入力メッセージInputMsgを入力として、セッション鍵SKを計算式:
SK=H(3‖InputMsg)
により計算して出力する。
認証システム100において、サーバの認証装置400の第1ブラインド生成器404及び第2ブラインド生成器405は、第1ブラインド及び第2ブラインドをWy・r,Uyによって計算していた。しかしながら、これらは次のように計算してもよい。
第1ブラインド:Wy
第2ブラインド:Uy・r (ただしr=H2(C‖S‖U))
すなわち、はじめの例ではrがパスワード認証データWに関するべき乗計算に用いられていたのに対し、この変形例ではrが公開値Uに関するべき乗計算に用いられている。
Y=Uy・r・Wy
b=u×r+H1(C‖S‖pw) mod q(ただしr=H2(C‖S‖U))
すなわち、はじめの例ではrがパスワードpwに関する項に乗じられていたのに対し、この変形例ではrが乱数uに乗じられている。
K=gy
で行うことができるため、guyのべき乗計算が必要な従来技術よりも、サーバの計算量を大きく抑えることができる。また、クライアントにおけるマスター秘密の計算も、式:
K=Y(1/b mod q)
で行うことができるため、guyのべき乗計算が必要な従来技術よりも、やはり計算量を抑えることができる。これらの利点は上述の変形例においても失われない。パスワード及びパスワード認証データWを用いたことによる安全性と相まって、認証システム100は、KCI攻撃などパブリックネットワーク上の様々な攻撃に対して安全であり、且つクライアント及びサーバの計算量を従来方式に比べて減少させることに成功している。
次に、実施例1で紹介したパスワードのみを用いた認証方式を、二要素認証方式に応用した例を説明する。図5は、この応用例を説明するために例示として用いる認証システム500の全体構成を描いている。
初めに、図6を参照して、認証システム500における初期化処理について説明する。図6は、認証システム500の初期化処理に係る、ユーザの端末装置700とサーバの認証装置800の機能構成及び動作を説明するためのブロック図である。認証システム500の初期化処理において、ユーザの端末装置700は、ユーザから入力されたパスワードに基づいて、サーバの認証装置800と安全な通信路(例えば、直接に登録したり、郵便で送付したり、あるいは電話で知らせるなど)を用いて初期化処理を行い、ユーザの端末装置700は内部にあるメモリ702へ記録情報としてCS1を保存し、サーバの認証装置800は内部にあるメモリあるいはデータベース802へ記録情報としてSS1を保存する。
図6に示すように、ユーザの端末装置700における初期化処理では、結合器704は、ユーザから入力されたパスワードpwと乱数発生器706によりランダムに発生させた乱数si1(si1∈(Z/qZ)*)を入力として、結合値vi1を計算式:
vi1=si1+H1(C‖Si‖pw) mod q
により計算して出力する。ここで、Siはi番目のサーバを表す。二要素認証データ生成器708は、結合器704により出力された結合値vi1を入力として、認証データWi1を計算式:
Wi1=gvi1
により計算して出力し、識別子WIDと認証データ「WID,Wi1」をサーバの認証装置800へ送信する。ユーザの端末装置700は、サーバのIDと識別子WIDと乱数発生器706により発生させた乱数si1を、ユーザの端末装置700の内部にあるメモリ702へ記録情報「CS1」として「Si,WID,si1」を保存する。
図6に示すように、サーバの認証装置800における初期化処理において、サーバの認証装置800は、ユーザの端末装置700から受信した識別子WIDと認証データ「WID,Wi1」を、サーバの認証装置800の内部にあるメモリあるいはデータベース802へ記録情報「SS1」として「WID,Wi1」を保存する。
次に、図7および図8を参照して、認証システム500におけるj番目プロトコル実行処理について説明する。図7および図8は、認証システム500のj番目プロトコル実行を行う、ユーザの端末装置700とサーバの認証装置800の機能構成及び動作を、それぞれ説明するためのブロック図である。図7および図8において、jはj≧1になるような整数である。認証システム500のj番目プロトコル実行において、ユーザの端末装置700は、ユーザから入力されたパスワードpwとメモリ702に保持している記録情報CSjとに基づいて、ある特徴的な演算を行う。そして、記録情報SSjをデータベースなどに保持しているサーバの認証装置800と、インターネットのようなパブリックネットワークを通じてお互いに相互認証し、その相互認証が成功した時のみ、お互いに同じセッション鍵を確保する。以下に説明されるj番目プロトコル実行は、認証システム500の初期化が完了した後(j=1の時)、あるいは認証システム500のj−1番目プロトコル実行が終了した後(すなわち、CSj=(Si,WID,sij)とSSj=(WID,Wij)の時)に、ユーザの端末装置700及びサーバの認証装置800によって実行される。
まず、図7を参照して、ユーザの端末装置700における認証システム500のj番目プロトコル実行処理について説明する。前述した認証システム500の初期化処理の後、認証システム500のj番目プロトコル実行の前には、ユーザの端末装置700は、記録情報「CSj」として「Si,WID,sij」を内蔵するメモリ702に保持している。
vij=sij+H1(C‖Si‖pw) mod q
により計算して出力する。公開値演算器712は、乱数発生器706によりランダムに発生させた乱数u(u∈(Z/qZ)*)を入力として、公開値Uを計算式:
U=gu
により計算して出力する。
b=u+vij×r mod q
により計算して出力する。ここで、rは:
r=H2(C‖Si‖U)
である。逆ブラインド演算器716は、ブラインド生成器714により出力されたブラインドbを入力として、逆ブラインドb−1を計算式:
b−1 mod q
により計算して出力する。
K=Y(1/b mod q)
により計算して出力する。
Vc=H(1‖WID‖Si‖U‖Y‖K)
により計算して入力メッセージInputMsgとともに出力する。ここで、入力メッセージは
InputMsg=WID‖Si‖U‖Y‖K
である。ここで、ハッシュ関数Hの代わりにMAC(Message Authentication Code)を使ってもよい。ユーザの端末装置700は、図示しない通信処理部を介して、認証子生成器720により出力された認証子Vcをサーバの認証装置800へ送信する。
SKij=H(3‖InputMsg)
により計算して出力する。秘密値更新器728は、メモリ702から読み出した識別子WIDと乱数sijと認証子生成器720から入力された入力メッセージInputMsgを入力として、j+1番目の識別子WIDと乱数si(j+1)を計算式:
WID=H1(WID‖InputMsg)
si(j+1)=sij+H1(InputMsg) mod q
により計算して出力する。ユーザの端末装置700は、メモリ702に保持している現在の識別子WIDと乱数との組である「WID,sij」を、秘密値更新器728により出力された次の識別子WIDと乱数の組である「WID,si(j+1)」に書き換える。
dk’=cdk(+)sdk 又は
dk’=cdk+sdk mod q 又は
dk’=cdk×sdk mod q
とし、
dk=dk’ 又は
dk=(dk’)(+)hpw 又は
dk=(dk’)+hpw mod q 又は
dk=(dk’)×hpw mod q 又は
少なくともdk’とhpwを入力とする関数H3()の出力から計算できる値
により復元できる。
ここで、(dk’)はdk’の値を最初に計算するというステップを示しており、
hpwは、上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値であり、(+)は排他的論理和である。
次に、図8を参照して、サーバの認証装置800における認証システム500のj番目プロトコル実行処理について説明する。前述した認証システム500の初期化処理の後、認証システム500のj番目プロトコル実行の前には、サーバの認証装置800は、記録情報「SSj」として「WID,Wij」を格納装置の内部にあるメモリあるいはデータベース802に保持している。
K=gy
により計算して出力する。
Wij y・r
により計算して出力する。ここで、rは
r=H2(C‖Si‖U)
である。第2ブラインド生成器814は、ユーザの端末装置700から受信した公開値Uと乱数発生器810によりランダムに発生させた乱数yとを入力として、第2ブラインドUyを計算式:
Uy
により計算して出力する。マスク演算器816は、第1ブラインド生成器812により出力された第1ブラインドWij y・rと第2ブラインド生成器814により出力された第2ブラインドUyとを入力として、値Yを
Y=Uy・Wij y・r
により計算して出力する。サーバの認証装置800は、図示しない通信処理部を介して、ユーザの端末装置700に対して、サーバのIDであるSiとマスク演算器816により出力された値Yを送信する。
InputMsg=WID‖Si‖U‖Y‖K
である。しばらくすると、サーバの認証装置800は、ユーザの端末装置700からメッセージ「Vc」を受信する。
VSi=H(2‖InputMsg)
により計算して出力する。サーバの認証装置800は、図示しない通信処理部を介して、ユーザの端末装置700に対して、認証子生成器824により出力された認証子VSiを送信する。
SKij=H(3‖InputMsg)
により計算して出力する。秘密値更新器828は、データベース802から読み出した識別子WIDと認証データWijと入力メッセージ集合器818から入力された入力メッセージInputMsgを入力として、j+1番目の識別子WIDと認証データWi(j+1)を計算式:
WID=H1(WID‖InputMsg)
Wi(j+1)=Wij・gH1(InputMsg)
により計算して出力する。サーバの認証装置800は、データベース802に保持している現在の識別子WIDと認証データの組である「WID,Wij」を、秘密値更新器828により出力された次の識別子WIDと認証データの組である「WID,Wi(j+1)」に書き換える。
実施例1に係る認証システム100の場合と同様に、実施例2に係る認証システム500においても、サーバの認証装置800のマスク演算器816における値Yの計算方法を以下のように変形することができる。この変形においては、第1ブラインド及び第2ブラインドが次のように計算される。
第1ブラインド:Wij y
第2ブラインド:Uy・r(ただしr=H2(C‖Si‖U))
すなわち、はじめの例ではrがパスワード認証データWijに関するべき乗計算に用いられていたのに対し、この変形例ではrが公開値Uに関するべき乗計算に用いられている。そして、マスク演算器816で得られる値Yは、次のように求められる。
Y=Uy・r・Wij y
b=u×r+vij mod q (ただしr=H2(C‖Si‖U))
すなわち、はじめの例ではrが結合値vijに関する項に乗じられていたのに対し、この変形例ではrが乱数uに乗じられる。
実施例2に係る認証システム500を次のように変形することにより、攻撃者のパスワードオンライン攻撃を検出する機能を付加することができる。
K=gy
で行うことができるため、guyのべき乗計算が必要な従来技術よりも、サーバの計算量を大きく抑えることができる。また、クライアントにおけるマスター秘密の計算も、式:
K=Y (1/b mod q)
で行うことができるため、guyのべき乗計算が必要な従来技術よりも、やはり計算量を抑えることができる。これらの利点は上述の変形例においても失われない。パスワード及びパスワード認証データWに加えて二要素認証方式を用いたことによる安全性と相まって、認証システム500は、KCI攻撃を含めてパブリックネットワーク上の様々な攻撃に対して非常に高度の安全性を提供することができ、且つクライアント及びサーバの計算量を従来方式に比べて減少させることに成功している。
次に、実施例1で紹介したパスワードのみを用いた認証方式を、二要素認証方式に応用した別の例を説明する。図9は、この応用例を説明するために例示として用いる認証システム500’の全体構成を描いている。
の記録情報を次のセッションのために更新していく。それにより、サーバの認証装置1000は、ユーザの認証データに対してパスワードを全数探索することができなくなり、ユーザの端末装置900は記録情報が漏洩したとしても安全性が落ちることがない。
初めに図10を参照して、認証システム500’における初期化処理について説明する。図10は、認証システム500’の初期化処理に係る、ユーザの端末装置900とサーバの認証装置1000の機能構成及び動作を説明するためのブロック図である。認証システム500’の初期化処理において、ユーザの端末装置900は、ユーザから入力されたパスワードに基づいて、サーバの認証装置1000と安全な通信路(例えば、直接に登録したり、郵便で送付したり、あるいは電話で知らせるなど)を用いて初期化処理を行い、ユーザの端末装置900は内部にあるメモリ902へ記録情報としてCS1を保存し、サーバの認証装置1000は内部にあるメモリあるいはデータベース1002へ記録情報としてSS1を保存する。
図10に示すように、ユーザの端末装置900における初期化処理では、結合器904は、ユーザから入力されたパスワードpwと乱数発生器906によりランダムに発生させた乱数si1(si1∈(Z/qZ)*)を入力として、結合値vi1を計算式:
vi1=si1+H1(C‖Si‖pw) mod q
により計算して出力する。ここで、Siはi番目のサーバを表す。公開値演算器912は、乱数発生器906によりランダムに発生させた乱数t(t∈(Z/qZ)*)を入力として、公開値Tを計算式:
T=gt
により計算して出力し、識別子WIDと認証データと公開値「WID,vi1,T」をサーバの認証装置1000へ送信する。ユーザの端末装置900は、サーバのIDと識別子WIDと乱数発生器906により発生させた乱数si1とtを、ユーザの端末装置900の内部にあるメモリ902へ記録情報「CS1」として「Si,WID,si1,t」を保存する。
図10に示すように、サーバの認証装置1000における初期化処理において、サーバの認証装置1000は、ユーザの端末装置900から受信した識別子WIDと認証データと公開値「WID,vi1,T」を、サーバの認証装置1000の内部にあるメモリあるいはデータベース1002へ記録情報「SS1」として「WID,vi1,T」を保存する。
次に、図11および図12を参照して、認証システム500’におけるj番目プロトコル実行処理について説明する。図11および図12は、認証システム500’のj番目プロトコル実行を行う、ユーザの端末装置900とサーバの認証装置1000の機能構成及び動作を、それぞれ説明するためのブロック図である。図11および図12において、jはj≧1になるような整数である。認証システム500’のj番目プロトコル実行において、ユーザの端末装置900は、ユーザから入力されたパスワードpwとメモリ902に保持している記録情報CSjとに基づいて、ある特徴的な演算を行う。そして、記録情報SSjをデータベースなどに保持しているサーバの認証装置1000と、インターネットのようなパブリックネットワークを通じてお互いに相互認証し、その相互認証が成功した時のみ、お互いに同じセッション鍵を確保する。以下に説明されるj番目プロトコル実行は、認証システム500’の初期化が完了した後(j=1の時)、あるいは認証システム500’のj−1番目プロトコル実行が終了した後(すなわち、CSj=(Si,WID,sij,t)とSSj=(WID,vij,T)の時)に、ユーザの端末装置900及びサーバの認証装置1000によって実行される。
まず、図11を参照して、ユーザの端末装置900における認証システム500’のj番目プロトコル実行処理について説明する。前述した認証システム500’の初期化処理の後、認証システム500’のj番目プロトコル実行に先だって、ユーザの端末装置900は、記録情報「CSj」として「Si,WID,sij,t」を内蔵するメモリ902に予め保持している。
vij=sij+H1(C‖Si‖pw) mod q
により計算して出力する。公開値演算器912は、乱数発生器906によりランダムに発生させた乱数u(u∈(Z/qZ)*)を入力として、公開値Uを計算式:
U=gu
により計算して出力する。
b=u+t×vij×r mod q
により計算して出力する。ここで、rは:
r=H2(C‖Si‖U)
である。逆ブラインド演算器916は、ブラインド生成器914により出力されたブラインドbを入力として、逆ブラインドb−1を計算式:
b−1 mod q
により計算して出力する。
K=Y(1/b mod q)
により計算して出力する。
Vc=H(1‖WID‖Si‖U‖Y‖vij‖K)
により計算して入力メッセージInputMsgとともに出力する。ここで、入力メッセージは
InputMsg=WID‖Si‖U‖Y‖vij‖K
である。ここで、ハッシュ関数Hの代わりにMAC(Message Authentication Code)を使ってもよい。ユーザの端末装置900は、図示しない通信処理部を介して、認証子生成器920により出力された認証子Vcをサーバの認証装置1000へ送信する。
SKij=H(3‖InputMsg)
により計算して出力する。秘密値更新器928は、メモリ902から読み出した識別子WIDと乱数sijと認証子生成器920から入力された入力メッセージInputMsgを入力として、j+1番目の識別子WIDと乱数si(j+1)を計算式:
WID=H1(WID‖InputMsg)
si(j+1)=sij+H1(InputMsg) mod q
により計算して出力する。ユーザの端末装置900は、メモリ902に保持している現在の識別子WIDと乱数との組である「WID,sij」を、秘密値更新器928により出力された次の識別子WIDと乱数の組である「WID,si(j+1)」に書き換える。
次に、図12を参照して、サーバの認証装置1000における認証システム500’のj番目プロトコル実行処理について説明する。前述した認証システム500’の初期化処理の後、認証システム500’のj番目プロトコル実行の前には、サーバの認証装置1000は、記録情報「SSj」として「WID,vij,T」を格納装置の内部にあるメモリあるいはデータベース1002に保持している。
K=gy
により計算して出力する。
Ty・vij・r
により計算して出力する。ここで、rは
r=H2(C‖Si‖U)
である。第2ブラインド生成器1014は、ユーザの端末装置900から受信した公開値Uと乱数発生器1010によりランダムに発生させた乱数yとを入力として、第2ブラインドUyを計算式:
Uy
により計算して出力する。マスク演算器1016は、第1ブラインド生成器1012により出力された第1ブラインドTy・vij・rと第2ブラインド生成器1014により出力された第2ブラインドUyとを入力として、値Yを
Y=Uy・Ty・vij・r
により計算して出力する。サーバの認証装置1000は、図示しない通信処理部を介して、ユーザの端末装置900に対して、サーバのIDであるSiとマスク演算器1016により出力された値Yを送信する。
InputMsg=WID‖Si‖U‖Y‖vij‖K
である。しばらくすると、サーバの認証装置1000は、ユーザの端末装置900からメッセージ「Vc」を受信する。
VSi=H(2‖InputMsg)
により計算して出力する。サーバの認証装置1000は、図示しない通信処理部を介して、ユーザの端末装置900に対して、認証子生成器1024により出力された認証子VSiを送信する。
SKij=H(3‖InputMsg)
により計算して出力する。
秘密値更新器1028は、データベース1002から読み出した識別子WIDと認証データvijと入力メッセージ集合器1018から入力された入力メッセージInputMsgを入力として、j+1番目の識別子WIDと認証データvi(j+1)を計算式:
WID=H1(WID‖InputMsg)
vi(j+1)=vij+H1(InputMsg) mod q
により計算して出力する。サーバの認証装置1000は、データベース1002に保持している現在の識別子WIDと認証データの組である「WID,vij」を、秘密値更新器1028により出力された次の識別子WIDと認証データの組である「WID,vi(j+1)」に書き換える。
実施例1に係る認証システム100の場合と同様に、実施例3に係る認証システム500’においても、サーバの認証装置1000のマスク演算器1016における値Yの計算方法を以下のように変形することができる。この変形においては、第1ブラインド及び第2ブラインドが次のように計算される。
第1ブラインド:Ty・vij
第2ブラインド:Uy・r (ただしr=H2(C‖Si‖U))
Y=Uy・r・Ty・vij
b=u×r+t×vij mod q (ただしr=H2(C‖Si‖U))
すなわち、はじめの例ではrが結合値vijに関する項に乗じられていたのに対し、この変形例ではrが乱数uに乗じられる。
次に、実施例3に係る認証システム500’において、サーバの認証装置1000のマスク演算器1016における値Yの計算方法を以下のように変形することができる。この変形においては、第1ブラインド及び第2ブラインドが次のように計算される。
第1ブラインド:Ty・r (ただしr=H2(C‖Si‖U‖vij))
第2ブラインド:Uy
Y=Uy・Ty・r
b=u+t×r mod q (ただしr=H2(C‖Si‖U‖vij))
すなわち、はじめの例ではrがr=H2(C‖Si‖U)で計算されていたのに対し、この変形例ではrがr=H2(C‖Si‖U‖vij)で計算されている。
次に、実施例3に係る認証システム500’において、攻撃者のパスワードオンライン攻撃を検出する機能について説明する。
次に、実施例1で紹介したパスワードのみを用いた認証方式を、二要素認証方式に応用した、更に別の例を説明する。図13は、この応用例を説明するために例示として用いる認証システム500”の全体構成を描いている。
初めに図14を参照して、認証システム500”における初期化処理について説明する。図14は、認証システム500”の初期化処理に係る、ユーザの端末装置1100とサーバの認証装置1200の機能構成及び動作を説明するためのブロック図である。認証システム500”の初期化処理において、ユーザの端末装置1100は、ユーザから入力されたパスワードに基づいて、サーバの認証装置1200と安全な通信路(例えば、直接に登録したり、郵便で送付したり、あるいは電話で知らせるなど)を用いて初期化処理を行い、ユーザの端末装置1100は内部にあるメモリ1102へ記録情報としてCS1を保存し、サーバの認証装置1200は内部にあるメモリあるいはデータベース1202へ記録情報としてSS1を保存する。
図14に示すように、ユーザの端末装置1100における初期化処理では、結合器1104は、ユーザから入力されたパスワードpwと乱数発生器1106によりランダムに発生させた乱数si1(si1∈(Z/qZ)*)を入力として、結合値vi1を計算式:
vi1=si1+H1(C‖Si‖pw) mod q
により計算して出力する。ここで、Siはi番目のサーバを表す。HID生成器1107は、ID用乱数発生器1105によりランダムに発生させたID値idi1(idi1∈{0,1}k)を入力として、HID値hidi1を計算式:
hidi1=H(4‖idi1)
により計算して出力し、HID値と認証データ「hidi1,vi1」をサーバの認証装置1200へ送信する。ユーザの端末装置1100は、サーバのIDとID用乱数発生器1105により発生させたID値と乱数発生器1106により発生させた乱数si1を、ユーザの端末装置1100の内部にあるメモリ1102へ記録情報「CS1」として「Si,idi1,si1」を保存する。
図14に示すように、サーバの認証装置1200における初期化処理において、サーバの認証装置1200は、ユーザの端末装置1100から受信したHID値と認証データ「hidi1,vi1」を、サーバの認証装置1200の内部にあるメモリあるいはデータベース1202へ記録情報「SS1」として「hidi1,vi1」を保存する。
次に、図15および図16を参照して、認証システム500”におけるj番目プロトコル実行処理について説明する。図15および図16は、認証システム500”のj番目プロトコル実行を行う、ユーザの端末装置1100とサーバの認証装置1200の機能構成及び動作を、それぞれ説明するためのブロック図である。図15および図16において、jはj≧1になるような整数である。認証システム500”のj番目プロトコル実行において、ユーザの端末装置1100は、ユーザから入力されたパスワードpwとメモリ1102に保持している記録情報CSjとに基づいて、ある特徴的な演算を行う。そして、記録情報SSjをデータベースなどに保持しているサーバの認証装置1200と、インターネットのようなパブリックネットワークを通じてお互いに相互認証し、その相互認証が成功した時のみ、お互いに同じセッション鍵を確保する。以下に説明されるj番目プロトコル実行は、認証システム500”の初期化が完了した後(j=1の時)、あるいは認証システム500”のj−1番目プロトコル実行が終了した後(すなわち、CSj=(Si,idij,sij)とSSj=(hidij,vij)の時)に、ユーザの端末装置1100及びサーバの認証装置1200によって実行される。
まず、図15を参照して、ユーザの端末装置1100における認証システム500”のj番目プロトコル実行処理について説明する。前述した認証システム500”の初期化処理の後、認証システム500”のj番目プロトコル実行の前には、ユーザの端末装置1100は、記録情報「CSj」として「Si,idij,sij」を内蔵するメモリ1102に保持している。
vij=sij+H1(C‖Si‖pw) mod q
により計算して出力する。公開値演算器1112は、乱数発生器1106によりランダムに発生させた乱数u(u∈(Z/qZ)*)を入力として、公開値Uを計算式:
U=gu
により計算して出力する。HID生成器1107は、メモリ1102から読み出したID値idijを入力として、HID値を計算式:
hidij=H(4‖idij)
により計算して出力する。
b=u+vij×r mod q
により計算して出力する。ここで、rは:
r=H2(hidij‖Si‖U)
である。逆ブラインド演算器1116は、ブラインド生成器1114により出力されたブラインドbを入力として、逆ブラインドb−1を計算式:
b−1 mod q
により計算して出力する。
K=Y(1/b mod q)
により計算して出力する。
Vc=H(1‖hidij‖Si‖U‖Y‖vij‖K)
により計算して入力メッセージInputMsgとともに出力する。ここで、入力メッセージは
InputMsg=hidij‖Si‖U‖Y‖vij‖K
である。ここで、ハッシュ関数Hの代わりにMAC(Message Authentication Code)を使ってもよい。ユーザの端末装置1100は、図示しない通信処理部を介して、認証子生成器1120により出力された認証子Vcをサーバの認証装置1200へ送信する。
SKij=H(3‖InputMsg)
により計算して出力する。秘密値更新器1128は、メモリ1102から読み出した乱数sijと認証子生成器1120から入力された入力メッセージInputMsgを入力として、j+1番目の乱数si(j+1)を計算式:
si(j+1)=sij+H1(InputMsg) mod q
により計算して出力する。ユーザの端末装置1100は、メモリ1102に保持している現在の乱数である「sij」を、秘密値更新器1128により出力された次の乱数である「si(j+1)」に書き換える。
次に、図16を参照して、サーバの認証装置1200における認証システム500”のj番目プロトコル実行処理について説明する。前述した認証システム500”の初期化処理の後、認証システム500”のj番目プロトコル実行の前には、サーバの認証装置1200は、記録情報「SSj」として「hidij,vij」を格納装置の内部にあるメモリあるいはデータベース1202に保持している。
hidij=H(4‖idij)
により計算して出力する。HID判断部1204は、データベースから読み出したHID値hidijを、HID生成器1207により出力されたHID値と比較して一致しない場合、エラーメッセージ発生器1206に対して、一致しないことを通知する。これを受けて、エラーメッセージ発生器1206はエラーメッセージを生成して処理を中断する。一方、HID判断部1204の判断処理において、データベースから読み出したHID値hidijをHID生成器1207により出力されたHID値hidijと比較して、一致した場合には、続けて次の処理を行う。
K=gy
により計算して出力する。
gy・vij・r
により計算して出力する。ここで、rは
r=H2(hidij‖Si‖U)
である。第2ブラインド生成器1214は、ユーザの端末装置1100から受信した公開値Uと乱数発生器1210によりランダムに発生させた乱数yとを入力として、第2ブラインドUyを計算式:
Uy
により計算して出力する。マスク演算器1216は、第1ブラインド生成器1212により出力された第1ブラインドgy・vij・rと第2ブラインド生成器1214により出力された第2ブラインドUyとを入力として、値Yを
Y=Uy・gy・vij・r
により計算して出力する。サーバの認証装置1200は、図示しない通信処理部を介して、ユーザの端末装置1100に対して、サーバのIDであるSiとマスク演算器1216により出力された値Yを送信する。
InputMsg=hidij‖Si‖U‖Y‖vij‖K
である。しばらくすると、サーバの認証装置1200は、ユーザの端末装置1100からメッセージ「Vc」を受信する。
VSi=H(2‖InputMsg)
により計算して出力する。サーバの認証装置1200は、図示しない通信処理部を介して、ユーザの端末装置1100に対して、認証子生成器1224により出力された認証子VSiを送信する。
SKij=H(3‖InputMsg)
により計算して出力する。秘密値更新器1228は、データベース1202から読み出した認証データvijと入力メッセージ集合器1218から入力された入力メッセージInputMsgを入力として、j+1番目の認証データvi(j+1)を計算式:
vi(j+1)=vij+H1(InputMsg) mod q
により計算して出力する。サーバの認証装置1200は、データベース1202に保持している現在の認証データである「vij」を、秘密値更新器1228により出力された次の認証データである「vi(j+1)」に書き換える。
次に図17を参照して、認証システム500”におけるj番目プロトコル終了後の処理について説明する。図17は、認証システム500”のj番目プロトコル終了後の処理に係る、ユーザの端末装置1100とサーバの認証装置1200の機能構成及び動作を説明するためのブロック図である。認証システム500”のj番目プロトコル終了後の処理において、ユーザの端末装置1100は、セッション鍵生成器1126により出力されたセッション鍵SKijを用いて、次のセッションのためのHID値hidi(j+1)を、サーバの認証装置1200へ安全に送信し、ユーザの端末装置1100は内部にあるメモリ1102へ次のID値であるidi(j+1)を保存し、サーバの認証装置1200は内部にあるメモリあるいはデータベース1202へ次のHID値であるhidi(j+1)を保存する。
図17に示すように、ユーザの端末装置1100におけるj番目プロトコル終了後の処理では、HID生成器1107は、ID用乱数発生器1105によりランダムに発生させたID値idi(j+1)(idi(j+1)∈{0,1}k)を入力として、j+1番目のHID値hidi(j+1)を計算式:
hidi(j+1)=H(4‖idi(j+1))
により計算して出力し、HID値「hidi(j+1)」をサーバの認証装置1200へ送信する。ユーザの端末装置1100は、ユーザの端末装置1100の内部にあるメモリ1102に保持している現在のID値である「idij」を、ID用乱数発生器1105により発生させた次のID値である「idi(j+1)」に書き換える。
<サーバの認証装置1200における作業>
実施例1に係る認証システム100の場合と同様に、実施例4に係る認証システム500”においても、サーバの認証装置1200のマスク演算器1216における値Yの計算方法を以下のように変形することができる。この変形においては、第1ブラインド及び第2ブラインドが次のように計算される。
第1ブラインド:gy・vij
第2ブラインド:Uy・r (ただしr=H2(hidij‖Si‖U))
Y=Uy・r・gy・vij
b=u×r+vij mod q (ただしr=H2(hidij‖Si‖U))
すなわち、はじめの例ではrが結合値vijに関する項に乗じられていたのに対し、この変形例ではrが乱数uに乗じられる。
次に、実施例4に係る認証システム500”において、攻撃者のパスワードオンライン攻撃を検出する機能について説明する。
300 端末装置
302 パスワード認証データ生成器
304 公開値演算器
306 乱数発生器
308 ブラインド生成器
310 逆ブラインド演算器
312 マスター秘密生成器
314 認証子生成器
316 認証子判断部
318 エラーメッセージ発生器
320 セッション鍵生成器
400 認証装置
402 データベース
404 第1ブラインド生成器
405 第2ブラインド生成器
406 乱数発生器
408 マスク演算器
412 マスター秘密生成器
414 メッセージ集合器
416 認証子判断部
418 エラーメッセージ発生器
420 認証子生成器
422 セッション鍵生成器
500 認証システム
500’ 認証システム
500” 認証システム
700 端末装置
702 メモリ
704 結合器
706 乱数発生器
708 二要素認証データ生成器
712 公開値演算器
714 ブラインド生成器
716 逆ブラインド演算器
718 マスター秘密生成器
720 認証子生成器
722 認証子判断部
724 エラーメッセージ発生器
726 セッション鍵生成器
728 秘密値更新器
800 認証装置
802 データベース
804 WID判断部
806 エラーメッセージ発生器
808 マスター秘密生成器
810 乱数発生器
812 第1ブラインド生成器
814 第2ブラインド生成器
816 マスク演算器
818 メッセージ集合器
820 認証子判断部
822 エラーメッセージ発生器
824 認証子生成器
826 セッション鍵生成器
828 秘密値更新器
900 端末装置
902 メモリ
904 結合器
906 乱数発生器
912 公開値演算器
914 ブラインド生成器
916 逆ブラインド演算器
918 マスター秘密生成器
920 認証子生成器
922 認証子判断部
924 エラーメッセージ発生器
926 セッション鍵生成器
928 秘密値更新器
1000 認証装置
1002 データベース
1004 WID判断部
1006 エラーメッセージ発生器
1008 マスター秘密生成器
1010 乱数発生器
1012 第1ブラインド生成器
1014 第2ブラインド生成器
1016 マスク演算器
1018 メッセージ集合器
1020 認証子判断部
1022 エラーメッセージ発生器
1024 認証子生成器
1026 セッション鍵生成器
1028 秘密値更新器
1100 端末装置
1102 メモリ
1104 結合器
1105 ID用乱数発生器
1106 乱数発生器
1107 生成器
1112 公開値演算器
1114 ブラインド生成器
1116 逆ブラインド演算器
1118 マスター秘密生成器
1120 認証子生成器
1122 認証子判断部
1124 エラーメッセージ発生器
1126 セッション鍵生成器
1128 秘密値更新器
1200 認証装置
1202 データベース
1204 判断部
1206 エラーメッセージ発生器
1207 生成器
1208 マスター秘密生成器
1210 乱数発生器
1212 第1ブラインド生成器
1214 第2ブラインド生成器
1216 マスク演算器
1218 メッセージ集合器
1220 認証子判断部
1222 エラーメッセージ発生器
1224 認証子生成器
1226 セッション鍵生成器
1228 秘密値更新器
Claims (27)
- クライアント・サーバ間の相互認証方法であって、
上記サーバが実行する処理が、
(a)上記サーバで生成した乱数y(y∈(Z/qZ)*)に基づいて、サーバ側マスター秘密Ksを、式:
Ks=gy ……(式1)
によって計算するステップと、
(b)上記クライアントで計算された第1クライアント情報Uを、第1識別情報(C,WID,id)と共に該クライアントから受信するステップと、
(c)上記受信した第1クライアント情報U及び第1識別情報を利用して、第1サーバ情報Yを、式:
Y=Uy・Wy・r ……(式2)又は
Y=Uy・r・Wy ……(式2’)
によって計算するステップと、
(d)上記計算した第1サーバ情報Yを上記クライアントへ送信するステップと、
(e)上記サーバ側マスター秘密Ksを用いて、上記クライアントから受信したクライアント認証情報Vcを認証するステップと、
(f)上記サーバ側マスター秘密Ksを用いて、サーバ認証情報Vsを生成し上記Vsをクライアントに送信するステップと、
を含み、
ただし上の記載において、qは群(G,・)の位数を表し、gはその集合Gの生成元を表し、”・”は上記G上の二項演算子を表し、
式(2)及び式(2’)における記号Wはパスワードpwに関する情報を含む部分を表し、上記クライアントが生成したパスワード情報vに基づいて
W=gv ……(式3)、
又は上記クライアントが生成したパスワード情報vと上記クライアントが生成した乱数tのコミット値Tに基づいて
W=Tv=gt×v ……(式3’)
により得ることができる部分であり、該パスワード情報vは、上記パスワードpwを少なくとも入力とする関数H1()の出力から計算される値であり、×は整数上の掛け算であり、式(2)及び式(2’)における記号rは、上記クライアントが上記第1クライアント情報Uを計算するより前の時刻に知ることのできない値であると共に、上記サーバ及び上記クライアントのいずれにおいても計算可能な値を表し、U,W,Y,T,g∈Gであり、
上記クライアントが実行する処理が、
(a’)上記クライアントで生成した乱数u(u∈(Z/qZ)*)に基づき、上記第1クライアント情報Uを、
U=gu
によって計算するステップと、
(b’)上記計算した第1クライアント情報Uを、上記第1識別情報と共に上記サーバに送信するステップと、
(c’)上記第1クライアント情報Uの送信に応じて、上記サーバから上記第1サーバ情報Yを受信するステップと、
(d’)上記W=gv …(式3)の場合に、
ブラインド値bを、上記パスワード情報v及び上記値rに基づいて、次の計算式:
b=u+v×r mod q(Y=Uy・Wy・rである場合) ……(式4)又は
b=u×r+v mod q(Y=Uy・r・Wyである場合) ……(式4’)
によって計算するステップ、又は
上記 W=Tv=gt×v …(式3’)の場合に、
上記クライアントが生成したパスワード情報vと上記クライアントが生成した乱数tに基づいて、前記ブラインド値bを、次の計算式:
b=u+t×v×r mod q(Y=Uy・Wy・rである場合) ……(式5)又は
b=u×r+t×v mod q(Y=Uy・r・Wyである場合) ……(式5’)
によって計算するステップと、
(e’)受信した上記第1サーバ情報Yに基づいて、クライアント側マスター秘密Kcを、
Kc=Y(1/b mod q)
によって計算するステップと、
(f’)上記クライアント側マスター秘密Kcを利用してクライアント認証情報Vcを生成し、上記サーバに送信するステップと
(g’)上記サーバから受信した上記サーバ認証情報Vsを、上記クライアント側マスター秘密Kcを利用して認証するステップと、
を含む、方法。ただし、
「1/b mod q」は「a×b≡1 mod q」を満たす1以上q未満の整数aを示す。 - 上記値rは、上記第1クライアント情報Uがクライアントから送信された後にサーバからクライアントに送信される乱数、又は、少なくとも上記第1クライアント情報Uを一方向性関数F2()の入力として得られた出力より計算できる値である、
請求項1に記載の方法。 - 上記パスワード情報vは、上記パスワードpwを少なくとも入力とする一方向性関数F1()の出力より計算できる値である、
請求項1、2のいずれかに記載の方法。 - 上記パスワード情報vは、上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力と乱数sとを少なくとも結合した値、又は、上記パスワードpwと上記乱数sとを少なくとも結合した値である、
請求項1、2のいずれかに記載の方法。 - 上記パスワード情報vは
v=s+hpw mod q 又は
v=s×hpw mod q 又は
v=s(+)hpw 又は
上記パスワードpwと乱数sを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値
と表記可能である、
請求項1、2、4のいずれかに記載の方法。
ここで、hpwは、上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値であり、(+)は排他的論理和である。
- 上記部分W又は上記パスワード情報vが、上記第1識別情報(C,WID,id)に関連づけられて上記サーバの記憶装置に予め格納されており、
上記サーバが、上記受信した第1識別情報に基づいて該記憶装置から上記部分W(上記部分Wが格納されている場合)又は、上記パスワード情報v(上記パスワード情報vが格納されている場合)を検索するステップを有する、
請求項1から5のいずれかに記載の方法。
- 上記部分W又は上記パスワード情報vが、上記第1識別情報(C,WID,id)を少なくとも入力に含む一方向性関数H3()の出力から計算される第2識別情報に関連づけられて上記サーバの記憶装置に予め格納されており、
上記サーバが、上記受信した第1識別情報(C,WID,id)を少なくとも入力に含む一方向性関数H3()の出力から計算した上記第2識別情報により該記憶装置から上記部分W(上記部分Wが格納されている場合)又は、上記パスワード情報v(上記パスワード情報vが格納されている場合)を検索するステップを有する、
請求項1から5のいずれかに記載の方法。
- 上記クライアントがクライアント側改ざん検出子生成鍵、クライアント側改ざん検出子検証鍵を持ち、上記サーバが、上記第1識別情報又は上記第1識別情報(C,WID,id)を少なくとも入力に含む一方向性関数H 3 ()の出力から計算される第2識別情報と共に、上記クライアント側改ざん検出子生成鍵により生成された改ざん検出子を検証するためのサーバ側改ざん検出子検証鍵と、上記クライアント側改ざん検出子検証鍵で検証できる改ざん検出子を生成できるサーバ側改ざん検出子生成鍵を持ち、
上記クライアント・サーバ間の相互認証において、
(a)上記サーバが、上記クライアントから上記Uを受け取った場合に、少なくとも上記Uと上記Yの組をログリストPs’に記録すると共に、少なくとも上記Uと上記Yに対して上記サーバ側改ざん検出子生成鍵を用いて改ざん検出子mac2を生成し、それを上記クライアントに送信するステップと、
(b)上記クライアントが、該サーバから送られてきた改ざん検出子mac2の検証に失敗した場合に、上記クライアント認証情報Vcを送信せず該クライアント・サーバ間の相互認証を中断するステップと、
(c)同じく上記クライアントが、該サーバから送られてきた改ざん検出子mac2の検証に成功した場合には、少なくとも上記Yと上記クライアント認証情報Vcに対して該クライアント側改ざん検出子生成鍵を用いて改ざん検出子mac3を生成し、その改ざん検出子を該サーバに送信すると共に、少なくとも上記Uと上記Yの組をログリストPcに記録するステップと、
(d)該サーバが、該クライアントから送られてきた改ざん検出子mac3の検証に失敗した場合に、該クライアント・サーバ間の相互認証を中断するステップと、
(e)同じく該サーバが、該クライアントから送られてきた改ざん検出子mac3の検証に成功し、かつ、該クライアントから送られてきた上記クライアント認証情報Vcの検証に失敗した場合に、少なくとも上記Uと上記Yの組をログリストPsに記録し、該クライアント・サーバ間の相互認証を中断するステップと、
(f)該クライアント・サーバ間の相互認証が正常に終了した際には、前回該クライアント・サーバ間の相互認証ステップが正常に終了した以降に該サーバと該クライアントが該クライアント・サーバ間の相互認証処理中に記録し続けたログリストPs、Pc、Ps’中の少なくともUとYの組を第三者に改ざんされない方法で比較するステップと、
を有する、請求項1から7のいずれかに記載の方法。
- 上記サーバ側及び上記クライアント側の少なくとも一方における上記改ざん検出子生成鍵及び上記検出子検証鍵をMAC(Message Authentication Code)鍵とする請求項8に記載の方法。
- 上記サーバ側及び上記クライアント側の両方の改ざん検出子生成鍵及び検出子検証鍵をMAC(Message Authentication Code)鍵とする場合、
上記サーバ側の改ざん検出子生成鍵、
上記サーバ側の改ざん検出子検証鍵、
上記クライアント側の改ざん検出子生成鍵、
上記クライアント側の改ざん検出子検証鍵、
は全て同じ鍵とし、
上記クライアントと上記サーバが同じMAC鍵を使っても異なる改ざん検出子を生成できるように、上記クライアントと上記サーバとで、異なるMAC生成アルゴリズム、又は、異なるメッセージフォーマットを用いる、請求項9に記載の方法。 - 上記改ざん検出子生成鍵を電子署名生成鍵、上記検出子検証鍵を電子署名検証鍵とする請求項8に記載の方法。
- 上記クライアントがクライアント側データ鍵cdkを持ち、上記サーバがサーバ側データ鍵sdkを第1識別情報又は第2識別情報と共に持ち、上記クライアント・サーバ間の相互認証ステップが正常に終了した際に、
(a)該サーバが、該クライアント・サーバ間の相互認証ステップにより生成された上記サーバ側マスター秘密Ksに依存して生成される暗号化鍵を使って暗号化されたサーバ側データ鍵sdkを該クライアントに送信するステップと、
(b)該クライアントが、該サーバから送信された暗号化されたデータ鍵sdkを該クライアント・サーバ間の相互認証ステップにより生成された該クライアント側マスター秘密KCに依存して生成される暗号化鍵を使って復号するステップと、
(c)該クライアントが上記クライアント側データ鍵cdkと上記サーバ側データ鍵sdkからデータdkを復元するステップを持つ
請求項1から11のいずれかに記載の方法。 - 上記クライアントがクライアント側データ鍵cdkを持ち、上記サーバがサーバ側データ鍵sdkを第1識別情報又は第2識別情報と共に持ち、上記クライアント・サーバ間の相互認証ステップが正常に終了した際に、
(a’)該クライアントが、該クライアント・サーバ間の相互認証ステップにより生成された上記クライアント側マスター秘密Kcに依存して生成される暗号化鍵を使って暗号化されたクライアント側データ鍵cdkを該サーバに送信するステップと、
(b’)該サーバが、該クライアントから送信された暗号化されたクライアント側データ鍵cdkを該クライアント・サーバ間の相互認証ステップにより生成された該サーバ側マスター秘密Ksに依存して生成される暗号化鍵を使って復号するステップと、
(c’)該サーバが上記クライアント側データ鍵cdkと上記サーバ側データ鍵sdkからデータdkを復元するステップを持つ
請求項1から12のいずれかに記載の方法。 - 上記データdkは、
dk’=cdk(+)sdk 又は
dk’=cdk+sdk mod q 又は
dk’=cdk×sdk mod q
とし、
dk=dk’ 又は
dk=(dk’)(+)hpw 又は
dk=(dk’)+hpw mod q 又は
dk=(dk’)×hpw mod q 又は
少なくともdk’とhpwを入力とする関数H3()の出力から計算できる値により復元できる、
請求項12または13に記載の方法。
ここで、(dk’)はdk’の値を最初に計算するというステップを示しており、hpwは、上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力より計算できる値であり、(+)は排他的論理和である。
- 上記クライアント・サーバ間の相互認証のために、上記クライアントが利用する可能性のある情報である、上記乱数t、上記第1識別情報の全てあるいは一部を、該クライアントの記録装置に予め保存し、該クライアントが上記クライアント・サーバ間の相互認証を実行する祭に、上記クライアント・サーバ間の相互認証の要求に応じて呼び出す
請求項1から14のいずれかに記載の方法。 - 上記クライアント・サーバ間の相互認証が成功した場合、
その相互認証で利用した該サーバの該記憶装置に記録されている情報である、上記第1識別情報、上記部分W又は上記パスワード情報v、クライアントが生成した乱数tのコミット値T、の全てあるいは一部、並びに、
該クライアントの該記憶装置に記録されている情報である、上記乱数t、上記第1識別情報、の全てあるいは一部を、
該クライアントと該サーバとの間でやりとりされた値、又は、該認証ステップで共有された上記マスター秘密KC(クライアント側)Ks(サーバ側)、又は上記マスター秘密と上記該サーバと該クライアントの間でやりとりされた値の両方を使って更新するステップを有する、
請求項1から15のいずれかに記載の方法。 - 上記パスワード情報vが、上記パスワードpwと乱数sに基づいて、次の計算式:
v=s+hpw mod q または
v=s×hpw mod q
により計算することができ、
上記更新するステップにおいて、上記サーバは、
W’=W・gud または
W’=Wud
と表記されうるように上記部分WをW’に更新し、上記クライアントは、
s’=s+ud mod q または
s’=s×ud mod q
と表記されうるように上記乱数sをs’に更新する、請求項16に記載の方法。
ただし、hpwは上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力であり、udは上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値である。 - 上記パスワード情報vが、上記パスワードpwと乱数sに基づいて、次の計算式:
v=s+hpw mod q
により計算することができ、
上記更新するステップにおいて、上記サーバは、
v’=v+ud mod q
と表記されうるように上記パスワード情報vをv’に更新し、上記クライアントは、
s’=s+ud mod q
と表記されうるように上記乱数sをs’に更新する、請求項16に記載の方法。
ただし、hpwは上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力であり、udは上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値である。 - 上記パスワード情報vが、上記パスワードpwと乱数sに基づいて、次の計算式:
v=s(+)hpw
により計算することができ、
上記更新するステップにおいて、上記サーバは、
v’=v(+)ud
と表記されうるように上記パスワード情報vをv’に更新し、上記クライアントは、
s’=s(+)ud
と表記されうるように上記乱数sをs’に更新する、請求項16に記載の方法。
ただし、hpwは上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力であり、udは上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値であり、(+)は排他的論理和を表す。 - 上記パスワード情報vが、上記パスワードpwと乱数sに基づいて、次の計算式:
v=s×hpw mod q
により計算することができ、
上記更新するステップにおいて、上記サーバは、
v’=v×ud mod q
と表記されうるように上記パスワード情報vをv’に更新し、上記クライアントは、
s’=s×ud mod q
と表記されうるように上記乱数sをs’に更新する、請求項16に記載の方法。
ただし、hpwは上記パスワードpwを少なくとも入力とする関数H1()又は一方向性関数F1()の出力であり、udは上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値である。 - 上記クライアント・サーバ間の相互認証が成功した場合、
その相互認証で利用した該サーバの該記憶装置に記録されている情報である、該サーバ側の改ざん検出子生成鍵、該サーバ側の改ざん検出子検証鍵の全てあるいは一部、及び、
該クライアントの該記憶装置に記録されている情報である、上記クライアント側の改ざん検出子生成鍵、上記クライアント側の改ざん検出子検証鍵の全てあるいは一部を、
該クライアントと該サーバとの間でやりとりされた値、又は、該認証処理で共有された上記マスター秘密KC(クライアント側)Ks(サーバ側)、又は上記マスター秘密と上記該サーバと該クライアントの間でやりとりされた値の両方を使って更新するステップを有し、
上記サーバと上記クライアントが同じ上記MAC鍵MacKを用いる場合、上記サーバと上記クライアントがそれぞれ上記MAC鍵MacKをMacK’に更新するステップは、
MacK’=MacK(+)ud 又は
MacK’=MacK+ud mod q 又は
MacK’=MacK×ud mod q 又は
と表記可能である、
請求項10に記載の方法。
ただし、udは上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値である。 - 上記クライアント・サーバ間の相互認証が成功した場合、
その相互認証で利用した該サーバの該記憶装置に記録されている情報である上記サーバ側データ鍵sdk及び、
該クライアントの該記憶装置に記録されている情報である上記クライアント側データ鍵cdkを、
該クライアントと該サーバとの間でやりとりされた値、又は、該認証処理で共有された上記マスター秘密KC(クライアント側)Ks(サーバ側)、又は上記マスター秘密と上記該サーバと該クライアントの間でやりとりされた値の両方を使って更新するステップを有し、
上記クライアントが上記クライアント側データ鍵cdkを持ち、上記サーバが上記サーバ側データ鍵sdkを持つ場合、上記サーバと上記クライアントがそれぞれcdkとsdkをcdk’とsdk’に更新するステップは、
上記dk’が
dk’=cdk(+)sdk
と表記可能な場合、
cdk’=cdk(+)ud
sdk’=sdk(+)ud
と表記可能であり、
上記dk’が
dk’=cdk+sdk mod q
と表記可能な場合、
cdk’=cdk+ud mod q
sdk’=sdk−ud mod q
又は
cdk’=cdk−ud mod q
sdk’=sdk+ud mod q
と表記可能であり、
上記dk’が
dk’=cdk×sdk mod q
と表記可能な場合、
cdk’=cdk×ud mod q
sdk’=sdk / ud mod q
又は
cdk’=cdk / ud mod q
sdk’=sdk×ud mod q
と表記可能である、
請求項14に記載の方法。
ただし、udは上記サーバと上記クライアントが共有している上記マスター秘密Ks(サーバ側)Kc(クライアント側)から生成される値であり、−は整数上の引き算、「a=c/b mod q」はcが0でない場合に、「a×b≡c mod q」を満たす1以上q未満の整数aを示す。 - クライアント装置とサーバ装置から構成されるシステムであって、該クライアント装置と該サーバ装置が請求項1から22のいずれかに記載の相互認証方法を実行するように構成される、システム。
- 請求項1から22のいずれかに記載の相互認証方法における、クライアント側で実行される処理を遂行しうるように構成される、コンピュータ装置。
- 請求項1から22のいずれかに記載の相互認証方法における、サーバ側で実行される処理を遂行しうるように構成される、コンピュータ装置。
- コンピュータ装置のCPUで実行されることにより、該コンピュータ装置に、請求項1から22のいずれかに記載の相互認証方法における、クライアント側で実行される処理を遂行させる、コンピュータ・プログラム。
- コンピュータ装置のCPUで実行されることにより、該コンピュータ装置に、請求項1から22のいずれかに記載の相互認証方法における、サーバ側で実行される処理を遂行させる、コンピュータ・プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010519823A JP5224481B2 (ja) | 2008-07-10 | 2009-07-10 | パスワード認証方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008179670 | 2008-07-10 | ||
JP2008179670 | 2008-07-10 | ||
PCT/JP2009/062578 WO2010005071A1 (ja) | 2008-07-10 | 2009-07-10 | パスワード認証方法 |
JP2010519823A JP5224481B2 (ja) | 2008-07-10 | 2009-07-10 | パスワード認証方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2010005071A1 JPWO2010005071A1 (ja) | 2012-01-05 |
JP5224481B2 true JP5224481B2 (ja) | 2013-07-03 |
Family
ID=41507181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010519823A Active JP5224481B2 (ja) | 2008-07-10 | 2009-07-10 | パスワード認証方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8422670B2 (ja) |
JP (1) | JP5224481B2 (ja) |
WO (1) | WO2010005071A1 (ja) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694548B2 (en) * | 2011-01-02 | 2014-04-08 | Cisco Technology, Inc. | Defense-in-depth security for bytecode executables |
US8789154B2 (en) * | 2011-06-30 | 2014-07-22 | Qualcomm Incorporated | Anti-shoulder surfing authentication method |
JP5981761B2 (ja) * | 2012-05-01 | 2016-08-31 | キヤノン株式会社 | 通信装置、制御方法、プログラム |
US9166970B1 (en) | 2013-03-15 | 2015-10-20 | Symantec Corporation | Dynamic framework for certificate application configuration |
US9780950B1 (en) * | 2013-03-15 | 2017-10-03 | Symantec Corporation | Authentication of PKI credential by use of a one time password and pin |
US9122888B2 (en) | 2013-07-22 | 2015-09-01 | Dell Products, Lp | System and method to create resilient site master-key for automated access |
KR102182894B1 (ko) | 2014-02-28 | 2020-11-26 | 삼성전자주식회사 | 패스워드 기반의 인증을 수행하는 사용자 장치 및 그것의 패스워드 등록 방법 및 인증 방법 |
KR102370286B1 (ko) * | 2015-10-28 | 2022-03-03 | 에스케이플래닛 주식회사 | 무선 메시 네트워크 인증 방법 및 이를 위한 장치, 이를 수행하는 컴퓨터 프로그램을 기록한 기록 매체 |
US10397206B2 (en) | 2016-01-26 | 2019-08-27 | Red Hat, Inc. | Symmetric encryption key generation/distribution |
KR101950913B1 (ko) | 2017-08-09 | 2019-02-21 | 주식회사 센스톤 | 가상코드제공시스템, 가상코드생성장치, 가상코드검증장치, 가상코드제공방법 및 가상코드제공프로그램 |
CN110572257B (zh) * | 2019-07-16 | 2023-04-14 | 如般量子科技有限公司 | 基于身份的数据来源鉴别方法和系统 |
CN111639325B (zh) * | 2020-05-28 | 2023-09-19 | 中国建设银行股份有限公司 | 基于开放平台的商户认证方法、装置、设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005041474A1 (ja) * | 2003-10-28 | 2005-05-06 | The Foundation For The Promotion Of Industrial Science | 認証システム及び遠隔分散保存システム |
JP5004086B2 (ja) * | 2007-10-29 | 2012-08-22 | 独立行政法人産業技術総合研究所 | 短い系列を用いた認証システム |
JP5099771B2 (ja) * | 2008-04-30 | 2012-12-19 | 独立行政法人産業技術総合研究所 | 二要素認証システム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047408B1 (en) * | 2000-03-17 | 2006-05-16 | Lucent Technologies Inc. | Secure mutual network authentication and key exchange protocol |
US7076656B2 (en) | 2001-04-05 | 2006-07-11 | Lucent Technologies Inc. | Methods and apparatus for providing efficient password-authenticated key exchange |
JP2006197065A (ja) | 2005-01-12 | 2006-07-27 | Matsushita Electric Ind Co Ltd | 端末装置および認証装置 |
-
2009
- 2009-07-10 WO PCT/JP2009/062578 patent/WO2010005071A1/ja active Application Filing
- 2009-07-10 JP JP2010519823A patent/JP5224481B2/ja active Active
-
2011
- 2011-01-10 US US12/987,599 patent/US8422670B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005041474A1 (ja) * | 2003-10-28 | 2005-05-06 | The Foundation For The Promotion Of Industrial Science | 認証システム及び遠隔分散保存システム |
JP5004086B2 (ja) * | 2007-10-29 | 2012-08-22 | 独立行政法人産業技術総合研究所 | 短い系列を用いた認証システム |
JP5099771B2 (ja) * | 2008-04-30 | 2012-12-19 | 独立行政法人産業技術総合研究所 | 二要素認証システム |
Non-Patent Citations (3)
Title |
---|
JPN6012065262; T. Kwon: 'Revision of AMP in IEEE P1363.2 and ISO/IEC 11770-4' Password-Based Public-Key Cryptography: Submissions and Research Contributions , 20050608, IEEE P1363 * |
JPN6012065263; 辛星漢,他: 'An Efficient Anonymous Password-Authenticated Key Exchange Protocol' 電子情報通信学会技術研究報告 vol. 106,no. 176, 20060714, pp. 107-114, 電子情報通信学会 * |
JPN6012065264; 辛星漢,他: 'On Anonymous Password-Authenticated Key Exchange' 電子情報通信学会技術研究報告 vol. 107,no. 140, 20070712, pp. 145-151, 電子情報通信学会 * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2010005071A1 (ja) | 2012-01-05 |
US20110145579A1 (en) | 2011-06-16 |
WO2010005071A1 (ja) | 2010-01-14 |
US8422670B2 (en) | 2013-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5224481B2 (ja) | パスワード認証方法 | |
Challa et al. | Design and analysis of authenticated key agreement scheme in cloud-assisted cyber–physical systems | |
CN111639361B (zh) | 一种区块链密钥管理方法、多人共同签名方法及电子装置 | |
CN111818039B (zh) | 物联网中基于puf的三因素匿名用户认证协议方法 | |
Zhao et al. | A novel mutual authentication scheme for Internet of Things | |
Odelu et al. | An efficient ECC-based privacy-preserving client authentication protocol with key agreement using smart card | |
Kaur et al. | A Secure Two‐Factor Authentication Framework in Cloud Computing | |
Frymann et al. | Asynchronous remote key generation: An analysis of yubico's proposal for W3C webauthn | |
Alotaibi | Registration center based user authentication scheme for smart E-governance applications in smart cities | |
Tbatou et al. | A New Mutuel Kerberos Authentication Protocol for Distributed Systems. | |
JP2017524306A (ja) | 暗号化操作における悪意のある変更に対する保護 | |
US8954728B1 (en) | Generation of exfiltration-resilient cryptographic keys | |
JP4874007B2 (ja) | 認証システム、サーバコンピュータ、プログラム、及び、記録媒体 | |
Yao et al. | An inter-domain authentication scheme for pervasive computing environment | |
Zahednejad et al. | A Lightweight, Secure Big Data‐Based Authentication and Key‐Agreement Scheme for IoT with Revocability | |
Li et al. | A secure two-factor authentication scheme from password-protected hardware tokens | |
Dowlatshah et al. | A secure and robust smart card-based remote user authentication scheme | |
Salvakkam et al. | Design of fully homomorphic multikey encryption scheme for secured cloud access and storage environment | |
Srinivas et al. | An authentication framework for roaming service in global mobility networks | |
Ashraf et al. | Lightweight and authentic symmetric session key cryptosystem for client–server mobile communication | |
JP5004086B2 (ja) | 短い系列を用いた認証システム | |
TWI381696B (zh) | 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證 | |
Irshad et al. | A secure mutual authenticated key agreement of user with multiple servers for critical systems | |
Zhu et al. | LAAP: Lightweight Anonymous Authentication Protocol for IoT Edge Devices Based on Elliptic Curve | |
JP5099771B2 (ja) | 二要素認証システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130201 |
|
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: 20130225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130307 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5224481 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: 20160322 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
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 |