(57)【要約】【課題】セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できるセキュリティトークンを提供する。【解決手段】ＩＣカード１は，外部へのデータ読み出しが禁止されたＲＯＭ２２と，電気的に書換え可能なＥＥＰＲＯＭ２３を備えたＩＣチップ２が実装され，ＲＯＭ２２には，スクランブル鍵を派生するための暗号鍵シード１２が記憶され，ＥＥＰＲＯＭ２３には，暗号鍵シード１２から派生されるスクランブル鍵の中から，一つのスクランブル鍵を定義する定義情報１３が記憶されている。ＩＣカード１のＲＯＭ２２に実装された暗号モジュール１０は，ＥＥＰＲＯＭ２３にデータを暗号化して書き込む処理を実行するとき，所定の派生アルゴリズムに従い，定義情報１３で定義される一つのスクランブル鍵を暗号鍵シード１２から派生させ，該スクランブル鍵を該データの暗号化に利用する。【選択図】図２
2010258630.tif 000002
【特許請求の範囲】
【請求項１】
外部へのデータ読み出しが禁止された第１の不揮発性メモリと，電気的に書換え可能な第２の不揮発性メモリを備えたセキュリティトークンであって，
前記第１の不揮発性メモリには，前記第２の不揮発性メモリに書き込むデータを暗号化するスクランブル鍵を派生するための暗号鍵シードが記憶され，前記第２の不揮発性メモリには，前記暗号鍵シードから派生される前記スクランブル鍵の中から，一つの前記スクランブル鍵を定義する定義情報が記憶され，前記第２の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき，所定の派生アルゴリズムに従い，前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ，該スクランブル鍵を該データの暗号化に利用するように構成されていることを特徴とするセキュリティトークン。
【請求項２】
請求項１に記載のセキュリティトークンであって，前記第２の不揮発性メモリに暗号化して記憶されたデータを利用する処理を実行するとき，該データを暗号化した時と同じ前記派生アルゴリズムに従い，前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ，該スクランブル鍵を該データの復号に利用するように構成されていることを特徴とするセキュリティトークン。
【請求項３】
請求項２に記載のセキュリティトークンであって，前記暗号鍵シードは複数の前記スクランブル鍵で構成され，前記定義情報は，前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって，前記派生アルゴリズムは，前記定義情報で指定された前記スクランブル鍵を，データの暗号化／復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークン。
【請求項４】
請求項１または請求項２に記載のセキュリティトークンであって，前記暗号鍵シードは，前記スクランブル鍵の長さよりも長い乱数テーブルで構成され，前記定義情報は，前記乱数テーブルのオフセット値であって，前記派生アルゴリズムは，前記乱数テーブルを参照し，前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を，データの暗号化／復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークン。
【請求項５】
請求項４に記載のセキュリティトークンであって，前記第１の不揮発性メモリには，前記乱数列を暗号化するためのマスター鍵が記憶され，前記派生アルゴリズムは，前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を，データの暗号化／復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークン。
【請求項６】
セキュリティトークンに書き込むデータの暗号化に利用するスクランブル鍵を派生させる方法であって，
外部へのデータ読み出しが禁止された第１の不揮発性メモリに，前記スクランブル鍵を派生するための暗号鍵シードを記憶させ，更に，電気的に書き換え可能な第２の不揮発性メモリに，前記暗号鍵シードから派生される前記スクランブル鍵の中から，一つの前記スクランブル鍵を定義する定義情報を記憶させておき，前記第２の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき，該データの暗号化に利用する前記スクランブル鍵を，所定の派生アルゴリズムに従い，前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させることを特徴とするスクランブル鍵の派生方法。
【請求項７】
請求項６に記載のスクランブル鍵の派生方法であって，前記暗号鍵シードは複数の前記スクランブル鍵で構成され，前記定義情報は，前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって，前記定義情報で指定された前記スクランブル鍵を，データの暗号化／復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法。
【請求項８】
請求項６に記載のスクランブル鍵の派生方法であって，前記暗号鍵シードは，前記スクランブル鍵の長さよりも長い乱数テーブルで構成され，前記定義情報は，前記乱数テーブルのオフセット値であって，前記乱数テーブルを参照し，前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を，データの暗号化／復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法。
【請求項９】
請求項８に記載のスクランブル鍵の派生方法であって，前記第１の不揮発性メモリには，前記乱数列を暗号化するためのマスター鍵が記憶され，前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を，データの暗号化／復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，高いセキュリティを要する用途に利用されるセキュリティトークンの技術分野に関し，更に詳しくは，該セキュリティトークン内部で利用されるスクランブル鍵を派生させるための技術に関する。
【背景技術】
【０００２】
半導体集積回路（以下，ＩＣチップ）が実装されたセキュリティトークンは高いセキュリティを要する用途に利用され，例えば，セキュリティトークンの一つであるＩＣカードは，既に，金融用途においてキャッシュカードやクレジットカードに実用化されている。また，セキュリティトークンの一つであるチェーン付きのＵＳＢキーは，ユーザ認証に利用するワンタイムパスワードを生成する装置としての利用が検討されている。
【０００３】
高いセキュリティを要する用途に利用されるセキュリティトークン内には，セキュリティトークンの用途に合わせて，外部への漏洩が許されないセキュリティデータ（例えば，暗証番号や暗号鍵）が記憶されるが，セキュリティデータの取得を目的とした様々なセキュリティ攻撃法が考案され，セキュリティトークンには該セキュリティ攻撃法に対する耐タンパ性が求められている。
【０００４】
新しく考案されたセキュリティ攻撃法の一つにレーザー攻撃法があり，これは，セキュリティトークン内のＩＣチップ内の電気的に書換え可能な不揮発性メモリに対してレーザーを照射し，該不揮発性メモリの状態を一時的に高エネルギー状態にすることにより，該不揮発性メモリに記録されているデータの値を意図的に変え，レーザーを照射した時のセキュリティトークンから得られる出力とレーザーを照射しない時のセキュリティトークンから得られる出力を比較するなどして，該不揮発性メモリに記憶されたセキュリティデータを得ようとするセキュリティ攻撃方法である。
【０００５】
図１０は，レーザー攻撃法による脅威の説明に利用する図である。図１０では，セキュリティトークンのＩＣチップに設けられた電気的に書き換え可能な不揮発性メモリ３内のデータ構造を図示し，図１０に図示しているように，該不揮発性メモリ３内には，タグ部，レングス部及びバリュー部から構成され，ＩＣカードが利用するデータが該バリュー部に埋め込まれるデータオブジェクトとして，データＡが埋め込まれるデータオブジェクト３０ａ，データＢが埋め込まれるデータオブジェクト３０ｂ，及び，データＣが埋め込まれるデータオブジェクト３０ｃの３つが記憶され，図１０では，データＡを読み出し対象となるデータとし，データＣをセキュリティデータとしている。
【０００６】
また，不揮発性メモリ３内には，データオブジェクトに加え，データオブジェクトを操作するときに参照される管理データがデータオブジェクト毎に記憶され，一つの管理データには，データオブジェクトの開始アドレス及びデータオブジェクトを識別するオブジェクトＩＤが含まれる。なお，図１０では，データオブジェクト３０ａ〜ｃの３つが記憶されているため，それぞれに対応する管理データ３１ａ〜ｃが不揮発性メモリ３に記憶されている。
【０００７】
データオブジェクト３０ａを読み出すことを考えた場合，図１０において，レーザーが書換え可能メモリに照射されていなければ，データオブジェクト３０ａの管理データ３１ａを参照することで，データオブジェクト３０ａを正しく読み出すことができる。
【０００８】
しかし，データオブジェクト３０ａを読み出すときに，データオブジェクト３０ａの管理データ３１ａが記憶されている箇所にレーザーが照射され，管理データ３１ａに含まれる開始アドレスが変化してしまうと，データオブジェクト３０ａが記憶されている以外の場所のデータが不正に読み出されてしまう可能性がある。
【０００９】
また，データオブジェクト３０ａに埋め込まれたデータを読み出すときに，データオブジェクト３０ａのレングス部が記憶されている箇所にのみレーザーが照射され，データオブジェクト３０ｂ及びデータオブジェクト３０ｃを含む長さに該レングス部が変化してしまうと，読み出されるデータオブジェクト３０ａに，データオブジェクト３０ｂ及びデータオブジェクト３０ｃも含まれてしまう可能性がある。
【００１０】
このようなレーザー攻撃法の危険性は以前から指摘されていたが，例えば，データオブジェクトの管理データの一部の範囲のように，電気的に書き換え可能な不揮発性メモリの極小範囲のみにレーザーを照射することは技術的に難しく，該不揮発性メモリの極小範囲にレーザーを照射すると，その近辺に記憶されているデータの値も変わってしまうため，レーザー攻撃法の実効性は低く対策は不要と考えられていた。
【００１１】
しかし，近年，レーザーの照射技術が飛躍的に向上したことで，セキュリティトークンのＩＣチップに実装された電気的に書き換え可能な不揮発性メモリの極小範囲のみを破壊することが可能となったことに伴い，レーザー攻撃法も現実味が出てきたため，レーザー攻撃法への対策も要求されるようになった。
【００１２】
このように，セキュリティトークンの電気的に書き換え可能な不揮発性メモリにセキュリティデータを平文で記憶しておくと，セキュリティトークンがレーザー攻撃法を受けることで，セキュリティデータが不正に読み出されてしまう可能性があり，これを防ぐためには，特許文献１のように，該不揮発性メモリ内に記憶されたデータは暗号化しておくと，セキュリティトークンがレーザー攻撃法を受けることで，セキュリティデータが不正に読み出されてしまうリスクを低減できると考えられる。
【００１３】
しかしながら，レーザー攻撃法によって，セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶されたセキュリティデータを暗号化する暗号鍵が漏洩してしまうと，セキュリティトークンの該不揮発性メモリから得られる暗号データを復号できてしまうため，該不揮発性メモリ内に暗号化した状態でセキュリティデータを記憶していても，レーザー攻撃法によって，セキュリティデータが漏洩してしまう危険性があった。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００９―１５３７５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１５】
そこで，本発明は，レーザー攻撃法対策として，セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶するセキュリティデータを暗号化するケースであっても，セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できるセキュリティトークン及びスクランブル鍵の派生方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上述した課題を解決する第１の発明は，外部へのデータ読み出しが禁止された第１の不揮発性メモリと，電気的に書換え可能な第２の不揮発性メモリを備えたセキュリティトークンであって，前記第１の不揮発性メモリには，前記第２の不揮発性メモリに書き込むデータを暗号化するスクランブル鍵を派生するための暗号鍵シードが記憶され，前記第２の不揮発性メモリには，前記暗号鍵シードから派生される前記スクランブル鍵の中から，一つの前記スクランブル鍵を定義する定義情報が記憶され，前記第２の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき，所定の派生アルゴリズムに従い，前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ，該スクランブル鍵を該データの暗号化に利用するように構成されていることを特徴とするセキュリティトークンである。
【００１７】
更に，第２の発明は，第１の発明に記載のセキュリティトークンであって，前記第２の不揮発性メモリに暗号化して記憶されたデータを利用する処理を実行するとき，該データを暗号化した時と同じ前記派生アルゴリズムに従い，前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ，該スクランブル鍵を該データの復号に利用するように構成されていることを特徴とするセキュリティトークンである。
【００１８】
更に，第３の発明は，第２の発明に記載のセキュリティトークンであって，前記暗号鍵シードは複数の前記スクランブル鍵で構成され，前記定義情報は，前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって，前記派生アルゴリズムは，前記定義情報で指定された前記スクランブル鍵を，データの暗号化／復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークンである。
【００１９】
更に，第４の発明は，第１の発明または第２の発明に記載のセキュリティトークンであって，前記暗号鍵シードは，前記スクランブル鍵の長さよりも長い乱数テーブルで構成され，前記定義情報は，前記乱数テーブルのオフセット値であって，前記派生アルゴリズムは，前記乱数テーブルを参照し，前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を，データの暗号化／復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークンである。
【００２０】
更に，第５の発明は，第４の発明に記載のセキュリティトークンであって，前記第１の不揮発性メモリには，前記乱数列を暗号化するためのマスター鍵が記憶され，前記派生アルゴリズムは，前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を，データの暗号化／復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークンである。
【００２１】
更に，第６の発明は，セキュリティトークンに書き込むデータの暗号化に利用するスクランブル鍵を派生させる方法であって，外部へのデータ読み出しが禁止された第１の不揮発性メモリに，前記スクランブル鍵を派生するための暗号鍵シードを記憶させ，更に，電気的に書き換え可能な第２の不揮発性メモリに，前記暗号鍵シードから派生される前記スクランブル鍵の中から，一つの前記スクランブル鍵を定義する定義情報を記憶させておき，前記第２の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき，該データの暗号化に利用する前記スクランブル鍵を，所定の派生アルゴリズムに従い，前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させることを特徴とするスクランブル鍵の派生方法である。
【００２２】
更に，第７の発明は，第６の発明に記載のスクランブル鍵の派生方法であって，前記暗号鍵シードは複数の前記スクランブル鍵で構成され，前記定義情報は，前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって，前記定義情報で指定された前記スクランブル鍵を，データの暗号化／復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法である。
【００２３】
更に，第８の発明は，第６の発明に記載のスクランブル鍵の派生方法であって，前記暗号鍵シードは，前記スクランブル鍵の長さよりも長い乱数テーブルで構成され，前記定義情報は，前記乱数テーブルのオフセット値であって，前記乱数テーブルを参照し，前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を，データの暗号化／復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法である。
【００２４】
更に，第９の発明は，第８の発明に記載のスクランブル鍵の派生方法であって，前記第１の不揮発性メモリには，前記乱数列を暗号化するためのマスター鍵が記憶され，前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を，データの暗号化／復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法である。
【発明の効果】
【００２５】
上述した本発明によれば，レーザー攻撃法対策として，セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶するセキュリティデータを暗号化するケースであっても，セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できるセキュリティトークン及びスクランブル鍵の派生方法を提供できる。
【図面の簡単な説明】
【００２６】
【図１】ＩＣカードの外観を説明する図。
【図２】ＩＣカードに実装されるＩＣチップの構成を説明する図。
【図３】暗号モジュールの処理の手順を示したフロー図。
【図４】復号モジュールの処理の手順を示したフロー図。
【図５】平文データオブジェクトのフォーマットを説明する図。
【図６】暗号データオブジェクトのフォーマットを説明する図。
【図７】実施例１における暗号鍵シード及び定義情報を説明する図。
【図８】実施例２における暗号鍵シード及び定義情報を説明する図。
【図９】実施例３における暗号鍵シード及び定義情報を説明する図。
【図１０】レーザー攻撃法による脅威の説明に利用する図。
【発明を実施するための形態】
【００２７】
ここから，本発明が属する技術分野における当業者が本発明を実施することができる程度に，本発明のセキュリティトークンをＩＣカードとしたときの実施形態について説明する。
【００２８】
図１は，本発明のセキュリティトークンとして機能するＩＣカード１の外観を説明する図である。
【００２９】
図１に図示したように，ＩＣカード１とはキャッシュカードのサイズの媒体に，ＩＣチップ２がモールドされたＩＣモジュール１ａがエンベットされたカードで，図１では，ＩＣカード１を接触型で記載しているが，本発明に係わる内容は，ＩＣカード１にエンベットされたＩＣチップ２内部で実行されるため，ＩＣカード１は，アンテナが内蔵された非接触型であってもよい。
【００３０】
また，ＩＣカード１の形状はキャッシュカードの形状でなくともよく，ＳＩＭ（Subscriber Identity Module Card）やＵＳＩＭ（Universal Identity Module Card）のような形状であってもよい。
【００３１】
図２は，ＩＣカード１に実装されるＩＣチップ２の構成を説明する図である。図２に図示したように，ＩＣカード１にエンベットされるＩＣチップ２はＣＰＵ２０（Central Processing Unit）が実装されたマイクロコントローラで，ＩＣチップ２には，メモリとして，揮発性メモリであるＲＡＭ２１（Random Access Memory）と，読み出し専用の第１の不揮発性メモリであるＲＯＭ２２（ReadOnly Memory）と，電気的に書換え可能な第２のメモリであるＥＥＰＲＯＭ２３（Electrically Erasable and Programmable Read Only Memory）を備えている。
【００３２】
更に，ＩＣカード１にエンベットされるＩＣチップ２は，ＣＰＵ２０の周辺回路として，乱数を生成する乱数生成器２４（Random Number Generator）と，所定の暗号アルゴリズム（例えば，ＤＥＳ）の演算機能に特化した暗号演算コプロセッサ２５（Cryptographic Co-processer）と，所定の伝送プロトコルを実行するＵＡＲＴ２６（Universal Asynchronous Receiver Transmitter）と，外部装置とのデータの送受信に利用するＩ／Ｏポート２７とを備えている。
【００３３】
図２で図示したＩＣチップ２の構成は一例に過ぎず，図２で図示していない回路（例えば，WDT: Watched Dog Timer）もＩＣチップ２に備えていてもよく，また，電気的に書換え可能な第２のメモリはＦＲＡＭであってもよい。
【００３４】
図２で図示したＩＣチップ２のＲＯＭ２２には，各ＩＣカード１で共通のプログラムコードがＩＣカード１の製造時に実装され，ＩＣチップ２のセキュリティを高めるために，ＲＯＭ２２に記憶されたプログラムコードを外部に読み出すことを禁止するプロテクト機能がＩＣカード１に備えられている。
【００３５】
ＲＯＭに記憶されたプログラムコードを外部に読み出すことを禁止するプロテクト機能は，データを外部に読み出すプログラムコード（例えば，Read Commandのプログラムコード）に，読み出すデータのアドレスをチェックする機能を入れることでソフトウェア的に実現できる。また，ＩＣチップ２のＣＰＵ２０が，メモリ管理ユニット（MMU: Memory Management Unit）の機能を備えている場合は，メモリ管理の機能を利用し該プロテクト機能をハードウェア的に実現することも可能である。
【００３６】
本実施形態において，ＩＣカード１にエンベットされたＩＣチップ２のＲＯＭ２２には，ＩＣカード１用のオペレーティングやアプリケーションのプログラムコードが記憶され，該プログラムコードには，ＥＥＰＲＯＭ２３にデータ（ここでは，セキュリティデータ）を暗号化して記憶する処理を実行するときに，セキュリティデータを暗号化する暗号モジュール１０と，ＥＥＰＲＯＭ２３に暗号化して記憶されたセキュリティデータを利用する処理を実行するときに，暗号化されたセキュリティデータを復号する復号モジュール１１と，セキュリティデータの暗号化に利用するスクランブル鍵を派生するための暗号鍵シード１２が含まれている。
【００３７】
また，ＩＣカード１のＩＣチップ２のＥＥＰＲＯＭ２３には，ＲＯＭ２２に記憶された暗号鍵シード１２から派生することのできるスクランブル鍵の中から，暗号モジュール１０及び復号モジュール１１が利用するスクランブル鍵を定義する定義情報１３が記憶されている。
【００３８】
ＩＣカード１を上述した構成とすることで，ＩＣチップ２のＥＥＰＲＯＭ２２に記憶するセキュリティデータを暗号化するスクランブル鍵を派生するときに利用する暗号鍵シード１２は，プロテクト機能が備えられたＲＯＭ２２内に記憶されるために，本発明の「背景技術」に記載しているように該データの管理データがレーザー攻撃を受けた場合であっても，暗号鍵シード１２が不正に読み出されることを防止でき，暗号鍵シード１２が不正に読み出されることを防止できることはスクランブル鍵が不正に読み出されることを防止できることを意味する。
【００３９】
本発明では，ＩＣカード１にエンベットされたＩＣチップ２のＲＯＭ２２に記憶する暗号鍵シード１２からスクランブル鍵を派生させる派生アルゴリズム及びＥＥＰＲＯＭ２３に記憶される定義情報１３の具体的内容は，ＲＯＭ２２に記憶される暗号鍵シード１２の形態に依存する。
【００４０】
ここから，本発明をより理解できるように，まず，セキュリティデータを暗号化してＥＥＰＲＯＭ２３に記憶させる処理，及び，ＥＥＰＲＯＭ２３に暗号化して記憶したセキュリティデータを復号する処理の一連の手順について説明した後，ＲＯＭ２２に記憶される暗号鍵シード１２の幾つかの形態について説明する。
【００４１】
図３は，暗号モジュール１０の処理の手順を示したフロー図で，図４は，復号モジュール１１の処理の手順を示したフロー図である。
【００４２】
図３を参照しながら，暗号モジュール１０の処理の手順について説明する。ＩＣカード１は，セキュリティデータの平文を暗号化してＥＥＰＲＯＭ２３に書き込むコマンドメッセージを受信すると，セキュリティデータの平文を暗号化してＥＥＰＲＯＭ２３に書き込む処理を開始する（Ｓ１）。
【００４３】
ＩＣカード１が受信するコマンドメッセージのコマンド識別子およびパラメータによって，コマンドメッセージのデータ部を暗号化してＥＥＰＲＯＭ２３に暗号化して書き込む処理と，データ部を書き込むファイルのファイルＩＤが示され，更に，コマンドメッセージのデータ部には，セキュリティデータの平文データオブジェクトが含まれている。
【００４４】
図５は，平文データオブジェクトのフォーマットを説明する図で，図５に図示したように，セキュリティデータの平文データオブジェクトのタグ部は，データオブジェクトのバリュー部が平文であることを示すＴｐで，レングス部は，セキュリティデータの平文のデータ長を示すＬｐで，バリュー部には平文（ここでは，セキュリティデータ）が記述されている。
【００４５】
コマンドメッセージによって，データを暗号化してＥＥＰＲＯＭ２３に書き込む処理を実行することが示されるとき，まず，ＩＣカード１の暗号モジュール１０が起動し，暗号モジュール１０は，該コマンドメッセージのデータ部に含まれるセキュリティデータの平文データオブジェクトを暗号化する処理を開始する。
【００４６】
暗号モジュール１０は起動すると，セキュリティデータの平文データオブジェクトの暗号化に利用するスクランブル鍵を派生するために，ＥＥＰＲＯＭ２３から定義情報１３を読み取り，定められた派生アルゴリズムに従い，定義情報１３で定義される一つのスクランブル鍵をＲＯＭ２２に記憶された暗号鍵シード１２から派生し，派生したスクラブル鍵をＲＡＭ２１にこの処理が終了するまで記憶する（Ｓ３）。
【００４７】
そして，暗号モジュール１０は，セキュリティデータの平文データオブジェクトの暗号化に利用するスクランブル鍵を派生すると，タグ部及びレングス部を含む平文データオブジェクトのデータ長が，平文データオブジェクトを暗号化する暗号アルゴリズムで規定される長さに合うように，該平文データオブジェクトに所定値をパディングした後，パディング後の該平文データオブジェクトと該スクランブル鍵を暗号演算コプロセッサ２５に引き渡して，パディング後の該平文データオブジェクトの暗号処理を暗号演算コプロセッサ２５に指示する（Ｓ４）。
【００４８】
暗号モジュール１０は，パディング後のセキュリティデータの平文データオブジェクトを暗号化した暗号文を暗号演算コプロセッサから引き渡されると，該暗号文の暗号データオブジェクトを生成する（Ｓ５）。
【００４９】
図６は，暗号データオブジェクトのフォーマットを説明する図で，図６に図示したように，該暗号データオブジェクトのタグ部は，バリュー部が暗号化されていることを示すＴｃで，レングス部は，パディング後のセキュリティデータの平文データオブジェクトを暗号化した暗号文のデータ長を示すＬｐで，バリュー部には該暗号文（ここで，はパディング後のセキュリティデータの平文データオブジェクトの暗号文）が記述されている。
【００５０】
そして，暗号モジュール１０は，暗号データオブジェクトを生成すると，データをＥＥＰＲＯＭ２３に書き込む書き込みモジュールを起動させ，書き込みモジュールは，該暗号データオブジェクトをＥＥＰＲＯＭ２３に書き込みした後，コマンドメッセージで示されるファイルＩＤ，ＥＥＰＲＯＭ２３に書き込み開始した開始アドレス，タグ部及びレングス部を含む暗号データオブジェクトのデータ長を含む管理情報を生成し，該管理情報をＥＥＰＲＯＭ２３に書き込む処理を実行し（Ｓ６），図３で図示した手順は終了する。
【００５１】
次に，図４を参照しながら，復号モジュール１１の処理の手順について説明する。ＩＣカード１は，セキュリティデータを利用するコマンドメッセージ（例えば，ＰＩＮを照合するコマンドメッセージ）を受信すると（Ｓ１０），暗号化された状態でＥＥＰＲＯＭ２３に書き込まれたセキュリティデータを復号する処理を開始する。
【００５２】
ＩＣカード１が受信するコマンドメッセージのコマンド識別子或いはパラメータによって，セキュリティデータを利用する処理と，セキュリティデータのファイルＩＤが示され，セキュリティデータを利用する処理を実行するモジュールは，コマンドメッセージで示されるファイルＩＤを含む管理情報の開始アドレスから記憶されているデータオブジェクのタグ部から，該データオブジェクトが暗号データオブジェクトであるか否かを判断し，ここでは，セキュリティデータのデータオブジェクトは暗号化オブジェクトであるため該モジュールは，復号モジュール１１を起動させ，セキュリティデータの暗号データオブジェクトのバリュー部を復号する処理を行う（Ｓ１１）。
【００５３】
復号モジュール１１は起動すると，まず，セキュリティデータの暗号データオブジェクトのバリュー部を復号するスクランブル鍵を派生するために，ＥＥＰＲＯＭ２３に記憶された定義情報１３を読み取り，セキュリティデータの平文データオブジェクトを暗号化したときと同じ派生アルゴリズムに従い，定義情報１３で定義される一つのスクランブル鍵をＲＯＭ２２に記憶された暗号鍵シード１２から派生し，派生したスクラブル鍵をＲＡＭ２１にこの処理が終了するまで記憶する（Ｓ１２）。
【００５４】
復号モジュール１１は，バリュー部の復号に利用するスクランブル鍵を特定すると，バリュー部のデータとスクランブル鍵を暗号演算コプロセッサ２５に引き渡して，暗号データオブジェクトのバリュー部の復号処理を暗号演算コプロセッサ２５に指示する（Ｓ１３）。
【００５５】
復号モジュール１１は，暗号データオブジェクトのバリュー部を復号したデータ，ここでは，パディング後のセキュリティデータの平文データオブジェクトが暗号演算コプロセッサ２５から引き渡されると，パディングを除く処理を実行し，セキュリティデータを利用する処理をセキュリティデータの平文データオブジェクトのみを実行するモジュールに引き渡し，該モジュールは，平文データオブジェクトのバリュー部を利用して，セキュリティデータを利用する処理を実行し，この手順を終了する（Ｓ１４）。
【００５６】
上述したように，本発明では，ＩＣカード１にエンベットされたＩＣチップ２のＲＯＭ２２に記憶する暗号鍵シード１２からスクランブル鍵を派生させる派生アルゴリズム及びＥＥＰＲＯＭ２３に記憶される定義情報１３の具体的内容は，ＲＯＭ２２に記憶される暗号鍵シード１２の形態に依存するため，ここから，幾つかの暗号鍵シード１２の形態について，暗号鍵シード１２の形態，定義情報１３及び派生アルゴリズムの具体的内容について説明する。
【実施例１】
【００５７】
実施例１は，ＩＣカード１にエンベットされたＩＣチップのＲＯＭ２２に記憶する暗号鍵シード１２を複数のスクランブル鍵で構成したときの実施例である。
【００５８】
図７は，実施例１におけるＩＣチップの暗号鍵シード１２及び定義情報１３を説明する図である。図７で図示したように，実施例１におけるＩＣチップのＲＯＭ２２には，複数（ここでは，３つ）のスクランブル鍵１２０ａ〜ｃが暗号鍵シード１２として記憶され，暗号鍵シード１２０に含まれるスクランブル鍵１２０ａ〜ｃそれぞれには，スクランブル鍵を識別するためのＩＤが付与されている。図７では，スクランブル鍵１２０ａのＩＤは「０１」，スクランブル鍵１２０ｂのＩＤは「０２」，そして，スクランブル鍵１２０ｃのＩＤは「０３」である。
【００５９】
また，図７で図示したように，実施例１におけるＩＣチップ２のＥＥＰＲＯＭ２３には，ＩＣ１カードが発行されるときに，セキュリティデータの暗号化に利用するスクランブル鍵を定義する定義情報１３には，ＩＣチップのＲＯＭ２２に記憶されるスクランブル鍵１２０ａ〜ｃにそれぞれ付与されたＩＤの中から，一つのＩＤが記述される。当然のことながら，ＥＥＰＲＯＭ２３に記憶する定義情報１０をＩＣカード１毎に変更すれば，セキュリティデータの暗号化に利用するスクランブル鍵を変更することができる。
【００６０】
実施例１においては，図３のＳ３及び図４のＳ１２において，暗号モジュール１０及び復号モジュール１１は，それぞれ，ＲＯＭ２２に記憶された３つのスクランブル鍵１２０ａ〜ｃの中から，ＥＥＰＲＯＭ２３から読み取った定義情報１３と同じＩＤを有するスクランブル鍵を暗号化に利用するスクランブル鍵として派生させる処理を実行する。
【００６１】
例えば，ＥＥＰＲＯＭ２３から読み取った定義情報１３が「０２」であるときは，ＲＯＭ２２に記憶された３つのスクランブル鍵１２０ａ〜ｃの中から，「０２」がＩＤとして付与されたスクランブル鍵１２０ｂが派生される。
【００６２】
このように，実施例１によれば，暗号鍵シード１２として複数のスクランブル鍵を用意し，定義情報で指し示される一つのスクランブル鍵をセキュリティデータの暗号化に利用することで，該定義情報がレーザー攻撃を受けて変化しても，セキュリティデータの暗号化に利用したスクランブル鍵とは異なるスクランブル鍵が利用され，セキュリティデータは正常に復号されることがなく，セキュリティデータが不正に利用されることを防止できる。
【実施例２】
【００６３】
実施例２は，ＩＣチップ２のＲＯＭ２２に記憶する暗号鍵シード１２を乱数テーブルとしたときの実施例である。
【００６４】
図８は，実施例２における暗号鍵シード１２及び定義情報１３を説明する図である。図８で図示したように，実施例２におけるＩＣチップのＲＯＭ２２には，複数のスクランブル鍵を派生できるように，１バイトの乱数が所定の数だけ並べられた乱数テーブル１２１が暗号鍵シードして記憶される。
【００６５】
また，図８で図示したように，実施例２におけるＩＣチップのＥＥＰＲＯＭ２３には，ＩＣカードが発行されるときに，セキュリティデータの暗号化に利用するスクランブル鍵を定義する定義情報１３として，ＩＣチップのＲＯＭ２２に記憶される乱数テーブル１２１のオフセット値が記憶されている。
【００６６】
実施例２においては，図３のＳ３及び図４のＳ１２において，暗号モジュール１０及び復号モジュール１１は，それぞれ，ＲＯＭ２２に記憶された乱数テーブル１２１の中から，該オフセット値を開始地点とし，スクランブル鍵の長さに対応する乱数列をスクランブル鍵として派生する処理を実行する。
【００６７】
なお，ＩＣチップのＲＯＭ２２に記憶される乱数テーブルの長さは，スクランブル鍵の長さよりも長くないと，乱数テーブルから複数のスクランブル鍵を派生することができないため，乱数テーブルから派生させることのできるスクランブル鍵の数に応じて，ＲＯＭ２２に記憶される乱数テーブル１２１の長さは決定される。
【００６８】
このように，実施例２によれば，暗号鍵シード１２として乱数テーブルを用意し，定義情報１３で指し示されるオフセット値から一意に決定される乱数テーブルの一部をセキュリティデータの暗号化に利用することで，実施例１と同様の効果が得られると共に，実施例１と比較して，暗号鍵シード１２の容量を小さくすることができるようになる。
【実施例３】
【００６９】
実施例３は，実施例２と同様に，セキュリティデータの暗号化に利用するスクランブル鍵を得るために利用する一つの乱数テーブルをＩＣチップのＲＯＭ２２に記憶させ，更に，該乱数テーブルから取得したスクランブル鍵の長さの乱数列の暗号化に利用するマスター鍵を暗号鍵シードとしてＲＯＭ２２に記憶させた実施例である。
【００７０】
図９は，実施例３における暗号鍵シード１２及び定義情報１３を説明する図である。図９で図示したように，実施例３におけるＩＣチップ２のＲＯＭ２２には，複数のスクランブル鍵を生成するために利用され，１バイトの乱数が所定の数だけ並べられた乱数テーブル１２２に加え，乱数テーブル１２２から取得されるスクランブル鍵の長さの乱数を暗号化するためのマスター鍵１２３が記憶されている。
【００７１】
また，図９で図示したように，実施例３におけるＩＣチップのＥＥＰＲＯＭ２３には，実施例２と同様に，ＩＣカード１が発行されるときに，セキュリティデータの暗号化に利用するスクランブル鍵を指定する定義情報１３として，ＩＣチップのＲＯＭ２２に記憶される乱数テーブル１２２のオフセット値が記憶されている。
【００７２】
実施例３においては，図３のＳ３及び図４のＳ１２において，暗号モジュール１０及び復号モジュール１１は，それぞれ，スクランブル鍵を派生するために，ＲＯＭ２２に記憶された乱数テーブル１２２から，該オフセット値を開始地点とし，スクランブル鍵の長さに対応する乱数列を取得した後，該乱数列とＲＯＭ２２に記憶されたマスター鍵を暗号演算コプロセッサ２５に引き渡して，該乱数列の暗号処理を暗号演算コプロセッサ２５に指示し，該乱数列の暗号文をスクランブル鍵として派生する処理を実行する。
【００７３】
このように，実施例３によれば，暗号鍵シード１２として乱数テーブルを用意し，定義情報１３で指し示されるオフセット値から一意に決定される乱数テーブルの一部をマスター鍵で暗号化した暗号文をセキュリティデータの暗号化に利用することで，乱数テーブルそのものがスクランブル鍵の派生に利用されないため，他の用途で利用する乱数テーブルをスクランブル鍵の派生に使い回すことができるようになる。
【符号の説明】
【００７４】
１    ＩＣカード
１０  暗号モジュール
１１  復号モジュール
１２  暗号鍵シード
１３  定義情報
２    ＩＣチップ
２０  ＣＰＵ
２１  ＲＡＭ
２２  ＲＯＭ
２３  ＥＥＰＲＯＭ
２４  乱数生成回路
２５  暗号演算コプロセッサ
【図１】
2010258630.tif 000003
【図２】
2010258630.tif 000004
【図３】
2010258630.tif 000005
【図４】
2010258630.tif 000006
【図５】
2010258630.tif 000007
【図６】
2010258630.tif 000008
【図７】
2010258630.tif 000009
【図８】
2010258630.tif 000010
【図９】
2010258630.tif 000011
【図１０】
2010258630.tif 000012