(57)【要約】【課題】より迅速に認証を行う。【解決手段】  縮退処理部３２は、アクセスする端末装置１２のメモリ９１の記録領域のそれぞれに関係付けられた暗号鍵のそれぞれを基に、１つの縮退鍵を生成する。暗号化部５１は、アクセスする端末装置１２のメモリ９１の記録領域を指定する領域指定情報、および縮退鍵を含むデータを、秘密鍵を用いて暗号化することにより電子署名を生成する。通信部３５は、領域指定情報および電子署名を端末装置１２に送信する。本発明は、無線または有線によりデータを送受信して認証を行う認証システムに適用できる。【選択図】図２
2007020066.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置および第２の情報処理装置からなる認証システムにおいて、
前記第１の情報処理装置は、
前記第２の情報処理装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成手段と、
前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成手段と、
前記領域指定情報および前記電子署名を送信する送信手段と
を備え、
前記第２の情報処理装置は、
前記第１の情報処理装置から送信されてきた前記領域指定情報および前記電子署名を受信する受信手段と、
受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する第３の生成手段と、
前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号手段と、
前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、前記第１の情報処理装置から受信した前記領域指定情報、および前記第３の生成手段により生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証手段と
を備える
認証システム。
【請求項２】
所定の装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成手段と、
前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成手段と
を備える情報処理装置。
【請求項３】
前記第２の生成手段は、前記領域指定情報、前記縮退鍵、およびセッション鍵を生成するためのデータが含まれたデータを、前記秘密鍵を用いて暗号化することにより、電子署名を生成する
請求項２に記載の情報処理装置。
【請求項４】
所定の装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成し、
前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する
ステップを含む情報処理方法。
【請求項５】
所定の装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成ステップと、
前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成ステップと
をコンピュータに実行させるプログラム。
【請求項６】
送信されてきた、複数の記録領域のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報を受信する受信手段と、
受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する生成手段と、
前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号手段と、
前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および前記生成手段により生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証手段と
を備える情報処理装置。
【請求項７】
複数の前記記録領域のそれぞれを有し、前記記録領域のそれぞれに関係付けられた認証データのそれぞれを記憶する記憶手段をさらに備える
請求項６に記載の情報処理装置。
【請求項８】
送信されてきた、複数の記録領域のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報を受信し、
受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成し、
前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号し、
前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する
ステップを含む情報処理方法。
【請求項９】
送信されてきた、複数の記録領域のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報の受信を制御する受信制御ステップと、
受信された前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する生成ステップと、
前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号ステップと、
前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および前記生成ステップにおいて生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、プログラム、並びに認証システムに関し、特に、より迅速に認証を行うことができるようにした情報処理装置および方法、プログラム、並びに認証システムに関する。
【背景技術】
【０００２】
例えば、情報処理装置間において送受信されるデータの改竄や、悪意の第三者によるなりすましを防止するために、対称鍵暗号方式（共通鍵暗号方式）または非対称鍵暗号方式（公開鍵暗号方式）によって暗号化されたデータを送受信することにより認証を行う方法が広く知られている。
【０００３】
このような認証を行う情報処理装置においては、データを記録する記録領域ごとに認証に用いる暗号鍵を記憶することによって、通信する相手がアクセスしようとする記録領域ごとに認証を行うようにすることができる。例えば、情報処理装置としてのリーダライタおよびＩＣカードが通信を行い、リーダライタが、ＩＣカードの第１の記憶領域および第２の記録領域にアクセスしようとする場合、リーダライタおよびＩＣカードは、予め記憶している第１の記録領域に関係付けられた暗号鍵、および第２の記録領域に関係付けられた暗号鍵を用いて、アクセスする記録領域ごとに認証を行う。
【０００４】
例えば、非対称鍵暗号方式によりデータ（暗号鍵）を暗号化して送受信し、認証を行う方法は、ISO（International Organization for Standardization）/IEC（International Electrotechnical Commission）9798-3により規定されている。例えば、非対称鍵暗号方式によりデータ（暗号鍵）を暗号化して認証を行う場合、リーダライタは、予め記憶している秘密鍵を用いて、アクセスしようとするＩＣカードの第１の記録領域に関係付けられた暗号鍵KM1を暗号化してＩＣカードに送信する。ＩＣカードでは、リーダライタから送信されてきた、暗号化された暗号鍵KM1を受信して、これをリーダライタが記憶している秘密鍵に対応する公開鍵を用いて復号し、その結果得られた暗号鍵KM1と、予めＩＣカードが記憶している暗号鍵KM1とを比較することにより第１の記録領域に対する認証を行う。
【０００５】
同様に、リーダライタは、予め記憶している秘密鍵を用いて、アクセスしようとするＩＣカードの第２の記録領域に関係付けられた暗号鍵KM2を暗号化してＩＣカードに送信する。ＩＣカードでは、リーダライタから送信されてきた、暗号化された暗号鍵KM2を受信して、これをリーダライタが記憶している秘密鍵に対応する公開鍵を用いて復号し、その結果得られた暗号鍵KM2と、予めＩＣカードが記憶している暗号鍵KM2とを比較することにより第２の記録領域に対する認証を行う。
【０００６】
このようにして、第１の記録領域および第２の記録領域に対する認証が行われると、リーダライタは、ＩＣカードの第１の記録領域および第２の記録領域にアクセスすることができるようになる。
【０００７】
また、例えば、従来の情報処理装置には、記録領域ごとの暗号鍵を基に１つの縮退鍵を生成し、生成した縮退鍵を共通鍵として、対称鍵暗号方式により乱数を暗号化して認証を行っているものもある（例えば、特許文献１参照）。この情報処理装置においては、アクセスしようとする記録領域のそれぞれに関係付けられた暗号鍵のそれぞれを基に、縮退鍵を生成するので、アクセスしようとする記録領域ごとに認証を行う必要がなくなる。
【０００８】
【特許文献１】特開平１０−３２７１４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した技術においては、非対称鍵暗号方式によりデータを暗号化して認証を行う場合には、アクセスする記録領域ごとに認証を行わなければならないため、アクセスしようとする記録領域の数が多くなるほど、認証を行うためにより多くの時間が必要であった。
【００１０】
したがって、例えば、鉄道の改札口に設けられた情報処理装置としてのリーダライタ（およびリーダライタに接続されているコントローラ）が、リーダライタにかざされた、利用者が所有する情報処理装置としてのＩＣカードの所定の記録領域にアクセスし、データを書き込むか、またはデータを読み出して発券処理を行う場合に、リーダライタがアクセスする記録領域の数が多くなると、リーダライタは、利用者がリーダライタにＩＣカードをかざしてから、改札口を通過するまでの間に、発券処理を終えることができない場合があった。
【００１１】
本発明は、このような状況に鑑みてなされたものであり、非対称鍵暗号方式によりデータを暗号化して認証を行う場合に、より迅速に認証を行うことができるようにするものである。
【課題を解決するための手段】
【００１２】
本発明の第１の側面は、第１の情報処理装置および第２の情報処理装置からなる認証システムにおいて、前記第１の情報処理装置に、前記第２の情報処理装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成手段と、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成手段と、前記領域指定情報および前記電子署名を送信する送信手段とが設けられ、前記第２の情報処理装置に、前記第１の情報処理装置から送信されてきた前記領域指定情報および前記電子署名を受信する受信手段と、受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する第３の生成手段と、前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号手段と、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、前記第１の情報処理装置から受信した前記領域指定情報、および前記第３の生成手段により生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証手段とが設けられた認証システムである。
【００１３】
本発明の第１の側面においては、第１の情報処理装置により、第２の情報処理装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵が生成され、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータが、記憶されている秘密鍵が用いられて暗号化されることにより、電子署名が生成され、前記領域指定情報および前記電子署名が送信される。そして、前記第２の情報処理装置により、前記第１の情報処理装置から送信されてきた前記領域指定情報および前記電子署名が受信され、受信された前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵が生成され、前記秘密鍵に対応する公開鍵が用いられて前記電子署名が復号され、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、前記第１の情報処理装置から受信された前記領域指定情報、および生成された前記縮退鍵とが比較されて、前記電子署名の正当性が検証される。
【００１４】
本発明の第２の側面の情報処理装置には、所定の装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成手段と、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成手段とが設けられている。
【００１５】
前記第２の生成手段には、前記領域指定情報、前記縮退鍵、およびセッション鍵を生成するためのデータが含まれたデータを、前記秘密鍵を用いて暗号化することにより、電子署名を生成させるようにすることができる。
【００１６】
本発明の第２の側面の情報処理方法またはプログラムは、所定の装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成し、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成するステップを含む。
【００１７】
本発明の第２の側面においては、所定の装置の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵が生成され、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータが、記憶されている秘密鍵が用いられて暗号化されることにより、電子署名が生成される。
【００１８】
本発明の第３の側面の情報処理装置には、送信されてきた、複数の記録領域のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報を受信する受信手段と、受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する生成手段と、前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号手段と、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および前記生成手段により生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証手段とが設けられている。
【００１９】
この情報処理装置には、複数の前記記録領域のそれぞれを有し、前記記録領域のそれぞれに関係付けられた認証データのそれぞれを記憶する記憶手段をさらに設けることができる。
【００２０】
本発明の第３の側面の情報処理方法またはプログラムは、送信されてきた、複数の記録領域のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報を受信し、受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成し、前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号し、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証するステップを含む。
【００２１】
本発明の第３の側面においては、送信されてきた、複数の記録領域のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報が受信され、受信された前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵が生成され、前記秘密鍵に対応する公開鍵が用いられて前記電子署名が復号され、前記電子署名が復号されることにより得られたデータに含まれる領域指定情報および縮退鍵と、受信された前記領域指定情報、および生成された前記縮退鍵とが比較されて、前記電子署名の正当性が検証される。
【００２２】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００２３】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【発明の効果】
【００２４】
以上のように、本発明の一側面によれば、非対称鍵暗号方式によりデータを暗号化して認証を行うことができる。特に、本発明の一側面によれば、非対称鍵暗号方式によりデータを暗号化して、より迅速に認証を行うことができる。
【発明を実施するための最良の形態】
【００２５】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２６】
本発明の第１の側面は、第１の情報処理装置（例えば、図２のリーダライタ１１）および第２の情報処理装置（例えば、図２の端末装置１２）からなる認証システムにおいて、前記第１の情報処理装置は、前記第２の情報処理装置の複数の記録領域（例えば、図２の記録領域１１１乃至記録領域１１５）のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成手段（例えば、図２の縮退処理部３２）と、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成手段（例えば、図２の暗号化部５１）と、前記領域指定情報および前記電子署名を送信する送信手段（例えば、図２の通信部３５）とを備え、前記第２の情報処理装置は、前記第１の情報処理装置から送信されてきた前記領域指定情報および前記電子署名を受信する受信手段（例えば、図２の通信部９５）と、受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する第３の生成手段（例えば、図２の縮退処理部９２）と、前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号手段（例えば、図２の復号部１１７）と、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、前記第１の情報処理装置から受信した前記領域指定情報、および前記第３の生成手段により生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証手段（例えば、図２の制御部９３）とを備える認証システムである。
【００２７】
本発明の第２の側面の情報処理装置は、所定の装置（例えば、図２の端末装置１２）の複数の記録領域（例えば、図２の記録領域１１１乃至記録領域１１５）のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成する第１の生成手段（例えば、図２の縮退処理部３２）と、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する第２の生成手段（例えば、図２の暗号化部５１）とを備える。
【００２８】
前記第２の生成手段（例えば、図６のステップＳ６５の処理を実行する暗号化部５１）には、前記領域指定情報、前記縮退鍵、およびセッション鍵を生成するためのデータが含まれたデータを、前記秘密鍵を用いて暗号化することにより、電子署名を生成させるようにすることができる。
【００２９】
本発明の第２の側面の情報処理方法またはプログラムは、所定の装置（例えば、図２の端末装置１２）の複数の記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に、１つの縮退鍵を生成し（例えば、図６のステップＳ６３）、前記記録領域のそれぞれを特定するための領域指定情報および前記縮退鍵が含まれたデータを、記憶している秘密鍵を用いて暗号化することにより、電子署名を生成する（例えば、図６のステップＳ６５）ステップを含む。
【００３０】
本発明の第３の側面の情報処理装置は、送信されてきた、複数の記録領域（例えば、図２の記録領域１１１乃至記録領域１１５）のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報を受信する受信手段（例えば、図２の通信部９５）と、受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成する生成手段（例えば、図２の縮退処理部９２）と、前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号する復号手段（例えば、図２の復号部１１７）と、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および前記生成手段により生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する検証手段（例えば、図２の制御部９３）とを備える。
【００３１】
この情報処理装置には、複数の前記記録領域のそれぞれを有し、前記記録領域のそれぞれに関係付けられた認証データのそれぞれを記憶する記憶手段（例えば、図２のメモリ９１）をさらに設けることができる。
【００３２】
本発明の第３の側面の情報処理方法またはプログラムは、送信されてきた、複数の記録領域（例えば、図２の記録領域１１１乃至記録領域１１５）のそれぞれを特定するための領域指定情報と前記領域指定情報により特定される前記記録領域のそれぞれに関係付けられた認証データのそれぞれのうちの２以上の前記認証データを基に生成された１つの縮退鍵とが含まれているデータが所定の秘密鍵により暗号化されて生成された電子署名、および前記領域指定情報を受信し（例えば、図７のステップＳ９１）、受信した前記領域指定情報により示される前記記録領域のそれぞれに関係付けられた認証データのそれぞれを基に、１つの縮退鍵を生成し（例えば、図７のステップＳ９２）、前記秘密鍵に対応する公開鍵を用いて前記電子署名を復号し（例えば、図７のステップＳ９４）、前記電子署名を復号することにより得られたデータに含まれる領域指定情報および縮退鍵と、受信した前記領域指定情報、および生成された前記縮退鍵とを比較して、前記電子署名の正当性を検証する（例えば、図７のステップＳ９５）ステップを含む。
【００３３】
本発明は、無線または有線によりデータを送受信して認証を行う認証システムなどに適用することができる。
【００３４】
以下、図面を参照して、本発明を適用した実施の形態について説明する。
【００３５】
図１は、本発明を適用した認証システムの一実施の形態の構成例を示している。この認証システムは、例えば、コンピュータ、所定のサービスを提供するための専用の装置などからなるリーダライタ１１、および例えば、パーソナルコンピュータ、ＩＣカードなどからなる端末装置１２から構成され、リーダライタ１１と端末装置１２との間では、有線または無線によりデータの送受信が行われるようになされている。
【００３６】
リーダライタ１１はポーリングを行うことにより端末装置１２を検出し、リーダライタ１１により端末装置１２が検出されると、リーダライタ１１および端末装置１２は、所定のデータを送受信して認証を行う。そして、例えば、リーダライタ１１は、端末装置１２の所定の記録領域にアクセスして、その記録領域にデータを書き込むか、またはその記録領域からデータを読み出して、端末装置１２（の所有者）に対して所定のサービスを提供する。
【００３７】
図２は、図１のリーダライタ１１および端末装置１２の機能の構成を示すブロック図である。
【００３８】
リーダライタ１１は、メモリ３１、縮退処理部３２、制御部３３、連結部３４、通信部３５、およびドライブ３６を含むように構成される。
【００３９】
メモリ３１は、書き換え可能で、電源が遮断されても記録内容を保持できる、いわゆる不揮発性の記憶媒体または記録媒体からなり、例えば、ハードディスクまたはフラッシュメモリなどにより構成される。メモリ３１には、端末装置１２のメモリ９１の各記録領域にアクセスするために必要な、認証に用いられるデータ（認証データ）である暗号鍵（認証鍵）、所定の処理を実行するためのプログラム、各種のデータなどが記録されている。
【００４０】
例えば、端末装置１２のメモリ９１の各記録領域には、それぞれ１つの暗号鍵が関係付けられており、メモリ３１には、例えば、端末装置１２のメモリ９１に設けられた記録領域１１１にアクセスするために必要な暗号鍵Ｋ１、記録領域１１２にアクセスするために必要な暗号鍵Ｋ２、および記録領域１１４にアクセスするために必要な暗号鍵Ｋ４が予め記録されている。したがって、この場合、リーダライタ１１は、記録している暗号鍵を用いて認証を行うことで、端末装置１２の記録領域１１１、記録領域１１２、または記録領域１１４にアクセスすることができる。
【００４１】
また、メモリ３１は、例えば、信頼できる所定の第三者機関（以下、認証局と称する）により生成された、リーダライタ１１が公開する公開鍵KA2の正当性を証明するための公開鍵証明書CertAを記録している。公開鍵証明書CertAには、例えば、リーダライタ１１が予め記憶している秘密鍵KA1に対応する公開鍵KA2、所定のデータである平文、および認証局により生成された電子署名SigC1が含まれている。メモリ３１は、記録している公開鍵証明書CertAなどのデータ、またはプログラムを制御部３３に供給し、制御部３３から供給されたデータまたはプログラムを記録する。
【００４２】
縮退処理部３２は、制御部３３から縮退鍵の生成が指示されると、メモリ３１に記録されている、端末装置１２のメモリ９１の各記録領域にアクセスするために必要な暗号鍵を基に縮退処理を行い、複数の暗号鍵から１つの縮退鍵を生成する。縮退処理部３２は、生成した縮退鍵を制御部３３に供給する。
【００４３】
制御部３３は、リーダライタ１１の各部を制御する。制御部３３は、暗号化部５１、復号部５２、乱数発生部５３、領域指定情報生成部５４、およびセッション鍵生成部５５を備えている。
【００４４】
暗号化部５１は、リーダライタ１１の電子署名SigAを生成する。例えば、暗号化部５１は、所定の乱数、縮退処理部３２から供給された縮退鍵、端末装置１２のメモリ９１の記録領域を指定する領域指定情報、およびセッション鍵を生成するためのオプショナルデータText2からなるデータを、予め記憶している秘密鍵KA1を用いて暗号化することにより、リーダライタ１１の電子署名SigAを生成する。また、暗号化部５１は、セッション鍵生成部５５により生成されたセッション鍵を用いて、所定のデータを暗号化する。
【００４５】
復号部５２は、連結部３４から供給された、端末装置１２が公開する公開鍵KB2の正当性を証明するための公開鍵証明書CertBに含まれている、認証局により生成された電子署名SigC2を予め記憶している認証局の公開鍵KC2を用いて復号する。また、復号部５２は、公開鍵証明書CertBに含まれている、端末装置１２の秘密鍵KB1に対応する公開鍵KB2を記憶する。なお、公開鍵証明書CertBには、端末装置１２が公開する公開鍵KB2、認証局の電子署名SigC2、および所定のデータである平文が含まれている。
【００４６】
さらに、復号部５２は、連結部３４から供給された端末装置１２の電子署名SigBを、記憶している端末装置１２の公開鍵KB2を用いて復号する。
【００４７】
乱数発生部５３は、所定の乱数を発生させる。領域指定情報生成部５４は、リーダライタ１１がアクセスする端末装置１２のメモリ９１の記録領域を指定する領域指定情報を生成する。
【００４８】
セッション鍵生成部５５は、乱数発生部５３により発生された乱数を基に、端末装置１２との通信において用いられるセッション鍵を生成するためのオプショナルデータText2を生成し、生成したオプショナルデータText2を記憶する。また、セッション鍵生成部５５は、連結部３４から供給された、セッション鍵を生成するためのオプショナルデータText3を基にセッション鍵を生成し、生成したセッション鍵を記憶する。
【００４９】
制御部３３は、復号部５２が復号した、公開鍵証明書CertBに含まれる認証局の電子署名SigC2、および公開鍵証明書CertBに含まれている平文に基づいて、公開鍵証明書CertBの正当性を検証する。また、制御部３３は、復号部５２により復号された端末装置１２の電子署名SigB、および連結部３４から供給された乱数、オプショナルデータText3などのデータに基づいて、端末装置１２の電子署名SigBの正当性を検証する。
【００５０】
さらに、制御部３３は、メモリ３１から供給された公開鍵証明書CertA、電子署名SigA、所定の乱数、オプショナルデータText２などのデータを連結部３４に供給する。制御部３３は、連結部３４から供給されたデータ、またはドライブ３６から供給されたデータ若しくはプログラムをメモリ３１に供給する。さらに、また、制御部３３は、メモリ３１または連結部３４から供給されたデータをドライブ３６に供給する。
【００５１】
連結部３４は、制御部３３から供給されたデータを連結して通信部３５に供給する。ここで、連結とは、例えば、複数のデータを所定の順番に並べて１つのデータとなるように接続することをいう。例えば、連結部３４は、制御部３３から供給された電子署名SigA、所定の乱数、オプショナルデータText２などのデータを連結することにより、電子署名SigA、所定の乱数、オプショナルデータText2などのデータが連結されたデータであるトークンTABを生成する。そして、さらに、連結部３４は、トークンTABおよび公開鍵証明書CertAを連結して通信部３５に供給する。
【００５２】
また、連結部３４は、通信部３５から供給されたデータを必要に応じて分離させ、分離させたデータを制御部３３に供給する。ここで、分離とは、連結されているデータのそれぞれを切り離すことをいう。例えば、連結部３４は、通信部３５から供給されたデータから、電子署名SigB、所定の乱数、オプショナルデータText3などのデータが連結されたデータであるトークンTBA、および公開鍵証明書CertBを分離させ、さらに、トークンTBAを電子署名SigB、所定の乱数、オプショナルデータText3などに分離して、分離された公開鍵証明書CertB、電子署名SigB、所定の乱数、オプショナルデータText3などを制御部３３に供給する。
【００５３】
通信部３５は、連結部３４から供給されたデータを有線または無線により端末装置１２に送信する。例えば、通信部３５は、連結された公開鍵証明書CertA、トークンTABなどを端末装置１２に送信する。
【００５４】
また、通信部３５は、端末装置１２から送信されてきたデータを受信し、受信したデータを連結部３４に供給する。例えば、通信部３５は、端末装置１２から送信されてきた、連結されている公開鍵証明書CertB、トークンTBAなどを受信して連結部３４に供給する。
【００５５】
ドライブ３６は、磁気ディスク、光ディスク、光磁気ディスク、あるいは半導体メモリなどからなるリムーバブルメディア７１が装着されると、リムーバブルメディア７１を駆動し、リムーバブルメディア７１に記録されているデータやプログラムを読み出して制御部３３に供給する。また、ドライブ３６は、制御部３３から供給されたデータをリムーバブルメディア７１に供給して記録させる。
【００５６】
端末装置１２は、メモリ９１、縮退処理部９２、制御部９３、連結部９４、および通信部９５を含むように構成される。
【００５７】
メモリ９１は、例えば、マスクROM（Read Only Memory）、フラッシュメモリ、EPROM（Erasable Programmable Read Only Memory）、またはEEPROM（Electrically Erasable Programmable Read Only Memory）などの不揮発性メモリなどにより構成され、リーダライタ１１に送信される秘匿すべきデータ、プログラムの実行に必要なデータなどの各種のデータを記録している。
【００５８】
メモリ９１には、記録領域１１１乃至記録領域１１５が設けられ、各記録領域には、リーダライタ１１に送信される秘匿すべきデータが記録されている。また、メモリ９１は、記録領域１１１乃至記録領域１１５のそれぞれに関係付けられた、記録領域１１１乃至記録領域１１５のそれぞれにアクセスするために必要な、認証に用いられるデータ（認証データ）である暗号鍵Ｋ１乃至暗号鍵Ｋ５のそれぞれを予め記録している。さらに、メモリ９１は、認証局により生成された、端末装置１２が公開する公開鍵KB2の正当性を証明するための公開鍵証明書CertBを記録している。メモリ９１は、記録している公開鍵証明書CertBなどのデータ、またはプログラムを制御部９３に供給し、制御部９３から供給されたデータまたはプログラムを記録する。
【００５９】
縮退処理部９２は、制御部９３から領域指定情報が供給されると、供給された領域指定情報により示される（特定される）記録領域にアクセスするために必要な暗号鍵をメモリ９１から取得し、取得した暗号鍵を基に縮退処理を行い、複数の暗号鍵から１つの縮退鍵を生成する。縮退処理部９２は、生成した縮退鍵を制御部９３に供給する。
【００６０】
制御部９３は、端末装置１２の各部を制御する。制御部９３は、暗号化部１１６、復号部１１７、乱数発生部１１８、およびセッション鍵生成部１１９を備えている。
【００６１】
暗号化部１１６は、端末装置１２の電子署名SigBを生成する。例えば、暗号化部１１６は、所定の乱数、セッション鍵を生成するためのオプショナルデータText3などからなるデータを、予め記憶している秘密鍵KB1を用いて暗号化することにより、端末装置１２の電子署名SigBを生成する。
【００６２】
復号部１１７は、連結部９４から供給された、リーダライタ１１の公開鍵証明書CertAに含まれている、認証局により生成された電子署名SigC1を、予め記憶している認証局の公開鍵KC2を用いて復号する。また、復号部１１７は、公開鍵証明書CertAに含まれている、リーダライタ１１の秘密鍵KA1に対応する公開鍵KA2を記憶する。さらに、復号部１１７は、連結部９４から供給されたリーダライタ１１の電子署名SigAを、記憶しているリーダライタ１１の公開鍵KA2を用いて復号する。さらに、また、復号部１１７は、セッション鍵生成部１１９により生成されたセッション鍵を用いて、連結部９４から供給されたデータを復号する。
【００６３】
乱数発生部１１８は、所定の乱数を発生させる。
【００６４】
セッション鍵生成部１１９は、乱数発生部１１８により発生された乱数を基に、リーダライタ１１との通信において用いられるセッション鍵を生成するためのオプショナルデータText3を生成し、生成したオプショナルデータText3を記憶する。また、セッション鍵生成部１１９は、連結部９４から供給された、セッション鍵を生成するためのオプショナルデータText2を基にセッション鍵を生成し、生成したセッション鍵を記憶する。
【００６５】
制御部９３は、復号部１１７が復号した、公開鍵証明書CertAに含まれている認証局の電子署名SigC1、および公開鍵証明書CertAに含まれている平文に基づいて、公開鍵証明書CertAの正当性を検証する。また、制御部９３は、復号部１１７により復号されたリーダライタ１１の電子署名SigA、縮退処理部９２から供給された縮退鍵、および連結部９４から供給された乱数、オプショナルデータText2、領域指定情報などのデータに基づいて、リーダライタ１１の電子署名SigAの正当性を検証する。
【００６６】
さらに、制御部９３は、メモリ９１から供給された公開鍵証明書CertB、電子署名SigB、所定の乱数、オプショナルデータText3などのデータを連結部９４に供給する。さらに、また、制御部９３は、連結部９４から供給された領域指定情報を縮退処理部９２に供給する。制御部９３は、連結部９４から供給されたデータまたはプログラムをメモリ９１に供給する。
【００６７】
連結部９４は、制御部９３から供給されたデータを連結して通信部９５に供給する。例えば、連結部９４は、制御部９３から供給された電子署名SigB、所定の乱数、オプショナルデータText3などのデータを連結してトークンTBAを生成し、さらに、トークンTBAおよび公開鍵証明書CertBを連結して通信部９５に供給する。
【００６８】
また、連結部９４は、通信部９５から供給されたデータを必要に応じて分離させ、分離させたデータを制御部９３に供給する。例えば、連結部９４は、通信部９５から供給されたデータから、公開鍵証明書CertA、トークンTABなどを分離させ、さらに、トークンTABから電子署名SigA、所定の乱数、オプショナルデータText2などを分離させて、分離させた公開鍵証明書CertA、電子署名SigA、所定の乱数、オプショナルデータText2などを制御部９３に供給する。
【００６９】
通信部９５は、連結部９４から供給されたデータを有線または無線によりリーダライタ１１に送信する。例えば、通信部９５は、連結された公開鍵証明書CertB、トークンTBAなどをリーダライタ１１に送信する。
【００７０】
また、通信部９５は、リーダライタ１１から送信されてきたデータを受信し、受信したデータを連結部９４に供給する。例えば、通信部９５は、リーダライタ１１から送信されてきた、連結されている公開鍵証明書CertA、トークンTABなどを受信して連結部９４に供給する。
【００７１】
図３は、図２の縮退処理部３２のより詳細な構成例を示すブロック図である。
【００７２】
縮退処理部３２は、縮退回路１４１および縮退回路１４２を含むように構成される。例えば、リーダライタ１１が、端末装置１２のメモリ９１の記録領域１１１、記録領域１１２、および記録領域１１４にアクセスする場合、縮退処理部３２は、メモリ３１から、記録領域１１１、記録領域１１２、および記録領域１１４にアクセスするために必要な暗号鍵Ｋ１、暗号鍵Ｋ２、および暗号鍵Ｋ４を取得する。
【００７３】
そして、例えば、縮退回路１４１は暗号鍵Ｋ１を、暗号鍵Ｋ２を用いてDES（Data Encryption Standard）、FEAL（Fast Data Encipherment Algorithm）などの方式により暗号化し、暗号化された暗号鍵Ｋ１を縮退回路１４２に供給する。
【００７４】
縮退回路１４２は、縮退回路１４１から暗号化された暗号鍵Ｋ１が供給されると、暗号化された暗号鍵Ｋ１を、暗号鍵Ｋ４を用いて、例えば、DES、FEALなどの方式によりさらに暗号化し、暗号鍵Ｋ４を用いてさらに暗号化された暗号鍵Ｋ１を縮退鍵として、制御部３３に供給する。
【００７５】
なお、暗号鍵Ｋ１、暗号鍵Ｋ２、および暗号鍵Ｋ４を基に縮退鍵を生成する場合、例えば、予め定められた所定のデータを、暗号鍵Ｋ１、暗号鍵Ｋ２、および暗号鍵Ｋ４をそれぞれ順番に用いて暗号化し、これにより得られる暗号化されたデータを縮退鍵としてもよい。この場合、例えば、縮退処理部３２は、予め定められた所定のデータを、暗号鍵Ｋ１を用いてDES、FEALなどの方式により暗号化し、暗号鍵Ｋ１を用いて暗号化されたデータをさらに、暗号鍵Ｋ２を用いて、例えば、DES、FEALなどの方式により暗号化する。そして、暗号鍵Ｋ２を用いて暗号化されたデータを、さらに暗号鍵Ｋ４を用いてDES、FEALなどの方式により暗号化し、これにより得られたデータを縮退鍵とする。
【００７６】
図４は、図２の縮退処理部９２のより詳細な構成例を示すブロック図である。
【００７７】
縮退処理部９２は、縮退回路１６１−１乃至縮退回路１６１−４を含むように構成される。縮退処理部９２は、制御部９３から供給された領域指定情報に基づいて、暗号鍵Ｋ１乃至暗号鍵Ｋ５のうち、領域指定情報により示される記録領域に関係付けられた暗号鍵をメモリ９１から取得する。したがって、縮退回路１６１−１乃至縮退回路１６１−４のそれぞれには、必要に応じて暗号鍵Ｋ２乃至暗号鍵Ｋ５のそれぞれが供給される。
【００７８】
縮退回路１６１−１は、暗号鍵Ｋ１を、暗号鍵Ｋ２を用いて、例えば、DES、FEALなどの方式により暗号化し、暗号化された暗号鍵Ｋ１を縮退回路１６１−２に供給する。縮退回路１６１−２および縮退回路１６１−３は、縮退回路１６１−１および縮退回路１６１−２から供給されたデータを、暗号鍵Ｋ３および暗号鍵Ｋ４を用いて、例えば、DES、FEALなどの方式により暗号化して、縮退回路１６１−３および縮退回路１６１−４に供給する。縮退回路１６１−４は、縮退回路１６１−３から供給されたデータを、暗号鍵Ｋ５を用いて、例えば、DES、FEALなどの方式により暗号化し、これにより得られたデータを縮退鍵として制御部９３に供給する。
【００７９】
なお、以下、縮退回路１６１−１乃至縮退回路１６１−４のそれぞれを個々に区別する必要のない場合、単に縮退回路１６１と称する。
【００８０】
また、縮退回路１６１−１乃至縮退回路１６１−４のそれぞれは、例えば、暗号鍵Ｋ２乃至暗号鍵Ｋ５のそれぞれが供給されなかった場合、暗号鍵Ｋ１、および縮退回路１６１−１乃至縮退回路１６１−３のそれぞれから供給されたデータのそれぞれを、暗号化せずにそのまま縮退回路１６１−２乃至縮退回路１６１−３および制御部９３のそれぞれに供給する。
【００８１】
さらに、縮退回路１６１−１は、例えば、暗号鍵Ｋ１が供給されず、暗号鍵Ｋ２が供給された場合、供給された暗号鍵Ｋ２を縮退回路１６１−２に供給する。また、縮退回路１６１−２乃至縮退回路１６１−４のそれぞれは、例えば、縮退回路１６１−１乃至縮退回路１６１−３のそれぞれからデータが供給されず、暗号鍵Ｋ３乃至暗号鍵Ｋ５のそれぞれが供給された場合、供給された暗号鍵Ｋ３乃至暗号鍵Ｋ５のそれぞれを、縮退回路１６１−３、縮退回路１６１−４、および制御部９３のそれぞれに供給する。さらに、また、予め定められた所定のデータを、領域指定情報により示される記録領域に関係付けられた暗号鍵をそれぞれ順番に用いて暗号化し、これにより得られる暗号化されたデータを縮退鍵としてもよい。
【００８２】
さらに、また、例えば、端末装置１２のメモリ９１にｎ個（但しｎは整数）の記録領域が設けられ、それぞれの記録領域に暗号鍵Ｋ１乃至暗号鍵Ｋｎのそれぞれが関係付けられている場合、縮退処理部９２に、図４に示した縮退回路１６１と同様の（ｎ−１）個の縮退回路（例えば、縮退回路１６１−１乃至縮退回路１６１−ｎとする）を設けることにより、１つの縮退鍵を生成することができる。この場合、縮退回路１６１−ｉ（但し、１≦ｉ≦ｎ）は、縮退回路１６１−（ｉ−１）から供給されたデータを、暗号鍵Ｋ（ｉ＋１）を用いて暗号化し、縮退回路１６１−（ｉ＋１）に供給する。
【００８３】
次に、図５のフローチャートを参照して、リーダライタ１１および端末装置１２が、データを送受信して認証を行う認証の処理を説明する。
【００８４】
ステップＳ１１において、リーダライタ１１はポーリングを行い、端末装置１２を検出する。例えば、制御部３３は、所定の時間間隔でポーリングに対する応答を要求する要求信号を生成し、生成した要求信号を、連結部３４を介して通信部３５に供給する。通信部３５は、制御部３３から供給された要求信号を有線または無線により、端末装置１２に送信する。
【００８５】
リーダライタ１１から要求信号が送信されてくると、端末装置１２はこれを受信する。すなわち、通信部９５は、リーダライタ１１から送信されてきた要求信号を受信して、受信した要求信号を、連結部９４を介して制御部９３に供給する。
【００８６】
制御部９３に要求信号が供給されると、ステップＳ３１において、端末装置１２は、所定の乱数およびオプショナルデータをリーダライタ１１に送信する。例えば、乱数発生部１１８は、64bitの所定の乱数RB1を発生させ、制御部９３は、所定のオプショナルデータText1を生成する。例えば、制御部９３は、予め定められている、端末装置１２を特定するための識別子をオプショナルデータText1として生成する。制御部９３は、乱数RB1およびオプショナルデータText1を連結部９４に供給する。
【００８７】
連結部９４は、制御部９３から乱数RB1およびオプショナルデータText1が供給されると、供給された乱数RB1およびオプショナルデータText1を連結して、通信部９５に供給する。そして、通信部９５は、連結部９４から供給された乱数RB1およびオプショナルデータText1を、リーダライタ１１に送信する。
【００８８】
端末装置１２から、連結された乱数RB1およびオプショナルデータText1が送信されてくると、ステップＳ１２において、リーダライタ１１は、電子署名の生成の処理を行う。なお、電子署名の生成の処理の詳細は後述するが、電子署名の生成の処理において、リーダライタ１１は、端末装置１２から送信されてきた乱数RB1およびオプショナルデータText1を受信して、領域指定情報、縮退鍵、オプショナルデータText2、および電子署名SigAを生成する。そして、リーダライタ１１は、所定の乱数、領域指定情報、オプショナルデータText2、電子署名SigAなどが含まれるトークンTABを生成し、生成したトークンTABおよび公開鍵証明書CertAを端末装置１２に送信する。
【００８９】
リーダライタ１１からトークンTABおよび公開鍵証明書CertAが送信されてくると、ステップＳ３２において、端末装置１２は検証の処理を行う。なお、検証の処理の詳細は後述するが検証の処理において、端末装置１２は、リーダライタ１１から送信されてきたトークンTABおよび公開鍵証明書CertAを受信し、受信した公開鍵証明書CertA、およびトークンTABに含まれている電子署名SigAの正当性を検証する。
【００９０】
ステップＳ３３において、端末装置１２は、電子署名の生成の処理を行う。なお、電子署名の生成の処理の詳細は後述するが、電子署名の生成の処理において、端末装置１２は、オプショナルデータText3および電子署名SigBが含まれるトークンTBAを生成し、生成したトークンTBAおよび公開鍵証明書CertBをリーダライタ１１に送信する。
【００９１】
また、電子署名の生成の処理を行うと、ステップＳ３４にいて、端末装置１２はセッション鍵を生成する。例えば、セッション鍵生成部１１９は、ステップＳ３２の検証の処理においてリーダライタ１１から受信したオプショナルデータText2、およびステップＳ３３の電子署名の生成の処理において生成したオプショナルデータText3を基に、セッション鍵を生成する。ここで、例えば、IEEE（the Institute of Electrical and Electronic Engineers）P1363/D3に基づく楕円曲線暗号方式のセッション鍵を生成する場合、予め定められた所定の楕円曲線上の１点をＧ（以下、ベースポイントＧとも称する）とし、リーダライタ１１の乱数発生部５３によって発生された所定の乱数を乱数ＡＫ、端末装置１２の乱数発生部１１８によって発生された所定の乱数を乱数ＢＫとすると、例えば、オプショナルデータText2は、ベースポイントＧ（の値）に乱数ＡＫを掛け合わせた値AKGとされ、オプショナルデータText3は、ベースポイントＧ（の値）に乱数ＢＫを掛け合わせた値BKGとされる。
【００９２】
そこで、セッション鍵生成部１１９は、オプショナルデータText2およびオプショナルデータText3を基に、例えば、オプショナルデータText2（AKG）に乱数ＢＫを掛け合わせることによりセッション鍵を生成する。この場合、セッション鍵は、オプショナルデータText2（AKG）に乱数ＢＫを掛け合わせた値AKBKGとなる。
【００９３】
また、ステップＳ３３において、端末装置１２が電子署名の生成の処理を行うと、リーダライタ１１には、端末装置１２からトークンTBAおよび公開鍵証明書CertBが送信されてくるので、ステップＳ１３において、リーダライタ１１は検証の処理を行う。なお、検証の処理の詳細は後述するが、検証の処理において、リーダライタ１１は、トークンTBAおよび公開鍵証明書CertBを受信し、受信した公開鍵証明書CertB、およびトークンTBAに含まれている電子署名SigBの正当性を検証する。このとき、公開鍵証明書CertB、および電子署名SigBが正当なものであると判定された場合、リーダライタ１１は、領域指定情報により指定した端末装置１２のメモリ９１の記録領域へのアクセスを開始する。
【００９４】
ステップＳ１４において、セッション鍵生成部５５はセッション鍵を生成する。例えば、
セッション鍵生成部５５は、ステップＳ１３の検証の処理において端末装置１２から受信したオプショナルデータText3、およびステップＳ１２の電子署名の生成の処理において生成したオプショナルデータText2を基に、セッション鍵を生成する。
【００９５】
例えば、IEEE P1363/D3に基づく楕円曲線暗号方式のセッション鍵を生成する場合、予め定められたベースポイントをＧとし、リーダライタ１１の乱数発生部５３によって発生された所定の乱数を乱数ＡＫ、端末装置１２の乱数発生部１１８によって発生された所定の乱数を乱数ＢＫとすると、例えば、オプショナルデータText2は、ベースポイントＧ（の値）に乱数ＡＫを掛け合わせた値AKGとされ、オプショナルデータText3は、ベースポイントＧ（の値）に乱数ＢＫを掛け合わせた値BKGとされるので、セッション鍵生成部５５は、オプショナルデータText2およびオプショナルデータText3を基に、例えば、オプショナルデータText3（BKG）に乱数ＡＫを掛け合わせることによりセッション鍵を生成する。この場合、セッション鍵は、オプショナルデータText3（BKG）に乱数ＡＫを掛け合わせた値AKBKGとなる。
【００９６】
ステップＳ１５において、暗号化部５１は、端末装置１２のメモリ９１の所定の記録領域に記録させるデータを、セッション鍵生成部５５により生成されたセッション鍵を用いて暗号化する。例えば、暗号化部５１は、端末装置１２のメモリ９１の記録領域１１１、記録領域１１２、および記録領域１１４のそれぞれに記録させるデータのそれぞれを、セッション鍵生成部５５により生成されたセッション鍵を用いて、例えば、楕円曲線暗号方式により暗号化する。制御部３３は、暗号化部５１により暗号化されたデータを、連結部３４を介して通信部３５に供給する。
【００９７】
ステップＳ１６において、通信部３５は、連結部３４を介して制御部３３から供給されたデータを、有線または無線により端末装置１２に送信し、リーダライタ１１による認証の処理は終了する。
【００９８】
また、リーダライタ１１の通信部３５が端末装置１２にデータを送信すると、ステップＳ３５において、端末装置１２の通信部９５は、リーダライタ１１から送信されてきたデータを受信し、受信したデータを、連結部９４を介して制御部９３に供給する。
【００９９】
ステップＳ３６において、復号部１１７は、連結部９４を介して通信部９５から供給されたデータを、セッション鍵生成部１１９により生成されたセッション鍵を用いて、例えば、楕円曲線暗号方式により復号する。
【０１００】
ステップＳ３７において、制御部９３は、復号部１１７により復号されたデータを、メモリ９１に供給して記録させ、端末装置１２による認証の処理は終了する。例えば、制御部９３は、復号部１１７により復号されたデータをメモリ９１に供給し、供給したデータを、領域指定情報により指定されたメモリ９１の記録領域（例えば、記録領域１１１）に記録させる。
【０１０１】
このようにして、リーダライタ１１は、アクセスしようとする端末装置１２のメモリ９１の記録領域のそれぞれに関係付けられた暗号鍵のそれぞれを基に、１つの縮退鍵を生成する。そして、リーダライタ１１は、生成した縮退鍵を用いて、アクセスする記録領域を指定する領域指定情報および電子署名SigAを生成して端末装置１２に送信する。これに対して、端末装置１２は、リーダライタ１１からの領域指定情報および電子署名SigAを受信して、領域指定情報に基づいて縮退鍵を生成し、生成した縮退鍵を用いて電子署名SigAの正当性を検証する。
【０１０２】
このように、アクセスしようとする記録領域のそれぞれに関係付けられた暗号鍵のそれぞれを基に、１つの縮退鍵を生成し、生成した縮退鍵を用いて認証を行うことにより、アクセスしようとする記録領域ごとに認証を行う必要がなくなるので、リーダライタ１１および端末装置１２は、非対称鍵暗号方式によりデータを暗号化して認証を行う場合においても、より迅速に認証を行うことができる。
【０１０３】
なお、図５のフローチャートを参照して、リーダライタ１１が、端末装置１２のメモリ９１に設けられた所定の記録領域にデータを記録させる場合について説明したが、リーダライタ１１と端末装置１２とが認証を行った後、リーダライタ１１が、端末装置１２のメモリ９１に設けられた所定の記録領域にアクセスして、その記録領域に記録されているデータを読み出すようにすることももちろん可能である。
【０１０４】
この場合、端末装置１２の暗号化部１１６は、リーダライタ１１により読み出される、メモリ９１の記録領域に記録されているデータを、セッション鍵生成部１１９により生成されたセッション鍵を用いて暗号化し、通信部９５は、暗号化部１１６により暗号化されたデータをリーダライタ１１に送信する。そして、リーダライタ１１の通信部３５は、端末装置１２から送信されてきたデータを受信し、復号部５２は受信されたデータを、セッション鍵生成部５５により生成されたセッション鍵を用いて復号する。
【０１０５】
次に、図６のフローチャートを参照して、図５のステップＳ１２の処理に対応する、リーダライタによる電子署名の生成の処理を説明する。
【０１０６】
ステップＳ６１において、通信部３５は、端末装置１２から送信されてきた乱数RB1およびオプショナルデータText1を受信して連結部３４に供給する。連結部３４は、通信部３５から供給された、連結されている乱数RB1およびオプショナルデータText1を分離させて、分離された乱数RB1およびオプショナルデータText1を制御部３３に供給する。
【０１０７】
ステップＳ６２において、制御部３３の領域指定情報生成部５４は、アクセスする端末装置１２のメモリ９１の記録領域を指定する領域指定情報を生成する。例えば、リーダライタ１１がアクセスする端末装置１２の記録領域は、リーダライタ１１が端末装置１２（を所有する利用者）に提供するサービスにより予め定められており、例えば、領域指定情報生成部５４は、アクセスする記録領域として、記録領域１１１、記録領域１１２、および記録領域１１４を示す領域指定情報を生成する。
【０１０８】
領域指定情報生成部５４が領域指定情報を生成すると、制御部３３は、縮退処理部３２に対して、生成された領域指定情報により示される記録領域に関係付けられた暗号鍵のそれぞれを指定して、縮退鍵の生成を指示する。
【０１０９】
ステップＳ６３において、縮退処理部３２は、制御部３３からの指示に基づいて、メモリ３１から暗号鍵を取得し、取得した暗号鍵を基に縮退鍵を生成する。例えば、制御部３３から、暗号鍵として暗号鍵Ｋ１、暗号鍵Ｋ２、および暗号鍵Ｋ４が指定された場合、縮退処理部３２は、指定された暗号鍵Ｋ１、暗号鍵Ｋ２、および暗号鍵Ｋ４をメモリ３１から取得する。そして、縮退回路１４１は、暗号鍵Ｋ２を用いて、例えば、DES、FEALなどの方式により暗号鍵Ｋ１を暗号化し、暗号化された暗号鍵Ｋ１を縮退回路１４２に供給する。縮退回路１４２は、暗号鍵Ｋ４を用いて、例えば、DES、FEALなどの方式により、縮退回路１４１から供給された暗号化された暗号鍵Ｋ１をさらに暗号化し、これにより得られた、暗号化された暗号鍵Ｋ１を縮退鍵として制御部３３に供給する。
【０１１０】
ステップＳ６４において、セッション鍵生成部５５は、オプショナルデータText2を生成する。例えば、乱数発生部５３は、所定の乱数ＡＫを発生させ、セッション鍵生成部５５は、発生された乱数ＡＫに、予め記憶している所定の楕円曲線上のベースポイントＧ（の値）を掛け合わせることにより、オプショナルデータText2（AKG）を生成する。
【０１１１】
ステップＳ６５において、暗号化部５１は、電子署名SigAを生成する。例えば、乱数発生部５３は、64bitの所定の乱数RA1を発生させる。乱数RA1が発生されると、制御部３３は、例えば、発生された乱数RA1、連結部３４から供給された乱数RB1、領域指定情報生成部５４により生成された領域指定情報、縮退処理部３２から供給された縮退鍵、およびセッション鍵生成部５５により生成されたオプショナルデータText2を、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2の順番に並べて連結する。そして、暗号化部５１は、連結された乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2を、例えば、予め記憶している秘密鍵KA1を用いて、楕円曲線暗号などの方式により暗号化することによって電子署名SigAを生成する。
【０１１２】
電子署名SigAが生成されると、制御部３３はメモリ３１から、リーダライタ１１が公開する公開鍵KA2の正当性を証明するための公開鍵証明書CertAを取得する。そして、制御部３３は、取得した公開鍵証明書CertA、乱数RA1、乱数RB1、領域指定情報、オプショナルデータText2、および電子署名SigAを連結部３４に供給する。
【０１１３】
ステップＳ６６において、連結部３４は、制御部３３から供給された乱数RA1、乱数RB1、領域指定情報、オプショナルデータText2、および電子署名SigAを、乱数RA1、乱数RB1、領域指定情報、オプショナルデータText2、および電子署名SigAの順番に並べて連結することによりトークンTABを生成する。そして、連結部３４は、さらに、公開鍵証明書CertAおよびトークンTABを、公開鍵証明書CertAおよびトークンTABの順番に並べて連結し、通信部３５に供給する。
【０１１４】
ステップＳ６７において、通信部３５は、連結部３４から供給された公開鍵証明書CertAおよびトークンTABを、有線または無線により端末装置１２に送信して、処理は図５のステップＳ１３に進む。
【０１１５】
このようにして、リーダライタ１１は、アクセスする端末装置１２のメモリ９１の記録領域のそれぞれに関係付けられた暗号鍵のそれぞれを基に、１つの縮退鍵を生成する。そして、リーダライタ１１は、領域指定情報および縮退鍵を用いて電子署名SigAを生成し、電子署名SigAおよび領域指定情報が含まれるトークンTABを端末装置１２に送信する。
【０１１６】
このように、複数の暗号鍵を基に、１つの縮退鍵を生成して認証を行うことによって、暗号鍵ごと（記録領域ごと）に認証を行う必要がなくなるので、より迅速に認証を行うことができる。また、端末装置１２のメモリ９１の記録領域ごとに暗号鍵を関係付けることによって、記録領域に関係付けられた暗号鍵を予め記録していない装置は、その暗号鍵により特定される端末装置１２のメモリ９１の記録領域にアクセスすることができないので、記録領域に記録されているデータが漏洩したり、記録領域に記録されているデータが改竄される可能性をより低くすることができ、その結果、リーダライタ１１および端末装置１２は、より安全に通信を行うことができる。
【０１１７】
さらに、リーダライタ１１が生成する電子署名SigAには、領域指定情報および縮退鍵が含まれているが、トークンTABには縮退鍵が含まれていないので、リーダライタ１１から端末装置１２には、縮退鍵そのものは送信されない。これにより、悪意の第三者への縮退鍵の漏洩を防止することができる。
【０１１８】
リーダライタ１１が、端末装置１２に公開鍵証明書CertAおよびトークンTABを送信すると、端末装置１２は、これを受信して検証の処理を行う。以下、図７のフローチャートを参照して、図５のステップＳ３２の処理に対応する、端末装置１２による検証の処理を説明する。
【０１１９】
リーダライタ１１から公開鍵証明書CertAおよびトークンTABが送信されてくると、ステップＳ９１において、通信部９５は、リーダライタ１１から送信されてきた公開鍵証明書CertAおよびトークンTABを受信して、連結部９４に供給する。
【０１２０】
連結部９４は、通信部９５から供給された、連結された公開鍵証明書CertAおよびトークンTABから、公開鍵証明書CertA、乱数RA1、乱数RB1、領域指定情報、オプショナルデータText2、および電子署名SigAを分離させ、分離された公開鍵証明書CertA、乱数RA1、乱数RB1、領域指定情報、オプショナルデータText2、および電子署名SigAを制御部９３に供給する。そして、制御部９３は、連結部９４から供給された領域指定情報を縮退処理部９２に供給する。
【０１２１】
ステップＳ９２において、縮退処理部９２は、制御部９３から供給された領域指定情報により示される記録領域にアクセスするために必要な暗号鍵をメモリ９１から取得し、取得した暗号鍵を基に１つの縮退鍵を生成する。例えば、制御部９３から供給された領域指定情報により指定された（特定される）記録領域が、記録領域１１１、記録領域１１２、および記録領域１１４である場合、縮退処理部９２は、指定された記録領域１１１、記録領域１１２、および記録領域１１４のそれぞれに関係付けられた暗号鍵Ｋ１、暗号鍵Ｋ２、および暗号鍵Ｋ４のそれぞれをメモリ９１から取得する。
【０１２２】
そして、例えば、縮退回路１６１−１は、暗号鍵Ｋ２を用いて、例えば、DES、FEALなどの方式により暗号鍵Ｋ１を暗号化し、暗号化された暗号鍵Ｋ１を、縮退回路１６１−
２に供給する。縮退回路１６１−２は、縮退処理部９２がメモリ９１から暗号鍵Ｋ３を取得していないので、縮退回路１６１−１からの暗号化された暗号鍵Ｋ１を、そのまま縮退回路１６１−３に供給する。縮退回路１６１−３は、暗号鍵Ｋ４を用いて、例えば、DES、FEALなどの方式により、縮退回路１６１−２から供給された、暗号化された暗号鍵Ｋ１をさらに暗号化し、これにより得られた、暗号化された暗号鍵Ｋ１を縮退回路１６１−４に供給する。縮退回路１６１−４は、縮退処理部９２がメモリ９１から暗号鍵Ｋ５を取得していないので、縮退回路１６１−３からの暗号化された暗号鍵Ｋ１を、縮退鍵としてそのまま制御部９３に供給する。
【０１２３】
ステップＳ９３において、制御部９３は、連結部９４から供給された、リーダライタ１１が公開する公開鍵KA2の正当性を証明するための公開鍵証明書CertAを検証する。例えば、公開鍵証明書CertAには、リーダライタ１１が公開する公開鍵KA2、所定のデータである平文、および認証局により生成された電子署名SigC1が含まれている。また、例えば、電子署名SigC1は、認証局が記録している秘密鍵KC1を用いて、所定の方式により公開鍵証明書CertAに含まれている平文のハッシュ値を暗号化したものとなっている。
【０１２４】
この場合、制御部９３は、公開鍵証明書CertAに含まれている平文のハッシュ値を求める。また、復号部１１７は、予め認証局から取得した、認証局の秘密鍵KC1に対応する公開鍵KC2を用いて、電子署名SigC1を復号する。そして、制御部９３は、求めた平文のハッシュ値と、復号された電子署名SigC1とを比較することにより、公開鍵証明書CertAの正当性を検証する。
【０１２５】
例えば、求めた平文のハッシュ値と、復号された電子署名SigC1とが同一である（一致する）場合、制御部９３は、公開鍵証明書CertAは正当なものである、すなわち、公開鍵証明書CertAに含まれている公開鍵KA2は、正規のリーダライタ１１（サービス提供者）により公開された公開鍵であると判定して、公開鍵KA2を用いて、リーダライタ１１との通信を継続して行う。これに対して、求めた平文のハッシュ値と、復号された電子署名SigC1とが同一でない場合、制御部９３は、公開鍵証明書CertAは正当なものではない、すなわち、公開鍵証明書CertAに含まれている公開鍵KA2は、正規のリーダライタ１１により公開された公開鍵ではないと判定して、リーダライタ１１との通信を終了する。
【０１２６】
公開鍵証明書CertAの検証を行うと、ステップＳ９４において、復号部１１７は、公開鍵証明書CertAに含まれている公開鍵KA2を用いて、例えば、楕円曲線暗号などの方式により、連結部９４から供給されたリーダライタ１１による電子署名SigAを復号する。
【０１２７】
ステップＳ９５において、制御部９３は、連結部９４から供給された電子署名SigAを検証し、処理は図５のステップＳ３３に進む。例えば、制御部９３は、復号部１１７により復号された電子署名SigAと、連結部９４または縮退処理部９２から供給された、乱数RA1、乱数RB1、領域指定情報、オプショナルデータText2、および縮退鍵とを比較して電子署名SigAの正当性を検証する。
【０１２８】
例えば、復号された電子署名SigAと、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2を、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2の順番に連結したものとが同一であり（一致し）、かつ復号された電子署名SigAに含まれる乱数RB1が、図５のステップＳ３１の処理において発生された乱数RB1と同一である（一致する）場合、制御部９３は、電子署名SigAは正当なものであるとして、リーダライタ１１に、領域指定情報により指定される（特定される）メモリ９１の記録領域へのアクセス（データの書き込み、または読み出し）を許可する。
【０１２９】
これに対して、例えば、復号された電子署名SigAと、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2を、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2の順番に連結したものとが同一でないか、または復号された電子署名SigAに含まれる乱数RB1が、図５のステップＳ３１の処理において発生された乱数RB1と同一でない場合、制御部９３は、電子署名SigAは正当なものではないとして、リーダライタ１１との通信を終了する。
【０１３０】
このようにして、端末装置１２は、リーダライタ１１から受信した領域指定情報に基づいて縮退鍵を生成し、リーダライタ１１の電子署名SigAを検証する。
【０１３１】
このように、リーダライタ１１から受信した領域指定情報に基づいて縮退鍵を生成し、リーダライタ１１の電子署名SigAを検証することにより、端末装置１２は、リーダライタ１１に縮退鍵を送信させることなく、リーダライタ１１が、アクセスしようとする記録領域に関係付けられた暗号鍵を記録しているか否かを判定することができる。これにより端末装置１２は、より迅速に認証を行うことができる。また、領域指定情報に基づいて縮退鍵を生成することにより、端末装置１２は認証を行うと同時に、リーダライタ１１にアクセスを許可する記録領域を規定することができる。
【０１３２】
次に、図８のフローチャートを参照して、図５のステップＳ３３の処理に対応する、端末装置１２による電子署名の生成の処理を説明する。
【０１３３】
公開鍵証明書CertAおよび電子署名SigAの検証が行われ、公開鍵証明書CertAおよび電子署名SigAが正当なものであると判定されると、ステップＳ１２１において、セッション鍵生成部１１９は、オプショナルデータを生成する。例えば、セッション鍵生成部１１９は、任意のデータであるオプショナルデータOPBを生成する。そして、さらに、例えば、乱数発生部１１８は所定の乱数ＢＫを発生させ、セッション鍵生成部１１９は、発生された乱数ＢＫに、予め記憶している所定の楕円曲線上のベースポイントＧ（の値）を掛け合わせることにより、オプショナルデータText3（BKG）を生成する。
【０１３４】
ステップＳ１２２において、暗号化部１１６は、電子署名SigBを生成する。例えば、乱数発生部１１８は、64bitの所定の乱数RB2を発生させる。乱数RB2が発生されると、制御部９３は、例えば、発生された乱数RB2、連結部９４から供給された乱数RA1、セッション鍵生成部１１９により生成されたオプショナルデータOPB、およびセッション鍵生成部１１９により生成されたオプショナルデータText3を、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3の順番に並べて連結する。そして、暗号化部１１６は、連結された乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を、例えば、予め記憶している秘密鍵KB1を用いて、楕円曲線暗号などの方式により暗号化することにより電子署名SigBを生成する。
【０１３５】
電子署名SigBが生成されると、制御部９３はメモリ９１から、端末装置１２が公開する公開鍵KB2の正当性を証明するための公開鍵証明書CertBを取得する。そして、制御部９３は、取得した公開鍵証明書CertB、乱数RB2、乱数RA1、オプショナルデータOPB、オプショナルデータText3、および電子署名SigBを連結部９４に供給する。
【０１３６】
ステップＳ１２３において、連結部９４は、制御部９３から供給された乱数RB2、乱数RA1、オプショナルデータOPB、オプショナルデータText3、および電子署名SigBを、乱数RB2、乱数RA1、オプショナルデータOPB、オプショナルデータText3、および電子署名SigBの順番に並べて連結することによりトークンTBAを生成する。そして、連結部９４は、さらに、公開鍵証明書CertBおよびトークンTBAを、公開鍵証明書CertBおよびトークンTBAの順番に並べて連結し、通信部９５に供給する。
【０１３７】
ステップＳ１２４において、通信部９５は、連結部９４から供給された公開鍵証明書CertBおよびトークンTBAを、有線または無線によりリーダライタ１１に送信して、処理は図５のステップＳ３４に進む。
【０１３８】
このようにして、端末装置１２は、予め記憶している秘密鍵KB1を用いて電子署名SigBを生成し、電子署名SigBが含まれているトークンTBA、および公開鍵証明書CertBをリーダライタ１１に送信する。
【０１３９】
このように、電子署名SigBが含まれているトークンTBA、および公開鍵証明書CertBをリーダライタ１１に送信することで、記録領域に記録されているデータが漏洩したり、記録領域に記録されているデータが改竄される可能性をより低くすることができ、その結果、リーダライタ１１および端末装置１２は、より安全に通信を行うことができる。
【０１４０】
端末装置１２が、公開鍵証明書CertBおよびトークンTBAをリーダライタ１１に送信すると、リーダライタ１１はこれを受信して、検証の処理を行う。以下、図９のフローチャートを参照して、図５のステップＳ１３の処理に対応する、リーダライタ１１による検証の処理を説明する。
【０１４１】
ステップＳ１５１において、通信部３５は、端末装置１２から送信されてきた公開鍵証明書CertBおよびトークンTBAを受信して、連結部３４に供給する。
【０１４２】
連結部３４は、例えば、通信部３５から供給された、連結された公開鍵証明書CertBおよびトークンTBAから、公開鍵証明書CertB、乱数RB2、乱数RA1、オプショナルデータOPB、オプショナルデータText3、および電子署名SigBを分離させ、分離された公開鍵証明書CertB、乱数RB2、乱数RA1、オプショナルデータOPB、オプショナルデータText3、および電子署名SigBを制御部３３に供給する。
【０１４３】
ステップＳ１５２において、制御部３３は、連結部３４から供給された、端末装置１２が公開する公開鍵KB2の正当性を証明するための公開鍵証明書CertBを検証する。例えば、公開鍵証明書CertBには、端末装置１２が公開する公開鍵KB2、所定のデータである平文、および認証局により生成された電子署名SigC2が含まれている。また、例えば、電子署名SigC2は、認証局が記録している秘密鍵KC1を用いて、所定の方式により公開鍵証明書CertBに含まれている平文のハッシュ値を暗号化したものとなっている。
【０１４４】
この場合、制御部３３は、公開鍵証明書CertBに含まれている平文のハッシュ値を求める。また、復号部５２は、予め認証局から取得した、認証局の秘密鍵KC1に対応する公開鍵KC2を用いて、電子署名SigC2を復号する。そして、制御部３３は、求めた平文のハッシュ値と、復号された電子署名SigC2とを比較することにより、公開鍵証明書CertBの正当性を検証する。
【０１４５】
例えば、求めた平文のハッシュ値と、復号された電子署名SigC2とが同一である（一致する）場合、制御部３３は、公開鍵証明書CertBは正当なものである、すなわち、公開鍵証明書CertBに含まれている公開鍵KB2は、正規の端末装置１２により公開された公開鍵であると判定して、公開鍵KB2を用いて、端末装置１２との通信を継続して行う。これに対して、求めた平文のハッシュ値と、復号された電子署名SigC2とが同一でない場合、制御部３３は、公開鍵証明書CertBは正当なものではない、すなわち、公開鍵証明書CertBに含まれている公開鍵KB2は、正規の端末装置１２により公開された公開鍵ではないと判定して、端末装置１２との通信を終了する。
【０１４６】
公開鍵証明書CertBの検証を行うと、ステップＳ１５３において、復号部５２は、公開鍵証明書CertBに含まれている公開鍵KB2を用いて、例えば、楕円曲線暗号などの方式により、連結部３４から供給された端末装置１２による電子署名SigBを復号する。
【０１４７】
ステップＳ１５４において、制御部３３は、連結部３４から供給された電子署名SigBを検証し、処理は図５のステップＳ１４に進む。例えば、制御部３３は、復号部５２により復号された電子署名SigBと、連結部３４から供給された、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3とを比較して電子署名SigBを検証する。
【０１４８】
例えば、復号された電子署名SigBと、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3の順番に連結したものとが同一であり（一致し）、かつ復号された電子署名SigBに含まれる乱数RA1が、図６のステップＳ６５の処理において発生された乱数RA1と同一である（一致する）場合、制御部３３は、電子署名SigBは正当なものであるとして、領域指定情報により指定される（特定される）端末装置１２のメモリ９１の記録領域へのアクセス（データの書き込み、または読み出し）を行う。
【０１４９】
これに対して、例えば、復号された電子署名SigBと、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3の順番に連結したものとが同一でないか、または復号された電子署名SigBに含まれる乱数RA1が、図６のステップＳ６５の処理において発生された乱数RA1と同一でない場合、制御部３３は、電子署名SigBは正当なものではないとして、端末装置１２との通信を終了する。
【０１５０】
このようにして、リーダライタ１１は、端末装置１２の公開鍵KB2を用いて、端末装置１２の電子署名SigBを検証する。
【０１５１】
このように、公開鍵KB2を用いて、端末装置１２の電子署名SigBを検証することにより、リーダライタ１１は、電子署名SigBを生成した端末装置１２が正規の端末装置１２か否かを判定することができるので、悪意の第三者による不当なサービスの享受を防止することができる。
【０１５２】
以上のように、本発明によれば、記録領域のそれぞれに関係付けられた暗号鍵のそれぞれを基に、１つの縮退鍵を生成し、生成した縮退鍵を用いて認証を行うようにしたので、非対称鍵暗号方式によりデータを暗号化して認証を行う場合においても、より迅速に認証を行うことができる。
【０１５３】
なお、楕円曲線暗号などの方式によりデータを暗号化して、リーダライタ１１または端末装置１２の電子署名（例えば、電子署名SigAまたは電子署名SigB）を生成すると説明したが、その他、エルガマル暗号、RSA（Rivest Shamir Adleman）などの方式によりデータを暗号化して電子署名を生成するようにしてもよい。
【０１５４】
また、乱数、オプショナルデータなどを連結して得られたデータを暗号化することにより、電子署名を生成すると説明したが、連結して得られたデータのハッシュ値を暗号化して電子署名を生成するようにしてもよい。
【０１５５】
より具体的には、例えば、図６のステップＳ６５において、リーダライタ１１の制御部３３は、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2を順番に並べて連結し、連結された乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2のハッシュ値、すなわち、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2を連結することにより得られたデータのハッシュ値を算出する。そして、暗号化部５１は、制御部３３により算出されたハッシュ値を、例えば、予め記憶している秘密鍵KA1を用いて暗号化することによって電子署名SigAを生成する。
【０１５６】
これに対して端末装置１２においては、例えば、図７のステップＳ９５の処理において、制御部９３は、連結部９４から供給された乱数RA1、乱数RB1、領域指定情報、およびオプショナルデータText2と、縮退処理部９２により生成された縮退鍵とを、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2の順番に並べて連結し、連結された乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2のハッシュ値、すなわち、乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2を連結することにより得られたデータのハッシュ値を算出する。そして、制御部９３は、復号部１１７により復号された電子署名SigAと、連結された乱数RA1、乱数RB1、領域指定情報、縮退鍵、およびオプショナルデータText2のハッシュ値とを比較して電子署名SigAの正当性を検証する。
【０１５７】
また、電子署名SigAにおける場合と同様に、例えば、図８のステップＳ１２２において、端末装置１２の制御部９３は、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を順番に並べて連結し、連結された乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3のハッシュ値、すなわち、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を連結することにより得られたデータのハッシュ値を算出する。そして、暗号化部１１６は、制御部９３により算出されたハッシュ値を、例えば、予め記憶している秘密鍵KB1を用いて暗号化することによって電子署名SigBを生成する。
【０１５８】
これに対してリーダライタ１１においては、例えば、図９のステップＳ１５４の処理において、制御部３３は、連結部３４から供給された乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を順番に並べて連結し、連結された乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3のハッシュ値、すなわち、乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3を連結することにより得られたデータのハッシュ値を算出する。そして、制御部３３は、復号部５２により復号された電子署名SigBと、連結された乱数RB2、乱数RA1、オプショナルデータOPB、およびオプショナルデータText3のハッシュ値とを比較して電子署名SigBの正当性を検証する。
【０１５９】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０１６０】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図２に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む）、光磁気ディスク（ＭＤ（Mini-Disc）を含む）、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア７１、またはメモリ３１を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部３５を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１６１】
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１６２】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０１６３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１６４】
【図１】本発明を適用した認証システムの一実施の形態の構成例を示す図である。
【図２】リーダライタおよび端末装置の機能の構成を示すブロック図である。
【図３】リーダライタの縮退処理部のより詳細な構成例を示すブロック図である。
【図４】端末装置の縮退処理部のより詳細な構成例を示すブロック図である。
【図５】リーダライタおよび端末装置による認証の処理を説明するフローチャートである。
【図６】リーダライタによる電子署名の生成の処理を説明するフローチャートである。
【図７】端末装置による検証の処理を説明するフローチャートである。
【図８】端末装置による電子署名の生成の処理を説明するフローチャートである。
【図９】リーダライタによる検証の処理を説明するフローチャートである。
【符号の説明】
【０１６５】
１１  リーダライタ，  １２  端末装置，  ３１  メモリ，  ３２  縮退処理部，  ３３  制御部，  ３５  通信部，  ５１  暗号化部，  ５２  復号部，  ５４  領域指定情報生成部，  ５５  セッション鍵生成部，  ９１  メモリ，  ９２  縮退処理部，  ９３  制御部，  ９５  通信部，  １１１  記録領域，  １１２  記録領域，  １１３  記録領域，  １１４  記録領域，  １１５  記録領域，  １１６  暗号化部，  １１７  復号部，  １１９  セッション鍵生成部，  １４１  縮退回路，  １４２  縮退回路，  １６１−１  縮退回路，  １６１−２  縮退回路，  １６１−３  縮退回路，  １６１−４  縮退回路
【図１】
2007020066.tif 000003
【図２】
2007020066.tif 000004
【図３】
2007020066.tif 000005
【図４】
2007020066.tif 000006
【図５】
2007020066.tif 000007
【図６】
2007020066.tif 000008
【図７】
2007020066.tif 000009
【図８】
2007020066.tif 000010
【図９】
2007020066.tif 000011