JPWO2005027403A1 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JPWO2005027403A1 JPWO2005027403A1 JP2005513820A JP2005513820A JPWO2005027403A1 JP WO2005027403 A1 JPWO2005027403 A1 JP WO2005027403A1 JP 2005513820 A JP2005513820 A JP 2005513820A JP 2005513820 A JP2005513820 A JP 2005513820A JP WO2005027403 A1 JPWO2005027403 A1 JP WO2005027403A1
- Authority
- JP
- Japan
- Prior art keywords
- data
- expression
- information processing
- bit
- arithmetic unit
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/75—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
- G06F21/755—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
- G06K19/07309—Means for preventing undesired reading or writing from or onto record carriers
- G06K19/07363—Means for preventing undesired reading or writing from or onto record carriers by preventing analysis of the circuit, e.g. dynamic or static power analysis or current analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/125—Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
Description
以下、図6および図7を用いてICカードの構成の概要について説明する。
なお、接触式と非接触式のICカードは、その本体は、本質的に同じICチップなので、以下、接触式のICカードについてのみ説明することにする。
図6は、ICカードの概観とICチップの端子を示す平面図である。
図7は、ICカードに搭載されるICの基本的構成を示すブロック図である。
ICカードの基本概念は、図6に示すように、カード101の上に、ICカード用チップ102を搭載したものである。図に示すように、一般にICカードは、所定位置に、供給電圧端子Vcc、グランド端子GND、リセット端子RST、入出力端子I/O、および、クロック端子CLKを有する。この端子の位置は、ISO7816の規格に定められている。これらの諸端子を通して、リーダーライタから電源の供給やリーダライタとのデータの通信をおこなう。
ICカードに搭載される半導体チップの構成は、基本的には通常のマイクロコンピュータと同じ構成である。図7に示されるように、カード部材用の半導体チップは、中央処理装置(CPU)201、記憶装置204、入出力(I/O)ポート207、コプロセッサ202を有する。システムによってはコプロセッサがない場合もある。CPU201は、論理演算や算術演算などをおこなう装置であり、記憶装置204は、プログラムやデータを格納する装置である。入出力ポートは、リーダライタと通信をおこなう装置である。コプロセッサは、暗号処理そのもの、または、暗号処理に必要な演算を高速におこなう装置である。例えば、RSA暗号の剰余演算をおこなうための特別な演算装置や、DES暗号の処理をおこなう装置などがある。なお、ICカード用プロセッサの中には、コプロセッサを持たないものも多くある。データバス203は、各装置を接続するバスである。
記憶装置204は、ROM(Read Only Memory)やRAM(Random Access Memory)、EEPROM(Electric Erasable Programable Read Only Memory)などで構成されている。ROMは、記憶情報を変更できないメモリであり、主にプログラムを格納するメモリである。RAMは、自由に書き換えができるメモリであるが、電源の供給が中断されると、記憶している内容は消滅する。EEPROMは、電源の供給が中断されてもその内容を保持することができるメモリである。このEEPROMは記憶情報を書き換える必要があり、ICカードがリーダライタから抜かれても、保持が可能なデータを格納するために使われる。例えば、プリペイドカードでの使用金額などは、EEPROMに保持される。
このようなICカードでは、暗号化が必須の技術となっている。暗号化に関してICカードのセキュリティを高めるために以下の文献がある。
・特開2001−5731号公報
・特開2003−152702号公報
・特開2002−311826号公報
・岡本栄司「暗号理論入門」共立出版、1993(pp.33−41)
このようなときに、第一に問題となるのは、ハッカーがデータと電流の関連性を観測して、観測した消費電流の波形からICカード用チップ内での処理や暗号鍵を推測する攻撃を仕掛けてくることである。
また、第二に問題となるのは、ハッカーがチップに故意に誤動作を起こさせ、正常動作と比較して内部の秘密情報(例えば、暗号の秘密鍵)を取り出そうとすることである。
以下、この課題について詳細に説明する。
先ず、図8を用いて第一の技術的課題について説明する。
図8は、ICカードにおける消費電流の波形の例を示すグラフである。
ICカードは、プログラムや重要な情報がICカード用チップの中に密閉されているため、重要な情報の格納や、カードの中で暗号処理をおこなうために用いられる。従来、ICカードでの暗号を解読する難しさは、暗号アルゴリズムの解読の困難さと同じと考えられていた。
しかしながら、ICカードが暗号処理をおこなっている時の消費電流を観測し、解析することにより、暗号アルゴリズムの解読より容易に暗号処理の内容や暗号鍵が推定される可能性が示唆されている。消費電流は、リーダライタから供給されている電流を測定することにより観測することができる。それは、次のような理由による。ICカード用チップを構成しているCMOSは、出力状態が1から0、あるいは、0から1に変わった時に電流を消費する。特に、図7に示されるデータバス203においては、バスドライバーの電流や、配線、および、配線に接続されているトランジスタの静電容量のため、バスの値が1から0、あるいは、0から1に変わると、大きな電流が流れる。そのため、消費電流を観測すれば、ICカード用チップの中で、何が動作しているか分かる可能性がある。
ICカード用チップの1サイクルでの消費電流の波形は、図7に示されるように、処理しているデータに依存して、電流波形が301や302のように異なる。このような差は、バス203を流れるデータや中央演算装置201で処理しているデータに依存して生じる。
コプロセッサ202は、CPUと並列に、例えば、512ビットの剰余演算をおこなうことができる。そのため、CPUの消費電流とは異なった消費電流波形の長時間の観測が可能である。その特徴的な波形を観測することにより、コプロセッサの動作回数を容易に測定することができる。コプロセッサの動作回数が暗号鍵と何らかの関係があるならば、動作回数から暗号鍵を推定できる可能性がある。また、コプロセッサでの演算内容に暗号鍵に依存した偏りがあると、その偏りが消費電流から求められ、暗号鍵が推定される可能性がある。
CPUでも同様の事情が存在する。暗号鍵のビットパタンは決まっている。このため、処理するデータを変更して消費電流を観測することにより、暗号鍵のビットパタンの影響が観測できる可能性がある。これらの消費電流の波形を統計的に処理することにより、暗号鍵を推定できる可能性がある。
したがって、データと電流の関連性を減少させれば、電流からデータを推定することが困難になる。例えば、データの道であるバスラインやメモリを暗号化する方法が考えられる。この考え方を実現する方法について述べたものに、特開2001−5731号公報、特開2003−152702号公報がある。
しかしながら、このような方法では、演算装置の消費電流に関する情報を隠すことができない。上記特開2001−5731号公報、特開2003−152702号公報の方法においては、演算装置に入力するデータは、正しいものでなければならないため、入力する前にデータを復号しなければならない。例えば、上記の特開2001−5731号公報、特開2003−152702号公報に開示されている方法では、データと乱数K(データ暗号化鍵)とを排他的論理和(EXOR)することにより暗号化しているが、例えば、二つのデータA,Bに対する加算A+Bについては、
(A EXOR K)+(B EXOR K)≠(A+B) EXOR K
であるので、データ暗号化の鍵Kで暗号化したデータをそのまま演算して、復号することはできない。
したがって、演算器にデータを入力する前に鍵Kによって再びデータを元のものに復号化する必要があり、演算器内部では、元のA,Bを処理することになる。したがって、このような方法では、演算器の消費電流に関する情報を隠すことはできないという問題点がある。
また、データと電流の関連性を減少させるための別のアプローチもある。
特開2002−311826号公報では、特定の暗号処理について、上記特開2001−5731号公報、特開2003−152702号公報とは、異なる考え方でデータと電流の関連性を減少させている。
この特開2002−311826号公報の方法では、「転字・換字を行うポジ用スクランブル回路とネガ用スクランブル回路」を並列動作させ、電流の撹乱をおこなう方法を提示している。
この転字・換字を行うポジ用スクランブル回路とネガ用スクランブル回路は、DES暗号などで用いられるF関数、特にS−BOXの処理を抽象したものである。S−BOXについては、岡本栄司「暗号理論入門」共立出版、1993(pp.33−41)に記載されている。S−BOXの処理は、本質的にはビットパタンの置き換え(転字・換字)であり、結線回路で構成される。転字・換字は、演算ではない。演算とは、S,T二つの値に対して、一つの値Uを対応させるものであり、例えば、U=S+T、U=S*Tのような算術演算や、論理和U=S OR Tや論理積U=S AND Tなどの論理演算があるが、転字・換字は、この意味の演算には成り得ない。
したがって、「転字・換字を行うポジ用スクランブル回路とネガ用スクランブル回路」の並列動作によっては、算術演算や、論理演算処理の電流の情報を隠すことはできない。また、この方法では、バスラインで消費される電流の情報を隠すことはできない。
このようにいずれの従来的においても、演算に伴う消費電力の情報を隠すことができないという問題点があった。
次に第二の技術課題について説明する。
一般に、チップは、以下のような異常環境においた際に、誤動作する可能性がある。
・異常高電圧/低電圧の供給
・異常高温/低温
・異常高周波クロック信号/低周波クロック信号の供給
・ストロボフラッシュ(強い光の照射)
ICカードから不正に秘密情報を取り出す攻撃者は、上記のような異常環境を利用することがある。例えば、暗号処理をおこなっている際に、故意に誤動作を引き起こし、正常動作と比較することで、暗号の鍵を取り出すなどの行為がそれである。ストロボを用いたアタックの方法が書かれている。
本願発明者は、実際にストロボ照射を用いたアタックの方法などによって、ICチップを上記のような異常環境で動作させる実験を繰り返しおこない、その誤動作を観察し、内部処理データの各ビットが、全て高電位となるか、全て低電位になることが非常に多いことを見出した。
従来、誤動作の検出のうち、有効なものとして、パリティチェックや、同一の二つ以上の演算器の結果を比較するなどの方法が取られていた。正常な環境下での誤動作は、1ビット反転などの現象が主であるので、このような対策が有効である。
しかしながら、同一の演算器では、データビット全部が高電位(あるいは低電位)になった場合は、誤動作を検出できない。これは、攻撃者が故意に誤動作を誘発することによって生ずる誤動作であり、正常時の処理の誤動作を検出する場合には想定されていないものである。
本発明は、上記問題点を解決するためになされたもので、その目的は、ICカードにおいて、カード部材、特に、ICカード用チップでのデータ処理と消費電流との関連性を減少させることにより、セキュリティを高めることにある。
また、別の目的は、チップに故意に誤動作を起こさせ、正常動作と比較して内部の秘密情報を取得するような攻撃がされた場合に、誤動作を検出してデータの盗用を防止することによりセキュリティを高めることにある。
本発明では、0と1の2値データで情報を扱い記憶するICカードにおいて、内部データとして、互いにビット反転した関係にある正表現データと負表現データの表現形式のデータを持たせる。表現形式の判別は、データと対に持たせた鍵データによりおこなうようにする。そして、正表現データの演算をおこなう第一演算装置、負表現データの演算をおこなう第二演算装置とを設けて、正表現データと負表現データの表現形式を持つ入力データを各々の演算装置に適合する形式に変換し、正表現データの形式の入力データを第一演算装置、負表現データの形式の入力データを第二演算装置で並列して演算させる。その結果の出力は、ランダムに選択されて、内部の記憶装置に格納される。正表現データの演算をおこなう第一演算装置、負表現データの演算をおこなう第二演算装置とは、並列に動作する。したがって、外部からの消費電流を計測することを困難にする。
以上のように本発明の情報処理装置の構成により、データと消費電流の関連性を減少させることができて、ICカードのセキュリティを高めることができる。
また、第一演算装置と第二演算装置のビット反転した関係にあるので、それをみたさないときには、エラーとして出力を停止する。これにより、異常入力があったときには、外部への出力がなくなるので、チップに故意に誤動作をおこさせて、内部の秘密情報を取得するような攻撃から防衛される。
本発明によれば、ICカードにおいて、カード部材、特に、ICカード用チップでのデータ処理と消費電流との関連性を減少させることにより、セキュリティを高めることができる。
また、本発明によれば、チップに故意に誤動作を起こさせ、正常動作と比較して内部の秘密情報を取得するような攻撃がされた場合に、誤動作を検出してデータの盗用を防止することによりセキュリティを高めることができる。
したがって、高いセキュリティを持つカード部材などの耐タンパ−情報処理装置を提供することができる。
図2は、本発明の第一の実施形態に係る分配器417の構成を示すブロック図である。
図3は、分配器417において、入力データを反転して、8ビットに拡張する結線回路の模式図である。
図4は、分配器417において、入力データを8ビットに拡張する結線回路の模式図である。
図5は、本発明の第二の実施形態に係る分配器417の構成を示すブロック図である。
図6は、ICカードの概観とICチップの端子を示す平面図である。
図7は、ICカードに搭載されるICの基本的構成を示すブロック図である。
図8は、ICカードにおける消費電流の波形の例を示すグラフである。
Vcc:電源端子、RST:リセット端子、CLK:クロック端子、GND:グランド端子、I/O:入出力端子、
201…CPU:中央処理装置、202…COPRO:コプロセッサ、207…I/O:入出力ポート、204…MEM:記憶装置、205…PA:プログラム領域、206…DA:データ領域、
401…RAM:連続して読み書き可能なメモリ、406…RNG:乱数発生装置、408…COMP:比較器、411…Posi:正論理の演算装置、412…Nega:負論理の演算装置、417…DISP:分配器、420…REG:レジスタ、421,422…R1:第一レジスタ,423,424…R2:第二レジスタ、
501…PDBUF:正論理で表現されたデータ用のバッファ、502…NDBUF:負論路で表現されたデータ用のバッファ、505…INV:反転拡張装置、506…EXT:拡張装置、507…DBUF:データバッファ、508…K:1ビットの暗号化鍵データバッファ、
801…PDBUF:正論理で表現されたデータ用のバッファ、802…NDBUF:負論路で表現されたデータ用のバッファ、805…EXT:拡張装置、807…DBUF:データバッファ、812…K:1ビットの暗号化鍵データバッファ(その一)、808…J:1ビットの暗号化鍵データバッファ(その二)。
発明の実施するための最良の形態
以下、本発明に係る各実施形態を、図1ないし図5を用いて説明する。
〔本発明の原理〕
先ず、上記の技術的課題を解決を解決するための本発明の原理について説明する。
第一の技術的課題を解決するため、本発明では、極性の異なる演算器に着目する。通常の計算機では、データの1と0に対し、1を高電位とし0を低電位とする構成と、0を高電位とし1を低電位とする構成の二通りがある。前者を正論理回路、後者を負論理回路などということもある。例えば、高電位をH、低電位をLで表現すると、バイナリデータ「11010010」は、正論理では、「HHLHLLHL」、負論理では、「LLHLHHLH」で表現する。このような電気的違いにより、消費電力パタンもまた異なる。以下、1をH、0をLで表現するデータ形式を正表現、1をL、0をHで表現するデータ形式を負表現と呼ぶことにする。
本発明では、この現象を利用するために、データAを正表現するか、負表現するかを決める鍵データKを当該データAに付随させ、データ対(A,K)の形で処理をおこなう。例えば、K=1であれば、Aは正表現されており、K=0であれば、Aは負表現されていると定める。
このように定めた場合、データAの二進数表現を(A[N−1],A[N−2],…,A[0])(A[J]=0または1)に対し、1ビットの鍵Kを用いて、
POSI(A,K)=(A[N−1] EXOR NOT(K),A[N−2] EXOR NOT(K),…,A[0] EXOR NOT(K))…(式1)
とすれば、これはAの正表現となる。逆に、
NEGA(A,K)=(A[N−1] EXOR K,A[N−2] EXOR K,…,A[0] EXOR K) …(式2)
とすれば、Aの負表現が得られる。
以下、正論理の演算器をP−ALU、負論理の演算器をN−ALUと書くことにする。一般に、演算は、二つのデータA1,A2に対してなされる。論理演算、算術演算などを総称してOPと表現すると、A1とA2に対して演算OPを施して得られた結果をA3とするという操作を
A3 = A1 OP A2
のように書くことができる。
以下、正論理の演算器をP−ALU、負論理の演算器をN−ALUと書くことにする。P−ALUでは、
A3(正表現)= A1(正表現) OP A2(正表現)
N−ALUでは、
A3(負表現)= A1(負表現) OP A2(負表現)
となる。
そこで、データと鍵データの対(A,K)から、POSI(A,K),NEGA(A,K)を計算する分配回路を設け、P−ALUでは、
POSI(A1,K1) OP POSI(A1,K2)
の計算をおこない、N−ALUでは、
NEGA(A1,K1) OP NEGA(A1,K2)
を計算する。P−ALUの演算結果は、A3の正表現であり、N−ALUの演算結果は、A3の負表現である。そこで、このいずれかをランダムに選ぶ選択回路を設け、P−ALUの結果を選択するときは、K3=1とし、N−ALUの結果を選択するときは、K3=0とすれば、結果は(A3,K3)と書くことができる。
ここで、P−ALUとN−ALUの動作電流は異なり、P−ALUでのPOSIとN−ALUでのNEGAは、並列に動作することに留意する。そのため、この方法によって、消費電流の波形から、処理や暗号鍵の推測を困難にすることが可能となる。
次に、第二の技術的課題を解決するために、以下のようにする。
上記の方法において用いられたP−ALUの出力値AとN−ALUの出力Bの反転値NOT(B)が一致するかどうかを調べる比較器を設け、比較結果が一致しているときは、処理を継続し、不一致であれば、エラーとしてリセットして、結果を出力しないようにする。P−ALUの出力とN−ALUの出力は、ビット反転の関係が成り立たなければならないので、エラーが検出される。先に述べたように、故意に引き起こしたエラーは、データ全体が、全て高電位(または低電位)のように起きることが多い。したがって、P−ALUの出力とN−ALUの出力は、共に、高電位(または低電位)となる可能性が高い。この場合、両出力はビット反転の関係にないので、エラーが検出される。
上記のように本発明により、セキュリティの高いICカードを提供することができる。
また、本発明は、既存技術と組み合わせて使うことにより、よりセキュリティを高めることができる。例えば、特開2001−5731号公報はバスラインやメモリの暗号化方法について開示されたものであるが、これらの技術との組み合わせは有効と考えられる。すなわち、特開2001−5731号公報に開示された技術によりバスラインやメモリの暗号化をおこない、CPUに関しては、本発明を用いることにより、より広範囲の内部データを暗号化して処理することができ、セキュリティを向上させることができる。
〔実施形態1〕
以下、本発明に係る第一の実施形態を、図1ないし図4を用いて説明する。
図1は、本発明の一実施形態に係るICカードの構成を示すブロック図である。
図2は、本発明の第一の実施形態に係わる分配器417の構成を示すブロック図である。
図3は、分配器417において、入力データを反転して、8ビットに拡張する結線回路の模式図である。
図4は、分配器417において、入力データを8ビットに拡張する結線回路の模式図である。
図4に示されるように、本発明の一実施形態に係るICカードは、RAM401、P−ALU411、N−ALU412、乱数発生装置406、比較器408、分配器417、入力データバッファ413,414,415,416、出力データバッファ409,410、レジスタ420、リードデータバス419、リードデータ用鍵バス418、選択器407より構成される。
より詳細には、RAMの内部には、データ403と鍵データ402のように両者が組となって格納されている。データは、必ず鍵データを伴う。ここでは、物理的に近いように描いたが、データと組にして転送されるのであれば、物理的に離れていてもよい。
レジスタ420の内部もRAMと同様に、データ422と鍵データ421が組となって格納されている。
なお、ここには示していないが、プログラムは、通常、ROMやEEPROMに格納されており、前記ALUは、当該プログラムに従って動作する。また、煩雑化を避けるため、アドレスバスの説明や、クロック信号の説明も省略することにする。
ここでは、各構成要素の働きを明らかにするため、RAM上の二つのデータA,Bに対して、加算処理をする場合を考える。通常、この処理は、「RAM上の二つのデータA,BをそれぞれレジスタR1,R2に転送する」(処理1)、
「レジスタR1,R2のデータを演算器に転送し、加算処理をおこなう」(処理2)、「加算の結果を再びレジスタR2に転送する」(処理3)
という一連の動作から構成されている。
本実施形態においては、RAM401に格納されているデータは、先に説明したように、
(データ,鍵データ)
の形で保持される。ここでは、データA(403)鍵データK1(402)は、1ビットとし、正表現であれば1、負表現であれば0とする。データのビット長には任意性があるが、ここでは8ビットとしておく。(処理1)では、データ403(A)は、データバス405、鍵データ402は、鍵データバス404を通って、データレジスタR1(422)、鍵データレジスタ421に転送される。同じようにデータB(426)と鍵データK2(425)もそれぞれデータレジスタR2(423)、鍵データレジスタ424に転送される。
次に、これらのデータは、順番に、データバス419、鍵データバス418を通って、分配器417に転送される。この分配器417は、図2のような構成の回路である。
分配器417の構成を説明する。分配器417は、バッファとして、正表現データのバッファ501、負表現データのバッファ502を有する。ここでバッファとは、物理的にはレジスタと同じもので、データの一時的な記憶に用いられるものである。また、排他的論理和回路503と排他的論理和回路504は、8ビットの排他的論理和を計算する回路である。拡張器505は、図3に示すように、1ビット入力をインバータ601を用いてビット反転し、これを8ビットに拡張する拡張器である。拡張期506は、図4に示すように、1ビットの入力を8ビットに拡張する回路である。
入力データバッファ507は、データの入力バッファ、鍵データバッファ508は、1ビットの鍵データのバッファである。データバス509は8ビットのデータバス、鍵データバス510は、1ビットの鍵データバスである。
分配器の動作は、以下の通りである。8ビットのデータDは、データバス509を通って入力データバッファ507に転送される。同じく、データDが正表現であるか負表現であるかを示す鍵データKも鍵データバス510を通って、鍵データバッファ508に転送される。鍵データKは、拡張器506によって8ビットに拡張され、排他的論理和回路504に入力される。データバッファ507のデータは、そのまま、排他的論理和回路504に入力され、鍵データとの排他的論理和が計算され、負表現データバッファ502に入力される。同時に、データバッファ507のデータは、排他的論理和回路503に入力される。鍵データバッファ508のデータは、図3に示す否定拡張回路に入力され、その鍵データの値を反転して、これを8ビットに拡張するものである。この8ビットのデータは、排他的論理和回路503に入力され、データバッファ507のデータとの排他的論理和が計算され、正表現データバッファ501に入力される。
分配器によって、データA,Bが、それぞれに随伴する鍵データK1、K2に従って、データバッファ413,414,415,416に転送され、それぞれ正表現のデータの演算をおこなうP−ALU411、負表現のデータの演算をおこなうN−ALU412に送られる。これらの演算器でおこなわれる演算は、(式1)、(式2)で示したものである。本例では、それぞれの演算器で、並列して加算処理され(処理2)、正表現用のデータバッファ409、負表現用のデータバッファ410に格納される。そして、これらのデータは、比較器408に入力される。P−ALU411とN−ALU412で並列に演算されることにより、外部からの消費電力の推測を困難にすることは、〔本発明の原理〕でも述べたところである。
この比較器は、バッファ409、410の値に対し、そのビット毎の排他的論理和を取り、結果の8ビット全ての論理積を取り、これを制御信号とする。制御信号は、1であれば、情報処理装置をリセットし、0であれば処理を継続させるものである。すなわち、得られた両者の出力データがビット反転しているか否かを調べるものである。
この制御信号が0であり、処理が継続されるものとすると、データバッファ409、410の値を乱数発生装置406の出力する1ビットに合わせて選択する選択装置407に入力される。
選択回路407は、乱数発生装置406の出力ビットが1であれば、正表現のデータを鍵データバス404を通してレジスタR2の鍵データレジスタ部424に転送する。乱数発生装置406の出力ビットは、比較器407にも転送され、この比較器407は、そのビットが1であれば、正表現データ409を、データバス405を通して、レジスタR2のデータ部423に転送する。
これにより、鍵データと対となった正表現データを、R2に得ることができる(処理3)。同様に、乱数発生装置406の出力ビットが0のときは、鍵データと対となった負表現データを得ることができる。
鍵データと対となった正表現データと鍵データと対となった負表現データを得る動作は、並列して動作し、外部からの消費電力を推測することを困難にする。
なお、本実施形態では、P−ALU411とN−ALUの両者の動作タイミングについては触れなかったが、例えば、入力データバッファ413,414,415,416のデータに対してALUへの入力タイミングを与える信号(通常はICチップに外部から供給されているクロック信号)に従って、そのバッファ群のバスドライバを同時に動作させればよい。なお、本実施形態の並列に演算されるとは、同一のクロック信号に従って動作させるという意味であり、信号の遅延程度のずれを許容するという意味である。
〔実施形態2〕
以下、本発明に係る第二の実施形態を、図5を用いて説明する。
図5は、本発明の第二の実施形態に係る分配器417の構成を示すブロック図である。
第一の実施形態は、鍵データが1ビットの場合であったが、本実施形態は、鍵データを、2ビットにしたものである。
2ビットにする場合のICカードの基本的な構成は、図1に示したブロック図の構成と同じである。
本実施形態では、鍵データバス404、418は2ビットのバスとする(物理的に、信号線が二本になる)。分配器417の構成も変えなければならない。
ここでは、2ビットの信号に対して、例えば、01を正表現、10を負表現に対応させる。00、11という信号は使わないものとする。鍵データのどのビットパタンに正表現、負表現を対応させるかには任意である。
分配器417の構成は、図5に示すようになる。分配器417は、バッファとして、正表現データのバッファ801、負表現データのバッファ802を有する。排他的論理和回路803と排他的論理和回路804は、8ビットの排他的論理和を計算する回路である。拡張器805は、1ビット入力を8ビットに拡張する回路である(図4参照)。入力バッファ807は、データの入力バッファ、鍵データバッファ808,812は、1ビットの鍵データバッファである。データバス809は8ビットのデータバス、鍵データバス810,811は、それぞれ1ビットの鍵データバスである。したがって、鍵データの表現としては、2ビットを使用することになる。
分配器417の動作は、以下の通りである。8ビットのデータDは、データバス809を通って入力データバッファ807に転送される。同じく、データDが正表現であるか負表現であるかを示す鍵データK、Jもそれぞれ鍵データバス810、811を通って、鍵データバッファ812、808に転送される。鍵データKは、拡張器805によって8ビットに拡張され、排他的論理和回路803に入力される。同様に、データバッファ807のデータは、そのまま、排他的論理和回路504に入力され、鍵データとの排他的論理和が計算され、負表現データバッファ502に入力される。同時に、データバッファ507のデータは、排他的論理和回路503に入力される。鍵データバッファ508のデータは、図3に示す否定拡張回路に入力され、その鍵データの値を反転して、これを8ビットに拡張するものである。当該8ビットは、排他的論理和回路503に入力され、データバッファ507のデータとの排他的論理和が計算され、正表現データバッファ501に入力される。
そして、正表現と負表現の演算回路によって、それぞれ演算されて、その後、乱数により、正表現と負表現のいずれかを選択されて、レジスタに転送されるのは、第一の実施形態と同様である。
本実施形態では、鍵データバスを2ビットで表現して、それぞれ「01」「10」により、鍵データを表現した。データ秘匿の観点から言えば、鍵データ自体が0、1が同数の数使われているために、プリチャージバスなどで、電流に着目した鍵データの解析がおこなわれにくくなる利点がある。
Claims (12)
- 0と1の2値データの一方を電圧の高電位で表現し、他方を低電位で表す情報処理装置において、
前記1を高電位、前記0を低電位として演算をおこなう第一演算装置と、
前記0を高電位、前記1を低電位として演算をおこなう第二演算装置とを有し、
互いにビット反転した関係にある正表現データと負表現データの表現形式を持つ入力データを各々の演算装置に適合する形式に変換して、
前記正表現データの形式の入力データを前記第一演算装置、前記負表現データの形式の入力データを前記第二演算装置で並列して演算させ、
前記第一演算装置で正表現データの形式の出力データを、前記第二演算装置で負表現データ形式の出力データを得ることを特徴とする情報処理装置。 - 前記正表現データと前記負表現データの形式の識別を、鍵データによりおこなうようにして、
しかも、正表現データを表す鍵データと、負表現データを表す鍵データは、互いにビット反転した関係にあって、
この情報処理装置の中では、前記鍵データをデータと共に、対として取扱うことを特徴とする請求項1記載の情報処理装置。 - 前記情報処理装置は、
さらに、データを格納するレジスタまたは記憶装置を有し、
前記第一演算装置の出力データと前記第二演算装置の出力データのいずれを前記レジスタまたは記憶装置に転送するかを決定する選択部を有することを特徴とする請求項1および請求項2記載のいずれかの情報処理装置。 - 前記第一演算装置の出力データと前記第二演算装置の出力データを比較し、互いにビット反転した関係にあるか否かを判定する判定部を有することを特徴とする請求項1および請求項2記載のいずれかの情報処理装置。
- 前記判定部において、不一致と判定されたときに、エラーとして当該情報処理装置をリセットすることを特徴とする請求項4記載の情報処理装置。
- データ転送手段としてバスラインを有することを特徴とする請求項1記載の情報処理装置。
- 前記鍵データは、1ビットまたは2ビットで表現されたことを特徴とする請求項2記載の情報処理装置。
- 前記第一演算装置の出力データと前記第二演算装置の出力データのいずれを転送するかを選択するに際し、
乱数パターンによりランダムに選択することを特徴とする請求項3記載の情報処理装置。 - 0と1の2値データで情報を扱い記憶するICカードにおいて、
内部データとして、互いにビット反転した関係にある正表現データと負表現データの表現形式のデータを持ち、
正表現データの表現形式の演算結果と負表現データ表現形式の演算結果の両方を求めて、その一方をランダムに選択して、演算の出力データとして記憶することを特徴とするICカード。 - 0と1の2値データで情報を扱い記憶するICカードにおいて、
内部データとして、互いにビット反転した関係にある正表現データと負表現データの表現形式のデータを持ち、
正表現データの表現形式の演算結果と負表現データ表現形式の演算結果の両方を求めて、その出力が互いにビット反転した関係にあるかを判定し、判定の結果、不一致と判定されたときに、エラーとして当該情報処理装置をリセットすることを特徴とするICカード。 - CPUと記憶装置とを有し、
異常入力があったときに、前記CPU内の並列して動作する演算装置の結果を比較することにより、異常入力を検出し、エラーとして前記CPUの出力を停止することを特徴とする請求項10記載のICカード。 - 0と1の2値データの一方を電圧の高電位で表現し、他方を低電位で表す情報処理装置において、
前記1を高電位、前記0を低電位として、正表現データの演算をおこなう第一演算装置と、
前記0を高電位、前記1を低電位として、負表現データの演算をおこなう第二演算装置とを有し、
前記正表現データと前記負表現データは、互いにビット反転した関係にある表現形式を持つデータであることを特徴とする情報処理装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003319313 | 2003-09-11 | ||
JP2003319313 | 2003-09-11 | ||
PCT/JP2004/010251 WO2005027403A1 (ja) | 2003-09-11 | 2004-07-12 | 情報処理装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2005027403A1 true JPWO2005027403A1 (ja) | 2006-11-24 |
Family
ID=34308560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005513820A Pending JPWO2005027403A1 (ja) | 2003-09-11 | 2004-07-12 | 情報処理装置 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2005027403A1 (ja) |
WO (1) | WO2005027403A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127938A (zh) * | 2020-01-14 | 2021-07-16 | 新唐科技股份有限公司 | 安全集成电路及其方法 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4529719B2 (ja) * | 2005-02-16 | 2010-08-25 | ソニー株式会社 | 信号処理回路 |
JP5019210B2 (ja) * | 2007-06-14 | 2012-09-05 | 株式会社東芝 | 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法 |
DE102008023912A1 (de) * | 2008-05-16 | 2009-11-19 | Siemens Aktiengesellschaft | Verfahren und Speichervorrichtung zum Bereitstellen eines kryptografischen Schlüssels |
FR2935823B1 (fr) * | 2008-09-11 | 2010-10-01 | Oberthur Technologies | Procede et dispositif de protection d'un microcircuit contre les attaques. |
JP5262941B2 (ja) * | 2009-04-10 | 2013-08-14 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
JPWO2013190782A1 (ja) * | 2012-06-22 | 2016-02-08 | 日本電気株式会社 | 暗号化処理回路および復号処理回路 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250247A (ja) * | 1988-08-11 | 1990-02-20 | Fujitsu Ltd | センサ処理方式 |
JPH0363816A (ja) * | 1989-08-02 | 1991-03-19 | Advantest Corp | ビット検索装置 |
JPH04245733A (ja) * | 1991-01-31 | 1992-09-02 | Nec Corp | データ伝送方式 |
JPH09282426A (ja) * | 1996-04-17 | 1997-10-31 | Dainippon Printing Co Ltd | Icカード及びその通信方法 |
JP2001005731A (ja) * | 1999-06-24 | 2001-01-12 | Hitachi Ltd | 情報処理装置、カード部材および情報処理システム |
JP2001230771A (ja) * | 2000-01-08 | 2001-08-24 | Koninkl Philips Electronics Nv | データ処理装置およびその操作方法 |
JP2001306346A (ja) * | 2000-04-19 | 2001-11-02 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
JP2002035384A (ja) * | 1993-05-20 | 2002-02-05 | Le Tekku:Kk | 最終遊技機制御用マイクロコンピュータチップの製造方法 |
JP2002526845A (ja) * | 1998-09-30 | 2002-08-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 伝送データに不依存な電力消費を呈するデータバス手段を備えたデータキャリア装置 |
JP2002261751A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 暗号処理方法 |
JP2002366029A (ja) * | 2001-06-13 | 2002-12-20 | Fujitsu Ltd | Dpaに対して安全な暗号化 |
JP2003152702A (ja) * | 2001-11-16 | 2003-05-23 | Hitachi Ltd | 情報処理装置 |
JP2003526134A (ja) * | 1998-11-03 | 2003-09-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電力消費が不明確であるデータキャリア |
JP2004206680A (ja) * | 2002-12-13 | 2004-07-22 | Renesas Technology Corp | 半導体集積回路及びicカード |
-
2004
- 2004-07-12 WO PCT/JP2004/010251 patent/WO2005027403A1/ja active Application Filing
- 2004-07-12 JP JP2005513820A patent/JPWO2005027403A1/ja active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250247A (ja) * | 1988-08-11 | 1990-02-20 | Fujitsu Ltd | センサ処理方式 |
JPH0363816A (ja) * | 1989-08-02 | 1991-03-19 | Advantest Corp | ビット検索装置 |
JPH04245733A (ja) * | 1991-01-31 | 1992-09-02 | Nec Corp | データ伝送方式 |
JP2002035384A (ja) * | 1993-05-20 | 2002-02-05 | Le Tekku:Kk | 最終遊技機制御用マイクロコンピュータチップの製造方法 |
JPH09282426A (ja) * | 1996-04-17 | 1997-10-31 | Dainippon Printing Co Ltd | Icカード及びその通信方法 |
JP2002526845A (ja) * | 1998-09-30 | 2002-08-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 伝送データに不依存な電力消費を呈するデータバス手段を備えたデータキャリア装置 |
JP2003526134A (ja) * | 1998-11-03 | 2003-09-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 電力消費が不明確であるデータキャリア |
JP2001005731A (ja) * | 1999-06-24 | 2001-01-12 | Hitachi Ltd | 情報処理装置、カード部材および情報処理システム |
JP2001230771A (ja) * | 2000-01-08 | 2001-08-24 | Koninkl Philips Electronics Nv | データ処理装置およびその操作方法 |
JP2001306346A (ja) * | 2000-04-19 | 2001-11-02 | Matsushita Electric Ind Co Ltd | 演算処理装置 |
JP2002261751A (ja) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | 暗号処理方法 |
JP2002366029A (ja) * | 2001-06-13 | 2002-12-20 | Fujitsu Ltd | Dpaに対して安全な暗号化 |
JP2003152702A (ja) * | 2001-11-16 | 2003-05-23 | Hitachi Ltd | 情報処理装置 |
JP2004206680A (ja) * | 2002-12-13 | 2004-07-22 | Renesas Technology Corp | 半導体集積回路及びicカード |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127938A (zh) * | 2020-01-14 | 2021-07-16 | 新唐科技股份有限公司 | 安全集成电路及其方法 |
CN113127938B (zh) * | 2020-01-14 | 2023-05-12 | 新唐科技股份有限公司 | 安全集成电路及其方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2005027403A1 (ja) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11861047B2 (en) | Masked gate logic for resistance to power analysis | |
KR100837270B1 (ko) | 스마트 카드 및 그것의 데이터 보안 방법 | |
US20170046281A1 (en) | Address dependent data encryption | |
US8675868B1 (en) | Encrypting an address-dependent value along with code to prevent execution or use of moved code | |
US7086087B1 (en) | Information processing device, card device and information processing system | |
CN100356342C (zh) | 信息处理装置 | |
KR20040053101A (ko) | 정보 누출이 감소된 장치 및 방법 | |
JP5693927B2 (ja) | 故障利用攻撃の検出方法及び検出装置 | |
EP2990953B1 (en) | Periodic memory refresh in a secure computing system | |
JP2001268072A (ja) | 情報処理装置、情報処理方法、及びカード部材 | |
Tunstall | Smart card security | |
JP2002311826A (ja) | 暗号化・復号化装置、暗号化・復号化方法、データの暗号化方法及びicカード | |
JP2007328789A (ja) | 入力データに関するアドレスを使用して入力データを符号化するための暗号システム、エラー検出回路、及びそれの動作方法 | |
JPWO2005027403A1 (ja) | 情報処理装置 | |
JP4386766B2 (ja) | データ処理装置における誤り検出 | |
CN107016292B (zh) | 防止通过功率分析进行窃听的电子电路及防止窃听的方法 | |
JP2003523549A (ja) | アルゴリズムを実行する過程で電子回路により遂行される一連の有効オペレーションの安全性を確保する方法 | |
Leng | Smart card applications and security | |
US20060117383A1 (en) | Smart cards, methods, and computer program products for using dummy currents to obscure data | |
US20050041803A1 (en) | On-device random number generator | |
JP2005149262A (ja) | 情報処理装置 | |
JP4435593B2 (ja) | 耐タンパー情報処理装置 | |
Mahmoud et al. | Novel algorithmic countermeasures for differential power analysis attacks on smart cards | |
Zhao | Research on Encryption Technology in Contactless IC Card | |
JP2013157761A (ja) | 半導体装置及び演算処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060130 |
|
AA64 | Notification of invalidation of claim of internal priority (with term) |
Free format text: JAPANESE INTERMEDIATE CODE: A241764 Effective date: 20060530 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060614 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090630 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090824 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100406 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20100510 |