[go: up one dir, main page]

JP6212377B2 - Arithmetic device, arithmetic method and computer program - Google Patents

Arithmetic device, arithmetic method and computer program Download PDF

Info

Publication number
JP6212377B2
JP6212377B2 JP2013260059A JP2013260059A JP6212377B2 JP 6212377 B2 JP6212377 B2 JP 6212377B2 JP 2013260059 A JP2013260059 A JP 2013260059A JP 2013260059 A JP2013260059 A JP 2013260059A JP 6212377 B2 JP6212377 B2 JP 6212377B2
Authority
JP
Japan
Prior art keywords
obfuscation
vector
equation
obfuscated
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013260059A
Other languages
Japanese (ja)
Other versions
JP2015118439A (en
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2013260059A priority Critical patent/JP6212377B2/en
Publication of JP2015118439A publication Critical patent/JP2015118439A/en
Application granted granted Critical
Publication of JP6212377B2 publication Critical patent/JP6212377B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Description

本発明は、演算装置、演算方法およびコンピュータプログラムに関する。   The present invention relates to an arithmetic device, an arithmetic method, and a computer program.

近年、コンピュータでプログラムを実行する場合、プログラムで扱う重要情報を保護するために、ソースコードおよび変数を難読化する技術が知られている(例えば非特許文献1参照)。この難読化による情報の保護は逆アセンブルなどの静的解析に対しては有効であるが、プログラムを実行しながら解析を行う動的解析に対して効果は限定的であった。その動的解析に対して有効な技術として、例えば非特許文献2に記載される「Oblivious RAM」が知られている。しかしながら、「Oblivious RAM」はメモリに対する攻撃に対しては効果があるが、CPUのレジスタからデータを抜き取る攻撃に対しては安全性を保障できない。   In recent years, when a program is executed by a computer, a technique for obfuscating source code and variables is known in order to protect important information handled by the program (see, for example, Non-Patent Document 1). Although protection of information by this obfuscation is effective for static analysis such as disassembly, the effect is limited for dynamic analysis in which analysis is performed while executing a program. As an effective technique for the dynamic analysis, for example, "Oblivious RAM" described in Non-Patent Document 2 is known. However, "Oblivious RAM" is effective against memory attacks, but it can not guarantee security against attacks that extract data from CPU registers.

Boaz Barak, Oded Goldreich, Rusell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, and Ke Yang, “On the (Im)possibility of Obfuscating Programs”, CRYPTO 2001, Lecture Notes in Computer Science Volume 2139, 2001, pp 1-18, 2001.Boaz Barak, Oded Goldreich, Rusell Impagliazzo, Steven Rudich, Amit Sahai, Salil Vadhan, and Ke Yang, “On the (Im) Possibility of Obfuscating Programs”, CRYPTO 2001, Lecture Notes in Computer Science Volume 2139, 2001, pp 1- 18, 2001. Oded Goldreich and Rafail Ostrovsky, “Software protection and simulation on oblivious rams”, J. ACM, 43(3): pp 431-473, 1996.Oded Goldreich and Rafail Ostrovsky, “Software protection and simulation on oblivious rams”, J. ACM, 43 (3): pp 431-473, 1996.

上述したように従来技術では、演算時に使用されるレジスタに重要情報自身が保持されると、攻撃者によってレジスタから重要情報を取得される可能性がある。   As described above, in the prior art, if the important information itself is held in the register used at the time of operation, the attacker may obtain the important information from the register.

本発明は、このような事情を考慮してなされたもので、演算時に使用されるレジスタに重要情報自身が保持されることを防ぐことができる演算装置、演算方法およびコンピュータプログラムを提供することを課題とする。   The present invention has been made in consideration of such circumstances, and provides an arithmetic device, an arithmetic method, and a computer program that can prevent important information itself from being held in a register used at the time of arithmetic operation. It will be an issue.

(1)本発明に係る演算装置は、入力演算式を示す入力演算式情報、及び、前記入力演算式に使用される難読化前演算前ベクトルが難読化された難読化後演算前ベクトルを入力する入力部と、前記難読化後演算前ベクトルから難読化後演算後ベクトルを難読化したままで計算する難読演算に使用される難読演算パラメータを、前記難読化前演算前ベクトルの要素の値が表れない難読演算パラメータ計算式を使用して計算する難読演算パラメータ計算部と、前記難読演算パラメータを使用して、前記難読化後演算前ベクトルから難読化後演算後ベクトルを計算する難読演算を行う難読演算部と、を備え、前記難読演算パラメータ計算式は、前記難読化後演算前ベクトルを用いて表された前記入力演算式が、複数の排他的論理和と複数の排他的論理和をそれぞれ一項として前記入力演算式で示される二項演算子で演算する式で表されたときの、前記各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成されたことを特徴とする。 (1) The arithmetic device according to the present invention inputs input arithmetic expression information indicating an input arithmetic expression, and a pre-obfuscated vector obtained by obfuscating the pre-obfuscation vector used in the input arithmetic expression. The value of the element of the pre-obfuscation operation vector, the obfuscation operation parameter used for the obfuscation operation of calculating the post-obfuscation operation vector from the pre-obfuscation operation vector after the obfuscation operation. The obfuscated operation parameter calculation unit calculates using an obfuscated operation parameter calculation formula that does not appear and the obfuscated operation that calculates an after obfuscated vector from the before obfuscated vector using the obfuscated operation parameter includes and obfuscation calculating unit, wherein the obfuscation operation parameter equation, the input arithmetic expression represented using the obfuscation after the operation before vector, a plurality of exclusive OR and a plurality of exclusive theory When it is calculated by leaving at least one exclusive disjunction for each of the terms when it is expressed by an expression which operates with a binary operator represented by the input operation formula with the sum as a single term, respectively It is characterized in that it is configured .

)本発明に係る演算方法は、演算装置が、入力演算式を示す入力演算式情報、及び、前記入力演算式に使用される難読化前演算前ベクトルが難読化された難読化後演算前ベクトルを入力する入力ステップと、前記演算装置が、前記難読化後演算前ベクトルから難読化後演算後ベクトルを難読化したままで計算する難読演算に使用される難読演算パラメータを、前記難読化前演算前ベクトルの要素の値が表れない難読演算パラメータ計算式を使用して計算する難読演算パラメータ計算ステップと、前記演算装置が、前記難読演算パラメータを使用して、前記難読化後演算前ベクトルから難読化後演算後ベクトルを計算する難読演算を行う難読演算ステップと、を含み、前記難読演算パラメータ計算式は、前記難読化後演算前ベクトルを用いて表された前記入力演算式が、複数の排他的論理和と複数の排他的論理和をそれぞれ一項として前記入力演算式で示される二項演算子で演算する式で表されたときの、前記各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成されたことを特徴とする。 ( 2 ) In the calculation method according to the present invention, the calculation device outputs input calculation formula information indicating an input calculation formula, and a pre-obfuscation calculation vector before obfuscation used in the input calculation formula is obfuscated calculation after obfuscation The obfuscation operation parameter used in the obfuscation operation in which an input step for inputting a previous vector and the arithmetic device calculate the obfuscated vector after the obfuscation from the pre-obfuscation vector after the obfuscation is performed as the obfuscation operation parameter An obfuscated operation parameter calculating step of calculating using an obfuscated operation parameter calculation formula in which the value of the element of the pre-previous vector does not appear, and the pre-obfuscated vector before the operation using the obfuscated operation parameter see containing and obfuscation operation step of performing obfuscation operation for calculating the obfuscation after the operation after vector, from said obfuscated operational parameter calculation formula, use the obfuscation after computation before vector When the input arithmetic expression represented by the equation (1) is expressed by an expression that operates with a binary operator represented by the input arithmetic expression, each having a plurality of exclusive ORs and a plurality of exclusive ORs as one term, It is characterized in that it is calculated so as to be left with at least one exclusive OR for each of the above terms .

)本発明に係るコンピュータプログラムは、コンピュータに、入力演算式を示す入力演算式情報、及び、前記入力演算式に使用される難読化前演算前ベクトルが難読化された難読化後演算前ベクトルを入力する入力ステップと、前記難読化後演算前ベクトルから難読化後演算後ベクトルを難読化したままで計算する難読演算に使用される難読演算パラメータを、前記難読化前演算前ベクトルの要素の値が表れない難読演算パラメータ計算式を使用して計算する難読演算パラメータ計算ステップと、前記難読演算パラメータを使用して、前記難読化後演算前ベクトルから難読化後演算後ベクトルを計算する難読演算を行う難読演算ステップと、を実行させ、前記難読演算パラメータ計算式は、前記難読化後演算前ベクトルを用いて表された前記入力演算式が、複数の排他的論理和と複数の排他的論理和をそれぞれ一項として前記入力演算式で示される二項演算子で演算する式で表されたときの、前記各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成されたコンピュータプログラムであることを特徴とする。 ( 3 ) The computer program according to the present invention is a computer program that allows input operation expression information indicating an input operation expression and a pre-obfuscation operation pre-operation vector used in the input operation expression is obfuscated before operation. An obfuscation operation parameter used in an obfuscation operation to calculate a vector after the obfuscation operation from the vector before the obfuscation operation, and an input step for inputting a vector, and an obfuscation operation parameter used in the obfuscation operation The obfuscation calculation parameter calculation step of calculating using the obfuscation calculation parameter calculation formula in which the value does not appear, and the obfuscation calculation of calculating the post-obfuscation calculation vector from the pre-obfuscation calculation vector using the obfuscation calculation parameter and obfuscation operation step of performing arithmetic operation, is executed, the obfuscation operation parameter equation is expressed using the obfuscation after computation before vector Each said one term when said input arithmetic expression is represented by the formula calculated with the binary operator shown by the said input arithmetic expression by making each of several exclusive OR and several exclusive OR into one term. And a computer program configured to be calculated leaving at least one exclusive OR .

