JP6502945B2 - 安全なデータ変換 - Google Patents

安全なデータ変換 Download PDF

Info

Publication number
JP6502945B2
JP6502945B2 JP2016540585A JP2016540585A JP6502945B2 JP 6502945 B2 JP6502945 B2 JP 6502945B2 JP 2016540585 A JP2016540585 A JP 2016540585A JP 2016540585 A JP2016540585 A JP 2016540585A JP 6502945 B2 JP6502945 B2 JP 6502945B2
Authority
JP
Japan
Prior art keywords
value
function
memory
transformation
look
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.)
Active
Application number
JP2016540585A
Other languages
English (en)
Other versions
JP2017501447A (ja
Inventor
マティアス ヒューベルテュス メヒティルディス アントニウス ホリッセン,パウリュス
マティアス ヒューベルテュス メヒティルディス アントニウス ホリッセン,パウリュス
マリニュス ヘラルデュス マリア トールハイゼン,リュドフィキュス
マリニュス ヘラルデュス マリア トールハイゼン,リュドフィキュス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
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 Koninklijke Philips NV filed Critical Koninklijke Philips NV
Publication of JP2017501447A publication Critical patent/JP2017501447A/ja
Application granted granted Critical
Publication of JP6502945B2 publication Critical patent/JP6502945B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Facsimile Transmission Control (AREA)

Description

本発明はデータ値の暗号化された表現を使ってデータの変換を計算することに関する。
近年、コンピュータ動作をより安全にするために開発がなされている。たとえば、装置はある種のデータを復号することが許容されることがあるが、この能力は他の装置またはユーザーに簡単に移行可能であるべきではない。
ホワイトボックス暗号は、関数評価が事前計算された諸ルックアップテーブルによって実行される技術である。この技術は、プログラムのコードへのアクセスをもちうる攻撃者から機能を隠すために使われることができる。それらのルックアップテーブルは、テーブル検索のシーケンスが異なる諸ルックアップテーブルを使って実行されるような仕方で設計されてもよい。それらのルックアップテーブルはさらに、相続くテーブル検索の間の中間結果がランダムな全単射によってエンコードされるような仕方で設計されてもよい。ホワイトボックス技術はたとえば非特許文献1から知られている。
特許文献1は、暗号学的処理方法において使用するために好適な対応表を生成する方法であって、複数の入力データ項目および出力データ項目を表中に格納することを含み、各入力データ項目は表中で少なくとも一つの出力データ項目と関連付けられるものを開示している。各入力データ項目について、出力データ項目の少なくとも一つが、第一の補助データ項目と、入力データ項目に依存する暗号化された中間データ項目とに符号化関数を適用することによって得られる。
米国特許出願公開第2012/0300922A1号
S. Chow, P.A. Eisen, H.Johnson, and P.C. van Oorschot、"White-Box Cryptography and an AES Implementation"、Proceeding SAC 2002 Revised Papers from the 9th Annual International Workshop on Selected Areas in Cryptography, pp.250-270, Springer-Verlag London, UK
データの安全な処理を許容するシステムであって、攻撃に対して改善された保護をもつものを有することが有利であろう。
第一の側面では、本発明は、データ値の暗号化された表現を使って、i=1,…,nであるとして、該データ値のn個の変換Tiの安全なシーケンスを実行するシステムであって:
入力データ値w0に変換を適用してw0の不明化された〔難読化された(obfuscated)〕表現(X0,Y0)を得る第一の変換手段であって、前記不明化された表現は入力変数rに依存する冗長性をもつ、手段と;
i=1,…,n−1のそれぞれについて、
Figure 0006502945
のように(Xi-1,Yi-1)から(Xi,Yi)を計算するよう変換
Figure 0006502945
を適用する第二の変換手段と;
wn=G(Xi-1,Yi-1,r)を計算することによってXn-1,Yn-1およびrに依存する変換Gを適用して、変換の前記シーケンスの結果を得る第三の変換手段とを有しており、
Figure 0006502945
であり、
i=0,1,…,nについて(Xi,Yi)=Ψi(wii)であり、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された不明化関数であり、Ψiは(Xi,Yi)=Ψi(wii)となるよう(Xii)の任意の値を(wi,Yi)の値にマッピングする一対一マッピングがあるという条件を満たし;
σ0はrに依存し;
あらかじめ決められた関数Tiおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)であり、w1,…,wn-1およびσ0,…,σnは当該システムによって明示的に計算されない、
システムを提供する。
ここで、演算子Aは、
Figure 0006502945
である場合かつその場合にのみ「演算子
Figure 0006502945
に関して線形である」と考えられる。
このシステムは、入力値を変更してシステム挙動を解析することによりシステムの内部のはたらきを解析するのが、より難しくなるという利点がある。たとえば、攻撃者による中間値(たとえば何らかのiについてのXiまたはYi)の変更は状態σnの変更を引き起こしうるからである。このため、第五の変換手段の結果は予測不可能になる。変換F(Xn,r)は、σの期待される値をXnに存在するσに関係する情報と混合するためにrを使うからである。rとXnに存在するσに関係する情報とがσの同じ値に対応しなければ、第五の変換手段の出力は異常になることがあり、このことはシステムを理解するために攻撃者が実行しなければならない解析を複雑にする。
第三の変換手段は、Xn=un(Xn-1,Yn-1)のような変換unを適用するための第四の変換手段と;wn=F(Xn,r)を計算することによって変換Fを適用して前記変換のシーケンスの帰結を得るための第五の変換手段を有していてもよい。ここで、
Figure 0006502945
である。これは効率的な実装を許容する。変換が諸ルックアップテーブルの形で実装される場合、この特徴は低減されたメモリ・スペースでのルックアップテーブルの実装を許容する。
一例では、i=0,1,…,nについて(Xi,Yi)=Ψi(wii)は次のように定義される。
Figure 0006502945
ここで、
Figure 0006502945
は演算子であり、
Ai、Bi、CiおよびDiは演算子
Figure 0006502945
に関して線形な演算子であり、演算子AnおよびDnは可逆であり、(u,v)を
Figure 0006502945
にマッピングする演算子Eiは可逆であり、
Ψi X、Ψi Y、φi 1、φi 2は可逆なマッピングである。
不明化関数Ψiのこの例はシステムの比較的簡単な設計を提供する。これらの演算子Ψi XおよびΨi YはΨiを置換または実装するために使用されてもよい。この例では、演算子Gは、
Figure 0006502945
が一般に成り立つ場合に演算子
Figure 0006502945
に関して線形であると考えられる。
たとえば、演算子AiおよびDiはすべてのi=0,1,…,nについて可逆な線形演算子である。
たとえば、rはw0に等しい。これは、状態変数σ0がw0に依存することを意味する。入力データw0と状態変数σ0の間の関係は、第一の変換手段によって実装される関係を用いてこの関係を不明化することによって、たとえば値σ0がシステム中の中間結果として計算されないような仕方でルックアップテーブルを使って入力データw0と不明化された表現(X0,Y0)との間の関係を実装することによって、攻撃者に対して不明瞭なままとなりうる。
たとえば、
Figure 0006502945
Figure 0006502945
の計算量よりも小さい計算量をもつ。これは、変換Fが比較的小さな計算量をもつことを許容する。たとえば、
Figure 0006502945
の計算量はnに依存しない。
たとえば、
Figure 0006502945
は恒等関数である。これは、F(Xn,r)を設計するのを簡単にする。σ0の値も、第一の変換手段におけるそのrへの依存性において暗黙的に使われるからである。
たとえば、演算子
Figure 0006502945
はビット毎のXOR演算である。
たとえば、第一、第二、第三、第四および第五の変換手段のうちの少なくとも一つは、ルックアップテーブルにおいて変換された値を見出すよう構成されている。たとえば、第一、第二および第三の変換手段のそれぞれはルックアップテーブルにおいて変換された値を見出すよう構成されている。もう一つの例では、第一、第二、第四および第五の変換手段のそれぞれはルックアップテーブルにおいて変換された値を見出すよう構成されている。これらの例は、ルックアップテーブルがいかなる使用されるアルゴリズムをも隠すことを許容するため、特に安全な実装を許容する。
もう一つの側面は、データ値の暗号化された表現を使って、i=1,…,nであるとして、該データ値にn個の変換Tiの安全なシーケンスを実行するシステムを提供する方法であって:
第一の変換手段を提供し、入力データ値w0に変換を適用してw0の不明化された表現(X0,Y0)を得るよう該第一の変換手段を構成する段階であって、前記不明化された表現(X0,Y0)は入力変数rに依存する冗長性を含む、段階と;
第二の変換手段を提供し、i=1,…,n−1のそれぞれについて、
Figure 0006502945
のように(Xi-1,Yi-1)から(Xi,Yi)を計算するよう変換
Figure 0006502945
を適用するよう該第二の変換手段を構成する段階と;
第四の変換手段を提供し、Xn=un(Xn-1,Yn-1)のような変換unを適用するよう該第四の変換手段を構成する段階と;
第五の変換手段を提供し、wn=F(Xn,r)のように変換Fを適用して前記変換のシーケンスの帰結を得るよう該第五の変換手段を構成する段階であって、
Figure 0006502945
である、段階とを含み、
i=0,1,…,nについて(Xi,Yi)=Ψi(wii)であり、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された不明化関数であり、Ψiは(Xi,Yi)=Ψi(wii)となるような仕方で(Xii)の任意の値を(wi,Yi)の値にマッピングする一対一マッピングがあるという条件を満たし;
σ0はrに依存し;
あらかじめ決められた関数Tiおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)であり、
前記第一の変換手段、前記第二の変換手段、前記第四の変換手段および前記第五の変換手段はw1,…,wn-1およびσ0,…,σnの値を不明化するよう構成される、
方法を有する。
この方法は前記システムを生成することを許容する。
前記第二の変換手段を構成する段階は、前記関数
Figure 0006502945
のうちの少なくとも一つの関数の少なくとも一つのルックアップテーブルを計算することを含んでいてもよい。ここで、ルックアップテーブルは
Figure 0006502945
を計算することによって(Xi-1,Yi-1)の値を(Xi,Yi)の値にマッピングする。ここで、Ψi-1 inverseはΨi-1の逆関数である。このようにして、ui〔下線付き〕を計算することに関わるアルゴリズム段階が、一つまたは複数のルックアップテーブルに隠されうる。ルックアップテーブルの使用は、上述したホワイトボックス実装を含むさらなる不明化技法を許容する。
あるいはまた、前記第二の変換手段を構成する段階は、関数ui〔下線付き〕のうちの少なくとも一つの関数の少なくとも一つのルックアップテーブルを計算することを含んでいてもよい。ここで、ルックアップテーブルは
Figure 0006502945
を計算することによって(Xi-1,Yi-1)の値を(Xi,Yi)の値にマッピングする。ここで、fi
Figure 0006502945
によって定義される関数を表わし、fi inverseはfiの逆関数である。このようにして、fi、fi inverseおよびTiを計算することに関わるアルゴリズム段階が、一つまたは複数のルックアップテーブルに隠されうる。ルックアップテーブルの使用は、上述したホワイトボックス実装を含むさらなる不明化技法を許容する。
たとえば、rはw0に等しく、前記第三の変換手段を構成する段階は、関数Gを表わす少なくとも一つのルックアップテーブルを計算することを含む。ここで、前記少なくとも一つのルックアップテーブルは(Xi-1,Yi-1,w0)のタプルをwn=G(Xi-1,Yi-1,w0)の対応する値にマッピングする。関係した例において、第五の変換手段を構成する段階は、関数Fを表わす少なくとも一つのルックアップテーブルを計算することを含む。ここで、前記少なくとも一つのルックアップテーブルは(Xn,w0)のペアをwn=F(Xn,w0)の対応する値にマッピングする。これらの例において、GまたはFを計算することに関わるアルゴリズム段階が、一つまたは複数のルックアップテーブルに隠されうる。ルックアップテーブルの使用は、上述したホワイトボックス実装を含むさらなる不明化技法を許容する。
もう一つの側面によれば、データ値の暗号化された表現を使って、i=1,…,nであるとして、該データ値にn個の変換Tiの安全なシーケンスを実行する方法であって:
入力データ値w0に変換を適用してw0の不明化された表現(X0,Y0)を得る段階であって、前記不明化された表現は入力変数rに依存する冗長性を含む、段階と;
i=1,…,n−1のそれぞれについて、
Figure 0006502945
のように(Xi-1,Yi-1)から(Xi,Yi)を計算するよう変換
Figure 0006502945
を適用する段階と;
wn=G(Xi-1,Yi-1,r)を計算することによってXn-1,Yn-1およびrに依存する変換Gを適用して、変換の前記シーケンスの帰結を得る段階とを含んでおり、
Figure 0006502945
であり、
i=0,1,…,nについて(Xi,Yi)=Ψi(wii)であり、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された不明化関数であり、Ψiは(Xi,Yi)=Ψi(wii)となるような仕方で(Xii)の任意の値を(wi,Yi)の値にマッピングする一対一マッピングがあるという条件を満たし;
σ0はrに依存し;
あらかじめ決められた関数Tiおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)であり、
w1,…,wn-1およびσ0,…,σnは変換を適用する上記の諸段階において不明化される、
方法が提供される。
個別的な例では、変換Gを適用する段階は、Xn=un(Xn-1,Yn-1)のような変換unを適用し;wn=F(Xn,r)のように変換Fを適用して前記変換のシーケンスの帰結を得ることを含む。ここで、
Figure 0006502945
である。
もう一つの側面によれば、プロセッサ・システムに上記の方法を実行させるための命令を有するコンピュータ・プログラム・プロダクトが提供される。
当業者には、本発明の上記の特徴が有用と見なされる任意の仕方で組み合わされてもよいことが理解されるであろう。さらに、システムに関して記載された修正および変形は方法およびコンピュータ・プログラム・プロダクトに同様に適用されてもよく、方法に関して記載された修正および変形はシステムおよびコンピュータ・プログラム・プロダクトに同様に適用されてもよい。
下記では、本発明の諸側面が、図面を参照して、例によって明快にされる。図面は図的なものであり、縮尺通りに描かれていない。諸図面を通じて、同様の項目は同じ参照符号で指示されている。
変換のシーケンスを安全に実行するためのシステムのブロック図である。 安全なデータ変換のシーケンスを含む方法を示す図である。 図1に示されるシステムを提供する方法を示す図である。
多くの用途において、入力データw0に対して変換Tを適用することが必要になる。複雑さの理由または他の理由のため、Tが、変換T1,…,Tnを逐次適用することによって計算されることが望ましいことがある。すなわち、1≦i≦nについて、以下の計算段階:
wi=Ti(wi-1)
が実行される。変換T1,…,Tnは、この逐次反復の結果wnがT(w0)と等しいように選ばれる。しかしながら、たとえ悪意のあるユーザーが作業メモリへのアクセスを含め当該装置へのフル・アクセスを有する場合でも、あるいは悪意のあるユーザーがアプリケーションを解析するデバッグ・ツールを使う能力をもつ場合でも、これらの変換において使われるアルゴリズムを隠すこと、および/または中間的な値w1,…,wn-1が悪意のあるユーザーから隠されることが望ましいであろう。
したがって、w1,…,wn-1の値を明示的に計算するのではなく、代替的な値z1,…,zn-1が計算され、その中にそれぞれw1,…,wn-1の値が隠される。z1,…,zn-1の値はw1,…,wn-1よりも多くの情報ビットを含む。値z1,…,zn-1は冗長な状態変数σiの値をも表わすからである。ある好ましい例では、wnの値はznおよびw0から計算される。
以下の説明で使われるいくらかの記法を導入しておく。0≦i≦nについて、wiの潜在的な値の集合はWiによって記される。0≦i≦nについて、空でない「状態集合」Σiは状態変数σiの可能な値を含む。自明なものを避けるため、Σ0は少なくとも二つの要素をもつとする。好ましくは、各Σiは少なくとも二つの要素をもち、より好ましくは各Σiは二つより多くの要素をもつ。0≦i≦n−1について、σi+1=gii)を定義するために秘密の「次状態」関数gii→Σi+1が選ばれる。さらに、σ0=s(w0)となるような秘密の「状態導入」関数s:Wi→Σ0が選ばれる。最後に、0≦i≦nについて、要素数|Wi|・|Σi|の集合Ziおよび秘密の一対一マッピングfi:Wi×Σi→Ziが選ばれる。たとえば、Zi=Wi×Σiである。マッピングfiは、安全なコンピューティング装置によって計算される値ziと(wii)の対応する値との間の関係を記述する。ここで、wiは処理されるデータであり、σiはwiをその表現ziにおいて不明化するのを助ける冗長な状態変数である。
0≦i≦nであるとする。定義により、zi=fi(wii)=fi(Ti(wi-1),gii-1))である。fi-1は可逆なので、wi-1およびσi-1を(wi-1i-1)=fi-1 inverse(zi-1)として計算することが可能である。結果として、まず(wi-1i-1)=fi-1 inverse(zi-1)を、次いでzi=fi(wii)=fi(Ti(wi-1),gii-1))を計算することによってzi-1からziを計算することが可能である。この計算は、(wi-1i-1)または(wii)の中間値を計算することなく、たとえばziおよび対応するzi-1の値を表にすることによって、あるいはzi-1からziを計算する関数
Figure 0006502945
の別の不明化された計算によって、実行されることができる。ziおよび対応するzi-1、(Xi-1,Yi-1)からの(Xi,Yi)
Figure 0006502945
ziは、0≦i≦nについて、zi=(Xi,Yi)というように二つの成分に分けられていてもよいことを注意しておく。すなわち、wiおよびσiのそれぞれの情報は成分XiおよびYiの両方に分配されてもよい。個別的な例では、Zi=Wi×Σiであり、よってXi∈WiかつYi∈Σiである。あるいはまた、Xiは要素数|Wi|の集合から選択され、Yiは要素数|Σi|の集合から選択される。
計算は、(X0,Y0)=f0(w0,s(w0))を使ってw0からz0=(X0,Y0)を計算することによって開始されてもよい。ここで、s(w0)は入力値w0から状態値σ0を計算する関数を表わす。攻撃者からσ0の値を隠すため、数s(w0)およびf0はたとえばルックアップテーブルにおいて組み合わされてもよい。あるいはまた、σ0の値はw0の代わりに別の入力データ要素rに依存してもよい。
ペアzi=(Xi,Yi)が電子装置によって計算される仕方(上述)のため、これらの値zi=(Xi,Yi)は入力値w0および任意的には追加の入力要素rに依存することになる。同様に、σiの値(電子装置によって計算されないが)はw0および/または任意的に追加的な入力要素rに依存する。
電子装置が上記の仕方でzn=(Xn,Yn)を計算する場合、該電子装置はwn=fn inverse(zn)を計算することができる。しかしながら、適正な制約条件があれば、Xnおよびw0から(および/またはσ0がrに依存する場合にはrから)wnを計算することも可能である。この制約条件は次のようなものである:w≠w'として任意の二つの値w∈Wnおよびw'∈Wnおよび任意のσ∈Σnについて、(X,Y)=fn(w,σ)および(X',Y')=fn(w',σ)であるとして、X≠X'が成り立つべきである。この性質が成り立てば、Xnおよびw0のペア(またはXnおよびrのペア)をwnの対応する値にマッピングする変換、たとえばルックアップテーブルを構築することが可能である。そのような場合、Ynを計算することは必要ない。これは、Xiおよび/またはYiを変えることによって電子装置から情報を抽出することをより難しくしうる。
この記述では、fiはΨiによって記されることもある。これらの記述はこの記述では同じ意味をもつ。よって、0≦i≦nについて、(Xi,Yi)=Ψi(wii)である。ここで、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された不明化関数である。Ynの値を必要とすることなくXnおよびσnに基づいてwnを決定できるために、関数Ψnは、(Xn,Yn)=Ψn(wnn)となるような仕方で(Xnn)の任意の値を(wn,Yn)の値にマッピングする一対一マッピングがあるという条件を満たす。そのような関数は試行錯誤によって設計されうる。
以下では、アルゴリズムのいくつかの構成要素についてより詳細な例が与えられる具体例を記述する。この例では、すべてのiについてWi={0,1}pおよびΣi={0,1}qとなるような正の整数pおよびqがある。さらに、Zi=Wi×Σi={0,1}p×{0,1}qである。これはZi={0,1}p+qと置くことと等価であることを注意しておく。
一層詳細な例では、先の例において選択された集合に加えて、関数fiはfi(wii)=(Xi,Yi)となるよう選択される。ここで、
Figure 0006502945
ここで、
Figure 0006502945
はビット毎のモジュロ演算を示す。Aiは{0,1}pから{0,1}pの上への可逆な線形マッピングである。Diは{0,1}qから{0,1}qの上への可逆な線形マッピングである。Biは{0,1}qから{0,1}pの上への線形マッピングである。Ciは{0,1}pから{0,1}qの上への線形マッピングである。関数の上付き添え字はインデックスを表わす。(u,v)を
Figure 0006502945
にマッピングする線形マッピングEiは可逆である。φi 1およびΨi Xは{0,1}p上での可逆なマッピングであり、これは非線形であってもよい。φi 2およびΨi Yは{0,1}q上での可逆なマッピングであり、これは非線形であってもよい。p=qの場合、BiおよびCiも可逆であることが好ましい。p≠qの場合には、線形マッピングBiおよびCiに対応する行列はフルの階数をもつことが好ましい。
原理的には、上記の式を使ってzn=(Xn,Yn)からwnの値を計算することが可能である。しかしながら、ある好ましい実施形態では、装置はYnを計算せず、Xnを計算するだけである。その場合、装置はXnおよびw0(あるいは場合によってはr)からwnを計算するよう構成される。
Figure 0006502945
であることを注意しておく。Ψn Xは可逆なので、所与のXnから
Figure 0006502945
の値を計算することが可能である。しかしながら、σnはw0(あるいは場合によってはr)から得られうるので、w0(あるいは場合によってはr)からBnn 2n))を計算することが可能である。この情報から、wnが決定されることができる。好ましくは、wnは、この段落で言及した中間結果のいずれも明かすことなく、Xnおよびw0から直接得られる。たとえば、関係が表または複数の表に記憶されていてもよい。たとえばwnの一つまたは複数のビットがw0の全部のビットおよび/またはXnの全部のビットには依存しない場合に、複数の表が使用されうる。
たとえば、
Figure 0006502945
Figure 0006502945
の計算量よりも実質的に小さい計算量をもつ。これは、比較的小さな計算量をもってXnおよびrからwnが計算できることを許容する。たとえば、
Figure 0006502945
の計算量はnに依存しない。
たとえば、
Figure 0006502945
は恒等関数である。これは、F(Xn,r)を設計するのを簡単にする。σ0の値も、第一の変換手段におけるそのrへの依存性において暗黙的に使われるからである。
図1は、変換の安全なシーケンスを実行するためのシステムの実施形態を示している。図面において、いくつかの処理手段が長方形によって表わされており、時に長方形内に本稿で使われる対応する記号をもつ。さらに、データ要素はその変数記号および所与の長さのビット・シーケンスを象徴する描かれた配列によって示されている。しかしながら、各データ要素のビット・シーケンスの実際の長さは変えられてもよい。図面はデータ要素の実際の長さを示すものではない。システムは、適正にプログラムされたコンピュータ、スマートフォンまたはスマートカードのような単一の処理装置上で実装されてもよい。システムは、いくつかの異なる処理装置上に分散されてもよい。
システムは、入力データ値w0を決定するためのデータ入力ユニット111を有する。たとえば、入力ユニット111は、装置の通信サブシステムを介して入力データ値を受領するよう構成される。あるいはまた、入力ユニット111は、内部メモリまたは外部メモリでありうるメモリから入力データ値を受領するよう構成されていてもよい。システムはさらに、入力データ値w0に変換を適用して(X0,Y0)=f0(w0,s(w0))のようにw0の不明化された表現(X0,Y0)を得る第一の変換手段101を有する。個別的な例では、w0、σ0=s(w0)、X0およびY0はみな同じビット数をもつデータ値である。
システムはさらに、第二の変換手段102を有する。第二の変換手段102は一つまたは複数のさらなる変換手段110を有する。さらなる変換手段110は、i=1,…,n−1として、iの特定の値について
Figure 0006502945
を実装する。第二の変換手段102は、一つまたは複数の反復工程において前記の不明化されたデータに前記さらなる変換手段110を適用するよう構成されている。より具体的には、前記さらなる変換手段110はi=1,…,n−1について、
Figure 0006502945
を計算する。ここで、nは実行されるべき変換の数である。前記さらなる変換手段110は各反復工程において異なる演算を実行してもよいことは理解されるであろう。すなわち、
Figure 0006502945
は各i=1,…,n−1について異なる演算であってもよい。しかしながら、
Figure 0006502945
の一部または全部が同一の演算であることができるので、これは制限ではない。
システムはさらに、wn=G(Xn-1,Yn-1,r)を計算することによってXn-1,Yn-1およびrに依存する変換Gを適用して、変換の前記シーケンスの帰結を得る第三の変換手段を有している。ここで、
Figure 0006502945
である。ここで、GはG(Xn-1,Yn-1,r)=F(un(Xn-1,Yn-1),r)として定義される。図1に示した例示的実施形態では、第三の変換手段は第四の変換手段103および第五の変換手段104の組み合わせとして実装される。
第四の変換手段103はXn=un(Xn-1,Yn-1)となるよう変換unを使ってXnを計算するよう構成されている。こうして、Ynの計算は省略されうる。
第五の変換手段104は、wn=F(Xn,w0)のように関数Fを使ってwnを計算するために、第四の変換手段103からの値Xnと、値w0とを受領するよう構成されている。たとえば、第五の変換手段104は値w0をデータ入力ユニット111から受領する。
システムはさらに、第五の変換手段104からwnの計算された値を受領して、wnの該値をシステムの他のコンポーネント(図示せず)に転送するおよび/またはwnの該値をメモリに記憶するよう構成された出力ユニット112を有する。たとえば、出力ユニット112は、データwnの視覚化を表示装置上に表示するおよび/または該データをオーディオ装置上で再生するよう構成されていてもよい。
個別的な例では、前記第二の変換手段102、前記さらなる変換手段110の一つまたは複数および/または前記第四の変換手段はさらなるオペランド値(単数または複数)を外部源からまたはシステムの別の計算ユニットから受領してもよい。そのような場合、たとえば、関数
Figure 0006502945
Figure 0006502945
の形をもつ。ここで、(X',Y')は状態パラメータσ'をもつ別のデータ要素w'の不明化された表現を表わす。この不明化された表現は本稿で記載されるものと同様の形を有していてもよい。あるいはまた、前記さらなるオペランド値(単数または複数)は平文で提供されてもよい。すなわち、
Figure 0006502945
は、w'は不明化されていないさらなるデータ要素であるとして、
Figure 0006502945
の形を有していてもよい。
図1に示されるシステムの個別的な変形では、第一の変換手段101はさらなるパラメータr(図示せず)を受領するよう構成されていてもよく、w0の不明化された表現(X0,Y0)における冗長性は上記で説明したように入力変数rに依存してもよい。そのような場合、同じさらなるパラメータrが第三の変換ユニットおよび/または第五の変換ユニット104にも提供され、それによりたとえば第五の変換ユニット104はXnおよびrの両方に依存してwnの値を計算することができる。
前記第一の変換手段101、前記第二の変換手段102、前記第三の変換手段、前記第四の変換手段103および/または前記第五の変換手段104はルックアップテーブルによって実装されてもよいことを注意しておく。たとえば、前記第一の変換手段101、前記第二の変換手段102の前記さらなる変換手段110、前記第四の変換手段103および/または前記第五の変換手段104がそれぞれ単一のルックアップテーブルによって実装されてもよい。あるいはまた、前記変換のうちの一つを一緒に実装するよう前記変換手段の一つによって協働して適用されるよう設計された複数のルックアップテーブルを使うことが可能である。任意的には、これらのルックアップテーブルは、たとえばChow et al.から知られる技法を使ってルックアップテーブルの入力および出力をエンコードすることによってさらに不明化されてもよい。ルックアップテーブルは、隠されたままであるべきである中間結果を明かすことなくいかにして変換が実行できるかの例である。該中間結果はたとえば、i=0,…,nについてのσiの値であり、特に前記第一および第五の変換手段において(あるいはより一般には前記第一および第三の変換手段)役割を演じるσ0である。
図2は、データ値の暗号化された表現を使って、i=1,…,nであるとして、該データ値にn個の変換Tiの安全なシーケンスを実行する方法を示している。本方法は、入力データ値w0に変換を適用してw0の不明化された表現(X0,Y0)を得る段階201を含む。前記不明化された表現(X0,Y0)は入力変数rに依存する冗長性を含む。
次に、段階206において、i=1と置くことによりインデックス値iが初期化される。
次に、本方法は、
Figure 0006502945
のように(Xi-1,Yi-1)から(Xi,Yi)を計算するよう変換
Figure 0006502945
を適用する段階202を進める。該変換を適用後、iが1だけ増加させられる。
次に、本方法は、i=nかどうかを検査することによって反復処理が完了したかどうかを検証する段階203を進める。i≠nであれば、本方法はiの更新された値を用いて段階202を繰り返す。
段階203においてi=nであれば、本方法はXn=un(Xn-1,Yn-1)のように変換unを適用する段階204を進める。次に、本方法は、wn=F(Xn,r)のように変換Fを適用して変換の前記シーケンスの帰結を得る段階205を進める。ここで、
Figure 0006502945
である。段階204および段階205は単一の段階に組み合わされてもよいことを注意しておく。
上記の方法において、記号はいくつかの例において本稿で上記に説明したとおりである。
たとえば、i=1,…,nについて、
Figure 0006502945
であり、
Figure 0006502945
は演算子であり、
Ai、Bi、CiおよびDiは演算子
Figure 0006502945
に関して線形な演算子であり、演算子AiおよびDiは可逆であり、(u,v)を
Figure 0006502945
にマッピングする演算子Eiは可逆であり、
Ψi X、Ψi Y、φi 1、φi 2は可逆なマッピングであり、
σ0はrに依存し、
あらかじめ決められた関数Tiおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)である。ここで、w1,…,wn-1およびσ0,…,σnはシステムによって明示的に計算されない。
図3は、データ値の暗号化された表現を使って、i=1,…,nであるとして、該データ値にn個の変換Tiの安全なシーケンスを実行するシステムを提供する方法を示している。
本方法は、第一の変換手段101を提供し、入力データ値w0に変換を適用してw0の不明化された表現(X0,Y0)を得るよう該第一の変換手段201を構成する段階301で始まる。前記不明化された表現(X0,Y0)は入力変数rに依存する冗長性を含む。
本方法は、第二の変換手段102を提供することを段階302において進める。段階311では、iはi=1と設定することによってインデックス値iが初期化される。次に、段階310において、前記第二の変換手段102にさらなる変換手段110が含められる。このさらなる変換手段110は、
Figure 0006502945
のように(Xi-1,Yi-1)から(Xi,Yi)を計算するよう変換
Figure 0006502945
を適用するよう構成される。その後、インデックス値iがインクリメントされる。段階312では、i=nであるかどうかが検査される。段階312においてi≠nであれば、本方法はiの更新された値を用いて段階310を繰り返す。
段階312においてi=nであれば、本方法は、第四の変換手段を提供し、Xn=un(Xn-1,Yn-1)のような変換unを適用するよう該第四の変換手段を構成する段階303を進める。
次に、段階304において、本方法は、第五の変換手段を提供し、wn=F(Xn,r)のように変換Fを適用して前記変換のシーケンスの帰結を得るよう該第五の変換手段を構成することを進める。ここで、
Figure 0006502945
である。
段階303および304は、上記で説明したような変換Gを適用する第三の変換手段が提供されるように組み合わされてもよい。
これらの方法段階は、前記第一の変換手段、前記第二の変換手段、前記第四の変換手段および前記第五の変換手段がw1,…,wn-1およびσ0,…,σnの値を不明化するよう構成されるように実行される。特に、前記第一の変換手段101および前記第五の変換手段104は、たとえばXnおよびrに基づいて(あるいはXnおよびw0に基づいて)最終結果wnを直接生成する計算中のショートカットを作り出すことによって、rに(あるいは上記で説明したようにw0に)依存するσ0の値を不明化するよう構成される。
そのような不明化の個別的な例が、最も脆弱な諸変換について諸ルックアップテーブルを提供することによって与えられる。たとえば、前記第二の変換手段を構成する段階302は、前記関数
Figure 0006502945
のうちの少なくとも一つの関数の少なくとも一つのルックアップテーブルを計算することを含んでいてもよい。ここで、ルックアップテーブルは(Xi-1,Yi-1)の値を(Xi,Yi)の値にマッピングする。このルックアップテーブルは、(Xi-1,Yi-1)の適切な値について、
Figure 0006502945
を計算することによって計算されてもよい。ここで、fi
Figure 0006502945
によって定義される関数を表わし、fi inverseはfiの逆関数である。これら上記の式において、Tiはfi-1 inverseの成分wiのみを使い、giはfi inverseの成分σiのみを使う。
前記第四の変換は、
Figure 0006502945
として、上記と同様のルックアップテーブルを含んでいてもよい。ここで、Tiはfn-1 inverseの成分wn-1のみを使い、Ynの出力値は省略される。
もう一つの例として、r=w0である個別的な例において、前記第一の変換を構成する段階301は、w0の値を(X0,Y0)の対応する値にマッピングする関数のルックアップテーブルを提供することを含んでいてもよい。この関係は、上記のように、(X0,Y0)=Ψ0(w0,s(w0))によって与えられてもよい。ここで、s(w0)は、w0の値をσ0にマッピングする秘密のマッピングである。表にされたw0の値および(X0,Y0)の対応する値を提供することによって、システムはσ0の値を計算することなく変換を適用しうる。
上記のより個別的な例によれば、第一の変換手段のルックアップテーブルによって実装される関係は次式によって与えられてもよい。
Figure 0006502945
r=w0であるもう一つの例では、前記第五の変換を構成する段階304は、関数Fのルックアップテーブルを提供することを含んでいてもよい。この表は(Xn,w0)のペアをwn=F(Xn,w0)の対応する値にマッピングしてもよい。
rがw0とは別個の異なる入力値である場合について同様の表が用意されてもよい。
データ値の暗号化された表現を使って該データ値の諸変換の安全なシーケンスを実行するシステムが提供されてもよい。システムは、入力データ値に変換を適用してその不明化された表現を得る第一の変換手段を有し、前記不明化された表現はある入力変数に依存する冗長性を含む。システムは、変換を適用して変換された不明化された表現を計算するための第二の変換手段のシーケンスを有する。システムはさらに、最後の不明化された変換されたデータが得られるよう変換を適用する第四の変換手段を有する。システムは、最後の不明化された変換されたデータおよび前記入力データに依存する変換を適用する第五の変換手段を有する。
本発明の一部または全部の側面は、ソフトウェア、特にコンピュータ・プログラム・プロダクトの形で実装されるのに好適でありうる。そのようなコンピュータ・プログラム・プロダクトはソフトウェアが記憶されている記憶媒体を含みうる。そのような記憶媒体は、たとえば光ディスク、磁気ディスクまたはフラッシュ・メモリを含んでいてもよい。また、コンピュータ・プログラムは、光ファイバー・ケーブルまたは空気のような伝送媒体によって搬送される光信号または電磁信号のような信号によって表現されてもよい。コンピュータ・プログラムは部分的にまたは完全に、コンピュータ・システムによって実行されるのに好適な、ソース・コード、オブジェクト・コードまたは擬似コードの形をもちうる。たとえば、コードは、一つまたは複数のプロセッサによって直接実行可能であってもよい。あるいはまた、コードは一つまたは複数のプロセッサによって実行されるインタープリタによってインタープリットされてもよい。本稿に記載されるシステムの諸部分がソフトウェアの形で実装されてもよいことは理解されるであろう。さらに、本稿に記載される方法段階は、部分的または完全にソフトウェアで実装されてもよい。ソフトウェアは、サブルーチンによって編成されてもよい。サブルーチンは、スタンドアローンの実行可能なプログラムをなすよう組み合わされてもよい。あるいはまた、サブルーチンは動的にリンク可能なライブラリとして編成されてもよい。該動的にリンク可能なライブラリからのサブルーチンを使うメイン・プログラム実行可能ファイルが提供されてもよい。本稿に記載される処理段階および/またはシステム・コンポーネントのそれぞれは、それが動的にリンクされるライブラリにあってもあるいは実行可能ファイルにあっても、実行可能コードによって表現されてもよい。機能の一部または全部がオペレーティング・システムの一部として実装されてもよく、何らかの機能が動的にリンクされるライブラリにおいて実装されてもよく、何らかの機能がアプリケーション・プログラム・ファイルとして実装されてもよい。
本稿に記載される例および実施形態は、本発明を限定するのではなく例解するはたらきをする。当業者は、請求項の範囲から外れることなく、代替的な実施形態を設計できるであろう。請求項において括弧に入れた参照符号があったとしても請求項の範囲を限定するものと解釈してはならない。請求項または明細書において別個のエンティティとして記述される項目が、記載される諸項目の特徴を組み合わせる単一のハードウェアまたはソフトウェア項目として実装されてもよい。

