(58)【調査した分野】(Int.Cl.,DB名)
情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第1連絡先情報と、当該第1連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第1変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、
前記自装置が鍵を予め取得している前記第1連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、
所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第2変換情報の集合を、前記鍵を交換する交換先装置から取得し、取得した当該第2変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する制御部と
を備えることを特徴とする鍵交換装置。
情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第1連絡先情報と、当該第1連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第1変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第1連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、制御部とを備える鍵交換装置の鍵交換方法であって、
前記制御部が、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第2変換情報の集合を、前記鍵を交換する交換先装置から取得する取得ステップと、
前記制御部が、取得した当該第2変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する決定ステップと
を含むことを特徴とする鍵交換方法。
情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す第1連絡先情報と、当該第1連絡先情報を所定の一方向性関数に基づいて変換した変換情報を示す第1変換情報とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部と、前記自装置が鍵を予め取得している前記第1連絡先情報と、当該鍵とを関連付けた保有鍵情報を記憶する鍵情報記憶部と、制御部とを備える鍵交換装置としてのコンピュータに、
前記制御部が、所定の連絡先情報が前記所定の一方向性関数に基づいて変換された変換情報を示す第2変換情報の集合を、前記鍵を交換する交換先装置から取得する取得ステップと、
前記制御部が、取得した当該第2変換情報の集合と、前記連絡先組情報記憶部が記憶している前記連絡先組情報の集合と、前記鍵情報記憶部が記憶している前記保有鍵情報の集合とに基づいて、前記自装置と前記交換先装置との間で送信される鍵を示す送信鍵を決定する決定ステップと
を実行させるためのプログラム。
【発明を実施するための形態】
【0014】
以下、本発明の一実施形態による鍵交換装置及び鍵交換システムについて、図面を参照して説明する。
[第1の実施形態]
図1は、本実施形態による鍵交換システム1の一例を示すブロック図である。
この図において、鍵交換システム1は、携帯端末装置100と携帯端末装置200とを備えている。
【0015】
携帯端末装置100は、携帯端末装置200と鍵交換を行う鍵交換装置であり、例えば、スマートフォンなどの携帯電話である。すなわち、本実施形態では、鍵交換装置の一例として、携帯電話である場合について説明する。
携帯端末装置200は、携帯端末装置100と鍵交換を行う交換先(相手先)の装置(交換先装置)であり、例えば、携帯端末装置100と同一の構成を備える携帯電話である。
【0016】
なお、本実施形態において、「鍵交換」又は、「鍵を交換する」とは、例えば、RSA暗号などの公開鍵暗号方式の暗号処理に利用する公開鍵(鍵の一例)を鍵交換装置と交換先装置との間で送信することである。また、「鍵交換」又は、「鍵を交換する」には、鍵交換装置から交換先装置に公開鍵を送信する場合と、交換先装置から鍵交換装置に公開鍵を送信する場合とのいずれか一方、又は両方が含まれる。
また、本実施形態では、鍵交換は、「信頼の輪」に基づいて公開鍵を送信することを前提とし、PGP(Pretty Good Privacy)の鍵交換システムに適用可能である。
【0017】
図1において、携帯端末装置100は、入力部10、出力部20、通信部30、記憶部40、及び制御部50を備えている。
入力部10は、例えば、キーボードやタッチパネルなどであり、利用者によって入力された各種情報や、各種操作に応じた信号などを制御部50に出力する。
出力部20は、外部に各種情報を出力する。なお、出力部20は、例えば、液晶ディスプレイなどの表示装置であり、制御部50から出力される各種情報を表示する。
【0018】
通信部30は、鍵交換の際に、例えば、NFC(Near Field Communication)インターフェースを利用して、携帯端末装置200と通信を行う。なお、本実施形態における鍵交換システム1は、NFCインターフェースを利用して、携帯端末装置100と携帯端末装置200との間で鍵交換を行う場合の一例について説明する。
また、通信部30は、受信部31と、送信部32とを備えている。
【0019】
受信部31は、NFCインターフェースを利用して、公開鍵などの各種情報を外部装置(例えば、携帯端末装置200)から受信する。受信部31は、携帯端末装置200から情報を受信し、受信した情報を制御部50に出力する。
送信部32は、NFCインターフェースを利用して、公開鍵などの各種情報を外部装置(例えば、携帯端末装置200)に送信する。送信部32は、制御部50から出力された情報を、携帯端末装置200に出力する。
【0020】
記憶部40は、鍵交換に利用する各種情報を記憶する。記憶部40は、連絡先記憶部41、鍵集合記憶部42、鍵不明連絡先記憶部43、ハッシュ化鍵不明連絡先記憶部44、鍵保有連絡先記憶部45、受信ハッシュ化鍵不明連絡先記憶部46、送信鍵記憶部47、及び受信鍵記憶部48を備えている。
【0021】
連絡先記憶部41は、情報を送信する連絡先情報であって、自装置(携帯端末装置100)が保有する連絡先情報を示す第1連絡先情報を記憶する。ここで、連絡先情報とは、例えば、電子メールアドレス(以下、メールアドレスという)であり、第1連絡先情報は、携帯端末装置100が保有しているメールアドレスのことである。連絡先記憶部41は、
図2に示すように、複数のメールアドレスを予め記憶している。ここで、
図2を参照して連絡先記憶部41のデータ構成の一例について説明する。
【0022】
図2は、本実施形態における連絡先記憶部41のデータ構成の一例を示す図である。
この図において、連絡先記憶部41は、例えば、メールの送受信処理を行うソフトウェアであるメールソフトのアドレス帳を示す情報を記憶する。すなわち、この図において、連絡先記憶部41は、「No.」、「氏名」、及び「メールアドレス」を関連付けて記憶する。ここで、「No.」は、メールアドレスを管理するための登録情報の項番を示し、「氏名」は、アドレス帳に登録されている情報を送信する相手の氏名を示す情報である。また、「メールアドレス」は、記憶されているメールアドレスを示している。
図2に示すように、連絡先記憶部41は、複数のメールアドレスを連絡先集合として記憶する。ここで、連絡先集合とは、携帯端末装置100が保有しているメールアドレスの集合のことであり、連絡先集合(E
i)は、下記の式(1)により表現される。
【0023】
E
i={e
j|j∈A
i} ・・・(1)
【0024】
但し、“A
i”は、ユーザ“i”が何らかの連絡手段を保有している相手(ユーザ)の集合を示す。なお、以下の説明において、“e
i”は、ユーザ“i”のメールアドレスを示し、“k
i”は、ユーザ“i”の公開鍵を示す。また、“Fst(X)”は、“X”がペアX=(a,b)のときの第一要素(a)を示し、“X”がペアの集合X={(a
1,b
1),(a
2,b
2),...,(a
N,b
N)}のときの集合{a
1,a
2,...,a
N}を示す。また、“Snd(X)”は、“X”がペアX=(a,b)のときの第二要素(b)を示し、“X”がペアの集合X={(a
1,b
1),(a
2,b
2),...,(a
N,b
N)}のときの集合{b
1,b
2,...,b
N}を示す。
なお、本実施形態において、携帯端末装置100と携帯端末装置200とは、同一の構成であるので、以下の説明において、“i”は、携帯端末装置100である場合を“1”とし、携帯端末装置200である場合を“2”として説明する。
【0025】
鍵集合記憶部42(鍵情報記憶部)は、携帯端末装置100が公開鍵を予め取得している(保有している)第1連絡先情報と、当該公開鍵とを関連付けた保有鍵情報を記憶する。鍵集合記憶部42は、
図3に示すように、複数の保有鍵情報を鍵集合として記憶する。なお、鍵集合とは、携帯端末装置100が保有しているメールアドレス及び公開鍵の組の集合のことであり、鍵集合(KR
i)は、下記の式(2)により表現される。
【0026】
KR
i={(e
j,k
j)|j∈A
i} ・・・(2)
【0027】
ここで、
図3を参照して鍵集合記憶部42のデータ構成の一例について説明する。
図3は、本実施形態における鍵集合記憶部42のデータ構成の一例を示す図である。この図において、鍵集合記憶部42は、「メールアドレス」と「公開鍵」とを関連付けて記憶する。
この図に示す例では、鍵集合記憶部42は、メールアドレス(e
2)と公開鍵(K
2)とを関連づけた保有鍵情報と、メールアドレス(e
5)と公開鍵(K
5)とを関連づけた保有鍵情報とを含む鍵集合(保有鍵情報の集合)を記憶している。
【0028】
再び
図1に戻り、鍵不明連絡先記憶部43は、鍵不明連絡先集合として複数の鍵不明連絡先情報を記憶する。ここで、鍵不明連絡先集合とは、携帯端末装置100が保有しているメールアドレスの集合(連絡先集合)のうち、携帯端末装置100が公開鍵を保有していないメールアドレスを示す鍵不明連絡先情報の集合であり、鍵不明連絡先集合(UL
i)は、下記の式(3)により表現される。
【0029】
UL
i=E
i−Fst(KR
i) ・・・(3)
【0030】
ハッシュ化鍵不明連絡先記憶部44は、ハッシュ化鍵不明連絡先集合として複数のハッシュ化鍵不明連絡先情報を記憶する。ここで、ハッシュ化鍵不明連絡先情報は、上述した鍵不明連絡先情報(公開鍵を保有していないメールアドレス)のハッシュ値を示す。ここで、ハッシュ化鍵不明連絡先集合(HUL
i)は、下記の式(4)により表現される。
【0031】
HUL
i={h(e)|e∈UL
i} ・・・(4)
ここで、h()は、ハッシュ関数である。
【0032】
鍵保有連絡先記憶部45は、鍵集合記憶部42が記憶するメールアドレスと、当該メールアドレスのハッシュ値とを関連付けた組(連絡先組情報)を記憶する。すなわち、鍵保有連絡先記憶部45は、
図4に示すように、複数の連絡先組情報を、鍵保有連絡先集合として記憶する。なお、本実施形態において、鍵保有連絡先記憶部45は、自装置が保有するメールアドレス(第1連絡先情報)と、当該メールアドレスのハッシュ値(第1変換情報)とを関連付けた連絡先組情報を記憶する連絡先組情報記憶部の一例である。
また、鍵保有連絡先集合(HDL
i)は、下記の式(5)により表現される。
【0033】
HDL
i={(e,h(e))|e∈E
i} ・・・(5)
【0034】
ここで、
図4を参照して鍵保有連絡先記憶部45のデータ構成の一例について説明する。
図4は、本実施形態における鍵保有連絡先記憶部45のデータ構成の一例を示す図である。この図において、鍵保有連絡先記憶部45は、「メールアドレス」と「ハッシュ値」とを関連付けて記憶する。
この図に示す例では、鍵保有連絡先記憶部45は、メールアドレス(e
2)とメールアドレス(e
2)のハッシュ値(h(e
2))とを関連づけた連絡先組情報と、メールアドレス(e
5)とメールアドレス(e
5)のハッシュ値(h(e
5))とを関連づけた連絡先組情報とを含む鍵保有連絡先集合を記憶している。
【0035】
再び
図1に戻り、受信ハッシュ化鍵不明連絡先記憶部46は、自装置が受信したハッシュ化鍵不明連絡先集合を記憶する。すなわち、受信ハッシュ化鍵不明連絡先記憶部46は、例えば、携帯端末装置200から取得したハッシュ化鍵不明連絡先集合(HUL
2)を記憶する。
【0036】
送信鍵記憶部47は、鍵交換の際に送信する送信鍵集合を記憶する。ここで、送信鍵集合は、メールアドレスと、当該メールアドレスに対応する公開鍵とを関連づけた鍵情報の集合である。
【0037】
受信鍵記憶部48は、鍵交換の際に受信した受信鍵集合を記憶する。ここで、受信鍵集合は、例えば、携帯端末装置200から取得した鍵情報の集合(携帯端末装置200の送信鍵集合)である。受信鍵記憶部48は、受信鍵集合に含まれるメールアドレスと、当該メールアドレスに対応する公開鍵とを関連づけて記憶する。
【0038】
制御部50は、例えば、CPU(Central Processing Unit)などを含むプロセッサであり、携帯端末装置100を統括的に制御する。制御部50は、鍵交換の際に、例えば、携帯端末装置200から通信部30の受信部31を介して受信ハッシュ化鍵不明連絡先集合(第2変換情報の集合の一例)を取得する。ここで、受信ハッシュ化鍵不明連絡先集合は、携帯端末装置200が保有しているメールアドレスの集合(連絡先集合)のうち、携帯端末装置200が公開鍵を保有していないメールアドレスを示す鍵不明連絡先情報(第2連絡先情報)のハッシュ値の集合である。携帯端末装置100における受信ハッシュ化鍵不明連絡先集合は、携帯端末装置200におけるハッシュ化鍵不明連絡先集合に相当する。
制御部50は、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先記憶部45が記憶している鍵保有連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、携帯端末装置200に送信する送信鍵集合を生成する。すなわち、制御部50は、受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、携帯端末装置100と携帯端末装置200との間で送信する公開鍵を示す送信鍵を決定する。
【0039】
例えば、制御部50は、鍵集合記憶部42が記憶している鍵集合のうち、受信ハッシュ化鍵不明連絡先集合のメールアドレスと一致するメールアドレスに対応する公開鍵を送信鍵として決定する。つまり、制御部50は、自装置の鍵集合のうち、メールアドレスが、受信ハッシュ化鍵不明連絡先集合のハッシュ値に対応するメールアドレスと一致する保有鍵情報に含まれる公開鍵を送信鍵として決定する。なお、送信鍵を決定する処理(送信鍵集合を生成する処理)の詳細については、後述する。
【0040】
このように、制御部50は、所定のメールアドレス(連絡先情報)のハッシュ値の集合を、公開鍵を交換する携帯端末装置200から取得し、取得した当該ハッシュ値の集合と、鍵保有連絡先集合と、鍵集合とに基づいて、携帯端末装置100と携帯端末装置200との間で送信する公開鍵を示す送信鍵を決定する。なお、本実施形態において、所定のメールアドレスとは、携帯端末装置200が保有しているメールアドレスの集合(連絡先集合)のうち、携帯端末装置200が公開鍵を保有していないメールアドレスを示す鍵不明連絡先情報(第2連絡先情報)である。
制御部50は、生成した送信鍵集合を通信部30の送信部32を介して携帯端末装置200に送信する。
【0041】
また、制御部50は、例えば、鍵交換を行う際に、連絡先記憶部41が記憶している連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、上述した鍵不明連絡先集合を生成し、生成した鍵不明連絡先集合のメールアドレスのハッシュ値(第3変換情報)の集合であるハッシュ化鍵不明連絡先集合を携帯端末装置200に送信する。そして、制御部50は、鍵不明連絡先集合に対応する公開鍵の集合を受信鍵集合として携帯端末装置200から取得し、取得した受信鍵集合を鍵集合記憶部42が記憶している鍵集合に追加する。
また、制御部50は、鍵不明連絡先集合生成部51、ハッシュ算出部52、鍵保有連絡先集合生成部53、暗号化処理部54、復号処理部55、送信鍵集合生成部56、及び鍵集合更新部57を備えている。
【0042】
鍵不明連絡先集合生成部51は、連絡先記憶部41が記憶している連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、上述した鍵不明連絡先集合を生成する。鍵不明連絡先集合生成部51は、例えば、連絡先記憶部41が記憶しているメールアドレスの集合のうち、鍵集合記憶部42に公開鍵が記憶されていないメールアドレスを抽出し、抽出した当該メールアドレスの集合を、鍵不明連絡先集合として生成する。すなわち、鍵不明連絡先集合生成部51は、上述した式(3)により、鍵不明連絡先集合を生成する。鍵不明連絡先集合生成部51は、生成した鍵不明連絡先集合を鍵不明連絡先記憶部43に記憶させる。
【0043】
また、鍵不明連絡先集合生成部51は、生成した鍵不明連絡先集合に含まれるメールアドレスをハッシュ算出部52に出力して、ハッシュ算出部52に対してメールアドレスのハッシュ値を算出させる。鍵不明連絡先集合生成部51は、ハッシュ算出部52に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵不明連絡先集合として、ハッシュ化鍵不明連絡先記憶部44に記憶させる。具体的に、鍵不明連絡先集合生成部51は、鍵不明連絡先記憶部43に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部52に出力するとともに、ハッシュ算出部52から出力されたハッシュ値を、ハッシュ化鍵不明連絡先記憶部44に順次記憶させる。このように、鍵不明連絡先集合生成部51は、鍵不明連絡先集合に基づいて、ハッシュ算出部52に鍵不明連絡先情報のハッシュ値を算出させて、鍵不明連絡先情報のハッシュ値の集合(ハッシュ化鍵不明連絡先集合)を生成する。
【0044】
また、鍵不明連絡先集合生成部51は、生成したハッシュ化鍵不明連絡先集合を暗号化処理部54に出力し、交換先装置(ここでは携帯端末装置200)の公開鍵により暗号化させて、暗号化されたハッシュ化鍵不明連絡先集合を、通信部30の送信部32を介して、携帯端末装置200に出力させる。
【0045】
ハッシュ算出部52(変換部)は、所定の一方向性関数に基づいて連絡先情報を変換した変換情報を生成する。すなわち、ハッシュ算出部52は、例えば、所定のハッシュ関数に基づいて、入力されたメールアドレスのハッシュ値を算出し、算出したハッシュ値を出力する。ここで、所定のハッシュ関数は、例えば、MD4、MD5、SHA−1、SHA−512などであり、ハッシュ値から元のメールアドレスを得ることが事実上不可能である一方向性関数であれば、他の関数を適用してもよい。
【0046】
鍵保有連絡先集合生成部53は、鍵集合記憶部42が記憶している鍵集合に基づいて、鍵保有連絡先集合を生成し、生成した鍵保有連絡先集合を鍵保有連絡先記憶部45に記憶させる。すなわち、鍵保有連絡先集合生成部53は、鍵集合記憶部42に記憶されているメールアドレスをハッシュ値に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として鍵保有連絡先記憶部45に記憶させる。
具体的に、鍵保有連絡先集合生成部53は、鍵集合記憶部42に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部52に出力する。そして、鍵保有連絡先集合生成部53は、ハッシュ算出部52から出力されたハッシュ値と元のメールアドレスとを関連付けて、鍵保有連絡先記憶部45に順次記憶させる。
【0047】
暗号化処理部54は、携帯端末装置100が出力する情報を、携帯端末装置200の公開鍵により暗号化して、暗号化した情報を通信部30の送信部32を介して、携帯端末装置200に出力する。暗号化処理部54は、携帯端末装置200の公開鍵を、鍵集合記憶部42から取得し、取得した公開鍵を用いて、入力された情報を暗号化する。そして、暗号化処理部54は、暗号化した情報を通信部30の送信部32に出力する。
【0048】
復号処理部55は、携帯端末装置200から通信部30の受信部31を介して受信した情報を、自装置(携帯端末装置100)の秘密鍵により復号し、復号した情報を制御部50の所定の処理部(例えば、送信鍵集合生成部56及び鍵集合更新部57)に出力する。なお、携帯端末装置100の秘密鍵は、記憶部40に予め記憶されており、復号処理部55は、記憶部40から取得する。
【0049】
送信鍵集合生成部56は、携帯端末装置200から受信した受信ハッシュ化鍵不明連絡先集合を取得し、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先記憶部45が記憶している鍵保有連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、送信鍵集合を生成する。具体的に、送信鍵集合生成部56は、通信部30の受信部31が携帯端末装置200から受信した、暗号化された携帯端末装置200におけるハッシュ化鍵不明連絡先集合を復号処理部55に復号させて、受信ハッシュ化鍵不明連絡先集合として取得する。送信鍵集合生成部56は、取得した受信ハッシュ化鍵不明連絡先集合を受信ハッシュ化鍵不明連絡先記憶部46に記憶させる。そして、送信鍵集合生成部56は、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、送信鍵集合を生成する。
【0050】
すなわち、送信鍵集合生成部56は、取得した受信ハッシュ化鍵不明連絡先集合のうち、鍵保有連絡先記憶部45が記憶しているハッシュ値(第1変換情報)と一致するハッシュ値(第2変換情報)を抽出するとともに、抽出したハッシュ値と関連付けられて鍵保有連絡先記憶部45に記憶されているメールアドレスであって、鍵集合記憶部42に記憶されているメールアドレスに対応する公開鍵を、送信鍵として決定する。具体的に、送信鍵集合生成部56は、鍵集合記憶部42に記憶されている保有鍵情報の集合のうちから、抽出したハッシュ値を含む保有鍵情報を、決定した送信鍵を含む保有鍵情報として抽出し、この保有鍵情報の集合を送信鍵集合として送信鍵記憶部47に記憶させる。
また、送信鍵集合生成部56は、送信鍵記憶部47に記憶されている送信鍵集合を暗号化処理部54に出力し、携帯端末装置200の公開鍵により暗号化させて、暗号化された送信鍵集合を、通信部30の送信部32を介して、携帯端末装置200に出力させる。このように、送信鍵集合生成部56は、決定した送信鍵を含む保有鍵情報を携帯端末装置200に送信する。
【0051】
鍵集合更新部57は、携帯端末装置200から受信した受信鍵集合を取得し、受信鍵記憶部48に記憶させる。すなわち、鍵集合更新部57は、携帯端末装置200に出力したハッシュ化鍵不明連絡先集合に応じて携帯端末装置200が出力した暗号化された送信鍵集合(携帯端末装置200における送信鍵集合)を通信部30の受信部31を介して受信するとともに、暗号化された送信鍵集合を復号処理部55に復号させて、受信鍵集合として取得する。そして、鍵集合更新部57は、取得した受信鍵集合を受信鍵記憶部48に記憶させる。
【0052】
また、鍵集合更新部57は、携帯端末装置200から受信した受信鍵集合を鍵集合記憶部42に追加する更新処理を行う。すなわち、鍵集合更新部57は、送信したハッシュ化鍵不明連絡先集合に応じて携帯端末装置200から出力された公開鍵と、当該公開鍵に対応するメールアドレスとを関連付けて鍵集合記憶部42に記憶させる。
また、鍵集合更新部57は、鍵交換の処理が完了した場合に、鍵交換の処理が完了したことを示す情報(例えば、メッセージ)を出力部20に出力する。鍵集合更新部57は、例えば、鍵交換の処理が完了したことを示す情報を出力部20(例えば、液晶ディスプレイ)に表示させる。
【0053】
次に、本実施形態における鍵交換システム1の動作について、図面を参照して説明する。
本実施形態では、携帯端末装置100と携帯端末装置200とが鍵交換を行う場合の一例について説明する。
図5は、本実施形態における携帯端末装置100(200)の動作の一例を示すフローチャートである。また、
図6〜
図12は、本実施形態における鍵交換システム1の動作の一例を説明する図である。
なお、携帯端末装置100及び携帯端末装置200のそれぞれにおいて、
図5に示す処理が実行され、ここでは、携帯端末装置100の動作を優先して説明する。
また、
図6〜
図12は、携帯端末装置100及び携帯端末装置200のそれぞれが、保有する保有情報(記憶部40に記憶される情報)の遷移を示している。
【0054】
図5において、まず、携帯端末装置100の制御部50は、入力部10からの処理の開始信号を受信する(ステップS101)。すなわち、携帯端末装置100のユーザの操作により、鍵交換の処理を開始する指示が入力された場合に、例えば、入力部10が処理の開始信号を出力し、この開始信号に応じて、制御部50が鍵交換の処理を開始する。なお、ステップS101における携帯端末装置100及び携帯端末装置200の保有情報は、
図6に示す状態である。ここで、
図6は、鍵交換を行う前の携帯端末装置100及び携帯端末装置200の初期状態を示している。
【0055】
図6に示す例では、初期状態において、携帯端末装置100が、連絡先集合(E
1={e
2,e
3,e
4,e
5})及び鍵集合(KR
1={(e
2,k
2),(e
5,k
5)})を保有し、携帯端末装置200が、連絡先集合(E
2={e
1,e
3,e
4,e
5})及び鍵集合(KR
2={(e
1,k
1),(e
3,k
3)})を保有している場合である。
【0056】
次に、制御部50の鍵不明連絡先集合生成部51が、連絡先集合と鍵集合とに基づいて鍵不明連絡先集合を生成する(ステップS102、
図7参照)。すなわち、鍵不明連絡先集合生成部51が、連絡先記憶部41が記憶している連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、上述の式(3)により、
図7に示すように、鍵不明連絡先集合を生成する。鍵不明連絡先集合生成部51は、生成した鍵不明連絡先集合を鍵不明連絡先記憶部43に記憶させる。
図7に示す例では、携帯端末装置100の鍵不明連絡先集合生成部51が、連絡先集合(SG101)と鍵集合(SG102)とに基づいて、鍵不明連絡先集合(SG103)を生成する。また、携帯端末装置200の鍵不明連絡先集合生成部51が、連絡先集合(SG201)と鍵集合(SG202)とに基づいて、鍵不明連絡先集合(SG203)を生成する。
【0057】
次に、鍵不明連絡先集合生成部51が、鍵不明連絡先集合に基づいてハッシュ化鍵不明連絡先集合を生成する(ステップS103、
図8参照)。すなわち、鍵不明連絡先集合生成部51は、鍵不明連絡先記憶部43が記憶している鍵不明連絡先集合に含まれるメールアドレスをハッシュ算出部52に出力して、ハッシュ算出部52に対してメールアドレスのハッシュ値を算出させる。そして、鍵不明連絡先集合生成部51は、ハッシュ算出部52に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵不明連絡先集合として、ハッシュ化鍵不明連絡先記憶部44に記憶させる。
なお、
図8に示す例では、携帯端末装置100の鍵不明連絡先集合生成部51が、鍵不明連絡先集合(SG103)からハッシュ化鍵不明連絡先集合(SG104)を生成する。また、携帯端末装置200の鍵不明連絡先集合生成部51が、鍵不明連絡先集合(SG203)からハッシュ化鍵不明連絡先集合(SG204)を生成する。
【0058】
また、制御部50の鍵保有連絡先集合生成部53が、鍵集合に基づいて鍵保有連絡先集合を生成する(ステップS104、
図8参照)。すなわち、鍵保有連絡先集合生成部53は、鍵集合記憶部42に記憶されている鍵集合に含まれるメールアドレスをハッシュ算出部52に出力して、ハッシュ算出部52に対してメールアドレスのハッシュ値を算出させる。そして、鍵保有連絡先集合生成部53は、ハッシュ算出部52に算出させたハッシュ値を取得して、取得したハッシュ値と元のメールアドレスを関連付けた連絡先組情報の集合を鍵保有連絡先集合として、鍵保有連絡先記憶部45に記憶させる。
なお、
図8に示す例では、携帯端末装置100の鍵保有連絡先集合生成部53が、鍵集合(SG102)から鍵保有連絡先集合(SG105)を生成する。また、携帯端末装置200の鍵保有連絡先集合生成部53が、鍵集合(SG202)から鍵保有連絡先集合(SG205)を生成する。
【0059】
次に、制御部50の暗号化処理部54が、ハッシュ化鍵不明連絡先集合を暗号化し(ステップS105)、通信部30の送信部32が、
図9に示すように、暗号化したハッシュ化鍵不明連絡先集合(EHUL
1=Enc(k
2,HUL
1))を交換先装置(例えば、携帯端末装置200)に送信する(ステップS106)。ここで、“Enc(k,C)”は公開鍵kを用いて、平文Cが暗号化されたメッセージを示す。なお、送信部32は、鍵不明連絡先集合が空集合である場合には、ハッシュ化鍵不明連絡先集合(HUL
1)が空集合であることを示す情報を交換先装置(例えば、携帯端末装置200)に送信してもよい。
【0060】
また、通信部30の受信部31が、
図9に示すように、暗号化された交換先のハッシュ化鍵不明連絡先集合(EHUL
2=Enc(k
1,HUL
2))を受信し(ステップS107)、制御部50の復号処理部55が、暗号化された交換先のハッシュ化鍵不明連絡先集合を復号する(ステップS108)。そして、制御部50の送信鍵集合生成部56が、復号処理部55から交換先のハッシュ化鍵不明連絡先集合を取得し、受信ハッシュ化鍵不明連絡先集合として受信ハッシュ化鍵不明連絡先記憶部46に記憶させる。
【0061】
なお、
図9に示す例では、携帯端末装置100が、暗号化したハッシュ化鍵不明連絡先集合(EHUL
1)を送信するとともに、携帯端末装置200から暗号化されたハッシュ化鍵不明連絡先集合(EHUL
2)を受信する。その結果、携帯端末装置100は、受信した暗号化されたハッシュ化鍵不明連絡先集合(EHUL
2)を復号したハッシュ化鍵不明連絡先集合(HUL
2)を受信ハッシュ化鍵不明連絡先集合(SG106)として保有する。また、携帯端末装置200が、暗号化したハッシュ化鍵不明連絡先集合(EHUL
2)を送信するとともに、携帯端末装置100から暗号化されたハッシュ化鍵不明連絡先集合(EHUL
1)を受信する。その結果、携帯端末装置200は、受信した暗号化されたハッシュ化鍵不明連絡先集合(EHUL
1)を復号したハッシュ化鍵不明連絡先集合(HUL
1)を受信ハッシュ化鍵不明連絡先集合(SG206)として保有する。
【0062】
次に、送信鍵集合生成部56が、受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて送信鍵集合を生成する(ステップS109)。ここで、送信鍵集合(SKR
1)は、下記の式(6)により表わされ、送信鍵集合生成部56は、受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、式(6)により、
図10に示すように、送信鍵集合を生成する。
【0063】
SKR
1={(Fst(x),Snd(z))|x∈HDL
1,
x’∈Snd(x),y∈HUL
2,x’=y,
z∈KR
1,Fst(z)=Fst(x)} ・・・(6)
【0064】
なお、
図10に示す例では、携帯端末装置100の送信鍵集合生成部56が、鍵集合(SG102)と、鍵保有連絡先集合(SG105)と、受信ハッシュ化鍵不明連絡先集合(SG106)とに基づいて、送信鍵集合(SG107)を生成する。また、携帯端末装置200の送信鍵集合生成部56が、鍵集合(SG202)と、鍵保有連絡先集合(SG205)と、受信ハッシュ化鍵不明連絡先集合(SG206)とに基づいて、送信鍵集合(SG207)を生成する。
【0065】
次に、暗号化処理部54が、送信鍵集合を暗号化し(ステップS110)、送信部32が、
図11に示すように、暗号化した送信鍵集合(ESKR
1=Enc(k
2,SKR
1))を交換先装置(例えば、携帯端末装置200)に送信する(ステップS111)。なお、送信部32は、送信鍵集合が空集合である場合には、送信鍵集合(SKR
1)が空集合であることを示す情報を交換先装置(例えば、携帯端末装置200)に送信してもよい。
【0066】
また、受信部31が、
図11に示すように、暗号化された交換先の送信鍵集合(ESKR
2=Enc(k
1,SKR
2))を受信し(ステップS112)、復号処理部55が、暗号化された交換先の送信鍵集合を復号し、受信鍵集合を生成する(ステップS113)。すなわち、制御部50の鍵集合更新部57が、復号処理部55から交換先の送信鍵集合を取得し、受信鍵集合として受信鍵記憶部48に記憶させる。
【0067】
なお、
図11に示す例では、携帯端末装置100が、暗号化した送信鍵集合(ESKR
1)を送信するとともに、携帯端末装置200から暗号化された送信鍵集合(ESKR
2)を受信する。その結果、携帯端末装置100は、受信した暗号化された送信鍵集合(ESKR
2)を復号した送信鍵集合(SKR
2)を受信鍵集合(SG108)として保有する。また、携帯端末装置200が、暗号化した送信鍵集合(ESKR
2)を送信するとともに、携帯端末装置100から暗号化された送信鍵集合(ESKR
1)を受信する。その結果、携帯端末装置200は、受信した暗号化された送信鍵集合(ESKR
1)を復号した送信鍵集合(SKR
1)を受信鍵集合(SG208)として保有する。
【0068】
次に、鍵集合更新部57が、受信鍵集合を鍵集合に追加する(ステップS114)。すなわち、鍵集合更新部57は、受信鍵集合に含まれる鍵情報を鍵集合記憶部42に記憶させて、
図12に示すように、鍵集合を更新する。ここで、更新後の送信鍵集合(SKR
1)は、下記の式(7)により表現される。
【0069】
KR
1:=KR
1∪RKR
1 ・・・(7)
【0070】
なお、
図12に示す例では、携帯端末装置100の鍵集合更新部57が、鍵集合に受信鍵集合(SG108)を追加して更新後の鍵集合(SG109)を生成する。また、携帯端末装置200の鍵集合更新部57が、鍵集合に受信鍵集合(SG208)を追加して更新後の鍵集合(SG209)を生成する。
【0071】
次に、出力部20が、鍵交換の完了したことを示す情報を出力する(ステップS115)。すなわち、鍵集合更新部57が、出力部20に対して、鍵交換の完了したことを示す情報を出力させる。ここでは、鍵集合更新部57が、液晶ディスプレイに鍵交換の完了したことを示すメッセージを表示させる。このステップS115の処理後に、制御部50は、鍵交換の処理を終了させる。
なお、上述した例では、携帯端末装置100は、ハッシュ化鍵不明連絡先集合と送信鍵集合とを送信する際に、暗号化して送信する一例について説明したが、NFCインターフェースなどの通信経路において情報の改ざんが困難な場合には、暗号化せずに送信してもよい。
【0072】
なお、
図13は、本実施形態における携帯端末装置100の表示画面の一例を説明する図である。
この図に示す例は、携帯端末装置100が、タッチパネルにより構成される入力部10と、液晶ディスプレイにより構成される出力部20とを備える場合の表示画面の一例である。
【0073】
入力部10の操作により、鍵交換の処理が開始されると、携帯端末装置100は、
図13(a)に示すように、鍵集合フォルダを要求する表示画面を出力部20に表示する。そして、ユーザが、入力部10の操作により鍵集合フォルダを入力すると、携帯端末装置100は、
図5のステップS101の処理を開始し、
図13(b)の表示画面を出力部20に表示する。
ここで、入力部10の操作により「作成」が指定された場合に、携帯端末装置100は、
図5のステップS102〜ステップS104の処理を実行する。携帯端末装置100は、
図5のステップS104の処理後に、
図13(c)の表示画面を出力部20に表示し、入力部10の操作により「実行」が指定された場合に、
図5のステップS105〜ステップS114の処理を実行する。
そして、
図5のステップS115において、携帯端末装置100は、
図13(d)に示すように、鍵交換の完了したことを示すメッセージを出力部20に表示する。
【0074】
以上説明したように、本実施形態における携帯端末装置100は、鍵保有連絡先記憶部45(連絡先組情報記憶部)と、鍵集合記憶部42(鍵情報記憶部)と、制御部50とを備えている。鍵保有連絡先記憶部45は、メールアドレス(第1変換情報の一例)と、ハッシュ値(第1変換情報の一例)とを関連付けた連絡先組情報を記憶する。ここで、第1変換情報は、情報を送信する相手を識別する連絡先情報であって、自装置が保有する連絡先情報を示す。また、第1変換情報は、当該第1変換情報(メールアドレス)を所定の一方向性関数(例えば、ハッシュ関数)に基づいて変換した変換情報を示す。鍵集合記憶部42は、自装置が公開鍵(鍵の一例)を予め取得しているメールアドレスと、当該公開鍵とを関連付けた保有鍵情報を記憶する。そして、制御部50は、ハッシュ値(第2変換情報の一例)の集合(受信ハッシュ化鍵不明連絡先集合)を、公開鍵を交換する携帯端末装置200(交換先装置の一例)から取得する。ここで、第2変換情報は、所定の連絡先情報(例えば、交換先の鍵不明連絡先集合のメールアドレス)が所定の一方向性関数(例えば、ハッシュ関数)に基づいて変換された変換情報を示す。制御部50は、取得した当該ハッシュ値の集合と、鍵保有連絡先記憶部45が記憶している連絡先組情報の集合(鍵保有連絡先集合)と、鍵集合記憶部42が記憶している保有鍵情報の集合(鍵集合)とに基づいて、携帯端末装置100と携帯端末装置200との間で送信する公開鍵を示す送信鍵を決定する。
【0075】
このような構成によれば、本実施形態における携帯端末装置100は、ハッシュ値(変換情報)からメールアドレス(連絡先情報)への逆変換が事実上不可能であるため、取得した変換情報(ハッシュ値)のうちから、自装置が保有するメールアドレス以外のメールアドレスを取得することができない。これにより、本実施形態における携帯端末装置100及び鍵交換システム1は、携帯端末装置200との間において、互いに保有するメールアドレスを開示せずに、送信鍵を決定することができる。そのため、本実施形態における携帯端末装置100及び鍵交換システム1は、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいすることを防止することができる。よって、本実施形態における携帯端末装置100及び鍵交換システム1は、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【0076】
また、本実施形態では、上述した所定の連絡先情報は、携帯端末装置200が保有しているメールアドレスの集合のうち、携帯端末装置200が公開鍵を保有していないメールアドレスを示す第2連絡先情報である。制御部50は、ハッシュ関数に基づいて変換されたメールアドレスの集合(鍵不明連絡先集合、第2連絡先情報の集合)を、受信ハッシュ化鍵不明連絡先集合(第2変換情報の集合の一例)として携帯端末装置200から取得する。制御部50は、取得した受信ハッシュ化鍵不明連絡先集合と、鍵保有連絡先記憶部45が記憶している鍵保有連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、鍵集合記憶部42が記憶している鍵保有連絡先集合のうち、ハッシュ化鍵不明連絡先集合のメールアドレスと一致するメールアドレスに対応する公開鍵を(保有鍵情報の集合のうち、第1連絡先情報が第2連絡先情報と一致する保有鍵情報に含まれる公開鍵を)、送信鍵として決定する。
【0077】
すなわち、制御部50は、取得したハッシュ値(第2変換情報)の集合(受信ハッシュ化鍵不明連絡先集合)のうち、鍵保有連絡先記憶部45が記憶しているハッシュ値(第1変換情報)と一致するハッシュ値を抽出する。制御部50は、抽出したハッシュ値と関連付けられて鍵保有連絡先記憶部45に記憶されているメールアドレスであって、鍵集合記憶部42に記憶されているメールアドレスに対応する公開鍵を、送信鍵として決定する。そして、制御部50は、決定した送信鍵を含む保有鍵情報を携帯端末装置200に送信する。
これにより、本実施形態における携帯端末装置100及び鍵交換システム1は、例えば、携帯端末装置100のユーザが知らない人物などの知る必要のない不要な情報を知り得てしまうことなく、携帯端末装置200が必要とする公開鍵を送信することができる。つまり、本実施形態における携帯端末装置100は、携帯端末装置200との間で、不要な情報を開示せずに、互いに公開鍵を送信することができる。
また、本実施形態における携帯端末装置100は、携帯端末装置200が保有していないメールアドレスのハッシュ値を取得して、送信鍵を決定するので、携帯端末装置200が保有しているメールアドレスのハッシュ値を取得する場合に比べて、送信鍵を決定するための処理量、及び携帯端末装置200と間で通信する情報量を低減することができる。
【0078】
また、本実施形態では、制御部50は、鍵集合記憶部42に記憶されているメールアドレスをハッシュ関数に基づいてハッシュ値(第1変換情報)に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として鍵保有連絡先記憶部45に記憶させる。制御部50は、取得したハッシュ値(第2変換情報)の集合のうち、鍵保有連絡先記憶部45が記憶しているハッシュ値(第2変換情報)と一致するハッシュ値(第2変換情報)を抽出する。さらに、制御部50は、鍵集合記憶部42に記憶されている保有鍵情報の集合(鍵集合)のうちから、抽出したハッシュ値(第2変換情報)を含む保有鍵情報を、決定した送信鍵を含む保有鍵情報として抽出する。そして、制御部50は、抽出した当該保有鍵情報を携帯端末装置200に送信する。
これにより、本実施形態における携帯端末装置100は、鍵保有連絡先記憶部45に記憶されている連絡先組情報を利用して、簡易な処理により、送信鍵を決定することができる。
【0079】
また、本実施形態では、携帯端末装置100は、自装置が保有するメールアドレスを記憶する連絡先記憶部41を備えている。そして、制御部50は、連絡先記憶部41が記憶しているメールアドレスの集合(連絡先集合)と、鍵集合記憶部42が記憶している保有鍵情報の集合(鍵集合)とに基づいて、自装置が保有するメールアドレスの集合のうち、自装置が公開鍵を保有していないメールアドレスを抽出する。すなわち、制御部50は、連絡先記憶部41が記憶しているメールアドレスの集合(連絡先集合)のうち、鍵集合記憶部42に公開鍵が記憶されていないメールアドレスを抽出し、抽出した当該メールアドレスの集合(鍵不明連絡先集合)を生成する。制御部50は、生成した鍵不明連絡先集合のメールアドレスをハッシュ関数に基づいてハッシュ値に変換し、変換したハッシュ値(第3変換情報)の集合(ハッシュ化鍵不明連絡先集合)を携帯端末装置200に送信する。制御部50は、送信したハッシュ化鍵不明連絡先集合に応じて携帯端末装置200から出力された公開鍵と、当該公開鍵に対応するメールアドレスとを関連付けて鍵集合記憶部42に記憶させる。
これにより、本実施形態における携帯端末装置100及び鍵交換システム1は、例えば、交換相手が知らない人物などの交換相手が知る必要のない不要な情報を開示してしまうことを防止することができる。すなわち、本実施形態における携帯端末装置100は、不要な情報を開示せずに、携帯端末装置200から自装置が必要とする公開鍵を取得することができる。つまり、本実施形態における携帯端末装置100は、携帯端末装置200との間で、不要な情報を開示せずに、互いに公開鍵を取得することができる。
【0080】
また、本実施形態では、携帯端末装置100は、携帯端末装置100から出力する情報を暗号化する暗号化処理部54と、携帯端末装置200から取得した情報であって、暗号化された情報を復号する復号処理部55とを備えている。
これにより、本実施形態における携帯端末装置100は、携帯端末装置200との間の通信における情報の改竄及び情報の漏えいを低減できるので、鍵交換におけるセキュリティ(安全性)を向上させることができる。
【0081】
なお、本実施形態による鍵交換方法は、鍵保有連絡先記憶部45と、鍵集合記憶部42と、制御部50とを備える携帯端末装置100の鍵交換方法であって、取得ステップと、決定ステップとを含んでいる。取得ステップにおいて、制御部50が、所定のメールアドレスがハッシュ関数に基づいて変換されたハッシュ値(第2変換情報)の集合を、公開鍵を交換する携帯端末装置200から取得する。そして、決定ステップにおいて、制御部50が、取得したハッシュ値(第2変換情報)の集合と、鍵保有連絡先記憶部45が記憶している鍵保有連絡先集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、携帯端末装置100と携帯端末装置200との間で送信する公開鍵を示す送信鍵を決定する。
これにより、本実施形態による鍵交換方法は、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいすることを防止することができるので、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【0082】
次に、第2の実施形態による鍵交換装置及び鍵交換システムについて、図面を参照して説明する。
[第2の実施形態]
上述した第1の実施形態では、鍵交換装置が公開鍵を保有していないメールアドレスのハッシュ値の集合(ハッシュ化鍵不明連絡先集合)を相互に取得し、取得したハッシュ化鍵不明連絡先集合に基づいて、送信鍵を決定する一例について説明した。これに対して、本実施形態では、鍵交換装置が公開鍵を保有しているメールアドレスのハッシュ値の集合(ハッシュ化鍵保有連絡先集合)を相互に取得し、取得したハッシュ化鍵保有連絡先集合に基づいて、送信鍵を決定する一例について説明する。
【0083】
図14は、本実施形態による鍵交換システム1aの一例を示すブロック図である。
この図において、鍵交換システム1aは、携帯端末装置100aと携帯端末装置200aとを備えている。
【0084】
携帯端末装置100aは、携帯端末装置200aと鍵交換を行う鍵交換装置であり、例えば、スマートフォンなどの携帯電話である。また、携帯端末装置200aは、携帯端末装置100aと鍵交換を行う交換先の装置(交換先装置)であり、例えば、携帯端末装置100aと同一の構成を備える携帯電話である。
【0085】
図14において、携帯端末装置100aは、入力部10、出力部20、通信部30、記憶部40a、及び制御部50aを備えている。なお、この図において、
図1に示す構成と同一の構成については同一の符号を付し、その説明を省略する。
【0086】
記憶部40aは、連絡先記憶部41、鍵集合記憶部42、ハッシュ化鍵保有連絡先記憶部61、連絡先組情報記憶部62、受信ハッシュ化鍵保有連絡先記憶部63、鍵要求連絡先記憶部64、受信鍵要求連絡先記憶部65、送信鍵記憶部47、及び受信鍵記憶部48を備えている。
【0087】
ハッシュ化鍵保有連絡先記憶部61は、複数のハッシュ化鍵保有連絡先情報をハッシュ化鍵保有連絡先集合として記憶する。ここで、ハッシュ化鍵保有連絡先情報は、携帯端末装置100aが保有しているメールアドレスの集合のうち、携帯端末装置100aが公開鍵を保有しているメールアドレスを示す鍵保有連絡先情報(第3連絡先情報)のハッシュ値を示す。ここで、ハッシュ化鍵保有連絡先情報(HHL
i)は、下記の式(8)により表現される。
【0088】
HHL
i={h(e)|e∈Fst(KR
i)} ・・・(8)
【0089】
連絡先組情報記憶部62は、連絡先記憶部41が記憶しているメールアドレスと、当該メールアドレスのハッシュ値とを関連付けた組(連絡先組情報)を記憶する。すなわち、連絡先組情報記憶部62は、複数の連絡先組情報を、連絡先組集合として記憶する。なお、連絡先組情報記憶部62に記憶されているデータの構成は、
図4に示す鍵保有連絡先記憶部45と同様である。また、連絡先組集合(LK
i)は、下記の式(9)により表現される。
【0090】
LK
i={(e,h(e))|e∈E
i} ・・・(9)
【0091】
受信ハッシュ化鍵保有連絡先記憶部63は、自装置が受信したハッシュ化鍵保有連絡先集合を記憶する。すなわち、受信ハッシュ化鍵保有連絡先記憶部63は、例えば、携帯端末装置200aから取得した受信ハッシュ化鍵保有連絡先集合(HHL
2)を記憶する。
【0092】
鍵要求連絡先記憶部64は、鍵交換の際に送信する鍵要求連絡先集合を記憶する。ここで、鍵要求連絡先集合は、交換先に公開鍵の送信を要求するメールアドレスのハッシュ値の集合である。
【0093】
受信鍵要求連絡先記憶部65は、鍵交換の際に受信した鍵要求連絡先集合を受信鍵要求連絡先集合として記憶する。ここで、受信鍵要求連絡先集合は、自装置に公開鍵の送信を要求するメールアドレスのハッシュ値の集合であり、例えば、携帯端末装置200aから取得したメールアドレスのハッシュ値の集合である。
【0094】
制御部50aは、例えば、CPUなどを含むプロセッサであり、携帯端末装置100aを統括的に制御する。制御部50aは、例えば、鍵交換を行う際に、鍵集合記憶部42が記憶している鍵集合のメールアドレスをハッシュ関数に基づいて変換したハッシュ値の集合であるハッシュ化鍵保有連絡先集合を生成し、生成したハッシュ化鍵保有連絡先集合を携帯端末装置200aに送信する。制御部50aは、ハッシュ化鍵保有連絡先集合に応じて携帯端末装置200aが生成した送信鍵を要求するメールアドレスのハッシュ値を示す鍵要求連絡先集合を取得し、鍵集合のうちから、取得した鍵要求連絡先集合に応じた鍵情報の集合を送信鍵集合として生成し、生成した送信鍵集合を携帯端末装置200aに送信する。ここで、鍵要求連絡先集合は、ハッシュ化鍵保有連絡先集合のうち、携帯端末装置200aが保有していない公開鍵に対応するメールアドレスのハッシュ値の集合である。
【0095】
また、制御部50aは、鍵交換の際に、例えば、ハッシュ関数に基づいて変換されたメールアドレス(第3連絡先情報)の集合である受信ハッシュ化鍵保有連絡先集合を、上述した第2変換情報の集合として携帯端末装置200aから通信部30の受信部31を介して取得する。ここで、第3連絡先情報は、携帯端末装置200aが保有しているメールアドレスの集合のうち、携帯端末装置200aが公開鍵を保有しているメールアドレスを示す。よって、受信ハッシュ化鍵保有連絡先集合は、携帯端末装置200aが公開鍵を保有しているメールアドレスのハッシュ値の集合である。
【0096】
制御部50aは、取得した受信ハッシュ化鍵保有連絡先集合と、連絡先組情報記憶部62が記憶している連絡先組集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、受信ハッシュ化鍵保有連絡先集合のうちから、鍵集合記憶部42が記憶していないメールアドレス(第4連絡先情報)を抽出する。制御部50aは、抽出したメールアドレス(第4連絡先情報)に対応する公開鍵を送信鍵として決定し、当該メールアドレス(第4連絡先情報)に基づく鍵要求情報を携帯端末装置200aに送信する。ここで、鍵要求情報は、抽出したメールアドレス(第4連絡先情報)に対応する公開鍵を要求する要求情報であり、例えば、抽出したメールアドレス(第4連絡先情報)のハッシュ値である。すなわち、制御部50aは、抽出したメールアドレス(第4連絡先情報)のハッシュ値の集合を、鍵要求連絡先集合として携帯端末装置200aに通信部30の送信部32を介して送信する。
【0097】
また、制御部50aは、送信した鍵要求情報(鍵要求連絡集合)に応じて携帯端末装置200から出力された、鍵要求連絡先集合のメールアドレスに対応する公開鍵を送信鍵として携帯端末装置200aから取得する。すなわち、制御部50aは、携帯端末装置200aから送信鍵の集合を受信鍵集合として取得し、取得した受信鍵集合を鍵集合記憶部42が記憶している鍵集合に追加する。
【0098】
このように、制御部50aは、所定のメールアドレス(連絡先情報)のハッシュ値の集合を、公開鍵を交換する携帯端末装置200aから取得し、取得した当該ハッシュ値の集合と、連絡先組集合と、鍵集合とに基づいて、携帯端末装置200aと交換する公開鍵を示す送信鍵を決定する。なお、本実施形態において、所定のメールアドレスとは、携帯端末装置200aが保有しているメールアドレスの集合(連絡先集合)のうち、携帯端末装置200aが公開鍵を保有しているメールアドレス(第3連絡先情報)である。
また、制御部50aは、ハッシュ算出部52、鍵保有連絡先集合生成部53、暗号化処理部54、復号処理部55、鍵集合更新部57、連絡先組集合生成部71、ハッシュ化鍵保有連絡先集合生成部72、及び鍵要求連絡先集合生成部73、及び送信鍵集合生成部74を備えている。
【0099】
連絡先組集合生成部71は、連絡先記憶部41が記憶している連絡先集合に基づいて、メールアドレスと当該メールアドレスのハッシュ値とを関連付けた連絡先組情報の集合である連絡先組集合を生成する。連絡先組集合生成部71は、例えば、連絡先記憶部41が記憶しているメールアドレスをハッシュ関数に基づいてハッシュ値(第1変換情報)に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として連絡先組情報記憶部62に記憶させる。具体的に、連絡先組集合生成部71は、連絡先記憶部41に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部52に出力する。そして、連絡先組集合生成部71は、ハッシュ算出部52から出力されたハッシュ値と元のメールアドレスとを関連付けて、連絡先組情報記憶部62に順次記憶させる。
【0100】
ハッシュ化鍵保有連絡先集合生成部72は、自装置が保有する公開鍵に対応するメールアドレスのハッシュ値の集合を生成する。ハッシュ化鍵保有連絡先集合生成部72は、例えば、鍵集合記憶部42が記憶する保有鍵情報のメールアドレスをハッシュ算出部52に出力して、ハッシュ算出部52に対してメールアドレスのハッシュ値を算出させる。ハッシュ化鍵保有連絡先集合生成部72は、ハッシュ算出部52に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵保有連絡先集合として生成する。ハッシュ化鍵保有連絡先集合生成部72は、生成したハッシュ化鍵保有連絡先集合をハッシュ化鍵保有連絡先記憶部61に記憶させる。
【0101】
具体的に、ハッシュ化鍵保有連絡先集合生成部72は、鍵集合記憶部42に記憶されているメールアドレスを順次読み出して、読み出したメールアドレスをハッシュ算出部52に出力するとともに、ハッシュ算出部52から出力されたハッシュ値を、ハッシュ化鍵保有連絡先記憶部61に順次記憶させる。
なお、ハッシュ化鍵保有連絡先集合生成部72は、鍵集合記憶部42が記憶している鍵集合と、ハッシュ化鍵保有連絡先記憶部61が記憶する連絡先組情報とに基づいて、ハッシュ算出部52を利用せずに、ハッシュ化鍵保有連絡先集合を生成してもよい。
また、ハッシュ化鍵保有連絡先集合生成部72は、生成したハッシュ化鍵不明連絡先集合を暗号化処理部54に出力し、携帯端末装置200aの公開鍵により暗号化させて、暗号化されたハッシュ化鍵保有連絡先集合を、送信部32を介して、携帯端末装置200aに出力させる。
【0102】
鍵要求連絡先集合生成部73は、携帯端末装置200aから受信した受信ハッシュ化鍵保有連絡先集合を取得する。そして、鍵要求連絡先集合生成部73は、取得した受信ハッシュ化鍵保有連絡先集合と、ハッシュ化鍵保有連絡先記憶部61が記憶しているハッシュ化鍵保有連絡先集合と、連絡先組情報記憶部62が記憶している連絡先組集合とに基づいて、鍵要求連絡先集合を生成する。
【0103】
具体的に、鍵要求連絡先集合生成部73は、受信部31が携帯端末装置200aから受信した、暗号化された携帯端末装置200aにおけるハッシュ化鍵保有連絡先集合を復号処理部55に復号させて、受信ハッシュ化鍵保有連絡先集合として取得する。鍵要求連絡先集合生成部73は、取得した受信ハッシュ化鍵保有連絡先集合を受信ハッシュ化鍵保有連絡先記憶部63に記憶させる。そして、鍵要求連絡先集合生成部73は、取得した受信ハッシュ化鍵保有連絡先集合のうち、自装置のハッシュ化鍵保有連絡先集合にないハッシュ値であって、連絡先組集合にあるハッシュ値を抽出し、抽出したハッシュ値の集合を鍵要求連絡先集合として生成する。
なお、鍵要求連絡先集合生成部73は、自装置のハッシュ化鍵保有連絡先集合の代わりに、鍵集合記憶部42に記憶されている鍵集合を利用して、鍵要求連絡先集合を生成してもよい。この場合、鍵要求連絡先集合生成部73は、取得した受信ハッシュ化鍵保有連絡先集合のハッシュ値と関連付けられて連絡先組情報記憶部62に記憶されているメールアドレスの集合のうち、鍵集合記憶部42に記憶されていないメールアドレス(第4連絡先情報)を抽出し、抽出したメールアドレス(第4連絡先情報)のハッシュ値の集合を鍵要求連絡先集合として生成する。
【0104】
このように、鍵要求連絡先集合生成部73は、取得した受信ハッシュ化鍵保有連絡先集合と、連絡先組情報の集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、携帯端末装置200aが公開鍵を保有するメールアドレス(第3連絡先情報)の集合のうちから、鍵集合記憶部42が記憶していないメールアドレス(第4連絡先情報)を抽出し、抽出したメールアドレスに対応する公開鍵を送信鍵として決定する。
鍵要求連絡先集合生成部73は、生成した鍵要求連絡先集合を鍵要求連絡先記憶部64
に記憶させる。
また、鍵要求連絡先集合生成部73は、生成した鍵要求連絡先集合を暗号化処理部54に出力し、携帯端末装置200aの公開鍵により暗号化させて、暗号化された鍵要求連絡先集合を、送信部32を介して、携帯端末装置200aに出力させる。
【0105】
送信鍵集合生成部74は、携帯端末装置200aから受信した受信鍵要求連絡先集合を取得し、取得した受信鍵要求連絡先集合と、連絡先組情報記憶部62が記憶している連絡先組集合と、鍵集合記憶部42が記憶している鍵集合とに基づいて、送信鍵集合を生成する。具体的に、送信鍵集合生成部74は、通信部30の受信部31が携帯端末装置200aから受信した、暗号化された携帯端末装置200aにおける鍵要求連絡先集合を復号処理部55に復号させて、受信鍵要求連絡先集合として取得する。送信鍵集合生成部74は、取得した受信鍵要求連絡先集合を受信鍵要求連絡先記憶部65に記憶させる。そして、送信鍵集合生成部74は、取得した受信鍵要求連絡先集合と、鍵保有連絡先集合と、鍵集合とに基づいて、送信鍵集合を生成する。
【0106】
すなわち、送信鍵集合生成部74は、取得した受信鍵要求連絡先集合のうち、連絡先組情報記憶部62が記憶しているハッシュ値(第1変換情報)と一致するハッシュ値を抽出するとともに、抽出したハッシュ値と関連付けられて連絡先組情報記憶部62に記憶されているメールアドレスであって、鍵集合記憶部42に記憶されているメールアドレスに対応する公開鍵を、送信鍵として抽出する。具体的に、送信鍵集合生成部74は、鍵集合記憶部42に記憶されている保有鍵情報の集合のうちから、抽出したハッシュ値を含む保有鍵情報の集合を送信鍵集合として送信鍵記憶部47に記憶させる。
また、送信鍵集合生成部74は、送信鍵記憶部47に記憶されている送信鍵集合を暗号化処理部54に出力し、携帯端末装置200aの公開鍵により暗号化させて、暗号化された送信鍵集合を、送信部32を介して、携帯端末装置200aに出力させる。このように、送信鍵集合生成部74は、取得した受信鍵要求連絡先集合に対応する公開鍵を含む保有鍵情報を携帯端末装置200aに送信する。
【0107】
本実施形態における鍵集合更新部57は、携帯端末装置200aに出力した鍵要求連絡先集合に応じて携帯端末装置200aから受信した受信鍵集合を取得する点を除いて、第1の実施形態における鍵集合更新部57と同様であるので、その説明を省略する。
【0108】
次に、本実施形態における鍵交換システム1aの動作について、図面を参照して説明する。
本実施形態では、携帯端末装置100aと携帯端末装置200aとが鍵交換を行う場合の一例について説明する。
図15は、本実施形態における携帯端末装置100a(200a)の動作の一例を示すフローチャートである。また、
図16〜
図24は、本実施形態における鍵交換システム1aの動作の一例を説明する図である。
なお、携帯端末装置100a及び携帯端末装置200aのそれぞれにおいて、
図15に示す処理が実行され、ここでは、携帯端末装置100aの動作を優先して説明する。
また、
図16〜
図24は、携帯端末装置100a及び携帯端末装置200aのそれぞれが保有する保有情報(記憶部40aに記憶される情報)の遷移を示している。
【0109】
図15において、まず、携帯端末装置100aの制御部50aは、入力部10からの処理の開始信号を受信する(ステップS201)。すなわち、携帯端末装置100aのユーザの操作により、鍵交換の処理を開始する指示が入力された場合に、例えば、入力部10が処理の開始信号を出力し、この開始信号に応じて、制御部50aが鍵交換の処理を開始する。なお、ステップS201における携帯端末装置100a及び携帯端末装置200aの保有情報は、
図16に示す状態である。ここで、
図16は、鍵交換を行う前の携帯端末装置100a及び携帯端末装置200aの初期状態を示している。
【0110】
図16に示す例では、初期状態において、携帯端末装置100aが、連絡先集合(E
1={e
2,e
3,e
5})及び鍵集合(KR
1={(e
2,k
2),(e
5,k
5)})を保有し、携帯端末装置200aが、連絡先集合(E
2={e
1,e
3,e
4,e
5})及び鍵集合(KR
2={(e
1,k
1),(e
3,k
3),(e
4,k
4)})を保有している場合である。
【0111】
次に、制御部50aの連絡先組集合生成部71が、連絡先集合に基づいて連絡先組集合を生成する(ステップS202、
図17参照)。すなわち、連絡先組集合生成部71が、連絡先記憶部41が記憶している連絡先集合に含まれるメールアドレスをハッシュ算出部52に出力して、ハッシュ算出部52に対してメールアドレスのハッシュ値を算出させる。そして、連絡先組集合生成部71は、ハッシュ算出部52に算出させたハッシュ値を取得して、取得したハッシュ値と元のメールアドレスとを関連づけた連絡先組情報の集合を連絡先組集合として、連絡先組情報記憶部62に記憶させる。
なお、
図17に示す例では、携帯端末装置100aの連絡先組集合生成部71が、連絡先集合(SG111)から連絡先組集合(SG113)を生成する。また、携帯端末装置200aの連絡先組集合生成部71が、連絡先集合(SG211)から連絡先組集合(SG213)を生成する。
【0112】
また、制御部50aのハッシュ化鍵保有連絡先集合生成部72が、鍵集合に基づいてハッシュ化鍵保有連絡先集合を生成する(ステップS203、
図18参照)。すなわち、ハッシュ化鍵保有連絡先集合生成部72は、鍵集合記憶部42に記憶されている鍵集合に含まれるメールアドレスをハッシュ算出部52に出力して、ハッシュ算出部52に対してメールアドレスのハッシュ値を算出させる。そして、ハッシュ化鍵保有連絡先集合生成部72は、ハッシュ算出部52に算出させたハッシュ値を取得して、取得したハッシュ値の集合をハッシュ化鍵保有連絡先集合として、鍵保有連絡先記憶部45に記憶させる。
なお、
図18に示す例では、携帯端末装置100aのハッシュ化鍵保有連絡先集合生成部72が、鍵集合(SG112)からハッシュ化鍵保有連絡先集合(SG114)を生成する。また、携帯端末装置200aのハッシュ化鍵保有連絡先集合生成部72が、鍵集合(SG212)からハッシュ化鍵保有連絡先集合(SG214)を生成する。
【0113】
次に、制御部50aの暗号化処理部54が、ハッシュ化鍵保有連絡先集合を暗号化し(ステップS204)、送信部32が、
図19に示すように、暗号化したハッシュ化鍵保有連絡先集合(EHHL
1=Enc(k
2,HHL
1))を交換先装置(例えば、携帯端末装置200a)に送信する(ステップS205)。なお、送信部32は、ハッシュ化鍵保有連絡先集合が空集合である場合には、ハッシュ化鍵保有連絡先集合(HHL
1)が空集合であることを示す情報を交換先装置(例えば、携帯端末装置200a)に送信してもよい。
【0114】
また、受信部31が、
図19に示すように、暗号化された交換先のハッシュ化鍵保有連絡先集合(EHHL
2=Enc(k
1,HHL
2))を受信し(ステップS206)、制御部50aの復号処理部55が、暗号化された交換先のハッシュ化鍵保有連絡先集合を復号する(ステップS207)。そして、制御部50aの鍵要求連絡先集合生成部73が、復号処理部55から交換先のハッシュ化鍵保有連絡先集合を取得し、受信ハッシュ化鍵保有連絡先集合として受信ハッシュ化鍵保有連絡先記憶部63に記憶させる。
【0115】
なお、
図19に示す例では、携帯端末装置100aが、暗号化したハッシュ化鍵保有連絡先集合(EHHL
1)を送信するとともに、携帯端末装置200aから暗号化されたハッシュ化鍵保有連絡先集合(EHHL
2)を受信する。その結果、携帯端末装置100aは、受信した暗号化されたハッシュ化鍵保有連絡先集合(EHHL
2)を復号したハッシュ化鍵保有連絡先集合(HHL
2)を受信ハッシュ化鍵保有連絡先集合(SG115)として保有する。また、携帯端末装置200aが、暗号化したハッシュ化鍵保有連絡先集合(EHHL
2)を送信するとともに、携帯端末装置100aから暗号化されたハッシュ化鍵保有連絡先集合(EHHL
1)を受信する。その結果、携帯端末装置200aは、受信した暗号化されたハッシュ化鍵保有連絡先集合(EHHL
1)を復号したハッシュ化鍵保有連絡先集合(HHL
1)を受信ハッシュ化鍵保有連絡先集合(SG215)として保有する。
【0116】
次に、鍵要求連絡先集合生成部73が、受信ハッシュ化鍵保有連絡先集合と、連絡先組集合と、ハッシュ化鍵保有連絡先集合とに基づいて鍵要求連絡先集合を生成する(ステップS208、
図20参照)。鍵要求連絡先集合生成部73は、
図20に示すように、取得した受信ハッシュ化鍵保有連絡先集合のうち、自装置のハッシュ化鍵保有連絡先集合にないハッシュ値であって、連絡先組集合にあるハッシュ値を抽出し、抽出したハッシュ値の集合を鍵要求連絡先集合として生成する。鍵要求連絡先集合生成部73は、生成した鍵要求連絡先集合を鍵要求連絡先記憶部64に記憶させる。
なお、
図20に示す例では、携帯端末装置100aの鍵要求連絡先集合生成部73が、連絡先組集合(SG113)と、ハッシュ化鍵保有連絡先集合(SG114)と、受信ハッシュ化鍵保有連絡先集合(SG115)とに基づいて、鍵要求連絡先集合(SG116)を生成する。また、携帯端末装置200aの鍵要求連絡先集合生成部73が、連絡先組集合(SG213)と、ハッシュ化鍵保有連絡先集合(SG214)と、受信ハッシュ化鍵保有連絡先集合(SG215)とに基づいて、鍵要求連絡先集合(SG216)を生成する。
【0117】
次に、暗号化処理部54が、鍵要求連絡先集合を暗号化し(ステップS209)、送信部32が、
図21に示すように、暗号化した鍵要求連絡先集合(EHRL
1=Enc(k
2,HRL
1))を交換先装置(例えば、携帯端末装置200a)に送信する(ステップS210)。なお、送信部32は、鍵要求連絡先集合が空集合である場合には、鍵要求連絡先集合(HRL
1)が空集合であることを示す情報を交換先装置(例えば、携帯端末装置200a)に送信してもよい。
【0118】
また、受信部31が、
図21に示すように、暗号化された交換先の鍵要求連絡先集合(EHRL
2=Enc(k
1,HRL
2))を受信し(ステップS211)、復号処理部55が、暗号化された交換先の鍵要求連絡先集合を復号する(ステップS212)。そして、制御部50aの送信鍵集合生成部74が、復号処理部55から交換先の鍵要求連絡先集合を取得し、受信鍵要求連絡先集合として受信鍵要求連絡先記憶部65に記憶させる。
【0119】
なお、
図21に示す例では、携帯端末装置100aが、暗号化した鍵要求連絡先集合(EHRL
1)を送信するとともに、携帯端末装置200aから暗号化された鍵要求連絡先集合(EHRL
2)を受信する。その結果、携帯端末装置100aは、受信した暗号化された鍵要求連絡先集合(EHRL
2)を復号した鍵要求連絡先集合(HRL
2)を受信鍵要求連絡先集合(SG117)として保有する。また、携帯端末装置200aが、暗号化した鍵要求連絡先集合(EHRL
2)を送信するとともに、携帯端末装置100aから暗号化された鍵要求連絡先集合(EHRL
1)を受信する。その結果、携帯端末装置100aは、受信した暗号化された鍵要求連絡先集合(EHRL
1)を復号した鍵要求連絡先集合(HRL
1)を受信鍵要求連絡先集合(SG217)として保有する。
【0120】
次に、送信鍵集合生成部74が、受信鍵要求連絡先集合と、連絡先組集合と、鍵集合とに基づいて送信鍵集合を生成する(ステップS213、
図22参照)。送信鍵集合生成部74は、
図22に示すように、取得した受信鍵要求連絡先集合のハッシュ値に対応するメールアドレスを連絡先組集合から抽出し、抽出したメールアドレスに対応する鍵情報を鍵集合から抽出し、抽出した鍵情報の集合を送信鍵集合として生成する。送信鍵集合生成部74は、生成した送信鍵集合を送信鍵記憶部47に記憶させる。
なお、
図22に示す例では、携帯端末装置100aの送信鍵集合生成部74が、鍵集合(SG112)と、連絡先組集合(SG113)と、受信鍵要求連絡先集合(SG117)とに基づいて、送信鍵集合(SG118)を生成する。また、携帯端末装置200aの送信鍵集合生成部74が、鍵集合(SG212)と、連絡先組集合(SG213)と、受信鍵要求連絡先集合(SG217)とに基づいて、送信鍵集合(SG218)を生成する。
【0121】
続く、ステップS214からステップS219までの処理は、
図15のステップS110からステップS115までの処理と同様であるので、ここではその説明を省略する。
なお、
図23は、ステップS214からステップS217における状態を示している。
図23に示す例では、携帯端末装置100aが、暗号化した送信鍵集合(ESKR
1)を送信するとともに、携帯端末装置200aから暗号化された送信鍵集合(ESKR
2)を受信する。その結果、携帯端末装置100aは、受信した暗号化された送信鍵集合(ESKR
2)を復号した送信鍵集合(SKR
2)を受信鍵集合(SG119)として保有する。また、携帯端末装置200aが、暗号化した送信鍵集合(ESKR
2)を送信するとともに、携帯端末装置100aから暗号化された送信鍵集合(ESKR
1)を受信する。その結果、携帯端末装置200aは、受信した暗号化された送信鍵集合(ESKR
1)を復号した送信鍵集合(SKR
1)を受信鍵集合(SG219)として保有する。
【0122】
また、
図24は、ステップS218における状態を示している。
図24に示す例では、携帯端末装置100aの鍵集合更新部57が、鍵集合に受信鍵集合(SG119)を追加して更新後の鍵集合(SG120)を生成する。また、携帯端末装置200aの鍵集合更新部57が、鍵集合に受信鍵集合(SG219)を追加して更新後の鍵集合(SG220)を生成する。
【0123】
以上説明したように、本実施形態では、所定のメールアドレスは、携帯端末装置200aが保有しているメールアドレスの集合のうち、携帯端末装置200aが公開鍵を保有しているメールアドレス(第3連絡先情報)である。制御部50aは、ハッシュ関数に基づいて変換されたメールアドレス(第3連絡先情報)の集合を、受信ハッシュ化鍵保有連絡先集合(第2変換情報の集合)として携帯端末装置200aから取得する。制御部50aは、取得した受信ハッシュ化鍵保有連絡先集合と、連絡先組情報記憶部62が記憶している連絡先組情報の集合と、鍵集合記憶部42が記憶している保有鍵情報の集合(鍵集合)とに基づいて、受信ハッシュ化鍵保有連絡先集合のうちから、鍵集合記憶部42が記憶していないメールアドレス(第4連絡先情報)を抽出し、抽出したメールアドレスに対応する公開鍵を送信鍵として決定する。制御部50aは、抽出したメールアドレスに基づく鍵要求情報であって、抽出したメールアドレスに対応する公開鍵を要求する鍵要求連絡先集合を携帯端末装置200aに送信する。そして、制御部50aは、鍵要求連絡先集合に応じて携帯端末装置200aから出力された、鍵集合記憶部42が記憶していないメールアドレス(第4連絡先情報)に対応する公開鍵を送信鍵として携帯端末装置200aから取得する。
【0124】
これにより、本実施形態における携帯端末装置100a及び鍵交換システム1aは、例えば、自装置が公開鍵を保有するメールアドレスのハッシュ値を送信するので、携帯端末装置200aのユーザが知らない人物などの知る必要のない不要な情報を開示してしまうことなく、自装置が必要とする公開鍵を取得することができる。すなわち、本実施形態における携帯端末装置100a及び鍵交換システム1aは、携帯端末装置200aとの間において、互いに保有する連絡先情報(メールアドレス)を開示せずに、送信鍵を決定することができる。そのため、本実施形態における携帯端末装置100a及び鍵交換システム1aは、鍵交換を行う際に、プライバシーに関する不要な情報が漏えいすることを防止することができる。よって、本実施形態における携帯端末装置100a及び鍵交換システム1aは、鍵交換においてプライバシーに関する情報の秘匿性を高めることができる。
【0125】
また、本実施形態では、制御部50aは、連絡先記憶部41が記憶しているメールアドレスをハッシュ関数に基づいてハッシュ値に変換し、変換したハッシュ値と当該メールアドレスとを関連付けて、連絡先組情報として連絡先組情報記憶部62に記憶させる。また、制御部50aは、連絡先組情報記憶部62が記憶しているメールアドレスの集合のうち、鍵集合記憶部42に記憶されているメールアドレスに関連付けられているハッシュ値の集合(ハッシュ化鍵保有連絡先集合)を携帯端末装置200aに送信する。制御部50aは、送信したハッシュ化鍵保有連絡先集合に応じて携帯端末装置200aから出力された要求情報であって、ハッシュ化鍵保有連絡先集合のうち、交換先装置が保有していない公開鍵を送信鍵として要求する要求情報(鍵要求連絡先情報)を取得する。そして、制御部50aは、取得した鍵要求連絡先情報に基づいて、鍵集合記憶部42に記憶されている公開鍵のうちから、携帯端末装置200aに送信する送信鍵を抽出し、抽出した当該送信鍵に対応する鍵情報の集合(送信鍵集合)を送信する。
これにより、本実施形態における携帯端末装置100a及び鍵交換システム1aは、例えば、携帯端末装置100aのユーザにとって知る必要のない不要な情報を知り得てしまうことなく、携帯端末装置200aが必要とする送信鍵を送信することができる。よって、本実施形態における携帯端末装置100aは、携帯端末装置200aとの間で、不要な情報を開示せずに、互いに公開鍵を送信することができる。
【0126】
なお、本発明は、上記の各実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で変更可能である。
例えば、上記の各実施形態は、単独で実施する場合について説明したが、上記の各実施形態を組み合わせて実施してもよい。また、携帯端末装置100(100a)は、鍵交換の際に、携帯端末装置100(100a)が必要する送信鍵の送信と、自装置が必要とする送信鍵の取得との両方を行う形態を説明したが、いずれか一方を行う形態であってもよい。
また、上記の各実施形態において、鍵交換を行う公開鍵は、一例としてRSA暗号の公開鍵である場合について説明したが、他の公開鍵暗号方式の公開鍵であってもよい。
【0127】
また、上記の各実施形態において、通信部30は、NFCインターフェースである一例について説明したが、これに限定されるものではなく、他のインターフェースを利用して通信してもよい。また、鍵交換システム1(1a)は、携帯端末装置100(100a)と携帯端末装置200(200a)とが、NFCインターフェースを利用して直接鍵交換を行う場合について説明したが、ネットワークを介して鍵交換を行ってもよい。
【0128】
また、上記の各実施形態において、鍵交換装置の一例として、スマートフォンなどの携帯電話である携帯端末装置100(200)を用いる場合について説明したが、例えば、PDA(Personal Digital Assistant)やパーソナルコンピュータなどの他の端末装置を鍵交換装置として利用してもよい。
また、上記の各実施形態において、連絡先情報が、メールアドレスである場合について説明したが、例えば、電話番号、氏名など、情報を送信する相手を識別する識別情報であれば、他の情報であってもよい。
【0129】
また、上記の各実施形態において、連絡先記憶部41の連絡先情報は、メールソフトのアドレス帳を利用する場合について説明したが、これに限定されるものではない。また、連絡先記憶部41が記憶するメールアドレスを、個人用、仕事用などの複数のグループに分類して、制御部50(50a)は、鍵交換の際に、複数のグループのうちから鍵交換を行うメールアドレスのグループを選択するような構成にしてもよい。
【0130】
また、上記の各実施形態において、出力部20は、液晶ディスプレイである場合について説明したが、これに限定されるものではなく、出力部20は、例えば、外部の表示装置に、表示情報を出力する出力インターフェース部であってもよい。また、出力部20は、鍵交換の処理が完了したことを示す情報を音により出力してもよい。
また、上記の各実施形態において、送信鍵集合は、メールアドレスと公開鍵とを関連付けた鍵情報の集合として、携帯端末装置100(100a)と携帯端末装置200(200a)との間で送信される場合について説明したが、これに限定されるものではない。例えば、送信される公開鍵の順番などによりメールアドレスとの対応が可能である場合には、送信鍵集合は、公開鍵の集合であってもよい。
【0131】
なお、本発明における携帯端末装置100(100a)が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述した携帯端末装置100(100a)が備える各構成における処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD−ROM等の非一過性の記録媒体であってもよい。
【0132】
また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に携帯端末装置100(100a)が備える各構成で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【0133】
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。