JP2004304800A - Protection of side channel for prevention of attack in data processing device - Google Patents

Protection of side channel for prevention of attack in data processing device Download PDF

Info

Publication number
JP2004304800A
JP2004304800A JP2004097245A JP2004097245A JP2004304800A JP 2004304800 A JP2004304800 A JP 2004304800A JP 2004097245 A JP2004097245 A JP 2004097245A JP 2004097245 A JP2004097245 A JP 2004097245A JP 2004304800 A JP2004304800 A JP 2004304800A
Authority
JP
Japan
Prior art keywords
radix
integer
data processing
mod
modulus
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
Application number
JP2004097245A
Other languages
Japanese (ja)
Inventor
John Nonweiler
ノンウェラ ジョン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sharp Corp
Original Assignee
Sharp Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sharp Corp filed Critical Sharp Corp
Publication of JP2004304800A publication Critical patent/JP2004304800A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7247Modulo masking, e.g. A**e mod (n*r)
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7257Random modification not requiring correction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Abstract

<P>PROBLEM TO BE SOLVED: To reduce information leaking out to side channels as much as possible, because attacks on the side channels get sophisticated recently, to make it more difficult so that the errors are introduced into a data processing device, to detect the tried attacks as to cope with this technical problem, and to protect the data processing device, such as smart cards or the like against the attacks. <P>SOLUTION: The data processing device comprises a processing means which carries out processing operations, including a modular power method operation of a format of [m<SP>d</SP>mod N] having an exponent d and a modulus N and a radix blinding means which reduces the amount of side channel information leaking out from the data processing device, by changing the radix m before the power method operation is carried out, without affecting the result of the modular power method operation by producing an integer k, multiplying the integer k with the modulus N, and adding the multiplication result to the radix m. <P>COPYRIGHT: (C)2005,JPO&NCIPI

Description

本発明は、データ処理装置における、例えば、データを秘密にするため暗号アルゴリズムを用いたスマートカードにおけるサイドチャネル攻撃防止に関する。   The present invention relates to prevention of side channel attacks in a data processing device, for example, a smart card using an encryption 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). The smart card 1 of FIG. 1 includes a memory unit 3, a central processing unit (CPU) 5, an input / output (I / O) unit 7, and a processing unit 9. The CPU 5 performs bidirectional communication with the memory unit 3, the I / O unit 7, and the processing device 9. These parts are usually contained within one integrated circuit embedded in the smart card 1. The smart card 1 may be a contact type or a non-contact type.

スマートカード1は、POWER(電力)およびCLKチャンネルを介して外部デバイスと通信して、必要な電力およびクロック信号CLKを受信することができ(内部電源またはクロック源を有するスマートカードもあるが)、I/Oチャネルを介して外部デバイスと通信して、データをスマートカード1に通信し、スマートカード1から通信することができる。このような通信は、接触式カードのコンタクトピンを介する電気信号、あるいは、非接触式カードの誘導性、容量性または光学結合のいずれかによって行われる。   The smart card 1 can communicate with external devices via the POWER and CLK channels to receive the required power and clock signals CLK (although some smart cards have an internal power supply or clock source), Data can be communicated to and from the smart card 1 by communicating with external devices via the I / O channel. Such communication may be by electrical signals via contact pins of the contact card or by inductive, capacitive or optical coupling of the contactless card.

スマートカードは、カードに格納されたデータ、ならびに、カードに通信され、または、カードから通信されるデータのセキュリティおよび保全性が最も重要である場合に、多くの用途が見出される。例えば、スマートカードは、カード保持者の身元を証明するために用いられる身分証明書としての役割を果たし得る。スマートカードはまた、その人の病歴を全て格納した医療カードとしても用いられ得る。さらに、スマートカードは、オフライン取引ができるクレジット/デビットバンクカードとして用いられ得る。このような理由により、機密に関わるデータが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 smart card 1 shown in FIG. 1, such encryption is performed by the processing device 9. For example, when data stored in the memory unit 3 needs to communicate with an external request device via an I / O channel, this data is requested from the memory unit 3 by the CPU 5 and is processed as input data DIN by the processing unit 9 Sent to. The processing device 9 encrypts the input data DIN to generate encrypted output data DOUT. DOUT is returned to the CPU 5, transferred to the I / O unit 7, and subsequently transmitted to an external request device via an I / O channel.

任意の適切な暗号化モデルが、暗号化を行うために処理装置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 Rivest-Shamir-Aldreman (RSA) algorithm and the Rabin encryption scheme, is possible.

添付の図面の図2は、公開鍵暗号システムおよび秘密鍵暗号システムの両方を表す、従来の暗号化モデルを図示するブロック図である。このモデルにおいて、2つの当事者、XおよびYは、暗号を用いて、公開チャネル13にわたる非公開通信を行おうと試みる。当事者Xは、暗号化ユニットEを用い、暗号化鍵K(非対称暗号化モデルにおいては公開鍵であり、対称暗号化モデルにおいては秘密鍵である)を用いて、平文Pを暗号化して、当事者Yへと公開チャネル13を介して通信される暗号文Cを生成する。当事者Yは、暗号化ユニットDおよび鍵Kに対応する秘密鍵Kを用いて、暗号文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 public channel 13 using cryptography. Party X encrypts plaintext P using encryption unit E, using encryption key K X (which is a public key in an asymmetric encryption model and a secret key in a symmetric encryption model), A ciphertext C to be communicated to the party Y via the public channel 13 is generated. Party Y by using the secret key K Y corresponding to the enciphering unit D and the key K X, to decrypt the ciphertext C, and reproduce the original plaintext P.

しかし、第三者ZがXとYとの間の非公開なやりとりを、公開チャネル13をモニタリングすることによって盗聴している。第三者Zは、用いられた暗号アルゴリズムについての全ての詳細を、秘密鍵Kを除いて全て知り得、多くの暗号文のサンプルを持ち、いくつかの平文と暗号文との対を(他の何らかの手段によって当事者Xまたは当事者Yのいずれかから得られた平文とともに)有し得る。このように集められた情報は、その後、計算集約暗号解析にかけられて、用いられた暗号を解読して、暗号文を生成または解読するために用いられた秘密鍵を判定する。 However, the third party Z eavesdrops on the private exchange between X and Y by monitoring the public channel 13. Third party Z, all the details of the cryptographic algorithms used, resulting know all but the secret key K X, has a sample of many ciphertext, some plaintext and a pair of a ciphertext ( (With plaintext obtained from either party X or party Y by some other means). The information collected in this way is then subjected to computationally intensive cryptanalysis to decrypt the used cipher and determine the secret key used to generate or decrypt the ciphertext.

しかし、現代の暗号化技術は、従来の方法で集められた情報の力任せの計算解析に基づく、このような従来の攻撃に対してより抵抗力があるように開発されている。従って、暗号化システムの物理的な実施に基づいてよりわかりにくい情報ソースの使用が最近注目されている。   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)が切り替わるにつれて、変動する。電力消費は、行われている計算と相関するので、敵にとって有用である。電力解析に基づくサイドチャネル攻撃の中で最も脅威的なタイプのうちの1つは、Kocherらによって、「Differential Power Analysis」CRYPTO‘99という文献において提案されている差動電力解析(DPA)というタイプのものである。   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. 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 on DES require slightly less than 64 terabytes 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 such side-channel attacks have become more sophisticated, such techniques have been developed by minimizing information leaking into the side-channel, making it more difficult to introduce errors, and detecting attempted attacks. It is important to address security challenges and protect data processing devices such as smart cards from such attacks.

1. 基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算を含む処理演算を行う処理手段と、
整数kを生成すること、該整数kにモジュラスNを乗算すること、および該基数mに該乗算の結果を加算することによって、該モジュラ累乗法演算の結果に影響を与えることなく、該累乗法演算が行われる前に該基数mを変更して、装置から漏れるサイドチャネル情報の量を低減する、基数ブラインディング手段と
を含む、データ処理装置。
1. Processing means for performing a processing operation including a modular exponentiation operation of the form md mod N having a radix m, a power exponent d and a modulus N;
Generating the integer k, multiplying the integer k by a modulus N, and adding the result of the multiplication to the radix m without affecting the result of the modular exponentiation operation. A radix blinding means for changing the radix m before the operation is performed to reduce the amount of side channel information leaking from the device.

2. 前記基数ブラインディング手段は、前記基数mを予測不可能な様態で変更する、項目1の装置。   2. The apparatus of claim 1, wherein said radix blinding means changes said radix m in an unpredictable manner.

3. 前記基数ブラインディング手段は、擬似ランダムアルゴリズムに従って、前記整数kを生成する、項目2の装置。   3. The apparatus of claim 2, wherein said radix blinding means generates said integer k according to a pseudo-random algorithm.

4. 前記基数ブラインディング手段は、このようなモジュラ累乗法演算が行われるたびに新たな整数kを生成する、項目1〜3の装置。   4. The apparatus of items 1 to 3, wherein the radix blinding means generates a new integer k every time such a modular exponentiation operation is performed.

5. 前記モジュラ累乗法演算は暗号アルゴリズムの一部である、項目1〜4の装置。   5. 5. The apparatus of items 1-4, wherein said modular exponentiation operation is part of a cryptographic algorithm.

6. 前記暗号化アルゴリズムは、RSAアルゴリズムである、項目5の装置。   6. The apparatus of claim 5, wherein the encryption algorithm is an RSA algorithm.