Claims (14)

  1. i=1,…,nであるとして、入力データ値w0 に対してn個の変換Ti のシーケンスを実行するための、コンピュータによって実装されるシステムであって:
    メモリに記憶された入力データ値w0に変換を適用してw0難読化された表現(X0,Y0)を得てメモリに記憶する第一の変換手段であって、前記難読化された表現(X0,Y0)は入力変数rに依存する冗長性をもつ、手段と;
    i=1,…,n−1のそれぞれについて、
    Figure 0006502945
    のようにメモリに記憶された(Xi-1,Yi-1)から(Xi,Yi)を計算してメモリに記憶するよう変換
    Figure 0006502945
    を適用する第二の変換手段と;
    メモリに記憶されたXn-1,Yn-1およびrから変換の前記シーケンスの帰
    Figure 0006502945
    に等しい値を得てメモリに記憶する第三の変換手段とを有しており
    i=0,1,…,nについて(Xi,Yi)=Ψi(wii)であり、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された難読化関数であり、Ψiは(Xi,Yi)=Ψi(wii)となるよう(Xii)の任意の値を(wi,Yi)の値にマッピングする一対一マッピングがあるという条件を満たし;
    σ0はrに依存し;
    T iおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)であり、g i はあらかじめ決められた関数であり、
    Figure 0006502945

    Figure 0006502945
    を満たし、Ψ i-1 inverse はΨ i-1 の逆関数である、
    システム。
  2. 前記第三の変換手段は、
    Figure 0006502945
    ような変換を適用するための第四の変換手段と;
    X nおよびrからwnの値を得るための第五の変換手段とを有する、
    請求項1記載のシステム。
  3. i=0,1,…,nについて(Xi,Yi)=Ψi(wii)
    Figure 0006502945
    として定義され、
    Figure 0006502945
    ビット毎のXOR演算を表わす演算子であり、
    Ai、Bi、CiおよびDiは演算子
    Figure 0006502945
    に関して線形な演算子であり、演算子AnおよびDnは可逆であり、所与の(u,v)
    Figure 0006502945
    へのマッピングは可逆であり、
    Ψi X、Ψi Y、φi 1、φi 2は可逆なマッピングである、
    請求項1記載のシステム。
  4. 前記第一の変換手段は、メモリに記憶された、w 0 の値の(X 0 ,Y 0 )の対応する値へのマッピングを表わす少なくとも一つのルックアップテーブルを含む、請求項1記載のシステム。
  5. rはw0に等しい、請求項1記載のシステム。
  6. Figure 0006502945
    は恒等関数である、請求項1記載のシステム。
  7. 前記第一、第二および第三の変換手段のうちの少なくとも一つは、少なくとも一つの事前計算されメモリに記憶されたルックアップテーブルによって実装される、請求項1記載のシステム。
  8. i=1,…,nであるとして、入力データ値に対してn個の変換Ti のシーケンスを実行するための、コンピュータによって実装されるシステムを提供する方法であって:
    コンピュータによって実装される第一の変換手段を提供し、入力データ値w0に変換を適用してw0難読化された表現(X0,Y0)を得るよう該第一の変換手段を構成する段階であって、前記難読化された表現(X0,Y0)は入力変数rに依存する冗長性を含む、段階と;
    コンピュータによって実装される第二の変換手段を提供し、i=1,…,n−1のそれぞれについて、
    Figure 0006502945
    のように(Xi-1,Yi-1)から(Xi,Yi)を計算するよう変換
    Figure 0006502945
    を適用するよう該第二の変換手段を構成する段階と;
    コンピュータによって実装される第三の変換手段を提供し、X n-1,Yn-1およびrから変換の前記シーケンスの帰結
    Figure 0006502945
    に等しい値を得るよう該第三の変換手段を構成する段階とを含み
    i=0,1,…,nについて(Xi,Yi)=Ψi(wii)であり、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された難読化関数であり、Ψiは(Xi,Yi)=Ψi(wii)となるような仕方で(Xii)の任意の値を(wi,Yi)の値にマッピングする一対一マッピングがあるという条件を満たし;
    σ0はrに依存し;
    T iおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)であり、g i はあらかじめ決められた関数であり、
    Figure 0006502945

    Figure 0006502945
    を満たし、Ψ i-1 inverse はΨ i-1 の逆関数である、
    方法。
  9. 前記第一の変換手段を構成する段階は、w0の値の(X0,Y0)の対応する値へのマッピングを表わす少なくとも一つのルックアップテーブルを作成して記憶手段に記憶することを含む、請求項8記載の方法。
  10. 前記第二の変換手段を構成する段階は、前記関数
    Figure 0006502945
    のうちの少なくとも一つの関数の少なくとも一つのルックアップテーブルを作成して記憶手段に記憶することを含み、前記ルックアップテーブルは(Xi-1,Yi-1)の値を(Xi,Yi)の値にマッピングするものである
    請求項8記載の方法。
  11. (XI,Yi)=Ψi(wII)は
    Figure 0006502945
    として定義され、
    Figure 0006502945
    ビット毎のXOR演算を表わす演算子であり、
    Ai、Bi、CiおよびDiは演算子
    Figure 0006502945
    に関して線形な演算子であり、演算子AnおよびDnは可逆であり、所与の(u,v)
    Figure 0006502945
    へのマッピングは可逆であり、
    Ψi X、Ψi Y、φi 1、φi 2は可逆なマッピングであり、
    前記第二の変換手段を構成する段階は、関数
    Figure 0006502945
    のうちの少なくとも一つの関数の少なくとも一つのルックアップテーブルを作成して記憶手段に記憶することを含み、前記ルックアップテーブルは
    Figure 0006502945
    を計算することによって(Xi-1,Yi-1)の値を(Xi,Yi)の値にマッピングし、ここで、fi
    Figure 0006502945
    によって定義される関数を表わし、fi-1 inverseはfi-1の逆関数である、
    請求項8記載の方法。
  12. rはw0に等しく、前記第三の変換手段を構成する段階は、X n-1 ,Y n-1 およびrからw n に等しい値を得る関数Gを表わす少なくとも一つのルックアップテーブルを作成して記憶手段に記憶することを含み、前記少なくとも一つのルックアップテーブルは(Xi-1,Yi-1,w0)のタプルをwn=G(Xi-1,Yi-1,w0)の対応する値にマッピングする、請求項8記載の方法。
  13. i=1,…,nであるとして、入力データ値に対してn個の変換Ti のシーケンスを実行するための、コンピュータによって実装される方法であって:
    メモリに記憶された入力データ値w0に変換を適用してw0難読化された表現(X0,Y0)を得てメモリに記憶する段階であって、前記難読化された表現は入力変数rに依存する冗長性を含む、段階と;
    i=1,…,n−1のそれぞれについて、
    Figure 0006502945
    のようにメモリに記憶された(Xi-1,Yi-1)から(Xi,Yi)を計算してメモリに記憶するよう変換
    Figure 0006502945
    を適用する段階と;
    メモリに記憶されたXn-1,Yn-1およびrから変換の前記シーケンスの帰
    Figure 0006502945
    に等しい値を得てメモリに記憶する段階とを含んでおり
    i=0,1,…,nについて(Xi,Yi)=Ψi(wii)であり、Ψiは、(Xi,Yi)と(wii)の間の一対一関係を定義するあらかじめ定義された難読化関数であり、Ψiは(Xi,Yi)=Ψi(wii)となるような仕方で(Xii)の任意の値を(wi,Yi)の値にマッピングする一対一マッピングがあるという条件を満たし;
    σ0はrに依存し;
    T iおよびgiについてi=1,…,nについてwi=Ti(wi-1)およびσi=gii-1)であり、g i はあらかじめ決められた関数であり、
    Figure 0006502945

    Figure 0006502945
    を満たし、Ψ i-1 inverse はΨ i-1 の逆関数である、
    方法。
  14. プロセッサ・システムに請求項ないし13のうちいずれか一項記載の方法を実行させるための命令を有するコンピュータ・プログラム。
