JP2013029835A - サイドチャネル攻撃に対抗する方法 - Google Patents

サイドチャネル攻撃に対抗する方法 Download PDF

Info

Publication number
JP2013029835A
JP2013029835A JP2012164539A JP2012164539A JP2013029835A JP 2013029835 A JP2013029835 A JP 2013029835A JP 2012164539 A JP2012164539 A JP 2012164539A JP 2012164539 A JP2012164539 A JP 2012164539A JP 2013029835 A JP2013029835 A JP 2013029835A
Authority
JP
Japan
Prior art keywords
function
adr
memory
variable
address
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
Application number
JP2012164539A
Other languages
English (en)
Other versions
JP5892887B2 (ja
Inventor
Coron Jean-Sebastien
ジャン−セバスチャン・コロン
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.)
Crocus Technology SA
Original Assignee
Crocus Technology 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 Crocus Technology SA filed Critical Crocus Technology SA
Publication of JP2013029835A publication Critical patent/JP2013029835A/ja
Application granted granted Critical
Publication of JP5892887B2 publication Critical patent/JP5892887B2/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]
    • 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
    • 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
    • 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)
  • Storage Device Security (AREA)

Abstract

【課題】
本発明は、サイドチャネル攻撃に対抗する方法に関する。当該方法は、中間変数をマスクするためのブロック暗号アルゴリズムを実行することから成り、このブロック暗号アルゴリズムは、1つ以上の非線形関数を有する。
【解決手段】
この課題は、前記1つ以上の非線形関数のうちの少なくとも1つの非線形関数が、マッチ・イン・プレース関数を使用して実行されることによって解決される。
【選択図】 図1

Description

