JP6554103B2 - 暗号アルゴリズムで使用されるときに秘密データを保護する方法 - Google Patents
暗号アルゴリズムで使用されるときに秘密データを保護する方法 Download PDFInfo
- Publication number
- JP6554103B2 JP6554103B2 JP2016545299A JP2016545299A JP6554103B2 JP 6554103 B2 JP6554103 B2 JP 6554103B2 JP 2016545299 A JP2016545299 A JP 2016545299A JP 2016545299 A JP2016545299 A JP 2016545299A JP 6554103 B2 JP6554103 B2 JP 6554103B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- operations
- source code
- algorithm
- fusion
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- 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/04—Masking or blinding
-
- 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)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Storage Device Security (AREA)
Description
この方法により生成されるホワイトボックス実装は、(鍵等の)秘密データが実装を含むプログラムに対する完全なアクセス及び制御を有する攻撃者に暴露される、又はそれ以外の場合、導き出されるのを防ぐように設計される。
最後に、本開示はホワイトボックス実装がアウトオブコンテキストで使用される、つまり、その使用目的のためにアプリケーションによってよりはむしろ、悪意のある目的のために攻撃者によって直接的に呼び出されるのを防ぐ方法を説明する。
1. ホワイトボックス実装の生成
‐アルゴリズム拡大(S31)、
‐部分的な評価(ステップS32)、
‐秘密の爆発(ステップS33)、及び
‐秘密の融合(ステップS34)
{値:#ソース:状態}
「値」が(その時点での)その値の実行時の内容である場合、「ソース」はその値を生じさせた演算であり、「状態」は、値が(「c」で示される)一定の入力だけから導き出されるのか、それとも(「v」で示される)少なくとも1つの可変入力だけから導き出されるのかを示す。例えば、行7で、修飾されたメモリ位置「a」は行5の演算によって生じた20の実行時値を有し、値は一定の入力データだけから導き出される。注目されるのは、ここに示される例がプロセスの表現にすぎず、プロセスを実装するために使用される物理的表現に直接的に対応しないことがある点である。例えば、本発明の現在の実施形態では、演算はここに示される疑似コードよりも低いレベルに存在し、「for」ループ等の構成体を有さない。また、現在の実施形態は実施形態自体を、わずか1つの出力を有する演算に制限し、このことが依存性モデルを簡略化する。ただし、プロセスは幅広い範囲の物理表現に適用できる。
‐実行される各演算は、そのパラメータの実際値及び該値の一定状態/可変状態とともに記録される、
‐関数呼出し、関数終了、条件分岐、及び無条件分岐を含んだすべての制御フロー変更が記録されるが、すべての制御フロー変更の影響は記録されている通常の演算にすでに存在するため、通常の演算とは異なるとして記される。例えば、関数が呼び出される場合、次いで記録は以下のシーケンスを含む。1)呼出し演算、2)呼び出された関数の中の演算、3)関数終了、及び4)呼出し側の関数の残りの演算、並びに
‐演算により書き込まれるすべてのメモリ位置の状態は、その位置に書き込むための最後の演算、及びその演算の結果としてのその位置の一定状態/可変状態を(それぞれについて)記憶するマップに記録される。演算の入力値がすべて一定である場合、次いで書き込まれたメモリ位置は一定として記録されるだろう。それ以外の場合、メモリ位置は可変として記録される。
表1のそれぞれの表の行は実行中の各演算、及びその演算が実行された後のあらゆるメモリ位置の状態を表す。各メモリ位置「a」及び「i」はその位置の値、その位置に書き込むための最後の演算、及び位置の一定/可変(c/v)状態を示す3つの列によって表される。位置「a」及び「i」は演算1から12に交互に変更される。再び(行7の)演算7を見ると、演算が(行6からの読取りを)実行する前に、「a」の位置が20の値を有し、上記のデータ依存性グラフに記録される依存性情報に相当する演算5によって最後に書き込まれたことが分かる。演算7が(行7の後に)実行した後、分かるように、位置「a」は変化し、ここでその最後の演算が現在7に設定された状態で30の値を有する。
‐複製及び変異のステップS41、
‐演算インタリーブのステップS42、及び
‐データフロー融合のステップS43
それぞれの生成されたマシンは一意である。つまり、該マシンが実行できる演算、該マシンの演算の実行方法、演算が表される方法、及び演算を実行する機構はマシンごとに一意であり、
マシンは命令セットを有していない。つまり、所与のマシンが実行できる演算のセットは命令セットであると見なすことができるだろうが、該演算は、該演算が名称を与えられ、係るように使用できるようにするだろう識別できる概念上の意味を有しておらず、
マシンはプログラムを実行しない。つまり、所与のマシンは1つの特定のプログラムを実行できるにすぎず、そのプログラムはマシン自体の一体部分であり、多くの場合、マシンの実行側とプログラム側との間に境界はなく、
マシンには実行エンジンはない。つまり、各マシンは演算を実行することを担う多数の実行要素から成り、これらのそれぞれも実行する次の演算を決定することを担い、すべての実行ステップに関与する「中心的なエンジン」はなく、
マシンはバーチャルマシンモデルを有していない。つまり、任意の所与の演算の実装は特定のバーチャルCPU又はその実装方法に関して何らかの制限を課す任意の他の構造と関連付けられておらず、これに対する唯一の例外は、関数呼出しを実装するために使用されるプログラムスタックはあるが、マシン内部呼出しに使用される所定の呼出し規則はなく、
マシンは統計的に分析できない。つまり、命令セットなし、識別可能なプログラムなし、及びマシンモデルなしで一意のマシンを静的に分析する上での固有の困難さは別として、マシンを実行するプロセスは(以下に説明する)シーケンスに影響を受ける融合演算に完全に依存し、マシンのどの部分も、実行がその部分に達するまで(マシン自体によってでさえ)理解できない。
小さい均一な命令セットに関して表される実装コア生成プロセスP1によって生じる演算のセットを、はるかに大きい不均一の命令セットに関して表される演算に変換する演算再表現のステップS21、
ステップS21から取得される再表現された演算の実装を生じさせる演算実装のステップS22、
シーケンスに影響を受ける融合を利用するための演算実装を変換して、静的分析に耐えるシーケンス融合のステップS23、及び
シーケンス融合ステップS23によって生じる実装の構成要素のすべてに適用され、実行可能な形式での出力される準備が完了しているコード生成のステップS24。
1.新しい命令を生成するために結合された演算の副演算実装部分、
2.パラメータ解読論理‐いくつかの演算は複数のコンテキストで実行されてよい(プログラムを実行することにほぼ同等)。これらの演算は、演算ごとに一意に符号化されるパラメータの形式でコンテキスト特有の入力及び出力を受け取り、
3.実行継続論理‐各演算実行後、次の演算及びそのコンテキスト(演算がコンテキストを有する場合)が解読され、実行は次いでその演算の実装によって継続される。
2.動的秘密を用いるホワイトボックス実装
1.融合生成手段として使用するためにアプリケーションで位置のセットを選択する、
2.融合生成手段ごとに、融合データを生じさせるコードを注入する、
3.融合ターゲットとして使用するためにホワイトボックス実装の中で演算のセットを選択する、及び
4.融合データの部分をその既存の演算と結合するために各融合ターゲットを変換する。
・ほぼグローバル変数のように、メモリ内のプログラムの書込み可能セクションの中に通常位置する静的な位置、
・ヒープ割当てを通して動的に作成されるヒープ位置、及び
・スタックシフトを介して動的に作成されるスタック位置
4.アルゴリズムの小さい部分を隔離することによる攻撃の防止
Claims (21)
- アルゴリズムを実装し且つメモリに記憶される元のソースコードから保護されたソースコードを生成するコンピュータ実装方法であって、前記方法が、コンピュータプログラムにより指令されるプロセッサにより自動的に行われ、前記方法が、
前記元のソースコードを元の演算のセットに拡大することと、
実データを使用する元の演算のセットの演算を、前記実データのフラグメントをそれぞれ使用する複数の第1の演算に分割することによって、前記アルゴリズムを実装する実演算のセットを生じさせて、前記実データのフラグメントのそれぞれを、前記実データのフラグメントを生じさせる第2の演算に変換して、前記第1の演算を前記第2の演算と結合して前記実演算のセットにすることと、
前記実データのフラグメントのそれぞれについてデコイデータフラグメントを生成して、前記デコイデータフラグメントのそれぞれを、前記デコイデータフラグメントを生じさせる第3の演算に変換して、前記第1の演算を前記第3の演算と結合して前記アルゴリズムを実装するデコイ演算のセットにすることによって、前記デコイ演算のセットを生じさせることと、
前記デコイ演算のセットの前記実演算のセットとの結合内での実データフローを分析するのが困難であるように、前記結合を生成することと、
前記メモリに記憶され且つ前記プロセッサにより実行することができる保護されたソースコードを生成するように、前記結合に変換を適用することと、
を含み、前記デコイ演算のセットの前記実演算のセットとの結合を生成することが、
前記実演算のセット及び前記デコイ演算のセットのそれぞれからの演算を、演算の他のセットからの演算でインタリーブして結合されたセットを入手することであって、これにより、前記結合されたセットが実行されるときに、演算のすべてのセットが同時に効果的に実行されることと、
演算のグループを漸次的に選択し、正しい受け入れ演算に各出力を送ることによって、前記結合されたセットの中の異なるセットからの演算のデータの流れを互いと融合することと、
を含む、方法。 - 前記アルゴリズムが暗号アルゴリズムであり、前記実データが秘密データを備える、請求項1に記載の方法。
- 前記元のソースコードを拡大することが、
シミュレータによって前記元のソースコードを実行し、実行されている演算、発生する制御フローの変更、及び発生するメモリに対する変更を記録することと、
異なる実行時入力を用いて前記シミュレータによって前記元のソースコードを複数回実行することによって、実行中に実行されない演算を決定し、前記元の演算のセットにこれらの実行の結果を結合することと、
前記元の演算のセットの中に、前記シミュレータによって前記実行中に実行されない演算を注入すること、
を含む、請求項1又は2に記載の方法。 - 前記元のソースコードを拡大することが、前記元の演算のセットの演算間のデータ依存性、及び前記元の演算間を流れるデータ値をモデル化するデータ依存性グラフを生じさせることを含む、請求項1乃至3の1項に記載の方法。
- 前記元のソースコードを拡大することが、統計的に既知の値を生じさせる演算を前記元の演算のセットから排除することを含む、請求項3又は4に記載の方法。
- 前記元のソースコードを拡大することが、前記元の演算のセットのインライン化された関数コード及び展開されたループを排除することによって、係る排除によって発生するだろう実データ伝搬の損失におけるコストに対するインライン化及び展開の内の少なくとも一方を排除することにより獲得される利益レベルを表すスコアを、関数及び基本ブロックに割り当てる決定モデルを使用し、それらを前記元のソースコードからの関数呼出し及びループで置換することによって、前記実演算のセットのサイズを削減することを含む、請求項3乃至5の1項に記載の方法。
- 前記元のソースコードを拡大することが、
それぞれの新しい演算が1つの導き出された実データを使用するように、前記導き出された実データを含む前記ソースコードの元の演算を複数の新しい演算に分割することと、
複数の導き出された実データを、前記複数の導き出された実データを生じさせる演算の一意のサブセットに変換することであって、演算のこれらのサブセットが、実行時に生成されるシーケンスに影響を受けるデータ値を消費することと、
1つの導き出された実データを含む各演算を、前記1つの導き出された実データを生じさせる演算のサブセットと結合して、演算の結合されたサブセットを取得することと、
前記実演算のセットに演算の結合されたサブセットを挿入することと、
を含む、請求項1乃至6の1項に記載の方法。 - 複製及び変異されたデコイ演算のセットを生じさせることが、デコイ演算のセットを生じさせるために多数回にわたり前記元のソースコードを拡大することを繰り返すことを含み、デコイ演算の各セットが前記実データの代わりにデコイデータを供給されて、前記アルゴリズムの代替の偽の実装を表すデコイ演算のセットを生じさせ、前記デコイデータが無作為に生成される、請求項1乃至7の1項に記載の方法。
- 前記各出力を送ることが、実行時に生成されるシーケンスに影響を受けるデータ値を消費する式を使用して構築されるルーティング演算により行われる、請求項1乃至8の1項に記載の方法。
- 前記結合の演算が、第1の命令セットに関して表され、前記結合を変換することが、
難読化変換を使用して前記結合の演算シーケンスを代替の形式に変換することと、
変換された演算シーケンスの演算を結合して、前記第1の命令セットよりも大きく、且つ、新しい命令を生成するために結合された演算のシーケンスに対応する個々の関数としてそれぞれ定義される新しい命令を備える第2の命令セットを定義することと、
前記第2の命令セットを使用して前記結合を変換し、前記第2の命令セットの命令にそれぞれ対応する演算を備える変換された結合を取得すること、
を含む、請求項1乃至9の1項に記載の方法。 - 前記結合を変換することが、前記結合の演算を正しいシーケンスで、及び前記アルゴリズムを実行するための正しいデータを用いて実行させる実行制御コードを生成することを含み、前記実行がデコーダ関数のセットによって制御され、前記デコーダ関数のそれぞれが、前記演算を実行するために必要とされるデータの位置、及び対応する命令関数の位置を知っている1つの演算、及びどのように各デコーダ関数のために一意に符号化されるこのデータを解読するのかと関連付けられる、請求項1乃至10の1項に記載の方法。
- 前記デコーダ関数が、実行時に生成されるシーケンスに影響を受けるデータ値を消費する、請求項11に記載の方法。
- 前記結合を変換することが、複雑度レベルの関数として難読化変換を可能にすることを含み、利用可能な難読化変換のセットのすべての難読化変換が、前記複雑度レベルが最大値に設定されるときに可能にされる、請求項10乃至12の1項に記載の方法。
- 前記方法が、秘密データが実行時にだけ知られるアルゴリズムを実装する新しいソースコードを生成することを含み、前記新しいソースコードの生成が、静的鍵を使用して前記保護されたソースコードを解読アルゴリズムと結合して、前記静的鍵を使用して事前に暗号化される動的秘密データを使用する新しいソースコードにすることを含み、前記解読アルゴリズムが、前記保護されたソースコードに送信される動的秘密データを解読する、請求項1乃至13の1項に記載の方法。
- 前記方法が、暗号化されたデータの内容を明らかにすることなく、前記暗号化されたデータに対してデータ処理演算を行うことを実装する新しいソースコードを生成することを含み、前記新しいソースコードの生成が、解読アルゴリズム、前記保護されたソースコード、及び暗号化アルゴリズムを結合して前記新しいソースコードにすることを含み、前記解読アルゴリズム及び前記暗号化アルゴリズムが同じ静的鍵を使用し、それによって前記解読アルゴリズムが、解読されたデータに作用する、前記保護されたソースコードにより処理される暗号化されたデータを解読し、前記暗号化アルゴリズムが、前記解読されたデータから前記暗号化されたデータを生じさせる、請求項1乃至13の1項に記載の方法。
- 前記結合の中に融合生成手段を注入することであって、前記融合生成手段が、無作為に生成されるデコイデータ又は実データのどちらかを既存の融合データと混合することによって、実行時に融合データを生成することと、
前記実装の中に融合ターゲットを注入することであって、前記融合ターゲットが前記融合データを読み取り、前記実装の内側の演算によって使用される静的データと前記融合データを結合し、前記演算により使用される静的データが、前記静的データが正しくなく、且つ、前記静的データが前記融合データと結合されるときにだけ正しいデータが生じさせられるように修正され、実行時に正しく生成される融合データに前記演算を依存させ、前記融合データの各部分が、データを修正する必要がある融合手段に対して及び前記実装の中の融合ターゲットに対してだけ既知である、異なる位置を有することと、
を含む、請求項1乃至15の1項に記載の方法。 - 各中間データ要素を難読化することと、
各中間データ要素を、そのデータ要素に対して一意であり、どのように前記データ要素が難読化されるのかを指定する難読化コンテキストと関連付けることと、
を含む、請求項1乃至16の1項に記載の方法。 - 前記実演算により示されるメモリアクセスパターンを隠すために、前記結合を通して追加の無作為化されたメモリアクセス演算を注入することを含む、請求項1乃至17の1項に記載の方法。
- 前記実演算によりメモリ内でアクセスされる実データのデータフラグメントの位置を無作為化することを含む、請求項1乃至18の1項に記載の方法。
- プロセッサにより実行されるときに、前記プロセッサに接続されたメモリに記憶される元のソースコードに適用される、請求項1乃至19の1項に記載の方法を行うことを結果的にもたらす命令を備えるコンピュータプログラムを記憶する非一過性のコンピュータ可読媒体。
- アルゴリズムを実装する元のソースコードを保護するための装置であって、前記元のソースコードが前記装置のメモリに記憶され、前記装置が、前記アルゴリズムを実装し、前記メモリに記憶され、且つ、前記装置のプロセッサにより実行することができる保護されたソースコードを生成するために、請求項1乃至19の1項に記載の方法を実装するよう構成される、装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1400992.2A GB201400992D0 (en) | 2014-01-21 | 2014-01-21 | Method of protecting dynamic cryptographic keys |
GB1400992.2 | 2014-01-21 | ||
PCT/IB2015/000057 WO2015110899A1 (en) | 2014-01-21 | 2015-01-21 | Method of protecting secret data when used in a cryptographic algorithm |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017509942A JP2017509942A (ja) | 2017-04-06 |
JP6554103B2 true JP6554103B2 (ja) | 2019-07-31 |
Family
ID=50239241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016545299A Active JP6554103B2 (ja) | 2014-01-21 | 2015-01-21 | 暗号アルゴリズムで使用されるときに秘密データを保護する方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US10331896B2 (ja) |
EP (1) | EP3097655B1 (ja) |
JP (1) | JP6554103B2 (ja) |
KR (1) | KR102352066B1 (ja) |
CN (1) | CN106030604B (ja) |
GB (1) | GB201400992D0 (ja) |
WO (1) | WO2015110899A1 (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10437953B2 (en) * | 2016-07-08 | 2019-10-08 | efabless corporation | Systems for engineering integrated circuit design and development |
EP3566159B1 (en) * | 2017-01-05 | 2020-10-21 | Koninklijke Philips N.V. | Compiling device and method |
EP3910512B1 (en) * | 2019-01-10 | 2023-11-29 | Nippon Telegraph And Telephone Corporation | Secure array access apparatus, secure array access method, and program |
KR102546567B1 (ko) * | 2021-07-30 | 2023-06-23 | 주식회사 엔에스에이치씨 | 경량 블록암호 pipo의 화이트박스 암호 장치 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6694435B2 (en) * | 2001-07-25 | 2004-02-17 | Apple Computer, Inc. | Method of obfuscating computer instruction streams |
US8090956B2 (en) * | 2005-03-25 | 2012-01-03 | Panasonic Corporation | Program converting device, secure processing device, computer program, and recording medium |
EP1936527A1 (fr) * | 2006-12-18 | 2008-06-25 | Gemplus | Procédé permettant de faire varier le nombre d'exécution de contre-mesures dans un code exécuté |
US8752032B2 (en) * | 2007-02-23 | 2014-06-10 | Irdeto Canada Corporation | System and method of interlocking to protect software-mediated program and device behaviours |
US20090049425A1 (en) * | 2007-08-14 | 2009-02-19 | Aladdin Knowledge Systems Ltd. | Code Obfuscation By Reference Linking |
JP2009086746A (ja) * | 2007-09-27 | 2009-04-23 | Fuji Xerox Co Ltd | 情報処理装置及び情報処理プログラム |
CN101482887B (zh) * | 2009-02-18 | 2013-01-09 | 北京数码视讯科技股份有限公司 | 数据库关键数据的防篡改检验方法 |
CN101894244B (zh) * | 2009-05-20 | 2012-11-21 | 鸿富锦精密工业(深圳)有限公司 | 电子资料加密系统及方法 |
WO2011116448A1 (en) * | 2010-03-25 | 2011-09-29 | Irdeto Canada Corporation | System and method for dynamic, variably-timed operation paths as a resistance to side channel and repeated invocation attacks |
US8719957B2 (en) * | 2011-04-29 | 2014-05-06 | Altera Corporation | Systems and methods for detecting and mitigating programmable logic device tampering |
-
2014
- 2014-01-21 GB GBGB1400992.2A patent/GB201400992D0/en not_active Ceased
-
2015
- 2015-01-21 EP EP15713009.7A patent/EP3097655B1/en active Active
- 2015-01-21 WO PCT/IB2015/000057 patent/WO2015110899A1/en active Application Filing
- 2015-01-21 JP JP2016545299A patent/JP6554103B2/ja active Active
- 2015-01-21 KR KR1020167021657A patent/KR102352066B1/ko active IP Right Grant
- 2015-01-21 CN CN201580005193.2A patent/CN106030604B/zh active Active
-
2016
- 2016-07-18 US US15/212,819 patent/US10331896B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US10331896B2 (en) | 2019-06-25 |
US20170098089A1 (en) | 2017-04-06 |
KR102352066B1 (ko) | 2022-01-17 |
EP3097655B1 (en) | 2017-12-27 |
CN106030604B (zh) | 2019-08-30 |
EP3097655A1 (en) | 2016-11-30 |
CN106030604A (zh) | 2016-10-12 |
KR20160108427A (ko) | 2016-09-19 |
JP2017509942A (ja) | 2017-04-06 |
GB201400992D0 (en) | 2014-03-05 |
WO2015110899A1 (en) | 2015-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2620712C2 (ru) | Устройство виртуальной машины, имеющее управляемую ключом обфускацию, и способ | |
Bos et al. | Differential computation analysis: Hiding your white-box designs is not enough | |
US10079674B2 (en) | Systems and methods for privacy-preserving functional IP verification utilizing fully homomorphic encryption | |
JP5167348B2 (ja) | ソフトウェア暗号化方法およびソフトウェア暗号解読方法およびソフトウェア暗号化装置およびソフトウェア暗号解読装置 | |
CN104919750B (zh) | 计算关于函数‑输入值的数据函数的计算设备和方法 | |
KR101216995B1 (ko) | 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법 | |
WO2013142983A1 (en) | Securing accessible systems using cross-linking | |
JP6554103B2 (ja) | 暗号アルゴリズムで使用されるときに秘密データを保護する方法 | |
JP4758904B2 (ja) | 機密情報処理方法 | |
JP2009302887A (ja) | 情報秘匿化方法および情報秘匿化装置 | |
JP2004511031A (ja) | ディジタル・データ保護構成 | |
KR20180037254A (ko) | 비보안 단말기로부터의 트랜잭션을 보안화하는 방법 | |
Gora et al. | A flexible design flow for software IP binding in FPGA | |
WO2018015325A1 (en) | Device and method for performing obfuscated arithmetic | |
Swierczynski et al. | Protecting against cryptographic Trojans in FPGAs | |
JP6698774B2 (ja) | 共通中間言語のための保安提供装置と方法、及び保安実行装置と方法 | |
KR20200136142A (ko) | 소프트웨어 보안을 위한 메모리 데이터의 암호화 및 복호화 방법, 이를 수행하기 위한 기록매체 및 장치 | |
Manikyam | Program protection using software based hardware abstraction | |
Gu et al. | White-box cryptography: practical protection on hostile hosts | |
US11210135B2 (en) | Lightweight dispatcher for program control flow flattening | |
CN110032832B (zh) | 一种Web应用程序的处理方法及装置 | |
JPWO2019049217A1 (ja) | システム、改変装置、方法及びプログラム | |
Badier et al. | Protecting Behavioral IPs During Design Time: Key-Based Obfuscation Techniques for HLS in the Cloud | |
Chatzigeorgiou | Privacy on large files using optimized cryptography software. | |
Vaslin | ‘Hardware Core for Off-Chip Memory Security Management in Embedded Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20171212 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20180123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20180123 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180215 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180925 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181106 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190305 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190513 |
|
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: 20190611 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190705 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6554103 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
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 |