本発明によれば、演算時に使用されるレジスタに重要情報自身が保持されることを防ぐことができる。   According to the present invention, it is possible to prevent the important information itself from being held in the register used at the time of operation.

本発明の一実施形態に係る演算装置10の構成を示すブロック図である。It is a block diagram showing composition of arithmetic unit 10 concerning one embodiment of the present invention. 本発明の一実施形態に係るキャリー(ビット列C)を計算するプログラムの例を示す図である。It is a figure which shows the example of the program which calculates the carry (bit string C) which concerns on one Embodiment of this invention. 本発明の一実施形態に係る除算演算子の難読演算パラメータを計算するときのプログラムの例の一部を示す図である。It is a figure which shows a part of example of a program when calculating the obfuscation calculation parameter of the division operator which concerns on one Embodiment of this invention.

以下、図面を参照し、本発明の実施形態について説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

はじめに本実施形態の概要を説明する。本実施形態に係る、難読化アルゴリズムを[数1]に、復号化アルゴリズムを[数2]に示す。   First, an outline of the present embodiment will be described. The obfuscation algorithm according to the present embodiment is shown in [Equation 1], and the decryption algorithm is shown in [Equation 2].

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

但し、xは難読化前の整数値ベクトルである。yは難読化後の整数値ベクトルである。整数値ベクトルx、yの要素は、整数値であり、例えばx、x、xなどのように、添え字i、j、kなどを用いて表される。bは要素が0または1である任意のベクトルである。Aは[数3]で示される行列である。A−1は[数4]で示される、Aの一般化逆行列である。なお、行列の計算に用いられる和は全て排他的論理和である。 However, x is an integer value vector before obfuscation. y is an obfuscated integer value vector. The elements of the integer value vector x, y are integer values, and are represented using subscripts i, j, k, etc., for example, x i , x j , x k etc. b is an arbitrary vector whose element is 0 or 1; A is a matrix represented by [Equation 3]. A −1 is a generalized inverse matrix of A represented by [Equation 4]. The sums used for matrix calculation are all exclusive ORs.

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

本実施形態では、重要情報に対する演算を行う場合、重要情報を難読化したままの演算(難読演算)を行うことにより、該演算時に使用されるレジスタに重要情報自身が保持されることを防ぐ。難読化前後、演算前後の各変数の集合(ベクトル)の関係は[数5]で表される。   In the present embodiment, when performing an operation on the important information, the operation (obfuscation operation) with the important information being obfuscated is performed to prevent the important information itself from being held in the register used at the time of the operation. The relationship between a set (vector) of each variable before and after obfuscation and before and after operation is expressed by [Equation 5].

Figure 0006212377
Figure 0006212377

但し、各変数のベクトルは[数6]、[数7]、[数8]、[数9]で表される。   However, the vector of each variable is expressed by [Equation 6], [Equation 7], [Equation 8], and [Equation 9].

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

