JP6107191B2 - Icカード - Google Patents

Icカード Download PDF

Info

Publication number
JP6107191B2
JP6107191B2 JP2013023264A JP2013023264A JP6107191B2 JP 6107191 B2 JP6107191 B2 JP 6107191B2 JP 2013023264 A JP2013023264 A JP 2013023264A JP 2013023264 A JP2013023264 A JP 2013023264A JP 6107191 B2 JP6107191 B2 JP 6107191B2
Authority
JP
Japan
Prior art keywords
key
value
unit
card
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013023264A
Other languages
English (en)
Other versions
JP2014155043A (ja
Inventor
之治 浅野
之治 浅野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toppan Inc
Original Assignee
Toppan Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toppan Inc filed Critical Toppan Inc
Priority to JP2013023264A priority Critical patent/JP6107191B2/ja
Publication of JP2014155043A publication Critical patent/JP2014155043A/ja
Application granted granted Critical
Publication of JP6107191B2 publication Critical patent/JP6107191B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ICカードに関し、特に、ICカードのセキュリティを高めることを可能としたICカードに関する。
従来から、ROMの他に、データの書き換えが可能なEEPROMを備えたICカードが知られている(例えば、特許文献1参照。)この種のICカードは、ROMやEEPROM等に複数の認証鍵を格納しており、外部装置から認証コマンドを受信した場合に該認証コマンドが指定する認証鍵の認証を行う。認証に成功すると、ICカードは、ロック状態(例えば、データの書込み/読出しが不可能な状態)からロック開錠状態(例えば、データの書込み/読出しが可能な状態)となる。
特開2008−243017号公報
ところで、ICカードのセキュリティを高める方法として、認証試行回数に上限値を設定する方法がある。この方法では、ICカードのEEPROMに試行回数の上限値を予め格納しておく。また、実際に行われた認証試行回数をカウンター回路で計測し、その計測値がEEPROMに格納されるようにしておく。そして、カウント値が試行回数の上限値に達すると、それ以上の認証行為を実施できなくなるように、ICカードに予めプログラムしておく。
しかしながら、例えば、悪意ある第三者がICカードを不正に入手し、レーザー照射などのセキュリティアタックをEEPROMに加えると、EEPROMに格納されている試行回数の上限値やカウント値が書き換えられてしまう可能性がある。これにより、認証行為を無制限に行うことが可能となり、認証行為を繰り返す過程でEEPROMに格納されている認証鍵の値(即ち、鍵値)が推測されたり、いずれ暴露されたりする可能性があった。
そこで、この発明はこのような事情に鑑みてなされたものであって、セキュリティの向上を可能としたICカードの提供を目的とする。
上記課題を解決するために、本発明の一態様に係るICカードは、外部装置から送信されてくるコマンドに従って予め設定した処理を行うICカードであって、格納したデータの書き換えが不可能な第1の不揮発性メモリと、格納したデータの書き換えが1回のみ可能な第2の不揮発性メモリと、演算処理装置とを備え、前記第1の不揮発性メモリは第1の鍵生成データを格納し、前記第2の不揮発性メモリは第2の鍵生成データを格納し、前記演算処理装置は、前記外部装置から送信されてくるコマンドに従って、前記第1の鍵生成データと前記第2の鍵生成データとを予め設定したアルゴリズムで演算して、暗号化、複合化及びカード認証の少なくとも1に用いるデータである秘密鍵を算出する秘密鍵算出部と、予め設定した条件を満たすときに、前記第2の不揮発性メモリに格納されている前記第2の鍵生成データを初期値から該初期値とは異なる値に書き換える鍵書換部と、を有することを特徴とする。
また、上記のICカードにおいて、前記演算処理装置は、前記秘密鍵を用いて認証処理を試行する認証試行部と、前記認証処理の試行回数をカウントするカウント部、をさらに有し、前記鍵書換部は、前記予め設定した条件として前記カウント部によるカウント値が予め設定した上限値に達したときに、前記第2の鍵生成データを書き換えることを特徴としてもよい。
また、上記のICカードにおいて、前記演算処理装置は、前記秘密鍵の誤り検出用検査値を算出する検査値算出部と、前記検査値算出部が算出した前記誤り検出用検査値と、前記第1の鍵生成データとの間に予め設定した関係が成立するときは前記秘密鍵の認証処理の試行を許可し、前記予め設定した関係が成立しないときは前記認証処理の試行を許可しない認証試行許可判定部と、をさらに有することを特徴としてもよい。
また、上記のICカードにおいて、前記鍵書換部は、前記予め設定した条件として、当該ICカードを使用できなくするための破棄コマンドを受信したときに、前記第2の不揮発性メモリに格納されている前記第2の鍵生成データを前記初期値から前記異なる値に書き換えることを特徴としてもよい。
また、上記のICカードにおいて、前記演算処理装置は、当該ICカードに対して行われるセキュリティアタックを検出する検出部、をさらに有し、前記鍵書換部は、前記予め設定した条件として、前記検出部がセキュリティアタックを検出したときに、前記第2の不揮発性メモリに格納されている前記第2の鍵生成データを前記初期値から前記異なる値に書き換えることを特徴としてもよい。
また、上記のICカードにおいて、格納したデータの書き換えが複数回可能な第3の不揮発性メモリ、をさらに備え、前記演算処理装置は、前記秘密鍵を用いてデータを暗号化して前記第3の不揮発性メモリに書き込むデータ書込部と、前記第3の不揮発性メモリに書き込まれた前記データを読み出して前記秘密鍵を用いて復号化するデータ読出部と、をさらに有することを特徴としてもよい。
本発明の一態様によれば、予め設定した条件を満たすとき(例えば、秘密鍵の認証試行回数が許容されている上限値に達したときや、カード運用中に不具合があり外部装置から破棄コマンドが送信されてきたとき、又は、ICカードがセキュリティアタックを検出したとき)は、第2の鍵生成データが他の値(例えば、乱数)に書き換えられる。これにより、上記条件を満たすと、第1の鍵生成データと第2の鍵生成データとから算出される秘密鍵は当初の値(即ち、本来の値)とは異なる値となる。従って、上記条件を満たした後は、例えば悪意ある第三者がICカードを不正に入手してセキュリティアタックを加えても、秘密鍵の当初の値を推測することは著しく困難となるので、ICカードのセキュリティを高めることができる。
第1実施形態に係るICカード100の構成例を示すブロック図である。 「製造者鍵」の認証手順を示すフローチャートである。 第2実施形態に係るICカード200の構成例を示すブロック図である。 アクセス鍵及び機密データを暗号化してEEPROMに格納する手順を示すフローチャートである。 EEPROMからアクセス鍵及び機密データを読み出して利用する手順を示すフローチャートである。 破棄モードへの遷移の手順を示すフローチャートである。 第3実施形態に係るICカード300の構成例を示すブロック図である。
以下、本発明の実施形態について、図面を参照しつつ説明する。なお、以下に説明する各図において、同一の構成を有する部分には同一の符号を付し、その繰り返しの説明は省略する。
<第1実施形態>
(構成)
図1は、本発明の第1実施形態に係るICカード100の構成例を示すブロック図である。
このICカード100は、外部装置から送信されてくるコマンドに従って予め設定した(即ち、所定の)処理を行うカードである。図1に示すように、ICカード100は、例えば、格納したデータの書き換えが不可能なROM(Read Only Memory)10と、格納したデータの書き換えが1回のみ可能なOTP(One Time Programmable)−ROM20と、格納したデータの書き換えが複数回可能なEEPROM(Electrically Erasable Programmable ROM)30と、RAM(Random Access Memory)40と、CPU(Central Processing Unit)50と、を備える。
ROM10は、その機能部として、第1の製造者鍵(キー)値を格納するための第1製造者鍵格納部11と、第1の製造者鍵値のCRC(Cyclic Redundancy Check)値を格納するための第1製造者鍵CRC値格納部13と、CPU50の演算プログラムを格納する演算プログラム格納部15とを有する。ここで、第1の製造者鍵値は、例えば16進数で表される。
OTP−ROM20は、その機能部として、第2の製造者鍵値を格納するための第2製造者鍵格納部21を有する。ここで、第2の製造者鍵値は、例えば16進数で表される。なお、第2の製造者鍵値の初期値は固定値であり、例えばALL0x00(即ち、16進数の各桁の値が全てゼロ)である。
CPU50は、その機能部として、コマンド受付部51と、「製造者鍵」算出部53と、カウント部55と、第2製造者鍵書換部65と、CRC値算出部57と、CRC値比較部59と、認証試行許可判定部61と、を有する。
コマンド受付部51は、ICカード100が外部装置から受信したコマンドを図示しない入出力ポートを介して受け付ける。「製造者鍵」算出部53は、第1の製造者鍵値と第2の製造者鍵値とを予め設定した(即ち、所定の)アルゴリズムで演算処理して「製造者鍵」を算出する。ここで、「製造者鍵」とは、例えばICカード100の製造者側(発行者側)の管理者権限を認証するための鍵である。「製造者鍵」は、ICカード100のROM10やEEPROM30に格納されている他の鍵よりも多くの権限を有し、例えばICカード100の発行、管理などのためにほぼ全ての操作を行う権限を有する。「製造者鍵」は、例えば16進数で表される。また、所定のアルゴリズムとして例えば排他的論理和(XOR)を用いることができ、その場合は、「製造者鍵」算出部53が第1の製造者鍵値と第2の製造者鍵値とをXOR演算して「製造者鍵」を算出する。
カウント部55は、ICカード100における「製造者鍵」の認証試行回数をカウントする。ここで、認証試行回数とは、認証の成功、失敗に関わらず、このICカード100において認証行為を実際に試行した回数のことである。
第2製造者鍵書換部65は、カウント部55によるカウント値が所定の上限値に達したときに、OTP−ROM20に格納されている第2の製造者鍵値を初期値から、該初期値とは異なる他の値に書き換える。
CRC値算出部57は、「製造者鍵」のCRC値を算出する。また、CRC値算出部57は、「製造者鍵」のCRC値だけでなく、ROM10に格納されている第1の製造者鍵値のCRC値を算出することもできる。
CRC値比較部59は、第1の製造者鍵値のCRC値と「製造者鍵」のCRC値とを比較してその結果を出力する。認証試行許可判定部61は、CRC値比較部59による比較の結果に基づいて、ICカード100における「製造者鍵」の認証試行を許可するか否かを判定する。例えば、OTP−ROM20に格納されている第2の製造者鍵値が初期値:ALL0x00であり、初期値から他の値に書き換えられていない場合、第1の製造者鍵値と第2の製造者鍵値をXOR演算して得られる「製造者鍵」は、第1の製造者鍵値と同じ値となる。認証試行許可判定部61は、第1の製造者鍵値のCRC値と「製造者鍵」のCRC値とが同じ値の場合は「製造者鍵」の認証試行を許可し、同じ値でない場合は認証試行を許可しない。
CPU50は、例えばROM10の演算プログラム格納部15に格納された演算プログラムを読み込んで、上記した各機能部の処理を実行する。
EEPROM30は、その機能部として、認証試行回数格納部31を有する。認証試行回数格納部31は、カウント部55によるカウント値(即ち、認証の成功、失敗に関わらず、このICカード100において認証行為を実際に試行した回数)を格納する。また、認証試行回数格納部31は、認証試行の上限値も格納する。
(手順)
次に、図1に示したICカード100における「製造者鍵」の認証の手順について説明する。
図2は、ICカード100における「製造者鍵」の認証手順を示すフローチャートである。ここでは、OTP−ROM20の第2製造者鍵格納部21に格納されている第2の製造者鍵値は、その初期値がALL0x00に設定されている場合を想定する。
図2のステップS10では、まず始めに、外部装置から送信されてくる「製造者鍵」の認証コマンドをコマンド受付部51が受け付ける。次に、ステップS20では、第1製造者鍵格納部11に格納されている第1の製造者鍵値と、第2製造者鍵格納部21に格納されている第2の製造者鍵値とをXOR演算して、「製造者鍵」を算出する。このXOR演算は、CPU50の「製造者鍵」算出部53が行う。
次に、ステップS30では、CRC値算出部57が「製造者鍵」のCRC値を算出する。算出したCRC値は例えばRAM40に一時的に記憶させてもよい。なお、第1製造者鍵CRC値格納部13に第1の製造者鍵値のCRC値が格納されていない場合は、CRC値算出部57は、「製造者鍵」のCRC値だけでなく、第1の製造者鍵値のCRC値も算出し、算出した値を例えばRAM40に一時的に記憶させてもよい。
次に、ステップS40では、CRC値比較部59が、第1製造者鍵CRC値格納部13に格納されている(又は、RAM40が一時的に記憶している)第1の製造者鍵値のCRC値を読み出す。そして、ステップS50では、CRC値比較部59が、読み出した第1の製造者鍵値のCRC値と、CRC値算出部が算出した「製造者鍵」のCRC値とを比較する。両CRC値が一致するときはステップS60へ進み、一致しないときはステップS110へ進む。
ステップS60では、認証試行許可判定部61がRRPEOMの認証試行回数格納部31から認証試行回数を読み出し、今回実施分の回数を追加した後に(すでに上限値に達している場合はそのまま)、読み出した値が所定の上限値に達しているか否かを判断する。ここで、所定の上限値とは、「1」以上の整数であり、望ましくは「1」又は「2」など、1に近い整数である。認証試行回数が上限値に達している場合はステップS70へ進み、達していない場合はステップS80へ進む。
ステップS70では、第2製造者鍵書換部65が、第2製造者鍵格納部21に格納されている第2の製造者鍵値を、初期値から他の値に書き換える。ここで、他の値とは、初期値とは異なる値であり、例えばCPU50で発生させる乱数値である。
ステップS80では、認証試行部63が「製造者鍵」の認証を試行する。認証が成功した場合はステップS100へ進み、認証が失敗した場合はステップS110へ進む。ステップS100では、「製造者鍵」の認証が成功しているため、ICカード100は、外部装置から送信されてくるコマンドに従って処理を続けることが可能となる。一方、ステップ110では、「製造者鍵」の認証が失敗している。このため、CPU50は「製造者鍵」の認証を必要とする処理を停止する。
この第1実施形態では、ROM10が本発明の第1の不揮発性メモリに対応し、OTP−ROM20が本発明の第2の不揮発性メモリに対応し、CPU50が本発明の演算処理装置に対応している。また、第1の製造者鍵値が本発明の第1の鍵生成データに対応し、第2の製造者鍵値が本発明の第2の鍵生成データに対応する。さらに、「製造者鍵」算出部53が本発明の秘密鍵算出部に対応し、第2製造者鍵書換部65が本発明の鍵書換部に対応している。また、CRC値が本発明の誤り検出用検査値に対応し、CRC値算出部57が本発明の検査値算出部に対応している。
(第1実施形態の効果)
本発明の第1実施形態は、以下の効果を奏する。
(1)「製造者」鍵の認証試行回数が許容されている上限値に達すると、第2の製造者鍵値は他の値(例えば、乱数)に書き換えられ、第1の製造者鍵値と第2の製造者鍵値とから算出される「製造者」鍵は当初の値とは異なる値となる。従って、「製造者」鍵の認証試行回数が許容されている上限値に達した後は、例えば悪意ある第三者がICカード100を不正に入手してセキュリティアタックを加えても、「製造者」鍵の当初の値を推測することは著しく困難となるので、ICカードのセキュリティを高めることができる。
(2)また、ICカードを発行する際の認証処理に「製造者」鍵を用いる場合は、「製造者」鍵の認証試行回数の上限値を「1」若しくは「2」など、1に近い数値に設定することが好ましい。これにより、ICカード100を発行した後の認証試行回数が少ないうちに、「製造者」鍵を当初の値とは異なる値に変えることができる。上限値が「1」の場合は、ICカード100を発行すると同時に、「製造者」鍵を本来の値とは異なる値に変えることができる。
(3)また、第1の製造者鍵値のCRC値と、「製造者」鍵のCRC値とが一致するときは「製造者」鍵を用いた認証処理の試行を許可し、一致しないときは認証処理の試行を許可しない。これにより、第2の製造者鍵値が書き換えられた後は、認証処理の試行そのものをさせないようにすることができる。例えば、EEPROM30がレーザーアタックされて、認証試行回数のカウント値がリセットされたり、認証試行回数の上限値が書き換えられたりして、再試行が可能な状態となったとしても、認証処理を試行する前の段階、つまり、「製造者鍵」を準備する段階でそのCRC値が異常となる。これにより、図1のステップS50で両CRC値は一致しないので、認証処理の試行段階に進ませないようにすることができる。
(変形例)
(1)上記の第1実施形態では、本発明の誤り検出用検査値としてCRC値を用いる場合について説明したが、これはあくまで一例である。本発明の誤り検出用検査値は、例えばハッシュ値でもよい。このような場合であっても、第1実施形態の効果(1)〜(3)と同様の効果を奏する。
(2)また、上記の第1実施形態では、第2の製造者鍵値の初期値をALL0x00に設定する場合について説明したが、これはあくまで一例である。第2の製造者鍵値の初期値は固定値であればよい。このような場合でも、CRC値算出部57が算出する「製造者鍵」のCRC値と、第1の製造者鍵値のCRC値との間に、所定の関係が成立する。
(3)また、上記の第1実施形態では、「製造者鍵」を算出するためのアルゴリズムとして、排他的論理和(XOR)を用いる場合について説明したが、これはあくまで一例である。他のアルゴリズムを用いてもよく、その場合でも「製造者鍵」を算出することができる。
<第2実施形態>
上記の第1実施形態では、本発明の秘密鍵が、ICカードの製造者側(発行者側)の管理者権限を認証するための「製造者鍵」である場合について説明した。しかしながら、本発明において、秘密鍵は「製造者鍵」に限定されるものではない。秘密鍵は、データを暗号化するための「暗号化鍵」でもよい。第2実施形態では、このような態様について説明する。
(構成)
図3は、本発明の第2実施形態に係るICカード200の構成例を示すブロック図である。
このICカード200は、外部装置から送信されてくるコマンドに従って所定の処理を行うカードである。図3に示すように、ICカード200は、例えば、格納したデータの書き換えが不可能なROM110と、格納したデータの書き換えが1回のみ可能なOTP−ROM120と、格納したデータの書き換えが複数回可能なEEPROM130と、RAM140と、CPU150と、を備える。
ROM110は、その機能部として、第1の暗号化鍵(キー)値を格納するための第1暗号化鍵格納部111と、CPU150の演算プログラムを格納する演算プログラム格納部113とを有する。ここで、第1の暗号化鍵値は、例えば16進数で表される。
OTP−ROM120は、その機能部として、第2の暗号化鍵値を格納するための第2暗号化鍵格納部121を有する。ここで、第2の暗号化鍵値は、例えば16進数で表される。なお、第2の暗号化鍵値の初期値は固定値であり、例えばALL0x00(即ち、16進数の各桁の値が全てゼロ)である。
EEPROM130は、その機能部として、機密データを格納するための機密データ格納部133と、機密データへのアクセス(例えば、機密データの読出し、書込み等)を可能とするアクセス鍵を格納するためのアクセス鍵格納部131と、ICカード200のライフサイクル(例えば、運用モード、破棄モードなど)に関するデータを格納するライフサイクル格納部135と、を有する。
CPU150は、その機能部として、コマンド受付部151と、ライフサイクル読出部153と、「暗号化鍵」算出部155と、CRC値算出部157と、データ書込部159と、データ読出部161と、CRC値比較部163と、第2暗号化鍵書換部165と、セキュリティアタック検出部169と、ライフサイクル書換部167と、を有する。
ライフサイクル読出部153は、ライフサイクル格納部135に格納されているデータ、即ち、ICカード200のライフサイクルをモニターする。「暗号化鍵」算出部155は、第1の暗号化鍵値と第2の暗号化鍵値とを予め設定した(即ち、所定の)アルゴリズムで演算処理して「暗号化鍵」を算出する。ここで、「暗号化鍵」とは、例えば、機密データ格納部133に格納される機密データや、アクセス鍵格納部131に格納されるアクセス鍵を暗号化するための鍵である。「暗号化鍵」は、例えば16進数で表される。また、所定のアルゴリズムとして例えば排他的論理和(XOR)を用いることができ、その場合は、「暗号化鍵」算出部155が第1の暗号化鍵値と第2の暗号化鍵値とをXOR演算して「暗号化鍵」を算出する。
CRC値算出部157は、機密データ格納部133に格納される機密データのCRC値や、アクセス鍵格納部131に格納されるアクセス鍵のCRC値を算出する。データ書込部159は、データ(平文)を「暗号化鍵」を用いて暗号化し、EEPROM130に書き込む。データ読出部161は、暗号化されたデータ(暗号文)をEEPROM130から読み出し、「暗号化鍵」を用いて復号化する。
CRC値比較部163は、アクセス鍵について、暗号化前のCRC値と複号化後のCRC値を比較し、その結果を出力する。また、CRC値比較部163は、機密データについても、暗号化前のCRC値と複号化後のCRC値を比較し、その結果を出力する。
第2暗号化鍵書換部165は、外部装置から送信されてくる破棄コマンドを受信したとき(又は、セキュリティアタック検出部169がセキュリティアタックを検出したとき)に、OTP−ROM120に格納されている第2の暗号化鍵値を初期値から、該初期値とは異なる他の値に書き換える。
セキュリティアタック検出部169は、例えば、EEPROM130へのレーザー照射によるデータ改変など、ICカード200へのセキュリティアタックを検出する。セキュリティアタックの検出方法としては、ICカード200が備える図示しないハードウエアを用いる方法や、ソフトウエアを用いる方法が挙げられる。より具体的には、例えばハードウエアでは温度センサ、光センサ、クロックセンサ、電圧センサなどが出力する信号がCPU150に入力され、この入力された信号に基づいて、セキュリティアタック検出部169が異常を検出する。また、例えばソフトウエアではメモリエリアの改竄チェック機能、実行処理の非バイパスチェック機能、演算処理の検算チェック機能などをセキュリティアタック検出部169に追加実装することで、異常処理を検出する。ライフサイクル書換部167は、例えば、ライフサイクル格納部135に格納されているライフサイクルを書き換える。
CPU150は、例えばROM110の演算プログラム格納部113に格納された演算プログラムを読み込んで、上記した各機能部の処理を実行する。
(手順)
次に、図3に示したICカード200において、アクセス鍵及び機密データの格納と利用、破棄モードへの遷移の各手順についてそれぞれ説明する。なお、以下の説明では、OTP−ROM120の第2暗号化鍵格納部121に格納されている第2の暗号化鍵値は、その初期値がALL0x00に設定されている場合を想定する。
図4は、ICカード200において、アクセス鍵及び機密データを暗号化してEEPROM130に格納する手順を示すフローチャートである。
図4のステップS210では、まず始めに、外部装置から送信されてくる、アクセス鍵及び機密データの格納コマンドをコマンド受付部151が受け付ける。次に、ステップS220、230では、ライフサイクル読出部153が、ライフサイクル格納部135に格納されているデータを読み出して、その内容をチェックする。読み出したライフサイクルが運用モードの場合はステップS240へ進み、破棄モードの場合はステップS270へ進む。
次に、ステップS240では、第1暗号化鍵格納部111に格納されている第1の暗号化鍵値と、第2暗号化鍵格納部121に格納されている第2の暗号化鍵値とをXOR演算して、「暗号化鍵」を算出する。このXOR演算は、CPU150の「暗号化鍵」算出部155が行う。
次に、図4に示すように、アクセス鍵の書込み(ステップS250)と、機密データの書込み(ステップS260)を並列に(即ち、同時進行で)行う。また、その他のデータの書込み(ステップS265)を行う場合は、ステップS250、S260、S265を並列に行う。
ステップS250では、CRC値算出部157がアクセス鍵のCRC値を算出する。算出したCRC値は例えばRAM140に一時的に記憶させてもよい。そして、データ書込部159が、アクセス鍵とそのCRC値(何れも、平文)を「暗号化鍵」を用いて暗号化して、アクセス鍵格納部131に書き込む。
ステップS260では、CRC値算出部157が機密データのCRC値を算出する。算出したCRC値は例えばRAM140に一時的に記憶させてもよい。そして、データ書込部159が、機密データとそのCRC値(何れも、平文)を「暗号化鍵」を用いて暗号化して、機密データ格納部133に書き込む。ステップ265では、データ書込部159が、その他のデータを暗号化せずにそのままEEPROM130に書き込む。
一方、ステップS270では、ICカード200は破棄モードの状態にある。このため、CPU150は、外部装置から送信されてくるコマンドの処理を停止する(即ち、コマンドを受け付けない。)。
図5は、ICカード200において、EEPROM130からアクセス鍵及び機密データを読み出して利用する手順を示すフローチャートである。
図5のステップS310では、まず始めに、外部装置から送信されてくる、アクセス鍵及び機密データの利用コマンドをコマンド受付部151が受け付ける。次に、ステップS320、330では、ライフサイクル読出部153が、ライフサイクル格納部135に格納されているデータを読み出して、その内容をチェックする。読み出したライフサイクルが運用モードの場合はステップS335へ進み、破棄モードの場合はステップS390へ進む。ステップS335では、第1暗号化鍵格納部111に格納されている第1の暗号化鍵値と、第2暗号化鍵格納部121に格納されている第2の暗号化鍵値とをXOR演算して、「暗号化鍵」を算出する。このXOR演算は、CPU150の「暗号化鍵」算出部155が行う。
次に、図5に示すように、アクセス鍵へのアクセス(ステップS340)と、機密データへのアクセス(ステップS360)を並列に行う。また、その他のデータへのアクセスを行う場合は、該データについては複号化等の処理を行わずにステップS380へ進む。
ステップS340では、データ読出部161が、アクセス鍵格納部131に格納されているアクセス鍵とそのCRC値(何れも暗号文)をEEPROM130から読み出し、「暗号化鍵」を用いて復号化する。ステップS350では、複号化後のアクセス鍵のCRC値と、暗号化前のCRC値(即ち、ステップS250で、CRC値算出部157が算出したアクセス鍵のCRC値)とを比較し、両CRC値が一致するか否かを判定する。この比較と判定は、CRC値比較部163が行う。両CRC値が一致するときはステップS380へ進み、一致しないときはステップS390へ進む。
ステップS360では、データ読出部161が、アクセス鍵格納部131に格納されている機密データとそのCRC値(何れも暗号文)をEEPROM130から読み出し、「暗号化鍵」を用いて復号化する。ステップS370では、複号化後の機密データのCRC値と、暗号化前のCRC値(即ち、ステップS260で、CRC値算出部157が算出した機密データのCRC値)とを比較し、両CRC値が一致するか否かを判定する。この比較と判定は、CRC値比較部163が行う。両CRC値が一致するときはステップS380へ進み、一致しないときはステップS390へ進む。
ステップS380では、ICカード200は、利用コマンドに従って、例えば、複号化されたアクセス鍵を用いて、複号化された機密データにアクセスするなどの処理を続けて行う。
一方、ステップS390では、ICカード200は破棄モード、或いは、暗号化前と複号化後でCRC値が異なり、機密データを正しく複号化できない状態にある。このため、ステップS350、S370の少なくとも一方からステップS390へ処理が進んだ場合は、CPU150は、外部装置から送信されてくるコマンドの処理を停止する(即ち、コマンドを受け付けない。)。
図6は、ICカード200において、破棄モードへの遷移の手順を示すフローチャートである。図6のステップS410では、まず始めに、外部装置から送信されてくる破棄コマンドをコマンド受付部151が受け付ける(又は、セキュリティアタック検出部169が、EEPROM130等に対するセキュリティアタックを検出する。)。次に、ステップS420では、第2暗号化鍵書換部165が、第2暗号化鍵格納部121に格納されている第2の暗号化鍵値を、初期値から他の値に書き換える。ここで、他の値とは、初期値とは異なる値であり、例えばCPU150で発生させる乱数値である。そして、ステップS430では、ライフサイクル書換部167が、ライフサイクル格納部135に格納されているライフサイクルを運用モードから破棄モードへと書き換える。
この第2実施形態では、ROM110が本発明の第1の不揮発性メモリに対応し、OTP−ROM120が本発明の第2の不揮発性メモリに対応し、CPU150が本発明の演算処理装置に対応している。また、第1の暗号化鍵値が本発明の第1の鍵生成データに対応し、第2の暗号化鍵値が本発明の第2の鍵生成データに対応する。さらに、「暗号化鍵」算出部155が本発明の秘密鍵算出部に対応し、第2暗号化鍵書換部165が本発明の鍵書換部に対応している。また、CRC値が本発明の誤り検出用検査値に対応し、CRC値算出部157が本発明の検査値算出部に対応している。セキュリティアタック検出部169が本発明の検出部に対応している。
(第2実施形態の効果)
本発明の第2実施形態は、以下の効果を奏する。
(1)ICカードの運用中に不具合があり外部装置から破棄コマンドが送信されてきたときや、ICカードがセキュリティアタックを検出したときは、第2の暗号鍵値は他の値(例えば、乱数)に書き換えられ、第1の暗号鍵値と第2の暗号鍵値とから算出される「暗号化鍵」は当初の値とは異なる値となる。従って、破棄コマンドを受信したり、セキュリティアタックを検出した後は、例えばサイドチャネル攻撃をするアタッカーなど、悪意ある第三者がICカード100を不正に入手してセキュリティアタックを加えても、多くの情報を与えないようにすることができ、「暗号化鍵」の当初の値を推測することは著しく困難となる。これにより、ICカードのセキュリティを高めることができる。
(2)また、例えば、EEPROM130がレーザーアタックされて、カードライフサイクルが破棄モードから運用モードに戻されたとしても、上記の処理により、機密データを暗号化したり、複号化したりする「暗号化鍵」は既に当初の値と異なる値に変えられている。これにより、アクセス鍵や機密データを正しく暗号化、複号化することはできない。
アクセス鍵と機密データを取り扱うことができないので、セキュリティ上安心である。
(3)ICカードには、複数の鍵データや機密データが存在するが、それら全てを上記の仕組みにより同時に破壊する(使用不可にする)ことができる。
(変形例)
(1)第2実施形態では、第1実施形態の変形例(1)を適用してよい。このような場合であっても、第2実施形態の効果(1)〜(3)と同様の効果を奏する。
(2)また、上記の第2実施形態では、第2の暗号化鍵値の初期値をALL0x00に設定する場合について説明したが、これはあくまで一例である。第2の暗号化鍵値の初期値は固定値であればよい。このような場合でも、CRC値算出部157が算出する「暗号化鍵」のCRC値と、第1の暗号化鍵値のCRC値との間に、所定の関係が成立する。
(3)また、上記の第1実施形態では、「暗号化鍵」を算出するためのアルゴリズムとして、排他的論理和(XOR)を用いる場合について説明したが、これはあくまで一例である。他のアルゴリズムを用いてもよく、その場合でも「暗号化鍵」を算出することができる。
<第3実施形態>
また、本発明の実施形態では、第1実施形態と第2実施形態とを組み合わせてもよい。
(構成)
図7は、本発明の第3実施形態に係るICカード300の構成例を示すブロック図である。
図7に示すように、このICカード300は、例えば、格納したデータの書き換えが不可能なROM210と、格納したデータの書き換えが1回のみ可能なOTP−ROM220と、格納したデータの書き換えが複数回可能なEEPROM230と、RAM240と、CPU250と、を備える。
ROM210は、その機能部として、第1製造者鍵格納部11と、第1製造者鍵CRC値格納部13と、第1暗号化鍵格納部111と、演算プログラム格納部211とを有する。OTP−ROM220は、その機能部として、第2製造者鍵格納部21と、第2暗号化鍵格納部121を有する。EEPROM230は、その機能部として、認証試行回数格納部31と、アクセス鍵格納部131と、機密データ格納部133と、ライフサイクル格納部135と、を有する。
また、CPU250は、その機能部として、コマンド受付部251と、「製造者鍵」算出部53と、カウント部55と、CRC値算出部253と、CRC値比較部255と、認証試行許可判定部61と、第2製造者鍵書換部65と、ライフサイクル読出部153と、「暗号化鍵」算出部155と、データ書込部159と、データ読出部161と、第2暗号化鍵書換部165と、ライフサイクル書換部167と、セキュリティアタック検出部169と、を有する。
ここで、演算プログラム格納部211は、図1に示した演算プログラム格納部15と図3に示した演算プログラム格納部113の両方の機能を有する。また、コマンド受付部251は、図1に示したコマンド受付部51と図3に示したコマンド受付部151の両方の機能を有する。CRC値算出部253は、図1に示したCRC値算出部57と図3に示したCRC値算出部157の両方の機能を有する。CRC値比較部255は、図1に示したCRC値比較部59と図3に示したCRC値比較部163の両方の機能を有する。
この第3実施形態では、ROM210が本発明の第1の不揮発性メモリに対応し、OTP−ROM220が本発明の第2の不揮発性メモリに対応し、CPU250が本発明の演算処理装置に対応している。
(第3実施形態の効果)
本発明の第3実施形態は、第1実施形態の効果(1)〜(3)と、第2実施形態の効果(1)〜(3)の両方を奏する。
<その他>
本発明は、以上に記載した各実施形態に限定されるものではない。当業者の知識に基づいて各実施形態に設計の変更等を加えてもよく、そのような変更等を加えた態様も本発明の範囲に含まれる。
10 ROM
11 第1製造者鍵格納部
13 第1製造者鍵CRC値格納部
15、111、211 演算プログラム格納部
21 第2製造者鍵格納部
31 認証試行回数格納部
51、151、251 コマンド受付部
53 [製造者鍵]算出部
55 カウント部
57、157、253 CRC値算出部
59、163、255 CRC値比較部
61 認証試行許可判定部
63 認証試行部
65 第2製造者鍵書換部
100、200、300 ICカード
111 暗号化鍵格納部
113 演算プログラム格納部
121 第2暗号化鍵格納部
131 アクセス鍵格納部
133 機密データ格納部
135 ライフサイクル格納部
151 コマンド受付部
153 ライフサイクル読出部
155 「暗号化鍵」算出部
159 データ書込部
161 データ読出部
165 第2暗号化鍵書換部
167 ライフサイクル書換部
169 セキュリティアタック検出部

Claims (5)

  1. 外部装置から送信されてくるコマンドに従って予め設定した処理を行うICカードであって、
    格納したデータの書き換えが不可能な第1の不揮発性メモリと、格納したデータの書き換えが1回のみ可能な第2の不揮発性メモリと、演算処理装置とを備え、
    前記第1の不揮発性メモリは第1の鍵生成データを格納し、
    前記第2の不揮発性メモリは第2の鍵生成データを格納し、
    前記演算処理装置は、
    前記外部装置から送信されてくるコマンドに従って、前記第1の鍵生成データと前記第2の鍵生成データとを予め設定したアルゴリズムで演算して、暗号化、複合化及びカード認証の少なくとも1に用いるデータである秘密鍵を算出する秘密鍵算出部と、
    予め設定した条件を満たすときに、前記第2の不揮発性メモリに格納されている前記第2の鍵生成データを初期値から該初期値とは異なる値に書き換える鍵書換部と、
    前記秘密鍵の誤り検出用検査値を算出する検査値算出部と、
    前記検査値算出部が算出した前記誤り検出用検査値と、前記第1の鍵生成データとの間に予め設定した関係が成立するときは前記秘密鍵の認証処理の試行を許可し、前記予め設定した関係が成立しないときは前記認証処理の試行を許可しない認証試行許可判定部と、を有することを特徴とするICカード。
  2. 前記演算処理装置は、
    前記秘密鍵を用いて認証処理を試行する認証試行部と、
    前記認証処理の試行回数をカウントするカウント部、をさらに有し、
    前記鍵書換部は、前記予め設定した条件として前記カウント部によるカウント値が予め設定した上限値に達したときに、前記第2の鍵生成データを書き換えることを特徴とする請求項1に記載のICカード。
  3. 前記鍵書換部は、前記予め設定した条件として、当該ICカードを使用できなくするための破棄コマンドを受信したときに、前記第2の不揮発性メモリに格納されている前記第2の鍵生成データを前記初期値から前記異なる値に書き換えることを特徴とする請求項1に記載のICカード。
  4. 前記演算処理装置は、当該ICカードに対して行われるセキュリティアタックを検出する検出部、をさらに有し、
    前記鍵書換部は、前記予め設定した条件として、前記検出部がセキュリティアタックを検出したときに、前記第2の不揮発性メモリに格納されている前記第2の鍵生成データを前記初期値から前記異なる値に書き換えることを特徴とする請求項1又は請求項に記載のICカード。
  5. 格納したデータの書き換えが複数回可能な第3の不揮発性メモリ、をさらに備え、
    前記演算処理装置は、
    前記秘密鍵を用いてデータを暗号化して前記第3の不揮発性メモリに書き込むデータ書込部と、
    前記第3の不揮発性メモリに書き込まれた前記データを読み出して前記秘密鍵を用いて復号化するデータ読出部と、をさらに有することを特徴とする請求項又は請求項に記載のICカード。
JP2013023264A 2013-02-08 2013-02-08 Icカード Active JP6107191B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013023264A JP6107191B2 (ja) 2013-02-08 2013-02-08 Icカード

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013023264A JP6107191B2 (ja) 2013-02-08 2013-02-08 Icカード

Publications (2)

Publication Number Publication Date
JP2014155043A JP2014155043A (ja) 2014-08-25
JP6107191B2 true JP6107191B2 (ja) 2017-04-05

Family

ID=51576513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013023264A Active JP6107191B2 (ja) 2013-02-08 2013-02-08 Icカード

Country Status (1)

Country Link
JP (1) JP6107191B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11270003B2 (en) 2019-10-18 2022-03-08 Samsung Electronics Co., Ltd. Semiconductor device including secure patchable ROM and patch method thereof

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3373508B1 (en) * 2015-11-05 2020-11-04 Mitsubishi Electric Corporation Security device and security method
JP6874042B2 (ja) * 2019-03-08 2021-05-19 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 不揮発性メモリに保存された暗号鍵の更新

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63293637A (ja) * 1987-05-27 1988-11-30 Hitachi Ltd デ−タ保護用マイコン
JPH10327143A (ja) * 1997-05-23 1998-12-08 Nec Corp データ伝送システム
JP2001052143A (ja) * 1999-08-09 2001-02-23 Mega Chips Corp 認証用記録媒体および認証システム
EP1359550A1 (fr) * 2001-11-30 2003-11-05 STMicroelectronics S.A. Régéneration d'une quantité secrète à partir d'un identifiant d'un circuit intégré
JP2004304227A (ja) * 2003-03-28 2004-10-28 Ntt Docomo Inc 公開鍵証明書検証システム
JP4162668B2 (ja) * 2005-03-25 2008-10-08 富士通株式会社 個人認証システム、個人認証方法及びコンピュータプログラム
FR2947410A1 (fr) * 2009-06-30 2010-12-31 France Telecom Procede de changement d'une cle d'authentification
EP2506176A1 (en) * 2011-03-30 2012-10-03 Irdeto Corporate B.V. Establishing unique key during chip manufacturing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11270003B2 (en) 2019-10-18 2022-03-08 Samsung Electronics Co., Ltd. Semiconductor device including secure patchable ROM and patch method thereof

Also Published As

Publication number Publication date
JP2014155043A (ja) 2014-08-25

Similar Documents

Publication Publication Date Title
US11218330B2 (en) Generating an identity for a computing device using a physical unclonable function
US9323950B2 (en) Generating signatures using a secure device
JP4912879B2 (ja) プロセッサの保護された資源へのアクセスに対するセキュリティ保護方法
KR102239711B1 (ko) 보안 파라미터들에 기초한 작업 보안 키의 생성
EP1325401B1 (en) System for protecting static and dynamic data against unauthorised manipulation
JP6053950B2 (ja) ソフトウェア更新装置及びソフトウェア更新プログラム
US9697340B2 (en) System and methods with assured one-time, replay-resistant passwords
US9830479B2 (en) Key storage and revocation in a secure memory system
EP2503482A1 (en) Electronic device with flash memory component
EP3641219A1 (en) Puf based securing of device update
JP6107191B2 (ja) Icカード
TW201843594A (zh) 管理安全性積體電路狀態之裝置及其方法
KR101954439B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
US11861182B2 (en) Integrated circuit device with an authentication module
KR20210134053A (ko) 오버-디-에어 업데이트 유효성 확인 방법
JP5986279B2 (ja) 半導体装置
US11323265B2 (en) Storage device providing high security and electronic device including the storage device
US10067770B2 (en) Platform key hierarchy
JP2014175758A (ja) Icカード及びその処理方法
JP2022124424A (ja) 効率的なデータアイテム認証
CN117501271A (zh) 通过利用物理不可克隆函数puf进行数据加密/解密向主机认证存储设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161124

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170126

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170220

R150 Certificate of patent or registration of utility model

Ref document number: 6107191

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250