JP6046870B1 - テーブルネットワークの繰り返し適用のための計算装置 - Google Patents

テーブルネットワークの繰り返し適用のための計算装置 Download PDF

Info

Publication number
JP6046870B1
JP6046870B1 JP2016535645A JP2016535645A JP6046870B1 JP 6046870 B1 JP6046870 B1 JP 6046870B1 JP 2016535645 A JP2016535645 A JP 2016535645A JP 2016535645 A JP2016535645 A JP 2016535645A JP 6046870 B1 JP6046870 B1 JP 6046870B1
Authority
JP
Japan
Prior art keywords
state
table network
global
input
data
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.)
Expired - Fee Related
Application number
JP2016535645A
Other languages
English (en)
Other versions
JP2017504052A (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
Application granted granted Critical
Publication of JP6046870B1 publication Critical patent/JP6046870B1/ja
Publication of JP2017504052A publication Critical patent/JP2017504052A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9017Indexing; Data structures therefor; Storage structures using directory or table look-up
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/556Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/004Countermeasures against attacks on cryptographic mechanisms for fault attacks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2123Dummy operation
    • 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

Abstract

電子ストレージと、ストレージに結合される電子プロセッサとを有する計算装置であって、ストレージはテーブルネットワークの系列を記憶し、プロセッサは、テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力とグローバル状態入力とに対して繰り返される関数を計算するよう構成され、系列のテーブルネットワークは、対応するデータ関数と状態関数とについて構成され、対応するデータ関数に従ってデータ入力をデータ出力にマッピングし、状態関数に従って状態入力を状態出力に同時にマッピングするよう構成され、電子プロセッサは、テーブルネットワークの系列の適用を繰り返すよう構成され、繰り返し適用されるテーブルネットワークのテーブルネットワークをグローバルデータ入力とグローバル状態入力とに適用し、繰り返しの後続のテーブルネットワークを系列の前のテーブルネットワークのデータ出力と状態出力とに適用し、系列の繰り返される適用は、グローバルデータ入力に対してグローバルデータ関数を決定し、グローバル状態入力に対してグローバル状態関数を決定し、これにより、中間データ出力と中間状態出力とを取得し、電子ストレージは更に、系列のテーブルネットワークになされた変更に対処するためテーブルネットワークの系列と連携するよう構成される保護テーブルネットワークを記憶し、保護テーブルネットワークは、中間状態出力とグローバル状態入力とを入力として受信するよう構成され、保護テーブルネットワークは、グローバル状態入力に適用されるグローバル状態関数が中間状態出力を生成することを検証するよう構成される計算装置。

Description

本発明は、電子ストレージと、テーブルネットワークを記憶する当該ストレージに結合される電子プロセッサであって、テーブルネットワークを適用することによってファンクションを計算するよう構成されるプロセッサとを有する計算装置に関する。
本発明は更に、計算方法、コンパイラ及び対応するコンピュータプログラムに関する。
従来の暗号化では、攻撃者がセキュアシステムの入出力値へのアクセスのみを取得することが典型的に想定された。例えば、攻撃者は、システムに入る平文を観察し、システムから出る暗号文を観察することができる。攻撃者は、おそらく計算量の大きな方法を利用しさえしてこのような入力/出力ペアを解析することによって利益を取得しようとすることが可能であるが、彼は入力/出力動作を実現したシステムへの直接的なアクセスを有しているとは考えられなかった。
最近、攻撃者が実装について知っていることが想定される脅威モデルを考慮することが必要になってきている。例えば、サイドチャネル解析及びリバースエンジニアリングの脅威を考慮するかもしれない。さらに、セキュリティ問題に以前には最も関連した懸念は、プライバシなどの他の分野に拡がってきた。暗号鍵などのセキュリティ情報を処理する暗号化システムは最大の懸念を残しているが、プライバシ関連情報を処理するものなどの他のプログラムの保護がまた重要になってきている。
コンピュータシステムは、いわゆるサイドチャネルを介し情報を漏洩することが長く知られてきた。コンピュータシステムの入出力動作の観察は、コンピュータシステムにより利用される秘密鍵などの機密情報に関する何れの有用な情報を提供しないかもしれない。しかしながら、コンピュータシステムは、それの電力消費又は電磁放射など、観察可能な他のチャネルを有し、これらのチャネルはサイドチャネルとして参照される。例えば、異なる命令により消費される電力の小さな変動及び命令の実行中に消費される電力の変動が測定されてもよい。測定された変動は、暗号鍵などの機密情報と相関される。観察可能であって意図された入出力動作を超えた秘密情報に関するこのような付加情報は、サイドチャネルと呼ばれる。サイドチャネルを介し、コンピュータシステムはその使用中に秘密情報を“漏洩”しうる。サイドチャネルの観察及び解析は、入出力動作のみの暗号解読から取得されるものより良好な情報へのアクセスを攻撃者に与えうる。1つの既知のタイプのサイドチャネル攻撃は、いわゆる、差分電力解析(DPA)である。
サイドチャネル問題に対する現在のアプローチは、計算におけるランダム性を導入する。例えば、プログラムダミー命令を実行する中間の本物の処理が、電力消費とプログラムが実行されるデータとの間の関係を曖昧にするため挿入されてもよい。
コンピュータに対する更に強力な攻撃は、いわゆる、リバースエンジニアリングである。多数のセキュリティシナリオの攻撃者は、コンピュータへの完全なアクセスを有するかもしれない。これは、プログラムを分解し、コンピュータ及びプログラムに関する情報を取得する機会を与える。十分な努力が与えられると、プログラムに隠された鍵が攻撃者により検出されうる。
この攻撃シナリオに対する保護は、大変困難であると判明している。1つのタイプの対策手段は、いわゆるホワイトボックス暗号化である。ホワイトボックス暗号化では、鍵及びアルゴリズムは組み合わされる。結果として得られるアルゴリズムは1つの特定の鍵についてのみ作用する。次に、アルゴリズムは、いわゆるルックアップテーブルネットワークとして実現されうる。計算は、鍵に依存したテーブルにおいてルックアップ系列として変換される。例えば、このアプローチの具体例について、S.Chow,P.Eisen,H.Johnson,P.C.van Oorschotによる“White−Box Cryptography and an AES Implementation”を参照されたい。
コンピュータシステムに対するサイドチャネル攻撃に対する既知の対応策は、完全には満足いくものでない。例えば、ランダム性の導入は統計解析によって反撃されうる。ソフトウェアの難読化は、プログラムの処理のより先進的な解析によって反撃されうる。従って、より多くのより良好な対応策が必要とされる。
この問題は複数の入力値に対して同時に作用するテーブルネットワークの導入によって対処される。テーブルネットワークは、異なる入力又は入力グループに異なる関数を適用するものであってもよい。実際にそれは2つの関数を実行するため、複数の入力の2つ以上を単一の値に暗号化する暗号を利用して、攻撃者がテーブルネットワークが意図する関数を決定すること不可能になる。2012年12月21日に出願された“Computing device comprising a table network”という名称の米国61/740,691号の米国仮出願、及び/又は2012年12月27日の出願日とEP12199387の出願番号の同一名称“Computing device comprising a table network”の欧州特許出願を参照されたい。
当該システムはかなりセキュリティを追加しているが、特に攻撃も出るが更に拡大された場合、攻撃のベクトルを残している。攻撃者がフルアクセスを有し、これにより、彼がシステムにおいて生じる全てを観察するだけでなく、プログラムを変更可能な攻撃者について準備することを想定する。テーブルエントリに対する変更と変数に対する変更との2つの変更を考える。第1のタイプの変更は、プログラム実行の開始前に変更が可能であるため、攻撃者に対してあまり想定せず、後者のタイプの変更は、プログラムの実行中に実行され、このため、より困難であると考えられる。例えば、攻撃者は、以下の攻撃を試みるかもしれない(最も可能性があるのは自動化された方法で)。何れの実行も元のプログラムと変更されたプログラムとの出力における相違を示さない場合、変更されたテーブルエントリと変更されていないテーブルエントリが、関連するデータに関する限り等しく、難読化計算、すなわち、いわゆる、状態変数と状態関数とにおいてのみ異なると結論づける。十分な時間が与えられると、正しい計算に関する限り、等しい値のクラスからマップが構成されてもよい。効果的には、状態変数は排除される。明確にするため、符号化前、攻撃者は、状態値は異なるがデータ値が同じであるか直接的には観察できないが、彼はテーブル変更の効果を解析することからこれを推測できるかもしれない。
プログラム変更に対する柔軟性の増加による関数入力値に対するデータ関数を計算するよう構成される計算装置を有することが効果的であろう。
同一出願人によって2013年2月22日に出願された“Computing device configured with a table network”という名称による欧州特許出願13156302が参照され、参照することによりここに援用される。当該出願は、符号化、テーブルネットワークなどの更なる具体例を含む。
少なくともこの懸念に対処する関数入力値に対してデータ関数を計算するよう構成される計算装置が提供される。
計算装置は、電子ストレージと、当該ストレージに結合される電子プロセッサとを有する。ストレージはテーブルネットワークの系列を記憶する。プロセッサは、テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力とグローバル状態入力とに対して繰り返される関数を計算するよう構成される。
系列のテーブルネットワークは、対応するデータ関数と状態関数とについて構成され、対応するデータ関数に従ってデータ入力をデータ出力にマッピングし、状態関数に従って状態入力を状態出力に同時にマッピングするよう構成される。
電子プロセッサは、系列のテーブルネットワークの適用を繰り返すよう構成され、繰り返し適用されるテーブルネットワークのテーブルネットワーク、すなわち、第1のテーブルネットワークをグローバルデータ入力とグローバル状態入力とに適用し、繰り返しの後続のテーブルネットワークを系列の前のテーブルネットワークのデータ出力と状態出力とに適用し、系列の繰り返される適用は、グローバルデータ入力に対してグローバルデータ関数を決定し、グローバル状態入力に対してグローバル状態関数を決定し、これにより、中間データ出力と中間状態出力とを取得する。
電子ストレージは更に、系列のテーブルネットワークになされた変更に対処するためテーブルネットワークの系列と連携するよう構成される保護テーブルネットワークを記憶し、保護テーブルネットワークは、中間状態出力とグローバル状態入力とを入力として受信するよう構成される。保護テーブルネットワークは、グローバル状態入力に適用されるグローバル状態関数が中間状態出力を生成することを検証するよう構成される。
それは、ホワイトボックス暗号化により可能なコード難読化がより一般的に適用可能である場合、効果的である。従来のホワイトボックス暗号化は静的であり、それはアルゴリズムを固定的なテーブルネットワークに変換し、入出力の符号化など、テーブル難読化を利用してネットワークを変換する。このタイプの難読化は、状態変数と共にデータ変数を符号化することによって改良されうる。それは、例えば、ホワイトボックス暗号化において利用されるようなテーブルベースの計算のセキュリティが非静的な計算において適用可能である場合、効果的である。例えば、テーブルベースの計算を利用することに対する1つ障害は、ループ、while−do、for−until構造などの繰り返し構造にシステムを適用することである。
システムは、繰り返し適用されるテーブル又はテーブルネットワークの系列を提供する。データ関数と共に、当該系列はまた状態関数を計算する。状態関数を検証することによって、繰り返し全体が検証される。系列におけるテーブルネットワークは系列の順序で適用され、当該系列は、全てのテーブルネットワークを同じ順序で複数回適用することによって繰り返される。実施例では、当該系列は2回以上適用される。
合成されたデータ及び状態計算の系列を検証することは、系列が状態変数と共に暗号化されるデータ変数(入力又は出力)に対して実行される場合、更に向上する。実施例では、グローバルデータ入力とグローバル状態入力とは、単一のグローバル入力に一緒に符号化される。実施例では、系列のテーブルネットワークのデータ入力と状態入力とは、単一の入力に一緒に符号化される。実施例では、系列のテーブルネットワークのデータ出力と状態出力とは、単一の出力に一緒に符号化される。実施例では、中間データ出力と中間状態出力とは、単一の中間出力に一緒に符号化される。実施例では、保護されたデータ出力と保護された状態出力とは、単一の保護された出力に一緒に符号化される。
系列のテーブルネットワークを1回適用することによって取得される状態関数は、単一繰り返し状態関数として参照される。単一繰り返し状態関数がデータ関数とは独立に選択されてもよいことは、発明者の洞察であった。単一繰り返し状態関数は、テーブルネットワークとしての実現が系列において用いられるより少ないテーブルしか必要とせず、第1の系列におけるテーブルネットワークより小さいストレージしか必要としないように選択されてもよい。さらに、単一繰り返し状態関数は、単一繰り返し状態関数の繰り返しがより少ないテーブル及び/又はストレージしか必要としないように選択されてもよい。実施例では、状態テーブルネットワークは、系列におけるテーブルネットワークより少ないテーブルしか一緒に有さない。実施例では、ストレージ上の状態テーブルネットワークのサイズは、ストレージ上の系列のサイズより小さい。状態テーブルネットワーク及び/又は保護テーブルネットワークは、繰り返されず、第1の系列が繰り返される場合でさえ、1回しか適用されない。
例えば、単一繰り返し状態関数の効果的な選択は、冪等関数である。冪等関数の複数の繰り返しは、関数の1回の繰り返しと同じ結果を与える。従って、第1の系列の複数回の適用と同じ状態関数を取得するため、単一繰り返し状態関数は、1回しか適用される必要がない。これは、保護ネットワークの構成をかなり簡単化する。
単一繰り返し状態関数の他の効果的な選択は、冪零関数である。冪零関数は、関数のq回の適用が恒等式になるような関連する数qを有する。これは、q+1回の適用が単一繰り返し状態関数自体に等しくなるため、保護ネットワークが単一繰り返し状態関数のq回までの適用を検証可能であることしか必要としないことを意味する。
実施例では、保護テーブルネットワークは、系列の繰り返し数に応じて更なる入力を受信するよう構成される。これは、保護ネットワークが単一繰り返し状態関数の多数の適用の結果を検索することを可能にする。繰り返し数の受信は、冪零の単一繰り返し状態関数を用いて良好に適合される。この場合、状態ネットワークは、検証状態を取得するため、グローバル状態入力と繰り返し数との組み合わせを検索してもよい。
例えば、更なる入力は、おそらく符号化形式による繰り返し数であってもよい。冪等関数については、繰り返し数が0以上であるか更なる入力が示す場合、十分である。これは単一ビットして表現できる。にもかかわらず、より大きな符号化が可能である。同様に、オーダqの置換について、繰り返し数のqによるモジュロが十分である。実施例では、ループは2つのテーブルネットワークとして実現され、1つは所定の繰り返し数までの繰り返しのためのものであり、他方は制限のない繰り返し数のためのものである。前者のテーブルネットワークは、更なる入力を受信してもよく、所定の繰り返し数に限定され、後者のテーブルネットワークは、更なる入力を受信しなくてもよい。計算装置は、このとき繰り返し数に応じて、2つのテーブルネットワークからテーブルネットワークを選択するための制御ロジックを有することが可能である。
実施例では、制御コードは、系列の繰り返し数をカウントし、保護ネットワークへの入力として繰り返し数を供給するよう構成される。
単一繰り返し状態関数のための特に興味深い選択は恒等式である。この場合、系列のテーブルネットワークにより実現される個々の状態関数は、それらの関数の合成が恒等式である限り、任意の関数であってもよい。これは、グローバル状態入力が系列の最後の繰り返しの最後のテーブルネットワークの最後の状態出力に等しいことを検証することによって利用可能である。
保護ネットワークは、系列が受信するものと同じグローバル状態入力に対して実行されてもよいが、これは必ずしも必須でない。保護ネットワークの状態入力と第1の系列とは異なるソースから生じてもよい。異なるソースは、改ざんがない場合、双方の状態が同じであるように構成される。繰り返された第1の系列と保護ネットワークとを適用した後、状態の相違がデータ値を変更させる。
実施例では、系列における少なくとも1つのテーブルネットワークは、例えば、前のテーブルネットワーク以外の更なるソースから追加的な入力を受信する。テーブルネットワークの中間データ出力は追加的な入力に依存し、中間状態出力は追加的な入力に依存しない。追加的な入力は追加的な状態入力と共に出力されてもよいし、又は出力されなくてもよい。このように、追加的な入力は中間状態出力と検証状態との間の関係を妨げない。追加的な入力が状態変更に寄与しなくても、追加的な入力を受信するテーブルにおける変更は、おそらくテーブルの状態出力を変更させる。従って、このような追加的な入力に関する計算に対して更なるチェックがなされる。例えば、追加的な入力は、系列がブロック暗号の単一のラウンドを表す場合、ラウンドキーであってもよい。
本発明の態様は、電子ストレージと、当該ストレージに結合される電子プロセッサとを有し、テーブルネットワークの系列を適用するよう構成される計算装置に関する。当該系列は、保護ネットワークにおける効率的な実現を可能にする単一繰り返し状態関数を有する。当該系列は、繰り返し適用される必要はない。にもかかわらず繰り返しが必要とされる場合、保護ネットワークでなく第1の系列のみを繰り返す代わりに、第1の系列と保護ネットワークとの双方を繰り返すことが可能である。
計算装置は、例えば、携帯電話、セットトップボックス、コンピュータなどのモバイル電子装置などの電子装置である。
本発明の態様は、データ関数の系列を取得し、テーブルネットワークの第1の系列、保護テーブルネットワーク及びコンピュータコードを生成するよう構成されるコンパイラに関する。コンピュータコードは、第1の系列の繰り返しの適用と、その後の保護テーブルネットワークの適用とを制御するよう構成される。コンパイラは、電子プロセッサと電子メモリとを有してもよく、メモリは、プロセッサをコンパイラとして設定するコンピュータコードを記憶する。
本発明の態様は、計算方法に関する。本発明による方法は、コンピュータによる実現される方法としてコンピュータ上で、専用のハードウェアにおいて、又は双方の組み合わせにより実現されてもよい。本発明による方法の実行可能コードは、コンピュータプログラムプロダクトに記憶されてもよい。コンピュータプログラムプロダクトの具体例は、メモリ装置、光記憶装置、集積回路、サーバ、オンラインソフトウェアなどを含む。好ましくは、コンピュータプログラムプロダクトは、当該プログラムプロダクトがコンピュータ上で実行されると、本発明による方法を実行するためのコンピュータ可読媒体に記憶された非一時的なプログラムコード手段を有する。
好適な実施例では、コンピュータプログラムは、当該コンピュータプログラムがコンピュータ上で実行されるとき、本発明による方法の全てのステップを実行するよう構成されるコンピュータプログラムコード手段を有する。好ましくは、コンピュータプログラムは、コンピュータ可読媒体上に実現される。
本発明の上記及び他の態様は、後述される実施例を参照して明らかになるであろう。
図1aは、複合テーブルネットワーク100の概略的なブロック図である。 図1bは、テーブルネットワーク100の変形の概略的なブロック図である。 図2は、複合テーブルネットワーク200の概略的なブロック図である。 図3は、複合テーブルネットワーク300の概略的なブロック図である。 図4は、計算装置400の概略的なブロック図である。 図5は、複合テーブルネットワーク500の概略的なブロック図である。 図6は、コンパイル方法600の概略的なフローチャートである。 図7は、計算方法700の概略的なフローチャートである。 異なる図面において同一の参照番号を有するアイテムは同じ構造的特徴及び同じ機能を有するか、又は同じ信号であることが留意されるべきである。このようなアイテムの機能及び/又は構造が説明される場合、詳細な説明においてそれの繰り返しの説明は必要でない。
本発明は多数の異なる形態による実施例が可能であるが、本開示は本発明の原理の一例としてみなされるべきであり、本発明を図示及び説明された特定の実施例に限定することを意図していないという理解によって、1つ以上の特定の実施例が図面において図示され、ここで詳細に説明される。
図1aは、複合テーブルネットワーク100の概略的なブロック図である。
計算装置は、テーブルのネットワークを介し計算装置の計算の全て又は一部を実行することによって、攻撃者に対して保護されうる。テーブルネットワークは、変数及びテーブルを符号化することによって保護できる。にもかかわらず、攻撃は懸念を残す。1つの可能な攻撃ベクトルは、テーブルを変更し、計算を実行し、当該変更が有する効果を確認することである。このようにして、攻撃者は、利用される暗号化における洞察を取得しうる。これに対処するため、データ変数に加えて状態変数を導入してもよい。状態変数は、データ変数の計算パス又はその一部を反映する変数である。しかしながら、状態変数に対して実行される計算の性質は、データ変数に対して実行される計算と異なりうる。状態変数は、計算中に各種方法により検証されうる。状態及びデータ変数はしばしば1つの変数に一緒に符号化されるため、データ変数は影響を受けるが、状態変数は受けないように、攻撃者がテーブルを変更することは困難である。状態変数が改ざんされたことが検出されると、装置は適切なアクションをとってもよい。当該検出は明示的なチェックを介してでなく、しばしば暗黙的に実行可能である。さらに、状態変数のため、同一のデータが複数の表現を有する。これらの状態変数の整合性をチェックすることは、あるタイプの攻撃を検出することを可能にする。
図1aは、複数のテーブル又はサブテーブルネットワークから構成される複合テーブルネットワーク100を示す。複合テーブルネットワーク100は、電子プロセッサを有し、電子ストレージにアクセス可能な計算装置と共に機能するよう設計される。複合テーブルネットワーク100を構成する複数のより小さなテーブルネットワークが、ストレージに記憶される。電子プロセッサはストレージに結合され、各自の入力値及び出力値にテーブルを適用するよう構成される。
複合テーブルネットワーク100は、テーブルネットワーク系列110及び保護テーブルネットワーク150を有する。
系列110は、1つ以上のテーブルネットワークを有する。図1aにおいて、系列110はテーブルネットワーク112及び114を有する。テーブルネットワークは、1つのいテーブルから構成されてもよいし、又は関数を計算するため連携する複数のテーブルを有してもよい。また、テーブルネットワーク112及び114は、同様に単一のテーブルであってもよい。
より大規模な計算については、計算又はその一部を単一のテーブル又はテーブルネットワークとして表現するトレードオフがある。後者は、攻撃者がシステムを攻撃することを試みることが可能なより多くのポイントを提供するが、他方、ネットワークはより小さなストレージスペースを要求するかもしれない。ある計算は、それが大きすぎるため、実際的な表現を単一のテーブルとして有さず、この場合、テーブルネットワークが必要とされる。例えば、完全なAES計算は、単一のテーブルでなく、テーブルネットワークによって表現されてもよい。典型的には、テーブルは、機能的に同じであるテーブルネットワークによって置換可能である。テーブルネットワークとの区別が必要とされるとき、“単一テーブル”又は“モノリシックテーブル”としてテーブルを参照する。
系列110に加えて、計算装置は、ある計算結果を計算するため、多数の更なるテーブルネットワーク及び/又はテーブルネットワーク系列を組み合わせてもよい。
簡単化のため、テーブルネットワークは単一のテーブル又は複数の連携するテーブルであってもよいことを記憶して、系列110の要素をテーブルネットワークとして参照する。系列110は、1つ以上のテーブルネットワークを有してもよい。図1aにおいて、T及びTとして参照する2つのテーブル112及び114が示される。より多くの又はより少ないテーブルネットワークが可能である。特に、系列110は、単一のテーブル又は単一のテーブルネットワーク112から構成されてもよい。系列110は複数のテーブルネットワークを有してもよい。
保護テーブルネットワーク150について、同じ理由付けが適用され、それは単一のテーブルとして表現されてもよく、実際、以下に提供される選択の一部は、保護テーブルネットワーク150を単一のテーブルとしての表現に良好に適合させる。簡単化のため、それの入出力動作は1つのテーブルによって完全に置換できることを記憶して、保護テーブルネットワーク150をテーブルネットワークとして参照する。
プロセッサは、系列110のテーブルネットワークを適用することによって、グローバルデータ入力(121,w)及びグローバル状態入力(121,s)に対して繰り返し関数を計算するよう構成される。すなわち、系列110のテーブルネットワークは、グローバルデータ及び状態入力に対して複数回適用される。
系列110における各テーブルネットワークは、データ入力及び状態入力を受信する。データ変数は文字wにより参照され、状態変数は文字sにより参照される。テーブルネットワーク112及び114などの系列110のテーブルネットワークTは、対応するデータ関数f及び状態関数gについて構成される。
このようにして、変数系列は、例えば、以下を取得可能な2つのテーブルネットワーク及び2つの繰り返しなどについて生成される(参照番号は図1aを参照する)。
Figure 0006046870
繰り返し回数は2より多くてもよい。ちょうど2回の繰り返しである場合、参照番号124は同一のデータを番号123と参照する。繰り返しにおける各テーブルネットワークは、対応するデータ関数fに従ってデータ入力wi−1をデータ出力wにマッピングし、同時に状態関数gに従って状態入力si−1を状態出力sにマッピングする。データwi−1及び状態入力si−1は、最初のテーブルを除いて前のテーブルの出力であり、この場合、それが入力である。
データ及び状態変数のジョイント暗号化を示すため、記号(w,s)を利用する。例えば、データ及び状態変数を、データと状態との双方が組み合わされた変数uにマッピングする暗号化関数E(w,s)を定義してもよい。マッピングEは可逆など単射であり、すなわち、ジョイント暗号化が与えられると、元のデータ及び状態値を復元できる。逆マッピングは、データ及び状態抽出器についてρ及びσによりそれぞれ示され、これにより、E(ρ(u),σ(u))=uである。
状態及びデータ変数は様々なサイズを有しうる。系列110が単一のテーブルしか有さない場合、これらのサイズは通常は、4〜8ビットのデータサイズなど、やや適度なものとなる。状態サイズはデータサイズに等しいか、又は若干小さくてもよく、すなわち、2〜8ビットである。しかしながら、系列110がテーブルネットワークを含む場合、データ及び状態値は原理的には無制限であり、すなわち、128ビット、256ビットなどである。
一般に、系列110の繰り返される適用中、データ入力及び出力は、それの対応する状態入力又は出力と共に暗号化される。
系列の繰り返される適用は、グローバルデータ入力に対してグローバルデータ関数を決定し、またグローバル状態関数を決定する。系列110が2つのテーブルネットワークを有する場合、グローバルデータ関数は、
Figure 0006046870
によって提供され、グローバル状態関数は、グローバル状態入力に対して
Figure 0006046870
によって提供され、中間データ出力(126,winter=f(w))及び中間状態出力(126,sinter=g(s))を取得する。また、sinter及びwinterは、126として参照される単一の値に一緒に暗号化される。
繰り返し回数は固定されてもよいし、又はロープ制御変数を介し制御されてもよい。ループ制御変数は、“i”又は“インデックス”として参照されることもある。特に、後者のケースでは、プロセッサは、ループ制御変数の回数系列110を適用するよう制御ロジックにより構成されてもよい。例えば、制御ロジックは、回数を表すロープ制御変数にアクセスしてもよい。制御ロジックは、各繰り返しによってループ制御変数を減らす。制御ループ制御変数に対する処理は、テーブルネットワーク自体として実現されてもよい。
ループ制御変数がゼロでないとき、新たな繰り返しが実行されるように、制御は繰り返し後にリターンされ、ループ制御変数がゼロである場合、制御はわたされる。当該制御はテーブルネットワークとして表現されてもよい。例えば、テーブルは、変数に依存してジャンプするためのマシーンアドレスを計算してもよい。
ループ制御変数を用いて繰り返し回数を制御する代わりに、繰り返し回数は、while条件などの他の手段により制御されてもよい。この場合、ループ制御変数は、実際に実行された繰り返し回数をカウントする。
保護テーブルネットワーク150は、系列のテーブルネットワークに対してなされた変更に反撃するためテーブルネットワーク系列と連携するよう構成される。保護テーブルネットワーク150は、入力として中間状態出力sinter及びグローバル状態入力131と入力として受信するよう構成される。
保護テーブルネットワーク150が受信するグローバル状態入力131は、系列110が適用されるグローバル状態入力のコピーであってもよい(s)。例えば、状態を取得するため、入力121に対して状態抽出テーブル160を適用してもよい。抽出された状態は、符号化形式となる。この可能性が、図1bに示される。しかしながら、保護テーブルネットワーク150はまた、入力121と異なるソースから取得される状態変数を受信してもよい。例えば、前の計算は、2つの出力、1)状態出力と共に符号化されたデータ出力と、2)状態出力とを生成していてもよい。これら2つの状態出力は同じであるべきであるが、これは、特に保護テーブルネットワーク150において以降の計算においてチェックのみされる。図1aは、双方の可能性と共に利用されてもよい。データ及び状態変数を一緒に符号化する変数はロング変数として参照され、データ又は状態のみはショート変数として参照される。
保護テーブルネットワーク150は、グローバル状態入力(s)に適用されるグローバル状態関数(g)が、sinter=g(s)?として表記される中間状態出力を生成することを検証するよう構成される。
図1aにおいて、保護テーブルネットワーク150は、状態テーブルネットワーク130T及びアラインテーブル140の2つのテーブルを有する。状態テーブルネットワークTは、グローバル状態関数(g)について構成され、状態入力131を検証状態出力132sにマッピングするよう構成され、g(s)に等しくなるべきである。保護テーブルネットワーク150は、入力としてグローバル状態入力131をとり、検証状態出力132を取得するため、それ状態テーブルネットワーク130を適用する。好ましくは、状態テーブルネットワーク130Tにおけるテーブル数は、系列110におけるテーブル数より厳密に少ない。
アラインテーブル140は、検証状態出力132s及び中間データ/状態出力(147,u=(winter,sinter))を受信し、出力として保護されたデータ及び状態出力143を生成し、任意的にはまた保護された状態出力145を生成する。中間データ/状態出力147uにおける状態が検証状態出力132と同じである場合、データ及び状態出力143におけるデータは中間データ/状態出力147uにおけるデータに等しく、データ及び状態出力143における状態は、状態置換144が適用された検証状態出力132s(又はuにおける状態、それらはこの場合同じである)に等しい。当該置換は省略されてもよいが、それの存在は、アラインテーブル140の出力が、誤りが検出されなかった場合でさえそれの入力147と異なることを保証する。
アラインテーブル140は、関数z142及び任意的な置換又は順列(permutation)144から構成されてもよい。検証状態出力132及び中間データ/状態出力147u=(winter,sinter)は、z関数142に対する入力である。ここで、σ(u)=sである場合、z(u,s)=ρ(u)である。関数ρ及びσはそれぞれデータ及び状態抽出器である。従って、アラインテーブル140は、検証状態出力が中間状態出力(sinter=s?)に等しいことを検証する。
σ(u)≠sである場合、zの出力はランダムなデータ出力であってもよい。当該出力はρ(u)と常に異なるか、又はしばしば、すなわち、少なくとも90%のケースにおいて異なることを要求してもよい。出力はある入力値に対して少なくとも異なるべきである。
置換144は、状態に置換(perm)を適用し、ここで、当該状態は中間データ/状態出力147から取得されるが、検証状態がまた可能であった。アラインテーブルにおいて置換を有することは、誤り、すなわち、未許可のテーブル変更が検出されたか否かの事実に関係なく、テーブルの出力が変更可能であることを保証する。これは、テーブル140における変更が改ざんにより導入された変更を判断するのに利用される攻撃を回避する。
z関数から取得されたデータ出力と置換144からの状態とは、保護されたデータ及び状態出力143(z(u,s),Perm(s))において一緒に符号化される。状態出力はまた、状態出力145Perm(s)として別々に符号化された出力であってもよい。出力143及び145を有することは、以下の計算が入力131及び121と同様に入力としてこれらを利用することを可能にする。出力143及び145は、“保護された出力”と参照される。
テーブル140は、関数142,144が別々には見えない単一のテーブルであってもよい。テーブルネットワーク130はまた、保護テーブルネットワーク150が2つの単一のテーブルを有するように、単一のテーブルとして実現されてもよい。実施例では、状態テーブルネットワーク130及び/又はアラインテーブル140は、複数のテーブルを有するテーブルネットワークである。保護テーブルネットワーク150は、例えば、単一の繰り返し状態関数が恒等式である場合、単一のテーブルであってもよい。
系列110において使用される状態関数は、データ関数から独立に選択されてもよい。これは、効果的な選択が可能であることを意味する。例えば、データ関数がそうでなくても、等しい(g)となる系列におけるテーブルネットワーク(T)に対応する全ての状態関数(g)を選択してもよい。状態関数について適切な選択をすることによって、それらの関数構成は、データ関数の関数構成が計算するのにシンプルでなかったとしても、計算するのにシンプルであってもよい。
系列110のテーブルネットワークの単一の繰り返しにより決定される状態入力に対する関数は、単一繰り返し状態関数
Figure 0006046870
として参照される。単一繰り返し状態関数
Figure 0006046870
が特にシンプルになるように、個々の状態関数gを選択してもよい。系列が単一のテーブルネットワークのみを有する場合、
Figure 0006046870
である。テーブルネットワークの系列が繰り返し適用されるとき、単一繰り返し状態関数
Figure 0006046870
が繰り返し適用される。
実施例では、単一繰り返し状態関数
Figure 0006046870
は冪等(idempotent)である。冪等関数は、
Figure 0006046870
という性質を有し、冪等関数を1回適用することは入力を変えるかもしれないが、それを複数回適用することは関数をさらには変えない。特に、
Figure 0006046870
は冪等であってもよく、恒等式でなくてもよい。ランダムな冪等関数は以下のように選択されてもよい。まず、固定点及び非固定点における全ての状態値をパーティションし、少なくとも1つの固定点があるべきであり、次に各非固定点xについて、固定点yを選択し、
Figure 0006046870
を設定する。このアルゴリズムは、テーブルにおける実現に良好に適している。パーティション及び選択はランダムであってもよい。
繰り返し数が少なくとも1つであると知られ、
Figure 0006046870
が冪等である場合、状態テーブルネットワーク130は、正確な繰り返し数を知る必要なく、
Figure 0006046870
について構成されてもよい。
実施例では、系列におけるテーブルネットワークの1つ以上又は全ては、前のテーブルネットワーク以外の更なるソースから追加的な入力を受信する。テーブルネットワークのデータ出力は追加的な入力に依存しうる。追加的な入力は追加的な状態入力と共に暗号化されてもよいし、暗号化されなくてもよく、にもかかわらず、状態入力は追加的な入力に依存しない。このように、追加的な入力は中間状態出力と検証状態との間の関係を乱さない。
典型的には、計算装置は、当該装置に記憶されている適切なソフトウェアを実行するマイクロプロセッサ(図示せず)を有し、例えば、当該ソフトウェアは、RAMなどの揮発性メモリ又はフラッシュ(図示せず)などの不揮発性メモリなどの対応するメモリにダウンロード及び/又は記憶されたものであってもよい。
図2は、複合テーブルネットワーク200の概略的なブロック図である。図2は、状態テーブルネットワーク130が追加的な入力133を有することを除いて、図1とほぼ同様であり、kは系列の繰り返し数110である。状態テーブルネットワーク130は、単一繰り返し状態関数
Figure 0006046870
の繰り返しの効果を計算するよう構成される。例えば、定数の加算として、単一繰り返し状態関数
Figure 0006046870
を選択してもよい。この場合、状態テーブルネットワーク130は、s+kc(sは入力131を参照)を計算するよう構成可能である。後者の関数は小規模テーブルナットワークにおいて容易に実現可能である。従って、状態テーブルネットワーク130について必要とされるストレージ量は、系列110について必要とされるものよりはるかに小さい。
Figure 0006046870
が冪等であり、繰り返し数がゼロでありうる場合、状態テーブルネットワーク130は、2つの入力値133、すなわち、ゼロと非ゼロについて構成すれさえすればよい。
実施例では、
Figure 0006046870
は冪零(nilpotent)であり、すなわち、関数
Figure 0006046870
のq個の合成が恒等式に等しくなるような整数qが存在する。このような関数の具体例は、qを分割する長さによる循環(cycle)のみを有する循環分解を有する置換であり、すなわち、
Figure 0006046870
は、
Figure 0006046870
のq個の合成が恒等式に等しくなるように、オーダqの置換である。このような場合、状態テーブルネットワーク130は、gの高々q個の合成を計算するのに十分大きいものであればよい。この場合、それの値のモジュロqしか必要でないため、更なる入力133が簡単化されうる。
Figure 0006046870
が恒等式である場合、保護テーブルネットワーク150は単一のテーブルとしてより容易に実現されうる。
図3は、更なる他のオプションを示すブロック暗号である。ここで、
Figure 0006046870
は恒等式となるよう選択される。保護テーブルネットワーク150は、グローバル状態入力(s)が中間状態出力に等しいことを検証するよう構成される(sinter=s?)。この場合、テーブル130は完全に省略されてもよい。
所望の単一繰り返し状態関数を取得するためgを選択する1つの方法は以下の通りである。系列110がn個の関数gを定義するn個のテーブルネットワークを有すると仮定する。まず、
Figure 0006046870
を選択し、状態変数の全ての値に対する置換として
Figure 0006046870
を表現する。次に、
Figure 0006046870
についてランダムな置換を選択する。最後に、単一繰り返し関数
Figure 0006046870
からの最後の状態関数g及びランダムな置換の逆を、例えば、
Figure 0006046870
として選択する。このアルゴリズムは、例えば、
Figure 0006046870
が恒等式又は冪零であるときに適用されてもよい。実施例では、単一繰り返し状態関数は、特に、例えば、単一繰り返し状態関数が冪零又は冪等である場合でも、系列の少なくとも1つのテーブルネットワーク(T)の状態関数(g)と異なる。実施例では、単一繰り返し状態関数は、特に単一繰り返し状態関数が冪零又は冪等である場合でも、系列の何れかのテーブルネットワーク(T)の各状態関数(g)と異なる。
図4は、計算装置400の概略的なブロック図である。
図4は、記憶装置410を有する計算装置400を示す。図4に示される装置は、図1,2,3,5に示されるテーブルネットワークと共に利用されてもよい。
記憶装置410は、典型的には、1つ以上の不揮発性メモリであるが、またハードディスク、光ディスクなどであってもよい。記憶装置410はまた、ダウンロード又は受信されたデータを有する揮発性メモリであってもよい。計算装置400は、プロセッサ450を有する。プロセッサは、典型的には、メモリに記憶されるコード455を実行する。便宜上、コードは記憶装置410に記憶されてもよい。コードは、プロセッサに計算を実行させる。装置400は、入力値を受信し、及び/又は結果を送信するための任意的なI/O装置460を有してもよい。I/O装置460は、ネットワーク接続、着脱可能な記憶装置などであってもよい。
記憶装置410は、図1〜3,5の1つによる1つ以上のテーブルネットワークを有する。
実施例では、計算装置は、実行中に以下のように動作しうる。計算装置400は入力値を受信する。当該入力値は、例えば、符号化テーブル441を用いて符号化される。従って、入力値は符号化された入力値として取得される。入力値は、例えば、装置460などを介し符号化された入力値として直接取得可能であることに留意されたい。入力値を符号化された入力値に符号化することは、状態入力が選択される必要があることを意味する。これを実行するための複数の方法があり、例えば、状態入力は、乱数生成器などによってランダムに選択されてもよい。状態入力はアルゴリズムに従って選択されてもよく、アルゴリズムは複雑化され、難読化に付加される。状態入力値はまた定数であってもよいし、数のシーケンス、すなわち、一定のインクリメント、すなわち、1を有する整数のシーケンスから順次とられてもよく、あるスタートポイントで開始され、当該スタートポイントはゼロ、乱数などであってもよい。状態入力を乱数として選択し、次の状態入力選択のそれぞれについて1だけ増加することは、特に効果的な選択である。状態入力がオフデバイスに選択される場合、攻撃者は、何れで状態入力値が選択され、それらが何であるかを追跡する方法を有さない。
プロセッサ450は、記憶装置410におけるプログラム455を実行する。プログラムは、プロセッサに符号化された入力値又は結果として得られた出力値にルックアップテーブルを適用させる。ルックアップテーブルは、何れかの論理又は算術関数について作成されてもよく、このため、ルックアップテーブルのシーケンスを利用することによって、何れかの計算が実行されてもよい。これはプログラムを難読化することを助ける。この場合、単一の関数入力値は複数の符号化された入力値によって表現されうるため、難読化は特に効果的である。さらに、一部又は全てのテーブル及び/又はテーブルネットワークは、複数の関数の性質を有するテーブルネットワークの複数の関数の性質を有し、一部又は全てが結果の検証のため第2のテーブルネットワークとペアリングされる。
あるポイントでは、結果値が検出される。必要である場合、結果は復号化テーブル442などを用いて復号化されてもよい。しかしながら、当該結果はまた符号化形式でエクスポートされてもよい。入力値はまた入力装置から取得されてもよく、出力値は画面上に示すため利用されてもよい。
計算は符号化されたデータワードに対して実行される。計算は、テーブルルックアップアクセスのシーケンスを適用することによって実行される。用いられる入力値は、計算装置の外部から受信した入力値であってもよいが、前のルックアップテーブルアクセスによって取得されてもよい。このように、新たなルックアップテーブルアクセスについて利用される中間結果が取得される。あるポイントでは、中間結果の1つは関数の符号化された結果である。
計算装置400は、状態入力値をデータ関数入力に割り当てるための乱数生成器を有してもよい。
図5は、複合テーブルネットワーク500の概略的なブロック図である。テーブルネットワーク500は、テーブルネットワーク1aと同じである。また、図5では、出力145及びテーブル130は任意的である。しかしながら、図5において、系列110は少なくとも2つのテーブルネットワークを有し、さらに、系列110は繰り返されず、入力に対して1回適用される。グローバル状態関数は恒等式(図示せず)であってもよい。この場合、系列はほとんどオーバヘッドなく検証されうる。グローバル状態関数が恒等式でない場合、テーブル130が利用されてもよい(図5に示されるように)。しかしながら、系列110における複数のテーブルを検証するため、単一のテーブルネットワーク又はテーブル130しか必要とされない。特に、ストレージ(510)における状態テーブルネットワーク130のサイズは、ストレージにおける系列110のサイズより小さい。
例えば、複合テーブルネットワーク500は、複数のラウンド、すなわち、AES、DESなどを有するブロック暗号を表すものであってもよい。ブロック暗号の各ラウンドは、系列110のテーブルネットワークによって計算され、ここで、データ関数はブロック暗号ラウンドを表す。各データ関数は状態関数と結合される。状態関数は、グローバル状態関数が恒等式となるように選択される。例えば、ラウンドの第1の半分では、状態関数はデータ関数に等しいが、ラウンドの第2の半分では、状態関数は第1の半分における状態関数の逆である。この結果、系列はデータ関数によりブロック暗号を計算するが、状態関数により恒等式を計算する。
図6は、コンパイル方法600をフローチャートとして示す。ステップ610において、第1のコンピュータプログラムが受信機により受信される。ステップ620において、辞書式解析が、例えば、辞書式解析手段によってトークンを特定するため実行される。おそらくマクロ拡張などの処理がまた実行される。ステップ630において、プログラムが構文解析器(parser)により解析される。例えば、構文解析器は、第1のプログラムのプログラミング言語の形式的文法に従って構文解析ツリーを生成する。構文解析器は、プログラムにおける異なる言語構成を特定し、適切なコード生成ルーチンを呼び出す。特に、1つ以上の演算子(operator)が特定される。この場合、ステップ640において、コード生成はコード生成器により実行される。コード生成中、コードと、必要に応じて付属のテーブルとが生成される。付属のテーブルは、2つの関数、1つは必要な演算子のためのものであり、すなわち、データ関数と状態関数とについて構成されるテーブルを含む。
コンパイラは、1つ以上の関数を特定するよう構成される。この場合、ステップ640において、コード生成はコード生成器により実行される。コード生成中、コードとテーブルネットワークの系列110が生成される。また、保護テーブルネットワーク150が生成される。生成されたコードは、系列110を繰り返し適用するよう構成される。上述されたように、結果に対して保護テーブルネットワーク150が適用される。
ステップ655において、生成されたテーブルはテーブルベースにマージされる。いくつかのテーブルは複数回生成されることがよく起きるためである。この場合、それらを複数回記憶することは必要とされない。例えば、アッドテーブルは1回しか必要及び生成されなくてもよい。全てのコードがマージされ、全てのテーブルがマージされると、コンパイル処理は終了される。任意的には、最適化ステップがあってもよい。
典型的には、コンパイラは符号化されたドメインを利用し、すなわち、ある基準に対応する全ての値又は少なくとも全ての値が符号化されるプログラムのセクションは、コードワードビットサイズ(n)を有する。符号化されたドメインでは、処理は、ルックアップテーブルの実行により実行されてもよい。符号化されたドメインが入力されると、全ての値が符号化され、符号化されたドメインが残されると、値は復号化される。基準は、当該値が暗号鍵などの機密情報に相関するか、又は依存するということであってもよい。
コンパイラを生成するための興味深い方法は以下である。ステップ630において、中間的コンパイルが実行される。これは、レジスタ転送言語などの中間的言語に対するものであってもよいが、また機械語コードコンパイルであってもよい。これは、図6のステップ610〜630について、テーブルネットワークを生成しない従来のコンパイラが利用されてもよいことを意味する。しかしながら、ステップ640において、コード生成は、中間的コンパイルに基づき実行される。例えば、機械語コードが利用された場合、各命令は当該命令の対応する演算子のない実装、すなわち、当該命令のテーブルベースの実装により置換される。これは、コンパイラを生成するための特に直接的な方法を表す。図6はまた、機械語でなく第2のプログラミング言語を生成するコンパイラを生成するのに利用されてもよい。
図7は、テーブルネットワークの系列(110,T,T)を利用する計算方法700の概略的なフローチャートであり、当該方法は、テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力(121,w)及びグローバル状態入力(121,s)に対して繰り返し関数を計算するよう構成される。
当該方法は、系列のテーブルネットワーク(T,T,T,T)を繰り返し適用することを含み、繰り返し適用されるテーブルネットワークのテーブルネットワーク(T)をグローバルデータ入力(w)及びグローバル状態入力(s)に適用し、当該繰り返しの後続するテーブルネットワーク(T,T,T)を系列の前のテーブルネットワークのデータ出力及び状態出力に適用し、系列の繰り返される適用は、グローバルデータ入力に対するグローバルデータ関数
Figure 0006046870
を決定し、グローバル状態入力に対するグローバル状態関数
Figure 0006046870
を決定し、これにより、中間データ出力(winter=f(w))及び中間状態出力(sinter=g(s))を取得する。
系列のテーブルネットワークになされた変更に対処するためテーブルネットワークの系列と連携するよう構成される保護テーブルネットワーク(150)を適用することによって、グローバル状態入力(s)に適用されるグローバル状態関数(g)が中間状態出力を生成することを検証し(sinter=g(s)?)、保護テーブルネットワークは入力として中間状態出力(125;126,sinter)及びグローバル状態入力(131,s)を受信するよう構成され、保護テーブルネットワークは、グローバル状態入力(s)に適用されるグローバル状態関数(g)が中間状態出力を生成することを検証するよう構成される(sinter=g(s)?)。
当業者に明らかなように、当該方法を実行するための多数の異なる方法が可能である。例えば、ステップの順序は変更可能であり、又は一部のステップはパラレルに実行されてもよい。さらに、他の方法ステップがステップ間に挿入されてもよい。挿入されたステップは、ここに説明されるような方法の精緻化を表すものであるか、又は当該方法に関連しないものであってもよい。例えば、テーブル130がステップ720において利用される場合、テーブル130は、系列110に完全にパラレルに実行されてもよい。
さらに、所与のステップは、次のステップが開始されるまで、完全に終了していなくてもよい。
本発明による方法は、プロセッサシステムに方法700を実行させるための命令を有するソフトウェアを用いて実行されてもよい。ソフトウェアは、システムの特定のサブエンティティによりとられたステップのみを含むものであってもよい。ソフトウェアは、ハードディスク、フロッピー(登録商標)、メモリなどの適切な記憶媒体に記憶されてもよい。ソフトウェアは、有線若しくは無線を介し又はインターネットなどのデータネットワークを利用して信号として送信されてもよい。ソフトウェアは、サーバ上でダウンロード及び/又はリモート使用のために利用可能とされてもよい。本発明による方法は、本発明による方法を実行するようFPGA(Field−Programmable Gate Array)などのプログラマブルロジックを設定するよう構成されるビットストリームを用いて実行されてもよい。
本発明はまた、本発明を実施するよう構成されるコンピュータプログラム、特にキャリアにおけるコンピュータプログラムに拡張されることが理解されるであろう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース及び部分的にコンパイルされた形態などのオブジェクトコード、又は本発明による方法に実現において利用するのに適した他の何れかの形態におけるものであってもよい。コンピュータプログラムプロダクトに関する実施例は、提供された方法の少なくとも1つの処理ステップのそれぞれに対応するコンピュータ実行可能命令を有する。これらの命令は、サブルーチンに分割されてもよく、及び/又は静的又は動的にリンクされてもよい1つ以上のファイルに記憶されてもよい。コンピュータプログラムプロダクトに関する他の実施例は、提供されたシステム及び/又はプロダクトの少なくとも1つの各手段に対応するコンピュータ実行可能命令を有する。
上述した実施例は本発明を限定するのでなく説明するものであり、当業者が他の多数の実施例を設計可能であることが留意されるべきである。
請求項において、括弧内に配置された参照符号は、請求項を限定するものとして解釈されるべきでない。“有する”という動詞及びそれの派生語の使用は、請求項に記載された以外の要素又はステップの存在を排除するものでない。要素に先行する冠詞“ある”は、当該要素が複数存在することを排除するものでない。本発明は、複数の個別の要素を有するハードウェア及び適切にプログラムされたコンピュータによって実現されてもよい。複数の手段を列記した装置の請求項において、これらの手段の複数は1つ及び同じハードウェアアイテムにより実現されてもよい。特定の手段が相互に異なる従属形式の請求項に記載されているという単なる事実は、これらの手段の組み合わせが効果的に利用可能でないことを示すものでない。
図1a、1b、2〜5における参照番号のリスト
100,200,300,400,500 複合テーブルネットワーク
110 テーブル又はテーブルネットワークの系列
112,114 テーブル又はテーブルネットワーク
121 グローバルデータ入力及びグローバル状態入力
122 テーブル112のデータ出力及び状態出力
124 テーブル112の繰り返しのデータ入力及び状態入力
123 テーブル114のデータ出力及び状態出力
125 テーブル112の繰り返しのデータ出力及び状態出力
126 テーブル114の繰り返しのデータ出力及び状態出力
130 グローバル状態関数について構成される状態テーブル又はテーブルネットワーク
131 検証グローバル状態入力
132 検証状態出力
133 系列の繰り返し数
140 アラインテーブル又はテーブルネットワーク
142 z関数
143 保護されたデータ及び状態出力
144 置換
145 保護された状態出力
147 アラインテーブル140のデータ及び状態入力
150 保護テーブル又はテーブルネットワーク
160 状態抽出テーブル
400 計算装置
410 ストレージ
441 符号化ルックアップテーブル
442 復号化ルックアップテーブル
450 コンピュータプロセッサ
455 機械語コード
460 I/O装置
421,422 単一入力ルックアップテーブル
431,432 複数入力ルックアップテーブル
4311,4323 単一入力ルックアップテーブル

