JP7179788B2 - Secure computing device, secure computing method and secure computing program - Google Patents

Secure computing device, secure computing method and secure computing program Download PDF

Info

Publication number
JP7179788B2
JP7179788B2 JP2020007701A JP2020007701A JP7179788B2 JP 7179788 B2 JP7179788 B2 JP 7179788B2 JP 2020007701 A JP2020007701 A JP 2020007701A JP 2020007701 A JP2020007701 A JP 2020007701A JP 7179788 B2 JP7179788 B2 JP 7179788B2
Authority
JP
Japan
Prior art keywords
ciphertext
result
input
calculation
polynomial
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
JP2020007701A
Other languages
Japanese (ja)
Other versions
JP2021113956A (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 JP2020007701A priority Critical patent/JP7179788B2/en
Publication of JP2021113956A publication Critical patent/JP2021113956A/en
Application granted granted Critical
Publication of JP7179788B2 publication Critical patent/JP7179788B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Complex Calculations (AREA)

Description

本発明は、完全準同型暗号上での秘匿演算装置、秘匿演算方法及び秘匿演算プログラムに関する。 The present invention relates to a secure computation device, a secure computation method, and a secure computation program on fully homomorphic encryption.

従来、暗号文上での秘匿演算の手法が様々提案されている。非特許文献1では、完全準同型方式であるTFHEが提案されたが、この方式では、平文はビット値に限られていた。非特許文献2では、整数の平文を扱うことができ(以下、Integer-wiseという)、かつ、完全準同型暗号に必要なブートストラッピングと呼ばれるノイズ除去処理と同時に符号関数を実行する方式が提案されている。 Conventionally, there have been proposed various methods of concealment operations on ciphertexts. Non-Patent Document 1 proposed TFHE, which is a fully homomorphic scheme, but in this scheme, plaintext is limited to bit values. Non-Patent Document 2 proposes a method that can handle integer plaintext (hereinafter referred to as Integer-wise) and that executes a sign function at the same time as a noise removal process called bootstrapping required for fully homomorphic encryption. It is

Ilaria Chillotti, Nicolas Gama, Mariya Georgieva, and Malika Izabachene. Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds. In Jung Hee Cheon and Tsuyoshi Takagi, editors, Advances in Cryptology - ASIACRYPT 2016, pages 3-33, 2016.Ilaria Chillotti, Nicolas Gama, Mariya Georgieva, and Malika Izabachene. Faster fully homomorphic encryption: Bootstrapping in less than 0.1 seconds. In Jung Hee Cheon and Tsuyoshi Takagi, editors, Advances in Cryptology - ASIACRYPT 2016, pages 3-33, 2016. Florian Bourse, Michele Minelli, Matthias Minihold, and Pascal Paillier. Fast homomorphic evaluation of deep discretized neural networks. In Hovav Shacham and Alexandra Boldyreva, editors, Advances in Cryptology - CRYPTO 2018, pages 483-512. Springer, 2018.Florian Bourse, Michele Minelli, Matthias Minihold, and Pascal Paillier. Fast homomorphic evaluation of deep discretized neural networks. In Hovav Shacham and Alexandra Boldyreva, editors, Advances in Cryptology - CRYPTO 2018, pages 483-512. Springer, 2018.

非特許文献2では、TFHEにおいて整数の暗号文を扱うことを可能にしたが、整数の暗号文同士の準同型加算、及び整数の暗号文に対するブートストラッピングと同時の符号関数演算のみが実行可能であり、秘匿演算が可能な演算の種類が不足していた。 In Non-Patent Document 2, it is possible to handle integer ciphertexts in TFHE, but only homomorphic addition between integer ciphertexts and sign function operation at the same time as bootstrapping for integer ciphertexts can be performed. , and there was a lack of types of computations that could be performed confidentially.

本発明は、完全準同型暗号方式により、ブートストラッピングと同時に整数と2進数との乗算を実行できる秘匿演算装置、秘匿演算方法及び秘匿演算プログラムを提供することを目的とする。 SUMMARY OF THE INVENTION It is an object of the present invention to provide a secure computation device, a secure computation method, and a secure computation program capable of executing multiplication of an integer and a binary number at the same time as bootstrapping by fully homomorphic encryption.

本発明に係る秘匿演算装置は、LWE暗号文の秘密鍵を平文とした暗号文であるブートストラッピング・キーを用いた準同型演算により、多項式のLWE暗号文を更新してノイズを初期化する際に、当該多項式の係数に設定されたトーラス上の値を用いて1変数関数の演算結果を出力するブートストラップ処理部と、Bを奇数としたとき、0以上B未満の入力整数に、入力2進数の1又は0を表す値である0又はBを加算した後、前記ブートストラップ処理部に対して、前記1変数関数として恒等写像の演算を設定して、第1演算結果を取得する第1演算部と、前記入力整数に前記第1演算結果を加算した後、前記ブートストラップ処理部に対して、前記1変数関数として、偶数を2分の1にし、奇数xを-(x+B)/2にする演算を設定して、第2演算結果を取得する第2演算部と、前記第2演算結果を、前記入力整数と前記入力2進数との乗算結果として出力する出力部と、を備える。 The secure arithmetic device according to the present invention updates the polynomial LWE ciphertext by homomorphic operation using the bootstrapping key, which is the ciphertext with the secret key of the LWE ciphertext as the plaintext, and initializes the noise. At this time, a bootstrap processing unit that outputs the calculation result of the one-variable function using the values on the torus set for the coefficients of the polynomial, and an input integer of 0 or more and less than B, where B is an odd number, After adding 0 or B, which is a value representing binary 1 or 0, the bootstrap processing unit is set to perform an identity mapping operation as the one-variable function to obtain a first operation result. a first arithmetic unit, after adding the first arithmetic result to the input integer, for the bootstrap processing unit, as the one-variable function, halving an even number and dividing an odd number x by −(x+B); /2 to obtain a second operation result; and an output unit for outputting the second operation result as a multiplication result of the input integer and the input binary number. Prepare.

本発明に係る秘匿演算方法は、LWE暗号文の秘密鍵を平文とした暗号文であるブートストラッピング・キーを用いた準同型演算により、多項式のLWE暗号文を更新してノイズを初期化する際に、当該多項式の係数に設定されたトーラス上の値を用いて1変数関数の演算結果を出力するブートストラップ処理部を備えたコンピュータが、Bを奇数としたとき、0以上B未満の入力整数に、入力2進数の1又は0を表す値である0又はBを加算した後、前記ブートストラップ処理部に対して、前記1変数関数として恒等写像の演算を設定して、第1演算結果を取得する第1演算ステップと、前記入力整数に前記第1演算結果を加算した後、前記ブートストラップ処理部に対して、前記1変数関数として、偶数を2分の1にし、奇数xを-(x+B)/2にする演算を設定して、第2演算結果を取得する第2演算ステップと、前記第2演算結果を、前記入力整数と前記入力2進数との乗算結果として出力する出力ステップと、を実行する。 The confidential operation method according to the present invention updates the polynomial LWE ciphertext by homomorphic operation using the bootstrapping key, which is the ciphertext with the secret key of the LWE ciphertext as the plaintext, and initializes the noise. At that time, a computer equipped with a bootstrap processing unit that outputs the calculation result of the one-variable function using the values on the torus set for the coefficients of the polynomial, when B is an odd number, an input of 0 or more and less than B After adding 0 or B, which is a value representing 1 or 0 of the input binary number, to the integer, the bootstrap processing unit is set to perform an identity mapping operation as the one-variable function, thereby performing a first operation After a first operation step of obtaining a result and adding the first operation result to the input integer, for the bootstrap processing unit, as the one-variable function, even numbers are halved and odd numbers x are a second operation step of setting an operation to -(x+B)/2 to obtain a second operation result; and an output of outputting the second operation result as a multiplication result of the input integer and the input binary number. Execute the step and

本発明に係る秘匿演算プログラムは、前記秘匿演算装置としてコンピュータを機能させるためのものである。 A secure computation program according to the present invention is for causing a computer to function as the secure computation device.

本発明によれば、完全準同型暗号方式により、ブートストラッピングと同時に整数と2進数との乗算が実行される。 According to the present invention, a fully homomorphic encryption scheme performs integer-binary multiplication simultaneously with bootstrapping.

実施形態における秘匿演算装置のうち、1変数関数演算を実現するための機能構成を示すブロック図である。FIG. 2 is a block diagram showing a functional configuration for realizing 1-variable function operation in the secure operation device according to the embodiment; 実施形態における1変数関数の秘匿演算方法を実行するためのアルゴリズムを示す図である。It is a figure which shows the algorithm for performing the confidential operation method of the 1 variable function in embodiment. 実施形態における平文空間のスライスを例示する図である。It is a figure which illustrates the slice of the plaintext space in embodiment. 実施形態における1変数関数の値の設定方法を示す図である。It is a figure which shows the setting method of the value of the 1 variable function in embodiment. 実施形態における秘匿演算方法に用いる鍵変換処理のアルゴリズムを示す図である。It is a figure which shows the algorithm of the key conversion process used for the encryption calculation method in embodiment. 実施形態における秘匿演算装置の機能構成を示すブロック図である。It is a block diagram which shows the functional structure of the secure arithmetic unit in embodiment. 実施形態における整数と2進数との乗算のアルゴリズムを示す図である。It is a figure which shows the algorithm of the multiplication of an integer and a binary number in embodiment. 実施形態における乗算を構成する各ステップに伴う平文空間上での値の変化を示す図である。FIG. 4 is a diagram showing changes in values on plaintext space accompanying each step that constitutes multiplication in the embodiment;

以下、本発明の実施形態の一例について説明する。
本実施形態では、まず、完全準同型暗号で必要なブートストラッピングと同時に実現されるInteger-wiseの任意の1変数関数(写像)の演算方式を説明し、次に、この1変数関数演算を用いて実現される整数と2進数との秘匿乗算の方式を説明する。
An example of an embodiment of the present invention will be described below.
In the present embodiment, first, an operation method of an arbitrary one-variable function (mapping) of integer-wise, which is realized simultaneously with the bootstrapping necessary for fully homomorphic encryption, is explained, and then this one-variable function operation is described. A method of secure multiplication of an integer and a binary number realized by using the method will be described.

完全準同型暗号は、Somewhat型準同型暗号にブートストラッピングを組み合わせて構成される。ここで、Somewhat型準同型暗号とは、演算を重ねることによって暗号文上のノイズが大きくなり、ある程度の大きさになると復号が不可能になる方式である。完全準同型暗号は、Somewhat型準同型暗号にブートストラッピングと呼ばれるノイズ除去処理を行うことで無制限に演算が実行できるようにしたものである。 Fully homomorphic encryption is configured by combining Somewhat-type homomorphic encryption with bootstrapping. Here, Somewhat-type homomorphic encryption is a scheme in which the noise in the ciphertext increases with repeated operations, and when the noise reaches a certain level, decryption becomes impossible. Fully homomorphic encryption is obtained by subjecting Somewhat-type homomorphic encryption to a noise removal process called bootstrapping so that unlimited operations can be executed.

[1変数関数演算]
図1は、本実施形態における秘匿演算装置1のうち、1変数関数演算を実現するための機能構成を示すブロック図である。
秘匿演算装置1は、サーバ装置又はパーソナルコンピュータ等の情報処理装置(コンピュータ)であり、制御部10及び記憶部20の他、各種データの入出力デバイス及び通信デバイス等を備える。
[1-variable function operation]
FIG. 1 is a block diagram showing a functional configuration for realizing a 1-variable function operation in a secure operation device 1 according to this embodiment.
The secure computing device 1 is an information processing device (computer) such as a server device or a personal computer, and includes a control unit 10, a storage unit 20, input/output devices for various data, communication devices, and the like.

制御部10は、秘匿演算装置1の全体を制御する部分であり、記憶部20に記憶された各種プログラムを適宜読み出して実行することにより、本実施形態における各機能を実現する。制御部10は、CPUであってよい。 The control unit 10 is a part that controls the entire security computing device 1, and implements each function in this embodiment by appropriately reading and executing various programs stored in the storage unit 20. FIG. The control unit 10 may be a CPU.

記憶部20は、ハードウェア群を秘匿演算装置1として機能させるための各種プログラム(秘匿演算プログラム)、及び各種データ等の記憶領域であり、ROM、RAM、フラッシュメモリ又はハードディスクドライブ(HDD)等であってよい。 The storage unit 20 is a storage area for various programs (encryption operation programs) for causing the hardware group to function as the encryption operation device 1, various data, and the like. It's okay.

制御部10は、入力部111と、サンプル変換部112と、多項式定義部113と、多項式更新部114と、定数項抽出部115と、鍵変換部116とを備える。 The control unit 10 includes an input unit 111 , a sample conversion unit 112 , a polynomial definition unit 113 , a polynomial update unit 114 , a constant term extraction unit 115 and a key conversion unit 116 .

入力部111は、ブートストラッピングを実施する後述のアルゴリズムに対して、任意の1変数関数(写像)を定義するための値、及びこの関数への入力値を、パラメータとして受け付ける。 The input unit 111 receives, as parameters, a value for defining an arbitrary one-variable function (mapping) and an input value to this function for an algorithm that performs bootstrapping, which will be described later.

サンプル変換部112は、入力値のトーラス上のLWEサンプルを、整数空間上のサンプルへ変換する。 The sample conversion unit 112 converts the LWE samples on the torus of the input value to samples on the integer space.

多項式定義部113は、サンプル変換部112により整数空間に割り当てられた入力値に対する関数値のトーラス上の値を、この整数空間の値をマイナスの次数とする項の係数とした多項式(後述のベクトルtestv)を定義する。 The polynomial definition unit 113 defines a polynomial (a vector described later) in which the values on the torus of the function values for the input values assigned to the integer space by the sample transform unit 112 are the coefficients of the terms whose degrees are negative in this integer space. testv).