また、任意の二項演算子Opによる演算式は[数10]で表される。   Further, an arithmetic expression by an arbitrary binary operator Op is represented by [Equation 10].

Figure 0006212377
Figure 0006212377

[数10]において、添え字のiとkが異なる値である場合に二項演算子Opを非代入演算子と称し、添え字のiとkが同じ値である場合に二項演算子Opを代入演算子と称する。例えば、[数11]における「+」は非代入演算子である。一方、[数12]は[数13]を意味するので、[数12]における「+=」は代入演算子である。   In [Equation 10], the binary operator Op is referred to as a non-assignment operator when the subscripts i and k have different values, and the binary operator Op when the subscripts i and k have the same value. Is called an assignment operator. For example, "+" in [Equation 11] is a non-assignment operator. On the other hand, since [Equation 12] means [Equation 13], “+ =” in [Equation 12] is an assignment operator.

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

非代入演算子の場合、[数10]のxに対応する難読化後演算後ベクトルynewは[数14]で表される。 In the case of the non-assignment operator, the post-obfuscation post-operation vector y new corresponding to x k in [Equation 10] is represented by [Equation 14].

Figure 0006212377
Figure 0006212377

但し、Zは[数15]で表される。   However, Z is represented by [Equation 15].

Figure 0006212377
Figure 0006212377

代入演算子の場合も、[数10]のxに対応する難読化後演算後ベクトルynewは上記[数14]で表される。但し、代入演算子の場合のZは[数16]で表される。 Also in the case of the assignment operator, the post-obfuscation post-operation vector y new corresponding to x k in [Equation 10] is expressed by the above [Equation 14]. However, Z in the case of the assignment operator is represented by [Equation 16].

Figure 0006212377
Figure 0006212377

上記した非代入演算子に係る[数14]のZと代入演算子に係る[数16]のZは、[数17]のように一般化できる。   Z of [Equation 14] related to the above-mentioned non-assignment operator and Z of [Equation 16] related to the assignment operator can be generalized as shown in [Equation 17].

Figure 0006212377
Figure 0006212377

ここで、[数17]のZの各項をそのまま計算すると[数10]のx、x、xの値がレジスタに保持されてしまうので難読化した意味がなくなる。このため、例えば[数18]の値を計算する場合には、[数19]のように2つの項になるまで計算してもよいが、[数19]の値を計算してはならない。 Here, if each term of Z in [Equation 17] is calculated as it is, the values of x i , x j , and x k in [Equation 10] are held in the register, and the obfuscated meaning is lost. For this reason, for example, when calculating the value of [Equation 18], it may be calculated to become two terms as shown in [Equation 19], but the value of [Equation 19] should not be calculated.

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

そこで、本実施形態では、[数14]により難読化後演算前ベクトルyoldから難読化後演算後ベクトルynewを計算(難読演算)するときに、該難読演算に使用されるZ(難読演算パラメータ)を計算する難読演算パラメータ計算を行う。この難読演算パラメータ計算では、[数10]のx、x、xの値がレジスタに保持されないようにする。 Therefore, in the present embodiment, Z (obfuscation operation) used for the obfuscation operation when calculating the post-obfuscation vector y new after the obfuscation operation from the after-obfuscation vector y old according to [Equation 14] (obfuscation operation) Calculation of obfuscated calculation parameters to calculate parameters). In this obfuscation calculation parameter calculation, the values of x i , x j and x k in [Equation 10] are not held in the register.

このために、難読演算パラメータZを計算する難読演算パラメータ計算式は、難読化後演算前ベクトルyoldを用いて表された入力演算式([数15]、[数16]の二項演算子Opに関する項)が、複数の排他的論理和([数17]のαに関する排他的論理和)と複数の排他的論理和([数17]のβに関する排他的論理和)をそれぞれ一項として入力演算式で示される二項演算子Opで演算する式([数17]の二項演算子Opに関する項)で表されたときの、該各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成される。 For this purpose, the obfuscated operation parameter calculation equation for calculating the obfuscated operation parameter Z is a binary operator of the input operation equation ([Equation 15], [Equation 16]) expressed using the pre-obfuscated vector y old. The terms relating to Op) have a plurality of exclusive disjunctions (exclusive disjunction on α of [Equation 17]) and multiple exclusive disjunctions (exclusive OR on β of [Equation 17]) as a single term At least one exclusive-OR for each term when it is expressed by an expression (a term related to the binary operator Op in [Equation 17]) operated by the binary operator Op indicated by the input operation expression Configured to be calculated leaving.

難読演算パラメータ計算に関する関係式として[数20]が使用される。   [Equation 20] is used as a relational expression relating to the obfuscation calculation parameter calculation.

Figure 0006212377
Figure 0006212377

但し、αはαを2進展開したときのn番目の数である。&は論理積(AND)を表す。<<は左シフトを表す。 Here, α n is the n-th number when α is binary-expanded. & Represents a logical product (AND). << represents a left shift.

次に本実施形態に係る演算装置について説明する。図1は、本発明の一実施形態に係る演算装置10の構成を示すブロック図である。図1において、演算装置10は、入力部11と難読演算パラメータ計算部12と難読演算部13を備える。入力部11は、入力演算式情報と難読化後演算前ベクトルyoldを入力する。入力演算式情報は、[数10]の二項演算子Opを示す情報である。難読化後演算前ベクトルyoldは、[数14]に使用されるものである。 Next, the arithmetic device according to the present embodiment will be described. FIG. 1 is a block diagram showing the configuration of an arithmetic unit 10 according to an embodiment of the present invention. In FIG. 1, the arithmetic device 10 includes an input unit 11, an obfuscated operation parameter calculator 12, and an obfuscated operation unit 13. The input unit 11 inputs the input arithmetic expression information and the pre-obfuscated vector y old . The input arithmetic expression information is information indicating the binary operator Op of [Equation 10]. The pre-obfuscation pre-operation vector y old is used in [ Equation 14].

難読演算パラメータ計算部12は、入力部11から入力された入力演算式情報および難読化後演算前ベクトルyoldを使用して、該入力演算式情報で示される二項演算子Opに該当する難読演算パラメータZを計算する。難読演算部13は、入力部11から入力された難読化後演算前ベクトルyoldと、難読演算パラメータ計算部12で計算された難読演算パラメータZを使用して、[数14]を計算する。[数14]で使用される行列Aは、予め、難読演算部13に保持されている。難読演算部13は、[数14]の計算結果である難読化後演算後ベクトルynewを出力する。 The obfuscation calculation parameter calculation unit 12 uses the input operation formula information and the pre-obfuscated vector y old input from the input unit 11 to perform the obfuscation corresponding to the binary operator Op indicated by the input operation formula information. Calculate calculation parameter Z. The obfuscation operation unit 13 calculates [Equation 14] using the pre-obfuscated vector y old input from the input unit 11 and the obfuscated operation parameter Z calculated by the obfuscated operation parameter calculation unit 12. The matrix A used in [Equation 14] is held in advance by the obfuscation operation unit 13. The obfuscation operation unit 13 outputs the post-obfuscation post-operation vector y new which is the calculation result of [Equation 14].

以下、各二項演算子Opに該当する難読演算パラメータZの計算方法の実施例を説明する。   Hereinafter, an embodiment of a method of calculating the obfuscation calculation parameter Z corresponding to each binary operator Op will be described.

まず、算術演算子について説明する。   First, arithmetic operators will be described.

[加算演算子(+)]
加算演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数21]で表される。
[Addition operator (+)]
The obfuscation operation parameter Z corresponding to the addition operator (non-assignment operator) is expressed by [Equation 21] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

但し、Nはビット列の桁数である。   However, N is the number of digits of the bit string.

そして、上記[数21]において、[数22]となる。   Then, in the above [Equation 21], [Equation 22] is obtained.

Figure 0006212377
Figure 0006212377

上記[数22]の難読演算パラメータZは、以下の手順1、2で計算できる。
手順1:IとJからビット列Cを作る。
手順2:[数23]を計算する。
The obfuscated calculation parameter Z of the above [Equation 22] can be calculated by the following procedures 1 and 2.
Step 1: Create bit string C from I and J.
Step 2: Calculate [Equation 23].

Figure 0006212377
Figure 0006212377

上記ビット列Cを作る手順1の詳細は以下である。
手順1−1:ビット列Cの最初(最下位)のビットは0とする。その後、手順1−2の条件を満たさない場合には上位方向へずっと0とする。
手順1−2:IとJのビット列を右(下位ビット)から左(上位ビット)へ見たときに、最初にI、Jともに1となっていたら、その隣(一つ上位)のビットを1とする。その後、手順1−3の条件を満たさない場合には上位方向へずっと1とする。
手順1−3:IとJのビット列がともに0となっていたらその隣(一つ上位)のビットを0とする。
The details of the procedure 1 for producing the bit string C are as follows.
Procedure 1-1: The first (least significant) bit of the bit string C is set to 0. After that, if the condition of procedure 1-2 is not satisfied, the upper direction is set to 0 all the time.
Step 1-2: When looking at bit strings of I and J from right (lower bit) to left (upper bit), if both I and J are 1 at first, the bit next to it (one upper) It is assumed to be 1. After that, if the condition of the procedure 1-3 is not satisfied, the upper direction is set to 1 all the time.
Procedure 1-3: If the bit strings of I and J are both 0, the next (upper one) bit is set to 0.

上記ビット列Cを作る手順1(手順1−1、1−2、1−3)は、排他的論理和を用いずに、整数型(ここではshort型)の変数I、Jの算術和のキャリー(ビット列C)を計算するものである。キャリー(ビット列C)は[数24]を満たす。   Procedure 1 (Procedures 1-1, 1-2, and 1-3) of creating the bit string C is carried out by carrying the arithmetic sum of integer type (here short type) variables I and J without using exclusive OR. (Bit string C) is calculated. Carry (bit string C) satisfies [Equation 24].

Figure 0006212377
Figure 0006212377

図2に、キャリー(ビット列C)を計算するC言語のプログラムの例を示す。   FIG. 2 shows an example of a C language program for calculating carry (bit string C).

また、加算代入演算子に該当する難読演算パラメータZは[数16]に対応させて、上記手順2で[数25]を計算すればよい。   Further, the obfuscation operation parameter Z corresponding to the addition assignment operator may be made to correspond to the [Equation 16], and the [Equation 25] may be calculated in the above-mentioned procedure 2.

Figure 0006212377
Figure 0006212377

[減算演算子(−)]
減算演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数26]で表される。
[Subtraction operator (-)]
The obfuscation operation parameter Z corresponding to the subtraction operator (non-assignment operator) is expressed by [Equation 26] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

上記[数26]において、Z’は[数27]で表される。   In the above [Equation 26], Z 'is expressed by [Equation 27].

Figure 0006212377
Figure 0006212377

但し、Nはビット列の桁数である。   However, N is the number of digits of the bit string.

そして、上記[数27]において、[数28]となる。   Then, in the above [Equation 27], [Equation 28] is obtained.

Figure 0006212377
Figure 0006212377

この[数28]により、減算演算子(非代入演算子)に該当する難読演算パラメータZを計算する。[数28]においてビット列Cは、上記加算演算子の難読演算パラメータZの計算の手順1と同様にして計算できる。   The obfuscation operation parameter Z corresponding to the subtraction operator (non-assignment operator) is calculated by this [Equation 28]. The bit string C in [Equation 28] can be calculated in the same manner as in step 1 of the calculation of the obfuscation operation parameter Z of the addition operator.

また、減算代入演算子に該当する難読演算パラメータZは、[数16]に対応させた[数29]を計算すればよい。   In addition, the obfuscation operation parameter Z corresponding to the subtraction / assignment operator may be calculated by using [Equation 29] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

[乗算演算子(×)]
乗算演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数30]で表される。
[Multiplication operator (x)]
The obfuscation operation parameter Z corresponding to the multiplication operator (non-assignment operator) is represented by [Equation 30] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

上記[数30]において、Z’は[数31]で表される。   In the above [Equation 30], Z 'is expressed by [Equation 31].

Figure 0006212377
Figure 0006212377

但し、Nはビット列の桁数である。   However, N is the number of digits of the bit string.

そして、上記[数31]において、[数32]となる。   And in said [Equation 31], it becomes [Equation 32].

Figure 0006212377
Figure 0006212377

