説明

ホモグラフィックマスキングにより暗号アセンブリを保護する方法

本発明は、(cz+d)が0でなくf(−d/c)=a/cである場合に、f(z)=(az+b)/(cz+d)タイプのホモグラフィック関数fを使用する暗号計算プロセスを遂行することによって、アセンブリを保護する方法に関し、ここで関数fがマスク化変数に作用する同方法において、任意のkについてxが関数fの入力であってy=f(x+k)が関数fの出力である場合に、直接的にマスク化値x+m_i(XORタイプの加法マスキング)からマスク化値y+m_jへとなるように、(ax+b)/(cx+d)と定義される、無限量の加算をともないGF(2^k)に作用する数個の変換と、二つの点を交換する変換との合成を用いて、この演算を遂行することを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、秘密鍵等の秘密量を使用する暗号アルゴリズムを実施する、電子アセンブリの安全を保証する方法に関する。より厳密には、この方法は、例えば、計算の実行中に電子アセンブリの電力消費量を調べることによって秘密鍵に関する情報の入手を試みる、高次差分電力解析として知られる攻撃等、ある種の物理的攻撃に直面し脆弱でないアルゴリズムのバージョンを作ることを目的とする。
【背景技術】
【0002】
1.1 背景
ここで検討する暗号アルゴリズムは、入力情報に従って出力情報を計算するように秘密鍵を使用する。これらのアルゴリズムには数多くの応用、例えば暗号化、復号化、署名、署名検査、認証または否認防止、その他の操作がある。数多くの応用は現在、DES等、より最近では2000年以降に全世界的暗号化標準となったAES等の、秘密鍵暗号アルゴリズムの上にそのセキュリティの基礎を置く。Joan Daemen,Vincent Rijmen:AES proposal:Rijndael(AES提案:ラインドール)を参照されたい。
【0003】
最新バージョンはインターネットで入手できる、 http://csrc.nist.gov/encryption/aes/rijndael/Rijndael.pdf。暗号技術においてはこれらの暗号アルゴリズムが研究されており、知られている最良の攻撃に対し安全であることが証明されている。したがってこれらの暗号ソリューションの場合、セキュリティは主に使用する秘密鍵のセキュリティに左右される。残念ながら、PCに蓄積されるデータ項目のセキュリティも、人間が記憶するパスワードのセキュリティも、深刻には受け止められない。したがって、スマートカード等の独立した安全なモジュールに秘密量を蓄積することが不可欠となっている。
【0004】
1.2 問題:埋め込みアルゴリズムの保護
暗号アルゴリズムは、理想的な数学的世界の中では完璧に安全ではあるが、実世界においてはこの限りでない。スマートカードはエネルギーを放射し、電流を消費し、結果として、秘密量に依存する情報はサイクルごとにカードから逃げ出る。
【0005】
真に安全となるためには、アルゴリズムの中間データはこの秘密量についていかなる情報をも提供してはならない。加えて、新しい攻撃が開発されている。以下の文書を参照されたい。
【0006】
P.Kocher,J.Jaffe,B.Jun,「差分電力解析と関係する攻撃の紹介(Introduction to Differential Power Analysis and Related Attacks)」Technical Report,Cryptography Research Inc.,1998。http://www.cryptography.com/dpa/technical/index.htmlから入手可能。
【0007】
T.S.Messerges,「二次電力解析を用いたDPA抵抗ソフトウェア攻撃(Using Second−Order Power Analysis to Attack DPA Resistant software)」In Proceedings of CHES’2000,LNCS 1965,pp.238−251,Springer−Verlag,2000。
【0008】
これらは高次攻撃として知られている(例えば「二次DPA」)。これは攻撃者が、暗号アルゴリズムの実行中に逃げ出る情報を二回以上にわたり組み合わせることを意味する。この種の攻撃から保護されるためには、アルゴリズムの中間データが秘密量についていかなる情報をも提供しないだけでは、もはや不十分である。攻撃に際し、秘密量に関する任意の情報を入手するように、実行中の異なる時点に入手したデータを組み合わせることもまた不可能でなければならない。
【発明の開示】
【発明が解決しようとする課題】
【0009】
1.3 制約
問題の解決法では、DPAタイプの攻撃に対し保護を提供するばかりでなく、これを「二次DPA」以上の攻撃にまで拡張することもまた可能でなければならない。解決法はまた、実行時間と使用するメモリの量に関し相応の制約を満たさなければならない。本発明の一目的は、実行時間とメモリとが、安全が保証されない実施に比べて、ブロックサイズにもAES反復の数にも依存しない、本発明によって達成できる、小さな定数倍されることである。
【0010】
本発明は、第一、第二、またはそれ以上のDPAタイプ攻撃、SPA攻撃またはその他電子的攻撃、そして他の隠れた経路を介する攻撃に対し、AESのセキュリティを保証する。
【0011】
本明細書の残りの部分では、AESアルゴリズムに特に適し、ただし他の暗号アルゴリズムにも適用できる、一般的な解決法を説明する。この問題に対する公知の解決策はどれもこれまで、その性能水準とそのメモリ使用の点で批判されてきたし、文献で公表されている攻撃にさらされてきた。
【課題を解決するための手段】
【0012】
本発明は、メモリに蓄積された暗号計算プロセスを実施する、プロセッサとメモリとを備える電子システムの安全を保証する方法に関し、同暗号計算プロセスは秘密量kを使用し、且つ下記タイプのホモグラフィック関数fを使用する。
・(cz+d)が0に等しくない場合、f(z)=(az+b)/(cz+d)
・f(−d/c)=a/c
【0013】
関数fはマスク化変数に作用する。本方法は、任意のkについてxが関数fの入力であって且つy=f(x+k)が関数fの出力の場合に、直接的にマスク化値x+m_i(XORタイプの加法マスキング)からマスク化値y+m_jへとなるように、(ax+b)/(cx+d)と定義される、無限量の加算をともないGF(2^k)に作用する数個の変換と、二つの点を交換する変換との合成を用いて、この演算を実行することにある。
【0014】
本発明はまた、この方法を実施するシステムに関する。
【0015】
本発明による方法の目的は、秘密鍵を用いる暗号計算プロセスを実施する、電子システムと、例えばスマートカード等の埋め込みシステムとの安全を保証することにある。電子システムはプロセッサとメモリとを備える。暗号計算プロセスは、このシステムの、例えばROMタイプのメモリにインストールされる。このシステムのプロセッサは、例えばE2PROMタイプのメモリの秘密エリアに蓄積された秘密鍵を用いて、計算プロセスを実行する。
【0016】
本発明による方法は、ホモグラフィック保護を提供することである。
【発明を実施するための最良の形態】
【0017】
まず、保護の一般原理を説明する。
【0018】
2.1 分解原則
各々の暗号システムは、加算、XOR等、いくつかの基本的演算に分解できる。
【0019】
AESの場合、演算は二つのカテゴリに分けることができる。
−従来の加法マスキングによって容易に保護される「線形」演算。これは公知であって、本発明の主題ではない。
−線形演算を除いた場合、ただひとつの演算が、すなわち0へマップされる0をともなう、有限体GF(256)等における逆演算から導き出されるラインドール(Rijndeal)Inv演算が残る。
本発明者らの関心は専らInv演算を保護することにある。
説明される解決法は、他の同様の演算にも適用される。
【0020】
2.2 準備
Kを有限体とする。AES K=G(256)の場合。
Kにおける加算と乗算との実施に相当する、Kの実施がいくつか存在すると仮定する。例えば[AES]に定義されたものである。
【0021】
Invを修正されたラインドール逆関数[AES]と仮定する、すなわち、
・xが非ヌルである場合のKにおいて、Inv(x)=1/x
・Inv(0)=0
【0022】
Kに対する無限量として知られる点の加算によって、K’を定義する。
よってK’=K∪oo
【0023】
以下の演算としてInv’を定義する。
・xが非ヌルであって且つooに等しくない場合のKにおいて、Inv’(x)=1/x
・Inv’(0)=oo
・Inv’(oo)=0
【0024】
本発明は、Invを計算するにあたって、本発明者らがInv’の、および0とooとを交換する演算の合成を適用できるとみなす。
【0025】
点aおよびbを交換するK’において、E[a,b]をK’の演算とする。
・xがaにもbにも等しくない場合、E[a,b](x)=x
・E[a,b](a)=b
・E[a,b](b)=a
【0026】
2.3 演算Invをいかに表現するか
Kにおいて任意のxの場合(InvはいかなるK’においても定義されない):
Inv(x)=Inv’(E[0,oo](x))
【0027】
保護原則は次のとおりである:Inv’は、適度のサイズの、合成により安定的な群の一部であって、Invの場合と異なる。結果的に、Invの場合には存在しえない保護を、Inv’の場合に果たすことができる。
【0028】
この群は以下の関数の集合として定義される。
【0029】
Kの要素の任意の4−uplet(a,b,c,d)においてac<>bdの場合、本発明者らは次のとおりに定義する。
関数HOM[a,b,c,d]=以下の関数:
・(cx+d)が0に等しくない場合のKにおいて、HOM[a,b,c,d](x)=(ax+b)/(cx+d)
・HOM[a,b,c,d](−d/c)=oo
・HOM[a,b,c,d](oo)=a/c
【0030】
本発明者らはInvを実施するように、集合KにてInvに一致する以下の関数K’−>K’を書く。
Inv’oE[0,oo]
【0031】
符号「o」は、通常の関数の合成を表わす。
【0032】
本発明者らは次に、ホモグラフィック関数の積としてInv’を書く。
Inv’=F_1oF_2o...oF_noG_1o..G_n
【0033】
関数F_iおよびG_iの各々は、HOM[a,b,c,d]の形をとる。
【0034】
Inv’は一群に属するため、この分解は恣意的に遂行される。例えば、2n−1個の関数を無作為に選び、欠けている関数を再計算し、合成することによりInv’を作ることができる。
【0035】
本発明者らは次に、KにてInvに一致する以下の関数K’−>K’を得る。
F_1oF_2o...oF_noG_1o..G_noE[0,oo]
【0036】
ただし、K’においてこれらの関数はどれも全単射性であるため、この関数が下記に等しくなるよう二つの点aおよびbを計算できる。
F_1oF_2o...oF_noE[a,b]oG_1o..G_n
【0037】
これらの点は、a=G_1(...G_n(0))およびb=G_1(...G_n(oo))である。
【0038】
本発明における保護は次のとおりに実施されるであろう。
1.F_1,F_2,...,F_n,G_1,G_nを生成する。各々はKの4要素、すなわちラインドール/AESにおける4バイトによって記述される。
2.本発明者らはaおよびbを計算する。
3.次に本発明者らはこの一連の演算を適用することにより、Invを計算する。
4.AESには数個のInvがある。1−3に定義する、実施される一連の演算は、ある一つの計算から別の計算にかけて異なってよい。
【0039】
2.4 演算Invをいかに保護するか
安全なAES実施において、y=Inv(x)はxから計算せず、代わりにマスク化値x+m_iから直接的に計算することにより、情報を提供する中間値xおよびyを使用せず、y+m_jを直接的に得る。従って本発明者らは以下の関数を計算しなければならない。
y=Inv(x+m_i)+m_j
【0040】
Invと同じく、この関数は、HOM[a,b,c,d]の形をとる基礎的演算の組み合わせとして数多くのあり方を認めることができ、二つの点を交換する。
【0041】
さらに進むことも推奨される。K_iをAESの中間鍵とする。演算x|−>Inv(x+K_i)は同じ仕方で直接的に保護できる。二点を交換した後、この演算は任意のKにて群内の特定のHOM[a,b,c,d]:K’−>K’に等しく、これはInvの場合と同じ仕方で分解できる。本発明者らは加法マスクによって保護される実施において、以下の関数を分解する必要がある。
x|−>Inv(x+K_i+m_i)+m_j
【0042】
これは同じ仕方で遂行される。
【0043】
2.5 改善
本発明者らは一つの演算の代わりに、数個の演算E[a,b]を使用できる。
【0044】
各々の演算HOM[a,b,c,d]について、aが0または1に等しいと仮定できることは明白である。
【0045】
加法または乗法マスキングが使用されるときに実施を保護するように同じ方法を使用することもできるが、これは推奨されない。これらのマスキングは全単射性ではない、または特定の点を固定する、例えば乗法マスキングは0をマスクしない。ホモグラフィックマスキングはどのタイプであれ常に全単射性となるが、257値のうち一つを蓄積する必要があり、これはあまり現実的でない。すなわち1バイトで蓄積できない。
【0046】
本明細書は、AES保護実施の全体を説明するものではない。
【0047】
その目的は、保護することが最も困難な非線形成分をいかに保護するかを説明することである。アセンブリの保護は、広く知られる他の従来の保護を含んでよく、且つ含まなければならない。
【0048】
したがって本発明は、説明した特別な実現形態において、少なくとも関数Inv(AESと同じく0が0へマップされるGF(2^k)における逆関数)を用いる暗号計算プロセスを実施する、アセンブリを保護する方法であり、計算の中間変数xは加法マスキングx+m_iにより処理され、m_iはマスクであって且つ+はXOR演算子である方法に関し、任意のkについてxが入力であって且つy=f(x+k)の場合に、中間値を露呈することなく直接的にマスク化値x+m_iからマスク化値y+m_jへとなるように、この演算が、(ax+b)/(cx+d)の形に定義される、無限量の加算をともないGF(2^K)に作用する数個の変換と、二つの点を交換する変換との合成を用いて遂行されることを特徴とする。
【0049】
これはまた、関数Inv(AESと同じく0が0へマップされるGF(2^k)における逆関数)を用いる暗号計算プロセスを実施する、蓄積手段を備えるシステムであり、計算の中間変数xは加法マスキングx+m_iにより処理され、m_iはマスクであって且つ+はXOR演算子であるシステムに関し、任意のkについてxが入力であって且つy=Inv(x+k)の場合に、中間値を露呈することなく直接的にマスク化値x+m_iからマスク化値y+m_jへとなるように、本発明者らがこの演算を、(ax+b)/(cx+d)の形に定義される、無限量の加算をともないGF(2^K)に作用する数個の変換と、二つの点を交換する変換との合成とみなすことを特徴とする。