7. 整数iを生成すること、Nのオイラートチエント関数φ(N)を計算すること、該オイラートチエント関数φ(N)に該整数iを乗算すること、および前記べき指数dに該乗算の結果を加算することによって、前記モジュラ累乗法演算の結果に影響を与えることなく、該累乗法演算が行われる前に該べき指数dを変更して、装置から漏れるサイドチャネル情報の量をさらに低減する、べき指数ブラインディング手段をさらに含む、項目1〜6の装置。   7. Generating an integer i, calculating an Euler-Chiient function φ (N) of N, multiplying the Euler-Chiient function φ (N) by the integer i, and the result of the multiplication by the exponent d To further reduce the amount of side channel information leaking from the device by changing the exponent d before the exponentiation operation is performed without affecting the result of the modular exponentiation operation 7. The apparatus of items 1 to 6, further comprising power exponential blinding means.

8. 前記モジュラ累乗法演算は、一連の中間計算として行われる、項目1〜7の装置。   8. The apparatus of items 1-7, wherein the modular exponentiation operation is performed as a series of intermediate calculations.

9. 前記モジュラ累乗法演算は、二乗および乗算技術に従って行われる、項目8の装置。   9. The apparatus of claim 8, wherein the modular exponentiation operation is performed according to a square and multiplication technique.

10. 前記中間計算は、前記基数mを変更する効果が前記モジュラ累乗法演算が行われる間を通じて続くように行われる、項目8または9の装置。   10. The apparatus of claim 8 or 9, wherein the intermediate calculation is performed such that the effect of changing the radix m continues throughout the execution of the modular exponentiation operation.

11. 前記モジュロ還元演算mod Nは、形式mの累乗法演算が完了した後に行われる、項目8、9または10の装置。 11. The modulo reduction operation mod N is performed after the exponentiation operation in the form m d is complete, device items 8, 9 or 10.

12. 前記モジュロ還元演算mod Nは、1つ以上の前記中間計算の後に行われる、項目8〜11の装置。   12. 12. The apparatus of items 8-11, wherein said modulo reduction operation mod N is performed after one or more of said intermediate calculations.

13. 整数jを生成すること、およびブラインドされていないモジュラスNに該整数jを乗算することによってブラインドされたモジュラスWを生成し、前記処理手段に、式(m mod W)に従って前記累乗法演算を行わせて、該モジュラ累乗法演算の結果に影響を与えず、前記装置から漏れるサイドチャネル情報の量をさらに低減する、モジュラスブラインディング手段をさらに含む、項目1〜11の装置。 13. Generating an integer j and generating a blinded modulus W by multiplying the unblinded modulus N by the integer j; and providing the processing means with the power operation in accordance with equation ( md mod W). 12. The apparatus of items 1-11, further comprising modulus blinding means for causing the apparatus to further reduce the amount of side channel information leaking from the apparatus without affecting the result of the modular exponentiation operation.

14. 項目8に従属すると解釈される場合、前記モジュロ還元演算mod Wは、1つ以上の前記中間計算後に行われる、項目13の装置。   14. The apparatus of claim 13, wherein the modulo reduction operation mod W is performed after one or more of the intermediate calculations when interpreted as being dependent on item 8.

15. 基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算を含む処理演算を行うデータ処理装置において用いられるデータ処理方法であって、
整数kを生成すること、該整数kにモジュラスNを乗算すること、および該基数mに該乗算の結果を加算することによって、該モジュラ累乗法演算の結果に影響を与えることなく、該累乗法演算が行われる前に該基数mを変更して、装置から漏れるサイドチャネル情報の量を低減する工程
を包含する、方法。
15. A data processing method used in a data processing apparatus that performs a processing operation including a modular exponentiation operation of a form md mod N having a radix m, a power exponent d, and a modulus N,
Generating the integer k, multiplying the integer k by a modulus N, and adding the result of the multiplication to the radix m without affecting the result of the modular exponentiation operation. Changing the radix m before the operation is performed to reduce the amount of side channel information leaking from the device.

16. 実質的に、図4〜図8を参照して上記のとおりである、データ処理装置。   16. A data processing apparatus substantially as described above with reference to FIGS.

17. 実質的に、図4〜図8を参照して上記のとおりである、データ処理方法。   17. A data processing method substantially as described above with reference to FIGS.

18. 項目1〜14および16のいずれか1つのデータ処理装置を備える、スマートカード。   18. A smart card comprising the data processing device according to any one of items 1 to 14 and 16.

19. データ処理デバイスにロードされる場合、該デバイスを、請求項1〜14および16のいずれか1つの装置、あるいは、項目18のスマートカードにする、オペレーティングプログラム。   19. An operating program which, when loaded into a data processing device, causes the device to be a device according to any one of claims 1 to 14 and 16 or a smart card of item 18.

20. データ処理デバイス上で実行される場合、該デバイスに項目15または17の方法を実行させる、オペレーティングプログラム。   20. An operating program, which when executed on a data processing device, causes the device to perform the method of item 15 or 17.

21. キャリア媒体において実行される、項目19または20のオペレーティングプログラム。   21. 21. An operating program according to item 19 or 20, executed on a carrier medium.

22. 前記キャリア媒体が伝送媒体である、項目21のオペレーティングプログラム。   22. Item 22. The operating program of item 21, wherein the carrier medium is a transmission medium.

23. 前記キャリア媒体が格納媒体である、項目21のオペレーティングプログラム。   23. Item 22. The operating program of item 21, wherein the carrier medium is a storage medium.

本発明の第1の局面によると、基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算を含む処理演算を行う処理手段と、整数kを生成すること、整数kにモジュラスNを乗算すること、および基数mに乗算の結果を加算することによって、モジュラ累乗法演算の結果に影響を与えることなく、累乗法演算が行われる前に基数mを変更して、装置から漏れるサイドチャネル情報の量を低減する、基数ブラインディング手段とを含む、データ処理装置が提供される。 According to a first aspect of the present invention, processing means for performing a processing operation including a modular exponentiation operation of a form md mod N having a radix m, a power exponent d and a modulus N, generating an integer k, Multiplying the result of the multiplication by the modulus N, and adding the result of the multiplication to the radix m, thereby changing the radix m before the exponentiation operation is performed without affecting the result of the modular exponentiation operation. Radix blinding means for reducing the amount of side channel information leaking from the data processing apparatus.

従って、実際に行われるモジュラ累乗法演算は、(m+k*N) mod Nである。この記載の文脈において、装置から漏れるサイドチャネル情報の量を低減したいという要求は、攻撃者にとって何らかの役に立ち得るサイドチャネル情報の量を低減したいという要求を意味する。つまり、装置から外部へとサイドチャネルを介して漏れることを防ぐことが理想的であるはずの秘密情報の漏れである。これは、サイドチャネル攻撃をより難しくすることと同等の効果を有する。従って、本発明の実施形態は、実際の技術的利点を提供する。 Therefore, the modular exponentiation operation actually performed is (m + k * N) d mod N. In the context of this description, a request to reduce the amount of side channel information leaking from a device means a request to reduce the amount of side channel information that may be of some use to an attacker. In other words, it is the leakage of secret information that should ideally be prevented from leaking from the device to the outside via the side channel. This has the same effect as making side channel attacks more difficult. Thus, embodiments of the present invention provide a real technical advantage.

基数ブラインディング手段は、例えば、ランダムまたは擬似ランダムアルゴリズムに従って、整数kを生成する、基数mを予測不可能な様態で変更することが好ましい。基数ブラインディング手段は、このようなモジュラ累乗法演算が行われるたびに新たな整数kを生成することが好ましい。モジュラ累乗法演算は、RSAアルゴリズムのような暗号アルゴリズムの一部であってもよい。   The radix blinding means preferably generates the integer k and changes the radix m in an unpredictable manner, for example, according to a random or pseudo-random algorithm. The radix blinding means preferably generates a new integer k every time such a modular exponentiation operation is performed. The modular exponentiation operation may be part of a cryptographic algorithm such as the RSA algorithm.

データ処理装置は、整数iを生成すること、Nのオイラートチエント関数φ(N)を計算すること、オイラートチエント関数φ(N)に整数iを乗算すること、およびべき指数dに乗算の結果を加算することによって、モジュラ累乗法演算の結果に影響を与えることなく、累乗法演算が行われる前にべき指数dを変更して、装置から漏れるサイドチャネル情報の量をさらに低減する、べき指数ブラインディング手段をさらに含んでもよい。   The data processor generates the integer i, calculates the Euler-Chiient function φ (N) of N, multiplies the Euler-Chiient function φ (N) by the integer i, and multiplies the exponent d. By adding the results, the power exponent d can be changed before the exponentiation operation is performed without affecting the result of the modular exponentiation operation to further reduce the amount of side channel information leaking from the device. It may further include exponential blinding means.

モジュラ累乗法演算は、例えば、二乗および乗算技術に従って、一連の中間計算として行われてもよい。中間計算は、基数mを変更する効果がモジュラ累乗法演算が行われる間を通じて続くように行われることが好ましい。言及される効果は、装置から漏れるサイドチャネル情報の量を低減する技術的効果、すなわち、サイドチャネル攻撃をより困難にする技術的効果である。   The modular exponentiation operation may be performed as a series of intermediate calculations, for example, according to squaring and multiplication techniques. The intermediate calculation is preferably performed such that the effect of changing the radix m continues throughout the execution of the modular exponentiation operation. The effects mentioned are the technical effects of reducing the amount of side channel information leaking from the device, ie the technical effects that make side channel attacks more difficult.

モジュロ還元演算mod Nは、形式mの累乗法演算が完了した後に行われてもよい。モジュロ還元演算mod Nはまた、1つ以上の中間計算の後に行われてもよい。 Modulo reduction operation mod N may be performed after the exponentiation operation in the form m d is complete. The modulo reduction operation mod N may also be performed after one or more intermediate calculations.

