説明

セキュリティトークン及びスクランブル鍵の派生方法

【課題】セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できるセキュリティトークンを提供する。
【解決手段】ICカード1は,外部へのデータ読み出しが禁止されたROM22と,電気的に書換え可能なEEPROM23を備えたICチップ2が実装され,ROM22には,スクランブル鍵を派生するための暗号鍵シード12が記憶され,EEPROM23には,暗号鍵シード12から派生されるスクランブル鍵の中から,一つのスクランブル鍵を定義する定義情報13が記憶されている。ICカード1のROM22に実装された暗号モジュール10は,EEPROM23にデータを暗号化して書き込む処理を実行するとき,所定の派生アルゴリズムに従い,定義情報13で定義される一つのスクランブル鍵を暗号鍵シード12から派生させ,該スクランブル鍵を該データの暗号化に利用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,高いセキュリティを要する用途に利用されるセキュリティトークンの技術分野に関し,更に詳しくは,該セキュリティトークン内部で利用されるスクランブル鍵を派生させるための技術に関する。
【背景技術】
【0002】
半導体集積回路(以下,ICチップ)が実装されたセキュリティトークンは高いセキュリティを要する用途に利用され,例えば,セキュリティトークンの一つであるICカードは,既に,金融用途においてキャッシュカードやクレジットカードに実用化されている。また,セキュリティトークンの一つであるチェーン付きのUSBキーは,ユーザ認証に利用するワンタイムパスワードを生成する装置としての利用が検討されている。
【0003】
高いセキュリティを要する用途に利用されるセキュリティトークン内には,セキュリティトークンの用途に合わせて,外部への漏洩が許されないセキュリティデータ(例えば,暗証番号や暗号鍵)が記憶されるが,セキュリティデータの取得を目的とした様々なセキュリティ攻撃法が考案され,セキュリティトークンには該セキュリティ攻撃法に対する耐タンパ性が求められている。
【0004】
新しく考案されたセキュリティ攻撃法の一つにレーザー攻撃法があり,これは,セキュリティトークン内のICチップ内の電気的に書換え可能な不揮発性メモリに対してレーザーを照射し,該不揮発性メモリの状態を一時的に高エネルギー状態にすることにより,該不揮発性メモリに記録されているデータの値を意図的に変え,レーザーを照射した時のセキュリティトークンから得られる出力とレーザーを照射しない時のセキュリティトークンから得られる出力を比較するなどして,該不揮発性メモリに記憶されたセキュリティデータを得ようとするセキュリティ攻撃方法である。
【0005】
図10は,レーザー攻撃法による脅威の説明に利用する図である。図10では,セキュリティトークンのICチップに設けられた電気的に書き換え可能な不揮発性メモリ3内のデータ構造を図示し,図10に図示しているように,該不揮発性メモリ3内には,タグ部,レングス部及びバリュー部から構成され,ICカードが利用するデータが該バリュー部に埋め込まれるデータオブジェクトとして,データAが埋め込まれるデータオブジェクト30a,データBが埋め込まれるデータオブジェクト30b,及び,データCが埋め込まれるデータオブジェクト30cの3つが記憶され,図10では,データAを読み出し対象となるデータとし,データCをセキュリティデータとしている。
【0006】
また,不揮発性メモリ3内には,データオブジェクトに加え,データオブジェクトを操作するときに参照される管理データがデータオブジェクト毎に記憶され,一つの管理データには,データオブジェクトの開始アドレス及びデータオブジェクトを識別するオブジェクトIDが含まれる。なお,図10では,データオブジェクト30a〜cの3つが記憶されているため,それぞれに対応する管理データ31a〜cが不揮発性メモリ3に記憶されている。
【0007】
データオブジェクト30aを読み出すことを考えた場合,図10において,レーザーが書換え可能メモリに照射されていなければ,データオブジェクト30aの管理データ31aを参照することで,データオブジェクト30aを正しく読み出すことができる。
【0008】
しかし,データオブジェクト30aを読み出すときに,データオブジェクト30aの管理データ31aが記憶されている箇所にレーザーが照射され,管理データ31aに含まれる開始アドレスが変化してしまうと,データオブジェクト30aが記憶されている以外の場所のデータが不正に読み出されてしまう可能性がある。
【0009】
また,データオブジェクト30aに埋め込まれたデータを読み出すときに,データオブジェクト30aのレングス部が記憶されている箇所にのみレーザーが照射され,データオブジェクト30b及びデータオブジェクト30cを含む長さに該レングス部が変化してしまうと,読み出されるデータオブジェクト30aに,データオブジェクト30b及びデータオブジェクト30cも含まれてしまう可能性がある。
【0010】
このようなレーザー攻撃法の危険性は以前から指摘されていたが,例えば,データオブジェクトの管理データの一部の範囲のように,電気的に書き換え可能な不揮発性メモリの極小範囲のみにレーザーを照射することは技術的に難しく,該不揮発性メモリの極小範囲にレーザーを照射すると,その近辺に記憶されているデータの値も変わってしまうため,レーザー攻撃法の実効性は低く対策は不要と考えられていた。
【0011】
しかし,近年,レーザーの照射技術が飛躍的に向上したことで,セキュリティトークンのICチップに実装された電気的に書き換え可能な不揮発性メモリの極小範囲のみを破壊することが可能となったことに伴い,レーザー攻撃法も現実味が出てきたため,レーザー攻撃法への対策も要求されるようになった。
【0012】
このように,セキュリティトークンの電気的に書き換え可能な不揮発性メモリにセキュリティデータを平文で記憶しておくと,セキュリティトークンがレーザー攻撃法を受けることで,セキュリティデータが不正に読み出されてしまう可能性があり,これを防ぐためには,特許文献1のように,該不揮発性メモリ内に記憶されたデータは暗号化しておくと,セキュリティトークンがレーザー攻撃法を受けることで,セキュリティデータが不正に読み出されてしまうリスクを低減できると考えられる。
【0013】
しかしながら,レーザー攻撃法によって,セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶されたセキュリティデータを暗号化する暗号鍵が漏洩してしまうと,セキュリティトークンの該不揮発性メモリから得られる暗号データを復号できてしまうため,該不揮発性メモリ内に暗号化した状態でセキュリティデータを記憶していても,レーザー攻撃法によって,セキュリティデータが漏洩してしまう危険性があった。
【先行技術文献】
【特許文献】
【0014】
【特許文献1】特開2009―15375号公報
【発明の概要】
【発明が解決しようとする課題】
【0015】
そこで,本発明は,レーザー攻撃法対策として,セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶するセキュリティデータを暗号化するケースであっても,セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できるセキュリティトークン及びスクランブル鍵の派生方法を提供することを目的とする。
【課題を解決するための手段】
【0016】
上述した課題を解決する第1の発明は,外部へのデータ読み出しが禁止された第1の不揮発性メモリと,電気的に書換え可能な第2の不揮発性メモリを備えたセキュリティトークンであって,前記第1の不揮発性メモリには,前記第2の不揮発性メモリに書き込むデータを暗号化するスクランブル鍵を派生するための暗号鍵シードが記憶され,前記第2の不揮発性メモリには,前記暗号鍵シードから派生される前記スクランブル鍵の中から,一つの前記スクランブル鍵を定義する定義情報が記憶され,前記第2の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき,所定の派生アルゴリズムに従い,前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ,該スクランブル鍵を該データの暗号化に利用するように構成されていることを特徴とするセキュリティトークンである。
【0017】
更に,第2の発明は,第1の発明に記載のセキュリティトークンであって,前記第2の不揮発性メモリに暗号化して記憶されたデータを利用する処理を実行するとき,該データを暗号化した時と同じ前記派生アルゴリズムに従い,前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ,該スクランブル鍵を該データの復号に利用するように構成されていることを特徴とするセキュリティトークンである。
【0018】
更に,第3の発明は,第2の発明に記載のセキュリティトークンであって,前記暗号鍵シードは複数の前記スクランブル鍵で構成され,前記定義情報は,前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって,前記派生アルゴリズムは,前記定義情報で指定された前記スクランブル鍵を,データの暗号化/復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークンである。
【0019】
更に,第4の発明は,第1の発明または第2の発明に記載のセキュリティトークンであって,前記暗号鍵シードは,前記スクランブル鍵の長さよりも長い乱数テーブルで構成され,前記定義情報は,前記乱数テーブルのオフセット値であって,前記派生アルゴリズムは,前記乱数テーブルを参照し,前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を,データの暗号化/復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークンである。
【0020】
更に,第5の発明は,第4の発明に記載のセキュリティトークンであって,前記第1の不揮発性メモリには,前記乱数列を暗号化するためのマスター鍵が記憶され,前記派生アルゴリズムは,前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を,データの暗号化/復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークンである。
【0021】
更に,第6の発明は,セキュリティトークンに書き込むデータの暗号化に利用するスクランブル鍵を派生させる方法であって,外部へのデータ読み出しが禁止された第1の不揮発性メモリに,前記スクランブル鍵を派生するための暗号鍵シードを記憶させ,更に,電気的に書き換え可能な第2の不揮発性メモリに,前記暗号鍵シードから派生される前記スクランブル鍵の中から,一つの前記スクランブル鍵を定義する定義情報を記憶させておき,前記第2の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき,該データの暗号化に利用する前記スクランブル鍵を,所定の派生アルゴリズムに従い,前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させることを特徴とするスクランブル鍵の派生方法である。
【0022】
更に,第7の発明は,第6の発明に記載のスクランブル鍵の派生方法であって,前記暗号鍵シードは複数の前記スクランブル鍵で構成され,前記定義情報は,前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって,前記定義情報で指定された前記スクランブル鍵を,データの暗号化/復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法である。
【0023】
更に,第8の発明は,第6の発明に記載のスクランブル鍵の派生方法であって,前記暗号鍵シードは,前記スクランブル鍵の長さよりも長い乱数テーブルで構成され,前記定義情報は,前記乱数テーブルのオフセット値であって,前記乱数テーブルを参照し,前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を,データの暗号化/復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法である。
【0024】
更に,第9の発明は,第8の発明に記載のスクランブル鍵の派生方法であって,前記第1の不揮発性メモリには,前記乱数列を暗号化するためのマスター鍵が記憶され,前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を,データの暗号化/復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法である。
【発明の効果】
【0025】
上述した本発明によれば,レーザー攻撃法対策として,セキュリティトークンの電気的に書き換え可能な不揮発性メモリに記憶するセキュリティデータを暗号化するケースであっても,セキュリティデータを暗号化するときに利用したスクランブル鍵の漏洩を防止できるセキュリティトークン及びスクランブル鍵の派生方法を提供できる。
【図面の簡単な説明】
【0026】
【図1】ICカードの外観を説明する図。
【図2】ICカードに実装されるICチップの構成を説明する図。
【図3】暗号モジュールの処理の手順を示したフロー図。
【図4】復号モジュールの処理の手順を示したフロー図。
【図5】平文データオブジェクトのフォーマットを説明する図。
【図6】暗号データオブジェクトのフォーマットを説明する図。
【図7】実施例1における暗号鍵シード及び定義情報を説明する図。
【図8】実施例2における暗号鍵シード及び定義情報を説明する図。
【図9】実施例3における暗号鍵シード及び定義情報を説明する図。
【図10】レーザー攻撃法による脅威の説明に利用する図。
【発明を実施するための形態】
【0027】
ここから,本発明が属する技術分野における当業者が本発明を実施することができる程度に,本発明のセキュリティトークンをICカードとしたときの実施形態について説明する。
【0028】
図1は,本発明のセキュリティトークンとして機能するICカード1の外観を説明する図である。
【0029】
図1に図示したように,ICカード1とはキャッシュカードのサイズの媒体に,ICチップ2がモールドされたICモジュール1aがエンベットされたカードで,図1では,ICカード1を接触型で記載しているが,本発明に係わる内容は,ICカード1にエンベットされたICチップ2内部で実行されるため,ICカード1は,アンテナが内蔵された非接触型であってもよい。
【0030】
また,ICカード1の形状はキャッシュカードの形状でなくともよく,SIM(Subscriber Identity Module Card)やUSIM(Universal Identity Module Card)のような形状であってもよい。
【0031】
図2は,ICカード1に実装されるICチップ2の構成を説明する図である。図2に図示したように,ICカード1にエンベットされるICチップ2はCPU20(Central Processing Unit)が実装されたマイクロコントローラで,ICチップ2には,メモリとして,揮発性メモリであるRAM21(Random Access Memory)と,読み出し専用の第1の不揮発性メモリであるROM22(ReadOnly Memory)と,電気的に書換え可能な第2のメモリであるEEPROM23(Electrically Erasable and Programmable Read Only Memory)を備えている。
【0032】
更に,ICカード1にエンベットされるICチップ2は,CPU20の周辺回路として,乱数を生成する乱数生成器24(Random Number Generator)と,所定の暗号アルゴリズム(例えば,DES)の演算機能に特化した暗号演算コプロセッサ25(Cryptographic Co-processer)と,所定の伝送プロトコルを実行するUART26(Universal Asynchronous Receiver Transmitter)と,外部装置とのデータの送受信に利用するI/Oポート27とを備えている。
【0033】
図2で図示したICチップ2の構成は一例に過ぎず,図2で図示していない回路(例えば,WDT: Watched Dog Timer)もICチップ2に備えていてもよく,また,電気的に書換え可能な第2のメモリはFRAMであってもよい。
【0034】
図2で図示したICチップ2のROM22には,各ICカード1で共通のプログラムコードがICカード1の製造時に実装され,ICチップ2のセキュリティを高めるために,ROM22に記憶されたプログラムコードを外部に読み出すことを禁止するプロテクト機能がICカード1に備えられている。
【0035】
ROMに記憶されたプログラムコードを外部に読み出すことを禁止するプロテクト機能は,データを外部に読み出すプログラムコード(例えば,Read Commandのプログラムコード)に,読み出すデータのアドレスをチェックする機能を入れることでソフトウェア的に実現できる。また,ICチップ2のCPU20が,メモリ管理ユニット(MMU: Memory Management Unit)の機能を備えている場合は,メモリ管理の機能を利用し該プロテクト機能をハードウェア的に実現することも可能である。
【0036】
本実施形態において,ICカード1にエンベットされたICチップ2のROM22には,ICカード1用のオペレーティングやアプリケーションのプログラムコードが記憶され,該プログラムコードには,EEPROM23にデータ(ここでは,セキュリティデータ)を暗号化して記憶する処理を実行するときに,セキュリティデータを暗号化する暗号モジュール10と,EEPROM23に暗号化して記憶されたセキュリティデータを利用する処理を実行するときに,暗号化されたセキュリティデータを復号する復号モジュール11と,セキュリティデータの暗号化に利用するスクランブル鍵を派生するための暗号鍵シード12が含まれている。
【0037】
また,ICカード1のICチップ2のEEPROM23には,ROM22に記憶された暗号鍵シード12から派生することのできるスクランブル鍵の中から,暗号モジュール10及び復号モジュール11が利用するスクランブル鍵を定義する定義情報13が記憶されている。
【0038】
ICカード1を上述した構成とすることで,ICチップ2のEEPROM22に記憶するセキュリティデータを暗号化するスクランブル鍵を派生するときに利用する暗号鍵シード12は,プロテクト機能が備えられたROM22内に記憶されるために,本発明の「背景技術」に記載しているように該データの管理データがレーザー攻撃を受けた場合であっても,暗号鍵シード12が不正に読み出されることを防止でき,暗号鍵シード12が不正に読み出されることを防止できることはスクランブル鍵が不正に読み出されることを防止できることを意味する。
【0039】
本発明では,ICカード1にエンベットされたICチップ2のROM22に記憶する暗号鍵シード12からスクランブル鍵を派生させる派生アルゴリズム及びEEPROM23に記憶される定義情報13の具体的内容は,ROM22に記憶される暗号鍵シード12の形態に依存する。
【0040】
ここから,本発明をより理解できるように,まず,セキュリティデータを暗号化してEEPROM23に記憶させる処理,及び,EEPROM23に暗号化して記憶したセキュリティデータを復号する処理の一連の手順について説明した後,ROM22に記憶される暗号鍵シード12の幾つかの形態について説明する。
【0041】
図3は,暗号モジュール10の処理の手順を示したフロー図で,図4は,復号モジュール11の処理の手順を示したフロー図である。
【0042】
図3を参照しながら,暗号モジュール10の処理の手順について説明する。ICカード1は,セキュリティデータの平文を暗号化してEEPROM23に書き込むコマンドメッセージを受信すると,セキュリティデータの平文を暗号化してEEPROM23に書き込む処理を開始する(S1)。
【0043】
ICカード1が受信するコマンドメッセージのコマンド識別子およびパラメータによって,コマンドメッセージのデータ部を暗号化してEEPROM23に暗号化して書き込む処理と,データ部を書き込むファイルのファイルIDが示され,更に,コマンドメッセージのデータ部には,セキュリティデータの平文データオブジェクトが含まれている。
【0044】
図5は,平文データオブジェクトのフォーマットを説明する図で,図5に図示したように,セキュリティデータの平文データオブジェクトのタグ部は,データオブジェクトのバリュー部が平文であることを示すTpで,レングス部は,セキュリティデータの平文のデータ長を示すLpで,バリュー部には平文(ここでは,セキュリティデータ)が記述されている。
【0045】
コマンドメッセージによって,データを暗号化してEEPROM23に書き込む処理を実行することが示されるとき,まず,ICカード1の暗号モジュール10が起動し,暗号モジュール10は,該コマンドメッセージのデータ部に含まれるセキュリティデータの平文データオブジェクトを暗号化する処理を開始する。
【0046】
暗号モジュール10は起動すると,セキュリティデータの平文データオブジェクトの暗号化に利用するスクランブル鍵を派生するために,EEPROM23から定義情報13を読み取り,定められた派生アルゴリズムに従い,定義情報13で定義される一つのスクランブル鍵をROM22に記憶された暗号鍵シード12から派生し,派生したスクラブル鍵をRAM21にこの処理が終了するまで記憶する(S3)。
【0047】
そして,暗号モジュール10は,セキュリティデータの平文データオブジェクトの暗号化に利用するスクランブル鍵を派生すると,タグ部及びレングス部を含む平文データオブジェクトのデータ長が,平文データオブジェクトを暗号化する暗号アルゴリズムで規定される長さに合うように,該平文データオブジェクトに所定値をパディングした後,パディング後の該平文データオブジェクトと該スクランブル鍵を暗号演算コプロセッサ25に引き渡して,パディング後の該平文データオブジェクトの暗号処理を暗号演算コプロセッサ25に指示する(S4)。
【0048】
暗号モジュール10は,パディング後のセキュリティデータの平文データオブジェクトを暗号化した暗号文を暗号演算コプロセッサから引き渡されると,該暗号文の暗号データオブジェクトを生成する(S5)。
【0049】
図6は,暗号データオブジェクトのフォーマットを説明する図で,図6に図示したように,該暗号データオブジェクトのタグ部は,バリュー部が暗号化されていることを示すTcで,レングス部は,パディング後のセキュリティデータの平文データオブジェクトを暗号化した暗号文のデータ長を示すLpで,バリュー部には該暗号文(ここで,はパディング後のセキュリティデータの平文データオブジェクトの暗号文)が記述されている。
【0050】
そして,暗号モジュール10は,暗号データオブジェクトを生成すると,データをEEPROM23に書き込む書き込みモジュールを起動させ,書き込みモジュールは,該暗号データオブジェクトをEEPROM23に書き込みした後,コマンドメッセージで示されるファイルID,EEPROM23に書き込み開始した開始アドレス,タグ部及びレングス部を含む暗号データオブジェクトのデータ長を含む管理情報を生成し,該管理情報をEEPROM23に書き込む処理を実行し(S6),図3で図示した手順は終了する。
【0051】
次に,図4を参照しながら,復号モジュール11の処理の手順について説明する。ICカード1は,セキュリティデータを利用するコマンドメッセージ(例えば,PINを照合するコマンドメッセージ)を受信すると(S10),暗号化された状態でEEPROM23に書き込まれたセキュリティデータを復号する処理を開始する。
【0052】
ICカード1が受信するコマンドメッセージのコマンド識別子或いはパラメータによって,セキュリティデータを利用する処理と,セキュリティデータのファイルIDが示され,セキュリティデータを利用する処理を実行するモジュールは,コマンドメッセージで示されるファイルIDを含む管理情報の開始アドレスから記憶されているデータオブジェクのタグ部から,該データオブジェクトが暗号データオブジェクトであるか否かを判断し,ここでは,セキュリティデータのデータオブジェクトは暗号化オブジェクトであるため該モジュールは,復号モジュール11を起動させ,セキュリティデータの暗号データオブジェクトのバリュー部を復号する処理を行う(S11)。
【0053】
復号モジュール11は起動すると,まず,セキュリティデータの暗号データオブジェクトのバリュー部を復号するスクランブル鍵を派生するために,EEPROM23に記憶された定義情報13を読み取り,セキュリティデータの平文データオブジェクトを暗号化したときと同じ派生アルゴリズムに従い,定義情報13で定義される一つのスクランブル鍵をROM22に記憶された暗号鍵シード12から派生し,派生したスクラブル鍵をRAM21にこの処理が終了するまで記憶する(S12)。
【0054】
復号モジュール11は,バリュー部の復号に利用するスクランブル鍵を特定すると,バリュー部のデータとスクランブル鍵を暗号演算コプロセッサ25に引き渡して,暗号データオブジェクトのバリュー部の復号処理を暗号演算コプロセッサ25に指示する(S13)。
【0055】
復号モジュール11は,暗号データオブジェクトのバリュー部を復号したデータ,ここでは,パディング後のセキュリティデータの平文データオブジェクトが暗号演算コプロセッサ25から引き渡されると,パディングを除く処理を実行し,セキュリティデータを利用する処理をセキュリティデータの平文データオブジェクトのみを実行するモジュールに引き渡し,該モジュールは,平文データオブジェクトのバリュー部を利用して,セキュリティデータを利用する処理を実行し,この手順を終了する(S14)。
【0056】
上述したように,本発明では,ICカード1にエンベットされたICチップ2のROM22に記憶する暗号鍵シード12からスクランブル鍵を派生させる派生アルゴリズム及びEEPROM23に記憶される定義情報13の具体的内容は,ROM22に記憶される暗号鍵シード12の形態に依存するため,ここから,幾つかの暗号鍵シード12の形態について,暗号鍵シード12の形態,定義情報13及び派生アルゴリズムの具体的内容について説明する。
【実施例1】
【0057】
実施例1は,ICカード1にエンベットされたICチップのROM22に記憶する暗号鍵シード12を複数のスクランブル鍵で構成したときの実施例である。
【0058】
図7は,実施例1におけるICチップの暗号鍵シード12及び定義情報13を説明する図である。図7で図示したように,実施例1におけるICチップのROM22には,複数(ここでは,3つ)のスクランブル鍵120a〜cが暗号鍵シード12として記憶され,暗号鍵シード120に含まれるスクランブル鍵120a〜cそれぞれには,スクランブル鍵を識別するためのIDが付与されている。図7では,スクランブル鍵120aのIDは「01」,スクランブル鍵120bのIDは「02」,そして,スクランブル鍵120cのIDは「03」である。
【0059】
また,図7で図示したように,実施例1におけるICチップ2のEEPROM23には,IC1カードが発行されるときに,セキュリティデータの暗号化に利用するスクランブル鍵を定義する定義情報13には,ICチップのROM22に記憶されるスクランブル鍵120a〜cにそれぞれ付与されたIDの中から,一つのIDが記述される。当然のことながら,EEPROM23に記憶する定義情報10をICカード1毎に変更すれば,セキュリティデータの暗号化に利用するスクランブル鍵を変更することができる。
【0060】
実施例1においては,図3のS3及び図4のS12において,暗号モジュール10及び復号モジュール11は,それぞれ,ROM22に記憶された3つのスクランブル鍵120a〜cの中から,EEPROM23から読み取った定義情報13と同じIDを有するスクランブル鍵を暗号化に利用するスクランブル鍵として派生させる処理を実行する。
【0061】
例えば,EEPROM23から読み取った定義情報13が「02」であるときは,ROM22に記憶された3つのスクランブル鍵120a〜cの中から,「02」がIDとして付与されたスクランブル鍵120bが派生される。
【0062】
このように,実施例1によれば,暗号鍵シード12として複数のスクランブル鍵を用意し,定義情報で指し示される一つのスクランブル鍵をセキュリティデータの暗号化に利用することで,該定義情報がレーザー攻撃を受けて変化しても,セキュリティデータの暗号化に利用したスクランブル鍵とは異なるスクランブル鍵が利用され,セキュリティデータは正常に復号されることがなく,セキュリティデータが不正に利用されることを防止できる。
【実施例2】
【0063】
実施例2は,ICチップ2のROM22に記憶する暗号鍵シード12を乱数テーブルとしたときの実施例である。
【0064】
図8は,実施例2における暗号鍵シード12及び定義情報13を説明する図である。図8で図示したように,実施例2におけるICチップのROM22には,複数のスクランブル鍵を派生できるように,1バイトの乱数が所定の数だけ並べられた乱数テーブル121が暗号鍵シードして記憶される。
【0065】
また,図8で図示したように,実施例2におけるICチップのEEPROM23には,ICカードが発行されるときに,セキュリティデータの暗号化に利用するスクランブル鍵を定義する定義情報13として,ICチップのROM22に記憶される乱数テーブル121のオフセット値が記憶されている。
【0066】
実施例2においては,図3のS3及び図4のS12において,暗号モジュール10及び復号モジュール11は,それぞれ,ROM22に記憶された乱数テーブル121の中から,該オフセット値を開始地点とし,スクランブル鍵の長さに対応する乱数列をスクランブル鍵として派生する処理を実行する。
【0067】
なお,ICチップのROM22に記憶される乱数テーブルの長さは,スクランブル鍵の長さよりも長くないと,乱数テーブルから複数のスクランブル鍵を派生することができないため,乱数テーブルから派生させることのできるスクランブル鍵の数に応じて,ROM22に記憶される乱数テーブル121の長さは決定される。
【0068】
このように,実施例2によれば,暗号鍵シード12として乱数テーブルを用意し,定義情報13で指し示されるオフセット値から一意に決定される乱数テーブルの一部をセキュリティデータの暗号化に利用することで,実施例1と同様の効果が得られると共に,実施例1と比較して,暗号鍵シード12の容量を小さくすることができるようになる。
【実施例3】
【0069】
実施例3は,実施例2と同様に,セキュリティデータの暗号化に利用するスクランブル鍵を得るために利用する一つの乱数テーブルをICチップのROM22に記憶させ,更に,該乱数テーブルから取得したスクランブル鍵の長さの乱数列の暗号化に利用するマスター鍵を暗号鍵シードとしてROM22に記憶させた実施例である。
【0070】
図9は,実施例3における暗号鍵シード12及び定義情報13を説明する図である。図9で図示したように,実施例3におけるICチップ2のROM22には,複数のスクランブル鍵を生成するために利用され,1バイトの乱数が所定の数だけ並べられた乱数テーブル122に加え,乱数テーブル122から取得されるスクランブル鍵の長さの乱数を暗号化するためのマスター鍵123が記憶されている。
【0071】
また,図9で図示したように,実施例3におけるICチップのEEPROM23には,実施例2と同様に,ICカード1が発行されるときに,セキュリティデータの暗号化に利用するスクランブル鍵を指定する定義情報13として,ICチップのROM22に記憶される乱数テーブル122のオフセット値が記憶されている。
【0072】
実施例3においては,図3のS3及び図4のS12において,暗号モジュール10及び復号モジュール11は,それぞれ,スクランブル鍵を派生するために,ROM22に記憶された乱数テーブル122から,該オフセット値を開始地点とし,スクランブル鍵の長さに対応する乱数列を取得した後,該乱数列とROM22に記憶されたマスター鍵を暗号演算コプロセッサ25に引き渡して,該乱数列の暗号処理を暗号演算コプロセッサ25に指示し,該乱数列の暗号文をスクランブル鍵として派生する処理を実行する。
【0073】
このように,実施例3によれば,暗号鍵シード12として乱数テーブルを用意し,定義情報13で指し示されるオフセット値から一意に決定される乱数テーブルの一部をマスター鍵で暗号化した暗号文をセキュリティデータの暗号化に利用することで,乱数テーブルそのものがスクランブル鍵の派生に利用されないため,他の用途で利用する乱数テーブルをスクランブル鍵の派生に使い回すことができるようになる。
【符号の説明】
【0074】
1 ICカード
10 暗号モジュール
11 復号モジュール
12 暗号鍵シード
13 定義情報
2 ICチップ
20 CPU
21 RAM
22 ROM
23 EEPROM
24 乱数生成回路
25 暗号演算コプロセッサ


