JP4168305B2 - Icカードとマイクロコンピュータ - Google Patents
Icカードとマイクロコンピュータ Download PDFInfo
- Publication number
- JP4168305B2 JP4168305B2 JP2000003297A JP2000003297A JP4168305B2 JP 4168305 B2 JP4168305 B2 JP 4168305B2 JP 2000003297 A JP2000003297 A JP 2000003297A JP 2000003297 A JP2000003297 A JP 2000003297A JP 4168305 B2 JP4168305 B2 JP 4168305B2
- Authority
- JP
- Japan
- Prior art keywords
- mod
- processing
- data
- bit
- register
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 claims description 184
- 238000000034 method Methods 0.000 claims description 52
- 238000004364 calculation method Methods 0.000 claims description 47
- 230000008569 process Effects 0.000 claims description 34
- 230000004044 response Effects 0.000 claims description 18
- 230000014509 gene expression Effects 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 34
- 238000003860 storage Methods 0.000 description 24
- 238000012546 transfer Methods 0.000 description 22
- 230000000694 effects Effects 0.000 description 13
- 230000004224 protection Effects 0.000 description 6
- 239000004065 semiconductor Substances 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000001965 increasing effect Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229910021421 monocrystalline silicon Inorganic materials 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009979 protective mechanism Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Landscapes
- Advance Control (AREA)
- Storage Device Security (AREA)
Description
【発明の属する技術分野】
この発明は、ICカードとマイクロコンピュータに関し、特にICカードやプログラム内蔵の1チップマイクロコンピュータのようなCPUとメモリを含み暗号鍵を使ったデータ処理を行なうものの機密保護技術に利用して有効な技術に関するものである。
【0002】
【従来の技術】
メモリに保存されている鍵情報を用いてデータの暗号化処理又は復号化処理を行なうようにしたICカードにおいて、処理時間の違いを利用して実行内容や暗号鍵を推定するTA(Timing Attack )法のようなハッキング手法に対抗するため、暗号処理化又は復号化処理の実行中又は実行の前後に、鍵情報の内容との時間的な相関関係を喪失させる遅延処理を実行する技術の例として、特開平10−69222号がある。また、ICカードに関しては、オーム社出版電子情報通信学会編水沢順一著「ICカード」などがある。
【0003】
【発明が解決しようとする課題】
近年、ICカードが暗号処理を行っている時の消費電流を観測して解析することにより、容易に暗号処理の内容や暗号鍵が推定されることの可能性が示唆されている。このことについては、John Wiley & sons 社 W.Rankl & W. Effing著「 Smart Card Handbook 」 の8.5.1.1 Passive protective mechanisms( 263ページ) に記載されている。
【0004】
つまり、SPA( Simple Power Analysis)法では、演算命令の違い、あるいは処理されているデータの違いにより生じる消費電流波形の違いから、暗号鍵や処理されているデータを解析し、DPA(Diffrentia1 Power Analysis)法では、消費電流波形を統計処理して暗号鍵を推定する。このDPA法では、例えばDESのある部分に仮定した暗号鍵をあてはめて、平文を変化させながら消費電流波形を測定して統計する。暗号鍵を様々に変化させながらこの作業を繰り返し、正しい鍵のときには電流波形が大きなピークを示す。
【0005】
前記公報に記載のようにTA(Timing Attack )法のみを考慮した遅延処理では、実際の演算による消費電流の相関性までも喪失させることができず、上記のような消費電流波形を観測するというSPA又はDPA法のようなハッキング手法には対抗できない。そこで、本願発明者等においては、上記ICカード及びICカード等のようなモジュールに搭載されるマイクロコンピュータのように内蔵のプログラムにより一定のデータ処理動作を行うものに対して上記のような消費電流の観測による暗号処理の内容や暗号鍵の解読をより確実に防止することができる機密保護技術を開発するに至った。
【0006】
この発明の目的は、機密保護の強化を実現したICカードとマイクロコンピュータを提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【0007】
【課題を解決するための手段】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば、下記の通りである。すなわち、外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードにおいて、上記暗号処理用演算ユニットに複数ビット単位での暗号化処理又は復号化処理のための演算に使用するデータを格納するレジスタを設け、暗号化処理又は復号化処理に先立って必要なデータをかかるレジスタに取り込むようにする。
【0008】
本願において開示される発明のうち他の代表的なものの概要を簡単に説明すれば、下記の通りである。すなわち、中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータにおいて、上記暗号処理用演算ユニットに複数ビット単位での暗号化処理又は復号化処理のための演算に使用するデータを格納するレジスタを設け、暗号化処理又は復号化処理に先立って必要なデータを上記レジスタに取り込むようにする。
【0009】
【発明の実施の形態】
図1には、この発明が適用されるICカードの一実施例の外観図が示されている。ICカードは、プラスチックケースからなるカード101と、かかるカード101の内部に搭載された図示しない1チップのマイクロコンピュータ等からなるICカード用チップを持つものである。上記ICカードは、さらに上記ICカード用チップの外部端子に接続されている複数の接点(電極)102を持つ。複数の接点102は、後で図2によって説明するような電源端子VCC、電源基準電位端子VSS、リセット入力端子RESバー、クロック端子CLK、データ端子I/O−1/IRQバー、I/O−2/IRQバーとされる。ICカードは、かかる接点102を通して図示しないリーダーライタのような外部結合装置から電源供給を受け、また外部結合装置との間でのデータの通信を行う。
【0010】
図2には、この発明に係るICカードに搭載されるICカード用チップ(マイクロコンピュータ)の一実施例の概略ブロック図が示されている。同図の各回路ブロックは、公知のMOS集積回路の製造技術により、特に制限されないが、単結晶シリコンのような1個の半導体基板上において形成される。
【0011】
この発明に係るICカード用チップの構成は、基本的にマイクロコンピュータと同じような構成である。その構成は、クロック生成回路205、中央処理装置(以下単にCPUという場合がある)201、ROM(Read Only Memory)206やRAM(Random Access Memory)207、不揮発性メモリ208などの記憶装置、暗号化及び復号化処理の演算を行なうコプロセッサ209、入出力ポート(I/Oポート)202などからなる。
【0012】
クロック生成回路205は、図示しないリーダライタ(外部結合装置)から図1の接点102を介して供給される外部クロックCLKを受け、かかる外部クロック信号に同期したシステムクロック信号を形成し、それをチップ内部に供給する回路である。CPU201は、論理演算や算術演算などを行う装置であり、システムコントロールロジック、乱数発生器及びセキュリィロジック及びタイマなどを制御する。記憶装置206、207、208は、プログラムやデータを格納する装置である。コプロセッサ209は、後述するようにRSA暗号法などに応用可能なべき乗剰余乗算動作を行なう演算器とレジスタ及び制御論理から構成される。I/O(入出力)ポート202は、リーダライタと通信を行う装置である。データバス204とアドレスバス203は、各装置を相互に接続するバスである。
【0013】
上記記憶装置206,207,208のうち、ROM206は、記憶内容が不揮発的に固定されているメモリであり、主にプログラムを格納するメモリである。揮発性メモリ(以下、RAMという)207は自由に記憶情報の書き換えができるメモリであるが、電源の供給が中断されると、記憶している内容が消えてなくなる。ICカードがリーダライタから抜かれると電源の供給が中断されるため、RAM207の内容は、保持されなくなる。
【0014】
上記不揮発性メモリ(以下、EEPROM(Electrical Erasable Programmable Read Only Memory)という)208は、内容の書き換えが可能な不揮発性メモリであり、その中に一旦書き込まれた情報は、電源の供給が停止されてもその内部に保持される。このEEPROM208は、書き換える必要があり、かつICカードがリーダライタから抜かれても保持すべきデータを格納するために使われる。例えば、ICカードがプリペイドカードとして使用されるような場合、のプリペイドの度数などは、使用するたびに書き換えられる。この場合の度数などは、リーダライタか抜かれてもICカード内で記憶保持する必要があるため、EEPROM208で保持される。
【0015】
CPU201は、いわゆるマイクロプロセッサと同様な構成にされる。すなわち、その詳細を図示しないけれども、その内部に命令レジスタ、命令レジスタに書込まれた命令をデコードし、各種のマイクロ命令ないしは制御信号を形成するマイクロ命令ROM、演算回路、汎用レジスタ(RG6等)、内部バスBUSに結合するバスドライバ、バスレシーバなどの入出力回路を持つ。CPU201は、ROM206などに格納されている命令を読み出し、その命令に対応する動作を行う。CPU201は、I/Oポート202を介して入力される外部データの取り込み、ROM206からの命令や命令実行のために必要となる固定データのようなデータの読み出し、RAM207やEEPROM208に対するデータの書き込みと読み出し動作制御等を行う。
【0016】
上記CPU201は、クロック生成回路205から発生されるシステムクロック信号を受けそのシステムクロック信号によって決められる動作タイミング、周期をもって動作される。CPU201は、その内部の主要部がPチャンネル型MOSFETとNチャンネル型MOSFETとからなるCMOS回路から構成される。特に制限されないが、CPU201は、CMOSスタティックフリップフロップのようなスタティック動作可能なCMOSスタテック回路と、信号出力ノードへの電荷のプリチャージと信号出力ノードへの信号出力とをシステムクロック信号に同期して行うようなCMOSダイナミック回路とを含む。
【0017】
ICカードのセキュリティ機能としては、チップ内部で乱数を自動生成する乱数発生器や、ランダムに割込みを生成するタイマー機能などの他に、本願発明にかかる高セキュリテイ機能として、ICカードと外部装置とのデータ送受信の際に用いるRSA暗号法などに応用可能なべき乗剰余演算動作を行なう暗号処理用演算ユニット(コプロセッサ)209を内蔵している。このコプロセッサ209は専用のレジスタが内蔵されている。
【0018】
ICカードにおけるセキュリティ・システムでは、通信データの暗号処理は必須であり、この実施例でも現在最も多く利用されている公開鍵暗号としてRSA暗号が用いられる。この暗号法では、暗号化・復号化ともにべき乗剰余乗算XY modNを用いるが、これは公知のMontgomry法といわれる計算アルゴリズムによって剰余乗算A2 modNとABmodNの2つの形に分解することができる。つまり、Y=en en-1 ・・・e1 の値ei を上位en から最下位のe1 まで順に1ビットずつ見ていき、ei =0だったらA2 modNのみを、ei =1だったらA2 modNとABmodNを演算する。したがって、ei =0のときにはA2 modNの演算の後にi=0であるかの判定処理が行なわれ、ei =1のときにはA2 modNとABmodNとの演算の後にi=0であるかの判定処理が行なわれるために、ei =0と1とに対応した2通りの電流波形の形態が現れてしまう。
【0019】
この実施例のようにコプロセツサ209を用いた場合には、その消費電流はCPUの消費電流に比べて比較的大きいため、この部分の電流波形を観測することによりコプロセッサの動作形態を比較的容易に識別することができ、前記TA法とSPA法により暗号鍵Yの値をハッキングされてしまう可能性が高い。そこで、この実施例のコプロセッサ209では、上記暗号化・復号化ともに用いられるべき乗剰余乗算XY modNの演算を行なうに当たり攪乱目的のダミーの演算が挿入される。つまり、図3のタイミング図及び図4のフローチャート図に示すようにei =0でも1でもA2 modNとABmodNの両方の演算を常に行なうようにするものである。
【0020】
図3のタイミング図において、(a)に示すように本来は、en =1のときにはA2 modNの演算を行い、en の判定の1により時間t1を経てABmodNの演算を行い、その演算後にiをデクリメント(n−1)してi=0の判定に時間t2を費やす。次いで、次ビットen-1 =0のときは、A2 modNの演算を行い、en-1 =0の判定とiをデクリメント(n−2)してi=0の判定に時間t3を費やす。そして、次ビットen-2 =1のときには、A2 modNの演算を行い、en-2 の判定の1により時間t1を経てABmodNの演算を行い、その演算後にiをデクリメント(n−3)してi=0の判定に時間t2を費やす。以下、同様にe1 まで同様な動作を繰り返すものである。
【0021】
この実施例のコプロサッサ209においては、上記暗号鍵Yの各ビットei の論理0又は1に無関係にA2 modNの演算の後にABmodNの演算を行なうようにする。図3(b)のen-1 =0のときのようにei が論理0のときにおける上記ABmodNの演算が攪乱目的のダミー演算として挿入される。つまり、(b)のタイミング図及び図4のフローチャート図のように、A2 modNとABmodNの演算動作の間には、例えばei の判定の判定を含む時間t1が費やされ、ABmodNと次ビットに対応したA2 modNの演算動作の間には、iのデクリメント動作とi=0の判定時間t2が費やされる画一化された動作タイミング及び動作電流とすることができる。ただし、この実施例では、ei の判定処理は、その結果が演算動作の分岐の条件とされないため図4のフローチャート図では省略されている。
【0022】
図5には、上記コプロセッサの一実施例のブロック図が示されいてる。この実施例では、主に演算器、制御論理、専用レジスタブロックより構成され、べき乗剰余演算の最終結果はデータバツファ、データバスを介して中央処理装置CPUに送信される。専用レジスタは、アドレスバスから供給されるアドレス信号に対応してその選択動作が行なわれる。
【0023】
この実施例では、内部バスMDBとレジスタブロックのリードライトバッファ(R/W Buffer)との間にゲート回路1が設けられる。このゲート回路1は、制御論理により制御が行なわれて、ei が論理0ならばA2 modN動作の演算結果が内部バスMDBとリードライトバッファを介して所定のレジスタCDAに取り込まれた後開いていたゲートが閉じるようにされる。つまり、上記演算結果がリードライトバッファに取り込まれると、その後にゲートを閉じてしまいリードライトバッファへの新たなデータの書き込みを禁止する。したがって、その後に行なわれるABmodNの演算結果は無効データとして扱われることとなる。また、ei が論理1ならばゲート回路1はゲートを開いた状態のままとされる。
【0024】
図6には、上記コプロセッサの他の一実施例のブロック図が示されている。この実施例では、レジスタブロックのリードライトバッファ(R/W Buffer)と各レジスタとの間にゲート回路2が設けられる。このゲート回路2は、前記同様に制御論理により制御が行なわれて、ei が論理0ならばA2 modN動作の演算結果が内部バスMDBとリードライトバッファとを介して所定のレジスタCDAに書き込まれた後に開いていたゲートが閉じるようにされる。つまり、上記演算結果がレジスタCDAに取り込まれると、その後にゲートを閉じてしまいかかかるレジスタCDAへの新たなデータの書き込みを禁止する。したがって、その後に行なわれるABmodNの演算結果は、リードライトバッファまでは書き込まれるが、実際には無効データとして扱われることとなる。また、ei が論理1ならばゲート回路2はゲートを開いた状態のままとされる。
【0025】
図7には、上記ゲート回路の一実施例の内部構成図が示されている。ダミー書き込み制御ユニットは、アンドゲート回路によって構成され、一方の入力には制御論理からのライトイネーブル信号が供給され、他方の入力には演算器で生成されたライトストローブ信号が供給される。上記ゲート回路の出力信号は、データバッファ(R/W Buffer)と専用レジスタにライトスローブ信号として伝えられる。
【0026】
この実施例では、演算結果そのものの伝達制御するものに代えて、レジスタ又はデータバッファへの書き込み動作を指示するライトストローブ信号の発生タイミングを切り換えるようにするものである。つまり、ei =0のときには、A2 modN動作の演算結果が出力された後にライトイネーブル信号をロウレベルとしてアンドゲート回路のゲートが閉じるようにするものである。逆に、ei =1のときには、制御論理はライトイネーブル信号をハイレベルのままとして、演算器で形成されたライトストローブ信号がそのままデータバッファ又は専用レジスタに伝えられる。この構成では、複数ビットからなる演算結果Aに対応して、複数個のゲート回路を設ける必要がないので簡素化が可能になる。
【0027】
図8には、上記コプロセッサの他の一実施例のブロック図が示されいてる。この実施例では、レジスタブロックのリードライトバッファ(R/W Buffer)と各レジスタとの間にセレクタ2とレジスタブロックにダミーレジスタ1が設けられる。このセレクタ2は、前記同様に制御論理により制御が行なわれて、ei が論理0ならばA2 modN動作の演算結果が内部バスMDBとリードライトバッファとを介して所定のレジスタCDAに書き込まれるような信号経路を形成し、その後にダミーレジスタ1を選択するような信号経路を形成する。
【0028】
つまり、上記演算結果がレジスタCDAに取り込まれると、その後にダミーレジスタ1を選択するので、レジスタCDAへの新たなデータの書き込みを禁止しつつその後に行なわれるABmodNの演算結果がダミーレジスタに書き込まれものとなる。ei が論理1ならばセレクタ2は常にレジスタCDAを選択する。この構成は、演算結果をレジスタに書き込む動作を含めてei が論理0のときと論理1のときとで電流波形でみたときに全く同一にすることができるから、電流波形を利用したアタックをより確実に無力化することができる。
【0029】
図9には、この発明に係るコプロセッサの他の一実施例の動作を説明するための構成図が示されている。図9(a)のタイミング図及び(b)のフローチャート図において、前記説明したように、A2 modNの演算後、ei の判定の時間t1の間もダミー演算動作としてA2 modNを継続してABmodNの演算に移行する。
【0030】
その演算後にiをデクリメント(−1)してi=0の判定に時間t2を費やすが、その間も上記ABmodNの演算を継続させる。以下、同様にe1 まで同様な動作を繰り返すものである。この構成は、演算動作中は、ei が論理0と1のときに関係なく上記のような演算動作を継続するので、電流波形でみたときに格別な特徴を見出すことができないから、電流波形を利用したアタックを無力化することができる。
【0031】
図10には、図9のコプロセッサの動作を実現するための一実施例のブロック図が示されている。制御論理では、ダミーイネーブル信号とコプロイネーブル信号を送出する。上記ダミーイネーブル信号とコプロイネーブル信号は、オアゲート回路を通して演算器に入力される。それ故、コプロイネーブル信号がアクティブであるときに加えて、ダミーイネーブル信号がアクティブであるときにも演算器は演算動作を行なうようにされる。
【0032】
上記ダミーイネーブル信号は、インバータ回路を通してアンドゲート回路の一方の入力に供給され、かかるアンドゲート回路の他方の入力には演算器で形成されたライトストローブ信号が供給される。つまり、演算器で形成されたライトストローブ信号の伝達をダミーイネーブル信号で選択的に停止できるようにする。コプロイネーブル信号がアクティブにされて、前記正規の演算動作が終了すると、その演算結果を出力するためのライトストローブ信号が形成される。このようにコプロイネーブル信号がアクティブのときには、ダミーイネーブル信号の反転信号がアクティブレベルとなってアンドゲート回路のゲートを開くように制御するので、上記正規演算結果はライトストローブ信号によって、R/Wバッファ又はレジスタブロックの所定のレジスタに書き込まれる。
【0033】
上記のような正規演算が終了すると、ダミーイネーブル信号がアクティブとなって演算器に対して演算動作を指示する。この演算の終了によって、上記ライトストローブ信号が形成されるが、上記ダミーイネーブル信号の反転信号によってアンドゲート回路がゲートを閉じているので、上記攪乱目的のダミー演算動作によって発生されたライトストローブ信号がR/Wバッファ又はレジスタブロックの所定のレジスタに伝えられることはない。これにより、攪乱目的のダミー演算結果は無効データとして消失させられる。
【0034】
図11には、この発明に係るコプロセッサの他の一実施例の動作を説明するためのタイミング図が示されている。前記図3に示した実施例のように、攪乱目的のダミー演算を挿入して、(a)のタイミング図のように、ei に対して画一化してA2 modNとABmodNの演算を一対として行なうようにした場合でも、各演算には、演算結果にオーバーフロー処理を必要とするもの(あり)のものと、オーバーフロー処理を必要としないもの(なし)が発生する。
【0035】
このようなオーバーフロー処理は、演算時間を長くするものであるので電流波形でみると、オーバーフロー処理ありとなしとの識別が可能になる。このような電流波形の特徴から演算内容や演算データを推測することも不可能ではないと考えられるため、この実施例では(b)のタイミング図に示すようにオーバーフロー処理を不要とする演算に対しても必要なときと同様にオーバーフロー処理を挿入する。つまり、みかけ上は、全ての演算A2 modNとABmodNの演算において画一的にオーバーフロー処理のための動作が実施されるために、その識別を無力化するものである。
【0036】
図12は、この発明に係るコプロセッサの他の一実施例の動作を説明するためのフローチャート図が示されている。このフローチャート図は、前記図11(b)に対応している。A2 modNとABmodNの各演算は、剰余演算部とオーバーフロー演算部からなり、演算結果に無関係に上記オーバーフロー演算処理を実施するものである。
【0037】
図13には、この発明に係るコプロセッサの他の一実施例の動作の詳細を説明するためのタイミング図が示されている。この実施例による対策前では、前記A2 modNとABmodNのようなコプロ演算においては、その演算結果に対応してオーバーフロー処理のあるものと無いもの2種類が存在したが、この実施例による対策後では、前記A2 modNとABmodNのようなコプロ演算においては、その演算結果に無関係に常にオーバーフロー処理が実行される。このため、本来はオーバーフロー処理が不要な演算動作に対して実施されたオーバーフロー処理は、攪乱目的のダミー動作とされる。
【0038】
図14には、図11ないし図13に示したコプロセッサの動作を実現するための一実施例のブロック図が示されている。制御論理では、ダミーオーバーフロー信号とコプロオーバーフロー信号を送出する。上記ダミーオーバーフロー信号とコプロオーバーフロー信号は、オアゲート回路を通して演算器に入力される。それ故、コプロオーバーフロー信号がアクティブであるときに加えて、ダミーオーバーフロー信号がアクティブであるときにも演算器はオーバーフロー処理動作を行なうようにされる。
【0039】
上記コプロオーバーフロー信号は、アンドゲート回路の一方の入力に供給され、かかるアンドゲート回路の他方の入力に演算器で形成されたライトストローブ信号が供給される。つまり、演算器で形成されたライトストローブ信号の伝達をコプロオーバーフロー信号がアクティブレベルでないときに選択的に停止できるようにする。つまり、コプロオーバーフロー信号がアクティブレベルでないときはダミーオーバーフロー信号によって演算器がオーバーフロー処理を行なっているので、かかるオーバーフロー処理で形成されたライトストローブ信号は上記ゲート回路のゲートを閉じることによって無効にするものである。したがって、前記正規のオーバーフロー処理終了すると、その処理結果を出力するためのライトストローブ信号が形成されて、R/Wバッファ又はレジスタブロックの所定のレジスタに処理結果が書き込まれる。
【0040】
これに対して、ダミーオーバーフロー信号がアクティブとなって演算器に対してオーバーフロー処理動作を指示した場合には、そのオーバーフロー処理によって形成されたライトストローブ信号は、上記コプロオーバーフロー信号によってアンドゲート回路のゲートが閉じられるものであるから、上記攪乱目的のダミーオーバーフロー処理動作によって発生されたライトストローブ信号がR/Wバッファ又はレジスタブロックの所定のレジスタに伝えられることはない。これにより、攪乱目的のダミーオーバーフロー処理結果は無効データとして消失させられる。
【0041】
図15には、この発明に係るコプロセッサの更に他の一実施例の動作を説明するためのタイミング図が示されている。(a)に示すように本来は、en =1のときにはA2 modNの演算を行い、en の判定の1により時間t1を経てABmodNの演算を行い、その演算後にiをデクリメント(n−1)してi=0の判定に時間t2を費やす。次いで、次ビットen-1 =0のときは、A2 modNの演算を行い、en-1 =0の判定とiをデクリメント(n−2)してi=0の判定に時間t3を費やすような演算動作に対して、上記各演算毎の時間t1、t2及びt3に対して攪乱目的のダミーサイクルが挿入される。
【0042】
(b)のタイミング図では、上記攪乱目的のダミーサイクルの挿入は、各演算毎の時間を最も長い時間t3に揃えるように挿入するものである。これにより、時間t3をインターバルとしてA2 modN又はABmodNのいずれかの演算が実施されるために、みかけ上は演算動作に対応した電流波形が画一化されてその識別を無力化するものである。これに対して、(c)タイミング図では、上記(b)とは逆に上記演算毎のインターバルにおいて時間がランダムに変化する攪乱目的のダミーサイクルが挿入される。上記A2 modN又はABmodNのいずれかの演算が時間的にランダムに実施される。そのため、電流波形でみると上記各演算動作と無関係で、かつ不規則性の電流値にされる。言い換えるならば、上記演算器において同じ状態及び同じ動作でも毎回異なるよう、統計的な観点での非再現性を持つようにされるために、その識別を無力化することができる。
【0043】
上記のような攪乱目的のダミーサイクルは、前記図2に示されたようにタイマーを利用して演算間隔を可変にするものである。あるいはコプロセッサの外部にタイマーを設けて一定の時間が経過するまで次の演算の実行を待つようにする。つまり、コプロセッサによるべき乗剰余乗算の演算において、図15(a)に示した前記各演算毎の時間t1,t2,t3に攪乱目的のダミーのサイクルを挿入し、一定時間後にタイマーからの割込みを入れる。これにより、図15(b)に示すようにt1,t2,t3の時間が全て一定となり、電流波形からのアタックを困難にする。あるいはタイマーには乱数発生器で生成した乱数をセットしておき、(c)に示すように毎回t1,t2,t3の時間をランダムに変化させることも可能である。また、タイマーを用いなくても、ソフトウエアでカウントすることも可能である。
【0044】
べき乗剰余乗算において、コプロセッサによる演算の高速化を目的とし、Yの値を2ビット、あるいは3ビットずつ処理するようにすると、例えば図16のフローチャート図に示すように、2ビット処理の例で説明するなら常にA2 modN−A2 modN−ABmodN及びi−2とi=0?の各ステップの繰り返しになるので、前記1ビットずつ行なう場合のような攪乱目的のダミー演算を行なわなくとも、処理時間や電流波形が一定になる。そのため、電流波形からYの値を推定するのは困難になる。また演算の回数も、前記のバイナリ法だと最大で2n回かかっていたものを、2ビット処理だと常に1.5n回で済むために、動作時間の短縮にもつながる。
【0045】
コプロセッサの演算が開始するまでにA,B,Nの値をそれぞれコプロセツサ専用レジスタに転送し格納しておく。しかしながら、2ビット処理を行う場合、、Yの値によって4通りのBの値B1 、B2 、B3 、B4 が必要になり、これらの値は前もって計算して.RAMやEEPROMなどに格納しておきヽ毎回コプロセツサ専用レジスタに転送することになるが。この際、4通りのBの値によって転送中の電流波形に特徴が現れる可能性がある。
【0046】
例えば、16ビットのプリチャージバスにデータを転送する場合を考える。プリチャージバスは、データ転送の前にすべてのバスの値を“1”にそろえるバスである。このバスに、値は違うが“1”のビットの数が同じデータ、例えば、“1”のビットの数が2である16進数で“88”と“11”、を転送した場合、電流波形はほぼ同じ波形になると予測される。この理由は、“1”から“0”へ変化したビットの数が同じであるため、同じように電流を消費し、同じ電流波形になるからである。
【0047】
もし、“1”のビットの数が1つ異なるデータ、例えば、“1”のビットの数が3である“89”や“19”を転送した場合、“1”のビットの数が2のデータとは消費電流が異なる。これは、13ビット分バスの値が“1”から“0”に変わったため、その分の電流が消費される。そのため、先の14ビットが変化したデータに比べて消費電流が1ビット分小さくなる。一般に、変化するビットの数が多いほど電流波形は高くなるという規則性がある。この規則性から転送されているデータを推定することができると思われる、電流アタックの対象となりやすい。これを防ぐため次のような工夫を行なうものである。
【0048】
図17と図18には、この発明に係るコプロセッサの他の一実施例のブロック図がそれぞれ示されている。この実施例のコプロセッサは、2ビット処理と3ビット処理に向けられている。つまり、コプロセッサのレジスタ容量を増やして、2ビット処理の場合には4通りのBの値B1 〜B4 を、3ビット処理の場合には8通りのBの値B1 〜B8 をコプロセッサのレジスタに格納しておく。従って、演算の途中で記憶回路(RAM)からデータバスを通して上記コプロセッサのれレジスタに前記のような転送の必要がなくなり、前記電流アタックに対して防御することができる。
【0049】
つまり、前記図16に示したようなフローチャート図において、コプロセッサがABmodNを実行する際、下記のように4つ(3ビット処理のときにはあるいは8つ)のうちの正しいBレジスタCDBから値を選んで実行できるように、Yの2ビット(あるいは3ビット)の値をコプロセッサの制御レジスタ(CCNT)のビットに当てはめ、次に示す制御レジスタ及び演算の種類のように、2ビット処理の場合には、AB1 modN, AB2 modN,AB3 modN,AB4 modNのうちどの演算をするかを選択させるようにする。
【0050】
【0051】
【0052】
図19には、この発明に係るコプロセッサの他の一実施例のブロック図が示されている。この実施例のコプロセッサも、2ビット処理や3ビット処理のような複数ビット処理に向けられている。この実施例では、データバスにスイッチを設けて演算をしながら転送できるようにする。この構成により、コプロセッサのレジスタ容量を増加させることなく、実行時間の短縮と電流アタック対策の両方に効果的である。
【0053】
コプロセツサ専用レジスタ(CDA,CDB,CDN,CDW)は、同図に示すように4つのレジスタがCPUとコプロセッサの演算器との間で排他的に使用されている。2ビット処理を行う場合、2回のA2 modNを行いながらその間にBの値をRAMからコプロセッサ専用レジスタユニット中のBレジスタCDBに転送できるようにすると効率的である。
【0054】
コプロセッサのAレジスタCDAとBレジスタCDBのI/Oを分け、それぞれにリード/ライトバッファ(R/W Buffer)を設けて、それぞれ独立に動作できるようにする。演算器がA2 modNを演算している間は、制御信号によりデータバスをパス1(path1)につなぎ、図示しないCPUのRAMからBの値を上記独立に設けられたリード/ライトバッファを介してBレジスタCDBに転送する。次に演算器がABmodNを実行する際には、制御信号によりパス2(path2)に切り換え、上記BレジスタのB値を演算器に送り上記CPUがBレジスタCDBにアクセスできないようにする。この方法を取ると、A2 modNを演算動作と、B値の転送動作が同時に行なわれるから演算時間が短縮されるだけでなく、演算と転送の消費電流が重なるため双方の波形が識別できなくなり、電流アタック対策に有効である。
【0055】
図20には、この発明に係るICカード用チップの他の一実施例の要部ブロック図が示されている。この実施例では、暗号処理用演算ユニットとメモリ(RAM)間の転送の際、メモリにカウンタを設けるようにするものである。この実施例では、2ビット処理に用いる4通りの値、あるいは3ビット処理に用いる8通りの値をコプロセッサ外部メモリRAMからコプロセッサ専用レジスタユニット中のBレジスタCDBに転送する際の電流撹乱を行なうようにするものである。
【0056】
この実施例では、前記図2に示したようなICカード用チップにおいて、RAMの側にカウンタが設けられる。RAMは、カウンタで形成されたアドレス信号をデコードしてデータをデータバスに送出する。このとき、アドレスバスには、乱数発生器が形成された偽アドレスが送出される。これにより、アドレスとデータとの相関が無くなり、電流解析を無力化させることができる。
【0057】
図21には、上記カウンタの一実施例のブロック図が示されている。カンウタは、転送したいブロックの最初のアドレスを保持する先頭アドレスレジスタとインクリメンタを用い、ブロック転送をイネーブルにするイネーブル信号とクロック又はりード/ライト信号などによるインクリメント指示信号で制御する。ブロック転送を開始する際、まず転送の先頭アドレスと転送開始のイネーブル信号がCPUよりカウンタに送信され、上記先頭アドレスレジスタに保持される。その後は、インクリメント指示信号によって、インクリメンタが動作して先頭アドレスレジスタの先頭アドレスA+1を形成して、アドレスを生成するとともに上記先頭アドレスレジスタの内容を書き換えるので、図22のタイミング図に示すように、RAMアドレスが順番にインクリメントA、A+1、A+2、・・・されていき、そのアドレスに従って順次データDA 、DA+1 、DA+2 ・・・・が書込まれ/読み出される。
【0058】
この実施例では、ブロック転送がイネーブルになった後はアドレスバスからのアドレスをカウンタが受け付けないため、アドレスバスにどのような値が来ようとデータは正しく読み出されていく。従って、アドレスバスに乱数発生器などで生成した乱数B、C、D、E・・・が出力されるとアドレスバスの消費電流を撹乱でき、この効果からチップ全体の消費電流を撹乱できるため、チップ内部動作の解析を困難にすることが可能になる。
【0059】
図23には、この発明に係るICカード用チップの更に他の一実施例を示す要部ブロック図が示されている。この実施例でも、暗号処理用演算ユニットとメモリ(RAM)間の転送の際、メモリにカウンタを設けるようにするものであが、かかる暗号処理用演算ユニットとメモリRAMの最初のアドレスをも撹乱するようアドレスオフセット機能が設けられる。つまり、乱数発生器などで生成した乱数をあらかじめCPUとカウンタ側に同時に転送しておき、ブロック転送の最初のアドレスに乱数を加えるか又は引くかした値をアドレスバスに出力する。カウンタ側ではアドレスバスの値を同じ乱数を用いて復号化し、最初のアドレスを得る。
【0060】
図24には、上記転送動作を説明するためのタイミング図が示されている。乱数発生器で形成された乱数をあらかじめCPUとRAMに転送しておき、オフセット演算部1によりブロック転送の最初のアドレスAに乱数Sを加えるか引くかしたアドレスA±Sをアドレスバスに送出する。カウンタ側では、アドレスバスの値を同じ乱数Sを用いて復号化し、オフセット演算部2により最初のアドレスAを得て、以後前記同様にインクリメントしてアドレスA+1、A+2・・・を生成する。このようなアドレスA+1、A+2に同期して、乱数発生器が乱数B、C、D・・・をアドレスバスに送出するので、先頭のアドレスを含めてアドレスバスの消費電流を撹乱でき、チップ内部動作の解析をいっそう困難にすることが可能になる。
【0061】
上記の実施例から得られる作用効果は、下記の通りである。すなわち、
(1) 外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードにおいて、上記暗号処理用演算ユニットに複数ビット単位での暗号化処理又は復号化処理のための演算に使用するデータを格納するレジスタを設け、暗号化処理又は復号化処理に先立って必要なデータをかかるレジスタに取り込むようにすることにより、演算動作の過程でのデータ転送を無くすことができるから、電流波形でのハッキングを無力化することができるという効果が得られる。
【0062】
(2) 上記に加えて、上記暗号化処理又は復号化処理を、RSA暗号法などに応用可能なべき乗剰余乗算動作を含むものとし、上記暗号化処理用演算ユニットは、入力されたX、Y及びNを受け、A=1、B=Xとして、A=A2 modNとA=ABmodNの演算を交互に行ない、かかる演算においてYの上位から複数ビットずつみて、上記複数ビットに対応したA=A2 modNの演算を行ない、複数ビットの組み合わせに対応してABmodNの演算に必要なBの値を上記レジスタから取り込むことにより、暗号処理の高速化と機密保護とを実現できるという効果が得られる。
【0063】
(3) 外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードにおいて、上記暗号処理用演算ユニットは、暗号化処理又は復号化処理のための演算動作と並行して次に演算の使用するデータを記憶回路から取り込む信号経路を設けることにより、演算動作とデータ転送とを同時に行なうようにすることができ、レジスタの簡素化を図りつつ電流波形を利用したアタックを無力化することができるという効果が得られる。
【0064】
(4) 上記に加えて、上記暗号化処理又は復号化処理は、RSA暗号法などに応用可能なべき乗剰余乗算動作を含み、上記暗号化処理用演算ユニットは、入力されたX、Y及びNを受け、A=1、B=Xとして、A=A2 modNとA=ABmodNの演算を交互に行ない、かかる演算においてYの上位から複数ビットずつみて、上記複数ビットに対応したA=A2 modNの演算を行ない、かかる演算と並行して複数ビットの組み合わせに対応したABmodNの演算に必要なBの値を上記記憶回路から取り込むことにより、暗号処理の高速化と機密保護とを実現できるという効果が得られる。
【0065】
(5) 外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置、記憶回路、暗号処理用演算ユニット及び乱数発生回路とが共通のアドレスバスに接続され、上記中央処理装置からの指示を受けて動作する暗号処理用演算ユニットと記憶回路による暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードにおいて、上記記憶回路から暗号処理用演算ユニットに供給される暗号化処理又は復号化処理のためのデータは、上記記憶回路に内蔵されたアドレス発生回路に上記中央処理装置から供給された先頭アドレスを基に形成されたアドレス信号に基づいて上記暗号処理用演算ユニットにデータ転送し、かかるデータ転送に対応して上記中央処理装置、記憶回路及び暗号処理用演算ユニットが共通に接続されてなるアドレスバスに乱数発生回路で形成された乱数を偽アドレス信号として送出することにより、偽アドレス信号により転送されるデータの電流波形を攪乱させることができるから、レジスタの簡素化を図りつつ電流波形を利用したアタックを無力化することができるという効果が得られる。
【0066】
(6) 上記に加えて、上記暗号化処理又は復号化処理は、RSA暗号法などに応用可能なべき乗剰余乗算動作を含み、上記暗号化処理用演算ユニットは、入力されたX、Y及びNを受け、A=1、B=Xとして、A=A2 modNとA=ABmodNの演算を交互に行ない、かかる演算においてYの上位から複数ビットずつみて、上記複数ビットに対応したA=A2 modNの演算を行ない、上記複数ビットの組み合わせに対応してABmodNの演算に必要なBの値を上記記憶回路から取り込むことにより、暗号処理の高速化と機密保護とを実現できるという効果が得られる。
【0067】
(7) 外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置、記憶回路、暗号処理用演算ユニット及び乱数発生回路とが共通のアドレスバスに接続され、上記中央処理装置からの指示を受けて動作する暗号処理用演算ユニットと記憶回路による暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードにおいて、上記乱数発生回路で形成された乱数を用いて上記中央処理装置において形成された暗号化されたアドレス信号を上記記憶回路に供給し、記憶回路では上記乱数を用いて上記アドレス信号を復号化して先頭アドレスを生成して暗号化処理又は復号化処理のためのデータを読み出して上記暗号処理用演算ユニットに転送し、かかるデータ転送に対応して、上記中央処理装置、記憶回路及び暗号処理用演算ユニットが共通に接続されてなるアドレスバスには乱数発生回路で形成された乱数が偽アドレス信号として送出することにより、記憶回路に送られるアドレス信号の解読を困難にしつつ、偽アドレス信号により転送されるデータの電流波形を攪乱させることができるから、レジスタの簡素化を図りつつ電流波形を利用したアタックを無力化することができるという効果が得られる。
【0068】
(8) 上記に加えて、上記暗号化処理又は復号化処理は、RSA暗号法などに応用可能なべき乗剰余乗算動作を含み、上記暗号化処理用演算ユニットは、入力されたX、Y及びNを受け、A=1、B=Xとして、A=A2 modNとA=ABmodNの演算を交互に行ない、かかる演算においてYの上位から複数ビットずつみて、上記複数ビットに対応したA=A2 modNの演算を行ない、上記複数ビットの組み合わせに対応してABmodNの演算に必要なBの値を上記記憶回路から取り込むことにより、暗号処理の高速化と機密保護とを実現できるという効果が得られる。
【0069】
(9) 中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータにおいて、上記暗号処理用演算ユニットに複数ビット単位での暗号化処理又は復号化処理のための演算に使用するデータを格納するレジスタを設け、暗号化処理又は復号化処理に先立って必要なデータを上記レジスタに格納することにより、演算動作の過程でのデータ転送を無くすことができるから、電流波形を利用したアタックを無力化することができるという効果が得られる。
【0070】
(10) 上記に加えて、上記各回路を1つの半導体基板上において形成することにより、モジュールの小型化を図りつつ、機密保護の強化を実現することができるという効果が得られる。
【0071】
(11) 中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータにおいて、上記暗号処理用演算ユニットに暗号化処理又は復号化処理のための演算動作と並行して次の演算に使用するデータを記憶回路から取り込む信号経路を設けることにより、演算動作とデータ転送とを同時に行なうようにすることができ、レジスタの簡素化を図りつつ電流波形を利用したアタックを無力化することができるという効果が得られる。
【0072】
(12) 中央処理装置、記憶回路、暗号処理用演算ユニット及び乱数発生回路とが共通のアドレスバスに接続され、上記中央処理装置からの指示を受けて動作する暗号処理用演算ユニットと記憶回路による暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータにおいて、中央処理装置により暗号化処理又は復号化処理のためのデータの先頭アドレスを上記記憶回路に供給し、記憶回路では内蔵されたアドレス発生回路により形成されたアドレス信号によりデータを読み出して上記暗号処理用演算ユニットにデータ転送し、かかるデータ転送に対応して、上記中央処理装置、記憶回路及び暗号処理用演算ユニットが共通に接続されてなるアドレスバスに乱数発生回路で形成された乱数が偽アドレス信号として送出することにより、偽アドレス信号により転送されるデータの電流波形を攪乱させることができるから、回路の簡素化を図りつつ、電流波形を利用したアタックを無力化することができるという効果が得られる。
【0073】
(13) 中央処理装置、記憶回路、暗号処理用演算ユニット及び乱数発生回路とが共通のアドレスバスに接続され、上記中央処理装置からの指示を受けて動作する暗号処理用演算ユニットと記憶回路による暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータにおいて、上記中央処理装置により上記乱数発生回路で形成された乱数を用いて暗号化処理又は復号化処理のためのデータの先頭アドレスを暗号化して上記記憶回路に供給し、記憶回路では上記乱数を用いて上記アドレス信号を復号化して先頭アドレスを生成し、それを基に形成されたアドレス信号に基づいてデータを読み出して上記暗号処理用演算ユニットに転送し、かかるデータ転送に対応して、上記中央処理装置、記憶回路及び暗号処理用演算ユニットが共通に接続されてなるアドレスバスには乱数発生回路で形成された乱数が偽アドレス信号として送出することにより、記憶回路に送られるアドレス信号の解読を困難にしつつ、偽アドレス信号により転送されるデータの電流波形を攪乱させることができるから、回路の簡素化を図りつつ、電流波形を利用したアタックを無力化することができるという効果が得られる。
【0074】
以上本発明者よりなされた発明を実施例に基づき具体的に説明したが、本願発明は前記実施例に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、ICカードには、1つの半導体集積回路装置を搭載するもの他、複数の半導体集積回路装置が搭載されるものであってもよい。マイクロコンピュータは、1つの半導体集積回路装置に形成されるもの他、CPUとその周辺回路が複数チップで構成されて、1つのモジュール基板に搭載されてなるものであってもよい。
【0075】
演算処理は前記のような暗号処理を行なうべき乗剰余乗算法の他に、図25図に示したフロチャート図のように演算Aと演算Bを持ち、演算Aの結果により演算Bを行なうか否かの分岐を持つような演算処理に広く利用することができる。つまり、演算Aの次に演算Bを実行し、演算Aの結果から演算Bが不要なら、その演算結果を無効にするような演算処理を行なえば、前記のような暗号処理以外の機密動作を必要とするデータ処理のハッキング対策として有益なものとなる。
【0076】
上記マイクロコンピュータは、データ処理装置とかかるデータ処理装置によるデータ処理手順が書き込まれたROMを含んで記データ処理手順に従ってデータの入出力動作が行われるものであれば何であってもよい。例えば、前記のようなICカード用チップの他に、ゲーム用等の1チップマイクロコンピュータ等のように機密保護の必要な各種マイクロコンピュータに広く適用できるものである。この発明は、機密保護を必要とする各種ICカード及びマイクロコンピュータに広く利用できる。
【0077】
【発明の効果】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば、下記の通りである。すなわち、外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードにおいて、上記暗号処理用演算ユニットに複数ビット単位での暗号化処理又は復号化処理のための演算に使用するデータを格納するレジスタを設け、暗号化処理又は復号化処理に先立って必要なデータをかかるレジスタに取り込むようにすることにより、演算動作の過程でのデータ転送を無くすことができるから、電流波形を利用したアタックを無力化することができる。
【0078】
中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータにおいて、上記暗号処理用演算ユニットに複数ビット単位での暗号化処理又は復号化処理のための演算に使用するデータを格納するレジスタを設け、暗号化処理又は復号化処理に先立って必要なデータを上記レジスタに格納することにより、演算動作の過程でのデータ転送を無くすことができるから、電流波形を利用したアタックを無力化することができる。
【図面の簡単な説明】
【図1】この発明が適用されるICカードの一実施例を示す外観図である。
【図2】この発明に係るICカードに搭載されるICカード用チップの一実施例を示す概略ブロック図である。
【図3】この発明に係るコプロセッサの一実施例の動作を説明するためのタイミング図である。
【図4】図3のコプロセッサの動作を説明するためのフローチャート図である。
【図5】図3のコプロセッサの一実施例を示すブロック図である。
【図6】図3のコプロセッサの他の一実施例を示すブロック図である。
【図7】図3に示したコプロセッサの動作を実現するための一実施例を示すブロック図である。
【図8】図3のコプロセッサの他の一実施例を示すブロック図である。
【図9】この発明に係るコプロセッサの他の一実施例の動作を説明するための構成図である。
【図10】図9に示したコプロセッサの動作を実現するための一実施例を示すブロック図である。
【図11】この発明に係るコプロセッサの他の一実施例の動作を説明するためのタイミング図である。
【図12】この発明に係るコプロセッサの他の一実施例の動作を説明するためのフローチャート図である。
【図13】この発明に係るコプロセッサの他の一実施例の動作の詳細を説明するためのタイミング図である。
【図14】図11ないし図13に示したコプロセッサの動作を実現するための一実施例を示すブロック図である。
【図15】この発明に係るコプロセッサの更に他の一実施例の動作を説明するためのタイミング図である。
【図16】この発明に係るコプロセッサの演算動作の他の一実施例を示すフローチャート図である。
【図17】この発明に係るコプロセッサの他の一実施例を示すブロック図である。
【図18】この発明に係るコプロセッサの他の一実施例を示すブロック図である。
【図19】この発明に係るコプロセッサの他の一実施例を示すブロック図である。
【図20】この発明に係るICカード用チップの他の一実施例を示す要部ブロック図である。
【図21】図20のカウンタの一実施例を示すブロック図である。
【図22】図20のICカード用チップの動作の一例を示すタイミング図である。
【図23】この発明に係るICカード用チップの更に他の一実施例を示す要部ブロック図である。
【図24】図23のICカード用チップの動作の一例を示すタイミング図である。
【図25】この発明が適用可能な演算動作を説明するためのフローチャート図である。
【符号の説明】
201…中央処理装置(CPU)、202…I/Oポート、203…アドレスバス、204…データバス、205…クロック生成回路、206…ROM、207…RAM、208…EEPROM、209…コプロセッサ(暗号化処理用演算ユニット)、
CDA、CDB、CDN、CDW…レジスタ。
Claims (2)
- 外部端子がリードライト装置と電気的に接続されることによって動作電圧が供給され、かつ、中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むICカードであって、
上記暗号化処理又は復号化処理は、X Y mod N(X,Y,Nは、正の整数)で記述された式に対応したべき乗余剰演算を、
(1)上記X,Y(=en en-1 ……e1 ),Nを入力し、
(2)A=1とおき、B=Xとおき、
(3)Y=en en-1 ……e1 の複数ビットからなり、上記Yの最上位ビットe n から最下位ビットe 1 まで(4)演算を順に繰り返すものであり、
(4)上記e n e n-1 ……e 1 におけるi番目のビットe i が0ならA=A 2 mod Nを演算し、上記ビットe i が1ならA=A 2 mod NとA=AB mod Nとを演算し、
上記暗号処理用演算ユニットは、
上記A=A2 mod Nと、A=A2 mod NとA=AB mod Nのいずれかを選択する制御レジスタと、
上記AB mod Nの演算動作に利用されるBのデータを格納する複数の専用レジスタと有し、
上記(4)の演算において、上記Y(en en-1 ……e1 )を複数からなるpビットずつの複数組(q m q m-1 ……q 1 )にして、上記最上位組q m から最下位組q 1 まで順に上記制御レジスタに取り込み、
上記複数の専用レジスタは、予め計算された上記1組のpビットに対応した2P 個の上記Bのデータが格納され、
上記制御レジスタに取り込まれたpビットの値によって選択された上記AB mod Nの演算を上記専用レジスタに格納されたBのデータを用いて実行することを特徴とするICカード。 - 中央処理装置からの指示を受けて動作する暗号処理用演算ユニットによる暗号化処理又は復号化処理を伴ったデータの入出力動作を含むモジュール構成のマイクロコンピュータであって、
上記暗号化処理又は復号化処理は、X Y mod N(X,Y,Nは、正の整数)で記述された式に対応したべき乗余剰演算を、
(1)上記X,Y(=en en-1 ……e1 ),Nを入力し、
(2)A=1とおき、B=Xとおき、
(3)Y=en en-1 ……e1 の複数ビットからなり、上記Yの最上位ビットe n から最下位ビットe 1 まで(4)演算を順に繰り返すものであり、
(4)上記e n e n-1 ……e 1 におけるi番目のビットe i が0ならA=A 2 mod Nを演算し、上記ビットe i が1ならA=A 2 mod NとA=AB mod Nとを演算し、
上記暗号処理用演算ユニットは、
上記A=A2 mod Nと、A=A2 mod NとA=AB mod Nのいずれかを選択する制御レジスタと、
上記AB mod Nの演算動作に利用されるBのデータを格納する複数の専用レジスタと有し、
上記(4)の演算において、上記Y(en en-1 ……e1 )を複数からなるpビットずつの複数組(q m q m-1 ……q 1 )にして、上記最上位組q m から最下位組q 1 まで順に上記制御レジスタに取り込み、
上記複数の専用レジスタは、予め計算された上記1組のpビットに対応した2P 個の上記Bのデータが格納され、
上記制御レジスタに取り込まれたpビットの値によって選択された上記AB mod Nの演算を上記専用レジスタに格納されたBのデータを用いて実行するマイクロコンピュータ。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000003297A JP4168305B2 (ja) | 2000-01-12 | 2000-01-12 | Icカードとマイクロコンピュータ |
| TW090100141A TW536672B (en) | 2000-01-12 | 2001-01-03 | IC card and microcomputer |
| US09/754,190 US6907526B2 (en) | 2000-01-12 | 2001-01-05 | IC card and microprocessor |
| US09/754,064 US20010047480A1 (en) | 2000-01-12 | 2001-01-05 | IC card and microprocessor |
| KR1020010001133A KR20010083099A (ko) | 2000-01-12 | 2001-01-09 | Ic 카드 및 마이크로 프로세서 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000003297A JP4168305B2 (ja) | 2000-01-12 | 2000-01-12 | Icカードとマイクロコンピュータ |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2001195555A JP2001195555A (ja) | 2001-07-19 |
| JP4168305B2 true JP4168305B2 (ja) | 2008-10-22 |
Family
ID=18532268
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000003297A Expired - Fee Related JP4168305B2 (ja) | 2000-01-12 | 2000-01-12 | Icカードとマイクロコンピュータ |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4168305B2 (ja) |
Families Citing this family (14)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7503066B2 (en) * | 2002-04-16 | 2009-03-10 | Panasonic Corporation | Deactivation system |
| US7426629B2 (en) * | 2002-12-12 | 2008-09-16 | Arm Limited | Processing activity masking in a data processing system |
| EP1648111B1 (en) * | 2003-07-22 | 2014-01-15 | Fujitsu Limited | Tamper-resistant encryption using a private key |
| JP2005149262A (ja) * | 2003-11-18 | 2005-06-09 | Renesas Technology Corp | 情報処理装置 |
| US8065532B2 (en) * | 2004-06-08 | 2011-11-22 | Hrl Laboratories, Llc | Cryptographic architecture with random instruction masking to thwart differential power analysis |
| JP4664655B2 (ja) * | 2004-11-29 | 2011-04-06 | ルネサスエレクトロニクス株式会社 | 情報処理装置、および、そのアドレス制御方法 |
| JP4551802B2 (ja) * | 2005-03-29 | 2010-09-29 | 株式会社東芝 | プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法 |
| JP2009008993A (ja) * | 2007-06-29 | 2009-01-15 | Nec Electronics Corp | べき乗剰余演算器及びその制御方法 |
| JP5235764B2 (ja) * | 2009-04-16 | 2013-07-10 | 株式会社日立製作所 | Icチップおよびこれを搭載した情報処理装置 |
| JP5724387B2 (ja) * | 2011-01-07 | 2015-05-27 | 大日本印刷株式会社 | 携帯装置及び動的データの格納位置変更方法 |
| JP5755970B2 (ja) * | 2011-08-26 | 2015-07-29 | 株式会社東芝 | 演算装置 |
| GB2582900A (en) | 2019-03-18 | 2020-10-14 | Pqshield Ltd | Cryptography using a cryptographic state |
| GB201911802D0 (en) | 2019-08-16 | 2019-10-02 | Pqshield Ltd | Lattice Coprocessor |
| GB2608999A (en) | 2021-07-15 | 2023-01-25 | Pqshield Ltd | Cryptographic system for post-quantum cryptographic operations |
-
2000
- 2000-01-12 JP JP2000003297A patent/JP4168305B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2001195555A (ja) | 2001-07-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6907526B2 (en) | IC card and microprocessor | |
| JP4168305B2 (ja) | Icカードとマイクロコンピュータ | |
| US7086087B1 (en) | Information processing device, card device and information processing system | |
| JP4199937B2 (ja) | 耐タンパー暗号処理方法 | |
| US7201326B2 (en) | Information processing device | |
| US7454017B2 (en) | Information processing unit | |
| US20020169968A1 (en) | Microprocessor configuration with encryption | |
| JP3844116B2 (ja) | 暗号化・復号化装置とicカード | |
| JP2001266103A (ja) | Icカードとマイクロコンピュータ | |
| US7319758B2 (en) | Electronic device with encryption/decryption cells | |
| Joye et al. | Side-channel analysis | |
| JP3827050B2 (ja) | Icカードと半導体集積回路装置 | |
| JP2004126841A (ja) | プログラム実装方法 | |
| ES2312427T3 (es) | Procedimiento de contramedida en un microcircuito y tarjeta inteligente que incorpora dicho microcircuito. | |
| JP2005149262A (ja) | 情報処理装置 | |
| WO2005027403A1 (ja) | 情報処理装置 | |
| KR20010032564A (ko) | 미분 전류 소모 분석을 방지하는 데이터 처리 장치 및작동 방법 | |
| JP3788881B2 (ja) | Icカードと半導体集積回路装置 | |
| JP2004129033A (ja) | データプロセッサ及びicカード | |
| Saputra et al. | Masking the energy behaviour of encryption algorithms | |
| GB2424089A (en) | Side channel attack prevention in data processing apparatus such as a smart card | |
| JP3910589B2 (ja) | 不規則な時間間隔で鍵を変更するデータ処理デバイス | |
| JP4381987B2 (ja) | 耐タンパー情報処理装置並びにそれを用いたicカード及びsimモジュール | |
| JP2002526840A (ja) | 差動電流消費分析を防止するためのデータ処理装置および作動方法 | |
| JP4664655B2 (ja) | 情報処理装置、および、そのアドレス制御方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040301 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040301 |
|
| A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20050315 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050315 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071010 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071207 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080109 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080305 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080326 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080515 |
|
| 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: 20080723 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080723 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
| S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110815 Year of fee payment: 3 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120815 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130815 Year of fee payment: 5 |
|
| S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
| LAPS | Cancellation because of no payment of annual fees |