JP7076482B2 - Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法 - Google Patents

Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法 Download PDF

Info

Publication number
JP7076482B2
JP7076482B2 JP2019572084A JP2019572084A JP7076482B2 JP 7076482 B2 JP7076482 B2 JP 7076482B2 JP 2019572084 A JP2019572084 A JP 2019572084A JP 2019572084 A JP2019572084 A JP 2019572084A JP 7076482 B2 JP7076482 B2 JP 7076482B2
Authority
JP
Japan
Prior art keywords
xor
transrandomized
substitution box
box
substitution
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.)
Active
Application number
JP2019572084A
Other languages
English (en)
Other versions
JP2020527743A (ja
Inventor
ビジラン,ダビ
Original Assignee
タレス・ディス・フランス・エス・ア
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 タレス・ディス・フランス・エス・ア filed Critical タレス・ディス・フランス・エス・ア
Publication of JP2020527743A publication Critical patent/JP2020527743A/ja
Application granted granted Critical
Publication of JP7076482B2 publication Critical patent/JP7076482B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/75Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation
    • G06F21/755Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by inhibiting the analysis of circuitry or operation with measures against power attack
    • 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/76Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
    • G06F7/764Masking
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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
    • 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/16Obfuscation or hiding, e.g. involving white box

Description

本発明は、ブロック暗号暗号化および関連した暗号デバイスの分野に関し、より詳細には、高次サイドチャネル攻撃から防護されながらブロック暗号を実装する暗号デバイスに関する。
暗号アルゴリズムは、暗号化によって通信のプライバシーを確保するため、認証のため、または検証可能なシグネチャを生成するために一般に使用される。そのようなアルゴリズムの一例は、暗号化または復号されるデータの入力ビットが、ブロックによって処理されるDESまたはAESなどのブロック暗号アルゴリズムである。しばしば、暗号ブロックアルゴリズムは、いくつかの暗号化または復号ラウンドを適用することによって暗号化または復号を行う。非線形性をプロセスにもたらし、したがってセキュリティを高めるために、通常、各ラウンドは、Sboxと呼ばれるサブスティテューション(substitution)ボックスを伴う。
そのような暗号アルゴリズムは、図1に示されるように、暗号化を行う装置の消費電力または電磁シグネチャの解析に基づくサイドチャネル攻撃の影響を受けやすい。特定のタイプのサイドチャネル攻撃は、図3に示されるように、暗号化に使用される秘密鍵の少なくとも一部分を復元するためにいくつの暗号化ラウンドに関する消費電力の統計的解析を行う差分電力解析(DPA)である。
DPAなどのサイドチャネル攻撃に対して一般に使用されている対抗策は、ランダムマスクを用いる暗号化プロセスの中間値のマスキングである。その場合には、暗号化プロセスの所与の時点でサイドチャネル攻撃を行う攻撃者は、乱数値を得るだけであり、暗号プロセスに使用される秘密鍵に関する情報を何ら取得しない。それにも関わらず、1つのマスクを用いる一次マスキングは、例えば、プロセスの2つの異なるラウンドにおける2つの攻撃からの情報を組み合わせた二次サイドチャネル攻撃によって打ち破られる可能性がある。
任意の変数がいくつかの部分に分けられてもよく、各部分が異なるマスクによってマスクされてもよい高次マスキングプロセスが提案されている。それで、N個の異なるマスクを用いたN次マスキングは、N次サイドチャネル攻撃を防護する。それにも関わらず、そのような解決策は、ブロック暗号アルゴリズムに使用されるSboxなどの非線形演算をマスクする場合に、コストが非常に高くなり得る。
したがって、防護されるべき変数の高次分割を伴う既存の解決策よりもより少ないリソースを消費しながら高次サイドチャネル攻撃から防護されるブロック暗号アルゴリズム、および関連した暗号デバイスに対する必要性がある。
この目的のために、第1の態様によれば、したがって、本発明は、少なくとも1つのハードウェアプロセッサを有する処理システムを含む暗号デバイスのコンピュータ可読メモリ回路に記憶された最初のサブスティテューションボックスSを複数の暗号化ラウンドにおいて使用する暗号プロセスを用いて、Nを所定の整数とする、N次サイドチャネル攻撃からセキュアにする方法であって、処理システムによって行われる:
- コンピュータ可読メモリ回路内で前記最初のサブスティテューションボックスSにアクセスするステップと、
- 最初のサブスティテューションボックスSの任意の入力値xについて、m、mを一様分布乱数値として、S(x XOR m)=S(x) XOR mであるように前記最初のサブスティテューションボックスSをマスクすることによって、第1のランダム化されたサブスティテューションボックスSを生成するステップと、
- 第1のトランスランダム化されたサブスティテューションボックスS(1,1)の任意の入力値xについて、S(1,1)[x]=S[x xor(m xor m1,1)]xor(m xor m’1,1)であるように、第1のランダム化されたサブスティテューションボックスSから、およびマスクm1,1、m’1,1から、第1のトランスランダム化されたサブスティテューションボックスS(1,1)を生成するステップと、
- iを{2,..N-1}に含まれる整数として、i番目のトランスランダム化されたサブスティテューションボックスS(1,i)の任意の入力値xについて、S(1,i)[x]=S(1,i-1)[x xor (m1,i-1 xor m1,i)]xor(m’1,i-1 xor m’1,i)であるように、i-1番目のトランスランダム化されたサブスティテューションボックスS(1,i-1)から、および複数のマスクm1,i、m’1,i、m1,i-1、m’1,i-1から、i番目のトランスランダム化されたサブスティテューションボックスS(1,i)を生成するステップを反復的にN-2回行うことによって、N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)を第1のトランスランダム化されたサブスティテューションボックスS(1,1)から生成するステップと、
- 暗号プロセスの少なくとも前記第1のラウンドにおいて、最初のサブスティテューションボックスSの代わりに、N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)を用いて暗号プロセスを行うステップと
を含み、
前記マスクは一様分布乱数値であり、「XOR」はブール排他的論理和演算であり、(m,m)から(m,m)へのサブスティテューションボックスSの前記演算「トランスランダム化」は、i、j、kおよびlを{2,..N-1}に含まれる整数として、前記マスクmおよびmでマスクされた前記サブスティテューションボックスSから、トランスランダム化されたサブスティテューションボックスと呼ばれる前記マスクmおよびmでマスクされた前記サブスティテューションボックスSを算出することにある、方法に関する。
N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)は、暗号プロセスの全てのラウンドにおいて最初のサブスティテューションボックスSの代わりに用いることができる。
第1の態様による方法は、現ラウンドと呼ばれる、前記複数の暗号化ラウンドのうちの各ラウンドr、r>1を行うときに:
- 現ラウンドについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)の任意の入力値xについて、S(r,1)[x]=S(r-1,N-1)[x xor (mr-1N-1 xor mr,1)]xor(m’r-1N-1 xor m’r,1)であるように、現ラウンドrの前に行われた最後のラウンド(r-1)において最初のサブスティテューションボックスSの代わりに使用されたN-1番目のトランスランダム化されたサブスティテューションボックスS(r-1,N-1)から、およびマスクmr,1、m’r,1から、現ラウンドrについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)を生成するステップと、
- iを{2,..N-1}に含まれる整数として、現ラウンドについてのi番目のトランスランダム化されたサブスティテューションボックスS(r,1)の任意の入力値xについて、S(r,i)[x]=S(r,i-1)[x xor(mr,i-1 xor mr,i)]xor(m’r,i-1 xor m’r,i)であるように、現ラウンドrについてのi-1番目のトランスランダム化されたサブスティテューションボックスS(r,i-1)から、および複数のマスクmr,i、m’r,i、mr,i-1、m’r,i-1から、現ラウンドrについてのi番目のトランスランダム化されたサブスティテューションボックスS(r,i)の生成のステップを反復的にN-2回行うことによって、現ラウンドrについてのN-1番目のトランスランダム化されたサブスティテューションボックスS(r,N-1)を、現ラウンドrについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)から生成するステップと、
- 暗号プロセスの前記現ラウンドrにおいて、最初のサブスティテューションボックスSの代わりに、現ラウンドrについてのN-1番目のトランスランダム化されたサブスティテューションボックスS(r,N-1)を使用するステップと
をさらに含むこともできる。
そのようにすることによって、暗号プロセスは、データを複数のシェアに分割することに頼る既存の解決策よりもずっと低いコストでN次サイドチャネル解析攻撃から防護される。
暗号プロセスは、ブロック暗号アルゴリズムであってもよい。
例えば、ブロック暗号アルゴリズムは、高度暗号化標準(AES)アルゴリズム、データ暗号化標準(DES)、ブローフィッシュ、サーペント、Gostアルゴリズムのうちの1つであり得る。
したがって、本発明は、よく知られており非常に頻繁に使用される、このような暗号プロセスのブロック暗号化ラウンドをN次攻撃から防護することを可能にする。
メモリスクランブリングは、iを{1,..N-1}に含まれる整数として、ラウンドrにおいてトランスランダム化されたサブスティテューションボックスS(r,i)を生成するように行われてもよい。
そのようなメモリスクランブリングは、元のサブスティテューションボックスの全ての要素を置換することによってマスクされたサブスティテューションボックスを実際に生成することに比べて、入力マスクをサブスティテューションボックスに適用するコストを減少させることを可能にする。
第2の態様によれば、したがって、本発明は、少なくとも1つのコンピュータのメモリの中に直接ロード可能なコンピュータプログラム製品であって、前記製品がコンピュータ上で動かされるときに第1の態様による方法のステップを行うソフトウェアコード命令を含む、コンピュータプログラム製品にも関する。
第3の態様によれば、したがって、本発明は、少なくとも1つのハードウェアプロセッサを有する処理システムを備えた暗号デバイスによって実行されるときに、第1の態様による方法を行う実行可能なコンピュータコードを記憶する、非一時的なコンピュータ可読媒体にも関する。
第4の態様によれば、したがって、本発明は:
- 第1の態様による方法のステップを実行するように構成された少なくとも1つのハードウェアプロセッサを有する処理システムと、
- 前記サブスティテューションボックスを記憶するために構成されたコンピュータ可読メモリ回路と
を備えた暗号デバイスにも関する。
以下の説明および添付図面は、いくつかの例示的な態様を詳細に記載し、実施形態の原理を用いることができる様々なやり方をその一部であるが示す。他の利点および新規な特徴は、図面と併せて検討されるときに以下の詳細な説明から明らかになるであろうし、開示された実施形態は、そのような態様およびそれらの均等物の全てを含むことが意図されている。
本発明の一実施形態によるシステムの概略図である。 本発明の一実施形態による暗号デバイスの概略図である。 高次サイドチャネル攻撃の概略図である。 本発明の一実施形態による反復的に繰り返されるトランスランダム化機構の概略図である。 本発明の一実施形態によるN次サイドチャネル攻撃からセキュアにする方法を概略説明する図である。
以下、詳細な説明において、本発明が実践され得る特定の実施形態を例示によって示す添付図面の参照がなされる。これらの実施形態は、当業者が本発明を実践することができるように十分詳細に説明されている。本発明の様々な実施形態は、異なるが、必ずしも相互に排他的でないと理解されたい。例えば、一実施形態に関連して本明細書中に説明された特定の特徴、構造、または特性は、本発明の趣旨および範囲から逸脱することなく他の実施形態内で実装され得る。さらに、各開示された実施形態内の個々の要素の位置および配置は、本発明の趣旨および範囲から逸脱することなく修正されてもよいことを理解されたい。したがって、以下詳述される説明は、限定的な意味でとらえられるべきではなく、本発明の範囲は、特許請求の範囲が権利付与される均等物の全範囲と共に、適切に解釈された添付の特許請求の範囲によってのみ定義される。
本発明は、暗号デバイス101によって行われるブロック暗号暗号化演算を高次サイドチャネル攻撃から防御する問題を解決するシステム、および関連した暗号化方法を提供することを目指している。
図1に示されるように、そのような暗号デバイス101は、ユーザによって操作されるとともに、高度暗号化標準(AES)アルゴリズム、データ暗号化標準(DES)、ブローフィッシュ、サーペント、またはGostアルゴリズムなどのブロック暗号アルゴリズムを用いてデータ暗号化または復号などの暗号演算をするための命令を暗号デバイスに送るパーソナルコンピュータまたはサーバ102に接続され得る。代替として、暗号デバイス101は、コンピュータ102に組み込まれてもよい。
暗号デバイス101は、暗号演算を行う少なくとも1つのハードウェアプロセッサを有する処理システムと、そのような演算に必要なデータを記憶するために構成されたコンピュータ可読メモリ回路とを含む、何らかの承認されていないアクセスからセキュアにされる耐タンパ装置103を含むことができる。そのような暗号デバイスは、例えば、スマートカードデバイスを収容するスマートカードリーダ、またはスマートチップを含むスマートフォンなどの電子デバイスであり得る。
図2は、暗号デバイス101の概略図である。暗号デバイス101は、ランダムアクセスメモリ(RAM)203、リードオンリメモリ(ROM)204、および/または不揮発性メモリ(NVM)205を含むコンピュータ可読メモリ回路に、バス202を介して接続された少なくとも1つのハードウェアプロセッサを有する処理システム201を含むことができる。暗号デバイス101は、ハードウェアプロセッサに含まれた、またはバスを介してハードウェアプロセッサに接続された乱数発生器(RNG)206を含むこともできる。暗号デバイス101は、暗号デバイス101をコンピュータ102に接続するために使用されるインタフェース207をさらに含むことができる。そのようなインタフェースは、USB、イーサネットインタフェースもしくはサンダーボルトインタフェースなどの有線インタフェース、またはBluetoothインタフェースなどの無線インタフェースのどちらかであり得る。インタフェース207は、暗号デバイス101を無線ネットワーク、例えば、ワイドエリアネットワーク、WiFiネットワーク、または携帯電話通信ネットワークに接続するために使用することもでき、通信が、このネットワークを通じてコンピュータ102と行われ得る。
以下のパラグラフは、本発明の第1の態様による暗号デバイス101によって行われる暗号プロセスを有する、Nを所定の整数とする、N次サイドチャネル攻撃からセキュアにする方法のステップを説明する。
上で説明されたように、DPAなどのサイドチャネル攻撃に対して一般に使用されている対抗策は、マスキングである。より詳細には、ブロック暗号暗号化計算を防護するために、SBOX計算は、SBOX計算に入力値として与えられる秘密データを防護するためにマスクされることができる。
本文献の残りでは、暗号プロセスに使用される全てのマスクは、暗号デバイスの乱数発生器206により発生される、一様分布乱数であると仮定される。例示的実施形態では、任意のデータのマスキングは、そのようなデータとマスク間でXOR演算、ブール排他的論理和演算を適用することによってなされるが、代わりに、加算、減算、乗算...などのデータとマスクを組み合わせる任意の他の算術演算が使用されてもよい。
SBOX計算は、入力側でマスクされてもよい。その場合、SBOX計算の入力として使用されるデータxは、SBOX計算S(x xor m)を行うためにSBOX Sへ与えられる前に、入力マスクmによってマスクされる。
SBOX計算は、出力側でやはりマスクされてもよい。その場合、SBOX S(x)の任意の出力データは、出力マスクmによってマスクされ、入力データxから値S(x) xor mを作り出す。
入力マスキングと出力マスキングの両方は、組み合わされてもよい。以下のパラグラフでは、入力マスクmと出力マスクmの両方を用いたSBOX Sを使用するSBOX計算のマスキングは、「SBOX Sをマスク(m,m)でマスクする」と呼ばれる。
SBOX計算の非線形性にも関わらず、マスクされた入力を入力として使用するSBOX計算から出力マスクmでマスクされた値S(x)を得るために、(m,m)でマスクされたマスクされたSBOX S’は、S’(x XOR m)=S(x) XOR mであるように元のマスクされていないSBOX Sから算出されることができる。
それで、S’におけるmでマスクされたマスキング入力は、Sにおける値の置換と等価であり:入力データに対応する位置における、元のSBOX Sに位置する値S(x)は、評価S’(x XOR m)からS(x)を得るために、入力データx xor mに対応する位置においてマスクされたSBOX S’に位置するものとする。
元のSBOXの全ての要素を置換することによって、マスクされたSBOXを実際に生成する代わりに、入力マスキングは、メモリスクランブリングによって行われてもよい。その場合、マスクされたSBOX S’(x xor m)の値と入力x xor mの間のマッチングが、仮想メモリアドレシングを用いて記憶され、入力マスキングは、元の入力xの代わりにマスクされた入力x xor mに向けてポイントするために、メモリポインタを更新することによって行われる。そのようなメモリスクランブリングは、暗号デバイス101の処理システム201によってまたは暗号デバイスに含まれる専用ハードウェア回路によってハンドヘルド(handheld)されるソフトウェア演算によって行うことができる。
そのような入力マスキングに加えて、S’(x XOR m)=S(x) XOR mを有するために、マスクされたSBOX S’における値は、元のSBOX Sにおける全ての値を出力マスクmでマスクすることによって取得される。そのような出力マスキングは、暗号デバイス101の処理システム201によってまたはこの暗号デバイスに含まれる専用ハードウェア回路によってハンドヘルドされるソフトウェア演算によって行われることもできる。
それで、マスクされたSBOX S’を用いてSBOX計算を行うことは、入力としてマスクされた値(x xor m)を用いてそのような計算を行い、出力マスクmで防護された関心のある値S(x)を出力において得ることを、SOX演算の非線形性に関わらず、依然として可能にする。
残念なことに、そのような(m,m)マスキングは、一次攻撃を防護するのにすぎない。攻撃者は、例えば、図1に示されるように、オシロスコープ104を用いて、図3に示されるように、サイドチャネル解析攻撃によって取得された2つの漏洩を組み合わせることによって、そのようなSBOX計算の入力データxをまだ復元することができる。例えば、攻撃者は、xまたはS(x)に関する情報を得るために、マスクされたSBOX算出の解析から、(m,m)に関する漏洩を得るとともに、ブロック暗号暗号化自体から(m,m)でマスクされたxまたはS(x)に関する別の漏洩を得て、両方の漏洩を組み合わせることができる。
そのような攻撃を打ち破るために、本発明の第1の目標は、元のマスクされていないSBOXから1ステップでは算出されないマスクされたSBOXを用いて、ブロック暗号暗号化を行うことにより、ほんの2つの漏洩のそのような成功する組み合わせを防ぐことである。言い換えれば、元のマスクされていないSBOXからのマスクされたSBOX算出は、ブロック暗号暗号化のために使用されるマスクされたSBOXをマスクするマスクと同じマスクを用いては、行われないこととする。
そうするために、ブロック暗号暗号化に使用されるマスクされるSBOX、例えば、(m,m)でマスクされたSは、異なるマスクを用いてすでにマスクされたSBOXテーブル、例えば、それ自体は元のテーブルから取得される(m,m)でマスクされたSから算出されるものとする。そのような演算は、(m,m)から(m,m)への「トランスランダム化」と」呼ばれる。それで、トランスランダム化されたテーブルSは、他のマスクされたテーブルSの任意の入力値xについて、S[x]=S[x xor (m xor m)]xor(m xor m)であるようになる。それは:
- mを用いたSの入力マスキングを、mを用いたSの入力マスキングで置き換える、(m xor m)でSの入力をマスクし、
- mを用いたSの出力マスキングを、mを用いたSの出力マスキングで置き換える、(m xor m)でSの出力をマスクする
ことによってSから取得することができる。
ブロック暗号暗号化が、トランスランダム化によって取得されるそのようなマスクされたSBOXを用いて行われるとき、ブロック暗号暗号化が行われるときに、およびマスクされたSBOX算出が行われるときに、攻撃者が、サイドチャネル解析攻撃を行うことができると仮定すると、そのような攻撃者は:
- ブロック暗号暗号化の解析から、(m,m)でマスクされたxまたはS(x)に関する漏洩を、
- および元のSBOXのマスキング、すなわち、Sの算出の解析から、(m,m)に関する漏洩を
得る。
したがって、攻撃者は、これらの2つの漏洩だけの組み合わせから秘密入力データxまたはS(x)に関する情報を得ることができない。攻撃者はさらに、これらの漏洩とトランスランダム化演算、すなわち、SからのSの算出の解析からの、(m,m)と(m,m)の間のリンクに関する情報をあたえる第3の漏洩とを組み合わせなければならない。
結果として、そのような単一のトランスランダム化は、二次攻撃からブロック暗号暗号化を防護することを可能にし、攻撃者に、成功するために第三次攻撃を行うことを必要とさせる。
より高次の攻撃からブロック暗号暗号化を防護するために、そのようなトランスランダム化は、図4に示されるように、反復的に繰り返されてもよい。この例では、マスクされていない最初のサブスティテューションボックスSで行われるように最初に設計されたブロック暗号暗号化をN次サイドチャネル攻撃からセキュアにするために、まず、暗号デバイスの処理システムは、最初のサブスティテューションボックスSの任意の入力値xについて、m、mを一様分布乱数値として、S(x XOR m)=S(x) XOR mであるように、前記最初のサブスティテューションボックスSをマスクすることによって、第1のランダム化されたサブスティテューションボックスSを生成することができる。
次いで、暗号デバイスの処理システムは、iを{1,..N-1}に含まれる整数として、i番目のランダム化またはトランスランダム化されたサブスティテューションボックスSの任意の入力値xについて、Si+1[x]=S[x xor (m2i-1 xor m2(i+1)-1)]xor(m2i xor m2i+2)であるように、i=1のときにi番目のランダム化された、またはi>1のときにトランスランダム化されたサブスティテューションボックスSから、および複数のマスクm2i-1、m2(i+1)-1、m2i、およびm2i+2から、(i+1)番目のトランスランダム化されたサブスティテューションボックスSi+1の生成のステップを反復的にN-1回行うことによって、N番目のサブスティテューションボックスSを第1のランダム化されたサブスティテューションボックスSから生成することができる。
最後に、暗号デバイスの処理システムは、最初のサブスティテューションボックスSの代わりに、N番目のトランスランダム化されたサブスティテューションボックスSを用いてブロック暗号暗号化を行うことができる。
マスクされたSBOX Sについてのマスクとして用いられる入力マスクm2i-1および出力マスクm2iのセット(m2i-1,m2i)であるRに留意しよう。最初のマスクされていないSBOX Sからまたはトランスランダム化によってブロック暗号暗号化が行われるときに、およびマスクされたSBOX算出が行われるときに、攻撃者がサイドチャネル解析攻撃を行うことができると仮定すると、そのような攻撃者は:
- ブロック暗号暗号化の解析から、RでマスクされたxまたはS(x)に関する漏洩を、
- マスクされたSBOX Sを算出する任意のトランスランダム化から、Ri-1 xor Rに関する漏洩を、
- および最初のSBOXのマスキング、すなわち、Sの算出の解析から、Rに関する漏洩を
得る。
マスクされたSBOX Sのそのようなトランスランダム化算出は、Ri-1 xor Rに関する情報だけを漏洩するやり方で行われるものとする。それは、例えば、Ri-1またはRのマスクだけを用いた中間計算を行うことによって、Ri-1だけまたはRだけに関する情報を漏洩させないものとする。例えば、暗号デバイスの処理システムは、トランスランダム化されたSBOXの値に関する「xor (m2i xor m2i+2)」演算を行うために、m2iに関する漏洩を防ぐために第1の「xor m2i」を行わないものとする。
したがって、xまたはS(x)に関する情報を得るために、攻撃者は、N+1個の漏洩を:ブロック暗号暗号化、全ての(N-1)個のトランスランダム化演算、および最初のSBOXのマスキングから、組み合わせなければならない。
一実施形態では、防護のレベルは、ブロック暗号暗号化演算を行う前に、行われるトランスランダム化演算数、すなわち、Nの値をオンザフライで(on-the-fly)選択することによって、演算の特定の内容に合うように適合され得る。
代替実施形態では、全ての必要とされるm xor mj+2の値(jは整数である)は、事前計算され、暗号デバイス101のコンピュータ可読メモリ回路に記憶され、トランスランダム化演算を行うときに暗号デバイスの処理システムによって後で使用され得る。
AESまたはDESブロック暗号などの暗号プロセスは、いくつかの暗号化ラウンドを行う。そのようなプロセスをセキュアにするために、トランスランダム化は、プロセスの第1の暗号化ラウンドを行う前に行われてもよい。
iを{1,..N-1}に含まれる整数として、第1のラウンドについてのi番目のトランスランダム化されたサブスティテューションボックスSBOXであるS(1,i)、ならびに第1のラウンドSの第1のランダム化されたSBOXについてマスクとして使用される入力/出力マスクのセット(m,m)であるR1,0、および第1のラウンドS(1,i)についてのi番目のトランスランダム化されたサブスティテューションボックスSBOXについてのマスクとして使用される入力マスクm1,iおよび出力マスクm’1,iのセット(m1,i,m’1,i)であるR1,iに留意しよう。
第1の態様によれば、本発明は、Nを所定の整数とするN次サイドチャネル攻撃から、暗号プロセスをセキュアにする方法であって、暗号デバイスのコンピュータ可読メモリ回路に記憶された最初のサブスティテューションボックスSを、複数の暗号化ラウンドにおいて使用し、図5に説明され、処理システムによって行われる以下の:
- 第1の初期化ステップE11中に、コンピュータ可読メモリ回路内で前記最初のサブスティテューションボックスSにアクセスするステップと、
- 第2の初期化ステップE12中に、最初のサブスティテューションボックスSの任意の入力値xについて、m、mを一様分布乱数値として、S(x XOR m)=S(x) XOR mであるように、前記最初のサブスティテューションボックスSをマスクすることによって、第1のランダム化されたサブスティテューションボックスSを生成するステップと、
- 第3の初期化ステップE13中に、第1のトランスランダム化されたサブスティテューションボックスS(1,1)の任意の入力値xについて、S(1,1)[x]=S[x xor(m xor m1,1)]xor(m xor m’1,1)であるように、第1のランダム化されたサブスティテューションボックスSから、およびマスクm1,1、m’1,1から、第1のトランスランダム化されたサブスティテューションボックスS(1,1)を生成するステップと、
- 第4の初期化ステップE14中に、iを{2,..N-1}に含まれる整数として、i番目のトランスランダム化されたサブスティテューションボックスS(1,i)の任意の入力値xについて、S(1,i)[x]=S(1,i-1)[x xor (m1,i-1 xor m1,i)]xor(m’1,i-1 xor m’1,i)であるように、i-1番目のトランスランダム化されたサブスティテューションボックスS(1,i-1)から、および複数のマスクm1,i、m’1,i、m1,i-1、m’1,i-1から、i番目のトランスランダム化されたサブスティテューションボックスS(1,i)の生成のステップを反復的にN-2回行うことによって、N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)を第1のトランスランダム化されたサブスティテューションボックスS(1,1)から生成するステップと、
- 第5の初期化ステップE15中の暗号プロセスの少なくとも前記第1のラウンド中に、最初のサブスティテューションボックスSの代わりに、N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)を用いて暗号プロセスを行うステップと
を含む、方法に関する。
N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)は、暗号プロセスの全てのラウンドにおいて最初のサブスティテューションボックスSの代わりに使用されてもよい。
残念なことに、攻撃者は、いくつかのラウンドのブロック暗号暗号化からの漏洩を組み合わせる可能性がある。2つのブロック暗号暗号化ラウンドが、同じマスクされたSBOXで算出された場合、これら2つのラウンドからの漏洩を組み合わせる攻撃者は、暗号化プロセス全体の入力として使用される秘密値に関する情報を取り出すことができる。
したがって、攻撃者がいくつかのラウンドからの漏洩を組み合わせるときでも、この暗号プロセスがN次攻撃から防護され続けるために、SBOXマスキングは、プロセスの各新しいラウンドの前に変更されてもよい。そうするために、図5に示されるように、本発明によるトランスランダム化は、プロセスの各新しいラウンドの前に行われてもよい。
iを{1,..N-1}に含まれる整数として、r番目のラウンドについてのi番目のトランスランダム化されたサブスティテューションボックスSBOXであるS(r,i)、ならびに第1のラウンドSの第1のランダム化されたSBOXについてのマスクとして使用される入力/出力マスク(m,m)のセットであるR1,0、ならびにr番目のラウンドS(r,i)についてのi番目のトランスランダム化されたサブスティテューションボックスSBOXについてのマスクとして使用される入力マスクmr,iおよび出力マスクm’r,iのセット(mr,i,m’r,i)であるRr,iに留意しよう。
したがって、第1の態様による方法は、現ラウンドと呼ばれる、前記複数の暗号化ラウンドのうちの各ラウンドr、r>1を行うときに:
- 第1の暗号化後ステップE21中に、現ラウンドについての第1のランダム化サブスティテューションボックスS(r,1)の任意の入力値xについて、S(r,1)[x]=S(r-1,N-1)[x xor (mr-1N-1 xor mr,1)]xor(m’r-1N-1 xor m’r,1)であるように、現ラウンドrの前に行われた最後のラウンド(r-1)において、最初のサブスティテューションボックスSの代わりに使用されたN-1番目のトランスランダム化されたサブスティテューションボックスS(r-1,N-1)から、およびマスクmr,1、m’r,1から、現ラウンドrについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)を生成するステップと、
- 第2の暗号化後ステップE22中に、iを{2,..N-1}に含まれる整数として、現ラウンドについてのi番目のトランスランダム化されたサブスティテューションボックスS(r,1)の任意の入力値xについて、S(r,i)[x]=S(r,i-1)[x xor(mr,i-1 xor mr,i)]xor(m’r,i-1 xor m’r,i)であるように、現ラウンドrについてのi-1番目のトランスランダム化されたサブスティテューションボックスS(r,i-1)から、および複数のマスクmr,i、m’r,i、mr,i-1、m’r,i-1から、現ラウンドrについてのi番目のトランスランダム化されたサブスティテューションボックスS(r,i)の生成のステップを反復的にN-2回行うことによって、現ラウンドrについてのN-1番目のトランスランダム化されたサブスティテューションボックスS(r,N-1)を、現ラウンドrについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)から生成するステップと、
- 第3の暗号化後ステップE23中、暗号プロセスの前記現ラウンドrにおいて、最初のサブスティテューションボックスSの代わりに、N-1番目のトランスランダム化されたサブスティテューションボックスS(r,N-1)を使用するステップと
を含むこともできる。
攻撃者が、ブロック暗号暗号化が行われるときに、およびマスクされたSBOX算出がトランスランダム化によって行われるときに、サイドチャネル解析攻撃を行うことができると仮定すると、図5に示されるように、そのような攻撃者は:
- ラウンドrにおけるブロック暗号暗号化の解析から、Rr,N-1でマスクされたxまたはS(x)に関する漏洩、
- ラウンドrおよびr-1におけるブロック暗号暗号化の間に行われるトランスランダム化から、iを{2,...,N-1}として、(Rr-1,N-1 xor Rr,1)およびRr,i-1 xor Rr,iに関する漏洩、ならびに
- ラウンドr-1におけるブロック暗号暗号化の解析から、Rr-1,N-1でマスクされたxまたはS(x)に関する漏洩
を得る。
したがって、xまたはS(x)に関する情報を得るために、攻撃者は、N+1個の漏洩を:ラウンドrおよびr-1におけるブロック暗号暗号化から、ならびに中間で行われる全てのトランスランダム化演算から組み合わせなければならない。
結果として、そのような暗号デバイスによって防護されるブロック暗号アルゴリズムは、十分なトランスランダム化演算が各ブロック暗号計算間で行われる場合、入力データを複数のシェアに分割することを必要とさせず、およびメモリと処理パワーの両方の観点で限られたコストで、任意の次数のサイドチャネル攻撃から防護される。
第2の態様によれば、したがって、本発明は、少なくとも1つのコンピュータのメモリの中に直接ロード可能なコンピュータプログラム製品であって、前記製品がコンピュータ上で動かされるときに第1の態様による方法のステップを行うソフトウェアコード命令を含む、コンピュータプログラム製品にも関する。
第3の態様によれば、したがって、本発明は、少なくとも1つのハードウェアプロセッサを有する処理システムを備えた暗号デバイスによって実行されるときに、第1の態様による方法を実行する実行可能なコンピュータコードを記憶する、非一時的なコンピュータ可読媒体にも関する。
第4の態様によれば、したがって、本発明は:
- 第1の態様による方法のステップを実行するように構成された少なくとも1つのハードウェアプロセッサを有する処理システム201と、
- 前記サブスティテューションボックスを記憶するために構成されたコンピュータ可読メモリ回路203、204、205と
を備えた暗号デバイス101にも関する。

