WO2019059042A1 - 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム - Google Patents

秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム Download PDF

Info

Publication number
WO2019059042A1
WO2019059042A1 PCT/JP2018/033595 JP2018033595W WO2019059042A1 WO 2019059042 A1 WO2019059042 A1 WO 2019059042A1 JP 2018033595 W JP2018033595 W JP 2018033595W WO 2019059042 A1 WO2019059042 A1 WO 2019059042A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret
vector
text
array
integer
Prior art date
Application number
PCT/JP2018/033595
Other languages
English (en)
French (fr)
Inventor
浩気 濱田
Original Assignee
日本電信電話株式会社
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 日本電信電話株式会社 filed Critical 日本電信電話株式会社
Priority to AU2018338249A priority Critical patent/AU2018338249B2/en
Priority to US16/648,436 priority patent/US11514192B2/en
Priority to JP2019543567A priority patent/JP6825119B2/ja
Priority to EP18859584.7A priority patent/EP3686870B1/en
Priority to CN201880060802.8A priority patent/CN111133495B/zh
Publication of WO2019059042A1 publication Critical patent/WO2019059042A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention relates to cryptographic application technology, and in particular to technology for reading and writing data to an array without revealing the accessed position.
  • Non-Patent Document 1 As a method of obtaining a specific calculation result without restoring the encrypted numerical value, there is a method called secret calculation (see, for example, Non-Patent Document 1).
  • encryption is performed by distributing fragments of numerical values to three secret calculation devices, and by performing cooperative calculation by three secret calculation devices, addition and subtraction are performed without restoring numerical values.
  • the result of constant addition, multiplication, constant multiplication, logical operation (not, logical product, logical sum, exclusive OR), data format conversion (integer, binary number) distributed to three secret computing devices, ie, It can be kept encrypted.
  • Non-Patent Document 2 when reading data from an array of size n in constant-stage multiplication, it is necessary to perform multiplication in a number proportional to n.
  • communication quantity ⁇ (nm) is required to write m values to the array of size n in constant-step communication.
  • An object of the present invention is, in view of the above-described point, to enable efficient data reading from an array without revealing the reading position by a constant stage multiplication with a smaller number of times than in the prior art.
  • the secret reading device receives the sequence of the secret text and the secret text of the reading position as an input, and outputs the element of the reading position of the sequence of the secret text.
  • the secret reading device is configured to generate a new secret sentence array whose element is the inner product of the vector representing the reading position and the vector based on the secret sentence array. Iterates until it becomes 1 and outputs an array of a new ciphertext with 1 element as the element of the reading position.
  • the secret writing device receives the sequence of the secret text, the secret text of the write address and the secret text of the value to be written, and inputs the sequence of the secret text.
  • the secret writing device adds the value to an element of the writing address, and adds the inner product of a vector representing the writing address and a vector representing the writing value to the array of secret sentences.
  • the secret reading technique of the first aspect of the present invention it is possible to efficiently read data from the array without revealing the reading position by the constant stage multiplication with a smaller number of times than in the prior art.
  • the secret write technology of the second aspect of the present invention it is possible to efficiently write data to the array with a smaller amount of communication than in the conventional communication without revealing the write position by constant-stage communication.
  • FIG. 1 is a diagram illustrating the functional configuration of the secret reading device.
  • FIG. 2 is a diagram illustrating the processing procedure of the secret reading method.
  • FIG. 3 is a diagram illustrating a functional configuration of the secret writing device.
  • FIG. 4 is a diagram illustrating the processing procedure of the secret writing method.
  • a value in which a certain value a is concealed by encryption, secret sharing or the like is referred to as a confidential text of a, and is denoted as [a].
  • a is called the plaintext of [a].
  • [a] refers to a set of pieces of secret sharing that each secret computing device has.
  • the i-th element of the vector a (a 0 , a 1 ,...) Is referred to by a [i].
  • the number of elements of the vector a is written as
  • the secret reading device of the first embodiment receives the sequence of the secret text and the secret text of the reading position as an input, and outputs the element of the reading position of the sequence of the secret text. At this time, it is repeated to generate a new confidential sentence array having an inner product of the vector representing the reading position and the vector based on the confidential sentence array until the number of elements of the new confidential sentence array becomes 1.
  • the present invention is characterized in that an array of a new secret sentence having the number of elements of 1 is read and output as an element of a position.
  • the secret reading device 1 of the first embodiment includes an input unit 11, a vector creating unit 12, a compression calculating unit 13, and a reading unit 14 as illustrated in FIG.
  • the secret reading method of the first embodiment is realized by the secret reading device 1 performing the processing of each step illustrated in FIG. 2.
  • the secret reading device 1 is, for example, a special program configured by reading a special program into a known or dedicated computer having a central processing unit (CPU: Central Processing Unit), a main storage device (RAM: Random Access Memory), etc. Device.
  • the secret reading device 1 executes each process, for example, under the control of the central processing unit.
  • the data input to the secret reading device 1 and the data obtained by each process are stored, for example, in the main storage device, and the data stored in the main storage device is read out to the central processing unit as necessary. It is used for other processing.
  • At least a part of each processing unit of the secret reading device 1 may be configured by hardware such as an integrated circuit.
  • the input unit 11 outputs the array of secret sentences [a 0 ] and the secret sentence [x] to the vector creation unit 12.
  • step S12 the vector creating unit 12 receives the array of secret sentences [a 0 ] and the secret sentence [x] from the input unit 11, and creates k vectors of secret sentences [v j ].
  • k is an integer of 2 or more
  • j is an integer of 1 or more and k or less.
  • m 1 , m 2 ,..., M k are natural numbers that satisfy n ⁇ m 1 ⁇ m 2 ⁇ ⁇ ⁇ m k
  • x j is an integer defined by equation (1)
  • each secret text to be input is a share by (t, s) Shamir secret sharing
  • (t, s) Shamir secret sharing means that dispersive values obtained by dividing the input plaintext into s pieces are distributed and held in s secret calculation devices, and if any t shares are aligned It is secret sharing such that plaintext can be restored, and less than t shares can not obtain any information on plaintext.
  • t is an integer of 1 or more, and s ⁇ 2t-1.
  • step S13-1 the compression calculation unit 13 initializes j to 1.
  • step S13-2 the compression calculation unit 13 creates a vector [b j, i ] of n j secret sentences using the array [a j -1 ] of secret sentences.
  • the number n j of the vector [b j, i ] of the confidential text to be created differs depending on the value of j.
  • n j be an integer defined by equation (3)
  • i be an integer greater than or equal to 0 and less than n j
  • [b j, i ] ([a j-1 [m j i + 0 ]], [a j-1 [m j i + 1]], ..., [a j-1 [m j i + m j -1]]) ( However, ⁇ ⁇
  • when the [ As a j-1 [ ⁇ ]] 0), the vector [b j, j ] of the secret sentence is calculated.
  • step S13-3 the compression calculation unit 13 calculates the array [a j ] of the confidential text having the inner product of the vector [b j, j ] of the confidential text and the vector [v j ] of the confidential text as the i th element. Do.
  • step S13-4 the compression calculation unit 13 determines whether j + 1 is k or less (j + 1 ⁇ k), and increments j by j if j + 1 is k or less (jk j + 1), and the process returns to step S13-2. If j + 1 is larger than k (j + 1> k), an array [a k ] of secret sentences is output. At this time, the array of secret sentences [a k ] is an array having one element.
  • step S14 the reading unit 14 outputs the array [a k ] of the confidential text with the element number 1 as the confidential text [a 0 [x]] which is the x-th element of the array [a 0 ] of the confidential text .
  • the first embodiment takes advantage of the fact that (t, s) Shamir secret sharing can perform multiplication (inner product) up to k-1 stages in one multiplication and reads the i-th element with a size ⁇
  • the point is that it is represented by the inner product of k stages by the vector of (n 1 / k ).
  • the size of each vector is O (n 1 / k ) and the calculation of the k ⁇ 1th stage can be performed O (n 1 / k ) times, the total amount of communication is O (n 1 / k Can be suppressed.
  • the secret writing device receives the sequence of the secret text, the secret text of the write address and the secret text of the value to be written, and adds the value to the element of the write address of the sequence of the secret text. At this time, the inner product of the vector representing the write address and the vector representing the value to be written is added to the array of the confidential text.
  • the secret writing device 2 includes, as illustrated in FIG. 3, an input unit 21, an address resolving unit 22, a vector creating unit 23, and a writing unit 24.
  • the secret writing method of the second embodiment is realized by the secret writing device 2 performing the processing of each step illustrated in FIG. 4.
  • the secret writing device 2 is, for example, a special program configured by reading a special program into a known or dedicated computer having a central processing unit (CPU: Central Processing Unit), a main storage device (RAM: Random Access Memory), etc. Device.
  • the secret writing device 2 executes each process, for example, under the control of the central processing unit.
  • the data input to the secret writing device 2 and the data obtained by each process are stored, for example, in the main storage device, and the data stored in the main storage device is read out to the central processing unit as necessary. It is used for other processing.
  • At least a part of each processing unit of the secret writing device 2 may be configured by hardware such as an integrated circuit.
  • m is an integer of 2 or more
  • i is each integer of 0 or more and less than m.
  • the input unit 21 outputs the confidential text [x i ] of the write destination address and the confidential text [y i ] of the value to be written to the address resolution section 22.
  • the element of 1 be a vector of secret sentences of size n 1 where the other elements are 0, and the vector [q i ] of secret sentences is
  • n 1 and n 2 can be expressed by equation (4).
  • (t, s) Shamir secret sharing means that dispersive values obtained by dividing the input plaintext into s pieces are distributed and held in s secret calculation devices, and if any t shares are aligned It is secret sharing such that plaintext can be restored, and less than t shares can not obtain any information on plaintext.
  • t is an integer of 1 or more, and s ⁇ 2t-1.
  • step S23 the vector creating unit 23 sets j to an integer of 0 or more and less than n, selects an element from the vector [w i ] of the secret sentence, and generates a vector [u j ], [v j ] of the secret sentence Do.
  • i is an integer of 0 or more and less than m
  • j is an integer of 0 or more and less than n
  • ⁇ 1 and ⁇ 2 are formula (5).
  • step S24 the writing unit 24 sets j as an integer greater than or equal to 0 and less than n, and calculates the inner product of the secret statement vector [u j ] and the secret statement vector [v j ] as j of the secret statement array [a]. It adds to the secrecy sentence [a [j]] which is the second element.
  • the value to be written is expressed by the inner product of two vectors so that the value to be added to each address of the write destination can be calculated by the inner product of vectors of size m. is there. Since the inner product can be calculated by communication for one multiplication, the total amount of communication can be suppressed to O (n + m ⁇ n).
  • the program describing the processing content can be recorded in a computer readable recording medium.
  • a computer readable recording medium any medium such as a magnetic recording device, an optical disc, a magneto-optical recording medium, a semiconductor memory, etc. may be used.
  • this program is carried out, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD, a CD-ROM, etc. in which the program is recorded.
  • this program may be stored in a storage device of a server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first temporarily stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. Then, at the time of execution of the process, this computer reads the program stored in its own storage device and executes the process according to the read program. Further, as another execution form of this program, the computer may read the program directly from the portable recording medium and execute processing according to the program, and further, the program is transferred from the server computer to this computer Each time, processing according to the received program may be executed sequentially.
  • ASP Application Service Provider
  • the program in the present embodiment includes information provided for processing by a computer that conforms to the program (such as data that is not a direct command to the computer but has a property that defines the processing of the computer).
  • the present apparatus is configured by executing a predetermined program on a computer, at least a part of the processing contents may be realized as hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

読み込み位置を明かすことなく配列からのデータ読み込みを効率よく行う。秘密読み込み装置1は、秘匿文の配列と読み込み位置の秘匿文とを入力とし、秘匿文の配列の読み込み位置の要素を出力する。ベクトル作成部(12)は、読み込み位置を表現するベクトルを作成する。圧縮計算部(13)は、秘匿文の配列に基づくベクトルと読み込み位置を表現するベクトルとの内積を要素とする新たな秘匿文の配列を繰り返し生成する。読み込み部(14)は、要素数が1の新たな秘匿文の配列を秘匿文の配列の読み込み位置の要素として出力する。

Description

秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
 この発明は、暗号応用技術に関するものであり、特にアクセスした位置を明かすことなく配列に対するデータの読み込みや書き込みを行う技術に関する。
 暗号化された数値を復元することなく特定の演算結果を得る方法として、秘密計算と呼ばれる方法がある(例えば、非特許文献1参照)。非特許文献1に記載された方法では、3つの秘密計算装置に数値の断片を分散させるという暗号化を行い、3つの秘密計算装置が協調計算を行うことにより、数値を復元することなく、加減算、定数加算、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。
 読み込み位置iを明かすことなく、配列からi番目のデータを読み込む場合、すべての要素に対してその位置と読み込み位置iとが一致するか否かを判定して、一致しない場合にはその位置の値を0に置き換え、すべての要素の値を足し合わせることで、i番目のデータを得ることがよく行われる(例えば、非特許文献2参照)。
 書き込み位置iを明かすことなく、配列のi番目のデータに値dを書き込む場合、配列のサイズnと同じ大きさの新しい配列を用意し、i番目の要素にのみdを、他の要素には0を設定し、新しい配列を書き込み先の配列に加算することがよく行われる(例えば、非特許文献2参照)。
千田浩司、濱田浩気、五十嵐大、高橋克巳、"軽量検証可能3パーティ秘匿関数計算の再考"、CSS、2010年 Marcel Keller and Peter Scholl, "Efficient, oblivious data structures for MPC", Advances in Cryptology - ASIACRYPT 2014, Vol. 8874 of Lecture Notes in Computer Science, pp. 506-525, 2014.
 しかしながら、非特許文献2に記載された従来技術は、定数段の乗算で大きさnの配列からのデータ読み込みを行う場合に、nに比例した回数の乗算が必要であった。また、非特許文献2に記載された従来技術は、定数段の通信でm個の値を大きさnの配列へ書き込むのに通信量Ω(nm)が必要であった。
 この発明の目的は、上記のような点に鑑みて、定数段の乗算で従来よりも小さい回数で読み込み位置を明かすことなく配列からのデータ読み込みを効率よく行うことを可能とすることである。また、定数段の通信で従来よりも少ない通信量で書き込み位置を明かすことなく配列へのデータ書き込みを効率よく行うことを可能とすることである。
 上記の課題を解決するために、この発明の第一の態様の秘密読み込み装置は、秘匿文の配列と読み込み位置の秘匿文とを入力とし、当該秘匿文の配列の当該読み込み位置の要素を出力する秘密読み込み装置であって、読み込み位置を表現するベクトルと秘匿文の配列に基づくベクトルとの内積を要素とする新たな秘匿文の配列を生成することを新たな秘匿文の配列の要素数が1となるまで繰り返し、要素数が1の新たな秘匿文の配列を読み込み位置の要素として出力する。
 上記の課題を解決するために、この発明の第二の態様の秘密書き込み装置は、秘匿文の配列と書き込み番地の秘匿文と書き込む値の秘匿文とを入力とし、当該秘匿文の配列の当該書き込み番地の要素に当該値を加算する秘密書き込み装置であって、書き込み番地を表現するベクトルと書き込む値を表現するベクトルとの内積を秘匿文の配列に加算する。
 この発明の第一の態様の秘密読み込み技術によれば、定数段の乗算で従来よりも小さい回数で読み込み位置を明かすことなく配列からのデータ読み込みを効率よく行うことが可能となる。この発明の第二の態様の秘密書き込み技術によれば、定数段の通信で従来よりも少ない通信量で書き込み位置を明かすことなく配列へのデータ書き込みを効率よく行うことが可能となる。
図1は、秘密読み込み装置の機能構成を例示する図である。 図2は、秘密読み込み方法の処理手続きを例示する図である。 図3は、秘密書き込み装置の機能構成を例示する図である。 図4は、秘密書き込み方法の処理手続きを例示する図である。
 実施形態の説明に先立ち、この明細書における表記方法および用語の定義について説明する。
 <表記方法>
 ある値aを暗号化や秘密分散などにより秘匿化した値をaの秘匿文と呼び、[a]と表記する。また、aを[a]の平文と呼ぶ。秘匿化が秘密分散である場合は、[a]により各秘密計算装置が持つ秘密分散の断片の集合を参照する。ベクトルa=(a0, a1, …)のi番目の要素をa[i]により参照する。ベクトルaの要素の数を|a|と表記する。
Figure JPOXMLDOC01-appb-M000009
は床関数であり、実数x以下の最大の整数を表す。
Figure JPOXMLDOC01-appb-M000010
は天井関数であり、実数x以上の最小の整数を表す。
 <加算、減算、乗算>
 秘匿文に対する加算、減算、乗算の各演算は、2つの値a, bの秘匿文[a], [b]を入力とし、それぞれa+b, a-b, abの計算結果c1, c2, c3の秘匿文[c1], [c2], [c3]を計算する。これらの演算の実行をそれぞれ次式のように記述する。
Figure JPOXMLDOC01-appb-M000011
 誤解を招く恐れのない場合は、Add([a], [b]), Sub([a], [b]), Mul([a], [b])をそれぞれ[a]+[b], [a]-[b], [a][b]と略記する。
 <等号判定>
 2つの値a, bの秘匿文[a], [b]を入力とし、a=bならばc=1、a≠bならばc=0となる秘匿文[c]を計算する処理を次式のように記述する。
Figure JPOXMLDOC01-appb-M000012
 以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 <第一実施形態>
 第一実施形態の秘密読み込み装置は、秘匿文の配列と読み込み位置の秘匿文とを入力とし、当該秘匿文の配列の当該読み込み位置の要素を出力する。この際、読み込み位置を表現するベクトルと秘匿文の配列に基づくベクトルとの内積を要素とする新たな秘匿文の配列を生成することを新たな秘匿文の配列の要素数が1となるまで繰り返し、要素数が1の新たな秘匿文の配列を読み込み位置の要素として出力することを特徴とする。
 第一実施形態の秘密読み込み装置1は、図1に例示するように、入力部11、ベクトル作成部12、圧縮計算部13、および読み込み部14を含む。この秘密読み込み装置1が、図2に例示する各ステップの処理を行うことにより第一実施形態の秘密読み込み方法が実現される。
 秘密読み込み装置1は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密読み込み装置1は、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密読み込み装置1に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密読み込み装置1の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
 以下、図2を参照して、第一実施形態の秘密読み込み装置1が実行する秘密読み込み方法について説明する。
 ステップS11において、入力部11は、大きさnの秘匿文の配列[a0]=([a0[0]], [a0[1]], …, [a0[n-1]])と、読み込み位置xの秘匿文[x]とを入力として受け取る。入力部11は、秘匿文の配列[a0]と秘匿文[x]とをベクトル作成部12へ出力する。
 ステップS12において、ベクトル作成部12は、入力部11から秘匿文の配列[a0]と秘匿文[x]とを受け取り、k個の秘匿文のベクトル[vj]を作成する。ただし、kは2以上の整数であり、jは1以上k以下の各整数である。具体的には、m1, m2, …, mkをn≦m1×m2×…×mkを満たす自然数とし、各整数jについて、xjを式(1)で定義される整数とし、(xjmod mj)番目の要素が1であり、他の要素が0である、大きさmjの秘匿文のベクトル[vj]を作成する。
Figure JPOXMLDOC01-appb-M000013
 特に、入力される各秘匿文が、(t, s)Shamir秘密分散によるシェアであれば、k, mi(i=1, 2, …, k)を式(2)とすることができる。なお、(t, s)Shamir秘密分散とは、入力された平文をs個に分割した分散値をs個の秘密計算装置に分散して保持しておき、任意のt個のシェアが揃えば平文を復元でき、t個未満のシェアからは平文に関する一切の情報を得られないような秘密分散である。このとき、tは1以上の整数であり、s≧2t-1である。
Figure JPOXMLDOC01-appb-M000014
 ステップS13-1において、圧縮計算部13は、jを1に初期化する。
 ステップS13-2において、圧縮計算部13は、秘匿文の配列[aj-1]を用いてnj個の秘匿文のベクトル[bj,i]を作成する。作成する秘匿文のベクトル[bj,i]の数njは、jの値により異なる。具体的には、njを式(3)で定義される整数とし、iを0以上nj未満の各整数とし、[bj,i]=([aj-1[mji+0]], [aj-1[mji+1]], …, [aj-1[mji+mj-1]])(ただし、λ≧|aj-1|のとき[aj-1[λ]]=0)として、秘匿文のベクトル[bj,j]を計算する。
Figure JPOXMLDOC01-appb-M000015
 ステップS13-3において、圧縮計算部13は、秘匿文のベクトル[bj,j]と秘匿文のベクトル[vj]との内積を第i要素とする秘匿文の配列[aj]を計算する。
 ステップS13-4において、圧縮計算部13は、j+1がk以下(j+1≦k)であるか否かを判定し、j+1がk以下であれば、jをインクリメント(j←j+1)してステップS13-2へ処理を戻し、j+1がkより大きければ(j+1>k)、秘匿文の配列[ak]を出力する。なお、このとき、秘匿文の配列[ak]は要素数が1の配列となっている。
 ステップS14において、読み込み部14は、要素数が1の秘匿文の配列[ak]を秘匿文の配列[a0]のx番目の要素である秘匿文[a0[x]]として出力する。
 第一実施形態は、(t, s)Shamir秘密分散では、k-1段までの乗算(内積)を乗算1回分の通信で行うことができることを利用し、第i要素の読み込みを大きさΘ(n1/k)のベクトルによるk段の内積で表現したことがポイントである。各ベクトルの大きさをO(n1/k)とし、k-1段目の計算がO(n1/k)回で済むようにしたことで、全体の通信量をO(n1/k)に抑えることができる。
 <第二実施形態>
 第二実施形態の秘密書き込み装置は、秘匿文の配列と書き込み番地の秘匿文と書き込む値の秘匿文とを入力とし、当該秘匿文の配列の当該書き込み番地の要素に当該値を加算する。この際、書き込み番地を表現するベクトルと書き込む値を表現するベクトルとの内積を秘匿文の配列に加算することを特徴とする。
 第二実施形態の秘密書き込み装置2は、図3に例示するように、入力部21、番地分解部22、ベクトル作成部23、および書き込み部24を含む。この秘密書き込み装置2が、図4に例示する各ステップの処理を行うことにより第二実施形態の秘密書き込み方法が実現される。
 秘密書き込み装置2は、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密書き込み装置2は、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密書き込み装置2に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密書き込み装置2の各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
 以下、図4を参照して、第二実施形態の秘密書き込み装置2が実行する秘密書き込み方法について説明する。
 ステップS21において、入力部21は、大きさnの秘匿文の配列[a]=([a[0]], [a[1]], …, [a[n-1]])と、m個の書き込み先番地の秘匿文[xi]と、m個の書き込む値の秘匿文[yi]とを入力として受け取る。ただし、mは2以上の整数であり、iは0以上m未満の各整数である。入力部21は、書き込み先番地の秘匿文[xi]と書き込む値の秘匿文[yi]とを番地分解部22へ出力する。
 ステップS22において、番地分解部22は、入力部21から書き込み先番地の秘匿文[xi]と書き込む値の秘匿文[yi]とを受け取り、各値yiを書き込み先番地xiに書き込むことを表現する秘匿文のベクトル[wi]を作成する。具体的には、n1, n2をn1n2≧nを満たす自然数とし、pi1]qi2]が、n2λ12=xiのとき[yi]となり、他のときは0となる秘匿文のベクトル[pi], [qi]を作成し、その秘匿文のベクトル[pi], [qi]を結合して、秘匿文のベクトル[wi]=[pi]||[qi]を生成する。このとき、秘匿文のベクトル[pi]は、
