WO2021149098A1 - 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム - Google Patents

秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム Download PDF

Info

Publication number
WO2021149098A1
WO2021149098A1 PCT/JP2020/001674 JP2020001674W WO2021149098A1 WO 2021149098 A1 WO2021149098 A1 WO 2021149098A1 JP 2020001674 W JP2020001674 W JP 2020001674W WO 2021149098 A1 WO2021149098 A1 WO 2021149098A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
secret
variance
variance value
bit
Prior art date
Application number
PCT/JP2020/001674
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 US17/789,787 priority Critical patent/US20230044126A1/en
Priority to PCT/JP2020/001674 priority patent/WO2021149098A1/ja
Priority to JP2021572120A priority patent/JP7331951B2/ja
Priority to CN202080093618.0A priority patent/CN114981865A/zh
Priority to EP20915351.9A priority patent/EP4095827A4/en
Priority to AU2020424575A priority patent/AU2020424575B2/en
Publication of WO2021149098A1 publication Critical patent/WO2021149098A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • H04L9/16Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Definitions

  • the present invention relates to a technique for calculating a square root in secret calculation.
  • Secret calculation is a cryptographic technology that calculates an arbitrary function while keeping data secret. Taking advantage of this feature, it is expected to be a form of data utilization that does not leak data to both system operators and data users.
  • secret calculation There are several methods for secret calculation, and it is known that the one that uses secret sharing as a component has a small data processing unit and can perform high-speed processing.
  • Secret sharing is a method of converting confidential information into several fragments called shares. For example, n shares can be generated from secret information, and secrets can be restored from k or more shares, but secret information is not leaked from shares less than k (k, n). A secret called the threshold method. There is dispersion. Shamir secret sharing, duplicate secret sharing, and the like are known as specific methods for configuring secret sharing. In the present specification, one fragment of the value distributed by secret sharing is referred to as "share”. Also, the entire set of all shares is called the "variance value”.
  • Non-Patent Document 1 discloses a method of calculating a square root by using the reciprocal of the square root in secret calculation.
  • various function calculations including the square root may require processing to normalize the numerical value so that it falls within a certain range.
  • secret calculation the numerical value is normalized by moving the leftmost bit (msb: most significant bit).
  • Non-Patent Document 1 has a problem that the calculation cost is large because the reciprocal of the square root is obtained and then the multiplication is performed.
  • An object of the present invention is to provide a secret calculation technique capable of calculating a square root at high speed in view of the above technical problems.
  • the secret square root calculation system of the first aspect of the present invention includes a plurality of secret calculation devices, inputs the variance value [a] of the value a, and the variance value of the square root of the value a.
  • a secret square root calculation system that calculates [ ⁇ a], where ⁇ is the decimal position of the value a, ⁇ 'is the smallest integer greater than or equal to ⁇ / 2, and the secret calculator is the leftmost bit of the value a.
  • a public value multiplier that sets a public value multiplier r'that finds the variance value ⁇ r ⁇ of the division flag r that calculates the sum, and becomes ⁇ 2 when ⁇ is an odd number and 1 when ⁇ is an even number.
  • An inverse-normalized multiplier generator that generates the variance value [c'] of the inverse-normalized multiplier c', which is a combination of the setting unit and the sequence of variance values ⁇ y 0 ⁇ ,..., ⁇ y ⁇ '-1 ⁇ in forward order.
  • a normalized multiplier generator that generates the variance value [c] of the normalized multiplier c by bit-coupling the variance value columns ⁇ x 0 ⁇ ,..., ⁇ x ⁇ -1 ⁇ in reverse order, and the variance value [a].
  • the secret normalization system of the second aspect of the present invention includes a plurality of secret calculators and normalizes the variance value [a] of the value a in order to calculate the variance value [ ⁇ a] of the square root of the value a.
  • is the decimal position of the value a
  • ⁇ ' is the smallest integer greater than or equal to ⁇ / 2
  • the secret calculator has a flag string x 0 representing the leftmost bit of the value a.
  • the variance value ⁇ y i ⁇ of the bit y i By calculating the variance value ⁇ y i ⁇ of the bit y i , the variance value of the bit string y 0 ,..., y ⁇ '-1
  • the bit string generator that generates the columns ⁇ y 0 ⁇ ,..., ⁇ y ⁇ '-1 ⁇ , and the division that calculates the exclusive logical sum of all the variance values ⁇ x j ⁇ for each odd j that is greater than or equal to 0 and less than ⁇ .
  • a flag calculation unit that calculates the variance value ⁇ r ⁇ of the flag r, and a public value multiplier setting unit that sets the public value multiplier r'that becomes ⁇ 2 when ⁇ is an integer and 1 when ⁇ is an even number.
  • An inverse-normalized multiplier generator that generates the variance value [c'] of the inverse-normalized multiplier c', which is a bit-bonded sequence of variance values ⁇ y 0 ⁇ ,..., ⁇ y ⁇ '-1 ⁇ in forward order, and a variance value.
  • a normalized multiplier generator that generates the variance value [c] of the normalized multiplier c by bit-connecting the columns ⁇ x 0 ⁇ ,..., ⁇ x ⁇ -1 ⁇ in reverse order, and the variance value [a] and the variance value [ Includes a normalization part that calculates the variance value [b] multiplied by c].
  • the square root can be calculated at high speed in secret calculation.
  • FIG. 1 is a diagram illustrating a functional configuration of a secret square root calculation system.
  • FIG. 2 is a diagram illustrating the functional configuration of the secret calculation device.
  • FIG. 3 is a diagram illustrating the functional configuration of the square root calculation unit.
  • FIG. 4 is a diagram illustrating a processing procedure of the secret square root calculation method.
  • FIG. 5 is a diagram illustrating a processing procedure of the square root calculation unit.
  • FIG. 6 is a diagram illustrating a functional configuration of a computer.
  • [ ⁇ ] is the data that hides the numerical value.
  • distributed values such as Shamir secret sharing and duplicate secret sharing can be used.
  • a distribution value such as replication secret sharing on Z 2 can be used.
  • represents the decimal point position. It is assumed that the number of bits of the ring or field used in the secret calculation is about half of
  • the public decimal point position for an integer on the ring By setting the public decimal point position for an integer on the ring, it can be regarded as a fixed-point real number.
  • the fixed-point real number represented on the ring in this way is simply referred to as a real number.
  • An embodiment of the present invention is a secret square root calculation system and method in which the variance value [a] of the value a is input and the variance value [ ⁇ a] of the square root of the value a is calculated while keeping the value a concealed.
  • the outline of the square root protocol executed by the secret square root calculation system of the embodiment will be described below.
  • ⁇ a is directly calculated in order to calculate more efficiently.
  • the inverse operation of normalization after approximation is division. Therefore, in order to divide by ⁇ 2 e , the process is to multiply by ⁇ 2 ⁇ -e and divide by ⁇ 2 ⁇ .
  • the reduction of the decimal point position executed in steps 1 and 3 of Algorithm 1 can be efficiently performed by using, for example, the divisor public division disclosed in Non-Patent Document 1.
  • Simultaneous execution of public value multiplication and decimal point descent executed in step 5 of algorithm 1 can be efficiently performed by using, for example, the following algorithm.
  • Parameters L, R, a, b, c, d, f, g, H, i, j, k, l, m, n, o, p, q, ⁇ , ⁇ , ⁇ , ⁇ , ⁇ used in Algorithm 1 Is set according to the approximate function func.
  • each parameter may be set as shown in the following table, for example.
  • algorithm 3 The algorithm for calculating the square root in secret calculation using algorithm 1 is shown below.
  • algorithm 3 an algorithm for normalizing the input to be calculated for square root calculation
  • algorithm 4 an algorithm for calculating the square root using the algorithm
  • the generation of the flag string representing the leftmost bit executed in step 2 of the algorithm 3 can be efficiently performed by using, for example, the following algorithm.
  • ⁇ f ⁇ -1 ⁇ : ⁇ a ⁇ -1 ⁇ .
  • ⁇ f 0 ⁇ ,..., ⁇ f ⁇ -1 ⁇ is a bit string in which 01s are lined up with msb as the boundary, such as 0,0,0,1,1,1,..., 1.
  • ⁇ x ⁇ -1 ⁇ : ⁇ a ⁇ -1 ⁇ .
  • ⁇ x 0 ⁇ ,..., ⁇ x ⁇ -1 ⁇ is a bit string such as 0,0,0,1,0,0,..., 0 where only the msb position is 1.
  • the selective public multiplication executed in step 4 of the algorithm 4 can be efficiently performed by using, for example, the following algorithm.
  • the public value multiplication executed in step 1 of the algorithm 6 can be efficiently performed, for example, by combining the algorithm 2 and the following algorithm.
  • the quotient obtained in step 1 of algorithm 7 can be efficiently obtained by quotient transfer (see Reference 1).
  • the secret square root calculation system 100 of the embodiment is an information processing system that executes the above square root protocol.
  • the secret square root calculation system 100 includes N ( ⁇ 3) secret calculation devices 1 1 , ..., 1 N.
  • the secret computing devices 1 1 , ..., 1 N are connected to the communication network 9, respectively.
  • the communication network 9 is a circuit-switched or packet-switched communication network configured so that each connected device can communicate with each other.
  • the Internet LAN (Local Area Network), WAN (Wide Area Network). Etc. can be used. It should be noted that each device does not necessarily have to be able to communicate online via the communication network 9.
  • the secret calculation device 1 n included in the secret square root calculation system 100 of the embodiment is, for example, as shown in FIG. 2, a bit decomposition unit 11, a flag string generation unit 12, a bit string generation unit 13, a flag calculation unit 14, and a flag conversion.
  • a unit 15, a public value multiplier setting unit 16, an inverse normalized multiplier generation unit 17, a normalized multiplier generation unit 18, a normalization unit 19, a square root calculation unit 20, an inverse normalization unit 21, and a right shift unit 22 are provided.
  • the square root calculation unit 20 includes a parameter storage unit 200, a first product sum unit 201, a first addition unit 202, a second product sum unit 203, a second addition unit 204, and a third product sum.
  • a unit 205, a selective product calculation unit 206, and a third addition unit 207 are provided.
  • the calculation method is realized.
  • the secret computing device 1 n is configured by loading a special program into a known or dedicated computer having, for example, a central processing unit (CPU), a main storage device (RAM: Random Access Memory), or the like. It is a special device.
  • the secret calculation device 1 n executes each process under the control of the central processing unit, for example.
  • the data input to the secret computing device 1 n and the data obtained by each process are stored in, for example, the main storage device, and the data stored in the main storage device is read out to the central arithmetic processing unit as needed. It is used for other processing.
  • At least a part of each processing unit of the secret calculation device 1 n may be configured by hardware such as an integrated circuit.
  • Each storage unit included in the secret computing device 1 n is, for example, a main storage device such as RAM (Random Access Memory), an auxiliary storage device composed of a hard disk, an optical disk, or a semiconductor memory element such as a flash memory. Alternatively, it can be configured by middleware such as a relational database or a key value store.
  • a main storage device such as RAM (Random Access Memory)
  • auxiliary storage device composed of a hard disk, an optical disk, or a semiconductor memory element such as a flash memory.
  • middleware such as a relational database or a key value store.
  • step S11 the bit decomposition unit 11 of each secret calculation device 1 n bit-decomposes the variance value [a] of the value a input to the secret square root calculation system 100, so that the bit representation of the value a a 0 , ... , a A sequence of variance values of ⁇ -1 ⁇ a 0 ⁇ ,..., ⁇ a ⁇ -1 ⁇ is obtained.
  • the bit decomposition unit 11 outputs a sequence of dispersion values ⁇ a 0 ⁇ , ..., ⁇ a ⁇ -1 ⁇ to the flag sequence generation unit 12.
  • the flag string generation unit 12 of each secret computing device 1 n uses a sequence of distributed values ⁇ a 0 ⁇ , ..., ⁇ a ⁇ -1 ⁇ to represent a flag sequence x representing the leftmost bit of the value a. Generate a sequence of variance values of 0 ,..., x ⁇ -1 ⁇ x 0 ⁇ ,..., ⁇ x ⁇ -1 ⁇ .
  • the flag string representing the leftmost bit is, for example, a flag string in which only the position of the leftmost bit obtained by using the above algorithm 5 is 1.
  • the flag string generation unit 12 outputs a sequence of variance values ⁇ x 0 ⁇ , ..., ⁇ x ⁇ -1 ⁇ to the bit string generation unit 13, the flag calculation unit 14, and the normalized multiplier generation unit 18.
  • ⁇ ' is the smallest integer greater than or equal to ⁇ / 2.
  • the bit string generation unit 13 outputs a sequence of variance values ⁇ y 0 ⁇ , ..., ⁇ y ⁇ '-1 ⁇ to the inverse normalization multiplier generation unit 17.
  • step S14 the flag calculation unit 14 of the secure computing apparatus 1 n is the column of the dispersion value ⁇ x 0 ⁇ , ..., using ⁇ x ⁇ -1 ⁇ , whether the calculation result is divided by ⁇ 2 Calculate the distribution value ⁇ r ⁇ of the representative flag r (hereinafter, also referred to as "division flag"). Specifically, for each odd number j greater than or equal to 0 and less than ⁇ , the exclusive OR of all variance values ⁇ x j ⁇ is calculated. The flag calculation unit 14 outputs the variance value ⁇ r ⁇ to the flag conversion unit 15.
  • step S15 the flag converter 15 of the secure computing apparatus 1 n is, mod by p conversion, converts the variance value of the division flag r ⁇ r ⁇ in dispersion value [r].
  • the flag conversion unit 15 outputs the variance value [r] to the square root calculation unit 20.
  • Set r' (hereinafter also referred to as "public value multiplier").
  • the public value multiplier setting unit 16 outputs the public value multiplier r'to the square root calculation unit 20.
  • step S17 inverse normalization multiplier generation unit 17 of the secure computing apparatus 1 n is the column of the dispersion value ⁇ y 0 ⁇ , ..., by combining bits in forward order the ⁇ y ⁇ '-1 ⁇ , the normalization Generate the variance value [c'] of the multiplier c'(hereinafter, also referred to as "inverse normalized multiplier") to be multiplied by the calculation result in order to perform the inverse operation.
  • the inverse normalization multiplier generation unit 17 outputs the variance value [c'] to the inverse normalization unit 21.
  • step S18 the normalization multiplier generation unit 18 of each secret computing device 1 n is used to normalize the sequence of variance values ⁇ x 0 ⁇ ,..., ⁇ x ⁇ -1 ⁇ by bit-coupling them in reverse order. Generates the variance value [c] of the multiplier c (hereinafter also referred to as the "normalized multiplier") that multiplies the input.
  • the normalized multiplier generation unit 18 outputs the variance value [c] to the normalized unit 19.
  • step S19 the normalization unit 19 of each secret calculator 1 n normalizes the value a by multiplying the variance value [a] of the value a by the variance value [c] of the normalized multiplier c. Calculate the variance value [b] of b.
  • the normalization unit 19 outputs the variance value [b] to the square root calculation unit 20.
  • step S20 the square root calculation unit 20 of each secret computing device 1 n executes the algorithm 1 using a parameter that approximates the square root function with an eighth degree polynomial, so that the square root is obtained with respect to the variance value [b] of the value b.
  • the condition is set to the variance value [r] of the division flag r, and the options are r' ⁇ and (r'/ ⁇ 2) ⁇ , respectively, and the algorithm 6 is executed. Do it by doing.
  • the square root calculation unit 20 outputs the variance value [w] to the inverse normalization unit 21.
  • step S21 inverse normalization unit 21 of the secure computing apparatus 1 n is 'variance of [c' variance value of the calculation result w [w] and denormalization multiplier c] and multiplying.
  • the denormalization unit 21 outputs the multiplication result [w] [c'] to the right shift unit 22.
  • step S22 the right shift unit 22 of each secret calculation device 1 n shifts the multiplication result [w] [c'] to the right by ⁇ 'bit and outputs it as a variance value [ ⁇ a] of the square root of the value a.
  • the parameter storage unit 200 contains parameters a, b, c, d, f, g, H, i, j, k, l, m, n, o, p, q for approximating the square root function with an eighth degree polynomial. , ⁇ , ⁇ , ⁇ , ⁇ are stored. Each parameter is predetermined according to the function to be approximated, and when approximating the square root function, the values illustrated in Table 1 may be set.
  • the first sum-of-product unit 201 outputs [y'] to the first addition unit 202.
  • the first addition unit 202 outputs [y] to the second product sum unit 203.
  • the second sum-of-product unit 203 outputs [z'] to the second addition unit 204.
  • the second addition unit 204 outputs [z] to the third product sum unit 205.
  • the third sum-of-product unit 205 outputs [w'/ ⁇ ] to the selective product calculation unit 206.
  • the selective product calculation unit 206 outputs [w'] to the third addition unit 207.
  • the secret square root calculation system 100 of the embodiment is configured to perform both normalization (algorithm 3) and square root calculation (algorithm 4) for square root calculation.
  • the secret normalization system of the modified example is configured to execute only the part of the secret square root calculation system 100 that performs normalization (algorithm 3) for square root calculation. That is, the secret normalization system takes the variance value [a] of the value a as input, and the variance value [b] of the value b normalized to the value a to [1, 2) and the variance of the inverse normalized multiplier c'. The value [c'] and the variance value [r] of the division flag r are output.
  • the secret calculation device 1 n included in the secret normalization system of the modified example includes a bit decomposition unit 11, a flag string generation unit 12, a bit string generation unit 13, a flag calculation unit 14, a flag conversion unit 15, and an inverse normalization.
  • a normalized multiplier generation unit 17, a normalized multiplier generation unit 18, and a normalized multiplier 19 are provided.
  • the program that describes this processing content can be recorded on a computer-readable recording medium.
  • the computer-readable recording medium may be, for example, a magnetic recording device, an optical disk, a photomagnetic recording medium, a semiconductor memory, or the like.
  • the distribution of this program is carried out, for example, by selling, transferring, or renting a portable recording medium such as a DVD or CD-ROM on which the program is recorded.
  • the program may be stored in the storage device of the 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 stores, for example, a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. Then, when the process is executed, the 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, a computer may read the program directly from a 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, the processing according to the received program may be executed sequentially. In addition, the above processing is executed by a so-called ASP (Application Service Provider) type service that realizes the processing function only by the execution instruction and result acquisition without transferring the program from the server computer to this computer. May be.
  • the program in this embodiment includes information to be used for processing by a computer and equivalent to the program (data that is not a direct command to the computer but has a property of defining the processing of the computer, etc.).
  • the present device is configured by executing a predetermined program on the computer, but at least a part of these processing contents may be realized by hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

秘密計算において平方根を高速に計算する。秘密平方根計算システム(100)は[a]を入力とし、[√a]を計算する。フラグ列生成部(12)はaの最左ビットを表す{x0}, …, {xλ-1}を生成する。ビット列生成部(13)は{yi}:={x2i} XOR {x2i+1}を計算して{y0}, …, {yλ'-1}を生成する。フラグ計算部(14)は各奇数jについてすべての{xj}の排他的論理和を計算した{r}を計算する。公開値乗数設定部(16)はλが奇数なら√2、偶数なら1となるr'を設定する。逆正規化乗数生成部(17)は{y0}, …, {yλ'-1}をビット結合した[c']を生成する。正規化乗数生成部(18)は{xλ-1}, …, {x0}をビット結合した[c]を生成する。正規化部(19)は[b]:=[a][c]を計算する。平方根計算部(20)はr=1なら[w]:=[√b]*(r'/√2)、r=0なら[w']:=[√b]*r'を計算する。逆正規化部(21)は[w][c']を計算し、λ'ビット右シフトする。

Description

秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
 本発明は、秘密計算において平方根を計算する技術に関する。
 秘密計算とは、データを秘匿したまま任意の関数を計算する暗号技術である。この特徴を活かして、システム運用者にもデータ利用者にもデータを漏らさないデータ利活用の形態が期待されている。秘密計算にはいくつかの方式が存在し、その中でも秘密分散を構成要素にするものは、データの処理単位が小さく、高速な処理が可能であることが知られている。
 秘密分散とは、秘密情報をシェアと呼ばれるいくつかの断片に変換する方法である。例えば、秘密の情報からn個のシェアを生成し、k個以上のシェアからは秘密が復元できるが、k個未満のシェアからは秘密の情報が漏れない(k, n)閾値法と呼ばれる秘密分散がある。秘密分散の具体的な構成方法は、Shamir秘密分散や複製秘密分散等が知られている。本明細書では、秘密分散により分散された値の1個の断片を「シェア」と呼ぶ。また、すべてのシェアの集合全体を「分散値」と呼ぶ。
 近年、秘密計算による高度な統計や機械学習の研究が盛んに行われている。しかしながら、これらの演算のほとんどは秘密計算の得意な加減乗算を超える、逆数、平方根、指数、対数等の計算を含んでいる。平方根の計算はコンピュータ等での基本的な演算の一つであり、様々な場面で利用されている。一般的に平方根の計算は平方根の逆数を経由して√x=x/√xとして計算した方が効率的なことが知られている。非特許文献1には、秘密計算において平方根の逆数を利用して平方根を計算する方法が開示されている。また、平方根を含む様々な関数計算では、数値がある範囲に収まるように正規化を行う処理が必要になることがある。秘密計算では、最左ビット(msb: most significant bit)の移動により数値の正規化を行う。
 しかしながら、非特許文献1に開示された方法は、平方根の逆数を求めてから乗算をするため、計算コストが大きい、という課題がある。
 本発明の目的は、上記のような技術的課題に鑑みて、平方根を高速に計算することができる秘密計算技術を提供することである。
 上記の課題を解決するために、本発明の第一の態様の秘密平方根計算システムは、複数の秘密計算装置を含み、値aの分散値[a]を入力とし、値aの平方根の分散値[√a]を計算する秘密平方根計算システムであって、λは値aの小数点位置であり、λ'はλ/2以上の最小の整数であり、秘密計算装置は、値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成するフラグ列生成部と、0以上λ'未満の各整数iについて、分散値{x2i}と分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を求めることで、ビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成するビット列生成部と、0以上λ未満の各奇数jについて、すべての分散値{xj}の排他的論理和を計算した除算フラグrの分散値{r}を求めるフラグ計算部と、λが奇数のときは√2となり、λが偶数のときは1となる公開値乗数r'を設定する公開値乗数設定部と、分散値の列{y0}, …, {yλ'-1}を正順にビット結合した逆正規化乗数c'の分散値[c']を生成する逆正規化乗数生成部と、分散値の列{x0}, …, {xλ-1}を逆順にビット結合した正規化乗数cの分散値[c]を生成する正規化乗数生成部と、分散値[a]と分散値[c]とを乗算した分散値[b]を計算する正規化部と、分散値[b]と分散値{r}と公開値乗数r'とを用いて、r=1のときは[√b]*(r'/√2)を計算し、r=0のときは[√b]*r'を計算した分散値[w']を計算する平方根計算部と、分散値[w']と分散値[c']との乗算結果をλ'ビット右シフトした分散値[√a]を計算する逆正規化部と、を含む。
 本発明の第二の態様の秘密正規化システムは、複数の秘密計算装置を含み、値aの平方根の分散値[√a]を計算するために、値aの分散値[a]を正規化する秘密正規化システムであって、λは値aの小数点位置であり、λ'はλ/2以上の最小の整数であり、秘密計算装置は、値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成するフラグ列生成部と、0以上λ'未満の各整数iについて、分散値{x2i}と分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を計算することで、ビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成するビット列生成部と、0以上λ未満の各奇数jについて、すべての分散値{xj}の排他的論理和を計算した除算フラグrの分散値{r}を計算するフラグ計算部と、λが奇数のときは√2となり、λが偶数のときは1となる公開値乗数r'を設定する公開値乗数設定部と、分散値の列{y0}, …, {yλ'-1}を正順にビット結合した逆正規化乗数c'の分散値[c']を生成する逆正規化乗数生成部と、分散値の列{x0}, …, {xλ-1}を逆順にビット結合した正規化乗数cの分散値[c]を生成する正規化乗数生成部と、分散値[a]と分散値[c]とを乗算した分散値[b]を計算する正規化部と、を含む。
 この発明によれば、秘密計算において平方根を高速に計算することができる。