Claims (14)

  1. 電子ストレージと、前記ストレージに結合される電子プロセッサとを有する計算装置であって、前記ストレージはテーブルネットワークの系列を記憶し、前記プロセッサは、前記テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力とグローバル状態入力とに対して繰り返される関数を計算するよう構成され、
    前記系列のテーブルネットワークは、対応するデータ関数と状態関数とについて構成され、前記対応するデータ関数に従ってデータ入力をデータ出力にマッピングし、状態関数に従って状態入力を状態出力に同時にマッピングするよう構成され、
    前記電子プロセッサは、前記テーブルネットワークの系列の適用を繰り返すよう構成され、前記繰り返し適用されるテーブルネットワークのテーブルネットワークを前記グローバルデータ入力とグローバル状態入力とに適用し、前記繰り返しの後続のテーブルネットワークを前記系列の前のテーブルネットワークのデータ出力と状態出力とに適用し、前記系列の繰り返される適用は、前記グローバルデータ入力に対してグローバルデータ関数を決定し、前記グローバル状態入力に対してグローバル状態関数を決定し、これにより、中間データ出力と中間状態出力とを取得し、
    前記電子ストレージは更に、前記系列のテーブルネットワークになされた変更に対処するため前記テーブルネットワークの系列と連携するよう構成される保護テーブルネットワークを記憶し、前記保護テーブルネットワークは、前記中間状態出力とグローバル状態入力とを入力として受信するよう構成され、前記保護テーブルネットワークは、前記グローバル状態入力に適用されるグローバル状態関数が前記中間状態出力を生成することを検証するよう構成される計算装置。
  2. 前記系列のテーブルネットワークの単一の繰り返しは、前記グローバル状態入力に対する単一繰り返し状態関数を決定し、前記単一繰り返し状態関数は冪等又は冪零である、請求項1記載の計算装置。
  3. 前記単一繰り返し状態関数は恒等式であり、前記保護テーブルネットワークは、前記グローバル状態入力が前記中間状態出力に等しいことを検証するよう構成される、請求項2記載の計算装置。
  4. 前記保護テーブルネットワークは、系列の繰り返し数に応じて更なる入力を受信するよう構成される、請求項1記載の計算装置。
  5. 前記保護テーブルネットワークは更に、前記中間データ出力を入力として受信し、保護されたデータ出力と保護された状態出力とを出力として生成するよう構成され、
    前記検証が成功した場合、前記保護されたデータ出力は、前記中間データ出力に等しく、前記検証が前記グローバルデータ入力と前記グローバル状態入力との少なくとも一部の値について不成功である場合、前記保護されたデータ出力は前記中間データ出力に等しくない、請求項1記載の計算装置。
  6. 前記保護テーブルネットワークは、状態テーブルネットワークを有し、
    前記状態テーブルネットワークは、前記グローバル状態関数について構成され、前記状態入力を検証状態出力にマッピングするよう構成され、
    前記保護テーブルネットワークは、検証状態出力が前記中間状態出力に等しいことを検証するよう構成される、請求項1記載の計算装置。
  7. 前記状態テーブルネットワークは、前記系列におけるテーブルネットワークより少ないテーブルを一緒に有する、請求項6記載の計算装置。
  8. 前記系列におけるテーブルネットワークに対応する全ての状態関数は等しい、請求項1記載の計算装置。
  9. 前記グローバルデータ入力とグローバル状態入力とは、一緒に単一のグローバル入力に符号化され、
    前記系列のテーブルネットワークのデータ入力と状態入力とは、一緒に単一の入力に符号化され、
    前記系列のテーブルネットワークのデータ出力と状態出力とは、一緒に単一の出力に符号化され、
    前記中間データ出力と前記中間状態出力とは、一緒に単一の中間出力に符号化され、
    前記保護されたデータ出力と前記保護された状態出力とは、一緒に単一の保護された出力に符号化される、請求項1記載の計算装置。
  10. 電子ストレージと、前記ストレージに結合される電子プロセッサとを有する計算装置であって、前記ストレージは、テーブルネットワークの系列を記憶し、前記プロセッサは、前記テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力とグローバル状態入力とに対して関数を計算するよう構成され、
    前記系列のテーブルネットワークは、対応するデータ関数と状態関数とについて構成され、前記対応するデータ関数に従ってデータ入力をデータ出力にマッピングし、状態関数に従って状態入力を状態出力に同時にマッピングするよう構成され、
    前記電子プロセッサは、前記テーブルネットワークの系列を適用するよう構成され、前記適用されるテーブルネットワークのテーブルネットワークを前記グローバルデータ入力とグローバル状態入力とに適用し、後続のテーブルネットワークを前記系列の前のテーブルネットワークのデータ出力と状態出力とに適用し、前記系列の適用は、前記グローバルデータ入力に対してグローバルデータ関数を決定し、前記グローバル状態入力に対してグローバル状態関数を決定し、これにより、中間データ出力と中間状態出力とを取得し、
    前記電子ストレージは更に、前記系列のテーブルネットワークになされた変更に対処するため前記テーブルネットワークの系列と連携するよう構成される保護テーブルネットワークを記憶し、前記保護テーブルネットワークは、前記中間状態出力とグローバル状態入力とを入力として受信するよう構成され、前記保護テーブルネットワークは、前記グローバル状態入力に適用されるグローバル状態関数が前記中間状態出力を生成することを検証するよう構成され、
    前記グローバル状態関数は恒等式であり、又は
    前記系列は、前記グローバル状態関数を計算するための2つより多くのテーブルネットワークを有し、前記保護テーブルネットワークは単一の状態テーブルネットワークを有し、前記状態テーブルネットワークは、前記グローバル状態関数について構成され、前記状態入力を検証状態出力にマッピングするよう構成され、前記保護テーブルネットワークは、検証状態出力が前記中間状態出力に等しいことを検証するよう構成され、前記状態テーブルネットワークは前記系列におけるテーブルネットワークより少ないテーブルを一緒に有する計算装置。
  11. テーブルネットワークの系列を利用する計算方法であって、当該方法は、前記テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力とグローバル状態入力とに対して繰り返される関数を計算するよう構成され、
    前記系列のテーブルネットワークは、対応するデータ関数と状態関数とについて構成され、前記対応するデータ関数に従ってデータ入力をデータ出力にマッピングし、状態関数に従って状態入力を状態出力に同時にマッピングするよう構成され、
    当該方法は、
    前記テーブルネットワークの系列を繰り返し適用するステップであって、前記繰り返し適用されるテーブルネットワークのテーブルネットワークを前記グローバルデータ入力とグローバル状態入力とに適用し、前記繰り返しの後続のテーブルネットワークを前記系列の前のテーブルネットワークのデータ出力と状態出力とに適用し、前記系列の繰り返される適用は、前記グローバルデータ入力に対してグローバルデータ関数を決定し、前記グローバル状態入力に対してグローバル状態関数を決定し、これにより、中間データ出力と中間状態出力とを取得する、適用するステップと、
    前記系列のテーブルネットワークになされた変更に対処するため前記テーブルネットワークの系列と連携するよう構成される保護テーブルネットワークを適用することによって、前記グローバル状態入力に適用されるグローバル状態関数が前記中間状態出力を生成することを検証するステップであって、前記保護テーブルネットワークは、前記中間状態出力とグローバル状態入力とを入力として受信するよう構成され、前記保護テーブルネットワークは、前記グローバル状態入力に適用されるグローバル状態関数が前記中間状態出力を生成することを検証するよう構成される、検証するステップと、
    を有する方法。
  12. データ関数の系列を取得し、テーブルネットワークの第1の系列、保護テーブルネットワーク及びコンピュータコードを生成するよう構成されるコンパイラであって、前記第1の系列と保護テーブルネットワークとは電子ストレージに記憶されるよう構成され、前記コンピュータコードは、前記電子ストレージに結合される電子プロセッサ上で実行されるよう構成され、前記コンピュータコードは、前記テーブルネットワークの系列のテーブルネットワークを適用することによって、グローバルデータ入力とグローバル状態入力とに対して繰り返される関数を計算するよう構成され、
    前記系列のテーブルネットワークは、前記データ関数の系列の対応するデータ関数と状態関数とについて構成され、前記対応するデータ関数に従ってデータ入力をデータ出力にマッピングし、状態関数に従って状態入力を状態出力に同時にマッピングするよう構成され、
    前記コンピュータコードは、前記テーブルネットワークの系列の適用を繰り返すよう構成され、前記繰り返し適用されるテーブルネットワークのテーブルネットワークを前記グローバルデータ入力とグローバル状態入力とに適用し、前記繰り返しの後続のテーブルネットワークを前記系列の前のテーブルネットワークのデータ出力と状態出力とに適用し、前記系列の繰り返される適用は、前記グローバルデータ入力に対してグローバルデータ関数を決定し、前記グローバル状態入力に対してグローバル状態関数を決定し、これにより、中間データ出力と中間状態出力とを取得し、
    前記保護テーブルネットワークは、前記系列のテーブルネットワークになされた変更に対処するため前記テーブルネットワークの系列と連携するよう構成され、前記保護テーブルネットワークは、前記中間状態出力とグローバル状態入力とを入力として受信するよう構成され、前記保護テーブルネットワークは、前記グローバル状態入力に適用されるグローバル状態関数が前記中間状態出力を生成することを検証するよう構成されるコンパイラ。
  13. コンピュータプログラムがコンピュータ上で実行されると、請求項11の全てのステップを実行するよう構成されるコンピュータプログラムコード手段を有するコンピュータプログラム。
  14. コンピュータ可読媒体上に実現される請求項12又は13記載のコンピュータプログラム。
JP2016535645A 2013-12-05 2014-11-19 テーブルネットワークの繰り返し適用のための計算装置 Expired - Fee Related JP6046870B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP13195809 2013-12-05
EP13195809.2 2013-12-05
PCT/EP2014/074952 WO2015082212A1 (en) 2013-12-05 2014-11-19 A computing device for iterative application of table networks

Publications (2)

Publication Number Publication Date
JP6046870B1 true JP6046870B1 (ja) 2016-12-21
JP2017504052A JP2017504052A (ja) 2017-02-02

Family

ID=49949420

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016535645A Expired - Fee Related JP6046870B1 (ja) 2013-12-05 2014-11-19 テーブルネットワークの繰り返し適用のための計算装置

Country Status (5)

Country Link
US (1) US20160306973A1 (ja)
EP (1) EP3078154B1 (ja)
JP (1) JP6046870B1 (ja)
CN (1) CN105765896B (ja)
WO (1) WO2015082212A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018537704A (ja) * 2015-10-12 2018-12-20 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 暗号化デバイス及び符号化デバイス

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201405754D0 (en) * 2014-03-31 2014-05-14 Irdeto Bv Protecting an item of software comprising conditional code
JP6890589B2 (ja) * 2015-12-15 2021-06-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 計算デバイス及び方法
AU2018320434B2 (en) * 2017-08-22 2020-12-17 Nippon Telegraph And Telephone Corporation Secure computation device, secure computation method, program, and recording medium
EP3534253A1 (en) 2018-02-28 2019-09-04 Koninklijke Philips N.V. Compiling device and method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100303231A1 (en) * 2007-05-22 2010-12-02 Koninklijke Philips Electronics N.V. Updating cryptographic key data
US8161463B2 (en) * 2007-02-23 2012-04-17 Irdeto Canada Corporation System and method of interlocking to protect software—mediated program and device behaviors
US20120300922A1 (en) * 2009-12-30 2012-11-29 France Telecom Method of generating a correspondence table for a cryptographic white box
WO2013139380A1 (en) * 2012-03-20 2013-09-26 Irdeto Bv Updating key information

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007000081A1 (en) * 2005-06-29 2007-01-04 Intel Corporation Methods, apparatus, and systems for caching
EP1997265B1 (en) * 2006-03-10 2020-08-05 Irdeto B.V. Integrity of a data processing system using white-box for digital content protection
WO2008010119A2 (en) * 2006-07-12 2008-01-24 Koninklijke Philips Electronics N.V. Tamper resistance of a digital data processing unit
CN101477610B (zh) * 2008-12-25 2011-05-18 中国人民解放军信息工程大学 源码和目标码联合嵌入的软件水印方法
EP2367316B1 (en) * 2010-03-12 2017-07-05 STMicroelectronics (Rousset) SAS Method and circuitry for detecting a fault attack
CN102662825B (zh) * 2012-02-22 2014-07-16 中国人民解放军国防科学技术大学 一种面向堆操作程序的内存泄漏检测方法
JP2016505891A (ja) * 2012-12-21 2016-02-25 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. テーブルネットワークを有する計算装置
US9594769B2 (en) * 2012-12-21 2017-03-14 Koninklijke Philips N.V. Computing device configured with a table network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8161463B2 (en) * 2007-02-23 2012-04-17 Irdeto Canada Corporation System and method of interlocking to protect software—mediated program and device behaviors
US20100303231A1 (en) * 2007-05-22 2010-12-02 Koninklijke Philips Electronics N.V. Updating cryptographic key data
US20120300922A1 (en) * 2009-12-30 2012-11-29 France Telecom Method of generating a correspondence table for a cryptographic white box
WO2013139380A1 (en) * 2012-03-20 2013-09-26 Irdeto Bv Updating key information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6016040863; KARRI, R. et al.: 'Concurrent Error Detection Schemes for Fault-Based Side-Channel Cryptanalysis of Symmetric Block Cip' IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems Vol.21 No.12, 200212, p.1509-1517 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018537704A (ja) * 2015-10-12 2018-12-20 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 暗号化デバイス及び符号化デバイス

