説明

データ処理方法、半導体装置、ICカード、半導体集積回路及びデータ処理システム

【課題】ICカード等を用いて電子署名を行う場合に、データ処理の効率及びセキュリティを向上させることができるデータ処理方法等を提供する。
【解決手段】第1データを含む第1コマンドを機器から半導体装置に送信する第1指示ステップ(S101)と、半導体装置において第1コマンドに従って第1データを用いてデータ処理を行う第1処理ステップ(S102)と、半導体装置に第1データを格納する第1格納ステップ(S103)と、第1処理ステップの結果を機器に対して送信する第1応答ステップ(S104)と、第2コマンドを機器から半導体装置に送信する第2指示ステップ(S105)と、半導体装置において、第2コマンドに従って、第1格納ステップで格納された第1データのハッシュ値を計算する第2処理ステップ(S106)と、第2処理ステップの結果を機器に送信する第2応答ステップ(S108)とを含む。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ICカード等が備える半導体装置と、その半導体装置と通信する機器との間におけるデータ処理方法等に関する。
【背景技術】
【0002】
近年、交通、金融、パスポート、運転免許証等の様々な分野でICカードの普及が進んでいる。ICカードはCPU(Central Processing Unit)を搭載することにより、暗号演算を初めとするセキュリティ機能をICカード内で実現できることが最大の特徴である。その応用例として、ICカード自身が行った演算であることを後日証明するために、トランザクションデータに対し、ICカードがデジタル署名を行う場合がある。例えば、預金口座の残高の一部がICカード内の不揮発性メモリにチャージされたICカードの所持者が、そのICカードを使用して買い物をした際に、ICカードは、日付、商品名、金額等のトランザクションデータに対して署名を生成する。そして、後日、決済センターのコンピュータが、その署名が正しいと確認した場合に、ICカードの所持者の口座から店の口座に資金を移す。このようにICカードを利用した買い物を実現する電子マネーシステムが従来から考えられている。
【0003】
このようなシステムにおいてICカードに各種処理を実行させるためのコマンドが国際規格で規定されている(例えば、非特許文献1参照)。非特許文献1に記載の国際規格は、ICカードにおけるセキュリティ処理に関するコマンドについて規定している。この国際規格において規定される複数のコマンドのそれぞれは、原則として、互いに依存関係がない独立した処理を指示するためのコマンドである。
【0004】
なお、ISO/IEC7816のコマンドに関するパート(非特許文献1に記載のパートを含む)は、接触型ICカード及び非接触型ICカードに関する国際規格であるが、この国際規格が適用されるICカードの形状は、カード型に限定されるものではない。この国際規格は、例えば、タグのような小さな形状、携帯電話のような形状など、耐タンパ性を有するセキュアなデバイスであれば形状によらず適用可能な規格である。
【0005】
図13は、現行の国際規格であるISO/IEC7816に準拠したコマンドを用いて上記のようなデータ処理を実行した場合の従来の処理フローを示す図である。
【0006】
図13に示すように、まず、機器102はICカード101に対し、トランザクションデータを含むトランザクションコマンドを送信する。ここでトランザクションコマンドとは、トランザクションコマンド処理の実行を指示するコマンドである。また、トランザクションデータとは、トランザクション処理を実行する際に利用するデータである。ここでトランザクションコマンド処理は、上記の例では、日付、商品名、金額等のデータを含むトランザクションデータを履歴情報としてICカードの不揮発性メモリに書き込むとともに、ICカードの不揮発性メモリに書かれている残高からトランザクションデータに含まれる金額を減算して残高を更新する処理である。ICカード101は、このトランザクション処理が終了した後、トランザクション処理が正常終了したことを示す処理結果を機器102に送信する。
【0007】
次に、機器102は、ICカード101に対し、コマンドデータを含むハッシュコマンドを送信する。ここでハッシュコマンドとは、ハッシュコマンド処理の実行を指示するコマンドである。また、ハッシュコマンド処理とは、主として、ハッシュ値を計算する処理である。ここで、ハッシュコマンドにはコマンドデータが含まれるので、ハッシュコマンドは、コマンドデータを入力として、ICカード101内でハッシュ値を生成することを指示する。また、ハッシュコマンドに含まれるコマンドデータは、前記トランザクションデータと同じものである。したがって、ICカード101は、ハッシュコマンドに従って、このコマンドデータ(トランザクションデータ)のハッシュ値を計算する。そして、ICカード101は、ハッシュコマンドに対する応答として、機器102にハッシュ値を送信する。
【0008】
最後に、機器102はICカード101に対し、コマンドデータを含む署名コマンドを送信する。ここで署名コマンドとは、署名コマンド処理の実行を指示するコマンドである。また、署名コマンド処理とは、主として、署名データを計算する処理である。署名コマンドにコマンドデータが含まれる場合、署名コマンドは、コマンドデータを署名対象データとして、ICカード101内で署名データを生成することを指示する。ここでコマンドデータは、前記ハッシュコマンドに従って生成されたハッシュ値である。したがって、ICカード101は、署名コマンドに従って、このコマンドデータ(ハッシュ値)に対する署名データを計算する。そして、ICカード101は、署名コマンドに対する処理結果として、機器102に署名データを送信する。
【0009】
図14は、現行の国際規格であるISO/IEC7816に準拠したコマンドを用いて図13に示した方法とは異なる方法でデータ処理を実行した場合の処理フローを示す図である。図14に示す処理フローが図13に示す処理フローと異なる点は、ハッシュコマンドと署名コマンドとが互いに連携している点である。具体的には、ハッシュコマンド処理において、ICカード101は、ハッシュ値を機器102に送信せず、ICカード101内の揮発性メモリに一時的に保持する。その後、機器102は、コマンドデータを含まない署名コマンドを送信する。そして、署名コマンド処理において、ICカード101は自身の揮発性メモリに保持されたハッシュ値に対して署名データを計算する。このように、ハッシュコマンドと署名コマンドとを一連の処理として扱うことにより、トランザクションデータと署名データの一貫性が確保され、セキュリティが向上する。
【非特許文献1】ISO/IEC7816−8 Second Edition 5.2節
【発明の開示】
【発明が解決しようとする課題】
【0010】
しかし、従来技術には次のような課題がある。まず第一の課題として、トランザクションコマンドを送信するときとハッシュコマンドを送信するときとで同じデータが二度送られるため、処理が非効率であるという点が挙げられる。ICカードに要求される機能の高度化に伴い、ICカードが扱うデータ長は長くなる傾向にあるため、この非効率性は今後益々無視できなくなってくる。
【0011】
また、トランザクションコマンドを送信するときとハッシュコマンドを送信するときとで同じデータを二度送ることは、セキュリティ面でも問題がある。すなわち、トランザクションコマンド処理において利用されたトランザクションデータと異なるデータを署名対象とする不正が可能となる。図14の従来例では、ハッシュコマンド処理と署名コマンド処理との一貫性を確保しているが、よりセキュリティを高めるためには、トランザクションコマンド処理をも含めた一貫性が必要となる。
【0012】
次に第二の課題として、署名対象データの指定方法のバリエーションが限定されるという点が挙げられる。具体的には、図13の場合、署名コマンドと共に送信されるコマンドデータのみが署名対象となる。また、図14の場合、ICカード101内に保持されたハッシュ値のみが署名対象となる。更にセキュリティを高めるために、例えば、ICカード101に保持されるハッシュ値に加え、機器102から与えられる乱数も含むデータを署名対象とすることが考えられる。この場合、トランザクションデータが同じであっても毎回署名データが異なるようにすることができる。このように、ICカード101内に保持されているデータと、機器102からのコマンドデータの集合に対して署名を行うといった処理が考えられるが、従来技術ではこれを実現することができない。
【0013】
そこで、本発明は、上記課題を鑑みてなされたものであり、ICカード等を用いて電子署名を行う場合に、データ処理の効率を向上させるとともに、セキュリティを向上させることができるデータ処理方法等を提供することを目的とする。
【課題を解決するための手段】
【0014】
上記目的を達成するために、本発明に係るデータ処理方法は、半導体装置と、前記半導体装置と通信する機器との間におけるデータ処理方法であって、第1データを含む第1コマンドを、前記機器から前記半導体装置に送信する第1指示ステップと、前記半導体装置において、前記第1コマンドに従って前記第1データを用いてデータ処理を行う第1処理ステップと、前記半導体装置に前記第1データを格納する第1格納ステップと、前記第1処理ステップの結果を前記機器に送信する第1応答ステップと、第2コマンドを、前記機器から前記半導体装置に送信する第2指示ステップと、前記半導体装置において、前記第1格納ステップで格納された前記第1データを読み出し、前記第2コマンドに従って、読み出した前記第1データのハッシュ値を計算する第2処理ステップと、前記第2処理ステップの結果を前記機器に送信する第2応答ステップとを含むことを特徴とする。
【0015】
これにより、第1コマンドとともに送信されてきた第1データが半導体装置に保持されるので、第2コマンドを送信する際に第1データを送信する必要がなくなり、データ処理の効率を向上させることが可能となる。
【0016】
さらに、第1コマンドとともに送信されてきた第1データが半導体装置に保持されるので、第1処理ステップ及び第2処理ステップにおいて利用される第1データの同一性が保持される。したがって、第1コマンド及び第2コマンドに対する処理の一貫性が確保されるので、データ処理のセキュリティを向上させることが可能となる。
【0017】
また、本発明に係るデータ処理方法は、半導体装置と、前記半導体装置と通信する機器との間におけるデータ処理方法であって、署名データの計算の対象となる署名対象データを指定するデータである第1データを含むコマンドであって、前記署名対象データを決定することを指示するコマンドである第1コマンドを、前記機器から前記半導体装置に送信する第1指示ステップと、前記半導体装置において、前記第1コマンドに従って前記第1データにより指定されるデータを署名対象データと決定する第1処理ステップと、前記第1処理ステップの結果を前記機器に送信する第1応答ステップと、前記署名データの計算を指示する第2コマンドを前記機器から前記半導体装置に送信する第2指示ステップと、前記半導体装置において、前記第2コマンドに従って前記署名対象データに対する署名データを計算する第2処理ステップと、前記第2処理ステップの結果を前記署名データと共に前記機器に送信する第2応答ステップとを含むことを特徴とする。
【0018】
これにより、第1データにより署名対象データを指定することができるので、複数のデータの組み合わせを署名対象データとすることが可能となる。したがって、署名対象データが同一となる機会を減少させることができるので、データ処理のセキュリティを向上させることが可能となる。
【発明の効果】
【0019】
以上の説明から明らかなように、本発明に係るデータ処理方法は、同一のデータを重複して送信する必要がなくなるので、データ処理の効率を向上させることが可能となる。また、同一のデータを利用する2つのコマンドに対する処理において、データの同一性を確保されるので、データ処理のセキュリティを向上させることが可能となる。
【発明を実施するための最良の形態】
【0020】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【0021】
(実施の形態1)
図1は、本発明の実施の形態1に係るデータ処理システム100の構成を示す図である。図1に示すように、データ処理システム100は、ICカード1及び機器2により構成される。
【0022】
ICカード1は、CPU21、不揮発性メモリ22及び揮発性メモリ23を備える。
CPU21は、様々な数値計算、情報処理などを行う処理部であり、受信部24、トランザクションコマンド処理部25、ハッシュコマンド処理部26、署名コマンド処理部27及び送信部28を備える。
【0023】
受信部24は、機器2から各コマンド(トランザクションコマンド、ハッシュコマンド、署名コマンド等)を受信する。具体的には、受信部24は、トランザクションデータを含むコマンドであって、残高の更新、履歴情報の登録などの処理を指示するコマンドであるトランザクションコマンドを受信する。ここで、トランザクションデータは、日付、商品名、金額等を含むデータである。また、受信部24は、ハッシュ値の計算を指示するハッシュコマンド及び署名データの計算を指示する署名コマンドを機器2から受信する。受信部24は、受信した各コマンドを解析する。そして、受信部24は、解析結果に応じて、トランザクションコマンド処理部25、ハッシュコマンド処理部26、及び署名コマンド処理部27のいずれかのコマンド処理部に処理を引き渡す。実際には、CPU21は、発行段階の処理等、ここでの説明以外の処理を行うため、その他のコマンド処理部も含むが、ここでは説明を割愛する。
【0024】
トランザクションコマンド処理部25は、受信部24がトランザクションコマンドを受信した場合、トランザクションコマンドに従ってトランザクションデータを用いてデータ処理を行う。具体的には、トランザクションコマンド処理部25は、不揮発性メモリ22の残高格納部29に記録されている残高を更新する。さらに、トランザクションコマンド処理部25は、トランザクションデータを不揮発性メモリ22のトランザクションデータ格納部30に格納する。またさらに、トランザクションコマンド処理部25は、トランザクションデータを揮発性メモリ23のトランザクションデータ保持部31に一時的に格納する。
【0025】
ハッシュコマンド処理部26は、受信部24がハッシュコマンドを受信した場合、ハッシュコマンドに従ってハッシュ値を計算する。具体的には、ハッシュコマンド処理部26は、トランザクションデータ保持部31に保持されているトランザクションデータを読み出す。そして、ハッシュコマンド処理部26は、読み出したトランザクションデータのハッシュ値を計算する。さらに、ハッシュコマンド処理部26は、計算したハッシュ値を揮発性メモリ23のハッシュ値保持部32に一時的に格納する。
【0026】
署名コマンド処理部27は、受信部24が署名コマンドを受信した場合、署名コマンドに従って署名データを計算する。具体的には、署名コマンド処理部27は、ハッシュ値保持部32に保持されているハッシュ値に対する署名データを計算する。
【0027】
送信部28は、各コマンド処理部の処理が終了した場合、各コマンドに対する処理結果を機器2に送信する。具体的には、トランザクションコマンド処理部25が処理を終了した場合、送信部28は、トランザクションコマンドにより指示された処理が終了したことを示す処理結果を機器2に送信する。また、ハッシュコマンド処理部26が処理を終了した場合、送信部28は、ハッシュコマンドにより指示された処理が終了したことを示す処理結果を機器2に送信する。また、署名コマンド処理部27が処理を終了した場合、送信部28は、署名コマンドにより指示された処理が終了したことを示す処理結果とともに、署名コマンドに従って計算された署名データを機器2に送信する。
【0028】
不揮発性メモリ22は、電源を供給しなくても記憶している情報を保持するメモリであり、残高格納部29及びトランザクションデータ格納部30を含む。残高格納部29は、残高が格納される。トランザクションデータ格納部30は、トランザクションデータが履歴情報として格納される。
【0029】
揮発性メモリ23は、電源を供給しないと記憶している情報を保持できないメモリであり、トランザクションデータ保持部31及びハッシュ値保持部32を含む。トランザクションデータ保持部31は、トランザクションデータを一時的に保持する。ハッシュ値保持部32は、ハッシュコマンド処理部26により計算されたハッシュ値を一時的に保持する。
【0030】
機器2は、ICカード1とデータ通信が可能な機器であり、送信部61及び受信部62を備える。
【0031】
送信部61は、各コマンドをICカード1に送信する。具体的には、送信部61は、トランザクションコマンド、ハッシュコマンド、署名コマンド等をICカード1に送信する。
【0032】
受信部62は、各コマンドに対する処理結果をICカード1から受信する。具体的には、受信部62は、トランザクションコマンド、ハッシュコマンド、署名コマンド等に対する処理結果をICカード1から受信する。
【0033】
次に、以上のように構成されたデータ処理システム100における各種動作について説明する。
【0034】
図2は、本発明の実施の形態1に係るデータ処理システム100におけるデータの流れを示す図である。
【0035】
図2に示すように、まず、機器2からICカード1に、トランザクションデータを含むトランザクションコマンドが送信される。そして、ICカード1において、トランザクションコマンド処理が実行された後、ICカード1から機器2に、トランザクションコマンドに対する処理結果が送信される。
【0036】
次に、機器2からICカード1に、ハッシュコマンドが送信される。ここで送信されるハッシュコマンドには、ハッシュ値の計算に用いられるコマンドデータが含まれない。続いて、ICカード1において、ハッシュコマンド処理が実行された後、ICカード1から機器2に、ハッシュコマンドに対する処理結果が送信される。ここで送信される処理結果には、ハッシュコマンド処理において計算されたハッシュ値が含まれない。
【0037】
次に、機器2からICカード1に、署名コマンドが送信される。ここで送信される署名コマンドには、署名データの計算に用いられるコマンドデータが含まれない。続いて、ICカード1において、署名コマンド処理が実行された後、ICカード1から機器2に、署名コマンドに対する処理結果が送信される。ここで送信される処理結果には、署名コマンド処理において計算された署名データが含まれる。
【0038】
図3は、本発明の実施の形態1に係るデータ処理システム100において実行される処理の流れを示すフローチャートである。
【0039】
まず、機器2の送信部61はICカード1に対し、日付、商品名、金額等のトランザクションデータを含むトランザクションコマンドを送信する(ステップS101)。ICカード1の受信部24はトランザクションコマンドを受信し、トランザクションコマンド処理部25にトランザクションコマンドを受信したことを通知する。そして、ICカード1のトランザクションコマンド処理部25は、トランザクションデータに含まれる金額がICカード1の不揮発性メモリ22に書かれている残高を超えていないか等の必要な確認を行った後、残高を更新する(ステップS102)。また、ICカード1のトランザクションコマンド処理部25は、履歴情報としてICカード1の不揮発性メモリ22にトランザクションデータを格納する。さらに後続のハッシュコマンド処理においてハッシュコマンド処理部26が使用するために、ICカード1のトランザクションコマンド処理部25は、このトランザクションデータをICカード1の揮発性メモリ23に格納する(ステップS103)。ICカード1の送信部28は、ステップS102及びS103のトランザクションコマンド処理を全て完了した後、トランザクションコマンド処理が正常終了したことを示す処理結果を機器2に送信する(ステップS104)。
【0040】
次に、機器2の送信部61はICカード1に対し、コマンドデータを含まないハッシュコマンドを送信する(ステップS105)。ICカード1の受信部24はハッシュコマンドを受信し、ハッシュコマンド処理部26にハッシュコマンドを受信したことを通知する。そして、ICカード1のハッシュコマンド処理部26は、ICカード1の揮発性メモリ23に保持されている前記トランザクションデータを読み出し、読み出したトランザクションデータのハッシュ値を計算する(ステップS106)。さらに後続の署名コマンド処理において署名コマンド処理部27が使用するために、ICカード1のハッシュコマンド処理部26は、計算したハッシュ値をICカード1の揮発性メモリ23に格納する(ステップS107)。ICカード1の送信部28は、ステップS106及びS107のハッシュコマンド処理を全て完了した後、ハッシュコマンド処理が正常終了したことを示す処理結果を機器2に送信する(ステップS108)。
【0041】
最後に、機器2の送信部61はICカード1に対し、コマンドデータを含まない署名コマンドを送信する(ステップS108)。ICカード1の受信部24は署名コマンドを受信し、署名コマンド処理部27に署名コマンドを受信したことを通知する。そして、ICカード1の署名コマンド処理部27は、ICカード1の揮発性メモリ23に保持されているハッシュ値を読み出し、読み出したハッシュ値に対する署名データを計算する(ステップS110)。続いて、ICカード1の送信部28は署名コマンド処理が正常終了したことを示す処理結果と共に署名データを機器2に送信する(ステップS111)。
【0042】
このように、ICカード1がトランザクションコマンドにより送られてきたトランザクションデータをICカード1内の揮発性メモリ23に一時的に保持することにより、データ処理システム100は、トランザクションデータを二度にわたって送信又は受信する必要がなくなり、処理効率が向上する。
【0043】
さらに、ハッシュコマンド処理及び署名コマンド処理において、ICカード1の揮発性メモリ23に保持されている、当該コマンド処理よりも前のコマンド処理において使用されたデータ、あるいは当該コマンド処理よりも前のコマンド処理により生成されたデータが用いられるため、トランザクションコマンド、ハッシュコマンド及び署名コマンドに対する処理の一貫性が確保されることとなる。このため、ICカード1が耐タンパ性を有することによりトランザクションデータと署名データとの関連性が保証される場合、データ処理システム100は、署名対象データの置き換えによる不正を防止できる。
【0044】
なお、トランザクションデータ及びハッシュ値を保持するメモリは書換え可能な不揮発性メモリでもよいが、一時的な使用であるため、揮発性メモリの方が適している。揮発性メモリは、ICカード1への電源が遮断されたときに保持されているデータが消去されるため、不揮発性メモリよりもセキュリティ面でも有利である。
【0045】
また、上記の説明では、トランザクションデータをそのままハッシュ計算の対象としたが、その変形も可能である。例えば、履歴情報としては残しておきたいが決済処理には不要なデータ(例えば、商品の詳細情報など)をトランザクションデータの中から省いたり、更新された残高をハッシュ計算の対象に加える等の変形が考えられる。その場合、ICカード1の揮発性メモリ23に保持されるデータは、トランザクションデータそのものではなく、トランザクションコマンド処理の中で生成されたデータとなる。
【0046】
(実施の形態2)
次に、本発明の実施の形態2に係るデータ処理システムについて説明する。本実施の形態では、トランザクションデータがICカード1の受信できるデータサイズを超える場合について説明する。
【0047】
ICカード1に要求される機能の高度化に伴い、ICカード1が扱うデータ(トランザクションデータなど)はサイズが大きくなる傾向にある。一方、ICカード1のリソースの制限から、1回のコマンドでICカード1が受信できるデータサイズ(受信バッファサイズ)は限られる。このため、ICカード1の受信できるデータサイズを超えるデータを機器2がICカード1に送る場合、機器2は複数回のコマンドに分割してデータを送ることになる。
【0048】
例えば、ICカード1の受信バッファサイズが256バイトであり、かつ、トランザクションデータのサイズが400バイトである場合、機器2は、トランザクションデータをおよそ256バイトと144バイトとの2回に分けて送信する。この400バイトのトランザクションデータ全体が後続のハッシュコマンド処理においてハッシュ計算の対象となるため、ICカード1は、実施の形態1と同様の処理を行うためには、2回のトランザクションコマンドのデータのすべてをICカード1内の揮発性メモリ23に格納する必要がある。しかし、トランザクションデータのサイズが非常に大きく、ICカード1がトランザクションデータのすべてを保持するための揮発性メモリ23をICカード1内に持てない場合、実施の形態1のデータ処理システム100と同様の処理を本実施の形態に係るデータ処理システム200がそのまま実行することはできない。
【0049】
そこで、本実施の形態に係るデータ処理システム200において、ICカード1は、1回のトランザクションコマンドを受信する度に、残高更新、履歴情報の書込み等のトランザクションコマンド本来の処理と並行して、中間ハッシュ値を計算する。以下、本実施の形態に係るデータ処理システム200の詳細を説明する。
【0050】
図4は、本発明の実施の形態2に係るデータ処理システム200の構成を示す図である。本実施の形態に係るデータ処理システム200は、図1に示す実施の形態1に係るデータ処理システム100と比較して、ICカード1の揮発性メモリ23がトランザクションデータ保持部31を含まない点と、トランザクションコマンド処理部41及びハッシュコマンド処理部42の処理内容が異なる点と、機器2が分割部71を備える点とが異なる。なお、図4に示すデータ処理システム200において、図1に示すデータ処理システム100と同じ機能を備える構成要素については同じ符号を付し、説明を省略する。
【0051】
トランザクションコマンド処理部41は、N(Nは2以上の整数)回に分けて送られてくるトランザクションコマンドを受信部24が受信する度に中間ハッシュ値を計算する。そして、トランザクションコマンド処理部41は、揮発性メモリ23に含まれるハッシュ値保持部32に中間ハッシュ値を格納する。
【0052】
具体的には、受信部24が第1回目のトランザクションコマンドを受信した場合、トランザクションコマンド処理部41は、受信した第1回目のトランザクションコマンドに含まれる分割されたトランザクションデータの中間ハッシュ値を計算する。また、受信部24が第M(Mは2以上の整数、1<M≦N)回目のトランザクションコマンドを受信した場合、トランザクションコマンド処理部41は、受信した第M回目のトランザクションコマンドに含まれる分割されたトランザクションデータと、第(M−1)回目にトランザクションコマンドを受信したときに計算した中間ハッシュ値とを含むデータの中間ハッシュ値を計算する。そして、トランザクションコマンド処理部41は、最後(第N回目)のトランザクションコマンドに対して計算した中間ハッシュ値を分割前のトランザクションデータのハッシュ値としてハッシュ値保持部32に格納する。
【0053】
ハッシュコマンド処理部42は、受信部24がハッシュコマンドを受信した場合、ハッシュ値保持部32へのアクセスを行わない。すなわち、ハッシュコマンド処理部42は、ハッシュコマンドに対して正常終了を示す処理結果を送信部28を介して機器2に送信する処理のみを行う。
【0054】
機器2が備える分割部71は、ICカード1が受信できるデータサイズとなるように、サイズが大きいトランザクションデータをN個に分割する。
【0055】
次に、以上のように構成されたデータ処理システム200における各種動作について説明する。
【0056】
図5は、本発明の実施の形態2に係るデータ処理システム200におけるデータの流れを示す図である。図5には、トランザクションデータが2回のトランザクションコマンドに分けて送られる場合のデータの流れが示されている。
【0057】
図5に示すように、まず、機器2からICカード1に、分割されたトランザクションデータを含む第1回目のトランザクションコマンドが送信される。そして、ICカード1において、トランザクションコマンド処理が実行された後、ICカード1から機器2に、第1回目のトランザクションコマンドに対する処理結果として、第2回目のトランザクションコマンドを継続して送信することを要求する継続要求が送信される。
【0058】
次に、機器2からICカード1に、分割されたトランザクションデータを含む第2回目(最後)のトランザクションコマンドが送信される。そして、ICカード1において、トランザクションコマンド処理が実行された後、ICカード1から機器2に、第2回目のトランザクションコマンドに対する処理結果が送信される。
【0059】
次に、機器2からICカード1に、ハッシュ値の計算に用いられるコマンドデータを含まないハッシュコマンドが送信される。そして、ICカード1において、ハッシュ値を計算することなく、ICカード1から機器2に、ハッシュコマンドに対する処理結果が送信される。
【0060】
署名コマンド及び署名コマンドに対する処理結果の送信については、実施の形態1に係るデータ処理システム100と同様であるので説明を省略する。
【0061】
図6は、本発明の実施の形態2に係るデータ処理システム200において実行される処理の流れを示すフローチャートである。図6には、図5と同様に、機器2が2回のトランザクションコマンドに分けてトランザクションデータを送る場合のフローチャートが示されている。
【0062】
まず、機器2の分割部71は、トランザクションデータを2つのデータ(第1トランザクションデータ及び第2トランザクションデータ)に分割する(ステップS201)。続いて、機器2の送信部61は、第1トランザクションデータを含む、第1回目のトランザクションコマンドをICカード1に送信する(ステップS202)。
【0063】
次に、ICカード1のトランザクションコマンド処理部41は、第1トランザクションデータに基づいて残高を更新する(ステップS203)。また、トランザクションコマンド処理部41は、ICカード1の不揮発性メモリ22に第1トランザクションデータを格納する(ステップS204)。さらに、第1回目のトランザクションコマンドを受信した際に、トランザクションコマンド処理部41は、第1トランザクションデータを入力として中間ハッシュ値を計算し(ステップS205)、計算した中間ハッシュ値をICカード1の揮発性メモリ23に格納する(ステップS206)。ICカード1の送信部28は、ステップS203〜S206のトランザクションコマンド処理を全て完了した後、第1回目のトランザクションコマンド処理が正常終了したことを示す処理結果、つまり第2回目のトランザクションコマンドを継続して送信することを要求する継続要求を機器2に送信する(ステップS207)。
【0064】
続いて、機器2の送信部61は、第2トランザクションデータを含む、第2回目のトランザクションコマンドをICカード1に送信する(ステップS208)。
【0065】
次に、ICカード1のトランザクションコマンド処理部41は、第2トランザクションデータに基づいて残高を更新する(ステップS209)。また、トランザクションコマンド処理部41は、ICカード1の不揮発性メモリ22に第2トランザクションデータを格納する(ステップS210)。さらに、第2回目(この例では最終)のトランザクションコマンドを受信した際に、トランザクションコマンド処理部41は、ステップS206において揮発性メモリ23に保持されている中間ハッシュ値と第2トランザクションデータとを含むデータのハッシュ値を計算し(ステップS211)、計算したハッシュ値を、トランザクションデータのハッシュ値としてICカード1の揮発性メモリ23に格納する(ステップS212)。ICカード1の送信部28は、ステップS208〜S212のトランザクションコマンド処理を全て完了した後、第2回目のトランザクションコマンド処理が正常終了したことを示す処理結果を機器2に送信する(ステップS213)。
【0066】
後続の処理は、図3に示した、同一の番号が付された処理と同一であるので説明を省略する。なお、ハッシュコマンドを受信した際には、既に最終ハッシュ値が計算されているため、ハッシュコマンド処理部42は、ハッシュ計算に関する処理(ステップS106及びS107)を行わない。
【0067】
この方法によれば、トランザクションデータのサイズが大きい場合でも、ICカード1の限られたリソースを用いて実施の形態1と同じ目的を達成することが可能となる。しかし、上記の例のような処理フローとは異なり、トランザクションコマンドに続いてハッシュコマンドが送られて来ないような場合には、トランザクション処理と並行して行われるハッシュ計算は無駄な処理となってしまうため非効率である。これを解決するために、機器2が第1回目のトランザクションコマンドを送る際、そのトランザクションコマンドのコマンドパラメータの中に、ハッシュコマンドが後続するか否かを示す後続コマンド情報が含まれることが望ましい。すなわち、ハッシュコマンドが続くことをこの後続コマンド情報が示している場合、ICカード1はトランザクション処理と並行してハッシュ計算を行い、逆にハッシュコマンドが続くことをこの後続コマンド情報が示していない場合、ICカード1はハッシュ計算は行わず本来のトランザクションコマンドの処理のみを行う。
【0068】
他の解決方法として、ハッシュコマンドが後続するか否かを示す後続コマンド情報をトランザクションコマンドのパラメータに含めるのではなく、トランザクションコマンドに先行するコマンドで指定してもよい。実際の処理フローにおいては、機器2は、トランザクションコマンドに先行して、署名アルゴリズム等を指定するコマンドを送る場合もある。その場合、このコマンドにおいて、機器2は、トランザクションコマンドにハッシュコマンドが続くか否かを示す方法が考えられる。また、機器2が、この署名アルゴリズム等を指定するコマンドにおいて、署名アルゴリズムとともにハッシュアルゴリズムを指定する場合、ハッシュコマンドが送られることが明確となるため、署名アルゴリズム等を指定するコマンドは、前記後続コマンド情報の役割を兼ねることができる。
【0069】
なお、上記の説明においては、複数回のトランザクションコマンドを送信する場合について説明したが、トランザクションデータのサイズが小さく、1回のトランザクションコマンドのみが送られる場合でも本実施の形態で説明した方法が適用可能であることは言うまでもない。
【0070】
(実施の形態3)
次に、本発明の実施の形態3に係るデータ処理システムについて説明する。
【0071】
実施の形態1又は2に係るデータ処理システム100又は200では、署名対象データは、ハッシュコマンドの処理結果としてICカード1内の揮発性メモリ23に保持されているデータのみであった。しかし、本実施の形態に係るデータ処理システム300では、更にセキュリティを高めるために、例えば署名対象データは、ICカード1内の揮発性メモリに保持されているハッシュ値に加え、機器2から与えられる乱数、ICカード1内の不揮発性メモリに格納されているカード固有番号などを含む。このように、本実施の形態に係るデータ処理システム300は、署名対象データに乱数を含めることにより、同じトランザクションデータに対しても毎回異なる署名データを計算することができるため、署名データの複製による不正を防止することができる。また、データ処理システム300は、署名対象データにカード固有番号を含めることにより、同じトランザクションデータであっても処理するカードが異なれば異なる署名データを計算することができるため、やはりセキュリティが向上する。
【0072】
以下、本実施の形態に係るデータ処理システム300について、図7〜図12を用いて説明する。
【0073】
図7は、本発明の実施の形態3に係るデータ処理システム300の構成を示す図である。本実施の形態に係るデータ処理システム300は、図1に示す実施の形態1に係るデータ処理システム100と比較して、ICカード1が環境設定コマンド処理部51、署名コマンド処理部52、カード固有番号格納部53、及び署名対象データ保持部54を有する点が異なる。なお、図7に示すデータ処理システム300において、図1に示すデータ処理システム100と同じ機能を備える構成要素については同じ符号を付し、説明を省略する。
【0074】
環境設定コマンド処理部51は、受信部24により受信された環境設定コマンドに含まれる拡張ヘッダリストによって指定されるデータを署名対象データと決定する。具体的には、環境設定コマンド処理部51は、拡張ヘッダリストを参照することにより、例えばカード固有番号及びハッシュ値が署名対象データであることを取得する。そして、環境設定コマンド処理部51は、カード固有番号格納部53及びハッシュ値保持部32に書き込まれているカード固有番号及びハッシュ値を、拡張ヘッダリストで指定された通りの構成(例えば、後述するTLV構造)で署名対象データ保持部54に書き込む。また、環境設定コマンド処理部51は、後続の署名コマンドで送られてくる乱数も署名対象データであることを署名コマンド処理部52に伝える。
【0075】
署名コマンド処理部52は、署名コマンドに含まれる乱数を、拡張ヘッダリストで指定された通りの構成で署名対象データ保持部54に追記する。そして、署名コマンド処理部52は、署名対象データ保持部54に書き込まれたデータ全体(署名対象データ)に対し、署名データを計算する。
【0076】
不揮発性メモリ22に含まれるカード固有番号格納部53には、ICカード1を識別するための番号が格納される。
【0077】
揮発性メモリ23に含まれる署名対象データ保持部54は、署名対象データが一時的に保持される。
【0078】
次に、拡張ヘッダリストにより指定される各データ項目(以下、データオブジェクトと記す)のデータ構造を表すTLV構造について説明する。TLV構造とは、タグフィールド(Tag)と長さフィールド(Length)と値フィールド(Value)との3要素で構成される構造である(それぞれの頭文字をとって“TLV”と呼ぶ)。タグフィールドはそのデータオブジェクトの種類を示す。長さフィールドは後続の値フィールドの長さを示す。また値フィールドはこのデータオブジェクトの情報本体である。
【0079】
また、TLV構造は階層構造を表現することができる。図8は、階層的な構造を表す一般的なTLV構造の一例を示す図である。この図の例では、タグT1で表されるデータオブジェクトの値V1が、タグT2で表されるデータオブジェクトとタグT3で表されるデータオブジェクトとで構成されており、長さL1は値V1の長さを示す。すなわち、上位層であるタグT1のデータオブジェクトが、下位層であるタグT2のデータオブジェクトとタグT3のデータオブジェクトとを入れ子にした構造となっている。タグT1のデータオブジェクトのように、他のデータオブジェクトを入れ子にしたものを「構造型」と呼ぶ。これに対し、タグT2のデータオブジェクトやタグT3のデータオブジェクトは「基本型」と呼ぶ。本実施の形態では、各タグは1バイトで表され、各タグの6番目のビットが、構造型と基本型とを識別する識別子となる。具体的には、タグの6番目のビットが0であれば、そのデータオブジェクトは基本型である。一方、タグの6番目のビットが1であれば、そのデータオブジェクトは構造型である。図8に示すTLV構造は2階層のTLV構造であるが、構造型オブジェクトを更に入れ子にすることにより、多階層の構造も表現可能である。
【0080】
図9は、本実施の形態における署名対象データのデータ構造を示す図である。図9に示すデータ構造は、図5で示したタグT1の構造型データオブジェクトにタグT4の基本型データオブジェクトが連結されている。ここで、タグT1はICカード1内のデータを意味し、タグT2は不揮発性メモリに格納されているカード固有番号、タグT3は揮発性メモリに保持されているハッシュ値を示す。また、タグT4は機器2から与えられる乱数を示す。図9に示すデータ構造では、各データの長さも具体的に記されており、L2、L3、L4は各々10バイト、20バイト、8バイトである。タグフィールド及び長さフィールドは各々1バイトであるため、L1はL1=L2+2+L3+2=10+2+20+2=34バイトとなる。
【0081】
図10は、本発明の実施の形態3に係るデータ処理システム300におけるデータの流れを示す図である。図10において、トランザクションコマンド及びハッシュコマンドに関するデータの流れは図1に示すデータの流れと同じであるため説明を割愛する。
【0082】
ハッシュコマンドに対する処理結果が送信された後、機器2からICカード1に、署名データの計算の対象となる署名対象データを指定するデータを含む環境設定コマンドが送信される。環境設定コマンドの詳細については後述する。そして、ICカード1において、環境設定コマンド処理が実行された後、ICカード1から機器2に、環境設定コマンドに対する処理結果が送信される。
【0083】
次に、機器2からICカード1に、署名コマンドが送信される。ここで送信される署名コマンドには、署名データの計算に用いられる乱数が含まれる。続いて、ICカード1において、署名コマンド処理が実行された後、ICカード1から機器2に、署名コマンドに対する処理結果が送信される。ここで送信される処理結果には、署名コマンド処理において計算された署名データが含まれる。
【0084】
以下、環境設定コマンドについて詳細に説明する。環境設定コマンドとは、後続の署名コマンドにおける署名対象データを予め指定するためのコマンドである。また、署名対象データを指定するデータとは、ISO/IEC7816−4(Second edition)の8.5.1節で規定されるExtended header list(以下、拡張ヘッダリストと記す)である。拡張ヘッダリストとは、基本型データオブジェクトをタグフィールドと長さフィールドのみの組合せで指定する方法である。具体的には、署名対象データとして図9に示すデータオブジェクトの集合を指定したい場合、環境設定コマンドに含まれる拡張ヘッダリストは、図11に示すとおりとなる。
【0085】
拡張ヘッダリストの基本型データオブジェクトは値フィールドを持たないが、各基本型データオブジェクトの長さフィールドには図9の対応するデータオブジェクトの長さフィールドと同じ値が設定される。すなわち、L2、L3、L4には各々「10」、「20」、「8」が設定される。一方、構造型データオブジェクトの長さフィールドには、入れ子にしたタグフィールドと長さフィールド分の長さが設定される。具体的には、図11に示す拡張ヘッダリストの場合、各々1バイトのタグフィールド及び長さフィールドの対が2組入れ子になっているため、L1には「4」が設定される。
【0086】
図12は、本発明の実施の形態3に係るデータ処理システム300において実行される処理の流れを示すフローチャートである。なお、図12に示すフローチャートにおいて、図3に示す実施の形態1のフローチャートと同じ処理については、同一の符号を記し、説明を省略する。
【0087】
データ処理システム300においてステップS101〜S108の処理が実行された後、機器2の送信部61は、拡張ヘッダリストを含む環境設定コマンドを送信する(ステップS301)。
【0088】
次に、ICカード1の受信部24は環境設定コマンドを受信し、環境設定コマンド処理部51に環境設定コマンドを受信したことを通知する。そして、ICカード1の環境設定コマンド処理部51は、拡張ヘッダリストにより指定されるデータを、後続の署名コマンドにおける署名対象データと決定する(ステップS302)。具体的には、図11に示す拡張ヘッダリストを含む環境設定コマンドを受信した場合、環境設定コマンド処理部51は、拡張ヘッダリストの先頭のタグT1が構造型を示しており、その長さが4バイトであることから2組のタグフィールドと長さフィールドの情報が含まれていることを認識する。その1番目のタグT2がカード固有番号を意味しており、その長さL2が10であるため、環境設定コマンド処理部51は、ICカード1の不揮発性メモリ22の固定アドレスに格納されている10バイトのカード固有番号を1番目の署名対象データと決定する。次に2番目のタグT3がハッシュ値を意味しており、その長さL3が20であるため、環境設定コマンド処理部51は、ICカード1の揮発性メモリ23の固定アドレスに保持されている20バイトのハッシュ値を2番目の署名対象データと決定する。最後に基本型データオブジェクトのタグT4が機器から与えられる乱数を意味しているため、環境設定コマンド処理部51は、後続の署名コマンドに含まれる乱数を3番目の署名対象データと決定する。
【0089】
次に、ICカード1の送信部28は、ステップS302の環境設定コマンド処理を完了した後、環境設定コマンド処理が正常終了したことを示す処理結果を機器2に送信する(ステップS303)。
【0090】
次に、機器2の送信部61は乱数を含む署名コマンドをICカード1に送信する(ステップS304)。ICカード1の受信部24は署名コマンドを受信し、署名コマンド処理部52に署名コマンドを受信したことを通知する。そして、ICカード1の署名コマンド処理部52は、ステップS302において署名コマンドに含まれる乱数が署名対象データであると決定されているので、今回送られてきた8バイトの乱数が3番目の署名対象データであると判断する。そして、署名コマンド処理部52は、図9に示す構造を持つデータが署名対象データであると解釈し、このデータ対する署名データを計算する(ステップS305)。続いて、ICカード1の送信部28は署名コマンド処理が正常終了したことを示す処理結果と共に署名データを機器2に送信する(ステップS306)。
【0091】
このように、本実施の形態に係るデータ処理システム300は、拡張ヘッダリストを用いて署名対象データを指定することにより、ICカード1内に保持されたデータや機器2から送られるデータ等、複数のデータの集合に対する署名が可能となる。さらに、データ処理システム300は、階層化が可能なリスト構造を用いて署名対象データを指定することにより、複雑に組み合わされたデータに対して署名を行うことが可能となる。なお、本実施の形態では、TLV構造が2階層の場合で説明したが、前述したようにTLV構造は多重の階層化が可能なため、3階層以上のデータの集合に対して署名を行うことも可能となる。
【0092】
なお、本実施の形態では、拡張ヘッダリストは、署名コマンドを送る直前に送信する環境設定コマンドによりICカード1に送信されていたが、ICカード1の発行段階等において、予めICカード1のメモリ内に格納されておいてもよい。また、拡張ヘッダリストは必ずしも署名対象データが複雑な構成である場合のみに適用されるわけではなく、例えば、機器2から送られてくる乱数を含めず、ICカード1内のデータだけを対象とするような簡単なものであってもよい。すなわち、例えば実施の形態1と同様に、ICカード1の揮発性メモリに保持されるハッシュ値だけを署名対象データとするような場合にも拡張ヘッダリストは適用可能である。この場合、署名対象データは基本型データオブジェクトのみで構成されることになる。
【0093】
また、本実施の形態では、タグフィールド及び長さフィールドを各々1バイトで表現したが、複数バイトで表現することも可能である。また、本実施の形態で示したように、拡張ヘッダリストの長さフィールドに具体的な値を設定することも可能であるが、暗黙的な指定方法も可能である。具体的には、基本型データオブジェクトの長さフィールドに0が設定されている場合、ICカード1はその基本型データオブジェクト全体が指定されたものとみなし、暗黙的に知っている固定値をその長さとみなして処理を行う。さらに、本実施の形態における拡張ヘッダリストでは、構造型データオブジェクトに入れ子にされた基本型オブジェクトの各タグを明記する例を示したが、構造型データオブジェクトのタグを示せば入れ子にされた基本型データオブジェクトが暗黙的に決まるような場合、構造型データオブジェクトのタグフィールドと長さフィールドだけを拡張ヘッダリストに明記すればよい。その場合、長さフィールドには、暗黙的な長さを示す規定値(ISO/IEC7816−4の規定では、0x80(16進表示))を設定する。
【0094】
以上、本発明に係るデータ処理システム及びICカードについて、実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の範囲内に含まれる。
【0095】
例えば、上記実施の形態において、データ処理システムは、いずれもICカードを用いた電子マネーシステムであったが、本発明が利用できるシステムはこれに限ったものではない。セキュリティが要求される処理をICカードが行った際、その時に使用したデータに対してICカード自身が生成した署名データによって、その処理の正当性を確認するという本発明の機能は様々なシステムで利用可能である。
【0096】
具体的には、本発明は、例えば、ICカードを用いた生体認証システムに利用することができる。この場合、本発明に係るデータ処理システムにおいて、機器は、生体データを含むトランザクションコマンドをICカードに送信する。また、ICカードが備える不揮発性メモリには、照合用生体データが予め格納される。そして、トランザクションコマンド処理部は、トランザクションコマンドに含まれる生体データと、不揮発性メモリに格納されている照合用生体データとを照合することにより認証を行う。なお、生体認証とは、生体データ(手、指等の血管パターン、指紋、虹彩パターンなど)を用いて行う個人認証である。
【0097】
このように、本発明を生体認証システムに適用することにより、例えば、ICカードが行った指紋照合等の生体認証結果をネットワークを介して遠隔地にあるセンターに知らせる場合、照合された指紋データ(あるいは、そのハッシュ値)や照合結果と、それに対するICカード自身が生成した署名データとをセンター側で検証することにより、生体認証システムは、照合結果の正当性を確認することができる。同様に、本発明は、指紋データをICカードに記録しておき、照合を別のセキュアなデバイスで行う生体認証システムや、指紋データの取得から照合までの全ての生体認証処理をICカード内で行うような生体データ認証システムにも適用可能である。このような生体認証システムでは、指紋データ等の生体データはサイズが大きいため、本発明を適用した場合、効率面において高い効果を得ることができる。
【0098】
また、上記実施の形態において、ICカードのハッシュコマンド処理部は、トランザクションコマンドに含まれるトランザクションデータのハッシュ値を計算したが、さらに、トランザクションコマンド処理により生成されたデータのハッシュ値も計算してもよい。具体的には、トランザクション処理が生体データの認証である場合、ハッシュコマンド処理部は、認証結果のデータのハッシュ値を計算してもよい。また、ハッシュコマンド処理部は、トランザクションコマンドに含まれるトランザクションデータとトランザクションコマンド処理により生成されたデータとを含むデータのハッシュ値を計算してもよい。
【0099】
なお、これらのシステムで使用されるセキュアなデバイスはカード形状である必要はなく、耐タンパ性を有するものであればよいことは言うまでもない。
【0100】
また、本発明は、このようなデータ処理システムとして実現することができるだけでなく、このようなデータ処理システムが備える特徴的な構成部をステップとするデータ処理方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、CD−ROM等の記録媒体やインターネット等の伝送媒体を介して配信することができるのは言うまでもない。
【0101】
また、本発明は、ICカードの機能の全て又は一部を実現する半導体装置として実現しり、その半導体装置が1つの半導体基板上に形成された半導体集積回路(LSI)として実現したりすることもできる。
【産業上の利用可能性】
【0102】
本発明にかかるデータ処理方法は、ICカード等のセキュアなデバイスを用いたシステムに有用である。
【図面の簡単な説明】
【0103】
【図1】本発明の実施の形態1に係るデータ処理システムの構成を示す図である。
【図2】本発明の実施の形態1に係るデータ処理システムにおけるデータの流れを示す図である。
【図3】本発明の実施の形態1に係るデータ処理システムにおいて実行される処理の流れを示すフローチャートである。
【図4】本発明の実施の形態2に係るデータ処理システムの構成を示す図である。
【図5】本発明の実施の形態2に係るデータ処理システムにおけるデータの流れを示す図である。
【図6】本発明の実施の形態2に係るデータ処理システムにおいて実行される処理の流れを示すフローチャートである。
【図7】本発明の実施の形態3に係るデータ処理システムの構成を示す図である。
【図8】階層的な構造を表す一般的なTLV構造の一例を示す図である。
【図9】本発明の実施の形態3における署名対象データのデータ構造を示す図である。
【図10】本発明の実施の形態3に係るデータ処理システムにおけるデータの流れを示す図である。
【図11】本発明の実施の形態3における拡張ヘッダリストの一例を示す図である。
【図12】本発明の実施の形態3に係るデータ処理システムにおいて実行される処理の流れを示すフローチャートである。
【図13】従来のデータ処理システムにおける処理フローを示す図である。
【図14】従来のデータ処理システムにおける処理フローを示す図である。
【符号の説明】
【0104】
1 ICカード
2 機器
21 CPU
22 不揮発性メモリ
23 揮発性メモリ
24 受信部
25 トランザクションコマンド処理部
26 ハッシュコマンド処理部
27 署名コマンド処理部
28 送信部
31 トランザクションデータ保持部
32 ハッシュ値保持部
41 トランザクションコマンド処理部
42 ハッシュコマンド処理部
51 環境設定コマンド処理部
52 署名コマンド処理部
53 カード固有番号格納部
54 署名対象データ保持部
61 送信部
62 受信部
71 分割部
100 データ処理システム
200 データ処理システム
300 データ処理システム

