(57)【要約】      （修正有）【課題】署名用公開鍵証明書を使用し、データを暗号化するための鍵を安全に交換することができる鍵交換システムを提供する。【解決手段】鍵交換システムにおいて、第１端末は、鍵交換用公開鍵及び鍵交換用秘密鍵を生成し、鍵交換用公開鍵を署名用秘密鍵で署名して、電子署名、鍵交換用公開鍵及び署名用公開鍵証明書を含むデータトークンを生成し、第２端末に送信する。第２端末は、受信したデータトークンに含まれる電子署名及び署名用公開鍵証明書に基づいて検証を行う。問題がなければ、生成した共通鍵により送信データを暗号化し、鍵交換用公開鍵により共通鍵を暗号化する。そして、第２端末は、暗号化された共通鍵と、暗号化された送信データとを含む暗号情報を生成し、第１端末へ送信する。第１端末は、暗号情報に含まれる暗号化された共通鍵を鍵交換用秘密鍵により復号し、暗号情報に含まれる暗号化された送信データを共通鍵で復号する。【選択図】図４
2007006319.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して通信可能に接続された第１端末及び第２端末から構成される鍵交換システムにおいて、
前記第１端末は、署名用公開鍵、署名用秘密鍵及び前記署名用公開鍵を証明する署名用公開鍵証明書を有しており、
鍵交換用公開鍵及び鍵交換用秘密鍵を生成する鍵交換用鍵生成手段と、
前記署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、電子署名、前記鍵交換用公開鍵及び前記署名用公開鍵証明書を含むデータトークンを生成するデータトークン生成手段と、
前記データトークンを、前記第２端末に送信するデータトークン送信手段と、
前記第２端末から、当該第２端末が生成した共通鍵で暗号化された送信データと、前記鍵交換用公開鍵で暗号化された前記共通鍵とを含む暗号情報を受信する暗号情報受信手段と、
前記暗号情報に含まれる暗号化された前記共通鍵を、前記鍵交換用秘密鍵により復号する共通鍵復号手段と、
前記暗号情報に含まれる暗号化された前記送信データを、復号した前記共通鍵により復号する送信データ復号手段と、を備え、
前記第２端末は、
前記第１端末から、前記データトークンを受信するデータトークン受信手段と、
前記データトークンから、前記鍵交換用公開鍵を取得する鍵交換用公開鍵取得手段と、
前記データトークンに含まれる前記電子署名及び前記署名用公開鍵証明書に基づいて、前記第１端末による署名の検証を行う検証手段と、
前記検証に問題がなければ、共通鍵を生成する共通鍵生成手段と、
前記第１端末に送信する送信データを、生成した前記共通鍵により暗号化する送信データ暗号化手段と、
前記共通鍵を、取得した前記鍵交換用公開鍵により暗号化する共通鍵暗号化手段と、
前記送信データ暗号化手段が暗号化した送信データと、前記共通鍵暗号化手段が暗号化した共通鍵とを有する暗号情報を生成し、当該暗号情報を前記第１端末へ送信する暗号情報送信手段と、を備えることを特徴とする鍵交換システム。
【請求項２】
前記第１端末は、前記鍵交換用公開鍵を所有する所有者に関する鍵所有者情報を有しており、
前記データトークンは、前記鍵所有者情報と、前記鍵交換用公開鍵と、前記署名用秘密鍵による電子署名と、前記署名用公開鍵証明書から構成されるものであって、
前記第２端末は、
前記データトークンに含まれる前記鍵所有者情報に基づいて、前記第１端末を使用する利用者を識別する利用者識別情報を特定する利用者識別情報特定手段と、
前記利用者識別情報に対応付けて、当該データトークンを記憶するデータトークン記憶手段と、をさらに備えることを特徴とする請求項１に記載の鍵交換システム。
【請求項３】
前記第１端末は、
複数の前記署名用秘密鍵を有する場合、複数の前記署名用秘密鍵の中の１つを選択させるための選択画面を生成し、当該選択画面を表示する選択画面表示手段をさらに備え、
前記データトークン生成手段は、前記選択画面で選択された署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、前記データトークンを生成することを特徴とする請求項１又は２のいずれか一項に記載の鍵交換システム。
【請求項４】
ネットワークを介して他の端末装置と通信可能な端末装置であって、
署名用公開鍵、署名用秘密鍵及び前記署名用公開鍵を証明する署名用公開鍵証明書を有しており、
鍵交換用公開鍵及び鍵交換用秘密鍵を生成する鍵交換用鍵生成手段と、
前記署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、電子署名、前記鍵交換用公開鍵及び前記署名用公開鍵証明書を含むデータトークンを生成するデータトークン生成手段と、
前記データトークンを、前記第２端末に送信するデータトークン送信手段と、
前記他の端末装置から、当該他の端末装置が生成した共通鍵で暗号化された送信データと、前記鍵交換用公開鍵で暗号化された前記共通鍵とを含む暗号情報を受信する暗号情報受信手段と、
前記暗号情報に含まれる暗号化された前記共通鍵を、前記鍵交換用秘密鍵により復号する共通鍵復号手段と、
前記暗号情報に含まれる暗号化された前記送信データを、復号した前記共通鍵により復号する送信データ復号手段と、を備えることを特徴とする端末装置。
【請求項５】
前記端末装置は、前記鍵交換用公開鍵を所有する所有者に関する鍵所有者情報を有しており、
前記データトークンは、前記鍵所有者情報と、前記鍵交換用公開鍵と、前記署名用秘密鍵による電子署名と、前記署名用公開鍵証明書から構成されることを特徴とする請求項４に記載の端末装置。
【請求項６】
複数の前記署名用秘密鍵を有する場合、複数の前記署名用秘密鍵の中の１つを選択させるための選択画面を生成し、当該選択画面を表示する選択画面表示手段をさらに備え、
前記データトークン生成手段は、前記選択画面で選択された署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、前記データトークンを生成することを特徴とする請求項４又は５に記載の端末装置。
【請求項７】
ネットワークを介して他の端末装置と通信可能なコンピュータにより実行されるプログラムであって、
署名用公開鍵、署名用秘密鍵及び前記署名用公開鍵を証明する署名用公開鍵証明書を有しており、
鍵交換用公開鍵及び鍵交換用秘密鍵を生成する鍵交換用鍵生成手段、
前記署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、電子署名、前記鍵交換用公開鍵及び前記署名用公開鍵証明書を含むデータトークンを生成するデータトークン生成手段、
前記データトークンを、前記第２端末に送信するデータトークン送信手段、
前記他の端末装置から、当該他の端末装置が生成した共通鍵で暗号化された送信データと、前記鍵交換用公開鍵で暗号化された前記共通鍵とを含む暗号情報を受信する暗号情報受信手段、
前記暗号情報に含まれる暗号化された前記共通鍵を、前記鍵交換用秘密鍵により復号する共通鍵復号手段、
前記暗号情報に含まれる暗号化された前記送信データを、復号した前記共通鍵により復号する送信データ復号手段、として前記コンピュータを機能させることを特徴とするプログラム。
【請求項８】
前記プログラムは、前記鍵交換用公開鍵を所有する所有者に関する鍵所有者情報を有しており、
前記データトークンは、前記鍵所有者情報と、前記鍵交換用公開鍵と、前記署名用秘密鍵による電子署名と、前記署名用公開鍵証明書から構成されることを特徴とする請求項７に記載のプログラム。
【請求項９】
複数の前記署名用秘密鍵を有する場合、複数の前記署名用秘密鍵の中の１つを選択させるための選択画面を生成し、当該選択画面を表示する選択画面表示手段としてさらに前記コンピュータを機能させ、
前記データトークン生成手段は、前記選択画面で選択された署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、前記データトークンを生成することを特徴とする請求項７又は８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、安全に暗号化用の鍵を交換する技術に関する。
【背景技術】
【０００２】
インターネット等の安全でない通信経路上で安全に情報交換を行う際に満たされるべきセキュリティ要件として、「情報の秘匿」、「改ざんの防止」、「否認防止」、「通信相手の認証」等が挙げられる。これらの要件のうち、「情報の秘匿」は、データの暗号化により実現することができる。また、「改ざんの防止」、「否認防止」及び「通信相手の認証」は、公開鍵暗号方式を用いた電子署名により実現することができる。なお、データの暗号化に関しては、通信を行う当事者間でデータを暗号化するための鍵（以下、「共通鍵」と呼ぶ。）を安全に共有する必要があるため、公開鍵暗号方式を用いて共通鍵を交換する方式が広く使用されている。
【０００３】
このように、セキュリティ要件を満たすためには、いずれの場合においても、公開鍵暗号方式で使用される公開鍵の出自が保障されることが重要である。よって、公開鍵暗号インフラ（ＰＫＩ；Public key Infrastructure）と公開鍵証明書（以下、「証明書」とも呼ぶ。）が使用されている。
【０００４】
しかし、公開鍵暗号方式を用いた電子署名と、公開鍵暗号方式を用いた共通鍵の交換とでは、公開鍵を安全に管理するためのセキュリティ要件が異なる。例えば、秘密鍵が破損・紛失した際の扱いについて、それが鍵交換用秘密鍵であった場合、過去に暗号化されたデータを復号するためには鍵の回復が必要となるため、あらかじめ鍵のバックアップを考慮しておく必要があるが、それが署名用秘密鍵であった場合、鍵のバックアップは秘密鍵の複製を意味し、電子署名の否認防止効果の阻害が考えられるため、鍵のバックアップは望ましくない。そのため、１つの公開鍵を２つの異なる用途に流用するのではなく、電子署名には署名用の公開鍵を、共通鍵の交換には鍵交換用の公開鍵を、それぞれ別々に用意することが望ましい。この場合、通常、それぞれの用途に使用する公開鍵に対して１枚ずつ公開鍵証明書が発行される。即ち、署名用の公開鍵には署名用公開鍵証明書が、鍵交換用の公開鍵には鍵交換用公開鍵証明書がそれぞれ発行される。
【０００５】
署名用公開鍵は、電子署名法の施行以来、個人用に発行された証明書が普及しつつあり、これを署名用公開鍵証明書として利用することができる。なお、このような証明書は、電子署名のために使用されるものであり、共通鍵の交換のために使用することは望ましくない。また、証明書を発行した認証局によって、共通鍵の交換のために使用することを禁じている場合も多い。そのため、鍵交換用公開鍵については、利用者が別途費用を負担して鍵交換用公開鍵証明書を入手する必要がある。しかし、一般利用者による鍵交換用公開鍵証明書の入手及び管理の煩雑性は、長年ＰＫＩの普及の阻害要因になってきた。そのため、全ての利用者が個人で鍵交換用公開鍵証明書を入手することは現実的ではない。
【０００６】
一方、この問題を解消するため、アプリケーションで独自の鍵交換方式を開発することも考えられる。しかし、相互運用を実現することが困難であり、業界標準であるＰＫＩのメリットを享受できなくなる点で問題が多い。
【０００７】
【非特許文献１】R． Housley， et． al．， 「インターネットＸ．５０９におけるＰＫＩ認証とＣＲＬの概略」（Internet X．509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile）， [online]， April 2002， The Internet Society， Internet <URL : http://www．ietf．org/rfc/rfc3280．txt?number=3280>
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、以上の点に鑑みてなされたものであり、署名用公開鍵証明書を使用して、データを暗号化するための鍵を安全に交換することができる鍵交換システムを提供することを課題とする。
【課題を解決するための手段】
【０００９】
本発明の１つの観点では、ネットワークを介して通信可能に接続された第１端末及び第２端末から構成される鍵交換システムにおいて、前記第１端末は、署名用公開鍵、署名用秘密鍵及び前記署名用公開鍵を証明する署名用公開鍵証明書を有しており、鍵交換用公開鍵及び鍵交換用秘密鍵を生成する鍵交換用鍵生成手段と、前記署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、電子署名、前記鍵交換用公開鍵及び前記署名用公開鍵証明書を含むデータトークンを生成するデータトークン生成手段と、前記データトークンを、前記第２端末に送信するデータトークン送信手段と、前記第２端末から、当該第２端末が生成した共通鍵で暗号化された送信データと、前記鍵交換用公開鍵で暗号化された前記共通鍵とを含む暗号情報を受信する暗号情報受信手段と、前記暗号情報に含まれる暗号化された前記共通鍵を、前記鍵交換用秘密鍵により復号する共通鍵復号手段と、前記暗号情報に含まれる暗号化された前記送信データを、復号した前記共通鍵により復号する送信データ復号手段と、を備え、前記第２端末は、前記第１端末から、前記データトークンを受信するデータトークン受信手段と、前記データトークンから、前記鍵交換用公開鍵を取得する鍵交換用公開鍵取得手段と、前記データトークンに含まれる前記電子署名及び前記署名用公開鍵証明書に基づいて、前記第１端末による署名の検証を行う検証手段と、前記検証に問題がなければ、共通鍵を生成する共通鍵生成手段と、前記第１端末に送信する送信データを、生成した前記共通鍵により暗号化する送信データ暗号化手段と、前記共通鍵を、取得した前記鍵交換用公開鍵により暗号化する共通鍵暗号化手段と、前記送信データ暗号化手段が暗号化した送信データと、前記共通鍵暗号化手段が暗号化した共通鍵とを有する暗号情報を生成し、当該暗号情報を前記第１端末へ送信する暗号情報送信手段と、を備える。
【００１０】
上記のように構成された鍵交換システムは、第１端末及び第２端末から構成されている。第１端末及び第２端末は、各利用者が使用しており、ネットワークを介して他の利用者が使用する端末とメールやデータの送受信が可能なパソコン、ＰＤＡ（Personal Digital Assistants）、携帯電話等である。第１端末は、まず、鍵交換用公開鍵及び鍵交換用秘密鍵の鍵ペアを生成する。さらに、第１端末は、生成した鍵交換用公開鍵を署名用秘密鍵で署名することにより、電子署名、鍵交換用公開鍵及び署名用公開鍵証明書を含むデータトークンを生成する。そして、第１端末は、生成したデータトークンを第２端末へ送信する。第２端末は、第１端末から受信したデータトークンに含まれる鍵交換用公開鍵を取得する。また、第２端末は、第１端末から受信したデータトークンに含まれる電子署名及び署名用公開鍵証明書に基づいて検証を行うことにより、鍵交換用公開鍵が改ざんされているか否か及び鍵交換用公開鍵が確かに第１端末によって生成されているか否かを確認する。検証結果に問題がなければ、第２端末は、第１端末とのデータ交換の際、データを暗号化及び復号するために使用する共通鍵を生成する。そして、第２端末は、生成した共通鍵により、第１端末に送信する予定の送信データを暗号化する。このとき暗号化される送信データは、電子データであれば任意のデータとすることができる。さらに、第２端末は、データトークンから取得した鍵交換用公開鍵により、送信データを暗号化する際に使用した共通鍵を暗号化する。そして、第２端末は、鍵交換用公開鍵により暗号化された共通鍵と、共通鍵により暗号化された送信データとを含む暗号情報を生成し、第１端末へ送信する。第１端末は、暗号情報に含まれる暗号化された共通鍵を、自身が生成した鍵交換用秘密鍵により復号する。さらに、第１端末は、暗号情報に含まれる暗号化された送信データを、復号した共通鍵で復号する。これによれば、署名用公開鍵証明書しか保有しない第１端末が、データ暗号化用の鍵を、安全に他の端末と交換することができる。
【００１１】
上記鍵交換システムの一態様では、前記第１端末は、前記鍵交換用公開鍵を所有する所有者に関する鍵所有者情報を有しており、前記データトークンは、前記鍵所有者情報と、前記鍵交換用公開鍵と、前記署名用秘密鍵による電子署名と、前記署名用公開鍵証明書から構成されるものであって、前記第２端末は、前記データトークンに含まれる前記鍵所有者情報に基づいて、前記第１端末を使用する利用者を識別する利用者識別情報を特定する利用者識別情報特定手段と、前記利用者識別情報に対応付けて、当該データトークンを記憶するデータトークン記憶手段と、をさらに備える。
【００１２】
上記のように構成された鍵交換システムにおいて、データトークンは、鍵所有者情報と、鍵交換用公開鍵と、電子署名と、署名用公開鍵証明書から構成される。第２端末は、第１端末から受信したデータトークンから鍵所有者情報を取得する。さらに、第２端末は、取得した鍵所有者情報に含まれる個人情報等を利用して、第１端末を使用する利用者を識別する利用者識別情報を特定する。そして、第２端末は、特定した利用者識別情報に対応付けて、データトークンを自己の読み書き可能な記憶領域に保存する。これによれば、第２端末は、最初にデータトークンを受信した以降、第１端末との通信時に当該データトークンに含まれる鍵交換用公開鍵を安全に使用することができる。
【００１３】
上記鍵交換システムの他の一態様では、前記第１端末は、複数の前記署名用秘密鍵を有する場合、複数の前記署名用秘密鍵の中の１つを選択させるための選択画面を生成し、当該選択画面を表示する選択画面表示手段をさらに備え、前記データトークン生成手段は、前記選択画面で選択された署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、前記データトークンを生成する。これによれば、第１端末に複数の署名用秘密鍵が保有されている場合であっても、利用者は自由に、データトークンを生成するために使用する署名用秘密鍵を指定することができる。
【００１４】
本発明の別の観点では、ネットワークを介して他の端末装置と通信可能な端末装置であって、署名用公開鍵、署名用秘密鍵及び前記署名用公開鍵を証明する署名用公開鍵証明書を有しており、鍵交換用公開鍵及び鍵交換用秘密鍵を生成する鍵交換用鍵生成手段と、前記署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、電子署名、前記鍵交換用公開鍵及び前記署名用公開鍵証明書を含むデータトークンを生成するデータトークン生成手段と、前記データトークンを、前記第２端末に送信するデータトークン送信手段と、前記他の端末装置から、当該他の端末装置が生成した共通鍵で暗号化された送信データと、前記鍵交換用公開鍵で暗号化された前記共通鍵とを含む暗号情報を受信する暗号情報受信手段と、前記暗号情報に含まれる暗号化された前記共通鍵を、前記鍵交換用秘密鍵により復号する共通鍵復号手段と、前記暗号情報に含まれる暗号化された前記送信データを、復号した前記共通鍵により復号する送信データ復号手段と、を備える。これによれば、署名用公開鍵証明書しか保有しない端末装置が、データ暗号化用の鍵を、安全に他の端末と交換することができる。
【００１５】
上記端末装置の一態様では、前記端末装置は、前記鍵交換用公開鍵を所有する所有者に関する鍵所有者情報を有しており、前記データトークンは、前記鍵所有者情報と、前記鍵交換用公開鍵と、前記署名用秘密鍵による電子署名と、前記署名用公開鍵証明書から構成される。これによれば、他の端末装置は、鍵所有者情報に対応付けてデータトークンを記憶することが可能となる。よって、他の端末装置は、最初にデータトークンを受信した以降、端末装置との通信時に当該データトークンに含まれる鍵交換用公開鍵を安全に使用することができる。
【００１６】
上記端末装置の他の一態様では、複数の前記署名用秘密鍵を有する場合、複数の前記署名用秘密鍵の中の１つを選択させるための選択画面を生成し、当該選択画面を表示する選択画面表示手段をさらに備え、前記データトークン生成手段は、前記選択画面で選択された署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、前記データトークンを生成する。これによれば、端末装置に複数の署名用秘密鍵が保有されている場合であっても、利用者は自由に、データトークンを生成するために使用する署名用秘密鍵を指定することができる。
【００１７】
本発明のさらに別の観点では、ネットワークを介して他の端末装置と通信可能なコンピュータにより実行されるプログラムであって、署名用公開鍵、署名用秘密鍵及び前記署名用公開鍵を証明する署名用公開鍵証明書を有しており、鍵交換用公開鍵及び鍵交換用秘密鍵を生成する鍵交換用鍵生成手段、前記署名用秘密鍵により前記鍵交換用公開鍵に署名を行うことで、電子署名、前記鍵交換用公開鍵及び前記署名用公開鍵証明書を含むデータトークンを生成するデータトークン生成手段、前記データトークンを、前記第２端末に送信するデータトークン送信手段、前記他の端末装置から、当該他の端末装置が生成した共通鍵で暗号化された送信データと、前記鍵交換用公開鍵で暗号化された前記共通鍵とを含む暗号情報を受信する暗号情報受信手段、前記暗号情報に含まれる暗号化された前記共通鍵を、前記鍵交換用秘密鍵により復号する共通鍵復号手段、前記暗号情報に含まれる暗号化された前記送信データを、復号した前記共通鍵により復号する送信データ復号手段、として前記コンピュータを機能させる。
【００１８】
上記プログラムをコンピュータにより実行することにより、上述の端末装置を実現することができる。また、上述の端末装置の各態様も同様に実現することができる。
【発明の効果】
【００１９】
本発明によれば、署名用公開鍵証明書を使用して、データを暗号化するための鍵を安全に交換することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の好適な実施の形態について説明する。
【００２１】
[鍵交換システム]
まず、図１及び図２を参照して、本実施形態に係る鍵交換システムについて説明する。図１は、鍵交換システムの概略構成である。図２は、鍵交換システムにより生成されるデータトークンの構造を模式的に示す図である。なお、本実施形態では、「端末を使用する利用者」を単に「端末」と略すことがある。具体的には、「端末を使用する利用者による署名」を「端末による署名」、「端末を使用する利用者による生成」を「端末による生成」と記載する。
【００２２】
鍵交換システム１００は、署名用公開鍵証明書のみを保有する端末Ａと、端末Ｂとが、データを暗号化するための共通鍵を、ＰＫＩ（Public Key Infrastructure）のセキュリティポリシーを阻害することなく、安全に交換することができるシステムである。ここで、ＰＫＩとは、インターネットをはじめとする安全ではない通信経路上でセキュリティを確保するための基盤技術である。
【００２３】
端末Ａ及び端末Ｂは、各利用者が使用しており、ネットワーク２を介して他の利用者が使用する端末とデータの送受信が可能なパソコンやＰＤＡ（Personal Digital Assistants）などである。本実施形態では、端末Ａが保有する署名用公開鍵証明書により、端末Ａ及び端末Ｂがデータを暗号化するための共通鍵を交換するものとする。また、端末Ｂは、当該共通鍵用いて暗号化したデータを端末Ａに送信するものとする。ここで、共通鍵とは、共通鍵暗号方式で使用される鍵のことである。共通鍵暗号化方式とは、暗号化と復号に用いる鍵が共通であり、１つの共通鍵を使用して、データの暗号化と復号を行う方式である。
【００２４】
なお、電子署名では、公開鍵暗号化方式が使用される。ここで、公開鍵暗号化方式とは、データを暗号化するため鍵と、データを復号するための鍵とが異なり、利用者のみが使用可能な秘密鍵と利用者以外の者が使用可能な公開鍵の鍵ペアを使用して、データの暗号化と復号を行う方式である。
【００２５】
また、端末Ａは、署名用公開鍵証明書のみを保有しており、鍵交換用公開鍵証明書は保有していないものとする。署名用公開鍵証明書と鍵交換用公開鍵証明書は、セキュリティ要件が異なるものである。ここで、公開鍵証明書とは、公開鍵所有者の情報、公開鍵データ、証明書の有効期間などのデータを組み合わせたものに対して、信頼のおける第三者期間（ＴＴＰ；Trusted Third Party）である認証局（ＣＡ；Certificate Authority）が電子署名を行い、発行したものである。このような公開鍵証明書により、その公開鍵の所有者が確かに記載された所有者のものであることをＣＡが保証する。
【００２６】
また、図１では、端末Ａ及びＢのみを記載しているが、本発明はこれに限定されるものではなく、ネットワーク２を介して複数の利用者が使用する複数の端末が通信可能に接続されているものとする。
【００２７】
ここで、本システムによる鍵交換方法の概要を述べておく。まず、端末Ａは、共通鍵を交換するために使用される鍵交換用公開鍵及び鍵交換用秘密鍵を生成する。さらに、端末Ａは、生成した鍵交換用公開鍵を、自身が保有する署名用秘密鍵で署名する。詳細は後述するが、この署名により端末Ａは、鍵所有者情報、鍵交換用公開鍵、電子署名及び署名用公開鍵証明書から構成された、図２に示すようなデータトークンを生成する。そして、端末Ａは、ネットワーク２を介して、生成したデータトークンを端末Ｂに送信する。
【００２８】
端末Ｂは、端末Ａから受信したデータトークンに含まれる鍵交換用公開鍵を取得する。さらに、端末Ｂは、データトークンに含まれる電子署名及び署名用公開鍵証明書を検証し、受け取ったデータ、即ち鍵交換用公開鍵は確かに端末Ａによって生成されたものであり、改ざんされていないことを確認する。そして、端末Ｂは、端末Ａに送信する送信データを暗号化するための共通鍵を生成する。端末Ｂは、端末Ａに送信する送信データを、生成した共通鍵で暗号化する。また、端末Ｂは、当該共通鍵を、データトークンから取得した鍵交換用公開鍵により暗号化する。そして、端末Ｂは、共通鍵により暗号化した送信データと、鍵交換用公開鍵により暗号化した共通鍵とを含む暗号情報を生成し、当該暗号情報を端末Ａへ送信する。
【００２９】
端末Ａは、端末Ｂから受信した暗号情報から、鍵交換用公開鍵により暗号化された共通鍵を取得する。そして、端末Ａは、当該暗号化された共通鍵を、自身が生成した鍵交換用秘密鍵により復号する。さらに、端末Ａは、端末Ｂから受信した暗号情報から、共通鍵により暗号化された送信データを取得する。そして、端末Ａは、当該暗号化された送信データを、復号した共通鍵により復号する。
【００３０】
これにより、端末Ａ及び端末Ｂは、鍵交換用公開鍵証明書を使用することなく、署名用公開鍵証明書を使用して共通鍵の交換を行うことができる。また、端末Ａ及び端末Ｂは、交換した共通鍵により暗号化及び復号を行うことで、インターネットをはじめとする安全ではない通信経路上で安全にデータ交換を行う。
【００３１】
なお、端末Ｂが取得した鍵交換用公開鍵は、端末Ａにより電子署名が付与されているため、端末Ａ及び端末Ｂが使用するＰＫＩの保証する範囲において安全であることがわかる。また、端末Ａは、自身が生成した電子データ（鍵交換用公開鍵）に署名を付与しているのであり、署名用公開鍵証明書の使用目的から逸脱しない。また、端末Ａが生成した鍵交換用公開鍵が仮に異なった用途、例えば電子署名に用いられた場合には、端末Ａが属するＰＫＩを含むいかなるＰＫＩにおいても有効な認証チェーンを構成することはないため、ＰＫＩのセキュリティポリシーを阻害することはない。
【００３２】
[データトークン]
次に、図２及び図３を参照し、データトークンについて詳しく説明する。図３は、ＸＭＬ（eXtensible Markup Language）によるデータトークンの例である。
【００３３】
図２に示すように、データトークンは、鍵所有者情報、鍵交換用公開鍵、電子署名及び署名用公開鍵証明書から構成されている。
【００３４】
鍵所有者情報とは、鍵交換用公開鍵（署名用公開鍵及び署名用秘密鍵）を所有する利用者の個人情報や、使用通信手段における識別ＩＤ等である。具体的に、個人情報とは氏名等であり、識別ＩＤとは電子メールにおけるメールアドレス等である。本実施形態における鍵所有者は、端末Ａの利用者である。鍵交換用公開鍵とは、所有者により生成された鍵交換用公開鍵である。電子署名とは、鍵所有者情報及び鍵交換用公開鍵を署名対象とする、所有者の署名用秘密鍵により付与された電子署名である。署名用公開鍵証明書とは、電子署名付与に用いられた署名用公開鍵の公開鍵証明書である。
【００３５】
端末Ａが図２に示すデータトークンを生成して端末Ｂに送信した場合、端末Ｂは、電子署名及び署名用公開鍵証明書を使用して検証を行う。具体的に、電子署名について有効性が確認できた場合、鍵交換用公開鍵は改ざんされていないことが分かる。一方、署名検証用公開鍵証明書の有効性が確認できた場合、鍵交換用公開鍵は確かに端末Ａにより生成されたことが分かる。
【００３６】
また、端末Ｂは、端末Ａから受信したデータトークンを自己の読み書き可能な記憶領域に保存して、鍵所有者情報に含まれる端末Ａを使用する利用者の個人情報、識別ＩＤ、又は、署名用公開鍵証明書と関連付けることとしてもよい。つまり、端末Ａを使用する利用者を識別する利用者識別情報に対応付けて、データトークンを記憶することとしてもよい。これにより、端末Ｂは、データトークンを保存して以降、端末Ａとの通信時に当該データトークンに含まれる鍵交換用公開鍵を安全に用いることができる。
【００３７】
具体的なデータトークンの例としては、図３に示すような、ＸＭＬ及びＸＭＬ署名を利用したものが挙げられる。図３の例では、公開鍵暗号方式としてＲＳＡ公開鍵暗号方式を、エンコードとしてＰＥＭ（Privacy Enhanced Mail）を用いている。しかし、本発明はこれに限定されるものではなく、ＲＳＡ公開鍵の各パラメータをＸＭＬとして格納してもよい。また、Diffie-Hellmanの鍵交換にも応用が可能である。
【００３８】
[端末]
次に、図４を参照し、鍵交換システム１００を構成する端末について詳しく説明する。図４は、鍵交換システム１００を構成する端末Ａ及び端末Ｂの内部構成を示す。図示のように、署名用公開鍵証明書を保有する端末Ａは、鍵交換用鍵生成機能１０１、データトークン生成機能１０２、データトークン送信機能１０３、暗号情報受信機能１０４、共通鍵復号機能１０５及び送信データ復号機能１０５から構成されている。また、データを暗号化するための共通鍵を生成する端末Ｂは、データトークン受信機能２０１、鍵交換用公開鍵取得機能２０２、検証機能２０３、共通鍵生成機能２０４、送信データ暗号化機能２０５、共通鍵暗号化機能２０６及び暗号情報送信機能２０７から構成されている。
【００３９】
なお、各機能は、端末Ａ及び端末Ｂがそれぞれ有するＣＰＵが予め用意されたプログラムを実行することにより実現される。
【００４０】
まず、端末Ａを構成する機能について説明する。
【００４１】
鍵交換用鍵生成機能１０１は、鍵交換用公開鍵及び鍵交換用秘密鍵の鍵ペアを生成する機能である。
【００４２】
データトークン生成機能１０２は、鍵交換用鍵生成機能１０１が生成した鍵交換用公開鍵を、署名用秘密鍵で署名することにより、図２に示すようなデータトークンを生成する機能である。具体的に、データトークン生成機能１０２は、予め保有している端末Ａの個人情報及び識別ＩＤから構成される鍵所有者情報と、生成した鍵交換用公開鍵と、署名用公開鍵による署名によって付与される電子署名と、当該署名用公開鍵に対する署名用公開鍵証明書とからデータトークンを生成する。
【００４３】
なお、署名用公開鍵証明書は、自治体から発行されるものや社員証に含まれるものなど様々なものが考えられるが、本発明は任意の署名用公開鍵証明書を適用することができる。端末Ａが、複数の署名用公開鍵を保有している場合、当該複数の署名用公開鍵の中からデータトークンを生成するために使用する１つの署名用公開鍵を選択するための選択画面を生成することとしてもよい。この場合、端末Ａは、選択画面において利用者により選択された署名用公開鍵によって鍵交換用公開鍵に署名を付与する。また、データトークンには、選択画面において利用者により選択された署名用公開鍵に対する署名用公開鍵証明書が含まれることとなる。また、通常、署名用公開鍵証明書は、ＩＣカードに記憶されていることが多い。そのため、端末Ａは、ＩＣカードリーダライタにより当該ＩＣカードから署名用公開鍵証明書を取得し、記憶しているものとする。よって、端末Ａは、選択画面ではなく、「ＩＣカードを挿入してください」とポップ画面を表示し、利用者が保有する任意のＩＣカードに記憶された署名用公開鍵を使用して、鍵交換用公開鍵に署名を付与することとしてもよい。
【００４４】
データトークン送信機能１０３は、データトークン生成機能１０２が生成したデータトークンを端末Ｂに送信する機能である。
【００４５】
ここで、説明の便宜上、端末Ｂを構成する機能について説明する。
【００４６】
データトークン受信機能２０１は、端末Ａからデータトークンを受信する機能である。
【００４７】
鍵交換用公開鍵取得機能２０２は、データトークン受信機能２０１が受信したデータトークンに含まれる鍵交換用公開鍵を取得する機能である。
【００４８】
検証機能２０３は、データトークン受信機能２０１が受信したデータトークンに基づいて検証を行う機能である。具体的に、検証機能２０３は、署名用公開鍵及び電子署名に基づいて、鍵交換用公開鍵が改ざんされているか否かを確認する。なお、署名用公開鍵は、端末Ｂが予め保有していてもよいし、データトークンに含まれる署名用公開鍵証明書に添付されていることとしてもよい。また、検証機能２０３は、署名用公開鍵証明書に基づいて、確かに端末Ａから送信されたものであるか否かを確認する。署名用公開鍵証明書の検証には、付与されたＣＡ署名の検証、検証時点が有効期限内であるかの検証等の検証が必要であり、全てに問題がない場合、その署名用公開鍵証明書は有効であることが確認できる。即ち、確かに端末Ａから送信されたものであることが確認できる。
【００４９】
共通鍵生成機能２０４は、データの暗号化及び復号をするための共通鍵を生成する機能である。なお、共通鍵生成機能２０４は、検証機能２０３による検証に問題がない場合に共通鍵を生成する。
【００５０】
送信データ暗号化機能２０５は、共通鍵生成機能２０４が生成した共通鍵により、端末Ａに送信する送信データを暗号化する機能である。
【００５１】
共通鍵暗号化機能２０６は、送信データを暗号化するために使用した共通鍵を、鍵交換用公開鍵取得機能２０２が取得した鍵交換用公開鍵により暗号化する機能である。
【００５２】
暗号情報送信機能２０７は、送信データ暗号化機能２０５が暗号化した送信データと、共通鍵暗号化機能２０６が暗号化した共通鍵とを含む暗号情報を、端末Ａに送信する機能である。
【００５３】
ここで、説明の便宜上、端末Ａを構成する残りの機能について説明する。
【００５４】
暗号情報受信機能１０４は、端末Ｂから暗号情報を受信する機能である。
【００５５】
共通鍵復号機能１０５は、暗号情報に含まれる暗号化された共通鍵を、自身が生成した鍵交換用秘密鍵により復号する機能である。これにより、端末Ａは、端末Ｂとのデータ交換の際、データを暗号化及び復号するために必要な共通鍵を取得することができる。
【００５６】
送信データ復号機能１０６は、暗号情報に含まれる暗号化された送信データを、共通鍵復号機能１０５が復号した共通鍵により復号する機能である。これにより、端末Ａは、端末Ｂが暗号化した送信データを取得することができる。
【００５７】
[鍵交換処理]
次に、図５を参照して、上記鍵交換システム１００により実行される鍵交換処理について説明する。図５は、鍵交換処理のフローチャートである。
【００５８】
端末Ａは、まず、鍵交換用公開鍵及び鍵交換用秘密鍵の鍵ペアを生成する（ステップＳ１）。さらに、端末Ａは、生成した鍵交換用公開鍵を署名用秘密鍵で署名することにより、署名用公開鍵証明書を含むデータトークンを生成する（ステップＳ２）。さらに、端末Ａは、生成したデータトークンを端末Ｂへ送信する（ステップＳ３）。
【００５９】
端末Ｂは、端末Ａからデータトークンを受信する（ステップＳ４）。そして、端末Ｂは、受信したデータトークンから鍵交換用公開鍵を取得する（ステップＳ５）。このとき、端末Ｂは、データトークンに含まれる電子署名及び署名用公開鍵証明書に基づいて、当該鍵交換用公開鍵が改ざんされているか否か及び端末Ａにより生成されたか否かを検証する（ステップＳ６）。検証の結果に問題があれば（ステップＳ７；Ｎｏ）、鍵交換処理は終了する。一方、検証の結果に問題がなければ（ステップｓ７；Ｙｅｓ）、端末Ｂは、データの暗号化及び復号に必要な共通鍵を生成する（ステップＳ８）。そして、端末Ｂは、生成した共通鍵により、端末Ａに送信する送信データを暗号化する（ステップＳ９）。さらに、端末Ｂは、送信データの暗号化に使用した共通鍵を、データトークンから取得した鍵交換用公開鍵により暗号化する（ステップＳ１０）。そして、端末Ｂは、共通鍵により暗号化した送信データと、鍵交換用公開鍵により暗号化した共通鍵とを含む暗号情報を端末Ａへ送信する（ステップＳ１１）。
【００６０】
端末Ａは、端末Ｂから暗号情報を受信する（ステップＳ１２）。そして、端末Ａは、受信した暗号情報に含まれる暗号化された共通鍵を、自身が生成した鍵交換用秘密鍵で復号する。これにより、端末Ａは、共通鍵を取得する（ステップＳ１３）。さらに、端末Ａは、受信した暗号情報に含まれる暗号化された送信データを、復号した共通鍵で復号する。これにより、端末Ａは、送信データを取得する（ステップＳ１４）。これにより、鍵交換処理は完了する。
【００６１】
従来は、ＰＫＩの枠組みで安全に暗号通信用の鍵交換を行う際、鍵交換用公開鍵証明書を取得する必要があった。しかし、本発明によれば、署名用公開鍵証明書しか保有しない利用者であっても、当該署名用公開鍵証明書を用いて鍵交換を行うことが可能となる。さらに、本発明によれば、利用者が生成した鍵交換用公開鍵を柔軟な用途に使用することを可能にしつつ、利用者が属するＰＫＩのセキュリティポリシーを阻害しない。よって、ＰＫＩのメリットを損なうことなく、享受することができる。
【産業上の利用可能性】
【００６２】
本発明は、署名用公開鍵証明書のみを保有する端末であっても、他の端末と鍵交換を行うことができる鍵交換システムとして利用することができる。
【図面の簡単な説明】
【００６３】
【図１】本発明における鍵交換システムの概略構成を示す図である。
【図２】データトークンの構造を模式的に示す図である。
【図３】ＸＭＬによるデータトークンの例である。
【図４】図１に示す鍵交換システムに含まれる端末Ａ及び端末Ｂの機能ブロック図である。
【図５】本発明における鍵交換処理のフローチャートである。
【符号の説明】
【００６４】
２…ネットワーク
１００…鍵交換システム
１０１…鍵交換用鍵生成機能
１０２…データトークン生成機能
１０３…データトークン送信機能
１０４…暗号情報受信機能
１０５…共通鍵復号機能
１０６…送信データ復号機能
【図１】
2007006319.tif 000003
【図２】
2007006319.tif 000004
【図３】
2007006319.tif 000005
【図４】
2007006319.tif 000006
【図５】
2007006319.tif 000007