JP2018522291A5 - - Google Patents

Download PDF

Info

Publication number
JP2018522291A5
JP2018522291A5 JP2018523361A JP2018523361A JP2018522291A5 JP 2018522291 A5 JP2018522291 A5 JP 2018522291A5 JP 2018523361 A JP2018523361 A JP 2018523361A JP 2018523361 A JP2018523361 A JP 2018523361A JP 2018522291 A5 JP2018522291 A5 JP 2018522291A5
Authority
JP
Japan
Prior art keywords
computer
operand
obfuscated
sending
operations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018523361A
Other languages
Japanese (ja)
Other versions
JP2018522291A (en
JP6880017B2 (en
Filing date
Publication date
Priority claimed from US14/804,713 external-priority patent/US10110566B2/en
Application filed filed Critical
Publication of JP2018522291A publication Critical patent/JP2018522291A/en
Publication of JP2018522291A5 publication Critical patent/JP2018522291A5/ja
Application granted granted Critical
Publication of JP6880017B2 publication Critical patent/JP6880017B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Claims (57)

コンピュータプログラムの実行方法であって、
少なくとも1つの他のコンピュータに接続された信頼できるコンピュータ上に存在する実行可能なコンピュータプログラムを一連の演算に分割するステップと、

前記一連の演算の各演算を難読化するステップと
前記それぞれの演算の結果を計算して該結果を別のコンピュータに転送する付属命令と共に前記難読化した演算を、実行可能なコンピュータプログラムのリモート実行のために、前記少なくとも1つの他のコンピュータに送信するステップであって、
前記付属命令は、前記難読化された演算のそれぞれの結果を計算し、前記難読化された演算のそれぞれの結果を、難読化された演算を計算するために、前記それぞれの結果を必要とする前記少なくとも1つの他のコンピュータの別のコンピュータに転送し、前記実行可能なコンピュータプログラムの難読化された計算結果を前記信頼できるコンピュータに転送する、ステップと、
を含み、
前記方法は、前記信頼できるコンピュータにおいて、前記実行可能なコンピュータプログラムの前記難読化された計算結果を受信するステップと、
前記実行可能なコンピュータプログラムの受信した前記難読化された計算結果を逆難読化するステップと、
さらに含むことを特徴とする方法。
A computer program execution method comprising:
Dividing an executable computer program residing on a trusted computer connected to at least one other computer into a series of operations;

Obfuscating each operation of the series of operations;
Sending the obfuscated operation to the at least one other computer for remote execution of an executable computer program along with an accompanying instruction that calculates the result of the respective operation and transfers the result to another computer A step to perform
The ancillary instruction calculates a result of each of the obfuscated operations and requires each result of the obfuscated operations to calculate an obfuscated operation. Transferring to another computer of the at least one other computer and transferring an obfuscated calculation result of the executable computer program to the trusted computer ;
Including
Receiving the obfuscated calculation result of the executable computer program at the trusted computer; and
Reverse obfuscating the obfuscated calculation result received by the executable computer program;
The method of further comprising.
前記一連の演算は回路ゲート演算であり、各回路ゲート演算は、演算子と、第1のオペランドと、第2のオペランドとを有する、
請求項に記載の方法。
The series of operations is a circuit gate operation, and each circuit gate operation has an operator, a first operand, and a second operand.
The method of claim 1 .
前記一連の演算の各演算を難読化する前記ステップは、
前記第1のオペランドを第1の乱数値で難読化するステップと、
前記第2のオペランドを第2の乱数値で難読化するステップと、
を含む、請求項に記載の方法。
The step of obfuscating each operation of the series of operations includes:
Obfuscating the first operand with a first random value;
Obfuscating the second operand with a second random value;
The method of claim 2 comprising:
前記一連の演算の各演算を付属命令と共に少なくとも1つの他のコンピュータに送信する前記ステップは、
前記難読化されたオペランドを、
前記難読化されたオペランドを用いて複数の演算の複数の結果を計算し、
前記複数の結果を第2のコンピュータに送信する、
ことを含む命令と共に第1のコンピュータに送信するステップと、
前記演算子、前記第1の乱数値及び前記第2の乱数値に基づいて前記複数の結果から1つの結果を選択し、
前記選択された結果を第3の乱数値で難読化し、
前記選択された結果を異なるコンピュータに送信する、
ことを含む命令を前記第2のコンピュータに送信するステップと、
を含む、請求項に記載の方法。
The step of sending each operation of the series of operations together with an accompanying instruction to at least one other computer,
The obfuscated operand is
Calculating multiple results of multiple operations using the obfuscated operands;
Sending the plurality of results to a second computer;
Transmitting to a first computer with instructions including:
Selecting one result from the plurality of results based on the operator, the first random value, and the second random value;
Obfuscating the selected result with a third random value;
Sending the selected result to a different computer;
Sending an instruction comprising: to the second computer;
The method of claim 3 comprising:
前記一連の演算はコンピュータ算術演算であり、各コンピュータ算術演算は、演算子と、第1のオペランドと、第2のオペランドとを有する、
請求項に記載の方法。
The series of operations is a computer arithmetic operation, and each computer arithmetic operation includes an operator, a first operand, and a second operand.
The method of claim 1 .
前記一連の演算の各演算を送信前に難読化する前記ステップは、
前記第1のオペランドを第1の乱数値で難読化するステップと、
前記第2のオペランドを第2の乱数値で難読化するステップと、
を含む、請求項に記載の方法。
The step of obfuscating each operation of the series of operations before transmission includes:
Obfuscating the first operand with a first random value;
Obfuscating the second operand with a second random value;
The method of claim 5 comprising:
前記一連の演算の各演算を付属命令と共に少なくとも1つの他のコンピュータに送信する前記ステップは、
前記演算子及び難読化されたオペランドを、
前記演算子と、前記難読化された第1のオペランドと、前記難読化された第2のオペランドとを用いて第1の演算結果を計算し、
第2のコンピュータから値を受け取り、
前記演算子と、前記第1の結果と、前記値とを用いて第2の演算結果を計算し、
前記第2の結果を異なるコンピュータに送信する、
ことを含む命令と共に第1のコンピュータに送信するステップを含む、
請求項に記載の方法。
The step of sending each operation of the series of operations together with an accompanying instruction to at least one other computer,
The operator and obfuscated operand are
Calculating a first operation result using the operator, the obfuscated first operand, and the obfuscated second operand;
Receive a value from the second computer,
Calculating a second operation result using the operator, the first result, and the value;
Sending the second result to a different computer;
Sending to a first computer with instructions including
The method of claim 6 .
前記第1のオペランドの前記難読化スキームは、前記第2のオペランドの前記難読化スキームと一致しない、
請求項に記載の方法。
The obfuscation scheme of the first operand does not match the obfuscation scheme of the second operand;
The method of claim 6 .
第3の乱数値を用いて前記第1のオペランドの前記難読化スキームを前記第2のオペランドの前記難読化スキームに変換する遷移難読化関数が使用される、
請求項に記載の方法。
A transition obfuscation function is used that converts the obfuscation scheme of the first operand to the obfuscation scheme of the second operand using a third random value.
The method of claim 8 .
前記遷移難読化関数を一連の演算に分割するステップと、
前記遷移難読化関数の各演算を、前記それぞれの演算の結果を計算して該結果を別のコンピュータに転送する付属命令と共に少なくとも1つの他のコンピュータに送信するステップと、
をさらに含む、請求項に記載の方法。
Dividing the transition obfuscation function into a series of operations;
Sending each operation of the transition obfuscation function to at least one other computer together with an accompanying instruction that calculates a result of the respective operation and transfers the result to another computer;
10. The method of claim 9 , further comprising:
前記遷移難読化関数の各演算を付属命令と共に少なくとも1つの他のコンピュータに送信する前記ステップは、
前記第1のオペランドが乗法難読化される場合、
前記難読化されたオペランドを、
第2のコンピュータから値を受け取り、
前記難読化された第1のオペランドと前記値との和を計算し、
前記和を第3のコンピュータに送信する、
ことを含む命令と共に第1のコンピュータに送信するステップと、
前記和と前記第1の乱数値との商を計算し、
前記商を異なるコンピュータに送信する、
ことを含む命令を前記第3のコンピュータに送信するステップと、
を含み、前記第1のオペランドが加法難読化される場合、
前記難読化されたオペランドを、
前記難読化された第1のオペランドと前記第3の乱数値との積を計算し、
前記積を第1のコンピュータに送信する、
ことを含む命令と共に第3のコンピュータに送信するステップと、
第2のコンピュータから値を受け取り、
前記積と前記値との間の差分を計算し、
前記差分を異なるコンピュータに送信する、
ことを含む命令を前記第1のコンピュータに送信するステップと、
を含む、請求項10に記載の方法。
Transmitting each operation of the transition obfuscation function together with an accompanying instruction to at least one other computer,
If the first operand is obfuscated multiplicatively,
The obfuscated operand is
Receive a value from the second computer,
Calculating the sum of the obfuscated first operand and the value;
Sending the sum to a third computer;
Transmitting to a first computer with instructions including:
Calculating the quotient of the sum and the first random number value;
Sending the quotient to a different computer;
Sending an instruction comprising: to the third computer;
And the first operand is additively obfuscated:
The obfuscated operand is
Calculating a product of the obfuscated first operand and the third random value;
Sending the product to a first computer;
Sending to a third computer with instructions including:
Receive a value from the second computer,
Calculating the difference between the product and the value;
Sending the difference to a different computer;
Sending an instruction comprising: to the first computer;
The method of claim 10 , comprising:
前記第2のコンピュータから受け取られる前記値は、前記第1の乱数値と前記第3の乱数値との積である、
請求項11に記載の方法。
The value received from the second computer is a product of the first random value and the third random value;
The method of claim 11 .
前記難読化は、コード難読化、データ難読化、又はこれらの両方を含む、
請求項に記載の方法。
The obfuscation includes code obfuscation, data obfuscation, or both,
The method of claim 1 .
前記少なくとも1つの他のコンピュータはクラウドの一部である、
請求項1に記載の方法。
The at least one other computer is part of a cloud;
The method of claim 1.
前記クラウドは信頼できない、
請求項14に記載の方法。
The cloud is unreliable,
The method according to claim 14 .
前記クラウドは、複数の管理領域にわたる、
請求項14に記載の方法。
The cloud spans multiple management areas,
The method according to claim 14 .
前記クラウドは、複数の商業的に異なるインフラにわたる、
請求項14に記載の方法。
The cloud spans multiple commercially different infrastructures,
The method according to claim 14 .
前記少なくとも1つの他のコンピュータは、企業ネットワークの一部である、
請求項1に記載の方法。
The at least one other computer is part of a corporate network;
The method of claim 1.
前記少なくとも1つの他のコンピュータは、複数のコンピュータからランダムに選択される、
請求項1に記載の方法。
The at least one other computer is randomly selected from a plurality of computers;
The method of claim 1.
前記複数のコンピュータの各コンピュータは信頼できない、
請求項19に記載の方法。
Each of the plurality of computers is unreliable,
The method of claim 19 .
前記少なくとも1つの他のコンピュータは信頼できない、
請求項1に記載の方法。
The at least one other computer is unreliable,
The method of claim 1.
前記少なくとも1つの他のコンピュータは、前記信頼できるコンピュータではない、
請求項1に記載の方法。
The at least one other computer is not the trusted computer;
The method of claim 1.
システムであって、少なくとも1つの他のコンピュータに通信可能に接続された少なくとも1つの信頼できるコンピュータを備え、該少なくとも1つの信頼できるコンピュータのうちの第1の信頼できるコンピュータは、実行時に前記システムに、
前記第1の信頼できるコンピュータ上に存在する実行可能なコンピュータプログラムを一連の演算に分割するステップと、
前記一連の演算の各演算を、前記それぞれの演算の結果を計算して該結果を別のコンピュータに転送する付属命令と共に前記難読化した演算を、実行可能なコンピュータプログラムのリモート実行のために、前記少なくとも1つの他のコンピュータに送信するステップであって、
前記付属命令は、前記難読化された演算のそれぞれの結果を計算し、前記難読化された演算のそれぞれの結果を、難読化された演算を計算するために、前記それぞれの結果を必要とする前記少なくとも1つの他のコンピュータの別のコンピュータに転送し、前記実行可能なコンピュータプログラムの難読化された計算結果を前記第1の信頼できるコンピュータに転送する、ステップと、
を含む動作を実行させるコンピュータ命令を記憶し、
前記命令は、さらに前記システムに、
前記第1の信頼できるコンピュータにおいて、前記実行可能なコンピュータプログラムの前記難読化された計算結果を受け取るステップと、
を含む動作を実行させる
ことを特徴とするシステム。
A system comprising at least one trusted computer communicatively connected to at least one other computer, the first trusted computer of the at least one trusted computer being connected to the system at runtime. ,
Dividing an executable computer program residing on the first trusted computer into a series of operations;
For the remote execution of a computer program capable of executing the obfuscated operations together with the attached instructions for calculating the results of the respective operations and transferring the results to another computer , Transmitting to the at least one other computer ,
The ancillary instruction calculates a result of each of the obfuscated operations and requires each result of the obfuscated operations to calculate an obfuscated operation. Transferring to another computer of the at least one other computer and transferring an obfuscated calculation result of the executable computer program to the first trusted computer ;
Storing computer instructions for performing operations including:
The instructions are further directed to the system,
Receiving at the first trusted computer the obfuscated calculation result of the executable computer program;
To perform operations including,
A system characterized by that.
前記一連の演算は回路ゲート演算であり、各回路ゲート演算は、演算子と、第1のオペランドと、第2のオペランドとを有する、
請求項23に記載のシステム。
The series of operations is a circuit gate operation, and each circuit gate operation has an operator, a first operand, and a second operand.
24. The system of claim 23 .
前記一連の演算の各演算を難読化する前記ステップは、
前記第1のオペランドを第1の乱数値で難読化するステップと、
前記第2のオペランドを第2の乱数値で難読化するステップと、
を含む、請求項24に記載のシステム。
The step of obfuscating each operation of the series of operations includes:
Obfuscating the first operand with a first random value;
Obfuscating the second operand with a second random value;
25. The system of claim 24 , comprising:
前記一連の演算の各演算を付属命令と共に少なくとも1つの他のコンピュータに送信する前記ステップは、
前記難読化されたオペランドを、
前記難読化されたオペランドを用いて複数の演算の複数の結果を計算し、
前記複数の結果を第2のコンピュータに送信する、
ことを含む命令と共に第1のコンピュータに送信するステップと、
前記演算子、前記第1の乱数値及び前記第2の乱数値に基づいて前記複数の結果から1つの結果を選択し、
前記選択された結果を第3の乱数値で難読化し、
前記選択された結果を異なるコンピュータに送信する、
ことを含む命令を前記第2のコンピュータに送信するステップと、
を含む、請求項25に記載のシステム。
The step of sending each operation of the series of operations together with an accompanying instruction to at least one other computer,
The obfuscated operand is
Calculating multiple results of multiple operations using the obfuscated operands;
Sending the plurality of results to a second computer;
Transmitting to a first computer with instructions including:
Selecting one result from the plurality of results based on the operator, the first random value, and the second random value;
Obfuscating the selected result with a third random value;
Sending the selected result to a different computer;
Sending an instruction comprising: to the second computer;
26. The system of claim 25 , comprising:
前記一連の演算はコンピュータ算術演算であり、各コンピュータ算術演算は、演算子と、第1のオペランドと、第2のオペランドとを有する、
請求項23に記載のシステム。
The series of operations is a computer arithmetic operation, and each computer arithmetic operation includes an operator, a first operand, and a second operand.
24. The system of claim 23 .
前記一連の演算の各演算は、ハードウェアユニットによって実行される演算に対応する、
請求項23に記載のシステム。
Each operation of the series of operations corresponds to an operation executed by the hardware unit.
24. The system of claim 23 .
前記少なくとも1つの他のコンピュータ上の整数加算器をさらに備える、
請求項28に記載のシステム。
Further comprising an integer adder on said at least one other computer;
30. The system of claim 28 .
前記少なくとも1つの他のコンピュータ上の整数乗算器をさらに備える、
請求項28に記載のシステム。
Further comprising an integer multiplier on said at least one other computer;
30. The system of claim 28 .
前記少なくとも1つの他のコンピュータ上の整数比較器をさらに備える、
請求項28に記載のシステム。
Further comprising an integer comparator on said at least one other computer;
30. The system of claim 28 .
前記少なくとも1つの他のコンピュータ上の浮動小数点乗算器をさらに備える、
請求項28に記載のシステム。
Further comprising a floating point multiplier on said at least one other computer;
30. The system of claim 28 .
前記一連の演算の各演算を送信前に難読化する前記ステップは、
前記第1のオペランドを第1の乱数値で難読化するステップと、
前記第2のオペランドを第2の乱数値で難読化するステップと、
を含む、請求項27に記載のシステム。
The step of obfuscating each operation of the series of operations before transmission includes:
Obfuscating the first operand with a first random value;
Obfuscating the second operand with a second random value;
28. The system of claim 27 , comprising:
前記一連の演算の各演算を付属命令と共に少なくとも1つの他のコンピュータに送信する前記ステップは、
前記演算子及び難読化されたオペランドを、
前記演算子と、前記難読化された第1のオペランドと、前記難読化された第2のオペランドとを用いて第1の演算結果を計算し、
第2のコンピュータから値を受け取り、
前記演算子と、前記第1の結果と、前記値とを用いて第2の演算結果を計算し、
前記第2の結果を異なるコンピュータに送信する、
ことを含む命令と共に第1のコンピュータに送信するステップを含む、
請求項33に記載のシステム。
The step of sending each operation of the series of operations together with an accompanying instruction to at least one other computer,
The operator and obfuscated operand are
Calculating a first operation result using the operator, the obfuscated first operand, and the obfuscated second operand;
Receive a value from the second computer,
Calculating a second operation result using the operator, the first result, and the value;
Sending the second result to a different computer;
Sending to a first computer with instructions including
34. The system of claim 33 .
前記第1のオペランドの前記難読化スキームは、前記第2のオペランドの前記難読化スキームと一致しない、
請求項33に記載のシステム。
The obfuscation scheme of the first operand does not match the obfuscation scheme of the second operand;
34. The system of claim 33 .
第3の乱数値を用いて前記第1のオペランドの前記難読化スキームを前記第2のオペランドの前記難読化スキームに変換する遷移難読化関数が使用される、
請求項35に記載のシステム。
A transition obfuscation function is used that converts the obfuscation scheme of the first operand to the obfuscation scheme of the second operand using a third random value.
36. The system of claim 35 .
前記少なくとも1つの信頼できるコンピュータは、実行時に前記システムに、
前記遷移難読化関数を一連の演算に分割するステップと、
前記遷移難読化関数の各演算を、前記それぞれの演算の結果を計算して該結果を別のコンピュータに転送する付属命令と共に少なくとも1つの他のコンピュータに送信するステップと、
をさらに含む動作を実行させるコンピュータ命令を記憶する、
請求項36に記載のシステム。
The at least one trusted computer can run the system at runtime,
Dividing the transition obfuscation function into a series of operations;
Sending each operation of the transition obfuscation function to at least one other computer together with an accompanying instruction that calculates a result of the respective operation and transfers the result to another computer;
Storing computer instructions for performing an operation further comprising:
37. The system of claim 36 .
前記遷移難読化関数の各演算を付属命令と共に少なくとも1つの他のコンピュータに送信する前記ステップは、
前記第1のオペランドが乗法難読化される場合、
前記難読化されたオペランドを、
第2のコンピュータから値を受け取り、
前記難読化された第1のオペランドと前記値との和を計算し、
前記和を第3のコンピュータに送信する、
ことを含む命令と共に第1のコンピュータに送信するステップと、
前記和と前記第1の乱数値との商を計算し、
前記商を異なるコンピュータに送信する、
ことを含む命令を前記第3のコンピュータに送信するステップと、
を含み、前記第1のオペランドが加法難読化される場合、
前記難読化されたオペランドを、
前記難読化された第1のオペランドと前記第3の乱数値との積を計算し、
前記積を第1のコンピュータに送信する、
ことを含む命令と共に第3のコンピュータに送信するステップと、
第2のコンピュータから値を受け取り、
前記積と前記値との間の差分を計算し、
前記差分を異なるコンピュータに送信する、
ことを含む命令を前記第1のコンピュータに送信するステップと、
を含む、請求項37に記載のシステム。
Transmitting each operation of the transition obfuscation function together with an accompanying instruction to at least one other computer,
If the first operand is obfuscated multiplicatively,
The obfuscated operand is
Receive a value from the second computer,
Calculating the sum of the obfuscated first operand and the value;
Sending the sum to a third computer;
Transmitting to a first computer with instructions including:
Calculating the quotient of the sum and the first random number value;
Sending the quotient to a different computer;
Sending an instruction comprising: to the third computer;
And the first operand is additively obfuscated:
The obfuscated operand is
Calculating a product of the obfuscated first operand and the third random value;
Sending the product to a first computer;
Sending to a third computer with instructions including:
Receive a value from the second computer,
Calculating the difference between the product and the value;
Sending the difference to a different computer;
Sending an instruction comprising: to the first computer;
38. The system of claim 37 , comprising:
前記第2のコンピュータから受け取られる前記値は、前記第1の乱数値と前記第3の乱数値との積である、
請求項38に記載のシステム。
The value received from the second computer is a product of the first random value and the third random value;
40. The system of claim 38 .
前記難読化は、コード難読化、データ難読化、又はこれらの両方を含む、
請求項23に記載のシステム。
The obfuscation includes code obfuscation, data obfuscation, or both,
24. The system of claim 23 .
前記少なくとも1つの他のコンピュータはクラウドの一部である、
請求項23に記載のシステム。
The at least one other computer is part of a cloud;
24. The system of claim 23 .
前記クラウドは信頼できない、
請求項41に記載のシステム。
The cloud is unreliable,
42. The system of claim 41 .
前記クラウドは、複数の管理領域にわたる、
請求項41に記載のシステム。
The cloud spans multiple management areas,
42. The system of claim 41 .
前記クラウドは、複数の商業的に異なるインフラにわたる、
請求項41に記載のシステム。
The cloud spans multiple commercially different infrastructures,
42. The system of claim 41 .
前記少なくとも1つの他のコンピュータは、企業ネットワークの一部である、
請求項23に記載のシステム。
The at least one other computer is part of a corporate network;
24. The system of claim 23 .
前記少なくとも1つの他のコンピュータは、複数のコンピュータからランダムに選択される、
請求項23に記載のシステム。
The at least one other computer is randomly selected from a plurality of computers;
24. The system of claim 23 .
前記複数のコンピュータの各コンピュータは信頼できない、
請求項46に記載のシステム。
Each of the plurality of computers is unreliable,
48. The system of claim 46 .
前記少なくとも1つの他のコンピュータは信頼できない、
請求項23に記載のシステム。
The at least one other computer is unreliable,
24. The system of claim 23 .
前記少なくとも1つの他のコンピュータは、前記信頼できるコンピュータではない、
請求項23に記載のシステム。
The at least one other computer is not the trusted computer;
24. The system of claim 23 .
前記信頼できるコンピュータは、1又は2以上の仮想機械を含む、
請求項1に記載の方法。
The trusted computer includes one or more virtual machines;
The method of claim 1.
前記少なくとも1つの他のコンピュータは、1又は2以上の仮想機械を含む、
請求項1に記載の方法。
The at least one other computer includes one or more virtual machines;
The method of claim 1.
前記別のコンピュータは、1又は2以上の仮想機械を含む、
請求項1に記載の方法。
The another computer includes one or more virtual machines,
The method of claim 1.
前記信頼できるコンピュータは、1又は2以上の仮想機械を含む、
請求項23に記載のシステム。
The trusted computer includes one or more virtual machines;
24. The system of claim 23 .
前記少なくとも1つの他のコンピュータは、1又は2以上の仮想機械を含む、
請求項23に記載のシステム。
The at least one other computer includes one or more virtual machines;
24. The system of claim 23 .
前記別のコンピュータは、1又は2以上の仮想機械を含む、
請求項23に記載のシステム。
The another computer includes one or more virtual machines,
24. The system of claim 23 .
前記一連の演算の各演算を付属命令と共に前記少なくとも1つの他のコンピュータに送信する前記ステップは、各演算を計算のために複数のコンピュータに送信するステップを含む、
請求項1に記載の方法。
Transmitting each operation of the series of operations with associated instructions to the at least one other computer includes transmitting each operation to a plurality of computers for computation;
The method of claim 1.
前記一連の演算の各演算を付属命令と共に前記少なくとも1つの他のコンピュータに送信する前記ステップは、各演算を計算のために複数のコンピュータに送信するステップを含む、
請求項23に記載のシステム。
Transmitting each operation of the series of operations with associated instructions to the at least one other computer includes transmitting each operation to a plurality of computers for computation;
24. The system of claim 23 .
JP2018523361A 2015-07-21 2016-07-20 Systems and processes for running private programs on untrusted computers Active JP6880017B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/804,713 2015-07-21
US14/804,713 US10110566B2 (en) 2015-07-21 2015-07-21 Systems and processes for executing private programs on untrusted computers
PCT/US2016/043117 WO2017015357A1 (en) 2015-07-21 2016-07-20 Systems and processes for executing private programs on untrusted computers

Publications (3)

Publication Number Publication Date
JP2018522291A JP2018522291A (en) 2018-08-09
JP2018522291A5 true JP2018522291A5 (en) 2019-08-29
JP6880017B2 JP6880017B2 (en) 2021-06-02

Family

ID=57834671

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018523361A Active JP6880017B2 (en) 2015-07-21 2016-07-20 Systems and processes for running private programs on untrusted computers

Country Status (10)

Country Link
US (2) US10110566B2 (en)
EP (1) EP3326345B1 (en)
JP (1) JP6880017B2 (en)
KR (1) KR102315831B1 (en)
CN (1) CN108476198B (en)
AU (1) AU2016297559B2 (en)
CA (1) CA2998323C (en)
DK (1) DK3326345T3 (en)
IL (1) IL257040B (en)
WO (1) WO2017015357A1 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10348503B2 (en) * 2016-12-12 2019-07-09 Sap Portals Israel Ltd. Client side actions validation
JP7177849B2 (en) * 2017-12-18 2022-11-24 ユニバーシティ オブ セントラル フロリダ リサーチ ファウンデーション,インコーポレイテッド How to safely run code that operates on encrypted data on public computers
US11232224B2 (en) 2018-03-15 2022-01-25 Servicenow, Inc. Database encryption
CN109446828B (en) * 2018-11-07 2020-10-13 北京邮电大学 Secure multi-party computing method and device
US11042634B2 (en) * 2018-12-21 2021-06-22 Fujitsu Limited Determining information leakage of computer-readable programs
WO2020240246A1 (en) * 2019-05-29 2020-12-03 Commissariat A L 'energie Atomique Et Aux Energies Alternatives A computer-implemented method for obfuscating a program code
US11973743B2 (en) 2019-12-13 2024-04-30 TripleBlind, Inc. Systems and methods for providing a systemic error in artificial intelligence algorithms
US10924460B2 (en) * 2019-12-13 2021-02-16 TripleBlind, Inc. Systems and methods for dividing filters in neural networks for private data computations
US11431688B2 (en) 2019-12-13 2022-08-30 TripleBlind, Inc. Systems and methods for providing a modified loss function in federated-split learning
US11853793B2 (en) 2020-10-09 2023-12-26 Samsung Electronics Co., Ltd. Methods and system for on-device AI model parameter run-time protection
EP4050471A1 (en) * 2021-02-26 2022-08-31 Zama SAS Encrypted scalar multiplication
WO2023007633A1 (en) * 2021-07-28 2023-02-02 富士通株式会社 Control method, control program, node, and system
US20240004998A1 (en) * 2022-07-01 2024-01-04 Nxp B.V. Method for protecting a machine learning model from a side channel attack

Family Cites Families (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067620A (en) * 1996-07-30 2000-05-23 Holden; James M. Stand alone security device for computer networks
US6477648B1 (en) * 1997-03-23 2002-11-05 Novell, Inc. Trusted workstation in a networked client/server computing system
US6957341B2 (en) * 1998-05-14 2005-10-18 Purdue Research Foundation Method and system for secure computational outsourcing and disguise
US7430670B1 (en) 1999-07-29 2008-09-30 Intertrust Technologies Corp. Software self-defense systems and methods
AU2001243365A1 (en) * 2000-03-02 2001-09-12 Alarity Corporation System and method for process protection
US7305704B2 (en) * 2002-03-16 2007-12-04 Trustedflow Systems, Inc. Management of trusted flow system
US7353499B2 (en) * 2003-09-25 2008-04-01 Sun Microsystems, Inc. Multiple instruction dispatch tables for application program obfuscation
US7415618B2 (en) * 2003-09-25 2008-08-19 Sun Microsystems, Inc. Permutation of opcode values for application program obfuscation
US7363620B2 (en) * 2003-09-25 2008-04-22 Sun Microsystems, Inc. Non-linear execution of application program instructions for application program obfuscation
US20050069138A1 (en) * 2003-09-25 2005-03-31 Sun Microsystems, Inc., A Delaware Corporation Application program obfuscation
US8220058B2 (en) * 2003-09-25 2012-07-10 Oracle America, Inc. Rendering and encryption engine for application program obfuscation
DE102005021749A1 (en) * 2005-05-11 2006-11-16 Fachhochschule Dortmund Program-controlled information processing method, involves initiating information processing operations in selected resources, and disconnecting connections that are no longer needed between selected resources
WO2008007305A2 (en) * 2006-07-12 2008-01-17 Koninklijke Philips Electronics N.V. Method and system for obfuscating a gryptographic function
US20090249492A1 (en) * 2006-09-21 2009-10-01 Hans Martin Boesgaard Sorensen Fabrication of computer executable program files from source code
US9411976B2 (en) * 2006-12-01 2016-08-09 Maidsafe Foundation Communication system and method
US9124650B2 (en) 2006-12-13 2015-09-01 Quickplay Media Inc. Digital rights management in a mobile environment
US8538012B2 (en) * 2007-03-14 2013-09-17 Intel Corporation Performing AES encryption or decryption in multiple modes with a single instruction
US8312518B1 (en) * 2007-09-27 2012-11-13 Avaya Inc. Island of trust in a service-oriented environment
US8762736B1 (en) * 2008-04-04 2014-06-24 Massachusetts Institute Of Technology One-time programs
US8209744B2 (en) * 2008-05-16 2012-06-26 Microsoft Corporation Mobile device assisted secure computer network communication
US8171306B2 (en) * 2008-11-05 2012-05-01 Microsoft Corporation Universal secure token for obfuscation and tamper resistance
US8832778B2 (en) * 2009-08-04 2014-09-09 Carnegie Mellon University Methods and apparatuses for user-verifiable trusted path in the presence of malware
US8347398B1 (en) * 2009-09-23 2013-01-01 Savvystuff Property Trust Selected text obfuscation and encryption in a local, network and cloud computing environment
US9703586B2 (en) * 2010-02-17 2017-07-11 Microsoft Technology Licensing, Llc Distribution control and tracking mechanism of virtual machine appliances
US20110202765A1 (en) * 2010-02-17 2011-08-18 Microsoft Corporation Securely move virtual machines between host servers
US8862895B2 (en) * 2010-04-27 2014-10-14 Fuji Xerox Co., Ltd. Systems and methods for communication, storage, retrieval, and computation of simple statistics and logical operations on encrypted data
WO2011150346A2 (en) * 2010-05-28 2011-12-01 Laurich Lawrence A Accelerator system for use with secure data storage
US20110296164A1 (en) * 2010-05-28 2011-12-01 Mcafee, Inc. System and method for providing secure network services
AU2011291640B2 (en) * 2010-08-18 2015-11-12 Security First Corp. Systems and methods for securing virtual machine computing environments
US8681973B2 (en) * 2010-09-15 2014-03-25 At&T Intellectual Property I, L.P. Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
US20120084562A1 (en) * 2010-10-04 2012-04-05 Ralph Rabert Farina Methods and systems for updating a secure boot device using cryptographically secured communications across unsecured networks
US8762964B2 (en) 2010-12-17 2014-06-24 Cisco Technology, Inc. Optimizing symbol manipulation language-based executable applications for distributed execution
US8700906B2 (en) * 2011-01-14 2014-04-15 Microsoft Corporation Secure computing in multi-tenant data centers
CA2775206C (en) 2011-04-27 2019-02-26 Perspecsys Inc. System and method of handling requests in a multi-homed reverse proxy
US9077525B2 (en) * 2011-06-24 2015-07-07 Microsoft Technology Licensing, Llc User-controlled data encryption with obfuscated policy
US9203621B2 (en) * 2011-07-11 2015-12-01 Hewlett-Packard Development Company, L.P. Policy-based data management
US20130019092A1 (en) * 2011-07-14 2013-01-17 Barracuda Inc. System to Embed Enhanced Security / Privacy Functions Into a User Client
GB2497070B (en) * 2011-11-17 2015-11-25 Advanced Risc Mach Ltd Cryptographic support instructions
JP2015503280A (en) * 2011-11-28 2015-01-29 ポルティコア エルティディ. A method and apparatus for securing an encryption key in an unsecured computer environment applied to securing and managing virtualization and cloud computing.
US9208319B2 (en) * 2011-12-15 2015-12-08 Microsoft Technology Licensing, Llc Code base partitioning system
US10191754B2 (en) * 2012-01-09 2019-01-29 Koninklijke Philips N.V. Virtual machine device having key driven obfuscation and method
US8615656B2 (en) * 2012-01-09 2013-12-24 The Mitre Corporation Secure remote peripheral encryption tunnel
US9454666B2 (en) * 2012-03-26 2016-09-27 Irdeto B.V. Method for protecting data
EP2645618A1 (en) * 2012-03-30 2013-10-02 British Telecommunications Public Limited Company Method and system for network data access
EP2672672A1 (en) * 2012-06-07 2013-12-11 Alcatel-Lucent Secure data processing
EP2672673B1 (en) * 2012-06-07 2016-05-25 Alcatel Lucent Apparatus and method for secure data processing
US8656482B1 (en) * 2012-08-20 2014-02-18 Bitdefender IPR Management Ltd. Secure communication using a trusted virtual machine
WO2014059136A2 (en) * 2012-10-12 2014-04-17 Safelylocked, Llc. Techniqued for secure data exchange
US9176838B2 (en) * 2012-10-19 2015-11-03 Intel Corporation Encrypted data inspection in a network environment
GB2508894A (en) * 2012-12-14 2014-06-18 Ibm Preventing a trusted boot device from being booted in a virtual machine
US9535715B2 (en) * 2012-12-14 2017-01-03 Microsoft Technology Licensing, Llc Booting from a trusted network image
US8909967B1 (en) * 2012-12-31 2014-12-09 Emc Corporation Technique for secure computation
US9503268B2 (en) * 2013-01-22 2016-11-22 Amazon Technologies, Inc. Securing results of privileged computing operations
US10063380B2 (en) * 2013-01-22 2018-08-28 Amazon Technologies, Inc. Secure interface for invoking privileged operations
US9055038B1 (en) * 2013-02-04 2015-06-09 Stealth Software Technologies, Inc. Apparatus, system, and method to garble programs
US9141823B2 (en) * 2013-03-15 2015-09-22 Veridicom, Sa De Cv Abstraction layer for default encryption with orthogonal encryption logic session object; and automated authentication, with a method for online litigation
US9361456B2 (en) * 2013-04-01 2016-06-07 Uniquesoft, Llc Secure computing device using a library of programs
US9104862B2 (en) * 2013-04-01 2015-08-11 Uniquesoft, Llc Secure computing device using new software versions
US10275593B2 (en) * 2013-04-01 2019-04-30 Uniquesoft, Llc Secure computing device using different central processing resources
US9424421B2 (en) 2013-05-03 2016-08-23 Visa International Service Association Security engine for a secure operating environment
US9558358B2 (en) * 2013-06-27 2017-01-31 Visa International Service Association Random number generator in a virtualized environment
CN105408913B (en) * 2013-08-21 2019-03-15 英特尔公司 Privacy data are handled in cloud
CN103559458B (en) * 2013-10-09 2016-08-17 广州华迅网络科技有限公司 Data hash acquisition methods and system thereof
US9235692B2 (en) * 2013-12-13 2016-01-12 International Business Machines Corporation Secure application debugging
CN111355749A (en) * 2014-06-18 2020-06-30 维萨国际服务协会 Efficient method for authenticated communication
EP3195521B1 (en) * 2014-08-29 2020-03-04 Visa International Service Association Methods for secure cryptogram generation
US9584517B1 (en) * 2014-09-03 2017-02-28 Amazon Technologies, Inc. Transforms within secure execution environments
CN104243166A (en) * 2014-09-05 2014-12-24 深圳市中兴移动通信有限公司 Recording encryption method and device
US9735968B2 (en) * 2014-10-20 2017-08-15 Microsoft Technology Licensing, Llc Trust service for a client device
CA2970195A1 (en) * 2014-12-16 2016-06-23 Kyndi, Inc. Method and apparatus for randomizing computer instruction sets, memory registers and pointers
AU2016218981B2 (en) * 2015-02-13 2020-03-05 Visa International Service Association Confidential communication management
US9596263B1 (en) * 2015-02-23 2017-03-14 Amazon Technolgies, Inc. Obfuscation and de-obfuscation of identifiers
US10484168B2 (en) * 2015-03-02 2019-11-19 Dell Products L.P. Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger
US9712503B1 (en) * 2015-03-23 2017-07-18 Amazon Technologies, Inc. Computing instance migration
US20160294794A1 (en) * 2015-04-04 2016-10-06 Aleksandar Mancic Security System For Data Communications Including Key Management And Privacy
WO2016168487A1 (en) * 2015-04-14 2016-10-20 Gigavation, Inc. Paravirtualized security threat protection of a computer-driven system with networked devices
JP6397590B2 (en) * 2015-05-19 2018-09-26 クリプトムーヴ, インコーポレイテッドCryptomove, Inc. Security through data hiding
US20180089415A1 (en) * 2015-06-11 2018-03-29 International Business Machines Corporation User trusted device for detecting a virtualized environment
US9667606B2 (en) * 2015-07-01 2017-05-30 Cyphermatrix, Inc. Systems, methods and computer readable medium to implement secured computational infrastructure for cloud and data center environments

Similar Documents

Publication Publication Date Title
JP2018522291A5 (en)
JP6983890B2 (en) Computer-enhanced systems and methods for enabling complex functions on the blockchain while maintaining security-based limits on script size and opcode limits.
US8681973B2 (en) Methods, systems, and computer program products for performing homomorphic encryption and decryption on individual operations
WO2016094840A3 (en) System, method & computer readable medium for software protection via composable process-level virtual machines
JP2012194992A5 (en) Data processing apparatus, program, data structure, data processing system, packet data, recording medium, storage device, data processing method, data communication method, and instruction set
JP2017200196A5 (en)
JP2014524628A5 (en)
WO2017030625A3 (en) Loading and virtualizing cryptographic keys
CN107346401A (en) Information Guarantee System for safely configuration processor
EP2867785B1 (en) Method and apparatus for virtual machine interoperability
RU2016104608A (en) SYSTEM FOR JOINT USE OF THE CRYPTOGRAPHIC KEY
EP3930252A1 (en) Countermeasures for side-channel attacks on protected sign and key exchange operations
CN111596920B (en) File compiling method, device, compiling equipment and storage medium
EP3757813A3 (en) Processor cores using packet identifiers for routing and computation
US10838719B2 (en) Carry chain for SIMD operations
Luo et al. Effective simple-power analysis attacks of elliptic curve cryptography on embedded systems
Xu et al. Optimizing speculative execution of deadline-sensitive jobs in cloud
Keliris et al. Investigating large integer arithmetic on Intel Xeon Phi SIMD extensions
JP2021506010A5 (en)
KR102528467B1 (en) Method, device and recording medium for processing division operation
CN114611150A (en) Security mode conversion method and device for privacy numerical value
KR102001222B1 (en) Signal processing apparatus and method
EP3391264B1 (en) Calculating device and method
US20150242192A1 (en) Method and system for hardening of cfg flattening
JP5951260B2 (en) Logical operation device, logical operation method, and program