【特許請求の範囲】
【請求項1】
半導体装置と、前記半導体装置と通信する機器との間におけるデータ処理方法であって、
第1データを含む第1コマンドを、前記機器から前記半導体装置に送信する第1指示ステップと、
前記半導体装置において、前記第1コマンドに従って前記第1データを用いてデータ処理を行う第1処理ステップと、
前記半導体装置に前記第1データを格納する第1格納ステップと、
前記第1処理ステップの結果を前記機器に送信する第1応答ステップと、
第2コマンドを、前記機器から前記半導体装置に送信する第2指示ステップと、
前記半導体装置において、前記第1格納ステップで格納された前記第1データを読み出し、前記第2コマンドに従って、読み出した前記第1データのハッシュ値を計算する第2処理ステップと、
前記第2処理ステップの結果を前記機器に送信する第2応答ステップとを含む
データ処理方法。
【請求項2】
前記データ処理方法は、さらに、
第3コマンドを前記機器から前記半導体装置に送信する第3指示ステップと、
前記半導体装置において、前記第3コマンドに従って前記ハッシュ値に対する署名データを計算する第3処理ステップと、
前記第3処理ステップの結果を前記署名データと共に前記機器に送信する第3応答ステップとを含む
請求項1に記載のデータ処理方法。
【請求項3】
前記データ処理方法は、さらに、
前記半導体装置に前記ハッシュ値を格納する第2格納ステップを含み、
前記第3指示ステップにおいて、第2データを含む前記第3コマンドを送信し、
前記第3処理ステップにおいて、前記半導体装置に格納された前記ハッシュ値を読み出し、読み出した前記ハッシュ値と受信した前記第2データとを含むデータに対する署名データを計算する
請求項2に記載のデータ処理方法。
【請求項4】
前記第2処理ステップにおいて、前記半導体装置は、前記第2コマンドを受信する前に、前記ハッシュ値を計算する
請求項1に記載のデータ処理方法。
【請求項5】
前記データ処理方法は、さらに、
前記機器において、前記第1データをN(Nは2以上の整数)個の第1サブデータに分割するデータ分割ステップを含み、
前記第1指示ステップにおいて、前記N個の第1サブデータのそれぞれを含む、N個の前記第1コマンドをそれぞれ別々に送信し、
前記第1格納ステップにおいて、前記N個の第1サブデータのそれぞれを受信するたびに、前記N個の第1サブデータのそれぞれを前記半導体装置に格納し、
前記第2処理ステップは、
第1回目に格納された第1サブデータを読み出し、読み出した前記第1サブデータの第1ハッシュ値を計算する第2処理第1サブステップと、
第M(Mは2以上の整数、1<M≦N)回目に格納された第1サブデータを読み出し、読み出した前記第1サブデータと第(M−1)ハッシュ値とを含むデータの第Mハッシュ値を計算する第2処理第Mサブステップとを含み、
前記第2処理ステップにおいて、前記第Nハッシュ値を前記第1データのハッシュ値として算出する
請求項4に記載のデータ処理方法。
【請求項6】
前記第2指示ステップにおいて、ハッシュ値の計算に用いられるデータを含まない前記第2コマンドを送信する
請求項1に記載のデータ処理方法。
【請求項7】
前記第1格納ステップにおいて、さらに、前記第1処理ステップにおいて生成された第2データを前記半導体装置に格納し、
前記第2処理ステップにおいて、さらに、前記半導体装置に格納された前記第2データを読み出し、読み出した前記第2データのハッシュ値を計算する
請求項1に記載のデータ処理方法。
【請求項8】
前記第1格納ステップにおいて、さらに、前記半導体装置に前記第1処理ステップにおいて生成された第2データを格納し、
前記第2処理ステップにおいて、前記半導体装置に格納された前記第1データ及び前記第2データを読み出し、読み出した前記第1データ及び前記第2データを含むデータのハッシュ値を計算する
請求項1に記載のデータ処理方法。
【請求項9】
前記第1指示ステップにおいて、生体データの認証を指示するコマンドであって、生体データを含むコマンドである前記第1コマンドを、前記機器から前記半導体装置に送信し、
前記第1処理ステップにおいて、前記第1コマンドに従って前記生体データの認証を行う
請求項1に記載のデータ処理方法。
【請求項10】
前記第1格納ステップにおいて、前記半導体装置内のメモリに前記第1データを一時的に格納し、
前記第2処理ステップにおいて、前記第1格納ステップにおいて前記メモリに一時的に格納された前記第1データを読み出す
請求項1に記載のデータ処理方法。
【請求項11】
データ処理を行う半導体装置であって、
データが格納されるメモリと、
第1データを含み、かつ、データ処理を指示する第1コマンドが入力される第1入力部と、
前記第1コマンドに従って前記第1データを用いてデータ処理を行う第1処理部と、
前記メモリに前記第1データを格納する格納部と、
前記データ処理の結果を出力する第1出力部と、
ハッシュ値の計算を指示する第2コマンドが入力される第2入力部と、
前記メモリに格納された前記第1データを読み出し、読み出した前記第1データのハッシュ値を計算する第2処理部と、
前記ハッシュ値の計算結果を出力する第2出力部とを備える
半導体装置。
【請求項12】
請求項11に記載の半導体装置を含む
ICカード。
【請求項13】
請求項11に記載の半導体装置が1つの半導体基板上に形成された
半導体集積回路。
【請求項14】
請求項11に記載の半導体装置と、前記半導体装置と通信する機器とを備え、前記半導体装置及び前記機器においてデータ処理を行うデータ処理システムであって、
前記機器は、
前記第1コマンドを前記半導体装置に送信する第1送信部と、
前記データ処理の結果を前記半導体装置から受信する第1受信部と、
前記第2コマンドを前記半導体装置に送信する第2送信部と、
前記ハッシュ値の計算結果を前記半導体装置から受信する第2受信部とを備える
データ処理システム。
【請求項15】
半導体装置と、前記半導体装置と通信する機器との間におけるデータ処理方法であって、
署名データの計算の対象となる署名対象データを指定するデータである第1データを含むコマンドであって、前記署名対象データを決定することを指示するコマンドである第1コマンドを、前記機器から前記半導体装置に送信する第1指示ステップと、
前記半導体装置において、前記第1コマンドに従って前記第1データにより指定されるデータを署名対象データと決定する第1処理ステップと、
前記第1処理ステップの結果を前記機器に送信する第1応答ステップと、
前記署名データの計算を指示する第2コマンドを前記機器から前記半導体装置に送信する第2指示ステップと、
前記半導体装置において、前記第2コマンドに従って前記署名対象データに対する署名データを計算する第2処理ステップと、
前記第2処理ステップの結果を前記署名データと共に前記機器に送信する第2応答ステップとを含む
データ処理方法。
【請求項16】
前記第1データは、前記機器から送信されるデータである第2データと、前記半導体装置内に格納されている第3データとを指定するデータであり、
前記第1処理ステップにおいて、前記第2データ及び前記第3データを含むデータを署名対象データと決定し、
前記第2指示ステップにおいて、前記第2コマンドと共に前記第2データを送信し、
前記第2処理ステップにおいて、前記半導体装置に格納された前記第3データを読み出し、前記第2データと読み出した前記第3データとを含むデータに対する署名データを計算する
請求項15に記載のデータ処理方法。
【請求項17】
前記第1データは、データの種別を指定するタブフィールドとデータの長さを示す長さフィールドとの組み合わせにより、前記第2データ及び前記第3データを指定するリストデータである
請求項16に記載のデータ処理方法。
【請求項18】
データ処理を行う半導体装置であって、
署名データの計算の対象となる署名対象データを指定するデータである第1データを含むコマンドであって、前記署名対象データを決定することを指示するコマンドである第1コマンドが入力される第1入力部と、
前記第1コマンドに従って前記第1データにより指定されるデータを署名対象データと決定する第1処理部と、
前記第1コマンドに対する処理結果を出力する第1出力部と、
前記署名データの計算を指示する第2コマンドが入力される第2入力部と、
前記第2コマンドに従って前記署名対象データに対する署名データを計算する第2処理部と、
前記第2コマンドに対する処理結果を前記署名データと共に出力する第2出力部とを備える
半導体装置。
【請求項19】
請求項18に記載の半導体装置を含む
ICカード。
【請求項20】
請求項18に記載の半導体装置が1つの半導体基板上に形成された
半導体集積回路。
【請求項21】
請求項18に記載の半導体装置と、前記半導体装置と通信する機器とを備え、前記半導体装置及び前記機器においてデータ処理を行うデータ処理システムであって、
前記機器は、
前記第1コマンドを前記半導体装置に送信する第1送信部と、
前記第1コマンドに対する処理結果を前記半導体装置から受信する第1受信部と、
前記第2コマンドを前記半導体装置に送信する第2送信部と、
前記第2コマンドに対する処理結果を前記署名データと共に前記半導体装置から受信する第2受信部とを備える
データ処理システム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−146414(P2010−146414A)
【公開日】平成22年7月1日(2010.7.1)
【国際特許分類】
【出願番号】特願2008−324673(P2008−324673)
【出願日】平成20年12月19日(2008.12.19)
【出願人】(000005821)パナソニック株式会社 (73,050)
【Fターム(参考)】