本発明は、ブロック暗号に対するサイドチャネル攻撃に対抗する方法及び限定的でないものの、特にマッチ・イン・プレース(登録商標)関数を使用する対抗の方法に関する。
最も広く使用されるアルゴリズム「新暗号規格(AES)」のような、今日使用される多くの存在する暗号アルゴリズムは、差分電力解析(DPA)に対して脆弱である。この差分電力解析は、サイドチャネル攻撃である。このサイドチャネル攻撃は、暗号化用の暗号化アルゴリズムで使用される秘密鍵をリカバーするために最初に暗号化アルゴリズムを実行するときのマイクロプロセッサの電力消費を測定し、次いで統計解析を実行する。秘密鍵が特定されると、暗号化された情報を復号することが可能である。
マイクロプロセッサの電磁放射が、暗号化用の暗号化アルゴリズムで使用される秘密鍵を特定するために測定されて利用されてもよい。
差分電力解析に対して秘密鍵アルゴリズムを保護するための通常技術は、全ての中間変数をランダムマスクでマスクすることから成る。このとき、当該マスクされたデータ及びランダムデータが、別々に処理され、結局は当該秘密鍵アルゴリズムの最後で再結合される。単一地点でマイクロプロセッサの電力消費を解析することを試みる攻撃者が、ランダム値(ランダムデータ値及びランダムマスク値)を取得する。したがって、このようなマスキングは、1次差分電力解析に対して安全である。
マスキング対抗手段は、付与された攻撃されやすい変数を保護するために使用されるランダムマスクの数を特徴とする。d個のランダムマスクを有するランダム処理は、d次マスキングと呼ばれる。d次マスキングは、(d+1)次のサイドチャネル解析、つまりd+1個の変数の処理を同時に要求する攻撃によってだけ破壊され得る。当該対抗手段を破壊するために要求される実行数は、次数dと共に指数関数的に増大する。したがって、この次数dは、良好な安全規準である。しかしながら、実際には、最も効率のいい対抗手段は、次数d=1だけである。
マスクされたデータを復号するための2次差分電力解析攻撃が可能であることが分かっている。したがって、完全に安全なデータ暗号化を得るためには、より良好な対抗手段が要求される。
対抗手段が、さらに発展されている。サイドチャネル攻撃に対する最近の対抗手段のうちの1つの対抗手段は、次数d=2による対抗手段である。
あらゆるマスキング対抗手段にとって、その主な困難性は、アルゴリズムの非線形部分を保護することである。新暗号規格(AES)にとって、当該アルゴリズムの非線形部分は、本質的にSBOX関数である。使用される技術は、サブルーチンとして実行される比較アルゴリズムを使用して全体のSBOX関数をSBOXのルックアップごとに繰り返すことにある。この比較アルゴリズムは、SBOX入力ごとに呼び出される。当該対抗手段が、あらゆる2次サイドチャネル攻撃に耐え得ることを示すことが可能である。
しかしながら、このようなマスキング対抗手段は、効率が著しく良くない。何故なら、このマスキング手段は、実行中に多数の演算を要求し、実行中にマイクロプロセッサの多くのメモリをも使用するからである。
本発明の課題は、上述した欠点のうちの少なくとも幾つかの欠点を解消又は緩和することにある。
この課題は、本発明により、サイドチャネル攻撃に対する対抗手段の方法によって解決される。この方法は、中間変数をマスクするためのブロック暗号アルゴリズムを実行することから成る。この場合、1つ以上の非線形関数を有する当該ブロック暗号アルゴリズムは、当該非線形関数のうちの少なくとも1つの非線形関数が、マッチ・イン・プレース関数を使用して実行される。
本発明の方法は、この方法の効率を向上させるためにマッチ・イン・プレース関数を使用する。マッチ・イン・プレース関数を使用すると、サイドチャネル攻撃に対して有効な対抗手段を提供するために要求される演算回数が削減される。さらに、本発明の方法を実施するために要求されるメモリが、既知の方法に比べて少ない。
当該マッチ・イン・プレース関数は、ビットをランダム化したマッチ・イン・プレース関数でもよい(MIP(data; adr,b))。
当該ビットをランダム化したマッチ・イン・プレース関数は:
Figure 2013029835
として定義されてもよい。
この場合、adrは、メモリ内の1つのアドレスである。dataは、メモリ内の1つのアドレスに記憶される1つの変数である。bは、このdataの変数がメモリ内のこのアドレスに存在する実際のデータに等しいときに戻される1つの値である。このdataの変数がメモリ内のこのアドレスに存在する実際のデータに等しくないときは、bの補数が戻される。bは、1ビットの値でもよい。
以下の関係が、存在してもよい:
Figure 2013029835
この場合、
Figure 2013029835
は、bの補数である。
非線形関数のうちの少なくとも1つの関数は:
Figure 2013029835
によって定義されるcompareb関数でもよい。
この場合、xは、compareb関数の第1入力変数である。yは、compareb関数の第2入力変数である。bは、xがyに等しいときに戻される1つの値である。その結果:
変数xをメモリ内の1つのアドレスadrに書き込み、
Figure 2013029835
によって定義されたビットをランダム化したマッチ・イン・プレース関数を実行し、そしてMIP(y; adr,b)を戻すことによって、compareb関数が実行され得る。
当該非線形関数は、SubByte演算部内に含まれてもよい。この非線形関数は、AES暗号アルゴリズムのSubByte演算部内に含まれてもよい。
さらに、本発明のブロック暗号アルゴリズムは、1つ以上の線形関数を有してもよい。当該1つ以上の線形関数のうちの少なくとも1つの線形関数が、この線形関数のXORをとる変数によってマスクされてもよい。
当該ブロック暗号アルゴリズムは、新暗号規格(AES)のアルゴリズムでもよい。
本発明のさらなる側面によれば、上述した方法のうちの任意の1つの方法による方法を実行するために構成されているコンピュータプログラムから成るコンピュータ読み取り可能媒体が提供される。
本発明のさらなる側面によれば:
Figure 2013029835
のステップから成る、2次マスクされた入力から2次マスクされたSボックス関数を計算する方法が提供される。
この場合、bは、1つのレジスタを指し示す1つのランダムビットを示す1つの変数である。aは、ステップ(a)−(c)が実行されなければならない回数を定義する1つのインデックスを示す1つの変数である。r,rは、一対の入力マスクである。
Figure 2013029835
は、マスクされた1つの値である。
この場合、
Figure 2013029835
である。
,sは、一対の出力マスクである。adrは、自由なメモリアドレスである。cmpは、1つのレジスタを指し示す1つのビット変数であり且つ関数MIP(r; adr; b)の1つの出力である。Rcmpは、マイクロプロセッサの1つのレジスタの1つのレジスタアドレスである。一般に、このマイクロプロセッサ内の少なくとも2つのレジスタR及びRが使用される(つまり、cmpは、0又は1であり得る。cmp=0のときに、第1レジスタRが指し示される/アドレス付けされる。cmp=1のときに、第2レジスタRが指し示される/アドレス付けされる。)。Rは、マイクロプロセッサの1つのレジスタの1つのレジスタアドレスである。一般に、このマイクロプロセッサ内の少なくとも2つのレジスタR及びRが使用される(つまり、bは、0又は1であり得る。b=0のときに、レジスタRが指し示される/アドレス付けされる。b=1のときに、レジスタRが指し示される/アドレス付けされる。)。MIP(r; adr; b)は:
Figure 2013029835
として定義されるビットをランダム化したマッチ・イン・プレース関数である。
本発明のさらなる側面によれば、2次マスクされたSボックス関数を計算する上述した方法を実行するために構成されているコンピュータプログラムから成るコンピュータ読み取り可能媒体が提供される。
本発明は、例示され且つ図面によって示された1つの実施の形態の説明によってより良好に理解される。
AES暗号用の疑似コードを示す。 AES暗号用の疑似コードを示す。 メモリ転送(プリプロセッサフェーズ)の数、XORの数、メモリ転送(メインフェーズ)の数、及びcompareb関数を最初に実行するために要求されるメモリとcompareb関数を実行するために要求されるメモリとの数から成る本発明のテーブルを示す。 XORの数、メモリ転送の数、及びcompareb関数を実行するための本発明の方法を使用する完全な第2Rivain-Dottax-Prouff(RDP2)アルゴリズムに対して要求されるメモリから成るテーブルを示す。
AES暗号アルゴリズムにおける本発明の方法の用途を詳しく説明する。しかしながら、本発明の方法は、AES暗号アルゴリズムで使用することに限定されないことが理解される。本発明の方法は、ブロック暗号アルゴリズムで使用され得る。
AES暗号アルゴリズムは、「ステート」と呼ばれるバイトsi,jの4x4アレイで動作する。暗号化のため、(最後のサブパート以外の)AES暗号アルゴリズムの各サブパートが、以下の4つのステージから成る:
1.AddRoundKey:ステートの各バイトが、鍵スケジュール:
Figure 2013029835
から導かれるラウンド鍵ki,jでXORをとられる。
2.SubBytes:ステートの各バイトが、8ビットのSボックス関数:
Figure 2013029835
を使用して更新される。
Sボックス関数は:
Figure 2013029835
として定義される。
この場合、Affは、GF(2)上のアフィン関数であり、
Figure 2013029835
は、(0→0による)GF(2)上の逆関数である。
3.ShiftRows:ステートのバイトが、特定のオフセットによって行ごとに周期的にシフトされる。最初の行が変更されないままである。
4.MixColumns:ステートのバイトが、以下のコラム:
Figure 2013029835
による変更されるコラムである。
128ビットキーによるAES暗号用の疑似コードが、図1中に示されている。ワードアレイ「W」が、鍵スケジュールアルゴリズムによって生成されるラウンド鍵(ki,j)を有する。
暗号化のため、(最後の鍵以外の)いずれのラウンド鍵が、以下の演算から成る:
1.InvShiftRowsは、ShiftRows演算(暗号化のステージ3)の逆である。ステートのバイト(段落[0026]中で定義されているような、AES暗号で使用される一組の中間変数)が、特定のオフセットによって行ごとに周期的にシフトされる。当該バイトの最初の行が変更されないままである。
2.InvSubBytesは、SubBytes演算(暗号化のステージ2)の逆である。Sボックスの逆関数(S−1):
Figure 2013029835
が、このステートの各バイトに適用される。
3.AddRoundKey:この演算は、この演算自体の逆に等しい。
4.InvMixColumnsは、MixColumns演算(暗号化のステージ4)の逆である。このステートのバイトが、以下のコラム:
Figure 2013029835
による変更されたコラムである。
逆暗号用の疑似コードが、図2中に示されている。
最後に、ラウンド鍵スケジュール(ki,j)が、以下の演算に基づく:
1.SubWordが、1つの4バイト入力ワードをとり、Sボックス(S(x))を4バイトの各々に対して適応させる。
2.RotWordは、入力として1ワード[a;a;a;a]をとり、[a;a;a;a]を戻すための周期的な置換を実行する。
3.Xor with Rconは、入力として32ビットの1ワード及びxorをとり、このxorは、ラウンド定数ワードアレイRcon[i]=[(02)i−1;00;00;00]、ラウンド1≦i≦10を伴う。我々は、鍵スケジュールの全ての記術に対して[5]を引用する。
冒頭で説明したように、マスキング対抗手段の原理は、あらゆる中間変数を1つ以上のランダムマスクでマスクすることである。次数d=2によるマスキング対抗手段の場合、2つのマスクが使用される。これらのマスクは、全体で3つのシェアを与える。さらに詳しく言うと、(AESでは1バイトとして示される)任意の状態変数pが、3つのシェア(p;p;p)に分割される:
Figure 2013029835
この場合、シェアp及びpは、マスクと呼ばれる。
先の関係が、暗号化アルゴリズムの実行にわたって保持されるように、3つのシェアp、p及びpが処理されなければならない。留意すべきは、
Figure 2013029835
のように、ラウンド鍵のあらゆるバイトkが、同様に3つのシェア(k;k;k)に分割されなければならない点である。
ブロック暗号の線形部分は処理しやすい。以下の方程式(1)が成立する場合、関数fが線形であると言える:
Figure 2013029835
このとき、このような線形関数に対して:
Figure 2013029835
のような、3つのシェア(p;p;p)が入力として与えられた場合、f(p)、f(p)及びf(p)を別々に計算し、方程式(1)を立てて:
Figure 2013029835
を得ることで十分である。
したがって、3つの出力シェアf(p)、f(p)及びf(p)が、出力f(p)の有効な分割である。AES暗号に対しては、AddRoundKey、ShiftRows及びMixColumnsの演算が、線形関数であり、したがって当該方法で処理され得る。しかしながら、(AESの場合のSボックス関数のような)SubByte演算は、非線形であり、異なって処理されなければならない。
AESの場合のSボックス関数のような非線形演算を処理するため、アルゴリズムが、以下のように定義され得る:
Figure 2013029835
留意すべきは、AESに対してはn=m=8である点である。このアルゴリズムは、好ましくは以下のように定義されたマスクされた関数comparebを有する:
Figure 2013029835
この場合、x及びyは、compareb関数の入力変数である。
2次のマスクされた入力から2次のマスクされたSボックス関数を計算することは、以下のように実行されてもよい:
入力: マスクされた1つの値は、
Figure 2013029835
である。この場合、r;rは、一対の入力マスクである。
Figure 2013029835
は、一対の出力マスクである。
出力: 当該マスクされたSボックス関数が、
Figure 2013029835
を出力する。
Figure 2013029835
この場合、
Figure 2013029835
は、compareb関数の入力変数である。
Figure 2013029835
の場合、
Figure 2013029835
である。このcmpは、
Figure 2013029835
を要求されたものとして与える。
この特別な実施の形態では、当該compareb関数を実行するときは中止しなければならない。すなわち、compareb(x;y)関数は、好ましくは
Figure 2013029835
を直接計算することによって実行されてはならない。何故なら、上記アルゴリズムでは、当該計算は、
Figure 2013029835
を計算することに等しいからである。
Figure 2013029835
と組み合わせられた
Figure 2013029835
は、2次を漏洩させる。
Figure 2013029835
に関する任意の1次サイドチャネル漏洩を阻止するためのcompareb関数を実行する方法を説明する。
compareb関数を再度示すと:
Figure 2013029835
として定義される。
当該compareb関数を実行する方法は、ランダムアクセスメモリ内の2個のビットのテーブルTを要求する。このテーブルTは、以下のように予備処理される:
Figure 2013029835
この予備処理が、予備処理ステップを完了させる。
この予備処理の最後に、テーブルTが:
Figure 2013029835
を満たす。
このとき、compareb関数は:
Figure 2013029835
のように実行される。
この場合、計算中の全ての中間変数が、
Figure 2013029835
から独立している。このことは、
Figure 2013029835
に関する任意の1次サイドチャネル漏洩を阻止する。
compareb関数の上述した実行は、従来の技術において知られている。不都合にも、このcompareb関数の上述した実行は、非効率である。このcompareb関数のアルゴリズムは、ランダムアクセスメモリの2個のビットを要求する。しかしながら、実際には、ランダムアクセスメモリの2個のバイトを使用することが、より便利である。何故なら、さもなければ、ビットアクセス技術が使用される必要があり、このビットアクセス技術は、安全に実行するためには煩わしいからである。予備処理が、2+1個のメモリ転送を要求する。このような予備処理は、RDP2アルゴリズムに対する全ての呼び出し前に実行されなければならない。このとき、compareb関数に対する全ての呼び出しが、2つのXOR演算及び1つのメモリ転送を要求する。したがって、n=8によるAESに対しては、このcompareb関数が、予備処理中にランダムアクセスメモリの256バイト及び257回のメモリ転送を要求する。全体では、このときに、RDP2アルゴリズムは、6・2個のXOR演算と、3・2+1個のメモリ転送と、n+1個のランダムビットの生成とを要求する。
本発明による方法は、compareb関数の異なる実行に基づき、特にマッチ・イン・プレース関数を使用する実行に基づく。
あらゆるプロセッサが、メモリ内の或るアドレスadrの或るデータを読み書きする通常の命令data←read(adr)及びwrite(data; adr)を有する。マッチ・イン・プレース技術では、プロセッサが、以下のように作用する追加の関数MIP(data; adr)を有する:
Figure 2013029835
換言すれば、データが、当該メモリ位置adrで適合され、このアドレスadrの値が、このメモリ位置から決して離れない。
本発明では、以下のように定義された、MIP関数のビットをランダム化したバージョンである追加の関数MIPが提供される:
Figure 2013029835
好ましくは、以下の関係が存在する:
Figure 2013029835
当該MIP関数を使用すると、compareb関数が、以下のように簡単に実行され得る。この場合、adrは、メモリ内の自由な1つのアドレスである。
Figure 2013029835
xが、メモリ内のアドレスadrに書き込まれると、compareb関数によって要求されるように、MIP(y; adr; b)関数が、x=yのときにbを戻し、x≠yのときに
Figure 2013029835
を戻す。
当該MIP関数を使用すると、2次のマスクされた入力から2次のマスクされたSボックス関数を計算することが以下のようになる:
入力: マスクされた値
Figure 2013029835
、一対の出力マスクs
Figure 2013029835
、自由な1つのメモリアドレスadr。
出力: マスクされたSボックス関数の出力
Figure 2013029835
Figure 2013029835
MIP関数に基づく当該MIP関数の実行が、当初のcompareb関数と同じ特性を満たす。すなわち、全ての中間変数が、
Figure 2013029835
に依存しない。
留意すべきは、ランダム化された関数MIP(y; adr; b)が好ましい点である。この代わりに、関数MIP(y; adr)が、(最初にMIP(y; adr)を計算し、次いで)
Figure 2013029835
を戻すことによって)使用される場合は、当該実行は不安定である。何故なら、中間変数MIP(y; adr)が、
Figure 2013029835
から独立していないからである。
図3は、compareb関数の当初の実行の効率と本発明による(つまり、MIP関数を使用する)compareb関数の実行の効率とを比較するテーブルを示す。本発明によるcompareb関数を実行するためには、より少ない演算及びより少ないランダムアクセスメモリで済むことが明らかである。
図4は、実行される当初のマスキングアルゴリズムの効率と本発明にしたがって実行される(つまり、MIP関数を使用する)マスキングアルゴリズムの効率とを比較するテーブルを示す。n=8によるAESに対しては、本発明は、(2の代わりに)ランダムアクセスメモリの1バイト、(1536の代わりに)1024回のXOR及び(769の代わりに)512回のメモリ転送を要求する。XOR及びメモリ転送が、同じコストを有する場合、本発明のバリエーションは、当初の実行より33%速い。したがって、同じ水準の安全性に対しては、本発明は、より少ないランダムアクセスメモリで済むより速い対抗手段を提供する。
特許請求の範囲で規定されたような本発明の範囲から離れることなしに、本発明の説明された実施の形態に対する様々な変更及びバリエーションが、当業者にとって明白である。本発明は、特定の好適な実施の形態に関連して説明されているものの、請求項に規定された本発明は、このような特定の実施の形態に不当に限定されるべきではないことが分かる。

