JP2004310752A - Error detection in data processing equipment - Google Patents
Error detection in data processing equipment Download PDFInfo
- Publication number
- JP2004310752A JP2004310752A JP2004068254A JP2004068254A JP2004310752A JP 2004310752 A JP2004310752 A JP 2004310752A JP 2004068254 A JP2004068254 A JP 2004068254A JP 2004068254 A JP2004068254 A JP 2004068254A JP 2004310752 A JP2004310752 A JP 2004310752A
- Authority
- JP
- Japan
- Prior art keywords
- processing
- processing device
- data
- period
- output data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
- G06F11/183—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
- G06F11/184—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2123—Dummy operation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
Abstract
【課題】スマートカードなどの処理の、外部からの不正な読み取りを防止する。
【解決手段】入力データを処理して、出力データを生成するデータ処理装置は、第1の処理期間において所定のアルゴリズムに従ってその入力データを処理して、第1の出力データを生成する第1の処理装置と、第2の処理期間においてその所定のアルゴリズムに従ってその入力データを処理して、第2の出力データを生成する第2の処理装置と、その第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定する比較装置とを備え、その第1の処理装置および第2の処理装置は、第1の処理期間および第2の処理期間が重なり、重なる期間の間に少なくとも1度、その第1の処理装置および第2の処理装置が処理をその所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である。
【選択図】図6AAn object of the present invention is to prevent illegal reading from outside of processing of a smart card or the like.
A data processing device that processes input data and generates output data processes the input data according to a predetermined algorithm during a first processing period to generate first output data. A processing device, a second processing device for processing the input data according to the predetermined algorithm during a second processing period to generate second output data, and a first output data and a second output data thereof. And a comparing device that determines whether or not there is a processing error. The first processing device and the second processing device have a first processing period and a second processing period that overlap each other. Is operable to perform the processing at least once during the first processing unit and the second processing unit such that the processing is performed according to different parts of the predetermined algorithm.
[Selection] Fig. 6A
Description
本発明は、データ処理装置における誤り検出、具体的には、データを秘密にするため、暗号アルゴリズムを用いたスマートカードにおける誤り検出に関する。 The present invention relates to error detection in a data processing device, and more specifically, to error detection in a smart card using a cryptographic algorithm to keep data secret.
添付の図面の図1は、集積回路カード(ICC)として公知の代表的なスマートカードの主な部分を示すブロック図である。図1のスマートカード1は、メモリ部3、中央処理装置(CPU)5、入力/出力部(I/O)7、および処理装置9を含む。CPU5は、メモリ部3、I/O部7、および処理装置9と双方向通信を行う。これらの部分は、通常は、スマートカード1に埋め込まれた1つの集積回路内に含まれる。スマートカード1は接触式タイプであってもよいし、非接触式タイプであってもよい。
FIG. 1 of the accompanying drawings is a block diagram showing the main parts of a typical smart card known as an integrated circuit card (ICC). 1 includes a
スマートカード1は、POWER(電力)およびCLKチャンネルを介して外部デバイスと通信して、必要な電力およびクロック信号CLKを受信することができ(内部電源またはクロック源を有するスマートカードもあるが)、I/Oチャネルを介して外部デバイスと通信して、データをスマートカード1に通信し、スマートカード1から通信することができる。このような通信は、接触式カードのコンタクトピンを介する電気信号、あるいは、非接触式カードの誘導性、容量性または光学結合のいずれかによって行われる。
The
スマートカードは、カードに格納されたデータ、ならびに、カードに通信され、または、カードから通信されるデータのセキュリティおよび保全性が最も重要である場合に、多くの用途が見出される。例えば、スマートカードは、カード保持者の身元を証明するために用いられる身分証明書としての役割を果たし得る。スマートカードはまた、その人の病歴を全て格納した医療カードとしても用いられ得る。さらに、スマートカードは、オフライン取引ができるクレジット/デビットバンクカードとして用いられ得る。このような理由により、機密に関わるデータがI/Oチャネルを介してカードから出る前に暗号化されることができるように、スマートカードは暗号化/解読能力を有することが一般的である。 Smart cards find many uses where the security and integrity of the data stored on the card and the data communicated to or from the card are of paramount importance. For example, a smart card may serve as an identification card used to prove the identity of the cardholder. A smart card can also be used as a medical card that stores a person's entire medical history. In addition, smart cards can be used as credit / debit bank cards that allow offline transactions. For this reason, smart cards generally have encryption / decryption capabilities so that sensitive data can be encrypted before leaving the card via the I / O channel.
図1に示すスマートカード1において、このような暗号化は、処理装置9によって行われる。例えば、メモリ部3に格納されたデータがI/Oチャネルを介して外部のリクエストデバイスと通信する必要がある場合、このデータは、CPU5によってメモリ部3からリクエストされ、入力データDINとして処理装置9に送信される。処理装置9は、入力データDINを暗号化して、暗号化された出力データDOUTを生成する。DOUTは、CPU5に返され、I/O部7に転送され、続いてI/Oチャネルで外部のリクエストデバイスに伝送される。
In the
任意の適切な暗号化モデルが、暗号化を行うために処理装置9において用いられ得る。スマートカードにおいて用いられる暗号化アルゴリズムの例として、データ暗号化規格(DES)、トリプルDES、アドバンスト暗号化規格(AES)、高速データ暗号化アルゴリズム(FEAL)および国際データ暗号化アルゴリズム(IDEA)などの対称(または秘密)鍵暗号がある。あるいは、RSAアルゴリズムおよびラビン暗号化方式などの非対称(または公開)鍵暗号化アルゴリズムの使用も可能である。 Any suitable encryption model can be used in the processing device 9 to perform the encryption. Examples of encryption algorithms used in smart cards include Data Encryption Standard (DES), Triple DES, Advanced Encryption Standard (AES), High Speed Data Encryption Algorithm (FEAL), and International Data Encryption Algorithm (IDEA). There is symmetric (or secret) key cryptography. Alternatively, the use of asymmetric (or public) key encryption algorithms, such as the RSA algorithm and the Rabin encryption scheme, is possible.
添付の図面の図2は、公開鍵暗号システムおよび秘密鍵暗号システムの両方を表す、従来の暗号化モデルを図示するブロック図である。このモデルにおいて、2つの当事者、XおよびYは、暗号を用いて、公開チャネル13にわたる非公開通信を行おうと試みる。当事者Xは、暗号化ユニットEを用い、暗号化鍵KX(非対称暗号化モデルにおいては公開鍵であり、対称暗号化モデルにおいては秘密鍵である)を用いて、平文Pを暗号化して、当事者Yへと公開チャネル13を介して通信される暗号文Cを生成する。当事者Yは、暗号化ユニットDおよび鍵KXに対応する秘密鍵KYを用いて、暗号文Cを解読して、元の平文Pを再生する。
FIG. 2 of the accompanying drawings is a block diagram illustrating a conventional encryption model representing both a public key cryptosystem and a secret key cryptosystem. In this model, two parties, X and Y, attempt to conduct private communication over
しかし、第三者ZがXとYとの間の非公開なやりとりを、公開チャネル13をモニタリングすることによって盗聴している。第三者Zは、用いられた暗号アルゴリズムについての全ての詳細を、秘密鍵KXを除いて全て知り得、多くの暗号文のサンプルを持ち、いくつかの平文と暗号文との対を(他の何らかの手段によって当事者Xまたは当事者Yのいずれかから得られた平文とともに)有し得る。このように集められた情報は、その後、計算集約暗号解析にかけられて、用いられた暗号を解読して、暗号文を生成するために用いられた鍵KXを判定する。
However, the third party Z eavesdrops on the private exchange between X and Y by monitoring the
しかし、現代の暗号化技術は、従来の方法で集められた情報の力任せの計算解析に基づく、このような従来の攻撃に対してより抵抗力があるように開発されている。従って、暗号化システムの物理的な実施に基づいてよりわかりにくい情報ソースの使用が最近注目されている。 However, modern encryption techniques have been developed to be more resistant to such conventional attacks based on brute-force computational analysis of information gathered in conventional ways. Accordingly, the use of less obscure information sources based on the physical implementation of the encryption system has recently received attention.
実際には、暗号システムは、その環境とインタラクトし、環境によって影響される物理デバイスにおいてインプリメントされる。ポケットベルおよびスマートカードのような電子デバイスは、動作する間、電力を消費し、放射を発し、また、温度変化および電磁場に反応する。これらの物理インタラクションが、Zのような第三者によって操作され、モニタリングされて、暗号解析において有用な情報をもたらし得る。図2に示す従来の暗号モデルは、現実の世界において暗号を用いることの物理的副作用について考慮しておらず、より現実的なモデルは、添付の図面の図3に示すように「サイドチャネル」の概念を用いて説明され得る。サイドチャネルは、物理的インプリメンテーションに固有の情報のソースであり、このような情報を用いた攻撃は、「サイドチャネル攻撃」と呼ばれる。 In practice, a cryptographic system interacts with its environment and is implemented on a physical device that is affected by the environment. Electronic devices such as pagers and smart cards consume power, emit radiation, and respond to temperature changes and electromagnetic fields during operation. These physical interactions can be manipulated and monitored by a third party, such as Z, to provide information useful in cryptanalysis. The conventional cryptographic model shown in FIG. 2 does not consider the physical side effects of using cryptography in the real world, and a more realistic model is the "side channel" as shown in FIG. 3 of the accompanying drawings. Can be explained using the concept of The side channel is a source of information specific to the physical implementation, and attacks using such information are called "side channel attacks".
例えば、暗号関数の計算にかかる時間量は、その関数が何をするかのみに依存するのではなく、どのような入力が通過するかにも依存する。暗号化されるべきメッセージに加えて、暗号化関数は、通常、入力として秘密鍵をとり、従って、秘密鍵の値は、公に観察できるタイミング特徴に影響を与え得る。タイミングサイドチャンネル情報に基づくこのような攻撃は、Paul Kocherらによって、「Timing Attacks on Implementation of Diffie−Hellman,RSA,DSS and Other Systems」(CRYPTO‘96)という名前の記事において提案されている。この文献において、攻撃者がいくつかのRSA署名を計算するのにかかる時間の測定値を解析し、署名したエンティティの秘密鍵を推測することができる、暗号解析方法が概説されている。 For example, the amount of time it takes to calculate a cryptographic function depends not only on what the function does, but also on what input is passed. In addition to the message to be encrypted, the encryption function typically takes a secret key as input, and thus the value of the secret key can affect publicly observable timing characteristics. Such an attack based on timing side channel information is proposed by Paul Kocher et al. In an article named "Timing Attack on Implementation of Diffie-Hellman, RSA, DSS and Other Systems" (CRYPTO $ 96). This document outlines a cryptanalysis method that can analyze a measure of the time it takes an attacker to calculate some RSA signatures and guess the secret key of the signing entity.
さらに、電子デバイスは、動作中、電源から電流を引く。電子デバイスが引く電流の量、すなわち、電力消費は、暗号化アルゴリズムの演算の間に論理ゲート(通常は、CMOS)が切り替わるにつれて、変動する。 In addition, the electronic device draws current from the power supply during operation. The amount of current drawn by an electronic device, or power consumption, varies as logic gates (typically CMOS) switch during the operation of the encryption algorithm.
電力消費は、行われている計算と相関するので、敵にとって有用である。電力解析に基づくサイドチャネル攻撃の中で最も脅威的なタイプのうちの1つは、Kocherらによって、「Differential Power Analysis」CRYPTO‘99という文献において提案されている差動電力解析(DPA)というタイプのものである。 Power consumption is useful to the adversary as it correlates with the computation being performed. One of the most threatening types of power analysis based side channel attacks is the type called Differential Power Analysis (DPA) proposed by Kocher et al. In the document "Differential Power Analysis" CRYPTO '99. belongs to.
サイドチャネル攻撃の他の形態として、暗号化システムに誤りを作為的に導入し、その誤りによって引き起こされた影響をその後モニタリングすることに基づくものがある。「On the Importance of Checking Cryptographic Protocols for Faults」(1997)という名称の文献において、Boneh、DeMilloおよびLiptonは、インプリメントされた暗号化アルゴリズムについてのハードウェアデバイスリーク情報において誘発されるエラーの観察に基づく、誤りを利用したサイドチャネル攻撃を紹介している。暗号化デバイスをイオン化またはマイクロ波放射にさらすことによって、誤りは、RSA公開鍵暗号アルゴリズムの係数を因数分解するために用いられ得る、レジスタのうちの1つのランダムビット位置に導入され得る。BihimおよびShamirは、差動誤り解析(DFA)と呼ばれる誤りに基づくチャネル攻撃を、「Differential Fault Analysis of Secret Key Cryptosystems」(CRYPTO’97)という名称の文献において提案した。この攻撃は、DESなどの対称または秘密鍵暗号システムに対して有効である。DFAは、200未満の暗号文(平文はなし)を用いて、最後のDESラウンド鍵を見つけることができ、さらに、スマートカードにインプリメントされた未知の暗号システムの構造を明らかにすることすらできる。もっとも良好なDESに対する非サイドチャネル攻撃は、64テトラバイトよりわずかに少ない平文および1つの鍵で暗号化された暗号文しか必要としない。 Another form of side channel attack is based on artificially introducing errors into the encryption system and subsequently monitoring the effects caused by the errors. In a document entitled "On the Importance of Checking Cryptographic Protocols for Faults" (1997), Boneh, DeMillo and Lipton are based on the observation of errors induced in hardware device leak information for implemented encryption algorithms. Introduces side channel attacks using mistakes. By exposing the encryption device to ionization or microwave radiation, errors can be introduced into random bit positions in one of the registers, which can be used to factor the coefficients of the RSA public key cryptographic algorithm. Bihim and Shamir proposed an error-based channel attack called differential error analysis (DFA) in a document named "Differential Fault Analysis of Secret Key Cryptosystems" (CRYPTO'97). This attack works against symmetric or secret key cryptosystems such as DES. The DFA can use less than 200 ciphertexts (no plaintext) to find the last DES round key and even reveal the structure of an unknown cryptosystem implemented in a smart card. The best non-side channel attacks against DES require slightly less than 64 tetrabytes of plaintext and one key encrypted ciphertext.
このようなサイドチャネル攻撃は、デバイスの物理的インプリメンテーションについての秘密情報を明らかにするために、幅広い種類のデータ処理デバイスに適用され得る。このようなサイドチャネル攻撃がさらに高度になってきたため、サイドチャネルに漏れる情報を可能な限り少なくし、誤りを導入することをより困難にし、試みられた攻撃を検出することによって、その攻撃からスマートカードのようなデータ処理デバイスを保護することが重要である。 Such side-channel attacks can be applied to a wide variety of data processing devices to reveal confidential information about the physical implementation of the device. As these side-channel attacks have become more sophisticated, the information leaked to the side-channels has been reduced as much as possible, making it more difficult to introduce errors and detecting attempted attacks, thereby making them more intelligent. It is important to protect data processing devices such as cards.
(発明の要旨)
1. 入力データを処理して、出力データを生成するデータ処理装置であって、
第1の処理期間において所定のアルゴリズムに従って該入力データを処理して、第1の出力データを生成する第1の処理装置と、
第2の処理期間において該所定のアルゴリズムに従って該入力データを処理して、第2の出力データを生成する第2の処理装置と、
該第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定する比較装置と
を備え、
該第1の処理装置および第2の処理装置は、第1の処理期間および第2の処理期間が重なり、重なる期間の間に少なくとも1度、該第1の処理装置および第2の処理装置が処理を該所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である、データ処理装置。
2. 前記第1の処理装置および第2の処理装置は、異なる時刻において、処理を開始するように動作可能である、項目1に記載のデータ処理装置。
3. 前記所定のアルゴリズムは、前記入力データを暗号化する暗号化アルゴリズムである、項目1または2に記載のデータ処理装置。
4. 前記所定のアルゴリズムは、複数の計算ラウンドの実行を含む、項目3に記載のデータ処理装置。
5. 前記暗号化アルゴリズムは、デジタル暗号化規格アルゴリズムである、項目4に記載のデータ処理装置。
6. クロック信号を受信する入力をさらに備え、前記第1の処理装置および第2の処理装置の動作は該クロック信号によって制御される、上記の項目のいずれかに記載のデータ処理装置。
7. 前記第2の処理装置は、前記第1の処理装置の後に、所定の数のクロックサイクルの処理を開始するように動作可能である、項目6に記載のデータ処理装置。
8. 前記所定の数のクロックサイクルは1である、項目7に記載のデータ処理装置。
9. 前記第2の処理装置は、前記第1の処理装置の後に、所定の数の計算ラウンドの処理を開始するように動作可能である、項目4または5、あるいは項目4に従属する場合の項目6または7に記載のデータ処理装置。
10. 前記所定の数の計算ラウンドは1である、項目9に記載のデータ処理装置。
11. 前記処理装置の少なくとも1つは、処理の間、前記所定のアルゴリズムの一部として、1つ以上の遅延を追加するように動作可能である、上記の項目のいずれかに記載のデータ処理装置。
12. 前記処理装置の前記少なくとも1つは、そのような遅延の間、前記出力データに影響を与えない、ダミー処理を行うように動作可能である、項目11に記載のデータ処理装置。
13. 前記1つ以上の遅延は、ランダムである、項目11または12に記載のデータ処理装置。
14. 前記ランダムな遅延は、実質的に電力がニュートラルである、項目13に記載のデータ処理装置。
15. 前記第2の処理装置は、前記第1の処理装置の後に、ランダムな時刻に処理を開始するように動作可能である、項目1〜7、9、および11〜14のいずれか1つに記載のデータ処理装置。
16. 前記比較装置は、前記第1の出力データおよび第2の出力データが同じである場合に、処理誤りがあったと判定する、上記の項目のいずれかに記載のデータ処理装置。
17. 前記第2の処理期間内であり、前記第1の処理期間の外であるダウン期間の間、前記第1の処理装置がアクティブであることを確実にする処理制御装置をさらに備える、上記の項目のいずれかに記載のデータ処理装置。
18. 前記第1の処理装置は、そのようなダウン期間の間、ランダム入力データについて動作する、項目17に記載のデータ処理装置。
19. 前記第1の処理装置は、そのようなダウン期間の間、入力データについて、暗号化ラウンドおよびその後に続く解読ラウンド、またはその逆を行う、項目4に従属する場合の項目17に記載のデータ処理装置。
20. 前記第1の処理装置および第2の処理装置は、前記重なる期間の少なくとも4分の1の間、処理を前記所定のアルゴリズムの異なる部分に従って行う、上記の項目のいずれかに記載のデータ処理装置。
21. 前記第1の処理装置および第2の処理装置は、前記重なる期間の少なくとも半分の間、処理を前記所定のアルゴリズムの異なる部分に従って行う、項目20に記載のデータ処理装置。
22. 前記第1の処理装置および第2の処理装置は、前記重なる期間の少なくとも4分の3の間、処理を前記所定のアルゴリズムの異なる部分に従って行う、項目21に記載のデータ処理装置。
23. 前記第1の処理装置および第2の処理装置は、前記重なる期間全体の間、処理を前記所定のアルゴリズムの異なる部分に従って行う、項目22に記載のデータ処理装置。
24. 少なくとも1つのさらなる処理期間において、前記所定のアルゴリズムに従って、前記入力データを処理して、少なくとも1つのさらなる出力データを生成する、少なくとも1つのさらなる処理装置をさらに備え、前記比較装置は、前記第1の出力データ、第2の出力データ、および少なくとも1つのさらなる出力データを比較して、処理誤りがあったか否かを判定し、前記第1の処理装置、第2の処理装置、および少なくとも1つのさらなる処理装置は、処理期間が重なり、重なる期間の間少なくとも1度、該第1の処理装置、第2の処理装置、および少なくとも1つのさらなる処理装置が処理を前記所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である、上記の項目のいずれかに記載のデータ処理装置。
25. 前記比較装置は、処理誤りがあったと判定する場合に、前記第1の出力データ、第2の出力データ、または少なくとも1つのさらなる出力データのうちの1つを、前記入力データに対応する正しい出力データとして選択するようにさらに動作可能である、項目24に記載のデータ処理装置。
26. 前記比較装置は、前記正しい出力データを多数決投票システムに基づいて判定する、項目25に記載のデータ処理装置。
27. 処理誤りが発生したことを前記比較装置が判定する場合、出力データが前記データ処理装置から放出されない、項目1〜24のいずれか1つに記載のデータ処理装置。
28. 入力データを処理して出力データを生成する、データ処理方法であって、
(a)第1の処理期間において、所定のアルゴリズムに従って該入力データを処理して、第1の出力データを生成するステップと、
(b)第2の処理期間において、該所定のアルゴリズムに従って該入力データを処理して、第2の出力データを生成するステップと、
(c)該第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定するステップと
を包含し、
該ステップ(a)および(b)の処理は、該第1の処理期間および第2の処理期間が重なり、該重なる期間の間、該ステップ(a)および(b)の処理が該所定のアルゴリズムの異なる部分に従って行われるように、行われる、方法。
29. 実質的に、図6A〜図14を参照しながら上記で記載したとおりである、データ処理装置。
30. 実質的に、図6A〜図14を参照しながら上記で記載したとおりである、データ処理方法。
31. 項目1〜27および29のいずれか1つに記載のデータ処理装置を備える、スマートカード。
32. データ処理デバイスにロードされる場合、該デバイスを、項目1〜27および29のいずれか1つに記載の装置、あるいは、項目31に記載のスマートカードにする、オペレーティングプログラム。
33. データ処理デバイス上で実行される場合、該デバイスに項目28に記載の方法を実行させる、オペレーティングプログラム。
34. キャリアー媒体において実行される、項目32または33に記載のオペレーティングプログラム。
35. 前記キャリアー媒体が伝送媒体である、項目34に記載のオペレーティングプログラム。
36. 前記キャリアー媒体が格納媒体である、項目34に記載のオペレーティングプログラム。
(Summary of the Invention)
1. A data processing device for processing input data and generating output data,
A first processing device that processes the input data according to a predetermined algorithm during a first processing period to generate first output data;
A second processing device that processes the input data according to the predetermined algorithm during a second processing period to generate second output data;
A comparison device that compares the first output data and the second output data to determine whether there is a processing error;
The first processing device and the second processing device may be configured such that the first processing period and the second processing period overlap, and the first processing device and the second processing device at least once during the overlapping period. A data processing device operable to perform the processing such that the processing is performed according to different parts of the predetermined algorithm.
2.
3. 3. The data processing device according to
4. The data processing device according to
5.
6. The data processing device according to any of the preceding items, further comprising an input for receiving a clock signal, wherein the operations of the first processing device and the second processing device are controlled by the clock signal.
7. 7. The data processing device of
8.
9. The second processing device is operable after the first processing device to start processing a predetermined number of calculation rounds,
10.
11. The data processing device of any of the preceding items, wherein at least one of the processing devices is operable to add one or more delays during processing as part of the predetermined algorithm.
12.
13.
14. 14. The data processing apparatus of
15.
16. The data processing device according to any one of the above items, wherein the comparison device determines that a processing error has occurred when the first output data and the second output data are the same.
17. The above item, further comprising a processing control device for ensuring that the first processing device is active during a down period that is within the second processing period and outside the first processing period. The data processing device according to any one of the above.
18.
19. 18. The data processing of
20. The data processing apparatus according to any of the preceding items, wherein the first processing apparatus and the second processing apparatus perform processing according to different parts of the predetermined algorithm during at least a quarter of the overlapping period. .
21. 21. The data processing device of item 20, wherein the first processing device and the second processing device perform processing according to different parts of the predetermined algorithm during at least half of the overlapping period.
22. 22. The data processing device according to item 21, wherein the first processing device and the second processing device perform processing according to different parts of the predetermined algorithm during at least three-quarters of the overlapping period.
23. Item 23. The data processing device according to item 22, wherein the first processing device and the second processing device perform processing according to different parts of the predetermined algorithm during the entire overlapping period.
24. The at least one further processing period further comprises at least one further processing device for processing the input data according to the predetermined algorithm to generate at least one further output data, wherein the comparing device comprises the first device. Comparing the output data of the first processing device, the second processing device, and the at least one further output data to determine whether there was a processing error. The processing units overlap the processing periods, such that the first processing unit, the second processing unit, and the at least one further processing unit perform processing according to different parts of the predetermined algorithm at least once during the overlapping period. A data processing apparatus according to any of the preceding items, operable to perform the processing.
25. If the comparing device determines that a processing error has occurred, the comparing device converts one of the first output data, the second output data, or at least one further output data into a correct output corresponding to the input data. The data processing apparatus of item 24, further operable to select as data.
26. The data processing device according to item 25, wherein the comparison device determines the correct output data based on a majority voting system.
27. 25. The data processing device according to any one of
28. A data processing method for processing input data to generate output data,
(A) during the first processing period, processing the input data according to a predetermined algorithm to generate first output data;
(B) during the second processing period, processing the input data according to the predetermined algorithm to generate second output data;
(C) comparing the first output data and the second output data to determine whether or not there has been a processing error;
In the processing of steps (a) and (b), the first processing period and the second processing period overlap, and during the overlapping period, the processing of steps (a) and (b) is performed by the predetermined algorithm. The method that is performed, as is performed according to different parts of the method.
29. A data processing device substantially as described above with reference to FIGS. 6A to 14.
30. A data processing method substantially as described above with reference to FIGS. 6A to 14.
31. A smart card comprising the data processing device according to any one of
32. An operating program that, when loaded into a data processing device, causes the device to be an apparatus according to any one of items 1-27 and 29 or a smart card according to
33. An operating program that, when executed on a data processing device, causes the device to perform the method of item 28.
34. 34. The operating program according to
35. 35. The operating program according to item 34, wherein the carrier medium is a transmission medium.
36. 35. The operating program according to item 34, wherein the carrier medium is a storage medium.
本発明の第1の局面によると、入力データを処理して、出力データを生成するデータ処理装置であって、第1の処理期間において所定のアルゴリズムに従って入力データを処理して、第1の出力データを生成する第1の処理装置と、第2の処理期間においてその所定のアルゴリズムに従って入力データを処理して、第2の出力データを生成する第2の処理装置と、第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定する比較装置とを備え、第1の処理装置および第2の処理装置は、第1の処理期間および第2の処理期間が重なり、重なる期間の間に少なくとも1度、第1の処理装置および第2の処理装置が処理を所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である、データ処理装置が提供される。 According to a first aspect of the present invention, there is provided a data processing apparatus for processing input data and generating output data, wherein the data processing apparatus processes the input data according to a predetermined algorithm during a first processing period, and outputs a first output data. A first processing device for generating data, a second processing device for processing input data according to a predetermined algorithm during a second processing period to generate second output data, A comparison device that compares the second output data to determine whether or not there is a processing error, wherein the first processing device and the second processing device have a first processing period and a second processing period. At least once during the overlapping period, the first processing device and the second processing device are operable to perform the processing such that the processing is performed according to different parts of the predetermined algorithm; Data processing apparatus is provided.
第1の処理装置および第2の処理装置は、異なる時刻において、処理を開始することが好ましい。これは、重なる期間の間少なくとも1度、第1の処理装置および第2の処理装置が、所定のアルゴリズムの異なる部分に従って処理を行うことを確実にする有効な態様である。 It is preferable that the first processing device and the second processing device start processing at different times. This is an advantageous way of ensuring that the first processing device and the second processing device perform processing according to different parts of the predetermined algorithm at least once during the overlapping period.
比較装置によって、処理誤りが発生したことが判定される場合、データ処理装置からの任意の出力データの放出を抑制することが可能である。このことは、外部に放出される任意のデータの保全性を保存し、誰かがデータ処理装置に対して誤りを利用するサイドチャネル攻撃を起こすことを困難にするために役立つ。 When it is determined by the comparison device that a processing error has occurred, it is possible to suppress emission of arbitrary output data from the data processing device. This helps to preserve the integrity of any data released to the outside and make it difficult for someone to make error-based side-channel attacks on the data processing device.
データ処理装置は、少なくとも1つのさらなる処理装置をさらに備え、少なくとも1つのさらなる処理装置は、少なくとも1つのさらなる処理期間の間、所定のアルゴリズムに従って、入力データを処理して、少なくとも1つのさらなる出力データを生成し、比較装置は、第1の出力データ、第2の出力データ、および少なくとも1つのさらなる出力データを比較して、処理誤りがあったか否かを判定し、第1の処理装置、第2の処理期間、および少なくとも1つのさらなる処理装置は、処理期間が重なり、重なる期間の間少なくとも1度、第1の処理装置、第2の処理装置、および少なくとも1つのさらなる処理装置が処理を所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である。3つ以上の処理装置をこのように用いることは、検出されないエラーをデータ処理装置に導入することを一層困難にし、従って、誤りを利用するサイドチャネル攻撃を一層困難にする。 The data processing device further comprises at least one further processing device, wherein the at least one further processing device processes the input data according to a predetermined algorithm during the at least one further processing period to obtain at least one further output data. And the comparing device compares the first output data, the second output data, and the at least one further output data to determine whether there is a processing error, and the first processing device, the second processing data, , And at least one further processing device, wherein the processing periods overlap, and at least once during the overlapping period, the first processing device, the second processing device, and the at least one further processing device perform a predetermined process. It is operable to perform the processing as it does according to different parts of the algorithm. Using more than two processing units in this way makes it more difficult to introduce undetected errors into the data processing unit, and thus makes side-channel attacks that utilize errors more difficult.
比較装置は、2つ以上の出力データが同じでない場合に、処理誤りがあったと判定し得る。所定のアルゴリズムは、入力データを暗号化する暗号化アルゴリズムであってもよい。所定のアルゴリズムは、複数の計算ラウンドの実行を含み得る。例えば、暗号化アルゴリズムは、デジタル暗号化規格アルゴリズムであってもよい。 The comparison device may determine that a processing error has occurred when two or more output data are not the same. The predetermined algorithm may be an encryption algorithm for encrypting input data. A given algorithm may include performing multiple rounds of computation. For example, the encryption algorithm may be a digital encryption standard algorithm.
データ処理装置は、クロック信号を受信する入力をさらに備え、処理装置の動作はクロック信号によって制御され得る。処理装置のうちの1つは、他の処理装置の後に、所定の数のクロックサイクル、例えば、1クロックサイクルの処理を開始するように動作可能であってもよい。 The data processing device further comprises an input for receiving a clock signal, and the operation of the processing device may be controlled by the clock signal. One of the processing devices may be operable to start processing a predetermined number of clock cycles, eg, one clock cycle, after the other processing device.
所定のアルゴリズムが複数の計算ラウンドの実行を含む場合、処理装置のうちの1つは、他の処理装置の後に、所定の数の計算ラウンド、例えば、1ラウンドの処理を開始するように動作可能であってもよい。 If the predetermined algorithm involves the execution of a plurality of calculation rounds, one of the processing units is operable to start a predetermined number of calculation rounds, eg, one round, after the other processing unit. It may be.
少なくとも1つの処理装置は、処理の間、1つ以上の遅延を追加するように動作可能であってもよい。このような処理装置は、このような遅延の間、出力データに影響を与えない、ダミー処理を行うことが好ましい。このような遅延は、所定のアルゴリズムの一部であると考えられ得る。遅延は、ランダムであることが好ましく、電力がニュートラルであることが好ましい。処理装置のうちの1つは、他の処理装置の後に、ランダムに処理を開始するように動作可能であってもよい。これらの手段は、電力およびタイミングサイドチャネルを通じて外部に漏れる情報を低減することに役立ち、誤りの検出の可能性をより高める。 At least one processing device may be operable to add one or more delays during processing. Such a processing device preferably performs dummy processing during such a delay without affecting output data. Such a delay may be considered as part of a given algorithm. The delay is preferably random and the power is preferably neutral. One of the processing devices may be operable to start processing randomly after the other processing device. These measures help to reduce information leaking out through the power and timing side channels, and make the error detection more likely.
データ処理装置は、第2の処理期間内であり、第1の処理期間の外であるダウン期間の間、第1の処理装置がアクティブであることを確実にする処理制御装置をさらに備える。第1の処理装置は、そのようなダウン期間の間、ランダム入力データについて動作することが好ましい。あるいは、所定のアルゴリズムが複数の計算ラウンドの実行を含む場合、第1の処理装置は、そのようなダウン期間の間、入力データについて、暗号化ラウンドおよびその後に続く解読ラウンド、またはその逆を行うようにされてもよい。多くの処理装置がある場合、これらの処理装置のうち2つのみがこのように動作する場合でも、以前としてある程度の利点がある。これらの手段は、電力サイドチャネルを通じて外部に漏れる情報を低減することに役立ち得る。 The data processing device further comprises a processing control device that ensures that the first processing device is active during a down period that is within the second processing period and outside the first processing period. Preferably, the first processing device operates on random input data during such a down period. Alternatively, if the predetermined algorithm involves performing multiple rounds of calculation, the first processing unit performs an encryption round and a subsequent decryption round, or vice versa, on the input data during such a down period. It may be done. If there are many processing units, there are still some advantages even if only two of these processing units operate in this way. These measures can help reduce information leaking out through the power side channel.
処理誤りがあったと判定される場合に、比較装置、または他の何らかの装置は、出力データのうちの1つを、入力データに対応する正しい出力データとして選択し得る。例えば、3つ以上の処理装置が利用される場合、このような選択は、多数決投票システムに基づき得る。従って、誤り訂正および誤り検出が可能である。 If it is determined that there has been a processing error, the comparing device, or some other device, may select one of the output data as the correct output data corresponding to the input data. For example, if more than two processing devices are utilized, such a selection may be based on a majority voting system. Therefore, error correction and error detection are possible.
第1の処理装置および第2の処理装置は、好ましくは、重なる期間の少なくとも4分の1の間、より好ましくは、重なる期間の少なくとも半分の間、さらに好ましくは、重なる期間の少なくとも4分の3の間、さらにより好ましくは、重なる期間全体の間、処理を所定のアルゴリズムの異なる部分に従って行う。 The first processing device and the second processing device are preferably for at least a quarter of the overlapping period, more preferably for at least half of the overlapping period, even more preferably for at least a quarter of the overlapping period. For three, and even more preferably, during the entire overlapping period, the processing is performed according to different parts of the predetermined algorithm.
本発明の第2の局面によると、入力データを処理して出力データを生成する、データ処理方法であって、(a)第1の処理期間において、所定のアルゴリズムに従って入力データを処理して、第1の出力データを生成するステップと、(b)第2の処理期間において、所定のアルゴリズムに従って入力データを処理して、第2の出力データを生成するステップと、(c)第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定するステップとを包含し、ステップ(a)および(b)の処理は、第1の処理期間および第2の処理期間が重なり、重なる期間の間に少なくとも1度、ステップ(a)および(b)の処理が所定のアルゴリズムの異なる部分に従って行われるように、行われる、方法が提供される。 According to a second aspect of the present invention, there is provided a data processing method for processing input data to generate output data, comprising: (a) processing input data according to a predetermined algorithm during a first processing period; Generating first output data; (b) processing input data according to a predetermined algorithm during a second processing period to generate second output data; and (c) generating first output data. Comparing the data and the second output data to determine whether there is a processing error. The processing in steps (a) and (b) includes a first processing period and a second processing period. Are overlapped and performed at least once during the overlap period such that the processing of steps (a) and (b) is performed according to different parts of a predetermined algorithm.
本発明の第3の局面によると、本発明の第1の局面によるデータ処理装置を含む、スマートカードが提供される。 According to a third aspect of the present invention, there is provided a smart card including the data processing device according to the first aspect of the present invention.
本発明の第4の局面によると、データ処理デバイスにロードされる場合、デバイスを、本発明の第1の局面による装置、あるいは、本発明の第3の局面によるスマートカードにする、オペレーティングプログラムが提供される。 According to a fourth aspect of the invention, an operating program, when loaded into a data processing device, makes the device an apparatus according to the first aspect of the invention or a smart card according to the third aspect of the invention. Provided.
本発明の第5の局面によると、データ処理デバイス上で実行される場合、デバイスに本発明の第2の局面による方法を実行させる、オペレーティングプログラムが提供される。 According to a fifth aspect of the present invention, there is provided an operating program, which when executed on a data processing device, causes the device to perform the method according to the second aspect of the present invention.
例示のため、添付の図面が参照される。 For the purpose of illustration, reference is made to the accompanying drawings.
本発明の主な目的は、誤りを利用するサイドチャネル攻撃に対して防御することであり、詳細な説明を提示する前に、以前に考慮されていた、このような攻撃を防御する方法についてまず簡略的に述べる。 It is a primary object of the present invention to defend against side channel attacks that make use of errors, and before presenting a detailed description, first consider the previously considered methods of defending such attacks. This will be briefly described.
一般的に、DFAなどの攻撃は、攻撃者が誤りを導入した後に、生成された誤りがある暗号文に攻撃者がアクセスできることが必要である。従って、このような攻撃を防ぐ方法の1つとして、誤りがある暗号文を攻撃者から遠ざけ、攻撃を無効にするように、デバイスが計算の出力を放出する前にチェックする方法がある。数回の攻撃が検出される場合、それ以上攻撃が試みられないように、スマートカードがロックされ得る。 In general, attacks such as DFA require that the attacker have access to the generated erroneous ciphertext after the attacker introduces the error. Therefore, one way to prevent such an attack is to keep the erroneous ciphertext away from the attacker and check before the device emits the output of the computation so as to negate the attack. If several attacks are detected, the smart card may be locked so that no further attacks are attempted.
誤り注入攻撃から保護する方法の1つとして、同じ入力で2回の暗号化を行い、2つの出力が同じであることをチェックする方法がある。攻撃者が、1つの計算に誤りを導入した場合、得られる暗号文は異なる。攻撃者が検出されず誤りを導入する唯一の方法は、同じ誤りを2回の計算の両方に導入することができる場合である。 One method of protecting against error injection attacks is to perform encryption twice with the same input and check that the two outputs are the same. If the attacker introduces an error in one calculation, the resulting ciphertext will be different. The only way in which an attacker could not detect and introduce an error is if the same error could be introduced in both calculations.
図4Aは、この保護メカニズムを実現する態様の1つを示すブロック図であり、図4Bは、図4Aの回路の動作を示すタイミング図である。暗号化されるべきデータDINは、処理装置2を通過し、処理装置2は、第1の処理期間T1において、選択された暗号化アルゴリズムに従って入力データDINを処理して、第1の出力データDOUT1を生成する。その後、処理期間T1の後に続く処理期間T2において、処理装置2は、同じ入力データDINを同じ暗号化アルゴリズムに従って処理して、第2の出力データDOUT2を生成する。その後、比較期間TCの間、比較装置4は、第1の出力データおよび第2の出力データを比較し、差が検出される場合、比較装置から出力されたエラー信号ERRが、誤りの検出を示すように変化する。差がない場合、出力データDOUT(第1の出力データDOUT1および第2の出力データDOUT2と等しい)が比較装置4から出力される。
FIG. 4A is a block diagram showing one embodiment of realizing this protection mechanism, and FIG. 4B is a timing chart showing the operation of the circuit of FIG. 4A. The data DIN to be encrypted, and passes through the
このようにして、図4Aに示すデータ処理装置を用いて、入力データDINが直列に2回暗号化される。このような保護メカニズムが必要とするさらなるハードウェアは非常に少ないにも関わらず、計算を行うために約2倍の時間がかかる。さらに、攻撃者にとって同じ誤りを2回導入することは容易ではないが、以前として非常に可能性が高い。例えば、ランダム過渡誤りモデルにおいて、誤りが発生し得るビット位置が512あり、2つの誤り暗号がある場合、それぞれにおいて同じ誤りが発生する可能性は、512分の1である。従って、悪意あるユーザが必要な数の誤り暗号文を取得するために試みる必要がある暗号化の数は、512倍増えただけである。 In this way, the input data DIN is serially encrypted twice using the data processing device shown in FIG. 4A. Even though such protection mechanisms require very little additional hardware, it takes about twice as long to perform the calculations. Furthermore, it is not easy for an attacker to introduce the same error twice, but it is still very likely. For example, in the random transient error model, there are 512 bit positions where an error can occur, and if there are two error ciphers, the probability of the same error occurring in each is one in 512. Thus, the number of encryptions that a malicious user must try to obtain the required number of erroneous ciphertexts has only increased by a factor of 512.
図4Aおよび図4Bを参照して説明されたように、直列に2倍した処理の代替例として、図5Aおよび図5Bに示すように並列バージョンが実現され得る。図5Aのデータ処理装置は、第1の処理装置6および別の第2の処理装置8を含む。第1の処理装置6は、第1の処理期間T1において、選択された暗号化アルゴリズムに従って、入力データDINを処理して、第1の出力データDOUT1を生成する。第2の処理装置8は、第1の処理期間T1と完全に並列である第2の処理期間T2の間、同じ入力データDINを、同じ暗号化アルゴリズムに従って処理して、第2の出力データDOUT2を生成する。第1の処理期間T1および第2の処理期間T2が並列であるという性質は、図5Bに図示されている。第1の出力データDOUT1および第2の出力データDOUT2が生成された後、比較装置4は、図4Aを参照しながら上述した態様と同様の態様でデータを比較し、比較の結果に従って、比較装置から出力されたエラー信号ERRが、変化する。差がない場合、出力データDOUT(第1の出力データDOUT1および第2の出力データDOUT2)が比較装置4から出力される。
As an alternative to the serial doubling process as described with reference to FIGS. 4A and 4B, a parallel version can be implemented as shown in FIGS. 5A and 5B. The data processing device of FIG. 5A includes a
図5Aおよび図5Bを参照しながら説明される並列バージョンは、図4Aおよび図4Bを参照しながら説明される直列バージョンと比較すると、余分にかかる時間が非常に少ないという利点を有するが、2倍の回路面積が必要である。しかし、さらなる大きな欠点は、例えば、電力異常が、計算において全く同じ時点で両方の計算に対して同様に影響を与えるため、同じ誤りが処理装置の両方に導入される可能性が非常に高いということである。これは十分な保護を提供しない可能性がある。 The parallel version described with reference to FIGS. 5A and 5B has the advantage that the extra time is much less than the serial version described with reference to FIGS. 4A and 4B, but is twice as great. Circuit area is required. However, a further major drawback is that it is very likely that the same error will be introduced into both processing units, for example, because a power anomaly affects both calculations at exactly the same time in the calculations as well. That is. This may not provide sufficient protection.
2つの異なる設計の処理装置を並列ブランチのそれぞれにおいて用いて、両方とも同じ入力に対して同じ出力を生成し得る。これは、同じ誤りが両方の計算に導入される可能性を低くする。しかし、これによって、設計に2倍の労力がかかり、同じ誤りが両方の処理装置に導入され得ないことを確実にすることは非常に複雑である。 Two different designs of processing units may be used in each of the parallel branches, both producing the same output for the same input. This makes it less likely that the same error will be introduced in both calculations. However, this requires twice as much effort in the design and it is very complicated to ensure that the same error cannot be introduced in both processing units.
上記の直列および並列技術の代わりとして、暗号化に続いて解読が行われ(またはその逆)、その後、最終的な結果がもとの入力と同じであるかチェックが行われてもよい。これは、公開鍵演算が秘密鍵演算よりもしばしばずっと速いRSAなどのアルゴリズムについては特に有用であり得る。DESなどの暗号については、暗号化は解読とほぼ同じであり、主な差は、ラウンド鍵が用いられる順序が反対になっていることである。 As an alternative to the serial and parallel techniques described above, encryption may be followed by decryption (or vice versa), followed by a check that the final result is the same as the original input. This can be particularly useful for algorithms such as RSA where public key operations are often much faster than private key operations. For encryption such as DES, encryption is almost the same as decryption, with the main difference being that the order in which round keys are used is reversed.
完全な暗号化演算を行い、結果をチェックすることと同様に、任意のステップサイズについて、ステップごとに、結果が同じであるかをチェックすることも可能である。例えば、繰り返しのラウンドを用いる計算について、結果は、全てのラウンドを行った後に比較するのではなく、個々のラウンドの後で比較され得る。これによって、誤りをより素早く検出し得るが、DESなどの暗号については、全てのラウンドを行う時間が非常に短いので、実用的とは限らない。さらに、比較が多いということは、オーバーヘッドがより多いことを意味し得、ステップ間にエラーを導入することも可能であるので、それほど効率的とは限らない。 Similar to performing a full encryption operation and checking the result, it is possible to check whether the result is the same for each step for an arbitrary step size. For example, for calculations using repeated rounds, the results may be compared after individual rounds, rather than after performing all rounds. This allows errors to be detected more quickly, but is not always practical for ciphers such as DES, since the time to perform all rounds is very short. Furthermore, more comparisons may mean more overhead and may not be as efficient, as errors can be introduced between steps.
この代替的な技術は、Karriらによる「Concurrent error detection of fault−based side−channel cryptanalysis of 128−bit symmetric block ciphers」(2001)に開示された同時エラー検出技術の基礎を形成する。この文献において記載されているように、暗号化/解読チェックは、アルゴリズムレベル(すなわち、暗号および解読全体を行った後のクロスチェック)、または、ラウンドレベル(暗号/解読ラウンドが終わる度のクロスチェック)の両方で、あるいは、演算レベル(ラウンド内の演算が終わる度のクロスチェック)でさえ、行われ得る。 This alternative technique is disclosed in Karri et al., "Concurrent Error Detection of Fault-Based Side-Channel Cryptanalysis of 128-Bit Symmetric Block Ciphers" (2001). As described in this document, encryption / decryption checks can be performed at the algorithm level (ie, cross-check after performing the entire encryption and decryption) or at the round level (cross-check at the end of each encryption / decryption round). ), Or even at the operation level (cross-check at the end of an operation within a round).
図6Aは、本発明を具現化するデータ処理装置を示すブロック図である。図6Bは、図6Aのデータ処理装置の演算を示すタイミング図である。本発明を具現化するデータ処理装置は、第1の処理装置12と、第2の処理装置14と、比較装置4とを備える。
FIG. 6A is a block diagram showing a data processing device embodying the present invention. FIG. 6B is a timing chart showing the operation of the data processing device of FIG. 6A. The data processing device embodying the present invention includes a
図5Aを参照しながら上述したデータ処理回路の並列バージョンと同様に、第1の処理装置12は、第1の処理期間T1において、所定の暗号化アルゴリズムに従って入力データDINを処理して、第1の出力データDOUT1を生成し、第2の処理装置14は、第2の処理期間T2において、同じ入力データDINを同じ暗号化アルゴリズムに従って処理して、第2の出力データDOUT2を出力する。その後、比較期間TCにおいて、比較装置4によって、2つのセットの出力データが比較されて、処理誤りがあるか否かが判定される。処理誤りがある場合、エラー信号ERRのレベルは、それに応じて設定され、大量の出力データが外部に放出されないことが確実にされ得る。出力データの抑制は、図示されたように比較装置4によって行われてもよいし、エラー信号ERRに依存して、他の何らかの装置によって行われてもよい。処理誤りがない場合、入力データDINに対応する出力データDOUTが放出され得る。
Similar to the parallel version of the data processing circuit described above with reference to FIG. 5A, the
しかし、以前に考慮された技術とは異なり、本発明のこの実施形態において、第1の処理装置12および第2の処理装置14は、図6Bにおいて図示されるように第1の処理期間T1および第2の処理期間T2が重なるように、異なる時刻に処理を開始するように動作可能である。従って、一方の暗号化は、他方よりも僅かに遅延する。
However, unlike the previously considered techniques, in this embodiment of the invention, the
このようにすると、総処理時間は、図5Aおよび図5Bを参照しながら上述した並列バージョンよりもほんのわずかだけ長いが、2つの処理装置は、同じ暗号化演算を同時に行っていないので、誤りがある瞬間に導入される場合、計算の異なる部分に導入され、従って、異なる出力が生成される。従って、攻撃者にとって、同じ誤りを2回導入することは非常に困難であり、エラーチェックメカニズムの注意から逃れることは非常に困難である。 In this way, the total processing time is only slightly longer than the parallel version described above with reference to FIGS. 5A and 5B, but since the two processing units are not performing the same cryptographic operation at the same time, an error will occur. If introduced at a certain moment, it is introduced in a different part of the calculation, thus producing a different output. Therefore, it is very difficult for an attacker to introduce the same error twice and to escape the attention of the error checking mechanism.
本発明のこの実施形態は、図4Aおよび図4Bを参照しながら上述してきた直列バージョンよりもずっと、誤りを利用するサイドチャネル攻撃に対してロバストである。これは、直列方式において、異なる時刻における、2つの別個のエラー誘発動作(例えば、レーザビームの使用)が、実際に、同じエラーを両方の計算に導入すること(エラー誘発動作の間の時間が、直列処理期間の間の時間と同じである場合)が可能であるからである。このような場合、エラーの導入は、直接方式において検出を回避し、誤りがある暗号文が出力される。本発明を具現化する方式を用いると、処理の間の2つのこのような誤りを誘発する動作は、4つの異なるエラーを、2つを第1の処理期間において、2つを第2の処理期間において導入する可能性が高く、攻撃が検出される。この方式に対して攻撃を成功させるためには、攻撃者は、多くの誤りを、毎回、完全に正しい位置に注入する必要がある。攻撃者が一方の処理装置に注入した全ての誤りについて、他の(異なる)誤りが他方の処理装置に注入された可能性がある。これにより、新たに導入された誤りを相殺するために他の誤りを注入することが必要になり、それにより、今度は他の誤りがまた生成され、以下このように続く。 This embodiment of the invention is much more robust to error-based side channel attacks than the serial version described above with reference to FIGS. 4A and 4B. This is because, in a serial fashion, two separate error-inducing operations (eg, using a laser beam) at different times actually introduce the same error into both calculations (the time between error-inducing operations). Is the same as the time between serial processing periods). In such a case, the introduction of an error avoids detection in the direct method, and an erroneous ciphertext is output. Using a scheme embodying the present invention, the act of inducing two such errors during processing is to distinguish four different errors, two in the first processing period and two in the second processing. It is likely to be introduced during the period, and an attack is detected. For a successful attack on this scheme, the attacker needs to inject a number of mistakes each time into the completely correct location. For every error that the attacker injected into one processing unit, the other (different) error could have been injected into the other processing unit. This makes it necessary to inject other errors to offset the newly introduced error, whereby another error is again generated, and so on.
第1の処理装置12が入力データDINの暗号化を開始する時刻と、第2の処理装置が入力データDINの暗号化を開始する時刻の間の時間差Dは、この技術が有効になるために大きくなる必要はない。例えば、1つのクロックサイクルの時間差Dは、適切であり、大幅な時間面での不利益を導入しないが、他の時間差も可能である。第1の処理装置12および第2の処理装置14がDES暗号化アルゴリズムを行う実施形態において、ある処理装置は、他の処理装置が所定の数の暗号ラウンド、例えば1ラウンドを行った後で、処理を開始するように製造され得る。あるいは、ランダムな時間差が用いられてもよい。
The time difference D between the time when the
誤りを利用するサイドチャネル攻撃に対する抵抗は、本発明のある実施形態において、処理装置によって行われる処理動作を通じて、遅延、好ましくは、ランダム遅延を追加することによってさらに向上し得る。これによって、同じ誤りを2回導入することがより困難になる。さらに、遅延が電力的にニュートラル(neutral)である場合(これは、遅延が電力追跡において見られることができないことを意味する)、差動電力解析(DPA)などの他のサイドチャネル攻撃から保護するために役立ち得る。処理装置の少なくとも1つは、そのような遅延の間、出力データに影響しない、ダミー処理を行うようにされてもよい。このようなダミー処理の間、処理装置は、好ましくは、通常の計算を行っているかのように、同程度の電力を使い続ける。 Resistance to error-based side-channel attacks may be further improved in some embodiments of the present invention by adding a delay, preferably a random delay, through processing operations performed by the processing device. This makes it more difficult to introduce the same error twice. Further, if the delay is power neutral, which means that the delay cannot be seen in power tracking, it protects against other side-channel attacks such as differential power analysis (DPA) Can help you. At least one of the processing devices may be adapted to perform a dummy operation that does not affect the output data during such a delay. During such dummy processing, the processing device preferably continues to use the same amount of power as if it were performing normal calculations.
図7Aは、本発明を具現化する他のデータ処理装置を示すブロック図であり、図7Bは、図7Aのデータ処理装置の演算を示すタイミング図である。図6Aに示す第1の処理装置12、第2の処理装置14および比較装置4に加えて、図7Aのデータ処理装置は、第3の処理装置16を含む。第3の処理装置16は、第1の処理装置12および第2の処理装置14と同じ入力データDINを同じ暗号化アルゴリズムに従って処理して、第3の出力DOUT3を生成する。この動作は、第3の処理期間T3の間に行われる。第1の処理装置12、第2の処理装置14、および第3の処理装置16は、図7Bに示すように第1の処理期間T1、第2の処理期間T2、および第3の処理期間T3が重なるように、異なる時刻において処理を開始するように動作可能である。
FIG. 7A is a block diagram illustrating another data processing device embodying the present invention, and FIG. 7B is a timing diagram illustrating an operation of the data processing device of FIG. 7A. 7A includes a
従って、この実施形態は、3つのセットの出力データが比較装置4によって比較されて、処理誤りがあったか否かを判定することを可能にし、同じエラーを、3つのアルゴリズムに、各アルゴリズムにおいて同じ時点に導入する可能性はより低いので、よりすぐれた誤り検出性能の可能性を提供する。当然、エラー検出能力をさらに高めるため、3つより多い処理装置を設けることも可能である。
Thus, this embodiment allows the three sets of output data to be compared by the
上記の実施形態において、処理誤りがあった場合、エラー信号ERRのレベルは、それに応じて設定され、大量の出力データが外部に放出されないことが保証され得る。しかし、3セット以上の出力データを用いる場合、出力データのうちどの1つ(または1つ以上)が正しい可能性があるのか判定し、その出力データを放出することも可能である。例えば、DOUT1およびDOUT2が同じであるが、DOUT3がDOUT1およびDOUT2の両方と異なる場合、多数決投票システムに基づいて、DOUT1(または等しいDOUT2)が、最終的な出力データDOUTとして選択され得る。このエラー補正機能は、図示されているように比較装置4によって行われてもよいが、別に設けられた装置によって行われてもよい。
In the above embodiment, if there is a processing error, the level of the error signal ERR is set accordingly, and it can be ensured that a large amount of output data is not released to the outside. However, when three or more sets of output data are used, it is possible to determine which one (or one or more) of the output data is likely to be correct, and emit the output data. For example, although DOUT 1 and DOUT 2 are the same, if the DOUT 3 is different from both the DOUT 1 and DOUT 2, based on the majority voting system, DOUT 1 (or equal to DOUT 2) is the final output data DOUT Can be selected as This error correction function may be performed by the comparing
差動電力解析(DPA)攻撃に対する抵抗をさらに高めることは、両方の処理装置が可能な限り長い時間共に動作することを確実にすることによって達成され得る。なぜなら、一方の処理装置の電力消費が他方の処理装置の電力消費をマスキングするために役立ち得るからである。図6Bに示すタイミング図に従って動作する本発明を具現化する処理装置を用いると、暗号化演算の開始と終わりに、2つの処理装置のうちの1つのみが動作し、従って電力消費がより容易に解析され得る短い期間がある。 Further increasing resistance to differential power analysis (DPA) attacks can be achieved by ensuring that both processing units work together for as long as possible. This is because the power consumption of one processing device can serve to mask the power consumption of the other processing device. With a processing device embodying the present invention that operates according to the timing diagram shown in FIG. 6B, at the beginning and end of the encryption operation, only one of the two processing devices operates, thus making power consumption easier. There is a short period that can be analyzed.
図8Aは、図6Aに示す部品に加えて、処理制御装置18を含む、本発明を具現化するデータ処理装置を示すブロック図である。図8Bは、図8Aのデータ処理装置の動作を示すタイミング図である。処理制御装置18は、第1の処理装置および第2の処理装置の処理を制御するために設けられ、一方の処理装置が、他方の処理装置がその処理期間において処理を行っている間イナクティブにならないようにすることによって、上記のDPA攻撃に対して抵抗を高める。ダウン期間がない場合には一方または他方の処理装置がイナクティブになり得るダウン期間は、図8Bにおいて、TDとして示される。例えば、第1の処理装置12のダウン期間TDは、第2の処理期間T2内(内側)にあり、第1の処理期間T1の外(外側)にある。前の実施形態において、処理装置の処理を制御する目的で提供される処理制御装置は、図6Bまたは図7Bに示す様態で制御を行う。
FIG. 8A is a block diagram showing a data processing device embodying the present invention, including a
一つの可能性は、処理制御装置18が、ダウン期間がない場合にはイナクティブになり得るダウン期間の間、処理装置12または14に、それに基づいて動作し得るランダムデータが提供されることを確実にすることである。このことは、以下の表に示されるが、この表において、「E」は、暗号化ラウンドを指し、「D」は解読ラウンドを示し、「Kn」はn番目のラウンド鍵を示す。
One possibility is that the
図8A、図8Bおよび図9を参照しながら説明した実施形態において、処理制御装置18は、第1の処理装置12および第2の処理装置14の処理を、異なる時刻に処理を開始する(それにより、遅延が処理に導入されない場合に第1の処理期間T1および第2の処理期間T2を異なる時刻に終了させるようにする)ように制御すると説明した。しかし、第1の処理装置12および第2の処理装置14が、処理を異なる時刻に開始することは必須ではなく、以下に説明するように、第1の処理装置12および第2の処理装置14が、異なる時刻において処理を完了することも必須ではない。
In the embodiment described with reference to FIGS. 8A, 8B, and 9, the
図10は、図8Aに示す装置を用いて、本発明の他の実施形態の動作を示す例示的なタイミング図である。図9と同様に、この実施形態において、第1の処理装置12および第2の処理装置14によって所定のアルゴリズムに従って行われる処理は、概念的な計算ブロック1〜8に分割されている。しかし、この実施形態における処理制御装置18は、処理が同時に開始され、計算期間t1の間に両方の処理装置によって第1の計算ブロック1が行われるように、第1の処理装置12および第2の処理装置14を制御する。その後、第1の処理装置12は、続く計算期間t2〜t8において、それぞれ、続く計算ブロック2〜8を行う。
FIG. 10 is an exemplary timing diagram illustrating the operation of another embodiment of the present invention using the apparatus shown in FIG. 8A. As in FIG. 9, in this embodiment, the processing performed by the
Xと表示される遅延期間が、計算期間t2の間、第2の処理装置14によって行われる処理に挿入される。その後、第2の処理装置14は、計算期間t3〜t9において、それぞれ、続く計算ブロック2〜8を行う。遅延期間Xを挿入することによって、第1の処理装置12および第2の処理装置14は、処理を同じ時刻t1に開始するが、処理を、異なる時刻t8およびt9に完了する。
Delay period that is displayed when X is between calculation period t 2, is inserted into the processing performed by the
第2の処理装置14は、遅延期間Xの間、アイドルであってよいが、電力サイドチャネルを通じる漏れを低減するために、出力データに影響を与えないダミー処理が行われることが好ましい。遅延期間Xは、第2の期間T2の間、ランダムな長さの時間にわたってランダム位置に挿入され得る。ランダムな遅延は、上述したように、差動電力解析(DPA)などのサイドチャネル攻撃からさらに保護するために、電力的にニュートラルであることが好ましい。
The
図11は、本発明の他の実施形態の動作を示す例示的なタイミング図である。この実施形態において、第1の処理装置12および第2の処理装置14は、異なる時刻t1およびt2において、それぞれ処理を開始するようにされるが、計算期間t8において第1の処理期間T1に遅延期間Xを挿入することによって、第1の処理装置12および第2の処理装置14は、同じ時刻t9に処理を完了する。
FIG. 11 is an exemplary timing diagram illustrating the operation of another embodiment of the present invention. In this embodiment, the
図12は、本発明の他の実施形態の動作を示す例示的なタイミング図である。この実施形態において、第1の処理装置12および第2の処理装置14は、両方とも、遅延期間Xをそれぞれ時刻t2およびt8において、第1の処理期間T1および第2の処理期間T2に挿入することによって、計算期間t1において処理を開始し、計算期間t9において処理を完了する。
FIG. 12 is an exemplary timing diagram illustrating the operation of another embodiment of the present invention. In this embodiment, the
図13は、本発明の他の実施形態の動作を示す例示的なタイミング図である。この実施形態において、第1の処理装置12は、第2の処理装置14がt2において処理を開始する前に、t1において処理を開始するが、第2の処理装置14がt9において処理を完了した後に処理を完了する。これは、2つの遅延期間Xが、時刻t4およびt8において第1の処理期間T1に挿入され、第2の処理期間T2に挿入される遅延期間がないためである。
FIG. 13 is an exemplary timing diagram illustrating the operation of another embodiment of the present invention. In this embodiment, the
図14は、図12の実施形態に類似する本発明の他の実施形態の動作を示す例示的なタイミング図である。この実施形態においては、遅延期間Xが、第1の処理期間T1および第2の処理期間T2に、それぞれ、時刻t5およびt6において挿入される。 FIG. 14 is an exemplary timing diagram illustrating the operation of another embodiment of the present invention that is similar to the embodiment of FIG. In this embodiment, the delay period X is, in the first processing period T 1 and the second processing period T 2, respectively, are inserted at time t 5 and t 6.
本発明を具現化する、図9〜図14に示す処理方式の全ては、第1の処理装置12および第2の処理装置14は、第1の処理期間T1および第2の処理期間T2が重なり、また、重なる期間の間に少なくとも1度、第1の処理装置12および第2の処理装置14が処理を所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能であるという点が共通である。この点において、用語「重なり」は、処理期間T1およびT2の部分的な重なりがある図9〜図11および図13の場合と、第1の処理期間T1および第2の処理期間T2が同一である図12および図14に示す場合との両方とも含むことが理解されるべきである。
Embodying the present invention, FIGS. 9 to all of the processing method shown in 14, the
例えば、図9において、重なる期間は、計算期間t2〜t8を含み、第1の処理装置12および第2の処理装置14は、重なる期間全体の間に、所定のアルゴリズムの異なる部分に従って処理を行う。これは、重なる期間の間の任意の時刻に、装置に導入されるエラーは、両方の処理装置に影響を与える可能性があるが、計算の異なる部分の間であり、従ってそのようなエラーは検出される可能性が高いので有利である。エラーを両方の計算ブロック1に導入して、検出を避けようという試みは、t2の間、そのエラーは、第2の処理装置14の処理ブロック1と共に、第1の処理装置12の処理ブロック2に影響を与える可能性が高いので、失敗する可能性が高い。
For example, in FIG. 9, overlap period, includes a calculation period t 2 ~t 8, the
図9の方式において、計算ブロック1〜8のそれぞれは、少なくとも1つの異なる数字が付けられた計算ブロックによって保護される(カバーされる)。例えば、計算ブロック1は、計算期間t2において、計算ブロック2によって保護される(カバーされる)。計算ブロック2は、計算期間t2において計算ブロック1によって保護され(カバーされ)、また、計算期間t3において、計算ブロック3によって覆われる。以下同様である。従って、エラーを、両方の処理装置において特定の計算ブロックに導入しようとする試みはまた、エラーを、少なくとも1つの他の計算ブロックの1つのインスタンスに導入し、従って検出される可能性がある。より劣りはするが、図10〜13に示す方式の場合と同様に、計算ブロックの全てがそのように保護されない場合でさえある程度の利点が得られる。
In the scheme of FIG. 9, each of the calculation blocks 1 to 8 is protected (covered) by at least one differently numbered calculation block. For example,
図10において、重なる期間は、計算期間t1〜t8をカバーし、第1の処理装置12および第2の処理装置14は、t2からt8まで、すなわち、重なる期間全体ではない所定アルゴリズムの異なる部分に従って処理を行う。この実施形態において、計算ブロック2〜8(すなわち、計算期間t2〜t8内に含まれる計算ブロック)のそれぞれは、少なくとも1つの異なる数字が付けられた計算ブロックによって、上述したように保護される。従って、t1の間に両方の処理装置に導入されるエラーは、計算の同じ部分に影響を与える可能性が高く、従って、検出されないが、検出期間t2〜t8の間、保護は得られる。この点において、遅延期間Xは、出力データに影響を与えないが、所定のアルゴリズムの一部であると考慮され得る。
In FIG. 10, the overlapping period covers the calculation periods t 1 to t 8 , and the
図13において、処理は、計算ブロックt2、t3、t4、t8、およびt9において、所定のアルゴリズムの異なる部分に従って行われ、計算ブロック1〜3、7および8のそれぞれ(すなわち、計算期間t2、t3、t4、t8およびt9に含まれるブロック)は、上述したように、少なくとも1つの異なる数字が付けられた計算ブロックによって保護される。類似の解析が、図11および12に適用される。 In FIG. 13, the processing is performed according to different parts of a predetermined algorithm at calculation blocks t 2 , t 3 , t 4 , t 8 , and t 9 , and each of calculation blocks 1 to 3, 7, and 8 (ie, calculation period t 2, t 3, t 4 , blocks contained in t 8 and t 9), as described above, it is protected by the calculation block at least one different numbers attached. A similar analysis applies to FIGS. 11 and 12.
図14において、重なる期間は、計算期間t1〜t9をカバーする。この実施形態において、遅延期間Xは、所定のアルゴリズムの一部であり、第1の処理装置12および第2の処理装置14が計算ブロックt5およびt6において所定のアルゴリズムの異なる部分に従って処理を行うと考えることができる。計算ブロック5は、少なくとも1つの異なる数字が付けられた計算ブロックによって上述したように保護されていないが(第1の処理装置12および第2の処理装置14は、重なる期間の間に少なくとも1度、出力データに実際に影響を与える所定のアルゴリズムの異なる部分に従って、処理を行うことが好ましいので、保護することは好ましい)、計算ブロック5は、ダミーブロックXによってカバーされることによって保護される。
14, overlapping period covers the
図14に示す方式は、それぞれ、図4Bおよび図5Bを参照しながら上述した直列および並列バージョンの組合せに類似するが、両方に対して、別々に、潜在的な利点を有する。例えば、攻撃者が誤りを並列計算ブロック1〜4の法に導入し、直列計算ブロック5にも導入しようと試みる場合、同じエラーを2回ブロック5に正確に導入するのに十分な精度で攻撃のタイミングを調節することができない可能性が高い。それに加えて、攻撃者は、2つの並列な計算ブロックに同時に影響をあたえるような様態でエラーを導入する必要がある。これは、エラーを導入する可能性を制限する。さらに、この方式は、ブロック5を単に直列に追加し、他のブロックを保護しない方式よりも、単純である。
The scheme shown in FIG. 14 is similar to the combination of the serial and parallel versions described above with reference to FIGS. 4B and 5B, respectively, but has potential benefits, both separately. For example, if an attacker attempts to introduce an error into the modulus of the parallel computation blocks 1-4 and also introduces it into the
誤り検出技術の主な適用例を、図1に示すようなスマートカードにおける使用として、上記で説明してきたが、この技術は、他のセキュアデバイス、例えば、USBトークン、セキュアメモリ、セキュアマルチメディア、およびセキュアアクセスモジュール(SAM)などにおいて利用されてもよい。本発明の実施形態は、暗号化が行われる処理装置に限定されるわけではない。本発明の実施形態は、誤り検出が必要とされ、誤り訂正までもが必要とされる任意の用途において用いられ得る。誤り訂正については、データ処理アプリケーションが、エラー信号がある場合に、入力データDINを再処理するように設定されるか、図7Aおよび図7Bを参照しながら説明したように3つ以上の処理装置が利用される場合、いずれの出力データが確実なものであるかを判定するために投票システムが用いられ得る。 Although the main application of the error detection technique has been described above for use in a smart card as shown in FIG. 1, this technique can be used for other secure devices such as USB token, secure memory, secure multimedia, And a secure access module (SAM). Embodiments of the present invention are not limited to a processing device in which encryption is performed. Embodiments of the present invention may be used in any application where error detection is required and even error correction is required. For error correction, the data processing application may be set to reprocess the input data DIN when there is an error signal, or as described with reference to FIGS. 7A and 7B, three or more processing devices. Is used, a voting system can be used to determine which output data is authentic.
本発明の実施形態は、DES、AES、および任意の他のタイプの対称暗号化アルゴリズムに適用され得る。RSAなどの非対称アルゴリズムにも適用され得る。同じ装置は、DESおよびトリプルDESに用いられ得る。 Embodiments of the present invention may be applied to DES, AES, and any other type of symmetric encryption algorithm. It can also be applied to asymmetric algorithms such as RSA. The same device can be used for DES and triple DES.
本発明のある実施形態の処理装置が、ハードウェアにインプリメントされるとして説明されてきたが、本発明の実施形態はソフトウェアにインプリメントすることも可能である。例えば、図1を参照しながら上述したスマートカードデバイスにおいて、上述したように別個の処理装置9をスマートカード上に設けるのではなく、代わりに、オペレーティングプログラムが設けられて(メモリ部分3を用いて格納されて)、CPU5を制御し、いわば、処理装置9の機能を果たす。
Although the processing device of one embodiment of the present invention has been described as being implemented in hardware, embodiments of the present invention may be implemented in software. For example, in the smart card device described above with reference to FIG. 1, instead of providing a separate processing unit 9 on the smart card as described above, an operating program is provided instead (using the memory part 3). Stored) to control the
しかし、本発明の実施形態において、上述したように重なった様式で処理を行うために2つ以上の処理装置が必要とされるので、一般的に、1つのCPUを用いることは可能でない。代わりに、同時処理を行うことが可能になるように、2つ以上の処理装置に対応する2つ以上のCPUが設けられ得る。1つのCPUは、そのCPU自体が演算の並列処理を行うように動作可能である場合に用いられ得る。例えば、CPUにおける多くの演算は、本質的に、ビット毎の演算(例えば、AND、OR、XOR)であるが、32ビットプロセッサは、32ビットを同時に処理することができ、実質的に32の演算を並列に行うことができる。従って、これらの32ビットのうちのいくつかが1つの処理ラウンドからであり、いくつかが他の処理ラウンドからになるように、CPUを制御するように、オペレーティングプログラムを書くことが可能である。 However, in embodiments of the present invention, it is generally not possible to use a single CPU, as two or more processing units are required to perform the processing in an overlapping manner as described above. Alternatively, two or more CPUs corresponding to two or more processing devices may be provided so that simultaneous processing can be performed. One CPU may be used when the CPU itself is operable to perform parallel processing of operations. For example, while many operations in a CPU are essentially bit-by-bit operations (eg, AND, OR, XOR), a 32-bit processor can process 32 bits simultaneously, resulting in substantially 32 Operations can be performed in parallel. Thus, it is possible to write an operating program to control the CPU so that some of these 32 bits are from one processing round and some are from other processing rounds.
本発明を具現化するオペレーティングプログラムは、コンピュータ読み出し可能媒体に格納され得るが、インターネットウェブサイトから提供されるダウンロード可能なデータ信号などの信号において実現されることもできる。添付の特許請求の範囲は、オペレーティングプログラム自体、キャリアー上の記録として、信号として、あるいは、任意の他の形態を含むと解釈されるべきである。 An operating program embodying the present invention can be stored on a computer-readable medium, but can also be implemented in a signal, such as a downloadable data signal provided from an Internet website. The appended claims should be construed to include the operating program itself, as a record on a carrier, as a signal, or in any other form.
データ処理装置は、入力データ(DIN)を処理して、出力データ(DOUT)を生成するために提供される。このデータ処理装置は、第1の処理期間(T1)において所定のアルゴリズムに従って入力データ(DIN)を処理して、第1の出力データ(DOUT1)を生成する第1の処理装置(12)と、入力データ(DIN)を第2の処理期間(T2)において所定のアルゴリズムに従って処理して、第2の出力データ(DOUT2)を生成する第2の処理装置(14)とを備える。このデータ処理装置は、さらに、第1および第2の出力データ(DOUT1およびDOUT2)を比較して、処理誤りがあったか否かを判定する比較装置(4)を備える。第1および第2の処理装置(12および14)は、第1および第2の処理期間(T1およびT2)が重なり、重なる期間の間に少なくとも1度、第1および第2の処理装置(12および14)が処理を所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である。 A data processing device is provided for processing input data (DIN) and generating output data (DOUT). A first processing unit configured to process the input data (DIN) in a first processing period (T 1 ) according to a predetermined algorithm to generate first output data (DOUT 1 ); comprising the input data (DIN) was treated according to a second predetermined algorithm in the processing period (T 2) of the second processing unit for generating a second output data (DOUT 2) and (14). The data processing apparatus further includes comparing the first and second output data (DOUT 1 and DOUT 2), comparing device determines whether a processing error (4). First and second processing apparatuses (12 and 14) overlaps the first and second processing period (T 1 and T 2) are, at least once during the overlapping period, the first and second processing unit (12 and 14) are operable to perform the processing such that the processing is performed according to different parts of the predetermined algorithm.
同じ入力データに対して同じ出力データを生成する、類似するが、必ずしも同じでない、2つの計算の連続は、同じアルゴリズムに従って実行されるとみなされることが理解される。 It is understood that two similar, but not necessarily identical, sequences of calculations that produce the same output data for the same input data are considered to be performed according to the same algorithm.
Claims (36)
第1の処理期間において所定のアルゴリズムに従って該入力データを処理して、第1の出力データを生成する第1の処理装置と、
第2の処理期間において該所定のアルゴリズムに従って該入力データを処理して、第2の出力データを生成する第2の処理装置と、
該第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定する比較装置と
を備え、
該第1の処理装置および第2の処理装置は、第1の処理期間および第2の処理期間が重なり、重なる期間の間に少なくとも1度、該第1の処理装置および第2の処理装置が処理を該所定のアルゴリズムの異なる部分に従って行うように、処理を行うように動作可能である、データ処理装置。 A data processing device that processes input data and generates output data,
A first processing device that processes the input data according to a predetermined algorithm during a first processing period to generate first output data;
A second processing device that processes the input data according to the predetermined algorithm during a second processing period to generate second output data;
A comparison device that compares the first output data and the second output data to determine whether there is a processing error;
The first processing device and the second processing device may be configured such that the first processing period and the second processing period overlap, and the first processing device and the second processing device at least once during the overlapping period. A data processing device operable to perform the processing such that the processing is performed according to different parts of the predetermined algorithm.
(a)第1の処理期間において、所定のアルゴリズムに従って該入力データを処理して、第1の出力データを生成するステップと、
(b)第2の処理期間において、該所定のアルゴリズムに従って該入力データを処理して、第2の出力データを生成するステップと、
(c)該第1の出力データおよび第2の出力データを比較して、処理誤りがあったか否かを判定するステップと
を包含し、
該ステップ(a)および(b)の処理は、該第1の処理期間および第2の処理期間が重なり、該重なる期間の間、該ステップ(a)および(b)の処理が該所定のアルゴリズムの異なる部分に従って行われるように、行われる、方法。 A data processing method for processing input data to generate output data,
(A) during the first processing period, processing the input data according to a predetermined algorithm to generate first output data;
(B) during the second processing period, processing the input data according to the predetermined algorithm to generate second output data;
(C) comparing the first output data and the second output data to determine whether or not there has been a processing error;
In the processing of steps (a) and (b), the first processing period and the second processing period overlap, and during the overlapping period, the processing of steps (a) and (b) is performed by the predetermined algorithm. The method that is performed, as is performed according to different parts of the method.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0305596A GB2399426A (en) | 2003-03-12 | 2003-03-12 | Fault detection in data processing apparatus |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004310752A true JP2004310752A (en) | 2004-11-04 |
JP4386766B2 JP4386766B2 (en) | 2009-12-16 |
Family
ID=9954585
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004068254A Expired - Fee Related JP4386766B2 (en) | 2003-03-12 | 2004-03-10 | Error detection in data processing equipment. |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4386766B2 (en) |
GB (1) | GB2399426A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008053626A1 (en) * | 2006-10-30 | 2008-05-08 | Sharp Kabushiki Kaisha | Encrypting apparatus |
JP2010068523A (en) * | 2008-09-11 | 2010-03-25 | Oberthur Technologies | Method and device for protecting microcircuit against attacks |
WO2011148558A1 (en) * | 2010-05-28 | 2011-12-01 | 日本電気株式会社 | Signature generation apparatus, signature method, and non-temporary computer-readable medium on which signature generation program has been stored |
JP2011250182A (en) * | 2010-05-27 | 2011-12-08 | Toshiba Corp | Encryption processing apparatus |
JP2017004304A (en) * | 2015-06-11 | 2017-01-05 | 大日本印刷株式会社 | Arithmetic unit, ic card, arithmetic method, and arithmetic processing program |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007006013A2 (en) * | 2005-07-05 | 2007-01-11 | Viasat, Inc. | Synchronized high-assurance circuits |
US8190877B2 (en) * | 2005-07-05 | 2012-05-29 | Viasat, Inc. | Trusted cryptographic processor |
US8527741B2 (en) | 2005-07-05 | 2013-09-03 | Viasat, Inc. | System for selectively synchronizing high-assurance software tasks on multiple processors at a software routine level |
EP2290575A1 (en) * | 2009-08-31 | 2011-03-02 | Incard SA | IC Card comprising an improved processor |
US11461505B2 (en) * | 2019-10-17 | 2022-10-04 | Arm Limited | Obfuscation of operations in computing devices |
CN115442247B (en) * | 2022-11-03 | 2023-03-24 | 湖南警云智慧信息科技有限公司 | Adopt artificial intelligence data processing fortune dimension case |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4099241A (en) * | 1973-10-30 | 1978-07-04 | Telefonaktiebolaget L M Ericsson | Apparatus for facilitating a cooperation between an executive computer and a reserve computer |
FR2728369B1 (en) * | 1994-12-19 | 1997-01-31 | Sgs Thomson Microelectronics | METHOD AND DEVICE FOR INCREASING THE SECURITY OF AN INTEGRATED CIRCUIT |
GB2317032A (en) * | 1996-09-07 | 1998-03-11 | Motorola Gmbh | Microprocessor fail-safe system |
US6058491A (en) * | 1997-09-15 | 2000-05-02 | International Business Machines Corporation | Method and system for fault-handling to improve reliability of a data-processing system |
CA2258338C (en) * | 1999-01-11 | 2009-02-24 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
-
2003
- 2003-03-12 GB GB0305596A patent/GB2399426A/en not_active Withdrawn
-
2004
- 2004-03-10 JP JP2004068254A patent/JP4386766B2/en not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008053626A1 (en) * | 2006-10-30 | 2008-05-08 | Sharp Kabushiki Kaisha | Encrypting apparatus |
JP2008113130A (en) * | 2006-10-30 | 2008-05-15 | Sharp Corp | Encryption device |
JP2010068523A (en) * | 2008-09-11 | 2010-03-25 | Oberthur Technologies | Method and device for protecting microcircuit against attacks |
JP2011250182A (en) * | 2010-05-27 | 2011-12-08 | Toshiba Corp | Encryption processing apparatus |
WO2011148558A1 (en) * | 2010-05-28 | 2011-12-01 | 日本電気株式会社 | Signature generation apparatus, signature method, and non-temporary computer-readable medium on which signature generation program has been stored |
US8966264B2 (en) | 2010-05-28 | 2015-02-24 | Nec Corporation | Signature generation apparatus, signature method, non-transitory computer readable medium storing signature generation program |
JP2017004304A (en) * | 2015-06-11 | 2017-01-05 | 大日本印刷株式会社 | Arithmetic unit, ic card, arithmetic method, and arithmetic processing program |
Also Published As
Publication number | Publication date |
---|---|
GB0305596D0 (en) | 2003-04-16 |
JP4386766B2 (en) | 2009-12-16 |
GB2399426A (en) | 2004-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Barenghi et al. | Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures | |
KR102628466B1 (en) | Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method | |
US7543159B2 (en) | Device and method with reduced information leakage | |
JP4671571B2 (en) | Secret information processing device and memory for storing secret information processing program | |
US20040025032A1 (en) | Method and system for resistance to statiscal power analysis | |
JP6366595B2 (en) | Method and system for anti-glitch cryptographic discrete log-based signature | |
Dassance et al. | Combined fault and side-channel attacks on the AES key schedule | |
JP2004304800A (en) | Prevention of side channel attacks in data processing equipment | |
JP2010164904A (en) | Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method | |
Tunstall | Smart card security | |
JP4386766B2 (en) | Error detection in data processing equipment. | |
EP1646174A1 (en) | Method and apparatus for generating cryptographic sets of instructions automatically and code generation | |
JP5261088B2 (en) | Unauthorized operation detection circuit, device provided with unauthorized operation detection circuit, and unauthorized operation detection method | |
Blömer et al. | Wagner’s Attack on a secure CRT-RSA Algorithm Reconsidered | |
Cayrel et al. | Secure implementation of the stern authentication and signature schemes for low-resource devices | |
Gallais et al. | Hardware trojans for inducing or amplifying side-channel leakage of cryptographic software | |
Spadavecchia | A network-based asynchronous architecture for cryptographic devices | |
US12169570B2 (en) | Data processing device and method for processing secret data | |
Karri et al. | Parity-based concurrent error detection in symmetric block ciphers | |
Ege et al. | Practical improvements to statistical ineffective fault attacks | |
CA2327037A1 (en) | Method to detect fault attacks against cryptographic algorithms | |
Rivain | On the physical security of cryptographic implementations | |
Tunstall | Smart card security | |
Christmann | Power Side-Channel Attacks | |
Tunstall | Secure cryptographic algorithm implementation on embedded platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060125 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090707 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090903 |
|
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: 20090929 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090929 |
|
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: 20121009 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131009 Year of fee payment: 4 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
LAPS | Cancellation because of no payment of annual fees |