Figure JPOXMLDOC01-appb-M000016
の要素が1であり、他の要素が0である大きさn1の秘匿文のベクトルとし、秘匿文のベクトル[qi]は、
Figure JPOXMLDOC01-appb-M000017
の要素が[yi]であり、他の要素が0である大きさn2の秘匿文のベクトルとしてもよい。
 特に、入力される各秘匿文が、(t, s)Shamir秘密分散によるシェアであれば、n1, n2は、式(4)とすることができる。なお、(t, s)Shamir秘密分散とは、入力された平文をs個に分割した分散値をs個の秘密計算装置に分散して保持しておき、任意のt個のシェアが揃えば平文を復元でき、t個未満のシェアからは平文に関する一切の情報を得られないような秘密分散である。このとき、tは1以上の整数であり、s≧2t-1である。
Figure JPOXMLDOC01-appb-M000018
 ステップS23において、ベクトル作成部23は、jを0以上n未満の各整数とし、秘匿文のベクトル[wi]から要素を選択して秘匿文のベクトル[uj], [vj]を生成する。具体的には、iを0以上m未満の各整数とし、jを0以上n未満の各整数とし、λ1, λ2を式(5)とし、
Figure JPOXMLDOC01-appb-M000019
式(6)のようにして秘匿文のベクトル[uj], [vj]を生成する。
Figure JPOXMLDOC01-appb-M000020
 ステップS24において、書き込み部24は、jを0以上n未満の各整数とし、秘匿文のベクトル[uj]と秘匿文のベクトル[vj]との内積を秘匿文の配列[a]のj番目の要素である秘匿文[a[j]]に加算する。
 第二実施形態は、書き込む値をそれぞれ2個のベクトルの内積で表現することで、書き込み先の各番地に加算する値を大きさmのベクトル同士の内積により計算できるようにしたことがポイントである。内積は乗算1回分の通信で計算できるため、全体の通信量はO(n+m√n)に抑えることができる。
 以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
 [プログラム、記録媒体]
 上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (13)

  1.  秘匿文の配列と読み込み位置の秘匿文とを入力とし、当該秘匿文の配列の当該読み込み位置の要素を出力する秘密読み込み装置であって、
     上記読み込み位置を表現するベクトルと上記秘匿文の配列に基づくベクトルとの内積を要素とする新たな秘匿文の配列を生成することを上記新たな秘匿文の配列の要素数が1となるまで繰り返し、要素数が1の上記新たな秘匿文の配列を上記読み込み位置の要素として出力する、
     秘密読み込み装置。
  2.  請求項1に記載の秘密読み込み装置であって、
     n, kを2以上の整数とし、jを1以上k以下の各整数とし、
     上記秘密読み込み装置は、大きさnの秘匿文の配列[a0]=([a0[0]], [a0[1]], …,[a0[n-1]])と読み込み位置xの秘匿文[x]とを入力とし、秘匿文の配列[a0]のx番目の要素である秘匿文[a0[x]]を出力するものであり、
     各整数jについて秘匿文[x]を用いて秘匿文のベクトル[vj]を作成するベクトル作成部と、
     各整数jについて秘匿文の配列[aj-1]と秘匿文のベクトル[vj]とを用いて秘匿文の配列[aj]を作成する圧縮計算部と、
     要素数が1の秘匿文の配列[ak]を秘匿文の配列[a0]のx番目の要素である秘匿文[a0[x]]として出力する読み込み部と、
     を含む秘密読み込み装置。
  3.  請求項2に記載の秘密読み込み装置であって、
     m1, m2, …, mkをn≦m1×m2×…×mkを満たす自然数とし、
     njを次式で定義される整数とし、iを0以上nj未満の各整数とし、
    Figure JPOXMLDOC01-appb-M000001

     上記圧縮計算部は、各整数iについて秘匿文の配列[aj-1]を用いて作成した秘匿文のベクトル[bj,i]と、上記秘匿文のベクトル[vj]との内積を第i要素とする上記秘匿文の配列[aj]を作成するものである、
     秘密読み込み装置。
  4.  請求項3に記載の秘密読み込み装置であって、
     上記ベクトル作成部は、各整数jについて、xjを次式で定義される整数とし、
    Figure JPOXMLDOC01-appb-M000002

    第xjmod mj番目の要素が1であり、他の要素が0である大きさmjの上記秘匿文のベクトル[vj]を作成するものであり、
     上記圧縮計算部は、各整数iについて、[bj,i]=([aj-1[mji+0]], [aj-1[mji+1]], …, [aj-1[mji+mj-1]])、かつ、λ≧|aj-1|のとき[aj-1[λ]]=0となる上記秘匿文のベクトル[bj,i]を作成するものである、
     秘密読み込み装置。
  5.  請求項4に記載の秘密読み込み装置であって、
     上記秘匿文の配列[a0]および上記秘匿文[x]は、tを1以上の整数とし、s≧2t-1とし、平文をs個に分割したシェアのうち、任意のt個のシェアが揃えば平文を復元でき、t個未満のシェアからは平文に関する一切の情報を得られない秘密分散により秘匿化したものであり、
     k, mi(i=1, 2, …, k)は、次式で定義されるものである、
    Figure JPOXMLDOC01-appb-M000003

     秘密読み込み装置。
  6.  秘匿文の配列と読み込み位置の秘匿文とを入力とし、当該秘匿文の配列の当該読み込み位置の要素を出力する秘密読み込み装置が実行する秘密読み込み方法であって、
     上記秘密読み込み装置が、上記読み込み位置を表現するベクトルと上記秘匿文の配列に基づくベクトルとの内積を要素とする新たな秘匿文の配列を生成することを上記新たな秘匿文の配列の要素数が1となるまで繰り返し、要素数が1の上記新たな秘匿文の配列を上記読み込み位置の要素として出力する、
     秘密読み込み方法。
  7.  秘匿文の配列と書き込み番地の秘匿文と書き込む値の秘匿文とを入力とし、当該秘匿文の配列の当該書き込み番地の要素に当該値を加算する秘密書き込み装置であって、
     上記書き込み番地を表現するベクトルと上記書き込む値を表現するベクトルとの内積を上記秘匿文の配列に加算する、
     秘密書き込み装置。
  8.  請求項7に記載の秘密書き込み装置であって、
     n, mを2以上の整数とし、iを0以上m未満の各整数とし、jを0以上n未満の各整数とし、
     上記秘密書き込み装置は、大きさnの秘匿文の配列[a]=([a[0]], [a[1]], …,[a[n-1]])と書き込み番地xiの秘匿文[xi]と書き込む値yiの秘匿文[yi]とを入力とし、各整数iについて秘匿文の配列[a]のxi番目の要素である秘匿文[a[xi]]に値yiを加算するものであり、
     各整数iについて値yiの書き込み先番地xiを表現する秘匿文のベクトル[wi]を作成する番地分解部と、
     各整数jについて秘匿文のベクトル[wi]から要素を選択して秘匿文のベクトル[uj], [vj]を作成するベクトル作成部と、
     各整数jについて秘匿文のベクトル[uj]と秘匿文のベクトル[vj]との内積を秘匿文の配列[a]のj番目の要素である秘匿文[a[j]]に加算する書き込み部と、
     を含む秘密書き込み装置。
  9.  請求項8に記載の秘密書き込み装置であって、
     上記番地分解部は、n1, n2をn1n2≧nを満たす自然数とし、pi1]qi2]がn2λ12=xiのとき[yi]となり、他のときは0となる秘匿文のベクトル[pi], [qi]を結合して上記秘匿文のベクトル[wi]を作成するものであり、
     上記ベクトル作成部は、iを0以上m未満の各整数とし、jを0以上n未満の各整数とし、λ1, λ2を次式とし、
    Figure JPOXMLDOC01-appb-M000004

    次式のようにして上記秘匿文のベクトル[uj], [vj]を作成するものである、
    Figure JPOXMLDOC01-appb-M000005

     秘密書き込み装置。
  10.  請求項9に記載の秘密書き込み装置であって、
     上記秘匿文のベクトル[pi]は、
    Figure JPOXMLDOC01-appb-M000006

    の要素が1であり、他の要素が0である大きさn1の秘匿文のベクトルであり、
     上記秘匿文のベクトル[qi]は、
    Figure JPOXMLDOC01-appb-M000007

    の要素が[yi]であり、他の要素が0である大きさn2の秘匿文のベクトルである、
     秘密書き込み装置。
  11.  請求項9または10に記載の秘密書き込み装置であって、
     上記秘匿文の配列[a]と上記秘匿文[xi]と上記秘匿文[yi]とは、tを1以上の整数とし、s≧2t-1とし、平文をs個に分割したシェアのうち、任意のt個のシェアが揃えば平文を復元でき、t個未満のシェアからは平文に関する一切の情報を得られない秘密分散により秘匿化したものであり、
     n1, n2は、次式で定義されるものである、
    Figure JPOXMLDOC01-appb-M000008

     秘密書き込み装置。
  12.  秘匿文の配列と書き込み番地の秘匿文と書き込む値の秘匿文とを入力とし、当該秘匿文の配列の当該書き込み番地の要素に当該値を加算する秘密書き込み装置が実行する秘密書き込み方法であって、
     上記秘密書き込み装置が、上記書き込み番地を表現するベクトルと上記書き込む値を表現するベクトルとの内積を上記秘匿文の配列に加算する、
     秘密書き込み方法。
  13.  請求項1から5のいずれかに記載の秘密読み込み装置または請求項7から11のいずれかに記載の秘密書き込み装置としてコンピュータを機能させるためのプログラム。
