(57)【要約】【課題】  簡易な手順でセキュリティの高い情報伝送を行うことが可能な情報処理装置を提供する。【解決手段】  情報処理装置は、通信相手からの情報を受信する受信部１と、通信相手に情報を送信する送信部２と、公開鍵およびヒントを保持する公開鍵・ヒント保持部３と、公開鍵およびヒントのハッシュ値を計算するハッシュ計算部４と、通信相手への送信情報を暗号化する暗号化部５と、公開鍵に署名する署名部６と、全体の制御を行う制御部７とを備えている。公開鍵とヒントを情報処理装置間で予め交換しておき、その後二回目以降の通信時は、公開鍵とヒントの組に対してハッシュをかけた値を通信相手に伝送し、通信相手にて公開鍵とヒントが一致した場合のみ、認証を行うようにしたため、特定の公開鍵のみを用いて通信を行うことができ、自己が所持している複数の公開鍵の情報を他人に不用意に知られるおそれがなくなり、セキュリティが向上する。【選択図】  図１
2005268926.tif 000002
【特許請求の範囲】
【請求項１】
公開可能な複数の公開鍵を格納可能な公開鍵格納手段と、
初めて通信を行う通信相手との間で公開鍵の交換を行い、取得した通信相手の公開鍵を前記公開鍵格納手段に格納する鍵交換手段と、
前記公開鍵格納手段に格納された公開鍵に基づいて、通信相手が所持する所定の情報と照らし合わせて初めて意味を持つ検証情報を、予め定めた規則に従って生成する検証情報生成手段と、
前記検証情報を通信相手に送信する公開鍵検証情報送信手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記複数の公開鍵の中から任意の一つを選択する公開鍵選択手段を備え、
前記検証情報生成手段は、前記公開鍵選択手段にて選択された公開鍵と対応付ける、通信相手が所持する所定の情報と照らし合わせて初めて意味を持つ検証情報を、予め定めた規則に従って生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
通信相手から送信された前記検証情報と前記検証情報生成手段にて生成された検証情報とが一致するか否かを検出する一致検出手段を備え、
前記公開鍵検証情報送信手段は、前記一致検出手段により一致が検出されると、一致した検証情報に対応する公開鍵を用いて、一致した検証情報を暗号化して通信相手に送信することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
通信相手が送信した暗号化された検証情報を、前記公開鍵選択手段で選択した公開鍵を用いて検証する検証手段と、
前記検証手段で検証した結果、公開鍵が一致すると判断された場合に、公開鍵を署名する署名手段と、を備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記公開鍵格納手段は、前記複数の公開鍵のそれぞれについて、公開鍵と、この公開鍵と一対一に対応する識別情報とを格納し、
前記検証情報生成手段は、公開鍵と対応する識別情報とを用いて前記検証情報を生成することを特徴とする請求項１乃至４のいずれかに記載の情報処理装置。
【請求項６】
前記公開鍵格納手段は、前記複数の公開鍵と、これら公開鍵に対応する識別情報とを格納する他に、通信相手との鍵交換により受信した通信相手の公開鍵と、この公開鍵と一対一に対応する識別情報とを格納することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記識別情報は、対応する公開鍵よりもビット数の少ないビット列からなる数値であることを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
前記公開鍵検証情報送信手段は、一致した検証情報を通信相手に送信する際、該検証情報に対応する識別情報を併せて送信することを特徴とする請求項１乃至７のいずれかに記載の情報処理装置。
【請求項９】
前記検証情報はハッシュ値であることを特徴とする請求項１乃至８のいずれかに記載の情報処理装置。
【請求項１０】
前記検証情報生成手段は、前記公開鍵格納手段に格納された複数の公開鍵に基づいてブルームフィルタの特定ビットをセットすることにより、前記検証情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項１１】
前記一致検出手段は、通信相手から送信された前記ブルームフィルタに対して、前記複数の公開鍵それぞれとの関連性を検出し、関連性が高い公開鍵を公開鍵候補として前記公開鍵格納手段に格納し、
前記検証情報生成手段は、前記公開鍵候補に基づいてブルームフィルタの特定ビットをセットすることにより、前記検証情報を生成し、
前記公開鍵候補に含まれる公開鍵の数が所定数に達するまで、前記検証情報生成手段および前記公開鍵検証情報送信手段による処理を繰り返すことを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
公開可能な複数の公開鍵を公開鍵格納手段に格納し、
初めて通信を行う通信相手との間で公開鍵の交換を行い、取得した通信相手の公開鍵を前記公開鍵格納手段に格納し、
前記公開鍵格納手段に格納された公開鍵に基づいて、通信相手が所持する所定の情報と照らし合わせて初めて意味を持つ検証情報を、予め定めた規則に従って生成し、
前記検証情報を通信相手に送信することを特徴とする情報処理方法。
【請求項１３】
公開可能な複数の公開鍵を公開鍵格納手段に格納するステップと、
初めて通信を行う通信相手との間で公開鍵の交換を行い、取得した通信相手の公開鍵を前記公開鍵格納手段に格納するステップと、
前記公開鍵格納手段に格納された公開鍵と対応付ける、通信相手が所持する所定の情報と照らし合わせて初めて意味を持つ検証情報を、予め定めた規則に従って生成するステップと、
前記検証情報を通信相手に送信するステップと、をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティを考慮に入れて情報を伝送する情報処理装置に関する。
【背景技術】
【０００２】
各通信装置に固有の識別情報を付与し、特定の識別情報を持つ通信装置同士で情報伝送を行う情報処理システムが知られている（特許文献１および２参照）。これら特許文献に記載された情報処理システムは、情報を伝送する際に暗号化することを念頭に置いておらず、セキュリティ上の問題がある。また、各通信装置が所持する識別情報を特に制限なく通信相手に開示するため、プライバシ上も問題がある。
【０００３】
一方、公開鍵を用いて暗号化を行う技術が知られている。この技術では、まず初めに通信装置同士で公開鍵を交換しあい、二度目以降に通信を行う際は、署名済メッセージを送信し、互いの公開鍵を利用して署名を検証することで認証を行う。
【０００４】
また、通信相手に自分のことを知られないようにするプライバシ保護に対する要求があり、この要求のために、複数の公開鍵を使用することが考えられる。
【特許文献１】特開2003-152615
【特許文献２】特開2001-142825
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、公開鍵を利用する従来の認証方法では、各通信装置が単一の公開鍵を使用することを前提としており、複数の公開鍵を用いて情報伝送を行う具体的な手法は提案されていなかった。このため、所持する公開鍵の数が多いほど、どの公開鍵を使用すればよいか迷う機会が多くなり、効率的に通信を行うことができないという問題があった。
【０００６】
また、一般に公開鍵とこの鍵を提供した本人とはユニークに対応するものとの認識があるので、公開鍵はその人の識別子の一種として扱われることが多い。出所が露呈しないよう、たとえばその人が相手に応じて、または使用目的ごとに異なる複数の公開鍵を使い分けていたとする。このような場合にこれら一人の人が所持する複数の公開鍵が誰の所持する鍵であるかが容易に第三者に知られることとなれば、それらの公開鍵の所持者が同一人物であることが分かってしまうといった、所持者にとってのプライバシ上の侵害が起こる場合があった。
【０００７】
本発明の目的は、簡易な手順でセキュリティの高い情報伝送を行うことが可能な情報処理装置、情報処理方法及び情報処理プログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一実施形態は、特定の相手にのみ公開する複数の公開鍵を格納可能な公開鍵格納手段と、初めて通信を行う通信相手との間で公開鍵の交換を行い、取得した通信相手の公開鍵を前記公開鍵格納手段に格納する鍵交換手段と、前記公開鍵格納手段に格納された公開鍵に基づいて、通信相手が所持する所定の情報と照らし合わせて初めて意味を持つ検証情報を生成する検証情報生成手段と、前記検証情報を通信相手に送信する公開鍵検証情報送信手段と、を備える。
【発明の効果】
【０００９】
本発明によれば、通信相手が所持する所定の情報と照らし合わせて初めて意味を持つ検証情報を公開鍵に基づいて、または対応付けて生成し、この検証情報を通信相手に送信することにより、利用する公開鍵を通信相手との間で特定し、安全に情報伝送を行うことができる。すなわち、本発明によれば、複数の公開鍵を所持していても、他にどのような公開鍵を所持しているかを通信相手に知られるおそれがなくなり、セキュリティの向上が図れる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照しながら、本発明の一実施形態を説明する。
【００１１】
（第１の実施形態）
図１は本発明の第１の実施形態に係る情報処理装置の内部構成の一例を示すブロック図である。図１の情報処理装置は、同一の構成を持つ他の情報処理装置（以下、通信相手とも呼ぶ）との間で、認証を行った上で情報伝送を行う。
【００１２】
図１の情報処理装置は、通信相手からの情報を受信する受信部１と、通信相手に情報を送信する送信部２と、公開鍵およびヒントを保持する公開鍵・ヒント保持部３と、公開鍵およびヒントのハッシュ値を計算するハッシュ計算部４と、通信相手への送信情報を暗号化する暗号化部５と、公開鍵に署名する署名部６と、全体の制御を行う制御部７とを備えている。
【００１３】
図２は情報処理装置Ａ，Ｂとの間で行われる認証処理の処理手順の一例を示すシーケンス図である。情報処理装置Ａ，Ｂ間の情報伝送は、最初の通信時に行われる鍵交換処理と、二回目以後の通信時に行われる認証処理とに大きく分けられる。
【００１４】
最初の通信時には、情報処理装置Ａ，Ｂは、公開鍵とヒントを互いに交換しあう（ステップＳ１）。ここで、ヒントとは、公開鍵のそれぞれに対応して設けられる識別情報であり、例えば乱数である。本実施形態では、各情報処理装置が複数の公開鍵を所持することを前提としており、ヒントも公開鍵の数分だけ設けられる。ただし、ヒントのビット数が公開鍵のビット数と同じだけあると、ヒント自身が識別子として作用して、ヒントにより自装置が特定されてしまうおそれがあるため、公開鍵よりも少ないビット数でヒントを生成するのが望ましい。これにより、ヒントの曖昧さが増し、ヒントにより自装置を特定されるおそれが少なくなる。
【００１５】
情報処理装置Ａは、自己の公開鍵に対応するヒントを例えば乱数を用いて生成し、公開鍵とヒントを対にして情報処理装置Ｂに送信する。同様に、情報処理装置Ｂも、公開鍵とヒントを対にして情報処理装置Ａに送信する。情報処理装置Ａは、情報処理装置Ｂからの公開鍵とヒントを受信し、これらを対応づけて公開鍵・ヒント保持部３に保持する。公開鍵・ヒント保持部３には、自装置が他人に開示するための複数種類の公開鍵とそれに対応するヒントと、他の情報処理装置から受け取った公開鍵とそれに対応するヒントが格納される。
【００１６】
二回目以降の通信時には、情報処理装置Ａ内の制御部７は、公開鍵・ヒント保持部３に対して、保持している自己の公開鍵の中から一つを選択するよう選択要求を送る。これを受けて、公開鍵・ヒント保持部３は、保持情報の中からいずれか一つの公開鍵と対応するヒントとを選択し、制御部７に返信する（ステップＳ２）。制御部７は、返信された公開鍵と対応するヒントとを対にして記憶するとともに、ハッシュ計算部４に送信する。
【００１７】
ハッシュ計算部４は、これら公開鍵とヒントに対してハッシュ計算を行って、ハッシュ値を生成する（ステップＳ３）。このハッシュ値は、制御部７を介して送信部２に送信される。送信部２は、受け取ったハッシュ値を情報処理装置Ｂに送信する（ステップＳ４）。情報処理装置Ｂに送信されるデータは、h, Hash(h, PKai)で表される。Hash()はハッシュ値、PKaiは情報処理装置Ａの公開鍵、ｈはPKaiに対応するヒントを表している。
【００１８】
このように、情報処理装置Ａは、ハッシュ値とヒントを情報処理装置Ｂに送信する。ハッシュ値にはヒントｈの情報が含まれているため、ハッシュ値とは別個にヒントｈを送信しなくてもよいが、ヒントｈをハッシュ値と別個に送信することにより、それを受け取った情報処理装置Ｂでの演算処理を高速化できる。このとき、ヒントだけを盗聴しても公開鍵および個人情報は特定されない。情報処理装置Ａから送信されるハッシュ値は、情報処理装置Ｂが所持する公開鍵とヒントと照らし合わせて初めて意味を持つ乱数情報であり、公開鍵のみで乱数化するよりもセキュリティの向上が図れる。
【００１９】
情報処理装置Ｂ内の受信部１は、情報処理装置Ａからのハッシュ値を受信すると（ステップＳ５）、そのハッシュ値を制御部７に送信する。制御部７は、公開鍵・ヒント保持部３に対して、保持している公開鍵の中から一つを選択するよう選択要求を送る。これを受けて、公開鍵・ヒント保持部３は、保持情報の中からいずれか一つの公開鍵と対応するヒントとを選択して制御部７に返信する（ステップＳ６）。制御部７は、返信された公開鍵と対応するヒントとを対にして記憶するとともに、ハッシュ計算部４に送信する。
【００２０】
ハッシュ計算部４は、これら公開鍵とヒントに対してハッシュ計算を行って、その計算結果であるハッシュ値をヒントとともに制御部７に返信する（ステップＳ７）。制御部７は、計算されたハッシュ値と情報処理装置Ａから送信されたハッシュ値とを比較し（ステップＳ８）、両者が一致していれば、これら公開鍵とヒントを暗号化するよう、暗号化部５に指示する（ステップＳ９）。
【００２１】
暗号化部５は、指示された公開鍵とヒントの組み合わせを、この公開鍵を用いて暗号化し、生成された暗号化データを制御部７に返信する。制御部７は、返信された暗号化データを送信部２を介して情報処理装置Ａに送信する（ステップＳ１０）。情報処理装置Ａに送信されるデータは、h, PKoj(h, PKoj)で表される。PKojは情報処理装置Ｂの公開鍵およびその公開鍵で暗号化されること、ｈはPKojに対応するヒントを表している。このように、情報処理装置Ｂは、公開鍵とヒントを、公開鍵を用いて暗号化した情報にヒントを付加して情報処理装置Ａに送信する。
【００２２】
一方、計算されたハッシュ値と情報処理装置Ａから送信されたハッシュ値とが一致しなかった場合には、情報処理装置Ｂ内の公開鍵・ヒント保持部３が所持するすべての対について、ステップＳ５〜Ｓ８の処理を行ったか否かを判定し（ステップＳ１１）、まだ処理を行っていない対があれば、ステップＳ５以降の処理を繰り返す。公開鍵・ヒント保持部３が所持するすべての組み合わせを試した結果、一致するものがない場合には、認証失敗と判断する（ステップＳ１２）。
【００２３】
情報処理装置Ａの受信部１は、情報処理装置Ｂから送信された暗号化データを受信して制御部７に送信する（ステップＳ１３）。制御部７は、受信した情報を最初に受信したときに使用した公開鍵で検証する（ステップＳ１４）。その結果、検証結果が正しければ、制御部７は署名部６に公開鍵を署名するように要求を出す。署名部６は、署名した結果を制御部７に返信する。制御部７は、その署名した結果を情報処理装置Ｂに送信する（ステップＳ１５，Ｓ１６）。情報処理装置Ｂに送信されるデータは、h, Siga(h, PKai)で表される。Sigaは情報処理装置Ａが署名をすることを表している。
【００２４】
以上により、相互認証が行われる。検証結果が正しくない場合は、別の公開鍵を使用して再び情報処理装置Ｂに送信する。
【００２５】
このように、第１の実施形態では、公開鍵とヒントを情報処理装置間で予め交換しておき、その後二回目以降の通信時は、公開鍵とヒントをハッシュ値にして通信相手に伝送し、通信相手にて公開鍵とヒントが一致した場合のみ、認証を行うようにしたため、特定の公開鍵のみを用いて通信を行うことができ、自己が所持している複数の公開鍵の情報を他人に不用意に知られるおそれがなくなり、セキュリティが向上する。
【００２６】
（第２の実施形態）
第２の実施形態は、ヒントやハッシュ値を用いる代わりに、公開鍵をブルームフィルタで暗号化して送信するものである。
【００２７】
図３は本発明の第２の実施形態に係る情報処理装置の内部構成の一例を示すブロック図である。図３の情報処理装置は、図１の情報処理装置と類似した構成であるが、ヒントは必要ないため、公開鍵・ヒント保持部３の代わりに、公開鍵・公開鍵候補保持部３ａを有する。
【００２８】
第２の実施形態は、公開鍵に基づいてブルームフィルタの特定ビットをセットする点に特徴がある。ブルームフィルタは、図３のハッシュ計算部４で演算される。
【００２９】
ブルームフィルタについては、B. Bloom, Space/time tradeoffs in hash coding with allowable errors. CACM, 13(7): 422-426, 1970に詳しく説明されている。ブルームフィルタとは、あるバイト列がバイト列の集合に含まれるかどうかを確率的に検査する技術である。ブルームフィルタの検査により、バイト列集合Ｓに任意のバイト列Ｄが含まれるかどうかが判明する。本実施形態では、バイト列として公開鍵を用い、バイト列集合として自己が所持する複数の公開鍵を用いる。
【００３０】
フィルタの検査結果には、陽性（positive）と陰性（negative）の二つがあり得るが、陽性の結果はバイト列集合Ｓにバイト列Ｄが含まれる可能性があることを示すのみである。
【００３１】
実際には、バイト列Ｄがバイト列集合Ｓに含まれない場合でも、検査が陽性を示す場合がある。これを偽陽性（false positive）と呼ぶ。一方、陰性の場合には、バイト列Ｄがバイト列集合Ｓに含まれる可能性はない。
【００３２】
図４は第２の実施形態に係る情報処理装置の処理手順の一例を示すシーケンス図である。このシーケンス図は、情報処理装置Ａ，Ｂの間で認証を行う場合の処理手順を示している。まず最初に、情報処理装置Ａ，Ｂ間で公開鍵を交換する点は第１の実施形態と同様である（ステップＳ３０）。ただし、第２の実施形態では、ヒントを交換しあう必要はない。
【００３３】
情報処理装置Ａは、ブルームフィルタを形成するビット列を用意する（ステップＳ３１）。このビット列は任意の長さＬでよいが、上述の文献などによって規定される適切な長さ、すなわちすべての公開鍵に関する情報を加味した時点で１がセットされるビット比率が50％程度になるような長さＬ１であるのが望ましい。ただし、ブルームフィルタの長さによって、各情報処理装置が所持している公開鍵の数が発覚するため、フィルタ長を所望の長さＬ１に対してランダムに50〜300％程度増減させてもよい。
【００３４】
上述した文献他に記載されている手法により、用意したビット列に対して、自己が所持する公開鍵の集合に含まれる各公開鍵に関する情報をセットする（ステップＳ３２）。具体的には、公開鍵集合に基づいて、用意したビット列の特定ビットを１にセットする。
【００３５】
情報処理装置Ａは、適当なタイミングで、自己が所持する公開鍵の集合（以下、自己公開鍵集合）により生成したフィルタをブロードキャスト等の方法で送信する（ステップＳ３３）。このとき、自己が所持している公開鍵を他人に特定されないように、フィルタにノイズを付加してもよい。ノイズを付加することにより、偽陽性を増大させることができ、情報処理装置Ｂとフィルタの傍受者が情報処理装置Ａ自身の公開鍵の集合を絞り込むことが困難になる。この手続きを「自己存在通知通信」と呼ぶ。
【００３６】
なお、ノイズの付加は、例えばフィルタの０と１の比率を制御することにより行う。上述したように、最も効率が高いフィルタは、０と１の比率が50:50となるように生成される。これに対して、１の比率が６割または７割となるようにランダムな０のビットを１に置き換えることにより、偽陽性を増加でき、傍受者による公開鍵集合の絞り込みを困難にする。
【００３７】
情報処理装置Ｂは、情報処理装置Ａからのフィルタを受信すると（ステップＳ３４）、フィルタの送信者が既知の装置かどうかの検証を行う（ステップＳ３５）。既知の装置とは、以前に信頼できる手段により、情報処理装置Ｂに対応づけられた公開鍵の集合のうち適切な一つと情報処理装置Ａに対応づけられた公開鍵のうち一つとを対応付け、情報処理装置Ｂとの間で相互に公開鍵を交換した装置をいう。
【００３８】
情報処理装置Ｂは、検証のために、過去に公開鍵を交換した他装置の公開鍵の集合（他者公開鍵集合）の要素それぞれを、受信したフィルタを利用して検査する。検査の結果、陰性と判断された公開鍵は、今回の認証に使用可能な鍵の候補から外される。
【００３９】
次に、検査の結果残った公開鍵の候補の数が２以上か否かを判定し（ステップＳ３６）、２以上の場合には、公開鍵の候補を絞り込むために、公開鍵の候補をバイト列の集合として生成したブルームフィルタを情報処理装置Ａに返信する（ステップＳ３７）。なお、このフィルタは、情報処理装置Ｂが誰を知っているかを示す手がかりとなるので、冗長性を持たせた上で、上述の手法でノイズを付加してもよい。このようなブルームフィルタの返信を「鍵候補応答通信」と呼ぶ。
【００４０】
情報処理装置Ｂは、ステップＳ３５の検査の結果得られた鍵候補の集合を、十分に一意な乱数と対応づけて一時的に保持する。そして、ステップＳ３７で情報処理装置Ａにブルームフィルタを返信する際に、この乱数を識別子として添える。
【００４１】
情報処理装置Ａは、受信したフィルタに対して、自己の公開鍵集合に含まれる公開鍵それぞれを検査する（ステップＳ３８）。検査の結果陰性となった公開鍵は、今回の絞り込みの候補から外される。検査の結果陽性となった公開鍵は、情報処理装置Ａが受信したフィルタに添えられた識別子と対応づけて、公開鍵候補として公開鍵・公開鍵候補保持部３ａに一時的に保管する。なお、公開鍵候補の数がゼロの場合には、通信を終了する。なお、この段階で公開鍵候補が一つになった場合にも通信を終了して、後述するようなチャレンジレスポンスに移行しても良い。しかしながら、情報処理装置Ａが持つ自分自身の公開鍵を調べるような不正なアクセスをする者がいた場合に、チャレンジレスポンスに移行したという事実から解析の糸口を与える危険性があるので、本実施形態ではここで終了せずに次のステップに移行する。
【００４２】
情報処理装置Ａは、公開鍵候補がゼロか否かを判定し（ステップＳ３９）、ゼロでなければ、上述の方法を利用してブルームフィルタを再生成し（ステップＳ４０）、ステップＳ３２以降の処理を行う。このフィルタには、情報処理装置Ａに対応づけられた公開鍵のうち、上述の識別子に対応づけられた候補のみの情報が登録される。このフィルタを用いた通信を、「鍵候補通知通信」と呼ぶ。
【００４３】
以降、情報処理装置Ａにおいて候補の数がゼロになるか、あるいは情報処理装置Ｂにおいて候補の数が１あるいはゼロになるまで、鍵候補応答通信と鍵候補通知通信が繰り返される。
【００４４】
情報処理装置Ａ，Ｂのいずれにおいても、検査の結果候補に残った鍵の数がゼロになった場合は、その時点で通信は終了する。各情報処理装置に一時的に保管された公開鍵の候補は、一定時間ないし一定量の通信の後に消去される。
【００４５】
情報処理装置Ｂにおいて、検査の結果候補に残った鍵の数が１の場合には、この鍵を公開鍵とみなして、チャレンジレスポンス等による認証を行う。この公開鍵を以下ではA.Publicと表記する。
【００４６】
例えば、情報処理装置Ｂは、新たに生成した十分な長さを持つ乱数Ｒと、この乱数Ｒを公開鍵候補により暗号化した符号Ｘと、符号Ｘに対するチェックサムとなる符号Ｃとを送信することによりチャレンジできる。例えば、符号Ｃは、乱数Ｒのハッシュ値であってもよい。これを片方向のチャレンジレスポンスと呼ぶ。
【００４７】
情報処理装置Ａは、符号Ｘを、自己に対応づけられた公開鍵に対応する秘密鍵それぞれを用いて復号化する。復号化した結果を、符号Ｃを求める手法と同様の手法、すなわち本実施形態ではハッシュ関数にかけた結果を符号Ｃと比較することによって検証し、結果が一致するものを乱数Ｒとみなす。
【００４８】
情報処理装置Ａは、乱数Ｒを自己の秘密鍵で再び暗号化して情報処理装置Ｂに送り返す。
【００４９】
情報処理装置Ｂは、受信した符号ＹをA.Pubkeyで復号化し、正しく乱数Ｒが得られれば、通信相手が確かにA.Pubkeyに対応する秘密鍵を持ち、情報処理装置Ａであると推定できる。
【００５０】
なお、A.Pubkeyには、事前に公開鍵を交換する際に、情報処理装置Ｂ自身に対応づけられた公開鍵の集合のうち一つを情報処理装置Ａに渡している。情報処理装置Ａとの通信に用いられるべき情報処理装置Ｂ自身の公開鍵をB.Pubkey[A]と表記する。
【００５１】
一回のチャレンジレスポンスにて双方の鍵を交換し、相互に認証する手法には以下のような手法がある。
【００５２】
情報処理装置Ｂにおいて、上述の符号Ｘおよび符号Ｃに加えて、B.Pubkey[A]のダイジェストをA.Pubkeyにより暗号化する。これを符号Ｐと呼ぶ。
【００５３】
また、B.Pubkey[A]に対応する秘密鍵により、乱数Ｒを暗号化した符号Ｑを生成する。情報処理装置Ｂは、符号Ｘ、符号Ｃ、符号Ｐ、符号Ｑを情報処理装置Ａに送信することによりチャレンジする。
【００５４】
情報処理装置Ａは、符号Ｘおよび符号Ｃに関しては、上述の片方向チャレンジレスポンスと同様の処理を行う。加えて、符号ＰをA.Pubkeyに対応する秘密鍵により復号化することにより、B.Pubkey[A]のダイジェストを確認することができる。
【００５５】
したがって、情報処理装置Ａが過去に取得した他の装置に対応する公開鍵の集合により、B.Pubkey[A]を検索できる。また、符号ＱをB.Pubkey[A]により復号化し、乱数Ｒと一致することから、通信相手が情報処理装置Ｂであり、B.Pubkey[A]に対応する秘密鍵を持つことを推定できる。
【００５６】
このように、第２の実施形態では、ブルームフィルタを用いて公開鍵情報を通信相手に送信するため、公開鍵にヒントを対応づけなくても自己の公開鍵を通信相手に知られるおそれがなくなり、認証手順を簡略化できる。
【００５７】
上述した実施形態で説明した情報処理装置は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、情報処理装置の少なくとも一部の機能を実現するプログラムをフロッピーディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の携帯可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００５８】
また、情報処理装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【図面の簡単な説明】
【００５９】
【図１】本発明の第１の実施形態に係る情報処理装置の内部構成の一例を示すブロック図。
【図２】情報処理装置Ａ，Ｂとの間で行われる認証処理の処理手順の一例を示すシーケンス図。
【図３】本発明の第２の実施形態に係る情報処理装置の内部構成の一例を示すブロック図。
【図４】第２の実施形態に係る情報処理装置の処理手順の一例を示すシーケンス図。
【符号の説明】
【００６０】
１  受信部
２  送信部
３  公開鍵・ヒント保持部
３ａ  公開鍵・公開鍵候補保持部
４  ハッシュ計算部
５  暗号化部
６  署名部
７  制御部
【図１】
2005268926.tif 000003
【図２】
2005268926.tif 000004
【図３】
2005268926.tif 000005
【図４】
2005268926.tif 000006