この[数32]により、乗算演算子(非代入演算子)に該当する難読演算パラメータZを計算する。[数32]においてビット列Cは、上記加算演算子の難読演算パラメータZの計算の手順1と同様にして計算できる。   According to this [Equation 32], the obfuscation operation parameter Z corresponding to the multiplication operator (non-assignment operator) is calculated. The bit string C in [Equation 32] can be calculated in the same manner as in step 1 of the calculation of the obfuscation operation parameter Z of the addition operator.

また、乗算代入演算子に該当する難読演算パラメータZは、[数16]に対応させた[数33]を計算すればよい。   In addition, the obfuscation operation parameter Z corresponding to the multiplication assignment operator may calculate [Equation 33] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

[除算演算子(/)]
除算演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数34]で表される。
Division operator (/)
The obfuscation operation parameter Z corresponding to the division operator (non-assignment operator) is expressed by [Equation 34] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

また、除算代入演算子に該当する難読演算パラメータZは[数16]に対応する[数35]で表される。   Further, the obfuscation operation parameter Z corresponding to the division assignment operator is expressed by [Equation 35] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

上記[数34]、[数35]の難読演算パラメータZは、以下の手順A1〜A5で計算できる。
手順A1:[数36]を設定する。
The obfuscation calculation parameter Z of the above [Equation 34] and [Equation 35] can be calculated by the following procedures A1 to A5.
Step A1: Set [Equation 36].

Figure 0006212377
Figure 0006212377

手順A2:「n=0」から開始し、最初に[数37]を満たすnを取得する。   Procedure A2: Starting from “n = 0”, first obtain n that satisfies [Equation 37].

Figure 0006212377
Figure 0006212377

手順A3:[数38]を設定する。   Step A3: Set [Equation 38].

Figure 0006212377
Figure 0006212377

手順A4:図3のループ処理を実行する。
手順A5:除算演算子(非代入演算子)に該当する難読演算パラメータZを求める場合には[数39]を計算する。除算代入演算子に該当する難読演算パラメータZを求める場合には[数40]を計算する。
Step A4: The loop process of FIG. 3 is performed.
Step A5: [Equation 39] is calculated to obtain the obfuscation operation parameter Z corresponding to the division operator (non-assignment operator). In order to obtain the obfuscation operation parameter Z corresponding to the division assignment operator, [Equation 40] is calculated.

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

[剰余演算子(%)]
剰余演算子(非代入演算子)では[数41]を計算する。
[Modulus operator (%)]
The remainder operator (non-assignment operator) calculates [Equation 41].

Figure 0006212377
Figure 0006212377

ここでは、上記した除算演算子の計算アルゴリズムを使用して[数42]を求める。   Here, [Equation 42] is obtained using the calculation algorithm of the division operator described above.

Figure 0006212377
Figure 0006212377

[数41]は[数42]により[数43]となる。   [Equation 41] becomes [Equation 43] according to [Equation 42].

Figure 0006212377
Figure 0006212377

但し、Nはビット列の桁数である。   However, N is the number of digits of the bit string.

そして、上記[数43]において、[数44]となる。   Then, in the above [Equation 43], it is [Equation 44].

Figure 0006212377
Figure 0006212377

この[数44]により、剰余演算子(非代入演算子)に該当する難読演算パラメータZを計算する。[数44]においてビット列Cは、上記加算演算子の難読演算パラメータZの計算の手順1と同様にして計算できる。   The obfuscation operation parameter Z corresponding to the remainder operator (non-assignment operator) is calculated by this [Equation 44]. The bit string C in [Equation 44] can be calculated in the same manner as in Procedure 1 of the calculation of the obfuscation operation parameter Z of the addition operator.

また、剰余代入演算子に該当する難読演算パラメータZは、[数16]に対応させた[数45]を計算すればよい。   In addition, the obfuscation operation parameter Z corresponding to the remainder assignment operator may be calculated by [Equation 45] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

次に、比較演算子について説明する。なお、比較演算子の計算においては、iF文による制御など、難読化したままでは出力を利用できない場合があるので、比較演算子の出力の難読化は行わないものとする。   Next, comparison operators will be described. In addition, in the calculation of the comparison operator, since the output may not be available as it is obfuscated, such as control by an iF statement, the output of the comparison operator is not obfuscated.

比較演算子の難読演算は以下のように行う。
aとbを比較する場合に、「a−b」は[数46]で表される。
The obfuscation operation of the comparison operator is performed as follows.
When comparing a and b, “ab” is expressed by [Equation 46].

Figure 0006212377
Figure 0006212377

この[数46]の値の正負を調べることによって、aとbの大小を判定できる。   The magnitude of a and b can be determined by examining the positive / negative of the value of this [Equation 46].

[小なり演算子(<)]
「a−b<0」である場合に出力「1(真)」とし、そうではない場合に出力「0(偽)」とする。
[Less than (<)]
The output “1 (true)” is set when “a−b <0”, and the output “0 (false)” is set otherwise.

[小なりイコール演算子(<=)]
「a−b<=0」である場合に出力「1(真)」とし、そうではない場合に出力「0(偽)」とする。
[Less than equal operator (<=)]
The output “1 (true)” is set when “a−b <= 0”, and the output “0 (false)” is set otherwise.

[大なり演算子(>)]
「a−b>0」である場合に出力「1(真)」とし、そうではない場合に出力「0(偽)」とする。
[Major operator (>)]
The output “1 (true)” is set when “a−b> 0”, and the output “0 (false)” is set otherwise.

[大なりイコール演算子(>=)]
「a−b>=0」である場合に出力「1(真)」とし、そうではない場合に出力「0(偽)」とする。
[Large equal operator (> =)]
The output “1 (true)” is set when “a−b> = 0”, and the output “0 (false)” is set otherwise.

[ノットイコール演算子(!=)]
「a−b!=0」である場合に出力「1(真)」とし、そうではない場合に出力「0(偽)」とする。
[イコール演算子(==)]
「a−b=0」である場合に出力「1(真)」とし、そうではない場合に出力「0(偽)」とする。
[Not equal operator (! =)]
The output “1 (true)” is set when “a−b! = 0”, and the output “0 (false)” is set otherwise.
[Equal operator (==)]
The output “1 (true)” is set when “a−b = 0”, and the output “0 (false)” is set otherwise.

次に、ビット演算子について説明する。   Next, bit operators will be described.

[左右シフト演算子(S(左シフト(<<)、右シフト(>>)))]
左右シフト演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数47]で表される。
[Left / right shift operator (S (left shift (<<), right shift (>>)))]
The obfuscation operation parameter Z corresponding to the left / right shift operator (non-assignment operator) is expressed by [Equation 47] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

また、左右シフト代入演算子(Sa)に該当する難読演算パラメータZは[数16]に対応する[数48]で表される。   Further, the obfuscation calculation parameter Z corresponding to the left / right shift assignment operator (Sa) is expressed by [Equation 48] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

[ビット積演算子(&)]
ビット積演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数49]で表される。
[Bit product operator (&)]
The obfuscation operation parameter Z corresponding to the bit product operator (non-assignment operator) is represented by [Equation 49] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

また、ビット積代入演算子に該当する難読演算パラメータZは[数16]に対応する[数50]で表される。   Further, the obfuscation operation parameter Z corresponding to the bit product assignment operator is expressed by [Equation 50] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

[ビット和演算子(|)]
ビット和演算子は[数51]で表される。
Bitwise Sum Operator (|)
The bit sum operator is represented by [Equation 51].

Figure 0006212377
Figure 0006212377

この[数51]により、ビット和演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数52]で表される。   The obfuscation operation parameter Z corresponding to the bit sum operator (non-assignment operator) is expressed by [Equation 52] corresponding to [Equation 15] by this [Equation 51].

Figure 0006212377
Figure 0006212377

また、ビット和代入演算子に該当する難読演算パラメータZは[数16]に対応する[数53]で表される。   Further, the obfuscation operation parameter Z corresponding to the bit sum substitution operator is expressed by [Equation 53] corresponding to [Equation 16].

Figure 0006212377
Figure 0006212377

[ビット排他的論理和演算子(XOR)]
ビット排他的論理和演算子(非代入演算子)の場合には、演算が可換であるので、単に演算の順序を交換すれば難読化できる。これにより、ビット排他的論理和演算子(非代入演算子)に該当する難読演算パラメータZは[数15]に対応する[数54]で表される。
[Bit exclusive OR operator (XOR)]
In the case of bit exclusive OR operator (non-assignment operator), since the operation is commutative, it can be obfuscated simply by exchanging the order of operations. Thus, the obfuscation operation parameter Z corresponding to the bit exclusive OR operator (non-assignment operator) is represented by [Equation 54] corresponding to [Equation 15].

Figure 0006212377
Figure 0006212377

一方、ビット排他的論理和代入演算子の場合には、[数16]を適用できない。これは、[数16]を適用すると[数55]に表されるように、xがレジスタに保持されることになるからである。 On the other hand, in the case of the bit exclusive OR assignment operator, [Equation 16] can not be applied. This is because x j will be held in the register as expressed in [Equation 55] when [Equation 16] is applied.

Figure 0006212377
Figure 0006212377

このため、行列Aの要素aijが0又は1であることに着目し、[数56]によりビット排他的論理和代入演算子の難読演算を行う。 Therefore, noting that the element a ij of the matrix A is 0 or 1, the obfuscation operation of the bit exclusive OR assignment operator is performed by [Equation 56].

Figure 0006212377
Figure 0006212377

Figure 0006212377
Figure 0006212377

[数56]において、[数57]で示される部分を分割する。そして、その分割された部分に対して、上記したビット排他的論理和演算子(非代入演算子)の場合と同様に、演算の順序を交換する。これにより、xがレジスタに保持されることなく、演算できる。 In [Equation 56], the part shown by [Equation 57] is divided. Then, with respect to the divided portions, the order of operations is exchanged as in the case of the bit exclusive OR operator (non-assignment operator) described above. Thus, x j can be calculated without being held in the register.

次に、その他の演算子として単純代入演算子を説明する。単純代入演算子の例として、xの値をxに代入する「x=x」を挙げる。この場合、難読演算パラメータZは[数58]で表される。 Next, the simple assignment operator will be described as another operator. As an example of a simple assignment operator, take “x i = x j ” that assigns the value of x j to x i . In this case, the obfuscation calculation parameter Z is expressed by [Equation 58].

Figure 0006212377
Figure 0006212377

よって、単純代入演算子「x=x」に対応する難読演算パラメータZを[数59]により計算する。 Therefore, the obfuscation operation parameter Z corresponding to the simple assignment operator “x i = x j ” is calculated by [Equation 59].

Figure 0006212377
Figure 0006212377

以上が、本実施形態に係る難読演算パラメータZの計算方法の実施例の説明である。   The above is the description of the example of the calculation method of the obfuscation calculation parameter Z according to the present embodiment.

上述した実施形態によれば、演算装置10の難読演算パラメータ計算部12が、難読化後演算前ベクトルyoldから難読化後演算後ベクトルynewを難読化したままで計算する難読演算に使用される難読演算パラメータZを、難読化前演算前ベクトルxoldの要素の値が表れない難読演算パラメータ計算式を使用して計算する。そして、難読演算部13が、その難読演算パラメータZを使用して、難読化後演算前ベクトルyoldから難読化後演算後ベクトルynewを計算する難読演算を行う。これにより、演算時に使用されるレジスタに重要情報(難読化前演算前ベクトルxoldの要素の値)自身が保持されることを防ぐことができる。これにより、演算装置10を暗号化装置や認証装置などに使用することにより、セキュリティ上の重要情報である、暗号化に使用される鍵や認証に使用される個人情報などを保護することに寄与できる。 According to the above-described embodiment, obfuscation operation parameter calculation unit 12 of the arithmetic unit 10 is used obfuscation after the operation after vector y new new later obfuscation operation before vector y old in obfuscation operation of calculating remain obfuscated that obfuscation operation parameter Z, is calculated using the obfuscation before the operation before the vector x old element value does not appear obfuscation operation parameter calculation formula. The obfuscation operation unit 13 performs its use obfuscation operation parameter Z, the obfuscation operation for calculating the obfuscation after the operation after vector y new new later obfuscation operation before vector y old. Thereby, it is possible to prevent the important information (the value of the element of the pre-obfuscation operation vector xold ) itself from being held in the register used at the time of operation. This contributes to protecting the key used for encryption, the personal information used for authentication, etc., which are important information on security, by using the computing device 10 for the encryption device, authentication device, etc. it can.

なお、本実施形態に係る演算装置10は、専用のハードウェアにより実現されるものであってもよく、或いは、メモリおよびCPU(中央処理装置)により構成され、演算装置10の機能を実現するためのプログラムをCPUが実行することによりその機能を実現させるものであってもよい。   Note that the arithmetic unit 10 according to the present embodiment may be realized by dedicated hardware, or may be configured by a memory and a CPU (central processing unit) to realize the functions of the arithmetic unit 10. The function may be realized by the CPU executing the program of

以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。   Although the embodiments of the present invention have been described in detail with reference to the drawings, the specific configuration is not limited to this embodiment, and design changes and the like within the scope of the present invention are also included.

例えば、本実施形態に係る演算装置10は、様々なアプリケーションに対して適用可能である。例えば、暗号化処理や認証処理など、秘密情報を使用して演算処理を行うアプリケーションに対して、本実施形態に係る演算装置10を適用することによって、該秘密情報の保護に寄与するという効果が得られる。   For example, the arithmetic device 10 according to the present embodiment is applicable to various applications. For example, by applying the arithmetic device 10 according to the present embodiment to an application that performs arithmetic processing using secret information such as encryption processing and authentication processing, an effect of contributing to protection of the secret information is obtained. can get.

また、上述した演算装置10を実現するためのコンピュータプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するようにしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。   Alternatively, a computer program for realizing the above-described arithmetic device 10 may be recorded in a computer readable recording medium, and the program recorded in the recording medium may be read into a computer system and executed. Note that the “computer system” referred to here may include an OS and hardware such as peripheral devices.

また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、DVD(Digital Versatile Disk)等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。   The “computer readable recording medium” is a writable non-volatile memory such as a flexible disk, a magneto-optical disk, a ROM, a flash memory, etc., a portable medium such as a DVD (Digital Versatile Disk), and a computer system Storage devices such as hard disks.

さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
Furthermore, the “computer-readable recording medium” is a volatile memory (for example, DRAM (Dynamic Memory) inside a computer system that becomes a server or a client when a program is transmitted via a network such as the Internet or a communication line such as a telephone line). As Random Access Memory), it is assumed that the program which holds the program for a fixed time is included.
The program may be transmitted from a computer system in which the program is stored in a storage device or the like to another computer system via a transmission medium or by transmission waves in the transmission medium. Here, the “transmission medium” for transmitting the program is a medium having a function of transmitting information, such as a network (communication network) such as the Internet or a communication line (communication line) such as a telephone line.
Further, the program may be for realizing a part of the functions described above. Furthermore, it may be a so-called difference file (difference program) that can realize the above-described functions in combination with a program already recorded in the computer system.

10…演算装置、11…入力部、12…難読演算パラメータ計算部、13…難読演算部 DESCRIPTION OF SYMBOLS 10 ... Arithmetic unit, 11 ... Input part, 12 ... Obfuscated arithmetic parameter calculation part, 13 ... Obfuscated arithmetic part

Claims (3)

入力演算式を示す入力演算式情報、及び、前記入力演算式に使用される難読化前演算前ベクトルが難読化された難読化後演算前ベクトルを入力する入力部と、
前記難読化後演算前ベクトルから難読化後演算後ベクトルを難読化したままで計算する難読演算に使用される難読演算パラメータを、前記難読化前演算前ベクトルの要素の値が表れない難読演算パラメータ計算式を使用して計算する難読演算パラメータ計算部と、
前記難読演算パラメータを使用して、前記難読化後演算前ベクトルから難読化後演算後ベクトルを計算する難読演算を行う難読演算部と、
を備え
前記難読演算パラメータ計算式は、前記難読化後演算前ベクトルを用いて表された前記入力演算式が、複数の排他的論理和と複数の排他的論理和をそれぞれ一項として前記入力演算式で示される二項演算子で演算する式で表されたときの、前記各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成され
ことを特徴とする演算装置。
Input operation formula information indicating an input operation formula, and an input unit for inputting a pre-obfuscated vector before the obfuscation of the pre-obfuscation vector used for the input arithmetic expression;
An obfuscation operation parameter used in an obfuscation operation for calculating an obfuscated vector after an obfuscation operation from the pre-obfuscation operation vector, an obfuscation operation parameter in which a value of an element of the pre-obfuscation operation vector does not appear An obfuscated calculation parameter calculation unit that calculates using a calculation formula,
An obfuscation operation unit for performing an obfuscation operation of calculating a post-obfuscation vector from the pre-obfuscation vector using the obfuscation operation parameter;
Equipped with
In the obfuscated calculation parameter calculation formula, the input calculation formula represented using the pre-obfuscated vector before calculation is a plurality of exclusive ORs and a plurality of exclusive ORs as one term in the input calculation formula. A computing device characterized by being calculated so as to leave at least one exclusive OR for each of the single terms when represented by an expression which is operated by a binary operator shown .
演算装置が、入力演算式を示す入力演算式情報、及び、前記入力演算式に使用される難読化前演算前ベクトルが難読化された難読化後演算前ベクトルを入力する入力ステップと、
前記演算装置が、前記難読化後演算前ベクトルから難読化後演算後ベクトルを難読化したままで計算する難読演算に使用される難読演算パラメータを、前記難読化前演算前ベクトルの要素の値が表れない難読演算パラメータ計算式を使用して計算する難読演算パラメータ計算ステップと、
前記演算装置が、前記難読演算パラメータを使用して、前記難読化後演算前ベクトルから難読化後演算後ベクトルを計算する難読演算を行う難読演算ステップと、
を含み、
前記難読演算パラメータ計算式は、前記難読化後演算前ベクトルを用いて表された前記入力演算式が、複数の排他的論理和と複数の排他的論理和をそれぞれ一項として前記入力演算式で示される二項演算子で演算する式で表されたときの、前記各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成されたことを特徴とする演算方法。
An input step in which an arithmetic device inputs input arithmetic expression information indicating an input arithmetic expression, and a pre-obfuscated vector before the obfuscation of the pre-obfuscation vector used in the input arithmetic expression;
The value of the element of the pre-obfuscation operation vector is an obfuscation operation parameter used for the obfuscation operation in which the operation device calculates the after-obfuscation operation vector from the pre-obfuscation operation vector after the obfuscation operation. Obfuscated operation parameter calculation step which is calculated using an obfuscated operation parameter calculation formula which does not appear;
An obfuscation operation step in which the operation device performs an obfuscation operation of calculating an after-obfuscation vector after the obfuscation operation from the pre-obfuscation vector using the obfuscation operation parameter;
Only including,
In the obfuscated calculation parameter calculation formula, the input calculation formula represented using the pre-obfuscated vector before calculation is a plurality of exclusive ORs and a plurality of exclusive ORs as one term in the input calculation formula. A computing method characterized in that it is calculated with leaving at least one exclusive OR for each of the terms when represented by an expression which operates with a binary operator shown .
コンピュータに、
入力演算式を示す入力演算式情報、及び、前記入力演算式に使用される難読化前演算前ベクトルが難読化された難読化後演算前ベクトルを入力する入力ステップと、
前記難読化後演算前ベクトルから難読化後演算後ベクトルを難読化したままで計算する難読演算に使用される難読演算パラメータを、前記難読化前演算前ベクトルの要素の値が表れない難読演算パラメータ計算式を使用して計算する難読演算パラメータ計算ステップと、
前記難読演算パラメータを使用して、前記難読化後演算前ベクトルから難読化後演算後ベクトルを計算する難読演算を行う難読演算ステップと、
を実行させ
前記難読演算パラメータ計算式は、前記難読化後演算前ベクトルを用いて表された前記入力演算式が、複数の排他的論理和と複数の排他的論理和をそれぞれ一項として前記入力演算式で示される二項演算子で演算する式で表されたときの、前記各一項に対して少なくとも1つの排他的論理和を残して計算されるように構成されたコンピュータプログラム。
On the computer
Input operation formula information indicating an input operation formula, and an input step for inputting a pre-obfuscated vector before the obfuscation of the pre-obfuscation vector used in the input arithmetic expression;
An obfuscation operation parameter used in an obfuscation operation for calculating an obfuscated vector after an obfuscation operation from the pre-obfuscation operation vector, an obfuscation operation parameter in which a value of an element of the pre-obfuscation operation vector does not appear The obfuscated calculation parameter calculation step which is calculated using a calculation formula,
An obfuscation operation step for performing an obfuscation operation of calculating a post-obfuscation vector from the pre-obfuscation vector using the obfuscation operation parameter;
Was executed,
In the obfuscated calculation parameter calculation formula, the input calculation formula represented using the pre-obfuscated vector before calculation is a plurality of exclusive ORs and a plurality of exclusive ORs as one term in the input calculation formula. A computer program configured to be calculated leaving at least one exclusive OR for each of the terms, as represented by an expression that operates with a binary operator shown .
JP2013260059A 2013-12-17 2013-12-17 Arithmetic device, arithmetic method and computer program Active JP6212377B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013260059A JP6212377B2 (en) 2013-12-17 2013-12-17 Arithmetic device, arithmetic method and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013260059A JP6212377B2 (en) 2013-12-17 2013-12-17 Arithmetic device, arithmetic method and computer program