Claims (9)

  1. Nを所定の整数とするN次サイドチャネル攻撃から、暗号プロセスをセキュアにする方法であって、少なくとも1つのハードウェアプロセッサを有する処理システムを含む暗号デバイス(101)のコンピュータ可読メモリ回路に記憶された最初のサブスティテューションボックスSを、複数の暗号化ラウンドにおいて使用し、処理システムによって行われる、
    コンピュータ可読メモリ回路内で前記最初のサブスティテューションボックスSにアクセスするステップ(E11)と、
    最初のサブスティテューションボックスSの任意の入力値xについて、m、mを一様分布乱数値として、S(x XOR m)=S(x) XOR mであるように、前記最初のサブスティテューションボックスSをマスクすることによって、第1のランダム化されたサブスティテューションボックスSを生成するステップ(E12)と、
    第1のトランスランダム化されたサブスティテューションボックスS(1,1)の任意の入力値xについて、S(1,1)[x]=S[x xor(m xor m1,1)]xor(m xor m’1,1)であるように、第1のランダム化されたサブスティテューションボックスSから、およびマスクm1,1、m’1,1から、第1のトランスランダム化されたサブスティテューションボックスS(1,1)を生成するステップ(E13)と、
    iを{2,..N-1}に含まれる整数として、i番目のトランスランダム化されたサブスティテューションボックスS(1,i)の任意の入力値xについて、S(1,i)[x]=S(1,i-1)[x xor (m1,i-1 xor m1,i)]xor(m’1,i-1 xor m’1,i)であるように、i-1番目のトランスランダム化されたサブスティテューションボックスS(1,i-1)から、および複数のマスクm1,i、m’1,i、m1,i-1、m’1,i-1から、i番目のトランスランダム化されたサブスティテューションボックスS(1,i)の生成のステップを反復的にN-2回行うことによって、N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)を第1のトランスランダム化されたサブスティテューションボックスS(1,1)から生成するステップ(E14)と、
    暗号プロセスの少なくとも前記第1のラウンドにおいて、最初のサブスティテューションボックスSの代わりに、N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)を用いて暗号プロセスを行うステップ(E15)と
    を含み、
    前記マスクは一様分布乱数値であり、「XOR」はブール排他的論理和演算であり、(m,m)から(m,m)へのサブスティテューションボックスSの前記演算「トランスランダム化」は、i、j、kおよびlを{2,..N-1}に含まれる整数として、前記マスクmおよびmでマスクされた前記サブスティテューションボックスSから、トランスランダム化されたサブスティテューションボックスと呼ばれる前記マスクmおよびmでマスクされた前記サブスティテューションボックスSを算出することにある、方法。
  2. N-1番目のトランスランダム化されたサブスティテューションボックスS(1,N-1)は、暗号プロセス全てのラウンドにおいて最初のサブスティテューションボックスSの代わりに使用される、請求項1に記載の方法。
  3. 現ラウンドと呼ばれる、前記複数の暗号化ラウンドのうちの各ラウンドr、r>1を行うときに、
    現ラウンドについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)の任意の入力値xについて、S(r,1)[x]=S(r-1,N-1)[x xor (mr-1N-1 xor mr,1)]xor(m’r-1N-1 xor m’r,1)であるように、現ラウンドrの前に行われた最後のラウンド(r-1)において、最初のサブスティテューションボックスSの代わりに使用されたN-1番目のトランスランダム化されたサブスティテューションボックスS(r-1,N-1)から、およびマスクmr,1、m’r,1から、現ラウンドrについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)を生成するステップ(E21)と、
    iを{2,..N-1}に含まれる整数として、現ラウンドについてのi番目のトランスランダム化されたサブスティテューションボックスS(r,1)の任意の入力値xについて、S(r,i)[x]=S(r,i-1)[x xor(mr,i-1 xor mr,i)]xor(m’r,i-1 xor m’r,i)であるように、現ラウンドrについてのi-1番目のトランスランダム化されたサブスティテューションボックスS(r,i-1)から、および複数のマスクmr,i、m’r,i、mr,i-1、m’r,i-1から、現ラウンドrについてのi番目のトランスランダム化されたサブスティテューションボックスS(r,i)の生成のステップを反復的にN-2回行うことによって、現ラウンドrについてのN-1番目のトランスランダム化されたサブスティテューションボックスS(r,N-1)を、現ラウンドrについての第1のトランスランダム化されたサブスティテューションボックスS(r,1)から生成するステップ(E22)と、
    暗号プロセスの前記現ラウンドrにおいて、最初のサブスティテューションボックスSの代わりに、現ラウンドrについてのN-1番目のトランスランダム化されたサブスティテューションボックスS(r,N-1)を使用するステップ(E23)と
    を含む、請求項1に記載の方法。
  4. 暗号プロセスは、ブロック暗号アルゴリズムである、請求項1に記載の方法。
  5. ブロック暗号アルゴリズムは、高度暗号化標準(AES)アルゴリズム、データ暗号化標準(DES)、ブローフィッシュ、サーペント、Gostアルゴリズムのうちの1つである、請求項に記載の方法。
  6. メモリスクランブリングは、iを{1,..N-1}に含まれる整数として、ラウンドrにおいてトランスランダム化されたサブスティテューションボックスS(r,i)を生成するように行われる、請求項3に記載の方法。
  7. 少なくとも1つのコンピュータのメモリの中に直接ロード可能なコンピュータプログラム製品であって、前記製品がコンピュータ上で動かされるときに請求項1に記載の方法のステップを行うためのソフトウェアコード命令を含む、コンピュータプログラム製品。
  8. 少なくとも1つのハードウェアプロセッサを有する処理システムを備えた暗号デバイスによって実行されるときに、請求項1に記載の方法を行う実行可能なコンピュータコードを記憶する、非一時的なコンピュータ可読媒体。
  9. なくとも1つのハードウェアプロセッサ(201)を有する処理システムと、
    前記サブスティテューションボックスと、少なくとも1つのハードウェアプロセッサ(201)により、処理システムに請求項1に記載の方法を実行させるように構成されたコンピュータプログラムコードとを記憶するために構成されたコンピュータ可読メモリ回路(203、204、205)と
    を備えた、暗号デバイス(101)。
JP2019572084A 2017-06-28 2018-06-28 Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法 Active JP7076482B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP17305806.6 2017-06-28
EP17305806.6A EP3422176A1 (en) 2017-06-28 2017-06-28 Method for securing a cryptographic process with sbox against high-order side-channel attacks
PCT/EP2018/067421 WO2019002470A1 (en) 2017-06-28 2018-06-28 METHOD FOR SECURING A CRYPTOGRAPHIC PROCESS WITH SBOX AGAINST HIGH-ORDER LATERAL CHANNEL ATTACKS

Publications (2)

Publication Number Publication Date
JP2020527743A JP2020527743A (ja) 2020-09-10
JP7076482B2 true JP7076482B2 (ja) 2022-05-27

Family

ID=59982318

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019572084A Active JP7076482B2 (ja) 2017-06-28 2018-06-28 Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法

Country Status (6)

Country Link
US (1) US11256478B2 (ja)
EP (2) EP3422176A1 (ja)
JP (1) JP7076482B2 (ja)
KR (1) KR102413846B1 (ja)
ES (1) ES2890138T3 (ja)
WO (1) WO2019002470A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11218291B2 (en) * 2018-02-26 2022-01-04 Stmicroelectronics (Rousset) Sas Method and circuit for performing a substitution operation
FR3078464A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et circuit de mise en oeuvre d'une table de substitution
FR3078463A1 (fr) * 2018-02-26 2019-08-30 Stmicroelectronics (Rousset) Sas Procede et dispositif de realisation d'operations en table de substitution
DE102018107114A1 (de) * 2018-03-26 2019-09-26 Infineon Technologies Ag Seitenkanalgehärtete Operation
EP3957023B1 (en) * 2019-04-15 2022-10-19 Telefonaktiebolaget Lm Ericsson (Publ) Low depth aes sbox architecture for area-constraint hardware
JP7314108B2 (ja) * 2020-08-27 2023-07-25 株式会社東芝 暗号処理装置、暗号処理方法およびプログラム
CN113922943B (zh) * 2021-09-29 2023-09-19 哲库科技(北京)有限公司 Sbox电路、运算方法及电子设备
CN114048472B (zh) * 2022-01-17 2022-06-24 浙江大学 基于线性码掩码和位切片技术的抗旁路攻击的防御方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519527A (ja) 2002-03-07 2005-06-30 アクサルト・エス・アー 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
JP2012516068A (ja) 2009-01-20 2012-07-12 インスティテュート テレコム−テレコム パリ テック 高次の観測攻撃から保護される暗号回路
JP2013029835A (ja) 2011-07-26 2013-02-07 Crocus Technology Sa サイドチャネル攻撃に対抗する方法
JP2013511057A (ja) 2009-11-13 2013-03-28 インスティテュート テレコム−テレコム パリ テック カスタマイズされたマスキングによって保護される低複雑度の電子回路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7142670B2 (en) * 2001-08-14 2006-11-28 International Business Machines Corporation Space-efficient, side-channel attack resistant table lookups
US7403620B2 (en) * 2002-07-02 2008-07-22 Stmicroelectronics S.A. Cyphering/decyphering performed by an integrated circuit
US8296577B2 (en) * 2004-06-08 2012-10-23 Hrl Laboratories, Llc Cryptographic bus architecture for the prevention of differential power analysis
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
WO2009072547A1 (ja) * 2007-12-05 2009-06-11 Nec Corporation サイドチャネル攻撃耐性評価装置、方法及びプログラム
FR2985624B1 (fr) * 2012-01-11 2014-11-21 Inside Secure Procede de chiffrement protege contre des attaques par canaux auxiliaires
US20160105276A1 (en) * 2014-10-10 2016-04-14 Qualcomm Incorporated Rotation-based cipher
FR3040513B1 (fr) * 2015-09-02 2018-11-16 Stmicroelectronics (Rousset) Sas Protection d'un algorithme de rijndael
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
FR3040515B1 (fr) * 2015-09-02 2018-07-27 St Microelectronics Rousset Verification de la resistance d'un circuit electronique a des attaques par canaux caches
US10461925B2 (en) * 2016-09-01 2019-10-29 Cryptography Research, Inc. Hardware masked substitution box for the data encryption standard

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005519527A (ja) 2002-03-07 2005-06-30 アクサルト・エス・アー 秘密鍵を伴う電子暗号アセンブリを安全に守る方法
JP2012516068A (ja) 2009-01-20 2012-07-12 インスティテュート テレコム−テレコム パリ テック 高次の観測攻撃から保護される暗号回路
JP2013511057A (ja) 2009-11-13 2013-03-28 インスティテュート テレコム−テレコム パリ テック カスタマイズされたマスキングによって保護される低複雑度の電子回路
JP2013029835A (ja) 2011-07-26 2013-02-07 Crocus Technology Sa サイドチャネル攻撃に対抗する方法

