説明

ICカード、派生鍵生成方法、ターミナル認証方法、ICカード認証方法、及び、コンピュータプログラム

【課題】セッション鍵の生成などに用いられるマスター鍵をセッション毎に変えることのできるICカードを提供する。
【解決手段】ICカード11は、ターミナル12と共有するマスター鍵110を不揮発性メモリに記憶し、セッションで利用する派生鍵をマスター鍵110から生成する派生鍵生成手段111を備えている。マスター鍵110の鍵長を派生鍵の鍵長よりも長くすることで、派生鍵に対してマスター鍵110に冗長性を持たせ、派生鍵生成手段111は、派生情報に基づき、マスター鍵110の一部を用いてセッションごとに異なる派生鍵を生成し、ICカード11は、派生鍵生成手段111が生成した派生鍵を用いてターミナル12とセッションすることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICチップが実装されたカード媒体であるICカードに関し、更に詳しくは、ICカードに秘匿に記憶されたマスター鍵の耐タンパー性を向上させる技術に関する。
【背景技術】
【0002】
ICカードとターミナル間のセッション(例えば、相互認証)では暗号技術が用いられ、ICカードやターミナルには、ICカードとターミナル間のセッションに利用される暗号鍵が秘匿に記憶される。
ICカードに記憶された暗号鍵は、線形解読法などの様々な解読法によって解読される危険性があるため、ICカードには、暗号鍵の解読に対する高い耐タンパー性が要求される。
【0003】
相互認証に利用する暗号鍵の解読に対する耐タンパー性を向上させる一つの方法として、ICカードとターミナルの双方が共有している暗号鍵であるマスター鍵から、セッションで利用する暗号鍵であるセッション鍵を生成し、生成したセッション鍵を利用してセッションする方法が開示されている(例えば、非特許文献1)。
【0004】
非特許文献1では、暗号化されたメッセージを伝送するごとにインクリメントされるカウンタ値(4 バイト)を右詰めし、上位4バイトを "00h"で埋めた8 バイトのデータと、マスター鍵(8バイト)との排他的論理和を演算することで、マスター鍵からセッション鍵を生成する。
セッション鍵はセッション毎に変わるため、マスター鍵の解読に対する耐タンパー性を向上させることができる。
【0005】
また、特許文献1では、ICカードに複数の暗号鍵を秘匿に記憶させ、使用していた暗号鍵の有効期限が切れた場合など、使用する暗号鍵を変更することで、ICカードに記憶した暗号鍵の解読に対する耐タンパー性を向上させる発明が開示されている。
【非特許文献1】JICSAP ICカード仕様 V2.0 第3部共通コマンド 付属書D ICカードシステム利用促進協議会 平成13年7月策定
【特許文献1】特開2000−92040号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしならが、非特許文献1で開示されている発明では、毎回、同じマスター鍵を使用してセッション鍵が生成されるため、セッション鍵がマスター鍵への攻撃の糸口になってしまう問題がある。
また、特許文献1で開示されている発明では、有効期限内は同じ暗号鍵が使用されるため、使用しているマスター鍵に対して解読法の攻撃を受けてしまう問題がある。
【0007】
そこで、本発明は、ICカードの不揮発性メモリに記憶され、セッション鍵の生成などに用いられるマスター鍵をセッション毎に変えることのできるICカード、マスター鍵から生成される派生鍵の生成方法、マスター鍵から生成される派生鍵を用いたターミナル認証方法・ICカード認証方法、及び、ICカードに実装されるコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0008】
上述した課題を解決する第1の発明は、ターミナルとのセッションに暗号演算を利用するICカードであって、前記ICカードは、ターミナルと共有するマスター鍵を不揮発性メモリに記憶し、セッションで利用する派生鍵を前記マスター鍵から生成する派生鍵生成手段を備え、前記マスター鍵の鍵長を前記派生鍵の鍵長よりも長くすることで、前記派生鍵に対して前記マスター鍵に冗長性を持たせ、前記派生鍵生成手段は、所定のアルゴリズムに基づき、前記マスター鍵の一部を用いてセッションごとに異なる前記派生鍵を生成し、前記ICカードは、前記派生鍵生成手段が生成した前記派生鍵を用いて前記ターミナルとセッションすることを特徴とする。
【0009】
上述した第1の発明によれば、前記ICカードに記憶される前記マスター鍵に冗長性を持たせ、セッションごとに異なる前記派生鍵を生成し、前記派生鍵をセッションに利用することで、同じ前記マスター鍵をセッションに利用しないため、前記マスター鍵の耐タンパー性を高めることができる。
【0010】
更に、第2の発明は、第1の発明に記載のICカードにおいて、前記派生鍵生成手段は、前記派生鍵を生成するときに利用する前記マスター鍵のバイトとその並び順を示す派生情報に基き、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成する手段であることを特徴とする。
【0011】
上述した第2の発明によれば、前記ICカードから前記ターミナルへ前記派生情報を送信すれば、前記ICカードと同じ前記派生鍵を前記ターミナルで生成することが可能になる。
【0012】
更に、第3の発明は、第2の発明に記載のICカードにおいて、前記ICカードの前記派生鍵生成手段は、乱数を用いて前記派生情報を生成し、生成した前記派生情報に基づき前記派生鍵を生成することを特徴とする。
【0013】
上述した第3の発明によれば、前記派生情報を前記ICカード内部で生成することができる。
【0014】
更に、第4の発明は、第2の発明に記載のICカードにおいて、前記ICカードの前記派生鍵生成手段は、前記ICカードとセッションする前記ターミナルから受信した前記派生情報を用いて前記派生鍵を生成することを特徴とする。
【0015】
上述した第4の発明によれば、前記ターミナルが生成した前記派生情報に基づき、前記マスター鍵から前記派生鍵を生成することができる。
【0016】
更に、第5の発明は、第3の発明に記載のICカードにおいて、前記ICカードは、ターミナル認証用の前記マスター鍵を記憶し、前記ICカードは、前記派生鍵生成手段が生成した前記派生情報を前記ターミナルに送信するコマンドと、ターミナル認証用の前記マスター鍵から生成した前記派生鍵を用いて、前記ターミナルから送信されるターミナル認証コードの正当性を検証するコマンドを備えていることを特徴とする。
【0017】
上述した第5の発明によれば、ターミナル認証時に利用する前記マスター鍵の耐タンパー性を高めて、前記ICカードは、前記ターミナル認証コードの正当性を検証することができる。
【0018】
更に、第6の発明は、第4の発明に記載のICカードにおいて、前記ICカードは、ICカード認証用の前記マスター鍵を記憶し、前記ターミナルから受信した前記派生情報に基づき、ICカード認証用の前記マスター鍵から生成した前記派生鍵を用いて、前記ターミナルへ送信するICカード認証コードを生成するコマンドを備えていることを特徴とする。
【0019】
上述した第6の発明によれば、ICカード認証時に利用する前記マスター鍵の耐タンパー性を高めて、前記ICカードは前記ICカード認証コードを生成することができる。
【0020】
更に、第7の発明は、ICカードが、暗号演算を利用したセッションに用いる派生鍵の生成方法であって、鍵長を前記派生鍵の鍵長よりも長くし、前記派生鍵に対して冗長性を持たせたマスター鍵を前記ICカードに記憶させ、所定のアルゴリズムに基づき、前記マスター鍵の一部を用いてセッションごとに異なる前記派生鍵を生成することを特徴とする。
【0021】
更に、第8の発明は、第7の発明に記載の派生鍵の生成方法において、前記派生鍵として利用する前記マスター鍵のバイトとその並び順を示す派生情報に基き、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成することを特徴とする。
【0022】
更に、第9の発明は、第8の発明に記載の派生鍵の生成方法において、前記ICカードは、乱数を用いて前記派生情報を生成し、生成した前記派生情報を用いて前記派生鍵を生成することを特徴とする。
【0023】
更に、第10の発明は、第8の発明に記載の派生鍵の派生方法において、前記ICカードは、前記ICカードとセッションするターミナルから受信した前記派生情報を用いて前記派生鍵を生成することを特徴とする。
【0024】
上記第7の発明から上記第10の発明によれば、前記第1の発明から前記第4の発明と同様の効果が得られる。
【0025】
更に、第11の発明は、ICカードがターミナルを認証するターミナル認証方法であって、前記ターミナルと前記ICカードは、前記ターミナルの認証で利用する派生鍵の鍵長よりも長い鍵長のターミナル認証用のマスター鍵を記憶し、前記ICカードが、前記派生鍵として利用する前記マスター鍵のバイトとその並び順を示す派生情報を生成するステップ、前記ICカードが、前記ターミナルの認証に利用するチャレンジと共に、生成した前記派生情報を送信するステップ、前記ターミナルが、受信した前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成するステップ、前記ターミナルが前記チャレンジから認証コードを生成し前記ICカードに送信するステップ、前記ICカードが、前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成し、生成した前記派生鍵を用いて、前記ターミナルから受信した前記認証コードを検証するステップを備える。
【0026】
上述した第11の発明によれば、ターミナル認証時に利用する前記マスター鍵の耐タンパー性を高めて、前記ターミナルは、前記ターミナル認証コードを生成でき、更に、前記ICカードは、前記ターミナル認証コードの正当性を検証することができる。
【0027】
更に、第12の発明は、ターミナルがICカードを認証するICカード認証方法であって、前記ターミナルと前記ICカードは、前記ICカードの認証で利用する派生鍵の鍵長よりも長い鍵長のICカード認証用のマスター鍵を記憶し、前記ターミナルが、前記派生鍵として利用する前記マスター鍵のバイトとその並び順を示す派生情報を生成するステップ、前記ターミナルが、前記ICカードの認証に利用するチャレンジと共に、生成した前記派生情報を前記ICカードに送信するステップ、前記ICカードが、受信した前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成するステップ、前記ICカードが前記チャレンジから認証コードを生成し前記ターミナルへ送信するステップ、前記ターミナルが、前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成し、生成した前記派生鍵を用いて、前記認証コードを検証するステップを備える。
【0028】
上述した第12の発明によれば、ICカード認証時に利用する前記マスター鍵の耐タンパー性を高めて、前記ICカードは前記ICカード認証コードを生成でき、更に、前記ターミナルは、前記ICカード認証コードを検証することができる。
【0029】
更に、第13の発明は、ターミナルと共有するマスター鍵を不揮発性メモリに記憶し、ターミナルとのセッションに暗号演算を利用するICカードを、所定のアルゴリズムに基づき、前記マスター鍵の一部を用いて、前記ターミナルとのセッションに利用する前記派生鍵を生成する派生鍵生成手段として機能させるためのコンピュータプログラムである。
【0030】
更に、第14の発明は、第13の発明に記載のコンピュータプログラムにおいて、前記派生鍵を生成するときに利用する前記マスター鍵のバイトとその並び順を示す派生情報に基き、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成する前記派生鍵生成手段として、前記ICカードを機能させるためのコンピュータプログラムである。
【0031】
更に、第15の発明は、第14の発明に記載のコンピュータプログラムにおいて、乱数を用いて前記派生情報を生成し、前記派生情報に基づき前記派生鍵を生成する前記派生鍵生成手段として、前記ICカードを機能させるためのコンピュータプログラムである。
【0032】
更に、第16の発明は、第14の発明に記載のコンピュータプログラムにおいて、前記ICカードとセッションするターミナルから受信した前記派生情報を用いて前記派生鍵を生成する前記派生鍵生成手段として、前記ICカードを機能させるためのコンピュータプログラムである。
【0033】
上記第13の発明から上記第16の発明によれば、前記第1の発明から前記第4の発明と同様の効果が得られる。
【発明の効果】
【0034】
上述した発明によれば、ICカードの不揮発性メモリに記憶され、セッション鍵の生成に用いられるマスター鍵をセッション毎に変えることのできるICカード、マスター鍵から生成される派生鍵の生成方法、マスター鍵から生成される派生鍵を用いたターミナル認証方法・ICカード認証方法、及び、ICカードに実装されるコンピュータプログラムを提供できる。
【発明を実施するための最良の形態】
【0035】
<派生鍵の生成方法>
ここから、本発明に係る派生鍵の生成方法について、図を参照しながら詳細に説明する。 本発明に係る派生鍵の生成方法は、ICカードとターミナル間のセッション(例えば、相互認証)をより安全にするために、派生鍵の基になるマスター鍵に冗長性をもたせ、セッションごとに異なる派生鍵を生成し、生成した派生鍵をセッションに利用することで、同じマスター鍵をセッションに利用しないため、マスター鍵の耐タンパー性を高めることができる。
【0036】
例えば、本発明に係る派生鍵の生成方法で生成した派生鍵を非特許文献1に記載の認証用マスター鍵とすることで、セッションごとに利用する認証用マスター鍵は変更され、ICカードに記憶される認証用マスター鍵の耐タンパー性を高めることができる。
【0037】
まず、マスター鍵とマスター鍵から生成される派生鍵について説明する。図1は、マスター鍵1と派生鍵2を説明する図で、図2は、マスター鍵1から派生鍵2を生成する手順を示したフロー図である。
【0038】
図1で図示したマスター鍵1は、DES(DES: Data Encryption Standard)用の8バイトの派生鍵2を生成するための暗号鍵で、マスター鍵1の鍵長は派生鍵2の鍵長よりも4バイト長く、マスター鍵1の鍵長は12バイトとしている。
なお、図1においては、マスター鍵1の各バイトを区別するために、マスター鍵1の先頭バイトから順に各バイトにK0~K11の記号を付与している。
【0039】
派生鍵2とは、マスター鍵1から抽出された8個のバイトを組み合せることで得られる暗号鍵で、図1の派生鍵2では、マスター鍵1のK0、K1、K3、K5、K6、K7、K8、K11の8個のバイトが抽出され、K7、K11、K0、K5、K8、K3、K6そしてK1の順に並べられた暗号鍵である。
【0040】
派生鍵2を生成するためにマスター鍵1から抽出するバイトとその並び順を示す情報が派生情報3である。
図1で図示した派生情報3は1次元のデータテーブルで、データテーブルの各要素の値はマスター鍵1のバイトを示し、各要素の順序によって、マスター鍵1のバイトの並び順が示される。
【0041】
例えば、図1においては、派生情報3は〔7、11、0、5、8、3、6、1〕で、最初の要素の値が「7」であるため、マスター鍵1の7番目のバイト(K7)が派生鍵2の1バイト目に配置されることを意味する。
すなわち、図1で図示した派生情報3に基づけば、マスター鍵1から派生鍵2を生成するために、マスター鍵1のK0、K1、K3、K5、K6、K7、K8およびK11が抽出され、K7、K11、K0、K5、K8、K3、K6そしてK1の各バイトを順に並べることで、マスター鍵1から派生鍵2は生成される。
【0042】
このように、派生情報3によって、マスター鍵1から生成される派生鍵2は一意に定まるが、派生情報3が異なると、マスター鍵1から生成される派生鍵2は異なる。
ICカードとターミナルの双方で同じマスター鍵1を記憶し、派生情報3を共有することができれば、ICカードとターミナルの双方でマスター鍵1から同じ派生鍵2を生成することが可能である。
【0043】
なお、図1において、マスター鍵1の鍵長は12バイトとしているが、マスター鍵1の鍵長が派生鍵2の鍵長よりも長ければ、マスター鍵1の鍵長は任意でよい。
マスター鍵1の鍵長を長くすればするほど、マスター鍵1から生成可能な派生鍵2の数が増えるため、ICカードに秘匿に記憶されるマスター鍵1の耐タンパー性をより高めることができる。
【0044】
図2を参照しながら、マスター鍵1から派生鍵2を派生する手順について説明する。この手順の最初のステップS1は、派生鍵2を生成するときに利用するマスター鍵1のバイトとその並び順を示す派生情報3を生成するステップである。
【0045】
このステップS1では、例えば、1バイトの乱数を生成し、生成した乱数を派生鍵2の鍵長で除算したときの余りを派生情報3の要素の値とし、この処理を派生鍵2の鍵長だけ繰り返すことで派生情報3を生成することができる。
【0046】
次のステップS2は、ステップS1で生成した派生情報3に基づいて、マスター鍵1から派生鍵2を派生するステップである。
このステップS2では、ステップS1で生成した派生情報3に基づき、マスター鍵1からバイトを抽出し、派生情報3に基づき、抽出したバイトを組み合せることで、マスター鍵1から派生鍵2を生成する。
このステップをもって、マスター鍵1から派生鍵2を生成する手順は終了する。
【0047】
<ICカードシステム>
ここから、これまで説明した派生鍵の生成方法によって生成される派生鍵を利用して、ICカード11とターミナル12間で相互認証するICカードシステム10について説明する。
図3は、ICカードシステム10のブロック図である。
【0048】
図3に図示したように、ターミナル12はマスター鍵120を記憶し、ターミナル12は、上述した手順に従いマスター鍵120から派生鍵を生成する派生鍵生成手段121と、派生鍵生成手段121が生成する派生鍵を利用して、ターミナル12とICカード11間の相互認証を行う相互認証手段122を備える。
ターミナル12に備えられた派生鍵生成手段121及び相互認証手段122は、ターミナル12に実装されるコンピュータプログラムで実現している。
【0049】
また、ICカード11は、ターミナル12と同じ値のマスター鍵110を記憶し、更に、ICカード11のコマンドとして、ターミナルから送信される認証コードを認証するターミナル認証コマンド112と、ターミナルへ送信する認証コードを生成する認証コード生成コマンド114と、乱数を生成し、生成した乱数をターミナル12へ送信するチャレンジコマンド113を備え、更に、上述した手順に従いマスター鍵110から派生鍵を生成する派生鍵生成手段111を備える。
ICカード11に備えられた各コマンド及び派生鍵生成手段111は、ICカード11に実装されるコンピュータプログラムで実現している。
【0050】
ここから、図3で示したICカードシステム10において、ターミナル12とICカード11間で相互認証する動作手順について説明する。
図4は、ターミナル12とICカード11間で相互認証する手順を示したフロー図である。
【0051】
この手順の最初のステップS10は、ターミナル12がICカード11をリセットするステップで、ターミナル12はICカード11を活性化させるために、ISO/IEC7816の手順に従い、ICカード11をリセットする。
【0052】
次のステップS11は、ICカード11の派生鍵生成手段111が派生情報を生成するステップである。
ICカード11が派生情報を生成するタイミングは任意でよいが、本実施の形態では、ターミナル12によってICカード11がリセットされたときに、ICカード11は乱数を発生させ、派生鍵を生成するときに利用する派生情報を生成し、ICカード11が非活性化されるまで、生成した派生情報をICカード11の揮発性メモリ(例えば、RAM)に保持する。
【0053】
次のステップS12は、ICカード11がATR(Answer to Reset)をターミナル12に返信するステップである。
ICカード11がATRをターミナル12に返信することで、ターミナル12とICカード11間でのコマンドメッセージ・レスポンスメッセージが可能になる。
なお、ICカード11は、ステップS11で生成した派生情報はこのATRには含ませない。
【0054】
次のステップS13は、ターミナル12の相互認証手段122が作動し、ICカード11がターミナル12を認証するために、ICカード11に備えられたチャレンジコマンド113のコマンドメッセージを、ターミナル12がICカード11に送信するステップである。
【0055】
チャレンジコマンド113のコマンドメッセージをICカード11が受信すると、ステップS14で、ICカード11はチャレンジコマンド113で指定された数の乱数を生成し、ステップS15で、ICカード11は、ステップS14で生成した乱数とステップS11で生成した派生情報を含むレスポンスメッセージを、チャレンジコマンド113のレスポンスとしてターミナル12に返信する。
【0056】
ターミナル12はICカード11から乱数を受信すると、ステップS16で、ターミナル12の相互認証手段122は派生鍵生成手段121を作動させ、ICカード11から受信したレスポンスメッセージに含まれる派生情報に基づき、ターミナル12が有するマスター鍵120から派生鍵を生成し、マスター鍵120から生成した派生鍵を用いて、ICカード11がターミナル12を認証するための認証コード(以下、ターミナル認証コード)を生成する。
【0057】
ターミナル12の相互認証手段122はターミナル認証コードを生成すると、ステップS17で、ターミナル認証コマンド112のコマンドメッセージをICカード11に送信する。
なお、このステップS17でターミナル12からICカード11に送信するターミナル認証コマンド112のコマンドメッセージには、ステップS16で生成したターミナル認証コードが含まれる。
【0058】
ICカード11が、ターミナル認証コマンド112のコマンドメッセージをターミナル12から受信すると、ステップS18で、ICカード11の派生鍵生成手段111は、ステップS1で生成した派生情報に基づき、ICカード11が有するマスター鍵110から派生鍵を生成し、マスター鍵110から派生させた派生鍵を用いて、ターミナル認証コマンド112のコマンドメッセージに含まれるターミナル認証コードの正当性を検証する。
【0059】
そして、ICカード11は、ステップS19で、ターミナル認証コードの正当性の検証結果を含むレスポンスメッセージをターミナル12へ返信する。
【0060】
ICカード11から送信されるターミナル認証コードの正当性の検証結果で成功が示される場合、ターミナル12の相互認証手段122がICカード11を認証するために、ステップS20で、ターミナル12は乱数を生成し、ステップS21で、生成した乱数を含む認証コード生成コマンド114のコマンドメッセージをICカード11に送信する。
【0061】
ターミナル12から認証コード生成コマンド114のコマンドメッセージを受信すると、ICカード11は、ステップS22で、ステップS18でマスター鍵110から生成した派生鍵を用いて、ターミナル12がICカード11を認証するための認証コード(以下、ICカード認証コード)を生成し、ステップS23で、生成したICカード認証コードを含むレスポンスメッセージをターミナル12に返信する。
【0062】
ターミナル12は、ICカード認証コードを含むレスポンスメッセージをICカード11から受信すると、ステップS24で、ターミナル12の相互認証手段122は、ステップS16でマスター鍵120から生成した派生鍵を用いて、ICカード認証コードの正当性を認証し、認証に成功した後、ICカード11を利用したサービスに係る処理を実行する。
このステップをもって、ターミナル12とICカード11間で相互認証する手順は終了する。
【0063】
なお、本発明は、これまで説明した実施の形態に限定されることなく、種々の変形が可能であって、それらも本発明の均等の範囲内である。
【0064】
例えば、上述したICカードシステム10では、マスター鍵110、120から生成した派生鍵そのものを相互認証に利用したが、例えば、非特許文献1に記述された手順に従い、マスター鍵110、120から生成した派生鍵とカウンタの値とからセッション鍵を生成し、ICカード11とターミナル12の相互認証にセッション鍵を用いることもできる。
【0065】
更に、ICカード11及びターミナル12が、それぞれ複数のマスター鍵110及び複数のマスター鍵120を有し、マスター鍵110及びマスター鍵120のそれぞれに有効期限を設定し、特許文献2で開示されているように、期日ごとに利用するマスター鍵及びマスター鍵120を変更することもできる。
【0066】
更に、図4のフローでは、ICカード11がターミナル12を認証するときも、ターミナル12がICカード11を認証するときも、ステップS1でICカードが生成した派生情報に基づいて、マスター鍵110、120から派生鍵を派生させていたが、ターミナル12がICカード11を認証するときに、ターミナル12側で生成した派生情報を利用してもよい。
【0067】
このとき、ステップS20で、ターミナル12は乱数と共に派生情報を生成し、ステップS21でICカードへ送信される認証コード生成コマンド114のコマンドメッセージに、生成した乱数と派生情報を含ませ、ステップS22で、ICカード11は受信した派生情報に基づき、マスター鍵110から派生鍵を生成し、派生鍵を利用してICカード認証コードを生成する。
【0068】
更に、ターミナル検証用のマスター鍵110、120と、ICカード認証用のマスター鍵110、120を個別に設定することもできる。
【0069】
このとき、ステップS13からステップS16の一連のステップで、ICカード11がターミナル12を認証するときは、ICカード11側で生成された派生情報に基づいて、ターミナル検証用のマスター鍵110、120から派生鍵を生成し、ステップS20からステップS24の一連のステップで、ターミナル12がICカード11を認証するときに、ターミナル12側で生成された派生情報に基づいて、ICカード検証用のマスター鍵110、120から派生鍵を生成する。
【図面の簡単な説明】
【0070】
【図1】マスター鍵と派生鍵を説明する図。
【図2】マスター鍵から派生鍵を生成する手順を示したフロー図。
【図3】ICカードとターミナル間で相互認証するICカードシステムのブロック図。
【図4】ターミナルとICカード間で相互認証する手順を示したフロー図。
【符号の説明】
【0071】
1 マスター鍵、2 派生鍵、3 派生情報
10 ICカードシステム
11 ICカード
110 マスター鍵
111 派生鍵生成手段
112 ターミナル認証コマンド、
113 チャレンジコマンド
114 認証コード生成コマンド
12 ターミナル
120 マスター鍵
121 派生鍵生成手段
122 相互認証手段