データ処理装置は、整数jを生成すること、およびブラインドされていないモジュラスNに整数jを乗算することによってブラインドされたモジュラスWを生成し、処理手段に、式(m mod W)に従って累乗法演算を行わせて、モジュラ累乗法演算の結果に影響を与えず、装置から漏れるサイドチャネル情報の量をさらに低減する、モジュラスブラインディング手段をさらに含んでもよい。 The data processing apparatus generates an integer j, and generates a blinded modulus W by multiplying the unblinded modulus N by the integer j, and instructs the processing means to use a power method according to the equation ( md mod W). Modulus blinding means may be further included for performing the operation and further reducing the amount of side channel information leaking from the device without affecting the result of the modular exponentiation operation.

このようなモジュラスブラインディング手段を用いて、モジュラ累乗法演算が一連の中間計算として行われる場合、モジュロ還元演算mod Nではなく、モジュロ還元演算mod Wが、1つ以上の中間計算後に行われ得る。   If the modular exponentiation operation is performed as a series of intermediate calculations using such modulus blinding means, the modulo reduction operation mod W, rather than the modulo reduction operation mod N, may be performed after one or more intermediate calculations. .

本発明の第2の局面によると、基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算を含む処理演算を行うデータ処理装置において用いられるデータ処理方法であって、整数kを生成すること、整数kにモジュラスNを乗算すること、および基数mに乗算の結果を加算することによって、モジュラ累乗法演算の結果に影響を与えることなく、累乗法演算が行われる前に基数mを変更して、装置から漏れるサイドチャネル情報の量を低減する工程を包含する方法が提供される。 According to a second aspect of the present invention, there is provided a data processing method used in a data processing apparatus for performing a processing operation including a modular exponentiation operation of a form md mod N having a radix m, an exponent d and a modulus N, Generating the integer k, multiplying the integer k by the modulus N, and adding the result of the multiplication to the radix m before the exponentiation operation is performed without affecting the result of the modular exponentiation operation And changing the radix m to reduce the amount of side channel information leaking from the device.

本発明の第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. The processing means and the radix blinding means of the data processing device may be said to be adapted to perform their respective functions.

本発明の第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.

このようなオペレーティングプログラムは、キャリア媒体において実行され得る。キャリア媒体は、伝送媒体または格納媒体であってもよい。   Such an operating program may be executed on a carrier medium. The carrier medium may be a transmission medium or a storage medium.

本発明のある実施形態は、特に、代表的にRSAアルゴリズムに関連付けられたモジュラ累乗法演算を行うデータ処理装置におけるサイドチャネル攻撃(例えば、電力、タイミング、および誤りに基づく攻撃)に対する保護に関連する。このアルゴリズムと、このようなアルゴリズムを用いてこのようなサイドチャネルから暗号装置を守る、以前に考えられた様々な方法は、本発明の各種の実施形態の説明の前に、まず説明される。   Certain embodiments of the present invention are particularly related to protection against side channel attacks (eg, power, timing, and error based attacks) in data processing devices that typically perform modular exponentiation operations associated with the RSA algorithm. . This algorithm, and the various methods previously considered for using such an algorithm to protect a cryptographic device from such side-channels, will first be described before describing the various embodiments of the present invention.

当事者XがRSAアルゴリズムを用いてメッセージmを暗号化し、当事者Yが受け取って解読するとする。当事者Xは、まず、当事者Yの公開鍵(N、e)を取得し、これに基づいて、暗号化されるメッセージmを整数として間隔[0:N−1]で表す。その後、当事者Xは、メッセージmを暗号化して、以下のアルゴリズムを用いて、暗号文cを生成する:
c=m mod N。
Suppose party X encrypts message m using the RSA algorithm and party Y receives and decrypts it. The party X first obtains the public key (N, e) of the party Y and, based on this, expresses the message m to be encrypted as an integer at the interval [0: N-1]. Thereafter, party X encrypts message m and generates ciphertext c using the following algorithm:
c = me mod N.

以下により詳細に説明される標準的な二乗および乗算技術を用いると、このアルゴリズムは、mにmをe回乗算し、解をモジュロNで表したものと等しい。   Using standard squaring and multiplication techniques described in more detail below, this algorithm multiplies m by m e times, and is equivalent to expressing the solution modulo N.

cから平文mを復元するため、当事者Yは、自身の秘密鍵dを用いて、以下のアルゴリズムを用いる:
m=c mod N。
To recover plaintext m from c, party Y uses the following algorithm, using its own secret key d:
m = c d mod N.

従って、この解読演算は、暗号化演算と同じモジュラ累乗法形式を用いる。   Therefore, this decryption operation uses the same modular exponentiation form as the encryption operation.

公開鍵(N、e)を生成し、対応する秘密鍵dを生成するため、当事者Yによって用いられる方法は、以下の通りである。2つの大きな素数、pおよびqが選択され、その積N=pqが計算される。ただし、Nは公開鍵モジュールを形成する。公開鍵からの値eは、Nより小さく、(p−1)(q−1)と互いに素になるように選択される。これは、cと(p−1)(q−1)とは、1以外に公約数を持たないことを意味する。dの値は、(ed−1)が(p−1)(q−1)によって乗算できるようになっていることが分かる。因子pおよびqは、破棄されてもよいし、強化秘密鍵(d、p、q)と共に保持されてもよい。さらなる詳細を、例えば、Menezesらによる「Handbook of Applied Cryptography」に見出すことができる。   The method used by party Y to generate the public key (N, e) and the corresponding private key d is as follows. Two large prime numbers, p and q, are selected and the product N = pq is calculated. Here, N forms a public key module. The value e from the public key is selected to be smaller than N and relatively prime to (p-1) (q-1). This means that c and (p-1) (q-1) have no common divisor other than 1. It can be seen that the value of d is such that (ed-1) can be multiplied by (p-1) (q-1). The factors p and q may be discarded or kept with the enhanced secret key (d, p, q). Further details can be found in, for example, "Handbook of Applied Cryptography" by Menezes et al.

公開鍵(N、e)を用いることの代替例として、送信されたデータを秘密にし、その後、対応する秘密鍵dを以降の解読に用いることがある。秘密鍵dは、署名の一形態として、メッセージmを暗号化するために、代替的に用いられ得、そのことによって、受け取り側の当事者は、メッセージmが本物であることと、改竄されていないこととの両方が保証され得る。このようにして、当事者Yは、s=m mod Nを用いることによって、自身の秘密鍵dを用いてデジタル署名sを作成し得る。その後、当事者Yは、mとsとの両方を当事者Yに送信し得る。署名を照合するため、当事者Xは、当事者Yの公開鍵(N、e)を用いてm=s mod Nを計算し、元のメッセージmが復元されたことをチェックする。 An alternative to using the public key (N, e) is to keep the transmitted data secret and then use the corresponding private key d for subsequent decryption. The secret key d can alternatively be used to encrypt the message m as a form of signature, so that the receiving party can confirm that the message m is genuine and unaltered And both can be guaranteed. In this way, party Y can create digital signature s with his private key d by using s = md mod N. Party Y may then send both m and s to party Y. To verify the signature, party X computes m = s e mod N using party Y's public key (N, e) and checks that the original message m has been restored.

従って、暗号化および認証は、秘密鍵を共有することなく行われる。それぞれが、他方の公開鍵または自身の秘密鍵のみを用いる。誰でも、暗号化されたメッセージを送信するか、または署名されたメッセージを照合することができるが、正確な秘密鍵を所有する者のみがメッセージを解読するか、または署名することができる。   Therefore, encryption and authentication are performed without sharing a secret key. Each uses only the other public key or its own private key. Anyone can send an encrypted message or verify a signed message, but only the person who has the correct private key can decrypt or sign the message.

RSAの中国の剰余定理(CRT)バージョンは類似し、同じ結果をもたらす:
s=(m mod p+p*(p−1 mod q)*(m mod q−m mod p))mod p*q。
The Chinese Remainder Theorem (CRT) version of RSA is similar and gives the same result:
s = ( md mod p + p * (p- 1 mod q) * ( md mod q- md mod p)) mod p * q.

このアルゴリズムの秘密鍵は、(d、p、q)である。ただし、(p*q)は、公開鍵モジュールNと等しい。CRTバージョンにおいて、スピード効率(m mod p)は、(md mod p−1 mod q)として計算され、(m mod q)は(md mod q−1 mod q)として計算される。従って、2つの別個の累乗法演算が行われる。 The secret key of this algorithm is (d, p, q). Here, (p * q) is equal to the public key module N. In CRT version, speed efficiency (m d mod p) is calculated as (m d mod p-1 mod q), (m d mod q) is calculated as (m d mod q-1 mod q). Therefore, two separate exponentiation operations are performed.

RSAアルゴリズムに対してサイドチャネル攻撃を行うことをより困難にするため、可能な限り計算にランダムさを加えることが有用である。これは、低いレベルで、例えば、演算のタイミングをランダムにすること、ランダムな間隔にダミー演算を追加すること、または、場合によっては、中間の工程を計算する複数の異なる様式からランダムに選択することによって行われ得る。あるいは、入力および計算がランダムになるが、出力が正確であり続けるように、マスキングがRSAなどのアルゴリズムの入力に追加され得る。   To make it more difficult to perform a side channel attack on the RSA algorithm, it is useful to add as much randomness to the calculation as possible. This can be at a low level, e.g., randomizing the timing of the operation, adding dummy operations at random intervals, or, in some cases, randomly selecting from several different ways of calculating intermediate steps. This can be done by: Alternatively, masking may be added to the input of an algorithm such as RSA so that the inputs and calculations are random, but the output remains accurate.