多項式更新部114は、LWE暗号文の第1の秘密鍵を平文とした暗号文であるブートストラッピング・キーを用いた準同型演算により、多項式のLWE暗号文を更新してノイズを初期化する。 The polynomial updating unit 114 updates the LWE ciphertext of the polynomial by homomorphic operation using the bootstrapping key, which is the ciphertext in which the first secret key of the LWE ciphertext is the plaintext, and initializes the noise. .

定数項抽出部115は、多項式更新部114により更新された多項式の定数項のLWE暗号文を抽出することにより、関数値の第2の秘密鍵によるLWE暗号文を取得する。 The constant term extraction unit 115 extracts the LWE ciphertext of the constant term of the polynomial updated by the polynomial update unit 114, thereby obtaining the LWE ciphertext of the function value based on the second secret key.

鍵変換部116は、定数項抽出部115により取得した第2の秘密鍵によるLWE暗号文を、第1の秘密鍵によるLWE暗号文に変換する。 The key conversion unit 116 converts the LWE ciphertext with the second secret key acquired by the constant term extraction unit 115 into the LWE ciphertext with the first secret key.

次に、秘匿演算装置1により実行される秘匿演算方法について、アルゴリズムの詳細を説明する。 Next, the details of the algorithm of the secure computation method executed by the secure computation device 1 will be described.

