(57)【要約】      （修正有）【課題】暗号鍵を安全に管理することができるＩＣカード及び携帯可能電子装置を提供する。【解決手段】暗号システム１００において、ＩＣカード２のモジュールＭは、第１のインターフェース（通信部２５）と、第２のインターフェース（指紋センサ２７）と、第１の格納部と、プロセッサと、を備える。第１のインターフェースは、外部装置とデータを送受信する。第２のインターフェースは、ユーザの生体情報を取得する。第１の格納部は、認証処理のための生体情報を格納する。プロセッサは、ユーザの生体情報と第１の格納部か格納する生体情報との照合に成功すると、暗号鍵を取得し、暗号鍵を用いて第１のインターフェースを通じて受信するデータを暗号化又は復号し、暗号化又は復号されたデータを第１のインターフェースを通じて送信する。【選択図】図１
2020046778.tif 000002
【特許請求の範囲】
【請求項１】
外部装置とデータを送受信する第１のインターフェースと、
ユーザの生体情報を取得する第２のインターフェースと、
認証処理のための生体情報を格納する第１の格納部と、
前記ユーザの生体情報と前記第１の格納部か格納する前記生体情報との照合に成功すると、暗号鍵を取得し、
前記暗号鍵を用いて前記第１のインターフェースを通じて受信するデータを暗号化又は復号し、
暗号化又は復号された前記データを前記第１のインターフェースを通じて送信する、
プロセッサと、
を備えるＩＣカード。
【請求項２】
前記暗号鍵を格納する第２の格納部を備える、
前記請求項１に記載のＩＣカード。
【請求項３】
前記第２の格納部は、複数の前記暗号鍵を格納し、
前記第１の格納部は、複数の生体情報を暗号鍵と対応づけて格納し、
前記プロセッサは、
前記ユーザの生体情報と前記第１の格納部が格納する前記各生体情報との照合を行い、
前記ユーザの生体情報との照合に成功した、前記第１の格納部が格納する生体情報に対応する前記暗号鍵を用いて前記データを暗号化又は復号する、
前記請求項２に記載のＩＣカード。
【請求項４】
前記第２の格納部は、複数の前記暗号鍵と有効期限とを対応付けて格納し、
前記プロセッサは、有効期限内の前記暗号鍵を用いて前記データを暗号化又は復号する、
前記請求項３の何れか１項に記載のＩＣカード。
【請求項５】
前記第１の格納部が格納する生体情報は、指紋情報である、
前記請求項１乃至４の何れか１項に記載のＩＣカード。
【請求項６】
前記第２のインターフェースは、指紋画像を取得する指紋センサである、
前記請求項５に記載のＩＣカード。
【請求項７】
前記暗号鍵は、秘密鍵である、
前記請求項１乃至６の何れか１項に記載のＩＣカード。
【請求項８】
外部装置とデータを送受信する第１のインターフェースと、ユーザの生体情報を取得する第２のインターフェースと、認証処理のための生体情報を格納する第１の格納部と、前記ユーザの生体情報と前記第１の格納部か格納する前記生体情報との照合に成功すると、暗号鍵を取得し、前記暗号鍵を用いて前記第１のインターフェースを通じて受信するデータを暗号化又は復号し、暗号化又は復号された前記データを前記第１のインターフェースを通じて送信する、プロセッサと、を備えるモジュールと、
前記モジュールを内蔵した本体と、
を備えるＩＣカード。
【請求項９】
外部装置とデータを送受信する第１のインターフェースと、
ユーザの生体情報を取得する第２のインターフェースと、
認証処理のための生体情報を格納する第１の格納部と、
前記ユーザの生体情報と前記第１の格納部か格納する前記生体情報との照合に成功すると、暗号鍵を取得し、
前記暗号鍵を用いて前記第１のインターフェースを通じて受信するデータを暗号化又は復号し、
暗号化又は復号された前記データを前記第１のインターフェースを通じて送信する、
プロセッサと、
を備える携帯可能電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＩＣカード及び携帯可能電子装置に関する。
【背景技術】
【０００２】
ＰＣなどの情報処理装置には、ＯｐｅｎＰＧＰ（Pretty Good Privacy）などの暗号技術によってデータを暗号化又は復号するものがある。そのような情報処理装置は、内部に秘密鍵などの暗号鍵をパスワードなどで暗号化された状態で格納する。その結果、情報処理装置に格納される暗号鍵に対して不正アクセスされる恐れ又は暗号鍵を改ざんされる恐れなどがある。
【０００３】
そのため、ＩＣカードなどの外部装置に暗号鍵を安全に格納する技術が望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−４５３３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の課題を解決するために、暗号鍵を安全に管理することができるＩＣカード及び携帯可能電子装置を提供する。
【課題を解決するための手段】
【０００６】
実施形態によれば、ＩＣカードは、第１のインターフェースと、第２のインターフェースと、第１の格納部と、プロセッサと、を備える。第１のインターフェースは、外部装置とデータを送受信する。第２のインターフェースは、ユーザの生体情報を取得する。第１の格納部は、認証処理のための生体情報を格納する。プロセッサは、前記ユーザの生体情報と前記第１の格納部か格納する前記生体情報との照合に成功すると、暗号鍵を取得し、前記暗号鍵を用いて前記第１のインターフェースを通じて受信するデータを暗号化又は復号し、暗号化又は復号された前記データを前記第１のインターフェースを通じて送信する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係る暗号システムの構成例を示すブロック図である。
【図２】図２は、実施形態に係る指紋テーブルの構成例を示す図である。
【図３】図３は、実施形態に係る鍵テーブルの構成例を示す図である。
【図４】図４は、実施形態に係る対応テーブルの構成例を示す図である。
【図５】図５は、実施形態に係るＩＣカードの動作例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、実施形態について、図面を参照して説明する。  
実施形態に係る暗号システムは、所定のアルゴリズムでデータを暗号化又は復号する。ここでは、暗号システムは、ＯｐｅｎＰＧＰで、データを暗号化（データに署名）し、又は、暗号化されたデータを復号する。暗号システムは、ＩＣカード２が格納する暗号鍵（たとえば、秘密鍵）を用いて、データを暗号化又は復号する。
【０００９】
図１は、実施形態に係る暗号システム１００の構成例を示すブロック図である。図１が示すように、暗号システム１００は、ホストＰＣ１、ＩＣカード２及びリーダライタ１１などを備える。ホストＰＣ１は、リーダライタ１１に接続する。また、リーダライタ１１は、ＩＣカード２に接続する。なお、暗号システム１００は、図１が示すような構成の他に必要に応じた構成を具備したり、暗号システム１００から特定の構成が除外されたりしてもよい。
【００１０】
ホストＰＣ１（外部装置）は、暗号システム１００全体を制御する。ホストＰＣ１は、ＩＣカード２が格納する暗号鍵（たとえば、秘密鍵）を用いてデータを暗号化し、又は、暗号化されたデータを復号する。
【００１１】
たとえば、ホストＰＣ１は、暗号化するデータ（たとえば、署名するデータ）を取得する。ホストＰＣ１は、リーダライタ１１を通じて、暗号化するデータをＩＣカード２に送信する。ホストＰＣ１は、リーダライタ１１を通じて、ＩＣカード２で暗号化されたデータ（たとえば、署名されたデータ）を受信する。
【００１２】
また、ホストＰＣ１は、ネットワークなどを通じて暗号化されたデータを取得する。ホストＰＣ１は、リーダライタ１１を通じて、暗号化されたデータをＩＣカード２に送信する。ホストＰＣ１は、リーダライタ１１を通じて、ＩＣカード２で復号されたデータを受信する。
【００１３】
リーダライタ１１は、ＩＣカード２とデータを送受信するためのインターフェース装置である。リーダライタ１１は、ＩＣカード２の通信方式に応じたインターフェースにより構成される。たとえば、ＩＣカード２が接触型のＩＣカードである場合、リーダライタ１１は、ＩＣカード２のコンタクト部と物理的かつ電気的に接続するための接触部などにより構成される。
【００１４】
また、ＩＣカード２が非接触型のＩＣカードである場合、リーダライタ１１は、ＩＣカード２との無線通信を行うためのアンテナ及び通信制御部などにより構成される。リーダライタ１１では、ＩＣカード２に対する電源供給、クロック供給、リセット制御、データの送受信が行われるようになっている。
【００１５】
このような機能によってリーダライタ１１は、ホストＰＣ１による制御に基づいてＩＣカード２に対する電源供給、ＩＣカード２の活性化（起動）、クロック供給、リセット制御、種々のコマンドの送信、及び送信したコマンドに対する応答（レスポンス）の受信などを行なう。
【００１６】
ＩＣカード２（携帯可能電子装置）は、ホストＰＣ１の制御に従ってデータを暗号化し、又は、暗号化されたデータを復号する。
【００１７】
ＩＣカード２は、プラスチックなどで形成されたカード状の本体Ｃを有する。ＩＣカード２は、本体Ｃ内にモジュールＭが内蔵される。モジュールＭは、ＩＣチップＣａ、通信部２５、ＭＰＵ２６及び指紋センサ２７が接続された状態で一体的に形成され、ＩＣカード２の本体Ｃ内に埋設される。
【００１８】
図１が示すように、ＩＣカード２は、モジュールＭなどを備える。モジュールＭは、ＩＣチップＣａ、通信部２５、ＭＰＵ２６及び指紋センサ２７などを備える。ＩＣチップＣａは、プロセッサ２１、ＲＯＭ２２、ＲＡＭ２３及びＮＶＭ２４などを備える。プロセッサ２１は、データバスなどを介してＲＯＭ２２、ＲＡＭ２３、ＮＶＭ２４及び通信部２５に接続する。通信部２５は、データバスなどを介してＭＰＵ２６に接続する。ＭＰＵ２６は、データバスなどを介して指紋センサ２７に接続する。
【００１９】
なお、ＩＣカード２は、図１が示すような構成の他に必要に応じた構成を具備したり、ＩＣカード２から特定の構成が除外されたりしてもよい。
【００２０】
プロセッサ２１は、ＩＣカード２全体の制御を司る制御部として機能する。プロセッサ２１は、ＲＯＭ２２又はＮＶＭ２４に記憶される制御プログラム及び制御データに基づいて種々の処理を行う。たとえば、プロセッサ２１は、ＲＯＭ２２に記憶されているプログラムを実行することにより、ＩＣカード２の動作制御又はＩＣカード２の運用形態に応じた種々の処理を行う。
【００２１】
たとえば、プロセッサ２１は、プログラムを実行することにより、ＩＣカード２内の各部の制御及び情報処理を実現するプロセッサであればよい。  
なお、プロセッサ２１がプログラムを実行することにより実現する各種の機能のうちの一部は、ハードウエア回路により実現されるものであっても良い。この場合、プロセッサ２１は、ハードウエア回路により実行される機能を制御する。
【００２２】
ＲＯＭ２２は、予め制御用のプログラム及び制御データなどを記憶する不揮発性のメモリである。ＲＯＭ２２は、製造段階で制御プログラム及び制御データなどを記憶した状態でＩＣカード２に組み込まれる。即ち、ＲＯＭ２２に記憶される制御プログラム及び制御データは、予めＩＣカード２の仕様などに応じて組み込まれる。
【００２３】
ＲＡＭ２３は、揮発性のメモリである。ＲＡＭ２３は、プロセッサ２１の処理中のデータなどを一時的に格納する。たとえば、ＲＡＭ２３は、計算用バッファ、受信用バッファ及び送信用バッファとして機能する。計算用バッファは、プロセッサ２１が実行する種々の演算処理の結果などを一時的に保持する。受信用バッファは、通信部２５を介してリーダライタ１１から受信するコマンドデータなどを保持する。送信用バッファは、通信部２５を介してリーダライタ１１へ送信するメッセージ（レスポンスデータ）などを保持する。
【００２４】
ＮＶＭ２４（第１の格納部、第２の格納部）は、例えば、フラッシュＲＯＭなどのデータの書き込み及び書換えが可能な不揮発性のメモリにより構成される。ＮＶＭ２４は、ＩＣカード２の運用用途に応じて制御プログラム、アプリケーション、及び種々のデータを格納する。例えば、ＮＶＭ２４では、プログラムファイル及びデータファイルなどが作成される。作成された各ファイルは、制御プログラム及び種々のデータなどが書き込まれる。
【００２５】
また、ＮＶＭ２４は、指紋テーブル、鍵テーブル及び対応テーブルなどを格納する。鍵テーブル、指紋テーブル及び対応テーブルについては、後述する。
【００２６】
通信部２５（第１のインターフェース）は、リーダライタ１１とデータを送受信するためのインターフェースである。即ち、通信部２５は、リーダライタ１１を通じてホストＰＣ１とデータを送受信するためのインターフェースである。ＩＣカード２が接触型のＩＣカードとして実現される場合、通信部２５は、リーダライタ１１と物理的かつ電気的に接触して信号の送受信を行うための通信制御部とコンタクト部とにより構成される。たとえば、ＩＣカード２は、コンタクト部を介してリーダライタ１１からの動作電源及び動作クロックの供給を受けて活性化される。
【００２７】
ＩＣカード２が非接触型のＩＣカードとしての実現される場合、通信部２５は、リーダライタ１１との無線通信を行うための変復調回路などの通信制御部とアンテナとにより構成される。たとえば、ＩＣカード２は、アンテナ及び変復調回路などを介してリーダライタ１１からの電波を受信する。ＩＣカード２は、その電波から図示しない電源部により動作電源及び動作クロックを生成して活性化する。
【００２８】
また、通信部２５は、ＭＰＵ２６とデータを送受信するためのインターフェースである。通信部２５は、ＭＰＵ２６を通じて指紋の照合結果などを取得する。
【００２９】
ＭＰＵ２６は、指紋センサからの指紋画像を処理する。たとえば、ＭＰＵ２６は、指紋センサからの指紋画像の照合処理を行う。即ち、ＭＰＵ２６は、指紋画像と予め設定される指紋情報とが一致するかを判定する。ＭＰＵ２６は、通信部２５を通じて、照合結果をプロセッサ２１に送信する。たとえば、ＭＰＵ２６は、指紋画像と一致した指紋情報を示す情報（後述する指紋ＩＤなど）をプロセッサ２１に送信する。
【００３０】
指紋センサ２７（第２のインターフェース）は、ユーザの指から指紋画像を取得する。たとえば、指紋センサ２７は、ＣＣＤセンサなどを備える。指紋センサ２７は、指紋画像をＭＰＵ２６に送信する。
【００３１】
なお、指紋センサ２７は、指紋画像から特徴を抽出し、特徴を示す指紋情報を生成してもよい。指紋センサ２７は、生成した指紋情報をＭＰＵ２６に送信してもよい。
【００３２】
次に、指紋テーブルについて説明する。
【００３３】
指紋テーブルは、指紋センサ２７に入力された指紋画像を照合するために予め登録される指紋情報を格納する。図２は、指紋テーブルの構成例を示す。
【００３４】
図２が示すように、指紋テーブルは、「指紋ＩＤ」と「指紋情報」とを対応付けて格納する。
【００３５】
「指紋ＩＤ」は、予め登録される指紋情報を特定する識別子である。ここでは、「指紋ＩＤ」は、数値である。
【００３６】
「指紋情報」は、指紋センサ２７と照合するために予め登録される指紋情報である。「指紋情報」は、登録される指紋を示す。たとえば、「指紋情報」は、指紋画像から抽出される特徴量を示す。なお、「指紋情報」は、指紋画像であってもよい。「指紋情報」の構成は、特定の構成に限定されるものではない。図２が示す例では、「指紋ＩＤ」が「１」である「指紋情報」は、登録者の親指の指紋情報である。
【００３７】
指紋テーブルは、予めＮＶＭ２４に格納される。
【００３８】
たとえば、ホストＰＣ１は、リーダライタ１１を通じて指紋テーブルを生成するためのコマンドをＩＣカード２に送信する。ＩＣカード２のプロセッサ２１は、当該コマンドに従って、指紋センサ２７を通じて登録者の指紋画像を取得する。指紋画像を取得すると、プロセッサ２１は、指紋画像から指紋情報を生成する。指紋情報を生成すると、プロセッサ２１は、生成した指紋情報を用いて指紋テーブルを生成しＮＶＭ２４に格納する。
【００３９】
なお、プロセッサ２１は、ＭＰＵ２６から指紋情報を取得してもよい。また、プロセッサ２１は、複数の指の指紋情報を生成して指紋テーブルを生成してもよい。また、プロセッサ２１は、ホストＰＣからのコマンドに従って指紋テーブルを更新してもよい。また、指紋テーブルは、ＭＰＵ２６に格納されてもよい。
【００４０】
次に、鍵テーブルについて説明する。  
鍵テーブルは、暗号化又は復号に用いられる暗号鍵を格納する。図３は、鍵テーブルの構成例を示す図である。
【００４１】
図３が示すように、鍵テーブルは、「ＫｅｙＩＤ」、「秘密鍵」及び「有効期限」を対応付けて格納する。
【００４２】
「ＫｅｙＩＤ」は、暗号鍵を特定する識別子である。ここでは、「ＫｅｙＩＤ」は、数値である。
【００４３】
「秘密鍵」は、暗号鍵の内容を格納する。ここでは、暗号鍵は、ＯｐｅｎＰＧＰで用いられる秘密鍵である。たとえば、「秘密鍵」は、２５６バイトのデータである。
【００４４】
「有効期限」は、「秘密鍵」を用いることができる期限を示す。
【００４５】
次に、対応テーブルについて説明する。
【００４６】
対応テーブルは、指紋認証に成功した場合に有効化される暗号鍵を示す。図４は、対応テーブルの構成例を示す。
【００４７】
図４が示すように、対応テーブルは、「指紋ＩＤ」と「ＫｅｙＩＤ」とを対応付けて格納する。
【００４８】
「指紋ＩＤ」は、前述の通り、予め登録される指紋情報を特定する識別子である。
【００４９】
「ＫｅｙＩＤ」は、「指紋ＩＤ」の指紋情報を用いて認証に成功した場合に、有効化される暗号鍵を特定する識別子である。即ち、「ＫｅｙＩＤ」は、指紋センサ２７からの指紋画像と「指紋ＩＤ」の指紋情報との照合に成功した場合に、暗号化又は復号に用いることができる暗号鍵を示す。
【００５０】
図４が示す例では、対応テーブルは、指紋センサ２７からの指紋画像と「指紋ＩＤ」が「１」である指紋情報（親指の指紋情報）とが一致した場合に、「ＫｅｙＩＤ」が「１」又は「２」である暗号鍵（「ＲＳＡ  ＳＫ１」又は「ＲＳＡ  ＳＫ２」）を用いることができることを示す。
【００５１】
鍵テーブル及び対応テーブルは、予めＮＶＭ２４に格納される。
【００５２】
たとえば、ホストＰＣ１は、リーダライタ１１を通じて、暗号鍵を生成するためのコマンドをＩＣカード２に送信する。ホストＰＣ１は、当該コマンドに伴って、暗号鍵を生成するための情報（暗号鍵の長さ、ｅｘｐの指定など）、有効期限及び指紋ＩＤなどをＩＣカード２に送信する。
【００５３】
ＩＣカード２のプロセッサ２１は、当該コマンドに従って、暗号鍵を生成する。暗号鍵を生成すると、プロセッサ２１は、生成した暗号鍵を示すＫｅｙＩＤと生成した暗号鍵と有効期限とを対応付けて鍵テーブルに格納する。また、プロセッサ２１は、ホストＰＣ１からの指紋ＩＤと生成した暗号鍵を示すＫｅｙＩＤとを対応付けて対応テーブルに格納する。
【００５４】
なお、プロセッサ２１は、ホストＰＣからのコマンドに従って鍵テーブル又は対応テーブルを更新してもよい。
【００５５】
次に、ＩＣカード２が実現する機能について説明する。ＩＣカード２が実現する機能は、プロセッサ２１がＲＯＭ２２又はＮＶＭ２４などに格納されるプログラムを実行することで実現される。
【００５６】
まず、プロセッサ２１は、指紋センサ２７を用いて指紋画像を取得する機能を有する。
【００５７】
ここでは、ＩＣカード２は、リーダライタ１１にセットされホストＰＣ１とデータを送受信可能な状態となっているものとする。
【００５８】
ホストＰＣ１は、リーダライタ１１を通じて、指紋による認証を指示する認証要求コマンドをＩＣカード２に送信する。
【００５９】
ＩＣカード２のプロセッサ２１は、通信部２５を通じて当該認証要求コマンドを受信する。当該認証要求コマンドを受信すると、プロセッサ２１は、指紋センサ２７を起動する。
【００６０】
ここでは、ユーザは、指紋センサ２７に指を乗せて指紋を入力するものとする。
【００６１】
プロセッサ２１は、指紋センサ２７を通じて指紋画像を取得する。
【００６２】
また、プロセッサ２１は、取得した指紋画像と予め登録された指紋情報とを照合する機能を有する。
【００６３】
たとえば、プロセッサ２１は、ＭＰＵ２６を用いて照合処理を行う。
【００６４】
ＭＰＵ２６は、指紋センサ２７を通じて指紋画像を取得する。指紋画像を取得すると、ＭＰＵ２６は、指紋画像と指紋テーブルの各指紋情報とを照合する。たとえば、ＭＰＵ２６は、指紋画像から指紋の特徴を示す指紋情報を生成する。指紋情報を生成すると、ＭＰＵ２６は、生成した指紋情報と指紋テーブルの各指紋情報とを照合する。
【００６５】
ＭＰＵ２６は、照合に成功した指紋情報がある場合、当該指紋情報を示す指紋ＩＤをプロセッサ２１に送信する。
【００６６】
また、ＭＰＵ２６は、照合に成功した指紋情報がない場合、照合に失敗したことを示す情報をプロセッサ２１に送信する。
【００６７】
また、プロセッサ２１は、照合に成功した指紋情報に対応する暗号鍵を有効化する機能を有する。即ち、プロセッサ２１は、照合に成功した指紋情報に対応する暗号鍵を取得する。
【００６８】
プロセッサ２１は、照合に成功した指紋情報を示す指紋ＩＤをＭＰＵ２６から受信する。指紋ＩＤを受信すると、プロセッサ２１は、対応テーブルを参照して、受信した指紋ＩＤに対応するＫｅｙＩＤを取得する。ＫｅｙＩＤを取得すると、プロセッサ２１は、ＫｅｙＩＤに対応する暗号鍵を有効化する。即ち、プロセッサ２１は、当該暗号鍵を認証済とし、暗号化又は復号に用いることができる状態にする。たとえば、プロセッサ２１は、取得したＫｅｙＩＤの暗号鍵を有効化したことを示す情報をＲＡＭ２３などに格納する。
【００６９】
なお、プロセッサ２１は、通信部２５を通じて、照合に成功したことを示すレスポンスをリーダライタ１１に送信してもよい。
【００７０】
また、プロセッサ２１は、照合に失敗したことを示す情報をＭＰＵ２６から受信した場合、通信部２５を通じて、照合に失敗したことを示すレスポンスをリーダライタ１１に送信してもよい。
【００７１】
また、プロセッサ２１は、有効化された暗号鍵を用いて、所定のデータを暗号化し又は暗号化されたデータを復号する機能を有する。
【００７２】
たとえば、ホストＰＣ１は、リーダライタ１１を通じて、所定のデータを暗号化させる処理コマンドをＩＣカード２に送信する。
【００７３】
ＩＣカード２のプロセッサ２１は、通信部２５を通じて、当該処理コマンドを受信する。当該処理コマンドを受信すると、プロセッサ２１は、鍵テーブルを参照して、有効化された暗号鍵であって有効期限内の暗号鍵があるかを判定する。
【００７４】
有効期限内の暗号鍵があると判定すると、プロセッサ２１は、当該暗号鍵を用いて所定のデータを暗号化する。所定のデータを暗号化すると、プロセッサ２１は、リーダライタ１１を通じて、暗号化された所定のデータをリーダライタ１１に送信する。
【００７５】
また、ホストＰＣ１は、リーダライタ１１を通じて、暗号化されたデータを復号させる処理コマンドをＩＣカード２に送信する。
【００７６】
ＩＣカード２のプロセッサ２１は、通信部２５を通じて、当該処理コマンドを受信する。当該処理コマンドを受信すると、プロセッサ２１は、鍵テーブルを参照して、有効化された暗号鍵であって有効期限内の暗号鍵があるかを判定する。
【００７７】
有効期限内の暗号鍵があると判定すると、プロセッサ２１は、当該暗号鍵を用いて、暗号化されたデータを復号する。暗号化されたデータを復号すると、プロセッサ２１は、リーダライタ１１を通じて、復号されたデータをリーダライタ１１に送信する。
【００７８】
なお、プロセッサ２１は、有効期限内の暗号鍵がないと判定した場合、通信部２５を通じて、処理に失敗したことを示すレスポンスをリーダライタ１１に送信してもよい。
【００７９】
次に、ＩＣカード２の動作例について説明する。
【００８０】
図５は、ＩＣカード２の動作例について説明するためのフローチャートである。ここでは、ＩＣカード２は、リーダライタ１１にセットされホストＰＣ１とデータを送受信可能な状態となっているものとする。
【００８１】
まず、ＩＣカード２のプロセッサ２１は、通信部２５を通じて、認証要求コマンドを受信したか判定する（Ｓ１１）。認証要求コマンドを受信していないと判定すると（Ｓ１１、ＮＯ）、プロセッサ２１は、Ｓ１１に戻る。
【００８２】
認証要求コマンドを受信したと判定すると（Ｓ１１、ＹＥＳ）、プロセッサ２１は、指紋センサ２７を通じて指紋画像を取得する（Ｓ１２）。指紋画像を取得すると、プロセッサ２１は、ＭＰＵ２６を用いて、取得した指紋画像と指紋テーブルの各指紋情報とを照合する（Ｓ１３）。
【００８３】
取得した指紋画像と指紋テーブルの各指紋情報とを照合すると、プロセッサ２１は、照合に成功した指紋情報があるかを判定する（Ｓ１４）。照合に成功した指紋情報があると判定すると（Ｓ１４、ＹＥＳ）、プロセッサ２１は、対応テーブルを参照して、照合に成功した指紋情報に対応する暗号鍵を有効化する（Ｓ１５）。
【００８４】
暗号鍵を有効化すると、プロセッサ２１は、通信部２５を通じて、データを暗号化又は復号する処理コマンドを受信する（Ｓ１６）。処理コマンドを受信すると、プロセッサ２１は、有効化した暗号鍵であって有効期限内の暗号鍵があるか判定する（Ｓ１７）。
【００８５】
有効期限内の暗号鍵があると判定すると（Ｓ１７、ＹＥＳ）、プロセッサ２１は、処理コマンドを実行する（Ｓ１８）。
【００８６】
照合に成功した指紋情報がないと判定した場合（Ｓ１４、ＮＯ）、有効期限内の暗号鍵がないと判定した場合（Ｓ１７、ＮＯ）、又は、処理コマンドを実行した場合（Ｓ１８）、プロセッサ２１は、動作を終了する。
【００８７】
なお、プロセッサ２１は、ＭＰＵ２６の機能を実現するものであってもよい。
【００８８】
また、ＩＣカード２は、秘密鍵などの暗号鍵を生成するコプロセッサを備えてもよい。
【００８９】
また、プロセッサ２１は、暗号鍵として楕円曲線ベースの暗号アルゴリズムで用いられる秘密鍵を生成し鍵テーブルに格納してもよい。また、プロセッサ２１は、暗号鍵として共有鍵を生成して鍵テーブルに格納してもよい。暗号鍵の構成は、特定の構成に限定されるものではない。
【００９０】
また、プロセッサ２１は、指紋以外の生体情報を用いて認証処理を行ってもよい。たとえば、プロセッサ２１は、光彩、静脈、声紋又は顔画像などの生体情報を用いて認証処理を行ってもよい。
【００９１】
また、ホストＰＣ１は、指紋センサを備えてもよい。プロセッサ２１は、通信部２５を通じて、ホストＰＣ１から指紋画像又は指紋画像の特徴を示す指紋情報を取得してもよい。この場合、通信部２５は、第２のインターフェースとして機能する。また、ホストＰＣ１は、指紋以外の生体情報を取得する生体センサを備えてもよい。プロセッサ２１は、ホストＰＣ１から生体情報を取得して認証処理を行ってもよい。
【００９２】
また、ＩＣカード２は、内部のメモリ（ＮＶＭ１４など）に暗号鍵を格納しなくともよい。たとえば、ＩＣカード２のプロセッサ２１は、暗号鍵を生成した後に、マスタ鍵を用いて暗号鍵を暗号化しホストＰＣ１に送信する。ホストＰＣ１は、暗号化された暗号鍵を１つ又は複数個格納する。ホストＰＣ１は、必要に応じて暗号化された暗号鍵をＩＣカード２に送信する。ＩＣカード２のプロセッサ２１は、暗号化された暗号鍵を受信する。暗号化された暗号鍵を受信すると、プロセッサ２１は、マスタ鍵を用いて暗号鍵を復号する。暗号鍵を復号すると、プロセッサ２１は、ホストＰＣ１からの処理コマンドに従って、復号した暗号鍵を用いてデータを暗号化又は復号する。この構成では、ＩＣカード２は、暗号鍵を格納するために必要なメモリを削減することができる。
【００９３】
以上のように構成された暗号システムは、ＩＣカード２に暗号鍵を格納する。暗号システムは、ホストＰＣから所定のデータをＩＣカード２に送信し、ＩＣカード２内で所定のデータを暗号化又は復号する。そのため、暗号システムは、暗号鍵をホストＰＣに格納することなく、暗号鍵を用いてデータを暗号化又は復号することができる。その結果、暗号システムは、暗号鍵を安全に管理することができる。
【００９４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９５】
１…ホストＰＣ、２…ＩＣカード、１１…リーダライタ、１４…ＮＶＭ、２１…プロセッサ、２２…ＲＯＭ、２３…ＲＡＭ、２４…ＮＶＭ、２５…通信部、２７…指紋センサ、１００…暗号システム。
【図１】
2020046778.tif 000003
【図２】
2020046778.tif 000004
【図３】
2020046778.tif 000005
【図４】
2020046778.tif 000006
【図５】
2020046778.tif 000007