JPWO2005027403A1 - Information processing equipment - Google Patents
Information processing equipment 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Storage Device Security (AREA)
Abstract
内部データを、互いにビット反転した関係にある正表現データと負表現データの表現形式を持つようにし、それらの表現形式で演算する演算装置を並列に動作させる。そして、結果の出力をランダムに選択するようにして、正表現データと負表現データの表現形式のいずれか一方をICカード内で記憶するように動作させる。内部データとしては、表現形式を示す鍵データとデータを対として記憶する。また、それぞれの表現形式の演算装置の出力結果が、ビット反転した関係を保っているかを検証する。このようにすれば、ICカードにおいて、ICカード用チップでのデータ処理と消費電流との関連性を減少させ、セキュリティを高めることができる。また、チップに故意に誤動作を起こさせ、正常動作と比較して内部の秘密情報を取得するような攻撃がされた場合に、誤動作を検出してデータの盗用を防止できる。The internal data is made to have the expression form of the positive expression data and the negative expression data that are bit-inverted to each other, and the arithmetic devices that operate in these expression forms are operated in parallel. Then, the output of the result is selected at random so that one of the expression formats of the positive expression data and the negative expression data is stored in the IC card. As internal data, key data indicating the expression format and data are stored as a pair. Also, it is verified whether the output results of the arithmetic units of the respective expression formats have the bit-inverted relationship. By doing so, in the IC card, it is possible to reduce the relation between the data processing in the IC card chip and the current consumption, and improve the security. Further, when an attack is made to intentionally cause the chip to malfunction and acquire internal secret information as compared with the normal operation, it is possible to detect the malfunction and prevent data theft.
Description
本発明は、情報処理装置に係り、高いセキュリティを持つ耐タンパ−情報処理装置であって、特にICカードなどに用いて好適な情報処理装置に関する。 The present invention relates to an information processing device, and more particularly to a tamper resistant information processing device having high security, and particularly to an information processing device suitable for use in an IC card or the like.
近年、あらゆる分野で個人情報を取り扱うために従来の磁気カードに変わり、ICカードが用いられるようになってきている。磁気カードでは、情報を蓄積するのをストリップに磁気を塗布することでおこなっていたが、ICカードでは、カードにICを埋め込んでそこで演算と情報を蓄積をおこなうことができる。そのために、ICカードでは、勝手に書き換えることが許されないような個人情報の保持や、秘密情報である暗号鍵を用いたデータの暗号化や、暗号文の復号化をおこなうことができる。ICカード自体は電源を持たず、接触式のICカードでは、ICカード用のリーダライタに差し込まれると、電源の供給を受け、動作可能となる。また、非接触式のICカードは、リーダライタから発する電波を受け、電磁誘導の原理を利用して電力を起こすことによって動作可能となる。ICカードは、動作可能になると、リーダライタから送信されるコマンドを受信し、そのコマンドに従って、データの転送等の処理をおこなう。
以下、図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)In recent years, IC cards have been used instead of conventional magnetic cards for handling personal information in all fields. In the magnetic card, the information is stored by applying magnetism to the strip, but in the IC card, the IC can be embedded in the card and the calculation and the information can be stored therein. Therefore, the IC card can hold personal information that cannot be arbitrarily rewritten, encrypt data using an encryption key that is secret information, and decrypt ciphertext. The IC card itself does not have a power source, and when the contact type IC card is inserted into a reader/writer for an IC card, it is supplied with power and can operate. Further, the non-contact type IC card can be operated by receiving a radio wave emitted from the reader/writer and generating electric power by utilizing the principle of electromagnetic induction. When the IC card becomes operable, it receives a command transmitted from the reader/writer and performs processing such as data transfer according to the command.
The outline of the configuration of the IC card will be described below with reference to FIGS. 6 and 7.
Note that the contact type and non-contact type IC cards have essentially the same IC chips, so that only the contact type IC card will be described below.
FIG. 6 is a plan view showing the appearance of the IC card and the terminals of the IC chip.
FIG. 7 is a block diagram showing the basic configuration of an IC mounted on an IC card.
As shown in FIG. 6, the basic concept of the IC card is to mount an
The structure of the semiconductor chip mounted on the IC card is basically the same as that of a normal microcomputer. As shown in FIG. 7, the semiconductor chip for a card member has a central processing unit (CPU) 201, a
The
In such an IC card, encryption is an essential technology. There are the following documents for increasing the security of the IC card regarding encryption.
Japanese Patent Laid-Open No. 2001-5731, Japanese Patent Laid-Open No. 2003-152702, Japanese Patent Laid-Open No. 2002-311826, Eiji Okamoto "Introduction to Cryptographic Theory" Kyoritsu Shuppan, 1993 (pp.33-41)
上述のように、ICカードでは、暗号化によりデータのセキュリティを高めることができ、これがICカードの有用性の一因ともなっている。セキュリティを高めるためには、悪意によるデータの盗用者(ハッカー)などの攻撃(いわゆる「タンパ」行為)に対して防衛することが必要になる。
このようなときに、第一に問題となるのは、ハッカーがデータと電流の関連性を観測して、観測した消費電流の波形から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カード用チップでのデータ処理と消費電流との関連性を減少させることにより、セキュリティを高めることができる。
また、本発明によれば、チップに故意に誤動作を起こさせ、正常動作と比較して内部の秘密情報を取得するような攻撃がされた場合に、誤動作を検出してデータの盗用を防止することによりセキュリティを高めることができる。
したがって、高いセキュリティを持つカード部材などの耐タンパ−情報処理装置を提供することができる。As described above, in the IC card, the security of data can be enhanced by the encryption, which is one of the reasons why the IC card is useful. In order to improve security, it is necessary to defend against attacks (so-called "tampering") by malicious data thieves (hackers).
In such a case, the first problem is an attack in which a hacker observes the relationship between data and current, and infers the processing in the IC card chip and the encryption key from the waveform of the observed current consumption. Is to come up with.
A second problem is that a hacker intentionally causes the chip to malfunction, and tries to extract internal secret information (for example, a cryptographic secret key) as compared with normal operation.
Hereinafter, this problem will be described in detail.
First, the first technical problem will be described with reference to FIG.
FIG. 8 is a graph showing an example of a waveform of current consumption in an IC card.
The IC card is used for storing important information and performing encryption processing in the card because programs and important information are sealed in the IC card chip. Conventionally, the difficulty of deciphering the cipher with the IC card was considered to be the same as the difficulty of deciphering the encryption algorithm.
However, it is suggested that by observing and analyzing the current consumption when the IC card is performing the cryptographic process, the contents of the cryptographic process and the cryptographic key can be estimated more easily than the decryption of the cryptographic algorithm. The consumption current can be observed by measuring the current supplied from the reader/writer. The reason is as follows. The CMOS that constitutes the IC card chip consumes current when the output state changes from 1 to 0 or from 0 to 1. Particularly, in the
As shown in FIG. 7, the waveform of the current consumption of the IC card chip in one cycle differs depending on the data being processed, such as 301 and 302. Such a difference occurs depending on the data flowing through the
The
The same situation exists in the CPU. The bit pattern of the encryption key is fixed. Therefore, the influence of the bit pattern of the encryption key may be observed by changing the data to be processed and observing the current consumption. There is a possibility that the encryption key can be estimated by statistically processing these consumption current waveforms.
Therefore, if the relationship between the data and the current is reduced, it becomes difficult to estimate the data from the current. For example, a method of encrypting a bus line or a memory, which is a data path, can be considered. Japanese Patent Application Laid-Open No. 2001-5731 and Japanese Patent Application Laid-Open No. 2003-152702 describe methods for realizing this idea.
However, such a method cannot hide the information about the current consumption of the arithmetic unit. In the methods of Japanese Patent Laid-Open No. 2001-5731 and Japanese Patent Laid-Open No. 2003-152702, the data to be input to the arithmetic unit must be correct, so the data must be decoded before inputting. For example, in the methods disclosed in Japanese Patent Laid-Open No. 2001-5731 and Japanese Patent Laid-Open No. 2003-152702, encryption is performed by exclusive OR (EXOR) data and a random number K (data encryption key). For example, for addition A+B for two data A and B,
(A EXOR K)+(B EXOR K)≠(A+B) EXOR K
Therefore, the data encrypted with the data encryption key K cannot be directly calculated and decrypted.
Therefore, it is necessary to decrypt the data into the original data again by the key K before inputting the data to the arithmetic unit, and the original A and B are processed inside the arithmetic unit. Therefore, with such a method, there is a problem in that the information regarding the current consumption of the arithmetic unit cannot be hidden.
There are also other approaches to reducing the association between data and current.
In Japanese Patent Laid-Open No. 2002-311826, the relevance between data and current is reduced in a specific cryptographic process, differently from the above-mentioned Japanese Patent Laid-Open Nos. 2001-5731 and 2003-152702.
The method disclosed in Japanese Patent Laid-Open No. 2002-311826 presents a method in which a "scramble circuit for positive and a scramble circuit for negative for performing transfer/substitution" are operated in parallel to disturb the current.
The positive scramble circuit and the negative scramble circuit that perform the transfer/substitution are abstracted from the F function used in the DES encryption or the like, especially the processing of the S-BOX. The S-BOX is described in Eiji Okamoto, "Introduction to Cryptographic Theory," Kyoritsu Shuppan, 1993 (pp.33-41). The S-BOX process is essentially bit pattern replacement (transposition/substitution), and is composed of a wiring circuit. Transliteration/substitution is not an operation. The operation is to associate one value U with two values S and T. For example, an arithmetic operation such as U=S+T, U=S*T or a logical sum U=S OR T There is a logical operation such as or a logical product U=S AND T, but transliteration/substitution cannot be an operation of this meaning.
Therefore, it is not possible to hide the current information of arithmetic operation or logical operation processing by the parallel operation of "the positive scramble circuit and the negative scramble circuit for transposing/changing characters". In addition, this method cannot hide information on the current consumed in the bus line.
As described above, in any of the conventional methods, there is a problem in that the power consumption information associated with the calculation cannot be hidden.
Next, the second technical problem will be described.
Generally, the chip may malfunction when exposed to the following abnormal environment.
・Abnormal high voltage/low voltage supply ・Abnormal high temperature/low temperature ・Abnormal high frequency clock signal/low frequency clock signal supply ・Strobe flash (strong light irradiation)
An attacker who illegally retrieves secret information from the IC card may use the abnormal environment as described above. For example, an action such as intentionally causing a malfunction during encryption processing and extracting the encryption key by comparing with a normal operation is performed. A method of attack using a strobe is written.
The inventor of the present application repeatedly carried out an experiment of operating the IC chip in the abnormal environment as described above by an attack method using stroboscopic irradiation, observed the malfunction, and confirmed that each bit of the internal processing data was It has been found that it is very often high potential or all low potential.
Conventionally, among the detections of malfunctions, methods such as parity check and comparison of the results of the same two or more arithmetic units have been adopted as effective ones. Malfunctions in a normal environment are mainly due to phenomena such as 1-bit inversion, and such measures are effective.
However, the same arithmetic unit cannot detect a malfunction when all the data bits have a high potential (or a low potential). This is a malfunction that occurs when an attacker deliberately induces a malfunction, and is not assumed when detecting a malfunction in normal processing.
The present invention has been made to solve the above problems, and an object of the present invention is to reduce the relation between data processing and current consumption in a card member, particularly an IC card chip, in an IC card. , To increase security.
Another purpose is to prevent the data from being stolen by detecting the malfunction when the chip intentionally malfunctions and the internal secret information is acquired compared to the normal operation. To improve security.
According to the present invention, in an IC card that handles and stores information with binary data of 0 and 1, internal expression data is provided in the form of positive expression data and negative expression data, which are in a bit-inverted relationship with each other. The expression format is discriminated by the key data paired with the data. Then, by providing a first arithmetic unit for calculating positive expression data and a second arithmetic unit for calculating negative expression data, input data having an expression form of positive expression data and negative expression data is provided to each arithmetic unit. The input data in the form of positive expression data is converted into a suitable form, and the input data in the form of negative expression data is operated in parallel by the second operation device. The resulting output is randomly selected and stored in an internal storage device. The first arithmetic unit for calculating the positive expression data and the second arithmetic unit for calculating the negative expression data operate in parallel. Therefore, it becomes difficult to measure the current consumption from the outside.
As described above, with the configuration of the information processing apparatus according to the present invention, the relation between data and current consumption can be reduced and the security of the IC card can be improved.
Further, since there is a bit-inverted relationship between the first arithmetic unit and the second arithmetic unit, if this is not observed, an output is stopped as an error. As a result, when there is an abnormal input, there is no output to the outside, so the chip is intentionally caused to malfunction, and it is protected from attacks that acquire internal confidential information.
According to the present invention, in an IC card, security can be improved by reducing the relation between data processing and current consumption in a card member, particularly an IC card chip.
Further, according to the present invention, when an attack is made to intentionally cause the chip to malfunction and acquire internal secret information as compared with normal operation, the malfunction is detected to prevent data theft. This can enhance security.
Therefore, it is possible to provide a tamper resistant information processing apparatus such as a card member having high security.
図1は、本発明の一実施形態に係るICカードの構成を示すブロック図である。
図2は、本発明の第一の実施形態に係る分配器417の構成を示すブロック図である。
図3は、分配器417において、入力データを反転して、8ビットに拡張する結線回路の模式図である。
図4は、分配器417において、入力データを8ビットに拡張する結線回路の模式図である。
図5は、本発明の第二の実施形態に係る分配器417の構成を示すブロック図である。
図6は、ICカードの概観とICチップの端子を示す平面図である。
図7は、ICカードに搭載されるICの基本的構成を示すブロック図である。
図8は、ICカードにおける消費電流の波形の例を示すグラフである。FIG. 1 is a block diagram showing the configuration of an IC card according to an embodiment of the present invention.
FIG. 2 is a block diagram showing the configuration of the
FIG. 3 is a schematic diagram of a connection circuit for inverting the input data and expanding it to 8 bits in the
FIG. 4 is a schematic diagram of a connection circuit for expanding the input data to 8 bits in the
FIG. 5 is a block diagram showing the configuration of the
FIG. 6 is a plan view showing the appearance of the IC card and the terminals of the IC chip.
FIG. 7 is a block diagram showing the basic configuration of an IC mounted on an IC card.
FIG. 8 is a graph showing an example of a waveform of current consumption in an IC card.
以下、上記実施形態の主な符号を記す。
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が同数の数使われているために、プリチャージバスなどで、電流に着目した鍵データの解析がおこなわれにくくなる利点がある。Hereinafter, the main symbols of the above-mentioned embodiment are described.
Vcc: power supply terminal, RST: reset terminal, CLK: clock terminal, GND: ground terminal, I/O: input/output terminal,
201... CPU: central processing unit, 202... COPRO: coprocessor, 207... I/O: input/output port, 204... MEM: storage device, 205... PA: program area, 206... DA: data area,
401... RAM: continuously readable/writable memory, 406... RNG: random number generator, 408... COMP: comparator, 411... Posi: positive logic arithmetic unit, 412... Nega: negative logic arithmetic unit, 417... DISP : Distributor, 420... REG: register, 421, 422... R1: first register, 423, 424... R2: second register,
501... PDBUF: buffer for data expressed in positive logic, 502... NDBUF: buffer for data expressed in negative logic, 505... INV: inversion expansion device, 506... EXT: expansion device, 507... DBUF: Data buffer, 508... K: 1-bit encryption key data buffer,
801... PDBUF: buffer for data expressed in positive logic, 802... NDBUF: buffer for data expressed in negative logic, 805... EXT: expansion device, 807... DBUF: data buffer, 812... K:1 Bit encryption key data buffer (first), 808... J: 1-bit encryption key data buffer (second).
BEST MODE FOR CARRYING OUT THE INVENTION Hereinafter, each embodiment according to the present invention will be described with reference to FIGS. 1 to 5.
[Principle of the present invention]
First, the principle of the present invention for solving the above technical problems will be described.
In order to solve the first technical problem, the present invention focuses on arithmetic units having different polarities. In a general computer, there are two configurations for 1 and 0 of data: a configuration in which 1 is a high potential and 0 is a low potential, and a configuration in which 0 is a high potential and 1 is a low potential. The former is sometimes called a positive logic circuit and the latter is sometimes called a negative logic circuit. For example, when the high potential is represented by H and the low potential is represented by L, the binary data “11010010” is represented by “HHLHLLHL” in positive logic and “LLHLHHLH” in negative logic. Due to such electrical difference, the power consumption pattern also differs. Hereinafter, the data format in which 1 represents H and 0 in L will be referred to as positive expression, and the data format in which 1 represents L and 0 as H will be referred to as negative expression.
In the present invention, in order to utilize this phenomenon, the key data K for determining whether the data A is expressed positively or negatively is attached to the data A and processed in the form of a data pair (A, K). . For example, if K=1, it is determined that A is expressed positively, and if K=0, A is expressed negatively.
In this case, the binary representation of the data A is (A[N-1], A[N-2],..., A[0]) (A[J]=0 or 1) for 1 Using the bit key K,
POSI(A,K)=(A[N-1] EXOR NOT(K), A[N-2] EXOR NOT(K),..., A[0] EXOR NOT(K))... (Equation 1)
Then, this is the regular expression of A. vice versa,
NEGA(A,K)=(A[N-1] EXOR K, A[N-2] EXOR K,..., A[0] EXOR K) (Equation 2)
Then, the negative expression of A is obtained.
Hereinafter, a positive logic computing unit will be referred to as a P-ALU and a negative logic computing unit will be referred to as an N-ALU. Generally, the calculation is performed on the two data A1 and A2. When a logical operation, an arithmetic operation, etc. are generically expressed as OP, the operation of performing the operation OP on A1 and A2 and setting it as A3 is A3 = A1 OP A2
Can be written as
Hereinafter, a positive logic computing unit will be referred to as a P-ALU and a negative logic computing unit will be referred to as an N-ALU. In P-ALU,
A3 (regular expression) = A1 (regular expression) OP A2 (regular expression)
In N-ALU,
A3 (negative expression) = A1 (negative expression) OP A2 (negative expression)
Becomes
Therefore, a distribution circuit for calculating POSI (A, K) and NEGA (A, K) from a pair of data and key data (A, K) is provided, and in the P-ALU,
POSI (A1, K1) OP POSI (A1, K2)
Is calculated, and in N-ALU,
NEGA (A1, K1) OP NEGA (A1, K2)
To calculate. The operation result of P-ALU is a positive expression of A3, and the operation result of N-ALU is a negative expression of A3. Therefore, if a selection circuit that randomly selects one of these is provided and K3=1 when selecting the result of the P-ALU and K3=0 when selecting the result of the N-ALU, the result will be You can write (A3, K3).
Note that the operating currents of the P-ALU and N-ALU are different, and the POSI in the P-ALU and NEGA in the N-ALU operate in parallel. Therefore, with this method, it is possible to make it difficult to estimate the processing and the encryption key from the waveform of the current consumption.
Next, in order to solve the second technical problem, the following is done.
A comparator for checking whether or not the output value A of the P-ALU used in the above method and the inverted value NOT(B) of the output B of the N-ALU match is provided, and when the comparison results match, Continue processing, and if they do not match, reset as an error and not output the result. An error is detected because the output of the P-ALU and the output of the N-ALU must have a bit inversion relationship. As mentioned above, deliberately caused errors are often such that the entire data is like a high potential (or low potential). Therefore, both the output of the P-ALU and the output of the N-ALU are likely to have a high potential (or a low potential). In this case, since both outputs are not in a bit inversion relationship, an error is detected.
As described above, according to the present invention, a highly secure IC card can be provided.
Further, the present invention can further enhance security by using it in combination with existing technology. For example, Japanese Unexamined Patent Application Publication No. 2001-5731 discloses a method of encrypting a bus line or a memory, but it is considered effective to combine these techniques. That is, the technology disclosed in Japanese Patent Laid-Open No. 2001-5731 is used to encrypt the bus line and the memory, and with respect to the CPU, by using the present invention, a wider range of internal data can be encrypted and processed. , Can improve security.
[Embodiment 1]
Hereinafter, a first embodiment according to the present invention will be described with reference to FIGS. 1 to 4.
FIG. 1 is a block diagram showing the configuration of an IC card according to an embodiment of the present invention.
FIG. 2 is a block diagram showing the configuration of the
FIG. 3 is a schematic diagram of a connection circuit for inverting the input data and expanding it to 8 bits in the
FIG. 4 is a schematic diagram of a connection circuit for expanding the input data to 8 bits in the
As shown in FIG. 4, the IC card according to the embodiment of the present invention includes a
More specifically, both are stored as a set inside the RAM, such as data 403 and
Similarly to the RAM, the
Although not shown here, the program is usually stored in a ROM or an EEPROM, and the ALU operates according to the program. Further, in order to avoid complication, the description of the address bus and the description of the clock signal will be omitted.
Here, in order to clarify the function of each constituent element, a case where addition processing is performed on two data A and B on the RAM will be considered. Normally, this processing is "transfer two data A and B on RAM to registers R1 and R2" (processing 1),
"Transfer the data in the registers R1 and R2 to the arithmetic unit and perform addition processing" (Processing 2), "Transfer the addition result to the register R2 again" (Processing 3)
It consists of a series of operations.
In this embodiment, the data stored in the
(Data, key data)
Retained in the form of. Here, the data A (403) key data K1 (402) has 1 bit, and is 1 for positive expression and 0 for negative expression. Although the bit length of the data is arbitrary, it is set to 8 bits here. In (Process 1), the data 403(A) is transferred to the data register R1 (422) and the key data register 421 through the
Next, these data are sequentially transferred to the
The configuration of the
The
The operation of the distributor is as follows. The 8-bit data D is transferred to the
The distributors transfer the data A and B to the data buffers 413, 414, 415 and 416 in accordance with the associated key data K1 and K2, respectively. The P-ALU411 and the negative expression are used to calculate the positive expression data. The data is sent to the N-
This comparator takes the exclusive OR for each bit with respect to the values of the
If this control signal is 0 and the processing is to be continued, the values of the data buffers 409 and 410 are input to the
If the output bit of the
As a result, regular expression data paired with the key data can be obtained in R2 (process 3). Similarly, when the output bit of the
The operations of obtaining the positive expression data paired with the key data and the negative expression data paired with the key data operate in parallel, making it difficult to estimate the power consumption from the outside.
In the present embodiment, the operation timings of both the P-
[Embodiment 2]
Hereinafter, a second embodiment according to the present invention will be described with reference to FIG.
FIG. 5 is a block diagram showing the configuration of the
In the first embodiment, the key data has 1 bit, but in the present embodiment, the key data has 2 bits.
The basic configuration of the IC card in the case of 2 bits is the same as the configuration of the block diagram shown in FIG.
In this embodiment, the
Here, for a 2-bit signal, for example, 01 corresponds to a positive expression and 10 corresponds to a negative expression. The signals 00 and 11 are not used. Which bit pattern of the key data is associated with the positive expression and the negative expression is arbitrary.
The configuration of the
The operation of the
Similar to the first embodiment, the positive expression and the negative expression are respectively operated, and then either the positive expression or the negative expression is selected by the random number and transferred to the register. Is.
In this embodiment, the key data bus is represented by 2 bits, and the key data is represented by "01" and "10", respectively. From the viewpoint of data concealment, since 0 and 1 of the key data are used in the same number, there is an advantage that it is difficult to analyze the key data focusing on the current in the precharge bus or the like.
Claims (12)
前記1を高電位、前記0を低電位として演算をおこなう第一演算装置と、
前記0を高電位、前記1を低電位として演算をおこなう第二演算装置とを有し、
互いにビット反転した関係にある正表現データと負表現データの表現形式を持つ入力データを各々の演算装置に適合する形式に変換して、
前記正表現データの形式の入力データを前記第一演算装置、前記負表現データの形式の入力データを前記第二演算装置で並列して演算させ、
前記第一演算装置で正表現データの形式の出力データを、前記第二演算装置で負表現データ形式の出力データを得ることを特徴とする情報処理装置。In an information processing device in which one of binary data of 0 and 1 is represented by a high potential of voltage and the other is represented by a low potential,
A first arithmetic unit for performing an operation with 1 being a high potential and 0 being a low potential;
A second arithmetic unit for performing an arithmetic operation with 0 being a high potential and 1 being a low potential,
Convert the input data having the expression format of positive expression data and negative expression data that are bit-reversed to each other into a format suitable for each arithmetic unit,
The input data in the form of the positive expression data is operated in parallel by the first operation device, and the input data in the form of the negative expression data is operated in parallel by the second operation device,
An information processing apparatus, wherein the first arithmetic unit obtains output data in the form of positive expression data and the second arithmetic unit obtains output data in the form of negative expression data.
しかも、正表現データを表す鍵データと、負表現データを表す鍵データは、互いにビット反転した関係にあって、
この情報処理装置の中では、前記鍵データをデータと共に、対として取扱うことを特徴とする請求項1記載の情報処理装置。The format of the positive expression data and the negative expression data is identified by the key data,
Moreover, the key data representing the positive expression data and the key data representing the negative expression data have a bit-inverted relationship with each other,
The information processing apparatus according to claim 1, wherein the key data is handled as a pair together with the data in the information processing apparatus.
さらに、データを格納するレジスタまたは記憶装置を有し、
前記第一演算装置の出力データと前記第二演算装置の出力データのいずれを前記レジスタまたは記憶装置に転送するかを決定する選択部を有することを特徴とする請求項1および請求項2記載のいずれかの情報処理装置。The information processing device,
Furthermore, it has a register or a storage device for storing data,
3. The selection unit according to claim 1, further comprising a selection unit that determines which of the output data of the first arithmetic unit and the output data of the second arithmetic unit is transferred to the register or the storage unit. Any information processing device.
乱数パターンによりランダムに選択することを特徴とする請求項3記載の情報処理装置。In selecting which of the output data of the first arithmetic unit and the output data of the second arithmetic unit to be transferred,
The information processing apparatus according to claim 3, wherein the information is randomly selected by a random number pattern.
内部データとして、互いにビット反転した関係にある正表現データと負表現データの表現形式のデータを持ち、
正表現データの表現形式の演算結果と負表現データ表現形式の演算結果の両方を求めて、その一方をランダムに選択して、演算の出力データとして記憶することを特徴とするICカード。In an IC card that handles and stores information with binary data of 0 and 1,
As the internal data, it has the data of the expression form of the positive expression data and the negative expression data which are bit-inverted to each other,
An IC card characterized in that both an operation result in the expression form of positive expression data and an operation result in the expression form of negative expression data are obtained, and one of them is randomly selected and stored as output data of the operation.
内部データとして、互いにビット反転した関係にある正表現データと負表現データの表現形式のデータを持ち、
正表現データの表現形式の演算結果と負表現データ表現形式の演算結果の両方を求めて、その出力が互いにビット反転した関係にあるかを判定し、判定の結果、不一致と判定されたときに、エラーとして当該情報処理装置をリセットすることを特徴とするICカード。In an IC card that handles and stores information with binary data of 0 and 1,
As the internal data, it has the data of the expression form of the positive expression data and the negative expression data which are bit-inverted to each other,
When both the operation result of the expression format of the positive expression data and the operation result of the negative expression data expression value are obtained, it is determined whether or not the outputs have a bit-inverted relationship with each other. When the result of the determination is that they do not match, An IC card characterized by resetting the information processing device as an error.
異常入力があったときに、前記CPU内の並列して動作する演算装置の結果を比較することにより、異常入力を検出し、エラーとして前記CPUの出力を停止することを特徴とする請求項10記載のICカード。Has a CPU and a storage device,
11. When an abnormal input is made, the results of the arithmetic units operating in parallel in the CPU are compared to detect the abnormal input, and the output of the CPU is stopped as an error. The listed IC card.
前記1を高電位、前記0を低電位として、正表現データの演算をおこなう第一演算装置と、
前記0を高電位、前記1を低電位として、負表現データの演算をおこなう第二演算装置とを有し、
前記正表現データと前記負表現データは、互いにビット反転した関係にある表現形式を持つデータであることを特徴とする情報処理装置。In an information processing device in which one of binary data of 0 and 1 is represented by a high potential of voltage and the other is represented by a low potential,
A first arithmetic unit for calculating positive expression data, wherein 1 is a high potential and 0 is a low potential;
A second arithmetic unit for calculating negative expression data, where 0 is a high potential and 1 is a low potential,
The information processing apparatus, wherein the positive expression data and the negative expression data are data having an expression format having a bit-inverted relationship with each other.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003319313 | 2003-09-11 | ||
JP2003319313 | 2003-09-11 | ||
PCT/JP2004/010251 WO2005027403A1 (en) | 2003-09-11 | 2004-07-12 | Information processing device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPWO2005027403A1 true JPWO2005027403A1 (en) | 2006-11-24 |
Family
ID=34308560
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005513820A Pending JPWO2005027403A1 (en) | 2003-09-11 | 2004-07-12 | Information processing equipment |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2005027403A1 (en) |
WO (1) | WO2005027403A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127938A (en) * | 2020-01-14 | 2021-07-16 | 新唐科技股份有限公司 | Secure integrated circuit and method therefor |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4529719B2 (en) * | 2005-02-16 | 2010-08-25 | ソニー株式会社 | Signal processing circuit |
JP5019210B2 (en) * | 2007-06-14 | 2012-09-05 | 株式会社東芝 | Portable electronic device, IC card, and control method for portable electronic device |
DE102008023912A1 (en) * | 2008-05-16 | 2009-11-19 | Siemens Aktiengesellschaft | Method and storage device for providing a cryptographic key |
FR2935823B1 (en) * | 2008-09-11 | 2010-10-01 | Oberthur Technologies | METHOD AND DEVICE FOR PROTECTING A MICROCIRCUIT AGAINST ATTACKS. |
JP5262941B2 (en) * | 2009-04-10 | 2013-08-14 | ソニー株式会社 | Authentication device, authentication method, and program |
JPWO2013190782A1 (en) * | 2012-06-22 | 2016-02-08 | 日本電気株式会社 | Encryption processing circuit and decryption processing circuit |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250247A (en) * | 1988-08-11 | 1990-02-20 | Fujitsu Ltd | Sensor processing system |
JPH0363816A (en) * | 1989-08-02 | 1991-03-19 | Advantest Corp | Bit retriever |
JPH04245733A (en) * | 1991-01-31 | 1992-09-02 | Nec Corp | Data transmission system |
JPH09282426A (en) * | 1996-04-17 | 1997-10-31 | Dainippon Printing Co Ltd | Card and its communicating method |
JP2001005731A (en) * | 1999-06-24 | 2001-01-12 | Hitachi Ltd | Information processor, card member, and information processing system |
JP2001230771A (en) * | 2000-01-08 | 2001-08-24 | Koninkl Philips Electronics Nv | Data processor and its operation method |
JP2001306346A (en) * | 2000-04-19 | 2001-11-02 | Matsushita Electric Ind Co Ltd | Arithmetic processor |
JP2002035384A (en) * | 1993-05-20 | 2002-02-05 | Le Tekku:Kk | Method for manufacturing microcomputer chip for final game machine control |
JP2002526845A (en) * | 1998-09-30 | 2002-08-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data carrier device with data bus means exhibiting power consumption independent of transmission data |
JP2002261751A (en) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | Code-processing method |
JP2002366029A (en) * | 2001-06-13 | 2002-12-20 | Fujitsu Ltd | Encipherment safe against dpa(differential power analysis) |
JP2003152702A (en) * | 2001-11-16 | 2003-05-23 | Hitachi Ltd | Information processing apparatus |
JP2003526134A (en) * | 1998-11-03 | 2003-09-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data carriers with unclear power consumption |
JP2004206680A (en) * | 2002-12-13 | 2004-07-22 | Renesas Technology Corp | Semiconductor integrated circuit and ic card |
-
2004
- 2004-07-12 WO PCT/JP2004/010251 patent/WO2005027403A1/en active Application Filing
- 2004-07-12 JP JP2005513820A patent/JPWO2005027403A1/en active Pending
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0250247A (en) * | 1988-08-11 | 1990-02-20 | Fujitsu Ltd | Sensor processing system |
JPH0363816A (en) * | 1989-08-02 | 1991-03-19 | Advantest Corp | Bit retriever |
JPH04245733A (en) * | 1991-01-31 | 1992-09-02 | Nec Corp | Data transmission system |
JP2002035384A (en) * | 1993-05-20 | 2002-02-05 | Le Tekku:Kk | Method for manufacturing microcomputer chip for final game machine control |
JPH09282426A (en) * | 1996-04-17 | 1997-10-31 | Dainippon Printing Co Ltd | Card and its communicating method |
JP2002526845A (en) * | 1998-09-30 | 2002-08-20 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data carrier device with data bus means exhibiting power consumption independent of transmission data |
JP2003526134A (en) * | 1998-11-03 | 2003-09-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data carriers with unclear power consumption |
JP2001005731A (en) * | 1999-06-24 | 2001-01-12 | Hitachi Ltd | Information processor, card member, and information processing system |
JP2001230771A (en) * | 2000-01-08 | 2001-08-24 | Koninkl Philips Electronics Nv | Data processor and its operation method |
JP2001306346A (en) * | 2000-04-19 | 2001-11-02 | Matsushita Electric Ind Co Ltd | Arithmetic processor |
JP2002261751A (en) * | 2001-03-02 | 2002-09-13 | Hitachi Ltd | Code-processing method |
JP2002366029A (en) * | 2001-06-13 | 2002-12-20 | Fujitsu Ltd | Encipherment safe against dpa(differential power analysis) |
JP2003152702A (en) * | 2001-11-16 | 2003-05-23 | Hitachi Ltd | Information processing apparatus |
JP2004206680A (en) * | 2002-12-13 | 2004-07-22 | Renesas Technology Corp | Semiconductor integrated circuit and ic card |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127938A (en) * | 2020-01-14 | 2021-07-16 | 新唐科技股份有限公司 | Secure integrated circuit and method therefor |
CN113127938B (en) * | 2020-01-14 | 2023-05-12 | 新唐科技股份有限公司 | Secure integrated circuit and method thereof |
Also Published As
Publication number | Publication date |
---|---|
WO2005027403A1 (en) | 2005-03-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220405428A1 (en) | Masked gate logic for resistance to power analysis | |
KR100837270B1 (en) | Smart card and data security method thereof | |
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 (en) | Information processing unit | |
KR20040053101A (en) | Device and method with reduced information leakage | |
JP5693927B2 (en) | Failure detection attack detection method and detection apparatus | |
EP2990953B1 (en) | Periodic memory refresh in a secure computing system | |
JP2001268072A (en) | Information processor, information processing method, and card member | |
Tunstall | Smart card security | |
JP2002311826A (en) | Encoding and decoding device, method for encoding and decoding, data enciphering method and ic card | |
JP2007328789A (en) | Cryptographic system for encrypting input data by using address associated with input data, error detection circuit, and operation method of the same | |
JPWO2005027403A1 (en) | Information processing equipment | |
JP4386766B2 (en) | Error detection in data processing equipment. | |
CN107016292B (en) | Electronic circuit for preventing eavesdropping by power analysis and method for preventing eavesdropping | |
JP2003523549A (en) | A method for securing a series of valid operations performed by an electronic circuit in the course of executing an algorithm | |
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 (en) | Information processor | |
JP4435593B2 (en) | Tamper resistant information processing equipment | |
Mahmoud et al. | Novel algorithmic countermeasures for differential power analysis attacks on smart cards | |
Zhao | Research on Encryption Technology in Contactless IC Card | |
JP2013157761A (en) | Semiconductor device and arithmetic processing method |
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 |