米国特許第5,991,415号にある技術が既に提示されている。この特許において、べき指数は、数φ(N)のランダムな倍数を加えることによって「ブラインドされる」。ここで、φ(N)は、モジュラスNのオイラーのトチエント関数である:
s=md+k*φ(N) mod N。
ただし、kはランダムな整数である。オイラーのトチエント関数φ(N)は、Nと互いに素である(すなわち、Nと公約数を持たない)、≦Nの正の整数であると定義される。ただし、1は、全ての数と互いに素であるとみなされる。所与の数以下であり、所与の数と互いに素である数は、トテイティブ(totative)と呼ばれるので、トチエント関数は、Nのトテイティブの数と定義され得る。例えば、24のトテイティブは8個(1,5,7、11、13、17、19および23)なので、φ(24)=8である。Nが素数である場合、φ(N)=N−1であり、N=p*q(RSAのCRTバージョンと同様)の場合、φ(N)=(p−1)*(q−1)である。
The technique in US Pat. No. 5,991,415 has already been presented. In this patent, the exponent is "blinded" by adding a random multiple of the number φ (N). Where φ (N) is Euler's Totient function of modulus N:
s = md + k * φ (N) mod N.
Here, k is a random integer. Euler's Totient function φ (N) is defined to be a positive integer of ≦ N that is relatively prime to N (ie, has no common divisor with N). However, 1 is considered to be relatively prime to all numbers. A number that is less than or equal to a given number and is relatively prime to the given number is called totive, so the totient function may be defined as the number of N totives. For example, φ (24) = 8 because 24 totives are eight (1, 5, 7, 11, 13, 17, 19, and 23). When N is a prime number, φ (N) = N−1, and when N = p * q (similar to the CRT version of RSA), φ (N) = (p−1) * (q−1) It is.

上記のブラインドされたアルゴリズムは、ブラインドされていないアルゴリズムと同じ出力を生成することが示され得る。ブラインドされたアルゴリズムでは、電力の形跡は、秘密のべき指数が用いられるたびに非常に異なって見え、これによりDPAに対して防御する。計算にランダムな要素が導入されることによって、時間および誤りに基づくサイドチャネル攻撃に対する保護も提供される。この技術は、本明細書中、「べき指数ブラインディング」と呼ばれる。   It can be shown that the blind algorithm above produces the same output as the unblinded algorithm. In a blinded algorithm, the power signature looks very different each time the secret exponent is used, thereby guarding against DPA. The introduction of a random element in the computation also provides protection against time and error based side channel attacks. This technique is referred to herein as "power exponential blinding."

同様に、以下のアルゴリズムを用いて、モジュラスNをブラインドすることが追加され得る:
s=(m mod k*N)mod N。
ただし、kは、ランダムな非ゼロの整数である。これは、モジュラスN(pおよびqからなる)が秘密に保持される必要があるRSAアルゴリズムのCRTバージョンにとって特に有用である。この技術は、本明細書中、「モジュラスブラインディング」と呼ばれる。
Similarly, blinding modulus N may be added using the following algorithm:
s = ( md mod k * N) mod N.
Where k is a random non-zero integer. This is particularly useful for the CRT version of the RSA algorithm where the modulus N (consisting of p and q) needs to be kept secret. This technique is referred to herein as "modulus blinding."

同様に、以下のアルゴリズムを用いて、メッセージmをブラインドすることが追加され得る。
s=((k*m))*(k−d)mod N
ただし、kはランダムな非ゼロの整数である。この技術は、本明細書中、「メッセージブラインディング」と呼ばれる。このメッセージブラインディング技術の変形例には、第2の累乗法に、公開鍵べき指数cを用いる(すなわち、kではなくjが用いられ、(je*m)および(j−dが得られる場合、cを用いる累乗法は、dを用いる累乗法よりも一般的には安価であり、従ってjはkおよび(j−d≡(jed−1≡j−1よりも安価であり、余分な作業は、反転および余分な公開鍵累乗法になる)こと、または、kの以前の値を格納し、例えば二乗して新たな殆どランダムなkを得ることが含まれる。メッセージ自体はまた、メッセージをランダム化する(そして、効率的にブラインドする)パディング方式(例えば、PKCS#1 v2.1規格に書かれている、パディング方式「EMSA−PSS」)を用いてパディングされ得る。これは、メッセージブラインディング技術と共に、あるいは、メッセージブラインディング技術の代わりに用いられ得る。
Similarly, blinding message m may be added using the following algorithm:
s = ((k * m) d ) * (k- d ) mod N
Where k is a random non-zero integer. This technique is referred to herein as "message blinding." The modification of this message blinding technique, the second exponentiation, using the public key exponent c (i.e., the k no j e is used, (j e * m) d and (j e) - If d is obtained, the exponentiation using c is generally cheaper than the exponentiation using d, so that j e is k d and (j e ) −d ≡ (j ed ) −1 ≡j Less expensive than -1 and the extra work becomes inversion and extra public key exponentiation) or storing the previous value of k, e.g. squaring to get a new almost random k Is included. The message itself is also padded using a padding scheme that randomizes (and effectively blinds) the message (eg, the padding scheme “EMSA-PSS” described in the PKCS # 1 v2.1 standard). obtain. This can be used with or in place of the message blinding technique.

これらの各種の各紙技術は、以下のアルゴリズムにおいて、組合せられ得る。   Each of these various paper technologies can be combined in the following algorithm.

Figure 2004304800
ただし、k、k、およびkは、全てランダムな数であり、kおよびkは非ゼロである。このアルゴリズムは、べき指数ブラインディング(kによる)、モジュラスブラインディング(kによる)、およびメッセージブラインディング(kによる)を用いる。
Figure 2004304800
Where k 1 , k 2 , and k 3 are all random numbers, and k 1 and k 3 are non-zero. This algorithm (by k 2) exponential blinding should (by k 3) modulus blinding, and use message blinding (k by 1).

上述したメッセージブラインディング技術は、反転および余分な累乗法を必要とし、従って、比較的遅い。   The message blinding technique described above requires inversion and extra powers, and is therefore relatively slow.

図4は、本発明の第1の実施形態による、データ処理装置を示すブロック図である。このデータ処理装置は、計算装置4を有する処理装置2と、乗算装置8、加算装置10、および整数生成装置12を有する基数ブラインディング装置6とを含む。本発明の第1の実施形態によるデータ処理装置の演算は、図5に示すフローチャートを参照しながら説明される。   FIG. 4 is a block diagram illustrating a data processing device according to the first embodiment of the present invention. The data processing device includes a processing device 2 having a calculation device 4 and a radix blinding device 6 having a multiplication device 8, an addition device 10, and an integer generation device 12. The operation of the data processing device according to the first embodiment of the present invention will be described with reference to the flowchart shown in FIG.

処理装置2は、各種の処理演算を行い、この実施形態においては、入力データDINを処理して出力データDOUTを生成する。処理装置2によって行われる処理演算には、計算装置4によって行われる形式m mod Nのモジュラ累乗法演算を含む。ただし、mはモジュラ累乗法演算の基数であり、dはべき指数であり、Nはモジュラスである。例えば、入力データDIN内の、基数メッセージmは、図5に示すステップS1において受け取られる。 The processing device 2 performs various processing operations, and in this embodiment, processes the input data DIN to generate the output data DOUT. The processing operations performed by the processing device 2 include modular exponentiation operations of the form md mod N performed by the computing device 4. Here, m is a radix of the modular exponentiation operation, d is an exponent, and N is a modulus. For example, the radix message m in the input data DIN is received in step S1 shown in FIG.

しかし、累乗法演算が行われる前に、基数ブラインディング装置6は、基数mを、モジュラ累乗法演算の結果に影響しないように、以下に説明するように変更する。Nおよびmの値は、処理装置2から基数ブラインディング装置6に送られる。ステップS2において、整数生成装置12は、整数kを生成する。ステップS3において、乗算装置8は、整数kにモジュラスNを乗算する。ステップS4において、加算装置10は、乗算の結果を基数mに加算して、変更された基数M=m+kNを生成し、この変更された基数Mが処理装置2に戻される。ステップS5において、計算装置4は、m mod Nではなく、モジュラ累乗法演算M mod Nを計算し、同様の結果を生成する。 However, before the exponentiation operation is performed, the radix blinding device 6 changes the radix m as described below so as not to affect the result of the modular exponentiation operation. The values of N and m are sent from the processing device 2 to the radix blinding device 6. In step S2, the integer generating device 12 generates an integer k. In step S3, the multiplication device 8 multiplies the integer k by the modulus N. In step S <b> 4, the adding device 10 adds the result of the multiplication to the radix m to generate a changed radix M = m + kN, and the changed radix M is returned to the processing device 2. In step S5, the computing device 4, the m d mod N without compute the modular exponentiation operation M d mod N, to produce similar results.

従って、図4のデータ処理装置は、m mod Nではなく、以下のモジュラ累乗法演算を計算する:
s=(m+k*N) mod N。
Thus, the data processing apparatus shown in FIG. 4, the m d mod N without calculating the following modular exponentiation operation:
s = (m + k * N) d mod N.

これによって、s=m mod Nと同じ結果が得られる。なぜなら、式(m+k*N)は、mにNの様々なべきを加えたものに等しいからである。ただし、Nのべきは、モジュロNにおいて全てゼロである。 This gives the same result as s = md mod N. This is because the formula (m + k * N) d is equal to md plus various powers of N. However, the exponents of N are all zero in modulo N.

累乗法演算Mは、本発明の実施形態において、以下の擬似コードに示すように、「二乗および乗算」方法に関連するアルゴリズムを用いて、実行され得る。ただし、dは、dのi番目の二進数字である。 The exponentiation operation M d may be performed in embodiments of the present invention using an algorithm associated with the “square and multiply” method, as shown in the following pseudo code. However, I d i is the i-th binary digits d.

Figure 2004304800
効率化のため、このようなアルゴリズムにおいては、この実施形態の場合のように、全体の結果のmod Nが全ての中間計算 mod Nを還元させ、乗算演算が「a=(a*M)mod N」になり、二乗演算がa=(a*a) mod Nになるようにすることが一般的である。しかし、本発明のある実施形態において、これは、メッセージブラインディングの効果が第1の中間計算の後に消えることを意味する。同様に、乗算演算は、しばしば、全て「mod N」である、多くのより小さい演算のシーケンスとして実行され得る。
Figure 2004304800
For efficiency, in such an algorithm, as in this embodiment, the mod N of the overall result reduces all intermediate computations mod N, and the multiplication operation is "a = (a * M) mod N ”, and the square operation is generally set to a = (a * a) mod N. However, in some embodiments of the invention, this means that the effect of message blinding disappears after the first intermediate calculation. Similarly, multiplication operations can often be performed as a sequence of many smaller operations, all "mod N".

従って、本発明のある実施形態において、例えば、累乗法Mが完了した後までモジュラ還元ステップ「mod N」を残すことによって、メッセージブラインディングの効果が演算の間を通じて残るように累乗法演算Mが実行されることが好ましい。しかし、メッセージブラインディングの効果が、演算全体でなくても、演算の少なくとも一部の間残る場合も有益である。例えば、メッセージブラインディングの効果が、いくつかの中間計算の後に失われる場合も、依然としてある程度有益である。このような二乗および乗算アルゴリズムにおいてメッセージブラインディングの効果が失われないことを確実する他の手段が、第3の実施形態に関連して以下に説明される。 Thus, in certain embodiments of the present invention, for example, by leaving a modular reduction step "mod N" until after the exponentiation M d is complete, exponentiation to remain throughout the effect of message blinding is Math M Preferably, d is performed. However, it is also beneficial if the effect of message blinding is not the entire operation, but remains for at least part of the operation. For example, if the effect of message blinding is lost after some intermediate calculations, it is still somewhat beneficial. Other means for ensuring that the effect of message blinding in such a squaring and multiplication algorithm is not lost are described below in connection with the third embodiment.

モジュラ累乗法演算において用いられる基数mを変更するために基数ブラインディング装置6を用いることは、データ処理装置によって行われる物理プロセスを変化させる効果を有し、従って、この装置から外部へと漏れるサイドチャネル情報の量が低減される。   Using the radix blinding device 6 to change the radix m used in the modular exponentiation operation has the effect of changing the physical process performed by the data processing device, and thus the side leaking out of this device to the outside. The amount of channel information is reduced.

基数ブラインディング装置6は、予測不可能な様態、すなわち、装置から放射されるサイドチャネル情報をモニタリングしようと試みる、データ処理装置の外部の者にとって少なくとも擬似様式において予測不可能な様態で、基数mを変更することが好ましい。例えば、整数生成装置12は、擬似ランダムアルゴリズムに従って整数kを生成し得る。   The radix-blinding device 6 has a radix m in an unpredictable manner, i.e., in a manner that is unpredictable, at least in a pseudo manner, to anyone outside the data processing device attempting to monitor the side channel information emitted from the device. Is preferably changed. For example, the integer generator 12 may generate the integer k according to a pseudo-random algorithm.

モジュラ累乗法演算が行われるたびに基数ブラインディング装置6が新たな整数kを生成することが好ましいが、これは必須ではない。新たな整数kが生成される頻度が低い場合、または、基数ブラインディング装置6が一時ディアクティブにされ、基数ブラインディング装置6がイナクティブである期間に基数mをブラインドしない状態でm mod Nとしてモジュラ累乗法演算が行われる場合でさえ、依然としてある程度有益である。 Although it is preferred that the radix blinding device 6 generate a new integer k each time the modular exponentiation operation is performed, this is not essential. If the frequency of a new integer k is generated is low, or, is a base blinding device 6 temporary di active, as m d mod N radix m to time base blinding device 6 is inactive while no blind Even when modular exponentiation is performed, it still has some benefit.

本発明のある実施形態は、モジュラ累乗法演算を用いる任意のタイプのデータ処理装置から漏れるサイドチャネル情報の量を低減するために有用であるが、モジュラ累乗法演算が暗号アルゴリズムの一部である特定の用途を有する。例えば、図4のデータ処理装置は、図1を参照しながら上述したようなスマートカードにおいて用いられ得、従って、図4の入力データDINが暗号化されるデータを表し、図4の出力データDOUTが暗号化されたデータを表し得る。図4の処理装置2は、復号演算を同様に行い得る。暗号アルゴリズムは、上述したように、モジュラ累乗法演算を利用するRSAアルゴリズムであり得る。暗号アルゴリズムはまた、Diffie−Hellmanアルゴリズム、またはモジュラ累乗法演算を利用する任意の他のこのようなアルゴリズムであってもよい。暗号アルゴリズムは、RSAのCRTバージョンにおける両方のべき指数に用いられ得る。   Certain embodiments of the present invention are useful for reducing the amount of side channel information leaking from any type of data processing device that uses modular exponentiation, where modular exponentiation is part of a cryptographic algorithm Has a specific use. For example, the data processing device of FIG. 4 can be used in a smart card as described above with reference to FIG. 1, so that the input data DIN of FIG. 4 represents the data to be encrypted and the output data DOUT of FIG. May represent the encrypted data. The processing device 2 in FIG. 4 can perform the decoding operation in the same manner. The cryptographic algorithm may be an RSA algorithm that utilizes a modular exponentiation operation, as described above. The cryptographic algorithm may also be a Diffie-Hellman algorithm, or any other such algorithm utilizing modular exponentiation. Cryptographic algorithms can be used for both exponents in the CRT version of RSA.

本発明のある実施形態は、以前に考えられたブラインディング技術と比較して、技術的な利点を有する。これは、加算および乗算演算が、累乗法演算または反転演算と比較して非常に効率的であるからである。本発明のある実施形態はまた、無視できるような追加コストで、計算により多くの不確定性を加えるという利点を有し得る。   Certain embodiments of the present invention have technical advantages as compared to previously contemplated blinding techniques. This is because addition and multiplication operations are much more efficient than exponentiation or inversion operations. Certain embodiments of the present invention may also have the advantage of adding more uncertainty to the calculation, with negligible additional cost.

図6は、本発明の第2の実施形態によるデータ処理装置のブロック図である。第2の実施形態は、計算装置4を有する処理装置2と、基数ブラインディング装置6とを含む。基数ブラインディング装置6は、図4および5を参照しながら上述したように動作して、基数mを効果的に(m+k*N)と置き換えることによってブラインドする。第2の実施形態は、図4に示す部材に加えて、オイラートチエント装置16と、乗算装置18と、加算装置20と、整数生成装置22とを有するべき指数ブラインディング装置14を含む。   FIG. 6 is a block diagram of a data processing device according to the second embodiment of the present invention. The second embodiment includes a processing device 2 having a computing device 4 and a radix blinding device 6. The radix blinding device 6 operates as described above with reference to FIGS. 4 and 5 to blind by effectively replacing the radix m with (m + k * N). The second embodiment includes, in addition to the components shown in FIG. 4, an exponential blinding device 14 which should have an oil-tient device 16, a multiplier 18, an adder 20 and an integer generator 22.

累乗法演算が行われる前に、べき指数ブラインディング装置14は、累乗法演算の結果を影響しないように、以下に説明するようにべき指数dを変更する。Nおよびdの結果は、処理装置2からべき指数ブラインディング装置14に送られる。オイラートチエント装置16は、上述したように、オイラートチエント関数φ(N)を計算し、整数生成装置22は、整数iを生成する。乗算装置18は、整数iをトチエント関数φ(N)で乗算し、加算装置20は、乗算の結果をべき指数dに加算して、変更されたべき指数D=d+i*φ(N)を生成する。この変更されたべき指数を処理装置2に戻す。このようにして、計算装置4は、m mod Nではなくモジュラ累乗法演算M mod Nを計算することができる。ただし、Mは変更された(ブラインドされた)基数mであり、同じ結果を生成する。従って、行われる全ての計算は以下の通りである:
s=(m+k*N)d+i*φ(N)mod N。
Before the exponentiation operation is performed, the exponent blinding device 14 changes the exponent d as described below so as not to affect the result of the exponentiation operation. The results of N and d are sent from processing unit 2 to exponential blinding unit 14. As described above, the oil-latient device 16 calculates the oil-latient function φ (N), and the integer generator 22 generates an integer i. The multiplier 18 multiplies the integer i by the totient function φ (N), and the adder 20 adds the result of the multiplication to the exponent d to generate a modified exponent D = d + i * φ (N). I do. The index to be changed is returned to the processing device 2. In this way, the computing device 4 may calculate the m d in mod N without modular exponentiation operation M D mod N. Where M is the modified (blind) radix m, producing the same result. Thus, all the calculations performed are as follows:
s = (m + k * N) d + i * φ (N) mod N.

モジュラ累乗法演算において用いられるべき指数を変更するためにべき指数ブラインディング装置14をさらに用いることは、データ処理装置によって行われる物理プロセスをさらに変化させる効果を有し、従って、この装置から外部に漏れるサイドチャネル情報の量はさらに低減される。   The further use of the exponent blinding device 14 to change the exponent to be used in the modular exponentiation operation has the effect of further changing the physical process performed by the data processing device, and therefore, from this device to the outside The amount of leaked side channel information is further reduced.

図7は、本発明の第3の実施形態によるデータ処理装置のブロック図である。第3の実施形態は、計算装置4を有する処理装置2と、基数ブラインディング装置6とを含む。基数ブラインディング装置6は、図4および5を参照しながら上述したように動作して、基数mを(m+k*N)と効果的に置き換えることによってブラインドする。第3の実施形態は、図4に示す部材に加えて、モジュラス計算装置28と、乗算装置26と、整数生成装置30とを有するモジュラスブラインディング装置24を含む。   FIG. 7 is a block diagram of a data processing device according to the third embodiment of the present invention. The third embodiment includes a processing device 2 having a calculation device 4 and a radix blinding device 6. The radix blinding device 6 operates as described above with reference to FIGS. 4 and 5 to blind by effectively replacing the radix m with (m + k * N). The third embodiment includes, in addition to the components shown in FIG. 4, a modulus blinding device 24 having a modulus calculating device 28, a multiplying device 26, and an integer generating device 30.

この実施形態において、Mが、基数ブラインディング装置6によって生成された、変更された(ブラインドされた)基数mである、累乗法演算Mが行われた後、モジュラスブラインディング装置24はモジュラスの計算を、通常のM mod Nと比較するとわずかに変更された形式で、モジュラ累乗法演算の結果に影響を与えないように行う。NおよびMの値は、処理装置2からモジュラスブラインディング装置24へと送られる。整数生成装置30は非ゼロ整数jを生成し、乗算装置26は整数jに、ブラインドされていないモジュラスNを乗算して、ブラインドされたモジュラスW=j*Nを生成する。その後、モジュラス計算装置28は、M mod Nではなく、(M mod W)mod Nを計算することによって、変更されたモジュラ演算を行う。同じ結果が生成され、処理装置2に戻される。従って、行われる全ての計算は以下の通りである:
s=((m+k*N) mod j*N)mod N。
In this embodiment, after performing the exponentiation operation M d, where M is the modified (blinded) radix m generated by the radix blinding device 6, the modulus blinding device 24 determines the modulus of the modulus. The calculation is performed in a slightly modified form compared to the normal M d mod N without affecting the result of the modular exponentiation operation. The values of N and M d are sent from processing unit 2 to modulus blinding unit 24. The integer generator 30 generates a non-zero integer j, and the multiplier 26 multiplies the integer j by an unblinded modulus N to generate a blinded modulus W = j * N. Thereafter, the modulus calculator 28 performs the modified modular operation by calculating (M d mod W) mod N instead of M d mod N. The same result is generated and returned to the processing unit 2. Therefore, all calculations performed are as follows:
s = ((m + k * N) d mod j * N) mod N.

モジュラ累乗法演算において用いられるモジュラス計算を変更するためにモジュラスブラインディング装置24をさらに用いることは、データ処理装置によって行われる物理プロセスをさらに変化させる効果を有し、従って、この装置から外部へと漏れるサイドチャネル情報の量はさらに低減される。   Further use of the modulus blinding device 24 to modify the modulus calculation used in the modular exponentiation operation has the effect of further altering the physical process performed by the data processing device, and therefore from the device to the outside. The amount of leaked side channel information is further reduced.

効率上の理由から、「mod j*N」が累乗法演算(m+k*N)において用いられる中間計算のそれぞれに適用されることが好ましい。例えば、第1の実施形態に関連して上述された二乗および乗算技術が用いられる場合、乗算演算は、M=m+k*Nである「a=(a*M)mod j*N」になり、二乗演算は、「a=(a*a)mod j*N」である。モジュロN還元演算は、二乗および乗算演算(mod j*N)が完了した後行われる。 For efficiency reasons, "mod j * N" is preferably applied to each of the intermediate calculations used in the exponentiation operation (m + k * N) d . For example, if the squaring and multiplication techniques described above in connection with the first embodiment are used, the multiplication operation is "a = (a * M) mod j * N" where M = m + k * N, The square operation is “a = (a * a) mod j * N”. The modulo N reduction operation is performed after the square and multiplication operations (mod j * N) are completed.

この方式は、中間モジュロ還元を伴う効率的な二乗および乗算技術が、上で強調されたメッセージブラインディングの効果を完全になくすことなく、本発明の実施形態において用いられることを可能にするという利点を有する。モジュラ累乗法演算全体にわたってjが「1」と等しい場合、メッセージブラインディングはその演算において失われるが、異なる値のjが次の演算に用いられ得、有用なサイドチャネル情報の漏れが依然として低減される。また、異なる値のjが、中間モジュラ計算のそれぞれにおいて生成される。   This scheme has the advantage of allowing efficient squaring and multiplication techniques with intermediate modulo reduction to be used in embodiments of the present invention without completely eliminating the effects of message blinding highlighted above. Having. If j equals "1" throughout the modular exponentiation operation, message blinding is lost in that operation, but a different value of j can be used for the next operation, and the leakage of useful side channel information is still reduced. You. Also, different values of j are generated in each of the intermediate modular calculations.

図8は、本発明の第4の実施形態によるデータ処理装置のブロック図である。第4の実施形態は、本質的に第2の実施形態と第3の実施形態との組合せである。第4の実施形態は、計算装置4を有する処理装置2と、基数ブラインディング装置6と、べき指数ブラインディング装置14と、モジュラスブラインディング装置24とを含む。これらの部材は、全体的に、図4〜7を参照しながら上述したように動作して、モジュラべき累乗法演算の結果に影響することなく、基数m、べき指数d、およびモジュラスNのそれぞれをブラインドする。従って、行われる全ての計算は以下の通りである:
s=((m+k*N)d+i*φ(N)mod j*N)mod N。
FIG. 8 is a block diagram of a data processing device according to the fourth embodiment of the present invention. The fourth embodiment is essentially a combination of the second and third embodiments. The fourth embodiment includes a processing device 2 having a calculation device 4, a radix blinding device 6, a power exponential blinding device 14, and a modulus blinding device 24. These members generally operate as described above with reference to FIGS. 4-7, and each of the radix m, the power exponent d, and the modulus N without affecting the result of the modular exponentiation operation. Blind. Therefore, all calculations performed are as follows:
s = ((m + k * N) d + i * φ (N) mod j * N) mod N.

3通りのブラインディング方法の全てを用いて、モジュラ累乗法演算を変更することは、データ処理装置によって行われる物理プロセスを大幅に変化させる効果を有し、従って、この装置から外部へと漏れるサイドチャネル情報の量はかなり低減される。   Modifying the modular exponentiation operation using all three blinding methods has the effect of significantly changing the physical process performed by the data processing device, and thus the side leakage from the device to the outside. The amount of channel information is significantly reduced.

第2〜第4の実施形態において、べき指数装置14およびモジュラスブラインディング装置24は、それぞれ、予測不可能な様態、すなわち、装置から放射されるサイドチャネル情報をモニタリングしようと試みる、データ処理装置の外部の者にとって少なくとも擬似様式において予測不可能な様態で、べき指数dおよびモジュラスNを変更することが好ましい。例えば、整数生成装置22および30は、それぞれ、擬似ランダムアルゴリズムに従って、整数iおよびjを生成し得る。   In the second to fourth embodiments, the exponent index device 14 and the modulus blinding device 24 each include a data processing device that attempts to monitor in an unpredictable manner, ie, side channel information emitted from the device. It is preferable to change the exponent d and the modulus N in a manner that is unpredictable, at least in a simulated manner, to the outsider. For example, integer generators 22 and 30 may generate integers i and j, respectively, according to a pseudo-random algorithm.

べき指数装置14およびモジュラスブラインディング装置24が、モジュラ累乗法演算が行われるたびに新たな整数iおよびjを生成することが好ましいが、これは必須ではない。新たな整数iおよびjが生成される頻度が低い場合、または、べき指数装置14およびモジュラスブラインディング装置24が一時ディアクティブされ、これらの装置がイナクティブである期間、べき指数dおよびモジュラスNのいずれかもしくは両方がブラインドされることなく、モジュラ累乗法演算が行われる場合でさえ、依然として何らかの利点が得られる。   Preferably, the power exponent unit 14 and modulus blinding unit 24 generate new integers i and j each time a modular exponentiation operation is performed, but this is not required. If the new integers i and j are generated infrequently, or if the power exponent device 14 and the modulus blinding device 24 are temporarily deactivated and these devices are inactive, either the power exponent d or the modulus N Even if a modular exponentiation operation is performed without blinding either or both, some advantages are still obtained.

整数生成装置12、22、30、乗算装置8、18、26、および加算装置10、20が例示され、別個の装置として説明されてきたが、当然、1タイプよりも多いブラインディング装置に対してその機能を果たすように、組み合わせられてよいことが理解される。当業者はまた、図4、6および7に示す構成が、本発明の実施形態によって行われる機能に影響をあたえることなく、いくつかの他の様式で変更および/または組合せされ得ることを理解する。例えば、ブラインディング装置6、14、24のうちの1つ以上が、処理装置2自体の中に配置され得る。   The integer generators 12, 22, 30, the multipliers 8, 18, 26, and the adders 10, 20 have been illustrated and described as separate devices, but of course, for more than one type of blinding device. It is understood that they may be combined to perform that function. Those skilled in the art will also appreciate that the configurations shown in FIGS. 4, 6 and 7 can be modified and / or combined in some other manner without affecting the functions performed by embodiments of the present invention. . For example, one or more of the blinding devices 6, 14, 24 may be located within the processing device 2 itself.

また、ブラインディング技術の主な用途のうちの1つが、図1に示すようなスマートカードにおける使用として説明されてきたが、この技術は、USBトークン、セキュアメモリ、セキュアマルチメディア、およびセキュアアクセスモジュール(SAM)において用いられ得る。   Also, one of the main applications of the blinding technology has been described for use in a smart card as shown in FIG. 1, but the technology can be used for USB tokens, secure memory, secure multimedia, and secure access modules. (SAM).

本発明の実施形態はハードウェアに実装されるとして説明されてきたが、本発明の実施形態は、ソフトウェアに実装されることも可能である。例えば、図1を参照しながら例示されたスマートカードデバイスにおいて、説明したように別個の処理装置9をスマートカード上に設けるのではなく、代わりに、オペレーティングプログラムが、提供されて(用いられるためにメモリ部3に格納されて)、CPU5が処理装置9の機能を果たすように制御する。スマートカード(または他のデータ処理装置)の関連部分は、このようにして、本発明の上述した実施形態において例示された部材と同じ機能を果たすように適応される。   Although embodiments of the present invention have been described as being implemented in hardware, embodiments of the present invention may be implemented in software. For example, in the smart card device illustrated with reference to FIG. 1, instead of providing a separate processing unit 9 on the smart card as described, instead an operating program is provided (to be used). The CPU 5 controls the CPU 5 to perform the function of the processing device 9 (stored in the memory unit 3). The relevant parts of the smart card (or other data processing device) are thus adapted to perform the same functions as the components illustrated in the above embodiments of the present invention.

本発明を具現化するオペレーティングプログラムは、コンピュータ読み出し可能媒体に格納され得るが、インターネットウェブサイトから提供されるダウンロード可能なデータ信号などの信号において実現されることもできる。添付の特許請求の範囲は、オペレーティングプログラム自体、キャリア上の記録として、信号として、あるいは、任意の他の形態を含むと解釈されるべきである。   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.

基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算(4)を含む処理演算を行う処理装置(2)が提供される。データ処理装置(2)はまた、整数kを生成すること(12)、整数kにモジュラスNを乗算すること(8)および基数mに乗算の結果を加算すること(10)によって、モジュラ累乗法演算の結果に影響を与えることなく、累乗法演算(4)が行われる前に基数mを変更する基数ブラインディング装置(6)を含む。これは、装置(2)から漏れるサイドチャネル情報の量を低減する効果を有し、従って、モジュラ累乗法演算がRSAアルゴリズムのような暗号アルゴリズムの一部であるような特定の用途を有する。例えば、データ処理装置(2)は、スマートカードデバイスにおいて用いられ得る。 A processing device (2) for performing a processing operation including a modular exponentiation operation (4) of the form md mod N having a radix m, a power exponent d and a modulus N is provided. The data processing unit (2) also generates a modular exponentiation by generating an integer k (12), multiplying the integer k by a modulus N (8) and adding the result of the multiplication to a radix m (10). A radix blinding device (6) that changes the radix m before the exponentiation operation (4) is performed without affecting the result of the operation. This has the effect of reducing the amount of side channel information leaking from device (2), and thus has particular application where modular exponentiation is part of a cryptographic algorithm such as the RSA algorithm. For example, the data processing device (2) can be used in a smart card device.

例示のため、添付の図面が参照される。
図1は、上述したように、代表的なスマートカードの主な部分を示すブロック図である。 図2は、上述したように、従来の暗号化モデルの説明において用いられる例示的なブロック図である。 図3は、上述したように、サイドチャネルを含む、暗号化モデルの説明に用いられる例示的なブロック図である。 図4は、本発明の第1の実施形態による、データ処理装置のブロック図である。 図5は、本発明の第1の実施形態の動作を説明するフローチャートである。 図6は、本発明の第2の実施形態による、データ処理装置のブロック図である。 図7は、本発明の第3の実施形態による、データ処理装置のブロック図である。 図8は、本発明の第4の実施形態による、データ処理装置のブロック図である。
For the purpose of illustration, reference is made to the accompanying drawings.
FIG. 1 is a block diagram showing main parts of a typical smart card as described above. FIG. 2 is an exemplary block diagram used in describing a conventional encryption model, as described above. FIG. 3 is an exemplary block diagram used to describe the encryption model, including the side channel, as described above. FIG. 4 is a block diagram of the data processing device according to the first embodiment of the present invention. FIG. 5 is a flowchart illustrating the operation of the first exemplary embodiment of the present invention. FIG. 6 is a block diagram of a data processing device according to the second embodiment of the present invention. FIG. 7 is a block diagram of a data processing device according to the third embodiment of the present invention. FIG. 8 is a block diagram of a data processing device according to the fourth embodiment of the present invention.

Claims (23)

基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算を含む処理演算を行う処理手段と、
整数kを生成すること、該整数kにモジュラスNを乗算すること、および該基数mに該乗算の結果を加算することによって、該モジュラ累乗法演算の結果に影響を与えることなく、該累乗法演算が行われる前に該基数mを変更して、装置から漏れるサイドチャネル情報の量を低減する、基数ブラインディング手段と
を含む、データ処理装置。
Processing means for performing a processing operation including a modular exponentiation operation of the form md mod N having a radix m, a power exponent d and a modulus N;
Generating the integer k, multiplying the integer k by a modulus N, and adding the result of the multiplication to the radix m without affecting the result of the modular exponentiation operation. A radix blinding means for changing the radix m before the operation is performed to reduce the amount of side channel information leaking from the device.
前記基数ブラインディング手段は、前記基数mを予測不可能な様態で変更する、請求項1に記載の装置。   The apparatus according to claim 1, wherein the radix blinding means changes the radix m in an unpredictable manner. 前記基数ブラインディング手段は、擬似ランダムアルゴリズムに従って、前記整数kを生成する、請求項2に記載の装置。   The apparatus according to claim 2, wherein the radix blinding means generates the integer k according to a pseudo-random algorithm. 前記基数ブラインディング手段は、このようなモジュラ累乗法演算が行われるたびに新たな整数kを生成する、上記の請求項のいずれか1つに記載の装置。   Apparatus according to any preceding claim, wherein the radix blinding means generates a new integer k each time such a modular exponentiation operation is performed. 前記モジュラ累乗法演算は暗号アルゴリズムの一部である、上記の請求項のいずれか1つに記載の装置。   Apparatus according to any one of the preceding claims, wherein the modular exponentiation operation is part of a cryptographic algorithm. 前記暗号化アルゴリズムは、RSAアルゴリズムである、請求項5に記載の装置。   The apparatus according to claim 5, wherein the encryption algorithm is an RSA algorithm. 整数iを生成すること、Nのオイラートチエント関数φ(N)を計算すること、該オイラートチエント関数φ(N)に該整数iを乗算すること、および前記べき指数dに該乗算の結果を加算することによって、前記モジュラ累乗法演算の結果に影響を与えることなく、該累乗法演算が行われる前に該べき指数dを変更して、装置から漏れるサイドチャネル情報の量をさらに低減する、べき指数ブラインディング手段をさらに含む、上記の請求項のいずれか1つに記載の装置。   Generating an integer i, calculating an Euler-Chiient function φ (N) of N, multiplying the Euler-Chiient function φ (N) by the integer i, and the result of the multiplication by the exponent d To further reduce the amount of side channel information leaking from the device by changing the exponent d before the exponentiation operation is performed without affecting the result of the modular exponentiation operation Apparatus according to any one of the preceding claims, further comprising means for exponential blinding. 前記モジュラ累乗法演算は、一連の中間計算として行われる、上記の請求項のいずれか1つに記載の装置。   Apparatus according to any one of the preceding claims, wherein the modular exponentiation operation is performed as a series of intermediate calculations. 前記モジュラ累乗法演算は、二乗および乗算技術に従って行われる、請求項8に記載の装置。   9. The apparatus of claim 8, wherein the modular exponentiation operation is performed according to a square and multiplication technique. 前記中間計算は、前記基数mを変更する効果が前記モジュラ累乗法演算が行われる間を通じて続くように行われる、請求項8または9に記載の装置。   Apparatus according to claim 8 or 9, wherein the intermediate calculation is performed such that the effect of changing the radix m continues throughout the execution of the modular exponentiation operation. 前記モジュロ還元演算mod Nは、形式mの累乗法演算が完了した後に行われる、請求項8、9または10に記載の装置。 The modulo reduction operation mod N is performed after the exponentiation operation in the form m d is completed, according to claim 8, 9 or 10. 前記モジュロ還元演算mod Nは、1つ以上の前記中間計算の後に行われる、請求項8〜11のいずれか1つに記載の装置。   The apparatus according to any one of claims 8 to 11, wherein the modulo reduction operation mod N is performed after one or more of the intermediate calculations. 整数jを生成すること、およびブラインドされていないモジュラスNに該整数jを乗算することによってブラインドされたモジュラスWを生成し、前記処理手段に、式(m mod W)に従って前記累乗法演算を行わせて、該モジュラ累乗法演算の結果に影響を与えず、前記装置から漏れるサイドチャネル情報の量をさらに低減する、モジュラスブラインディング手段をさらに含む、請求項1〜11のいずれか1つに記載の装置。 Generating an integer j and generating a blinded modulus W by multiplying the unblinded modulus N by the integer j; and providing the processing means with the power operation in accordance with equation ( md mod W). 12. The method according to any one of claims 1 to 11, further comprising a modulus blinding means for performing, without affecting the result of the modular exponentiation operation, further reducing the amount of side channel information leaking from the device. The described device. 請求項8に従属すると解釈される場合、前記モジュロ還元演算mod Wは、1つ以上の前記中間計算後に行われる、請求項13に記載の装置。   14. The apparatus according to claim 13, wherein the modulo reduction operation mod W is performed after one or more of the intermediate calculations, when interpreted as being dependent on claim 8. 基数m、べき指数dおよびモジュラスNを有する形式m mod Nのモジュラ累乗法演算を含む処理演算を行うデータ処理装置において用いられるデータ処理方法であって、
整数kを生成すること、該整数kにモジュラスNを乗算すること、および該基数mに該乗算の結果を加算することによって、該モジュラ累乗法演算の結果に影響を与えることなく、該累乗法演算が行われる前に該基数mを変更して、装置から漏れるサイドチャネル情報の量を低減する工程
を包含する、方法。
A data processing method used in a data processing apparatus that performs a processing operation including a modular exponentiation operation of a form md mod N having a radix m, a power exponent d, and a modulus N,
Generating the integer k, multiplying the integer k by a modulus N, and adding the result of the multiplication to the radix m without affecting the result of the modular exponentiation operation. Changing the radix m before the operation is performed to reduce the amount of side channel information leaking from the device.
実質的に、図4〜図8を参照して上記のとおりである、データ処理装置。   A data processing apparatus substantially as described above with reference to FIGS. 実質的に、図4〜図8を参照して上記のとおりである、データ処理方法。   A data processing method substantially as described above with reference to FIGS. 請求項1〜14および16のいずれか1つに記載のデータ処理装置を備える、スマートカード。   A smart card comprising the data processing device according to claim 1. データ処理デバイスにロードされる場合、該デバイスを、請求項1〜14および16のいずれか1つに記載の装置、あるいは、請求項18に記載のスマートカードにする、オペレーティングプログラム。   An operating program which, when loaded into a data processing device, makes the device an apparatus according to any one of claims 1 to 14 or a smart card according to claim 18. データ処理デバイス上で実行される場合、該デバイスに請求項15または17に記載の方法を実行させる、オペレーティングプログラム。   An operating program which, when executed on a data processing device, causes the device to perform the method of claim 15 or 17. キャリア媒体において実行される、請求項19または20に記載のオペレーティングプログラム。   21. The operating program according to claim 19 or 20, which is executed on a carrier medium. 前記キャリア媒体が伝送媒体である、請求項21に記載のオペレーティングプログラム。   The operating program according to claim 21, wherein the carrier medium is a transmission medium. 前記キャリア媒体が格納媒体である、請求項21に記載のオペレーティングプログラム。   22. The operating program according to claim 21, wherein the carrier medium is a storage medium.
JP2004097245A 2003-03-28 2004-03-29 Protection of side channel for prevention of attack in data processing device Pending JP2004304800A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0307197A GB2399904B (en) 2003-03-28 2003-03-28 Side channel attack prevention in data processing apparatus

Publications (1)

Publication Number Publication Date
JP2004304800A true JP2004304800A (en) 2004-10-28

Family

ID=9955744

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004097245A Pending JP2004304800A (en) 2003-03-28 2004-03-29 Protection of side channel for prevention of attack in data processing device

Country Status (2)

Country Link
JP (1) JP2004304800A (en)
GB (1) GB2399904B (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940445B1 (en) 2007-11-20 2010-02-10 한국전자통신연구원 Apparatus for verifying hardware side channel
CN102193060A (en) * 2010-03-01 2011-09-21 英赛瑟库尔公司 Process for testing the resistance of an integrated circuit to a side channel analysis
CN109039590A (en) * 2017-06-09 2018-12-18 深圳九磊科技有限公司 Memory, electronic equipment and its encipher-decipher method for preventing side-channel attack
JP2021500760A (en) * 2017-10-18 2021-01-07 クリプトグラフィ リサーチ, インコーポレイテッド Protecting modular inversion operations from external surveillance attacks

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2888690A1 (en) * 2005-07-13 2007-01-19 Gemplus Sa CRYPTOGRAPHIC PROCESS FOR THE SECURE IMPLEMENTATION OF AN EXPONENTIATION AND ASSOCIATED COMPONENT
FR2898199A1 (en) * 2006-03-02 2007-09-07 Gemplus Sa METHOD OF SECURING THE EXECUTION OF A FOLLOWING LOGICALLY ENCHANCED STEPS
FR2926651B1 (en) * 2008-01-23 2010-05-21 Inside Contactless COUNTERMEASURE METHOD AND DEVICES FOR ASYMMETRIC CRYPTOGRAPHY
EP2401734B1 (en) * 2009-02-27 2016-04-20 Certicom Corp. System and method for performing exponentiation in a cryptographic system
DE102010064578B3 (en) * 2010-08-12 2015-12-10 Infineon Technologies Ag Cryptography processor, smart card and method of calculating a result of exponentiation
DE102010039273B4 (en) * 2010-08-12 2014-12-04 Infineon Technologies Ag Cryptography processor, smart card and method of calculating a result of exponentiation
US10594471B2 (en) 2015-03-20 2020-03-17 Cryptography Research, Inc. Multiplicative blinding for cryptographic operations
AT517983B1 (en) * 2015-11-18 2018-11-15 Siemens Ag Oesterreich Protection of a computer system against side channel attacks
FR3055436A1 (en) 2016-08-23 2018-03-02 Stmicroelectronics (Rousset) Sas PROTECTION OF A MODULAR CALCULATION
FR3055437A1 (en) * 2016-08-23 2018-03-02 Stmicroelectronics (Rousset) Sas PROTECTION OF A MODULAR EXPONENTIATION CALCULATION
FR3069671A1 (en) 2017-07-25 2019-02-01 Stmicroelectronics (Rousset) Sas PROTECTION OF AN ITERATIVE CALCULATION AGAINST HORIZONTAL ATTACKS
EP3579492A1 (en) 2018-06-08 2019-12-11 STMicroelectronics (Rousset) SAS Protection of an iterative calculation
EP3579493A1 (en) 2018-06-08 2019-12-11 STMicroelectronics (Rousset) SAS Protection of an iterative calculation
FR3094522B1 (en) 2019-03-29 2021-11-19 St Microelectronics Rousset Protection of an iterative calculation
CN110730072B (en) * 2019-10-22 2023-02-03 天津津航计算技术研究所 Side channel attack resisting method for RSA password application

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991415A (en) * 1997-05-12 1999-11-23 Yeda Research And Development Co. Ltd. At The Weizmann Institute Of Science Method and apparatus for protecting public key schemes from timing and fault attacks
CA2316227C (en) * 1998-01-02 2009-08-11 Cryptography Research, Inc. Leak-resistant cryptographic method and apparatus

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100940445B1 (en) 2007-11-20 2010-02-10 한국전자통신연구원 Apparatus for verifying hardware side channel
CN102193060A (en) * 2010-03-01 2011-09-21 英赛瑟库尔公司 Process for testing the resistance of an integrated circuit to a side channel analysis
CN109039590A (en) * 2017-06-09 2018-12-18 深圳九磊科技有限公司 Memory, electronic equipment and its encipher-decipher method for preventing side-channel attack
JP2021500760A (en) * 2017-10-18 2021-01-07 クリプトグラフィ リサーチ, インコーポレイテッド Protecting modular inversion operations from external surveillance attacks
JP7155173B2 (en) 2017-10-18 2022-10-18 クリプトグラフィ リサーチ, インコーポレイテッド Protecting Modular Inversion Operations from External Observation Attacks

Also Published As

Publication number Publication date
GB2399904B (en) 2005-08-17
GB2399904A (en) 2004-09-29
GB0307197D0 (en) 2003-04-30

Similar Documents

Publication Publication Date Title
JP4671571B2 (en) Secret information processing device and memory for storing secret information processing program
Boneh et al. On the importance of eliminating errors in cryptographic computations
CA2542556C (en) An authentication system executing an elliptic curve digital signature cryptographic process
CA2316227C (en) Leak-resistant cryptographic method and apparatus
JP2004304800A (en) Protection of side channel for prevention of attack in data processing device
JP2008252299A (en) Encryption processing system and encryption processing method
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
EP2332040B1 (en) Countermeasure securing exponentiation based cryptography
WO2012041942A1 (en) Protecting modular exponentiation in cryptographic operations
JP2010164904A (en) Elliptic curve arithmetic processing unit and elliptic curve arithmetic processing program and method
US11824986B2 (en) Device and method for protecting execution of a cryptographic operation
EP3698262B1 (en) Protecting modular inversion operation from external monitoring attacks
US20060212506A1 (en) Scalar multiplication apparatus and method
JP4386766B2 (en) Error detection in data processing equipment.
GB2403308A (en) Side channel attack prevention using an iterative b^w-ary window algorithm
JP2003255831A (en) Method and device for calculating elliptic curve scalar multiple
Smart Physical side‐channel attacks on cryptographic systems
Arjunan et al. Securing RSA algorithm against timing attack.
EP1691501A1 (en) Leak-resistant cryptography method an apparatus
KR100953716B1 (en) Method and Apparatus of digital signature using bit arithmetic based on CRT-RSA and Recording medium using by the same
KR20090080842A (en) Digital signature method, Digital signature apparatus using CRT-RSA modula exponentiation algorithm and Recording medium using by the same
Jyotiyana et al. Fault attack for scalar multiplication over finite field (E (F q)) on Elliptic Curve Digital Signature Algorithm
Khan et al. Investigating the blinding approach to resist power analysis attacks on modular exponentiation
Tunstall et al. Check for updates
Shukla et al. A Comparative analysis of the attacks on public key RSA cryptosystem

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

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090701