JP2009529819A - データ処理システムの完全性 - Google Patents
データ処理システムの完全性 Download PDFInfo
- Publication number
- JP2009529819A JP2009529819A JP2008557864A JP2008557864A JP2009529819A JP 2009529819 A JP2009529819 A JP 2009529819A JP 2008557864 A JP2008557864 A JP 2008557864A JP 2008557864 A JP2008557864 A JP 2008557864A JP 2009529819 A JP2009529819 A JP 2009529819A
- Authority
- JP
- Japan
- Prior art keywords
- parameter set
- data
- data string
- bit
- lookup
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 118
- 238000000034 method Methods 0.000 claims abstract description 94
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 63
- 230000008569 process Effects 0.000 claims abstract description 29
- 230000006870 function Effects 0.000 claims description 93
- 230000015654 memory Effects 0.000 claims description 36
- 230000008859 change Effects 0.000 claims description 23
- 238000013507 mapping Methods 0.000 claims description 22
- 230000009466 transformation Effects 0.000 claims description 22
- 230000000694 effects Effects 0.000 claims description 21
- 230000004044 response Effects 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 3
- 230000004048 modification Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 description 25
- 238000010586 diagram Methods 0.000 description 21
- 238000013459 approach Methods 0.000 description 10
- 238000013478 data encryption standard Methods 0.000 description 10
- 238000011156 evaluation Methods 0.000 description 7
- 239000000203 mixture Substances 0.000 description 7
- 230000002441 reversible effect Effects 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 239000012634 fragment Substances 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 238000000844 transformation Methods 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000009877 rendering Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 241000270295 Serpentes Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/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/002—Countermeasures against attacks on cryptographic mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/16—Obfuscation or hiding, e.g. involving white box
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Description
保護されるべきデータ文字列を決定するステップであって、前記データ文字列の完全性が、前記データ処理システムの前記完全性の指標となる、データ文字列を決定するステップと、
少なくとも部分的には既定のデータ処理関数を表すパラメーターセットの計算をするステップであって、前記パラメーターセットにおける冗長を使用して、前記データ文字列を前記パラメーターセットのビット表現に組み込む、パラメーターセットの計算をするステップと、
前記システムに、前記パラメーターセットを使用して前記データ処理関数に従ってデータを処理るステップであって、前記パラメーターセットの前記ビット表現において前記データ文字列を変更することが、前記システムの前記データ処理関数に従った前記データの処理能力を失わせる処理をさせるステップと、
を備える方法が提供される。
ハードウェア識別子、
処理されるコンテンツの一部、
コンピューター実行可能コード、
プロセッサー命令、
パスワード、又は
チャレンジ/レスポンスプロトコルを用いて、前記システムが配列されて取得するレスポンス、
の少なくとも1つの表現を備える。
暗号鍵を表すルックアップテーブルのネットワークを計算すること、
前記ルックアップテーブルの少なくとも1つに含めるため、保護される前記データ文字列の少なくとも1ワードを選択すること、
前記ルックアップテーブルのエレメントに変換を適用して、前記ワードを前記ルックアップテーブルの少なくとも1つに含めること、
前記変換の効果を反転する補償変換を適用して、前記変換を補償すること、及び
ルックアップテーブルの前記変換されたネットワークを前記パラメーターとして使用すること、を備える。
前記第1ルックアップテーブル(例えばf(t1(h-1(x))))の入力デコード(例えばh-1)と、を備え、前記第1ルックアップテーブルにおける前記選択されたワードを位置づけるために、前記第1ルックアップテーブルの前記入力デコードが、前記第3ルックアップテーブル(例えばf(t1(h-1(h(t3(x)))))=ft1(t3(x)))の前記出力エンコードの効果を反転させる。
中間結果の第1セットを取得するため、前記ネットワークのルックアップテーブルの第1セットを前記デジタルデータのビット文字列に適用させ、
中間結果の第2セットを取得するため、前記ネットワークのルックアップテーブルの第2セットを前記デジタルデータの前記ビット文字列に適用し、ここで、ルックアップテーブルの前記第2セットのビット表現が、保護されるべき前記データ文字列を含み、
第3中間結果を取得するため、前記第1及び第2の中間結果を組み合わさせ、
前記第3中間結果に基づいて処理済みデジタルデータを計算させる、
ことを可能にする。
第2システムの完全性を保護するための第1システムであって、前記第1システムが、
保護されるデータ文字列を決定するための文字列決定子であって、前記データ文字列の完全性が、前記第2システムの前記完全性の指標となる、文字列決定子と、
少なくとも部分的には既定のデータ処理関数を表すパラメーターセットを計算するためのパラメタライザーであって、前記データ文字列を前記パラメーターセットのビット表現に組み込むために、前記パラメーターセットにおける冗長を使用する、パラメタライザーと、
前記第2システムに、前記パラメーターセットに従ってデータを処理させるための手段であって、前記パラメーターセットの前記ビット表現における前記データ文字列の変更が、前記システムに、前記データ処理関数に従った前記データの処理能力を失わせる、手段と
を備える。
保護されるデータ文字列を格納するためのメモリーであって、前記データ文字列の完全性が、前記データ処理システムの前記完全性の指標となる、メモリーと、
少なくとも部分的には既定のデータ処理関数を表すパラメーターセットを格納するためのメモリーであって、前記データ文字列を前記パラメーターセットのビット表現に組み込むために前記パラメーターセットにおける冗長を使用する、メモリーと、
前記パラメーターセットに従ってデータを処理するための処理モジュールであって、前記パラメーターセットの前記ビット表現における前記データ文字列の変更が、前記システムに、前記データ処理関数に従った前記データの処理能力を失わせる、処理モジュールと
を備えるデータ処理システムを備える。
- AddRoundKey 802 - 状態の各バイトが、ラウンド鍵のバイトとXORされる。
- SubBytes 804 - ルックアップテーブルを使用したバイト対バイトの置換。
- ShiftRows 806 - 状態の各行が、固定バイト数で回転される。
- MixColumns 808 - 各列が、GF(28)のモジュロ乗算を使用して処理される。
及び
に対応するルックアップテーブルが、説明されるようにX及びYの代わりに格納され、X及びYの抽出を一層難しくする。ダイアグラム816は、2つのテーブルの中間結果もまたエンコードされるような、例えば、ランダムな、全単射関数Gをさらに加える方法を示す。この場合、2つのテーブルが、メモリーに格納され、
は、通例どおり関数合成を示し(すなわち、任意の2つの関数f(x)及び
G(x)では、
を単一のルックアップテーブルに組み合わせ、かつ
を単一のルックアップテーブルに組み合わせることによって、難読化される。F、G及び/又はHが未知である限り、攻撃者は、ルックアップテーブルからX及び/又はYについての情報を抽出することができず、そのため、攻撃者は、X及び/又はYのベースである鍵を抽出できない。DES及びRijndaelを含む他の暗号アルゴリズム(このうち、AESについて特に実例を示す)も、上記と同様の方法で難読化できるルックアップテーブル(のカスケード又はネットワーク)としてエンコードしてもよい。本発明は、言及される代表的な暗号アルゴリズムに限定されない。
の計算となる)、この計算は、次のようにエンコードできる。
は正しく計算される。ステップは、Y'及びX'に対応するテーブルとして別々に表されるので、X及びYだけでなくF、G及びHも秘匿される。
・SubBytes
・ShiftRows
・MixColumns
・AddRoundKey
を作ることによって、SubBytes変換に統合される。
は、ラウンドrに対するラウンド鍵を表す4×4行列の位置i, jにおけるAES副鍵バイトである。これらのTボックスは、前のラウンドのAddRoundKeyステップを用いてSubBytesステップを構成する。ラウンド10のTボックスは、ポストホワイトニング鍵を以下のように吸収する。
図10は、本発明の別の観点を示す。ここでは、実装603を構成するステップを示し、パラメーター613の合致する部分を識別し、そして実装615を配列する。パラメーターは、例えば、ルックアップテーブルのネットワークを形成するため、1つ又は複数のルックアップテーブルを含んでもよい。このようなルックアップテーブルのネットワークは、例えば、暗号鍵から、計算できる(ステップ604)。ネットワークのルックアップテーブルの少なくとも1つに含めるため、このプロセッサー命令のビット表現のワードが、選択される(ステップ606)。ルックアップテーブルのエレメントに変換を適用する(ステップ608)ことによって、ワードを含めることができる。この変換は、この変換の効果を反転する補償変換をその他の少なくとも1つのルックアップテーブルのエレメントに適用する(ステップ610)ことによって、補償される。通常、少なくとも2つの変換されたルックアップテーブルが、ルックアップテーブルのネットワークを介して接続される。ルックアップテーブルの変換されたネットワークが、ルックアップテーブルの元のネットワークの代わりに、暗号アルゴリズムのパラメーターとして使用される。
x1に配置される。補償するには、hが、h(x0)=x1となるように選択され、そして第3ルックアップテーブルh(t3(x))での出力エンコードとして適用される。3つルックアップテーブルの合成は、次のようになる。
は、通例どおり関数合成を示す。
- 内部及び外部エンコードにおける128×128線形全単射。
- Tボックスの入力を拡散する8×8混合全単射。
- MixColumnsの出力を拡散する32×32混合全単射。
- テーブルに配置されるニブルエンコード全単射。
が8つの独立した32ビット行ベクトルとなるようにする。式2の行ベクトルが、独立でない場合、Fを適切に変更することによって、独立にしてもよい。Fを変更するのが望ましくない場合、又は8つすべてのc(0),c(1),...,c(7)が異ならない場合、この方法は、依然として適用できる。例えば、式2の対応するサブセットが独立ベクトルで構成されるc(0),c(1),...,c(7)のサブセットが、確立かつ使用できる。追加の独立32ビット行ベクトルで構成される24×32行列βは、最大階級32×32行列βが以下によって定義されるように、当業者には計算できる。
Cを、テーブルに配置されるコードを表す32ビットワードの集合とする。Zは、作られた出力ニブルエンコードを有するMB(X)版を示すとする。Cの32ビットワードをZに組み込むアプローチは、出力ニブルエンコードF=(F(0),F(1),...,F(7))の変更によって、以下に概略される制約のため不可能になるまでCからZへ貪欲にワードを加えることによる。この変更は、Fが全単射のままであるように、例えば、関数値のスワップによって、実行すべきである。以下では、下付き文字を使用して32ビットワードの連続した4ビットニブルを示し、例えば、w0,w1,...,w7は、32ビットワードwの8ニブルを示す。Cからの任意の32ビットワードc及びMB(X)の任意の行が、32ビットワードrを保有すると考える。まず、Cからのランダムなワードcが、選択できるか、又はワードcは、例えば、連続した順序でCから選択されてもよい。このワードcは、i=0,1,...7に対してFi(ri)=ciを定義することによって、Zの行rに配置できる。これによって、1つ値のマッピングが、Fの8つのニブルエンコードのそれぞれに対して固定されている。
が、Fi(x)=ciで存在しない場合に、可能である。この処理が、Zにこれ以上ワードを配置できなくなるまで、繰り返される。再び、入力ニブルデコード及び8×8混合全単射を使用して、含まれた命令を、テーブルの正しい位置に配置できる。入力ニブルエンコード、8×8混合全単射及び出力ニブルエンコードの残された自由が、テーブルZをさらに難読化するため、任意に使用できる。
一実施例は、命令のビット表現の複数のワードを選択すること、及び「コード含有」ルックアップテーブルを形成するため、命令のこのビット表現を含むルックアップテーブルを作ることを備える。コード含有ルックアップテーブルは、データ処理プログラムへのパラメーターを形成するルックアップテーブルのネットワークに含まれる。通常、コード含有ルックアップテーブルの効果は、正しく適合されたルックアップテーブルをルックアップテーブルのネットワークに含めることによって、補償される。プログラムコードを形成する命令は、コード含有ルックアップテーブルに現れる命令を保有するメモリーアドレスもまた、このコード含有ルックアップテーブルの値を読み取るために使用されるように、配列される。
は、XOR演算子を示す。
本明細書で説明されるように、少なくとも部分的にはプログラムコードの形態であるルックアップテーブルは、例えば、暗号のラウンド鍵の形態で、復号化処理で使用されるユーザー鍵の部分評価を形成してもよい。この暗号は、好ましくは、ブロック暗号であり、より好ましくは、AES又はLombokとして知られるタイプのものである。
で表される)、単一の32ビット出力ワードをもたらす。
として計算される)は、命令的には
と変わりないので、この場合は影響しない。
上記では、コードをルックアップテーブルのネットワークに組み込むことが、強調されている。しかしながら、同じ方法を使用して、任意の定義済みデータ文字列をルックアップテーブルのネットワークに組み込むことも可能である。さらに、ルックアップテーブルのネットワークは、データ処理関数を表すパラメーターセットの単なる例である。このコード、又は任意の定義済みデータ文字列は、特にパラメーターセットが充分に冗長である場合、このパラメーターセットのビット表現に組み込まれてもよい。すなわち、単一のデータ処理関数は、複数の異なるパラメーターセット(ここに含まれる少なくとも1つのパラメーターセットのビット表現が、このデータ文字列を含む)の任意の1つによって表すことができる。
Claims (21)
- データ処理システムの完全性を保護する方法であって、
保護されるべきデータ文字列を決定するステップであって、前記データ文字列の完全性が、前記データ処理システムの前記完全性の指標となる、データ文字列を決定するステップと、
少なくとも部分的には既定のデータ処理関数を表すパラメーターセットの計算であって、前記パラメーターセットにおける冗長を使用して、前記データ文字列を前記パラメーターセットのビット表現に組み込む、パラメーターセットの計算をするステップと、
前記システムに、前記パラメーターセットを使用して前記データ処理関数に従ってデータを処理させるステップであって、前記パラメーターセットの前記ビット表現において前記データ文字列を変更することが、前記システムの前記データ処理関数に従った前記データの処理能力を失わせる処理をさせるステップと、
を備える方法。 - 前記パラメーターセットが、暗号鍵を含む暗号アルゴリズムの少なくとも一部を表す、請求項1に記載の方法
- 前記パラメーターセットが、ルックアップテーブルのネットワークを表す、請求項1に記載の方法。
- ルックアップテーブルの前記ネットワークが、データ処理アルゴリズムのホワイトボックス実装の複数のルックアップテーブルを備える、請求項3に記載の方法。
- 前記処理アルゴリズムが、暗号アルゴリズムを備える、請求項4に記載の方法。
- 保護される前記データ文字列を除く前記パラメーターセットを前記システムに提供するステップと、
前記システムが、前記システムの実行環境から前記データ文字列を取得できるようにするステップと、
をさらに備える請求項1に記載の方法。 - 保護される前記データ文字列を除く前記パラメーターセットを前記システムに提供するステップと、
前記システムが、チャレンジ/レスポンスプロトコルを用いて、前記データ文字列を取得できるようにするステップと、
をさらに備える請求項1に記載の方法。 - 前記システムが、前記システムの一部であるコンピューター実行可能コードから前記データ文字列を導出できるようにするステップをさらに備える、請求項1に記載の方法。
- 前記コンピューター実行可能コードは、前記システムの信ぴょう性を立証するため、又は許可制御を行使するための命令セットの少なくとも一部を備える、請求項8に記載の方法。
- 保護される前記データ文字列は、
ハードウェア識別子、
処理されるコンテンツの一部、
コンピューター実行可能コード、
プロセッサー命令、
パスワード、又は
チャレンジ/レスポンスプロトコルを用いて前記システムが取得するレスポンス、
の少なくとも1つの表現を備える、請求項1に記載の方法。 - 前記パラメーターセットが、複数のルックアップテーブルを備え、かつ前記パラメーターセットを計算するステップが、
各ルックアップテーブルが入力バイトの一部を出力バイトにマッピングする、第1の複数のルックアップテーブルTiを提供するステップと、
第2の複数のルックアップテーブルT'iを生成するため、1つ又は複数の前記ルックアップテーブルTiの複数のエレメントを一連のバイトaiに組み合わせるステップであって、前記一連のバイトが、前記第2ルックアップテーブルの既定部分が、保護される前記データ文字列を含むように選択され、かつ前記第2の複数のルックアップテーブルそれぞれからの前記出力バイトの組み合わせが、任意に与えられた入力バイトに対して前記第1の複数のルックアップテーブルを使用して達成されたものと同じになるように選択される、前記組み合わせるステップと、
を備える請求項1に記載の方法。 - 複数のプログラムビットを備えるプログラムコードを提供するステップを更に有し、
前記保護されるデータ文字列が前記プログラムコードの少なくとも一部である、
請求項11に記載の方法。 - 前記パラメーターセットを計算するステップが、
暗号鍵を表すルックアップテーブルのネットワークを計算するステップと、
前記ルックアップテーブルの少なくとも1つに含めるため、保護される前記データ文字列の少なくとも1ワードを選択するステップと、
前記ルックアップテーブルのエレメントに変換を適用して、前記ワードを前記ルックアップテーブルの少なくとも1つに含めるステップと、
前記変換の効果を反転する補償変換を適用して、前記変換を補償するステップと、
ルックアップテーブルの前記変換されたネットワークを前記パラメーターとして使用するステップと、
を備える請求項1に記載の方法。 - 保護される前記データ文字列がコンピューター実行可能コードのビット表現である、請求項13に記載の方法。
- ルックアップテーブルの前記ネットワークにおける第1ルックアップテーブルの出力エンコードと、ルックアップテーブルの前記ネットワークにおける第2ルックアップテーブルの入力デコードと、を備え、
前記選択されたワードが、前記第1ルックアップテーブルと、前記第2ルックアップテーブルとの少なくとも1つに含まれるように、前記入力デコードが、前記出力エンコードの効果を反転させる、請求項13に記載の方法。 - 前記選択されたワードが、前記第1ルックアップテーブルに含まれ、前記方法が、
ルックアップテーブルの前記ネットワークにおける第3ルックアップテーブルの出力エンコードと、
前記第1ルックアップテーブルの入力デコードとを備え、
前記第1ルックアップテーブルにおいて前記選択されたワードを位置づけるために、前記第1ルックアップテーブルの前記入力デコードが、前記第3ルックアップテーブルの前記出力エンコードの効果を反転する、
請求項15に記載の方法。 - 前記システムに、
中間結果の第1セットを取得するため、前記ネットワークのルックアップテーブルの第1セットを前記デジタルデータのビット文字列に適用させ、
中間結果の第2セットを取得するため、前記ネットワークのルックアップテーブルの第2セットを前記デジタルデータの前記ビット文字列に適用させ、ここで、ルックアップテーブルの前記第2セットのビット表現が、保護されるべき前記データ文字列を含み、
第3中間結果を取得するため、前記第1及び第2の中間結果を組み合わさせ、
前記第3中間結果に基づいて処理済みデジタルデータを計算させる、
請求項3に記載の方法。 - 第2システムの完全性を保護するための第1システムであって、前記第1システムが、
保護されるべきデータ文字列を決定するための文字列決定子であって、前記データ文字列の完全性が、前記第2システムの前記完全性の指標となる、文字列決定子と、
少なくとも部分的には既定のデータ処理関数を表すパラメーターセットを計算するためのパラメタライザーであって、前記データ文字列を前記パラメーターセットのビット表現に組み込むために、前記パラメーターセットにおける冗長を使用する、パラメタライザーと、
前記第2システムに、前記パラメーターセットに従ってデータを処理させるための手段であって、前記パラメーターセットの前記ビット表現における前記データ文字列の変更が、前記システムに、前記データ処理関数に従った前記データの処理能力を失わせる手段と
を備える、システム。 - 請求項1に記載の方法をプロセッサーに実行させるための命令を備える、コンピュータープログラム。
- 保護されるべきデータ文字列を格納するためのメモリーであって、前記データ文字列の完全性が、前記データ処理システムの前記完全性の指標となる、メモリーと、
少なくとも部分的には既定のデータ処理関数を表すパラメーターセットを格納するためのメモリーであって、前記データ文字列を前記パラメーターセットのビット表現に組み込むために前記パラメーターセットにおける冗長を使用する、メモリーと、
前記パラメーターセットに従ってデータを処理するための処理モジュールであって、前記パラメーターセットの前記ビット表現における前記データ文字列の変更が前記システムに、前記データ処理関数に従った前記データの処理能力を失わせる処理モジュールと
を備える、データ処理システム。 - 少なくとも部分的にはデータ処理関数を表すパラメーターセットに従ってプロセッサーにデータを処理させるための命令を備えるコンピュータープログラムであって、
保護されるべきデータ文字列の完全性が、前記コンピュータープログラム製品の完全性の指標となり、
前記データ文字列を前記パラメーターセットのビット表現に組み込むために、前記パラメーターセットにおける冗長を使用し前記パラメーターセットの前記ビット表現における前記データ文字列の変更が、前記システムに、前記データ処理関数に従った前記データの処理能力を失わせる、コンピュータープログラム。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP06110974 | 2006-03-10 | ||
EP06110974.0 | 2006-03-10 | ||
EP06116693.0 | 2006-07-06 | ||
EP06116693 | 2006-07-06 | ||
EP06117036.1 | 2006-07-12 | ||
EP06117036 | 2006-07-12 | ||
EP07102674.4 | 2007-02-20 | ||
EP07102674 | 2007-02-20 | ||
PCT/IB2007/050640 WO2007105126A2 (en) | 2006-03-10 | 2007-02-28 | Method and system for obfuscating a cryptographic function |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009529819A true JP2009529819A (ja) | 2009-08-20 |
JP5249053B2 JP5249053B2 (ja) | 2013-07-31 |
Family
ID=38179640
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008557864A Expired - Fee Related JP5249053B2 (ja) | 2006-03-10 | 2007-02-28 | データ処理システムの完全性 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8479016B2 (ja) |
EP (1) | EP1997265B1 (ja) |
JP (1) | JP5249053B2 (ja) |
CN (1) | CN101401348B (ja) |
WO (1) | WO2007105126A2 (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009543498A (ja) * | 2006-07-12 | 2009-12-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | デジタルデータ処理装置の耐改竄性 |
JP2010510539A (ja) * | 2006-11-17 | 2010-04-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ホワイトボックス実施のための暗号化方法 |
JP2010539535A (ja) * | 2007-09-13 | 2010-12-16 | イルデト・ビー・ヴイ | コンテンツの暗号処理 |
JP2011514091A (ja) * | 2008-03-05 | 2011-04-28 | イルデト・ビー・ヴイ | 暗号システム |
JP5861018B1 (ja) * | 2012-12-21 | 2016-02-16 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | テーブルネットワークによって構成されたコンピューティングデバイス |
JP2016505891A (ja) * | 2012-12-21 | 2016-02-25 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | テーブルネットワークを有する計算装置 |
JP2017044757A (ja) * | 2015-08-24 | 2017-03-02 | 富士電機株式会社 | 情報処理装置及び情報処理方法 |
JP2018097192A (ja) * | 2016-12-14 | 2018-06-21 | Kddi株式会社 | ストリーム暗号における内部状態の初期化装置、方法及びプログラム |
Families Citing this family (50)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700915B2 (en) | 2006-07-12 | 2014-04-15 | Irdeto Corporate B.V. | Method and system for verifying authenticity of at least part of an execution environment for executing a computer module |
JP5496880B2 (ja) * | 2007-05-22 | 2014-05-21 | イルデト・コーポレート・ビー・ヴイ | データセキュリティ |
US8634553B2 (en) | 2007-11-05 | 2014-01-21 | Sumitomo Electric Industries, Ltd. | Encryption key generation device |
EP2238709A1 (en) * | 2008-01-31 | 2010-10-13 | Irdeto B.V. | Securing a smart card |
US8670559B2 (en) | 2008-03-05 | 2014-03-11 | Irdeto Corporate B.V. | White-box implementation |
EP2669789A3 (en) * | 2008-05-07 | 2014-06-25 | Irdeto Corporate B.V. | Exponent obfuscation |
US8171306B2 (en) * | 2008-11-05 | 2012-05-01 | Microsoft Corporation | Universal secure token for obfuscation and tamper resistance |
KR101715027B1 (ko) * | 2009-03-10 | 2017-03-22 | 이르데토 비.브이. | 입력 의존형 인코딩들을 이용한 화이트-박스 암호화 시스템 |
EP2443786A1 (en) * | 2009-06-19 | 2012-04-25 | Irdeto B.V. | White-box cryptographic system with configurable key using intermediate data modification |
US8812959B2 (en) * | 2009-06-30 | 2014-08-19 | International Business Machines Corporation | Method and system for delivering digital content |
US9274976B2 (en) * | 2010-11-05 | 2016-03-01 | Apple Inc. | Code tampering protection for insecure environments |
US9432180B2 (en) * | 2011-06-03 | 2016-08-30 | Harris Corporation | Method and system for a programmable parallel computation and data manipulation accelerator |
US8605894B2 (en) * | 2011-07-14 | 2013-12-10 | Apple Inc. | Cryptographic process execution protecting an input value against attacks |
US9111072B1 (en) | 2011-08-23 | 2015-08-18 | Tectonic Labs, LLC | Anti-reverse engineering unified process |
US9189425B2 (en) * | 2011-09-01 | 2015-11-17 | Apple Inc. | Protecting look up tables by mixing code and operations |
FR2995111B1 (fr) * | 2012-09-04 | 2015-07-24 | Morpho | Protection contre canaux auxiliaires |
US10103876B2 (en) * | 2012-10-17 | 2018-10-16 | Synopsys, Inc. | System and method for multichannel cryptographic processing |
CN105359450B (zh) * | 2013-03-27 | 2020-08-07 | 爱迪德技术有限公司 | 防篡改密码算法实现 |
US9454653B1 (en) * | 2014-05-14 | 2016-09-27 | Brian Penny | Technologies for enhancing computer security |
CN105765896B (zh) * | 2013-12-05 | 2020-02-07 | 皇家飞利浦有限公司 | 用于表格网络的迭代应用的计算设备 |
CN106464484B (zh) * | 2014-03-31 | 2019-08-09 | 爱迪德技术有限公司 | 预定函数的混淆执行 |
KR20150123476A (ko) * | 2014-04-25 | 2015-11-04 | 한국전자통신연구원 | 부채널 공격 방지를 위한 대칭키 암호 알고리즘의 함수 마스킹 장치 및 그 방법 |
US9641337B2 (en) * | 2014-04-28 | 2017-05-02 | Nxp B.V. | Interface compatible approach for gluing white-box implementation to surrounding program |
EP2940925B1 (en) * | 2014-04-28 | 2017-12-27 | Nxp B.V. | Implementing use-dependent security settings in a single white-box implementation |
US9485226B2 (en) | 2014-04-28 | 2016-11-01 | Nxp B.V. | Method for including an implicit integrity or authenticity check into a white-box implementation |
EP2940677A1 (en) | 2014-04-28 | 2015-11-04 | Nxp B.V. | Method for including an implicit integrity or authenticity check into a white-box implementation |
US9338145B2 (en) * | 2014-04-28 | 2016-05-10 | Nxp B.V. | Security patch without changing the key |
US9380033B2 (en) | 2014-04-28 | 2016-06-28 | Nxp B.V. | Implementing use-dependent security settings in a single white-box implementation |
US10412054B2 (en) | 2014-06-24 | 2019-09-10 | Nxp B.V. | Method for introducing dependence of white-box implementation on a set of strings |
EP2960891B1 (en) | 2014-06-24 | 2019-01-16 | Nxp B.V. | Method for introducing dependence of white-box implementationon a set of strings |
DE102014016548A1 (de) * | 2014-11-10 | 2016-05-12 | Giesecke & Devrient Gmbh | Verfahren zum Testen und zum Härten von Softwareapplikationen |
BR112017013588A2 (pt) * | 2014-12-24 | 2018-03-06 | Koninklijke Philips Nv | sistema para processamento criptográfico, dois sistemas, unidade de etapa para processamento criptográfico, método de processamento criptográfico, e produto de programa de computador |
US10922292B2 (en) | 2015-03-25 | 2021-02-16 | WebCloak, LLC | Metamorphic storage of passcodes |
CN108064381B (zh) * | 2015-03-30 | 2021-06-18 | 爱迪德技术有限公司 | 用于数据保护的方法 |
US10505709B2 (en) * | 2015-06-01 | 2019-12-10 | Nxp B.V. | White-box cryptography interleaved lookup tables |
US9916472B2 (en) | 2015-07-22 | 2018-03-13 | International Business Machines Corporation | Obfuscation and protection of data rights |
DE102015014038A1 (de) * | 2015-10-30 | 2017-05-04 | Giesecke & Devrient Gmbh | Alternative Darstellung des Krypto-Algorithmus DES |
GB201519612D0 (en) * | 2015-11-06 | 2015-12-23 | Nagravision Sa | Key sequence generation for cryptographic operations |
NL2015745B1 (en) * | 2015-11-09 | 2017-05-26 | Koninklijke Philips Nv | A cryptographic device arranged to compute a target block cipher. |
US10432596B2 (en) * | 2016-02-09 | 2019-10-01 | Kåre L. Andersson | Systems and methods for cryptography having asymmetric to symmetric key agreement |
KR101933649B1 (ko) * | 2016-05-27 | 2018-12-28 | 삼성에스디에스 주식회사 | 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법 |
US10389517B2 (en) | 2016-06-27 | 2019-08-20 | Nxp B.V. | Using secure key storage to bind a white-box implementation to one platform |
DE102016008456B4 (de) * | 2016-07-12 | 2018-03-29 | Giesecke+Devrient Mobile Security Gmbh | White Box AES Implementierung |
FR3078464A1 (fr) * | 2018-02-26 | 2019-08-30 | Stmicroelectronics (Rousset) Sas | Procede et circuit de mise en oeuvre d'une table de substitution |
US11218291B2 (en) * | 2018-02-26 | 2022-01-04 | Stmicroelectronics (Rousset) Sas | Method and circuit for performing a substitution operation |
FR3078463A1 (fr) * | 2018-02-26 | 2019-08-30 | Stmicroelectronics (Rousset) Sas | Procede et dispositif de realisation d'operations en table de substitution |
JP7383985B2 (ja) * | 2019-10-30 | 2023-11-21 | 富士電機株式会社 | 情報処理装置、情報処理方法及びプログラム |
FR3103591A1 (fr) * | 2019-11-22 | 2021-05-28 | Orange | Procédé sécurisé d’échange de données entre un terminal et un serveur |
CN111555862B (zh) * | 2020-05-13 | 2023-04-28 | 华南师范大学 | 基于掩码保护的随机冗余轮函数的白盒aes实现方法 |
US12099622B2 (en) * | 2020-12-21 | 2024-09-24 | Cryptography Research, Inc | Protection of neural networks by obfuscation of activation functions |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002116691A (ja) * | 2000-10-10 | 2002-04-19 | Mitsubishi Electric Corp | 非線形変換方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体及び非線形変換装置 |
WO2005060147A1 (en) * | 2003-12-11 | 2005-06-30 | Koninklijke Philips Electronics N.V. | Block ciphering system, using permutations to hide the core ciphering function of each encryption round |
JP2007298847A (ja) * | 2006-05-02 | 2007-11-15 | Kddi Corp | プログラム内データの保護装置、保護方法およびプログラム |
JP2008518262A (ja) * | 2004-10-28 | 2008-05-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 暗号化関数を難読化するための方法及びシステム |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1227859C (zh) | 1998-06-25 | 2005-11-16 | 皇家菲利浦电子有限公司 | 同步数据流发生器、生成数据流的方法、加密器站、解密器站及消费电子装置 |
FR2792141B1 (fr) | 1999-04-09 | 2001-06-15 | Bull Cp8 | Procede de securisation d'un ou plusieurs ensembles electroniques mettant en oeuvre un meme algorithme cryptographique avec cle secrete, une utilisation du procede et l'ensemble electronique |
CA2327911A1 (en) * | 2000-12-08 | 2002-06-08 | Cloakware Corporation | Obscuring functions in computer software |
US7142675B2 (en) * | 2002-02-12 | 2006-11-28 | City University Of Hong Kong | Sequence generator and method of generating a pseudo random sequence |
FR2856539A1 (fr) * | 2003-06-17 | 2004-12-24 | France Telecom | Procede et systeme tracables de chiffrement et/ou de dechiffrement d'informations, et supports d'enregistrement pour la mise en oeuvre du procede |
CN1245695C (zh) * | 2003-09-15 | 2006-03-15 | 苏盛辉 | 一种基于杠杆函数和超递增序列的公钥加密方法 |
US7363620B2 (en) | 2003-09-25 | 2008-04-22 | Sun Microsystems, Inc. | Non-linear execution of application program instructions for application program obfuscation |
US20060002548A1 (en) * | 2004-06-04 | 2006-01-05 | Chu Hon F | Method and system for implementing substitution boxes (S-boxes) for advanced encryption standard (AES) |
US7715555B2 (en) * | 2004-09-07 | 2010-05-11 | Broadcom Corporation | Method and system for extending advanced encryption standard (AES) operations for enhanced security |
EP1646174A1 (en) * | 2004-10-07 | 2006-04-12 | Axalto SA | Method and apparatus for generating cryptographic sets of instructions automatically and code generation |
-
2007
- 2007-02-28 WO PCT/IB2007/050640 patent/WO2007105126A2/en active Application Filing
- 2007-02-28 CN CN2007800085510A patent/CN101401348B/zh not_active Expired - Fee Related
- 2007-02-28 EP EP07705965.7A patent/EP1997265B1/en active Active
- 2007-02-28 JP JP2008557864A patent/JP5249053B2/ja not_active Expired - Fee Related
- 2007-02-28 US US12/282,175 patent/US8479016B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002116691A (ja) * | 2000-10-10 | 2002-04-19 | Mitsubishi Electric Corp | 非線形変換方法及びプログラムを記録したコンピュータ読み取り可能な記録媒体及び非線形変換装置 |
WO2005060147A1 (en) * | 2003-12-11 | 2005-06-30 | Koninklijke Philips Electronics N.V. | Block ciphering system, using permutations to hide the core ciphering function of each encryption round |
JP2007514193A (ja) * | 2003-12-11 | 2007-05-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 各暗号化ラウンドのコア暗号化関数を隠蔽するために置換を用いたブロック暗号化システム |
JP2008518262A (ja) * | 2004-10-28 | 2008-05-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 暗号化関数を難読化するための方法及びシステム |
JP2007298847A (ja) * | 2006-05-02 | 2007-11-15 | Kddi Corp | プログラム内データの保護装置、保護方法およびプログラム |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009543498A (ja) * | 2006-07-12 | 2009-12-03 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | デジタルデータ処理装置の耐改竄性 |
US8543835B2 (en) | 2006-07-12 | 2013-09-24 | Irdeto B.V. | Tamper resistance of a digital data processing unit |
JP2010510539A (ja) * | 2006-11-17 | 2010-04-02 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ホワイトボックス実施のための暗号化方法 |
JP2010539535A (ja) * | 2007-09-13 | 2010-12-16 | イルデト・ビー・ヴイ | コンテンツの暗号処理 |
JP2011514091A (ja) * | 2008-03-05 | 2011-04-28 | イルデト・ビー・ヴイ | 暗号システム |
US9710623B2 (en) | 2008-03-05 | 2017-07-18 | Irdeto B.V. | Cryptographic system |
JP5861018B1 (ja) * | 2012-12-21 | 2016-02-16 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | テーブルネットワークによって構成されたコンピューティングデバイス |
JP2016505891A (ja) * | 2012-12-21 | 2016-02-25 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | テーブルネットワークを有する計算装置 |
JP2016507940A (ja) * | 2012-12-21 | 2016-03-10 | コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. | テーブルネットワークによって構成されたコンピューティングデバイス |
US10180824B2 (en) | 2012-12-21 | 2019-01-15 | Koninklijke Philips N.V. | Computing device comprising a table network |
JP2017044757A (ja) * | 2015-08-24 | 2017-03-02 | 富士電機株式会社 | 情報処理装置及び情報処理方法 |
JP2018097192A (ja) * | 2016-12-14 | 2018-06-21 | Kddi株式会社 | ストリーム暗号における内部状態の初期化装置、方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP1997265A2 (en) | 2008-12-03 |
US8479016B2 (en) | 2013-07-02 |
US20090158051A1 (en) | 2009-06-18 |
WO2007105126A2 (en) | 2007-09-20 |
JP5249053B2 (ja) | 2013-07-31 |
EP1997265B1 (en) | 2020-08-05 |
WO2007105126A3 (en) | 2007-11-15 |
CN101401348B (zh) | 2011-08-31 |
CN101401348A (zh) | 2009-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5249053B2 (ja) | データ処理システムの完全性 | |
US8543835B2 (en) | Tamper resistance of a digital data processing unit | |
JP5688528B2 (ja) | 入力に依存する符号化を用いたホワイトボックス暗号システム | |
US8306216B2 (en) | Method and system for tracking or identifying copy of implementation of computational method, and computation system | |
EP3174238B1 (en) | Protecting white-box feistel network implementation against fault attack | |
US20100080395A1 (en) | Cryptographic method for a white-box implementation | |
US9602273B2 (en) | Implementing key scheduling for white-box DES implementation | |
CN106888081B (zh) | 白盒实施方案内中间值的宽编码 | |
CN107273724B (zh) | 为白盒实施方案的输入和输出加水印 | |
CN106209346B (zh) | 白盒密码技术交错查找表 | |
CN105978680B (zh) | 一种加密钥的加密运算方法 | |
US9025765B2 (en) | Data security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100226 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20100226 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100405 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120814 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121112 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130208 |
|
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: 20130312 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130411 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160419 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |