JP2000259799A - Icカードと半導体集積回路装置 - Google Patents

Icカードと半導体集積回路装置

Info

Publication number
JP2000259799A
JP2000259799A JP11061561A JP6156199A JP2000259799A JP 2000259799 A JP2000259799 A JP 2000259799A JP 11061561 A JP11061561 A JP 11061561A JP 6156199 A JP6156199 A JP 6156199A JP 2000259799 A JP2000259799 A JP 2000259799A
Authority
JP
Japan
Prior art keywords
circuit
random number
data processing
card
timing
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.)
Granted
Application number
JP11061561A
Other languages
English (en)
Other versions
JP3827050B2 (ja
Inventor
Hiroshi Watase
弘 渡瀬
Nobutaka Nagasaki
信孝 長崎
Taku Tsukamoto
卓 塚元
Satoshi Taira
聡 平
雅聡 ▲高▼橋
Masaaki Takahashi
Kunihiko Nakada
邦彦 中田
Chiaki Terauchi
千晶 寺内
Masaru Oki
優 大木
Masahiro Kaminaga
正博 神永
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.)
Hitachi Ltd
Hitachi Solutions Technology Ltd
Original Assignee
Hitachi Ltd
Hitachi ULSI Systems Co Ltd
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 Hitachi Ltd, Hitachi ULSI Systems Co Ltd filed Critical Hitachi Ltd
Priority to JP06156199A priority Critical patent/JP3827050B2/ja
Publication of JP2000259799A publication Critical patent/JP2000259799A/ja
Application granted granted Critical
Publication of JP3827050B2 publication Critical patent/JP3827050B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 機密保護の強化を実現したICカードと半導
体集積回路装置を提供する。 【解決手段】 データ処理装置とかかるデータ処理装置
によるセキュリティ情報処理を含むデータ処理手順が書
き込まれたROMを含み、外部端子がリードライト装置
のような外部装置と電気的に接続されることによって動
作電圧が供給され、データ処理装置とかかるデータ処理
装置によるデータ処理手順が書き込まれたROMを含
み、上記データ処理手順に従うデータ処理動作が行われ
るICカード又は半導体集積回路装置において、上記デ
ータ処理手順のタイミングを変化させる手段を設けるこ
とより、毎回、暗号処理の手順やタイミングが変わり時
間軸でみた場合の消費電流波形が変化するため、電流波
形を上記のように時間軸上で比較するというデータ依存
性の解析を実質的に不可能にして機密保護を図る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、ICカードと半
導体集積回路装置に関し、特にICカード及びプログラ
ム内蔵の1チップマイクロコンピュータのような半導体
集積回路装置における機密保護技術に利用して有効な技
術に関するものである。
【0002】
【従来の技術】ICカードは、主に勝手に書き換えられ
ない情報の保持や秘密情報である暗号鍵を使ったデータ
の暗号化や暗号文の復号化を行うために使われる装置で
ある。ICカードは、電源を持っていないためリーダラ
イタに差し込まれると、電源の供給を受けて動作可能と
なる。このように動作可能になると、リーダライタから
コマンドを受け、かかるコマンドに従ってリーダライタ
との間でデータの転送を行う。ICカードに関しては、
オーム社出版電子情報通信学会編水沢順一著「ICカー
ド」などがある。
【0003】ICカードは、プログラムや重要な情報が
ICカード用チップの中に密閉されているため、重要な
情報を格納したり、カードの中で暗号処理を行うために
使われている。ICカードでの暗号処理の解読の難しさ
は、暗号アルゴリズムの解読の困難さと同じと考えられ
ていた。しかし、ICカードが暗号処理を行っている時
の消費電流を観測して解析することにより、容易に暗号
処理の内容や暗号鍵が推定されることの可能性が示唆さ
れている。このことについては、John Wiley &sons 社
W.Rankl & W. Effing著「 Smart Card Handbook 」 の8.
5.1.1 Passtveprotective mechantsms( 263ページ) に
このような危険性が記載されている。
【0004】
【発明が解決しようとする課題】ICカード用チップを
構成しているCMOS回路は、出力状態が1から0ある
いは0から1に変わった時に電流を消費する。特に、デ
ータバス203のバスは、大きな電気容量を持つため、
バスの値が1から0あるいは0から1に変わると、大き
な電流を消費する。そのため、消費電流を観測すれば、
ICカード用チップの中で何が動作しているか分かる可
能性を示唆している。
【0005】例えば、16ビットのプリチャージバスに
データを転送する場合を考える。プリチャージバスは、
データ転送の前にすべてのバスの値を“0”にそろえる
バスである。このバスに、値は違うが“1”のビットの
数が同じデータ、例えば、“1”のビットの数が2であ
る16進数で“88”と“11”、を転送した場合、電
流波形はほぼ同じ波形になると予測される。この理由
は、“0”から“1”へ変化したビットの数が同じであ
るため、同じように電流を消費し、同じ電流波形になる
からである。もし、“1”のビットの数が1つ異なるデ
ータ、例えば、“1”のビットの数が3である“89”
や“19”を転送した場合、“1”のビットの数が2の
データとは消費電流が異なる。これは、3ビット分バス
の値が“0”から“1”に変わったため、その分の電流
が消費される。そのため、先の2ビットが変化したデー
タに比べて消費電流が1ビット分大きくなる。一般に、
“1”のビットの数が多いほど電流波形は高くなるとい
う規則性がある。この規則性から転送されているデータ
を推定することができると思われる。
【0006】そこで、本願発明者等においては、上記I
Cカード及びICカード等に搭載される1チップマイク
ロコンピュータ等のような内蔵のプログラムにより一定
のデータ処理動作を行う半導体集積回路装置に対して上
記のような消費電流の観測による暗号処理の内容や暗号
鍵の解読をより確実に防止することができる機密保護技
術の開発に至った。
【0007】この発明の目的は、機密保護の強化を実現
したICカードと半導体集積回路装置を提供することに
ある。この発明の前記ならびにそのほかの目的と新規な
特徴は、本明細書の記述および添付図面から明らかにな
るであろう。
【0008】
【課題を解決するための手段】本願において開示される
発明のうち代表的なものの概要を簡単に説明すれば、下
記の通りである。すなわち、データ処理装置とかかるデ
ータ処理装置によるセキュリティ情報処理を含むデータ
処理手順が書き込まれたROMを含み、外部端子がリー
ドライト装置のような外部装置と電気的に接続されるこ
とによって動作電圧が供給され、データ処理装置とかか
るデータ処理装置によるデータ処理手順が書き込まれた
ROMを含み、上記データ処理手順に従うデータ処理動
作が行われるICカード又は半導体集積回路装置におい
て、上記データ処理手順に従う適当なデータ処理動作の
タイミングを変化させる手段を設ける。
【0009】
【発明の実施の形態】図1には、この発明が適用される
ICカードの一実施例の外観図が示されている。ICカ
ードは、プラスチックケースからなるカード101と、
かかるカード101の内部に搭載された点線で示された
ような1 チップのマイクロコンピュータ等からなるIC
カード用チップ102とを持つものである。上記ICカ
ードは、さらに上記ICカード用チップ102の外部端
子に接続されている複数の接点(電極)103を持つ。
複数の接点103は、後で図2によって説明するような
電源端子VCC、電源基準電位端子VSS、リセット入
力端子RESバー、クロック端子CLK、データ端子I
/O−1/IRQバー、I/O−2/IRQバーとされ
る。ICカードは、かかる接点103を通して図示しな
いリーダーライタのよをて外部結合装置から電源供給を
受け、また外部結合装置との間でのデータの通信を行
う。
【0010】図2には、この発明に係るICカードに搭
載されるICカード用チップ(半導体集積回路装置)の
一実施例の概略ブロック図が示されている。同図の各回
路ブロックは、公知のCMOS集積回路の製造技術によ
り、特に制限されないが、単結晶シリコンのような1個
の半導体基板上において形成される。
【0011】この発明に係るICカード用チップの構成
は、基本的にマイクロコンピュータと同じような構成で
ある。その構成は、クロック生成回路205、中央処理
装置(以下単にCPUという場合がある)201、RO
M(Read Only Memory)206やRAM(Random Access M
emory)207、EEPROM(Electrical Erasable Pro
grammable Read Only Memory)208などの記憶装置、
乱数発生回路(RNG)209、入出力ポート(I/O
ポート)202などと、本発明によって追加された偽電
流発生回路210からなる。
【0012】クロック生成回路205は、図示しないリ
ーダライタ(外部結合装置)から図1の接点103を介
して供給される外部クロックCLKを受け、かかる外部
クロック信号に同期したシステムクロック信号を形成
し、それをチップ内部に供給する回路である。CPU2
01は、論理演算や算術演算などを行う装置であり、記
憶装置206、207、208は、プログラムやデータ
を格納する装置である。I/O(入出力)ポート202
は、リーダライタと通信を行う装置である。データバス
204とアドレスバス203は、各装置を相互に接続す
るバスである。
【0013】上記記憶装置206,207,208のう
ち、ROM206は、記憶内容が不揮発的に固定されて
いるメモリであり、主にプログラムを格納するメモリで
ある。揮発性メモリ(以下、RAMという)207は自
由に記憶情報の書き換えができるメモリであるが、電源
の供給が中断されると、記憶している内容が消えてなく
なる。ICカードがリーダライタから抜かれると電源の
供給が中断されるため、RAM207の内容は、保持さ
れなくなる。
【0014】上記不揮発性メモリ(以下、EEPROM
という)208は、内容の書き換えが可能な不揮発性メ
モリであり、その中に一旦書き込まれた情報は、電源の
供給が停止されてもその内部に保持される。このEEP
ROMは、書き換える必要があり、かつICカードがリ
ーダライタから抜かれても保持すべきデータを格納する
ために使われる。例えば、ICカードがプリペイドカー
ドとして使用されるような場合、のプリペイドの度数な
どは、使用するたびに書き換えられる。この場合の度数
などは、リーダライタか抜かれてもICカード内で記憶
保持する必要があるため、EEPROM208で保持さ
れる。乱数発生回路路209は、暗号処理などで使用す
る乱数を発生する。
【0015】CPU201は、いわゆるマイクロプロセ
ッサと同様な構成にされる。すなわち、その詳細を図示
しないけれども、その内部に命令レジスタ、命令レジス
タに書込まれた命令をデコードし、各種のマイクロ命令
ないしは制御信号を形成するマイクロ命令ROM、演算
回路、汎用レジスタ(RG6等)、内部バスBUSに結
合するバスドライバ、バスレシーバなどの入出力回路を
持つ。CPU201は、ROM206などに格納されて
いる命令を読み出し、その命令に対応する動作を行う。
CPU201は、I/Oポート202を介して入力され
る外部データの取り込み、リードオンリメモリROMか
らの命令や命令実行のために必要となる固定データのよ
うなデータの読み出し、RAMやEEPROMに対する
データの書き込みと読み出し動作制御等を行う。
【0016】上記CPU201は、クロック生成回路2
05から発生されるシステムクロック信号を受けそのシ
ステムクロック信号によって決められる動作タイミン
グ、周期をもって動作される。CPU201は、その内
部の主要部が、CMOS回路、すなわちPチャンネル型
MOSFETとNチャンネル型MOSFETとからなる
回路から構成される。特に制限されないが、CPU20
1は、CMOSスタティックフリップフロップのような
スタティック動作可能なCMOSスタテック回路と、信
号出力ノードへの電荷のプリチャージと信号出力ノード
への信号出力とをシステムクロック信号に同期して行う
ようなCMOSダイナミック回路とを含む。
【0017】図3には、前記図2に示したICカード用
チップの等価回路図が示されている。電源電圧VCCと
回路の接地電位との間に流れる電流Iは、バスライン、
CPU、ROM、揮発性メモリ、不揮発性メモリ、RN
G及び偽電流発生回路の各回路ブロックに流れる電流I
BUS 、ICPU 、IMEM1、IMEM2、IRNG 、IDUM の総和
(IBUS +ICPU +IMEM1+IMEM2+IRNG +IDUM
である。上記RNGの電流IRNG と偽電流信号I
DUM は、同じ内部状態及び同じ動作でも毎回異なるもの
とされる。
【0018】前記の暗号アルゴリズムの解読は、上記I
Cカード内を流れる電流の総和の変化を統計的に解析す
ることを基本とすると推定される。そこで、この実施例
では、かかる解析を実質上不可能にさせるための1つの
技術として、かかる電流の変化に偽電流発生回路の電流
DUM を加える構成を採る。この場合、電流IDUM は、
上記各内部回路動作と無関係で、かつ不規則性の電流値
にされる。言い換えるならば、上記内部回路において同
じ状態及び同じ動作でも毎回異なるよう、統計的な観点
での非再現性を持つようにされる。
【0019】図4には、この発明を説明するための電流
波形図が示されている。信号電流I1は、前記データ処
理に伴って発生する電流の総和を表している。図3の例
においては、I1=IBUS +ICPU +IMEM1+IMEM2
RNG と表すことができる。これに対して、電流I2
は、偽電流であり、その電流値が変化(Variable)され
る。この変化の意味は、前記のように内部回路動作に無
関係で、不規則性を持つようにされる。つまり、前記の
ような非再現性を持つ電流波形を持つようにされる。
【0020】上記のような偽電流をICカードに内蔵し
た場合、あるいはICカード等に搭載される1チップの
マイクロコンピュータのような半導体集積回路装置に内
蔵させた場合、電源端子で観測される電流は、前記電流
I1+I2とされる。このため、上記回路電流I1+I
2には、上記偽電流I2が含まれるために、前記のよう
な統計的な手法による暗号処理の内容や暗号鍵の推定を
阻止することができるものである。
【0021】図5には、偽電流発生回路の一実施例の概
略構成図が示されている。この実施例では、発振回路の
出力信号をその発振周波数とは非同期のタイミングジェ
ネータ出力をクロックとしてレジスタに取り込むことに
より乱数を発生させる。上記レジスタは、シフトレジス
タであり、クロックのタイミングにおいて入力された発
振出力が入力部のロジックスレッショルド電圧よりも高
いか低いかにより2値信号に変換して2進情報からなる
乱数を発生させる。
【0022】上記乱数は、セレクタの入力データとされ
る。セレクタは、クロックにより乱数の各ビットに対応
されたスイッチをオン状態/オフ状態として、キャパシ
タC1〜C4にチャージアップ電流を流す。キャパシタ
C1ないしC4は、特に制限されないが、その容量値が
別々にされる。上記のように4つのキャパシタの容量値
を別々にすることにより、1つもチャージアップしない
組み合わせを含んで、チャージアップのみでは16通
り、チャージアップとディスチャージとを含むものでは
81通りもの電流値を作り出すことができる。このよう
な組み合わせが、乱数によって不規則的に発生できるた
めに、簡単な構成によって上記偽電流を発生させること
ができる。
【0023】上記セレクタは、クロックに同期して偽電
流を発生させるものである。CPU等はクロックに同期
して一連のデータ処理を行うものであるので、前記の各
回路ブロックに流れる電流IBUS 、ICPU 、IMEM1、I
MEM2、IRNG 等もクロックに同期して発生される。その
ため、偽電流IDUM をクロックに同期して発生させるこ
とにより、効率よくしかも効果的に前記統計的な手法に
よる電流変化の観測による暗号処理の内容や暗号鍵の推
定を実質的に不可能にすることができる。
【0024】図6には、偽電流発生回路の一実施例の具
体的回路図が示されている。この実施例では、クロック
ドインバータ回路を縦列接続し、初段回路には発振回路
出力を供給する。この発振回路出力とは非同期のタイミ
ングジェネレータ出力により、上記クロックドインバー
タ回路の動作を制御する。上記縦列接続のクロックドイ
ンバータ回路の各段の出力信号は、駆動回路を構成する
クロックドインバータ回路の入力に供給される。駆動回
路を構成する各クロックドインバータ回路は、前記のよ
うな偽電流によってチャージアップされる容量(キャパ
シタ)が設けられる。上記駆動回路を構成する各クロッ
クドインバータ回路は、上記タイミングジェネレータ出
力がインバータ回路によって反転されて供給される。
【0025】上記縦列接続のインバータ回路は、特に制
限されないが、その駆動能力が別々に設定される。これ
により、発振回路出力を入力とする縦列接続の各インバ
ータ回路は、上記タイミングジェネレータ出力が一方の
レベル(例えばハイレベル)のときに動作状態にされ
て、それに供給される信号がそれぞれの遅延時間に対応
した遅延時間により伝達される。そして、上記タイミン
グジェネレータ出力が他方のレベル(例えばロウレベ
ル)のときに、出力ハイインピーダンス状態にされる。
したがって、上記タイミングジェネレータ出力が他方の
レベル(例えばロウレベル)に変化したときの各段の出
力信号が上記駆動回路の入力信号として保持される。
【0026】上記タイミングジェネレータ出力が一方の
レベルにあるとき、駆動回路を構成する各インバータ回
路は出力がハイインピーダンス状態にされる。したがっ
て、各容量はそれ以前の電荷の状態が保持されている。
上記タイミングジェネレータ出力が他方のレベルに変化
すると、上記のように各段の出力信号が上記駆動回路の
入力信号として保持されており、駆動回路の動作状態に
よって、入力信号のレベルが上記駆動回路のロジックス
レッショルド電圧に対して高いときにはロウレベルの出
力信号を形成し、低いときにはハイレベルの出力信号を
形成する。
【0027】上記入力信号のレベルが上記駆動回路のロ
ジックスレッショルド電圧に対して高いときにはロウレ
ベルの出力信号を形成するが、そのときの容量に電荷が
蓄積されていたならディスチャージされ、容量に電荷が
存在しないなら電流が流れない。逆に、上記入力信号の
レベルが上記駆動回路のロジックスレッショルド電圧に
対して低いときにはハイレベルの出力信号を形成する
が、そのときの容量に電荷が蓄積されていたならその差
分に対応したチャージアップ電流が流れ、電荷が存在し
ないなら電源電圧VCCまでのチャージアップ電流が流
れる。このように、縦列接続のクロックドインバータ回
路の遅延時間が異なることによる各段の信号レベルが一
種の乱数であることに加えて、その以前の容量に保持さ
れた電荷の状態により、前記のようにチャージアップ電
流又はディスチャージ電流が異なるようにされる。つま
り、上記容量に保持されていた電荷そのものが乱数とし
ての要素を持つ。
【0028】したがって、発振出力とそれをサンプリン
グするタイミングジェネレータ出力とが非同期であるこ
とによる直列接続のインバータ回路の各段での信号レベ
ルと、それ以前に容量に保持されていた電荷量との組み
合わせにより電流値としてみた場合に膨大な組み合わせ
の偽電流を形成することでき、同一状態と条件で何回か
の1チップマイクロコンピータをアクセスしても、不規
則性あるいは再現性の無い偽電流を発生させることがで
きる。この場合、電源電圧VCC側から供給される電流
と、接地電位に流れる電流とが上記容量の蓄積電荷の有
無に対応して異なるものとされるから、電流解析をいっ
そう複雑にすることができる。そして、上記クロックに
同期して偽電流を発生させているので、電流解析による
暗号鍵の解読等を前記同様に効果的に阻止することがで
きる。
【0029】図7には、偽電流発生回路の他の一実施例
の概略構成図が示されている。この実施例では、発振回
路の出力信号をカウンタで計数し、その計数出力を発振
周波数とは非同期のタイミングジェネレータ出力でサン
プリングし、レジスタにデータとして転送させる。レジ
スタの各段には、前記と同様な容量C1〜C6等を接続
する。この構成でも、上記カウンタの計数出力のサンプ
リングによって乱数を発生させるとともに、上記各容量
C1〜C6が保持している電荷の状態と上記乱数に対応
したハイレベル出力とロウレベル出力との組み合わせに
よって、前記同様に膨大な組み合わせからなる偽電流を
クロックに同期して発生させることができる。
【0030】図8には、図2に示した乱数発生回路RN
Gモジュールにおけるインターフェイス部の一実施例の
ブロック図が示されている。1チップマイクロコンピュ
ータを構成するデータバスには、乱数生成ビットを保持
するフリップフロップ(フラグ)が設けられる。また、
乱数発生回路で形成された乱数は、乱数格納レジスタに
保持され、上記データバスからの読み出しが可能にされ
る。また、乱数生成回路の動作状態は、フリップフロッ
プに設定され、それを上記データバスから読み出すけこ
とができるようにされる。
【0031】上記RNGモジュールで生成された乱数
を、上記乱数格納レジスタを介してCPUが受け取り、
前記のような暗号信号処理に用いる。CPUは、乱数生
成ビットをセットすることにより、乱数生成回路を動作
状態にしたり停止状態にさせるとができる。このような
乱数生成回路の動作状態は、CPUによるステータスビ
ットの読み出しにより判定することができるようにされ
る。
【0032】図9には、CPUによる乱数入手動作を説
明するための一実施例のフローチャート図が示されてい
る。ステップ(1)では、「乱数生成ビット」をセット
する。このような「乱数生成ビット」のセット(例えば
論理1)により、乱数生成回路が動作を開始する。
【0033】ステップ(2)では、「ステータスビッ
ト」が乱数生成完了状態かいなかを判定する。つまり、
乱数生成回路は、乱数を生成して乱数格納レジスタに格
納すると、上記「ステータスビット」をセットする。も
しも、「ステータスビット」がセットされない場合(例
えば論理0)なら、ステップ(2)の判定に戻り、上記
「ステータスビット」がセット(例えば論理1)にされ
るまで待つ。
【0034】ステップ(3)では、乱数格納レジスタに
有効な乱数が格納されているので、CPUは乱数格納レ
ジスタを指定してそれを読み出す。
【0035】ステップ(4)では、「ステータスビッ
ト」を「乱数生成中」に状態遷移とする。つまり、前記
のように「ステータスビット」を論理0にリセットさせ
る。
【0036】ステップ(5)では、上記乱数格納レジス
タから読み出した乱数が希望するデータ長であるか判定
し、もしも希望するデータ長では無い場合には、前記ス
テップ(2)に戻り、上記動作を繰り返す。上記乱数格
納レジスタから読み出した乱数が希望するデータ長であ
るときには、ステップ(6)に移行して上記「乱数生成
ビット」をリセットして乱数生成動作を終了させる。
【0037】図10には、乱数発生回路RNGモジュー
ルの一実施例の全体構成図が示されている。発振回路1
の出力は、入力データとしてシフトレジスタ805に入
力される。このシフトレジスタ805のシフトクロック
は、上記発振回路1とは別の発振回路2の発振出力を計
数するカウンタ1で形成される。つまり、シフトレジス
タ805のシフトクロックは、発振回路2の発振信号を
カウンタ1により分周することにより形成される。
【0038】上記シフトレジスタ805の各段から出力
される複数ビットの信号は、発振回路出力調整回路を通
して補正され、乱数格納レジスタ(シフトレジスタ)8
08の入力データとして出力される。この乱数格納レジ
スタ808のシフト動作に用いられるレジスタ用クロッ
ク812は、前記カウンタ1の計数出力を受けるカウン
タ2により更に分周されて形成される。このカウンタ2
の出力信号は、カウンタ3に供給されて前記ステータス
ビット用生成信号813が形成され、ステータスビット
810がフリップフロップ等に格納される。
【0039】乱数生成ビットが格納されるフリップフロ
ップの出力信号は、制御信号として上記発振回路1、2
及びカウンタ1、2、3に動作制御信号として供給され
る。この制御信号が例えばハイレベルのような活性レベ
ルにされると、上記発振回路1、2及びカウンタ1、
2、3が動作状態にされて発振動作及び計数動作が有効
とされる。上記制御信号が例えばロウレベルのような非
活性レベルにされると、上記発振回路1、2及びカウン
タ1、2、3は非動作状態、つまり発振回路1と2は発
振動作を停止し、カウンタ1、2、3は計数動作を停止
する。
【0040】上記発振回路1と2は、互いに発振周波数
が異なりようにされ、かつ、後述するように発振周波数
が意図的に変動するようにされる。更に、シフトレジス
タ805のシフトクロックに対して乱数格納レジスタ8
08のシフトクロックはカウンタ2により分周されたも
のを用いるようにして、乱数生成動作毎に乱数格納レジ
スタに格納されるビットパターンが不規則性を持つよう
にされる。
【0041】図11には、図10の発振回路1、2の一
実施例のブロック図が示されている。この実施例では、
PLL(フェーズ・ロックド・ループ)回路により発振
回路が構成される。本来PLL回路は、所定の基準周波
数に位相ロックするよう安定した周波数信号を形成する
ために用いられるものである。これに対して、この実施
例では、PLL回路の位相制御動作により発振出力を不
安定にするするように用いる。
【0042】基準信号は、比較用発振回路で形成され
る。この発振回路は、水晶発振回路のような高安定の発
振回路ではなく、リングオシレータ等のような非安定の
発振回路が用いられる。この比較用発振回路の発振信号
と、電圧制御発振回路の発振出力が分周された分周出力
とを位相比較器で比較し、その位相差(周波数差)に対
応した検出信号UP又はDOWNをローパスフィルタに
供給して制御電圧を形成し、上記電圧制御発振回路の発
振周波数を制御する。これにより、電圧制御型発振回路
の発振周波数を上記比較用発振回路の発振周波数に対し
て、上記分周回路の分周比の対応した逓倍した周波数で
発振させる。
【0043】この実施例では、上記位相検出信号UP又
はDOWNを平滑するローパスフィルタに設けられる容
量に対し、それぞれ容量を介して比較用発振出力、電圧
制御型発振回路の分周出力及び発振回路の出力を伝え
て、制御電圧を変動させる。これらの回路及び容量は、
単数及び複数用いることが可能である。上記比較用発振
出力、電圧制御型発振回路の分周出力とはPLLにより
同期化されるように制御されるが、その周波数が異なる
ために制御電圧にゆらぎを与えることができる。これに
対して、これらとは非同期で不安定発振回路で形成され
た発振出力を加えることにより、電圧制御型発振回路の
供給される制御電圧は、不規則に変化して電圧制御型発
振回路を制御する。
【0044】つまり、PLL回路が本来の帰還ループで
形成された制御電圧の他、これらとは非同期で、かつ不
安定発振回路で形成された発振信号によるノイズ成分が
加算されることになるために、極めて複雑な発振制御動
作を行うこととなって、周波数が時間の経過とともに変
動し、しかも一定の規則性を持たない発振回路出力を形
成することができる。これにより、乱数発生回路に適し
たランダム周波数変動発振回路を構成することができ
る。
【0045】図12には、上記図11に設けられる不安
定発振回路の一実施例の回路図が示されている。この発
振回路は、基本的にはリングオシレータにより構成され
る。つまり、CMOSインバータ回路の出力に抵抗と容
量(キャパシタ)とからなる信号遅延要素を奇数個、同
図では5個をリング状態に接続して発振回路を構成す
る。この実施例では、このようなリングオレータは、そ
れぞれの回路素子の特性が温度依存性や電源依存性を持
つものであるので、非安定の発振動作を行うものと見做
すことができる。
【0046】この実施例では、上記のような素子特性の
温度依存性や電源依存性による比較的小さな変動に加え
て、上記遅延手段としての抵抗をスイッチを介して選択
的に並列接続される抵抗を設けることによって可変抵抗
回路を構成する。上記スイッチを前記のような比較用発
振回路の出力、及び分周回路の出力と、自身の発振出力
によりスイッチ制御することにより、上記遅延要素を可
変にするものである。つまり、スイッチとしてのMOS
FETがオン状態のときには、抵抗値が小さくされて遅
延時間が短くなって発振周波数を高くするように作用
し、スイッチとしてのMOSFETがオフ状態のときに
は、抵抗値が大きくなって遅延時間が長くなって発振周
波数を低くするように作用する。
【0047】上記のように3つの可変遅延回路のそれぞ
れの遅延時間が、非同期でしかもそれぞれの遅延時間の
変化量が異なるようにすることにより、発振回路の発振
出力の比較的大きな変動幅を持って複雑に変動するもの
となる。このような発振回路を前記図10の発振回路1
及び2、あるいは発振回路1又は2のいずれか一方に適
用することにより、不規則性を持った乱数を発生させる
ことができる。
【0048】図13には、上記図11に設けられる不安
定発振回路の他の一実施例の回路図が示されている。こ
の発振回路は、基本的にはリングオシレータにより構成
される。つまり、CMOSインバータ回路の出力に抵抗
と容量(キャパシタ)とからなる信号遅延要素を奇数
個、同図では5個をリング状態に接続して発振回路を構
成する。そして、そのうちの1つの遅延手段としての抵
抗をスイッチを介して選択的に並列接続される抵抗を設
けることによって可変抵抗回路を構成する。上記スイッ
チを前記のような自身の発振出力によりスイッチ制御す
ることにより、不安定な発振動作を行わせることができ
る。同図の発振回路は、それ自身の発振出力を利用して
不安定な発振出力を得るものであるので、前記図10の
実施例における比較用発振回路として用いるようにする
ものであってもよい。
【0049】図14には、図10の発振回路1、2の他
の一実施例のブロック図が示されている。この実施例で
も、PLL(フェーズ・ロックド・ループ)回路により
発振回路が構成される。この実施例では、PLL回路の
ローパスフィフルタの時定数を極端に小さくすることに
より、位相比較出力UPとDOWNに対応して大きく変
化する制御電圧を形成する。これにより、電圧制御型発
振回路が発振周波数が大きく変化して出力信号の周波数
に大きな揺らぎを発生させることができる。
【0050】図15には、図10の出力調整回路の一実
施例の構成図が示されている。図10のレジスタ805
においては、シフトレジスタの素子プロセスのバラツキ
によって論理しきい値電圧がハイレベル側又はロウレベ
ル側にシフトしてしまう結果、前記のように発振回路1
の発振出力と、それと非同期の発振回路2の発振出力に
基づいて形成されたクロックを用いたとしても、特定の
ビットパターンの発生頻度が高くなってしまう場合が考
えられる。
【0051】発振回路出力調整回路は、かかる特定のビ
ットパターンが発生した場合の調整を行うよう作用す
る。この実施例では、多入力EOR(排他的論理和)回
路が用いられる。多入力EOR回路は、複数ビットから
なる入力信号のうち、論理1の数が奇数個ならば論理1
に、それ以外なら論理0のような出力信号を形成する。
これにより、特定のビットパターンの頻度が高くなって
も、上記のような論理処理によって、不規則データに変
換することができる。
【0052】出力調整回路は、上記のような多入力EO
Rの他に、全ビット0又は全ビット1のような単純なビ
ットパターンを検出して、それを変更するようにするも
のであれば何であっても良い。例えば、生成されたビッ
トパターンに1つ前に発生されたビットパターンを加算
又は減算させたり、その加算又は減算に当たり、桁をシ
フトさせたり、反転させたりすることにより、複雑なビ
ットパターンの発生を行うようにするものであってもよ
い。
【0053】図16には、この発明に係る乱数発生回路
の他の一実施例のブロック図が示されている。この実施
例では、互いに非同期で発振動作を行う2つの発振回路
2701と2702を用い、一方の発振回路2701の
発振出力を2値変換動作を行うフリップフロップ270
3の入力端子INに供給する。他方の発振回路2702
で形成された発振出力は、分周回路2705、2706
及び2707によりそれぞれ順次に分周して、3通りの
分周信号が形成される。上記発振出力と、上記各分周出
力と合わせて4通りのクロックを形成し、セレクタ27
08を介して1つの選択して上記フリップフロップ27
03のクロック端子CKに供給する。
【0054】フリップフロップ2703は、上記クロッ
ク端子CKに供給されたクロックの立ち上がりエッジ又
は立ち下がりエッジにより、入力端子INに入力された
発振出力をハイレベル/ロウレベルを判定して、出力端
子OUTから論理1又は論理0の2値信号を出力させ、
それを乱数格納レジスタに格納させる。クロック端子C
Kに供給されるクロックの周期が上記のように変化する
ために、乱数生成速度の変更が可能になる。このような
乱数速度の変更は、主として前記暗号用演算回路に設け
られた機能であり、ユーザーが上記乱数速度を指定でき
るようにするものであるが、このような乱数発生回路を
流用する場合、前記統計的な手法による電流変化の観測
を実質的に無効にして暗号処理の内容や暗号鍵の推定を
不能にするためにも有益である。
【0055】特に制限されないが、上記セレクタ270
8を乱数格納レジスタ2704に格納された1つ前の乱
数を用いて、いずれか1を選択するようにする。これに
より、上記発振回路2701と2702とを単純に非同
期で発振させる場合に比べて、フリップフロップ270
3で発生させるビットパターンを種々に設定することが
でき、再現性の無い乱数を発生させるようにしてもよ
い。
【0056】図17には、この発明に係る乱数発生回路
の他の一実施例のブロック図が示されている。この実施
例では、図16に示したような分周回路とセレクタに代
えて、カウンタ2745と設定レジスタ2746及びカ
ウンタ/設定レジスタの比較器2747を用いて、フリ
ップフロップ2743のクロック端子CKに入力される
クロックの周波数(周期)を変化させるものである。比
較器2747は、設定レジスタ2746に設定された設
定値とカウンタ2845の計数値を比較し、両者が一致
したならクロックパルスを発生させる。つまり、設定レ
ジスタ2746に設定された設定値に対応して、発振回
路2742の発振出力を分周させたパルスを形成するこ
とができる。
【0057】この場合でも、設定レジスタ2746に供
給される設定値を単純に乱数を発生させる速度制御に用
いるものの他、前記のように乱数格納レジスタに発生さ
れた1つ前の乱数を設定することにより、乱数発生速度
そのものをランダムにすることもできる。
【0058】図18には、この発明に係る半導体集積回
路装置の一実施例の要部ブロック図が示されている。こ
の実施例では、偽電流生成部2805には互いに異なる
2つの周波数信号を用いて、シフトレジスタ等により乱
数を発生する乱数発生回路が含まれ、かつ、かかる乱数
に従って前記のような不規則性の電流、あるいは何回か
の同じ状態及び条件での信号処理動作に対して再現性の
無い電流を発生させる偽電流発生回路が設けられる。
【0059】この実施例では、上記2つの周波数信号の
うち、データとしての周波数信号を形成する発振回路2
804は、発振回路制御回路によりその発振状態と発振
停止状態とに制御される。CPU2801は、バスライ
ン2802を介して発振回路制御回路2806に発振状
態か発振停止状態かのコマンドを入力する。CPU28
01が発振状態を指示するコマンドを発振回路制御回路
に入力した場合、発振回路制御回路2806は、上記コ
マンドに対応して発振回路2804を発振状態にする。
発振回路2804が発振状態にされると、前記のような
乱数が生成されて半導体集積回路装置の電源端子には前
記のような乱数に従った偽電流が含まれるようになる。
【0060】上記CPU2801が発振停止状態を指示
するコマンドを発振回路制御回路に入力した場合、発振
回路制御回路2806は、上記コマンドに対応して発振
回路2804を発振停止状態にする。発振回路2804
が発振停止状態にされると、前記のような乱数の発生が
停止される。これにより、半導体集積回路装置の電源端
子には前記のような偽電流が除去される。あるいは、一
定の乱数に従った一定の電流が流れるだけとなり、実質
的に偽電流が除去されたと等価になる。上記CPUは、
そのソフトウェアの中に上記発振回路2804の動作状
態と停止状態とに適宜に切り替える。したがって、多数
回にわたるマイクロコンピュータの動作を統計的に解析
する場合においては、上記偽電流を生成しない場合も上
記偽電流が生成された場合とのが組み合わされることに
よって、相対的にみると偽電流を生成したと等価となる
ものである。
【0061】図19には、この発明に係る半導体集積回
路装置の他の一実施例の要部ブロック図が示されてい
る。この実施例では、前記同様に発振回路制御回路がC
PUからのコマンドによって、乱数生成器内部発振回路
の動作状態と停止状態とが指示される。乱数生成器内部
発振回路は、それが動作状態にされると発振信号を乱数
生成レジスタに供給して偽信号ジェネレータ制御回路の
動作時間を指示する乱数を発生させる。
【0062】上記偽電流生成部では、上記乱数生成器内
部発振回路で形成された周波数信号と、タイミングジェ
ネレータからのクロック信号により発生された乱数によ
り電流値が指定される偽電流を生成する。この偽電流の
発生時間は、上記乱数生成レジスタで指定されるもので
あるので、乱数に対応した偽電流が含まれる時間と、そ
れが含まれない時間割合が時間の経過とともに変化する
ものとなる。したがって、多数回にわたるマイクロコン
ピュータの動作を統計的に解析する場合において、上記
偽電流を生成しない場合も上記偽電流が生成された場合
との時間割合が複雑に組み合わされることによって、相
対的にみると偽電流を変化幅をいっそう広くできるもの
となる。
【0063】図20には、この発明に係る半導体集積回
路装置の他の一実施例の要部ブロック図が示されてい
る。一般に1チップマイクロコンピュータには、スリー
プ(SLEEP)モードが設けられる。このスリープモ
ードでは、内部回路の動作が停止状態にされて、前記の
ようなマイクロコンピュータの動作の統計的な解析が行
われることはない。このようなスリープモードSLEE
Pあるいは低消費電力モードでは、偽電流生成部の動作
を停止状態にして、低消費電力化を図るようにするもの
である。つまり、SLEEP信号がハイレベルのスリー
プモードになると、発振回路と偽電流生成部の動作を停
止させて消費電流を削減する。
【0064】図21には、この発明に係る半導体集積回
路装置の更に他の一実施例の要部ブロック図が示されて
いる。この実施例では、プログラムでのデータ参照領域
の判定回路が付加される。図21では、上記データ参照
領域の例として、記憶装置1、記憶装置2及びレジスタ
1とレジスタ2の4通りが用意されている。記憶装置1
と2は、例えばROM、RAM、EEPROM等の各記
憶エリアのことであり、レジスタ1と2は、例えばI/
Oポートや特定のレジスタのことである。
【0065】上記各データ参照エリアに一対一に対応し
て、偽電流生成部が設けられる。つまり、記憶装置1用
タイミングジェネレータ3206に対しては、偽電流生
成部3207が設けられ、記憶装置2用タイミングジェ
ネレータ3208に対しては、偽電流生成部3209が
設けられ、レジスタ1用タイミングジェネレータ321
0に対しては、偽電流生成部3211が設けられ、レジ
スタ2用タイミングジェネレータ3212に対しては、
偽電流生成部3213が設けられる。
【0066】領域判定回路3204は、CPU3201
が出力するアドレス情報等をバスライン3203を介し
て取り込む。割り込み制御回路3202は、割り込み動
作によって動作領域判定回路3204の動作を有効/無
効とする。動作領域判定回路が有効とされたなら、バス
ライン上のアドレスを監視して、記憶装置1、2又はレ
ジスタ1、2のいずれかに該当するアドレスが指定され
なら、それぞれに対応した偽電流生成回部を動作させ
る。
【0067】例えば、記憶装置1がRAMで、記憶装置
2がEEPROMに割り当てられ、レジスタ1がI/O
ポート1に、レジスタ2がI/Oポートに割り当てられ
た場合、CPU3201がRAMをアクセスしていると
きには、記憶装置1用タイミングジェネータ3206で
形成されたクロックと、発振回路3205で形成された
発振出力をとを用いて乱数を発生させて、偽電流生成部
3207により偽電流を発生させる。CPU3201が
EEPROMをアクセスしているときには、記憶装置2
用タイミングジェネータ3208で形成されたクロック
と、上記発振回路3205で形成された発振出力とを用
いて乱数を発生させて、偽電流生成部3209により偽
電流を発生させる。
【0068】同様にCPU3201がI/Oポート1を
用いてデータの入出力を行うときには、レジスタ1用タ
イミングジェネータ3210で形成されたクロックと、
発振回路3205で形成された発振出力とを用いて乱数
を発生させて、偽電流生成部3211により偽電流を発
生させる。CPU3201がI/Oポート2を用いてデ
ータの入出力を行うときには、レジスタ2用タイミング
ジェネータ3212で形成されたクロックと、発振回路
3205で形成された発振出力をとを用いて乱数を発生
させて、偽電流生成部3213により偽電流を発生させ
る。
【0069】以上のように、CPU3201がアクセス
しているアドレス空間毎に偽電流生成部そのものが切り
替えられるので、偽電流生成部そのものが前記のように
不規則電流を形成していることに加え、偽電流生成部そ
のものも切り替えることによって、不規則電流の組み合
わせをいっそう複雑にすることができる。
【0070】図22には、この発明に係る半導体集積回
路装置の更に他の一実施例の要部ブロック図が示されて
いる。この実施例では、CPUが発生するアドレス及び
CPUが授受するデータを前記乱数の代わりに利用す
る。つまり、CPUが形成するアドレスに対応して偽電
流値が異なるようにされる。偽電流ジェネレータ制御回
路は、CPU等からのコマンドによって前記のように動
作が有効/無効にされる。偽電流ジェネレータ入力生成
回路は、偽電流ジェネレータ制御回路から動作が有効に
されると、バスライン上のアドレス信号を取り込む、そ
れを乱数と見做してタイミングジェネータのクロックに
同期して偽電流を形成する。このとき、同じアドレスで
も、タイミングジェネレータでのタイミングとの関係で
電流波形として見た場合には、異なる偽電流と同等の効
果を発揮させることができる。
【0071】ICカード用チップ等のような1チップマ
イクロコンピュータにおいては、外部のクロックに同期
して、ある決まった一定のタイミングでプログラムを実
行する。また、通常のプログラムを実行する場合、毎
回、命令の実行サイクル数は固定しており、その結果電
流波形も固定している。
【0072】前記の統計的な電流解析による暗号処理の
内容や暗号鍵を推定する手法は、上記のような1チップ
マイクロコンピュータの動作の特徴を利用するものであ
る。つまり、ICカードへの入力データを変化させて、
毎回、同じ動作をさせた場合、特定のタイミングではい
つも同じ命令を実行している。したがって、入力データ
に依存した消費電流波形の特徴がある場合、その電流波
形を同じ時間軸上で比較することによって、その特徴を
検出することが比較的簡単にできると考えられる。さら
に、暗号鍵などのセキュリティ情報や暗号処理のアルゴ
リズム上のデータに対する消費電流波形の依存性がある
場合、このデータ依存性を統計処理によって累積させる
ことにより顕在化させ、セキュリティ情報を不正入手さ
れてしまうことになる。
【0073】本願発明者においては、機密保護の強化を
実現したICカードと半導体集積回路装置の実現のため
に、前記のような偽電流を発生させることに代え、ある
いはそれと共にランダムな信号を発生する装置を利用し
て、暗号処理の手順あるいはタイミングを変更すること
を考えた。このようにすることにより、毎回、暗号処理
の手順やタイミングが変わるので、時間軸でみた場合の
消費電流波形が変化する。特定の暗号処理を行うタイミ
ングが変化することになり、電流波形を上記のように時
間軸上で比較することによってデータ依存性の解析を困
難に、言い換えると実質的に不可能にすることができ
る。
【0074】図23には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の一実施例の概略ブロック図が示されている。同図の各
回路ブロックは、前記図2と同様に公知の半導体集積回
路の製造技術により、特に制限されないが、単結晶シリ
コンのような1個の半導体基板上において形成される。
【0075】この発明に係るICカード用チップ401
の構成は、前記同様に中央処理装置(CPU)413、
ROM(Read Only Memory)410やRAM(Random Acce
ss Memory)411、EEPROM(Electrical Erasable
Programmable Read Only Memory)412などの記憶装
置、入出力ポート(I/Oポート)414などと、本発
明によって追加された乱数発生器402及びタイミング
生成回路406からなる。
【0076】前記図2のように、タイミング生成回路4
06には、図示しないが外部端子から供給されるクロッ
ク信号を受け、CPU413等の内部回路の動作に必要
なクロック信号を形成するクロック生成回路が含まれ
る。また、前記暗号用演算回路(RNGモジュール)を
搭載した場合、それに必要な乱数を上記乱数発生器40
2で形成したものを併用するものであってもよい。例え
ば、乱数発生器402は、前記図6〜図14等のうち乱
数生成に関連する部分のものを用いることができる。
【0077】この実施例では、乱数発生器402は、乱
数つまりランダムな信号を発生させる。タイミング生成
回路406は、大まかに説明すると上記発生された乱数
によりインターバルを可変にするタイマを構成して、C
PUの割り込み処理をランダムに挿入することによって
タイミングを変更する。インターバル生成回路403
は、上記乱数を受け取り保持している。アンダーフロー
判定回路405は、カウンタ407の出力が零のときに
はセレクタ408をインターバル生成回路403側に接
続し、上記乱数がカウンタ407の初期値としてセット
(ロード)する。カウンタ407に上記乱数に対応した
初期値がセットされると、アンダーフロー判定回路40
5がそれを検出してセレクタ408をデクリメンタ40
4側に切り替える。これにより、カウンタ出力がデクリ
メンタ404に入力されて、−1の演算動作が行われ
て、上記セレクタ408を通してカウンタ407に入力
されることにより、−1ずつのダウンカウント動作が行
われる。
【0078】アンダーフロー判定回路405は、上記ダ
ウンカウント動作によってカウンタ407の出力が零に
なったことを検出すると、CPU413に対して割り込
み要求信号409を発生させるとともに、セレクタ40
8を切り替えてカウンタ407にインターバル生成回路
403に入力された乱数を初期値としてリロードする。
このリロードされた初期値によりカウンタ407の出力
が零でなくなるため、アンダーフロー判定回路405は
セレクタ408をデクリメンタ404に切り替えて再び
前記のようなダウンカウント動作を行う。
【0079】以上のような動作の繰り返しにより、CP
U413には、タイミング生成回路406からランダム
なタイミングでの割り込み要求409が入力されて、そ
の都度本来のデータ処理が中断されて、上記割り込み要
求に対応した別のデータ処理が行われる。この割り込み
によるデータ処理は、前記のように電流波形を上記のよ
うに時間軸上で変化させることを目的とするので、本来
のデータ処理動作には悪影響を与えない適当なデータ処
理、例えばRAM411、EEPROM等の読み出し動
作等が行われる。
【0080】図24には、この発明に係るICカード用
チップの動作の一例を説明するためのタイミング図が示
されている。乱数発生器で形成された乱数501(乱数
A)が初期値502としてカウンタにロードされて、前
記のようにダウンカウント動作が行われてカウント値が
−1ずつの計数動作に対応して小さくなる。同図には、
このようなダウン計数動作によるカウント値504の変
化を右下がりの直線により表している。
【0081】上記のようなダウン計数動作中では、IC
カード用チップでは、暗号処理507等の本来のデータ
処理を行っている。上記カウント値504が零になる
と、割り込み要求505が発生されるので、上記暗号処
理507が中断されて、それに代わって割り込み処理5
08が実行される。この割り込み要求と同時に乱数発生
器では乱数501が上記とは異なる乱数Bを形成してお
り、初期値503としてカウンタにロードされて、前記
のようにダウンカウント動作が行われる。上記一定の割
り込み動作が終了すると、上記中断された暗号処理50
7が再び実行される。そして、上記カウント値504が
零になると、再び割り込み要求が発生される。
【0082】上記のような割り込み要求がなされるイン
ターバル506が、前記乱数発生器で形成された乱数5
01によってランダムに、言い換えるならば、不規則あ
るいは再現性が無いように変化するものとなる。このよ
うにICカード用チップの本来のデータ処理とは無関係
な割り込み処理がランダムに挿入されることによって、
毎回、暗号処理の手順やタイミングが変わり時間軸でみ
た場合の消費電流波形が変化することになる。これによ
り、特定の暗号処理を行うタイミングが変化することに
なり、電流波形を上記のように時間軸上で比較すること
によってデータ依存性の解析を実質的に不可能にするこ
とができる。
【0083】図25には、この発明に係るICカード用
チップの動作の一例を説明するための波形図が示されて
いる。同図(A)には、この発明の理解を容易にするた
めに、通常のICカード用チップでの動作波形が比較の
ために示され、同図(B)に、この発明に係るICカー
ド用チップの波形図が示さている。
【0084】同図(A)では、1回目(1st tracing)
と2回目の電源電流I1とI2は、バスBusに対して
同じ信号が伝えられて、同じ回路が動作するので同様な
波形(I1=I2)になるものである。このようにある
決まった一定のタイミングでプログラムを実行し、毎
回、命令の実行サイクル数は固定しており、その結果電
流波形も上記のように同一になるものである。
【0085】同図(B)に示すように、ランダムな割り
込み処理が挿入された場合には、1回目と2回目とで仮
に同じ、暗号処理等を行った場合でも、その都度割り込
みによるダミールーチン(dummy routine)が実行される
タイミングが異なり、それに対応して1回目の電流I1
と2回目の電流I2とでは、その電流波形が異なる(I
1≠I2)ものとなってしまう。この結果、本願発明に
係るICカード等では暗号鍵などのセキュリティ情報や
暗号処理のアルゴリズム上のデータに対する消費電流波
形に格別な依存性など存在しなくなり、前記のように電
流波形の解析による暗号鍵の解読等を徒労にしてしまう
ことができる。
【0086】図26には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の他の一実施例の概略ブロック図が示されている。この
実施例では、乱数発生器402に代えて乱数設定レジス
タ415が設けられる。乱数設定レジスタ415には、
CPU413による乱数発生プログラムにより発生され
た乱数がロードされる。CPU413は、特に制限され
ないが、割り込み要求に対応してROM410に内蔵さ
れた乱数発生プログラムを実行して、掛け算や加算等の
乱数発生処理を行って生成された乱数を乱数設定レジス
タ415にロードする処理を行う。
【0087】タイミング生成回路406において、イン
ターバル生成回路403に上記生成された乱数をロード
させることにより、前記同様にランダムなインターバル
での割り込み要求が発生され、その都度上記プログラム
によって乱数を形成し、本来のデータ処理に戻るように
するものである。このため、ICカードをリーダライタ
に接続した場合、それを受けてCPU413はまず乱数
生成プログラムを実行するようにすればよい。この構成
では、ソフトウェア的に乱数を発生させるので、回路の
簡素化を図ることができる。
【0088】図27には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の他の一実施例の概略ブロック図が示されている。この
実施例では、乱数発生器402に代えて発振器416が
設けられる。この発振器416は、素子の温度変化や電
源電圧の変化に対応して素子特性が変化することを利用
したリングオシレータや、自己の発振信号により時定数
が変化させられる前記図12や図13のようなリングオ
シレータあるいは図11、図14のようにPLL回路を
利用して不安定な発振動作を行うようにした発振回路を
用いるとよい。
【0089】この実施例では、上記の発振器416の発
振周波数の変動に対応してカウンタのクロック周期が変
化し、同じ計数値でもアンダーフロー判定回路405が
オールゼロを判定する周期(インターバル)が異なるよ
うになって、前記同様にランダムな割り込み要求が行わ
れるようになる。
【0090】この実施例では、監視用レジスタ417が
付加されている。これにより、ランダムなタイミング挿
入が正常に機能しているかどうかをCPU413のプロ
グラムから監視できる。割り込み要求409によって、
監視用レジスタ417の中のフリップフロップF/Fが
セットされる。監視用レジスタ417は、データバスを
介してCPU413からリードすることができる。以上
に説明した監視手段は、ICカード用チップ(1チップ
マイクロコンピュータ)に対する物理的な破壊を用いた
不正情報入手に対抗するプログラムを作成するのが容易
になるという点で重要な意味を持つものである。
【0091】図28には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に他の一実施例の概略ブロック図が示されている。
この実施例では、乱数発生器402とタイミング生成回
路406とで形成されたランダムな信号を利用して、C
PU413に以上の命令からなる擬似的処理を挿入し、
タイミングを変更するものである。
【0092】タイミング生成回路406は、乱数発生器
402を利用してランダムな命令挿入タイミングを供給
する。CPU413は、アドレスバスとデータバスを介
して、ROM410からの命令をフェッチし、その命令
を実行する。フェッチした命令は、命令レジスタ401
4から命令変更回路4004を経由して、命令デコーダ
4008に送られる。命令デコーダ4008からの信号
を受けて、制御回路4009は、演算器4013やその
他の回路を制御して、命令の実行を制御する。
【0093】通常は、命令レジスタ4014からの命令
は、命令変更回路4004において、変更されることな
く、命令デコーダ4008に送られる。しかし、命令挿
入タイミングが要求されていると、命令変更回路400
4は命令をノーオペレーション命令(NOP命令)に変
更する。さらにこの時、この図には示していないがプロ
グラムカウンタ4012の更新停止信号を出力する。こ
の更新停止信号は、命令実行に伴うプログラムカウンタ
4012の更新を停止することを指示する。これは、上
記命令変更回路4004によって挿入されるNOP命令
によって、プログラムカウンタ4012の変更が余分に
行われないようにするためである。
【0094】図29には、図28のICカード用チップ
の動作の一例を説明するためのタイミング図である。同
図には、命令挿入タイミングが要求されていない通常動
作の場合のタイミング図が示されている。CPUは、ア
ドレスバスとデータバスを介して、ROMからの命令を
フェッチしてその命令を実行する。つまり、フェッチし
た命令は、命令レジスタから命令変更回路を経由して、
命令デコーダに送られて命令実行がなされる。つまり、
ROMからの命令フェッチからその実行までがA−B−
C−D−E−Fのように順次に行われる。
【0095】図30には、図28のICカード用チップ
の動作の他の一例を説明するためのタイミング図であ
る。同図には、命令挿入タイミングが要求された場合の
タイミング図が示されている。つまり、命令Bの命令実
行を行うときに命令挿入タイミング1407が発生する
と、このとき命令Bが変更を受けてNOP命令1406
が実行される。NOP命令1406の実行時には、再び
命令Bのフェッチサイクル1402が行なわれる。この
ように図30では、命令挿入タイミング1407によっ
て通常の暗号処理に悪影響を及ぼさない命令挿入が行わ
れて、タイミングが変更されるものである。
【0096】図31には、図28のICカード用チップ
の更に他の動作の一例を説明するためのタイミング図で
ある。同図には、命令挿入タイミングが要求されていな
い通常動作の場合のタイミング図が示されている。CP
Uは、アドレスバスとデータバスを介して、ROMから
の命令をフェッチしてその命令を実行する。つまり、フ
ェッチした命令は、命令レジスタから命令変更回路を経
由して、命令デコーダに送られて命令実行がなされる。
つまり、ROMからの命令フェッチからその実行までが
A−B−C−D−E−Fのように順次に行われる。この
タイミング図は、次に説明する図32との比較のためも
のものである。
【0097】図32には、図28のICカード用チップ
の動作の更に他の一例を説明するためのタイミング図で
ある。通常は前記図31のように命令実行を行うICカ
ード用チップにおいて、命令挿入タイミングの要求によ
って次のような命令実行が変更される。例えば、フェッ
チされたデータバス上の命令Bが、命令レジスタ170
5に設定されたときに命令挿入タイミング1708の要
求があった場合、このとき命令Bが変更を受けて、NO
P命令でなく、現在のプログラムカウンタへの分岐命令
BRABとする点が異なる。
【0098】上記のように現在のプログラムカウンタへ
の分岐命令BRABを実行するようにした場合には、M
OP命令を実行した場合のようにプログラムカウンタの
変更を停止する必要がない。なぜなら、挿入した命令B
RABは、現在のPCへの分岐命令なので、この命令を
実行することによってプログラムカウンタの値は、正し
く更新されるからである。上記命令BRABの実行時に
は、再び命令Bのフェッチサイクル1702が行なわれ
る。
【0099】上記命令の変更がランダムに行われること
の結果、前記図25(B)に示すように1回目と2回目
とで仮に同じ、暗号処理等を行った場合でも、その都度
命令変更が実行されるタイミングが異なり、それに対応
して1回目の電流I1と2回目の電流I2とでは、その
電流波形が異なる(I1≠I2)ものとすることができ
る。この結果、前記同様に本願発明に係るICカード等
では暗号鍵などのセキュリティ情報や暗号処理のアルゴ
リズム上のデータに対する消費電流波形に格別な依存性
など存在しなくなり、前記のように電流波形の解析によ
る暗号鍵の解読等を徒労にしてしまうことができる。
【0100】この出願に係る発明思想では、時間軸でみ
た場合の消費電流波形を不規則に、いわば再現性が無い
ように変化させることである。このような時間軸での消
費電流を変化させる手段として、前記のように疑似的処
理を挿入することに代え、あるいはそれとともにクロッ
ク自体の周波数にランダムな揺らぎを与えることによっ
ても同様に時間軸でみた場合の消費電流を変化させるこ
とができる。
【0101】ICカード用チップ等の1チップのマイク
ロコンピュータでは、外部のクロックに同期して、ある
決まった一定のタイミングでプログラムを実行する。ま
た、通常のプログラムを実行する場合、毎回、命令の実
行サイクル数は固定しており、その結果電流波形も固定
するものである。そこで、外部のクロックとの関係で内
部クロックの位相を時間軸でみた場合に変化させるよう
にすれば、特定の暗号処理を行うタイミングが微妙に変
化することになり、電流波形を上記のように時間軸上で
比較することによってデータ依存性の解析を実質的に不
可能にすることができる。
【0102】図33には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に他の一実施例の概略ブロック図が示されている。
この発明に係るICカード用チップの構成は、前記同様
にCPU413、ROM410やRAM411、EEP
ROM412などの記憶装置、入出力ポート(I/Oポ
ート)414などと、本発明によって追加された乱数発
生回路402、制御レジスタ421及びクロック生成回
路418からなる。
【0103】上記クロック生成回路418は、1チップ
マイクロコンピュータ外部から供給される外部クロック
CLKを入力として、その周波数を変動させて、マイク
ロコンピュータの内部クロック420を形成する。上記
クロック生成回路418において周波数を変動させるか
否かは、周波数ジッタイネーブル信号422によって制
御可能である。この周波数ジッタイネーブル信号422
は、CPU413によって制御レジスタ421に設定す
ることによってプログラムから制御できる。本発明のラ
ンダムタイミングのON/OFFを制御可能にする方法
は、本実施例に限らず本発明のすべてに応用可能であ
る。例えば、ICカードがリーダライタと通信を行なう
際に、同期を取る必要がある場合などの時に、本発明の
ランダムタイミング機能をOFFさせることが可能とな
る。
【0104】クロック生成回路418は、乱数発生回路
402で形成された乱数を用いて、上記内部クロック信
号420の周波数を変動させるものである。このため
に、乱数発生回路402が必要になるが、前記暗号用演
算回路(RNGモジュール)を搭載した場合、それに必
要な乱数を上記乱数発生器402で形成したものを併用
するものであってもよい。例えば、乱数発生器402
は、前記図6〜図14等のうち乱数生成に関連する部分
のものを用いることができる。
【0105】図34には、図33のICカード用チップ
(半導体集積回路装置)に搭載されるクロック生成回路
の一実施例のブロック図が示されている。この実施例で
は位相比較き4110、ローパスフィルタ4111、V
CO(電圧制御型発振回路)4112及び分周回路41
13からなるつPLL回路が利用される。上記VCO4
112の制御電圧を保持するキャパシタC0に対して、
周波数ジックイネーブル信号によりスイッチ制御される
MOSFETQを介してキャパシタC1〜Cnを接続す
る。これらのキャパシタC1〜Cnの他端には、前記乱
数発生回路で形成された乱数が入力される。
【0106】上記キャパシタC1〜Cnは、乱数に対応
したロウレベル又はハイレベルの信号が入力されるの
で、それぞれに対応して上記キャパシタC0との間で電
荷分散を生じしめて制御電圧を変化させる。これによ
り、VCOで形成される発振信号の周波数が変化して、
それを分周して形成されたクロック信号の周期が変動す
ることとなる。このように、ランダムに動作クロックの
周期を変動させることにより、暗号処理等での電流波形
を上記のように時間軸上で比較することによる解析を実
質的に不可能にすることができる。上記周波数ジッタイ
ネーブルは、周波数を変動させるか否かを制御する信号
であり、それがロウレベルにされると上記MOSFET
Qがオフ状態となって、上記のような乱数による制御電
圧に変動を生じさせなくできる。
【0107】図35には、図33のICカード用チップ
(半導体集積回路装置)に搭載されるクロック生成回路
の他の一実施例のブロック図が示されている。この実施
例では、それぞれ分周比が異なる分周回路4114、4
115及び4116と、切り替え同期回路4117と、
クロック切り替え回路4118及びセレクタ4119が
用いられる。クロック切り替え回路4118は、クロッ
ク分周イネーブル信号により動作状態にされ、乱数に従
ってセレクタ4119を制御して上記3つの分周出力の
うち1つを選択して出力させる。
【0108】切り替え同期回路4117は、上記分周比
が1/2、1/4及び1/8のように異なる場合、その
切り替えに際して現在出力中の波形を監視し、その終了
タイミングを検出してクロック切り替え回路にセクレタ
4119の切り替えを指示する。これにより、マイクロ
コンピュータクロックが連続性をもって、言い換えるな
らば、ハザードなどのノイズを発生させることなくその
周期の切り替えが行われる。このように、ランダムに動
作クロックの分周比を可変にすることにより、データ処
理のタイミングを変更することより、暗号処理等での電
流波形を上記のように時間軸上で比較することによる解
析を実質的に不可能にすることができる。上記クロック
分周イネーブルは、周波数を分周比により変動させるか
否かを制御する信号であり、選択的に乱数による分周比
の切り替えを停止させることができる。
【0109】図36には、図33のICカード用チップ
(半導体集積回路装置)に搭載されるクロック生成回路
の更に他の一実施例のブロック図が示されている。この
実施例では、クロック遅延量生成回路4102と切り替
え同期回路4121及びクロック遅延量切り替え回路4
122が用いられる。クロック遅延量切り替え回路41
22は、クロック遅延イネーブル信号により動作状態に
され、乱数に従ってクロック遅延量生成回路を制御して
外部から供給されるクロック信号CLKの遅延量を変化
させて出力させる。
【0110】クロック遅延量生成回路は、インバータ回
路IVとその出力に設けられた抵抗R1とキャパシタC
からなる遅延回路のうち、上記抵抗R1に抵抗R2がス
イッチMOSFETQを介して選択的に並列接続され
る。このような可変遅延回路が複数段直列接続され、各
段のスイッチが前記乱数に対応したスイッチ制御信号S
1〜S3でスイッチ制御される。切り替え同期回路41
21は、入力クロック信号CLKを監視し、その変化タ
イミングを検出してクロック遅延量切り替え回路412
2に乱数に対応したスイッチ制御信号S1〜S3の変化
を指示する。これにより、入力されたクロック信号CL
Kに対してマイクロコンピュータクロックは同じ周波数
であるが、その遅延量、つまりマイクロコンピュータク
ロックの位相が乱数に対応して変化させられる。
【0111】図37には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に他の一実施例の概略ブロック図が示されている。
この発明に係るICカード用チップの構成は、前記同様
にCPU413、ROM410やRAM411、EEP
ROM412などの記憶装置、入出力ポート(I/Oポ
ート)414などと、本発明によって追加された乱数発
生回路402、タイミング生成回路406とバス権要求
回路419、バス権調停回路420が用いられる。な
お、CPU413以外にDMAC(直接メモリアクセス
制御回路)等のようにバスマスタとなるような周辺回路
が存在するものでは、バス権要求回路419、バス権調
停回路420が存在するので、それをそのまま利用でき
る。
【0112】この実施例ではCPU413にバス権を開
放させることにより、データ処理のタイミングを変更す
るものである。タイミング生成回路406は、乱数発生
器402からの乱数を受けてバス権要求回路419にバ
スサイクル挿入タイミングを指示する。このタイミング
において、バス権要求回路419は、バス権調停回路4
20に対してバス権要求信号を出力する。バス権調停回
路420は、バスサイクルの切れ目において、バス権C
PU許可信号をネゲートし、バス権許可信号をアサート
する。CPU413は、上記バス権CPU許可信号のネ
ゲートによりバス権を放棄し、アドレスバスやリード信
号の出力を止める。
【0113】上記バス権要求回路は、バス権許可信号を
受けてアドレスバスやリード信号を出力しメモリをアク
セスする。このようなバスサイクル挿入タイミングがア
サートされた場合、メモリアクセスサイクルを本来の暗
号処理と無関係に挿入することが可能となり、前記同様
に本願発明に係るICカード等では暗号鍵などのセキュ
リティ情報や暗号処理のアルゴリズム上のデータに対す
る消費電流波形に格別な依存性など存在しなくなり、前
記のように電流波形の解析による暗号鍵の解読等を徒労
にしてしまうことができる。
【0114】図38には、図37のICカード用チップ
の動作の一例を説明するためのタイミング図が示されて
いる。バス権要求信号2502がアサートされると、バ
ス権CPU許可信号2504がネゲートされバス権許可
信号2506がアサートされる。バス権CPU許可信号
2504のネゲートを受けて、CPUバスサイクルは中
断され、バス権要求回路のバスサイクル2511が行わ
れる。上記のバス権要求信号がアサートされるタイミン
グが、前記のように乱数に対応してランダムに変化する
こととなり、そのインターバルが不規則となる。このた
め、前記同様に暗号鍵などのセキュリティ情報や暗号処
理のアルゴリズム上のデータに対する消費電流波形に格
別な依存性をなくして前記のように電流波形の解析によ
る暗号鍵の解読等を実質的に不可能にすることができ
る。
【0115】図39には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に他の一実施例の概略ブロック図が示されている。
この発明に係るICカード用チップの構成は、前記同様
にCPU413、ROM410やRAM411、EEP
ROM412などの記憶装置、入出力ポート(I/Oポ
ート)414などと、本発明によって追加された乱数発
生回路402、タイミング生成回路406とウェイト要
求回路421用いられる。
【0116】この実施例ではCPU413のバスサイク
ルにランダムにウェイトサイクルを挿入させることによ
り、データ処理のタイミングを変更するものである。タ
イミング生成回路406は、乱数発生器402からの乱
数を受けてウェイト要求回路421にウェイト要求信号
の挿入タイミングを指示する。このタイミングにおい
て、ウェイト要求回路421は、CPU413に対して
バスサイクルに対するウェイト要求信号をアサートす
る。CPU413は、ウェイト要求信号アサートされた
場合、通常のバスサイクルより長いバスサイクルを行
う。
【0117】上記のウェイト要求信号がアサートされる
タイミングが、前記のように乱数に対応してランダムに
変化することとなり、そのインターバルが不規則とな
る。このため、前記同様に暗号鍵などのセキュリティ情
報や暗号処理のアルゴリズム上のデータに対する消費電
流波形に格別な依存性をなくして前記のように電流波形
の解析による暗号鍵の解読等を実質的に不可能にするこ
とができる。
【0118】図40には、図39のICカード用チップ
の動作の一例を説明するためのタイミング図が示されて
いる。タイミング生成回路406よりランダムに発生さ
れるウェイト挿入タイミング信号を受けると、ウェイト
要求回路421はCPU413に対してウェイト要求信
号をアサートする。CPU413は、ウェイト要求信号
がアサートされると、そのバスサイクルを通常のバスサ
イクル2704や2705より長いバスサイクル270
6を実行する。
【0119】上記ウェイト挿入タイミング信号が前記の
ように乱数発生器402で形成された乱数に対応してラ
ンダムに発生し、そのインターバルが不規則となる。こ
のため、前記同様に暗号鍵などのセキュリティ情報や暗
号処理のアルゴリズム上のデータに対する消費電流波形
に格別な依存性がなくなってしまう結果、前記のように
電流波形の解析による暗号鍵の解読等を実質的に不可能
にすることができる。
【0120】図41には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に一実施例の概略ブロック図が示されている。この
発明に係るICカード用チップの構成は、前記図23に
示したように乱数発生器402で発生された乱数により
インターバルを可変にするタイマを構成して、CPU4
13の割り込み処理をランダムに挿入することによって
タイミングを変更する。これに加えて、偽電流発生回路
422も搭載し、上記乱数発生器402で発生され乱数
により偽電流を流すようにするものである。
【0121】つまり、前記図2等を代表とする実施例の
ように偽電流を発生させるものと、前記図23の実施例
のように割り込みにより暗号処理の手順やタイミングを
変化させるものとを組み合わせることにより、暗号鍵な
どのセキュリティ情報や暗号処理のアルゴリズム上のデ
ータに対する消費電流波形の依存性をなくし、前記のよ
うに電流波形の解析による暗号鍵の解読等をいっそう困
難にすることができるものとなる。
【0122】図42には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に一実施例の概略ブロック図が示されている。この
発明に係るICカード用チップの構成は、前記図28に
示したように乱数発生器402で発生された乱数により
インターバルを可変にするタイマを構成して、CPU4
13の実行する命令が変更を受けてNOP命令や現在の
プログラムカウンタへの分岐命令に差し替えて実行す
る。このように通常の暗号処理に悪影響を及ぼさない命
令挿入が行われて、タイミングが変更されるものであ
る。これに加えて、偽電流発生回路422も搭載し、上
記乱数発生器402で発生され乱数により偽電流を流す
ようにするものである。
【0123】つまり、前記図2等を代表とする実施例の
ように偽電流を発生させるものと、前記図28の実施例
のように割り込みにより暗号処理の命令を変化させるも
のとを組み合わせることにより、暗号鍵などのセキュリ
ティ情報や暗号処理のアルゴリズム上のデータに対する
消費電流波形の依存性をなくし、前記のように電流波形
の解析による暗号鍵の解読等をいっそう困難にすること
ができるものとなる。
【0124】上記のように内部回路動作に無関係で不規
則性を持つ偽電流を発生させ、その再現性を損なうよう
にしたものと、データ処理の手順の時間軸上での動作を
ランダムに変化させて消費電流波形を変化させるものと
は、前記図41及び図42の他に、前記実施例の中から
適宜に選択して組み合わせるものとすればよい。
【0125】図43には、この発明に係るICカードに
搭載されるICカード用チップ(半導体集積回路装置)
の更に他の動作の一例を説明するためのタイミング図が
示されている。乱数発生器で形成された乱数511(乱
数A)が初期値512としてカウンタにロードされて、
ダウンカウント動作が行われてカウント値が−1ずつの
計数動作に対応して小さくなる。同図には、このような
ダウン計数動作によるカウント値514の変化を右下が
りの直線により表わしている。
【0126】同図のようなダウン計数動作中では、IC
カード用チップは、処理A518、処理B519、処理
C520等の並列的に実行可能な複数のデータ処理を、
時分割的に行っている。上記カウント値514が零にな
ると、上記実行中の処理A518が中断されて、代わっ
てタスクスケジュール処理が実行される。このタスクス
ケジュール処理と同時に乱数発生器では乱数511が上
記とは異なる乱数Bを形成しており、初期値513とし
てカウンタにロードされて、前記のようにダウンカウン
ト動作が行われる。上記一定の処理の後、上記タスクス
ケジュール処理は動作を終了し、異なる処理B519に
ついて、実行が再開される。そして、上記カウント値5
14が零になると、再びタスクスケジュール処理が動作
される。
【0127】上記のような処理を実行するインターバル
516が、前記乱数発生器で形成された乱数511によ
って不規則に変化するものとなる。このようにlCカー
ド用チップにおいて行うべき処理を複数の処理に分割
し、夫々の実行の順序やタイミングが変わり、時間軸で
見た場合の消費電流波形が変化することになる。これに
より特定の暗号処理を含む処理を行うタイミングが変化
することになり、電流波形を上記のように時間軸上で比
較することによつてデータ依存性の解析を困難にするこ
とが出来る。この場合には、前記のような疑似的処理に
代えて並列処理のインターバルが切り替えを利用できる
からデータ処理を効率よく行うことができる。
【0128】上記の実施例から得られる作用効果は、下
記の通りである。すなわち、 (1) データ処理装置とかかるデータ処理装置による
セキュリティ情報処理を含むデータ処理手順が書き込ま
れたROMを含み、外部端子がリードライト装置のよう
な外部装置と電気的に接続されることによって動作電圧
が供給され、データ処理装置とかかるデータ処理装置に
よるデータ処理手順が書き込まれたROMを含み、上記
データ処理手順に従うデータ処理動作が行われるICカ
ード又は半導体集積回路装置において、上記データ処理
手順に従う適当なデータ処理動作のタイミングを変化さ
せる手段を設けることにより、毎回、暗号処理の手順や
タイミングが変わり時間軸でみた場合の消費電流波形が
変化するため、電流波形を上記のように時間軸上で比較
するというデータ依存性の解析を実質的に不可能にして
機密保護の強化を図ることができるという効果が得られ
る。
【0129】(2) 上記データ処理手順のタイミング
を不規則的に変化させる手段として、上記データ処理手
順に対して不規則的に疑似的処理を挿入することによ
り、簡単な構成で上記機密保護を実現できるという効果
が得られる。
【0130】(3) 上記データ処理手順に対して不規
則的に疑似的処理を挿入する手段として、乱数により設
定されたタイマーからの割り込み処理を用いることによ
り、簡単な構成で効果的に上記機密保護を実現できると
いう効果が得られる。
【0131】(4) 上記割り込み処理による割り込み
動作が行われていることを監視するレジスタを設けるこ
とにより、CPUのプログラムによって上記割り込み処
理機能が正常に動作しているか否かの判定ができ上記機
密保護機能の信頼性を高くすることができるという効果
が得られる。
【0132】(5) 上記データ処理手順に対して不規
則的に疑似的処理を挿入する手段として、非安定の発振
回路で形成された発振周波数の変動に対応した一定の計
数出力からの割り込み処理を用いることにより、簡単な
構成で効果的に機密保護が実現できるという効果が得ら
れる。
【0133】(6) 上記データ処理手順に対して不規
則的に疑似的処理を挿入する手段として、乱数により設
定されたタイミングにおいて他の命令を挿入することに
より、簡単な構成で効果的な機密保護が実現できるとい
う効果が得られる。
【0134】(7) 上記他の命令としては、ノーオペ
レーション命令を用いつつ、かかる命令のときにプログ
ラムカウンタの更新を停止することにより、本来の命令
によるデータ処理に影響を与えることなく、上記データ
処理手順を不規則に変化させることができるという効果
が得られる。
【0135】(8) 上記他の命令として、現在のプロ
グラムカウンタへの分岐命令を用いることにより、プロ
グラムカウンタの動作を考慮するけことく、簡単に本来
の命令によるデータ処理に影響を与えることなく、上記
データ処理手順を不規則に変化させることができるとい
う効果が得られる。
【0136】(9) 上記データ処理手順に対して不規
則的に疑似的処理を挿入する手段として、バス権要求回
路とバス権調停回路を用い、乱数により設定されたタイ
ミングにおいてバス権要求回路によりバス使用権を獲得
してCPUによるバスサイクルを一時的に中断させるこ
とにより、効果的な機密保護が実現できるという効果が
得られる。
【0137】(10) 上記データ処理手順に対して不
規則的に疑似的処理を挿入する手段として、ウェイト要
求回路を用い、乱数により設定されたタイミングにおい
てウェイト要求回路によりCPUによるバスサイクルを
その間長くさせることにより、簡単な構成で効果的な機
密保護が実現できるという効果が得られる。
【0138】(11) 上記データ処理手順のタイミン
グを不規則的に変化させる手段として、データ処理装置
の動作クロック信号の周期を不規則的に変化させること
により、簡単な構成で上記機密保護を実現できるという
効果が得られる。
【0139】(12) 上記動作クロック信号の周期を
不規則的に変化させる手段として、PLL回路で構成さ
れたクロック生成回路を用い、かかるPLL回路におけ
るVCOの制御電圧を保持するキャパシタに、スイッチ
手段により複数のキャパシタの一方の電極を選択的に接
続し、かかる複数のキャパシタの他端に乱数に対応した
電圧信号を供給することにより、広い範囲でのランダム
なクロック信号の変化を行わせることができるから機密
保護のいっそうの強化を図ることができるという効果が
得られる。
【0140】(13) 上記動作クロック信号の周期を
不規則的に変化させる手段として、外部端から供給され
るクロック信号を受ける複数の分周回路により形成され
た複数通りの分周出力のうち、乱数により指定される1
つの分周出力をセレクタを介して選択的に出力させるこ
とにより、簡単な構成で比較的広い範囲でのランダムな
クロック信号の変化を行わせることができるから機密保
護の強化を図ることができるという効果が得られる。
【0141】(14) 上記動作クロック信号の周期を
不規則的に変化させる手段として、外部端から供給され
るクロック信号を受ける可変遅延回路の遅延量を乱数に
より制御するものとすることにより、簡単な構成で比較
的広い範囲でのランダムなクロック信号の変化を行わせ
ることができるから機密保護の強化を図ることができる
という効果が得られる。
【0142】(15) 上記乱数を形成する乱数発生回
路として、非制御発振回路と、その発振出力を受ける第
1のシフトレジスタとを用い、上記第1のシフトレジス
タのシフト動作を行うクロック信号が上記発振出力と非
同期とすることにより、簡単に乱数を発生させることが
できるという効果が得られる。
【0143】(16) 上記乱数発生回路として、PL
L回路のVCO出力を受けるシフトレジスタを用い、上
記PLL回路を非制御発振回路の発振出力を基準信号と
するものとし、かつ、上記VCOの制御信号を形成する
ローパスフィルタの容量値を上記非制御発振出力と、上
記VCOの分周出力に基づいて変化させることにより、
周波数変動を大きくしかも不規則的に行うようにするこ
とができるから乱数を効果的に発生させることができる
という効果が得られる。
【0144】(17) 上記データ処理動作のタイミン
グを変化させる手段として、並列的に実行可能な複数の
データ処理を乱数に従って切り替えることにより行うこ
とにより、上記の機密保護を行うとともにデータ処理の
効率化を図ることができるという効果が得られる。
【0145】(18) 外部端子がリードライト装置と
電気的に接続されることによって動作電圧が供給され、
かつ、データ処理装置とかかるデータ処理装置によるデ
ータ処理手順が書き込まれたROMを含み、上記データ
処理手順に従ってデータの入出力動作が行われる半導体
集積回路装置において、上記データ処理手順のタイミン
グを不規則的に変化させる手段を設けることより、毎
回、暗号処理の手順やタイミングが変わり時間軸でみた
場合の消費電流波形が変化するため、電流波形を上記の
ように時間軸上で比較するというデータ依存性の解析を
実質的に不可能にして半導体集積回路装置の機密保護の
強化を図ることができるという効果が得られる。
【0146】(19) 上記データ処理手順のタイミン
グを不規則的に変化させる手段として、上記データ処理
手順に対して不規則的に疑似的処理を挿入することによ
り、簡単な構成で上記半導体集積回路装置の機密保護を
実現できるという効果が得られる。
【0147】(20) 上記データ処理手順に対して不
規則的に疑似的処理を挿入する手段として、乱数により
設定されたタイマーからの割り込み処理を用いることに
より、簡単な構成で効果的に上記半導体集積回路装置の
機密保護を実現できるという効果が得られる。
【0148】(21) 上記割り込み処理による割り込
み動作が行われていることを監視するレジ1タを設ける
ことにより、CPUのプログラムによって上記割り込み
処理機能が正常に動作しているか否かの判定ができ上記
半導体集積回路装置の機密保護機能の信頼性を高くする
ことができるという効果が得られる。
【0149】(22) 上記データ処理手順のタイミン
グを不規則的に変化させる手段として、データ処理装置
の動作クロック信号の周期を不規則的に変化させること
により、簡単な構成で上記半導体集積回路装置の機密保
護を実現できるという効果が得られる。
【0150】(23) 上記動作クロック信号の周期を
不規則的に変化させる手段として、PLL回路で構成さ
れたクロック生成回路を用い、かかるPLL回路におけ
るVCOの制御電圧を保持するキャパシタに、スイッチ
手段により複数のキャパシタの一方の電極を選択的に接
続し、かかる複数のキャパシタの他端に乱数に対応した
電圧信号を供給することにより、広い範囲でのランダム
なクロック信号の変化を行わせることができるから半導
体集積回路装置の機密保護のいっそうの強化を図ること
ができるという効果が得られる。
【0151】(24) 上記動作クロック信号の周期を
不規則的に変化させる手段として、外部端から供給され
るクロック信号を受ける複数の分周回路により形成され
た複数通りの分周出力のうち、乱数により指定される1
つの分周出力をセレクタを介して選択的に出力させるこ
とにより、簡単な構成で比較的広い範囲でのランダムな
クロック信号の変化を行わせることができるから半導体
集積回路装置の機密保護の強化を図ることができるとい
う効果が得られる。
【0152】(25) 上記動作クロック信号の周期を
不規則的に変化させる手段として、外部端から供給され
るクロック信号を受ける可変遅延回路の遅延量を乱数に
より制御するものとすることにより、簡単な構成で比較
的広い範囲でのランダムなクロック信号の変化を行わせ
ることができるから半導体集積回路装置の機密保護の強
化を図ることができるという効果が得られる。
【0153】(26) 上記乱数を形成する乱数発生回
路として、非制御発振回路と、その発振出力を受ける第
1のシフトレジスタとを用い、上記第1のシフトレジス
タのシフト動作を行うクロック信号が上記発振出力と非
同期とすることにより、半導体集積回路装置において簡
単に乱数を発生させることができるという効果が得られ
る。
【0154】(27) 上記データ処理動作のタイミン
グを変化させる手段として、並列的に実行可能な複数の
データ処理を乱数に従って切り替えることにより行うこ
とにより、半導体集積回路装置の機密保護を行うととも
にデータ処理の効率化を図ることができるという効果が
得られる。
【0155】以上本発明者よりなされた発明を実施例に
基づき具体的に説明したが、本願発明は前記実施例に限
定されるものではなく、その要旨を逸脱しない範囲で種
々変更可能であることはいうまでもない。例えば、IC
カードには、1つの半導体集積回路装置を搭載するもの
他、複数の半導体集積回路装置が搭載されるものであっ
てもよい。この場合、偽電流発生回路はいずれか1つの
半導体集積回路装置に搭載されればよい。偽電流発生の
ための乱数発生回路は、前記非同期の発振信号を用いる
ものの他、例えばランダムノイズを増幅した信号をクロ
ックによりサンプリングするもの等何であってもよい。
【0156】半導体集積回路装置は、データ処理装置と
かかるデータ処理装置によるデータ処理手順が書き込ま
れたROMを含んで上記データ処理手順に従ってデータ
の入出力動作が行われるものであれば何であってもよ
い。例えば、前記のようなICカード用チップの他に、
ゲーム用等の1チップマイクロコンピュータ等のように
機密保護の必要な各種半導体集積回路装置に広く適用で
きるものである。この発明は、機密保護を必要とする各
種ICカード及び半導体集積回路装置に広く利用でき
る。
【0157】
【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記の通りである。すなわち、データ処理装置とかかるデ
ータ処理装置によるセキュリティ情報処理を含むデータ
処理手順が書き込まれたROMを含み、外部端子がリー
ドライト装置のような外部装置と電気的に接続されるこ
とによって動作電圧が供給され、データ処理装置とかか
るデータ処理装置によるデータ処理手順が書き込まれた
ROMを含み、上記データ処理手順に従うデータ処理動
作が行われるICカード又は半導体集積回路装置におい
て、上記データ処理手順に従う適当なデータ処理動作の
タイミングを変化させる手段を設けることにより、毎
回、暗号処理の手順やタイミングが変わり時間軸でみた
場合の消費電流波形が変化するため、電流波形を上記の
ように時間軸上で比較するというデータ依存性の解析を
実質的に不可能にして機密保護の強化を図ることができ
る。
【図面の簡単な説明】
【図1】この発明が適用されるICカードの一実施例を
示す外観図である。
【図2】この発明に係るICカードに搭載されるICカ
ード用チップの一実施例を示す概略ブロック図である。
【図3】図2に示したICカード用チップの等価回路図
である。
【図4】この発明を説明するための電流波形図である。
【図5】この発明に係る偽電流発生回路の一実施例を示
す概略構成図である。
【図6】この発明に係る偽電流発生回路の一実施例を示
す具体的回路図である。
【図7】この発明に係る偽電流発生回路の他の一実施例
を示す概略構成図である。
【図8】図2の暗号演算回路のインターフェイス部の一
実施例を示すブロック図である。
【図9】CPUによる乱数入手動作を説明するための一
実施例のフローチャート図である。
【図10】図2の暗号演算回路の一実施例を示す全体構
成図である。
【図11】図10の発振回路1、2の一実施例を示すブ
ロック図である。
【図12】図11に設けられる不安定発振回路の一実施
例を示す回路図である。
【図13】図11に設けられる不安定発振回路の他の一
実施例を示す回路図である。
【図14】図10の発振回路1、2の他の一実施例を示
すブロック図である。
【図15】図10の出力調整回路の一実施例を示す構成
図である。
【図16】この発明に係る乱数発生回路の他の一実施例
を示すブロック図である。
【図17】この発明に係る乱数発生回路の他の一実施例
を示すブロック図である。
【図18】この発明に係る半導体集積回路装置の一実施
例を示す要部ブロック図である。
【図19】この発明に係る半導体集積回路装置の他の一
実施例を示す要部ブロック図である。
【図20】この発明に係る半導体集積回路装置の他の一
実施例を示す要部ブロック図である。
【図21】この発明に係る半導体集積回路装置の更に他
の一実施例を示す要部ブロック図である。
【図22】この発明に係る半導体集積回路装置の更に他
の一実施例を示す要部ブロック図である。
【図23】この発明に係るICカードに搭載されるIC
カード用チップの一実施例を示す概略ブロック図であ
る。
【図24】この発明に係るICカード用チップの動作の
一例を説明するためのタイミング図である。
【図25】この発明に係るICカード用チップの動作の
一例を説明するための波形図である。
【図26】この発明に係るICカードに搭載されるIC
カード用チップの他の一実施例を示す概略ブロック図で
ある。
【図27】この発明に係るICカードに搭載されるIC
カード用チップの他の一実施例を示す概略ブロック図で
ある。
【図28】この発明に係るICカードに搭載されるIC
カード用チップの更に他の一実施例を示す概略ブロック
図である。
【図29】図28のICカード用チップの動作の一例を
説明するためのタイミング図である。
【図30】図28のICカード用チップの動作の一例を
説明するためのタイミング図である。
【図31】図28のICカード用チップの動作の更に他
の一例を説明するためのタイミング図である。
【図32】図28のICカード用チップの動作の更に他
の一例を説明するためのタイミング図である。
【図33】この発明に係るICカードに搭載されるIC
カード用チップの更に他の一実施例を示す概略ブロック
図である。
【図34】図33のICカード用チップに搭載されるク
ロック生成回路の一実施例を示すブロック図である。
【図35】図33のICカード用チップに搭載されるク
ロック生成回路の他の一実施例を示すブロック図であ
る。
【図36】図33のICカード用チップに搭載されるク
ロック生成回路の更に他の一実施例を示すブロック図で
ある。
【図37】この発明に係るICカードに搭載されるIC
カード用チップの更に他の一実施例を示す概略ブロック
図である。
【図38】図37のICカード用チップの動作の一例を
説明するためのタイミング図である。
【図39】この発明に係るICカードに搭載されるIC
カード用チップの更に他の一実施例を示す概略ブロック
図である。
【図40】図39のICカード用チップの動作の一例を
説明するためのタイミング図である。
【図41】この発明に係るICカードに搭載されるIC
カード用チップの更に一実施例を示す概略ブロック図で
ある。
【図42】この発明に係るICカードに搭載されるIC
カード用チップの更に一実施例を示す概略ブロック図で
ある。
【図43】この発明に係るICカードに搭載されるIC
カード用チップ(半導体集積回路装置)の更に他の動作
の一例を説明するためのタイミング図である。
【符号の説明】
201…中央処理装置(CPU)、202…I/Oポー
ト、203…アドレスバス、204…データバス、20
5…クロック生成回路、206…ROM、207…RA
M、208…EEPROM、209…暗号用演算回路、
210…偽電流発生回路、401…ICカード用チッ
プ、402…乱数発生回路、403…インターバル生成
回路、404…デクリメンタ、405…アンダーフロー
判定回路、406…タイミング生成回路、407…カウ
ンタ(レジスタ)、408…セレクタ、409…割り込
み要求、410…ROM、411…RAM、412…E
EPROM、413…CPU、414…I/O、415
…乱数設定レジスタ、416…発振器、4004…命令
変更回路、4008…命令デコーダ、4009…制御回
路、4011…加算器、4012…プログラムカウン
タ、4013…演算器、4014…命令レジスタ、41
8…クロック生成回路、419…バス権要求回路、42
0…バス権調停回路、421…制御レジスタ、421…
ウェイト要求回路。
フロントページの続き (72)発明者 長崎 信孝 東京都小平市上水本町5丁目22番1号 日 立超エル・エス・アイ・システムズ内 (72)発明者 塚元 卓 東京都小平市上水本町5丁目22番1号 日 立超エル・エス・アイ・システムズ内 (72)発明者 平 聡 東京都小平市上水本町5丁目22番1号 日 立超エル・エス・アイ・システムズ内 (72)発明者 ▲高▼橋 雅聡 東京都小平市上水本町5丁目22番1号 日 立超エル・エス・アイ・システムズ内 (72)発明者 中田 邦彦 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業本部内 (72)発明者 寺内 千晶 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所半導体事業本部内 (72)発明者 大木 優 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 神永 正博 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B017 AA03 BA07 BB03 CA14 5B035 AA13 BB09 CA11 5B062 AA07 AA10 CC01 DD10 JJ03 5F083 AD00 BS00 CR00 EP00 ZA13 ZA14 ZA23

Claims (27)

    【特許請求の範囲】
  1. 【請求項1】 データ処理装置とかかるデータ処理装置
    によるセキュリティ情報処理を含むデータ処理手順が書
    き込まれたROMを含み、外部から動作電圧が供給さ
    れ、かつ外部入力に応ずる動作が行われるICカードで
    あって、 上記データ処理手順に従うデータ処理動作のタイミング
    を変化させる手段を備えてなることを特徴とするICカ
    ード。
  2. 【請求項2】 請求項1において、 上記データ処理動作のタイミングを変化させる手段は、
    上記データ処理動作に対して疑似的処理を挿入する手段
    であることを特徴とするICカード。
  3. 【請求項3】 請求項2において、 上記データ処理動作に対して疑似的処理を挿入する手段
    は、乱数により設定されたタイマーからの割り込み処理
    により実施されることを特徴とするICカード。
  4. 【請求項4】 請求項3において、 上記割り込み処理による割り込み動作が行われているこ
    とを上記CPUによる読み出しが可能にされた監視用レ
    ジスタを更に備えてなることを特徴とするICカード。
  5. 【請求項5】 請求項2において、 上記データ処理動作に対して疑似的処理を挿入する手段
    は、非安定の発振回路で形成された発振周波数の変動に
    対応した一定の計数出力からの割り込み処理により実施
    されることを特徴とするICカード。
  6. 【請求項6】 請求項2において、 上記データ処理動作に対して疑似的処理を挿入する手段
    は、乱数により設定されたタイミングにおいて一時的に
    他の命令を挿入する動作を行うものであることを特徴と
    するICカード。
  7. 【請求項7】 請求項6において、 上記他の命令は、ノーオペレーション命令であり、かか
    る命令とともにプログラムカウンタの更新が停止される
    ことを特徴とするICカード。
  8. 【請求項8】 請求項6において、 上記他の命令は、現在のプログラムカウンタへの分岐命
    令であることを特徴とするICカード。
  9. 【請求項9】 請求項2において、 上記データ処理動作に対して疑似的処理を挿入する手段
    は、バス権要求回路とバス権調停回路を用い、乱数によ
    り設定されたタイミングにおいてバス権要求回路により
    バス使用権を獲得してCPUによるバスサイクルを一時
    的に中断させるものであることを特徴とするICカー
    ド。
  10. 【請求項10】 請求項2において、 上記データ処理動作に対して疑似的処理を挿入する手段
    は、ウェイト要求回路を用い、乱数により設定されたタ
    イミングにおいてウェイト要求回路によりCPUによる
    バスサイクルをその間長くさせるものであることを特徴
    とするICカード。
  11. 【請求項11】 請求項1において、 上記データ処理動作のタイミングを変化させる手段は、
    データ処理装置の動作クロック信号の周期を変化させる
    ものであることを特徴とするICカード。
  12. 【請求項12】 請求項11において、 上記動作クロック信号の周期を変化させる手段は、PL
    L回路で構成されたクロック生成回路を用い、かかるP
    LL回路におけるVCOの制御電圧を保持するキャパシ
    タに、スイッチ手段により複数のキャパシタの一方の電
    極を選択的に接続し、かかる複数のキャパシタの他端に
    乱数に対応した電圧信号を供給するものであることを特
    徴とするICカード。
  13. 【請求項13】 請求項11において、 上記動作クロック信号の周期を変化させる手段は、外部
    端から供給されるクロック信号を受ける複数の分周回路
    により形成された複数通りの分周出力のうち、乱数によ
    り指定される1つの分周出力をセレクタを介して選択的
    に出力させるものであることを特徴とするICカード。
  14. 【請求項14】 請求項11において、 上記動作クロック信号の周期を変化させる手段は、外部
    端から供給されるクロック信号を受ける可変遅延回路の
    遅延量を乱数により制御するものであることを特徴とす
    るICカード。
  15. 【請求項15】 請求項3、請求項6、請求項9、請求
    項10、請求項12、請求項13、請求項14のいずれ
    かにおいて、 上記乱数を形成する乱数発生回路を更に備え、 かかる乱数発生回路は、非制御発振回路と、その発振出
    力を受ける第1のシフトレジスタとを含み、 上記第1のシフトレジスタは、シフト動作を行うクロッ
    ク信号が上記発振出力と非同期とされることを特徴とす
    るICカード。
  16. 【請求項16】 請求項15において、 上記乱数発生回路は、PLL回路と、PLL回路のVC
    O出力をを受けるシフトレジスタとを含み、 上記PLL回路は、非制御発振回路の発振出力を基準信
    号とし、かつ、上記VCOの制御信号を形成するローパ
    スフィルタの容量値が、上記非制御発振出力と、上記V
    COの分周出力に基づいて変化されることを特徴とする
    ICカード。
  17. 【請求項17】 請求項1において、 上記データ処理動作のタイミングを変化させる手段は、
    並列的に実行可能な複数のデータ処理を乱数に従って切
    り替えることにより行わせるものであることを特徴とす
    るICカード。
  18. 【請求項18】 データ処理装置とかかるデータ処理装
    置によるセキュリティ情報処理を含むデータ処理手順が
    書き込まれたROMを含み、外部から動作電圧が供給さ
    れ、かつ外部入力に応ずる動作が行われる半導体集積回
    路装置であって、 上記データ処理手順に従うデータ処理動作のタイミング
    を変化させる手段を備えてなることを特徴とする半導体
    集積回路装置。
  19. 【請求項19】 請求項18において、 上記データ処理動作のタイミングを変化させる手段は、
    上記データ処理動作に対して疑似的処理を挿入する手段
    であることを特徴とする半導体集積回路装置。
  20. 【請求項20】 請求項18において、 上記データ処理動作に対して疑似的処理を挿入する手段
    は、乱数により設定されたタイマーからの割り込み処理
    により実施されることを特徴とする半導体集積回路装
    置。
  21. 【請求項21】 請求項20において、 上記割り込み処理による割り込み動作が行われているこ
    とを上記CPUによる読み出しが可能にされた監視用レ
    ジスタを更に備えてなることを特徴とする半導体集積回
    路装置。
  22. 【請求項22】 請求項18において、 上記データ処理動作のタイミングを変化させる手段は、
    データ処理装置の動作クロック信号の周期を変化させる
    ものであることを特徴とする半導体集積回路装置。
  23. 【請求項23】 請求項22において、 上記動作クロック信号の周期を変化させる手段は、PL
    L回路で構成されたクロック生成回路を用い、かかるP
    LL回路におけるVCOの制御電圧を保持するキャパシ
    タに、スイッチ手段により複数のキャパシタの一方の電
    極を選択的に接続し、かかる複数のキャパシタの他端に
    乱数に対応した電圧信号を供給するものであることを特
    徴とする半導体集積回路装置。
  24. 【請求項24】 請求項22において、 上記動作クロック信号の周期を変化させる手段は、外部
    端から供給されるクロック信号を受ける複数の分周回路
    により形成された複数通りの分周出力のうち、乱数によ
    り指定される1つの分周出力をセレクタを介して選択的
    に出力させるものであることを特徴とする半導体集積回
    路装置。
  25. 【請求項25】 請求項22において、 上記動作クロック信号の周期を変化させる手段は、外部
    端から供給されるクロック信号を受ける可変遅延回路の
    遅延量を乱数により制御するものであることを特徴とす
    る半導体集積回路装置。
  26. 【請求項26】 請求項20、請求項23、請求項2
    4、請求項25のいずれかにおいて、 上記乱数を形成する乱数発生回路を更に備え、 かかる乱数発生回路は、非制御発振回路と、その発振出
    力を受ける第1のシフトレジスタとを含み、 上記第1のシフトレジスタは、シフト動作を行うクロッ
    ク信号が上記発振出力と非同期とされることを特徴とす
    る半導体集積回路装置。
  27. 【請求項27】 請求項18において、 上記データ処理動作のタイミングを変化させる手段は、
    並列的に実行可能な複数のデータ処理を乱数に従って切
    り替えることにより行わせるものであることを特徴とす
    る半導体集積回路装置。
JP06156199A 1999-03-09 1999-03-09 Icカードと半導体集積回路装置 Expired - Fee Related JP3827050B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP06156199A JP3827050B2 (ja) 1999-03-09 1999-03-09 Icカードと半導体集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP06156199A JP3827050B2 (ja) 1999-03-09 1999-03-09 Icカードと半導体集積回路装置

Publications (2)

Publication Number Publication Date
JP2000259799A true JP2000259799A (ja) 2000-09-22
JP3827050B2 JP3827050B2 (ja) 2006-09-27

Family

ID=13174658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP06156199A Expired - Fee Related JP3827050B2 (ja) 1999-03-09 1999-03-09 Icカードと半導体集積回路装置

Country Status (1)

Country Link
JP (1) JP3827050B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6419159B1 (en) * 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
JP2003502905A (ja) * 1999-06-11 2003-01-21 ジェネラル・インストルメント・コーポレーション 暗号演算に対するパワーアタックおよびタイミングアタックへの対策
JP2003505797A (ja) * 1999-07-22 2003-02-12 シュラムバーガー システムズ 電流アタックに対して保護されたマイクロコントローラ
JP2003263617A (ja) * 2001-12-19 2003-09-19 Koninkl Philips Electronics Nv 無許可アクセスに対する回路の安全性を向上させる方法及び装置
JP2004101981A (ja) * 2002-09-11 2004-04-02 Toshiba Corp 暗号演算回路
JP2005512240A (ja) * 2001-12-13 2005-04-28 キャナル プラス テクノロジーズ 電気式解析から保護されるデジタル電子部品
JP2005252705A (ja) * 2004-03-04 2005-09-15 Sony Corp データ処理回路および制御方法
WO2008056461A1 (fr) 2006-11-09 2008-05-15 Panasonic Corporation Circuit de traitement de calcul cryptographique
JP2010527078A (ja) * 2007-05-10 2010-08-05 ディス‐エント,エルエルシー 非決定性統計データ生成器
US8249253B2 (en) 2001-08-30 2012-08-21 Samsung Electronics Co., Ltd. Semiconductor integrated circuit having encrypter/decrypter function for protecting input/output data transmitted on internal bus
JP2015161969A (ja) * 2014-02-26 2015-09-07 セイコーエプソン株式会社 マイクロコンピューター及び電子機器
CN113032771A (zh) * 2019-12-24 2021-06-25 意法半导体国际有限公司 密码质询的动态随机化

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02199561A (ja) * 1988-11-10 1990-08-07 Sgs Thomson Microelectron Sa 許可を得ていない保護データ検出に対する安全装置
JPH07239837A (ja) * 1993-12-21 1995-09-12 General Instr Corp Of Delaware 秘密保護マイクロプロセッサのためのクロック周波数変調
JPH09237130A (ja) * 1996-03-01 1997-09-09 Toshiba Corp コンピュータシステム及び同システムにおけるクロック停止信号制御方法
JPH10170609A (ja) * 1996-12-12 1998-06-26 Hitachi Ltd 論理集積回路
JPH10507561A (ja) * 1996-03-07 1998-07-21 セー・ペー・8・トランザツク 改良型集積回路と、該集積回路の使用方法
JPH10340183A (ja) * 1997-06-09 1998-12-22 Oki Electric Ind Co Ltd 乱数発生回路
JPH1115555A (ja) * 1997-06-25 1999-01-22 Hitachi Ltd 半導体集積回路装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02199561A (ja) * 1988-11-10 1990-08-07 Sgs Thomson Microelectron Sa 許可を得ていない保護データ検出に対する安全装置
JPH07239837A (ja) * 1993-12-21 1995-09-12 General Instr Corp Of Delaware 秘密保護マイクロプロセッサのためのクロック周波数変調
JPH09237130A (ja) * 1996-03-01 1997-09-09 Toshiba Corp コンピュータシステム及び同システムにおけるクロック停止信号制御方法
JPH10507561A (ja) * 1996-03-07 1998-07-21 セー・ペー・8・トランザツク 改良型集積回路と、該集積回路の使用方法
JPH10170609A (ja) * 1996-12-12 1998-06-26 Hitachi Ltd 論理集積回路
JPH10340183A (ja) * 1997-06-09 1998-12-22 Oki Electric Ind Co Ltd 乱数発生回路
JPH1115555A (ja) * 1997-06-25 1999-01-22 Hitachi Ltd 半導体集積回路装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003502905A (ja) * 1999-06-11 2003-01-21 ジェネラル・インストルメント・コーポレーション 暗号演算に対するパワーアタックおよびタイミングアタックへの対策
US6419159B1 (en) * 1999-06-14 2002-07-16 Microsoft Corporation Integrated circuit device with power analysis protection circuitry
JP4769398B2 (ja) * 1999-07-22 2011-09-07 ゲマルト ソシエテ アノニム 電流アタックに対して保護されたマイクロコントローラ
JP2003505797A (ja) * 1999-07-22 2003-02-12 シュラムバーガー システムズ 電流アタックに対して保護されたマイクロコントローラ
US8249253B2 (en) 2001-08-30 2012-08-21 Samsung Electronics Co., Ltd. Semiconductor integrated circuit having encrypter/decrypter function for protecting input/output data transmitted on internal bus
JP2005512240A (ja) * 2001-12-13 2005-04-28 キャナル プラス テクノロジーズ 電気式解析から保護されるデジタル電子部品
JP2003263617A (ja) * 2001-12-19 2003-09-19 Koninkl Philips Electronics Nv 無許可アクセスに対する回路の安全性を向上させる方法及び装置
JP2004101981A (ja) * 2002-09-11 2004-04-02 Toshiba Corp 暗号演算回路
JP2005252705A (ja) * 2004-03-04 2005-09-15 Sony Corp データ処理回路および制御方法
JP4674440B2 (ja) * 2004-03-04 2011-04-20 ソニー株式会社 データ処理回路
US8687799B2 (en) 2004-03-04 2014-04-01 Sony Corporation Data processing circuit and control method therefor
WO2008056461A1 (fr) 2006-11-09 2008-05-15 Panasonic Corporation Circuit de traitement de calcul cryptographique
JP2010527078A (ja) * 2007-05-10 2010-08-05 ディス‐エント,エルエルシー 非決定性統計データ生成器
JP2015161969A (ja) * 2014-02-26 2015-09-07 セイコーエプソン株式会社 マイクロコンピューター及び電子機器
CN113032771A (zh) * 2019-12-24 2021-06-25 意法半导体国际有限公司 密码质询的动态随机化

Also Published As

Publication number Publication date
JP3827050B2 (ja) 2006-09-27

Similar Documents

Publication Publication Date Title
US7376687B2 (en) Pseudo-random number generator
KR100463814B1 (ko) 개선된집적회로및그의사용방법
EP2954615B1 (en) Integrated circuit identification and dependability verification using ring oscillator based physical unclonable function and age detection circuitry
US7805650B2 (en) Semiconductor integrated circuit and debug mode determination method
CN110998578B (zh) 用于在异构存储器环境内进行引导的系统和方法
KR100563885B1 (ko) 난수 시드 생성 회로 및 이것을 포함한 드라이버, 및 메모리 카드 시스템
US8046574B2 (en) Secure boot across a plurality of processors
US8937496B1 (en) Clock monitor
US8046573B2 (en) Masking a hardware boot sequence
US20080256366A1 (en) System and Method for Booting a Multiprocessor Device Based on Selection of Encryption Keys to be Provided to Processors
JP3827050B2 (ja) Icカードと半導体集積回路装置
JP2000222176A (ja) 乱数生成回路、当該乱数生成回路を内蔵する非接触icカード及びリーダ/ライタ、並びに、当該乱数生成回路を内蔵する装置のテスト方法
US6256746B1 (en) System and method for multi-input wake up in a microcontroller using a single clock
US8732806B2 (en) Method and system for hardware enforced virtualization in an integrated circuit
JP2005513604A (ja) コンピューティングシステムの耐障害性とセキュリティを向上させるシステム
JP4168305B2 (ja) Icカードとマイクロコンピュータ
JP3788881B2 (ja) Icカードと半導体集積回路装置
JP3492494B2 (ja) 乱数発生回路
JP3701100B2 (ja) クロック生成回路及びクロック生成方法
US20210133064A1 (en) Mode controller and integrated circuit chip including the same
JP6516097B2 (ja) 演算装置、icカード、演算方法、及び演算処理プログラム
KR20230144619A (ko) 보안 직렬 주변 장치 인터페이스 통신
EP3843317A1 (en) Method for detecting perturbations in a logic circuit and logic circuit for implementing this method
CN117131549A (zh) 一种芯片加密方法及加密芯片
KR20020062432A (ko) 스마트 카드 방지 장치

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050315

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050726

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050804

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050930

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060324

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060420

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060612

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: 20060628

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060628

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: 20100714

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

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: 20110714

Year of fee payment: 5

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: 20120714

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130714

Year of fee payment: 7

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