【特許請求の範囲】
【請求項1】
外部へのデータ読み出しが禁止された第1の不揮発性メモリと,電気的に書換え可能な第2の不揮発性メモリを備えたセキュリティトークンであって,
前記第1の不揮発性メモリには,前記第2の不揮発性メモリに書き込むデータを暗号化するスクランブル鍵を派生するための暗号鍵シードが記憶され,前記第2の不揮発性メモリには,前記暗号鍵シードから派生される前記スクランブル鍵の中から,一つの前記スクランブル鍵を定義する定義情報が記憶され,前記第2の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき,所定の派生アルゴリズムに従い,前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ,該スクランブル鍵を該データの暗号化に利用するように構成されていることを特徴とするセキュリティトークン。
【請求項2】
請求項1に記載のセキュリティトークンであって,前記第2の不揮発性メモリに暗号化して記憶されたデータを利用する処理を実行するとき,該データを暗号化した時と同じ前記派生アルゴリズムに従い,前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させ,該スクランブル鍵を該データの復号に利用するように構成されていることを特徴とするセキュリティトークン。
【請求項3】
請求項2に記載のセキュリティトークンであって,前記暗号鍵シードは複数の前記スクランブル鍵で構成され,前記定義情報は,前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって,前記派生アルゴリズムは,前記定義情報で指定された前記スクランブル鍵を,データの暗号化/復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークン。
【請求項4】
請求項1または請求項2に記載のセキュリティトークンであって,前記暗号鍵シードは,前記スクランブル鍵の長さよりも長い乱数テーブルで構成され,前記定義情報は,前記乱数テーブルのオフセット値であって,前記派生アルゴリズムは,前記乱数テーブルを参照し,前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を,データの暗号化/復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークン。
【請求項5】
請求項4に記載のセキュリティトークンであって,前記第1の不揮発性メモリには,前記乱数列を暗号化するためのマスター鍵が記憶され,前記派生アルゴリズムは,前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を,データの暗号化/復号に利用する前記スクランブル鍵として派生させるアルゴリズムであることを特徴とするセキュリティトークン。
【請求項6】
セキュリティトークンに書き込むデータの暗号化に利用するスクランブル鍵を派生させる方法であって,
外部へのデータ読み出しが禁止された第1の不揮発性メモリに,前記スクランブル鍵を派生するための暗号鍵シードを記憶させ,更に,電気的に書き換え可能な第2の不揮発性メモリに,前記暗号鍵シードから派生される前記スクランブル鍵の中から,一つの前記スクランブル鍵を定義する定義情報を記憶させておき,前記第2の不揮発性メモリにデータを暗号化して書き込む処理を実行するとき,該データの暗号化に利用する前記スクランブル鍵を,所定の派生アルゴリズムに従い,前記定義情報で定義される一つの前記スクランブル鍵を前記暗号鍵シードから派生させることを特徴とするスクランブル鍵の派生方法。
【請求項7】
請求項6に記載のスクランブル鍵の派生方法であって,前記暗号鍵シードは複数の前記スクランブル鍵で構成され,前記定義情報は,前記暗号鍵シードに含まれる一つの前記スクランブル鍵を指定する情報であって,前記定義情報で指定された前記スクランブル鍵を,データの暗号化/復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法。
【請求項8】
請求項6に記載のスクランブル鍵の派生方法であって,前記暗号鍵シードは,前記スクランブル鍵の長さよりも長い乱数テーブルで構成され,前記定義情報は,前記乱数テーブルのオフセット値であって,前記乱数テーブルを参照し,前記定義情報で指定されたオフセット値から開始位置とし前記スクランブル鍵の長さの乱数列を,データの暗号化/復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法。
【請求項9】
請求項8に記載のスクランブル鍵の派生方法であって,前記第1の不揮発性メモリには,前記乱数列を暗号化するためのマスター鍵が記憶され,前記乱数テーブルから得られる前記乱数列を前記マスター鍵で暗号化した暗号文を,データの暗号化/復号に利用する前記スクランブル鍵として派生させることを特徴とするスクランブル鍵の派生方法。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2010−258630(P2010−258630A)
【公開日】平成22年11月11日(2010.11.11)
【国際特許分類】
【出願番号】特願2009−104561(P2009−104561)
【出願日】平成21年4月22日(2009.4.22)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.EEPROM
2.FRAM
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】