[定義]
本実施形態の秘匿演算方法における各種の定義は、非特許文献1及び2に従うが、次のように説明を補足する。
長さnのベクトルxのi番目の要素をxと表記する(x=(x,…,x))。
各種の空間等を次のように表記する。
・整数空間:Z,実数空間:R
・トーラスT=R/Z
・多項式:
R[X]: 係数∈Rである、任意次数の多項式の集合
[X]:=R[X]/(X+1): 係数∈TであるN(例えば、1024)次の多項式の集合
また、x←χは、集合χから一様にランダムにxをサンプルすることを意味する。
[definition]
Various definitions in the secure computation method of this embodiment conform to Non-Patent Documents 1 and 2, but the explanation is supplemented as follows.
The i-th element of a vector x of length n is denoted by x i (x=(x 1 , . . . , x n )).
Various spaces are described as follows.
・Integer space: Z, real number space: R
・Torus T=R/Z
・Polynomial:
R[X]: set of polynomials of any degree with coefficients εR T N [X]:=R[X]/(X N +1): polynomials of degree N (eg, 1024) with coefficients εT Also, x← U χ means sample x uniformly at random from the set χ.

TLWE暗号及びTGSW暗号は、非特許文献1において定義され、それぞれLWE暗号及びGSW暗号を拡張したものである。
TLWE暗号について、秘密ベクトルs、平文m、ノイズeのLWEサンプル(a,b)∈LWE(m)は、

Figure 0007179788000001
を満たす。ここで、ノイズeは、一般的にガウス分布に従い、パラメータα(エラー率、bT上においてはノイズの標準偏差となる)を持つ。 The TLWE and TGSW ciphers are defined in Non-Patent Document 1 and are extensions of the LWE and GSW ciphers, respectively.
For a TLWE cipher, LWE samples (a,b) ∈ LWE s (m) of secret vector s, plaintext m, noise e are
Figure 0007179788000001
meet. Here, the noise e generally follows a Gaussian distribution and has a parameter α (error rate, standard deviation of noise on bT).

ブートストラッピング・キーBKs→s”,α=(BK,…,BK)について、各BKは、秘密鍵s”による、平文がTLWE暗号文の秘密鍵sのTGSW暗号文である。ここで、TGSW暗号文は、TLWE暗号文と準同型演算が可能であり、

Figure 0007179788000002
となる。
この「秘密鍵の暗号文」BKを用いることで、暗号文上の準同型演算により復号に当たる演算を行える。これにより、ブートストラッピングでは、入力の平文と同じ平文を持ち、かつ、ノイズの大きさが初期化された暗号文が生成される。 For bootstrapping keys BK s→s", α = ( BK 1 , . be. Here, the TGSW ciphertext can be homomorphically operated with the TLWE ciphertext,
Figure 0007179788000002
becomes.
By using this "secret key ciphertext" BK i , it is possible to carry out an operation corresponding to decryption by a homomorphic operation on the ciphertext. As a result, in bootstrapping, a ciphertext having the same plaintext as the input plaintext and with the magnitude of noise initialized is generated.

[平文空間の設定]
前述の非特許文献1の手法では、暗号文の平文空間がビット値に限られていた。本実施形態では、この手法を、非特許文献2のように整数値も扱えるように拡張する。
[Plaintext space settings]
In the method of Non-Patent Document 1 mentioned above, the plaintext space of the ciphertext is limited to bit values. In this embodiment, this method is extended to handle integer values as in Non-Patent Document 2.

Bを自然数とし、min∈{0,…,B-1}を平文とする。このとき、LWE暗号文の構成は次のようになる。

Figure 0007179788000003
Let B be a natural number and m in ε{0, . . . , B−1} be plaintext. At this time, the configuration of the LWE ciphertext is as follows.
Figure 0007179788000003

平文minは、暗号文においては、min/2B∈Tの値に変換されている。ここで、ノイズeが、

Figure 0007179788000004
を満たす条件の下、復号において、2B倍しroundすることで元の値に戻る。なぜならば、
Figure 0007179788000005
であるが、式(1)を満たす時、|2Be|<1/2となり、「(b-<s,a>)・2B」=minが得られるからである。
また、秘密鍵sによる、平文mのLWE暗号文Enc(s,m)=(a,b)を、LWE(m)とも表記する。 The plaintext min is transformed into the value min/ 2BεT in the ciphertext. Here, the noise e is
Figure 0007179788000004
Under the condition that satisfies the condition, in decoding, the original value is restored by multiplying by 2B and rounding. because,
Figure 0007179788000005
However, when the formula (1) is satisfied, | 2Be |<1/2, and "(b−<s, a>)·2B"=min is obtained.
Also, the LWE ciphertext Enc(s,m)=(a,b) of the plaintext m with the secret key s is also written as LWE s (m).