Also Published As

Publication number Publication date
EP3078154A1 (en) 2016-10-12
CN105765896A (zh) 2016-07-13
CN105765896B (zh) 2020-02-07
EP3078154B1 (en) 2018-09-19
JP2017504052A (ja) 2017-02-02
US20160306973A1 (en) 2016-10-20
WO2015082212A1 (en) 2015-06-11

Similar Documents

Publication Publication Date Title
US10180824B2 (en) Computing device comprising a table network
US10359996B2 (en) Random number generator and stream cipher
JP5861018B1 (ja) テーブルネットワークによって構成されたコンピューティングデバイス
KR102539111B1 (ko) 메시지 부호화 및 복호화를 위한 블록 암호화 방법 및 이 방법을 구현하기 위한 암호화 장치
CN107005404B (zh) 实现密码算法的可执行的白盒掩码实施的处理器装置
US9553722B2 (en) Generating a key based on a combination of keys
RU2711193C2 (ru) Криптографическое устройство, приспособленное для вычисления целевого блочного шифра
JP6046870B1 (ja) テーブルネットワークの繰り返し適用のための計算装置
CN108964872B (zh) 一种基于aes的加密方法及装置
Alpirez Bock et al. White-box cryptography: don’t forget about grey-box attacks
Aldaya et al. AES T-Box tampering attack
EP3477889A1 (en) Using white-box in a leakage-resilient primitive
AU2018374489B2 (en) Method for protecting a source of entropy used in countermeasures securing a whitebox cryptographic algorithm
Ma et al. Influence of Error on Hamming Weights for ASCA
Duta et al. Evaluation Framework for Security and Resource Consumption of Cryptographic Algorithms
Volpe Evaluation of encryption algorithm security in heterogeneous platform against differential power analysis attack
Cruz Influence of Error on Hamming Weights for ASCA
Rigot Útoky na white-box AES

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160601

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160601

TRDD Decision of grant or rejection written
A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20161019

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161117

R150 Certificate of patent or registration of utility model

Ref document number: 6046870

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

LAPS Cancellation because of no payment of annual fees