Publications (2)

Publication Number Publication Date
JP2015118439A JP2015118439A (en) 2015-06-25
JP6212377B2 true JP6212377B2 (en) 2017-10-11

Family

ID=53531130

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013260059A Active JP6212377B2 (en) 2013-12-17 2013-12-17 Arithmetic device, arithmetic method and computer program

Country Status (1)

Country Link
JP (1) JP6212377B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190287427A1 (en) * 2016-07-21 2019-09-19 Koninklijke Philips N.V. Device and method for performing obfuscated arithmetic

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007006184A (en) * 2005-06-24 2007-01-11 Nippon Telegr & Teleph Corp <Ntt> Cryptographic processing apparatus and authentication application program
JP4962165B2 (en) * 2007-06-22 2012-06-27 大日本印刷株式会社 Cryptographic processing apparatus, cryptographic processing program, and cryptographic processing method
JP5297688B2 (en) * 2008-05-09 2013-09-25 株式会社日立製作所 Vector concealed inner product calculation system, vector concealed inner product calculation method, and encryption key sharing system
JP5657128B2 (en) * 2011-09-27 2015-01-21 株式会社日立製作所 Secure calculation system, secure calculation method, and secure calculation program

Also Published As

Publication number Publication date
JP2015118439A (en) 2015-06-25

Similar Documents

Publication Publication Date Title
US12353525B1 (en) Methods, systems, and devices for an encrypted and obfuscated algorithm in a computing environment
KR102550812B1 (en) Method for comparing ciphertext using homomorphic encryption and apparatus for executing thereof
CN105453481B (en) Computing equipment including table networks
CN108604987B (en) Converting Boolean mask values to arithmetic mask values for cryptographic operations
CN107038383B (en) Data processing method and device
Ibarrondo et al. Banners: Binarized neural networks with replicated secret sharing
JP2020520614A (en) Apparatus and method for performing secure operations against side channel attacks
Dawson et al. Ensuring confidentiality and privacy of cloud data using a non-deterministic cryptographic scheme
US12052348B2 (en) Computation device using shared shares
CN113055153A (en) Data encryption method, system and medium based on fully homomorphic encryption algorithm
Das et al. A new modified version of standard RSA cryptography algorithm
JP2020520613A (en) Apparatus and method for performing secure operations against side channel attacks
Dawson et al. Ensuring privacy and confidentiality of cloud data: A comparative analysis of diverse cryptographic solutions based on run time trend
WO2018008547A1 (en) Secret computation system, secret computation device, secret computation method, and program
KR101440680B1 (en) Homomorphic Encryption and Decryption Method using Chinese Remainder Theorem and apparatus using the same
Mante et al. A symmetrical encryption technique for text encryption using randomized matrix based key generation
JP6212377B2 (en) Arithmetic device, arithmetic method and computer program
JP7396373B2 (en) Secure computation system, secure computation server device, secure computation method, and secure computation program
Karim et al. Performance Comparison of Hyper-V and KVM for Cryptographic Tasks in Cloud Computing.
Loyka et al. A homomorphic encryption scheme based on affine transforms
Mukherjee et al. Attacks on recent dnn ip protection techniques and their mitigation
JP5709773B2 (en) Encryption function computation processing method, decryption function computation processing method, encryption device, decryption device, and program in FIBE method
Murugan et al. Geometric Mean Labeling in Cryptography: A Graph-Based Approach to Enhanced Security and Performance
CN111602367B (en) Method for protecting entropy sources used in countermeasures for securing white-box cryptographic algorithms
CN114338049A (en) Rapid realization method and system of SM2 cryptographic algorithm based on modular reduction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170523

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20170706

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170915

R150 Certificate of patent or registration of utility model

Ref document number: 6212377

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150