[1変数関数アルゴリズム]
図2は、本実施形態における1変数関数の秘匿演算方法を実行するためのアルゴリズムを示す図である。
このアルゴリズムにより、ブートストラッピングと同時に任意の1変数関数f:{0,…,B-1}→{0,…,B-1}が実行される。
[One-variable function algorithm]
FIG. 2 is a diagram showing an algorithm for executing the method of concealment operation of a function of one variable in this embodiment.
This algorithm executes an arbitrary one-variable function f: {0, . . . , B-1}→{0, .

まず、入力部111は、min∈{0,…,B-1}を平文とする、トーラスT=R/Z上のLWEサンプル(a,b)∈LWE(min)の他、前述のブートストラッピング・キーBKs→s”,α、キースイッチ・キーKSs’→s,γ、及び後述のベクトルtestv∈T[X]の係数{μ,…,μN-1}を入力として受け付ける。 First, the input unit 111 inputs min ε { 0 , . bootstrapping key BK s→s″,α , keyswitch key KS s′→s,γ , and coefficients { μ 0 , . is accepted as input.

ここで、minの平文空間上で取り得る値の範囲φ(min)に対して、

Figure 0007179788000006
は、φ(min)に応じて、特定範囲のμが定数項として表れる。 Here, for the range of values φ( min ) that can be taken on the min plaintext space,
Figure 0007179788000006
, a certain range of μ i appears as a constant term depending on φ( min ).

また、

Figure 0007179788000007
となっている。eACCは、ループ処理で生じるroundingノイズ(丸め誤差)の和である。実装においては、トーラス上のLWEサンプル(a,b)∈T×Tのa,bは(1/2N)の倍数を用いるため、この丸め誤差は0となり無視できる(ξ=0,i=0,…,n)。
以下では、eACC=0とする。よって、minの平文空間上で取り得る値の範囲φ(min)は、
Figure 0007179788000008
となる。 again,
Figure 0007179788000007
It has become. e ACC is the sum of rounding noise (rounding error) generated in loop processing. In our implementation, the LWE samples (a,b) ∈ T n ×T on the torus use multiples of (1/2N), so this rounding error is 0 and negligible (ξ i =0,i= 0,...,n).
In the following, e ACC =0. Therefore, the range of values φ( min ) that can be taken on the plaintext space of min is
Figure 0007179788000008
becomes.

in=0のとき、φ(0)=2Neであり、

Figure 0007179788000009
となる。したがって、
Figure 0007179788000010
の定数項となりうる係数は、
Figure 0007179788000011
である。これらの係数μ∈Mが、μ:=f(0)/2B∈Tと予め設定される。
なお、T[X]:=R[X]/(X+1)であり、X+1≡0、X≡-1であることから、X-i≡-XN-i、X≡-X-(N-i)である。 When m in =0, φ(0)=2Ne, and
Figure 0007179788000009
becomes. therefore,
Figure 0007179788000010
The coefficient that can be the constant term of
Figure 0007179788000011
is. These coefficients μεM 0 are preset as μ:=f(0)/2BεT.
Note that T N [X]:=R [X]/(X N +1), and since X N +1 ≡ 0 and X N ≡ -1, X i ≡ -X N-i , X i ≡-X- (Ni) .

in∈{1,…,B-1}のとき、φ(min)=2N(e+min/2B)であり、式(1)から、

Figure 0007179788000012
であるから、
Figure 0007179788000013
となる。したがって、
Figure 0007179788000014
の定数項となりうる係数は、
Figure 0007179788000015
である。これらの係数μ∈Mm_inが、μ:=f(min)/2B∈Tと予め設定される。 When min ∈ {1,..., B-1}, φ(m in )=2N(e+m in / 2B ), and from equation (1),
Figure 0007179788000012
Because
Figure 0007179788000013
becomes. therefore,
Figure 0007179788000014
The coefficient that can be the constant term of
Figure 0007179788000015
is. These coefficients μεM m_in are preset as μ:=f(m in )/2BεT.

なお、min∈{1,…,B-1}に代えて、min∈{-(B-1),…,-1}を入力とする場合には、

Figure 0007179788000016
であるから、同様に、
Figure 0007179788000017
となる。したがって、
Figure 0007179788000018
の定数項となりうる係数は、
Figure 0007179788000019
である。これらの係数μ∈Mm_inが、μ:=f(min)/2B∈Tと予め設定される。 It should be noted that, instead of min{ 1, .
Figure 0007179788000016
Therefore, similarly,
Figure 0007179788000017
becomes. therefore,
Figure 0007179788000018
The coefficient that can be the constant term of
Figure 0007179788000019
is. These coefficients μεM m_in are preset as μ:=f(m in )/2BεT.

図3は、本実施形態における平文空間のスライスを例示する図である。
平文は、最初はトーラスT上の値(0~1の実数)だが、ブートストラッピングのアルゴリズム(図2)中で2N倍され、Z2N上の値となる。図3では、Z2N上での平文空間のスライス(区切り)を示している。
FIG. 3 is a diagram illustrating a slice of plaintext space in this embodiment.
The plaintext is initially a value on the torus T (a real number between 0 and 1), but is multiplied by 2N in the bootstrapping algorithm (Fig. 2) to become a value on Z 2N . FIG. 3 shows a slice of plaintext space on Z 2N .

スライスは、LWE暗号文の持つノイズの取り得る幅であり、この幅が重ならないように定義されることで平文を配置することができる。
ここでは、平文の値の範囲をB=8とした場合を示しており、0~2Nが2B個のスライスに分割されている。
すなわち、各スライスの幅はN/Bであり、例えば、平文「3」は、3N/Bを中心に、±N/2Bの範囲に割り当てられる。
A slice is a possible width of noise in an LWE ciphertext, and the plaintext can be arranged by defining the widths so that they do not overlap.
Here, a case is shown where the range of plaintext values is B=8, and 0 to 2N are divided into 2B slices.
That is, the width of each slice is N/B, and plaintext "3", for example, is assigned to a range of ±N/2B around 3N/B.

図4は、本実施形態における1変数関数の値の設定方法を示す図である。
円周上の位置は、前述のベクトルtestv∈T[X]におけるマイナスの次数に対応し、各スライスに、写像f(min)が割り当てられる。そして、testvの各次数の係数μ(0≦i≦N-1)∈Tとして、前述のようにf(min)/2Bが予め設定される。
なお、前述のtestvの式変形に見られるように、X-i≡-XN-i、X≡-X-(N-i)であることから、円周上の対称位置には反対符号の値が設定される。
FIG. 4 is a diagram showing a method of setting the value of the one-variable function in this embodiment.
The positions on the circle correspond to negative orders in the vector testvεT N [X] above, and each slice is assigned a mapping f(m in ). Then, as the coefficient μ i (0≦i≦N-1)εT of each order of testv, f(m in )/2B is set in advance as described above.
As can be seen in the transformation of the above testv formula, since X −i ≡-X N−i and X i ≡−X −(N−i) , symmetrical positions on the circumference have opposite signs value is set.

図2に戻り、ステップ1において、サンプル変換部112は、トーラスT=R/Z上のLWEサンプル(a,b)∈T×Tを2N倍してroundすることにより、整数上のサンプル(a ̄,b ̄)∈Z2N ×Z2Nへ変換する。 Returning to FIG. 2, in step 1, the sample conversion unit 112 multiplies the LWE samples (a, b)εT n ×T on the torus T=R/Z by 2N and rounds them, thereby obtaining samples on the integer ( a ~, b ~) ∈ Z 2N n x Z 2N .

ステップ2において、多項式定義部113は、多項式testv:=μ+μ-1+…+μN-1-(N-1)∈T[X]を定義する。 In step 2, the polynomial definition unit 113 defines a polynomial testv:=μ 01 X −1 + . . . +μ N−1 X −(N−1) εT N [X].

ステップ3において、多項式更新部114は、中間生成物として、多項式Xb ̄・(0,testv)∈T[X]×T[X]を暗号化したTLWE暗号文であるACCを算出する。 In step 3, the polynomial updating unit 114 calculates ACC, which is a TLWE ciphertext obtained by encrypting the polynomial X b (0, testv)εT N [X]×T N [X], as an intermediate product. .

ステップ4~6のループ処理において、多項式更新部114は、準同型演算により多項式のTLWE暗号文ACCを更新する。
ここで、各BKは、秘密鍵s”による、平文がTLWE暗号文の秘密鍵sのTGSW暗号文である。前述のように、TGSW暗号文は、TLWE暗号文と準同型演算が可能なので、多項式更新部114は、TGSW暗号文とTLWE暗号文であるACCとの準同型演算により、

Figure 0007179788000020
のTLWE暗号文にACCを更新する。
よって、ループ処理を終えた時点で、ACCは、
Figure 0007179788000021
のTLWE暗号文となる。 In the loop processing of steps 4 to 6, the polynomial update unit 114 updates the polynomial TLWE ciphertext ACC by homomorphic operations.
where each BK i is a TGSW ciphertext with a secret key s i whose plaintext is a TLWE ciphertext with a secret key s″. Therefore, the polynomial updating unit 114 performs a homomorphic operation on the TGSW ciphertext and the ACC, which is the TLWE ciphertext, to obtain
Figure 0007179788000020
update the ACC to the TLWE ciphertext of
Therefore, when the loop processing ends, ACC
Figure 0007179788000021
TLWE ciphertext.

ステップ7において、定数項抽出部115は、多項式のTLWE暗号文ACCから定数項、すなわちtestvの係数として設定されたf(min)/2BのLWE暗号文を抽出する。 In step 7, the constant term extraction unit 115 extracts a constant term, that is, an LWE ciphertext of f(min)/2B set as a coefficient of testv from the polynomial TLWE ciphertext ACC.

ステップ8において、鍵変換部116は、キースイッチ・キーKSs’→s,γを用いたKeySwitchの操作により、秘密鍵s’によるLWE暗号文であるuを、秘密鍵sによるLWE暗号文に変換する。 In step 8, the key conversion unit 116 converts u, which is the LWE ciphertext by the secret key s′, into LWE ciphertext by the secret key s by operating the KeySwitch using the key switch key KS s′→s,γ . Convert.

図5は、本実施形態における秘匿演算方法に用いる鍵変換処理のアルゴリズムを示す図である。
なお、この鍵変換処理(KeySwitch)は、非特許文献1に示されているものと同一である。
FIG. 5 is a diagram showing an algorithm for key conversion processing used in the encryption calculation method according to this embodiment.
Note that this key conversion process (KeySwitch) is the same as that shown in Non-Patent Document 1.

このようにして、秘匿演算装置1は、ブートストラッピングと同時に任意の1変数関数fを実行し、入力されたminの暗号文Cm_inに対して、f(min)の暗号文Cf(m_in)を出力する。 In this way, the secure computing device 1 executes an arbitrary one-variable function f at the same time as bootstrapping, and f (min) ciphertext Cf for input min ciphertext Cm_in . Output (m_in) .

[整数と2進数との秘匿乗算]
図6は、本実施形態における秘匿演算装置1の機能構成を示すブロック図である。
制御部10は、前述の入力部111と、サンプル変換部112と、多項式定義部113と、多項式更新部114と、定数項抽出部115と、鍵変換部116とを備えたブートストラップ処理部11に加えて、第1演算部12と、第2演算部13と、出力部14とを備える。
[Anonymous Multiplication of Integers and Binary Numbers]
FIG. 6 is a block diagram showing the functional configuration of the secure computing device 1 in this embodiment.
The control unit 10 includes the input unit 111, the sample conversion unit 112, the polynomial definition unit 113, the polynomial update unit 114, the constant term extraction unit 115, and the key conversion unit 116. In addition to the above, a first calculation unit 12, a second calculation unit 13, and an output unit 14 are provided.

ブートストラップ処理部11は、前述した通り、LWE暗号文の秘密鍵を平文とした暗号文であるブートストラッピング・キーを用いた準同型演算により、多項式のLWE暗号文を更新してノイズを初期化する際に、この多項式の係数に設定されたトーラス上の値を用いて1変数関数の演算結果を出力する。 As described above, the bootstrap processing unit 11 updates the LWE ciphertext of the polynomial by the homomorphic operation using the bootstrapping key, which is the ciphertext with the private key of the LWE ciphertext as the plaintext, and initializes the noise. At the time of conversion, the values on the torus set for the coefficients of this polynomial are used to output the calculation result of the one-variable function.

第1演算部12は、0以上B未満の入力整数に、入力2進数の1又は0を表す0又はB(若しくは-B)を加算した後、ブートストラップ処理部11に対して、1変数関数として、整数をそのまま返す演算を設定して、第1演算結果を取得する。
ここで、平文空間{-(B-1),…,0,…,B-1}を決める整数Bは、奇数とする。
The first arithmetic unit 12 adds 0 or B (or −B) representing the input binary number 1 or 0 to the input integer of 0 or more and less than B, and then supplies the bootstrap processing unit 11 with a one-variable function , an operation that returns an integer as it is is set, and the first operation result is obtained.
Here, the integer B that determines the plaintext space {−(B−1), . . . , 0, .

第2演算部13は、入力整数に第1演算結果を加算した後、ブートストラップ処理部11に対して、1変数関数として、偶数を2分の1にし、奇数xを-(x+B)/2にする演算を設定して、第2演算結果を取得する。 After adding the first calculation result to the input integer, the second calculation unit 13 halves the even number and divides the odd number x by -(x+B)/2 as a one-variable function for the bootstrap processing unit 11 . to obtain the second calculation result.

出力部14は、第3演算結果を、入力整数と入力2進数との乗算結果として出力する。 The output unit 14 outputs the third calculation result as the multiplication result of the input integer and the input binary number.

図7は、本実施形態における整数と2進数との乗算のアルゴリズムを示す図である。
ここでは、整数mint∈{0,…,B-1}の暗号文Cm_intと、2進数mbin∈{-B,0,B}の暗号文Cm_binとを入力とし、mbin=0のときCm_intが、mbin=-B又はBのときCが、乗算MultbyBin(Cm_int,Cm_bin)の結果(暗号文Cm_out)として出力される。
なお、mbin=0は、2進数の1(true)を表し、mbin=-B又はBは、2進数の0(false)を表す。
FIG. 7 is a diagram showing an algorithm for multiplication of integers and binary numbers in this embodiment.
Here, a ciphertext C m_int of an integer m int { 0, . C m_int is output when , and C 0 when m bin =−B or B is output as the result (ciphertext C m_out ) of multiplication MultibyBin(C m_int , C m_bin ).
Note that m bin =0 represents binary 1 (true), and m bin =−B or B represents binary 0 (false).

ステップ1において、第1演算部12は、1変数関数fid_int(恒等写像)の実行を伴うブートストラッピングによって、暗号文Ctmp=Bootstrap(Cm_int+Cm_bin,fid_int)を算出する。 In step 1, the first calculator 12 calculates a ciphertext Ctmp =Bootstrap( Cm_int + Cm_bin , fid_int ) by bootstrapping with execution of a one-variable function fid_int (identity map).

ここで、fid_int:{0,…,B-1}→{0,…,B-1}、すなわちfid_int(x):=xの演算は、testvの係数μ,…,μN-1∈Tを、次のように定義することで実現される。

Figure 0007179788000022
Here, f id_int : { 0 , . . . , B−1}→{0, . It is realized by defining 1 εT as follows.
Figure 0007179788000022

ステップ2において、第2演算部13は、1変数関数fmultbinの実行を伴うブートストラッピングによって、暗号文Cm_out=Bootstrap(Cm_int+Cm_tmp,fmultbin)を算出する。 In step 2, the second calculator 13 calculates the ciphertext Cm_out =Bootstrap( Cm_int + Cm_tmp , fmultbin ) by bootstrapping with execution of the one-variable function fmultbin .

ここで、fmultbinは、

Figure 0007179788000023
であり、この演算は、testvの係数μ,…,μN-1∈Tを、次のように定義することで実現される。
Figure 0007179788000024
where f multbin is
Figure 0007179788000023
, and this operation is realized by defining the coefficients μ 0 , . . . , μ N−1 εT of testv as follows.
Figure 0007179788000024

図8は、本実施形態における乗算を構成する各ステップに伴う平文空間上での値の変化を示す図である。
例えば、入力された整数mint=1は、N/Bを含むスライスに割り当てられており、mbin∈{-B,0,B}を加算すると、結果は、mbin=0(true)の場合は同じスライスに、mbin=-B又はB(false)の場合は(N/B)+Nを含むスライスに位置する。この演算結果に対してfid_intの演算を行うブートストラッピングによって、演算結果tmpは、mbin=0の場合はf(1)の結果の位置、すなわちN/Bを含むスライスに、mbin=-B又はBの場合はf(1)の結果のマイナスの位置、すなわち-N/Bを含むスライスに位置する。
FIG. 8 is a diagram showing changes in values on the plaintext space accompanying each step of multiplication in this embodiment.
For example, the input integer m int =1 is assigned to the slice containing N/B, and adding m bin ∈ {−B, 0, B} results in m bin =0 (true). If m bin =−B or B(false), it is located in the slice containing (N/B)+N. By bootstrapping the f id_int operation on this operation result, the operation result tmp is stored at the position of the result of f(1) if m bin =0, that is, in the slice containing N/B, m bin = If -B or B, it is located in the slice containing the minus position of the result of f(1), ie -N/B.

このように、前述のアルゴリズム(図7)のステップ1では、Cm_binが-B又はBの暗号文であった場合、図8のようにCm_intの位相は原点対称の位置に移動し、その後、fid_intの演算を伴うブートストラッピングにより、暗号文の位相はx軸対象の位置に移動する。つまり、Ctmpは、正負が反転し、Ctmp=C-m_intとなる。
また、Cm_binが0の暗号文であった場合、0を足すだけなので、Ctmpは変わらず、Ctmp=Cm_intとなる。
Thus, in step 1 of the above algorithm (FIG. 7), if C m_bin is a ciphertext of -B or B, the phase of C m_int moves to a position symmetrical to the origin as shown in FIG. , f id_int , the phase of the ciphertext is moved to the position of the x-axis symmetry. That is, the sign of C tmp is inverted, and C tmp =C - m_int .
Also, if C m_bin is a ciphertext of 0, since 0 is simply added, C tmp remains unchanged and C tmp =C m_int .

次に、mintにtmpを加算すると、mbin=0の場合は同じ値を足すので2倍され、結果は元の2N/Bを含むスライスに位置する。一方、mbin=-B又はBの場合はプラスとマイナスの同じ値を足すので、結果は0を含むスライスに位置する。この演算結果に対してfmultbinの演算を行うブートストラッピングによって値は半分になり、演算結果moutは、mbin=0の場合はN/Bを含むスライスに、mbin=-B又はBの場合は0を含むスライスに位置する。 Then add tmp to min int , if m bin =0 then add the same value, so doubled and the result is located in the slice containing the original 2N/B. On the other hand, if m bin =−B or B, then add the same positive and negative values, so the result is located in the slice containing 0. The value is halved by bootstrapping the f multbin operation on this operation result, and the operation result m out is the slice containing N/B if m bin =0, m bin =−B or B is located in the slice containing 0.

このように、前述のアルゴリズム(図7)のステップ2では、Cm_binが-B又はBの暗号文であった場合、Cm_int+Ctmp=Cとなり、Cm_binが0の暗号文であった場合、Cm_int+Ctmp=Cm_int+Cm_intとなる。
そして、fmultbinの演算を伴うブートストラッピングによって、Cm_int+Cm_intはCm_intへと半分にされ、CはそのままCとなる。
Thus, in step 2 of the above algorithm (FIG. 7), if C m_bin was −B or B ciphertext, then C m_int +C tmp =C 0 and C m_bin was 0 ciphertext , then Cm_int + Ctmp = Cm_int + Cm_int .
Then, bootstrapping with the operation of f multbin halves C m_int +C m_int to C m_int and C 0 remains C 0 .

この結果、mbin=0(true)の場合、元のmintが暗号文で出力され、mbin=-B又はB(false)の場合、0が暗号文で出力される。 As a result, when m bin =0 (true), the original m int is output in ciphertext, and when m bin =−B or B (false), 0 is output in ciphertext.

ここで、値を半分にするfmultbinの演算を、B=5の場合を例に説明する。
intがB/2未満の値、例えばmint=1に対しては、mint+mint=2であるので、「2」のスライスの演算結果を「1」とする。同様に、mint=2に対しては、「4」のスライスの演算結果を「2」とする。
Here, the operation of f multbin that halves the value will be described using the case of B=5 as an example.
For a value of min int less than B/2, for example min int =1, since min int + min int =2, the operation result of the slice of “2” is set to “1”. Similarly, for m int =2, the operation result of the slice of "4" is set to "2".

intがB/2より大きい値、例えばmint=3に対しては、mint+mint=6であるので、「-1」のスライスの演算結果を「3」とする。これはつまり、「-1」のスライスの原点対称の位置にある「1」のスライスの演算結果を「-3」と設定することと同じである。同様に、mint=4に対しては、「-3」のスライスの演算結果を「4」に、つまり、「3」のスライスの演算結果を「-4」とする。 For a value of min int larger than B/2, for example, min int =3, since min int +min int =6, the operation result of the “−1” slice is set to “3”. In other words, this is the same as setting the operation result of the "1" slice located at the point symmetrical to the "-1" slice to "-3". Similarly, for m int =4, the operation result of the “−3” slice is set to “4”, that is, the operation result of the “3” slice is set to “−4”.

すなわち、1,2,3,4のスライスの演算結果を順に{-3,1,-4,2}とすればよい。これを数式表現すると、前述の式(1)となる。
ここで、Bが奇数であることから、mint+tmpの値は、mintがB/2未満のときB未満の偶数に、mintがB/2より大きいときマイナスの奇数となる。したがって、0~B-1のスライスに対して演算結果を設定することで値を半分にするfmultbinの演算が実現される。
That is, the operation results of slices 1, 2, 3 and 4 may be set to {-3, 1, -4, 2} in order. If this is expressed by a mathematical formula, it becomes the above-mentioned formula (1).
Here, since B is an odd number, the value of min int +tmp is an even number less than B when min int is less than B/2, and a negative odd number when min int is greater than B/2. Therefore, by setting the operation result for slices 0 to B−1, the operation of f multbin , which halves the value, is realized.

本実施形態によれば、秘匿演算装置1は、ブートストラッピングと同時に1変数関数を実行する処理を用いて、入力整数に入力2進数を加算した後に関数fid_intを実行する第1演算、入力整数に第1演算の結果を加算した後に関数fmultbinを実行する第2演算を順に実行する。
これにより、秘匿演算装置1は、完全準同型暗号方式により、入力整数と入力2進数との乗算をブートストラッピングと同時に実行できる。
According to the present embodiment, the secure arithmetic device 1 uses the process of executing a one-variable function at the same time as bootstrapping, the first arithmetic operation that executes the function f id_int after adding the input binary number to the input integer. A second operation is performed in sequence that adds the result of the first operation to an integer and then performs the function f - - multbin .
As a result, the secure arithmetic device 1 can perform multiplication of an input integer and an input binary number at the same time as bootstrapping by fully homomorphic encryption.

また、本発明者は、特願2019-211426号明細書において、1変数関数を実現するブートストラッピング処理を3回実行することで、入力整数と入力2進数との乗算を実現する手法を提案した。
これに対して、本実施形態では、ブートストラッピング処理の回数が2回に削減され、処理効率が向上した。
In addition, in Japanese Patent Application No. 2019-211426, the present inventor proposes a method of realizing multiplication of an input integer and an input binary number by executing bootstrapping processing that realizes a single-variable function three times. did.
On the other hand, in this embodiment, the number of times of bootstrapping processing is reduced to two, and the processing efficiency is improved.

以上、本発明の実施形態について説明したが、本発明は前述した実施形態に限るものではない。また、前述した実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されるものではない。 Although the embodiments of the present invention have been described above, the present invention is not limited to the above-described embodiments. Moreover, the effects described in the above-described embodiments are merely enumerations of the most suitable effects produced by the present invention, and the effects of the present invention are not limited to those described in the embodiments.

秘匿演算装置1による秘匿演算方法は、ソフトウェアにより実現される。ソフトウェアによって実現される場合には、このソフトウェアを構成するプログラムが、情報処理装置(コンピュータ)にインストールされる。また、これらのプログラムは、CD-ROMのようなリムーバブルメディアに記録されてユーザに配布されてもよいし、ネットワークを介してユーザのコンピュータにダウンロードされることにより配布されてもよい。さらに、これらのプログラムは、ダウンロードされることなくネットワークを介したWebサービスとしてユーザのコンピュータに提供されてもよい。 The secure computation method by the secure computation device 1 is implemented by software. When it is implemented by software, a program that constitutes this software is installed in an information processing device (computer). These programs may be recorded on removable media such as CD-ROMs and distributed to users, or may be distributed by being downloaded to users' computers via a network. Furthermore, these programs may be provided to the user's computer as a web service through the network without being downloaded.

1 秘匿演算装置
10 制御部
11 ブートストラップ処理部
12 第1演算部
13 第2演算部
14 出力部
20 記憶部
111 入力部
112 サンプル変換部
113 多項式定義部
114 多項式更新部
115 定数項抽出部
116 鍵変換部
1 secret arithmetic device 10 control unit 11 bootstrap processing unit 12 first arithmetic unit 13 second arithmetic unit 14 output unit 20 storage unit 111 input unit 112 sample conversion unit 113 polynomial definition unit 114 polynomial update unit 115 constant term extraction unit 116 key converter

Claims (3)

LWE暗号文の秘密鍵を平文とした暗号文であるブートストラッピング・キーを用いた準同型演算により、多項式のLWE暗号文を更新してノイズを初期化する際に、当該多項式の係数に設定されたトーラス上の値を用いて1変数関数の演算結果を出力するブートストラップ処理部と、
Bを奇数としたとき、0以上B未満の入力整数に、入力2進数の1又は0を表す値である0又はBを加算した後、前記ブートストラップ処理部に対して、前記1変数関数として恒等写像の演算を設定して、第1演算結果を取得する第1演算部と、
前記入力整数に前記第1演算結果を加算した後、前記ブートストラップ処理部に対して、前記1変数関数として、偶数を2分の1にし、奇数xを-(x+B)/2にする演算を設定して、第2演算結果を取得する第2演算部と、
前記第2演算結果を、前記入力整数と前記入力2進数との乗算結果として出力する出力部と、を備える秘匿演算装置。
When updating the LWE ciphertext of the polynomial and initializing the noise by homomorphic operation using the bootstrapping key, which is the ciphertext with the secret key of the LWE ciphertext as the plaintext, set to the coefficient of the polynomial A bootstrap processing unit that outputs the operation result of the one-variable function using the value on the torus obtained;
When B is an odd number, after adding 0 or B, which is a value representing an input binary number of 1 or 0, to an input integer greater than or equal to 0 and less than B, the one-variable function is given to the bootstrap processing unit a first calculation unit that sets an identity map calculation and obtains a first calculation result;
After adding the first operation result to the input integer, the bootstrap processing unit performs an operation to halve an even number and to -(x+B)/2 an odd number x as the one-variable function. a second calculation unit that sets and obtains a second calculation result;
and an output unit that outputs the second operation result as a multiplication result of the input integer and the input binary number.
LWE暗号文の秘密鍵を平文とした暗号文であるブートストラッピング・キーを用いた準同型演算により、多項式のLWE暗号文を更新してノイズを初期化する際に、当該多項式の係数に設定されたトーラス上の値を用いて1変数関数の演算結果を出力するブートストラップ処理部を備えたコンピュータが、
Bを奇数としたとき、0以上B未満の入力整数に、入力2進数の1又は0を表す値である0又はBを加算した後、前記ブートストラップ処理部に対して、前記1変数関数として恒等写像の演算を設定して、第1演算結果を取得する第1演算ステップと、
前記入力整数に前記第1演算結果を加算した後、前記ブートストラップ処理部に対して、前記1変数関数として、偶数を2分の1にし、奇数xを-(x+B)/2にする演算を設定して、第2演算結果を取得する第2演算ステップと、
前記第2演算結果を、前記入力整数と前記入力2進数との乗算結果として出力する出力ステップと、を実行する秘匿演算方法。
When updating the LWE ciphertext of the polynomial and initializing the noise by homomorphic operation using the bootstrapping key, which is the ciphertext with the secret key of the LWE ciphertext as the plaintext, set to the coefficient of the polynomial A computer equipped with a bootstrap processing unit that outputs the operation result of a one-variable function using the values on the torus obtained,
When B is an odd number, after adding 0 or B, which is a value representing an input binary number of 1 or 0, to an input integer greater than or equal to 0 and less than B, the one-variable function is given to the bootstrap processing unit a first calculation step of setting an identity map calculation and obtaining a first calculation result;
After adding the first operation result to the input integer, the bootstrap processing unit performs an operation to halve an even number and to -(x+B)/2 an odd number x as the one-variable function. a second calculation step of setting and obtaining a second calculation result;
an output step of outputting the result of the second operation as a multiplication result of the input integer and the input binary number.
請求項1に記載の秘匿演算装置としてコンピュータを機能させるための秘匿演算プログラム。 A secure computation program for causing a computer to function as the secure computation device according to claim 1 .
JP2020007701A 2020-01-21 2020-01-21 Secure computing device, secure computing method and secure computing program Active JP7179788B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020007701A JP7179788B2 (en) 2020-01-21 2020-01-21 Secure computing device, secure computing method and secure computing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020007701A JP7179788B2 (en) 2020-01-21 2020-01-21 Secure computing device, secure computing method and secure computing program

Publications (2)

Publication Number Publication Date
JP2021113956A JP2021113956A (en) 2021-08-05
JP7179788B2 true JP7179788B2 (en) 2022-11-29

Family

ID=77076993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020007701A Active JP7179788B2 (en) 2020-01-21 2020-01-21 Secure computing device, secure computing method and secure computing program

Country Status (1)

Country Link
JP (1) JP7179788B2 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150312028A1 (en) 2012-08-28 2015-10-29 Snu R&Db Foundation Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
US20190327077A1 (en) 2018-04-18 2019-10-24 Fujitsu Limited Outsourcing processing operations with homomorphic encryption
JP2019211426A (en) 2018-06-08 2019-12-12 Jnc株式会社 Column, column filling device, column filling system, and column processing method
JP2021083039A (en) 2019-11-22 2021-05-27 Kddi株式会社 Secret arithmetic unit, secret arithmetic method, and secret arithmetic program

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150312028A1 (en) 2012-08-28 2015-10-29 Snu R&Db Foundation Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
US20190327077A1 (en) 2018-04-18 2019-10-24 Fujitsu Limited Outsourcing processing operations with homomorphic encryption
JP2019191575A (en) 2018-04-18 2019-10-31 富士通株式会社 Commission of processing operation using homomorphism code
JP2019211426A (en) 2018-06-08 2019-12-12 Jnc株式会社 Column, column filling device, column filling system, and column processing method
JP2021083039A (en) 2019-11-22 2021-05-27 Kddi株式会社 Secret arithmetic unit, secret arithmetic method, and secret arithmetic program

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
佐久間 淳ほか,安全なデータ活用を実現する秘密計算技術,情報処理,日本,一般社団法人情報処理学会,2018年09月15日,第59巻,第10号,pp.898-903

Also Published As

Publication number Publication date
JP2021113956A (en) 2021-08-05

Similar Documents

Publication Publication Date Title
Jiang et al. Secure outsourced matrix computation and application to neural networks
Martins et al. A survey on fully homomorphic encryption: An engineering perspective
Bost et al. Machine learning classification over encrypted data
Doröz et al. Homomorphic AES evaluation using the modified LTV scheme
Farsana et al. An audio encryption scheme based on Fast Walsh Hadamard Transform and mixed chaotic keystreams
Beullens et al. Field lifting for smaller UOV public keys
Han et al. Efficient logistic regression on large encrypted data
JP7146724B2 (en) Secure computing device, secure computing method and secure computing program
Kaosar et al. Fully homomorphic encryption based two-party association rule mining
Aguilar Melchor et al. A comparison of the homomorphic encryption libraries HElib, SEAL and FV-NFLlib
Furue et al. A new variant of unbalanced oil and vinegar using quotient ring: QR-UOV
Kim et al. Comprehensive introduction to fully homomorphic encryption for dynamic feedback controller via LWE-based cryptosystem
Alexandru et al. Secure multi-party computation for cloud-based control
Ramos-Calderer et al. Quantum search for scaled hash function preimages
Huang et al. Support vector machine classification over encrypted data
Zhang et al. Protecting data privacy in publicly verifiable delegation of matrix and polynomial functions
Herbert et al. Design and implementation of low-depth pairing-based homomorphic encryption scheme
Xiang et al. Fast blind rotation for bootstrapping FHEs
JP7146725B2 (en) Secure computing device, secure computing method and secure computing program
Laine Homomorphic encryption
JP7179788B2 (en) Secure computing device, secure computing method and secure computing program
JP7228286B1 (en) Cryptographic processing device, cryptographic processing method, and cryptographic processing program
Biasse Approximate Short Vectors in Ideal Lattices of Q (ζ _ p^ e) Q (ζ pe) with Precomputation of Cl (O _K) Cl (OK)
Furue et al. A structural attack on block-anti-circulant UOV at SAC 2019
JP7096214B2 (en) Concealment calculation device, concealment calculation method and concealment calculation program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220107

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221018

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221025

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221116

R150 Certificate of patent or registration of utility model

Ref document number: 7179788

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150