JP2005217665A - 通信システム、送信装置、受信装置及び通信方法 - Google Patents

通信システム、送信装置、受信装置及び通信方法 Download PDF

Info

Publication number
JP2005217665A
JP2005217665A JP2004020515A JP2004020515A JP2005217665A JP 2005217665 A JP2005217665 A JP 2005217665A JP 2004020515 A JP2004020515 A JP 2004020515A JP 2004020515 A JP2004020515 A JP 2004020515A JP 2005217665 A JP2005217665 A JP 2005217665A
Authority
JP
Japan
Prior art keywords
public key
result
key
data
secret information
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.)
Pending
Application number
JP2004020515A
Other languages
English (en)
Inventor
Takeshi Inamura
雄 稲村
Setsuyuki Hongo
節之 本郷
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
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 NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2004020515A priority Critical patent/JP2005217665A/ja
Publication of JP2005217665A publication Critical patent/JP2005217665A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】情報を受信する受信装置の公開鍵の真正性を容易に検証でき、公開鍵を用いた安全な通信ができる通信システム、送信装置、受信装置及び通信方法を提供する。
【解決手段】端末装置20が、対象公開鍵と検証用データとを演算した鍵データ演算結果を、秘密情報により暗号化した暗号結果をサーバ10に送信する。サーバ10は、端末装置20から鍵データ演算結果の暗号結果を受信し、秘密情報により復号する。サーバ10は、その復号結果から検証用データをサーバ10の公開鍵を用いて演算し、得られた検証用データ演算結果を端末装置20に送信する。端末装置20は、サーバ10が鍵データ演算結果の暗号結果から取得した検証用データ演算結果を受信する。端末装置20は、検証用データと検証用データ演算結果とを比較することにより、対象公開鍵がサーバ10の公開鍵であるか否かを判断する。
【選択図】図1

Description