Claims (11)

  1. サイドチャネル攻撃に対抗する方法であって、当該方法は、中間変数をマスクするためのブロック暗号アルゴリズムを実行することから成り、このブロック暗号アルゴリズムは、1つ以上の非線形関数を有する当該方法において、
    前記1つ以上の非線形関数のうちの少なくとも1つの非線形関数が、マッチ・イン・プレース関数を使用して実行される、ことを特徴とする方法。
  2. 前記マッチ・イン・プレース関数は、ビットをランダム化したマッチ・イン・プレース関数(MIP(data; adr,b))である、ことを特徴とする請求項1に記載の方法。
  3. 前記ビットをランダム化したマッチ・イン・プレース関数は:
    Figure 2013029835
    として定義され、
    adrは、1つのメモリ内の1つのアドレスであり、dataは、1つのメモリ内の1つのアドレスに記憶され得る1つの変数であり、bは、1つの値であり、この値は、前記dataがメモリ内の前記アドレスadrに存在する実際のデータに等しいときは戻され、前記dataがメモリ内の前記アドレスadrに存在する実際のデータに等しくないときは、bの補数が戻される、ことを特徴とする請求項2に記載の方法。
  4. Figure 2013029835
    Figure 2013029835
    は、bの補数である、ことを特徴とする請求項3に記載の方法。
  5. 前記少なくとも1つの非線形関数は:
    Figure 2013029835
    によって定義されたcompareb関数から成り、
    xは、前記compareb関数の第1入力変数であり、yは、前記compareb関数の第2入力変数であり、bは、xがyに等しいときに戻される1つの値であり、
    Figure 2013029835
    は、xがyに等しくないときに戻される1つの値である結果、
    メモリ内の1つのアドレスadrに前記変数xを書き込むことによって、
    Figure 2013029835
    として定義されたビットをランダム化したマッチ・イン・プレース関数を実行することによって、そしてMIP(y; adr,b)を戻すことによって、前記compareb関数が実行され得る、請求項2に記載の方法。
  6. 前記非線形関数は、SubByte演算中に構成される、請求項1に記載の方法。
  7. 前記ブロック暗号アルゴリズムは、1つ以上の線形関数をさらに有し、前記1つ以上の線形関数のうちの少なくとも1つの線形関数が、当該関数の変数のXORをとることによって暗号化される、請求項1に記載の方法。
  8. 前記ブロック暗号アルゴリズムは、新暗号規格(AES)のアルゴリズムである、請求項1に記載の方法。
  9. コンピュータプログラムから成るコンピュータ読み取り可能媒体において、
    前記コンピュータプログラムは、請求項1に記載の方法を実行するために構成されている、当該コンピュータ読み取り可能媒体。
  10. Figure 2013029835
    のステップから成る、2次のマスクされた入力から2次のマスクされたSボックス関数を計算する方法において、
    bは、1つのレジスタを指し示す1つのランダムビットを示す1つの変数であり、aは、ステップ(a)−(c)が実行されなければならない回数を規定する1つのインデックスを示す1つの変数であり、r,rは、一対の入力マスクであり、
    Figure 2013029835
    は、マスクされた1つの値であり、
    Figure 2013029835
    であり、s,sは、一対の出力マスクであり、adrは、自由な1つのメモリアドレスであり、cmpは、1つのレジスタを示し且つ関数MIP(r; adr; b)の1つの出力である1つのビット変数であり、Rcmp及びRはそれぞれ、1つのマイクロプロセッサの1つのレジスタのレジスタアドレスであり、
    前記MIP(r; adr; b)は:
    Figure 2013029835
    として定義されたビットをランダム化したマッチ・イン・プレース関数である、当該方法。
  11. コンピュータプログラムから成るコンピュータ読み取り可能媒体において、
    前記コンピュータプログラムは、請求項10に記載の方法を実行するために構成されている、当該コンピュータ読み取り可能媒体。
JP2012164539A 2011-07-26 2012-07-25 サイドチャネル攻撃に対抗する方法 Active JP5892887B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11290337 2011-07-26
EP11290337.2 2011-07-26

Publications (2)

Publication Number Publication Date
JP2013029835A true JP2013029835A (ja) 2013-02-07
JP5892887B2 JP5892887B2 (ja) 2016-03-23

Family

ID=47576770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012164539A Active JP5892887B2 (ja) 2011-07-26 2012-07-25 サイドチャネル攻撃に対抗する方法

Country Status (5)

Country Link
US (1) US8971526B2 (ja)
JP (1) JP5892887B2 (ja)
KR (1) KR20130012940A (ja)
CN (1) CN102904716A (ja)
RU (1) RU2586020C2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020527743A (ja) * 2017-06-28 2020-09-10 タレス・ディス・フランス・エス・ア Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3012234B1 (fr) * 2013-10-23 2017-02-24 Proton World Int Nv Protection de l'execution d'un algorithme contre des attaques par canaux caches
EP2884387B1 (en) * 2013-12-13 2016-09-14 Thomson Licensing Efficient modular addition resistant to side-channel attacks
KR20150123476A (ko) * 2014-04-25 2015-11-04 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
RU2715021C2 (ru) * 2014-12-22 2020-02-21 Конинклейке Филипс Н.В. Скрытие исполнения программы
CN106161005B (zh) * 2015-03-31 2019-05-07 北京南瑞智芯微电子科技有限公司 一种分组加密算法防攻击的掩码方法和装置
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
FR3040514B1 (fr) * 2015-09-02 2017-09-15 Stmicroelectronics Rousset Protection dpa d'un algorithme de rijndael
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
US10103873B2 (en) * 2016-04-01 2018-10-16 Intel Corporation Power side-channel attack resistant advanced encryption standard accelerator processor
EP3475825B1 (en) 2016-06-23 2023-01-25 Cryptography Research, Inc. Cryptographic operations employing non-linear share encoding for protecting from external monitoring attacks
US10256973B2 (en) * 2016-09-30 2019-04-09 Intel Corporation Linear masking circuits for side-channel immunization of advanced encryption standard hardware
CN108234107B (zh) * 2016-12-21 2022-11-22 国民技术股份有限公司 一种带仿射掩码的s盒变换方法及装置
EP3367606B1 (en) * 2017-02-24 2019-09-18 Secure-IC SAS Automatic insertion of masking into an algorithm
CN108809622B (zh) * 2018-06-15 2021-10-26 上海科技大学 一种抗功耗侧信道攻击对策验证方法
RU2738321C1 (ru) * 2018-09-20 2020-12-11 Общество с ограниченной ответственностью "Цифра" Способ криптографического преобразования и устройство для его осуществления
CN111339577B (zh) * 2020-02-12 2022-06-07 南京师范大学 一种具有优良dpa抗性s盒的构造方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007006184A (ja) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> 暗号処理装置及び認証アプリケーションプログラム
JP2008233683A (ja) * 2007-03-22 2008-10-02 Toshiba Corp 暗号処理装置及びプログラム
JP2009005164A (ja) * 2007-06-22 2009-01-08 Dainippon Printing Co Ltd 暗号処理装置,暗号処理プログラム及び暗号処理方法
US20110129084A1 (en) * 2009-09-29 2011-06-02 Thales Method of executing an algorithm for protecting an electronic device by affine masking and associated device

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7848514B2 (en) * 2004-05-24 2010-12-07 Research In Motion Limited Table masking for resistance to power analysis attacks
FR2893796B1 (fr) * 2005-11-21 2008-01-04 Atmel Corp Procede de protection par chiffrement
CN101578813A (zh) * 2007-01-11 2009-11-11 皇家飞利浦电子股份有限公司 跟踪实现的拷贝
US8615078B2 (en) * 2009-08-21 2013-12-24 Electronics And Telecommunications Research Institute Method and apparatus for processing F-function in seed encryption system
CN101938349A (zh) * 2010-10-01 2011-01-05 北京航空航天大学 一种适用于硬件实现的s盒及其电路实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007006184A (ja) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> 暗号処理装置及び認証アプリケーションプログラム
JP2008233683A (ja) * 2007-03-22 2008-10-02 Toshiba Corp 暗号処理装置及びプログラム
JP2009005164A (ja) * 2007-06-22 2009-01-08 Dainippon Printing Co Ltd 暗号処理装置,暗号処理プログラム及び暗号処理方法
US20110129084A1 (en) * 2009-09-29 2011-06-02 Thales Method of executing an algorithm for protecting an electronic device by affine masking and associated device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015017528; 中村俊吾,岩田哲: '2nd Orderサイドチャネル攻撃に対し安全でより効率的なS-boxの実装法' 2010年 暗号と情報セキュリティシンポジウム SCIS2010 [CD-ROM] Symposium on Cry , 20100119, p.1-p.6 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020527743A (ja) * 2017-06-28 2020-09-10 タレス・ディス・フランス・エス・ア Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法
JP7076482B2 (ja) 2017-06-28 2022-05-27 タレス・ディス・フランス・エス・ア Sboxを有する暗号プロセスを高次サイドチャネル攻撃からセキュアにする方法

Also Published As

Publication number Publication date
CN102904716A (zh) 2013-01-30
JP5892887B2 (ja) 2016-03-23
KR20130012940A (ko) 2013-02-05
RU2012131957A (ru) 2014-01-27
US8971526B2 (en) 2015-03-03
RU2586020C2 (ru) 2016-06-10
US20130028412A1 (en) 2013-01-31

Similar Documents

Publication Publication Date Title
JP5892887B2 (ja) サイドチャネル攻撃に対抗する方法
JP4828526B2 (ja) 暗号計算を実行するための方法及び装置
US8325928B2 (en) Security countermeasure for power analysis attacks
US8553877B2 (en) Substitution table masking for cryptographic processes
US8515057B2 (en) Method and device for executing crytographic calculation
US9515820B2 (en) Protection against side channels
US20120170739A1 (en) Method of diversification of a round function of an encryption algorithm
US10210776B2 (en) DPA protection of a rijndael algorithm
US10243728B2 (en) Verification of the resistance of an electronic circuit to side-channel attacks
US10187198B2 (en) Protection of a rijndael algorithm
CN109726565B (zh) 在抗泄漏原语中使用白盒
KR101506499B1 (ko) 마스킹이 적용된 seed를 이용한 암호화 방법
US8958556B2 (en) Method of secure cryptographic calculation, in particular, against attacks of the DFA and unidirectional type, and corresponding component
CN106936822B (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
JP6793822B2 (ja) テーブルベースの実装への2次以上のdca攻撃に対抗する方法
KR101203474B1 (ko) 암호화 프로세서를 갖는 단위 전자장치의 보안화 방법
EP3484095A1 (en) Computer-implemented cryptographic method and device for implementing this method
Shi et al. On security of a white-box implementation of SHARK
EP2293488B1 (en) Method for cryptographic processing of data units
TW201312982A (zh) 旁通道攻擊的防禦方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160126

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160223

R150 Certificate of patent or registration of utility model

Ref document number: 5892887

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113