JP2016540585A 2013-12-20 2014-12-11 安全なデータ変換 Active JP6502945B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13198922.0 2013-12-20
EP13198922 2013-12-20
PCT/EP2014/077301 WO2015091172A1 (en) 2013-12-20 2014-12-11 Secure data transformations

Publications (2)

Publication Number Publication Date
JP2017501447A JP2017501447A (ja) 2017-01-12
JP6502945B2 true JP6502945B2 (ja) 2019-04-17

Family

ID=49916885

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016540585A Active JP6502945B2 (ja) 2013-12-20 2014-12-11 安全なデータ変換

Country Status (6)

Country Link
US (1) US10256970B2 (ja)
EP (1) EP3085005B1 (ja)
JP (1) JP6502945B2 (ja)
CN (1) CN105814833B (ja)
RU (1) RU2680761C1 (ja)
WO (1) WO2015091172A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10256970B2 (en) * 2013-12-20 2019-04-09 Konnklijke Philips N.V. Secure data transformations
KR101933649B1 (ko) * 2016-05-27 2018-12-28 삼성에스디에스 주식회사 화이트박스 암호 알고리즘을 이용한 공개키 암호화를 위한 장치 및 방법
DE102016008456B4 (de) * 2016-07-12 2018-03-29 Giesecke+Devrient Mobile Security Gmbh White Box AES Implementierung
EP3376705A1 (en) 2017-03-17 2018-09-19 Koninklijke Philips N.V. Elliptic curve point multiplication device and method in a white-box context
CN109714152B (zh) * 2019-01-17 2020-04-07 西安电子科技大学 基于大型仿射编码的白盒aes加密方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
US7099469B2 (en) * 2001-10-17 2006-08-29 Motorola, Inc. Method of scrambling and descrambling data in a communication system
EP1326363A1 (en) * 2001-12-27 2003-07-09 STMicroelectronics S.r.l. Chaos-based block encryption
EP1387519A3 (fr) * 2002-07-09 2004-02-18 Cp8 Procédé de sécurisation d'un ensemble électronique contre des attaques par introduction d'erreurs
EP1475920A4 (en) * 2002-12-03 2005-03-02 Matsushita Electric Ind Co Ltd KEY SHARING SYSTEM, SHARED KEY CREATING DEVICE, AND SHARED KEY RESTORING DEVICE
KR100546375B1 (ko) * 2003-08-29 2006-01-26 삼성전자주식회사 자체 오류 감지 기능을 강화한 상호 의존적 병렬 연산방식의 하드웨어 암호화 장치 및 그 하드웨어 암호화 방법
US7715553B2 (en) * 2005-08-01 2010-05-11 Durward D. Dupre Encrypting a plaintext message with authentication
JP2007189659A (ja) * 2005-12-15 2007-07-26 Toshiba Corp 暗号化装置、暗号化方法及び暗号化プログラム
US8379841B2 (en) * 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
JP2008098690A (ja) * 2006-10-05 2008-04-24 Sharp Corp 暗号化装置、復号化装置、暗号化プログラム、復号化プログラム、暗号化プログラムが格納された記録媒体、復号化プログラムが格納された記録媒体、暗号化方法、復号化方法およびテーブル作成方法
EP2186250B1 (en) * 2007-08-31 2019-03-27 IP Reservoir, LLC Method and apparatus for hardware-accelerated encryption/decryption
RU2417410C2 (ru) * 2008-08-19 2011-04-27 Общество С Ограниченной Ответственностью "Крипто-Про" Способ хранения и использования криптографического ключа
US8891756B2 (en) * 2008-10-30 2014-11-18 Certicom Corp. Collision-resistant elliptic curve hash functions
KR101715027B1 (ko) * 2009-03-10 2017-03-22 이르데토 비.브이. 입력 의존형 인코딩들을 이용한 화이트-박스 암호화 시스템
WO2010112739A1 (fr) * 2009-03-31 2010-10-07 France Telecom Procede pour effectuer une tache cryptographique dans un composant electronique
KR101246241B1 (ko) * 2009-04-24 2013-03-22 니뽄 덴신 덴와 가부시키가이샤 암호화 장치, 복호장치, 암호화 방법, 복호방법, 세큐러티 방법, 프로그램 및 기록매체
RU2411666C1 (ru) * 2009-08-26 2011-02-10 Николай Андреевич Молдовян Способ шифрования
WO2011080487A1 (fr) * 2009-12-30 2011-07-07 France Telecom Procede de generation de table de correspondance pour une boite blanche cryptographique
EP2899713B1 (en) * 2012-09-21 2019-04-24 Mitsubishi Electric Corporation Hash value calculation device, hash value calculation method and hash value calculation program
US10256970B2 (en) * 2013-12-20 2019-04-09 Konnklijke Philips N.V. Secure data transformations
US9425952B2 (en) * 2014-03-27 2016-08-23 Samsung Israel Research Corporation Algebraic manipulation detection codes from algebraic curves

