JP2015513699A - ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法 - Google Patents
ブール演算および算術演算を用いる暗号アルゴリズムへのサイドチャネル解析に対する対策方法 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3234—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3263—Cryptographic 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は処理されたデータのサイズである。各テーブルのサイズは、2kである。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に対して安全ではない。
本発明の目的は、事前算出された1つのテーブルのみを用いて、DPA攻撃に対してフールプルーフであると判明した代替的な変換「算術からブール」アルゴリズムを提案することである。
本発明は、プロセッサおよびメモリを備える装置内部の機密情報を安全にかつ保護する方法、およびさらなるメモリ内に格納された暗号アルゴリズムに関わる。暗号アルゴリズムは、装置によって取り扱われる機密情報を保護するためにインプリメントされる。ブールマスキングおよび演算マスキングは、機密情報を保護するために利用される。
本発明は、広義には、DPA型の攻撃に対する対策方法として定義され、前記方法は、
ソフトウェア実行の間の動作の処理によってもたらされる消費電流の記録の統計的解析の阻止を構成する算術マスキングおよびブールマスキングを用いるステップと、
変換されるデータをサイズkのニブルに分割するステップと、
kビットを超えるサイズを有する整数に対して前記算術マスキングから前記ブールマスキングへの変換を実行するステップとを備え、
変換ステップは、
ニブルを更新する関数と、
繰り上げを管理する関数との2つの関数を同時に有する1つの事前算出されたテーブルTにより行なわれ、
前記テーブルTは、モジュラー加算からニブルへのマスクされた繰り上がり数を加算しながら、kビットを超えるサイズを有する整数に対するkビットニブルによって、算術マスキングからブールマスキングのkビットニブルに切り替えるように構成されることを特徴とする方法である。
ソフトウェア実行の間の動作の処理によってもたらされる消費電流の記録の統計的解析の阻止を構成する算術マスキングおよびブールマスキングを用いるステップと、
変換されるデータをサイズkのニブルに分割するステップと、
kビットを超えるサイズを有する整数に対して前記算術マスキングから前記ブールマスキングへの変換を実行するステップとを備え、
変換ステップは、
ニブルを更新する関数と、
繰り上げを管理する関数との2つの関数を同時に有する1つの事前算出されたテーブルTにより行なわれ、
前記テーブルTは、モジュラー加算からニブルへのマスクされた繰り上がり数を加算しながら、kビットを超えるサイズを有する整数に対するkビットニブルによって、算術マスキングからブールマスキングのkビットニブルに切り替えるように構成されることを特徴とする方法である。
本発明による方法は、別々にまたは組み合わせて考慮された付加的な特徴、とりわけ以下の特徴を含んでもよい。
実施形態において、前記対策方法は、
x=x’+r mod mと、注目されるマスクされたデータx’により、保護されるデータxを用いるステップであって、xのサイズはmビットであり、整数rはランダムな整数であるステップと、
x=x’+r mod mと、注目されるマスクされたデータx’により、保護されるデータxを用いるステップであって、xのサイズはmビットであり、整数rはランダムな整数であるステップと、
マスクされたデータx’は、サイズkのn個のニブルx’n−1||…||x’i||…||x’0に分割され、各入力x’iに対して、テーブルTは、変換されたニブルx’iおよびマスクされた繰り上がり数の値を出力する。
別の実施形態において、各ニブルに対して、繰り上がり数値は、サイズ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
[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種類のマスキングが用いられる。
ブールマスキング:
算術マスキング:x’=x−r mod 2kである。
ここで、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つの以下の関数を同時に有しなければならない。
新しいマスキングモードにおけるニブルの更新。実際は、各ニブルは、算術的にマスクされたデータの一部であり、ニブルxi=s−r mod 2kであり、ここで、sは、対応する秘密データのニブルであり、rは、対応するマスクのニブルである。したがって、テーブルは、xiを値
繰り上がり数の管理。マスクされたデータxをn個のニブルxn−1||…||xi||…||x0に分割されたものと見なそう。ここで||は、連結を意味する。各変換されたニブルxi’は、
2つのテーブルの代わりに1つのテーブルを使用することは、性能の観点から明らかに有利である。実際は、第2のテーブルの生成時間、およびこの第2のテーブルに対する呼び出し時間は、変換段階の間に回避される。2つのテーブルの代わりに1つのテーブルを事前算出しなければならないために、ニブルの更新および繰り上がり数の管理を同時に考慮に入れるように単一のテーブルを可能にする新しい技術を用いることが必要である。これらの技術は、本発明の第1の実施形態および第2の実施形態において詳述される。
第1の実施形態:32ビットのプロセッサ:
第1の実施形態において、本発明の方法は、32ビットのアーキテクチャに特に適している。算術マスキングからブールマスキングに切り替える本方法は、1つの事前算出されたテーブルを用い、アルゴリズムの中間変数のほとんどサイズのデータを操作する。このサイズが主として32ビットであるとき、この方法は、その結果、32ビットのアーキテクチャ上の以下のアルゴリズムのインプリメンテーションに特に適している。すなわち、SHA−1ファミリーのハッシュ関数、SHA−3コンペティションのファイナリストBlake、eSTREAMストリーム暗号コンペティションのすべてのソフトウェア指向ファイナリスト、Snow2.0およびSnow3Gのような他のストリーム暗号などである。
第1の実施形態において、本発明の方法は、32ビットのアーキテクチャに特に適している。算術マスキングからブールマスキングに切り替える本方法は、1つの事前算出されたテーブルを用い、アルゴリズムの中間変数のほとんどサイズのデータを操作する。このサイズが主として32ビットであるとき、この方法は、その結果、32ビットのアーキテクチャ上の以下のアルゴリズムのインプリメンテーションに特に適している。すなわち、SHA−1ファミリーのハッシュ関数、SHA−3コンペティションのファイナリストBlake、eSTREAMストリーム暗号コンペティションのすべてのソフトウェア指向ファイナリスト、Snow2.0およびSnow3Gのような他のストリーム暗号などである。
この方法の原理は、サイズ
バイトの1つの事前算出されたテーブルTに依存し、ここで、kは処理されたニブルのサイズである。
テーブルTは、表1のように記載される。
本発明のテーブルTは、モジュラー加算からの繰り上がり数を管理しながらニブルを算術マスキングからブールマスキングに変換する。
マスクされたデータx’がn個のニブルx’n−1||…||x’i||…||x’0に分割されると考えよう。ここで、各入力x’iに対して、安全な方法で繰り上がり数を管理するために、テーブルTは、サイズn×kのランダムηの加算によってマスクされた繰り上がり数値を出力する。
変換段階は、表2のアルゴリズムによって記載されることができる。
ここで、繰り上がり数は、テーブルTによって直接考慮に入れることができる。なぜなら、Tの出力が処理されたデータ(n・kビット)と同一のサイズが有するとき、値A+rがTの事前計算の間に2kを超えるのであれば、(k+1)番目のT[A]の最下位ビットが、その後、ηの加算によってマスクされる前に自動的に1に設定されるからである。変換アルゴリズムの間に、ニブルAlが置換されるときと同時に、繰り上がり数は、電流の変数(ライン5)に加算される。
テーブルTの出力が繰り上がり数の値に依存しないので、各処理された中間変数は、秘密データから完全に無相関化される。実際、ランダム値ηは、変数Aと同一のサイズを有し、繰り上がり数の値に対するTの出力のあらゆる依存性が回避される。したがって、この第1の実施形態に開示された方法は、一次DPAに対する抵抗力がある。
この第1の実施形態に提案された方法は、また、(ブロック暗号IDEAのような)16ビットのデータを操作するアルゴリズムをもつ16ビットプロセッサにも適する。
第1の実施形態の変形において、変換アルゴリズムの実行時間は、いくつかの命令をループの外に移動させることによって、低減され得る。
ある例において、以下のそれらの3つの命令は、セキュリティを低下させずに、ループから除外され得る。
・ ランダムなr(ライン3)による算術マスキングは、ループよりも前に実行され得る。
・ 値η(ライン6)の減算は、ループよりも前に実行され得る。
・ ランダムなr(ライン8)によるブールアンマスキングは、ループの後に実行され得る。
・ ランダムなr(ライン3)による算術マスキングは、ループよりも前に実行され得る。
・ 値η(ライン6)の減算は、ループよりも前に実行され得る。
・ ランダムなr(ライン8)によるブールアンマスキングは、ループの後に実行され得る。
実際には、これらの命令がループの外に移動される場合において、1つを除くAのすべてのニブルは、アルゴリズムの実行の間に初期マスクRによりマスクされたままであり、永続するニブル(lasting nibble)は、ランダム値rによってマスキングされる。すべての中間変数は、その後、実行を通じてランダムに分散される。
これらの命令をループの外に移動させるために、事前計算ステップの間にいくつかの必要以上の計算を行なわなければならない。方法の改良版は、その結果、以下の通りである。
テーブルTは、表3のように記載されることができる。
変換段階は、表4のアルゴリズムによって記載されることができる。
第2の実施形態:16ビットのプロセッサまたは8ビットのプロセッサ:
16ビットまたは8ビットのプロセッサに対する、第1の実施形態に提案された方法の弱点は、操作されたデータのサイズがアルゴリズムの中間データのサイズと同一であるという事実である。この第1の実施形態で理解されるように、中間データに対する典型的なサイズは、32ビットである。そして変換アルゴリズムの時間は、その後、16ビットのプロセッサに対しては2を乗算し、8ビットのプロセッサに対しては4を乗算したものである。この第2の実施形態においては、レジスタが32未満のサイズを有するプロセッサにさらに適した方法が提案される。
16ビットまたは8ビットのプロセッサに対する、第1の実施形態に提案された方法の弱点は、操作されたデータのサイズがアルゴリズムの中間データのサイズと同一であるという事実である。この第1の実施形態で理解されるように、中間データに対する典型的なサイズは、32ビットである。そして変換アルゴリズムの時間は、その後、16ビットのプロセッサに対しては2を乗算し、8ビットのプロセッサに対しては4を乗算したものである。この第2の実施形態においては、レジスタが32未満のサイズを有するプロセッサにさらに適した方法が提案される。
原理:
既知の原理は、アルゴリズム実行の間にマスクされたデータを保持する事前算出されたテーブルを用いることによって、マスク情報をメモリアドレスとして扱うことである。アイディアは、マスクされた1ビットの情報をメモリアドレス情報として扱うことである。繰り上げビットが1ビットの情報であるとき、この第2の実施形態の目的は、繰り上がり数に対してこの原理を適用することである。
既知の原理は、アルゴリズム実行の間にマスクされたデータを保持する事前算出されたテーブルを用いることによって、マスク情報をメモリアドレスとして扱うことである。アイディアは、マスクされた1ビットの情報をメモリアドレス情報として扱うことである。繰り上げビットが1ビットの情報であるとき、この第2の実施形態の目的は、繰り上がり数に対してこの原理を適用することである。
第1の実施形態に提案されたように算術的にマスクされる代わりに、繰り上がり数がブールマスクによって保護されるものと仮定しよう。
保護は、そこで、排他的論理和によってもしくはランダムビットを繰り上がり数値に加算することになる。
このようなランダムビットをρと呼べば、2エントリテーブルCは、表5の方法によって事前算出されたステップの間に生成され得る。
ブールのマスクρによって保護された繰り上がり数cが、変換アルゴリズムの間に操作されると仮定しよう。したがって、マスクされた値
ρの値が何であっても、値C[b]は、mod 2n.kで、γに加算された繰り上がり数cに等しい。さらに、処理された中間変数のすべては、ランダムに分散され、その後、それらはすべて、繰り上がり数の値から完全に無相関化され、その結果、この第2の実施形態に開示された方法は、一次DPAに対して抵抗力がある。
テーブルTの生成:
この実施形態において、先に記載された原理に基づいて算術マスキングからブールマスキングに切り替えるためのアルゴリズムが提案される。第1の実施形態に関しては、アイディアは、時間性能を最大化するために1つの事前算出されたテーブルのみを用いることである。それに対して、テーブルTの出力は、新しいマスキングされたニブルおよび繰り上げビットに関する情報を含んでいなければならない。
この実施形態において、先に記載された原理に基づいて算術マスキングからブールマスキングに切り替えるためのアルゴリズムが提案される。第1の実施形態に関しては、アイディアは、時間性能を最大化するために1つの事前算出されたテーブルのみを用いることである。それに対して、テーブルTの出力は、新しいマスキングされたニブルおよび繰り上げビットに関する情報を含んでいなければならない。
この第2の実施形態において、事前算出されたテーブルTには以下の特性がある。
・ 繰り上がり数値は、排他的論理和によって、ランダムビットでマスキングされる、
・ 変換段階の間に、テーブルにおけるアドレスの選択は、ニブルの値に依存するだけでなく、前の繰り上がり数の値にも依存する。これは、Tが2k+1のサイズを有していることを意味している。
・ 繰り上がり数値は、排他的論理和によって、ランダムビットでマスキングされる、
・ 変換段階の間に、テーブルにおけるアドレスの選択は、ニブルの値に依存するだけでなく、前の繰り上がり数の値にも依存する。これは、Tが2k+1のサイズを有していることを意味している。
変換ステップは、その結果、表8の通りである。
再びここで、すべての処理された変数は、ランダムに分配され、一次DPAに対するアルゴリズムの抵抗力を誘導する。
k=8であれば、変換段階の時間が最適化される。但し、この場合、テーブルの出力データのサイズは、k+1=9ビットである。これは、この格納されるデータが2バイトを必要とし、RAM内のテーブルのサイズは、その結果1024バイトであることを意味する。このメモリの量は、昨今、多くの組み込みコンポーネント上で可能であるが、いくつかの場合においてはまだ大きすぎる可能性もある。
秘密データ
Claims (14)
- ソフトウェア実行の間の動作の処理によってもたらされる消費電流の記録の統計的解析の阻止を構成する算術マスキングおよびブールマスキングを用いるステップと、
変換されるデータをサイズkのニブルに分割するステップと、
kビットを超えるサイズを有する整数に対して前記算術マスキングから前記ブールマスキングへの変換を行なうステップと
を備えるDPA型の攻撃に対する対策方法であって、
変換ステップは、
ニブルを更新する関数と、
繰り上げを管理する関数と
の2つの関数を同時に有する1つの事前算出されたテーブルTにより行なわれ、
前記テーブルTは、モジュラー加算からニブルへのマスクされた繰り上がり数を加算しながら、kビットを超えるサイズを有する整数に対するkビットニブルによって、算術マスキングからブールマスキングのkビットニブルに切り替えるように構成されることを特徴とする対策方法。 - 各ニブルに対して、繰り上がり数値は、サイズn×kのランダムηの加算によりマスクされ、ここで、nはニブルの数である請求項1または2に記載の対策方法。
- マスクされた繰り上がり数は、算術マスキングからブールマスキングへのその変換よりも前にニブルに加算される請求項3に記載の対策方法。
- 繰り上がり数値は、排他的論理和によって、ランダムビットマスキングされる請求項1または2に記載の対策方法。
- 請求項1〜11のいずれか1項を用いることを特徴とする秘密鍵暗号化方法。
- 請求項1〜11のいずれか1項に記載の前記対策方法を実行する手段を備える携帯型電子装置。
- 前記携帯型電子装置は、スマートカードまたは暗号トークンである請求項13に記載の携帯型電子装置。
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)
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)
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 암호화에서 차분 전력 분석 공격을 방어하기 위한 마스킹 방법 |
-
2012
- 2012-03-02 EP EP20120305258 patent/EP2634953A1/en not_active Withdrawn
-
2013
- 2013-03-04 US US14/382,549 patent/US20150110266A1/en not_active Abandoned
- 2013-03-04 JP JP2014559261A patent/JP5823639B2/ja not_active Expired - Fee Related
- 2013-03-04 WO PCT/EP2013/054293 patent/WO2013128036A1/en active Application Filing
- 2013-03-04 EP EP13707852.3A patent/EP2820791B1/en not_active Not-in-force
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 |