(57)【要約】【課題】より高度なセキュリティを確保した相互認証を可能にする。【解決手段】通常使用時に、メモリカード２から送信したメモリカード公開鍵をＩＣカード１が確認した後に、メモリカード２は生成したセッション鍵を既決の文字列と組み合せて暗号化して送信し、ＩＣカード１は復号結果に上記既決文字列の存在を確認してセッション鍵を取得する。こうして、上記セッション鍵を両カード間のみで共有する。その後、メモリカード２は生成した乱数をセッション鍵で暗号化して送信し、ＩＣカード１はセッション鍵で復号した乱数をデータ暗復号鍵と結合した後にセッション鍵で暗号化して送信し、メモリカード２はセッション鍵での復号結果に上記乱数の存在を確認して上記データ暗復号鍵を得る。したがって、暗号化データを有するメモリカード２とは異なるＩＣカード１側でデータ暗復号鍵を保管でき、より高度なセキュリティを確保できる。【選択図】  図１
2004253875.tif 000002
【特許請求の範囲】
【請求項１】
暗号化機能および復号化機能を有する第１情報処理装置と暗号化機能および復号化機能を有する第２情報処理装置との間で相互認証を行った後に、上記第１情報処理装置から第２情報処理装置にデータの暗号化および復号化の際に用いるデータ暗復号鍵の配信を行う情報処理システムにおいて、
上記第１情報処理装置には、公開鍵とこの公開鍵と対を成す秘密鍵と上記データ暗復号鍵を含む鍵を生成する鍵生成部と、上記第２情報処理装置との間で情報の送受信を行う送受信部と、上記第２情報処理装置との間で上記送受信部を介した相互認証を行う認証部を、設ける一方、
上記第２情報処理装置には、暗号化されたデータを格納するデータ格納部と、上記相互認証および上記データ暗復号鍵の配信を行う間だけ用いられて消滅するセッション鍵と公開鍵とこの公開鍵と対を成す秘密鍵を含む鍵を生成する鍵生成部と、上記第１情報処理装置との間で情報の送受信を行う送受信部と、上記第１情報処理装置との間で上記送受信部を介した相互認証を行う認証部を、設けて、上記相互認証を、上記公開鍵，秘密鍵およびセッション鍵を用いた暗号化および復号化によって行う
ことを特徴とする情報処理システム。
【請求項２】
請求項１に記載の情報処理システムにおいて、
上記相互認証における上記第１情報処理装置による上記第２情報処理装置の認証は、上記第１情報処理装置の公開鍵および秘密鍵と上記第２情報処理装置の公開鍵および秘密鍵とを用いた公開鍵暗号化方式によって行う一方、上記第２情報処理装置による上記第１情報処理装置の認証は、上記セッション鍵を用いた秘密鍵暗号化方式によって行うことを特徴とする情報処理システム。
【請求項３】
請求項２に記載の情報処理システムにおいて、
上記相互認証における上記第１情報処理装置による上記第２情報処理装置の認証は、
上記第２情報処理装置の認証部によって、上記秘密鍵と上記第１情報処理装置の公開鍵とをこの順序で用いて上記セッション鍵を暗号化し、得られた暗号化情報を上記第２情報処理装置の送受信部によって上記第１情報処理装置に送信する一方、
上記第１情報処理装置の送受信部によって受信された上記暗号化情報を、上記第１情報処理装置の認証部によって上記秘密鍵と上記第２情報処理装置の公開鍵とをこの順序で用いて復号して上記セッション鍵を取得する
ことによって行うことを特徴とする情報処理システム。
【請求項４】
請求項３に記載の情報処理システムにおいて、
上記相互認証における上記第２情報処理装置による上記第１情報処理装置の認証は、
上記第１情報処理装置の認証部によって、上記セッション鍵を用いて上記データ暗復号鍵を暗号化し、得られた暗号化情報を上記第１情報処理装置の送受信部によって上記第２情報処理装置に送信する一方、
上記第２情報処理装置の送受信部によって受信された上記暗号化情報を、上記第２情報処理装置の認証部によって上記セッション鍵を用いて復号して上記データ暗復号鍵を取得する
ことによって行うことを特徴とする情報処理システム。
【請求項５】
請求項４に記載の情報処理システムにおいて、
上記第１情報処理装置は、少なくとも上記公開鍵，秘密鍵，データ暗復号鍵および上記第２情報処理装置の公開鍵を格納する不揮発性メモリと、少なくとも上記セッション鍵を格納する揮発性メモリを有する一方、
上記第２情報処理装置は、少なくとも上記公開鍵，秘密鍵および上記第１情報処理装置の公開鍵を格納する不揮発性メモリと、少なくとも上記セッション鍵およびデータ暗復号鍵を格納する揮発性メモリを有する
ことを特徴とする情報処理システム。
【請求項６】
請求項２に記載の情報処理システムにおいて、
上記第２情報処理装置は複数在り、
上記第１情報処理装置の鍵生成部は、夫々の第２情報処理装置毎に異なるデータ暗復号鍵を生成するようになっており、
上記第１情報処理装置は、各第２情報処理装置の公開鍵とデータ暗復号鍵とを対にして格納している
ことを特徴とする情報処理システム。
【請求項７】
請求項１に記載の情報処理システムにおいて、
上記第１情報処理装置および第２情報処理装置は計算機であることを特徴とする情報処理システム。
【請求項８】
請求項１に記載の情報処理システムにおいて、
上記第１情報処理装置および第２情報処理装置はＩＣカードであることを特徴とする情報処理システム。
【請求項９】
請求項１に記載の情報処理システムにおいて、
上記第１情報処理装置および第２情報処理装置は不揮発性メモリカードであることを特徴とする情報処理システム。
【請求項１０】
請求項１に記載の情報処理システムにおいて、
上記第１情報処理装置と第２情報処理装置とは、計算機，ＩＣカードおよび不揮発性メモリカードから選択された互いに異なる２つの機器であることを特徴とする情報処理システム。
【請求項１１】
請求項１に記載の情報処理システムにおける上記第１情報処理装置および第２情報処理装置のうちの少なくとも何れか一方として用いられる情報処理装置であって、
計算機で構成されていることを特徴とする情報処理装置。
【請求項１２】
請求項１に記載の情報処理システムにおける上記第１情報処理装置および第２情報処理装置のうちの少なくとも何れか一方として用いられる情報処理装置であって、
ＩＣカードで構成されていることを特徴とする情報処理装置。
【請求項１３】
請求項１に記載の情報処理システムにおける上記第１情報処理装置および第２情報処理装置のうちの少なくとも何れか一方として用いられる情報処理装置であって、
不揮発性メモリカードで構成されていることを特徴とする情報処理装置。
【請求項１４】
暗号化機能および復号化機能を有する第１情報処理装置と暗号化機能および復号化機能を有する第２情報処理装置との間で相互認証を行った後に、上記第１情報処理装置から第２情報処理装置にデータの暗号化および復号化の際に用いるデータ暗復号鍵の配信を行う情報処理方法であって、
上記第２情報処理装置によって上記相互認証および上記データ暗復号鍵の配信を行う間だけ用いられて消滅するセッション鍵を生成し、上記第２情報処理装置の秘密鍵と上記第１情報処理の公開鍵とをこの順序で用いて上記セッション鍵を暗号化して得られた第１暗号情報を上記第１情報処理に送信し、
上記第１情報処理装置によって、受信した上記第１暗号化情報を上記第１情報処理装置の秘密鍵と上記第２情報処理装置の公開鍵とをこの順序で用いて復号して上記セッション鍵を取得することによって、両情報処理装置間での上記セッション鍵の共有と上記第２情報処理装置の認証とを行い、
上記第１情報処理装置によって上記データ暗復号鍵を生成し、上記取得したセッション鍵を用いて上記データ暗復号鍵を暗号化して得られた第２暗号化情報を上記第２情報処理装置に送信し、
上記第２情報処理装置によって、受信した上記第２暗号化情報を上記セッション鍵を用いて復号して上記データ暗復号鍵を取得することによって、上記データ復号鍵の配信と上記第１情報処理装置の認証とを行う
ことを特徴とする情報処理方法。
【請求項１５】
コンピュータを、
請求項４における第１情報処理装置および第２情報処理装置の鍵生成部，送受信部および認証部
として機能させることを特徴とする情報処理プログラム。
【請求項１６】
請求項１５に記載の情報処理プログラムが記録されたことを特徴とするコンピュータ読出し可能なプログラム記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、セキュリティの高い情報処理を可能にするＩＣ（集積回路）カード等の情報処理装置、この情報処理装置を用いた情報処理システム、上記情報処理装置間での情報処理方法、情報処理プログラム、および、プログラム記録媒体に関する。
【０００２】
【従来の技術】
磁気カードに代わる次世代の携帯可能情報記録媒体としてＩＣカードが注目を集めている。最近では、半導体集積回路の小型化や低コスト化のための技術進歩によって、実社会の種々のシステムにおいてＩＣカードが実用されるに至っている。
【０００３】
特に、ＣＰＵ（中央演算処理装置）を内蔵したＩＣカードは、単なる情報記録媒体としての機能に情報処理機能が付加されているため、高度なセキュリティを必要とする情報処理システムへの利用が期待されている。
【０００４】
セキュリティを確保するための代表的な方法としては、例えば、ＩＣカードの所有者が暗証番号を設定し、この暗証番号を個々のＩＣカード内部に記録しておく方法が一般に利用されている。この方法では、ＩＣカードのＣＰＵによって、外部から与えられた暗証番号と内部に記録されている暗証番号とを照合して、操作者の正当性を確認するのである。しかしながら、このような暗証番号の照合による方法の場合には、暗証番号を記憶さえしていればカード単体を所持するだけで認証を得られるという利点がある反面、暗証番号自体が不正漏洩した場合には十分なセキュリティが確保されない。
【０００５】
そこで、２個の対になっている情報記録媒体を用いて相互認証を行うことによって、より高いセキュリティを確保する方法も実用化されている。例えば、ＩＣカードに銀行預金の取引データを記録して預金通帳代わりに用いる情報処理システムにおいては、ＩＣカード内部に記録された取引データが不正な手段によって改竄されるようなことがあると重大な問題になる。そこで、個々の預金者に通帳代わりに手渡す預金者用ＩＣカード単独では取引データにアクセスできないようにし、別個に用意した銀行用ＩＣカードと併用することによって初めてアクセスが可能にしておけば、セキュリティを高めることができる。
【０００６】
より具体的に説明すれば、銀行の店舗に設置されたリーダライタ装置に、同時に２枚のＩＣカードを挿入することができる挿入口を設けておき、一方の口から預金者用ＩＣカードを挿入し、他方の口から銀行用ＩＣカードを挿入するようにしておく。そして、双方のＩＣカードにおいて、互いに相手方が正当なカードであることを認証する処理を行い、双方共に肯定的な認証結果が得られた場合に限って、取引データへのアクセスを可能にすれば、セキュリティを向上させることができるのである。
【０００７】
このように、２個の対になった情報記録媒体を用いた相互認証を前提としてシステムを構築すれば、１枚のカードで暗証番号の照合のみに頼っているシステムに比べて非常に高いセキュリティを確保できるのである。
【０００８】
上述のように、２個の対になった情報記録媒体を用いた相互認証を行うシステムとして、例えば、特許文献１に開示されている携帯可能情報記録媒体およびこれを用いた情報処理システムがある。この情報処理システムにおいては、例えば銀行と預金者とのような関係において、例え預金者側のカードが紛失したり盗用されたりした場合でも、銀行側カードが銀行という安全な施設に保持されているために、強固なセキュリティを提供できるシステムを提供している。つまり、一般の利用者に関してはＩＣカードを紛失するかもしれないが、銀行側のカードについては技術的にではなく施設や設備という管理的な面から悪意のある者が不正利用できないようにしている。したがって、一般の預金者がＩＣカードを紛失しても、そのＩＣカードに記録されたデータに安易にアクセスすることはできないのである。
【０００９】
【特許文献１】
特開平８‐３３９４２９号公報
【００１０】
【発明が解決しようとする課題】
しかしながら、上記従来の特許文献１に開示された情報処理システムにおいては以下のような問題がある。
【００１１】
すなわち、上記情報処理システムでは、銀行側のＩＣカードについては、技術的にではなく施設や設備という管理的な面から悪意のある者が不正利用できないようにしている。したがって、一般の預金者がＩＣカードを紛失してもそのデータに安易にアクセスされることはない。しかしながら、このことは、言い換えれば、上記情報処理システムは、銀行で管理するカードは盗用され難いという技術的ではない仮定の上に成り立っているために、銀行で保管されているカードが盗用されてしまうと、比較的セキュリティ性能が低くなり、危険度が非常に高まってしまうという問題がある。
【００１２】
また、銀行等の整った設備を有する施設等において認証の対象となる片側の情報記録媒体を管理できるような場合はよい。ところが、そのような場合はどちらかといえば特殊な場合であって、システムにもよるが、そのような設備を設けることができない場合も多い。また、例え、そのような設備を設けることができたとしても、その管理のコストが必要であるという問題もある。
【００１３】
また、上述の情報処理システムでは、認証を行なう情報記録媒体、つまりＩＣカードは、飽くまでも２個の対となっている。つまり、預金者のＩＣカード１枚に対して、それに対応する銀行が保管しているＩＣカードが１枚必要となり、銀行で保管するＩＣカードは預金者のカードと同じ枚数必要である。この場合に対して、預金者毎にＩＣカードを必要とはしない場合には、銀行側のＩＣカードで複数の預金者を共有することになるが、銀行側としては１枚のＩＣカードで多くの預金者のＩＣカードを管理できる（つまり認証できる）ことになり、管理の面やシステムの運用上からは非常に利点が多い。言いかえれば、上記情報処理システムでは、例えば認証を行なうＩＣカードがｎ組である場合には２ｎ枚のＩＣカードが必要となる。したがって、情報処理システムを構築するに必要な総カード枚数が、例えば１枚の銀行用カードでｎ人分の預金者ＩＣカードを扱うことができる場合のＩＣカードの必要総枚数「ｎ（預金者側）＋１（銀行側）」に比して多数になる。そのために、銀行側でのＩＣカードの発行，保管，管理が繁雑となるという問題がある。
【００１４】
加えて、上記情報処理システムでは、預金者のＩＣカードと銀行が保管するＩＣカードの両方に共通の秘密鍵を格納している。そして、この秘密鍵は外部から読み出せないことが前提となっており、認証コードを生成するアルゴリズムも同様に乱数等から読み出せないことが前提となっている。ところが、悪意のある者が、管理が比較的緩やかな預金者のＩＣカードのみを入手した場合、耐タンパー性の低さから、物理的に本来とは異なる何らかの方法によって預金者カードに保存されている共通の秘密鍵データが読み出されることを完全に否定することはできない。ここで、上記「耐タンパー性」とは、本来使用する読み出し装置等を使用せずに、例えば記憶装置を分解して、記憶装置が光ディスクの場合にはディスクドライブを使ってではなく顕微鏡等を用いてデータの記録された溝を読み取る等によってデータを解読することである。
【００１５】
こうして、預金者カードに保存されている共通の秘密鍵データが読み出されてしまった場合には、例え上記秘密鍵データが暗号化されている場合であっても、他の預金者のＩＣカードにアクセスするのに必要な情報が書き込まれているために、不正に他の預金者のデータにアクセスしようとする者が銀行側ＩＣカードになりすまして他の預金者ＩＣカードにアクセスしデータを改竄する等の行為は比較的容易に行うことができる。
【００１６】
これに対して、この共通の秘密鍵が銀行側のカードにのみ記録されている場合には、預金者側のＩＣカードを不正に入手したとしても、暗号化された預金データは入手できるものの、共通鍵は銀行側カードにしか記録されていないために、上記入手した暗号化された預金データそのものを解読しなければならないことになる。
【００１７】
以上のごとく、暗号化された預金データとそれを解読するための鍵情報とが同一情報記録媒体上に記録されている上記従来の情報処理システムの場合には、暗号化された預金データだけが存在してそれを解読するための鍵が別途必要なシステムの場合に比して、安全性は弱いと言わざるをえない。
【００１８】
そこで、この発明の目的は、より高度なセキュリティを確保した相互認証が可能な情報処理装置、この情報処理装置を用いた情報処理システム、上記情報処理装置間での情報処理方法、情報処理プログラム、および、プログラム記録媒体を提供することにある。
【００１９】
【課題を解決するための手段】
上記目的を達成するため、この発明の情報処理システムは、暗号化機能および復号化機能を有する第１情報処理装置と暗号化機能および復号化機能を有する第２情報処理装置との間で相互認証を行った後に、上記第１情報処理装置から第２情報処理装置にデータの暗号化および復号化の際に用いるデータ暗復号鍵の配信を行うに際して、上記第１情報処理装置には、公開鍵とこの公開鍵と対を成す秘密鍵と上記データ暗復号鍵を含む鍵を生成する鍵生成部と、上記第２情報処理装置との間で情報の送受信を行う送受信部と、上記第２情報処理装置との間で上記送受信部を介した相互認証を行う認証部を設ける一方、上記第２情報処理装置には、暗号化されたデータを格納するデータ格納部と、上記相互認証および上記データ暗復号鍵の配信を行う間だけ用いられて消滅するセッション鍵と公開鍵とこの公開鍵と対を成す秘密鍵を含む鍵を生成する鍵生成部と、上記第１情報処理装置との間で情報の送受信を行う送受信部と、上記第１情報処理装置との間で上記送受信部を介した相互認証を行う認証部を設けて、上記相互認証を、上記公開鍵，秘密鍵およびセッション鍵を用いた暗号化および復号化によって行うようにしている。
【００２０】
上記構成によれば、上記第２情報処理装置に格納されている暗号化データを復号する際に用いるデータ暗復号鍵は、上記第１情報処理装置の鍵生成部によって生成されて、送受信部を介して上記第２情報処理装置に配信される。こうして、暗号化されたデータとその暗号化データを復号するための暗号化データとを、異なる情報処理装置に保持しておくことによって、何れか一方の情報処理装置が無くなったり盗難にあったりし、尚且つ、耐タンパー性が低い場合であっても、より高度なセキュリティが確保される。
【００２１】
その際における上記第１情報処理装置から第２情報処理装置への上記データ暗復号鍵の配信は、上記両情報処理装置間において、上記第１情報処理装置が生成した公開鍵および秘密鍵と上記第２情報処理装置が生成した公開鍵，秘密鍵およびセッション鍵とを用いた暗号化および復号化による相互認証を行った後に行われる。したがって、上記第１情報処理装置によって、確実に、自分に対して上記データ暗復号鍵の配信要求を出した自分とペアを組んでいる正規の上記第２情報処理装置に対して上記データ暗復号鍵が配信される。
【００２２】
また、１実施例の情報処理システムでは、上記相互認証における上記第１情報処理装置による上記第２情報処理装置の認証を、上記第１情報処理装置の公開鍵および秘密鍵と上記第２情報処理装置の公開鍵および秘密鍵とを用いた公開鍵暗号化方式によって行う一方、上記第２情報処理装置による上記第１情報処理装置の認証は、上記セッション鍵を用いた秘密鍵暗号化方式によって行うようにしている。
【００２３】
この実施例によれば、上記第１情報処理装置による上記第２情報処理装置の認証が、上記第１情報処理装置の公開鍵および秘密鍵と上記第２情報処理装置の公開鍵および秘密鍵とを用いた公開鍵暗号化方式によって行われる。したがって、上記第１情報処理装置によって、受信した暗号化情報の送出者は正規の第２情報処理装置であることが確実に確認される。
【００２４】
さらに、上記第２情報処理装置による上記第１情報処理装置の認証が、上記セッション鍵を用いた秘密鍵暗号化方式によって行われる。したがって、上記第２情報処理装置によって、受信した暗号化情報の送出者は正規の第１情報処理装置であることが確実に確認される。
【００２５】
また、１実施例の情報処理システムでは、上記相互認証における上記第１情報処理装置による上記第２情報処理装置の認証を、上記第２情報処理装置の認証部によって，上記秘密鍵と上記第１情報処理装置の公開鍵とをこの順序で用いて上記セッション鍵を暗号化し，得られた暗号化情報を上記第２情報処理装置の送受信部によって上記第１情報処理装置に送信する一方、上記第１情報処理装置の送受信部によって受信された上記暗号化情報を，上記第１情報処理装置の認証部によって上記秘密鍵と上記第２情報処理装置の公開鍵とをこの順序で用いて復号して上記セッション鍵を取得することによって行うようにしている。
【００２６】
この実施例によれば、上記第２情報処理装置側では上記秘密鍵と上記第１情報処理装置の公開鍵との順序で用いて上記セッション鍵を暗号化し、上記第１情報処理装置側で上記秘密鍵と上記第２情報処理装置の公開鍵との順序で用いて復号して上記セッション鍵を取得するので、上記第１情報処理装置によって、上記暗号化されたセッション鍵の送出者は第２情報処理装置の秘密鍵を有している者であり、自分が復号できるのは上記第２情報処理装置から送信された暗号化情報であることから、上記暗号化情報の送出者は正規の第２情報処理装置であることが確認される。こうして、上記第１情報処理装置による上記第２情報処理装置からのセッション鍵の取得と上記第２情報処理装置の認証とが同時に行われる。
【００２７】
また、１実施例の情報処理システムでは、上記相互認証における上記第２情報処理装置による上記第１情報処理装置の認証を、上記第１情報処理装置の認証部によって，上記セッション鍵を用いて上記データ暗復号鍵を暗号化し，得られた暗号化情報を上記第１情報処理装置の送受信部によって上記第２情報処理装置に送信する一方、上記第２情報処理装置の送受信部によって受信された上記暗号化情報を，上記第２情報処理装置の認証部によって上記セッション鍵を用いて復号して上記データ暗復号鍵を取得することによって行うようにしている。
【００２８】
この実施例によれば、上記第１情報処理装置と第２情報処理装置との間のみで共有している上記セッション鍵を用いた秘密鍵暗号化方式によって上記データ暗復号鍵を暗号化して、上記第１情報処理装置から第２情報処理装置に送信するので、上記第２情報処理装置によって、上記受信した暗号化情報の送出者は自分と上記セッション鍵を共有している者であるから、上記暗号化情報の送出者は正規の第１情報処理装置であることが確認される。こうして、上記第２情報処理装置による上記第１情報処理装置からのデータ暗復号鍵の取得と上記第１情報処理装置の認証とが同時に行われる。
【００２９】
また、１実施例の情報処理システムでは、上記第１情報処理装置に、少なくとも上記公開鍵，秘密鍵，データ暗復号鍵および上記第２情報処理装置の公開鍵を格納する不揮発性メモリと、少なくとも上記セッション鍵を格納する揮発性メモリを設ける一方、上記第２情報処理装置に、少なくとも上記公開鍵，秘密鍵および上記第１情報処理装置の公開鍵を格納する不揮発性メモリと、少なくとも上記セッション鍵およびデータ暗復号鍵を格納する揮発性メモリを設けている。
【００３０】
この実施例によれば、上記第１情報処理装置と第２情報処理装置とで共有する上記セッション鍵と、上記第２情報処理装置で受け取った上記データ暗復号鍵とが、上記揮発性メモリに格納されている。したがって、これらの鍵は、上記第１情報処理装置および第２情報処理装置に対する電源の供給が停止されると消滅する。こうして、さらに高度なセキュリティが確保される。
【００３１】
また、１実施例の情報処理システムでは、上記第２情報処理装置を複数とし、上記第１情報処理装置の鍵生成部を夫々の第２情報処理装置毎に異なるデータ暗復号鍵を生成するようになし、上記第１情報処理装置を各第２情報処理装置の公開鍵とデータ暗復号鍵とを対にして格納するようにしている。
【００３２】
この実施例によれば、１つの第１情報処理装置と複数在る第２情報処理装置の夫々との間においても高度なセキュリティが確保される。
【００３３】
したがって、上記第１情報処理装置が銀行側のＩＣカードであり、上記第２情報処理装置が預金者側のメモリカードのような関係でもあっても、１枚の銀行ＩＣカードで複数枚の預金者メモリカード対処することが可能になる。
【００３４】
また、１実施例の情報処理システムでは、上記第１情報処理装置および第２情報処理装置を計算機で構成している。
【００３５】
この実施例によれば、データ暗復号鍵が一方の計算機から他方の計算機に配信されるような２つの計算機間において、より高度なセキュリティが確保される。
【００３６】
また、１実施例の情報処理システムでは、上記第１情報処理装置および第２情報処理装置をＩＣカードで構成している。
【００３７】
この実施例によれば、データ暗復号鍵が一方のＩＣカードから他方のＩＣカードに配信されるような２つのＩＣカード間において、より高度なセキュリティが確保される。
【００３８】
また、１実施例の情報処理システムでは、上記第１情報処理装置および第２情報処理装置を不揮発性メモリカードで構成している。
【００３９】
この実施例によれば、データ暗復号鍵が一方の不揮発性メモリカードから他方の不揮発性メモリカードに配信されるような２つの不揮発性メモリカード間において、より高度なセキュリティが確保される。
【００４０】
また、１実施例の情報処理システムでは、上記第１情報処理装置と第２情報処理装置とを、計算機，ＩＣカードおよび不揮発性メモリカードから選択された互いに異なる２つの機器で構成している。
【００４１】
この実施例によれば、計算機，ＩＣカードおよび不揮発性メモリカードから選択された互いに異なる２つの機器であって、データ暗復号鍵が一方の機器から他方の機器に配信されるような２つの機器間において、より高度なセキュリティが確保される。
【００４２】
また、この発明の情報処理装置は、上記発明の情報処理システムにおける上記第１情報処理装置および第２情報処理装置のうちの少なくとも何れか一方として用いられると共に、計算機で構成されている。
【００４３】
上記構成によれば、上記計算機と他の情報処理装置とによってデータ暗復号鍵を一方から他方に配信する情報処理システムを構築する際に、より高度なセキュリティが確保される。
【００４４】
また、この発明の情報処理装置は、上記発明の情報処理システムにおける上記第１情報処理装置および第２情報処理装置のうちの少なくとも何れか一方として用いられると共に、ＩＣカードで構成されている。
【００４５】
上記構成によれば、上記ＩＣカードと他の情報処理装置とによってデータ暗復号鍵を一方から他方に配信する情報処理システムを構築する際に、より高度なセキュリティが確保される。
【００４６】
また、この発明の情報処理装置は、上記発明の情報処理システムにおける上記第１情報処理装置および第２情報処理装置のうちの少なくとも何れか一方として用いられると共に、不揮発性メモリカードで構成されている。
【００４７】
上記構成によれば、上記不揮発性メモリカードと他の情報処理装置とによってデータ暗復号鍵を一方から他方に配信する情報処理システムを構築する際に、より高度なセキュリティが確保される。
【００４８】
また、この発明の情報処理方法は、暗号化機能および復号化機能を有する第１情報処理装置と暗号化機能および復号化機能を有する第２情報処理装置との間で相互認証を行った後に、上記第１情報処理装置から第２情報処理装置にデータの暗号化および復号化の際に用いるデータ暗復号鍵の配信を行うに際して、上記第２情報処理装置によって上記相互認証および上記データ暗復号鍵の配信を行う間だけ用いられて消滅するセッション鍵を生成し，上記第２情報処理装置の秘密鍵と上記第１情報処理の公開鍵とをこの順序で用いて上記セッション鍵を暗号化して得られた第１暗号情報を上記第１情報処理に送信し、上記第１情報処理装置によって，受信した上記第１暗号化情報を上記第１情報処理装置の秘密鍵と上記第２情報処理装置の公開鍵とをこの順序で用いて復号して上記セッション鍵を取得することによって，両情報処理装置間での上記セッション鍵の共有と上記第２情報処理装置の認証とを行い、上記第１情報処理装置によって上記データ暗復号鍵を生成し，上記取得したセッション鍵を用いて上記データ暗復号鍵を暗号化して得られた第２暗号化情報を上記第２情報処理装置に送信し、上記第２情報処理装置によって，受信した上記第２暗号化情報を上記セッション鍵を用いて復号して上記データ暗復号鍵を取得することによって，上記データ復号鍵の配信と上記第１情報処理装置の認証とを行うようにしている。
【００４９】
上記構成によれば、暗号化されたデータとその暗号化データを復号するためのデータ暗復号鍵とが異なる情報処理装置に保持されて、何れか一方の情報処理装置が無くなったり盗難にあったりし、尚且つ、耐タンパー性が低い場合であっても、より高度なセキュリティが確保される。
【００５０】
さらに、上記第１情報処理装置による上記第２情報処理装置からのセッション鍵の取得と上記第２情報処理装置の認証とが同時に行われる。一方、上記第２情報処理装置による上記第１情報処理装置からのデータ暗復号鍵の取得と上記第１情報処理装置の認証とが同時に行われる。こうして、上記第１情報処理装置によって、確実に、自分に対して上記データ暗復号鍵の配信要求を出した自分とペアを組んでいる正規の上記第２情報処理装置に対して上記データ暗復号鍵が配信される。
【００５１】
また、この発明の情報処理プログラムは、コンピュータを、この発明の情報処理装置における第１情報処理装置および第２情報処理装置の鍵生成部，送受信部および認証部として機能させる。
【００５２】
上記構成によれば、上記第１情報処理装置と第２情報処理装置との何れか一方の情報処理装置が無くなったり盗難にあったりし、尚且つ、耐タンパー性が低い場合であっても、より高度なセキュリティが確保される。さらに、上記第１情報処理装置によって、確実に、自分に対して上記データ暗復号鍵の配信要求を出した自分とペアを組んでいる正規の上記第２情報処理装置に対して上記データ暗復号鍵が配信される。
【００５３】
また、この発明のプログラム記録媒体は、この発明の情報処理プログラムが記録されている。
【００５４】
上記構成によれば、コンピュータで読み出されて実行されることによって、上記第１情報処理装置と第２情報処理装置との何れか一方の情報処理装置が無くなったり盗難にあったりし、尚且つ、耐タンパー性が低い場合であっても、より高度なセキュリティが確保される。さらに、上記第１情報処理装置によって、確実に、自分に対して上記データ暗復号鍵の配信要求を出した自分とペアを組んでいる正規の上記第２情報処理装置に対して上記データ暗復号鍵が配信される。
【００５５】
【発明の実施の形態】
以下、この発明を図示の実施の形態により詳細に説明する。図１は、本実施の形態の情報処理システムにおける基本構成を示す図である。この情報処理システムにおいては、２つの情報記録媒体の間で相互認証を行うものであり、従来から提案されている２つの情報記録媒体の間で相互認証を行う一般的な情報処理システムと同じである。
【００５６】
図１においては、上記２つの情報記録媒体として、ＩＣカード１とメモリカード２とを用いるようにしている。ここで、ＩＣカード１とメモリカード２とは、何れも情報処理機能を有するＩＣカードである。リーダライタ装置３は、ＩＣカード１の挿入口３ａとメモリカード２の挿入口３ｂとを有しており、各挿入口３ａ，３ｂに挿入されたＩＣカード１とメモリカード２に対してアクセスする機能を有して、通常はコンピュータ（図示せず）に接続して使用される。
【００５７】
図２は、上記ＩＣカード１の内部構成を示すブロック図である。ＩＣカード１には、ＣＰＵ５とＲＯＭ（リード・オンリ・メモリ）６とＲＡＭ（ランダム・アクセス・メモリ）７とＥＥＰＲＯＭ（電気的消去書き込み可能リード・オンリ・メモリ）８が内蔵されている。ＣＰＵ５は、このＩＣカード１の情報処理機能を司る構成要素であり、ＲＯＭ６内に格納されたプログラムに基いて以下に詳述するような情報処理を実行する。ＲＡＭ７は、ＣＰＵ５が情報処理を実行する上での作業領域として利用されるメモリである。また、ＥＥＰＲＯＭ８は、このＩＣカード本来の目的である情報記録に利用される不揮発性メモリであり、各種の鍵等が格納される。
【００５８】
このＩＣカード１に対しては、上記リーダライタ装置３の挿入口３ａに挿入された際にリーダライタ装置３から電源やクロック信号が供給されて、ＩＣカード１と外部とはＩ／Ｏ（入出力）信号を用いて通信を行うことができるようになっている。ここで、ＲＯＭ６やＥＥＰＲＯＭ８は、電源の供給が停止しても記録内容が保持される不揮発性メモリである。これに対して、ＲＡＭ７は、電源の供給が停止すると記録内容が失われる揮発性メモリである。上記構成を有するＩＣカード１内の各メモリに対するアクセスは総てＣＰＵ５によって行われ、リーダライタ装置３のような外部装置から直接ＩＣカード１内のメモリをアクセスすることはできない構成になっている。
【００５９】
上記ＣＰＵ５は、さらに、上記リーダライタ装置３を介して上記コンピュータ等の外部装置から与えられる所定のコマンドに基いて、このＩＣカード１全体を統括管理する機能を有している。例えば、上記外部装置からＥＥＰＲＯＭ８の所定領域へデータを書き込むためには、ＣＰＵ５に対して書き込みコマンドを入力する必要があり、ＥＥＰＲＯＭ８の所定領域内のデータを外部へ読み出すためには、ＣＰＵ５に対して読出しコマンドを入力する必要がある。そして、ＣＰＵ５が上記書き込みコマンドや読出しコマンドを実行する際には、必要に応じて、ＥＥＰＲＯＭ８に記録された鍵と外部装置から与えられた鍵との照合が行われる。
【００６０】
以上、上記ＩＣカード１の内部構成について説明したが、メモリカード２のハードウエア構成も、図３に示すように全く同様である。但し、ＩＣカード１のＣＰＵ５およびメモリカード２のＣＰＵ１５が実行するプログラムは、その用途の相違に従って若干相違する。
【００６１】
本実施の形態における情報処理システムの重要なことは、少なくともＩＣカード１のＥＥＰＲＯＭ８に格納されたメモリカード２が用いるデータ暗復号鍵を正しく受領するためには、ＩＣカード１とメモリカード２とに関して以下のような相互認証の手続が必要であるということである。
【００６２】
すなわち、先ず、上記ＩＣカード１とメモリカード２とをリーダライタ装置３の挿入口３ａ，３ｂに挿入し、リーダライタ装置３に対してＩＣカード１とメモリカード２とを電気的に接続した状態にする。その上で、両カード１，２間において、夫々相手方のカードが正当なカードであるか否かを認証する。こうして、両カード１，２が共に挿入され且つ互いに相手が正当なカードであると認証された状態になっていなければ、少なくともＩＣカード１のＥＥＰＲＯＭ８に保存されているメモリカード２に関するデータ暗復号鍵を入手することができないのである。その場合、これら両カード１，２以外に上記データ暗復号鍵が入手されることがあってはならない。また、偽の鍵情報を正しい鍵情報と混乱させてメモリカード２に入手させることがあってもならない。
【００６３】
以下、理解を容易にするために、ＩＣカード１が銀行用ＩＣカードであり、メモリカード２が預金者用メモリカードである具体的な例について、説明を行う。預金者用メモリカード２には、ユーザデータとして銀行預金に関する取引情報が記録されており、預金者はこのメモリカード２を通帳代わりに利用する。一方、銀行の支店には、リーダライタ装置３およびこれに接続された上記コンピュータが設置されており、このリーダライタ装置３には預金者がメモリカード２内データを参照したり変更したりする際に必要に応じて銀行用ＩＣカード１が挿入される。
【００６４】
そして、上記銀行用ＩＣカード１と預金者用メモリカード２との間での相互認証が行われる。すなわち、預金者用メモリカード２が相手方である銀行用ＩＣカード１が正当なものであるか否かを認証する処理と、逆に、銀行用ＩＣカード１が相手方である預金者用メモリカード２が正当なものであるか否かを認証する処理と、が行われるのである。そして、双方共に肯定的な認証結果が得られた場合に、預金者用メモリカード２内のユーザデータに対する読み出しや書き込み等のアクセスが許可されるのである。このような相互認証システムを採ることによって、セキュリティを非常に向上させることができるのである。
【００６５】
例えば、上記預金者用メモリカード２が、盗難あるいは紛失によって不正利用者の手に渡った場合を考える。この場合であっても、預金者用メモリカード２には、暗号化されたデータのみが記録されており、これだけでは預金者用メモリカード２の記録内容へのアクセスは不可能である。この暗号化されたデータを復号するための暗復号鍵は銀行用ＩＣカード１にのみ登録されており、上記暗号化されたデータと暗復号鍵との両方を揃える必要がある。これに対して、例えば、内部犯罪等によって、信頼できるはずの銀行用ＩＣカード１が不正利用者に入手されたとしても、預金者側の暗号化データを入手することはできない上に、上述の説明のように、預金者側の暗復号鍵の入手も理論的に非常に困難である。
【００６６】
上述したように、特許文献１に開示された情報処理システムにおいては、２枚のカードのうちの一方は厳重に管理されているという仮定があるが、管理が信頼できない一般の個人間での利用には向かない。また、カードを管理する側の内部犯行等によって管理されているカードの安全性がゆらぐこともある。…第１の問題点
【００６７】
また、両カードには、一方のメモリカード内に他方のカードを認証するために必要な完全に同一のコードが記録されているため、耐タンパー性が低い場合には管理が厳重ではない方のカードから上記同一コードから入手されて、管理が厳重な方のカードの不正な偽造につながる。…第２の問題点
【００６８】
また、両カードが同一コードを保持することで認証を行っているため、一方のカードの枚数と同じ枚数の他方のカードが必要となり、例えば預金者と銀行との関係の場合には銀行側は膨大の数の銀行側ＩＣカードを用意せねばならず、銀行側ＩＣカードの安全性も損なわれ兼ねない。…第３の問題点
【００６９】
しかしながら、本実施の形態によれば、後に詳述するように、上記各問題点は何れも解決されるのである。以下、順次詳細に説明する。
【００７０】
本実施の形態においては、図２に示すように、上記ＩＣカード１のＥＥＰＲＯＭ８内には、ＩＣカード公開鍵９およびＩＣカード秘密鍵１０が記憶されると共に、各メモリカード２毎に、データ暗復号鍵１１およびメモリカード公開鍵１２が記憶される。また、ＲＡＭ７には、メモリカード２と共有するセッション鍵１３が記憶される。一方、図３に示すように、上記メモリカード２内のＥＥＰＲＯＭ１８には、メモリカード公開鍵１９，メモリカード秘密鍵２０およびＩＣカード公開鍵２１が記憶される。また、ＲＡＭ１７には、生成されたセッション鍵２２およびＩＣカード１から受領されたデータ暗復号鍵２３が記憶される。尚、２４は、ユーザデータである。
【００７１】
以下、上記ＩＣカード１のＣＰＵ５とメモリカード２のＣＰＵ１５とによって実行される相互認証処理動作について、図４〜図６に示すフローチャートに従って説明する。尚、上記相互認証処理動作は、ＩＣカード１のＣＰＵ５とメモリカード２のＣＰＵ１５との相互作用によって完遂される。したがって、以下の説明においては、処理の流れが分り易いように必要に応じて説明対象のカードを換えながら行う。尚、図４〜図６においては、ＩＣカード１のＣＰＵ５による処理ステップを「Ｓ１〜の番号」で示し、メモリカード２のＣＰＵ１５による処理ステップを「Ｓ１０１〜の番号」で示している。
【００７２】
上記ＩＣカード１がリーダライタ装置３の挿入口３ａに挿入されてＩＣカード１に電源が投入されると、ＣＰＵ５による相互認証処理動作がスタートする。そして、ステップＳ１で、ＥＥＰＲＯＭ８にＩＣカード公開鍵９とＩＣカード秘密鍵１０とが格納されているか否かが判別される。その結果、格納されていなければステップＳ２に進む一方、格納されていればステップＳ３に進む。ステップＳ２で、ＩＣカード公開鍵９とＩＣカード秘密鍵１０とが生成されてＥＥＰＲＯＭ８に格納される。ここで、ＩＣカード秘密鍵１０は他者から読み出されるものではあってはならない。こうした後、メモリカード２からのメモリカード公開鍵の送信を待つ。
【００７３】
一方において、上記メモリカード２がリーダライタ装置３の挿入口３ｂに挿入されてメモリカード２に電源が投入されると、ＣＰＵ１５による相互認証処理動作がスタートする。そして、ステップＳ１０１で、ＥＥＰＲＯＭ１８にメモリカード公開鍵１９とメモリカード秘密鍵２０とＩＣカード公開鍵２１とが格納されているか否かが判別されることによって、最初の相互認証ではないか否かが判別される。その結果、最初の相互認証でなければステップＳ１０２に進む一方、最初の相互認証であればステップＳ１０３に進む。この場合にも、メモリカード秘密鍵２０は他者から読み出されるものであってはならない。
【００７４】
ステップＳ１０２で、最初の相互認証ではないので既にＥＥＰＲＯＭ１８にメモリカード公開鍵１９が格納されている。したがって、メモリカード公開鍵１９が読み出されて、「初期化要求」が付随されずにＩＣカード１に対して送信される。そうした後、ステップＳ１０７に進む。ステップＳ１０３で、最初の相互認証であるので、ＥＥＰＲＯＭ１８にメモリカード公開鍵１９は格納されていない。したがって、メモリカード公開鍵１９とメモリカード秘密鍵２０とが生成されて、ＥＥＰＲＯＭ１８に格納される。ステップＳ１０４で、ＥＥＰＲＯＭ１８からメモリカード公開鍵１９が読み出されて、「初期化要求」が付随されてＩＣカード１に送信される。
【００７５】
そうすると、上記ＩＣカード１側では、ステップＳ３で、メモリカード２側から送信されたメモリカード公開鍵１９が受信される。ステップＳ４で、受信したメモリカード２からのメモリカード公開鍵１９には、「初期化要求」が付随しているか否かが判別される。その結果、「初期化要求」が付随していない場合にはステップＳ９に進み、「初期化要求」が付随している場合にはステップＳ５に進む。
【００７６】
ステップＳ５で、上記ステップＳ３において受信されたメモリカード公開鍵１９がＥＥＰＲＯＭ８に既に登録されているか否か判別される。その結果、登録されていればステップＳ６に進む一方、登録されていなければステップＳ７に進む。ステップＳ６で、受信されたメモリカード公開鍵１９をＥＥＰＲＯＭ８に登録することができないので、メモリカード２側に初期化エラーを送信する。
【００７７】
そうすると、上記メモリカード２側では、ステップＳ１０５で、ＩＣカード１からの初期化エラーを受信したと判別されると、上記ステップＳ１０３に戻って新規にメモリカード公開鍵１９とメモリカード秘密鍵２０とが生成される。一方、初期化エラーの受信がなければ、ステップＳ１０６に進んでＩＣカード１からのＩＣカード公開鍵の送信を待つ。
【００７８】
ここで、上記受信されたメモリカード公開鍵１９がＩＣカード１のＥＥＰＲＯＭ８に既に登録されている場合に初期化エラーとする理由は、メモリカード２側での上記ステップＳ１０３におけるメモリカード公開鍵１９の生成時に偶然に既登録の他メモリカード用の公開鍵と同じ鍵が生成されてしまったためであり、メモリカード公開鍵をインデックスとしてＥＥＰＲＯＭ８内のデータ暗復号鍵を検索するのでメモリカード公開鍵の重複が許されないためである。上述のように、初期化エラーが発生した場合には、メモリカード２側において、新規にメモリカード公開鍵１９とメモリカード秘密鍵２０とを生成するだけでよい。その場合、メモリカード公開鍵１９およびメモリカード秘密鍵２０は乱数性に基づいて生成され、通常鍵として１０２４ビット長のコードが使用されるので、前回生成されたメモリカード公開鍵１９およびメモリカード秘密鍵２０と重複する可能性は非常に小さく殆ど「０」である。
【００７９】
ステップＳ７で、上記メモリカード２用にデータ暗復号鍵１１が生成される。ステップＳ８で、ＩＣカード公開鍵９がＥＥＰＲＯＭ８から読み出されて、メモリカード２側に送信される。そうした後、ステップＳ１３に進む。
【００８０】
一方、ステップＳ９で、上記ステップＳ４において「初期化要求」が付随していないと判別されたので、相手のメモリカード２は以前に登録されたメモリカード２であると仮定して、受信したメモリカード公開鍵１９と一致するメモリカード公開鍵１２が自分のリストに存在するか否かが判別される。その結果、存在しない場合にはメモリカード２のリーダライタ装置３の挿入口３ｂへの挿入間違いであると判断されてステップＳ１０に進み、存在する場合にはステップＳ１２に進む。ステップＳ１０で、メモリカード２側にカード組み合せエラーが送信される。ステップＳ１１で、リーダライタ装置３にメモリカード２の挿入間違いが通知され、例えばリーダライタ装置３の表示画面（図示せず）等にメモリカード２の挿入間違いが出力される。そうした後に、ＩＣカード１側の相互認証処理動作を終了する。ステップＳ１２で、受信したメモリカード公開鍵１９に一致するメモリカード公開鍵１２が各メモリカードの公開鍵リストから検索されて、相手のメモリカード２が特定される。そして、上記特定されたメモリカード２（つまり、リーダライタ装置３に挿入されているメモリカード２）にマッチした内容の操作対象鍵群が設定される。以降の処理は、この設定された操作対象鍵群を用いて行われることになる。
【００８１】
一方、上記メモリカード２側では、ステップＳ１０６で、ＩＣカード１側から送信されたＩＣカード公開鍵９が受信される。ステップＳ１０７で、ＩＣカード１からのカード組み合せエラーを受信したと判別されると、メモリカード２側の相互認証処理動作を終了する。
【００８２】
この時点で、上記ＩＣカード１およびメモリカード２は、互いに相手を可能性の高い１個体に限定できたことになる。しかしながら、この時点では、飽くまでも自称というだけであって、まだ上記自称が証明されてはいない。したがって、この時点で単純にデータ暗復号鍵を送受信した場合には、間違った鍵を渡してしまったり、鍵を不正に漏曳させてしまったりする可能性がある。そのために、以降で、上述した仮決定が正しいことを証明する処理に移行する。そして、上記仮決定が正しいと証明された場合には、データ暗復号鍵を受渡すことになる。
【００８３】
上記メモリカード２側において、ステップＳ１０８で、セッション鍵（乱数）２２が生成されてＲＡＭ１７に格納されると共に、予めＩＣカード１との間で取り決められている文字列と組み合せられる。ここで、上記文字列は任意のバイト数であればよく、文字のみに限定されるものでもない。また、上記組み合せ方法も両者合意であれば特に限定されるものではない。そうした後、上記文字列とセッション鍵との組み合せに対して、メモリカード秘密鍵２０と上記受信したＩＣカード公開鍵２１（９）とが順に適用されて暗号化される。そして、こうして暗号化されたメッセージがＩＣカード１側に送信される。
【００８４】
そうすると、上記ＩＣカード１側では、ステップＳ１３で、メモリカード２からのメッセージが受信される。ステップＳ１４で、上記受信メッセージに対して、ＩＣカード秘密鍵１０とメモリカード公開鍵１２（１９）とが順に適用されて復号される。ステップＳ１５で、ステップＳ１４における復号結果における所定位置に、予めメモリカード２との間で取り決められている文字列が存在するか否かが判別される。その結果、存在すれば、上記復号結果はメモリカード２からのメッセージであると判断されてステップＳ１６に進む。一方、存在しなければ、何者かがメモリカード２になりすましたものと判断されて、ＩＣカード１側の相互認証処理動作を終了する。ステップＳ１６で、上記ステップＳ１４での復号結果からセッション鍵２２が取得され、セッション鍵１３としてＲＡＭ７に格納される。
【００８５】
一方、上記メモリカード２側では、ステップＳ１０９で、新規に乱数が生成されて、予めＩＣカード１とメモリカード２との間で取り決められている秘密鍵暗号方式によって暗号化される。この場合に用いられる暗号鍵は上記ステップＳ１０８において生成されたセッション鍵２２である。そして、こうして暗号化されたメッセージがＩＣカード１側に送信される。
【００８６】
そうすると、上記ＩＣカード１側では、ステップＳ１７で、メモリカード２からのメッセージが受信され、上記ステップＳ１６において取得されたセッション鍵１３（２２）を用いて復号されて乱数が得られる。ステップＳ１８で、上記ステップＳ３において受信されたメモリカード公開鍵１９に「初期化要求」が付随されている場合には、上記受信されたメモリカード公開鍵１９をメモリカード公開鍵１２とし、上記ステップＳ７において生成されたデータ暗復号鍵１１とペアにして、ＥＥＰＲＯＭ８に登録される。これらのメモリカード公開鍵１２（１９）とデータ暗復号鍵１１とは他者から読み出し可能であってはならない。
【００８７】
ステップＳ１９で、上記ステップＳ１７において得られた乱数とＥＥＰＲＯＭ８から読み出されたデータ暗復号鍵１１とが、予めＩＣカード１とメモリカード２との間で取り決められている方法によって連結され、セッション鍵１３（２２）で暗号化されてメモリカード２側に送信される。そうした後、ＩＣカード１のＣＰＵ５は、ＩＣカード１側の相互認証処理動作を終了する。
【００８８】
上記メモリカード２側では、ステップＳ１１０で、ＩＣカード１からのメッセージが受信される。ステップＳ１１１で、上記ステップＳ１１０においてＩＣカード１からのメッセージが受信されないと判別された場合には、ＩＣカード１側は相互認証処理動作を終了していると判断し、メモリカード２側の相互認証処理動作を終了する。
【００８９】
ステップＳ１１２で、上記受信されたＩＣカード１からのメッセージがセッション鍵２２（１３）を用いて復号される。ステップＳ１１３で、上記ステップＳ１１２における復号結果中に上記ステップＳ１０９において生成・送信した乱数が含まれているか否かを判別することによって、上記受信メッセージが正しく復号されたか否かが判別される。その結果、正しく復号されている場合はステップＳ１１４に進む。一方、そうでない（乱数の不一致）場合には、何者かが不正にＩＣカード１になりすましたものと判断されて、メモリカード２側の相互認証処理動作を終了する。
【００９０】
上記メモリカード２側における上記ステップＳ１０８以降の処理およびＩＣカード１側における上記ステップＳ１３以降の処理によって、互いに、自称による相手の仮決定が正しいと証明されたので、メモリカード２側では、以下の処理によって自ら生成した鍵やＩＣカード１から送信されてきた鍵を正しい鍵であるとして登録する。
【００９１】
ステップＳ１１４で、上記ステップＳ１１２における復号結果中の上記乱数以外の部分からデータ暗復号鍵１１が取得され、ＲＡＭ１７にデータ暗復号鍵２３として格納される。ステップＳ１１５で、上記ステップＳ１０４において「初期化要求」が付随されたメモリカード公開鍵１９を送信した場合にのみ、上記ステップＳ１０３において生成されたメモリカード公開鍵１９およびメモリカード秘密鍵２０がＥＥＰＲＯＭ１８に格納される。また、上記ステップＳ１０６において受信されたＩＣカード公開鍵９が、ＥＥＰＲＯＭ１８にＩＣカード公開鍵２１として格納される。そのうち、メモリカード秘密鍵２０は他者から読み出されてはならない。そうした後、メモリカード２のＣＰＵ１５は、メモリカード２側の相互認証処理動作を終了する。
【００９２】
こうして、上記ＩＣカード１のＣＰＵ５およびメモリカード２のＣＰＵ１５によって実行される相互認証処理動作が終了する。
【００９３】
以後、上記メモリカード２は、上記ステップＳ１１４においてＲＡＭ１７に格納されたデータ暗復号鍵２３をデータの暗号化・復号に用いる。つまり、この例の場合では、上記メモリカード２のＥＥＰＲＯＭ１８に格納されているユーザデータ（例えば銀行の預金者カードである場合には預金通帳のデータ等）２４を読み出してデータ暗復号鍵２３を用いて復号したり、リーダライタ装置３を介して上記コンピュータからメモリカード２に対して書込み要求がある場合にば、データ暗復号鍵２３を用いて暗号化してから書き込んだりするのである。
【００９４】
また、上記メモリカード２は、次回にも同じデータ暗復号鍵２３を得ることができることは、上述のフローチャートから明らかである。勿論、このデータ暗復号鍵２３をメモリカード２単独では知ることができないので、データ暗復号鍵２３をメモリカード２のＥＥＰＲＯＭ１８内に予め保持しておく場合よりは安全である。
【００９５】
ここで、上述した上記ＩＣカード１のＣＰＵ５によって実行される相互認証処理動作の上記ステップＳ１８と、メモリカード２のＣＰＵ１５によって実行される相互認証処理動作の上記ステップＳ１１５とで行なわれる初期化要求時における鍵の格納タイミングについて説明する。
【００９６】
本例のごとく、上記ＩＣカード１が銀行用ＩＣカードであり、メモリカード２が預金者用メモリカードである場合には、１枚のＩＣカード１に対して複数枚のメモリカード２が対応している。つまり、ＩＣカード１から見た場合には必ずメモリカード２を特定する必要があり、メモリカード２に誤った鍵を登録させてしまった場合には、そのメモリカード２は使用できないことになる。
【００９７】
したがって、上記メモリカード２のＣＰＵ１５による相互認証処理動作の上記ステップＳ１１５においては、互いに相手が確実に正しいＩＣカード１およびメモリカード２であることが確定されいることが必要である。そうすれば、メモリカード２側に誤って鍵が渡されていないことが証明されていることになる。若し、上記ステップＳ１１５よりも早い時点で鍵の登録が行われた場合には、正当な鍵であるか否かが確認される前に電源が遮断された場合は復帰できないことになる。また、上記ステップＳ１８の方が上記ステップＳ１１５よりも時間的に早い理由は、ＩＣカード１は複数枚のメモリカード２の情報を登録することが必要があり、各メモリカード２の情報を登録している間に両カード１，２間の電源が切断されてもメモリカード２は新規に初期化要求を出すことができ、ＩＣカード１がメモリカード２を登録できる枚数が極端に少なくないかぎりにおいて、問題とならないためである。
【００９８】
図７は、上記ＩＣカード１におけるメモリの構造の一例を示す概念図である。また、図８は、上記メモリカード２におけるメモリの構造の一例を示す概念図である。以下、図７および図８を用いて、図４〜図６に示す相互認証処理動作のフローチャートが実行されるに従ってＩＣカード１およびメモリカード２に書き込まれるデータに付いて具体的に説明する。
【００９９】
図７におけるＩＣカード１のＥＥＰＲＯＭ８内のデータは、ＩＣカード１側の相互認証処理動作の上記ステップＳ２およびステップＳ１８において書き込まれ、ＲＡＭ７のセッション鍵は上記ステップＳ１６において書き込まれる。また、図７に示すＩＣカード１は２枚のメモリカード２に対応している。そして、上記ステップＳ３においてメモリカード公開鍵「ｍｙｋｅｙ」を受信した後、「初期化要求」無しの場合に上記ステップＳ９においてＥＥＰＲＯＭ８からメモリカード公開鍵「ｍｙｋｅｙ」が検索されたとすれば、相手のメモリカード２は「メモリカードＢ」であるということが分る。そして、上記ステップＳ１２において、操作対象鍵群としてメモリカードＢのメモリカード公開鍵「ｍｙｋｅｙ」とデータ暗復号鍵「１２３４」とが設定される。以後、この２つの鍵「ｍｙｋｅｙ」と「１２３４」以外の鍵の使用が限定されるのである。一方、「初期化要求」有りの場合には、これらの鍵は一時的に記憶されてステップＳ１８で登録される。
【０１００】
図８におけるメモリカード２におけるＥＥＰＲＯＭ１８内の３つの鍵は、メモリカード２側の相互認証処理動作の上記ステップＳ１１５において登録される。そして、このＥＥＰＲＯＭ１８内の３つの鍵データの有無が、次の相互認証時に上記ステップＳ１０１において判断されて、「初期化要求」をするかしないかが決定される。セッション鍵「２２３３」は上記ステップＳ１０８において生成される。また、乱数「５６７８」は上記ステップＳ１０９において生成される。データ暗復号鍵「１２３４」は上記ステップＳ１１４において取得される。そして、上記各セッション鍵「２２３３」，乱数「５６７８」およびデータ暗復号鍵「１２３４」は、夫々ＲＡＭ１７に登録される。
【０１０１】
上述したように、本実施の形態においは、先ず、最初にＩＣカード１とメモリカード２との間で相互にペアであることを認識するの初期化処理を行う。この初期化処理においては、ＩＣカード１ではメモリカード２用に使用するデータ暗復号鍵１１を生成し、メモリカード２で生成されたメモリカード公開鍵１９とメモリカード秘密鍵２０とのうちのメモリカード公開鍵１９を受信して、データ暗復号鍵１１とメモリカード公開鍵１２（１９）とを組としてＥＥＰＲＯＭ８に記憶する。同様に、メモリカード２は、ＩＣカード１から送信されてくるＩＣカード公開鍵９を、ＥＥＰＲＯＭ１８にＩＣカード公開鍵２１として記憶する。この初期化処理は、各メモリカード２毎に一度しか実行されない。つまり、メモリカード２に対して初期化処理が二度以上行われることはないし、始めて使用されるメモリカード２はこの初期化処理が行われないと次の処理に進むことができないのである。
【０１０２】
こうして、初期化処理が終了すると、上記ＩＣカード１には、各メモリカード２ａ，２ｂ，…，２ｎに対応する上記メモリカード公開鍵とデータ暗復号鍵との２つの鍵の組が保存されている。そうすると、次に、メモリカードの予備決定とセッション鍵の入手との処理が行われる。上述のように初期化処理を終了した状態、または、以前にデータの暗復号鍵を入手（ＲＡＭ１７に格納）した後に電源を断たれたりＩＣカード１との接続が切れたりしてデータ暗復号鍵が失われた状態において、この処理が必要となる。
【０１０３】
先ず、上記メモリカード２は、保持しているメモリカード公開鍵１９をＩＣカード１に送信する。そうすると、ＩＣカード１は、受信したメモリカード公開鍵１９をインデックスとして「鍵の２つ組」の検索を行なってメモリカード公開鍵１９とマッチするものを探す。その際に、「鍵の２つ組」がない場合には、メモリカード２はペアでないと判断し、ペアでないメモリカードの使用を排除する。「鍵の２つ組」がある場合には、以後、メモリカード公開鍵１２（１９）とデータ暗復号鍵１１とで成る「鍵の２つ組」を用いて暗号化や復号を行なうのである。こうして、メモリカードの予備決定の処理が終了する。
【０１０４】
そうると、次に、セッション鍵の共有が行われる。この「セッション鍵」とはメモリカード２に対するデータ暗復号鍵の受渡しが完了するまでの間のみ使用する鍵であり、データ暗復号鍵の受渡しが完了すれば消滅するものである。ここで、セッション鍵を共有する２者以外は上記セッション鍵を知らないことが必要である。そこで、本実施の形態においては、メモリカード２側で今回使用するセッション鍵（乱数）２２を生成し、このセッション鍵２２にメモリカード２とＩＣカード１との間で設定された共通の文字列（プログラムされている）を連結し、さらにメモリカード秘密鍵２０とＩＣカード公開鍵２１とをこの順に適用して暗号化してＩＣカード１に送信するようにしている。
【０１０５】
ここで、使用する公開鍵暗号化方式についてはＲＳＡ方式が特に有名であるが暗号化の手法については特に限定しない。以下、公開鍵暗号化方式について簡単に説明する。暗号化のために、公開鍵と秘密鍵とをペアで生成して公開鍵のみを相手方に送信しておく。こうすることによって、情報を秘密鍵で暗号化した場合には公開鍵を用いないと復号できないし、公開鍵で暗号化した場合には秘密鍵を用いないと復号できない。したがって、公開鍵を公開すれば公開鍵を持つものは誰でも暗号化できるが、自分のみが秘密鍵を持っているために自分しか復号できない。逆に、秘密鍵で暗号化すれば、盗聴したものも含めて公開鍵を持つ誰でもが復号できるが、誰にも公開されない秘密鍵を持っていないと暗号化できないため秘密鍵を持っている自分が送信したことを相手に保証することができるのである。
【０１０６】
加えて、秘密鍵暗号方式について説明しておく。これは従来から盛んに用いられている暗号化方法であり、有名なものとしてＤＥＳがある。この秘密鍵暗号化方式においては、データの暗号化と復号化との双方で同じ鍵（ビット列）を使用する。そのために、対称暗号化方式と呼ばれる場合もある。さらに、公開鍵暗号化方式の場合とは異なって暗号化や復号化に使用する鍵を秘密にしておく必要があり、共有鍵暗号化方式と呼ばれる場合もある。
【０１０７】
さて、上述のようにして暗号化されたメッセージを受領したＩＣカード１は、自分が有するＩＣカード秘密鍵１０とメモリカード公開鍵１２とをこの順に適用してこのメッセージを復号する。詳細は後述するが、メッセージを復号するためにはＩＣカード秘密鍵１０が必ず必要であるので、秘密鍵が安全に他者に知られないように保管されている限りＩＣカード１以外は復号できないことになる。そして、ＩＣカード１は、復号したメッセージに上記共通の文字列が正しく含まれているかを調べることによって、正しく復号できたか、つまりメモリカード２がメモリカード秘密鍵２０を用いて暗号化したか（メモリカード２のみがメモリカード秘密鍵を有している）が分るのである。この結果、メモリカード２から送信されたものであると特定できれば、上記共有の文字列を除いた部分をセッション鍵２２として受領できるのである。
【０１０８】
以上のセッション鍵２２の送受信を別の書き方で表せば以下のようになる。すなわち、メモリカード２から、ＩＣカード１とメモリカード２との両者共通の定文字列「ｓｔｒ」とメモリカード２が任意に生成した乱数「ｒ１」を両者で合意のとれている結合（例として、単純に文字列「ｓｔｒ」の後に乱数「ｒ１」を連結して「ｓｔｒ  ｒ１」とする）を行ない、その結合結果をメモリカード秘密鍵２０→ＩＣカード公開鍵２１の順に用いて暗号化し、ＩＣカード１に送信する。尚、文字列「ｓｔｒ」と乱数「ｒ１」との結合は上述した順序での連結に限定されるものではなく、ＩＣカード１とメモリカード２との両者で合意されていれば如何様な方法であっても構わない。一方、ＩＣカード１では、受領したメッセージを暗号化とは逆のＩＣカード秘密鍵１０→メモリカード公開鍵１２の順に用いて復号するのである。その結果は「ｓｔｒ  ｒ１」となるはずであるが乱数「ｒ１」の部分はメモリカード２が任意に決定するので具体的内容についてはＩＣカード１は分らない。したがって、ここでは「ｓｔｒ  ｒｘ」と表記することにする。しかしながら、文字列「ｓｔｒ」の部分については、メモリカード２と共通であるためＩＣカード１文字列「ｓｔｒ」を確認することによって復号結果が正しいことを確認できる。このことは、以下のような事実を物語っている。すなわち、（１）送出者はメモリカード秘密鍵２０を有している。（２）復号できるのはＩＣカード秘密鍵１０を有しているＩＣカード１のみである。すなわち、これら２つの事実よって、上記メッセージを生成した個体は必ず本当のメモリカード２であり、ＩＣカード１とメモリカード２とのみがセッション鍵「ｒ１」を所有していることになる。もし、復号結果が「ｓｔｒ  ｒｘ」の形式でなければ、ＩＣカード１は、リクエスト「セッション鍵の共有」を無視するのである。こうして、セッション鍵の入手の処理が終了するのである。
【０１０９】
本実施の形態においては、暗号化手法そのものを議論することはなく概念を限定するのみとし、鍵を安全に渡すことのできる手法についてその方法を明らかにするものである。同様に、メモリカード２でデータ暗復号鍵を受領した後は、そのデータ暗復号鍵どのように用いて暗号化または復号化するか、若しくは、その鍵自体が情報として扱われるか否かについても限定するものではない。つまり、本発明は、一般的に利用できるものである。
【０１１０】
ここで、上記ＩＣカード１とメモリカード２とに登録する鍵情報について整理しておく。ＩＣカード１には、ＩＣカード公開鍵９（２１）、ＩＣカード秘密鍵１０、メモリカード２用のデータ暗復号鍵１１（２３）、メモリカード２から受領したメモリカード公開鍵１２（１９）、メモリカード２と共有するセッション鍵１３（２２）の、５個の鍵が登録される。一方、メモリカード２には、メモリカード公開鍵１９（１２）、メモリカード秘密鍵２０、ＩＣカード１から受領したＩＣカード公開鍵２１（９）、ＩＣカード１と共有するセッション鍵２２（１３）の、４個の鍵が登録されるのである。
【０１１１】
以上のようにして、上記メモリカードの予備決定とセッション鍵の入手との処理が終了すると、メモリカード２をＩＣカード１で認証する必要がある。ところが、メモリカードの予備決定とセッション鍵の入手との処理が終了した時点で、ＩＣカード１はメモリカード２を認証できたことになる。その理由は、メモリカード２のみが有するメモリカード秘密鍵２０で暗号化したメッセージを受領することができたためである。若し、メモリカード２以外が上記メッセージを作成しようとしても、メモリカード２のメモリカード秘密鍵２０を有していないために不可能なのである。
【０１１２】
但し、今回のメッセージの送出者がメモリカード２であるということは不明である。それは、メモリカード２が以前に送信したメッセージを何等かの方法によって保存しておき、その保存されたメッセージを再送信することが可能である場合には、この再送信されたメッセージを受領したＩＣカード１は、その送信者が誰であれメモリカード２からのものであると考えるからである。しかしながら、このことは問題にはならない。すなわち、暗号化されたメッセージを復号するにはメモリカード２から受領したメモリカード公開鍵１２（１９）が必要であり、それを偽の送信者は保持しないため、ＩＣカード１から不正に受領したセッション鍵を復号できないからである。このセッション鍵を用いて以後の処理が進められるので、このセッション鍵の安全性は重要となる。
【０１１３】
以上のごとく、上記ＩＣカード１によってメモリカード２が認証されると、メモリカード２によるＩＣカード１の認証とデータ暗復号鍵の送受との処理が行われる。上述したように、ＩＣカード１はメモリカード２が正当なものと認識している。したがって、ＩＣカード１からメモリカード２に対してデータ暗復号鍵を送信しても構わないことになる。
【０１１４】
先ず、上記メモリカード２において新規に乱数を生成し、それを「セッション鍵の共有」の際に生成されたセッション鍵２２（１３）で暗号化してＩＣカード１に送信する。そして、ＩＣカード１では、受領したメッセージをセッション鍵１３（２２）を用いて復号して送信された乱数を得る。そして、得られた乱数とメモリカード２用のデータ暗復号鍵１１とをＩＣカード１とメモリカード２との間で既決の方法で結合し、セッション鍵１３（２２）で暗号化してメモリカード２に送信するのである。
【０１１５】
ここで、上記データ暗復号鍵の送信に際してはセッション鍵１３（２２）を用いて暗復号しているが、このとき用いる秘密鍵暗号方式については特に限定はしない。ＤＥＳやトリプルＤＥＳやＡＥＳ等の方式が広く知られているが、ＩＣカード１とメモリカード２との両者が共通の方式を用いることと、秘密鍵として両者が同じ鍵を用いる（暗号化した結果から復号できる）こととが必要なだけである。勿論、ここでの秘密鍵暗号方式や鍵長が、暗号強度に依存することはいうまでもない。
【０１１６】
上記メモリカード２では、受領したメッセージをセッション鍵２２（１３）で復号した後、復号結果内に上記送信した乱数が含まれているかをチェックし、含まれている場合には、上記復号結果の残りの部分からデータ暗復号鍵１１を得ることができるのである。
【０１１７】
この理由は以下の通りである。すなわち、自分が送信した乱数が受信メッセージに含まれていることから、受信メッセージの送信者はセッション鍵２２（１３）を有していると言える。そして、セッション鍵２２（１３）を有しているのは、先に説明した通りＩＣカード１のみである。したがって、ＩＣカード１から送信されてきたデータ暗復号鍵であると判断できるのである。その結果、メモリカード２は、上記メッセージの確認によってデータ暗復号鍵を得るだけではなく、ＩＣカード１の正当性もチェックすることができることになる。
【０１１８】
次に、上記メモリカード２とＩＣカード１との間を行き来する２つのメッセージを復号できるものについて考えてみる。この復号あるいは偽造には上記セッション鍵がなくてはならない。そして、上記セッション鍵を使用できるのは正しいＩＣカード１およびメモリカード２であることが必須である。そのために第３者による復号は不可能であると言える。乱数をセッション鍵２２で暗号化したメッセージはメモリカード２に限らず誰でも送信可能であり、ＩＣカード１もそのメッセージが誰からのものか、つまり正当なメモリカード２からのメッセージであるか否かを確認する術はない。一見、このことは問題のように思えるが、以下の理由によって全く問題とならないのである。
【０１１９】
すなわち、上記メモリカード２になりすまして乱数「ｒ１」を不正なセッション鍵で暗号化したメッセージを送信した場合、ＩＣカード１は受信メッセージを正しいセッション鍵１３（２２）で復号することになるため、乱数「ｒ１」とは異なる乱数「ｒ２」が得られることになる。その場合、乱数「ｒ２」と乱数「ｒ１」とは異なったセッション鍵で復号されているために絶対一致しないことは明らかである。ここで、ＩＣカード１は、乱数「ｒ２」が正しいか否かを知ることはできないために、乱数「ｒ２」とデータ暗復号鍵１１とを既決の方法で結合して正規のセッション鍵１３で暗号化したメッセージをメモリカード２に送信することになる。その場合、メモリカード２は、受信メッセージを正規のセッション鍵２２（１３）で復号して乱数「ｒ２」を得ることになるため、不正なデータ暗復号鍵を受領したことが分るのである。一方、このメッセージをメモリカード２になりすました機器が受領した場合は、セッション鍵が不明であるため復号できず、ＩＣカード１からデータ暗復号鍵を得ることは不可能なのである。つまり、メモリカード２がＩＣカード１からデータ暗復号鍵１１を得た時点で、メモリカード２はＩＣカード１の正当性を判断することもできるのである。
【０１２０】
ここで、上記メモリカード２として、メモリカード２ａとメモリカード２ｂとが存在する場合について言及する。ＩＣカード１には、メモリカード２ｂ固有のデータ暗復号鍵が登録されていることは前述の通りである。そして、メモリカード２ｂがＩＣカード１からデータ暗復号鍵を入手する場合には、上述したメモリカード２ｂの初期化処理時にメモリカード２ｂからメモリカード公開鍵をＩＣカード１に送信するだけでよい。そして、上記メモリカードの予備決定の際に、ＩＣカード１にメモリカード２ｂのメモリカード公開鍵を再送信することによって、ＩＣカード１はメモリカード２ｂ用の「鍵の２つ組」を生成する。こうして、メモリカード２ｂに対する鍵情報の組が限定されるのである。更に、メモリカード２が３枚以上ある場合でもこの手順は同様である。
【０１２１】
その場合、夫々のメモリカード２ａ，２ｂ，…，２ｎが生成するメモリカード公開鍵の重複が問題となる。しかしながら、例えばＲＳＡ方式において１０２４ビット程度の鍵長を用いた場合に鍵が重複することは極小な確率であることが計算によって証明されている。そのために、通常の状態では問題にはならないのである。
【０１２２】
さて、上述した本実施の形態によるデータ暗復号鍵の送受信手順の正しさを検証するために、以下ような２つの問題について検討してみる。
（１）ＩＣカード１に登録されている正しいデータ暗復号鍵１１を不正に取得す
る
（２）メモリカード２に不正なデータ暗復号鍵を渡してデータの復号を不能にす
る
【０１２３】
（１）の目的は、上記ＩＣカード１からデータ暗復号鍵１１を不正に取得して、メモリカード２のデータを解読することにある。これは、以下の理由で不可能である。すなわち、データ暗復号鍵１１を得るためにはセッション鍵１３（２２）が必要であるが、それにはＩＣカード１のＩＣカード秘密鍵１０が必要である。ところが、ＩＣカード秘密鍵１０の不正な取得は不可能であるため、結局はセッション鍵１３（２２）の不正取得、つまりはデータ暗復号鍵１１の不正取得は不可能である。例え、再送信攻撃によってメモリカード２からのメッセージを保存して再送信したとしても、ＩＣカード１から送信されるデータ暗復号鍵１１を含むメッセージはＩＣカード１と正規のメモリカード２との２者しか知り得ないセッション鍵１３（２２）を用いて暗号化されているため、復号はできないのである。
【０１２４】
（２）については、上記メモリカード２が知らずに偽のデータ暗復号鍵を受信してしまうと、正規の鍵では復号できないデータ暗号化を行なってしまったり、正しくない復号が行われるという問題が生じる。したがって、（２）のような問題を防ぐ必要がある。
【０１２５】
実際に、上記ＩＣカード１になりすまして偽のデータ暗復号鍵をメモリカード２に送信しようとした場合、ＩＣカード１になりすました個体はＩＣカード秘密鍵１０を有していないために、セッション鍵１３（２２）を不正取得することができず、結果としてデータ暗復号鍵を送信するためのメッセージを正しく生成することはできない。そのために、どのようなメッセージを送出しようとも、メモリカード２は、受信メッセージ内の乱数をチェックすることによって、送信元が正しくセッション鍵を有していない上記なりすまし個体であることを見破ることができ、以後の処理を停止して不正なデータ暗復号鍵を受領しないようにすることが可能である。
【０１２６】
以上のごとく、本実施の形態においては、真新しいメモリカード２を始めて使用する場合には初期化処理が行われ、図９に示すように、ＩＣカード１とメモリカード２との間でＩＣカード公開鍵９とメモリカード公開鍵１９とを交換するようにしている。こうして、当初は互いに無関係であったＩＣカード１とメモリカード２とがペアを組むことを互いに認識し合うのである。
【０１２７】
そして、その際にメモリカード２専用のデータ暗復号鍵１１が新たに生成されて、ＩＣカード１側に保管される。したがって、例えメモリカード２が盗まれても、メモリカード２内のユーザデータを復号解読するためのデータ暗復号鍵１１はＩＣカード１側にあるため、上記ユーザデータが解読されることを防止できるのである。
【０１２８】
さらに、何者かがデータ暗復号鍵１１を盗み取ろうとして初期化要求をＩＣカード１に送信したとしても、データ暗復号鍵１１とは全く異なる「何者か」専用のデータ暗復号鍵が生成されるため、「何者か」はメモリカード２内のユーザデータを解読することはできないのである。
【０１２９】
尚、上記初期化処理は、上記メモリカード２が２回目以降に使用される際には自動的にスキップされる。
【０１３０】
また、上記初期化済のメモリカード２が通常に使用される場合には、メモリカードの予備決定が行われ、図１０に示すように、ＩＣカード１は、メモリカード２から送信されたメモリカード公開鍵１９と同じメモリカード公開鍵１２を検索し、メモリカード公開鍵１２（１９）とこれに関連するデータ暗復号鍵１１とを上記操作対象鍵群として設定するようにしている。
【０１３１】
こうして、上記ＩＣカード１は、ペアを組んでいるメモリカード２からデータ暗復号鍵１１の取得要求があったことを確認すると、以後の認証や情報の送受に用いる鍵をメモリカード２用の鍵に設定するのである。したがって、ペアを組んでいない個体からデータ暗復号鍵の取得要求があっても、ＥＥＰＲＯＭ８内には該当する鍵がないため、第３者に対して誤ってデータ暗復号鍵を送信することを防止することができる。
【０１３２】
また、上記メモリカードの予備決定が終了するとセッション鍵の共有が行われて、図１１に示すように、メモリカード２は、生成した乱数で成るセッション鍵２２を既決の文字列と組み合せ、暗号化してＩＣカード１に送信する。そして、ＩＣカード１側では、受信した情報を復号し、復号結果に既決文字列が在る場合には残りの部分をセッション鍵１３として取得する。こうして、メモリカード２が生成したセッション鍵２２を、ＩＣカード１とメモリカード２とのペア間のみで共有することができる。また、受信情報の復号結果に対する既決文字列の有無をチェックすることによって、復号結果を確認できると共に、誤ったセッション鍵の取得を防止することができる。
【０１３３】
その際に、上記メモリカード２による暗号化を、メモリカード秘密鍵２０とＩＣカード公開鍵２１とをこの順序で適用した公開鍵暗号化方式によって行い、ＩＣカード１による復号を、ＩＣカード秘密鍵１０とメモリカード公開鍵１２とをこの順序で適用して行うようにしている。したがって、ＩＣカード１は、取得したセッション鍵１３（２２）は正規のメモリカード２から送信されたものであることを確認することができ、ＩＣカード１はメモリカード２を認証することができるのである。
【０１３４】
また、上記セッション鍵の共有が終了するとデータ暗復号鍵の送受が行われ、図１２に示すように、メモリカード２は、生成した乱数をセッション鍵２２（１３）で暗号化してＩＣカード１に送信し、ＩＣカード１は、受信した情報をセッション鍵１３（２２）で復号して上記乱数を取得する。そして、取得した乱数をデータ暗復号鍵１１と既決の方法で結合した後にセッション鍵１３（２２）で暗号化してメモリカード２に送信し、メモリカード２は、受信した情報をセッション鍵２２（１３）で復号し、復号結果内に上記送信した乱数が含まれているかチェックする。したがって、上記復号結果内に送信した乱数が含まれている場合には、データ暗復号鍵１１の送信先はセッション鍵２２（１３）を共有している正規のＩＣカード１であることを確認でき、メモリカード２はＩＣカード１を認証することができるのである。
【０１３５】
すなわち、本実施の形態によれば、上記特許文献１に記載された携帯可能情報記憶媒体のごとくメモリカード２に格納されたユーザデータ２４を復号するためのデータ暗復号鍵をメモリカード２側に登録しておく必要がなく、データ暗復号鍵１１をＩＣカード１側に登録する一方、メモリカード２には暗号化データ２４を格納するように、鍵と暗号化データとを分離して保管することが可能になる。
【０１３６】
また、その際におけるデータ暗復号鍵の送受は、メモリカード２によって生成されたＩＣカード１およびメモリカード２のみが共有しているセッション鍵を用いて行われる。したがって、より安全に２者間で秘密情報の受渡しを行うことが可能になる。
【０１３７】
その結果、上記ＩＣカード１とメモリカード２との何れか一方だけが悪用された場合でも、上述したように、ユーザデータ２４の不正な取得やユーザデータ２４の不正な書き換えを容易に行うことはできない。また、メモリカード２が複数枚存在する環境であっても、単一のＩＣカード１で複数のメモリカード２を管理できることができるのである。
【０１３８】
以上、本実施の形態について説明したが、この発明は、上記実施の形態に限定されるものではなく、この他にも種々の形態で実施可能である。例えば、データ暗復号鍵は必ずしも使用する必要はない。メモリカード２側のデータを外部から読み出すことができないのであれば、暗号化せずにデータを保存し、上述したデータ暗復号鍵と乱数との結合メッセージの送受信を乱数メッセージの送受信に変更するだけでよい。そして、上記乱数の受信を確認できれば、相互認証が問題なくできていることになる。但し、ＥＥＰＲＯＭ８，１８に保存されている各種の鍵やデータが外部から読み出せるような状況であれば、暗号化して書き込むことが必要となる。その際における暗号化や復号化はハードウェアで行なってもソフトウェアで行っても差し支えなく、処理時間の制限等に応じて決定すればよい。
【０１３９】
また、上述の説明においては、メモリカード２とＩＣカード１との間で通信を行なう際に、暗号化を複数の鍵を用いて複数回行っているが、その際に用いる鍵の使用順序については制限しない。但し、復号化する側と合意が取れていないと復号できないことになる。尚、一般的に考えた場合には、相手が最初に使用する鍵が自分の公開鍵である場合には、その公開鍵は他人に盗聴されている可能性がある。その場合には、２段階暗号化が１段階だけ解読される可能性があることになる。したがって、公開鍵を最初に使用するのはできるだけ避けた方よいと考えられる。但し、上述のように、本実施の形態においては、総ての鍵がなければ通信内容を傍受することができない。したがって、公開鍵のみが他人に盗聴されていても事実上問題にはならないのである。
【０１４０】
また、上記実施の形態においては、上記預金者用メモリカード２と銀行用ＩＣカード１とを用いた情報処理システムを例に説明したが、この発明は、如何様な情報処理システムに適用しても一向に構わない。また、この発明の適用対象は、ＩＣカードや不揮発性メモリカードに限定されるものではなく、情報処理機能を有する情報記録媒体や通信路としてインターネットを利用するような一般の計算機等にも広く適用可能である。
【０１４１】
ところで、上記実施の形態における上記ＩＣカード１及びメモリカード２等の情報処理装置のＣＰＵによる上記鍵生成部，送受信部および認証部としての機能は、プログラム記録媒体に記録された情報処理プログラムによって実現される。上記実施の形態における上記プログラム記録媒体は、ＲＯＭでなるプログラムメディアである。あるいは、上記外部補助記憶装置に装着されて読み出されるプログラムメディアであってもよい。尚、何れの場合においても、プログラムメディアから情報処理プログラムを読み出すプログラム読み出し手段は、上記プログラムメディアに直接アクセスして読み出す構成を有していてもよいし、ＲＡＭに設けられたプログラム記憶エリア（図示せず）にダウンロードし、上記プログラム記憶エリアにアクセスして読み出すような構成を有していてもよい。尚、上記プログラムメディアから上記ＲＡＭのプログラム記憶エリアにダウンロードするためのダウンロードプログラムは、予め本体装置に格納されているものとする。
【０１４２】
ここで、上記プログラムメディアとは、本体側と分離可能に構成され、磁気テープやカセットテープ等のテープ系、フロッピーディスク，ハードディスク等の磁気ディスクやＣＤ（コンパクトディスク）‐ＲＯＭ，ＭＯ（光磁気）ディスク，ＭＤ（ミニディスク），ＤＶＤ（ディジタル多用途ディスク）等の光ディスクのディスク系、ＩＣカードや光カード等のカード系、マスクＲＯＭ，ＥＰＲＯＭ（紫外線消去型ＲＯＭ），ＥＥＰＲＯＭ（電気的消去型ＲＯＭ），フラッシュＲＯＭ等の半導体メモリ系を含めた、固定的にプログラムを坦持する媒体である。
【０１４３】
また、上記実施の形態における情報処理装置は、インターネット等の通信ネットワークと通信Ｉ／Ｆを介して接続可能な構成を有している場合には、上記プログラムメディアは、通信ネットワークからのダウンロード等によって流動的にプログラムを坦持する媒体であっても差し支えない。尚、その場合における上記通信ネットワークからダウンロードするためのダウンロードプログラムは、予め本体装置に格納されているものとする。あるいは、別の記録媒体からインストールされるものとする。
【０１４４】
尚、上記記録媒体に記録されるものはプログラムのみに限定されるものではなく、データも記録することが可能である。
【０１４５】
【発明の効果】
以上より明らかなように、この発明によれば、第１情報処理装置によって、公開鍵と秘密鍵とデータ暗復号鍵を含む鍵を生成し、第２情報処理装置によって、公開鍵と秘密鍵とセッション鍵を生成し、上記第１情報処理装置の公開鍵および秘密鍵と上記第２情報処理装置の公開鍵および秘密鍵とを用いた公開鍵暗号化方式と上記セッション鍵を用いた秘密鍵暗号化方式とによって、第１情報処理装置と第２情報処理装置との間で相互認証を行った後に、上記第１情報処理装置から第２情報処理装置にデータの暗号化および復号化の際に用いるデータ暗復号鍵の配信を行うので、上記第２情報処理装置に格納されている暗号化データを復号する際に用いるデータ暗復号鍵を、上記上記第２情報処理装置とは異なる第１情報処理装置に生成・保持しておくことができる。
【０１４６】
したがって、何れか一方の情報処理装置が無くなったり盗難にあったりし、尚且つ、耐タンパー性が低い場合であっても、より高度なセキュリティを確保することができる。
【０１４７】
その際における上記第１情報処理装置から第２情報処理装置への上記データ暗復号鍵の配信は、上記両情報処理装置間において、上記第１情報処理装置が生成した公開鍵および秘密鍵と上記第２情報処理装置が生成した公開鍵，秘密鍵およびセッション鍵とを用いた暗号化および復号化による相互認証を行った後に行われる。したがって、上記第１情報処理装置によって、確実に、上記データ暗復号鍵の配信要求を出したペアを組んでいる正規の上記第２情報処理装置に対して上記データ暗復号鍵を配信することができ、さらに高度なセキュリティを確保することができる。
【０１４８】
すなわち、この発明によれば、不正な手段で上記第２情報処理装置になりすました個体に上記第２情報処理装置に対する正しい情報を送出することなく、上記第１情報処理装置から第２情報処理装置に正しく秘密情報を送出することが可能になる。また、不正に上記第１情報処理装置になりすましたものから秘密情報を受領した第２情報処理装置が、上記秘密情報は不正は情報であることを検出することも可能である。
【図面の簡単な説明】
【図１】この発明の情報処理システムにおける基本構成を示す図である。
【図２】図１におけるＩＣカードのブロック図である。
【図３】図１におけるメモリカードのブロック図である。
【図４】ＩＣカードおよびメモリカードのＣＰＵによって実行される相互認証処理動作のフローチャートである。
【図５】図４に続く相互認証処理動作のフローチャートである。
【図６】図５に続く相互認証処理動作のフローチャートである。
【図７】図２におけるＥＥＰＲＯＭおよびＲＡＭの記憶データの具体例を示す概念図である。
【図８】図３におけるＥＥＰＲＯＭおよびＲＡＭの記憶データの具体例を示す概念図である。
【図９】初期化処理時に両カード間で送受される情報の説明図である。
【図１０】メモリカードの予備決定処理時に両カード間で送受される情報の説明図である。
【図１１】セッション鍵の共有処理時に両カード間で送受される情報の説明図である。
【図１２】データ暗復号鍵の送受処理時に両カード間で送受される情報の説明図である。
【符号の説明】
１…ＩＣカード、
２…メモリカード、
３…リーダライタ装置、
５，１５…ＣＰＵ、
６，１６…ＲＯＭ、
７，１７…ＲＡＭ、
８，１８…ＥＥＰＲＯＭ、
９，２１…ＩＣカード公開鍵、
１０…ＩＣカード秘密鍵、
１１，２３…データ暗復号鍵、
１２，１９…メモリカード公開鍵、
１３，２２…セッション鍵、
２０…メモリカード秘密鍵、
２４…ユーザデータ。
【図１】
2004253875.tif 000003
【図２】
2004253875.tif 000004
【図３】
2004253875.tif 000005
【図４】
2004253875.tif 000006
【図５】
2004253875.tif 000007
【図６】
2004253875.tif 000008
【図７】
2004253875.tif 000009
【図８】
2004253875.tif 000010
【図９】
2004253875.tif 000011
【図１０】
2004253875.tif 000012
【図１１】
2004253875.tif 000013
【図１２】
2004253875.tif 000014