(57)【要約】【課題】鍵交換においてプライバシーに関する情報の秘匿性を高める。【解決手段】鍵交換装置は、情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、自装置が鍵を予め取得している第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、所定の連絡先情報が所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、鍵を交換する交換先装置から取得し、取得した当該第２変換情報の集合と、連絡先組情報記憶部が記憶している連絡先組情報の集合と、鍵情報記憶部が記憶している保有鍵情報の集合とに基づいて、自装置と交換先装置との間で送信される鍵を示す送信鍵を決定する制御部とを備える。【選択図】図１
2015070487.tif 000002
【特許請求の範囲】
【請求項１】
情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、
前記自装置が鍵を予め取得している前記第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、
所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、前記鍵を交換する交換先装置から取得し、取得した当該第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する制御部と
を備えることを特徴とする鍵交換装置。
【請求項２】
前記所定の連絡先情報は、前記交換先装置が保有する前記連絡先情報の集合のうち、前記交換先装置が鍵を保有していない前記連絡先情報を示す第２連絡先情報であり、
前記制御部は、
前記所定の一方向性関数に基づいて変換された前記第２連絡先情報の集合を、前記第２変換情報の集合として前記交換先装置から取得し、
取得した前記第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記鍵情報記憶部が記憶している前記保有鍵情報の集合のうち、前記第１連絡先情報が前記第２連絡先情報と一致する前記保有鍵情報に含まれる鍵を、前記送信鍵として決定し、
決定した前記送信鍵を含む前記保有鍵情報を前記交換先装置に送信する
ことを特徴とする請求項１に記載の鍵交換装置。
【請求項３】
前記連絡先情報を記憶する連絡先記憶部を備え、
前記制御部は、
前記連絡先記憶部が記憶している前記連絡先情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置が保有する前記連絡先情報の集合のうち、前記自装置が鍵を保有していない前記連絡先情報を抽出し、抽出した前記連絡先情報を前記所定の一方向性関数に基づいて変換した第３変換情報の集合を生成し、
生成した前記第３変換情報の集合を前記交換先装置に送信し、
前記第３変換情報の集合に応じて前記交換先装置から出力された鍵を取得し、
取得した当該鍵と、当該鍵に対応する前記連絡先情報とを関連付けて前記鍵情報記憶部に記憶させる
ことを特徴とする請求項２に記載の鍵交換装置。
【請求項４】
前記所定の連絡先情報は、前記交換先装置が保有している前記連絡先情報の集合のうち、前記交換先装置が鍵を保有している前記連絡先情報を示す第３連絡先情報であり、
前記制御部は、
前記所定の一方向性関数に基づいて変換された前記第３連絡先情報の集合を、前記第２変換情報の集合として前記交換先装置から取得し、
取得した前記第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記第３連絡先情報の集合のうちから、前記鍵情報記憶部が記憶していない前記連絡先情報を示す第４連絡先情報を抽出し、抽出した前記第４連絡先情報に対応する鍵を前記送信鍵として決定し、
前記第４連絡先情報に基づく鍵要求情報であって、前記第４連絡先情報に対応する鍵を要求する鍵要求情報を前記交換先装置に送信し、
前記鍵要求情報に応じて前記交換先装置から出力された、前記第４連絡先情報に対応する鍵を前記送信鍵として前記交換先装置から取得する
ことを特徴とする請求項１に記載の鍵交換装置。
【請求項５】
情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、制御部とを備える鍵交換装置の鍵交換方法であって、
前記制御部が、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、前記鍵を交換する交換先装置から取得する取得ステップと、
前記制御部が、取得した当該第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する決定ステップと
を含むことを特徴とする鍵交換方法。
【請求項６】
情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、制御部とを備える鍵交換装置としてのコンピュータに、
前記制御部が、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、前記鍵を交換する交換先装置から取得する取得ステップと、
前記制御部が、取得した当該第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する決定ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、鍵交換装置、鍵交換方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、公開鍵暗号方式による暗号が広く利用されており、公開鍵を交換する鍵交換の技術が知られている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２６２４２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、公開鍵を交換する場合に、直接公開鍵を交換する場合の他に、例えば、「信頼の輪」に基づいて、信頼のおける第三者から公開鍵を得る場合がある。ここで、「信頼の輪」とは、ある公開鍵について自身が信用できる人物が署名していた場合に、その署名された公開鍵は正しい持ち主が作成した正当なものであると信用する考え方のことである。このように、直接公開鍵を交換せずに、信頼している第三者を介することによって、多くの公開鍵を得ることが可能になる。
しかしながら、「信頼の輪」に基づいて、公開鍵を交換する場合には、公開鍵を交換する相手が、どの公開鍵を持っているかが不明であるため、例えば、公開鍵を取得したい人物の一覧を提示した場合に、交換相手が知らない人物などの交換相手が知る必要のない不要な情報を開示してしまうことがある。また、例えば、公開鍵を交換する際に、交換相手が所持している公開鍵の一覧を見せてもらい、その中から公開鍵を取得したい人物を選択する場合には、交換相手の交友関係などの不要な情報を知り得てしまうことがある。このように、「信頼の輪」に基づく鍵交換の技術では、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいして、秘匿性が低下することがあった。
【０００５】
本発明は、上記問題を解決すべくなされたもので、その目的は、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる鍵交換装置、鍵交換方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記問題を解決するために、本発明の一態様は、情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、前記鍵を交換する交換先装置から取得し、取得した当該第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する制御部とを備えることを特徴とする鍵交換装置である。
【０００７】
また、本発明の一態様は、上記の鍵交換装置において、前記所定の連絡先情報は、前記交換先装置が保有している前記連絡先情報の集合のうち、前記交換先装置が鍵を保有していない前記連絡先情報を示す第２連絡先情報であり、前記制御部は、前記所定の一方向性関数に基づいて変換された前記第２連絡先情報の集合を、前記第２変換情報の集合として前記交換先装置から取得し、取得した前記第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記鍵情報記憶部が記憶している前記保有鍵情報の集合のうち、前記第１連絡先情報が前記第２連絡先情報と一致する前記保有鍵情報に含まれる鍵を、前記送信鍵として決定し、決定した前記送信鍵を含む前記保有鍵情報を前記交換先装置に送信することを特徴とする。
【０００８】
また、本発明の一態様は、上記の鍵交換装置において、前記自装置が保有する前記連絡先情報を記憶する連絡先記憶部を備え、前記制御部は、前記連絡先記憶部が記憶している前記連絡先情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置が保有する前記連絡先情報の集合のうち、前記自装置が鍵を保有していない前記連絡先情報を抽出し、抽出した前記連絡先情報を前記所定の一方向性関数に基づいて変換した第３変換情報の集合を生成し、生成した前記第３変換情報の集合を前記交換先装置に送信し、前記第３変換情報の集合に応じて前記交換先装置から出力された鍵を取得し、取得した当該鍵と、当該鍵に対応する前記連絡先情報とを関連付けて前記鍵情報記憶部に記憶させることを特徴とする。
【０００９】
また、本発明の一態様は、上記の鍵交換装置において、前記所定の連絡先情報は、前記交換先装置が保有している前記連絡先情報の集合のうち、前記交換先装置が鍵を保有している前記連絡先情報を示す第３連絡先情報であり、前記制御部は、前記所定の一方向性関数に基づいて変換された前記第３連絡先情報の集合を、前記第２変換情報の集合として前記交換先装置から取得し、取得した前記第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記第３連絡先情報の集合のうちから、前記鍵情報記憶部が記憶していない前記連絡先情報を示す第４連絡先情報を抽出し、抽出した前記第４連絡先情報に対応する鍵を前記送信鍵として決定し、前記第４連絡先情報に基づく鍵要求情報であって、前記第４連絡先情報に対応する鍵を要求する鍵要求情報を前記交換先装置に送信し、前記鍵要求情報に応じて前記交換先装置から出力された、前記第４連絡先情報に対応する鍵を前記送信鍵として前記交換先装置から取得することを特徴とする。
【００１０】
また、本発明の一態様は、情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、制御部とを備える鍵交換装置の鍵交換方法であって、前記制御部が、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、前記鍵を交換する交換先装置から取得する取得ステップと、前記制御部が、取得した当該第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する決定ステップとを含むことを特徴とする鍵交換方法である。
【００１１】
また、本発明の一態様は、情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第１連絡先情報と、当該第１連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第１変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第１連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、制御部とを備える鍵交換装置としてのコンピュータに、前記制御部が、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第２変換情報の集合を、前記鍵を交換する交換先装置から取得する取得ステップと、前記制御部が、取得した当該第２変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する決定ステップとを実行させるためのプログラムである。
【発明の効果】
【００１２】
本発明によれば、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施形態による鍵交換システムの一例を示すブロック図である。
【図２】本実施形態における連絡先記憶部のデータ構成の一例を示す図である。
【図３】本実施形態における鍵集合記憶部のデータ構成の一例を示す図である。
【図４】本実施形態における鍵保有連絡先記憶部のデータ構成の一例を示す図である。
【図５】第１の実施形態における携帯端末装置の動作の一例を示すフローチャートである。
【図６】第１の実施形態における鍵交換システムの動作の一例を説明する第１の図である。
【図７】第１の実施形態における鍵交換システムの動作の一例を説明する第２の図である。
【図８】第１の実施形態における鍵交換システムの動作の一例を説明する第３の図である。
【図９】第１の実施形態における鍵交換システムの動作の一例を説明する第４の図である。
【図１０】第１の実施形態における鍵交換システムの動作の一例を説明する第５の図である。
【図１１】第１の実施形態における鍵交換システムの動作の一例を説明する第６の図である。
【図１２】第１の実施形態における鍵交換システムの動作の一例を説明する第７の図である。
【図１３】本実施形態における携帯端末装置の表示画面の一例を説明する図である。
【図１４】第２の実施形態による鍵交換システムの一例を示すブロック図である。
【図１５】第２の実施形態における携帯端末装置の動作の一例を示すフローチャートである。
【図１６】第２の実施形態における鍵交換システムの動作の一例を説明する第１の図である。
【図１７】第２の実施形態における鍵交換システムの動作の一例を説明する第２の図である。
【図１８】第２の実施形態における鍵交換システムの動作の一例を説明する第３の図である。
【図１９】第２の実施形態における鍵交換システムの動作の一例を説明する第４の図である。
【図２０】第２の実施形態における鍵交換システムの動作の一例を説明する第５の図である。
【図２１】第２の実施形態における鍵交換システムの動作の一例を説明する第６の図である。
【図２２】第２の実施形態における鍵交換システムの動作の一例を説明する第７の図である。
【図２３】第２の実施形態における鍵交換システムの動作の一例を説明する第８の図である。
【図２４】第２の実施形態における鍵交換システムの動作の一例を説明する第９の図である。
【発明を実施するための形態】
【００１４】
以下、本発明の一実施形態による鍵交換装置及び鍵交換システムについて、図面を参照して説明する。
［第１の実施形態］
図１は、本実施形態による鍵交換システム１の一例を示すブロック図である。
この図において、鍵交換システム１は、携帯端末装置１００と携帯端末装置２００とを備えている。
【００１５】
携帯端末装置１００は、携帯端末装置２００と鍵交換を行う鍵交換装置であり、例えば、スマートフォンなどの携帯電話である。すなわち、本実施形態では、鍵交換装置の一例として、携帯電話である場合について説明する。
携帯端末装置２００は、携帯端末装置１００と鍵交換を行う交換先（相手先）の装置（交換先装置）であり、例えば、携帯端末装置１００と同一の構成を備える携帯電話である。
【００１６】
なお、本実施形態において、「鍵交換」又は、「鍵を交換する」とは、例えば、ＲＳＡ暗号などの公開鍵暗号方式の暗号処理に利用する公開鍵（鍵の一例）を鍵交換装置と交換先装置との間で送信することである。また、「鍵交換」又は、「鍵を交換する」には、鍵交換装置から交換先装置に公開鍵を送信する場合と、交換先装置から鍵交換装置に公開鍵を送信する場合とのいずれか一方、又は両方が含まれる。
また、本実施形態では、鍵交換は、「信頼の輪」に基づいて公開鍵を送信することを前提とし、ＰＧＰ（Pretty Good Privacy）の鍵交換システムに適用可能である。
【００１７】
図１において、携帯端末装置１００は、入力部１０、出力部２０、通信部３０、記憶部４０、及び制御部５０を備えている。
入力部１０は、例えば、キーボードやタッチパネルなどであり、利用者によって入力された各種情報や、各種操作に応じた信号などを制御部５０に出力する。
出力部２０は、外部に各種情報を出力する。なお、出力部２０は、例えば、液晶ディスプレイなどの表示装置であり、制御部５０から出力される各種情報を表示する。
【００１８】
通信部３０は、鍵交換の際に、例えば、ＮＦＣ（Near Field Communication）インターフェースを利用して、携帯端末装置２００と通信を行う。なお、本実施形態における鍵交換システム１は、ＮＦＣインターフェースを利用して、携帯端末装置１００と携帯端末装置２００との間で鍵交換を行う場合の一例について説明する。
また、通信部３０は、受信部３１と、送信部３２とを備えている。
【００１９】
受信部３１は、ＮＦＣインターフェースを利用して、公開鍵などの各種情報を外部装置（例えば、携帯端末装置２００）から受信する。受信部３１は、携帯端末装置２００から情報を受信し、受信した情報を制御部５０に出力する。
送信部３２は、ＮＦＣインターフェースを利用して、公開鍵などの各種情報を外部装置（例えば、携帯端末装置２００）に送信する。送信部３２は、制御部５０から出力された情報を、携帯端末装置２００に出力する。
【００２０】
記憶部４０は、鍵交換に利用する各種情報を記憶する。記憶部４０は、連絡先記憶部４１、鍵集合記憶部４２、鍵不明連絡先記憶部４３、ハッシュ化鍵不明連絡先記憶部４４、鍵保有連絡先記憶部４５、受信ハッシュ化鍵不明連絡先記憶部４６、送信鍵記憶部４７、及び受信鍵記憶部４８を備えている。
【００２１】
連絡先記憶部４１は、情報を送信する連絡先情報であって、自装置（携帯端末装置１００）が保有する連絡先情報を示す第１連絡先情報を記憶する。ここで、連絡先情報とは、例えば、電子メールアドレス（以下、メールアドレスという）であり、第１連絡先情報は、携帯端末装置１００が保有しているメールアドレスのことである。連絡先記憶部４１は、図２に示すように、複数のメールアドレスを予め記憶している。ここで、図２を参照して連絡先記憶部４１のデータ構成の一例について説明する。
【００２２】
図２は、本実施形態における連絡先記憶部４１のデータ構成の一例を示す図である。
この図において、連絡先記憶部４１は、例えば、メールの送受信処理を行うソフトウェアであるメールソフトのアドレス帳を示す情報を記憶する。すなわち、この図において、連絡先記憶部４１は、「Ｎｏ．」、「氏名」、及び「メールアドレス」を関連付けて記憶する。ここで、「Ｎｏ．」は、メールアドレスを管理するための登録情報の項番を示し、「氏名」は、アドレス帳に登録されている情報を送信する相手の氏名を示す情報である。また、「メールアドレス」は、記憶されているメールアドレスを示している。
図２に示すように、連絡先記憶部４１は、複数のメールアドレスを連絡先集合として記憶する。ここで、連絡先集合とは、携帯端末装置１００が保有しているメールアドレスの集合のことであり、連絡先集合（Ｅｉ）は、下記の式（１）により表現される。
【００２３】
Ｅｉ＝｛ｅｊ｜ｊ∈Ａｉ｝  ・・・（１）
【００２４】
但し、“Ａｉ”は、ユーザ“ｉ”が何らかの連絡手段を保有している相手（ユーザ）の集合を示す。なお、以下の説明において、“ｅｉ”は、ユーザ“ｉ”のメールアドレスを示し、“ｋｉ”は、ユーザ“ｉ”の公開鍵を示す。また、“Ｆｓｔ（Ｘ）”は、“Ｘ”がペアＸ＝（ａ，ｂ）のときの第一要素（ａ）を示し、“Ｘ”がペアの集合Ｘ＝｛（ａ１，ｂ１）,（ａ２，ｂ２），．．．，（ａＮ，ｂＮ）｝のときの集合｛ａ１，ａ２，．．．，ａＮ｝を示す。また、“Ｓｎｄ（Ｘ）”は、“Ｘ”がペアＸ＝（ａ，ｂ）のときの第二要素（ｂ）を示し、“Ｘ”がペアの集合Ｘ＝｛（ａ１，ｂ１）,（ａ２，ｂ２），．．．，（ａＮ，ｂＮ）｝のときの集合｛ｂ１，ｂ２，．．．，ｂＮ｝を示す。
なお、本実施形態において、携帯端末装置１００と携帯端末装置２００とは、同一の構成であるので、以下の説明において、“ｉ”は、携帯端末装置１００である場合を“１”とし、携帯端末装置２００である場合を“２”として説明する。
【００２５】
鍵集合記憶部４２（鍵情報記憶部）は、携帯端末装置１００が公開鍵を予め取得している（保有している）第１連絡先情報と、当該公開鍵とを関連付けた保有鍵情報を記憶する。鍵集合記憶部４２は、図３に示すように、複数の保有鍵情報を鍵集合として記憶する。なお、鍵集合とは、携帯端末装置１００が保有しているメールアドレス及び公開鍵の組の集合のことであり、鍵集合（ＫＲｉ）は、下記の式（２）により表現される。
【００２６】
ＫＲｉ＝｛（ｅｊ，ｋｊ）｜ｊ∈Ａｉ｝  ・・・（２）
【００２７】
ここで、図３を参照して鍵集合記憶部４２のデータ構成の一例について説明する。
図３は、本実施形態における鍵集合記憶部４２のデータ構成の一例を示す図である。この図において、鍵集合記憶部４２は、「メールアドレス」と「公開鍵」とを関連付けて記憶する。
この図に示す例では、鍵集合記憶部４２は、メールアドレス（ｅ２）と公開鍵（Ｋ２）とを関連づけた保有鍵情報と、メールアドレス（ｅ５）と公開鍵（Ｋ５）とを関連づけた保有鍵情報とを含む鍵集合（保有鍵情報の集合）を記憶している。
【００２８】
再び図１に戻り、鍵不明連絡先記憶部４３は、鍵不明連絡先集合として複数の鍵不明連絡先情報を記憶する。ここで、鍵不明連絡先集合とは、携帯端末装置１００が保有しているメールアドレスの集合（連絡先集合）のうち、携帯端末装置１００が公開鍵を保有していないメールアドレスを示す鍵不明連絡先情報の集合であり、鍵不明連絡先集合（ＵＬｉ）は、下記の式（３）により表現される。
【００２９】
ＵＬｉ＝Ｅｉ−Ｆｓｔ（ＫＲｉ）  ・・・（３）
【００３０】
ハッシュ化鍵不明連絡先記憶部４４は、ハッシュ化鍵不明連絡先集合として複数のハッシュ化鍵不明連絡先情報を記憶する。ここで、ハッシュ化鍵不明連絡先情報は、上述した鍵不明連絡先情報（公開鍵を保有していないメールアドレス）のハッシュ値を示す。ここで、ハッシュ化鍵不明連絡先集合（ＨＵＬｉ）は、下記の式（４）により表現される。
【００３１】
ＨＵＬｉ＝｛ｈ（ｅ）｜ｅ∈ＵＬｉ｝  ・・・（４）
ここで、ｈ（）は、ハッシュ関数である。
【００３２】
鍵保有連絡先記憶部４５は、鍵集合記憶部４２が記憶するメールアドレスと、当該メールアドレスのハッシュ値とを関連付けた組（連絡先組情報）を記憶する。すなわち、鍵保有連絡先記憶部４５は、図４に示すように、複数の連絡先組情報を、鍵保有連絡先集合として記憶する。なお、本実施形態において、鍵保有連絡先記憶部４５は、自装置が保有するメールアドレス（第１連絡先情報）と、当該メールアドレスのハッシュ値（第１変換情報）とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部の一例である。
また、鍵保有連絡先集合（ＨＤＬｉ）は、下記の式（５）により表現される。
【００３３】
ＨＤＬｉ＝｛（ｅ，ｈ（ｅ））｜ｅ∈Ｅｉ｝  ・・・（５）
【００３４】
ここで、図４を参照して鍵保有連絡先記憶部４５のデータ構成の一例について説明する。
図４は、本実施形態における鍵保有連絡先記憶部４５のデータ構成の一例を示す図である。この図において、鍵保有連絡先記憶部４５は、「メールアドレス」と「ハッシュ値」とを関連付けて記憶する。
この図に示す例では、鍵保有連絡先記憶部４５は、メールアドレス（ｅ２）とメールアドレス（ｅ２）のハッシュ値（ｈ（ｅ２））とを関連づけた連絡先組情報と、メールアドレス（ｅ５）とメールアドレス（ｅ５）のハッシュ値（ｈ（ｅ５））とを関連づけた連絡先組情報とを含む鍵保有連絡先集合を記憶している。
【００３５】
再び図１に戻り、受信ハッシュ化鍵不明連絡先記憶部４６は、自装置が受信したハッシュ化鍵不明連絡先集合を記憶する。すなわち、受信ハッシュ化鍵不明連絡先記憶部４６は、例えば、携帯端末装置２００から取得したハッシュ化鍵不明連絡先集合（ＨＵＬ２）を記憶する。
【００３６】
送信鍵記憶部４７は、鍵交換の際に送信する送信鍵集合を記憶する。ここで、送信鍵集合は、メールアドレスと、当該メールアドレスに対応する公開鍵とを関連づけた鍵情報の集合である。
【００３７】
受信鍵記憶部４８は、鍵交換の際に受信した受信鍵集合を記憶する。ここで、受信鍵集合は、例えば、携帯端末装置２００から取得した鍵情報の集合（携帯端末装置２００の送信鍵集合）である。受信鍵記憶部４８は、受信鍵集合に含まれるメールアドレスと、当該メールアドレスに対応する公開鍵とを関連づけて記憶する。
【００３８】
制御部５０は、例えば、ＣＰＵ（Central Processing Unit）などを含むプロセッサであり、携帯端末装置１００を統括的に制御する。制御部５０は、鍵交換の際に、例えば、携帯端末装置２００から通信部３０の受信部３１を介して受信ハッシュ化鍵不明連絡先集合（第２変換情報の集合の一例）を取得する。ここで、受信ハッシュ化鍵不明連絡先集合は、携帯端末装置２００が保有しているメールアドレスの集合（連絡先集合）のうち、携帯端末装置２００が公開鍵を保有していないメールアドレスを示す鍵不明連絡先情報（第２連絡先情報）のハッシュ値の集合である。携帯端末装置１００における受信ハッシュ化鍵不明連絡先集合は、携帯端末装置２００におけるハッシュ化鍵不明連絡先集合に相当する。
制御部５０は、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先記憶部４５が記憶している鍵保有連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、携帯端末装置２００に送信する送信鍵集合を生成する。すなわち、制御部５０は、受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、携帯端末装置１００と携帯端末装置２００との間で送信する公開鍵を示す送信鍵を決定する。
【００３９】
例えば、制御部５０は、鍵集合記憶部４２が記憶している鍵集合のうち、受信ハッシュ化鍵不明連絡先集合のメールアドレスと一致するメールアドレスに対応する公開鍵を送信鍵として決定する。つまり、制御部５０は、自装置の鍵集合のうち、メールアドレスが、受信ハッシュ化鍵不明連絡先集合のハッシュ値に対応するメールアドレスと一致する保有鍵情報に含まれる公開鍵を送信鍵として決定する。なお、送信鍵を決定する処理（送信鍵集合を生成する処理）の詳細については、後述する。
【００４０】
このように、制御部５０は、所定のメールアドレス（連絡先情報）のハッシュ値の集合を、公開鍵を交換する携帯端末装置２００から取得し、取得した当該ハッシュ値の集合と、鍵保有連絡先集合と、鍵集合とに基づいて、携帯端末装置１００と携帯端末装置２００との間で送信する公開鍵を示す送信鍵を決定する。なお、本実施形態において、所定のメールアドレスとは、携帯端末装置２００が保有しているメールアドレスの集合（連絡先集合）のうち、携帯端末装置２００が公開鍵を保有していないメールアドレスを示す鍵不明連絡先情報（第２連絡先情報）である。
制御部５０は、生成した送信鍵集合を通信部３０の送信部３２を介して携帯端末装置２００に送信する。
【００４１】
また、制御部５０は、例えば、鍵交換を行う際に、連絡先記憶部４１が記憶している連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、上述した鍵不明連絡先集合を生成し、生成した鍵不明連絡先集合のメールアドレスのハッシュ値（第３変換情報）の集合であるハッシュ化鍵不明連絡先集合を携帯端末装置２００に送信する。そして、制御部５０は、鍵不明連絡先集合に対応する公開鍵の集合を受信鍵集合として携帯端末装置２００から取得し、取得した受信鍵集合を鍵集合記憶部４２が記憶している鍵集合に追加する。
また、制御部５０は、鍵不明連絡先集合生成部５１、ハッシュ算出部５２、鍵保有連絡先集合生成部５３、暗号化処理部５４、復号処理部５５、送信鍵集合生成部５６、及び鍵集合更新部５７を備えている。
【００４２】
鍵不明連絡先集合生成部５１は、連絡先記憶部４１が記憶している連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、上述した鍵不明連絡先集合を生成する。鍵不明連絡先集合生成部５１は、例えば、連絡先記憶部４１が記憶しているメールアドレスの集合のうち、鍵集合記憶部４２に公開鍵が記憶されていないメールアドレスを抽出し、抽出した当該メールアドレスの集合を、鍵不明連絡先集合として生成する。すなわち、鍵不明連絡先集合生成部５１は、上述した式（３）により、鍵不明連絡先集合を生成する。鍵不明連絡先集合生成部５１は、生成した鍵不明連絡先集合を鍵不明連絡先記憶部４３に記憶させる。
【００４３】
また、鍵不明連絡先集合生成部５１は、生成した鍵不明連絡先集合に含まれるメールアドレスをハッシュ算出部５２に出力して、ハッシュ算出部５２に対してメールアドレスのハッシュ値を算出させる。鍵不明連絡先集合生成部５１は、ハッシュ算出部５２に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵不明連絡先集合として、ハッシュ化鍵不明連絡先記憶部４４に記憶させる。具体的に、鍵不明連絡先集合生成部５１は、鍵不明連絡先記憶部４３に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部５２に出力するとともに、ハッシュ算出部５２から出力されたハッシュ値を、ハッシュ化鍵不明連絡先記憶部４４に順次記憶させる。このように、鍵不明連絡先集合生成部５１は、鍵不明連絡先集合に基づいて、ハッシュ算出部５２に鍵不明連絡先情報のハッシュ値を算出させて、鍵不明連絡先情報のハッシュ値の集合（ハッシュ化鍵不明連絡先集合）を生成する。
【００４４】
また、鍵不明連絡先集合生成部５１は、生成したハッシュ化鍵不明連絡先集合を暗号化処理部５４に出力し、交換先装置（ここでは携帯端末装置２００）の公開鍵により暗号化させて、暗号化されたハッシュ化鍵不明連絡先集合を、通信部３０の送信部３２を介して、携帯端末装置２００に出力させる。
【００４５】
ハッシュ算出部５２（変換部）は、所定の一方向性関数に基づいて連絡先情報を変換した変換情報を生成する。すなわち、ハッシュ算出部５２は、例えば、所定のハッシュ関数に基づいて、入力されたメールアドレスのハッシュ値を算出し、算出したハッシュ値を出力する。ここで、所定のハッシュ関数は、例えば、ＭＤ４、ＭＤ５、ＳＨＡ−１、ＳＨＡ−５１２などであり、ハッシュ値から元のメールアドレスを得ることが事実上不可能である一方向性関数であれば、他の関数を適用してもよい。
【００４６】
鍵保有連絡先集合生成部５３は、鍵集合記憶部４２が記憶している鍵集合に基づいて、鍵保有連絡先集合を生成し、生成した鍵保有連絡先集合を鍵保有連絡先記憶部４５に記憶させる。すなわち、鍵保有連絡先集合生成部５３は、鍵集合記憶部４２に記憶されているメールアドレスをハッシュ値に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として鍵保有連絡先記憶部４５に記憶させる。
具体的に、鍵保有連絡先集合生成部５３は、鍵集合記憶部４２に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部５２に出力する。そして、鍵保有連絡先集合生成部５３は、ハッシュ算出部５２から出力されたハッシュ値と元のメールアドレスとを関連付けて、鍵保有連絡先記憶部４５に順次記憶させる。
【００４７】
暗号化処理部５４は、携帯端末装置１００が出力する情報を、携帯端末装置２００の公開鍵により暗号化して、暗号化した情報を通信部３０の送信部３２を介して、携帯端末装置２００に出力する。暗号化処理部５４は、携帯端末装置２００の公開鍵を、鍵集合記憶部４２から取得し、取得した公開鍵を用いて、入力された情報を暗号化する。そして、暗号化処理部５４は、暗号化した情報を通信部３０の送信部３２に出力する。
【００４８】
復号処理部５５は、携帯端末装置２００から通信部３０の受信部３１を介して受信した情報を、自装置（携帯端末装置１００）の秘密鍵により復号し、復号した情報を制御部５０の所定の処理部（例えば、送信鍵集合生成部５６及び鍵集合更新部５７）に出力する。なお、携帯端末装置１００の秘密鍵は、記憶部４０に予め記憶されており、復号処理部５５は、記憶部４０から取得する。
【００４９】
送信鍵集合生成部５６は、携帯端末装置２００から受信した受信ハッシュ化鍵不明連絡先集合を取得し、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先記憶部４５が記憶している鍵保有連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、送信鍵集合を生成する。具体的に、送信鍵集合生成部５６は、通信部３０の受信部３１が携帯端末装置２００から受信した、暗号化された携帯端末装置２００におけるハッシュ化鍵不明連絡先集合を復号処理部５５に復号させて、受信ハッシュ化鍵不明連絡先集合として取得する。送信鍵集合生成部５６は、取得した受信ハッシュ化鍵不明連絡先集合を受信ハッシュ化鍵不明連絡先記憶部４６に記憶させる。そして、送信鍵集合生成部５６は、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、送信鍵集合を生成する。
【００５０】
すなわち、送信鍵集合生成部５６は、取得した受信ハッシュ化鍵不明連絡先集合のうち、鍵保有連絡先記憶部４５が記憶しているハッシュ値（第１変換情報）と一致するハッシュ値（第２変換情報）を抽出するとともに、抽出したハッシュ値と関連付けられて鍵保有連絡先記憶部４５に記憶されているメールアドレスであって、鍵集合記憶部４２に記憶されているメールアドレスに対応する公開鍵を、送信鍵として決定する。具体的に、送信鍵集合生成部５６は、鍵集合記憶部４２に記憶されている保有鍵情報の集合のうちから、抽出したハッシュ値を含む保有鍵情報を、決定した送信鍵を含む保有鍵情報として抽出し、この保有鍵情報の集合を送信鍵集合として送信鍵記憶部４７に記憶させる。
また、送信鍵集合生成部５６は、送信鍵記憶部４７に記憶されている送信鍵集合を暗号化処理部５４に出力し、携帯端末装置２００の公開鍵により暗号化させて、暗号化された送信鍵集合を、通信部３０の送信部３２を介して、携帯端末装置２００に出力させる。このように、送信鍵集合生成部５６は、決定した送信鍵を含む保有鍵情報を携帯端末装置２００に送信する。
【００５１】
鍵集合更新部５７は、携帯端末装置２００から受信した受信鍵集合を取得し、受信鍵記憶部４８に記憶させる。すなわち、鍵集合更新部５７は、携帯端末装置２００に出力したハッシュ化鍵不明連絡先集合に応じて携帯端末装置２００が出力した暗号化された送信鍵集合（携帯端末装置２００における送信鍵集合）を通信部３０の受信部３１を介して受信するとともに、暗号化された送信鍵集合を復号処理部５５に復号させて、受信鍵集合として取得する。そして、鍵集合更新部５７は、取得した受信鍵集合を受信鍵記憶部４８に記憶させる。
【００５２】
また、鍵集合更新部５７は、携帯端末装置２００から受信した受信鍵集合を鍵集合記憶部４２に追加する更新処理を行う。すなわち、鍵集合更新部５７は、送信したハッシュ化鍵不明連絡先集合に応じて携帯端末装置２００から出力された公開鍵と、当該公開鍵に対応するメールアドレスとを関連付けて鍵集合記憶部４２に記憶させる。
また、鍵集合更新部５７は、鍵交換の処理が完了した場合に、鍵交換の処理が完了したことを示す情報（例えば、メッセージ）を出力部２０に出力する。鍵集合更新部５７は、例えば、鍵交換の処理が完了したことを示す情報を出力部２０（例えば、液晶ディスプレイ）に表示させる。
【００５３】
次に、本実施形態における鍵交換システム１の動作について、図面を参照して説明する。
本実施形態では、携帯端末装置１００と携帯端末装置２００とが鍵交換を行う場合の一例について説明する。
図５は、本実施形態における携帯端末装置１００（２００）の動作の一例を示すフローチャートである。また、図６〜図１２は、本実施形態における鍵交換システム１の動作の一例を説明する図である。
なお、携帯端末装置１００及び携帯端末装置２００のそれぞれにおいて、図５に示す処理が実行され、ここでは、携帯端末装置１００の動作を優先して説明する。
また、図６〜図１２は、携帯端末装置１００及び携帯端末装置２００のそれぞれが、保有する保有情報（記憶部４０に記憶される情報）の遷移を示している。
【００５４】
図５において、まず、携帯端末装置１００の制御部５０は、入力部１０からの処理の開始信号を受信する（ステップＳ１０１）。すなわち、携帯端末装置１００のユーザの操作により、鍵交換の処理を開始する指示が入力された場合に、例えば、入力部１０が処理の開始信号を出力し、この開始信号に応じて、制御部５０が鍵交換の処理を開始する。なお、ステップＳ１０１における携帯端末装置１００及び携帯端末装置２００の保有情報は、図６に示す状態である。ここで、図６は、鍵交換を行う前の携帯端末装置１００及び携帯端末装置２００の初期状態を示している。
【００５５】
図６に示す例では、初期状態において、携帯端末装置１００が、連絡先集合（Ｅ１＝｛ｅ２，ｅ３，ｅ４，ｅ５｝）及び鍵集合（ＫＲ１＝｛（ｅ２，ｋ２），（ｅ５，ｋ５）｝）を保有し、携帯端末装置２００が、連絡先集合（Ｅ２＝｛ｅ１，ｅ３，ｅ４，ｅ５｝）及び鍵集合（ＫＲ２＝｛（ｅ１，ｋ１），（ｅ３，ｋ３）｝）を保有している場合である。
【００５６】
次に、制御部５０の鍵不明連絡先集合生成部５１が、連絡先集合と鍵集合とに基づいて鍵不明連絡先集合を生成する（ステップＳ１０２、図７参照）。すなわち、鍵不明連絡先集合生成部５１が、連絡先記憶部４１が記憶している連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、上述の式（３）により、図７に示すように、鍵不明連絡先集合を生成する。鍵不明連絡先集合生成部５１は、生成した鍵不明連絡先集合を鍵不明連絡先記憶部４３に記憶させる。
図７に示す例では、携帯端末装置１００の鍵不明連絡先集合生成部５１が、連絡先集合（ＳＧ１０１）と鍵集合（ＳＧ１０２）とに基づいて、鍵不明連絡先集合（ＳＧ１０３）を生成する。また、携帯端末装置２００の鍵不明連絡先集合生成部５１が、連絡先集合（ＳＧ２０１）と鍵集合（ＳＧ２０２）とに基づいて、鍵不明連絡先集合（ＳＧ２０３）を生成する。
【００５７】
次に、鍵不明連絡先集合生成部５１が、鍵不明連絡先集合に基づいてハッシュ化鍵不明連絡先集合を生成する（ステップＳ１０３、図８参照）。すなわち、鍵不明連絡先集合生成部５１は、鍵不明連絡先記憶部４３が記憶している鍵不明連絡先集合に含まれるメールアドレスをハッシュ算出部５２に出力して、ハッシュ算出部５２に対してメールアドレスのハッシュ値を算出させる。そして、鍵不明連絡先集合生成部５１は、ハッシュ算出部５２に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵不明連絡先集合として、ハッシュ化鍵不明連絡先記憶部４４に記憶させる。
なお、図８に示す例では、携帯端末装置１００の鍵不明連絡先集合生成部５１が、鍵不明連絡先集合（ＳＧ１０３）からハッシュ化鍵不明連絡先集合（ＳＧ１０４）を生成する。また、携帯端末装置２００の鍵不明連絡先集合生成部５１が、鍵不明連絡先集合（ＳＧ２０３）からハッシュ化鍵不明連絡先集合（ＳＧ２０４）を生成する。
【００５８】
また、制御部５０の鍵保有連絡先集合生成部５３が、鍵集合に基づいて鍵保有連絡先集合を生成する（ステップＳ１０４、図８参照）。すなわち、鍵保有連絡先集合生成部５３は、鍵集合記憶部４２に記憶されている鍵集合に含まれるメールアドレスをハッシュ算出部５２に出力して、ハッシュ算出部５２に対してメールアドレスのハッシュ値を算出させる。そして、鍵保有連絡先集合生成部５３は、ハッシュ算出部５２に算出させたハッシュ値を取得して、取得したハッシュ値と元のメールアドレスを関連付けた連絡先組情報の集合を鍵保有連絡先集合として、鍵保有連絡先記憶部４５に記憶させる。
なお、図８に示す例では、携帯端末装置１００の鍵保有連絡先集合生成部５３が、鍵集合（ＳＧ１０２）から鍵保有連絡先集合（ＳＧ１０５）を生成する。また、携帯端末装置２００の鍵保有連絡先集合生成部５３が、鍵集合（ＳＧ２０２）から鍵保有連絡先集合（ＳＧ２０５）を生成する。
【００５９】
次に、制御部５０の暗号化処理部５４が、ハッシュ化鍵不明連絡先集合を暗号化し（ステップＳ１０５）、通信部３０の送信部３２が、図９に示すように、暗号化したハッシュ化鍵不明連絡先集合（ＥＨＵＬ１＝Ｅｎｃ（ｋ２，ＨＵＬ１））を交換先装置（例えば、携帯端末装置２００）に送信する（ステップＳ１０６）。ここで、“Ｅｎｃ（ｋ，Ｃ）”は公開鍵ｋを用いて、平文Ｃが暗号化されたメッセージを示す。なお、送信部３２は、鍵不明連絡先集合が空集合である場合には、ハッシュ化鍵不明連絡先集合（ＨＵＬ１）が空集合であることを示す情報を交換先装置（例えば、携帯端末装置２００）に送信してもよい。
【００６０】
また、通信部３０の受信部３１が、図９に示すように、暗号化された交換先のハッシュ化鍵不明連絡先集合（ＥＨＵＬ２＝Ｅｎｃ（ｋ１，ＨＵＬ２））を受信し（ステップＳ１０７）、制御部５０の復号処理部５５が、暗号化された交換先のハッシュ化鍵不明連絡先集合を復号する（ステップＳ１０８）。そして、制御部５０の送信鍵集合生成部５６が、復号処理部５５から交換先のハッシュ化鍵不明連絡先集合を取得し、受信ハッシュ化鍵不明連絡先集合として受信ハッシュ化鍵不明連絡先記憶部４６に記憶させる。
【００６１】
なお、図９に示す例では、携帯端末装置１００が、暗号化したハッシュ化鍵不明連絡先集合（ＥＨＵＬ１）を送信するとともに、携帯端末装置２００から暗号化されたハッシュ化鍵不明連絡先集合（ＥＨＵＬ２）を受信する。その結果、携帯端末装置１００は、受信した暗号化されたハッシュ化鍵不明連絡先集合（ＥＨＵＬ２）を復号したハッシュ化鍵不明連絡先集合（ＨＵＬ２）を受信ハッシュ化鍵不明連絡先集合（ＳＧ１０６）として保有する。また、携帯端末装置２００が、暗号化したハッシュ化鍵不明連絡先集合（ＥＨＵＬ２）を送信するとともに、携帯端末装置１００から暗号化されたハッシュ化鍵不明連絡先集合（ＥＨＵＬ１）を受信する。その結果、携帯端末装置２００は、受信した暗号化されたハッシュ化鍵不明連絡先集合（ＥＨＵＬ１）を復号したハッシュ化鍵不明連絡先集合（ＨＵＬ１）を受信ハッシュ化鍵不明連絡先集合（ＳＧ２０６）として保有する。
【００６２】
次に、送信鍵集合生成部５６が、受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて送信鍵集合を生成する（ステップＳ１０９）。ここで、送信鍵集合（ＳＫＲ１）は、下記の式（６）により表わされ、送信鍵集合生成部５６は、受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、式（６）により、図１０に示すように、送信鍵集合を生成する。
【００６３】
ＳＫＲ１＝｛（Ｆｓｔ（ｘ），Ｓｎｄ（ｚ））｜ｘ∈ＨＤＬ１，
ｘ’∈Ｓｎｄ（ｘ），ｙ∈ＨＵＬ２，ｘ’＝ｙ，
ｚ∈ＫＲ１，Ｆｓｔ（ｚ）＝Ｆｓｔ（ｘ）｝  ・・・（６）
【００６４】
なお、図１０に示す例では、携帯端末装置１００の送信鍵集合生成部５６が、鍵集合（ＳＧ１０２）と、鍵保有連絡先集合（ＳＧ１０５）と、受信ハッシュ化鍵不明連絡先集合（ＳＧ１０６）とに基づいて、送信鍵集合（ＳＧ１０７）を生成する。また、携帯端末装置２００の送信鍵集合生成部５６が、鍵集合（ＳＧ２０２）と、鍵保有連絡先集合（ＳＧ２０５）と、受信ハッシュ化鍵不明連絡先集合（ＳＧ２０６）とに基づいて、送信鍵集合（ＳＧ２０７）を生成する。
【００６５】
次に、暗号化処理部５４が、送信鍵集合を暗号化し（ステップＳ１１０）、送信部３２が、図１１に示すように、暗号化した送信鍵集合（ＥＳＫＲ１＝Ｅｎｃ（ｋ２，ＳＫＲ１））を交換先装置（例えば、携帯端末装置２００）に送信する（ステップＳ１１１）。なお、送信部３２は、送信鍵集合が空集合である場合には、送信鍵集合（ＳＫＲ１）が空集合であることを示す情報を交換先装置（例えば、携帯端末装置２００）に送信してもよい。
【００６６】
また、受信部３１が、図１１に示すように、暗号化された交換先の送信鍵集合（ＥＳＫＲ２＝Ｅｎｃ（ｋ１，ＳＫＲ２））を受信し（ステップＳ１１２）、復号処理部５５が、暗号化された交換先の送信鍵集合を復号し、受信鍵集合を生成する（ステップＳ１１３）。すなわち、制御部５０の鍵集合更新部５７が、復号処理部５５から交換先の送信鍵集合を取得し、受信鍵集合として受信鍵記憶部４８に記憶させる。
【００６７】
なお、図１１に示す例では、携帯端末装置１００が、暗号化した送信鍵集合（ＥＳＫＲ１）を送信するとともに、携帯端末装置２００から暗号化された送信鍵集合（ＥＳＫＲ２）を受信する。その結果、携帯端末装置１００は、受信した暗号化された送信鍵集合（ＥＳＫＲ２）を復号した送信鍵集合（ＳＫＲ２）を受信鍵集合（ＳＧ１０８）として保有する。また、携帯端末装置２００が、暗号化した送信鍵集合（ＥＳＫＲ２）を送信するとともに、携帯端末装置１００から暗号化された送信鍵集合（ＥＳＫＲ１）を受信する。その結果、携帯端末装置２００は、受信した暗号化された送信鍵集合（ＥＳＫＲ１）を復号した送信鍵集合（ＳＫＲ１）を受信鍵集合（ＳＧ２０８）として保有する。
【００６８】
次に、鍵集合更新部５７が、受信鍵集合を鍵集合に追加する（ステップＳ１１４）。すなわち、鍵集合更新部５７は、受信鍵集合に含まれる鍵情報を鍵集合記憶部４２に記憶させて、図１２に示すように、鍵集合を更新する。ここで、更新後の送信鍵集合（ＳＫＲ１）は、下記の式（７）により表現される。
【００６９】
ＫＲ１：＝ＫＲ１∪ＲＫＲ１  ・・・（７）
【００７０】
なお、図１２に示す例では、携帯端末装置１００の鍵集合更新部５７が、鍵集合に受信鍵集合（ＳＧ１０８）を追加して更新後の鍵集合（ＳＧ１０９）を生成する。また、携帯端末装置２００の鍵集合更新部５７が、鍵集合に受信鍵集合（ＳＧ２０８）を追加して更新後の鍵集合（ＳＧ２０９）を生成する。
【００７１】
次に、出力部２０が、鍵交換の完了したことを示す情報を出力する（ステップＳ１１５）。すなわち、鍵集合更新部５７が、出力部２０に対して、鍵交換の完了したことを示す情報を出力させる。ここでは、鍵集合更新部５７が、液晶ディスプレイに鍵交換の完了したことを示すメッセージを表示させる。このステップＳ１１５の処理後に、制御部５０は、鍵交換の処理を終了させる。
なお、上述した例では、携帯端末装置１００は、ハッシュ化鍵不明連絡先集合と送信鍵集合とを送信する際に、暗号化して送信する一例について説明したが、ＮＦＣインターフェースなどの通信経路において情報の改ざんが困難な場合には、暗号化せずに送信してもよい。
【００７２】
なお、図１３は、本実施形態における携帯端末装置１００の表示画面の一例を説明する図である。
この図に示す例は、携帯端末装置１００が、タッチパネルにより構成される入力部１０と、液晶ディスプレイにより構成される出力部２０とを備える場合の表示画面の一例である。
【００７３】
入力部１０の操作により、鍵交換の処理が開始されると、携帯端末装置１００は、図１３（ａ）に示すように、鍵集合フォルダを要求する表示画面を出力部２０に表示する。そして、ユーザが、入力部１０の操作により鍵集合フォルダを入力すると、携帯端末装置１００は、図５のステップＳ１０１の処理を開始し、図１３（ｂ）の表示画面を出力部２０に表示する。
ここで、入力部１０の操作により「作成」が指定された場合に、携帯端末装置１００は、図５のステップＳ１０２〜ステップＳ１０４の処理を実行する。携帯端末装置１００は、図５のステップＳ１０４の処理後に、図１３（ｃ）の表示画面を出力部２０に表示し、入力部１０の操作により「実行」が指定された場合に、図５のステップＳ１０５〜ステップＳ１１４の処理を実行する。
そして、図５のステップＳ１１５において、携帯端末装置１００は、図１３（ｄ）に示すように、鍵交換の完了したことを示すメッセージを出力部２０に表示する。
【００７４】
以上説明したように、本実施形態における携帯端末装置１００は、鍵保有連絡先記憶部４５（連絡先組情報記憶部）と、鍵集合記憶部４２（鍵情報記憶部）と、制御部５０とを備えている。鍵保有連絡先記憶部４５は、メールアドレス（第１変換情報の一例）と、ハッシュ値（第１変換情報の一例）とを関連付けた連絡先組情報を記憶する。ここで、第１変換情報は、情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す。また、第１変換情報は、当該第１変換情報（メールアドレス）を所定の一方向性関数（例えば、ハッシュ関数）に基づいて変換した変換情報を示す。鍵集合記憶部４２は、自装置が公開鍵（鍵の一例）を予め取得しているメールアドレスと、当該公開鍵とを関連付けた保有鍵情報を記憶する。そして、制御部５０は、ハッシュ値（第２変換情報の一例）の集合（受信ハッシュ化鍵不明連絡先集合）を、公開鍵を交換する携帯端末装置２００（交換先装置の一例）から取得する。ここで、第２変換情報は、所定の連絡先情報（例えば、交換先の鍵不明連絡先集合のメールアドレス）が所定の一方向性関数（例えば、ハッシュ関数）に基づいて変換された変換情報を示す。制御部５０は、取得した当該ハッシュ値の集合と、鍵保有連絡先記憶部４５が記憶している連絡先組情報の集合（鍵保有連絡先集合）と、鍵集合記憶部４２が記憶している保有鍵情報の集合（鍵集合）とに基づいて、携帯端末装置１００と携帯端末装置２００との間で送信する公開鍵を示す送信鍵を決定する。
【００７５】
このような構成によれば、本実施形態における携帯端末装置１００は、ハッシュ値（変換情報）からメールアドレス（連絡先情報）への逆変換が事実上不可能であるため、取得した変換情報（ハッシュ値）のうちから、自装置が保有するメールアドレス以外のメールアドレスを取得することができない。これにより、本実施形態における携帯端末装置１００及び鍵交換システム１は、携帯端末装置２００との間において、互いに保有するメールアドレスを開示せずに、送信鍵を決定することができる。そのため、本実施形態における携帯端末装置１００及び鍵交換システム１は、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいすることを防止することができる。よって、本実施形態における携帯端末装置１００及び鍵交換システム１は、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【００７６】
また、本実施形態では、上述した所定の連絡先情報は、携帯端末装置２００が保有しているメールアドレスの集合のうち、携帯端末装置２００が公開鍵を保有していないメールアドレスを示す第２連絡先情報である。制御部５０は、ハッシュ関数に基づいて変換されたメールアドレスの集合（鍵不明連絡先集合、第２連絡先情報の集合）を、受信ハッシュ化鍵不明連絡先集合（第２変換情報の集合の一例）として携帯端末装置２００から取得する。制御部５０は、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先記憶部４５が記憶している鍵保有連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、鍵集合記憶部４２が記憶している鍵保有連絡先集合のうち、ハッシュ化鍵不明連絡先集合のメールアドレスと一致するメールアドレスに対応する公開鍵を（保有鍵情報の集合のうち、第１連絡先情報が第２連絡先情報と一致する保有鍵情報に含まれる公開鍵を）、送信鍵として決定する。
【００７７】
すなわち、制御部５０は、取得したハッシュ値（第２変換情報）の集合（受信ハッシュ化鍵不明連絡先集合）のうち、鍵保有連絡先記憶部４５が記憶しているハッシュ値（第１変換情報）と一致するハッシュ値を抽出する。制御部５０は、抽出したハッシュ値と関連付けられて鍵保有連絡先記憶部４５に記憶されているメールアドレスであって、鍵集合記憶部４２に記憶されているメールアドレスに対応する公開鍵を、送信鍵として決定する。そして、制御部５０は、決定した送信鍵を含む保有鍵情報を携帯端末装置２００に送信する。
これにより、本実施形態における携帯端末装置１００及び鍵交換システム１は、例えば、携帯端末装置１００のユーザが知らない人物などの知る必要のない不要な情報を知り得てしまうことなく、携帯端末装置２００が必要とする公開鍵を送信することができる。つまり、本実施形態における携帯端末装置１００は、携帯端末装置２００との間で、不要な情報を開示せずに、互いに公開鍵を送信することができる。
また、本実施形態における携帯端末装置１００は、携帯端末装置２００が保有していないメールアドレスのハッシュ値を取得して、送信鍵を決定するので、携帯端末装置２００が保有しているメールアドレスのハッシュ値を取得する場合に比べて、送信鍵を決定するための処理量、及び携帯端末装置２００と間で通信する情報量を低減することができる。
【００７８】
また、本実施形態では、制御部５０は、鍵集合記憶部４２に記憶されているメールアドレスをハッシュ関数に基づいてハッシュ値（第１変換情報）に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として鍵保有連絡先記憶部４５に記憶させる。制御部５０は、取得したハッシュ値（第２変換情報）の集合のうち、鍵保有連絡先記憶部４５が記憶しているハッシュ値（第２変換情報）と一致するハッシュ値（第２変換情報）を抽出する。さらに、制御部５０は、鍵集合記憶部４２に記憶されている保有鍵情報の集合（鍵集合）のうちから、抽出したハッシュ値（第２変換情報）を含む保有鍵情報を、決定した送信鍵を含む保有鍵情報として抽出する。そして、制御部５０は、抽出した当該保有鍵情報を携帯端末装置２００に送信する。
これにより、本実施形態における携帯端末装置１００は、鍵保有連絡先記憶部４５に記憶されている連絡先組情報を利用して、簡易な処理により、送信鍵を決定することができる。
【００７９】
また、本実施形態では、携帯端末装置１００は、自装置が保有するメールアドレスを記憶する連絡先記憶部４１を備えている。そして、制御部５０は、連絡先記憶部４１が記憶しているメールアドレスの集合（連絡先集合）と、鍵集合記憶部４２が記憶している保有鍵情報の集合（鍵集合）とに基づいて、自装置が保有するメールアドレスの集合のうち、自装置が公開鍵を保有していないメールアドレスを抽出する。すなわち、制御部５０は、連絡先記憶部４１が記憶しているメールアドレスの集合（連絡先集合）のうち、鍵集合記憶部４２に公開鍵が記憶されていないメールアドレスを抽出し、抽出した当該メールアドレスの集合（鍵不明連絡先集合）を生成する。制御部５０は、生成した鍵不明連絡先集合のメールアドレスをハッシュ関数に基づいてハッシュ値に変換し、変換したハッシュ値（第３変換情報）の集合（ハッシュ化鍵不明連絡先集合）を携帯端末装置２００に送信する。制御部５０は、送信したハッシュ化鍵不明連絡先集合に応じて携帯端末装置２００から出力された公開鍵と、当該公開鍵に対応するメールアドレスとを関連付けて鍵集合記憶部４２に記憶させる。
これにより、本実施形態における携帯端末装置１００及び鍵交換システム１は、例えば、交換相手が知らない人物などの交換相手が知る必要のない不要な情報を開示してしまうことを防止することができる。すなわち、本実施形態における携帯端末装置１００は、不要な情報を開示せずに、携帯端末装置２００から自装置が必要とする公開鍵を取得することができる。つまり、本実施形態における携帯端末装置１００は、携帯端末装置２００との間で、不要な情報を開示せずに、互いに公開鍵を取得することができる。
【００８０】
また、本実施形態では、携帯端末装置１００は、携帯端末装置１００から出力する情報を暗号化する暗号化処理部５４と、携帯端末装置２００から取得した情報であって、暗号化された情報を復号する復号処理部５５とを備えている。
これにより、本実施形態における携帯端末装置１００は、携帯端末装置２００との間の通信における情報の改竄及び情報の漏えいを低減できるので、鍵交換におけるセキュリティ（安全性）を向上させることができる。
【００８１】
なお、本実施形態による鍵交換方法は、鍵保有連絡先記憶部４５と、鍵集合記憶部４２と、制御部５０とを備える携帯端末装置１００の鍵交換方法であって、取得ステップと、決定ステップとを含んでいる。取得ステップにおいて、制御部５０が、所定のメールアドレスがハッシュ関数に基づいて変換されたハッシュ値（第２変換情報）の集合を、公開鍵を交換する携帯端末装置２００から取得する。そして、決定ステップにおいて、制御部５０が、取得したハッシュ値（第２変換情報）の集合と、鍵保有連絡先記憶部４５が記憶している鍵保有連絡先集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、携帯端末装置１００と携帯端末装置２００との間で送信する公開鍵を示す送信鍵を決定する。
これにより、本実施形態による鍵交換方法は、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいすることを防止することができるので、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【００８２】
次に、第２の実施形態による鍵交換装置及び鍵交換システムについて、図面を参照して説明する。
［第２の実施形態］
上述した第１の実施形態では、鍵交換装置が公開鍵を保有していないメールアドレスのハッシュ値の集合（ハッシュ化鍵不明連絡先集合）を相互に取得し、取得したハッシュ化鍵不明連絡先集合に基づいて、送信鍵を決定する一例について説明した。これに対して、本実施形態では、鍵交換装置が公開鍵を保有しているメールアドレスのハッシュ値の集合（ハッシュ化鍵保有連絡先集合）を相互に取得し、取得したハッシュ化鍵保有連絡先集合に基づいて、送信鍵を決定する一例について説明する。
【００８３】
図１４は、本実施形態による鍵交換システム１ａの一例を示すブロック図である。
この図において、鍵交換システム１ａは、携帯端末装置１００ａと携帯端末装置２００ａとを備えている。
【００８４】
携帯端末装置１００ａは、携帯端末装置２００ａと鍵交換を行う鍵交換装置であり、例えば、スマートフォンなどの携帯電話である。また、携帯端末装置２００ａは、携帯端末装置１００ａと鍵交換を行う交換先の装置（交換先装置）であり、例えば、携帯端末装置１００ａと同一の構成を備える携帯電話である。
【００８５】
図１４において、携帯端末装置１００ａは、入力部１０、出力部２０、通信部３０、記憶部４０ａ、及び制御部５０ａを備えている。なお、この図において、図１に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
【００８６】
記憶部４０ａは、連絡先記憶部４１、鍵集合記憶部４２、ハッシュ化鍵保有連絡先記憶部６１、連絡先組情報記憶部６２、受信ハッシュ化鍵保有連絡先記憶部６３、鍵要求連絡先記憶部６４、受信鍵要求連絡先記憶部６５、送信鍵記憶部４７、及び受信鍵記憶部４８を備えている。
【００８７】
ハッシュ化鍵保有連絡先記憶部６１は、複数のハッシュ化鍵保有連絡先情報をハッシュ化鍵保有連絡先集合として記憶する。ここで、ハッシュ化鍵保有連絡先情報は、携帯端末装置１００ａが保有しているメールアドレスの集合のうち、携帯端末装置１００ａが公開鍵を保有しているメールアドレスを示す鍵保有連絡先情報（第３連絡先情報）のハッシュ値を示す。ここで、ハッシュ化鍵保有連絡先情報（ＨＨＬｉ）は、下記の式（８）により表現される。
【００８８】
ＨＨＬｉ＝｛ｈ（ｅ）｜ｅ∈Ｆｓｔ（ＫＲｉ）｝  ・・・（８）
【００８９】
連絡先組情報記憶部６２は、連絡先記憶部４１が記憶しているメールアドレスと、当該メールアドレスのハッシュ値とを関連付けた組（連絡先組情報）を記憶する。すなわち、連絡先組情報記憶部６２は、複数の連絡先組情報を、連絡先組集合として記憶する。なお、連絡先組情報記憶部６２に記憶されているデータの構成は、図４に示す鍵保有連絡先記憶部４５と同様である。また、連絡先組集合（ＬＫｉ）は、下記の式（９）により表現される。
【００９０】
ＬＫｉ＝｛（ｅ，ｈ（ｅ））｜ｅ∈Ｅｉ｝  ・・・（９）
【００９１】
受信ハッシュ化鍵保有連絡先記憶部６３は、自装置が受信したハッシュ化鍵保有連絡先集合を記憶する。すなわち、受信ハッシュ化鍵保有連絡先記憶部６３は、例えば、携帯端末装置２００ａから取得した受信ハッシュ化鍵保有連絡先集合（ＨＨＬ２）を記憶する。
【００９２】
鍵要求連絡先記憶部６４は、鍵交換の際に送信する鍵要求連絡先集合を記憶する。ここで、鍵要求連絡先集合は、交換先に公開鍵の送信を要求するメールアドレスのハッシュ値の集合である。
【００９３】
受信鍵要求連絡先記憶部６５は、鍵交換の際に受信した鍵要求連絡先集合を受信鍵要求連絡先集合として記憶する。ここで、受信鍵要求連絡先集合は、自装置に公開鍵の送信を要求するメールアドレスのハッシュ値の集合であり、例えば、携帯端末装置２００ａから取得したメールアドレスのハッシュ値の集合である。
【００９４】
制御部５０ａは、例えば、ＣＰＵなどを含むプロセッサであり、携帯端末装置１００ａを統括的に制御する。制御部５０ａは、例えば、鍵交換を行う際に、鍵集合記憶部４２が記憶している鍵集合のメールアドレスをハッシュ関数に基づいて変換したハッシュ値の集合であるハッシュ化鍵保有連絡先集合を生成し、生成したハッシュ化鍵保有連絡先集合を携帯端末装置２００ａに送信する。制御部５０ａは、ハッシュ化鍵保有連絡先集合に応じて携帯端末装置２００ａが生成した送信鍵を要求するメールアドレスのハッシュ値を示す鍵要求連絡先集合を取得し、鍵集合のうちから、取得した鍵要求連絡先集合に応じた鍵情報の集合を送信鍵集合として生成し、生成した送信鍵集合を携帯端末装置２００ａに送信する。ここで、鍵要求連絡先集合は、ハッシュ化鍵保有連絡先集合のうち、携帯端末装置２００ａが保有していない公開鍵に対応するメールアドレスのハッシュ値の集合である。
【００９５】
また、制御部５０ａは、鍵交換の際に、例えば、ハッシュ関数に基づいて変換されたメールアドレス（第３連絡先情報）の集合である受信ハッシュ化鍵保有連絡先集合を、上述した第２変換情報の集合として携帯端末装置２００ａから通信部３０の受信部３１を介して取得する。ここで、第３連絡先情報は、携帯端末装置２００ａが保有しているメールアドレスの集合のうち、携帯端末装置２００ａが公開鍵を保有しているメールアドレスを示す。よって、受信ハッシュ化鍵保有連絡先集合は、携帯端末装置２００ａが公開鍵を保有しているメールアドレスのハッシュ値の集合である。
【００９６】
制御部５０ａは、取得した受信ハッシュ化鍵保有連絡先集合と、連絡先組情報記憶部６２が記憶している連絡先組集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、受信ハッシュ化鍵保有連絡先集合のうちから、鍵集合記憶部４２が記憶していないメールアドレス（第４連絡先情報）を抽出する。制御部５０ａは、抽出したメールアドレス（第４連絡先情報）に対応する公開鍵を送信鍵として決定し、当該メールアドレス（第４連絡先情報）に基づく鍵要求情報を携帯端末装置２００ａに送信する。ここで、鍵要求情報は、抽出したメールアドレス（第４連絡先情報）に対応する公開鍵を要求する要求情報であり、例えば、抽出したメールアドレス（第４連絡先情報）のハッシュ値である。すなわち、制御部５０ａは、抽出したメールアドレス（第４連絡先情報）のハッシュ値の集合を、鍵要求連絡先集合として携帯端末装置２００ａに通信部３０の送信部３２を介して送信する。
【００９７】
また、制御部５０ａは、送信した鍵要求情報（鍵要求連絡集合）に応じて携帯端末装置２００から出力された、鍵要求連絡先集合のメールアドレスに対応する公開鍵を送信鍵として携帯端末装置２００ａから取得する。すなわち、制御部５０ａは、携帯端末装置２００ａから送信鍵の集合を受信鍵集合として取得し、取得した受信鍵集合を鍵集合記憶部４２が記憶している鍵集合に追加する。
【００９８】
このように、制御部５０ａは、所定のメールアドレス（連絡先情報）のハッシュ値の集合を、公開鍵を交換する携帯端末装置２００ａから取得し、取得した当該ハッシュ値の集合と、連絡先組集合と、鍵集合とに基づいて、携帯端末装置２００ａと交換する公開鍵を示す送信鍵を決定する。なお、本実施形態において、所定のメールアドレスとは、携帯端末装置２００ａが保有しているメールアドレスの集合（連絡先集合）のうち、携帯端末装置２００ａが公開鍵を保有しているメールアドレス（第３連絡先情報）である。
また、制御部５０ａは、ハッシュ算出部５２、鍵保有連絡先集合生成部５３、暗号化処理部５４、復号処理部５５、鍵集合更新部５７、連絡先組集合生成部７１、ハッシュ化鍵保有連絡先集合生成部７２、及び鍵要求連絡先集合生成部７３、及び送信鍵集合生成部７４を備えている。
【００９９】
連絡先組集合生成部７１は、連絡先記憶部４１が記憶している連絡先集合に基づいて、メールアドレスと当該メールアドレスのハッシュ値とを関連付けた連絡先組情報の集合である連絡先組集合を生成する。連絡先組集合生成部７１は、例えば、連絡先記憶部４１が記憶しているメールアドレスをハッシュ関数に基づいてハッシュ値（第１変換情報）に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として連絡先組情報記憶部６２に記憶させる。具体的に、連絡先組集合生成部７１は、連絡先記憶部４１に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部５２に出力する。そして、連絡先組集合生成部７１は、ハッシュ算出部５２から出力されたハッシュ値と元のメールアドレスとを関連付けて、連絡先組情報記憶部６２に順次記憶させる。
【０１００】
ハッシュ化鍵保有連絡先集合生成部７２は、自装置が保有する公開鍵に対応するメールアドレスのハッシュ値の集合を生成する。ハッシュ化鍵保有連絡先集合生成部７２は、例えば、鍵集合記憶部４２が記憶する保有鍵情報のメールアドレスをハッシュ算出部５２に出力して、ハッシュ算出部５２に対してメールアドレスのハッシュ値を算出させる。ハッシュ化鍵保有連絡先集合生成部７２は、ハッシュ算出部５２に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵保有連絡先集合として生成する。ハッシュ化鍵保有連絡先集合生成部７２は、生成したハッシュ化鍵保有連絡先集合をハッシュ化鍵保有連絡先記憶部６１に記憶させる。
【０１０１】
具体的に、ハッシュ化鍵保有連絡先集合生成部７２は、鍵集合記憶部４２に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部５２に出力するとともに、ハッシュ算出部５２から出力されたハッシュ値を、ハッシュ化鍵保有連絡先記憶部６１に順次記憶させる。
なお、ハッシュ化鍵保有連絡先集合生成部７２は、鍵集合記憶部４２が記憶している鍵集合と、ハッシュ化鍵保有連絡先記憶部６１が記憶する連絡先組情報とに基づいて、ハッシュ算出部５２を利用せずに、ハッシュ化鍵保有連絡先集合を生成してもよい。
また、ハッシュ化鍵保有連絡先集合生成部７２は、生成したハッシュ化鍵不明連絡先集合を暗号化処理部５４に出力し、携帯端末装置２００ａの公開鍵により暗号化させて、暗号化されたハッシュ化鍵保有連絡先集合を、送信部３２を介して、携帯端末装置２００ａに出力させる。
【０１０２】
鍵要求連絡先集合生成部７３は、携帯端末装置２００ａから受信した受信ハッシュ化鍵保有連絡先集合を取得する。そして、鍵要求連絡先集合生成部７３は、取得した受信ハッシュ化鍵保有連絡先集合と、ハッシュ化鍵保有連絡先記憶部６１が記憶しているハッシュ化鍵保有連絡先集合と、連絡先組情報記憶部６２が記憶している連絡先組集合とに基づいて、鍵要求連絡先集合を生成する。
【０１０３】
具体的に、鍵要求連絡先集合生成部７３は、受信部３１が携帯端末装置２００ａから受信した、暗号化された携帯端末装置２００ａにおけるハッシュ化鍵保有連絡先集合を復号処理部５５に復号させて、受信ハッシュ化鍵保有連絡先集合として取得する。鍵要求連絡先集合生成部７３は、取得した受信ハッシュ化鍵保有連絡先集合を受信ハッシュ化鍵保有連絡先記憶部６３に記憶させる。そして、鍵要求連絡先集合生成部７３は、取得した受信ハッシュ化鍵保有連絡先集合のうち、自装置のハッシュ化鍵保有連絡先集合にないハッシュ値であって、連絡先組集合にあるハッシュ値を抽出し、抽出したハッシュ値の集合を鍵要求連絡先集合として生成する。
なお、鍵要求連絡先集合生成部７３は、自装置のハッシュ化鍵保有連絡先集合の代わりに、鍵集合記憶部４２に記憶されている鍵集合を利用して、鍵要求連絡先集合を生成してもよい。この場合、鍵要求連絡先集合生成部７３は、取得した受信ハッシュ化鍵保有連絡先集合のハッシュ値と関連付けられて連絡先組情報記憶部６２に記憶されているメールアドレスの集合のうち、鍵集合記憶部４２に記憶されていないメールアドレス（第４連絡先情報）を抽出し、抽出したメールアドレス（第４連絡先情報）のハッシュ値の集合を鍵要求連絡先集合として生成する。
【０１０４】
このように、鍵要求連絡先集合生成部７３は、取得した受信ハッシュ化鍵保有連絡先集合と、連絡先組情報の集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、携帯端末装置２００ａが公開鍵を保有するメールアドレス（第３連絡先情報）の集合のうちから、鍵集合記憶部４２が記憶していないメールアドレス（第４連絡先情報）を抽出し、抽出したメールアドレスに対応する公開鍵を送信鍵として決定する。
鍵要求連絡先集合生成部７３は、生成した鍵要求連絡先集合を鍵要求連絡先記憶部６４
に記憶させる。
また、鍵要求連絡先集合生成部７３は、生成した鍵要求連絡先集合を暗号化処理部５４に出力し、携帯端末装置２００ａの公開鍵により暗号化させて、暗号化された鍵要求連絡先集合を、送信部３２を介して、携帯端末装置２００ａに出力させる。
【０１０５】
送信鍵集合生成部７４は、携帯端末装置２００ａから受信した受信鍵要求連絡先集合を取得し、取得した受信鍵要求連絡先集合と、連絡先組情報記憶部６２が記憶している連絡先組集合と、鍵集合記憶部４２が記憶している鍵集合とに基づいて、送信鍵集合を生成する。具体的に、送信鍵集合生成部７４は、通信部３０の受信部３１が携帯端末装置２００ａから受信した、暗号化された携帯端末装置２００ａにおける鍵要求連絡先集合を復号処理部５５に復号させて、受信鍵要求連絡先集合として取得する。送信鍵集合生成部７４は、取得した受信鍵要求連絡先集合を受信鍵要求連絡先記憶部６５に記憶させる。そして、送信鍵集合生成部７４は、取得した受信鍵要求連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、送信鍵集合を生成する。
【０１０６】
すなわち、送信鍵集合生成部７４は、取得した受信鍵要求連絡先集合のうち、連絡先組情報記憶部６２が記憶しているハッシュ値（第１変換情報）と一致するハッシュ値を抽出するとともに、抽出したハッシュ値と関連付けられて連絡先組情報記憶部６２に記憶されているメールアドレスであって、鍵集合記憶部４２に記憶されているメールアドレスに対応する公開鍵を、送信鍵として抽出する。具体的に、送信鍵集合生成部７４は、鍵集合記憶部４２に記憶されている保有鍵情報の集合のうちから、抽出したハッシュ値を含む保有鍵情報の集合を送信鍵集合として送信鍵記憶部４７に記憶させる。
また、送信鍵集合生成部７４は、送信鍵記憶部４７に記憶されている送信鍵集合を暗号化処理部５４に出力し、携帯端末装置２００ａの公開鍵により暗号化させて、暗号化された送信鍵集合を、送信部３２を介して、携帯端末装置２００ａに出力させる。このように、送信鍵集合生成部７４は、取得した受信鍵要求連絡先集合に対応する公開鍵を含む保有鍵情報を携帯端末装置２００ａに送信する。
【０１０７】
本実施形態における鍵集合更新部５７は、携帯端末装置２００ａに出力した鍵要求連絡先集合に応じて携帯端末装置２００ａから受信した受信鍵集合を取得する点を除いて、第１の実施形態における鍵集合更新部５７と同様であるので、その説明を省略する。
【０１０８】
次に、本実施形態における鍵交換システム１ａの動作について、図面を参照して説明する。
本実施形態では、携帯端末装置１００ａと携帯端末装置２００ａとが鍵交換を行う場合の一例について説明する。
図１５は、本実施形態における携帯端末装置１００ａ（２００ａ）の動作の一例を示すフローチャートである。また、図１６〜図２４は、本実施形態における鍵交換システム１ａの動作の一例を説明する図である。
なお、携帯端末装置１００ａ及び携帯端末装置２００ａのそれぞれにおいて、図１５に示す処理が実行され、ここでは、携帯端末装置１００ａの動作を優先して説明する。
また、図１６〜図２４は、携帯端末装置１００ａ及び携帯端末装置２００ａのそれぞれが保有する保有情報（記憶部４０ａに記憶される情報）の遷移を示している。
【０１０９】
図１５において、まず、携帯端末装置１００ａの制御部５０ａは、入力部１０からの処理の開始信号を受信する（ステップＳ２０１）。すなわち、携帯端末装置１００ａのユーザの操作により、鍵交換の処理を開始する指示が入力された場合に、例えば、入力部１０が処理の開始信号を出力し、この開始信号に応じて、制御部５０ａが鍵交換の処理を開始する。なお、ステップＳ２０１における携帯端末装置１００ａ及び携帯端末装置２００ａの保有情報は、図１６に示す状態である。ここで、図１６は、鍵交換を行う前の携帯端末装置１００ａ及び携帯端末装置２００ａの初期状態を示している。
【０１１０】
図１６に示す例では、初期状態において、携帯端末装置１００ａが、連絡先集合（Ｅ１＝｛ｅ２，ｅ３，ｅ５｝）及び鍵集合（ＫＲ１＝｛（ｅ２，ｋ２），（ｅ５，ｋ５）｝）を保有し、携帯端末装置２００ａが、連絡先集合（Ｅ２＝｛ｅ１，ｅ３，ｅ４，ｅ５｝）及び鍵集合（ＫＲ２＝｛（ｅ１，ｋ１），（ｅ３，ｋ３），（ｅ４，ｋ４）｝）を保有している場合である。
【０１１１】
次に、制御部５０ａの連絡先組集合生成部７１が、連絡先集合に基づいて連絡先組集合を生成する（ステップＳ２０２、図１７参照）。すなわち、連絡先組集合生成部７１が、連絡先記憶部４１が記憶している連絡先集合に含まれるメールアドレスをハッシュ算出部５２に出力して、ハッシュ算出部５２に対してメールアドレスのハッシュ値を算出させる。そして、連絡先組集合生成部７１は、ハッシュ算出部５２に算出させたハッシュ値を取得して、取得したハッシュ値と元のメールアドレスとを関連づけた連絡先組情報の集合を連絡先組集合として、連絡先組情報記憶部６２に記憶させる。
なお、図１７に示す例では、携帯端末装置１００ａの連絡先組集合生成部７１が、連絡先集合（ＳＧ１１１）から連絡先組集合（ＳＧ１１３）を生成する。また、携帯端末装置２００ａの連絡先組集合生成部７１が、連絡先集合（ＳＧ２１１）から連絡先組集合（ＳＧ２１３）を生成する。
【０１１２】
また、制御部５０ａのハッシュ化鍵保有連絡先集合生成部７２が、鍵集合に基づいてハッシュ化鍵保有連絡先集合を生成する（ステップＳ２０３、図１８参照）。すなわち、ハッシュ化鍵保有連絡先集合生成部７２は、鍵集合記憶部４２に記憶されている鍵集合に含まれるメールアドレスをハッシュ算出部５２に出力して、ハッシュ算出部５２に対してメールアドレスのハッシュ値を算出させる。そして、ハッシュ化鍵保有連絡先集合生成部７２は、ハッシュ算出部５２に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵保有連絡先集合として、鍵保有連絡先記憶部４５に記憶させる。
なお、図１８に示す例では、携帯端末装置１００ａのハッシュ化鍵保有連絡先集合生成部７２が、鍵集合（ＳＧ１１２）からハッシュ化鍵保有連絡先集合（ＳＧ１１４）を生成する。また、携帯端末装置２００ａのハッシュ化鍵保有連絡先集合生成部７２が、鍵集合（ＳＧ２１２）からハッシュ化鍵保有連絡先集合（ＳＧ２１４）を生成する。
【０１１３】
次に、制御部５０ａの暗号化処理部５４が、ハッシュ化鍵保有連絡先集合を暗号化し（ステップＳ２０４）、送信部３２が、図１９に示すように、暗号化したハッシュ化鍵保有連絡先集合（ＥＨＨＬ１＝Ｅｎｃ（ｋ２，ＨＨＬ１））を交換先装置（例えば、携帯端末装置２００ａ）に送信する（ステップＳ２０５）。なお、送信部３２は、ハッシュ化鍵保有連絡先集合が空集合である場合には、ハッシュ化鍵保有連絡先集合（ＨＨＬ１）が空集合であることを示す情報を交換先装置（例えば、携帯端末装置２００ａ）に送信してもよい。
【０１１４】
また、受信部３１が、図１９に示すように、暗号化された交換先のハッシュ化鍵保有連絡先集合（ＥＨＨＬ２＝Ｅｎｃ（ｋ１，ＨＨＬ２））を受信し（ステップＳ２０６）、制御部５０ａの復号処理部５５が、暗号化された交換先のハッシュ化鍵保有連絡先集合を復号する（ステップＳ２０７）。そして、制御部５０ａの鍵要求連絡先集合生成部７３が、復号処理部５５から交換先のハッシュ化鍵保有連絡先集合を取得し、受信ハッシュ化鍵保有連絡先集合として受信ハッシュ化鍵保有連絡先記憶部６３に記憶させる。
【０１１５】
なお、図１９に示す例では、携帯端末装置１００ａが、暗号化したハッシュ化鍵保有連絡先集合（ＥＨＨＬ１）を送信するとともに、携帯端末装置２００ａから暗号化されたハッシュ化鍵保有連絡先集合（ＥＨＨＬ２）を受信する。その結果、携帯端末装置１００ａは、受信した暗号化されたハッシュ化鍵保有連絡先集合（ＥＨＨＬ２）を復号したハッシュ化鍵保有連絡先集合（ＨＨＬ２）を受信ハッシュ化鍵保有連絡先集合（ＳＧ１１５）として保有する。また、携帯端末装置２００ａが、暗号化したハッシュ化鍵保有連絡先集合（ＥＨＨＬ２）を送信するとともに、携帯端末装置１００ａから暗号化されたハッシュ化鍵保有連絡先集合（ＥＨＨＬ１）を受信する。その結果、携帯端末装置２００ａは、受信した暗号化されたハッシュ化鍵保有連絡先集合（ＥＨＨＬ１）を復号したハッシュ化鍵保有連絡先集合（ＨＨＬ１）を受信ハッシュ化鍵保有連絡先集合（ＳＧ２１５）として保有する。
【０１１６】
次に、鍵要求連絡先集合生成部７３が、受信ハッシュ化鍵保有連絡先集合と、連絡先組集合と、ハッシュ化鍵保有連絡先集合とに基づいて鍵要求連絡先集合を生成する（ステップＳ２０８、図２０参照）。鍵要求連絡先集合生成部７３は、図２０に示すように、取得した受信ハッシュ化鍵保有連絡先集合のうち、自装置のハッシュ化鍵保有連絡先集合にないハッシュ値であって、連絡先組集合にあるハッシュ値を抽出し、抽出したハッシュ値の集合を鍵要求連絡先集合として生成する。鍵要求連絡先集合生成部７３は、生成した鍵要求連絡先集合を鍵要求連絡先記憶部６４に記憶させる。
なお、図２０に示す例では、携帯端末装置１００ａの鍵要求連絡先集合生成部７３が、連絡先組集合（ＳＧ１１３）と、ハッシュ化鍵保有連絡先集合（ＳＧ１１４）と、受信ハッシュ化鍵保有連絡先集合（ＳＧ１１５）とに基づいて、鍵要求連絡先集合（ＳＧ１１６）を生成する。また、携帯端末装置２００ａの鍵要求連絡先集合生成部７３が、連絡先組集合（ＳＧ２１３）と、ハッシュ化鍵保有連絡先集合（ＳＧ２１４）と、受信ハッシュ化鍵保有連絡先集合（ＳＧ２１５）とに基づいて、鍵要求連絡先集合（ＳＧ２１６）を生成する。
【０１１７】
次に、暗号化処理部５４が、鍵要求連絡先集合を暗号化し（ステップＳ２０９）、送信部３２が、図２１に示すように、暗号化した鍵要求連絡先集合（ＥＨＲＬ１＝Ｅｎｃ（ｋ２，ＨＲＬ１））を交換先装置（例えば、携帯端末装置２００ａ）に送信する（ステップＳ２１０）。なお、送信部３２は、鍵要求連絡先集合が空集合である場合には、鍵要求連絡先集合（ＨＲＬ１）が空集合であることを示す情報を交換先装置（例えば、携帯端末装置２００ａ）に送信してもよい。
【０１１８】
また、受信部３１が、図２１に示すように、暗号化された交換先の鍵要求連絡先集合（ＥＨＲＬ２＝Ｅｎｃ（ｋ１，ＨＲＬ２））を受信し（ステップＳ２１１）、復号処理部５５が、暗号化された交換先の鍵要求連絡先集合を復号する（ステップＳ２１２）。そして、制御部５０ａの送信鍵集合生成部７４が、復号処理部５５から交換先の鍵要求連絡先集合を取得し、受信鍵要求連絡先集合として受信鍵要求連絡先記憶部６５に記憶させる。
【０１１９】
なお、図２１に示す例では、携帯端末装置１００ａが、暗号化した鍵要求連絡先集合（ＥＨＲＬ１）を送信するとともに、携帯端末装置２００ａから暗号化された鍵要求連絡先集合（ＥＨＲＬ２）を受信する。その結果、携帯端末装置１００ａは、受信した暗号化された鍵要求連絡先集合（ＥＨＲＬ２）を復号した鍵要求連絡先集合（ＨＲＬ２）を受信鍵要求連絡先集合（ＳＧ１１７）として保有する。また、携帯端末装置２００ａが、暗号化した鍵要求連絡先集合（ＥＨＲＬ２）を送信するとともに、携帯端末装置１００ａから暗号化された鍵要求連絡先集合（ＥＨＲＬ１）を受信する。その結果、携帯端末装置１００ａは、受信した暗号化された鍵要求連絡先集合（ＥＨＲＬ１）を復号した鍵要求連絡先集合（ＨＲＬ１）を受信鍵要求連絡先集合（ＳＧ２１７）として保有する。
【０１２０】
次に、送信鍵集合生成部７４が、受信鍵要求連絡先集合と、連絡先組集合と、鍵集合とに基づいて送信鍵集合を生成する（ステップＳ２１３、図２２参照）。送信鍵集合生成部７４は、図２２に示すように、取得した受信鍵要求連絡先集合のハッシュ値に対応するメールアドレスを連絡先組集合から抽出し、抽出したメールアドレスに対応する鍵情報を鍵集合から抽出し、抽出した鍵情報の集合を送信鍵集合として生成する。送信鍵集合生成部７４は、生成した送信鍵集合を送信鍵記憶部４７に記憶させる。
なお、図２２に示す例では、携帯端末装置１００ａの送信鍵集合生成部７４が、鍵集合（ＳＧ１１２）と、連絡先組集合（ＳＧ１１３）と、受信鍵要求連絡先集合（ＳＧ１１７）とに基づいて、送信鍵集合（ＳＧ１１８）を生成する。また、携帯端末装置２００ａの送信鍵集合生成部７４が、鍵集合（ＳＧ２１２）と、連絡先組集合（ＳＧ２１３）と、受信鍵要求連絡先集合（ＳＧ２１７）とに基づいて、送信鍵集合（ＳＧ２１８）を生成する。
【０１２１】
続く、ステップＳ２１４からステップＳ２１９までの処理は、図１５のステップＳ１１０からステップＳ１１５までの処理と同様であるので、ここではその説明を省略する。
なお、図２３は、ステップＳ２１４からステップＳ２１７における状態を示している。
図２３に示す例では、携帯端末装置１００ａが、暗号化した送信鍵集合（ＥＳＫＲ１）を送信するとともに、携帯端末装置２００ａから暗号化された送信鍵集合（ＥＳＫＲ２）を受信する。その結果、携帯端末装置１００ａは、受信した暗号化された送信鍵集合（ＥＳＫＲ２）を復号した送信鍵集合（ＳＫＲ２）を受信鍵集合（ＳＧ１１９）として保有する。また、携帯端末装置２００ａが、暗号化した送信鍵集合（ＥＳＫＲ２）を送信するとともに、携帯端末装置１００ａから暗号化された送信鍵集合（ＥＳＫＲ１）を受信する。その結果、携帯端末装置２００ａは、受信した暗号化された送信鍵集合（ＥＳＫＲ１）を復号した送信鍵集合（ＳＫＲ１）を受信鍵集合（ＳＧ２１９）として保有する。
【０１２２】
また、図２４は、ステップＳ２１８における状態を示している。
図２４に示す例では、携帯端末装置１００ａの鍵集合更新部５７が、鍵集合に受信鍵集合（ＳＧ１１９）を追加して更新後の鍵集合（ＳＧ１２０）を生成する。また、携帯端末装置２００ａの鍵集合更新部５７が、鍵集合に受信鍵集合（ＳＧ２１９）を追加して更新後の鍵集合（ＳＧ２２０）を生成する。
【０１２３】
以上説明したように、本実施形態では、所定のメールアドレスは、携帯端末装置２００ａが保有しているメールアドレスの集合のうち、携帯端末装置２００ａが公開鍵を保有しているメールアドレス（第３連絡先情報）である。制御部５０ａは、ハッシュ関数に基づいて変換されたメールアドレス（第３連絡先情報）の集合を、受信ハッシュ化鍵保有連絡先集合（第２変換情報の集合）として携帯端末装置２００ａから取得する。制御部５０ａは、取得した受信ハッシュ化鍵保有連絡先集合と、連絡先組情報記憶部６２が記憶している連絡先組情報の集合と、鍵集合記憶部４２が記憶している保有鍵情報の集合（鍵集合）とに基づいて、受信ハッシュ化鍵保有連絡先集合のうちから、鍵集合記憶部４２が記憶していないメールアドレス（第４連絡先情報）を抽出し、抽出したメールアドレスに対応する公開鍵を送信鍵として決定する。制御部５０ａは、抽出したメールアドレスに基づく鍵要求情報であって、抽出したメールアドレスに対応する公開鍵を要求する鍵要求連絡先集合を携帯端末装置２００ａに送信する。そして、制御部５０ａは、鍵要求連絡先集合に応じて携帯端末装置２００ａから出力された、鍵集合記憶部４２が記憶していないメールアドレス（第４連絡先情報）に対応する公開鍵を送信鍵として携帯端末装置２００ａから取得する。
【０１２４】
これにより、本実施形態における携帯端末装置１００ａ及び鍵交換システム１ａは、例えば、自装置が公開鍵を保有するメールアドレスのハッシュ値を送信するので、携帯端末装置２００ａのユーザが知らない人物などの知る必要のない不要な情報を開示してしまうことなく、自装置が必要とする公開鍵を取得することができる。すなわち、本実施形態における携帯端末装置１００ａ及び鍵交換システム１ａは、携帯端末装置２００ａとの間において、互いに保有する連絡先情報（メールアドレス）を開示せずに、送信鍵を決定することができる。そのため、本実施形態における携帯端末装置１００ａ及び鍵交換システム１ａは、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいすることを防止することができる。よって、本実施形態における携帯端末装置１００ａ及び鍵交換システム１ａは、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【０１２５】
また、本実施形態では、制御部５０ａは、連絡先記憶部４１が記憶しているメールアドレスをハッシュ関数に基づいてハッシュ値に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として連絡先組情報記憶部６２に記憶させる。また、制御部５０ａは、連絡先組情報記憶部６２が記憶しているメールアドレスの集合のうち、鍵集合記憶部４２に記憶されているメールアドレスに関連付けられているハッシュ値の集合（ハッシュ化鍵保有連絡先集合）を携帯端末装置２００ａに送信する。制御部５０ａは、送信したハッシュ化鍵保有連絡先集合に応じて携帯端末装置２００ａから出力された要求情報であって、ハッシュ化鍵保有連絡先集合のうち、交換先装置が保有していない公開鍵を送信鍵として要求する要求情報（鍵要求連絡先情報）を取得する。そして、制御部５０ａは、取得した鍵要求連絡先情報に基づいて、鍵集合記憶部４２に記憶されている公開鍵のうちから、携帯端末装置２００ａに送信する送信鍵を抽出し、抽出した当該送信鍵に対応する鍵情報の集合（送信鍵集合）を送信する。
これにより、本実施形態における携帯端末装置１００ａ及び鍵交換システム１ａは、例えば、携帯端末装置１００ａのユーザにとって知る必要のない不要な情報を知り得てしまうことなく、携帯端末装置２００ａが必要とする送信鍵を送信することができる。よって、本実施形態における携帯端末装置１００ａは、携帯端末装置２００ａとの間で、不要な情報を開示せずに、互いに公開鍵を送信することができる。
【０１２６】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態は、単独で実施する場合について説明したが、上記の各実施形態を組み合わせて実施してもよい。また、携帯端末装置１００（１００ａ）は、鍵交換の際に、携帯端末装置１００（１００ａ）が必要する送信鍵の送信と、自装置が必要とする送信鍵の取得との両方を行う形態を説明したが、いずれか一方を行う形態であってもよい。
また、上記の各実施形態において、鍵交換を行う公開鍵は、一例としてＲＳＡ暗号の公開鍵である場合について説明したが、他の公開鍵暗号方式の公開鍵であってもよい。
【０１２７】
また、上記の各実施形態において、通信部３０は、ＮＦＣインターフェースである一例について説明したが、これに限定されるものではなく、他のインターフェースを利用して通信してもよい。また、鍵交換システム１（１ａ）は、携帯端末装置１００（１００ａ）と携帯端末装置２００（２００ａ）とが、ＮＦＣインターフェースを利用して直接鍵交換を行う場合について説明したが、ネットワークを介して鍵交換を行ってもよい。
【０１２８】
また、上記の各実施形態において、鍵交換装置の一例として、スマートフォンなどの携帯電話である携帯端末装置１００（２００）を用いる場合について説明したが、例えば、ＰＤＡ（Personal Digital Assistant）やパーソナルコンピュータなどの他の端末装置を鍵交換装置として利用してもよい。
また、上記の各実施形態において、連絡先情報が、メールアドレスである場合について説明したが、例えば、電話番号、氏名など、情報を送信する相手を識別する識別情報であれば、他の情報であってもよい。
【０１２９】
また、上記の各実施形態において、連絡先記憶部４１の連絡先情報は、メールソフトのアドレス帳を利用する場合について説明したが、これに限定されるものではない。また、連絡先記憶部４１が記憶するメールアドレスを、個人用、仕事用などの複数のグループに分類して、制御部５０（５０ａ）は、鍵交換の際に、複数のグループのうちから鍵交換を行うメールアドレスのグループを選択するような構成にしてもよい。
【０１３０】
また、上記の各実施形態において、出力部２０は、液晶ディスプレイである場合について説明したが、これに限定されるものではなく、出力部２０は、例えば、外部の表示装置に、表示情報を出力する出力インターフェース部であってもよい。また、出力部２０は、鍵交換の処理が完了したことを示す情報を音により出力してもよい。
また、上記の各実施形態において、送信鍵集合は、メールアドレスと公開鍵とを関連付けた鍵情報の集合として、携帯端末装置１００（１００ａ）と携帯端末装置２００（２００ａ）との間で送信される場合について説明したが、これに限定されるものではない。例えば、送信される公開鍵の順番などによりメールアドレスとの対応が可能である場合には、送信鍵集合は、公開鍵の集合であってもよい。
【０１３１】
なお、本発明における携帯端末装置１００（１００ａ）が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した携帯端末装置１００（１００ａ）が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやＷＡＮ、ＬＡＮ、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、ＣＤ−ＲＯＭ等の非一過性の記録媒体であってもよい。
【０１３２】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に携帯端末装置１００（１００ａ）が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【０１３３】
また、上述した機能の一部または全部を、ＬＳＩ（Large Scale Integration）等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１３４】
１、１ａ  鍵交換システム
１０  入力部
２０  出力部
３０  通信部
３１  受信部
３２  送信部
４０、４０ａ  記憶部
４１  連絡先記憶部
４２  鍵集合記憶部
４３  鍵不明連絡先記憶部
４４  ハッシュ化鍵不明連絡先記憶部
４５  鍵保有連絡先記憶部
４６  受信ハッシュ化鍵不明連絡先記憶部
４７  送信鍵記憶部
４８  受信鍵記憶部
５０、５０ａ  制御部
５１  鍵不明連絡先集合生成部
５２  ハッシュ算出部
５３  鍵保有連絡先集合生成部
５４  暗号化処理部
５５  復号処理部
５６、７４  送信鍵集合生成部
５７  鍵集合更新部
６１  ハッシュ化鍵保有連絡先記憶部
６２  連絡先組情報記憶部
６３  受信ハッシュ化鍵保有連絡先記憶部
６４  鍵要求連絡先記憶部
６５  受信鍵要求連絡先記憶部
７１  連絡先組集合生成部
７２  ハッシュ化鍵保有連絡先集合生成部
７３  鍵要求連絡先集合生成部
１００、１００ａ、２００、２００ａ  携帯端末装置
【図１】
2015070487.tif 000003
【図２】
2015070487.tif 000004
【図３】
2015070487.tif 000005
【図４】
2015070487.tif 000006
【図５】
2015070487.tif 000007
【図６】
2015070487.tif 000008
【図７】
2015070487.tif 000009
【図８】
2015070487.tif 000010
【図９】
2015070487.tif 000011
【図１０】
2015070487.tif 000012
【図１１】
2015070487.tif 000013
【図１２】
2015070487.tif 000014
【図１３】
2015070487.tif 000015
【図１４】
2015070487.tif 000016
【図１５】
2015070487.tif 000017
【図１６】
2015070487.tif 000018
【図１７】
2015070487.tif 000019
【図１８】
2015070487.tif 000020
【図１９】
2015070487.tif 000021
【図２０】
2015070487.tif 000022
【図２１】
2015070487.tif 000023
【図２２】
2015070487.tif 000024
【図２３】
2015070487.tif 000025
【図２４】
2015070487.tif 000026