(57)【要約】【課題】カード内部のセキュリティ情報が漏洩することがあっても、セキュリティ情報が容易に判別、解読できないような耐タンパ性を有するＩＣカードを提供すること。【解決手段】所定のデータを記憶する記憶部（２０４、２０６）と、外部とのデータの入出力を行う手段（Ｉ／Ｏ）とを備えたＩＣカードにおいて、前記所定のデータは、複数の分割データに分割された後に前記記憶部に記憶される。【選択図】図１
2008181226.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータを記憶する記憶部と、外部とのデータの入出力を行う手段とを備えたＩＣカードにおいて、
前記所定のデータは、複数の分割データに分割された後に前記記憶部に記憶されることを特徴とするＩＣカード。
【請求項２】
請求項１に記載のＩＣカードにおいて、前記分割データは、前記分割データ同士に所定の演算を施した後に前記記憶部に記憶されることを特徴とするＩＣカード。
【請求項３】
請求項１に記載のＩＣカードにおいて、前記分割データは、前記分割データ以外のデータと所定の演算を施した後に前記記憶部に記憶されることを特徴とするＩＣカード。
【請求項４】
請求項１に記載のＩＣカードにおいて、前記分割データは、前記記憶部に分散して記憶されることを特徴とするＩＣカード。
【請求項５】
請求項１に記載のＩＣカードにおいて、前記分割データに誤り訂正情報が付加されていることを特徴とするＩＣカード。
【請求項６】
所定のデータを記憶する記憶部と、外部とのデータの入出力を行う手段とを備えたＩＣカードにおいて、
前記所定のデータの正当性の照合の際に、照合する単位や順序を、照合の度に変更することを特徴とするＩＣカード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＣカードの耐タンパ技術に関する。
【背景技術】
【０００２】
ＩＣカードは、勝手に書き換えることが許されないような個人情報の保持や、データの暗号化や復号化を行う装置である。このため、ＩＣカード内部に格納されているデータは、ディレクトリ、ファイル毎のアクセス権により守られており、不正に外部に出力されたりすることはないようになっている。ＩＣカード自体は電源を持っておらず、ＩＣカード用のリーダライタ（card reader）に差し込まれることにより、また、無線アンテナを備えたものであれば無線アンテナの誘導電流によって、リーダライタから電源の供給を受け、動作可能となる。ＩＣカードが動作可能になると、リーダライタから送信されるコマンドを受信し、そのコマンドに従って、データの転送等の処理を行う。なお、ＩＣカードの細かい仕様に関しては、非特許文献１に記載されているので、詳細な説明は省略する。
【０００３】
このように、ＩＣカードは、プログラムや重要な情報がＩＣカード用チップの中に密閉されており、重要な情報を格納したり、カードの中で暗号処理を行うために用いられるので、ＩＣカードでの暗号を解読する難しさは、暗号アルゴリズムの解読の難しさと同じであると考えられていた。
【０００４】
しかし、ＩＣカードが暗号処理を行っている時の消費電力を観測し、これを解析することにより、暗号アルゴリズムを直接的に解読するよりも容易に暗号処理の内容や暗号鍵が推定される可能性がある。消費電力は、オシロスコープを用いて、ＩＣカードのＶｃｃ端子とグランド端子の間の電圧変化を測定することによって調べることができる。このように、電力解析による内部秘密情報を取り出す方法は、電力解析（Power Analysis）と呼ばれている。
【０００５】
この電力解析において、反転ビット数（ハミングウェイト）に応じて電力が消費されることから、プログラムカウンタの変化に伴うビットの反転数（ハミング距離）の変化を均一化する提案が成されている（特許文献１参照）。しかし、セキュリティ情報等の重要なデータの解読方法は、日々進歩しており、カードの動作環境の異常や意図的な破壊攻撃により、強引に内部データが出力させられた場合、データ構造などからセキュリティ情報が解読される可能性がある。このため、より強固な耐タンパ性を備えたＩＣカードが要求されている。
【特許文献１】特開２００４−１２６８４１号公報
【非特許文献１】ＩＳＯ７８１６
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、カード内部のセキュリティ情報が漏洩することがあっても、セキュリティ情報が容易に判別、解読できないような耐タンパ性を有するＩＣカードを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の局面に係る発明は、所定のデータを記憶する記憶部と、外部とのデータの入出力を行う手段とを備えたＩＣカードにおいて、前記所定のデータは、複数の分割データに分割された後に前記記憶部に記憶されることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、カード内部のセキュリティ情報が漏洩することがあっても、セキュリティ情報が容易に判別、解読できないような耐タンパ性を有するＩＣカードを提供できる。
【発明を実施するための最良の形態】
【０００９】
図面を参照して本発明の実施の形態を説明する。図１は、本発明の一実施形態に係るＩＣカードの概略構成を示す図である。  
ＩＣカードは、カード１０１と、カード１０１の上に搭載されたＩＣカード用チップ１０２とを備えている。図１に示すように、一般に、ＩＣカードは、ＩＳＯ７８１６（非特許文献１）の規格に定められた位置に、ＩＣカード用チップ１０２に電源を供給する供給電圧端子Ｖｃｃと、ＩＣカード用チップ１０２の接地用端子であるグランド端子ＧＮＤと、ＩＣカード用チップ１０２の動作をリセットするためのリセット端子ＲＳＴと、外部とのデータのやりとりを行うための入出力端子Ｉ／Ｏと、ＩＣカード用チップ１０２の動作クロックの入力用のクロック端子ＣＬＫとを備えており、これらの端子を通して、リーダライタから電源の供給を受けて、リーダライタと通信を行うようになっている。
【００１０】
ＩＣカード用チップ１０２の構成は、基本的には通常のマイクロコンピュータと同じ構成である。その構成を、図２に示す。ＩＣカード用チップ１０２は、中央処理装置（ＣＰＵ）２０１と、コ・プロセッサ２０２と、記憶装置２０４と、入出力（Ｉ／Ｏ）ポート２０７とを備え、データバス２０３で相互に通信可能に接続されている。ＣＰＵ２０１は、論理演算や算術演算などを行う装置であり、記憶装置２０４は、プログラムやデータを格納する装置である。入出力ポート２０７は、図示しないリーダライタと通信を行う装置である。コ・プロセッサ２０２は、暗号処理そのもの、または、暗号処理に必要な演算を高速に行う装置である。例えば、ＲＳＡ暗号の剰余演算を行う為の特別な演算装置や、ＤＥＳ暗号の処理を行う暗号装置などがある。なお、ＩＣカード用プロセッサの中には、コ・プロセッサを持たないものもある。
【００１１】
記憶装置２０４は、プログラム格納部２０５と、データ格納部２０６とからなる。プログラムは基本的に書き換えることがないので、プログラム格納部２０５はＲＯＭ（Read Only Memory）で構成される。なお、プログラムを更新可能とするために、不揮発性のメモリであるＥＥＰＲＯＭ（Electrical Erasable Programmable Read Only Memory）で構成されることもあるが、この場合には、ＥＥＰＲＯＭはデータ格納部２０６と共有されることがある。データ格納部２０６には、電源の供給がなくなっても保持することが必要なデータ、例えば、プリペイドガードの残高のデータ、等が記憶される。また、図示しない作業用のメモリとして、電源の供給がなくなってもデータを保持する必要がない高速な揮発性のメモリであるＲＡＭ（Random Access Memory）が使用される。
【００１２】
上記のように構成されたＩＣカードに記憶されるセキュリティ情報等の重要なデータの保護方法について説明する。本実施形態では、ＩＣカードに記憶されるセキュリティ情報の保護方法を従来と変えることにより、セキュリティ情報が漏洩することがあった場合でも、容易に判別、解読できないようにしている。具体的には、以下の通りである。
【００１３】
（１）第１の方法  
セキュリティ情報を、所定の単位で分割し、分割したセキュリティ情報同士で、なんらかの演算を行い、その演算結果を、セキュリティ情報としてデータ格納部２０６に格納する。  
具体的には、例えば、セキュリティ情報が、１２８ビットであった場合に、該セキュリティ情報を、６４ビット（２個）や、３２ビット（４個）や、１６ビット（８個）に分割し、分割後のセキュリティ情報（以下、「分割後データ」と称する）同士で、演算（排他的論理和（ＸＯＲ）等の論理演算や代数演算）を行い、その演算結果をセキュリティ情報としてデータ格納部２０６に格納する。なお、上記のように、分割の単位や分割数、また、演算方法は、様々な方法を適用可能である。  
これにより、セキュリティ情報が流出しても、セキュリティ情報がそのままでは解読できないので、耐タンパ性が向上する。
【００１４】
（２）第２の方法  
セキュリティ情報と他の情報（例えば、乱数やその他のデータ列）との演算（演算内容は第１の方法と同じ）をし、その演算結果をデータ格納部２０６に格納する。なお、この場合において、他の情報は、データ格納部２０６の他の領域に格納したり、ＩＣカード用チップ１０２内の他の部分に専用エリアを設けておき、その領域に格納したりすれば良い。また、乱数は、セキュリティの照合の時点毎に、変更することが好ましい。
【００１５】
（３）第３の方法  
セキュリティ情報を所定の単位で分割し、データ格納部２０６に分散させて格納する。この場合、重要な情報（例えば、ＰＩＮ情報）のみをいくつかに分割して、データ格納部２０６に分散させて格納するようにしても良い。なお、セキュリティ情報の分割方法については、第１の方法と同じである。また、データ格納部２０６の領域は１つでよい。
【００１６】
（４）第４の方法  
セキュリティ情報を所定の単位で分割し、例えばプログラム格納部２０５や図示しない情報制御部に分割数や分割後データのそれぞれの格納位置のオフセット情報を格納しておき、分割後データを、該オフセット情報に従ってデータ格納部２０６に格納する。読み出す場合は、オフセット情報から分割後データを読み出して復元すればよい。
【００１７】
（５）第５の方法  
セキュリティ情報を所定の単位で分割すると共にデータ格納部２０６をいくつかに論理分割しておき、当該領域にエラー検出・訂正情報と共に分割したセキュリティ情報を論理分割した複数の領域に分散して格納する。
【００１８】
（６）第６の方法  
外部から入力されるセキュリティ情報と内部のセキュリティ情報とを照合する場合に、照合する単位や順序を、その照合毎に異なるようにする。ここで、照合する単位は、例えば、４ビットや、８ビットなど任意に変更可能である。また、照合する順序については、ＭＳＢ（最上位のビット）から照合したり、ＬＳＢ（最下位のビット）から照合したり、途中のビットから照合したりしても良い。なお、両者を単独で適用しても良いし、組み合わせて適用しても良い。
【００１９】
上記において、第１から第５の方法では、分割してセキュリティ情報を記憶するようにしているので、データ格納部２０６に記憶されている情報が格納された順序で外部に流出しても、データとして意味をなさない。従って、正規の出力方法で出力しないと解読できる情報にならないので、セキュリティ情報が容易に判別、解読できないような耐タンパ性を有する向上したＩＣカードを提供できる。
【００２０】
また、第６の方法では、セキュリティ情報の照合する単位や順序を、その照合毎に変えているので、外部から攻撃された場合でも、容易にセキュリティ情報を解読することができない。従って、セキュリティ情報が容易に判別、解読できないような耐タンパ性を有する向上したＩＣカードを提供できる。
【００２１】
本発明は、上記各実施の形態に限ることなく、その他、実施段階ではその要旨を逸脱しない範囲で種々の変形を実施し得ることが可能である。例えば、上記の第１から第６の方法は、独立した方法として記載したが、適宜組み合わせて適用できる。例えば、第１と第２の方法を組み合わせて、分割後データを演算処理して、更に分散記憶させても良いし、第１と第６の方法を組み合わせて、分割後データを演算処理して記憶させ、照合時にセキュリティ情報を復号してから、第６の方法でセキュリティ情報の照合を行うようにしても良い。さらに、上記各実施形態には、種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。
【００２２】
また、例えば各実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態に係るＩＣカードの概略構成を示す図である。
【図２】ＩＣカード用チップ１０２の概略構成を示すブロック図である。
【符号の説明】
【００２４】
Ｖｃｃ…供給電圧端子
ＧＮＤ…グランド端子
ＲＳＴ…リセット端子
Ｉ／Ｏ…入出力端子
ＣＬＫ…クロック端子
１０１…カード
１０２…ＩＣカード用チップ
２０１…中央処理装置（ＣＰＵ）
２０２…コ・プロセッサ
２０３…データバス
２０４…記憶装置
２０５…プログラム格納部
２０６…データ格納部
２０７…入出力ポート
【図１】
2008181226.tif 000003
【図２】
2008181226.tif 000004