本発明は、通信システム、送信装置、受信装置及び通信方法に関する。
従来、不特定多数のユーザが通信を行うインターネットのようなネットワークを安全に利用する技術として、1976年に提案された公開鍵暗号が用いられている。公開鍵暗号では、受信者が公開する公開鍵を用いて暗号化する。暗号結果は、公開鍵によっては復号できず、受信者の秘密鍵によってのみ正しく復号できる。このような公開鍵暗号により、暗号化及び復号に同じ鍵を用いる共通鍵暗号における鍵の安全な共有といった課題が解消される。又、公開鍵暗号を用いることにより、情報の作成者や改竄の有無を第三者が検証可能な電子署名を実現できる(例えば、非特許文献1)。
しかし、公開鍵暗号には、あるユーザの公開鍵がそのユーザの真正な公開鍵であるかをどのようにして検証するかという課題がある。公開鍵の真正性が検証できないと、ユーザは、例えば図7に示すような攻撃を受けてしまう。
サーバ410が、サーバ410の公開鍵(PKa)を端末装置420に対して送信する(S401)。このとき、通信サーバ410と端末装置420との間の通信経路に存在する攻撃端末430が、公開鍵(PKa)を盗聴して記憶する(S402)。更に、攻撃端末430は、サーバ410の公開鍵(PKa)を攻撃端末430の公開鍵(PKm)に改竄して、端末装置420に送信する(S403)。端末装置420は、攻撃端末430の公開鍵(PKm)を、サーバ410の公開鍵と誤認し、情報(I)を公開鍵(PKm)により暗号化して、暗号結果EPKm(I)を得る(S404)。そして、端末装置420は、暗号結果EPKm(I)をサーバ410に対して送信する(S405)。
攻撃端末430は、暗号結果EPKm(I)を盗聴し、攻撃端末430の秘密鍵SKmにより復号する。これにより、攻撃端末430は、情報(I)を得る(S406)。更に、攻撃端末430は、情報(I)を記憶しておいたサーバ410の公開鍵PKaにより暗号化し、暗号結果EPKa(I)を得る(S407)。そして、攻撃端末430は、暗号結結果EPKa(I)をサーバ410に送信する(S408)。サーバ410は、受信した暗号結果EPKa(I)をサーバ410の秘密鍵SKaにより復号し、情報(I)を得る(S409)。
このように攻撃端末430は、ステップ(S402)、(S403)、(S406)〜(S408)のような仲介活動を行うことにより、情報(I)を送受信する当事者であるサーバ410と端末装置420に気付かれることなく、情報(I)を盗聴し、その内容を知ることができる。このような攻撃は仲介者による攻撃(Man−in−the-Middle Attack)と呼ばれる。
このような攻撃に対する対策として、なりすましや改竄のような攻撃が排除された安全な経路を介して公開鍵を配布しておくことにより、公開鍵の真正性を保証する方法がある。例えば、公開鍵をフロッピー(登録商標)ディスクのような記憶媒体に格納し、郵送により配布する方法、情報の改竄が困難な放送電波により公開鍵を送信する方法(例えば、特許文献1参照)等がある。これによれば、攻撃端末が暗号化された情報を盗聴したとしても、その情報を鍵が分からない状況で正しく復号するためには非現実的な処理時間が必要であることから、その内容を知ることを計算量的に困難とすることができる。
又、信頼できる第三者によって発行される改竄困難な公開鍵証明書と共に公開鍵を配布することにより、公開鍵の真正性を保証する方法がある。この方法は、公開鍵の所持者であるユーザに関する所属や名前等の情報と公開鍵とを合わせたデータに電子署名を施した公開鍵証明書により、公開鍵がそのユーザのものであることを保証するものである(例えば、非特許文献2)。尚、上記電子署名を行う組織を認証機関(Certification Authority、以下「CA」という)、CAを用いて公開鍵を安全に配布する仕組みを公開鍵基盤(Public Key Infrastructure)という。
「安全技術大全」、ソフトバンクパブリッシング、2003年6月 「国際電気通信連合電気通信標準化部門 X.509勧告(INFORMATION TECHNOLOGY -OPEN SYSTEMS INTERCONNECTION- THE DIRECTORY: AUTHENTICATION FRAMEWORK ITU-T Recommendation X.509)、1997 特開2002−152189号公報
しかしながら、安全な経路を介して公開鍵を配布する方法は、そのような経路が一般的ではないため、利便性に大きく欠ける。インターネットのような利便性の高いネットワークにおいて安全に情報を送受信するために、事前に不便な経路を使用して公開鍵の配布を受けなければならないのでは、全体としての使い勝手が悪くなってしまう。更に、放送電波は利用できるユーザが限られている。又、同一の公開鍵を使用し続けることは攻撃端末による解読の危険が増加するため、公開鍵は更新することが好ましい。しかし、常に上記安全な経路を使用できるとは限らず、しかも、その度に安全な経路を使わなければならないのでは利便性に欠ける。
公開鍵証明書を用いる方法は、公開鍵基盤の構築、運用を行う必要性があり、煩雑である。しかも、公開鍵証明書を検証するために電子署名を行ったCAの公開鍵が必要であるため、CAの公開鍵の真正性を検証する必要がある。よって、結局、ユーザの公開鍵の真正性をいかに検証するかという問題が、CAの公開鍵の真正性をいかに検証するかという問題に置換されたに過ぎず、根本的な解決には至っていない。
そこで、本発明は、情報を受信する受信装置の公開鍵の真正性を容易に検証でき、公開鍵を用いた安全な通信ができる通信システム、送信装置、受信装置及び通信方法を提供することを目的とする。
本発明に係る通信システムは、送信装置と受信装置を備える。送信装置は、受信装置の公開鍵により暗号化した情報を受信装置に送信する。受信装置は、公開鍵を送信装置に送信し、送信装置からその公開鍵により暗号化された情報を受信する。
送信装置は、検証対象の対象公開鍵と検証用データとを演算する鍵データ演算手段と、鍵データ演算手段による鍵データ演算結果を、受信装置及び送信装置が共用する秘密情報により暗号化する暗号化手段と、暗号化手段による暗号結果を受信装置に送信する暗号結果送信手段と、受信装置が暗号結果から取得した検証用データ演算結果を受信する演算結果受信手段と、検証用データと検証用データ演算結果とを比較し、対象公開鍵が受信装置の公開鍵であるか否かを判断する判断手段とを備える。
受信装置は、送信装置が鍵データ演算結果を秘密情報により暗号化した暗号結果を受信する暗号結果受信手段と、暗号結果を秘密情報により復号する復号手段と、復号手段による復号結果から検証用データを、受信装置の公開鍵を用いて演算する検証用データ演算手段と、検証用データ演算手段による検証用データ演算結果を送信装置に送信する演算結果送信手段とを備える。秘密情報とは、送信装置及び受信装置が、鍵データ演算結果の暗号化及び復号に共通して使用する情報をいう。
このような通信システム、送信装置及び受信装置によれば、送信装置が、対象公開鍵と検証用データとを演算した鍵データ演算結果を、秘密情報により暗号化した暗号結果を受信装置に送信する。受信装置は、送信装置から暗号結果を受信し、秘密情報により復号する。受信装置は、その復号結果から検証用データを、受信装置自身の公開鍵を用いて演算し、得られた検証用データ演算結果を送信装置に送信する。送信装置は、受信装置が暗号結果から取得した検証用データ演算結果を受信する。そして、送信装置は、検証用データと検証用データ演算結果とを比較することにより、対象公開鍵が受信装置の公開鍵であるか否かを判断できる。
即ち、送信装置が受信装置の公開鍵であると認識している検証対象の対象公開鍵が、受信装置の公開鍵ではない場合(以下、受信装置の真正な公開鍵を「真正公開鍵」、真正公開鍵ではない公開鍵を「不正公開鍵」という)、送信装置が受信装置に送信する暗号結果は、不正公開鍵と検証用データとの鍵データ演算結果を暗号化したものになる。そのため、受信装置が、真正公開鍵で暗号結果を復号した復号結果から得られる検証用データ演算結果は、送信装置が用いた検証用データとは異なるものになる。よって、送信装置は、検証用データと検証用データ演算結果が一致する場合には、対象公開鍵は真正公開鍵であり、一致しない場合には、対象公開鍵は不正公開鍵であると判断できる。このように、通信システムでは、受信装置の公開鍵の真正性を容易に検証でき、公開鍵を用いて安全な通信ができる。
又、鍵データ演算手段は、検証用データとして乱数データを用い、公開鍵と乱数データとを排他的論理和演算して鍵データ演算結果を得ることが好ましい。これによれば、この鍵データ演算結果を秘密情報により暗号化した暗号結果の解読を非常に困難にできる。よって、通信システムではより安全に通信できる。
更に、送信装置は、秘密情報の基礎データを記憶する基礎データ記憶手段と、基礎データを不可逆に変換して秘密情報を生成する生成手段とを備え、受信装置は、基礎データを不可逆に変換した秘密情報を記憶する秘密情報記憶手段を備えることが好ましい。これによれば、受信装置が記憶する秘密情報が漏洩しても、秘密情報を基礎データに変換することができない。そのため、秘密情報の漏洩が、基礎データの漏洩には繋がらない。よって、秘密情報が漏洩しても、送信装置は、同じ基礎データを用いて新たな秘密情報を生成して使用できる。そして、受信装置が記憶する秘密情報だけを更新すればよい。そのため、通信システムでは、容易に安全な通信が継続できる。
本発明に係る通信方法は、送信装置が、検証対象の対象公開鍵と検証用データとを演算した鍵データ演算結果を、受信装置及び送信装置が共用する秘密情報により暗号化し、その暗号結果を受信装置に送信する。受信装置が、受信した暗号結果を秘密情報により復号し、その復号結果から検証用データを、受信装置自身の公開鍵を用いて演算した検証用データ演算結果を送信装置に送信する。そして、送信装置が、検証用データと受信した検証用データ演算結果とを比較し、対象公開鍵が受信装置の公開鍵であるか否かを判断することを特徴とする。
以上説明したように、本発明によれば、情報を受信する受信装置の公開鍵の真正性を容易に検証でき、公開鍵を用いた安全な通信ができる通信システム、送信装置、受信装置及び通信方法を提供することができる。
[第1の実施の形態]
〔通信システム〕
図1に示すように、通信システム1は、サーバ10と、端末装置20と、ネットワーク30とを備える。端末装置20は、受信装置の公開鍵により暗号化した情報を受信装置に送信する送信装置である。サーバ10は、公開鍵を送信装置に送信し、送信装置からその公開鍵により暗号化された情報を受信する受信装置である。よって、端末装置20は、サーバ10の公開鍵により情報を暗号化してサーバ10に送信する。サーバ10は、端末装置20に公開鍵を送信し、端末装置20が公開鍵により暗号化した情報を受信する。サーバ10と端末装置20は、ネットワーク30を介して通信する。ネットワーク30は、例えば、インターネットのような不特定多数のユーザが使用可能なネットワークを用いることができる。
端末装置20は、通信インタフェース21と、記憶部22と、暗号化部23と、演算部24と、判断部25とを備える。記憶部22は、秘密情報を記憶する秘密情報記憶手段である。秘密情報は、端末装置20及びサーバ10が鍵データ演算結果の暗号化及び復号に共通して使用する情報である。秘密情報は、端末装置20及びサーバ10のみが知っている情報である。秘密情報は、例えば、受信装置のユーザ認証に用いる情報、又は、送信装置のユーザ認証に用いる情報の少なくとも1つを用いることができる。具体的には、秘密情報として、例えば、各端末装置20、各サーバ10、複数の端末装置20からなるグループ、複数のサーバ10からなるグループ等に割り当てられているパスワード、ユーザ名、ユーザID、グループ名、グループID等を用いることができる。例えば、サーバ10が端末装置20のユーザ毎に、サーバ10にログインするために割り当てているパスワード、ユーザ名やユーザIDを用いることができる。
本実施形態では、秘密情報として、端末装置20のユーザ毎に割り当てられているパスワードを用いる。記憶部22は、端末装置20のユーザのユーザ名「A」とパスワード「PWDa」を記憶する。
演算部24は、検証対象の対象公開鍵と検証用データとを演算する鍵データ演算手段である。対象公開鍵は、送信装置が受信装置の公開鍵であると認識している鍵である。演算部24は、通信インタフェース21が受信した、サーバ10の公開鍵であるとして送信されてきた鍵を、通信インタフェース21から取得する。本実施形態では、このサーバ10の公開鍵であるとして送信されてきた鍵が、端末装置20がサーバ10の公開鍵と認識している対象公開鍵となる。
演算部24は、検証用データを生成する。検証用データは、受信装置の公開鍵の真正性を検証するためのデータである。演算部24は、検証用データとして、任意のデータを用いることができるが、乱数データを用いることが好ましい。本実施形態では、演算部24は、対象公開鍵とデータのサイズが同じ大きさの乱数データを生成する。尚、記憶部22が検証用データの候補を記憶しておき、演算部24は、検証用データを生成せずに、記憶部22が記憶する候補の中から選択してもよい。
演算部24は、対象公開鍵と検証用データとを演算する。演算部24は、対象公開鍵と検証用データを用いた演算を行えばその内容は特に限定されないが、検証用データとして乱数データを用い、対象公開鍵と乱数データとを排他的論理和演算することが好ましい。演算部24は、対象公開鍵と検証用データの演算結果である鍵データ演算結果を、暗号化部23に入力する。更に、演算部24は、対象公開鍵と、その検証用データとを対応付けて判断部25に入力する。
暗号化部23は、鍵データ演算手段による鍵データ演算結果を秘密情報により暗号化する暗号化手段である。暗号化部23は、演算部24から鍵データ演算結果を取得する。暗号化部23は、記憶部22から秘密情報を取得する。暗号化部23は、秘密情報を鍵として鍵データ演算結果を共通鍵暗号方式により暗号化する。本実施形態では、暗号化部23は、対象公開鍵と乱数データを排他的論理和演算した鍵データ演算結果を、端末装置20のユーザのパスワード「PWDa」により暗号化する。暗号化部23は、記憶部22からユーザ名「A」も取得しておき、鍵データ演算結果の暗号結果をユーザ名「A」に対応付けて通信インタフェース21に入力する。又、暗号化部23は、判断部25の指示に従って、端末装置20がサーバ10に送信する情報を、サーバ10の公開鍵を用いて暗号化する。暗号化部23は、情報の暗号結果を通信インタフェース21に入力する。
判断部25は、検証用データと検証用データ演算結果とを比較し、対象公開鍵が受信装置の公開鍵であるか否かを判断する判断手段である。判断部25は、演算部24から、対象公開鍵とその検証用データとを取得する。判断部25は、通信インタフェース21から、通信インタフェース21が受信した、サーバ10が鍵データ演算結果の暗号結果から取得した検証用データ演算結果を取得する。判断部25は、検証用データと検証用データ演算結果が一致する場合には、サーバ10の公開鍵であるとして送信されてきた対象公開鍵は、サーバ10の真正公開鍵であると判断する。一方、判断部25は、検証用データと検証用データ演算結果が一致しない場合には、対象公開鍵は、サーバ10の真正公開鍵ではなく、不正公開鍵であると判断する。
このとき、サーバ10から送信される検証用データ演算結果は、一方向ハッシュ関数により演算されており、ハッシュ値となっている場合がある。そのため、判断部25は、演算部24から取得した検証用データを、サーバ10と同じ一方向ハッシュ関数により演算し、ハッシュ値を求めておく。尚、用いる一方向ハッシュ関数は、予めサーバ10と端末装置20との間で設定しておくことができる。判断部25は、検証用データのハッシュ値と、検証用データ演算結果のハッシュ値とを比較する。そして、判断部25は、両者のハッシュ値が一致する場合には、対象公開鍵は真正公開鍵、両者のハッシュ値が一致しない場合には、対象公開鍵は不正公開鍵と判断する。
一方向ハッシュ関数とは、対象データから対象データ特有とみなすことができる短いデータであって、元の対象データに変換できないハッシュ値を生成可能な関数である。通常、ハッシュ値は百数ビット程度が一般的である。2つの対象データのハッシュ値が一致する場合には、その基礎となっている対象データも同一であることが非常に高い確率で保証される(例えば、非特許文献1参照)。そのため、判断部25は、検証用データのハッシュ値と、検証用データ演算結果のハッシュ値を用いて、正しく判断を行うことができる。
判断部25は、対象公開鍵を真正公開鍵と判断した場合には、対象公開鍵をサーバ10の公開鍵として暗号化部23に入力し、サーバ10の公開鍵でサーバ10に送信する情報を暗号化するよう暗号化部23に指示する。一方、判断部25は、対象公開鍵を不正公開鍵と判断した場合には、対象公開鍵を破棄する。更に、判断部25は、通信インタフェース21にサーバ10との接続の切断を指示する。
通信インタフェース21は、ネットワーク30を介してサーバ10と通信する。通信インタフェース21は、サーバ10の公開鍵であるとして送信されてきた鍵を受信し、対象公開鍵として演算部24に入力する。通信インタフェース21は、暗号化部23から、ユーザ名「A」に対応付けられた鍵データ演算結果の暗号結果を取得する。通信インタフェース21は、取得した暗号結果をサーバ10に送信する。このようにして、通信インタフェース21は、暗号化手段による暗号結果を受信装置に送信する暗号結果送信手段として機能する。
更に、通信インタフェース21は、サーバ10から、サーバ10が鍵データ演算結果の暗号結果から取得した検証用データ演算結果を受信し、判断部25に入力する。このようにして、通信インタフェース21は、受信装置が暗号結果から取得した検証用データ演算結果を受信する演算結果受信手段として機能する。又、通信インタフェース21は、暗号化部23から、端末装置20がサーバ10に送信する情報の暗号結果を取得する。通信インタフェース21は、取得した情報の暗号結果をサーバ10に送信する。
サーバ10は、通信インタフェース11と、鍵生成部12と、鍵記憶部13と、パスワードデータベース14と、検索部15と、復号部16と、演算部17とを備える。鍵生成部12は、サーバ10の公開鍵と秘密鍵を生成する。鍵生成部12は、生成した公開鍵と秘密鍵を鍵記憶部13に格納する。鍵記憶部13は、サーバ10の公開鍵と秘密鍵を記憶する。鍵生成部12は、生成した公開鍵を通信インタフェース11に入力する。
パスワードデータベース14は、秘密情報を記憶する秘密情報記憶手段である。パスワードデータベース14は、ユーザ名やユーザID、グループ名やグループID等に対応付けて、秘密情報を記憶する。本実施形態では、パスワードデータベース14は、複数の端末装置20のユーザのユーザ名「A」、「B」、「C」に対応付けて、それぞれのユーザのパスワード「PWDa」、「PWDb」、「PWDc」を記憶する。
検索部15は、鍵データ演算結果の暗号結果を復号する秘密情報を取得する取得手段である。検索部15は、通信インタフェース11から、通信インタフェース11が受信した、ユーザ名「A」に対応付けられた鍵データ演算結果の暗号結果を取得する。検索部15は、ユーザ名に基づいてパスワードデータベース14を検索し、ユーザ名「A」に対応するパスワード「PWDa」を、復号に用いる秘密情報として取得する。検索部15は、鍵データ演算結果の暗号結果と、取得した秘密情報、即ち、パスワード「PWDa」とを対応付けて復号部16に入力する。
復号部16は、鍵データ演算結果の暗号結果を、秘密情報により復号する復号手段である。復号部16は、検索部15から、鍵データ演算結果の暗号結果と秘密情報を取得する。本実施形態では、復号部16は、パスワード「PWDa」により暗号結果を復号する。復号部16は、鍵データ演算結果の暗号結果を復号した復号結果を、演算部17に入力する。又、復号部16は、通信インタフェース11から、通信インタフェース11が受信した端末装置20からの情報の暗号結果を取得する。復号部16は、鍵記憶部13からサーバ10の秘密鍵を取得する。復号部16は、サーバ10の公開鍵により暗号化された暗号結果を、サーバ10の秘密鍵により復号し、端末装置20からの情報を得る。
演算部17は、復号手段による復号結果から検証用データを、受信装置自身の公開鍵を用いて演算する検証用データ演算手段である。演算部17は、復号部16から復号結果を取得する。演算部17は、鍵記憶部13からサーバ10の公開鍵を取得する。演算部17は、端末装置20において行われた対象公開鍵と検証用データとの演算内容に基づいて、復号結果と公開鍵を演算し、復号結果から検証用データを求める。尚、演算内容は、予めサーバ10と端末装置20との間で設定しておくことができる。
本実施形態では、端末装置20は、検証用データとして乱数データを用い、対象公開鍵と乱数データを排他的論理和演算する。そのため、演算部17は、復号結果とサーバ10の公開鍵とを排他的論理和演算し、検証用データを求める。演算部17は、復号結果からサーバ10の公開鍵を用いて演算した検証用データを、検証用データ演算結果として通信インタフェース11に入力する。このとき、演算部17は、検証用データ演算結果を一方向ハッシュ関数により演算することが好ましい。この場合、演算部17は、検証用データ演算結果を一方向ハッシュ関数により演算して求めたハッシュ値を通信インタフェース11に入力する。
このように、復号部16が鍵データ演算結果の暗号結果を秘密情報により復号し、演算部17が復号結果とサーバ10の公開鍵を演算することにより、サーバ10は、鍵データ演算結果の暗号結果から検証用データ演算結果を取得する。
通信インタフェース11は、ネットワーク30を介して端末装置20と通信する。通信インタフェース11は、鍵生成部12からサーバ10の公開鍵を取得し、端末装置20にサーバ10の公開鍵として送信する。通信インタフェース11は、端末装置20から、ユーザ名「A」に対応付けられた鍵データ演算結果の暗号結果を受信する。通信インタフェース11は、受信した暗号結果を検索部15に入力する。このようにして、通信インタフェース11は、暗号結果を受信する暗号結果受信手段として機能する。更に、通信インタフェース11は、演算部17から検証用データ演算結果を取得し、端末装置20に送信する。このように、通信インタフェース11は、検証用データ演算手段による検証用データ演算結果を送信装置に送信する演算結果送信手段として機能する。
〔通信方法〕
次に、通信システム1を用いた通信方法について図2を用いて説明する。図2では、秘密情報を「SEC」、乱数データを「RND」、サーバ10の公開鍵を「PKs」、対象公開鍵を「PKt」、秘密鍵を「SK」、端末装置20がサーバ10に送信する情報を「I」、鍵XによるデータYの暗号化及びその暗号結果を「Ex(Y)」、データXとデータYとの排他的論理演算及びその演算結果を「X EOR Y」、データXの一方向ハッシュ関数による演算を「H(X)」、H(X)の演算結果であるデータXのハッシュ値を、サーバ10が求めたハッシュ値を「FPx」、端末装置20が求めたハッシュ値を「FPx’」と表記する。
サーバ10が、サーバ10の公開鍵(PKs)を生成し、端末装置20に送信する(S101)。端末装置20は、サーバ10の公開鍵であるとして送信されてきた鍵を対象公開鍵(PKt)とする。端末装置20は、検証用データとして、対象公開鍵(PKt)と同じ大きさの乱数データ(RND)を生成する(S102)。端末装置20は、対象公開鍵(PKt)と乱数データ(RND)を排他的論理和演算し、鍵データ演算結果(PKt EOR RND)を求める(S103)。端末装置20は、秘密情報(SEC)として端末装置20のユーザのパスワード「PWDa」を用い、秘密情報(SEC)を鍵として、鍵データ演算結果(PKt EOR RND)を共通鍵暗号方式により暗号化「Esec(PKt EOR RND)」する(S104)。
端末装置20は、鍵データ演算結果の暗号結果「Esec(PKt EOR RND)」を、端末装置20のユーザ名「A」に対応付けてサーバ10に送信する(S105)。更に、端末装置20は、検証用データである乱数データ(RND)を用いて一方向ハッシュ関数による演算「H(RND)」を行い、検証用データのハッシュ値FPRND’を求めておく(S106)。
サーバ10は、受信したユーザ名「A」に基づいてパスワードデータベース14を検索し、ユーザ名「A」に対応するパスワード「PWDa」を、復号に用いる秘密情報(SEC)として取得する(S107)。サーバ10は、鍵データ演算結果の暗号結果「Esec(PKt EOR RND)」を、秘密情報(SEC)であるパスワード「PWDa」により復号し、鍵データ演算結果(PKt EOR RND)を求める(S108)。
サーバ10は、復号結果である鍵データ演算結果(PKt EOR RND)と、サーバ10の公開鍵(PKs)とを排他的論理和演算「(PKt EOR RND) EOR PKs」し、検証用データである乱数データ(RND)を検証用データ演算結果として求める(S109)。サーバ10は、求めた乱数データ(RND)を用いて一方向ハッシュ関数による演算「H(RND)」を行い、検証用データ演算結果のハッシュ値FPRNDを求める(S110)。サーバ10は、検証用データ演算結果のハッシュ値FPRNDを、端末装置20に送信する(S111)。
端末装置20は、ステップ(S106)において求めた検証用データである乱数データ(RND)のハッシュ値FPRND’と、サーバ10から受信した検証用データ演算結果である乱数(RND)のハッシュ値FPRNDとを比較する(S112)。ステップ(S112)において、端末装置20は、ハッシュ値FPRND’とハッシュ値FPRNDが一致しない場合には、対象公開鍵(PKt)はサーバ10の公開鍵(PKs)と同じではなく、不正公開鍵であると判断する。そして、端末装置20は、サーバ10との接続を切断する。
一方、ステップ(S112)において、端末装置20は、ハッシュ値FPRND’とハッシュ値FPRNDが一致する場合には、対象公開鍵(PKt)はサーバ10の公開鍵(PKs)と同じであり、真正公開鍵であると判断する。そして、端末装置20は、サーバ10の公開鍵(PKs)であると判断された対象公開鍵(PKt)を用いて、端末装置20がサーバ10に送信する情報(I)を暗号化EPKt(I)する(S114)。端末装置20は、情報(I)の暗号結果EPKt(I)をサーバ10に送信する(S115)。サーバ10は、受信した暗号結果EPKt(I)をサーバ10の秘密鍵(SK)により復号し、端末装置20からの情報(I)を得る(S116)。
このような通信方法は、端末装置20から入力されたパスワードとパスワードデータベース14が記憶するパスワードとを比較し、正しいパスワードの入力により正規のユーザであることを認証するようなサーバに適用できる。具体的には、「暗号のすべて−ユビキタス社会の暗号技術」(電波新聞社、2002年9月発行)等に記載されているチャレンジレスポンス型の認証を行うメールサーバと、そのクライアントである端末装置との間で、このような通信方法を用いることができる。他にも、サーバ10として、例えば、複数の端末装置20が使用する時間帯を分けて共用する時分割共有型サーバ、会員制のウェブサイトを提供するウェブサーバ等を用いることができる。
〔効果〕
このような通信システム1、端末装置20、サーバ10及び通信方法によれば、端末装置20が、対象公開鍵と検証用データとを演算した鍵データ演算結果を、秘密情報により暗号化した暗号結果をサーバ10に送信する。サーバ10は、端末装置20から鍵データ演算結果の暗号結果を受信し、秘密情報により復号する。サーバ10は、その復号結果から検証用データをサーバ10の公開鍵を用いて演算し、得られた検証用データ演算結果を端末装置20に送信する。端末装置20は、サーバ10が鍵データ演算結果の暗号結果から取得した検証用データ演算結果を受信する。そして、端末装置20は、検証用データと検証用データ演算結果とを比較することにより、対象公開鍵がサーバ10の公開鍵であるか否かを判断できる。
例えば、図7に示したようにして、サーバ10から端末装置20に送信したサーバ10の公開鍵が、攻撃端末により攻撃端末の公開鍵に改竄された場合、サーバ10の公開鍵であるとして送信されてきた対象公開鍵は、サーバ10の公開鍵とは異なる不正公開鍵となる。この場合、端末装置20がサーバ10に送信する鍵データ演算結果の暗号結果は、不正公開鍵と検証用データとの鍵データ演算結果を暗号化したものになる。そのため、サーバ10が、真正公開鍵で鍵データ演算結果の暗号結果を復号した復号結果から得られる検証用データ演算結果は、端末装置20が用いた検証用データとは異なるものになる。よって、端末装置20は、対象公開鍵が、検証用データと検証用データ演算結果が一致する場合には真正公開鍵であり、一致しない場合には不正公開鍵であると判断できる。そのため、端末装置20は、攻撃の事実を検出できる。
しかも、対象公開鍵と検証用データとの鍵データ演算結果は、攻撃端末が知らない秘密情報により暗号化されている。そのため、攻撃端末は、鍵データ演算結果の暗号結果を、端末装置20とサーバ10との間で盗聴しても復号できない。よって、攻撃端末は、復号結果に含まれる不正公開鍵を真正公開鍵に書き替えてサーバ10に送信し、辻褄をあわせることにより攻撃を気付かれないようにすることもできない。
このように、通信システム1では、サーバ10と端末装置20が、真正公開鍵と秘密情報を用いない限り、正しい検証用データを取り出せない情報を交換することにより、配布されたサーバ10の公開鍵の真正性、即ち、攻撃端末によって改竄されたものではなく、確かにサーバ10の公開鍵であることを容易に検証できる。よって、通信システム1では、サーバ10の公開鍵を安全に配布でき、サーバ10の真正な公開鍵を用いて安全な通信ができる。
そのため、通信システム1は、非常に利便性が高いが、攻撃端末が存在し、なりすましや改竄、盗聴のような攻撃の危険性があるインターネットのようなネットワーク30を用いたとしても、安全に通信ができる。しかも、電子商取引等の場面では、サーバ10の利用を適切に管理すること等を目的として、サーバ10が端末装置20のユーザ毎に、サーバ10にログインするためのユーザ名とパスワードを割り当て、認証を行うことが一般的に行われている。そのため、通信システム1は、一般的に用いられているパスワードを秘密情報に利用して、容易に実現できる。
加えて、端末装置20の演算部24は、検証用データとして乱数データを用い、対象公開鍵と乱数データとを排他的論理和演算して鍵データ演算結果を得る。そのため、鍵データ演算結果を秘密情報により暗号化した暗号結果の解読を非常に困難にできる。
例えば、秘密情報としてパスワードを用いた場合、パスワードが持つ乱雑性は十分とは言えない場合がある。その結果、攻撃端末が、端末装置20のユーザがパスワードとして選択しそうな文字列をしらみつぶしに用いて鍵データ演算結果の暗号結果の解読を試みる辞書攻撃を行い、パスワードを探り当ててしまう可能性を完全には否定できない。
しかし、通信システム1では、対象公開鍵と乱数データとを排他的論理和演算して得た鍵データ演算結果を用いることにより、攻撃端末に、鍵データ演算結果の暗号結果の解読の手がかりを与えないようにできる。しかも、サーバ10の演算部17は、取得した検証用データ演算結果をそのままではなく、一方向ハッシュ関数により演算し、元の検証用データに変換できないハッシュ値の形にして端末装置20に送信する。そのため、サーバ10は、攻撃端末に解読の手がかりをより一層与えないようにできる。これらの結果、通信システム1では、鍵データ演算結果を秘密情報により暗号化した暗号結果の解読を非常に困難にできる。
[第2の実施の形態]
〔通信システム〕
図3に示すように、通信システム201は、サーバ210と、端末装置220と、ネットワーク30とを備える。端末装置220は、通信インタフェース21と、記憶部222と、暗号化部223と、演算部24と、判断部25と、秘密情報生成部226とを備える。サーバ210は、通信インタフェース11と、鍵生成部12と、鍵記憶部13と、パスワードデータベース214と、秘密情報生成部215と、復号部216と、演算部17とを備える。図3において、図1に示した通信システム1と実質的に同様の構成については、同一の符号を付して説明を省略する。
まず、端末装置220について説明する。記憶部222は、秘密情報の基礎データを記憶する基礎データ記憶手段である。基礎データは、秘密情報を生成する基礎となるデータで、基礎データを用いて秘密情報が生成される。基礎データは、端末装置220及びサーバ210のみが知っている情報である。基礎データは、例えば、受信装置のユーザ認証に用いる情報、又は、送信装置のユーザ認証に用いる情報の少なくとも1つを用いることができる。具体的には、基礎データとして、例えば、各端末装置220、各サーバ210、複数の端末装置220からなるグループ、複数のサーバ210からなるグループ等に割り当てられているパスワード、ユーザ名、ユーザID、グループ名、グループID等を用いることができる。例えば、サーバ210が端末装置220のユーザ毎に、サーバ210にログインするために割り当てているパスワード、ユーザ名やユーザIDを用いることができる。
本実施形態では、基礎データとして、端末装置220のユーザ毎に割り当てられているパスワードを用いる。記憶部222は、端末装置220のユーザのユーザ名「A」とパスワード「PWDa」を記憶する。
秘密情報生成部226は、基礎データを不可逆に変換して秘密情報を生成する生成手段である。秘密情報生成部226は、記憶部222から基礎データを取得する。秘密情報生成部226は、例えば、基礎データを一方向ハッシュ関数により演算して変換し、秘密情報として用いる変換データを生成する。秘密情報生成部226は、例えば、基礎データである文字列のパスワードを一方向ハッシュ関数により演算し、鍵データ演算結果を暗号化する鍵としてより適切なバイナリデータの変換データに変換する。秘密情報生成部226は、基礎データを不可逆に変換できれば、特にその変換方法は限定されない。本実施形態では、秘密情報生成部226は、端末装置220のユーザのパスワード「PWDa」を一方向ハッシュ関数により演算して変換データに変換し、秘密情報を生成する。秘密情報生成部226は、生成した変換データを秘密情報として暗号化部223に入力する。
暗号化部223は、演算部24から鍵データ演算結果を取得する。暗号化部223は、秘密情報生成部226から秘密情報として変換データを取得する。本実施形態では、暗号化部223は、対象公開鍵と乱数データを排他的論理和演算した鍵データ演算結果を、端末装置220のユーザのパスワード「PWDa」を一方向ハッシュ関数により演算して変換した変換データにより暗号化する。これらの点以外は、暗号化部223は、図1に示した暗号化部23と実質的に同様である。
次に、サーバ210について説明する。パスワードデータベース214は、秘密情報の基礎データを記憶する基礎データ記憶手段である。パスワードデータベース214は、ユーザ名やユーザID、グループ名やグループID等に対応付けて、基礎データを記憶する。本実施形態では、パスワードデータベース214は、複数の端末装置220のユーザのユーザ名「A」、「B」、「C」に対応付けて、それぞれのユーザのパスワード「PWDa」、「PWDb」、「PWDc」を記憶する。
秘密情報生成部215は、鍵データ演算結果の暗号結果を復号する秘密情報を取得する取得手段である。秘密情報生成部215は、基礎データを不可逆に変換して秘密情報を生成することにより秘密情報を取得する。秘密情報生成部215は、通信インタフェース11から、通信インタフェース11が受信した、ユーザ名「A」に対応付けられた鍵データ演算結果の暗号結果を取得する。秘密情報生成部215は、ユーザ名に基づいてパスワードデータベース214を検索し、ユーザ名「A」に対応するパスワード「PWDa」を、秘密情報の生成に用いる基礎データとして取得する。
秘密情報生成部215は、端末装置220において行われた基礎データの変換方法に基づいて、基礎データを変換して秘密情報を生成する。尚、変換方法は、予めサーバ210と端末装置220との間で設定しておくことができる。秘密情報生成部215は、例えば、基礎データを一方向ハッシュ関数により演算して変換し、秘密情報として用いる変換データを生成する。秘密情報生成部215は、鍵データ演算結果の暗号結果と生成した秘密情報とを対応付けて復号部216に入力する。本実施形態では、秘密情報生成部215は、パスワード「PWDa」を一方向ハッシュ関数により演算して変換データに変換し、秘密情報を生成する。
復号部216は、秘密情報生成部215から、鍵データ演算結果の暗号結果と、生成した秘密情報を取得する。本実施形態では、復号部216は、パスワード「PWDa」を一方向ハッシュ関数により演算して変換した変換データにより、鍵データ演算結果の暗号結果を復号する。これらの点以外は、復号部216は、図1に示した復号部16と実質的に同様である。
〔通信方法〕
次に、通信システム201を用いた通信方法について図4を用いて説明する。図4では、端末装置220のユーザのパスワード「PWDa」の一方向ハッシュ関数による演算を「H(PWDa)」、パスワードを演算「H(PWDa)」により変換した変換データを「Da」と表記する。尚、これら以外の表記は、図2と同様である。
サーバ210が、サーバ210の公開鍵(PKs)を生成し、端末装置220に送信する(S201)。端末装置220は、端末装置220のユーザのパスワード「PWDa」を基礎データとして用いる。端末装置220は、一方向ハッシュ関数による演算「H(PWDa)」を行って、パスワード「PWDa」を変換データ「Da」に変換し、秘密情報を生成する(S202)。次に、端末装置220は、図2に示したステップ(S102)、(S103)と同様のステップ(S203)、(S204)を行う。次に、端末装置220は、秘密情報(SEC)として、ステップ(S202)で生成した変換データ「Da」を用い、秘密情報(SEC)を鍵として、鍵データ演算結果(PKt EOR RND)を共通鍵暗号方式により暗号化「Esec(PKt EOR RND)」する(S205)。次に、端末装置220は、図2に示したステップ(S105)、(S106)と同様のステップ(S206)、(S207)を行う。
サーバ210は、受信したユーザ名に基づいてパスワードデータベース214を検索し、ユーザ名「A」に対応するパスワード「PWDa」を秘密情報(SEC)の生成に用いる基礎データとして取得する(S208)。サーバ210は、一方向ハッシュ関数による演算「H(PWDa)」を行って、パスワード「PWDa」を変換データ「Da」に変換し、秘密情報を生成する(S209)。サーバ210は、鍵データ演算結果の暗号結果「Esec(PKt EOR RND)」を、秘密情報(SEC)である変換データ「Da」により復号し、鍵データ演算結果(PKt EOR RND)を求める(S210)。そして、サーバ210と端末装置220は、図2に示したステップ(S109)〜(S116)と同様のステップ(S211)〜(S218)を行う。
このような通信方法も、端末装置220から入力されたパスワードとパスワードデータベース214が記憶するパスワードとを比較し、正しいパスワードの入力により正規のユーザであることを認証するようなサーバに適用できる。同様に、サーバ210として、例えば、時分割共有型サーバ、ウェブサーバ等を用いることができる。
〔効果〕
このような通信システム201、端末装置220、サーバ210及び通信方法によれば、図1、2に示した通信システム1、端末装置20、サーバ10及び通信方法によって得られる効果に加えて、以下の効果を得ることができる。
端末装置220、サーバ210は、秘密情報の基礎データを記憶する記憶部222、パスワードデータベース214と、基礎データを不可逆に変換して秘密情報を生成する秘密情報生成部226,215とを備える。そのため、端末装置220、サーバ210は、秘密情報そのものを記憶せずに、使用する際に基礎データを不可逆に変換して生成できる。
よって、秘密情報が盗聴され、漏洩しても、秘密情報を基礎データに変換することができない。そのため、秘密情報の漏洩が、基礎データの漏洩には繋がらない。よって、秘密情報が漏洩しても、端末装置220、サーバ210は、同じ基礎データを用いて新たな秘密情報を生成して使用できる。そのため、通信システム201では、容易に安全な通信が継続できる。
しかも、秘密情報として単にパスワードを用いた場合は、辞書攻撃によりパスワード、即ち、秘密情報を探り当てられてしまう可能性を完全には否定できない。しかし、通信システム201では、基礎データを不可逆に変換した変換データを秘密情報として用いる。そのため、通信システム201は、攻撃端末に解読の手がかりを与えないようにできる。その結果、通信システム201では、鍵データ演算結果を秘密情報により暗号化した暗号結果の解読を非常に困難にできる。
[第3の実施の形態]
〔通信システム〕
図5に示すように、通信システム301は、サーバ310と、端末装置320と、ネットワーク30とを備える。端末装置320は、通信インタフェース321と、記憶部222と、暗号化部323と、演算部24と、判断部25と、秘密情報生成部326とを備える。サーバ310は、通信インタフェース311と、鍵生成部12と、鍵記憶部13と、変換データデータベース314と、検索部315と、復号部316と、演算部17とを備える。図5において、図1、2に示した通信システム1,201と実質的に同様の構成については、同一の符号を付して説明を省略する。
まず、端末装置320について説明する。秘密情報生成部326は、基礎データを不可逆に変換して秘密情報を生成する生成手段である。秘密情報生成部326は、記憶部222から基礎データ及びユーザ名「A」を取得する。秘密情報生成部326は、取得したユーザ名「A」を指定してサーバ310にソルト値を要求する要求メッセージを、通信インタフェース321に入力する。ソルト値は、基礎データを変換する際に、基礎データに付加する可変要因である。ソルト値を基礎データに付加して変換することによって、同一の基礎データを同一の変換方法により変換した場合であっても、異なる変換データを生成できる。ソルト値は、端末装置のユーザ毎に設定される。本実施形態では、一方向ハッシュ関数による演算の際に基礎データに付加するソルト値を用いる。
秘密情報生成部326は、通信インタフェース321が受信した、要求メッセージに対するサーバ310からの応答メッセージを、通信インタフェース321から取得する。応答メッセージは、要求メッセージに対する応答であって、指定したユーザ名「A」に対応するソルト値「Sa」が含まれる。秘密情報生成部326は、応答メッセージからソルト値を取得する。秘密情報生成部326は、基礎データにソルト値を付加したものを不可逆に変換し、秘密情報として変換データを生成する。
秘密情報生成部326は、例えば、ソルト値を付加した基礎データを一方向ハッシュ関数により演算して変換し、秘密情報として用いる変換データを生成する。秘密情報生成部326は、基礎データを不可逆に変換できれば、特にその変換方法は限定されない。本実施形態では、秘密情報生成部326は、端末装置320のユーザのパスワード「PWDa」を基礎データとして用い、端末装置320のユーザのソルト値「Sa」を付加したパスワード「PWDa」を一方向ハッシュ関数により演算して変換データに変換し、秘密情報を生成する。秘密情報生成部326は、生成した変換データを秘密情報として暗号化部323に入力する。
暗号化部323は、演算部24から鍵データ演算結果を取得する。暗号化部323は、秘密情報生成部326から秘密情報として変換データを取得する。
本実施形態では、暗号化部323は、対象公開鍵と乱数データを排他的論理和演算した鍵データ演算結果を、端末装置320のユーザのソルト値「Sa」を付加したパスワード「PWDa」を一方向ハッシュ関数により演算して変換した変換データにより暗号化する。これらの点以外は、暗号化部323は、図1に示した暗号化部23と実質的に同様である。
通信インタフェース321は、秘密情報生成部326から要求メッセージを取得し、サーバ310に送信する。又、通信インタフェース321は、サーバ310から応答メッセージを受信し、秘密情報生成部326に入力する。これらの点以外は、通信インタフェース321は、図1に示した通信インタフェース21と実質的に同様である。
次に、サーバ310について説明する。変換データデータベース314は、基礎データを不可逆に変換した秘密情報を記憶する秘密情報記憶手段である。変換データデータベース314は、ユーザ名やユーザID、グループ名やグループID等に対応付けて、ソルト値と、秘密情報である変換データとを記憶する。変換データデータベース314は、基礎データに付加したソルト値と、そのソルト値を付加した基礎データを変換した変換データとを対応付けて記憶する。
本実施形態では、変換データデータベース314は、複数の端末装置320のユーザのユーザ名「A」、「B」、「C」に対応付けて、それぞれのユーザのパスワード「PWDa」、「PWDb」、「PWDc」に付加したソルト値「Sa」、「Sb」、「Sc」と、各ソルト値「Sa」、「Sb」、「Sc」を各パスワード「PWDa」、「PWDb」、「PWDc」にそれぞれ付加し、一方向ハッシュ関数により変換した変換データ「Ka」、「Kb」、「Kc」を記憶する。このように、通信システム301では、端末装置320のユーザのパスワードをソルト値と一方向ハッシュ関数を用いて不可逆に変換した変換データを、サーバ310が変換データデータベース314に格納して記憶する。
検索部315は、通信インタフェース311から、通信インタフェース311が受信した要求メッセージを取得する。検索部315は、要求メッセージにおいて指定されているユーザ名に基づいて変換データデータベース314を検索し、ユーザ名「A」に対応するソルト値「Sa」を取得する。検索部315は、取得したソルト値「Sa」を含む応答メッセージを生成し、通信インタフェース311に入力する。
更に、検索部315は、通信インタフェース311から、通信インタフェース311が受信した、ユーザ名「A」に対応付けられた鍵データ演算結果の暗号結果を取得する。検索部315は、ユーザ名に基づいて変換データデータベース314を検索し、ユーザ名「A」に対応する変換データ「Ka」を、復号に用いる秘密情報として取得する。検索部315は、鍵データ演算結果の暗号結果と、取得した秘密情報、即ち、変換データ「Ka」とを対応付けて復号部316に入力する。
復号部316は、検索部315から、鍵データ演算結果の暗号結果と秘密情報を取得する。本実施形態では、復号部316は、ソルト値「Sa」をパスワード「PWDa」に付加し、一方向ハッシュ関数により変換した変換データ「Ka」により暗号結果を復号する。これらの点以外は、復号部316は、図1に示した復号部16と実質的に同様である。
通信インタフェース311は、端末装置320から要求メッセージを受信し、検索部315に入力する。通信インタフェース311は、検索部315から応答メッセージを取得し、端末装置320に送信する。これらの点以外は、通信インタフェース311は、図1に示した通信インタフェース11と実質的に同様である。
〔通信方法〕
次に、通信システム301を用いた通信方法について図6を用いて説明する。
図4では、端末装置220のユーザのソルト値「Sa」を付加したパスワード「PWDa」の一方向ハッシュ関数による演算を「H(Sa,PWDa)」と表記する。尚、これら以外の表記は、図2と同様である。
サーバ310が、サーバ310の公開鍵(PKs)を生成し、端末装置320に送信する(S301)。端末装置320は、端末装置320のユーザ名「A」を指定した要求メッセージをサーバ310に送信する(S302)。サーバ310は、要求メッセージに含まれるユーザ名「A」に基づいて変換データデータベース314を検索し、ソルト値「Sa」を取得する(S303)。サーバ310は、ソルト値「Sa」を含む応答メッセージを端末装置320に送信する(S304)。
端末装置320は、端末装置320のユーザのパスワード「PWDa」を基礎データとして用いる。端末装置320は、応答メッセージに含まれるソルト値「Sa」をパスワード「PWDa」に付加し、一方向ハッシュ関数による演算「H(Sa,PWDa)」を行って、パスワード「PWDa」を変換データ「Ka」に変換し、秘密情報を生成する(S305)。次に、端末装置320は、図2に示したステップ(S102)、(S103)と同様のステップ(S306)、(S307)を行う。
次に、端末装置320は、秘密情報(SEC)として、ステップ(S305)で生成した変換データ「Ka」を用い、秘密情報(SEC)を鍵として、鍵データ演算結果(PKt EOR RND)を共通鍵暗号方式により暗号化「Esec(PKt EOR RND)」する(S308)。次に、端末装置320は、図2に示したステップ(S105)、(S106)と同様のステップ(S309)、(S310)を行う。
サーバ310は、受信したユーザ名に基づいて変換データデータベース314を検索し、ユーザ名「A」に対応する変換データ「Ka」を秘密情報として取得する(S311)。サーバ310は、鍵データ演算結果の暗号結果「Esec(PKt EOR RND)」を、秘密情報(SEC)である変換データ「Ka」により復号し、鍵データ演算結果(PKt EOR RND)を求める(S312)。そして、サーバ310と端末装置320は、図2に示したステップ(S109)〜(S116)と同様のステップ(S313)〜(S320)を行う。
このような通信方法は、ワークステーションタイプの計算機オペレーティングシステムの代表例であるUNIX(登録商標)におけるログイン認証を行うサーバに適用できる。この場合、サーバ310は、端末装置320から入力されたパスワードを、変換データデータベース314が記憶する変換データを生成する際に用いた一方向ハッシュ関数、ソルト値により演算し、その演算結果と変換データデータベース314が記憶する変換データとを比較して認証を行う。
〔効果〕
このような通信システム301、端末装置320、サーバ310及び通信方法によれば、図1、2に示した通信システム1、端末装置20、サーバ10及び通信方法によって得られる効果に加えて、以下の効果を得ることができる。
端末装置320は、秘密情報の基礎データを記憶する記憶部222と、基礎データを不可逆に変換して秘密情報を生成する秘密情報生成部326とを備える。サーバ310は、基礎データを不可逆に変換した変換データを秘密情報として記憶する変換データデータベース314を備える。そのため、サーバ310が変換データデータベース314に記憶する変換データが漏洩しても、その変換データを基礎データに変換して、基礎データを復元することができない。よって、変換データデータベース314が記憶する秘密情報である変換データが漏洩したとしても、それが直ちには、基礎データそのものの漏洩には繋がらない。その結果、変換データが漏洩しても、端末装置320は、同じ基礎データを用いて新たな変換データを生成して、秘密情報として使用できる。そして、サーバ310が記憶する変換データだけを更新すればよい。そのため、通信システム301では、容易に安全な通信が継続できる。
しかも、秘密情報として単にパスワードを用いた場合は、辞書攻撃によりパスワード、即ち、秘密情報を探り当てられてしまう可能性を完全には否定できない。しかし、通信システム301では、基礎データを不可逆に変換した変換データを秘密情報として用いる。更に、通信システム301では、ソルト値を用いて生成した秘密情報を用いる。そのため、通信システム301は、攻撃端末に解読の手がかりをより与えないようにできる。その結果、通信システム301では、鍵データ演算結果を秘密情報により暗号化した暗号結果の解読を非常に困難にできる。
尚、本発明は上記第1〜第3の実施形態に限定されるものではなく、種々の変更が可能である。図1〜図6では、サーバ10,210,310と端末装置20,220,320との間の通信を例にとって説明したが、本発明は、端末装置間やサーバ間の通信にも適用できる。更に、公開鍵の真正性が確認できた後は、その公開鍵を利用して共通鍵を交換するといった処理を行ってもよい。これによれば、以降の通信を安全にかつ効率的に行うことができる。
本発明の第1の実施の形態に係る通信システムの構成を示す図である。 本発明の第1の実施の形態に係る通信方法の手順を示すフロー図である。 本発明の第2の実施の形態に係る通信システムの構成を示す図である。 本発明の第2の実施の形態に係る通信方法の手順を示すフロー図である。 本発明の第3の実施の形態に係る通信システムの構成を示す図である。 本発明の第3の実施の形態に係る通信方法の手順を示すフロー図である。 従来の攻撃の手順を示すフロー図である。
符号の説明
1,201,301 通信システム
10,210,310,410 サーバ
11,311 通信インタフェース
12 鍵生成部
13 鍵記憶部
14,214 パスワードデータベース
15,315 検索部
16,216,316 復号部
17 演算部
20,220,320,420 端末装置
21,321 通信インタフェース
22,222 記憶部
23,223,323 暗号化部
24 演算部
25 判断部
30 ネットワーク
215,226,326 秘密情報生成部
314 変換データデータベース
430 攻撃端末