Also Published As

Publication number Publication date
US10256970B2 (en) 2019-04-09
EP3085005A1 (en) 2016-10-26
CN105814833A (zh) 2016-07-27
CN105814833B (zh) 2019-12-13
JP2017501447A (ja) 2017-01-12
RU2016129282A (ru) 2018-01-25
US20160323099A1 (en) 2016-11-03
WO2015091172A1 (en) 2015-06-25
RU2680761C1 (ru) 2019-02-26
EP3085005B1 (en) 2019-09-25

Similar Documents

Publication Publication Date Title
JP6502945B2 (ja) 安全なデータ変換
CN105453481B (zh) 包括表网络的计算设备
US10726108B2 (en) Protecting the input/output of modular encoded white-box RSA
US8504845B2 (en) Protecting states of a cryptographic process using group automorphisms
KR102550812B1 (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
JP5861018B1 (ja) テーブルネットワークによって構成されたコンピューティングデバイス
JP7076474B2 (ja) 暗号装置及び方法
JP2019523492A (ja) 難読化算術を実行するためのデバイス及び方法
US8675866B2 (en) Multiplicative splits to protect cipher keys
JP2020515093A (ja) 符号化加算のための計算デバイス
US10235506B2 (en) White-box modular exponentiation
EP3078154B1 (en) A computing device for iterative application of table networks
Coron et al. Fast evaluation of polynomials over binary finite fields and application to side-channel countermeasures
KR101914453B1 (ko) 암호화 장치 및 방법
US10068070B2 (en) White-box elliptic curve point multiplication
JP6890589B2 (ja) 計算デバイス及び方法
KR101440680B1 (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
JP6522860B2 (ja) 計算装置及び方法
NL2015911B1 (en) Calculating device and method.
WO2022009384A1 (ja) 最終べき計算装置、ペアリング演算装置、暗号処理装置、最終べき計算方法及び最終べき計算プログラム
JP6181573B2 (ja) データ共有システム、データ共有方法およびプログラム
JP6876423B2 (ja) ストリーム暗号における内部状態の初期化装置、方法及びプログラム
JP2019092030A (ja) 演算装置、演算方法及び演算プログラム
JP2004102096A (ja) 暗号システムとそれに用いる復号処理装置並びにその復号プログラムと復号方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180911

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181112

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190322

R150 Certificate of patent or registration of utility model

Ref document number: 6502945

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250