Also Published As

Publication number Publication date
EP3422176A1 (en) 2019-01-02
EP3646165A1 (en) 2020-05-06
KR20200022018A (ko) 2020-03-02
EP3646165B1 (en) 2021-08-04
US20200125333A1 (en) 2020-04-23
ES2890138T3 (es) 2022-01-17
KR102413846B1 (ko) 2022-06-27
US11256478B2 (en) 2022-02-22
WO2019002470A1 (en) 2019-01-03
JP2020527743A (ja) 2020-09-10

Similar Documents

Publication Publication Date Title
JP7076482B2 (ja) Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法
US11362802B2 (en) Cryptographic device arranged to compute a target block cipher
KR101680918B1 (ko) 특히 고차의 관측 공격에 대해 보호되는 암호화 회로
CN107005404B (zh) 实现密码算法的可执行的白盒掩码实施的处理器装置
JP5892887B2 (ja) サイドチャネル攻撃に対抗する方法
CN106487497B (zh) 对rijndael算法的dpa保护
CN106487499B (zh) Rijndael算法的保护
EP3667647A1 (en) Encryption device, encryption method, decryption device, and decryption method
WO2017173136A9 (en) Key update for masked keys
US8958556B2 (en) Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component
EP3651142A1 (en) Encryption device, encryption method, decryption device, and decryption method
KR102327771B1 (ko) 테이블 기반 구현에서의 차수 2 이상의 dca 공격에 대응하는 방법
US11070358B2 (en) Computation device and method
EP3286869B1 (en) High-speed aes with transformed keys
CN111602367B (zh) 用于保护在使白盒密码算法安全的对策中使用的熵源的方法
WO2017114601A1 (en) Method for protecting the use of a cryptographic key in two different cryptographic environments
US20200382271A1 (en) Methods for implementing and obfuscating a cryptographic algorithm having a given secret key
US20240064002A1 (en) Method for securing an execution of a cryptographic process
US20210367754A1 (en) Computing device processing expanded data
CN116094715A (zh) 加密数据的方法及相关产品

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210316

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220118

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220517

R150 Certificate of patent or registration of utility model

Ref document number: 7076482

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150