PCT/JP2018/033595 2017-09-21 2018-09-11 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム WO2019059042A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
AU2018338249A AU2018338249B2 (en) 2017-09-21 2018-09-11 Secure reading apparatus, secure writing apparatus, method thereof, and program
US16/648,436 US11514192B2 (en) 2017-09-21 2018-09-11 Secure reading apparatus, secure writing apparatus, method thereof, and program for reading and writing data in a sequence without revealing an access position
JP2019543567A JP6825119B2 (ja) 2017-09-21 2018-09-11 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
EP18859584.7A EP3686870B1 (en) 2017-09-21 2018-09-11 Secure reading apparatus, secure writing apparatus, method thereof, and program
CN201880060802.8A CN111133495B (zh) 2017-09-21 2018-09-11 秘密读取装置、秘密写入装置、它们的方法以及记录介质

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2017-181262 2017-09-21
JP2017181263 2017-09-21
JP2017-181263 2017-09-21
JP2017181262 2017-09-21

Publications (1)

Publication Number Publication Date
WO2019059042A1 true WO2019059042A1 (ja) 2019-03-28

Family

ID=65811173

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/033595 WO2019059042A1 (ja) 2017-09-21 2018-09-11 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム

Country Status (6)

Country Link
US (1) US11514192B2 (ja)
EP (1) EP3686870B1 (ja)
JP (1) JP6825119B2 (ja)
CN (1) CN111133495B (ja)
AU (1) AU2018338249B2 (ja)
WO (1) WO2019059042A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023233569A1 (ja) * 2022-06-01 2023-12-07 日本電信電話株式会社 秘密検索システム、秘密検索装置、秘密検索方法、プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140007250A1 (en) * 2012-06-15 2014-01-02 The Regents Of The University Of California Concealing access patterns to electronic data storage for privacy
WO2016019294A1 (en) * 2014-07-31 2016-02-04 Cornell University Oblivious parallel random access machine system and methods

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011150693A (ja) * 2009-12-22 2011-08-04 Tani Electronics Corp 情報管理システム、情報管理の方法および装置、暗号化の方法およびプログラム
WO2012046692A1 (ja) * 2010-10-06 2012-04-12 日本電信電話株式会社 秘密分散システム、秘密分散装置、秘密分散方法、秘密ソート方法、秘密分散プログラム
US9064123B2 (en) * 2011-03-10 2015-06-23 Nippon Telegraph And Telephone Corporation Secure product-sum combination system, computing apparatus, secure product-sum combination method and program therefor
JP2014048548A (ja) * 2012-09-02 2014-03-17 Hiroshima City Univ 秘匿計算システム、データ処理装置、秘匿計算方法、秘匿計算プログラム、および、記録媒体
CN105981088B (zh) * 2014-01-28 2019-05-03 日本电信电话株式会社 秘密计算方法、秘密计算系统、注册者终端以及记录介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140007250A1 (en) * 2012-06-15 2014-01-02 The Regents Of The University Of California Concealing access patterns to electronic data storage for privacy
WO2016019294A1 (en) * 2014-07-31 2016-02-04 Cornell University Oblivious parallel random access machine system and methods

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
BOYLE, E. ET AL.: "Large-Scale Secure Computation", CRYPTOLOGY EPRINT ARCHIVE, REPORT 2014/404, 2 June 2014 (2014-06-02), pages 1 - 74, XP061016197, Retrieved from the Internet <URL:https://eprint.iacr.org/2014/404> [retrieved on 20181130] *
KELLER, M. ET AL.: "Efficient, Oblivious Data Structures for MPC", INTERNATIONAL ASSOCIATION FOR CRYPTOLOGY RESEARCH, CRYPTOLOGY EPRINT ARCHIVE, REPORT 2014/137, 15 August 2014 (2014-08-15), pages 1 - 31, XP047494286, Retrieved from the Internet <URL:https://eprint.iacr.org/2014/137> [retrieved on 20181130] *
KOJI CHIDAKOKI HAMADADAI IKARASHIKATSUMI TAKAHASHI: "Reconsideration of Lightweight Verifiable Three-party Secure Function Evaluation", CSS, 2010
MARCEL KELLERPETER SCHOLL: "Efficient, oblivious data structures for MPC", ADVANCES IN CRYPTOLOGY - ASIACRYPT 2014, VOL. 8874 OF LECTURE NOTES IN COMPUTER SCIENCE, vol. 8874, 2014, pages 506 - 525, XP047494286, DOI: 10.1007/978-3-662-45608-8_27
See also references of EP3686870A4
TOFT, T.: "Secure Datastructures based on Multiparty Computation", CRYPTOLOGY EPRINT ARCHIVE, REPORT 2011/081, 20 February 2011 (2011-02-20), pages 1 - 15, XP061004690, Retrieved from the Internet <URL:https://eprint. iacr.org/2011/081> [retrieved on 20181130] *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023233569A1 (ja) * 2022-06-01 2023-12-07 日本電信電話株式会社 秘密検索システム、秘密検索装置、秘密検索方法、プログラム

Also Published As

Publication number Publication date
EP3686870B1 (en) 2022-07-27
US20200218833A1 (en) 2020-07-09
EP3686870A1 (en) 2020-07-29
CN111133495B (zh) 2023-05-05
US11514192B2 (en) 2022-11-29
JP6825119B2 (ja) 2021-02-03
AU2018338249A1 (en) 2020-03-19
JPWO2019059042A1 (ja) 2020-10-01
AU2018338249B2 (en) 2020-11-26
CN111133495A (zh) 2020-05-08
EP3686870A4 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
US11164484B2 (en) Secure computation system, secure computation device, secure computation method, and program
CN111512592A (zh) 转换密钥生成装置、密文转换装置、隐匿信息处理系统、转换密钥生成方法、转换密钥生成程序、密文转换方法和密文转换程序
WO2019102624A1 (ja) 準同型推論装置、準同型推論方法、準同型推論プログラム及び秘匿情報処理システム
JP6583970B2 (ja) 秘密乱数合成装置、秘密乱数合成方法、およびプログラム
US11294633B2 (en) Secure computation system, secure computation device, secure computation method, and program
JP6534778B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7067632B2 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
KR20200047002A (ko) 동형 암호를 이용한 암호문 비교 방법 및 이를 수행하기 위한 장치
JP6585846B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
WO2019059042A1 (ja) 秘密読み込み装置、秘密書き込み装置、それらの方法、およびプログラム
WO2015107780A1 (ja) 要素複製装置、要素複製方法、およびプログラム
CN111108540B (zh) 秘密读写装置、秘密读写方法、以及记录介质
Lee et al. Model Parameter Estimation and Inference on Encrypted Domain: Application to Noise Reduction in Encrypted Images
WO2020250269A1 (ja) 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム
Iezzi et al. Towards Real-World Private Computations with Homomorphic Encryption: Current Solutions and Open Challenges

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18859584

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019543567

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018338249

Country of ref document: AU

Date of ref document: 20180911

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2018859584

Country of ref document: EP

Effective date: 20200421