図1は秘密平方根計算システムの機能構成を例示する図である。 図2は秘密計算装置の機能構成を例示する図である。 図3は平方根計算部の機能構成を例示する図である。 図4は秘密平方根計算方法の処理手順を例示する図である。 図5は平方根計算部の処理手順を例示する図である。 図6はコンピュータの機能構成を例示する図である。
 以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 本明細書では、以下の記法を用いる。
 [・]は数値・を秘匿したデータである。例えば、Shamir秘密分散、複製秘密分散等の分散値を用いることができる。
 {・}はビット・を秘匿したデータである。例えば、Z2上の複製秘密分散等の分散値を用いることができる。
 λは小数点位置を表す。秘密計算で用いる環または体のビット数|p|の半分程度を想定する。
 [a?b:c]はa=1ならばb、a=0ならばcを表す。
Figure JPOXMLDOC01-appb-M000001
はそれぞれ論理否定(NOT)、論理積(AND)、論理和(OR)、排他的論理和(XOR)を表す。
 環上の整数に公開の小数点位置を定めることで固定小数点の実数と見なすことができる。本発明ではこのようにして環上で表した固定小数点の実数を単に実数と表記する。
 [実施形態:秘密平方根計算システム]
 本発明の実施形態は、値aの分散値[a]を入力とし、値aを秘匿したまま、値aの平方根の分散値[√a]を計算する秘密平方根計算システムおよび方法である。以下、実施形態の秘密平方根計算システムが実行する平方根プロトコルの概要について説明する。
 従来、秘密計算では、加減乗算を超える、逆数や平方根、指数関数、対数関数等の初等関数群は処理コストが大きく、実装されてこなかった。本発明では、これらの課題を解決するために、秘密計算上の初等関数群を効率的かつ統一的に近似可能なアルゴリズムを用いて、平方根を効率的に計算することを可能とする。この近似手法は、平方根を含む主な初等関数を単一の手法でパラメータを変えるだけで近似可能である。さらに、この近似手法は、単精度(23ビット)において実数乗算3回分の通信量/ラウンド数であり、理論最適な効率である。
 平文に対する平方根計算では、効率的に計算するために、以下の正規化を行うことがある。入力aの小数点位置における1(すなわち、20)の桁の位置と入力aの最左ビット(msb: most significant bit)との差をeとし、以下の変形を行う。すなわち、2eを乗じて区間[1, 2)に正規化し、平方根√(2ea)を求めた後に1/√2eを乗ずる。
Figure JPOXMLDOC01-appb-M000002
 非特許文献1では、1/√a×a=√aの関係を利用した方式を用いていた。本発明では、より効率的に計算するために、直接√aを求める。この場合、近似後の正規化の逆演算が除算になる。そこで、√2eで除算するために、√2λ-eを乗じて√2λで除算する、という処理とする。
 秘密計算上の初等関数群を8次多項式で近似するためのアルゴリズムを以下に示す。
 〔アルゴリズム1:8次多項式による関数近似プロトコル〕
 入力:[x]∈[L, R)
 パラメータ:a, b, c, d, f, g, H, i, j, k, l, m, n, o, p, q, α, β, γ, δ, ζ
 出力:目的の関数funcに対応する[func(x)]
 1:積和により[y']:=[x(δx+a-i)-j]を計算し、右シフトにより小数点位置を下げる。
 2:[y]:=[y'+(ix+j)]を計算する。
 3:積和により[z']:=[y(ζy+b-k)+(c-l)x-m]を計算し、右シフトにより小数点位置を下げる。
 4:[z]:=[z'+(ky+lx+m)]を計算する。
 5:積和により[w'/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ]を計算し、γによる乗算と小数点位置の下降を同時に行い[w']を得る。
 6:[w]:=[w'+(nz+oy+px+q)]を出力する。
 アルゴリズム1のステップ1,3で実行する小数点位置の下降は、例えば、非特許文献1に開示された除数公開除算を用いることで効率的に行うことができる。
 アルゴリズム1のステップ5で実行する公開値乗算と小数点位置の下降の同時実行は、例えば、以下のアルゴリズムを用いることで効率的に行うことができる。
 〔アルゴリズム2:右シフトから処理コスト増大無しで同時に公開値乗算〕
 入力:[x]、乗数m、シフト量σ
 出力:シフト後の[mx]
 1:公開値2σ/mを計算する。
 2:公開値除算により次式を計算する。ただし、[mx]は[x]より小数点位置がσ低くなった表現とみなす。
Figure JPOXMLDOC01-appb-M000003
 アルゴリズム1で用いるパラメータL, R, a, b, c, d, f, g, H, i, j, k, l, m, n, o, p, q, α, β, γ, δ, ζは、近似する関数funcに応じて設定される。本発明で対象とする平方根関数を近似する際には、各パラメータを、例えば次表のように設定すればよい。なお、ex, ey, ez, ewはx, y, z, wの小数点位置、e'y, e'z, e'wはy', z', w'の小数点位置である。これらは8次多項式近似中の右シフト量を定めるパラメータである。例えば、y'からyを計算する際の右シフト量はe'y-eyとなる。
Figure JPOXMLDOC01-appb-T000004
 アルゴリズム1を用いて秘密計算上の平方根を計算するアルゴリズムを以下に示す。ここでは、計算対象とする入力を平方根計算用に正規化するアルゴリズム(アルゴリズム3)と、そのアルゴリズムを用いて平方根を計算するアルゴリズム(アルゴリズム4)とに分けて説明する。
 〔アルゴリズム3:平方根用正規化プロトコル〕
 入力:[a]
 出力:[b], [r], [c'](ただし、bはaの最左ビットを小数点位置λに移動した値(すなわち、aを[1, 2)に正規化した値)である。rは、計算結果を√2で除算するか否かを表す真理値である。c'は、正規化の逆演算に用いる2べきの数である。)
 1:ビット分解により[a]のビット表現{a0}, …, {aλ-1}を得る。
 2:aの最左ビットの位置のみが1となるビット列{x0}, …, {xλ-1}を得る。
 3:λ'を次式により設定する。すなわち、λ/2以上の最小の整数をλ'とする。
Figure JPOXMLDOC01-appb-M000005
 4:各i<λ'で、{yi}を次式により設定する。すなわち、{x2i}と{x2i+1}との排他的論理和を計算する。
Figure JPOXMLDOC01-appb-M000006
 ただし、λが奇数のときは、次式により{yλ'-1}を設定する。
Figure JPOXMLDOC01-appb-M000007
 5:{r}を次式により設定する。すなわち、0以上λ未満の各奇数jについて、すべての{xj}の排他的論理和を計算する。rは√2で除算する必要があるか否かを表す。
Figure JPOXMLDOC01-appb-M000008
 6:mod p変換で{r}を[r]とする。
 7:ビット結合で{y0}, …, {yλ'-1}を結合し[c']とする。
 8:ビット結合で{xλ-1}, …, {x0}を結合し[c]とする。
 9:[b]:=[a][c]を計算し、[b], [r], [c']を出力する。
 〔アルゴリズム4:平方根プロトコル〕
 入力:[a]
 出力:[√a]
 1:アルゴリズム3により[a]を[1, 2)に正規化した値[b]、正規化の逆演算に必要な[c']、[r]を得る。
 2:λ'を次式により設定する。すなわち、λ/2以上の最小の整数をλ'とする。
Figure JPOXMLDOC01-appb-M000009
 3:r'を、λが奇数なら√2、偶数なら1とする。
 4:[b]に対してアルゴリズム1を実行し、[b]の平方根を計算する。このとき、アルゴリズム1のステップ5で行う公開値γの乗算は、条件を[r]、選択肢をそれぞれr'γ, (r'/√2)γとして選択的公開乗算を実行し、[w'/γ]*γ*[r?1/√2:1]*r'を計算する。結果を[w]とする。
 5:[w][c']を計算する。このとき、通常よりλ'ビット余分に右シフトする。
 アルゴリズム3のステップ2で実行する最左ビットを表すフラグ列の生成は、例えば、以下のアルゴリズムを用いることで、効率的に行うことができる。
 〔アルゴリズム5:msbフラグ列取得プロトコル〕
 入力:ビット表現された整数{a0}, …, {aλ-1}
 出力:aのmsb位置のみ1となるビット列{x0}, …, {xλ-1}
 1:0≦i<λ-1で、{fi}:={fi+1∨ai}とする。
 2:{fλ-1}:={aλ-1}とする。ここまでで、{f0}, …, {fλ-1}は0,0,0,1,1,1,…,1のようにmsbを境に01が並ぶビット列になっている。
 3:0≦i<λ-1で、{xi}:={fiXOR fi+1}とする。
 4:{xλ-1}:={aλ-1}とする。ここまでで、{x0}, …, {xλ-1}は0,0,0,1,0,0,…,0のようにmsb位置のみ1となるビット列になっている。
 アルゴリズム4のステップ4で実行する選択的公開乗算は、例えば、以下のアルゴリズムを用いることで、効率的に行うことができる。
 〔アルゴリズム6:要右シフト値への選択的公開乗数による乗算〕
 入力:[a]、乗数m0, m1、条件[c]
 出力:[m1a] if c=1, [m0a] if c=0
 1:[m1a], [m0a]を計算する。
 2:if-then-elseゲートにより、[c?m1a:m0a]を出力する。
 アルゴリズム6のステップ1で実行する公開値乗算は、例えば、アルゴリズム2と以下のアルゴリズムを組み合わせることで、効率的に行うことができる。
 〔アルゴリズム7:複数除数での右シフト/除数公開除算〕
 入力:[a]、除数d0, d1, …, dn-1
 出力:[a/d0], [a/d1], …, [a/dn-1]
 1:[a]の商[q]を求める。
 2:商[q]を用いて、右シフト/除数公開除算で各iに対する[a/di]を計算し出力する。
 アルゴリズム7のステップ1で求める商は、商転移により効率的に求めることができる(参考文献1参照)。
 ≪参考文献1≫Ryo Kikuchi, Dai Ikarashi, Takahiro Matsuda, Koki Hamada, and Koji Chida, "Efficient bit-decomposition and modulus-conversion protocols with an honest majority," Proceedings of Information Security and Privacy - 23rd Australasian Conference (ACISP 2018), pp. 64-82, July 11-13, 2018.
 <秘密平方根計算システム100>
 実施形態の秘密平方根計算システム100は、上記の平方根プロトコルを実行する情報処理システムである。秘密平方根計算システム100は、図1に示すように、N(≧3)台の秘密計算装置11, …, 1Nを含む。この実施形態では、秘密計算装置11, …, 1Nはそれぞれ通信網9へ接続される。通信網9は、接続される各装置が相互に通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網であり、例えばインターネットやLAN(Local Area Network)、WAN(Wide Area Network)等を用いることができる。なお、各装置は必ずしも通信網9を介してオンラインで通信可能である必要はない。例えば、秘密計算装置1n(n=1, …, N)へ入力する情報を磁気テープやUSBメモリ等の可搬型記録媒体に記憶し、その可搬型記録媒体から秘密計算装置1nへオフラインで入力するように構成してもよい。
 実施形態の秘密平方根計算システム100に含まれる秘密計算装置1nは、例えば、図2に示すように、ビット分解部11、フラグ列生成部12、ビット列生成部13、フラグ計算部14、フラグ変換部15、公開値乗数設定部16、逆正規化乗数生成部17、正規化乗数生成部18、正規化部19、平方根計算部20、逆正規化部21、および右シフト部22を備える。平方根計算部20は、例えば、図3に示すように、パラメータ記憶部200、第一積和部201、第一加算部202、第二積和部203、第二加算部204、第三積和部205、選択積計算部206、および第三加算部207を備える。この秘密計算装置1nが他の秘密計算装置1n'(n'=1, …, N、ただしn≠n')と協調しながら後述する各ステップの処理を行うことにより実施形態の秘密平方根計算方法が実現される。
 秘密計算装置1nは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)等を有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。秘密計算装置1nは、例えば、中央演算処理装置の制御のもとで各処理を実行する。秘密計算装置1nに入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。秘密計算装置1nの各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。秘密計算装置1nが備える各記憶部は、例えば、RAM(Random Access Memory)等の主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストア等のミドルウェアにより構成することができる。
 図4を参照して、実施形態の秘密平方根計算システム100が実行する秘密平方根計算方法の処理手続きを説明する。
 ステップS11において、各秘密計算装置1nのビット分解部11は、秘密平方根計算システム100に入力された値aの分散値[a]をビット分解することで、値aのビット表現a0, …, aλ-1の分散値の列{a0}, …, {aλ-1}を得る。ビット分解部11は、分散値の列{a0}, …, {aλ-1}をフラグ列生成部12へ出力する。
 ステップS12において、各秘密計算装置1nのフラグ列生成部12は、分散値の列{a0}, …, {aλ-1}を用いて、値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成する。最左ビットを表すフラグ列は、例えば、上記のアルゴリズム5を用いて得られる最左ビットの位置のみが1となるフラグ列である。フラグ列生成部12は、分散値の列{x0}, …, {xλ-1}をビット列生成部13、フラグ計算部14、および正規化乗数生成部18へ出力する。
 ステップS13において、各秘密計算装置1nのビット列生成部13は、分散値の列{x0}, …, {xλ-1}を用いて、各i<λ'で{yi}:={x2i} XOR {x2i+1}となるビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成する。ここで、λ'はλ/2以上の最小の整数である。すなわち、0以上λ'未満の各整数iについて、分散値{x2i}と分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を求める。さらに、λが奇数のときは、{yλ'-1}:={x2i}とする。ビット列生成部13は、分散値の列{y0}, …, {yλ'-1}を逆正規化乗数生成部17へ出力する。
 ステップS14において、各秘密計算装置1nのフラグ計算部14は、分散値の列{x0}, …, {xλ-1}を用いて、計算結果を√2で除算するか否かを表すフラグr(以下、「除算フラグ」とも呼ぶ)の分散値{r}を計算する。具体的には、0以上λ未満の各奇数jについて、すべての分散値{xj}の排他的論理和を計算する。フラグ計算部14は、分散値{r}をフラグ変換部15へ出力する。
 ステップS15において、各秘密計算装置1nのフラグ変換部15は、mod p変換により、除算フラグrの分散値{r}を分散値[r]に変換する。フラグ変換部15は、分散値[r]を平方根計算部20へ出力する。
 ステップS16において、各秘密計算装置1nの公開値乗数設定部16は、λが奇数のときはr'=√2とし、λが偶数のときはr'=1として、計算結果に乗ずる公開値r'(以下、「公開値乗数」とも呼ぶ)を設定する。公開値乗数設定部16は、公開値乗数r'を平方根計算部20へ出力する。
 ステップS17において、各秘密計算装置1nの逆正規化乗数生成部17は、分散値の列{y0}, …, {yλ'-1}を正順にビット結合することで、正規化の逆演算をするために計算結果に乗ずる乗数c'(以下、「逆正規化乗数」とも呼ぶ)の分散値[c']を生成する。逆正規化乗数生成部17は、分散値[c']を逆正規化部21へ出力する。
 ステップS18において、各秘密計算装置1nの正規化乗数生成部18は、分散値の列{x0}, …, {xλ-1}を逆順にビット結合することで、正規化するために入力に乗ずる乗数c(以下、「正規化乗数」とも呼ぶ)の分散値[c]を生成する。正規化乗数生成部18は、分散値[c]を正規化部19へ出力する。
 ステップS19において、各秘密計算装置1nの正規化部19は、値aの分散値[a]と正規化乗数cの分散値[c]とを乗算することで、値aを正規化した値bの分散値[b]を計算する。正規化部19は、分散値[b]を平方根計算部20へ出力する。
 ステップS20において、各秘密計算装置1nの平方根計算部20は、平方根関数を8次多項式で近似するパラメータを用いてアルゴリズム1を実行することにより、値bの分散値[b]に対して平方根を計算する。このとき、アルゴリズム1のステップ5で行う公開値γの乗算は、条件を除算フラグrの分散値[r]とし、選択肢をそれぞれr'γ, (r'/√2)γとしてアルゴリズム6を実行することで行う。すなわち、平方根計算部20は、値bの分散値[b]と除算フラグrの分散値[r]と公開値乗数r'とを用いて、r=1のときは[√b]*(r'/√2)を計算し、r=0のときは[√b]*r'を計算し、計算結果wの分散値[w]を生成する。平方根計算部20は、分散値[w]を逆正規化部21へ出力する。
 ステップS21において、各秘密計算装置1nの逆正規化部21は、計算結果wの分散値[w]と逆正規化乗数c'の分散値[c']とを乗算する。逆正規化部21は、乗算結果[w][c']を右シフト部22へ出力する。
 ステップS22において、各秘密計算装置1nの右シフト部22は、乗算結果[w][c']をλ'ビット右シフトして、値aの平方根の分散値[√a]として出力する。
 図5を参照して、平方根計算部20が実行する処理手続きを詳細に説明する。
 パラメータ記憶部200には、平方根関数を8次多項式で近似するためのパラメータa, b, c, d, f, g, H, i, j, k, l, m, n, o, p, q, α, β, γ, δ, ζが記憶されている。各パラメータは近似する関数に応じて予め定めたものであり、平方根関数を近似する場合には表1に例示した値を設定すればよい。
 ステップS201において、平方根計算部20の第一積和部201は、積和により[y']:=[x(δx+a-i)-j]を計算し、右シフトにより小数点位置を下げる。ただし、xは値aを正規化した値bである。すなわち、[x]:=[b]である。第一積和部201は、[y']を第一加算部202へ出力する。
 ステップS202において、平方根計算部20の第一加算部202は、[y]:=[y'+(ix+j)]を計算する。第一加算部202は、[y]を第二積和部203へ出力する。
 ステップS203において、平方根計算部20の第二積和部203は、積和により[z']:=[y(ζy+b-k)+(c-l)x-m]を計算し、右シフトにより小数点位置を下げる。第二積和部203は、[z']を第二加算部204へ出力する。
 ステップS204において、平方根計算部20の第二加算部204は、[z]:=[z'+(ky+lx+m)]を計算する。第二加算部204は、[z]を第三積和部205へ出力する。
 ステップS205において、平方根計算部20の第三積和部205は、積和により[w'/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ]を計算する。第三積和部205は、[w'/γ]を選択積計算部206へ出力する。
 ステップS206において、平方根計算部20の選択積計算部206は、条件を[r]とし、選択肢をそれぞれr'γ, (r'/√2)γとして、アルゴリズム6を実行する。すなわち、除算フラグrの分散値[r]を用いて、r=1のときは[w']:=[w'/γ]*(r'/√2)γを計算し、r=0のときは[w']:=[w'/γ]*r'γを計算する。選択積計算部206は、[w']を第三加算部207へ出力する。
 ステップS207において、平方根計算部20の第三加算部207は、[w]:=[w'+(nz+oy+px+q)]を計算する。
 [変形例:秘密正規化システム]
 実施形態の秘密平方根計算システム100は、平方根計算のための正規化(アルゴリズム3)と平方根計算(アルゴリズム4)を両方とも実行するように構成した。変形例の秘密正規化システムは、秘密平方根計算システム100のうち平方根計算のための正規化(アルゴリズム3)を行う部分のみを実行するように構成する。すなわち、秘密正規化システムは、値aの分散値[a]を入力とし、値aを[1, 2)に正規化した値bの分散値[b]と、逆正規化乗数c'の分散値[c']と、除算フラグrの分散値[r]とを出力する。具体的には、変形例の秘密正規化システムに含まれる秘密計算装置1nは、ビット分解部11、フラグ列生成部12、ビット列生成部13、フラグ計算部14、フラグ変換部15、逆正規化乗数生成部17、正規化乗数生成部18、および正規化部19を備える。
 以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
 [プログラム、記録媒体]
 上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムを図6に示すコンピュータの記憶部1020に読み込ませ、制御部1010、入力部1030、出力部1040等に動作させることにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (7)

  1.  複数の秘密計算装置を含み、値aの分散値[a]を入力とし、値aの平方根の分散値[√a]を計算する秘密平方根計算システムであって、
     λは前記値aの小数点位置であり、λ'はλ/2以上の最小の整数であり、
     前記秘密計算装置は、
     前記値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成するフラグ列生成部と、
     0以上λ'未満の各整数iについて、前記分散値{x2i}と前記分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を求めることで、ビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成するビット列生成部と、
     0以上λ未満の各奇数jについて、すべての前記分散値{xj}の排他的論理和を計算した除算フラグrの分散値{r}を求めるフラグ計算部と、
     λが奇数のときは√2となり、λが偶数のときは1となる公開値乗数r'を設定する公開値乗数設定部と、
     前記分散値の列{y0}, …, {yλ'-1}を正順にビット結合した逆正規化乗数c'の分散値[c']を生成する逆正規化乗数生成部と、
     前記分散値の列{x0}, …, {xλ-1}を逆順にビット結合した正規化乗数cの分散値[c]を生成する正規化乗数生成部と、
     前記分散値[a]と前記分散値[c]とを乗算した分散値[b]を計算する正規化部と、
     前記分散値[b]と前記分散値{r}と前記公開値乗数r'とを用いて、r=1のときは[√b]*(r'/√2)を計算し、r=0のときは[√b]*r'を計算した分散値[w]を計算する平方根計算部と、
     前記分散値[w]と前記分散値[c']との乗算結果をλ'ビット右シフトした前記分散値[√a]を計算する逆正規化部と、
     を含む秘密平方根計算システム。
  2.  請求項1に記載の秘密平方根計算システムであって、
     a, b, c, d, f, g, H, i, j, k, l, m, n, o, p, q, α, β, γ, δ, ζは平方根関数を8次多項式で近似するためのパラメータとし、[x]:=[b]とし、
     前記平方根計算部は、
     [y']:=[x(δx+a-i)-j]を計算する第一積和部と、
     [y]:=[y'+(ix+j)]を計算する第一加算部と、
     [z']:=[y(ζy+b-k)+(c-l)x-m]を計算する第二積和部と、
     [z]:=[z'+(ky+lx+m)]を計算する第二加算部と、
     [w'/γ]:=[z(αz+d-n/γ)+(βx+f-o/γ)y+(g-p)x+(H-q)/γ]を計算する第三積和部と、
     前記分散値{r}を用いて、r=1のときは[w'/γ]*(r'/√2)γを計算し、r=0のときは[w'/γ]*r'γを計算し、計算結果を[w']とする選択積計算部と、
     [w]:=[w'+(nz+op+px+q)]を計算する第三加算部と、
     を含む秘密平方根計算システム。
  3.  複数の秘密計算装置を含み、値aの平方根の分散値[√a]を計算するために、値aの分散値[a]を正規化する秘密正規化システムであって、
     λは前記値aの小数点位置であり、λ'はλ/2以上の最小の整数であり、
     前記秘密計算装置は、
     前記値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成するフラグ列生成部と、
     0以上λ'未満の各整数iについて、前記分散値{x2i}と前記分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を求めることで、ビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成するビット列生成部と、
     0以上λ未満の各奇数jについて、すべての前記分散値{xj}の排他的論理和を計算した除算フラグrの分散値{r}を計算するフラグ計算部と、
     λが奇数のときは√2となり、λが偶数のときは1となる公開値乗数r'を設定する公開値乗数設定部と、
     前記分散値の列{y0}, …, {yλ'-1}を正順にビット結合した逆正規化乗数c'の分散値[c']を生成する逆正規化乗数生成部と、
     前記分散値の列{x0}, …, {xλ-1}を逆順にビット結合した正規化乗数cの分散値[c]を生成する正規化乗数生成部と、
     前記分散値[a]と前記分散値[c]とを乗算した分散値[b]を計算する正規化部と、
     を含む秘密正規化システム。
  4.  複数の秘密計算装置を含み、値aの分散値[a]を入力とし、値aの平方根の分散値[√a]を計算する秘密平方根計算システムが実行する秘密平方根計算方法であって、
     λは前記値aの小数点位置であり、λ'はλ/2以上の最小の整数であり、
     各秘密計算装置のフラグ列生成部が、前記値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成し、
     各秘密計算装置のビット列生成部が、0以上λ'未満の各整数iについて、前記分散値{x2i}と前記分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を求めることで、ビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成し、
     各秘密計算装置のフラグ計算部が、0以上λ未満の各奇数jについて、すべての前記分散値{xj}の排他的論理和を計算した除算フラグrの分散値{r}を求め、
     各秘密計算装置の公開値乗数設定部が、λが奇数のときは√2となり、λが偶数のときは1となる公開値乗数r'を設定し、
     各秘密計算装置の逆正規化乗数生成部が、前記分散値の列{y0}, …, {yλ'-1}を正順にビット結合した逆正規化乗数c'の分散値[c']を生成し、
     各秘密計算装置の正規化乗数生成部が、前記分散値の列{x0}, …, {xλ-1}を逆順にビット結合した正規化乗数cの分散値[c]を生成し、
     各秘密計算装置の正規化部が、前記分散値[a]と前記分散値[c]とを乗算した分散値[b]を計算し、
     各秘密計算装置の平方根計算部が、前記分散値[b]と前記分散値{r}と前記公開値乗数r'とを用いて、r=1のときは[√b]*(r'/√2)を計算し、r=0のときは[√b]*r'を計算した分散値[w]を計算し、
     各秘密計算装置の逆正規化部が、前記分散値[w]と前記分散値[c']との乗算結果をλ'ビット右シフトした前記分散値[√a]を計算する、
     秘密平方根計算方法。
  5.  複数の秘密計算装置を含み、値aの平方根の分散値[√a]を計算するために、値aの分散値[a]を正規化する秘密正規化システムが実行する秘密正規化方法であって、
     λは前記値aの小数点位置であり、λ'はλ/2以上の最小の整数であり、
     各秘密計算装置のフラグ列生成部が、前記値aの最左ビットを表すフラグ列x0, …, xλ-1の分散値の列{x0}, …, {xλ-1}を生成し、
     各秘密計算装置のビット列生成部が、0以上λ'未満の各整数iについて、前記分散値{x2i}と前記分散値{x2i+1}との排他的論理和を計算したビットyiの分散値{yi}を求めることで、ビット列y0, …, yλ'-1の分散値の列{y0}, …, {yλ'-1}を生成し、
     各秘密計算装置のフラグ計算部が、0以上λ未満の各奇数jについて、すべての前記分散値{xj}の排他的論理和を計算した除算フラグrの分散値{r}を求め、
     各秘密計算装置の公開値乗数設定部が、λが奇数のときは√2となり、λが偶数のときは1となる公開値乗数r'を設定し、
     各秘密計算装置の逆正規化乗数生成部が、前記分散値の列{y0}, …, {yλ'-1}を正順にビット結合した逆正規化乗数c'の分散値[c']を生成し、
     各秘密計算装置の正規化乗数生成部が、前記分散値の列{x0}, …, {xλ-1}を逆順にビット結合した正規化乗数cの分散値[c]を生成し、
     各秘密計算装置の正規化部が、前記分散値[a]と前記分散値[c]とを乗算した分散値[b]を計算する、
     秘密正規化方法。
  6.  請求項1または2の秘密平方根計算システムまたは請求項3の秘密正規化システムにおいて用いられる前記秘密計算装置。
  7.  請求項6に記載の秘密計算装置としてコンピュータを機能させるためのプログラム。
PCT/JP2020/001674 2020-01-20 2020-01-20 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム WO2021149098A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US17/789,787 US20230044126A1 (en) 2020-01-20 2020-01-20 Secure square root computation system, secure normalization system, methods therefor, secure computation apparatus, and program
PCT/JP2020/001674 WO2021149098A1 (ja) 2020-01-20 2020-01-20 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
JP2021572120A JP7331951B2 (ja) 2020-01-20 2020-01-20 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
CN202080093618.0A CN114981865A (zh) 2020-01-20 2020-01-20 秘密平方根计算系统、秘密归一化系统、它们的方法、秘密计算装置以及程序
EP20915351.9A EP4095827A4 (en) 2020-01-20 2020-01-20 SECURE SQUARE ROOT CALCULATION SYSTEM, SECURE NORMALIZATION SYSTEM, METHOD THEREOF, SECURE COMPUTING APPARATUS AND PROGRAM
AU2020424575A AU2020424575B2 (en) 2020-01-20 2020-01-20 Secure square root computation system, secure normalization system, methods therefor, secure computation apparatus, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/001674 WO2021149098A1 (ja) 2020-01-20 2020-01-20 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム

Publications (1)

Publication Number Publication Date
WO2021149098A1 true WO2021149098A1 (ja) 2021-07-29

Family

ID=76992239

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/001674 WO2021149098A1 (ja) 2020-01-20 2020-01-20 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム

Country Status (6)

Country Link
US (1) US20230044126A1 (ja)
EP (1) EP4095827A4 (ja)
JP (1) JP7331951B2 (ja)
CN (1) CN114981865A (ja)
AU (1) AU2020424575B2 (ja)
WO (1) WO2021149098A1 (ja)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IGARASHI, DAI: "Secure Real Number Operations for Secure AI - O ( l p l ) - Bit Communication and O (1) - Round Shift Protocol", PROCEEDINGS OF THE 2019 COMPUTER SECURITY SYMPOSIUM, 14 October 2019 (2019-10-14), pages 1557 - 1564, XP009530110 *
RYO KIKUCHIDAI IKARASHITAKAHIRO MATSUDAKOKI HAMADAKOJI CHIDA: "Efficient bit-decomposition and modulus-conversion protocols with an honest majority", PROCEEDINGS OF INFORMATION SECURITY AND PRIVACY - 23RD AUSTRALASIAN CONFERENCE (ACISP 2018, 11 July 2018 (2018-07-11), pages 64 - 82, XP055932868, DOI: 10.1007/978-3-319-93638-3_5

Also Published As

Publication number Publication date
EP4095827A1 (en) 2022-11-30
EP4095827A4 (en) 2023-10-11
AU2020424575A1 (en) 2022-07-14
US20230044126A1 (en) 2023-02-09
AU2020424575B2 (en) 2023-08-03
JP7331951B2 (ja) 2023-08-23
JPWO2021149098A1 (ja) 2021-07-29
CN114981865A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
JP7067633B2 (ja) 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
Chow et al. A Karatsuba-based Montgomery multiplier
TWI821501B (zh) 安全處理器、所述安全處理器的操作方法、以及加密或解密資料的方法
Basilakis et al. Efficient parallel binary operations on homomorphic encrypted real numbers
Bardis Secure, green implementation of modular arithmetic operations for IoT and cloud applications
WO2021149098A1 (ja) 秘密平方根計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
WO2021149099A1 (ja) 秘密平方根逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
WO2021149100A1 (ja) 秘密指数関数計算システム、秘密指数関数計算方法、秘密計算装置、およびプログラム
WO2021149102A1 (ja) 秘密逆数計算システム、秘密正規化システム、それらの方法、秘密計算装置、およびプログラム
WO2021149101A1 (ja) 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム
WO2022079891A1 (ja) 秘匿msb正規化システム、分散処理装置、秘匿msb正規化方法、およびプログラム
JP7173328B2 (ja) 秘密除算システム、秘密計算装置、秘密除算方法、およびプログラム
Wei New residue signed-digit addition algorithm
Mohan et al. Modulo Multiplication and Modulo Squaring
Tew et al. Multi-Precision Integer Arithmetic Processing Using Arithmetic Circuit Homomorphic Encryption
CN114981860A (zh) 秘密计算装置、秘密计算方法、以及程序
JP2004151234A (ja) べき乗演算装置

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2021572120

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020424575

Country of ref document: AU

Date of ref document: 20200120

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

Country of ref document: EP

Effective date: 20220822