JP5101535B2 - 認証方法、認証システム、プログラムおよび共有鍵生成方法 - Google Patents

認証方法、認証システム、プログラムおよび共有鍵生成方法 Download PDF

Info

Publication number
JP5101535B2
JP5101535B2 JP2009009268A JP2009009268A JP5101535B2 JP 5101535 B2 JP5101535 B2 JP 5101535B2 JP 2009009268 A JP2009009268 A JP 2009009268A JP 2009009268 A JP2009009268 A JP 2009009268A JP 5101535 B2 JP5101535 B2 JP 5101535B2
Authority
JP
Japan
Prior art keywords
value
arbitrary number
determined
prover
calculated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009009268A
Other languages
English (en)
Other versions
JP2010166526A (ja
Inventor
剛 山本
鉄太郎 小林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2009009268A priority Critical patent/JP5101535B2/ja
Publication of JP2010166526A publication Critical patent/JP2010166526A/ja
Application granted granted Critical
Publication of JP5101535B2 publication Critical patent/JP5101535B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、エンティティの同一性を認証する技術、または同一のエンティティ間に限り秘密鍵を共有する技術に関する。
ネットワークサービスにサービス提供者と利用者があり、提供者がサービスを実施するときに、利用者が提供者に対して、利用者にはサービスの提供を受ける権利があることを証明するためのシステムを考える。そのためには、利用者は、サービス利用の権利が発生した時に、利用者を識別する情報と、その利用者のみが知る秘密情報の組を提供者に登録し、サービスが実施される際には、実施に先立ち、利用者は、利用者を識別する情報を提示し、さらに登録時に用いた秘密情報を知っていることを証明する方法をとることができる。
以下では、サービス利用者を証明者、サービス提供者を検証者と呼ぶことにする。また、利用者を識別する情報を識別子と呼び、利用者のみが知る秘密情報をパスワードと呼ぶ。上記認証方法をパスワード認証方法と呼び、うち登録部分の手続きをパスワード登録、証明部分をパスワード認証と呼ぶこととする。パスワード認証方法を実現するシステムに対する攻撃とは、パスワードを知らない攻撃者が何らかの手段を講じた後に、検証者と通信することで、パスワードを知る証明者になり済ますことができることをいう。攻撃が困難なシステムを安全と呼ぶ。
パスワード認証方法を実現する自明なシステムの構成例は、次の通りである。あらかじめ一方向関数hの仕様を定め、検証者と証明者で合意してあると仮定する。
(パスワード登録)
証明者は、パスワードpを一定のパスワード集合Pから任意に選び、秘密裏に記録する。証明者は、識別子iとs=h(p)を検証者に送信し、検証者は(i,s)を記録する。
(パスワード認証)
証明者は、識別子iとパスワードpを検証者に送信する。検証者はh(p)を計算し、あらかじめ記録された情報(i,s)と照合する。
このようなシステムにおいては、パスワード集合が小さい場合に安全性に問題が生じる場合がある。たとえば銀行ATMや携帯端末におけるネットワークサービスなどでは、パスワード集合Pが10進4桁の数であることが要請される場合がある。
攻撃者にとって検証者に蓄積された情報(i,s)を取得可能な攻撃環境を想定するとき、パスワード集合Pが十分小さければ、攻撃者は総当たり攻撃によってパスワードを推測することができる。このように可能性がある秘密情報を全数試行する攻撃手法を、辞書攻撃と呼ぶ。上記システムは、攻撃者がサーバの内部情報を知ることができる攻撃環境の下で、パスワードについての辞書攻撃に対して安全ではない。このようなシステムにおいては、検証者側の内部情報が漏洩する攻撃環境において、パスワードが推測可能である。
この課題を克服した従来技術に、ゼロ知識証明を用いた認証がある。ゼロ知識証明を用いた認証方法は、たとえば特許文献1に具体例が記載されている。
特開平9−51330号公報
しかしながら、従来技術のゼロ知識証明を用いた認証においては、証明者側の端末が攻撃者の支配下に置かれるという環境において、短いパスワードが漏洩するという安全性の課題がある。パスワードの知識を証明する従来技術のゼロ知識証明を用いた場合、証明者の端末の乱数源を制御可能な攻撃環境において、秘密情報を抽出することができるという課題がある。また、ゼロ知識証明を用いた認証方法は複雑であるから、ゼロ知識証明を用いない認証方法と比較して、実装の手間や費用、実施に要する時間や費用が大きいという課題がある。
本発明は、このような課題に鑑みてなされたものであり、本発明の目的は、検証者側内部状態が攻撃者に漏洩する、または証明者側の端末が攻撃者の支配下に置かれるという環境において、短いパスワードが漏洩しない認証の技術を提供することにある。
本発明は、ゼロ知識証明で、証明者端末の内部情報を取得する攻撃環境や、証明者端末の内部の疑似乱数源を制御される攻撃環境で、パスワードが漏洩しないものを用いるものである。また、そのようなゼロ知識証明を利用した認証方法で、検証者と証明者の間の交信は一往復であるものを用いることで、実装の手間や費用、実施に要する時間や費用が大きくなる課題を解決するものである。
上記課題を解決するため、本発明の認証方法は、証明者端末にて証明者からの識別子IとパスワードAを受け付けて、検証者装置によって当該証明者を認証する方法であって、前記証明者端末と前記検証者装置の双方は、巡回群の値Gと、第1関数Hと、第2関数hとを共有しており、前記証明者端末は、証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、パスワードAと、前記巡回群の値Gとを保持しており、前記検証者装置は、前記識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶しており、前記証明者端末が、証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信するステップと、前記検証者装置が、識別子Iを受信して、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信するステップと、前記証明者端末が、前記第1の値Sと前記第2の値Tを受信して、前記第1の値Sと、前記パスワードAと、前記第2の値Tと、前記第1の任意数Bとから定まる第2のパラメータXを算出するとともに、該第2のパラメータXと当該証明者端末によって生成した第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信するステップと、前記検証者装置が、値Vと第4の任意数Mを受信して、前記第1のパラメータYと第3の任意数uで定まる第3の値と、第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証するステップとを含むことを特徴とする。
本発明の認証方法は、前記検証者装置が、前記第1の値Sかつ前記第2の値Tとなる前記第3の任意数uの非対話的ゼロ知識証明となる証明情報πを算出し、算出した証明情報πを前記証明者端末に送信するステップと、前記証明者端末が、前記証明情報πを受信し、証明情報πを検証するステップとを更に含むことが好ましい。
また、前記第1関数Hは、ハッシュ関数であって、値Rは、R=H(D)で表され、前記第1パラメータYは、Y=Gで表され、前記第1の値Sは、S=Gで表され、前記第2の値Tは、T=Rで表され、前記第2のパラメータXは、X=Sで表され、前記第2関数hは、ハッシュ関数であって、前記証明者端末が算出する値Vは、V=h(X,M)で表され、前記検証者装置が算出する値Vは、V=h(Y,M)で表され、前記証明情報πは、任意数wとし、nをGの位数としたとき、π=(z,c)(ここに、W=G、W=R、c=h(W,W)、z=−cu+w(mod n))で表され、前記検証するステップは、h(G,R)=cを満たすか否かで検証することが好ましい。
また、本発明の認証システムは、証明者端末にて証明者からの識別子IとパスワードAを受け付けて、検証者装置によって当該証明者を認証する認証システムであって、前記証明者端末と前記検証者装置の双方は、巡回群の値Gと、第1関数Hと、第2関数hとを共有しており、前記証明者端末が、証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、パスワードAと、前記巡回群の値Gとを保持する手段と、証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信する手段と、前記検証者装置から、前記巡回群の値Gと検証者装置によって生成した第3の任意数uで定まる第1の値Sと、前記第2の任意数Dから定まる第1関数Hの値Rと第3の任意数uで定まる第2の値Tとを受信する手段と、受信した前記第1の値Sと、前記パスワードAと、受信した前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、第2のパラメータXと第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信する手段とを備え、前記検証者装置が、前記識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶する手段と、前記証明者端末から、証明者の識別子Iを受信する手段と、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信する手段と、前記証明者端末から、前記第1の値S、前記パスワードA、前記第2の値T、および前記第1の任意数Bから算出された第2のパラメータXと、証明者端末によって生成した第4の任意数Mとで定まる第2関数hの値Vを受信するとともに、前記第4の任意数Mを受信する手段と、前記第1のパラメータYと第3の任意数uで定まる第3の値と、受信した第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証する
手段とを備えることを特徴とする。
また、本発明の証明者端末は、証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、パスワードAと、前記巡回群の値Gとを保持する手段と、証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信する手段と、前記検証者装置から、前記巡回群の値Gと検証者装置によって生成した第3の任意数uで定まる第1の値Sと、前記第2の任意数Dから定まる第1関数Hの値Rと第3の任意数uで定まる第2の値Tとを受信する手段と、受信した前記第1の値Sと、前記パスワードAと、受信した前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、第2のパラメータXと第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信する手段とを備えることを特徴とする。
また、本発明の検証者装置は、前記識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶する手段と、前記証明者端末から、証明者の識別子Iを受信する手段と、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信する手段と、前記証明者端末から、前記第1の値S、前記パスワードA、前記第2の値T、および前記第1の任意数Bから算出された第2のパラメータXと、証明者端末によって生成した第4の任意数Mとで定まる第2関数hの値Vを受信するとともに、前記第4の任意数Mを受信する手段と、前記第1のパラメータYと第3の任意数uで定まる第3の値と、受信した第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証する手段とを備えることを特徴とする。
また、本発明は、コンピュータに前記認証システムの証明者端末の機能を実現させるプログラムであって、証明者からの識別子IとパスワードAの入力を受け付けて、検証者装置に識別子Iを送信するステップと、前記検証者装置から、前記巡回群の値Gと検証者装置によって生成した第3の任意数uで定まる第1の値Sと、前記第2の任意数Dから定まる第1関数Hの値Rと第3の任意数uで定まる第2の値Tとを受信するステップと、受信した前記第1の値Sと、前記パスワードAと、受信した前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、第2のパラメータXと第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信するステップとを実行させるためのプログラムである。
また、本発明は、コンピュータに前記認証システムの検証者装置の機能を実現させるプログラムであって、前記証明者端末から、証明者の識別子Iを受信するステップと、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信するステップと、前記証明者端末から、前記第1の値S、前記パスワードA、前記第2の値T、および前記第1の任意数Bから算出された第2のパラメータXと、証明者端末によって生成した第4の任意数Mとで定まる第2関数hの値Vを受信するとともに、前記第4の任意数Mを受信するステップと、前記第1のパラメータYと第3の任意数uで定まる第3の値と、受信した第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証するステップとを実行させるためのプログラムである。
また、本発明の共有鍵生成方法は、証明者端末と検証者装置の双方において使用される共有鍵を生成する共有鍵生成方法であって、前記証明者端末と前記検証者装置の双方は、巡回群の値Gと、第1関数Hと、第2関数hとを共有しており、前記証明者端末は、証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、証明者から受け付けたパスワードAと、前記巡回群の値Gとを保持しており、前記検証者装置は、証明者の識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶しており、前記証明者端末が、証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信するステップと、前記検証者装置が、識別子Iを受信して、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信するステップと、前記証明者端末が、前記第1の値Sと前記第2の値Tを受信して、前記第1の値Sと、前記パスワードAと、前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、証明者端末によって生成した第4の任意数Mを第2のパラメータXで暗号化して値Vを算出し、算出した値Vを前記検証者装置に送信するステップと、前記検証者装置が、値Vを受信して、値Vを前記第1のパラメータYと第3の任意数uで定まる第3の値で復号化して値Mを算出し、値Mと検証者装置によって生成した第5の任意数Mとをビット結合したものを前記第3の値で暗号化して値Vを算出し、算出した値Vを前記検証者装置に送信するステップと、前記証明者端末が、値Vを受信して、値Vを前記第2のパラメータXで復号化して値Mを算出し、値Mが第5の任意数Mによって分解できるかどうかを確認し、分解できれば第5の任意数Mを第2のパラメータXで暗号化して値Vを算出し、前記検証者装置に値Vを送信し、値Mと第5の任意数
とをビット結合したもので定まる第2関数hの値を共有鍵Kとするステップと、前記検証者装置が、値Vを受信して、値Vを前記第3の値で復号化して値Mを算出し、算出した値Mを用いて、前記第5の任意数Mを検証し、検証が成功であれば値Mと第5の任意数Mとをビット結合したもので定まる第2関数hの値を共有鍵Kとするステップとを含むことを特徴とする。
また、前記第1関数Hは、ハッシュ関数であって、値Rは、R=H(D)で表され、前記第1パラメータYは、Y=Gで表され、前記第1の値Sは、S=Gで表され、前記第2の値Tは、T=Rで表され、前記第2のパラメータXは、X=Sで表され、前記第4の任意数Mを第2のパラメータXで暗号化して算出する値Vは、V=E(M)で表され、前記値Vを前記第3の値で復号化して算出する値Mは、
Figure 0005101535
で表され、前記値Mと前記第5の任意数Mとをビット結合したものを前記第3の値で暗号化して算出する値Vは、
Figure 0005101535
で表され、前記第5の任意数Mを前記第2のパラメータXで暗号化して算出する値Vは、V=E(M)で表され、前記値Vを前記第3の値で復号化して算出する値Mは、
Figure 0005101535
で表され、前記第2関数hは、ハッシュ関数であることが好ましい。
本発明は、パスワードの知識を証明する認証方法において、証明者の内部情報が漏洩する攻撃環境や、証明者端末の内部情報を取得する攻撃環境や、証明者端末の内部の疑似乱数源を制御される攻撃環境における安全性を向上させることができる。また、証明者の内部情報が漏洩する攻撃環境における安全性を向上させた認証方法において、実装の手間や費用、実施に要する時間や費用を少なくすることができる。
証明者端末と検証者装置の構成図である。 設定段階における証明者端末と検証者装置の動作を説明するフローチャートである。 認証段階における証明者端末と検証者装置の動作を説明するフローチャートである。 共通鍵を求めるときの証明者端末と検証者装置の動作を説明するフローチャートである。
本発明の実施の形態について図面を参照して説明する。以下において、kをセキュリティパラメータとして、〈G〉を離散対数問題がkに応じて困難である巡回群で元Gによって生成されるものとする。たとえば楕円エルガマル暗号で用いられる群などが好適である。以下、このような巡回群の暗号を用いる任意の点Gを単に巡回群の値Gと称する。
h:{0,1}→{0,1}2kおよびH:{0,1}→〈G〉をハッシュ関数とする。
(第1の実施の形態)
第1の実施の形態は、証明者がパスワードを入力するための装置を備えた証明者端末と、検証者装置の間で実施される。実施される方式は、設定と認証の2段階からなる。
図1は、証明者端末と検証者装置の構成図である。証明者端末10は、証明者からのデータ入力を受け付ける入力部11と、検証者装置と通信を行う送受信部12と、制御部13と、各種演算を行う演算部14と、乱数を生成する乱数生成部15と、安全補強情報を蓄積するための静的記憶装置16を備える。このような認証者端末には、ICカードや、携帯端末、あるいは携帯端末上で動作する仮想マシンを想定することができる。
検証者装置20は、証明者端末と通信を行う送受信部22と、制御部23と、各種演算を行う演算部24と、乱数を生成する乱数生成部25と、証明者の識別子と証明者の認証に用いる認証情報との組を記録する静的記憶装置26を備える。このような検証者装置には一般的なPCやサーバなどを想定することができる。
なお、証明者端末10と検証者装置20は、予めhおよびHのハッシュ関数の仕様と、Gや巡回群の計算を行うために必要な情報、Gの位数を共有する。適切な巡回群の例としては、たとえば楕円曲線が考えられる。したがって、双方の装置は、楕円曲線を用いる場合、楕円パラメータと楕円の点Gの座標(x,y)の値、およびGの位数を共有している。
図2は、設定段階における証明者端末と検証者装置の動作を説明するフローチャートである。設定段階において、証明者端末と検証者装置は次のようにふるまう。
証明者端末10は、乱数生成部15において2kビットの乱数Bを生成し、記憶装置16に記憶する(S100)。次に、入力部11から証明者の識別子とパスワードの入力を受け付ける(S101)。識別子をI、パスワードをAとする。次に、送受信部12から検証者装置20に識別子Iを送信する(S102)。
検証者装置20は、送受信部22を介して証明者端末10から識別子Iを受信すると(S103)、乱数生成部25において2kビットの乱数Dを生成し(S104)、生成された乱数Dを証明者端末10に送信する(S105)。
証明者端末10は、検証者装置20から値Dを受信すると(S106)、演算部14においてハッシュ値R=H(D)、Y=Gを計算し(S107)、計算して得られた値Yを検証者装置20に送信する(S108)。
検証者装置20は、証明者端末10から値Yを受信すると(S109)、(I,Y,D)を記憶装置26に記憶する(S110)。
図3は、認証段階における証明者端末と検証者装置の動作を説明するフローチャートである。認証段階において、証明者端末と検証者装置は次のようにふるまう。
証明者端末10は、入力部11から証明者の識別子とパスワードの入力を受け付ける(S200)。識別子をI、パスワードをAとする。次に、送受信部12から検証者装置20に識別子Iを送信する(S201)。
検証者装置20は、送受信部22を介して証明者端末10から識別子Iを受信すると(S202)、記憶装置26から(I,Y,D)を読み出し、演算部24においてハッシュ値R=H(D)を計算する(S203)。次に、乱数生成部25において2kビットの乱数uを生成し(S204)、演算部24においてS=G,T=Rを計算し、証明情報πを計算する(S205)。次に、送受信部22から証明者端末10にS,T,πを送信する(S206)。
証明者端末10は、検証者装置20から値SおよびT、証明情報πを受信すると(S207)、制御部13において証明情報πを検証し(S208)、検証に不合格であれば処理を中止する。検証に合格すれば、記憶装置16から値Bを読み出し、演算部14においてX=Sを計算する(S209)。次に、乱数生成部15においてkビットの乱数Mを生成し(S210)、演算部14においてハッシュ値V=h(X,M)を計算する(S211)。計算して得られた(V,M)を検証者装置20に送信する(S212)。
検証者装置20は、証明者端末10から(V,M)を受信すると(S213)、制御部23においてV=h(Y,M)を確認する(S214)。V=h(Y,M)であれば認証合格のメッセージを出力する(S215)。それ以外の場合は機能を停止する。
証明情報πの計算と検証は、S=GかつT=Rとなる数uの知識に関する非対話的ゼロ知識証明である。一例を次に述べる。πの計算のためには、2kビットの乱数wを生成し、W=G,W=R、c=h(W,W)、z=−cu+w(mod n)を計算し、π=(z,c)とする。ただしnはGの位数である。π=(z,c)の検証のためには、h(G,R)=cを満たすことを確認する。
(第2の実施の形態)
認証段階の後半を置き換えることで共通鍵生成方法として機能する。E(M)は共通鍵暗号の暗号化を表し、D(C)は共通鍵暗号の復号化を表すものとする。ただしKは鍵、Mは平文、Cは暗号文である。
第1の実施の形態を共通鍵生成方法に変形すると、図4の通りである。登録段階と証明情報に関する手続は同様である。認証段階において、証明者端末と検証者装置は次のようにふるまう。
証明者端末10は、入力部11から証明者の識別子とパスワードの入力を受け付ける(S300)。識別子をI、パスワードをAとする。次に、送受信部12から検証者装置20に識別子Iを送信する(S301)。
検証者装置20は、送受信部22を介して証明者端末10から識別子Iを受信すると(S302)、記憶装置26から(I,Y,D)を読み出し、演算部24においてハッシュ値R=H(D)を計算する(S303)。次に、乱数生成部25において2kビットの乱数uを生成し(S304)、演算部24においてS=G,T=Rを計算し、証明情報πを計算する(S305)。次に、送受信部22から証明者端末10にS,T,πを送信する(S306)。
証明者端末10は、検証者装置20から値SおよびT、証明情報πを受信すると(S307)、制御部13において証明情報πを検証し(S308)、検証に不合格であれば処理を中止する。検証に合格すれば、記憶装置16から値Bを読み出し、演算部14においてX=Sを計算する(S309)。次に、乱数生成部15においてkビットの乱数Mを生成し(S310)、演算部14においてXを鍵としてV=E(M)を計算する(S311)。計算して得られたVを検証者装置20に送信する(S312)。
検証者装置20は、証明者端末10からVを受信すると(S313)、演算部24においてYを鍵として
Figure 0005101535
を計算する(S314)。次に、乱数生成部25においてkビットの乱数Mを生成し(S315)、演算部24においてYを鍵として
Figure 0005101535
を計算する(S316)。計算して得られたVを証明者端末10に送信する(S317)。
証明者端末10は、Vを検証者装置20から受信すると(S318)、演算部14においてXを鍵としてM=D(V)を計算する(S319)。次に、制御部13において、ある文字列MによってM=M|Mと分解できるかどうかを確かめる(S320)。分解できなければ機能を停止する。なお、M|Mとは、MとMとをビット結合することを意味する。分解できたならば演算部14においてV=E(M)を計算する(S321)。計算して得られたVを検証者装置20に送信する(S322)。そして、共有鍵をK=h(M|M)とする(S323)。
検証者装置20は、証明者端末10からVを受信すると(S324)、制御部23において
Figure 0005101535
であることを確認する(S325)。確認できなければ、機能を停止する。確認できたならば、共有鍵をK=h(M|M)とする(S326)。
10 証明者端末
11 入力部
12,22 送受信部
13,23 制御部
14,24 演算部
15,25 乱数生成部
16,26 記憶装置
20 検証者装置

Claims (10)

  1. 証明者端末にて証明者からの識別子IとパスワードAを受け付けて、検証者装置によって当該証明者を認証する方法であって、
    前記証明者端末と前記検証者装置の双方は、巡回群の値Gと、第1関数Hと、第2関数hとを共有しており、
    前記証明者端末は、証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、パスワードAと、前記巡回群の値Gとを保持しており、
    前記検証者装置は、前記識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶しており、
    前記証明者端末が、証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信するステップと、
    前記検証者装置が、識別子Iを受信して、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信するステップと、
    前記証明者端末が、前記第1の値Sと前記第2の値Tを受信して、前記第1の値Sと、前記パスワードAと、前記第2の値Tと、前記第1の任意数Bとから定まる第2のパラメータXを算出するとともに、該第2のパラメータXと当該証明者端末によって生成した第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信するステップと、
    前記検証者装置が、値Vと第4の任意数Mを受信して、前記第1のパラメータYと第3の任意数uで定まる第3の値と、第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証するステップと、
    を含むことを特徴とする認証方法。
  2. 前記検証者装置が、前記第1の値Sかつ前記第2の値Tとなる前記第3の任意数uの非対話的ゼロ知識証明となる証明情報πを算出し、算出した証明情報πを前記証明者端末に送信するステップと、
    前記証明者端末が、前記証明情報πを受信し、証明情報πを検証するステップと、
    を更に含むことを特徴とする請求項1に記載の認証方法。
  3. 前記第1関数Hは、ハッシュ関数であって、値Rは、R=H(D)で表され、
    前記第1パラメータYは、Y=Gで表され、
    前記第1の値Sは、S=Gで表され、
    前記第2の値Tは、T=Rで表され、
    前記第2のパラメータXは、X=Sで表され、
    前記第2関数hは、ハッシュ関数であって、
    前記証明者端末が算出する値Vは、V=h(X,M)で表され、
    前記検証者装置が算出する値Vは、V=h(Y,M)で表され、
    前記証明情報πは、任意数wとし、nをGの位数としたとき
    π=(z,c)、
    ここに、W=G
    =R
    c=h(W,W
    z=−cu+w(mod n)
    で表され、
    前記検証するステップは、h(G,R)=cを満たすか否かで検証することを特徴とする請求項2に記載の認証方法。
  4. 証明者端末にて証明者からの識別子IとパスワードAを受け付けて、検証者装置によって当該証明者を認証する認証システムであって、
    前記証明者端末と前記検証者装置の双方は、巡回群の値Gと、第1関数Hと、第2関数hとを共有しており、
    前記証明者端末は、
    証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、パスワードAと、前記巡回群の値Gとを保持する手段と、
    証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信する手段と、
    前記検証者装置から、前記巡回群の値Gと検証者装置によって生成した第3の任意数uで定まる第1の値Sと、前記第2の任意数Dから定まる第1関数Hの値Rと第3の任意数uで定まる第2の値Tとを受信する手段と、
    受信した前記第1の値Sと、前記パスワードAと、受信した前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、第2のパラメータXと第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信する手段と、を備え、
    前記検証者装置は、
    前記識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶する手段と、
    前記証明者端末から、証明者の識別子Iを受信する手段と、
    受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信する手段と、
    前記証明者端末から、前記第1の値S、前記パスワードA、前記第2の値T、および前記第1の任意数Bから算出された第2のパラメータXと、証明者端末によって生成した第4の任意数Mとで定まる第2関数hの値Vを受信するとともに、前記第4の任意数Mを受信する手段と、
    前記第1のパラメータYと第3の任意数uで定まる第3の値と、受信した第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証する手段と、
    を備えることを特徴とする認証システム。
  5. 証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、パスワードAと、前記巡回群の値Gとを保持する手段と、
    証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信する手段と、
    前記検証者装置から、前記巡回群の値Gと検証者装置によって生成した第3の任意数uで定まる第1の値Sと、前記第2の任意数Dから定まる第1関数Hの値Rと第3の任意数uで定まる第2の値Tとを受信する手段と、
    受信した前記第1の値Sと、前記パスワードAと、受信した前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、第2のパラメータXと第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信する手段と、
    を備えることを特徴とする証明者端末。
  6. 前記識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶する手段と、
    前記証明者端末から、証明者の識別子Iを受信する手段と、
    受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信する手段と、
    前記証明者端末から、前記第1の値S、前記パスワードA、前記第2の値T、および前記第1の任意数Bから算出された第2のパラメータXと、証明者端末によって生成した第4の任意数Mとで定まる第2関数hの値Vを受信するとともに、前記第4の任意数Mを受信する手段と、
    前記第1のパラメータYと第3の任意数uで定まる第3の値と、受信した第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証する手段と、
    を備えることを特徴とする検証者装置。
  7. コンピュータに請求項4に記載の認証システムの証明者端末の機能を実現させるプログラムであって、
    証明者からの識別子IとパスワードAの入力を受け付けて、検証者装置に識別子Iを送信するステップと、
    前記検証者装置から、前記巡回群の値Gと検証者装置によって生成した第3の任意数uで定まる第1の値Sと、前記第2の任意数Dから定まる第1関数Hの値Rと第3の任意数uで定まる第2の値Tとを受信するステップと、
    受信した前記第1の値Sと、前記パスワードAと、受信した前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、第2のパラメータXと第4の任意数Mから定まる第2関数hの値Vを算出し、算出した値Vと第4の任意数Mを前記検証者装置に送信するステップと、
    を実行させるためのプログラム。
  8. コンピュータに請求項4に記載の認証システムの検証者装置の機能を実現させるプログラムであって、
    前記証明者端末から、証明者の識別子Iを受信するステップと、
    受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信するステップと、
    前記証明者端末から、前記第1の値S、前記パスワードA、前記第2の値T、および前記第1の任意数Bから算出された第2のパラメータXと、証明者端末によって生成した第4の任意数Mとで定まる第2関数hの値Vを受信するとともに、前記第4の任意数Mを受信するステップと、
    前記第1のパラメータYと第3の任意数uで定まる第3の値と、受信した第4の任意数Mとで定まる第2関数hの値Vを算出し、算出した値Vを用いて、前記受信した値Vを検証するステップと、
    を実行させるためのプログラム。
  9. 証明者端末と検証者装置の双方において使用される共有鍵を生成する共有鍵生成方法であって、
    前記証明者端末と前記検証者装置の双方は、巡回群の値Gと、第1関数Hと、第2関数hとを共有しており、
    前記証明者端末は、証明者端末によって生成した第1の任意数Bと、前記検証者装置によって生成された第2の任意数Dを受信して算出した第1関数Hの値Rと、証明者から受け付けたパスワードAと、前記巡回群の値Gとを保持しており、
    前記検証者装置は、証明者の識別子Iと、前記第2の任意数Dと、前記証明者端末から受信した、第1の任意数Bと値RとパスワードAと巡回群の値Gから定まる第1パラメータYとを予め記憶しており、
    前記証明者端末が、証明者からの識別子IとパスワードAの入力を受け付けて、前記検証者装置に識別子Iを送信するステップと、
    前記検証者装置が、識別子Iを受信して、受信した識別子Iと予め記憶している識別子Iとを検証し、一致した場合に予め記憶している第2の任意数Dを用いて、第2の任意数Dから定まる第1関数Hの値Rを算出し、第3の任意数uを生成し、前記巡回群の値Gと第3の任意数uで定まる第1の値Sと、値Rと第3の任意数uで定まる第2の値Tとを算出し、前記証明者端末に第1の値Sと第2の値Tを送信するステップと、
    前記証明者端末が、前記第1の値Sと前記第2の値Tを受信して、前記第1の値Sと、前記パスワードAと、前記第2の値Tと、前記第1の任意数Bとから第2のパラメータXを算出し、証明者端末によって生成した第4の任意数Mを第2のパラメータXで暗号化して値Vを算出し、算出した値Vを前記検証者装置に送信するステップと、
    前記検証者装置が、値Vを受信して、値Vを前記第1のパラメータYと第3の任意数uで定まる第3の値で復号化して値Mを算出し、値Mと検証者装置によって生成した第5の任意数Mとをビット結合したものを前記第3の値で暗号化して値Vを算出し、算出した値Vを前記検証者装置に送信するステップと、
    前記証明者端末が、値Vを受信して、値Vを前記第2のパラメータXで復号化して値Mを算出し、値Mが第5の任意数Mによって分解できるかどうかを確認し、分解できれば第5の任意数Mを第2のパラメータXで暗号化して値Vを算出し、前記検証者装置に値Vを送信し、値Mと第5の任意数Mとをビット結合したもので定まる第2関数hの値を共有鍵Kとするステップと、
    前記検証者装置が、値Vを受信して、値Vを前記第3の値で復号化して値Mを算出し、算出した値Mを用いて、前記第5の任意数Mを検証し、検証が成功であれば値Mと第5の任意数Mとをビット結合したもので定まる第2関数hの値を共有鍵Kとするステップと、
    を含むことを特徴とする共有鍵生成方法。
  10. 前記第1関数Hは、ハッシュ関数であって、値Rは、R=H(D)で表され、
    前記第1パラメータYは、Y=Gで表され、
    前記第1の値Sは、S=Gで表され、
    前記第2の値Tは、T=Rで表され、
    前記第2のパラメータXは、X=Sで表され、
    前記第4の任意数Mを第2のパラメータXで暗号化して算出する値Vは、V=E(M)で表され、
    前記値Vを前記第3の値で復号化して算出する値Mは、
    Figure 0005101535
    で表され、
    前記値Mと前記第5の任意数Mとをビット結合したものを前記第3の値で暗号化して算出する値Vは、
    Figure 0005101535
    で表され、
    前記第5の任意数Mを前記第2のパラメータXで暗号化して算出する値Vは、V=E(M)で表され、
    前記値Vを前記第3の値で復号化して算出する値Mは、
    Figure 0005101535
    で表され、
    前記第2関数hは、ハッシュ関数であることを特徴とする請求項9に記載の共有鍵生成方法。
JP2009009268A 2009-01-19 2009-01-19 認証方法、認証システム、プログラムおよび共有鍵生成方法 Expired - Fee Related JP5101535B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009009268A JP5101535B2 (ja) 2009-01-19 2009-01-19 認証方法、認証システム、プログラムおよび共有鍵生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009009268A JP5101535B2 (ja) 2009-01-19 2009-01-19 認証方法、認証システム、プログラムおよび共有鍵生成方法

Publications (2)

Publication Number Publication Date
JP2010166526A JP2010166526A (ja) 2010-07-29
JP5101535B2 true JP5101535B2 (ja) 2012-12-19

Family

ID=42582312

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009009268A Expired - Fee Related JP5101535B2 (ja) 2009-01-19 2009-01-19 認証方法、認証システム、プログラムおよび共有鍵生成方法

Country Status (1)

Country Link
JP (1) JP5101535B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5488653B2 (ja) * 2012-07-17 2014-05-14 沖電気工業株式会社 鍵共有被計算委託装置、鍵共有システム及び通信システム
JP6622795B2 (ja) * 2014-05-22 2019-12-18 アナログ ディヴァイスィズ インク 動的鍵生成を用いるネットワーク認証システム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6226383B1 (en) * 1996-04-17 2001-05-01 Integrity Sciences, Inc. Cryptographic methods for remote authentication
US7047408B1 (en) * 2000-03-17 2006-05-16 Lucent Technologies Inc. Secure mutual network authentication and key exchange protocol
JP2003218856A (ja) * 2002-01-24 2003-07-31 Nippon Telegr & Teleph Corp <Ntt> 匿名通信路の処理正当性証明装置、証明・検証装置及び匿名通信路の処理正当性証明方法、証明・検証方法
US7814320B2 (en) * 2005-07-19 2010-10-12 Ntt Docomo, Inc. Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks

Also Published As

Publication number Publication date
JP2010166526A (ja) 2010-07-29

Similar Documents

Publication Publication Date Title
US7716484B1 (en) System and method for increasing the security of encrypted secrets and authentication
US9853816B2 (en) Credential validation
Jiang et al. A privacy enhanced authentication scheme for telecare medical information systems
JP5330591B2 (ja) 身元認証及び共有鍵生成の方法
US8195951B2 (en) Data processing system for providing authorization keys
EP1825632B1 (en) Secure interface for versatile key derivation function support
Odelu et al. A secure and efficient ECC‐based user anonymity preserving single sign‐on scheme for distributed computer networks
JP6041864B2 (ja) データの暗号化のための方法、コンピュータ・プログラム、および装置
Das A secure and robust password-based remote user authentication scheme using smart cards for the integrated epr information system
CN109818752A (zh) 信用评分生成方法、装置、计算机设备和存储介质
CN107248997B (zh) 多服务器环境下基于智能卡的认证方法
US20230327884A1 (en) Method for electronic signing and authenticaton strongly linked to the authenticator factors possession and knowledge
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
JP5101535B2 (ja) 認証方法、認証システム、プログラムおよび共有鍵生成方法
JP2003152716A (ja) 可変認証情報を用いる資格認証方法
CN113545004A (zh) 具有减少攻击面的认证系统
TW200803392A (en) Method, device, server arrangement, system and computer program products for securely storing data in a portable device
JP4937921B2 (ja) 汎用鍵導出関数サポートのための安全インタフェース
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
Kwon Virtual software tokens-a practical way to secure PKI roaming
WO2011152084A1 (ja) 効率的相互認証方法、プログラム、及び装置
JP3746919B2 (ja) 可変認証情報を用いる資格認証方法
CN112925535A (zh) 一种密码芯片嵌入式应用安装方法及装置
JP2002063139A (ja) 端末装置、サーバ装置および端末認証方法
CN115460020B (zh) 数据共享方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110106

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120914

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: 20120925

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: 20120926

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

Free format text: PAYMENT UNTIL: 20151005

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5101535

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees