JP2015513699A - ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法 - Google Patents

ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法 Download PDF

Info

Publication number
JP2015513699A
JP2015513699A JP2014559261A JP2014559261A JP2015513699A JP 2015513699 A JP2015513699 A JP 2015513699A JP 2014559261 A JP2014559261 A JP 2014559261A JP 2014559261 A JP2014559261 A JP 2014559261A JP 2015513699 A JP2015513699 A JP 2015513699A
Authority
JP
Japan
Prior art keywords
masking
size
boolean
arithmetic
countermeasure method
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
JP2014559261A
Other languages
English (en)
Other versions
JP5823639B2 (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 JP2015513699A publication Critical patent/JP2015513699A/ja
Application granted granted Critical
Publication of JP5823639B2 publication Critical patent/JP5823639B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本発明は、ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法に関する。一次サイドチャネル解析に対してブール命令および算術命令を組み合わせる暗号アルゴリズムを保護するために、ブールマスキングと算術マスキングとの間の変換を実行することが必要である。本発明は、事前算出された1つのテーブルTのみを用いて、算術マスキングからブールマスキングへの新しい変換法を提案する。前記テーブルTは、モジュラー加算からニブルへのマスクされた繰り上がり数を加算しながら、kビットを超えるサイズを有する整数に対するkビットニブルによって、算術マスキングからブールマスキングのkビットニブルに切り替えるように構成される。

Description

本発明は、ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法、およびこのような対策方法を組み込む電子装置に関する。
本発明の方法は、サービスまたはデータに対するアクセスが厳密に制御されるアプリケーションに特に適している。
Paul・Kocherらは、DPAとして知られている「差分電力解析」の概念を1999年に公開した[1]。これらのDPA攻撃の原理は、アルゴリズムの実行の間に組み込み型装置によって生成される消費電力曲線を解析することによって組み込み型装置にて実現されるこのアルゴリズムの秘密キーに関する情報を引き出すという事実に基づく。初期目標は、データ暗号化規格(DES:Data Encryption Standard)、高度暗号化規格(AES:Advanced Encryption Standard)候補などの対称暗号系、または公開鍵暗号方式であった。それらの攻撃の原理は、相関電力解析、電磁気解析などの他のいくつかの技術に及ぶ。物理的な漏洩に依存するこれらの攻撃は、すべて、さらに総称的にはサイドチャネル攻撃と呼ばれる。
それらの攻撃を阻止するために、すぐに対策が開発された。総称的な対策は、Chariら[2]によって、およびLouis・Goubinら[3]によって1999年に示された。それらの総称的な対策は、アルゴリズムの実行の間に処理されたすべての鍵依存中間変数の、いくつかの共有資源(share)への分割にある。
他のものに依存しないように考慮される、各共有資源の値は、ランダムに分配されて、秘密鍵の値に依存しない。そのため、共有資源の電力漏洩は、秘密情報を漏らさない。
攻撃を仕かけるために必要とされる電力曲線の数は、共有資源の数に伴って指数関数的に増大することが、2001年に、Chariら[2]によって開示された。2つの共有資源だけが用いられる場合、方法は、すべての中間データをランダムにマスキングするようになる。この場合、インプリメンテーションが一次DPAから保護されると言われている。
Chariらによって指摘されるように、それらの一般法は、概して、要とされるメモリの量または計算時間を著しく増加する。さらに、中間ステップでさえもDPAによって攻撃され得るので、変数の分割は、アルゴリズムのステップ毎に行なわれなければならないことが実証された。これは、特にスマートカードなどの組み込みシステムための、増設メモリおよび計算時間の問題をさらに重大にする。
ブールおよび算術演算を組み合わせるアルゴリズムのために、ブールマスキングおよび演算マスキングの2つの異なる種類のマスキングを用いられなければならない。多くのアルゴリズムは、この型、すなわちSHA−1ファミリーのハッシュ関数、SHA−3コンペティションの2つのファイナリスト(BlakeおよびSkein)、eSTREAMストリーム暗号コンペティションのすべてのソフトウェア指向ファイナリスト、Snow2.0およびSnow3Gのような他のストリーム暗号、ブロック暗号IDEAなどを有する。
このような暗号のDPAに保護されたインプリメンテーションのセキュリティは、算術マスキングとブールマスキングとの間の両方向の変換のセキュリティに強く依存する。
算術マスキングとブールマスキングとの間の両方向の安全な変換アルゴリズムを開示した文献米国特許第7334133号明細書が知られている。但し、この文献内に提案された算術からブールへの変換は、あまり効率的ではなく、いくつかのインプリメンテーションのボトルネックになり得る。
算術とブールマスキングとの間の変換アルゴリズムが、Coronら[5]によって2003年におよび文献欧州特許出願公開第1348275号明細書において開示されている。この方法は、データのサイズがkより大きい場合の2つの事前算出されたテーブルの使用に基づき、ここで、kは処理されたデータのサイズである。各テーブルのサイズは、2である。kの値は、典型的には4である。この場合、32ビットの変数は、8つの4ビットニブルに分割され、そして、アルゴリズムは、8ステップにおいて作動し、各ステップは、32ビットデータのうちの1ニブルを処理する。それらのテーブルの1つは、ニブルを算術マスキングからブールマスキングに変換する。他のテーブルは、モジュラー加算からの繰り上がり数を管理する。
第2の値のマスク表現(masked representation)の秘密が保持されるために第1の値のマスク表現からの遷移に依存する方法を開示する文献国際公開第2005/024606号パンフレットが知られている。この遷移は、2つの事前算出されたテーブルTおよびCを使用することによって成される。
また、文献国際公開第2005/024606号パンフレットによれば、L−ビットデータの各変換ために、ランダムなビットzが生成されて、値Z=“z||z||…||z”が操作される。Zの値は、その結果、0x00..0または0xFF..FFである。両方の値の間のハミング重みが最大の場合、値Zは、場合によってSPAの技術を用いてスパイ行為をされ得る。zの値が発見されると、インプリメンテーションは、もはや、SPA/DPAに対して安全ではない。
米国特許第7334133号明細書 欧州特許出願公開第1348275号明細書 国際公開第2005/024606号
本発明の目的は、事前算出された1つのテーブルのみを用いて、DPA攻撃に対してフールプルーフであると判明した代替的な変換「算術からブール」アルゴリズムを提案することである。
本発明は、プロセッサおよびメモリを備える装置内部の機密情報を安全にかつ保護する方法、およびさらなるメモリ内に格納された暗号アルゴリズムに関わる。暗号アルゴリズムは、装置によって取り扱われる機密情報を保護するためにインプリメントされる。ブールマスキングおよび演算マスキングは、機密情報を保護するために利用される。
本発明は、広義には、DPA型の攻撃に対する対策方法として定義され、前記方法は、
ソフトウェア実行の間の動作の処理によってもたらされる消費電流の記録の統計的解析の阻止を構成する算術マスキングおよびブールマスキングを用いるステップと、
変換されるデータをサイズkのニブルに分割するステップと、
kビットを超えるサイズを有する整数に対して前記算術マスキングから前記ブールマスキングへの変換を実行するステップとを備え、
変換ステップは、
ニブルを更新する関数と、
繰り上げを管理する関数との2つの関数を同時に有する1つの事前算出されたテーブルTにより行なわれ、
前記テーブルTは、モジュラー加算からニブルへのマスクされた繰り上がり数を加算しながら、kビットを超えるサイズを有する整数に対するkビットニブルによって、算術マスキングからブールマスキングのkビットニブルに切り替えるように構成されることを特徴とする方法である。
本発明による方法は、別々にまたは組み合わせて考慮された付加的な特徴、とりわけ以下の特徴を含んでもよい。
実施形態において、前記対策方法は、
x=x’+r mod mと、注目されるマスクされたデータx’により、保護されるデータxを用いるステップであって、xのサイズはmビットであり、整数rはランダムな整数であるステップと、
Figure 2015513699
のように値Aを取得するステップであって、ここで
Figure 2015513699
は排他的論理和を意味するステップとを備え、
マスクされたデータx’は、サイズkのn個のニブルx’n−1||…||x’||…||x’に分割され、各入力x’に対して、テーブルTは、変換されたニブルx’およびマスクされた繰り上がり数の値を出力する。
別の実施形態において、各ニブルに対して、繰り上がり数値は、サイズn×kのランダムηの加算によりマスクされ、ここで、nはニブルの数である。
別の実施形態において、マスクされた繰り上がり数は、算術マスキングからブールマスキングへのその変換よりも前にニブルに加算される。
別の実施形態において、繰り上がり数値は、ランダムなビットをもつ排他的論理和によってマスクされる。
本発明は、また、本発明の対策方法を実行する手段を備える携帯型電子装置に関する。前記携帯型電子装置は、スマートカードまたは暗号トークンであり得る。
本発明は、また、本発明の対策方法を用いる秘密鍵暗号化方法に関する。
文献国際公開第2005/024606号パンフレットによる、事前算出されたテーブルTおよびCが用いられる。メモリ内の単純なフィールド(simple field)においてTおよびCをセットアップすることができたとしても、2つのテーブルは、事前算出のステップの間に別々に生成されなければならない。一方、本発明においては、1つのテーブルのみが、事前算出のステップの間に直接生成され、これはより高速である。
文献一覧
以下の刊行物に対する参照は、従来技術のさらなる充分な理解を提供することになる。
[1]Paul Kocher, Joshua Jaffe and Benjamin Jun, “Differential Power Analysis,” in Proceedings of Advances in Cryptology−CRYPTO ’99, Springer−Verlag, 1999, pp. 388−397
[2]Suresh Chari, Charantjit S. Jutla, Josyula R. Rao and Pankaj Rohatgi, “Towards Sound Approaches to Counteract Power−Analysis Attacks,“ in Proceedings of Advances in Cryptology−CRYPTO ’99, Springer−Verlag, 1999, pp. 398−412
[3]Louis Goubin and Jacques Patarin, “DES and Differential Power Analysis−The Duplication Method,“ in Proceedings of Workshop on Cryptographic Hardware and Embedded Systems, Springer−Verlag, August 1999, pp. 158−172
[4]Louis Goubin “A Sound Method for Switching between Boolean and Arithmetic Masking” CHES’01 Springer LNCS 2162/2001, pp. 3−15
[5]Jean−Sebastien Coron and Alexei Tchulkine “A New Algorithm for Switching from Arithmetic to Boolean Masking“, CHES’03, Springer LNCS 2779/2003, pp. 89−97
「差分電力解析」(DPA)は、スマートカードや他の暗号装置内で動作する、トランジスタ論理ゲートおよびソフトウェアの特徴的挙動を探索し、および同一の鍵による多くの計算を通じて測定された消費電力の記録の統計的解析を実行することによって、(例えば、スマートカードまたは暗号トークン内に含まれる)秘密鍵についての情報を取得することを可能にする攻撃である。
この攻撃は、各命令の個別の消費電力、または、やがてはこれらの命令の各々の位置の認識を必要としない。攻撃者がアルゴリズムおよび対応する消費曲線の入力または出力を知るやいなや、同一の方法で正確に適用される。それは、アルゴリズムの計算の間に現われる中間変数があるという以下の基礎となる前提、すなわち、数ビットの(実際には32ビット未満の)鍵の認識がこの変数に対して同一の中間値を与える2つの入力(またはそれぞれ2つの出力)の確率を決定することを可能にすることに専ら基づく。
本発明は、DPAが基礎を置く上記の前提がもはや立証されないように(すなわち、中間変数は、秘密鍵のサブセットの認識に常に依存しないように)アルゴリズムをプログラミングする「マスキング」方法の原理を用いる。
ブール関数と算術関数とを組み合わせるアルゴリズムに対して、以下の2種類のマスキングが用いられる。
ブールマスキング:
Figure 2015513699
ここで、
Figure 2015513699
は排他的論理和を意味する。
算術マスキング:x’=x−r mod 2である。
ここで、xは、中間データであり、rは、マスクされた値x’を取得するのに使用されるランダム値であり、これらの3つのデータのサイズは、kである。
本発明の目的は、マスクされるデータから中間変数が無相関化されることを確実にする間、算術マスキングからブールマスキングに切り替えるための効果的アルゴリズムを見出すことであり、それはDPAへの抵抗力を保証する。
本発明の方法は、暗号アルゴリズムの事前計算段階の間に生成された1つの事前算出されたテーブルの使用に基づく。変換されるデータは、サイズkのニブルに分割され、ここで、kは、サイズ4、5、6、7、8を実際上有する。例えば、k=4であれば、32ビットの変数は、8つの4ビットのニブルに分割され、そして、アルゴリズムは、8つのステップにおいて作動し、各ステップは、32ビットデータのうちの1ニブルを処理する。各ニブルは、算術的にマスクされたデータの一部である。2つのテーブルの代わりに1つのテーブルを有するために、テーブルは、2つの以下の関数を同時に有しなければならない。
新しいマスキングモードにおけるニブルの更新。実際は、各ニブルは、算術的にマスクされたデータの一部であり、ニブルx=s−r mod 2であり、ここで、sは、対応する秘密データのニブルであり、rは、対応するマスクのニブルである。したがって、テーブルは、xを値
Figure 2015513699
に変換するために用いられ、ここで、
Figure 2015513699
は、排他的論理和である。
繰り上がり数の管理。マスクされたデータxをn個のニブルxn−1||…||x||…||xに分割されたものと見なそう。ここで||は、連結を意味する。各変換されたニブルx’は、
Figure 2015513699
に等しいが、但し、値x=x’+rは、場合によっては2より大きくなり得る。この場合、繰り上がり数は、その変換よりも前に、ニブルxi+1に加算されなければならない。繰り上がり数値が秘密データから無相関化されないとき、繰り上がり数値は、マスク化されなければならない。
2つのテーブルの代わりに1つのテーブルを使用することは、性能の観点から明らかに有利である。実際は、第2のテーブルの生成時間、およびこの第2のテーブルに対する呼び出し時間は、変換段階の間に回避される。2つのテーブルの代わりに1つのテーブルを事前算出しなければならないために、ニブルの更新および繰り上がり数の管理を同時に考慮に入れるように単一のテーブルを可能にする新しい技術を用いることが必要である。これらの技術は、本発明の第1の実施形態および第2の実施形態において詳述される。
第1の実施形態:32ビットのプロセッサ:
第1の実施形態において、本発明の方法は、32ビットのアーキテクチャに特に適している。算術マスキングからブールマスキングに切り替える本方法は、1つの事前算出されたテーブルを用い、アルゴリズムの中間変数のほとんどサイズのデータを操作する。このサイズが主として32ビットであるとき、この方法は、その結果、32ビットのアーキテクチャ上の以下のアルゴリズムのインプリメンテーションに特に適している。すなわち、SHA−1ファミリーのハッシュ関数、SHA−3コンペティションのファイナリストBlake、eSTREAMストリーム暗号コンペティションのすべてのソフトウェア指向ファイナリスト、Snow2.0およびSnow3Gのような他のストリーム暗号などである。
この方法の原理は、サイズ
Figure 2015513699
バイトの1つの事前算出されたテーブルTに依存し、ここで、kは処理されたニブルのサイズである。
テーブルTは、表1のように記載される。
Figure 2015513699
本発明のテーブルTは、モジュラー加算からの繰り上がり数を管理しながらニブルを算術マスキングからブールマスキングに変換する。
マスクされたデータx’がn個のニブルx’n−1||…||x’||…||x’に分割されると考えよう。ここで、各入力x’に対して、安全な方法で繰り上がり数を管理するために、テーブルTは、サイズn×kのランダムηの加算によってマスクされた繰り上がり数値を出力する。
変換段階は、表2のアルゴリズムによって記載されることができる。
Figure 2015513699
ここで、繰り上がり数は、テーブルTによって直接考慮に入れることができる。なぜなら、Tの出力が処理されたデータ(n・kビット)と同一のサイズが有するとき、値A+rがTの事前計算の間に2を超えるのであれば、(k+1)番目のT[A]の最下位ビットが、その後、ηの加算によってマスクされる前に自動的に1に設定されるからである。変換アルゴリズムの間に、ニブルAが置換されるときと同時に、繰り上がり数は、電流の変数(ライン5)に加算される。
テーブルTの出力が繰り上がり数の値に依存しないので、各処理された中間変数は、秘密データから完全に無相関化される。実際、ランダム値ηは、変数Aと同一のサイズを有し、繰り上がり数の値に対するTの出力のあらゆる依存性が回避される。したがって、この第1の実施形態に開示された方法は、一次DPAに対する抵抗力がある。
この第1の実施形態に提案された方法は、また、(ブロック暗号IDEAのような)16ビットのデータを操作するアルゴリズムをもつ16ビットプロセッサにも適する。
第1の実施形態の変形において、変換アルゴリズムの実行時間は、いくつかの命令をループの外に移動させることによって、低減され得る。
ある例において、以下のそれらの3つの命令は、セキュリティを低下させずに、ループから除外され得る。
・ ランダムなr(ライン3)による算術マスキングは、ループよりも前に実行され得る。
・ 値η(ライン6)の減算は、ループよりも前に実行され得る。
・ ランダムなr(ライン8)によるブールアンマスキングは、ループの後に実行され得る。
実際には、これらの命令がループの外に移動される場合において、1つを除くAのすべてのニブルは、アルゴリズムの実行の間に初期マスクRによりマスクされたままであり、永続するニブル(lasting nibble)は、ランダム値rによってマスキングされる。すべての中間変数は、その後、実行を通じてランダムに分散される。
これらの命令をループの外に移動させるために、事前計算ステップの間にいくつかの必要以上の計算を行なわなければならない。方法の改良版は、その結果、以下の通りである。
テーブルTは、表3のように記載されることができる。
Figure 2015513699
変換段階は、表4のアルゴリズムによって記載されることができる。
Figure 2015513699
第2の実施形態:16ビットのプロセッサまたは8ビットのプロセッサ:
16ビットまたは8ビットのプロセッサに対する、第1の実施形態に提案された方法の弱点は、操作されたデータのサイズがアルゴリズムの中間データのサイズと同一であるという事実である。この第1の実施形態で理解されるように、中間データに対する典型的なサイズは、32ビットである。そして変換アルゴリズムの時間は、その後、16ビットのプロセッサに対しては2を乗算し、8ビットのプロセッサに対しては4を乗算したものである。この第2の実施形態においては、レジスタが32未満のサイズを有するプロセッサにさらに適した方法が提案される。
原理:
既知の原理は、アルゴリズム実行の間にマスクされたデータを保持する事前算出されたテーブルを用いることによって、マスク情報をメモリアドレスとして扱うことである。アイディアは、マスクされた1ビットの情報をメモリアドレス情報として扱うことである。繰り上げビットが1ビットの情報であるとき、この第2の実施形態の目的は、繰り上がり数に対してこの原理を適用することである。
第1の実施形態に提案されたように算術的にマスクされる代わりに、繰り上がり数がブールマスクによって保護されるものと仮定しよう。
保護は、そこで、排他的論理和によってもしくはランダムビットを繰り上がり数値に加算することになる。
このようなランダムビットをρと呼べば、2エントリテーブルCは、表5の方法によって事前算出されたステップの間に生成され得る。
Figure 2015513699
ブールのマスクρによって保護された繰り上がり数cが、変換アルゴリズムの間に操作されると仮定しよう。したがって、マスクされた値
Figure 2015513699
は、繰り上がり数cを値Aに加算するための表6の安全な方法で用いられ得る。
Figure 2015513699
ρの値が何であっても、値C[b]は、mod 2n.kで、γに加算された繰り上がり数cに等しい。さらに、処理された中間変数のすべては、ランダムに分散され、その後、それらはすべて、繰り上がり数の値から完全に無相関化され、その結果、この第2の実施形態に開示された方法は、一次DPAに対して抵抗力がある。
テーブルTの生成:
この実施形態において、先に記載された原理に基づいて算術マスキングからブールマスキングに切り替えるためのアルゴリズムが提案される。第1の実施形態に関しては、アイディアは、時間性能を最大化するために1つの事前算出されたテーブルのみを用いることである。それに対して、テーブルTの出力は、新しいマスキングされたニブルおよび繰り上げビットに関する情報を含んでいなければならない。
この第2の実施形態において、事前算出されたテーブルTには以下の特性がある。
・ 繰り上がり数値は、排他的論理和によって、ランダムビットでマスキングされる、
・ 変換段階の間に、テーブルにおけるアドレスの選択は、ニブルの値に依存するだけでなく、前の繰り上がり数の値にも依存する。これは、Tが2k+1のサイズを有していることを意味している。
Figure 2015513699
変換ステップは、その結果、表8の通りである。
Figure 2015513699
再びここで、すべての処理された変数は、ランダムに分配され、一次DPAに対するアルゴリズムの抵抗力を誘導する。
k=8であれば、変換段階の時間が最適化される。但し、この場合、テーブルの出力データのサイズは、k+1=9ビットである。これは、この格納されるデータが2バイトを必要とし、RAM内のテーブルのサイズは、その結果1024バイトであることを意味する。このメモリの量は、昨今、多くの組み込みコンポーネント上で可能であるが、いくつかの場合においてはまだ大きすぎる可能性もある。
秘密データ
Figure 2015513699
のブールマスキングおよび同一のデータx’=x−r mod 2の算術マスキングが、常に、同一の最下位ビットを有することに注意すると、メモリの量を半分に低減することが可能である。
したがって、
Figure 2015513699
の最下位ビットを格納することは必要ではない。結果として生じるアルゴリズムは、その結果、多少遅いが、但し、必要とされるメモリ量は、512バイトに低減される。

Claims (14)

  1. ソフトウェア実行の間の動作の処理によってもたらされる消費電流の記録の統計的解析の阻止を構成する算術マスキングおよびブールマスキングを用いるステップと、
    変換されるデータをサイズkのニブルに分割するステップと、
    kビットを超えるサイズを有する整数に対して前記算術マスキングから前記ブールマスキングへの変換を行なうステップと
    を備えるDPA型の攻撃に対する対策方法であって、
    変換ステップは、
    ニブルを更新する関数と、
    繰り上げを管理する関数と
    の2つの関数を同時に有する1つの事前算出されたテーブルTにより行なわれ、
    前記テーブルTは、モジュラー加算からニブルへのマスクされた繰り上がり数を加算しながら、kビットを超えるサイズを有する整数に対するkビットニブルによって、算術マスキングからブールマスキングのkビットニブルに切り替えるように構成されることを特徴とする対策方法。
  2. x=x’+r mod mと、注目されるマスクされたデータx’により、保護されるデータxを用いるステップであって、xのサイズはmビットであり、整数rはランダムな整数であるステップと、
    Figure 2015513699
    のように値Aを取得するステップであって、ここで
    Figure 2015513699
    は排他的論理和を意味するステップと
    を備え、
    マスクされたデータx’は、サイズkのn個のニブルx’n−1||…||x’||…||x’に分割され、各入力x’に対して、テーブルTは、変換されたニブルx’およびマスクされた繰り上がり数の値を出力する請求項1に記載の対策方法。
  3. 各ニブルに対して、繰り上がり数値は、サイズn×kのランダムηの加算によりマスクされ、ここで、nはニブルの数である請求項1または2に記載の対策方法。
  4. マスクされた繰り上がり数は、算術マスキングからブールマスキングへのその変換よりも前にニブルに加算される請求項3に記載の対策方法。
  5. テーブルTのサイズは
    Figure 2015513699
    バイトであり、ここで、kは処理されたニブルのサイズであり、前記テーブルTは、表1のように記載される請求項3および4に記載の対策方法。
    Figure 2015513699
  6. kビットを超えるサイズを有する整数に対する前記算術マスキングから前記ブールマスキングへの変換は、表2のステップを備える請求項5に記載の対策方法。
    Figure 2015513699
  7. テーブルTのサイズは、
    Figure 2015513699
    バイトであり、ここで、kは、処理されたニブルのサイズであり、前記テーブルTは、表3のように記載される請求項3および4に記載の対策方法。
    Figure 2015513699
  8. Kビットを超えるサイズを有する整数に対する前記算術マスキングから前記ブールマスキングへの変換は、表4のステップを備える請求項7に記載の対策方法。
    Figure 2015513699
  9. 繰り上がり数値は、排他的論理和によって、ランダムビットマスキングされる請求項1または2に記載の対策方法。
  10. テーブルTのサイズは、2k+1バイトであり、ここで、kは、処理されたニブルのサイズであり、前記テーブルTは、表5のように記載される請求項2および9に記載の対策方法。
    Figure 2015513699
  11. kビットを超えるサイズを有する整数に対する前記算術マスキングから前記ブールマスキングへの変換は、表6のステップを備える請求項10に記載の対策方法。
    Figure 2015513699
  12. 請求項1〜11のいずれか1項を用いることを特徴とする秘密鍵暗号化方法。
  13. 請求項1〜11のいずれか1項に記載の前記対策方法を実行する手段を備える携帯型電子装置。
  14. 前記携帯型電子装置は、スマートカードまたは暗号トークンである請求項13に記載の携帯型電子装置。
JP2014559261A 2012-03-02 2013-03-04 ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法 Expired - Fee Related JP5823639B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP12305258.1 2012-03-02
EP20120305258 EP2634953A1 (en) 2012-03-02 2012-03-02 Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations
PCT/EP2013/054293 WO2013128036A1 (en) 2012-03-02 2013-03-04 Countermeasure method against side channel analysis for cryptographic algorithms using boolean operations and arithmetic operations

Publications (2)

Publication Number Publication Date
JP2015513699A true JP2015513699A (ja) 2015-05-14
JP5823639B2 JP5823639B2 (ja) 2015-11-25

Family

ID=47833057

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014559261A Expired - Fee Related JP5823639B2 (ja) 2012-03-02 2013-03-04 ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法

Country Status (4)

Country Link
US (1) US20150110266A1 (ja)
EP (2) EP2634953A1 (ja)
JP (1) JP5823639B2 (ja)
WO (1) WO2013128036A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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 한국전자통신연구원 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법
US9923719B2 (en) 2014-12-09 2018-03-20 Cryptography Research, Inc. Location aware cryptography
ITUB20152708A1 (it) * 2015-07-31 2017-01-31 St Microelectronics Srl Procedimento per operare una crittografia con mascheratura di dati sensibili, apparato di crittografia e prodotto informatico corrispondente
US10333699B1 (en) 2015-09-30 2019-06-25 Cryptography Research, Inc. Generating a pseudorandom number based on a portion of shares used in a cryptographic operation
EP3226460A1 (en) * 2016-04-01 2017-10-04 Institut Mines-Telecom Secret key estimation methods and devices
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
EP3493457A1 (en) * 2017-11-30 2019-06-05 Gemalto Sa Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
EP3557813A1 (en) * 2018-04-17 2019-10-23 Gemalto Sa Method secured against side-channel attacks performing an arithmetic operation of a cryptographic algorithm mixing boolean and arithmetic operations
CN112955864A (zh) * 2018-10-29 2021-06-11 密码研究公司 恒定时间的安全的算术到布尔掩码转换
FR3101981B1 (fr) * 2019-10-11 2021-11-12 St Microelectronics Grenoble 2 Extraction et insertion de mots binaires
DE102021003275B3 (de) 2021-06-24 2022-07-14 Giesecke+Devrient Mobile Security Gmbh Verfahren zur Berechnung eines Übergangs von einer booleschen zu einer arithmetischen Maskierung

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2818472B1 (fr) 2000-12-19 2003-02-14 Gemplus Card Int Procede de contre-mesure dans un composant electronique mettant en oeuvre un algorithme de cryptographie a cle secrete
FR2820914A1 (fr) 2001-02-15 2002-08-16 Bull Cp8 Procede de securisation d'un ensemble electronique mettant en oeuvre en algorithme cryptographique utilisant des operations booleennes et des operations arithmetiques, et systeme embarque correspondant
DE10341096A1 (de) * 2003-09-05 2005-03-31 Giesecke & Devrient Gmbh Übergang zwischen maskierten Repräsentationen eines Wertes bei kryptographischen Berechnungen
KR100585119B1 (ko) * 2004-01-07 2006-06-01 삼성전자주식회사 암호화 장치, 암호화 방법 및 그 기록매체
JP4837058B2 (ja) * 2009-03-10 2011-12-14 株式会社東芝 演算装置及びプログラム
KR101026439B1 (ko) * 2009-07-20 2011-04-07 한국전자통신연구원 Seed 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법

Also Published As

Publication number Publication date
EP2634953A1 (en) 2013-09-04
WO2013128036A1 (en) 2013-09-06
JP5823639B2 (ja) 2015-11-25
US20150110266A1 (en) 2015-04-23
EP2820791B1 (en) 2016-07-27
EP2820791A1 (en) 2015-01-07

Similar Documents

Publication Publication Date Title
JP5823639B2 (ja) ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法
Debraize Efficient and provably secure methods for switching from arithmetic to boolean masking
Rivain et al. Higher-order masking and shuffling for software implementations of block ciphers
Coron et al. On boolean and arithmetic masking against differential power analysis
Clavier Secret external encodings do not prevent transient fault analysis
US8325928B2 (en) Security countermeasure for power analysis attacks
RU2357365C2 (ru) Способ и устройство для выполнения криптографического вычисления
Carlet et al. Higher-order masking schemes for s-boxes
Rivain et al. Block ciphers implementations provably secure against second order side channel analysis
EP1836554B1 (en) Method and related device for hardware-oriented conversion between arithmetic and boolean random masking
US20040139136A1 (en) Method for securing a computer installation involving a cryptographic algorithm using boolean operations and arithmetic operations and the corresponding embedded system
Lee et al. A masked white-box cryptographic implementation for protecting against differential computation analysis
Novak Side-channel attack on substitution blocks
KR100737171B1 (ko) 아리아에 대한 전력분석공격에 대응하는 저메모리형 마스킹방법
EP1226681A2 (en) Method for protection against analysis of unintended side-channel signals
JP3733027B2 (ja) 秘密鍵式暗号化アルゴリズムを用いる電子構成部品内の対抗措置方法
Kamoun et al. Experimental Implementation of 2ODPA attacks on AES design with flash-based FPGA Technology
WO2008064704A1 (en) Method and device for preventing information leakage attacks on a device implementing a cryptographic function
CN108123792B (zh) 一种sm4算法电路的功耗加扰方法
CN106936822B (zh) 针对sms4抗高阶旁路分析的掩码实现方法及系统
EP1587237A1 (en) Security countermeasures for power analysis attacks
Seuschek et al. A cautionary note: Side-channel leakage implications of deterministic signature schemes
Mahanta et al. Comparative modular exponentiation with randomized exponent to resist power analysis attacks
Schramm et al. Embedded cryptography: Side channel attacks
Belaïd et al. Differential power analysis of HMAC SHA-1 and HMAC SHA-2 in the Hamming weight model

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150821

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151007

R150 Certificate of patent or registration of utility model

Ref document number: 5823639

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees