JP2005056413A - 複数の同じ計算の保護 - Google Patents

複数の同じ計算の保護 Download PDF

Info

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
Application number
JP2004221714A
Other languages
English (en)
Inventor
Yannick Teglia
テグリア ヤニック
Pierre-Yvan Liardet
イヴァン リアデ ピエール
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
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 STMicroelectronics SA filed Critical STMicroelectronics SA
Publication of JP2005056413A publication Critical patent/JP2005056413A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • 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

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

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)

  1. ディジタルデータを操作する複数の同じ機能プロセスをマスクする方法において、
    前記機能プロセスをステップに分割し、各ステップの終了時にプロセスを中断して少なくともひとつの中間結果を保存(6)し、
    少なくとも2つのプロセスのステップを連続的に実行し、各ステップの終了時に次のステップのプロセスを非確定引数の結果に従って選択する、方法。
  2. 前記非確定引数はランダム引数(8)である請求項1記載の方法。
  3. 現在の引数が先行のものと同じ場合には、現在のステップに対し同じプロセスが実行され、現在の引数が先行のものと異なる場合には、現在のステップに対し別のプロセスが選択される、請求項1記載の方法。
  4. 前記引数は1ビットの数値であり、その状態が先行のステップに関して機能プロセス選択の変更又は維持を条件づける、請求項1記載の方法。
  5. 非確定的引数の結果に従って、実行する少なくともひとつの機能プロセスを選択する(5,9,10,11)手段を有する、複数のステップに分割可能で各ステップの終了時に中間結果の保存(6)のためにプロセスを中断する、同じ機能プロセスを実行するためのプロセッサ。
  6. 前記引数(4,8)は単一ビットで、その状態が先行の機能プロセスの実行を他の機能プロセスにスイッチングするか維持するかを条件づける、請求項5記載のプロセッサ。
  7. 請求項1記載の方法を実行する手段を有する、請求項5記載のプロセッサ。
JP2004221714A 2003-08-01 2004-07-29 複数の同じ計算の保護 Withdrawn JP2005056413A (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009515449A (ja) * 2005-11-04 2009-04-09 ジェムプリュス 組み込みシステム上での暗号アルゴリズム実行中にデータを安全に処理するための方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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