Claims (6)

  1. 検証対象の対象公開鍵と検証用データとを演算する鍵データ演算手段と、
    該鍵データ演算手段による鍵データ演算結果を、送信装置及び受信装置が共用する秘密情報により暗号化する暗号化手段と、
    該暗号化手段による暗号結果を前記受信装置に送信する暗号結果送信手段と、
    前記受信装置が前記暗号結果から取得した検証用データ演算結果を受信する演算結果受信手段と、
    前記検証用データと前記検証用データ演算結果とを比較し、前記対象公開鍵が前記受信装置の公開鍵であるか否かを判断する判断手段とを備える送信装置と、
    前記暗号結果を受信する暗号結果受信手段と、
    前記暗号結果を前記秘密情報により復号する復号手段と、
    該復号手段による復号結果から前記検証用データを、前記公開鍵を用いて演算する検証用データ演算手段と、
    該検証用データ演算手段による前記検証用データ演算結果を前記送信装置に送信する演算結果送信手段とを備える受信装置と
    を備えることを特徴とする通信システム。
  2. 前記鍵データ演算手段は、前記検証用データとして乱数データを用い、前記対象公開鍵と前記乱数データとを排他的論理和演算することを特徴とする請求項1に記載の通信システム。
  3. 前記送信装置は、前記秘密情報の基礎データを記憶する基礎データ記憶手段と、
    前記基礎データを不可逆に変換して前記秘密情報を生成する生成手段とを備え、
    前記受信装置は、前記基礎データを不可逆に変換した秘密情報を記憶する秘密情報記憶手段を備えることを特徴とする請求項1又は2に記載の通信システム。
  4. 検証対象の対象公開鍵と検証用データとを演算する鍵データ演算手段と、
    該鍵データ演算手段による鍵データ演算結果を、送信装置及び受信装置が共用する秘密情報により暗号化する暗号化手段と、
    該暗号化手段による暗号結果を前記受信装置に送信する暗号結果送信手段と、
    前記受信装置が前記暗号結果から取得した検証用データ演算結果を受信する演算結果受信手段と、
    前記検証用データと前記検証用データ演算結果とを比較し、前記対象公開鍵が前記受信装置の公開鍵であるか否かを判断する判断手段と
    を備えることを特徴とする送信装置。
  5. 送信装置が検証対象の対象公開鍵と検証用データとを演算した鍵データ演算結果を前記送信装置及び受信装置が共用する秘密情報により暗号化した暗号結果を受信する暗号結果受信手段と、
    前記暗号結果を前記秘密情報により復号する復号手段と、
    該復号手段による復号結果から検証用データを、前記受信装置の公開鍵を用いて演算する検証用データ演算手段と、
    該検証用データ演算手段による検証用データ演算結果を前記送信装置に送信する演算結果送信手段と
    を備えることを特徴とする受信装置。
  6. 送信装置が、検証対象の対象公開鍵と検証用データとを演算した鍵データ演算結果を、前記送信装置及び受信装置が共用する秘密情報により暗号化し、該暗号結果を前記受信装置に送信し、
    前記受信装置が、受信した前記暗号結果を前記秘密情報により復号し、該復号結果から前記検証用データを前記受信装置の公開鍵を用いて演算した検証用データ演算結果を前記送信装置に送信し、
    前記送信装置が、前記検証用データと受信した前記検証用データ演算結果とを比較し、前記対象公開鍵が前記受信装置の公開鍵であるか否かを判断することを特徴とする通信方法。

JP2004020515A 2004-01-28 2004-01-28 通信システム、送信装置、受信装置及び通信方法 Pending JP2005217665A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004020515A JP2005217665A (ja) 2004-01-28 2004-01-28 通信システム、送信装置、受信装置及び通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004020515A JP2005217665A (ja) 2004-01-28 2004-01-28 通信システム、送信装置、受信装置及び通信方法

Publications (1)

Publication Number Publication Date
JP2005217665A true JP2005217665A (ja) 2005-08-11

Family

ID=34904404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004020515A Pending JP2005217665A (ja) 2004-01-28 2004-01-28 通信システム、送信装置、受信装置及び通信方法

Country Status (1)

Country Link
JP (1) JP2005217665A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008228309A (ja) * 2007-03-15 2008-09-25 Palo Alto Research Center Inc スローチャネル上の高速認証
CN112560016A (zh) * 2020-12-23 2021-03-26 平安银行股份有限公司 业务请求管理方法、装置、计算机设备及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008228309A (ja) * 2007-03-15 2008-09-25 Palo Alto Research Center Inc スローチャネル上の高速認証
CN112560016A (zh) * 2020-12-23 2021-03-26 平安银行股份有限公司 业务请求管理方法、装置、计算机设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN111079128B (zh) 一种数据处理方法、装置、电子设备以及存储介质
RU2718689C2 (ru) Управление конфиденциальной связью
US7688975B2 (en) Method and apparatus for dynamic generation of symmetric encryption keys and exchange of dynamic symmetric key infrastructure
KR100979576B1 (ko) 새로운 패스워드를 실현하기 위한 방법 및 컴퓨터 판독가능 매체
CN102812684B (zh) 实施计算机策略的系统和方法
US8307208B2 (en) Confidential communication method
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
US9491174B2 (en) System and method for authenticating a user
CN113553574A (zh) 一种基于区块链技术的物联网可信数据管理方法
EP3476078B1 (en) Systems and methods for authenticating communications using a single message exchange and symmetric key
JP2009529832A (ja) 発見不可能、即ち、ブラック・データを使用するセキュアなデータ通信
US20120087495A1 (en) Method for generating an encryption/decryption key
CN112702318A (zh) 一种通讯加密方法、解密方法、客户端及服务端
US20230188325A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
CN106657002A (zh) 一种新型防撞库关联时间多密码的身份认证方法
WO2022135391A1 (zh) 身份鉴别方法、装置、存储介质、程序、及程序产品
CN113079177B (zh) 一种基于时间及解密次数限制的遥感数据共享方法
KR20120069387A (ko) 공개키 기반의 키워드 검색 방법
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
JP5004086B2 (ja) 短い系列を用いた認証システム
CN116318637A (zh) 设备安全入网通信的方法和系统
KR20170111809A (ko) 대칭키 기반의 보안 토큰을 이용한 양방향 인증 방법
KR20170087120A (ko) 무인증서 공개키 암호 시스템 및 수신 단말기
JP2005217665A (ja) 通信システム、送信装置、受信装置及び通信方法
CN112069487A (zh) 一种基于物联网的智能设备网络通讯安全实现方法