(57)【特許請求の範囲】
【請求項１】
第１の通信装置と通信して第１の公開鍵を含む公開鍵証明書を受信する第１通信部と、
前記第１通信部による前記第１の公開鍵の受信を契機としてセッション鍵を生成するセッション鍵生成部と、
前記セッション鍵生成部によって生成された前記セッション鍵を前記第１通信部の受信した前記第１の公開鍵を用いて暗号化して暗号化セッション鍵を生成する公開鍵暗号演算部と、
前記セッション鍵生成部によって生成された前記セッション鍵と前記公開鍵暗号演算部によって暗号化された前記暗号化セッション鍵とを記憶する記憶部と、
第２の通信装置と通信を開始し、前記記憶部に記憶された前記暗号化セッション鍵を前記第２の通信装置に送信する第２通信部と、
前記暗号化セッション鍵を受信して前記第１の公開鍵に対応する第１の秘密鍵で前記暗号化セッション鍵を復号した前記第２の通信装置との間で、前記記憶部に記憶された前記セッション鍵を用いた暗号通信を実行する暗号化通信部と、
前記第１通信部が受信した前記第１の公開鍵を含む前記公開鍵証明書を検証する証明書検証部と
を備え、
前記記憶部は、
前記証明書検証部によって有効と判定された前記公開鍵証明書を保存し、
前記証明書検証部は、
次回に新たに前記公開鍵証明書が前記第１通信部によって受信された場合、新たに受信された前記公開鍵証明書と前記記憶部に保存されている前記公開鍵証明書とを比較し、同じと判定すると新たに受信された前記公開鍵証明書の検証を行うことなく破棄し、前記記憶部に保存されている前記公開鍵証明書を用いることを特徴とする携帯型情報装置。
【請求項２】
前記記憶部は、
第２の公開鍵と、前記第２の公開鍵に対応する第２の秘密鍵とを格納し、
前記暗号化通信部は、
前記暗号通信の対象となる前記第２の通信装置への通信データに前記第２の秘密鍵を用いて作成したデジタル署名を付し、前記デジタル署名の付された前記通信データを前記第２の通信装置に送信すると共に、前記第２の公開鍵を前記第２の通信装置に送信することを特徴とする請求項１記載の携帯型情報装置。
【請求項３】
前記記憶部は、
所定の認証情報を格納し、
前記暗号化通信部は、
前記暗号通信の対象となる前記第２の通信装置への通信データを前記第２の通信装置に送信すると共に、前記記憶部に格納された所定の認証データを前記第２の通信装置に送信することを特徴とする請求項１または２のいずれかに記載の携帯型情報装置。
【請求項４】
前記第１の通信装置から送信される前記第１の公開鍵と、前記第１の公開鍵に対応すると共に前記第２の通信装置によって前記暗号化セッション鍵の復号に使用される前記第１の秘密鍵とは、
所定の期間が経過すると、更新されることを特徴とする請求項１〜３のいずれかに記載の携帯型情報装置。
【請求項５】
前記証明書検証部は、
前記第１通信部を介して前記第１の通信装置から現在の日時を示す日時情報を取得し、取得した前記日時情報に基づいて前記公開鍵証明書を検証することを特徴とする請求項１〜４のいずれかに記載の携帯型情報装置。
【請求項６】
前記携帯型情報装置は、さらに、
日時を計測する時計部を備え、
前記証明書検証部は、
前記時計部の計測した日時情報に基づいて前記公開鍵証明書を検証することを特徴とする請求項１〜５のいずれかに記載の携帯型情報装置。
【請求項７】
前記携帯型情報装置は、
前記第１の通信装置及び前記第２の通信装置との通信方式が、非接触型と接触型との、いずれかであることを特徴とする請求項１〜６のいずれかに記載の携帯型情報装置。
【請求項８】
記憶部を有するコンピュータに、
第１の通信装置と通信して第１の公開鍵を含む公開鍵証明書を受信する処理、
前記第１の公開鍵の受信を契機としてセッション鍵を生成する処理、
生成された前記セッション鍵を、受信した前記第１の公開鍵を用いて暗号化して暗号化セッション鍵を生成する処理、
生成された前記セッション鍵と暗号化された前記暗号化セッション鍵とを前記記憶部に記憶する処理、
第２の通信装置と通信を開始し、前記記憶部に記憶された前記暗号化セッション鍵を前記第２の通信装置に送信する処理、
前記暗号化セッション鍵を受信して前記第１の公開鍵に対応する第１の秘密鍵で前記暗号化セッション鍵を復号した前記第２の通信装置との間で、前記記憶部に記憶された前記セッション鍵を用いた暗号通信を実行する処理、
受信した前記第１の公開鍵を含む前記公開鍵証明書を検証する処理、
検証によって有効と判定された前記公開鍵証明書を前記記憶部に保存する処理、
次回に新たに前記公開鍵証明書が受信された場合、新たに受信された前記公開鍵証明書と前記記憶部に保存されている前記公開鍵証明書とを比較し、同じと判定すると新たに受信された前記公開鍵証明書の検証を行うことなく破棄し、前記記憶部に保存されている前記公開鍵証明書を用いる処理、
を実行させるための暗号化通信プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、携帯型情報装置及び暗号化通信プログラムに関する。
【背景技術】
【０００２】
現在、鉄道やバスの運賃精算において非接触ＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）カードが普及しているが、金融機関においても今後普及が見込まれる。しかし、通信が無線のため、傍受され盗聴される危険性がある。例えば、ＡＴＭ（Ａｕｔｏｍａｔｅｄ  Ｔｅｌｌｅｒ  Ｍａｃｈｉｎｅ）のリーダライタから非接触ＩＣカードへ送信した暗証番号が盗聴される恐れがある。
【０００３】
そこで、ＡＴＭと非接触ＩＣカード間で、セッション鍵を共有し暗号化通信を行なう方法がある。このため、予め、ＡＴＭと非接触ＩＣカードでマスター鍵を埋め込んでおく方法があるが、全てのカード、ＡＴＭ（全ての店舗のＡＴＭ）で同じマスター鍵を埋め込む必要があり、万が一漏洩した場合は、全ての暗号化通信が解読される可能性がある。
【０００４】
他に、公開鍵暗号を用い、鍵が漏洩しても影響を最小限に留めるセッション鍵の共有方式がある（例えば特許文献１）。しかし、一般的に、共有処理に時間がかかるため、ユーザはＡＴＭや窓口を行き来するような場合、その都度、セッション鍵共有のために待たされることなり、不便である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−３４４４３８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＩＣカードと端末間の鍵共有の従来技術として、特開２００２−３４４４３８号公報（特許文献１）がある。特許文献１は、公開鍵暗号を利用し、端末とＩＣカード間でセッション鍵を共有する鍵共有方式である。この特許文献１の技術をセッション鍵共有に適用した場合、通信コマンドが多く、非効率的になってしまうという課題がある。
【０００７】
この発明は、セッション鍵の共有を安全、かつ、効率的に実行するＩＣカードのような携帯型情報装置の提供を目的とする。
【課題を解決するための手段】
【０００８】
この発明の携帯型情報装置は、
第１の通信装置と通信して第１の公開鍵を含む公開鍵証明書を受信する第１通信部と、
前記第１通信部による前記第１の公開鍵の受信を契機としてセッション鍵を生成するセッション鍵生成部と、
前記セッション鍵生成部によって生成された前記セッション鍵を前記第１通信部の受信した前記第１の公開鍵を用いて暗号化して暗号化セッション鍵を生成する公開鍵暗号演算部と、
前記セッション鍵生成部によって生成された前記セッション鍵と前記公開鍵暗号演算部によって暗号化された前記暗号化セッション鍵とを記憶する記憶部と、
第２の通信装置と通信を開始し、前記記憶部に記憶された前記暗号化セッション鍵を前記第２の通信装置に送信する第２通信部と、
前記暗号化セッション鍵を受信して前記第１の公開鍵に対応する第１の秘密鍵で前記暗号化セッション鍵を復号した前記第２の通信装置との間で、前記記憶部に記憶された前記セッション鍵を用いた暗号通信を実行する暗号化通信部と
を備えたことを特徴とする。
【発明の効果】
【０００９】
この発明により、セッション鍵の共有を安全、かつ、効率的に実行する携帯型情報装置を提供できる。
【図面の簡単な説明】
【００１０】
【図１】実施の形態１の非接触ＩＣカードシステムの構成図。
【図２】実施の形態１の非接触ＩＣカードでのセッション鍵の生成処理を示すブロック図。
【図３】実施の形態１の非接触ＩＣカードがＡＴＭへ暗号化セッション鍵を送信するブロック図。
【図４】実施の形態１の非接触ＩＣカードがＡＴＭと暗号化通信を行う構成を示すブロック図。
【図５】実施の形態１の非接触ＩＣカードシステムの動作を説明するフローチャート。
【図６】実施の形態９の非接触ＩＣカードシステムのハードウェア構成を示す図。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１〜図５を参照して実施の形態１を説明する。
図１は、非接触ＩＣカードの運用方法として、共有鍵であるセッション鍵を共有する具体例を示す図である。図１では、ユーザ（１０１）が銀行店舗に入店し、セッション鍵を共有する場合を説明する。
【００１２】
図１では、ユーザ（１０１）が金融機関の店舗（１０３）に入店した際に１回、受付機（１０３３）に非接触ＩＣカード（１０２）をタッチすると、店舗（１０３）と非接触ＩＣカード（１０２）との間でセッション鍵（１０４）が共有される。ＡＴＭ（１０３１）や窓口装置（１０３２）では、この共有されたセッション鍵（１０４）を用いて即座に暗号通信を行なう。図１の場合を以下に説明する。
【００１３】
まず、ユーザ（１０１）は、銀行の店舗（１０３）に非接触型ＩＣカード（１０２）を持って入店したとする。次に、ユーザ（１０１）は、非接触型ＩＣカード（１０２）を受付機（１０３３）にタッチする。そうすると、非接触型ＩＣカード（１０２）と店舗（１０３）側のシステムとにおいてセッション鍵（１０４）が共有され、さらに、セッション鍵（１０４）は、店舗（１０３）内のＡＴＭ（１０３１）や窓口装置（１０３２）へ、店舗（１０３）のネットワークなどを利用して通知される。
【００１４】
ＡＴＭ（１０３１）や窓口装置（１０３２）では、このセッション鍵（１０４）を用いて非接触ＩＣカード（１０２）との速やかな暗号通信を行なう。例えば、非接触ＩＣカード（１０２）をＡＴＭ（１０３１）のリーダライタ（１０３１３）にかざすと、入力画面（１０３１１）において、「暗証番号を入力してください」と表示される。ユーザ（１０１）が暗証番号（ＰＩＮ：Ｐｅｒｓｏｎａｌ  Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  Ｎｕｍｂｅｒ）を入力すると、ＩＣカード利用Ｓ／Ｗ（ＳｏｆｔＷａｒｅ）（１０３１２）と非接触ＩＣカード（１０２）との間に、既に共有済みのセッション鍵（１０４）による暗号化通信路が即座に確立され、暗証番号が安全に非接触ＩＣカード（１０２）に送信される。
【００１５】
この場合、暗号化のアルゴリズムは、処理速度を考慮し、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）などの共通鍵暗号方式を用いる。
【００１６】
背景技術で示した特許文献１の技術を、図１の受付機（１０３３）と非接触ＩＣカード（１０２）との間のセッション鍵（１０４）の共有に使用した場合、通信コマンドが多くなり、非効率となると考えられる。また、受付機は非接触ＩＣカードがタッチされる都度、非接触ＩＣカード別に共有したセッション鍵を、ＡＴＭ／窓口へ通知する必要がある。すなわち、入店したユーザの数だけセッション鍵をＡＴＭ／窓口と共有する必要があり、そのための設備と管理が必要となる。そこで、セッション鍵共有の処理時間を低減し、受付機（１０３３）からＡＴＭ（１０３１）／窓口装置（１０３２）へのセッション鍵（１０４）の通知と管理のための設備を削減し、安全・簡便にセッション鍵を共有する仕組みを以下説明する。以降の説明では、非接触ＩＣカード（１０２）を、単に「カード（１０２）」という場合がある。
【００１７】
以下、図２〜図５を参照して実施の形態１の非接触ＩＣカードシステムを説明する。以下に説明する方式（システム）の概要は次の様である。あるエリアに複数の端末装置が存在する場合に、エリアに入る際に受付機（第１の通信装置の例）に非接触ＩＣカード（１０２）をタッチする。受付機からカード（１０２）へエリア共通の公開鍵暗号の公開鍵証明書を送信する。カード（１０２）では、この公開鍵証明書から得た公開鍵で内部で生成したセッション鍵を暗号化し保存する。その後、エリア内のＡＴＭや窓口装置などの端末装置（第２の通信装置の例）において非接触ＩＣカード（１０２）をタッチすると、暗号化されたセッション鍵が読み出され、端末において予めインストールされたエリア共通の公開鍵暗号の秘密鍵で復号する。これにより、非接触ＩＣカード（１０２）と端末装置とでセッション鍵が速やかに共有され、以降、暗号化通信が可能となる。
【００１８】
（カードの機能）
図２は、実施の形態１において、カード（１０２）が受付機（１０３３）と通信する際のカード（１０２）側の機能の構成を示している。各構成要素の機能は以下のとおりである。
（ａ）通信部（３０１）は、受付機（１０３３）と通信する
（ｂ）コマンド解析／生成部（３０２）は、受付機（１０３３）から受信したコマンド（ＡＰＤＵ３１１）を解析する。また、カード（１０２）の応答をコマンド（ＡＰＤＵ３１９）として生成する。
（ｃ）証明書検証部（３０３）は、受付機（１０３３）から送られてきた公開鍵証明書（ＰＫＣ＿ｓ）（３１２）を検証する。検証に成功すると公開鍵（ＰｕｂＫｅｙ＿ｓ）（３１４）を出力する。
（ｄ）乱数生成部（３０４）は、乱数Ｒｃ（３１５）を生成する。
（ｅ）セッション鍵生成部（３０５）は、乱数Ｒｃ（３１５）と、受付機（１０３３）から送られた乱数Ｒｓ（３１３）からセッション鍵ＳＫ（３１６）を生成する。
（ｆ）セッション鍵保存部（３０８）は、セッション鍵ＳＫ（３１６）を記憶部（３３２）に保存する。あるいは記憶部（３３２）からセッション鍵ＳＫ（３１６）を読みだして復号部（３５１）、暗号部（３５３）に渡す。
（ｇ）公開鍵暗号演算部（３０６）は、セッション鍵ＳＫ（３１６）を、証明書検証部（３０３）で出力された公開鍵（ＰｕｂＫｅｙ＿ｓ）（３１４）を用いて暗号化し、暗号化されたセッション鍵ＳＫ（３１７）として出力する。
（ｈ）暗号化セッション鍵保存部（３０７）は、暗号化されたセッション鍵ＳＫ（３１７）を記憶部（３３２）に保存し、また、記憶部（３３２）から読みだして、応答（３１８）としてコマンド解析／生成部（３０２）に出力する。
（ｉ）時計部（３３１）は時間を計測する。
（ｊ）記憶部（３３２）はセッション鍵、暗号化セッション鍵及びその他の情報を記憶する。
【００１９】
図３は、実施の形態１において、カード（１０２）がＡＴＭ（１０３１）とセッション鍵を共有する際の機能部の構成を示している。図３の機能部の構成は、図２に順ずる。図２との差異は、暗号化セッション鍵保存部（３０７）は、ＡＴＭからの命令である、暗号化されたセッション鍵ＳＫの読み出し命令（３２２）を受け取り、この命令を受け取ると、記憶部（３３２）から暗号化されたセッション鍵ＳＫを取得し、暗号化されたセッション鍵ＳＫ（３２３）をコマンド解析／生成部（３０２）へ応答として出力することである。
【００２０】
図４は、実施の形態１において、カード（１０２）がＡＴＭ（１０３１）とセッション鍵を使用して暗号化通信を行なう際の機能部の構成を示している。
（ａ）通信部（３０１）は、図２と同じである。
（ｂ）コマンド解析／生成部（３０２）は、復号されたＡＰＤＵ（３５０２）を解析し命令（３５０４）を出力する。また、命令処理部（３５２）の出力である処理結果（３５０５）を受け取り、応答（３５０６）（ＡＰＤＵ）を出力する。
（ｃ）復号部（３５１）は、暗号化されたＡＰＤＵ（３５０１）をセッション鍵ＳＫ（３５０３）で復号し、復号されたＡＰＤＵ（３５０２）を出力する。
（ｄ）セッション鍵保存部（３０８）は、記憶部（３３２）に保存しているセッション鍵ＳＫ（３５０３）を取り出し、復号部（３５１）及び暗号部（３５３）に出力する
（ｅ）命令処理部（３５２）は、命令（３５０４）を解釈し、該当する命令を実行し、処理結果（３５０５）を出力する。
（ｆ）暗号部（３５３）は、セッション鍵ＳＫ（３５０３）で応答（３５０６）（ＡＰＤＵ）を暗号化し、暗号化されたＡＰＤＵ（応答）（３５０７）を出力する。
（ｇ）図４では、暗号部（３５３）、復号部（３５１）、命令処理部（３５２）等の全体が、暗号化通信実行する暗号化通信部（３３３）を構成する。
【００２１】
次に図２及び図２と対応する図５のＳ４０１〜４０８を参照して、カード（１０２）と受付機（１０３３）との間の処理を説明する。なお、受付機（１０３３）にはリーダライタが内蔵されているものとする。なお、以下の説明におけるシステム構成は、図１の左側に示す「装置配置」と同じである。
【００２２】
ユーザがカード（１０２）を受付機（１０３３）にタッチすると、受付機（１０３３）は、店舗の公開鍵証明書（ＰＫＣ＿ｓ）と乱数Ｒｓ（３１３）とを含んだＡＰＤＵをカード（１０２）に送付する。（Ｓ４０１）。カード（１０２）は、公開鍵証明書（ＰＫＣ＿ｓ）（３１２）とＲｓ（３１３）をＡＰＤＵ（３１１）として通信部（３０１）を通して受信する。コマンド解析／生成部（３０２）では、ＡＰＤＵ（３１１）から、公開鍵証明書（ＰＫＣ＿ｓ）（３１２）とＲｓ（３１３）を取り出す。カード（１０２）は、公開鍵証明書（ＰＫＣ＿ｓ）（３１２）を検証する。これは、証明書検証部（３０３）が実施する。（Ｓ４０２）検証は署名の検証を行なう。予めカード（１０２）に埋め込まれた、信頼できる認証局の公開鍵を用いて公開鍵証明書（ＰＫＣ＿ｓ）の署名の検証を行なう。すなわち、公開鍵証明書（ＰＫＣ＿ｓ）を発行したＣＡ（Ｃｅｒｔｉｆｉｃａｔｅ  Ａｕｔｈｏｒｉｔｙ）の公開鍵である。証明書検証部（３０３）は公開鍵証明書（ＰＫＣ＿ｓ）（３１２）の検証に成功すると、公開鍵（ＰｕｂＫｅｙ＿ｓ）（３１４）を抽出する。（Ｓ４０３）。カード（１０２）は、乱数Ｒｃ（３１５）を生成する。これは、乱数生成部（３０４）が実施する。（Ｓ４０４）。カード（１０２）は、セッション鍵ＳＫ（３１６）を生成する。これは、セッション鍵生成部（３０５）が実施する。実装の例として、Ｒｓ（３１３）とＲｃ（３１５）とを連結してＳＨＡ−１などの一方向性ハッシュ関数に入力し、出力をセッション鍵ＳＫ（３１６）とする（ｈ（Ｒｓ，Ｒｃ））（Ｓ４０５）
【００２３】
カード（１０２）は、セッション鍵ＳＫ（３１６）を保存する。これは、セッション鍵保存部（３０８）が実施する（Ｓ４０６）。このとき、セッション鍵ＳＫ（３１６）は、この鍵を用いて暗号化／復号の処理を実行できるが、カード（１０２）外に読み出せない属性とする。カード（１０２）は、セッション鍵ＳＫ（３１６）を公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化し、暗号化されたセッション鍵ＳＫ（３１７）を出力する。これは、公開鍵暗号演算部（３０６）が実施する（Ｓ４０７）カード（１０２）は、暗号化されたセッション鍵ＳＫ（３１７）をカード（１０２）内に保存する。これは、暗号化セッション鍵保存部（３０７）が実施し、応答（３１８）を出力する。この応答は、処理に成功したことを示す内容である（Ｓ４０８）。応答（３１８）は、コマンド解析／生成部（３０２）でＡＰＤＵ（３１９）として出力され、通信部（３０１）を通じて受付機（１０３３）に送信される。
【００２４】
このようにして、受付機（１０３３）にカード（１０２）をタッチすると、セッション鍵が生成され、カード（１０２）内に保存される。また、店舗の公開鍵で暗号化されたセッション鍵もカード（１０２）内に保存される。
【００２５】
次に、図３と、図３に対応する図５のＳ５０１〜Ｓ５０３を参照して、カード（１０２）とＡＴＭ間の処理について説明する。まず、カード（１０２）をＡＴＭ（１０３１）のリーダライタにタッチすると、ＡＴＭ（１０３１）からは、店舗の公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化されたセッション鍵を、カード（１０２）から読み出すための命令が、ＡＰＤＵ（３２１）としてカード（１０２）に送信される。カード（１０２）は通信部（３０１）を通じてＡＰＤＵ（３２１）を受け取り、コマンド解析／生成部（３０２）において、暗号化されたセッション鍵ＳＫ（３１７）の読み出し命令（３２２）として解析される。暗号化セッション鍵保存部（３０７）は暗号化されたセッション鍵ＳＫの読み出し命令（３２２）を入力とし、保存されている、店舗の公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化されたセッション鍵ＳＫである、暗号化されたセッション鍵ＳＫ（３２３）をコマンド解析／生成部（３０２）に出力する。コマンド解析／生成部（３０２）は、これをＡＰＤＵ（３２４）として、通信部（３０１）を通してＡＴＭに送信する。これが、カード（１０２）からＡＴＭ（１０３１）へ店舗の公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化されたセッション鍵ＳＫを送信する一連の動作である（処理のトリガはＡＴＭ側からである）（Ｓ５０１）。
【００２６】
ＡＴＭ（１０３１）は、店舗の公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化されたセッション鍵ＳＫを受信すると、予め保存してある店舗の秘密鍵（ＰｒｉＫｅｙ＿ｓ）でこれを復号し、セッション鍵ＳＫを得る（Ｓ５０２）。この時点で、カード（１０２）とＡＴＭでセッション鍵ＳＫが共有されたことになり、以降、ＡＴＭ（１０３１）とカード（１０２）とは、セッション鍵ＳＫを利用した暗号化通信が実行できる（Ｓ５０３）。
【００２７】
セッション鍵ＳＫを利用した暗号化通信について、図４を用いて、カード（１０２）の動作を示す。これは、図５におけるＳ５０３の動作を詳しく記述したものである。
【００２８】
まず、セッション鍵ＳＫがＡＴＭ（１０３１）で得られた時点で、ＡＴＭ（１０３１）が以降送信するＡＰＤＵは、セッション鍵ＳＫにより暗号化してカード（１０２）に送信する。このとき、暗号化アルゴリズムは、共通鍵暗号であり、カード（１０２）とＡＴＭ（１０３１）で共通である。図４において、ＡＴＭ（１０３１）から送信された暗号化されたＡＰＤＵ（３５０１）が、カード（１０２）で受信される。これは、通信部（３０１）を通して受信され、復号部（３５１）に入力される。セッション鍵保存部（３０８）は、保存されているセッション鍵ＳＫ（３５０３）を復号部（３５１）に出力する。復号部（３５１）は、セッション鍵ＳＫ（３５０３）で、暗号化されたＡＰＤＵ（３５０１）を復号し、復号されたＡＰＤＵ（３５０２）をコマンド解析／生成部（３０２）に出力する。コマンド解析／生成部（３０２）では、復号されたＡＰＤＵ（３５０２）から命令（３５０４）を取り出し、命令処理部（３５２）に出力する。ここで、命令とは、例えば、「カード（１０２）の特定のファイルを読み出す」、などである。命令処理部（３５２）では、命令（３５０４）を処理し、その結果を処理結果（３５０５）として、コマンド解析／生成部（３０２）に出力する。コマンド解析／生成部（３０２）は、処理結果（３５０５）を応答（３５０６）（ＡＰＤＵ）として出力する。応答（３５０６）はＡＰＤＵである（応答をＡＰＤＵのフォーマットにする）。暗号部（３５３）は、応答（３５０６）を、セッション鍵ＳＫ（３５０３）を用いて暗号化し、暗号化されたＡＰＤＵ（応答）（３５０７）を出力する。セッション鍵ＳＫ（３５０３）はセッション鍵保存部（３０８）から得る。暗号化されたＡＰＤＵ（応答）（３５０７）は、通信部（３０１）により、ＡＴＭ（１０３１）へ送信される。
【００２９】
以上のように、ＡＴＭとカード（１０２）間でＡＰＤＵを暗号化した通信が実現できる。
【００３０】
ＡＴＭや窓口の各端末で、店舗の秘密鍵（ＰｒｉＫｅｙ＿ｓ）を予め安全にインストールしておくことで、受付機（１０３３）にタッチした後、どのＡＴＭや窓口の端末においても、即座に暗号化通信が可能となる。
【００３１】
なお、以上の実施の形態１では受付機とＡＴＭとは別個の装置としたが、ＡＴＭが受付機の機能を兼ね備えても構わない。
【００３２】
実施の形態２．
以下に、実施の形態２〜実施の形態９を説明するが、システム構成は、図１の左側の「装置配置」に同じである。また、以下に登場する時計部、記憶部は図２に記載した。実施の形態１では、カード（１０２）とＡＴＭ（１０３１）との通信において、ＡＴＭはカード（１０２）の「認証」を実施していない。カード（１０２）の認証が必要な場合は、カード（１０２）から送信するデータ（暗号化データ）に、カード（１０２）の公開鍵暗号の秘密鍵によるデジタル署名を付与することで、ＡＴＭは、データが正しいカード（１０２）から送信されたものか確認することができる。この場合、カード（１０２）内に、予め、カード（１０２）用の公開鍵暗号の秘密鍵と公開鍵証明書を保存しておく。カード（１０２）から送信するデータ毎に署名をつけても良い。また、トランザクション上で最も真性が問われるデータ、例えば、入金データなどに限り署名を付与すれば、処理時間を削減可能である。
【００３３】
この動作を説明する。記憶部（３３２）は、前述のカード用のカード用公開鍵（第２の公開鍵）と、カード用公開鍵に対応するカード用秘密鍵（第２の秘密鍵）とを格納している。暗号化通信部（３３３）は、暗号化通信の対象となるＡＴＭ（１０３１）（第２通信装置）への通信データにカード用秘密鍵を用いて作成したデジタル署名を付し、デジタル署名の付された通信データをＡＴＭ（１０３１）に送信する。また暗号化通信部（３３３）は、カード用公開鍵をＡＴＭ（１０３１）に送信する。
【００３４】
実施の形態３．
実施の形態２では、カード（１０２）の認証にデジタル署名を用いたが、実施の形態３では、暗号化通信時に、カード側から、カード（１０２）に記録されているカードＩＤと暗証番号（ＰＩＮ）をＡＴＭ（１０３１）に渡す。ＡＴＭ側は、カード（１０２）の利用者が、暗証番号を知っている正規ユーザであることを確認する。この場合、ＡＴＭ側でカードＩＤと暗証番号の対を銀行側の施設で参照できることとする。
【００３５】
この動作を説明する。
記憶部（３３２）は、認証情報として「カードＩＤと暗証番号（ＰＩＮ）」（所定の認証情報の一例）を格納している。暗号化通信部（３３３）は、暗号化通信の対象となるＡＴＭ（１０３１）（第２通信装置）への通信データをＡＴＭ（１０３１）に送信する。また、暗号化通信部（３３３）は、記憶部（３３２）に格納されている認証データをＡＴＭ（１０３１）に送信する。
【００３６】
実施の形態４．
実施の形態１では、店舗（銀行側）における秘密鍵（ＰｒｉＫｅｙ＿ｓ）の管理については特に触れていない。秘密鍵（ＰｒｉＫｅｙ＿ｓ）は店舗内の設備である「ＡＴＭや窓口端末」（第２の通信装置の一例）で共有するが、これらの設備が店舗という安全に管理された環境ゆえに、共有することが可能である。本実施の形態４では、秘密鍵（ＰｒｉＫｅｙ＿ｓ）の安全性を高めるために、例えば、公開鍵（ＰｕｂＫｅｙ＿ｓ）／秘密鍵（ＰｒｉＫｅｙ＿ｓ）の対を１週間に１回更新し、その都度、公開鍵証明書（ＰＫＣ＿ｓ）の再発行を受けることで、秘密鍵（ＰｒｉＫｅｙ＿ｓ）の寿命を短くする。そして、万が一、秘密鍵（ＰｒｉＫｅｙ＿ｓ）が漏洩しても、最悪でも、影響を受ける通信を１週間に限定する。なお、寿命は１週間に限らず、適切な期間に設定してよい。秘密鍵（ＰｒｉＫｅｙ＿ｓ）が更新される都度、店舗のＡＴＭ／窓口端末に安全に更新する。なお、公開鍵（ＰｕｂＫｅｙ＿ｓ）／秘密鍵（ＰｒｉＫｅｙ＿ｓ）の対の更新は、担当作業者が行ってもよいし、プラグラムによって自動的に更新してもよい。公開鍵／秘密鍵の対が更新されればよく、誰が更新するかについては特に限定しない。
【００３７】
実施の形態５．
実施の形態１では、カード（１０２）が受付機（１０３３）から公開鍵証明書（ＰＫＣ＿ｓ）を受信した場合に、検証を行なっている。本実施の形態５では、カード（１０２）は、一度、公開鍵証明書（ＰＫＣ＿ｓ）を検証した場合には保存をしておく。２回目以降に公開鍵証明書（ＰＫＣ＿ｓ）を受信した場合には、保存しているデータ（公開鍵証明書）と同じであれば、カード（１０２）は検証を行なわず、保存中の公開鍵証明書（ＰＫＣ＿ｓ）を利用する。異なれば、カード（１０２）は検証を行い、保存してある公開鍵証明書（ＰＫＣ＿ｓ）を新たな公開鍵証明書に上書きする。
【００３８】
この動作を説明する。記憶部（３３２）は、証明書検証部（３０３）によって有効と判定された公開鍵証明書を保存している。証明書検証部（３０３）は、次回に新たに公開鍵証明書が通信部（３０１）によって受信された場合、新たに受信された公開鍵証明書と記憶部（３３２）に保存されている公開鍵証明書とを比較し、同じと判定すると新たに受信された公開鍵証明書の検証を行うことなく破棄し、記憶部（３３２）に保存されている公開鍵証明書を用いる。異なると判定すれば、前記のように上書きする。
【００３９】
実施の形態６．
実施の形態１では、公開鍵証明書（ＰＫＣ＿ｓ）の証明書の「検証」において、署名の検証を行なったが、一般的には、有効期限の検証も行なう。有効期限を検証する際に、カード（１０２）は「時計機能」を持たない。このため、受付機（１０３３）は、公開鍵証明書（ＰＫＣ＿ｓ）と共に現在の時刻情報をカード（１０２）に送付する。カード（１０２）はこの時刻を用いて証明書の有効期限の検証を行なう。この処理は、証明書検証部（３０３）にて実施される。すなわち、証明書検証部（３０３）は、通信部（３０１）を介して受付機（１３３）から現在の日時を示す日時情報を取得し、取得した日時情報に基づいて公開鍵証明書を検証する。
【００４０】
実施の形態７．
実施の形態６では、公開鍵証明書（ＰＫＣ＿ｓ）の証明書の有効期限の検証において受付機（１０３３）から送付された「現在の時刻情報」を利用するが、実施の形態７では、カード（１０２）に時計が備わっている場合はこれを利用する。
【００４１】
カード（１０２）は、さらに、時間を計測する時計部（３３１）を備えている。証明書検証部（３０３）は、時計部（３３１）の計測した現在の時刻情報（計測情報）に基づいて、公開鍵証明書を検証する。その他は実施の形態６と同様である。
【００４２】
実施の形態８．
実施の形態１〜７では、カード（１０２）として非接触ＩＣカード（１０２）を想定していたが、接触型ＩＣカードに置き換えても良い。その場合、受付機、ＡＴＭ、窓口端末のリーダライタは接触型に対応したものとする。また、受付機へのタッチ、ＡＴＭ、窓口端末のリーダライタへのタッチは、リーダライタへのカードの挿入などに置き換わる。
【００４３】
以上、実施の形態１〜実施の形態２で説明した方式（システム）では、以下の理由により通信の安全性が確保される。
【００４４】
（Ａ．非接触ＩＣカードへの脅威）
［ａ１．偽受付機］
攻撃者が偽受付機を店舗に設置し、非接触ＩＣカードをタッチさせた場合を考える。
・偽受付機が「攻撃者に都合の良い偽造の店舗の公開鍵証明書」を非接触ＩＣカードに送信しても、カード内での公開鍵証明書の検証で検知できる。
・偽受付機が「正当な店舗の公開鍵証明書」を非接触ＩＣカードに送信した場合、非接触ＩＣカード内では、正規の受付機と通信した場合と同じ処理を行うだけで問題は無い。［ａ２．偽ＡＴＭ（或いは偽窓口端末）に対して］
攻撃者がＡＴＭに細工し、偽のリーダライタと偽のＡＴＭアプリケーションを用意し、非接触ＩＣカードをタッチさせた場合を考える。
・偽ＡＴＭが店舗の秘密鍵（ＰｒｉＫｅｙ）を保持しない限りは、非接触ＩＣカードから送信される「店舗の公開鍵で暗号化されたセッション鍵（ＳＫ）」は復号できない。従って、セッション鍵は漏洩しない。
・偽ＡＴＭが、非接触ＩＣカードから送信される「店舗の公開鍵で暗号化されたセッション鍵（ＳＫ）」を受信した後、これを無視し、偽のセッション鍵（ＳＫ’）で暗号化通信を開始しても、非接触ＩＣカードが保存しているセッション鍵（ＳＫ）と異なるため、暗号化通信に失敗し、異常が検知される。
【００４５】
（Ｂ．受付機への脅威）
［ｂ１．偽非接触ＩＣカード］
店舗の公開鍵証明書（ＰＫＣ＿ｓ）を送付するだけであり、相手が偽造であったとしても問題ない。
【００４６】
（Ｃ．ＡＴＭ（或いは窓口端末）への脅威）
［ｃ１．偽非接触ＩＣカード］
以下を偽造した偽非接触ＩＣカードを仮定する。
・カードＩＤ（例えば、特許太郎のカードＩＤを記録し、特許太郎のキャッシュカードのふりをする）
・「店舗の公開鍵で暗号化された偽セッション鍵（ＳＫ’）」
つまり、犯罪者は、偽非接触ＩＣカードを使って、特許太郎の取引を行うことを想定する。この場合、ＡＴＭは偽セッション鍵（ＳＫ’）を復号し暗号化通信を正常に開始する。しかし、取引においては、非接触ＩＣカードに記録されたユーザの秘密鍵による署名が取引データに付与されるため、ユーザの秘密鍵をコピーしない限り、異常として検知される。非接触ＩＣカード内のユーザの秘密鍵は、一般的には非接触ＩＣカードの耐タンパ性により安全性が保証されるため、抜き出して他のカードに移すことは不可能である。
【００４７】
偽セッション鍵ＳＫ’を自身で生成しているため、暗号化通信を復号できる。復号で得られる情報は、ＡＴＭとの送受信データである。しかし、本物の特許太郎の情報は、取引データに正当な特許太郎の署名が付与できた場合にのみＡＴＭから通知されるため、正当な署名が生成できないため攻撃者のメリットとなるデータは得られない。
【００４８】
（Ｄ．秘密鍵ＰｒｉｖａｔｅＫｅｙの管理）
秘密鍵ＰｒｉｖａｔｅＫｅｙを店舗内の複数機器（ＡＴＭ／窓口端末）に持たせることが、従来技術の課題であった処理時間の削減に寄与している。店舗という限られた区域の中であれば、運用で安全に共有できる。安全性を高めるためには、定期的に鍵対（公開鍵（ＰｕｂｌｉｃＫｅｙ），  秘密鍵ＰｒｉｖａｔｅＫｅｙ）を更新し、認証局から公開鍵証明書の更新をうける。例えば、１週間に１回更新し、週始めの月曜日の開店前に更新した秘密鍵ＰｒｉｖａｔｅＫｅｙを共有すれば安全性は高まる。
【００４９】
実施の形態９．
実施の形態９は、ＩＣカードのハードウェア構成を簡単に説明する。
図８は、ＩＣカードのハードウェア資源を示す図である。ＩＣカードは、プログラムを実行するＣＰＵ８１０（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ８１０は、バス８２５を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）８１１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８１２、通信部８１６、と接続され、これらのハードウェアデバイスを制御する。
【００５０】
ＲＡＭ８１２は、揮発性メモリの一例である。ＲＯＭ８１１は、不揮発性メモリの一例である。これらは、記憶部の一例である。通信部８１６は、入力部あるいは出力部の一例である。
【００５１】
ＲＯＭ８１１には、プログラム群８２３が記憶されている。プログラム群８２３のプログラムは、ＣＰＵ８１０により実行される。
【００５２】
上記プログラム群８２３には、以上の実施の形態の説明において「〜部」として説明した機能を実行するプログラムが記憶されている。ＣＰＵ８１０により読み出され実行される。
【００５３】
また、以上の実施の形態の説明において、「〜部」として説明したものは、「〜手段」、「〜回路」、「〜機器」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。
【００５４】
なお、以上の実施の形態では、ＩＣカードを説明したが、ＩＣカードの動作を、暗号通信方法あるいは暗号通信プログラム、あるいは暗号通信プログラムを記録した記録媒体として把握することも可能である。
【００５５】
なお、以上の実施の形態１〜９では、携帯型情報装置としてカードを説明したが一例である。カードに限らず、携帯電話やその他の携帯型情報端末装置でもよいのはもちろんである。
【００５６】
以上に説明した実施の形態１〜９の非接触ＩＣカードシステムでは、ユーザが銀行店舗に入店する際に、非接触ＩＣカードを受付機でタッチし、受け付け処理を済ませる。その後、ユーザがＡＴＭ（或いは窓口端末）で非接触ＩＣカードを提示すると、鍵交換の処理を経ずに非接触ＩＣカードとＡＴＭ（或いは窓口端末）の間で暗号化通信が行われデータが保護される運用である。この非接触ＩＣカードシステムは、以下の特長を持つ。
（１）セッション鍵ＳＫの生成
店舗の受付機のリーダライタに非接触ＩＣカードをタッチすると、受付機から非接触ＩＣカードに店舗の公開鍵証明書（ＰＫＣ＿ｓ）が送信される。非接触ＩＣカードでは、公開鍵証明書（ＰＫＣ＿ｓ）の検証を行い、成功した場合にのみ、セッション鍵（ＳＫ）を生成し、セッション鍵ＳＫを自身に保存する。セッション鍵ＳＫは、「読み出せないが、暗号化／復号の処理は実行可能」な属性として保存する。非接触ＩＣカードは、セッション鍵ＳＫを公開鍵証明書（ＰＫＣ＿ｓ）から得られた店舗の公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化し保存する。
（２）（１）の処理の後、非接触ＩＣカードをＡＴＭで使用する際に、ＡＴＭのリーダライタに非接触ＩＣカードをタッチすると、非接触ＩＣカードから公開鍵（ＰｕｂＫｅｙ＿ｓ）で暗号化されたセッション鍵ＳＫがＡＴＭに送付される。ＡＴＭは店舗の秘密鍵（ＰｒｉＫｅｙ＿ｓ）でセッション鍵ＳＫを復号する。セッション鍵ＳＫが非接触ＩＣカードとＡＴＭで共有されたので、以後、非接触ＩＣカードとＡＴＭで暗号化通信を行う。
なお、ＡＴＭは窓口端末に置き換えてもよい。
（３）ＡＴＭに対して送信する取引データにカードの署名を付与する。
（４）店舗の秘密鍵である秘密鍵（ＰｒｉＫｅｙ＿ｓ）をＡＴＭ／窓口端末に予め配布しておくことにより、（２）の復号を実現する。
これら（１）〜（４）により、非接触ＩＣカードシステムは、セッション鍵共有の処理時間を低減し、受付機からＡＴＭ／窓口へのセッション鍵通知と管理の設備を削減し、安全・簡便にセッション鍵を共有することができる。
【符号の説明】
【００５７】
１０２  カード、３０１  通信部、３０３  証明書検証部、３０５  セッション鍵生成部、３０６  公開鍵暗号演算部、３３１  時計部、３３２  記憶部、３３３  暗号化通信部、１０３３  受付機、１０３１  ＡＴＭ、１０３２  窓口装置。
【図１】
0005489913.tif 000002
【図２】
0005489913.tif 000003
【図３】
0005489913.tif 000004
【図４】
0005489913.tif 000005
【図５】
0005489913.tif 000006
【図６】
0005489913.tif 000007