【特許請求の範囲】
【請求項1】
暗号計算プロセスがマスク化変数に作用する下記タイプのホモグラフィック関数f
・(cz+d)が0に等しくない場合、f(z)=(az+b)/(cz+d)
・f(−d/c)=a/c
を使用する、暗号計算プロセスを実施する、アセンブリを保護する方法であって、任意のkについてxが関数fの入力であって且つy=f(x+k)が関数fの出力の場合に、直接的にマスク化値x+m_i(XORタイプの加法マスキング)からマスク化値y+m_jへとなるように、(ax+b)/(cx+d)と定義される、無限量の加算をともないGF(2^k)に作用する数個の変換と、二つの点を交換する変換との合成を用いて、この演算を実行することを特徴とする、方法。
【請求項2】
演算fが関数Inv(AESと同じく0が0へマップされるGF(2^k)における逆関数)であることを特徴とする、請求項1に記載の方法。
【請求項3】
保護される計算プロセスがラインドールまたはAESであることを特徴とする、請求項1または2に記載の方法。
【請求項4】
x+mによるxの加法マスキングの代わりに、マスキングが任意のホモグラフィック演算のために遂行され、xの代わりに、(ax+b)/(cx+d)の値が処理されることを特徴とする、請求項1から3のいずれか一項に記載の方法。
【請求項5】
演算が表を用いて実施されることを特徴とする、請求項1から4のいずれか一項に記載の方法。
【請求項6】
スマートカード、USBトークン、暗号モジュール、または他の専用ハードウェアにて実施を保護するために使用される、請求項1から5のいずれか一項に記載の方法。
【請求項7】
「コード難読化」をともなうソフトウェア実施(仮想スマートカード)を保護するために使用される、請求項1から6のいずれか一項に記載の方法。
【請求項8】
リモートサーバ上で隠蔽されて実行される実施(別のタイプの仮想スマートカード)を保護するために使用される、請求項1から7のいずれか一項に記載の方法。
【請求項9】
計算プロセスの蓄積手段、前記暗号計算プロセスを処理する手段を含み、暗号計算プロセスがマスク化変数に作用する下記タイプのホモグラフィック関数f
・(cz+d)が0に等しくない場合、f(z)=(az+b)/(cz+d)
・f(−d/c)=a/c
を使用する、電子システムであって、任意のkについてxが関数fの入力であって且つy=f(x+k)が関数fの出力の場合に、直接的にマスク化値x+m_i(XORタイプの加法マスキング)からマスク化値y+m_jへとなるように、(ax+b)/(cx+d)と定義される、無限量の加算をともないGF(2^k)に作用する数個の変換と、二つの点を交換する変換との合成を用いて、この演算を実行する手段を含むことを特徴とする、電子システム。
【請求項10】
プログラムコード命令を含むコンピュータプログラムであって、電子システムで前記プログラムが実行されるときに、請求項1から8のいずれか一項に記載の方法のステップを実行する、コンピュータプログラム。

【公表番号】特表2007−537474(P2007−537474A)
【公表日】平成19年12月20日(2007.12.20)
【国際特許分類】
【出願番号】特願2007−512586(P2007−512586)
【出願日】平成17年5月11日(2005.5.11)
【国際出願番号】PCT/IB2005/001409
【国際公開番号】WO2005/109183
【国際公開日】平成17年11月17日(2005.11.17)
【出願人】(506321414)
【Fターム(参考)】