JP2005056413A - 複数の同じ計算の保護 - Google Patents
複数の同じ計算の保護 Download PDFInfo
- Publication number
- JP2005056413A JP2005056413A JP2004221714A JP2004221714A JP2005056413A JP 2005056413 A JP2005056413 A JP 2005056413A JP 2004221714 A JP2004221714 A JP 2004221714A JP 2004221714 A JP2004221714 A JP 2004221714A JP 2005056413 A JP2005056413 A JP 2005056413A
- Authority
- JP
- Japan
- Prior art keywords
- argument
- functional
- processes
- present
- result
- 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.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public 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/302—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/04—Masking or blinding
- H04L2209/046—Masking or blinding of operations, operands or results of the operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Storage Device Security (AREA)
Abstract
【課題】 ディジタルデータを操作する複数の同じ機能プロセスをマスクする方法を提供する。
【解決手段】 機能プロセスを複数のステップに分割し、各ステップの終了時にプロセスを中断して少なくともひとつの中間結果を保存し、及び少なくとも2つのプロセスのステップを連続的に実行し、各ステップの終了時に、非確定的引数に従って次のステップのプロセスを選択する。
【選択図】 図1
【解決手段】 機能プロセスを複数のステップに分割し、各ステップの終了時にプロセスを中断して少なくともひとつの中間結果を保存し、及び少なくとも2つのプロセスのステップを連続的に実行し、各ステップの終了時に、非確定的引数に従って次のステップのプロセスを選択する。
【選択図】 図1
Description
本発明はマイクロプロセッサ又は集積回路で操作されるディジタルデータに対して実行されるアルゴリズム処理に関する。本発明は、特に、安全アルゴリズムを実行する暗号又は認証応用においてディジタルデータに対して実行される処理に関する。このような応用では、アルゴリズムにより操作されオペレーションが実行されるデータは侵害つまり秘密の及び/又は計算データを発見しようとする外部攻撃から保護されなければならない。
本発明が保護しようとする外部攻撃の例はSPA(シングルパワーアナリシス)又はDPA(ディファレンシャルパワーアナリシス)として知られる攻撃で、アルゴリズムの実行中にデータを操作する集積回路の電力消費を解析するものである。実際、集積回路(マイクロプロセッサ又はワイヤー論理のオペレータ)がデータに対して計算を実行するとき、処理及びデータはその電力消費に対する効果をもつ。
本発明が適用されるアルゴリズムの例はいわゆるRSAアルゴリズムで、チャイニーズ余り理論(CRT)を使用し、例えば論文"The Chinese Remainder Theorem and its application in a high-speed RSA crypt-chip" by P.J. Grossschad, Computer Security Applications 2000 ACSAC'00, 16th Annual Conference, 11-15 2000年12月 384-393頁に記載され、本明細書で参考資料とする。
従来、1又は複数の数の処理をマスクするために、アルゴリズム処理の前に、これらの数はランダム値と結合される。
この欠点は、これは処理される数を変更することにある。処理される数は処理の終了時に逆変更して、期待される結果を復元する必要がある。別の欠点はランダム数によるマスクは処理の複雑さと全計算時間を増加させる。
本発明の目的はアルゴリズム計算の実行をマスクする解決を提供することにある。本発明は特に実行されるアルゴリズムに独立な解決、つまり、実行される計算が何であれ、同じでかつ局部的に独立な処理に分割可能であれば、適用可能な解決を提供することにある。
本発明は又アルゴリズム実行の速度に悪影響を与えない解決を提供することを目的とする。
本発明は又実際のアルゴリズムで実行される計算の変更を必要としない解決を提供することを目的とする。
上記目的を達成するための本発明の特徴は、ディジタルデータを操作する複数の同じ機能プロセスをマスクする方法において、前記機能プロセスをステップに分割し、各ステップの終了時にプロセスを中断して少なくともひとつの中間結果を保存し、少なくとも2つのプロセスのステップを連続的に実行し、各ステップの終了時に次のステップのプロセスを非確定引数の結果に従って選択する、方法にある。
本発明の実施例によると、前記非確定引数はランダム引数である。
本発明の実施例によると、現在の引数が先行のものと同じ場合には、現在のステップに対し同じプロセスが実行され、現在の引数が先行のものと異なる場合には、現在のステップに対し別のプロセスが選択される。
本発明の実施例によると、前記引数は1ビットの数値であり、その状態が先行のステップに関して機能プロセス選択の変更又は維持を条件づける。
本発明は、又、非確定的引数の結果に従って、実行する少なくともひとつの機能プロセスを選択する手段を有する、複数のステップに分割可能で各ステップの終了時に中間結果の保存のためにプロセスを中断する、同じ機能プロセスを実行するためのプロセッサを提供する。
本発明の実施例によると、前記引数は単一ビットで、その状態が先行の機能プロセスの実行を他の機能プロセスにスイッチングするか維持するかを条件づける。
本発明の特徴は機能処理の間にランダムスイッチングを提供することにある。前記処理は同じオペレーションを実行し、順番に実行される。本発明によると、機能処理は人工的に複数のステップに分割される(各ステップは、例えば、加算、乗算等の1又は複数の基本オペレーションである)。各ステップの終了時に処理を中断することが可能であり、一方、1又は複数の中間結果が保存される。各機能処理は、本発明では、相互に独立であり、つまり、本発明によりマスクされる処理は、マスクされる他の処理から発生する中間結果を必要としない。この条件は簡単に満足され、複数の関連する計算を本発明の意味で単一の機能処理に集めるように選択する。処理で操作されるデータは同じでも異なってもよい。
説明の明瞭化のために、本発明は2つの同じ計算(機能処理)を有する応用について記述される。各計算は2つの入力データをふくみ、出力データを提供する。しかし、本発明は一般にステップに分割される任意の数の計算に適用可能であり、入力及び出力データ及び中間結果の数が何であれ、十分な蓄積素子を提供すれば、適用可能である。同様に、本発明は処理のスイッチングを選択するためのランダムな実施に関して記述する。しかし、本発明は一般に数の非確定的な実施(例えば、擬似ランダム又は計算からの結果)、つまり、予測できない結果に対して、適用可能である。
図1は2つの同じ計算つまりPROC1とPROC2に適用される本発明の実施例で、各計算は2つの数A1,B1及びA2,B2に作用する。これらの処理はnステップに分割され、中間結果は各ステップの終了時に保存可能で、中断及び計算の再開が可能である。処理の分割は、例えば、各ステップの終了時の中断によりソフトウェア形態で書込むことにより行われる。同様の分割はワイヤード論理による機械によっても実施可能である。
本発明によると、プロセスPROC1及びPROC2の初期化を行うと、初期化データ(例えば、実行するステップのランク−ここではステップ1)と、計算に必要なオペランドA1,B1及びA2,B2が保存される(ブロック1,BUFF1及びブロック2,BUFF2)。保存素子は例えばダイレクトメモリーアクセス(DMA)回路で形成され、好ましくは、その後計算の中間データ(次のステップ及び中間結果)の保存に使用される。
本発明によると、カウンタが初期化される(ブロック3,i=0)。次に、第1のランダム数、この例では1ビット以上がとり出される(ブロック4,Rdi)。
とり出されたランダム数に従って、一方又は他方のプロセスが選択されて(ブロック5,SEL PROC EXEC)、その第1ステップが実行される。例えば、0のRdiに対してはプロセスPROC1のステップが実行され、数値1に対してはプロセスPROC2のステップが実行される。このステップを実行するために、選択されたプロセスの入力データA1,B1又はA2,B2がロードされる。
このステップの最後に、中間結果RI及び次の(又は現在の)ステップのランクRgが保存され(ブロック6,STORE)、プロセスの正しいステップでの後続の再スタートを可能とする。この保存は一方又は他方のプロセスPROC1又はPROC2毎に行われ、例えば、割り当てられた保存素子BUFF1又はBUFF2を用いて行われる。次に、数iが歩進され(ブロック7,i=i+1)、新しいランダム数Rdiがとり出される(ブロック8)。このとり出しは次のフェーズでの計算のプロセスPROC1及びPROC2の選択のために使用される。
好ましくは、テスト(ブロック9,Rdi=Rdi−1?)が先行のランダム数に関して実行される。2つの数が同じ場合には同じプロセスの次のステップ(ステップ10,EXEC)が実行される。逆の場合には、別のプロセスにスイッチングされる。これを実行するために必要なデータが再ロードされる(ブロック11,LOAD)。そのプロセスが未だ選択されていないときは前記データはその入力データA及びBである。さもなくば前記データは中間結果と、アルゴリズムの正しい位置で計算を再開するためのステップランクである。
ステップ10の実行の最後で、中間結果と実行が終わったプロセスステップのランクを保存し(ブロック12,STORE)、カウンタiの歩進(ブロック7)にもどる。
各プロセスはnステップで実行されなければならないので、ブロック10における通過の数は2n−1である。図示はしないが、別のテストをもうけて実行の終了を検出し、一方のプロセスを高速実行に導く引数の等しい確率でない分布の場合に引数の結果にかかわらず同じプロセスを常に選択する。別の実施例として、終了したプロセスの計算がランダムデータで継続される。しかし、この実施例は好ましくない、というのは、これは最後に計算結果を復元できる必要があり、一般の実行の速度を減少させる原因となるからである。
計算の最後で、最終結果(中間結果のように保存されている)が関連するプロセスに割り当てられた保存素子の中に与えられる。
従って、計算プロセスの各ステップの終了時に、ランダム引数の結果に従って、他のプロセスにスイッチングするか否かの可能性がある。2つの計算プロセスをランダムにインターレースさせることを考慮することができる。このインターレースにより実行を完全にマスクすることが可能となる。
ランダム引数の結果を2つのプロセスの一方に定常的に割り当てないという事実により、耐侵入システムをより強固にする。
数Rdiのサイズは、図示の実施例では、単一ビットである。というのはこの実施例は2つの計算を交互に提供するからである。
計算プロセスの数が2より大きい場合には、例えば、ひとつのプロセスから他のプロセスにスイッチングするときに、ランダム引数の結果に従ってプロセスを選択する。数Rdiのサイズはプロセスの数の関数である。
本発明の利点は、2つのプロセスの実行がインターレースされるという事実によりマスクが最適化されることにある。さらに、同じ機能プロセスへの応用は両方の計算に対し同じハードウェア回路の使用を可能とし、その際のデータは同じオペレーションを受ける。従って、集積回路の電力消費の検査により操作データをトレースすることはできない。というのは、本発明は現在の計算ステップと機能プロセスの間の相関をなくしているからである。
ひとつのプロセスから他のプロセスにスイッチングするために中間結果を保存することは欠点ではない。何故なら、中間結果は同じ計算の実行毎に異なるからである。
もちろん、本発明は当業者に容易な種々の変更、修飾、改良が可能である。特に、本発明の実施に必要なものは従来のもののみである。例えば、並列に実行する機能プロセスと比較すると、本発明はプロセスのスイッチングのために異なる機能プロセスの中間結果の一時保存をする。
上述の変更、修飾、改良は本開示の一部であり、本発明の範囲内である。従って、上述の記述は単なる実施例であり、発明を限定しない。本発明は特許請求の範囲とその均等物によってのみ限定される。
Claims (7)
- ディジタルデータを操作する複数の同じ機能プロセスをマスクする方法において、
前記機能プロセスをステップに分割し、各ステップの終了時にプロセスを中断して少なくともひとつの中間結果を保存(6)し、
少なくとも2つのプロセスのステップを連続的に実行し、各ステップの終了時に次のステップのプロセスを非確定引数の結果に従って選択する、方法。 - 前記非確定引数はランダム引数(8)である請求項1記載の方法。
- 現在の引数が先行のものと同じ場合には、現在のステップに対し同じプロセスが実行され、現在の引数が先行のものと異なる場合には、現在のステップに対し別のプロセスが選択される、請求項1記載の方法。
- 前記引数は1ビットの数値であり、その状態が先行のステップに関して機能プロセス選択の変更又は維持を条件づける、請求項1記載の方法。
- 非確定的引数の結果に従って、実行する少なくともひとつの機能プロセスを選択する(5,9,10,11)手段を有する、複数のステップに分割可能で各ステップの終了時に中間結果の保存(6)のためにプロセスを中断する、同じ機能プロセスを実行するためのプロセッサ。
- 前記引数(4,8)は単一ビットで、その状態が先行の機能プロセスの実行を他の機能プロセスにスイッチングするか維持するかを条件づける、請求項5記載のプロセッサ。
- 請求項1記載の方法を実行する手段を有する、請求項5記載のプロセッサ。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0309577 | 2003-08-01 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2005056413A true JP2005056413A (ja) | 2005-03-03 |
Family
ID=33548292
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004221714A Withdrawn JP2005056413A (ja) | 2003-08-01 | 2004-07-29 | 複数の同じ計算の保護 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7885408B2 (ja) |
EP (1) | EP1505760B1 (ja) |
JP (1) | JP2005056413A (ja) |
DE (1) | DE602004015374D1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009515449A (ja) * | 2005-11-04 | 2009-04-09 | ジェムプリュス | 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7658196B2 (en) | 2005-02-24 | 2010-02-09 | Ethicon Endo-Surgery, Inc. | System and method for determining implanted device orientation |
US7775215B2 (en) | 2005-02-24 | 2010-08-17 | Ethicon Endo-Surgery, Inc. | System and method for determining implanted device positioning and obtaining pressure data |
US7699770B2 (en) | 2005-02-24 | 2010-04-20 | Ethicon Endo-Surgery, Inc. | Device for non-invasive measurement of fluid pressure in an adjustable restriction device |
US8016744B2 (en) | 2005-02-24 | 2011-09-13 | Ethicon Endo-Surgery, Inc. | External pressure-based gastric band adjustment system and method |
US7927270B2 (en) | 2005-02-24 | 2011-04-19 | Ethicon Endo-Surgery, Inc. | External mechanical pressure sensor for gastric band pressure measurements |
US8066629B2 (en) | 2005-02-24 | 2011-11-29 | Ethicon Endo-Surgery, Inc. | Apparatus for adjustment and sensing of gastric band pressure |
US8870742B2 (en) * | 2006-04-06 | 2014-10-28 | Ethicon Endo-Surgery, Inc. | GUI for an implantable restriction device and a data logger |
US8152710B2 (en) | 2006-04-06 | 2012-04-10 | Ethicon Endo-Surgery, Inc. | Physiological parameter analysis for an implantable restriction device and a data logger |
US8624624B1 (en) | 2011-08-26 | 2014-01-07 | Lockheed Martin Corporation | Power isolation during sensitive operations |
US8525545B1 (en) | 2011-08-26 | 2013-09-03 | Lockheed Martin Corporation | Power isolation during sensitive operations |
US9531384B1 (en) * | 2014-12-01 | 2016-12-27 | University Of South Florida | Adiabatic dynamic differential logic for differential power analysis resistant secure integrated circuits |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933501A (en) * | 1996-08-01 | 1999-08-03 | Harris Corporation | `Virtual` encryption scheme combining different encryption operators into compound-encryption mechanism |
JP4027482B2 (ja) * | 1997-12-24 | 2007-12-26 | 富士通株式会社 | 暗号復元を行う翻訳装置およびその方法 |
FR2787900B1 (fr) * | 1998-12-28 | 2001-02-09 | Bull Cp8 | Circuit integre intelligent |
US7162031B1 (en) | 1998-12-30 | 2007-01-09 | Nokia Corporation | Method and device for cryptographically processing data |
US7092523B2 (en) * | 1999-01-11 | 2006-08-15 | Certicom Corp. | Method and apparatus for minimizing differential power attacks on processors |
FR2789535B1 (fr) * | 1999-02-04 | 2001-09-28 | Bull Cp8 | Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique |
JP2000305453A (ja) * | 1999-04-21 | 2000-11-02 | Nec Corp | 暗号化装置,復号装置,および暗号化・復号装置 |
EP1098469B1 (de) * | 1999-11-03 | 2007-06-06 | Infineon Technologies AG | Kodiervorrichtung |
DE10000503A1 (de) * | 2000-01-08 | 2001-07-12 | Philips Corp Intellectual Pty | Datenverarbeitungseinrichtung und Verfahren zu dessen Betrieb |
CA2298990A1 (en) * | 2000-02-18 | 2001-08-18 | Cloakware Corporation | Method and system for resistance to power analysis |
FR2820576B1 (fr) * | 2001-02-08 | 2003-06-20 | St Microelectronics Sa | Procede de cryptage protege contre les analyses de consommation energetique, et composant utilisant un tel procede de cryptage |
JP2002328845A (ja) * | 2001-05-07 | 2002-11-15 | Fujitsu Ltd | 半導体集積回路及びicカードのセキュリティー保護方法 |
JP3672874B2 (ja) * | 2002-01-25 | 2005-07-20 | Necマイクロシステム株式会社 | データ処理装置 |
DE10217291B4 (de) * | 2002-04-18 | 2005-09-29 | Infineon Technologies Ag | Datenverarbeitungsvorrichtung und Verfahren zum Betreiben eines Datenverarbeitungsmoduls |
FR2844891A1 (fr) * | 2002-09-20 | 2004-03-26 | St Microelectronics Sa | Masquage de donnees decomposees dans un systeme de residus |
-
2004
- 2004-07-29 JP JP2004221714A patent/JP2005056413A/ja not_active Withdrawn
- 2004-07-30 DE DE602004015374T patent/DE602004015374D1/de not_active Expired - Lifetime
- 2004-07-30 US US10/903,525 patent/US7885408B2/en not_active Expired - Fee Related
- 2004-07-30 EP EP04103685A patent/EP1505760B1/fr not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009515449A (ja) * | 2005-11-04 | 2009-04-09 | ジェムプリュス | 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法 |
Also Published As
Publication number | Publication date |
---|---|
DE602004015374D1 (de) | 2008-09-11 |
US7885408B2 (en) | 2011-02-08 |
US20050027998A1 (en) | 2005-02-03 |
EP1505760A1 (fr) | 2005-02-09 |
EP1505760B1 (fr) | 2008-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Coron et al. | Conversion from arithmetic to boolean masking with logarithmic complexity | |
US9400636B2 (en) | Apparatus and method for calculating a result in a scalar multiplication | |
EP1398901B1 (en) | Feistel type encryption method and apparatus protected against DPA attacks | |
JP2005056413A (ja) | 複数の同じ計算の保護 | |
Sasdrich et al. | Implementing Curve25519 for side-channel--protected elliptic curve cryptography | |
JP2006221163A (ja) | パイプラインを用いてメッセージ認証コードを提供する方法および装置 | |
US11914756B2 (en) | Data protection in computer processors | |
CN107798248B (zh) | 防止差分故障分析的软件保护 | |
Sasdrich et al. | Exploring RFC 7748 for hardware implementation: Curve25519 and Curve448 with side-channel protection | |
US8266450B2 (en) | Information processing device, encryption method of instruction code, and decryption method of encrypted instruction code | |
US11100254B2 (en) | Processors with security levels adjustable per applications | |
Barbosa et al. | On the automatic construction of indistinguishable operations | |
Inampudi et al. | Parallel implementation of cryptographic algorithm: AES using OpenCL on GPUs | |
US7536564B2 (en) | Method for encrypting a calculation using a modular function | |
KR102219029B1 (ko) | 보호되지 않는 하드웨어 레지스터로의 비밀 데이터의 안전한 로딩 | |
CN107003903B (zh) | 使用多个不同且独立的分支来执行敏感计算的方法 | |
WO2002027474A1 (en) | Executing a combined instruction | |
EP3252988B1 (en) | Partial unrolling for software security | |
WO2002027478A1 (en) | Instruction issue in a processor | |
US20150220307A1 (en) | Operation based on two operands | |
Leadbitter et al. | Nondeterministic multithreading | |
JP4804981B2 (ja) | データ変換装置及びデータ変換プログラム | |
CN114329524A (zh) | 一种抵抗旁路攻击的加密方法及系统 | |
JP5037876B2 (ja) | 暗号処理装置及び復号処理装置 | |
WO2002027479A1 (en) | Computer instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071002 |