【特許請求の範囲】
【請求項1】
ターミナルとのセッションに暗号演算を利用するICカードであって、前記ICカードは、ターミナルと共有するマスター鍵を不揮発性メモリに記憶し、セッションで利用する派生鍵を前記マスター鍵から生成する派生鍵生成手段を備え、前記マスター鍵の鍵長を前記派生鍵の鍵長よりも長くすることで、前記派生鍵に対して前記マスター鍵に冗長性を持たせ、前記派生鍵生成手段は、所定のアルゴリズムに基づき、前記マスター鍵の一部を用いてセッションごとに異なる前記派生鍵を生成し、前記ICカードは、前記派生鍵生成手段が生成した前記派生鍵を用いて前記ターミナルとセッションすることを特徴とするICカード。
【請求項2】
請求項1に記載のICカードにおいて、前記派生鍵生成手段は、前記派生鍵を生成するときに利用する前記マスター鍵のバイトとその並び順を示す派生情報に基き、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成する手段であることを特徴とするICカード。
【請求項3】
請求項2に記載のICカードにおいて、前記ICカードの前記派生鍵生成手段は、乱数を用いて前記派生情報を生成し、生成した前記派生情報に基づき前記派生鍵を生成することを特徴とするICカード。
【請求項4】
請求項2に記載のICカードにおいて、前記ICカードの前記派生鍵生成手段は、前記ICカードとセッションする前記ターミナルから受信した前記派生情報を用いて前記派生鍵を生成することを特徴とするICカード。
【請求項5】
請求項3に記載のICカードにおいて、前記ICカードは、ターミナル認証用の前記マスター鍵を記憶し、前記ICカードは、前記派生鍵生成手段が生成した前記派生情報を前記ターミナルに送信するコマンドと、ターミナル認証用の前記マスター鍵から生成した前記派生鍵を用いて、前記ターミナルから送信されるターミナル認証コードの正当性を検証するコマンドを備えていることを特徴とするICカード。
【請求項6】
請求項4に記載のICカードにおいて、前記ICカードは、ICカード認証用の前記マスター鍵を記憶し、前記ターミナルから受信した前記派生情報に基づき、ICカード認証用の前記マスター鍵から生成した前記派生鍵を用いて、前記ターミナルへ送信するICカード認証コードを生成するコマンドを備えていることを特徴とするICカード。
【請求項7】
ICカードが、暗号演算を利用したセッションに用いる派生鍵の生成方法であって、鍵長を前記派生鍵の鍵長よりも長くし、前記派生鍵に対して冗長性を持たせたマスター鍵を前記ICカードに記憶させ、所定のアルゴリズムに基づき、前記マスター鍵の一部を用いてセッションごとに異なる前記派生鍵を生成することを特徴とする派生鍵の生成方法。
【請求項8】
請求項7に記載の派生鍵の生成方法において、前記派生鍵として利用する前記マスター鍵のバイトとその並び順を示す派生情報に基き、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成することを特徴とする派生鍵の生成方法。
【請求項9】
請求項8に記載の派生鍵の生成方法において、前記ICカードは、乱数を用いて前記派生情報を生成し、生成した前記派生情報を用いて前記派生鍵を生成することを特徴とする派生鍵の生成方法。
【請求項10】
請求項8に記載の派生鍵の派生方法において、前記ICカードは、前記ICカードとセッションするターミナルから受信した前記派生情報を用いて前記派生鍵を生成することを特徴とする派生鍵の生成方法。
【請求項11】
ICカードがターミナルを認証するターミナル認証方法であって、ターミナルと前記ICカードは、前記ターミナルの認証で利用する派生鍵の鍵長よりも長い鍵長のターミナル認証用のマスター鍵を記憶し、前記ICカードが、前記派生鍵として利用する前記マスター鍵のバイトとその並び順を示す派生情報を生成するステップ、前記ICカードが、前記ターミナルの認証に利用するチャレンジと共に、生成した前記派生情報を送信するステップ、前記ターミナルが、受信した前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成するステップ、前記ターミナルが前記チャレンジから認証コードを生成し前記ICカードに送信するステップ、前記ICカードが、前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成し、生成した前記派生鍵を用いて、前記ターミナルから受信した前記認証コードを検証するステップを備えることを特徴とするターミナル認証方法。
【請求項12】
ターミナルがICカードを認証するICカード認証方法であって、前記ターミナルと前記ICカードは、前記ICカードの認証で利用する派生鍵の鍵長よりも長い鍵長のICカード認証用のマスター鍵を記憶し、前記ターミナルが、前記派生鍵として利用する前記マスター鍵のバイトとその並び順を示す派生情報を生成するステップ、前記ターミナルが、前記ICカードの認証に利用するチャレンジと共に、生成した前記派生情報を前記ICカードに送信するステップ、前記ICカードが、受信した前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成するステップ、前記ICカードが前記チャレンジから認証コードを生成し前記ターミナルへ送信するステップ、前記ターミナルが、前記派生情報に基づき、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成し、生成した前記派生鍵を用いて、前記認証コードを検証するステップを備えることを特徴とするICカード認証方法。
【請求項13】
ターミナルと共有するマスター鍵を不揮発性メモリに記憶し、ターミナルとのセッションに暗号演算を利用するICカードを、所定のアルゴリズムに基づき、前記マスター鍵の一部を用いて、前記ターミナルとのセッションに利用する前記派生鍵を生成する派生鍵生成手段として機能させるためのコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムにおいて、前記派生鍵を生成するときに利用する前記マスター鍵のバイトとその並び順を示す派生情報に基き、前記マスター鍵から抽出したバイトを組み合せることで前記派生鍵を生成する前記派生鍵生成手段として、前記ICカードを機能させるためのコンピュータプログラム。
【請求項15】
請求項14に記載のコンピュータプログラムにおいて、乱数を用いて前記派生情報を生成し、生成した前記派生情報に基づき前記派生鍵を生成する前記派生鍵生成手段として、前記ICカードを機能させるためのコンピュータプログラム。
【請求項16】
請求項14に記載のコンピュータプログラムにおいて、前記ICカードとセッションするターミナルから受信した前記派生情報を用いて前記派生鍵を生成する前記派生鍵生成手段として、前記ICカードを機能させるためのコンピュータプログラム。



【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−148070(P2008−148070A)
【公開日】平成20年6月26日(2008.6.26)
【国際特許分類】
【出願番号】特願2006−333844(P2006−333844)
【出願日】平成18年12月11日(2006.12.11)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】