JP2017537401A - 複数の異なりかつ独立した分岐を用いて機密計算を実行する方法 - Google Patents
複数の異なりかつ独立した分岐を用いて機密計算を実行する方法 Download PDFInfo
- Publication number
- JP2017537401A JP2017537401A JP2017528414A JP2017528414A JP2017537401A JP 2017537401 A JP2017537401 A JP 2017537401A JP 2017528414 A JP2017528414 A JP 2017528414A JP 2017528414 A JP2017528414 A JP 2017528414A JP 2017537401 A JP2017537401 A JP 2017537401A
- Authority
- JP
- Japan
- Prior art keywords
- processing unit
- branch
- branches
- unit time
- identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 43
- 230000000295 complement effect Effects 0.000 claims description 29
- 238000004364 calculation method Methods 0.000 claims description 28
- 230000000875 corresponding effect Effects 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 238000005259 measurement Methods 0.000 description 3
- 238000004148 unit process Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000000243 solution Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30065—Loop control instructions; iterative instructions, e.g. LOOP, REPEAT
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/58—Random or pseudo-random number generators
- G06F7/588—Random number generators, i.e. based on natural stochastic processes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
Description
このような攻撃には、タイミング測定、消費電力測定、電磁気放射測定、故障注入、等が使用される。
物理攻撃に対しては特にメモリフットプリントと実行時間に関して最小のインパクトを伴った効率的な方法を見出すことが常に望ましい。
これらの攻撃に対抗するために、保全デバイス中には埋設ソフトウェア対策が実装されている。
−機密値からの信号を相関させないように機密データを乱数によってマスクする;
−ソフトウェアコードのどの分岐を取らなければならないかを知る可能性を取り消すために機密処理をマスクする;
−実行の正確性を保証するいくつかの余分のコードを追加する。通常、機密性の高い操作又は一貫性のある制御を伴う一貫した余分のコードを再実行する。
−攻撃の状況に対応する実行ループの場合に実行を非同期にするための余分なコードを追加する;
−計算を2倍にする;
−逆操作を行う;
−いくつかの偽の操作を追加する。
本発明による機密計算では、計算は2つの異なりかつ独立した分岐によって構成される。一般に、機密分岐の一つが最初に実行され、次いで二番目が実行される。
実行される計算のブール又は算術特性に応じて、サイドチャネル攻撃を回避し、中間結果の一貫性をクロスチェックするために、例えば、DES(相補M、相補K)の相補に等しいDES(M,K)計算の場合には、このような機密計算の処理をマスクする必要が確かに存在する。
したがって、さらなる代替的かつ有利な解決方法が当該技術分野で望ましいであろう。
本発明は、最も広い意味で、複数の異なりかつ独立した分岐を用いて処理ユニットにより機密計算を実行する方法であって、
各分岐は実行されるべき所定数の処理ユニット時間単位を必要とし、前記方法は、機密計算の各実行に:
−少なくとも分岐の数と同じ数の多数の識別子を生成するステップと;
−各識別子を固有の分岐に関連付けるステップと;
−識別子のランダム配置を生成するステップであって、配置中での各識別子の出現回数が最短分岐中の中央処理ユニット時間単位の数と少なくとも等しいステップと;
−各識別子をランダム配置に処理することにより、識別子の値に従って各連続中央処理ユニット時間単位で実行する分岐を連続的に決定するステップと;
−ランダム配置の各識別子のために、識別子の値に従って決定された前記分岐用の中央処理ユニット時間単位を実行するステップ、として定義される。
各時間単位の終了時及び各分岐毎にループの中間結果を格納するためにメモリが使用される。各分岐のリバースエンジニアリングは、その実現が他の分岐ユニットと混在するため、より困難となる。
各分岐とそのユニットとを適格化するインデックスを含むバッファから分岐ユニットの連続を構成するわずかな命令で、正確性を保証しながら、それを利用することは容易である。
本発明は、独立し、異なる分岐の実行を高効率で完全に混合する可能性を開くものである。この対策の品質はフットプリントと機能の点でさらに高度である。
ランダム配列のこの特定の構造は、生成されるランダムシーケンスのサイズを小さくすることができる。また、各分岐に供されるサイクル数を同一となるよう保証する。
代表的には、補数値は2つの値の1つがここで挿入される。これは本発明の目標に到達するために簡単な方法で最終配列を構成することを可能としている。
この方法では、最初に値に対応する第1セットの分岐の、次いで補数値に対応する第2セットの分岐の実行が行なわれる。
好ましい適用として、機密計算は、暗号論理アルゴリズムの異なりかつ独立した分岐を備える。
特に興味深い適用として、機密計算は、複数の分岐の少なくとも1つの実行の正確性を保証するための対策再実行又は余分なコードの実行である。
そのような対策は、暗号アルゴリズムでしばしば使用される。しかし、現在の実装では、それらは攻撃の場合に一般的に漏洩する。本発明をいくつかの独立し、異なる分岐を用いる対策に適用することにより、そのような漏洩を防止することができる。
このような予備的なステップにより、全ての分岐での全ループセットに本発明の適用を可能とするCPUサイクルに関して、各分岐で同一長を有することが可能となる。
このような特徴は、各分岐において時間ユニット数の和に対応する数の時間ユニットが到達したことを機密計算の終了時にチェックすることを可能とする。
この特徴は、各分岐を独立して追跡することを可能とする。
コードの一部を飛ばすことを可能にするフォールト攻撃を検出できれば便利である。これは、分岐が実行されるたびに、いくつかの異なるトレーサをインクリメントすることにより行うことができる。すべての分岐の実行後に時間の正確な数を検出することは容易である。コードの一部をジャンプするのに成功したどんなフォールト攻撃であっても検出される。
−ビットの連続として乱数を生成するステップであって、乱数のビットの数は、最短の分岐中の処理ユニット時間単位の数に少なくとも等しいステップと;
−生成された乱数の補数ビットを使用して乱数の長さを倍増してマスタ乱数を作成するステップと;
−マスタ乱数をビット順に処理し、前記分岐のいずれが各連続処理ユニット時間単位を実行するかを前記マスタ乱数の各ビットの0又は1の値に従って順に決定するステップであって、各値は前記2つの分岐の1つに関連付けられているステップと;
−マスタ乱数の各ビット毎に、前記ビット値に従って決定された前記分岐のために処理ユニット時間単位を実行するステップと;を備える。
この実施例は、分岐が同一サイズのケースに対応する。
この特徴は、すべての機密計算の実行を追跡する非常にシンプルな方法である。
処理ユニットは、各識別子をランダム配列に処理し、識別子の値に従って各連続中央処理ユニット時間単位で実行する分岐を連続的に決定し、ランダム配列の各識別子に対し、識別子の値に従って決定した分岐のために中央処理ユニット時間単位を実行する。
実行されたコードのリバースエンジニアリングも古典的なアプローチに比し困難である。さらに、仮にコードが読み出しのためにアクセスが可能であったとしても、最終的な実行が何であるかは明らかとならない。
処理ユニットは所定の乱数の補数を計算することができ、
処理ユニットはビット毎に乱数と発生された乱数の連続する補数ビットとの連続ビットをビット順に処理し、ビットとその補数とは連続してマスタ乱数を形成し、各走査されたビットの0又は1の値に従って各連続処理ユニット時間単位によって分岐のどちらを実行するかをマスタ乱数の各ビットについて順次決定し、ビットの値に従って決定された分岐に処理ユニット時間単位を実行する。
前述の目的および関連する目的を達成するために、1つ又は複数の実施形態は以下で十分に説明され、特に特許請求の範囲において指摘される特徴を備える。
ステップ4で、iの値が2Lの値に達したかが判定される。達していれば(ケースY)、機密計算の実行は終了する。達していない場合(ケースN)、ステップS3に戻り、i番目のビット値がチェックされる。
本発明を適用するために、処理ユニット1は2つの異なる分岐を用いて機密計算を実行するよう意図されており、各分岐は実行されるべき所定数の処理ユニットサイクルを必要とする。
デバイスDは、さらに乱数発生器RNGを含んでいる。本発明の他の変形例では、デバイスDは乱数発生器RNGを自身には含まず、必要時に乱数を取得する発生器RNGに接続されていてもよい。このため、図中RNGは点線で示されている。
処理ユニットPUは連続したLビットを有する乱数R(L)のビットの補数により所定の乱数の2の補数をCOMP(R(L))として計算することができる。この連続したビットと補数とにより前述のマスタ乱数M_R(2L)を形成する。
マスタ乱数M_R(2L)の各ビット毎に、ビット値に従って決定された分岐の処理ユニットサイクルを実行する。
// 16ビットの乱数
Val_16Bits<=Random Value of 16 bits
// Val_16ビットと補数ビット値Val_16ビットの連結により構成される32ビット。この構造はすべての反復が実行されることを保証する。
MasterRNG_32Bits <= Val_16Bits | 〜(Val_16Bits)
(このステップで‘〜’演算子は値の2の補数を計算し、‘|’は2つの変数の連結を表わす)
bLoopTreatment_1=bLoopTreatment_2=0
For Loop = 0 to (16+16)
-if Bit(MasterRNG_32Bits) == 1
-Execute sensitive branch 1(in random order)
-Increment (bLoopTreatment_1,1)
-if Bit(MasterRNG_32Bits) == 0
-Execute sensitive branch 2(in random order)
-Increment (bLoopTreatment_2,1)
-go to next bit of MasterRNG_32Bits
//一貫性を制御する
-All bits of MasterRNG should be treated:
if not ErrorDetected()
-Loop == 32 ?
if not ErrorDetected()
-bLoopTreatment_1 == 16 ?
if not ErrorDetected()
-bLoopTreatment_2 == 16 ?
if not ErrorDetected()
これらのテストには、マスタ乱数のすべてのビットが取扱われたかのテスト、グローバルループインデックスが各分岐に必要とされるCPUサイクルの合計であったかのテスト、各分岐カウンタが必要とされるCPUサイクルであったかのテスト、等が含まれる。
好ましくは、可能な限り識別子は値と補数値として構成される。分岐の数が奇数の時は、完了していない識別子が作成されるか、偽の計算で分岐が追加される。
分岐は次のように関連付けられる:
A=>00,B=>01,C=>10,D=>11
そして、補数シーケンスを計算する。この補数シーケンスは、第1のシーケンスに加えられるか又は第1のシーケンスに織り込まれる。次いで補完されたシーケンスが計算される。
例えば、4, 0, 10, 6, 5, 8, 11, 2, 3, 7, 1, 9で、これを識別子のパックに適用する。即ち(00 00 00 01 01 01 10 10 10 11 11 11)に適用すると、(01 00 11 10 01 10 11 00 01 10 00 11)となり、これが本発明におけるマスタ乱数となる。
好ましい実施例では、2つの分岐が使用されており、生成される識別子は最もシンプルな0,1である。
事実、この対策を講じることにより、どの分岐が先験的に行なわれるかを知る可能性はなく、デバイスを例えば、サイドチャネル搾取により覗き見ることによりどの分岐が実効的に行なわれているかを知る可能性もない。この対策は、すべての機密処理、即ち、すべての分岐が実効的に実行されていることを保証する。またこの対策は、いくつかの機密分岐の実行を完全に混在させる可能性を開く。
従って、上述した詳細な説明は、本発明の範囲を制限するものではなく、本発明の範囲は添付の請求の範囲によってのみ規定されるものであり、請求の範囲が資格を有する均等物の全範囲をカバーするように適切に解釈されなければならない。
Claims (14)
- 複数の異なりかつ独立した分岐(SB1,SB2)を用いて処理ユニットにより機密計算を実行する方法であって、
各分岐は実行されるべき所定数の処理ユニット時間単位を必要とし、前記方法は、機密計算の各実行に:
−少なくとも分岐の数と同じ数の多数の識別子を生成するステップと;
−各識別子を固有の分岐に関連付けるステップと;
−識別子のランダム配置を生成する(S1,S2)ステップであって、前記配置中での各識別子の出現回数が最短分岐中の中央処理ユニット時間単位の数と少なくとも等しいステップと;
−各識別子を前記ランダム配置に処理(S3)することにより、識別子の値に従って各連続中央処理ユニット時間単位で実行する分岐を連続的に決定するステップと;
−前記ランダム配置の各識別子のために、前記識別子の値に従って決定された前記分岐用の中央処理ユニット時間単位を実行する(S11,S21)ステップと;を備えることを特徴とする方法。 - −識別子を生成するステップは、前記識別子が値とその補数値とを備え、
−ランダム配置を生成するステップは、最初に識別子として値のシーケンスを生成し(S1)、次いで、このシーケンスを前記シーケンスの補数値によって完成させる(S2)ことを特徴とする請求項1に記載の機密計算を実行する方法。 - 前記シーケンスは、以前に生成されたシーケンス内に2つの値のうちの1つの補数値を挿入することにより完成することを特徴とする請求項2に記載の機密計算を実行する方法。
- 前記シーケンスは、値のシーケンスの最後に補数値のシーケンスを追加することにより完成することを特徴とする請求項2に記載の機密計算を実行する方法。
- 前記機密計算は、暗号論理アルゴリズムの異なりかつ独立した分岐を備えることを特徴とする請求項1乃至4のいずれかに記載の方法。
- 前記機密計算は、前記複数の分岐の少なくとも1つの実行の正確性を保証するための対策再実行又は余分なコードの実行であることを特徴とする請求項1乃至5のいずれかに記載の方法。
- 前記分岐の1つが異なる長さであって、前記方法は、平衡するために最短の分岐を追加の処理ユニット時間単位で補完させる予備ステップを含むことを特徴とする請求項1乃至6のいずれかに記載の方法。
- 前記方法が、さらに、実行処理ユニット時間単位の数をカウントするステップを含むことを特徴とする請求項1乃至7のいずれかに記載の方法。
- 前記方法が、さらに、前記各分岐に対し、独立に実行処理ユニット時間単位の数をカウントするステップを含むことを特徴とする請求項1乃至8のいずれかに記載の方法。
- 請求項1乃至9のいずれかに従って機密計算を実行する方法において、
前記機密計算は、2つの異なりかつ独立した分岐(SB1,SB2)を用い、各分岐は実行されるべき所定数の処理ユニット時間単位を必要とし、前記方法が:
−ビットの連続として乱数(R(L))を生成するステップであって、前記乱数(R(L))のビットの数は、最短の分岐中の処理ユニット時間単位の数に少なくとも等しいステップと;
−前記生成された乱数(R(L))の補数ビット(COMP(R(L))を使用して前記乱数(R(L))の長さを倍増してマスタ乱数(M_R(2L))を作成するステップと;
−前記マスタ乱数(M_R(2L))をビット順に処理し、前記分岐(SB1、SB2)のいずれが各連続処理ユニット時間単位を実行するかを前記マスタ乱数(M_R(2L))の各ビットの0又は1の値に従って順に決定するステップであって、各値は前記2つの分岐の1つに関連付けられているステップと;
−前記マスタ乱数の各ビット毎に、前記ビット値に従って決定された前記分岐(SB1又はSB2)のために処理ユニット時間単位を実行する(S11,S21)ステップと;
を備えることを特徴とする方法。 - 両方の分岐が同一数の処理ユニット時間単位を必要とし、前記生成された乱数(M_R(2L))が1つの分岐中の処理ユニット時間単位の数と等しいことを特徴とする請求項8に記載の方法。
- さらに、前記マスタ乱数(M_R(2L))中の走査されたビットの数をカウントするステップを含むことを特徴とする請求項8又は9に記載の方法。
- 複数の異なりかつ独立した分岐を使用して機密計算を実行する処理ユニット(PU)を備えたデバイス(D)であって、各分岐は実行されるべき所定数の処理ユニット時間単位を必要とし、前記デバイス(D)はさらに分岐の数と少なくとも同一数の多数の識別子を生成する識別子ジェネレータを備え、各識別子は固有の分岐に関連付けられ、前記処理ユニット(PU)は識別子のランダム配列を計算可能であって、前記配列中の各識別子の出現回数は最短の分岐中の中央処理ユニット時間単位の数と少なくとも等しく、
前記処理ユニット(PU)は、各識別子をランダム配列に処理し、前記識別子の値に従って各連続中央処理ユニット時間単位で実行する前記分岐を連続的に決定し、前記ランダム配列の各識別子に対し、前記識別子の値に従って決定した分岐のために中央処理ユニット時間単位を実行することを特徴とするデバイス(D)。 - 前記デバイス(D)は、2つの異なる分岐(SB1,SB2)を使用して機密計算を実行する処理ユニット(PU)を含み、各分岐は実行されるべき所定数の処理ユニット時間単位を必要とし、前記デバイスはさらにビットの連続として乱数(R(L))を発生させる乱数発生器(RNG)を含み又は前記乱数発生器(RNG)に接続され、前記乱数(R(L))中のビット数は最短の分岐中の処理ユニット時間単位の数の少なくとも等しく、
前記処理ユニット(PU)は所定の乱数(R(L))の補数を計算することができ、
前記処理ユニット(PU)はビット毎に前記乱数(R(L))と前記発生された乱数(R(L))の連続する補数ビットとの連続ビットをビット順に処理し、ビットとその補数とは連続してマスタ乱数(M_R(2L))を形成し、各走査されたビットの0又は1の値に従って各連続処理ユニット時間単位によって前記分岐(SB1,SB2)のどちらを実行するかを前記マスタ乱数(M_R(2L))の各ビットについて順次決定し、ビットの値に従って決定された分岐に処理ユニット時間単位を実行することを特徴とする請求項13に記載のデバイス(D)。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP14306987.0 | 2014-12-10 | ||
EP14306987.0A EP3032416A1 (en) | 2014-12-10 | 2014-12-10 | Method to execute a sensitive computation using multiple different and independent branches |
PCT/EP2015/077552 WO2016091581A1 (en) | 2014-12-10 | 2015-11-24 | Method to execute a sensitive computation using multiple different and independent branches |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017537401A true JP2017537401A (ja) | 2017-12-14 |
JP6339295B2 JP6339295B2 (ja) | 2018-06-06 |
Family
ID=52396370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017528414A Active JP6339295B2 (ja) | 2014-12-10 | 2015-11-24 | 複数の異なりかつ独立した分岐を用いて機密計算を実行する方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10545759B2 (ja) |
EP (2) | EP3032416A1 (ja) |
JP (1) | JP6339295B2 (ja) |
KR (1) | KR101889243B1 (ja) |
CN (1) | CN107003903B (ja) |
WO (1) | WO2016091581A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268329B (zh) * | 2021-05-31 | 2023-09-01 | 北京奇艺世纪科技有限公司 | 一种请求调度方法、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002261753A (ja) * | 2001-03-06 | 2002-09-13 | Hitachi Ltd | 耐タンパー暗号処理方法 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100265674B1 (ko) | 1995-06-07 | 2000-09-15 | 데니스 피셸 | 인코드된 데이타 스트림에 대한 에러 검출 및 정정시스템 |
WO1999063696A1 (en) * | 1998-06-03 | 1999-12-09 | Cryptography Research, Inc. | Using unpredictable information to minimize leakage from smartcards and other cryptosystems |
DE19837808A1 (de) * | 1998-08-20 | 2000-02-24 | Orga Kartensysteme Gmbh | Verfahren zur Ausführung eines Verschlüsselungsprogramms zur Verschlüsselung von Daten in einem mikroprozessorgestützten, tragbaren Datenträger |
US7248698B2 (en) * | 2001-04-06 | 2007-07-24 | Interdigital Technology Corporation | System for generating pseudorandom sequences |
US7401208B2 (en) * | 2003-04-25 | 2008-07-15 | International Business Machines Corporation | Method and apparatus for randomizing instruction thread interleaving in a multi-thread processor |
US9104477B2 (en) * | 2011-05-05 | 2015-08-11 | Alcatel Lucent | Scheduling in MapReduce-like systems for fast completion time |
US8918768B2 (en) * | 2012-12-06 | 2014-12-23 | Apple Inc. | Methods and apparatus for correlation protected processing of data operations |
-
2014
- 2014-12-10 EP EP14306987.0A patent/EP3032416A1/en not_active Withdrawn
-
2015
- 2015-11-24 WO PCT/EP2015/077552 patent/WO2016091581A1/en active Application Filing
- 2015-11-24 EP EP15801751.7A patent/EP3230859B1/en active Active
- 2015-11-24 CN CN201580067109.XA patent/CN107003903B/zh active Active
- 2015-11-24 JP JP2017528414A patent/JP6339295B2/ja active Active
- 2015-11-24 US US15/533,476 patent/US10545759B2/en active Active
- 2015-11-24 KR KR1020177015545A patent/KR101889243B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002261753A (ja) * | 2001-03-06 | 2002-09-13 | Hitachi Ltd | 耐タンパー暗号処理方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3230859A1 (en) | 2017-10-18 |
KR101889243B1 (ko) | 2018-09-20 |
EP3230859B1 (en) | 2019-07-17 |
CN107003903B (zh) | 2021-02-26 |
EP3032416A1 (en) | 2016-06-15 |
US10545759B2 (en) | 2020-01-28 |
KR20170085066A (ko) | 2017-07-21 |
CN107003903A (zh) | 2017-08-01 |
JP6339295B2 (ja) | 2018-06-06 |
US20170344376A1 (en) | 2017-11-30 |
WO2016091581A1 (en) | 2016-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11362802B2 (en) | Cryptographic device arranged to compute a target block cipher | |
US9871651B2 (en) | Differential power analysis countermeasures | |
CN106487498B (zh) | 电子电路对边信道攻击的抵抗的检验 | |
JP5861018B1 (ja) | テーブルネットワークによって構成されたコンピューティングデバイス | |
US10897344B2 (en) | Performing cryptographic data processing operations in a manner resistant to external monitoring attacks | |
Patranabis et al. | Fault tolerant infective countermeasure for AES | |
Rass et al. | On the security of a universal cryptocomputer: the chosen instruction attack | |
JP6339295B2 (ja) | 複数の異なりかつ独立した分岐を用いて機密計算を実行する方法 | |
JP2004310752A (ja) | データ処理装置における誤り検出 | |
US20180069694A1 (en) | Software protection against differential fault analysis | |
Lipton et al. | Provably secure virus detection: Using the observer effect against malware | |
Henricksen et al. | Side-channel analysis of the K2 stream cipher | |
Böhl et al. | A collision resistant deterministic random bit generator with fault attack detection possibilities | |
Akdemir et al. | Non-linear error detection for finite state machines | |
Zhu et al. | Temperature-Triggered Hardware Trojan Based Algebraic Fault Analysis of SKINNY-64-64 Lightweight Block Cipher. | |
US20230093306A1 (en) | Protection of cryptographic substitution-permutation networks from fault injection attacks | |
Stecklina et al. | Intrinsic code attestation by instruction chaining for embedded devices | |
WO2018007113A1 (en) | Secure loading of secret data to non-protected hardware registers | |
Patrick | Software Protection Against Fault and Side Channel Attacks | |
Oswald et al. | Side-channel analysis and its relevance to fault attacks | |
van Dijk et al. | A high-performance threshold implementation of a baseking variant on an arm architecture | |
Zikas et al. | Provably Secure Virus Detection: Using The Observer Effect Against Malware | |
Malagón et al. | Bitslice software implementation of KeeLoq as a side-channel countermeasure | |
Tunstall | Secure cryptographic algorithm implementation on embedded platforms |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170526 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180329 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20180410 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6339295 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |