WO2022079894A1 - 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム - Google Patents

秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム Download PDF

Info

Publication number
WO2022079894A1
WO2022079894A1 PCT/JP2020/039081 JP2020039081W WO2022079894A1 WO 2022079894 A1 WO2022079894 A1 WO 2022079894A1 JP 2020039081 W JP2020039081 W JP 2020039081W WO 2022079894 A1 WO2022079894 A1 WO 2022079894A1
Authority
WO
WIPO (PCT)
Prior art keywords
max
share
secret
floating point
dif
Prior art date
Application number
PCT/JP2020/039081
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 JP2022556806A priority Critical patent/JP7452692B2/ja
Priority to AU2020472126A priority patent/AU2020472126B2/en
Priority to EP20957723.8A priority patent/EP4213135A4/en
Priority to CN202080106103.XA priority patent/CN116368549A/zh
Priority to US18/029,375 priority patent/US20230359438A1/en
Priority to PCT/JP2020/039081 priority patent/WO2022079894A1/ja
Publication of WO2022079894A1 publication Critical patent/WO2022079894A1/ja

Links

Images

Classifications

    • 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/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/723Modular exponentiation
    • 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
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
    • 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/556Logarithmic or exponential functions

Definitions

  • the present invention relates to a secret calculation technique, and particularly to a technique for performing a plurality of floating-point exponential unit unified operations in a secret calculation.
  • Secret calculation is a method of obtaining the result of a specified operation without restoring the encrypted numerical value (see, for example, Reference Non-Patent Document 1).
  • Reference In the method of Non-Patent Document 1 encryption is performed by distributing a plurality of information whose numerical values can be restored to three secret computing devices, and addition / subtraction, constant sum, multiplication, and constant multiplication are performed without restoring the numerical values.
  • Logical operation negative, logical product, logical sum, exclusive logical sum
  • data format conversion integer, binary number
  • W is a predetermined constant of 3 or more
  • a protocol that realizes secret calculation by cooperative calculation by W secret computing devices is called a multi-party protocol.
  • Non-Patent Document 1 Koji Chida, Hiroki Hamada, Dai Igarashi, Katsumi Takahashi, “Reconsideration of Lightweight Verifiable 3-Party Concealed Function Calculation,” In CSS, 2010.
  • Non-Patent Document 2 Korean Patent Application Laida, Koji Chida, Hiroki Hamada, Dai Igarashi, Katsumi Takahashi, “Reconsideration of Lightweight Verifiable 3-Party Concealed Function Calculation,” In CSS, 2010.
  • Non-Patent Document 1 and Non-Patent Document 2 as documents relating to a protocol and implementation of secret calculation for performing floating-point arithmetic. In order to calculate the sum of floating point numbers, it is necessary to unify the exponential part of the floating point numbers to be added.
  • an object of the present invention is to provide a secret calculation technique that efficiently unifies the exponential part of the floating point number.
  • P is a prime number
  • Q is a rank of a remainder ring, and it is composed of three or more secret exponent unit unifying devices, and shares a floating point vector ( ⁇ a, ⁇ ⁇ ) ([[ ⁇ a).
  • (Caret) represents a superscript.
  • x y ⁇ z means that y z is a superscript for x
  • x y ⁇ z means that y z is a subscript for x
  • _ (underscore) represents a subscript.
  • x y_z means that y z is a superscript for x
  • x y_z means that y z is a subscript for x.
  • [[x]] y represents the mod y element x (k, n)-secretly shared share.
  • secret sharing for example, Shamir secret sharing or duplicate secret sharing can be used.
  • the mod y element x is represented by (k, n)-replica secret-shared share with ⁇ x >> y . Since (k, n) -replication secret sharing is (k, n) -secret sharing, the protocol applicable to (k, n) -secret sharing is (k, n) -replication secret sharing. Can also be applied.
  • the share is expressed as ⁇ x >> y , it means that the property of duplicate secret sharing is used.
  • (k, k) -replica secret sharing is called (k, k) -additive secret sharing.
  • the mod y element x is represented by (k, k) -additive secret-shared share by ⁇ x> y .
  • [[x]] 2 ⁇ m represents a share in which m shares of the format [[x]] 2 are arranged. Note that [[x]] 2 ⁇ m may be regarded as a bit representation of a numerical value.
  • X ⁇ y means that x and y are equal as real numbers on the computer. That is, it means that the difference between x and y is within a certain error range.
  • a / d represents the value of integer division with the decimal point truncated. Therefore, integer division by a power of 2 is equivalent to a right shift. Also, for two numbers a and d, (a / d) Re represents the value of real division.
  • Ceiling (a) represents the smallest integer greater than or equal to a for the number a.
  • Floating-point 2 b a (where a and b represent the mantissa and exponent, respectively) is referred to as the floating-point (a, b). Also, m floating point numbers 2 b_0 a 0 , 2 b_1 a 1 ,..., 2 b_m-1 a m-1 (however, a i and bi (0 ⁇ i ⁇ m) have a mantissa and an exponent, respectively.
  • ⁇ a (a 0 , a 1 ,..., a m-1 )
  • ⁇ b (b 0 , b 1 ,..., b m-1 )
  • the length m of the vector ⁇ a (a 0 , a 1 ,..., a m-1 ) may be expressed as
  • step2 Party 0 and party 1 share a random number r 01 . Also, party 1 and party 2 share a random number r 12 .
  • ⁇ ⁇ >> p 01 represents the share held by party 0 and party 1 with respect to the share ⁇ ⁇ >> p .
  • ⁇ a> P 0 represents the share held by party 0 with respect to share ⁇ a> P.
  • ⁇ ⁇ >> p 12 represents the share held by parties 1 and 2 with respect to the share ⁇ ⁇ >> p .
  • ⁇ a> P 1 represents the share held by party 1 with respect to share ⁇ a> P.
  • ⁇ ⁇ >> p 20 represents the share held by party 2 and party 0 with respect to the share ⁇ ⁇ >> p .
  • step1 Calculate the share ⁇ ⁇ >> p using the modulus transformation.
  • the modulus transformation for example, the modulus transformation using the above-mentioned quotient transfer can be used.
  • step3 Calculate ⁇ f L >> p using mod 2 ⁇ mod p conversion.
  • step7 Calculate [[f L ]] P using mod 2 ⁇ mod P conversion.
  • u is the right shift amount that can be covered by one shift amount concealed right shift (specifically, the amount in the range of 1 to M'-M bits), and d is the right in the range of 1 to M-1 bits.
  • the amount of shift required to shift is the number of times the hidden right shift is executed.
  • step2 Calculate the share ⁇ ⁇ >> p using the modulus transformation.
  • the modulus transformation for example, the modulus transformation using the above-mentioned quotient transfer can be used.
  • f d-1 for f L f d- 2 for f d-1 , and so on.
  • F 0 , f 1 ,..., f d-1 , f L with such properties are called transitive flags.
  • step4 Calculate ⁇ f 1 >> p , ⁇ f 2 >> p ,..., ⁇ f d-1 >> p , ⁇ f L >> p using mod 2 ⁇ mod p conversion ..
  • step8 mod 2 ⁇ mod P Use the conversion to calculate [[f 0 ]] P , [[f 1 ]] P ,..., [[f d-1 ]] P , [[f L ]] P ..
  • step1 Let u be an integer that satisfies u ⁇ M'-M + 1. Also, let [R, R'] be the range of the right shift amount covered by the divided right shift, and let d be an integer satisfying d ⁇ ceiling (((R'-R + 1) / u) Re ).
  • ⁇ L indicates that the calculation of the part enclosed in parentheses can be omitted when it is not necessary to consider the shift amount larger than -R (for example, when it is known that the shift is to the right). Also, ⁇ 0 is not an extremely large value when it is not necessary to consider a shift amount smaller than -R'(for example, the right shift amount is larger than the value to which the shift amount concealed shift (No. 1) can be applied). If you know that), it means that you can omit the calculation of the part enclosed in parentheses.
  • step2 Calculate the share ⁇ ⁇ >> p using the modulus transformation.
  • the modulus transformation for example, the modulus transformation using the above-mentioned quotient transfer can be used.
  • f d-1 for f L f d- 2 for f d-1 , and so on.
  • F 0 , f 1 ,..., f d-1 , f L with such properties are called transitive flags.
  • step4 Using mod 2 ⁇ mod p conversion, ⁇ f 1 >> p , ⁇ f 2 >> p ,..., ⁇ f d-1 >> p ⁇ , ⁇ f L >> p ⁇ L To calculate.
  • step8 Using mod 2 ⁇ mod P conversion, ⁇ [[f 0 ]] P , ⁇ 0 [[f 1 ]] P ,..., [[f d-1 ]] P ⁇ , [[f L ]] Calculate P ⁇ L.
  • step1 Obtain [[ ⁇ max ]] Q from [[ ⁇ ⁇ ]] Q using the maximum value calculation.
  • step3 Using the shift amount concealed shift (2) or the shift amount concealed shift (3), the i element of the share [[ ⁇ a]] P [[a i ]] P and the share [[ ⁇ ⁇ dif ] ] A value obtained by shifting the numerical value a i by - ⁇ dif, i bit from the share ⁇ ⁇ ⁇ dif >> Q 's i element ⁇ ⁇ dif, i >> Q converted from Q to duplicate secret sharing.
  • step4 Generate a share ([[ ⁇ b]] P , [[ ⁇ ⁇ max ]] Q ).
  • step1 Share ([[ ⁇ a']] P , unify the exponent part of the element of the share ([[ ⁇ a]] P , [[ ⁇ ⁇ ]] Q ) using the unification of the exponential part of the floating point vector.
  • step1 Share ([[ ⁇ a']] P , unify the exponent part of the element of the share ([[ ⁇ a]] P , [[ ⁇ ⁇ ]] Q ) using the unification of the exponential part of the floating point vector.
  • FIG. 1 is a block diagram showing a configuration of a secret index unit unified system 10.
  • the secret index unit unification system 10 includes W (W is a predetermined integer of 3 or more) secret index unit unification devices 100 1 , ..., 100 W.
  • the secret index unit unifying device 100 1 , ..., 100 W are connected to the network 800 and can communicate with each other.
  • the network 800 may be, for example, a communication network such as the Internet or a broadcast communication path.
  • FIG. 2 is a block diagram showing the configuration of the secret index unit unified device 100 i (1 ⁇ i ⁇ W).
  • FIG. 3 is a flowchart showing the operation of the secret index unit unified system 10.
  • the secret index unit unifying device 100 i includes a maximum value calculation unit 110 i , a difference calculation unit 120 i , a mantissa unit calculation unit 130 i , an output unit 140 i , and a recording unit 190 i . ..
  • Each component of the secret index unit unified device 100 i excluding the recording unit 190 i realizes the functions required for the secret calculation, that is, the functions of each component among the protocols described in ⁇ Technical Background>. It is configured to be able to perform the operations required above.
  • the recording unit 190 i is a component unit that records information necessary for processing of the secret index unit unifying device 100 i .
  • the secret index unit unification system 10 realizes the secret calculation of the exponent unit unification of the floating-point vector, which is a multi-party protocol, by the cooperative calculation by the W secret exponent unit unification device 100 i . Therefore, the maximum value calculation means 110 (not shown) of the secret index unit unified system 10 is composed of the maximum value calculation units 110 1 , ..., 110 W , and the difference calculation means 120 (not shown) is a difference calculation unit. 120 1 , ..., 120 W , the mantissa calculation means 130 (not shown) is composed of the mantissa calculation unit 130 1 , ..., 130 W , and the output means 140 (not shown) is an output unit. It is composed of 140 1 , ..., 140 W.
  • the secret exponent unit unified system 10 shares the floating point vector ( ⁇ a, ⁇ ⁇ ) ([[ ⁇ a]] P , [[ ⁇ ⁇ ]] Q ).
  • the maximum value calculation means 110 calculates the share [[ ⁇ max ]] Q from the share [[ ⁇ ⁇ ]] Q.
  • the maximum value calculation means 110 may be configured so as to be able to execute, for example, the maximum value calculation.
  • the mantissa part calculation means 130 may be configured to be able to execute, for example, a shift amount concealed shift (No. 2) or a shift amount concealed shift (No. 3).
  • the output means 140 has a share ([[ ⁇ b]] P , [[ ⁇ ⁇ max ] from the share [[ ⁇ b]] P calculated in S130 and the share [[ ⁇ max ]] Q calculated in S110. ]] Generate Q ).
  • FIG. 4 is a block diagram showing the configuration of the secret sum calculation system 20.
  • the secret sum calculation system 20 includes W secret sum calculation devices 2001, ..., 200 W (W is a predetermined integer of 3 or more).
  • the secret sum calculator 2001, ..., 200 W are connected to the network 800 and can communicate with each other.
  • the network 800 may be, for example, a communication network such as the Internet or a broadcast communication path.
  • FIG. 5 is a block diagram showing the configuration of the secret sum calculation device 200 i (1 ⁇ i ⁇ W).
  • FIG. 6 is a flowchart showing the operation of the secret sum calculation system 20.
  • the secret sum calculation device 200 i includes an exponential unit unification unit 210 i , a sum calculation unit 220 i , and a recording unit 290 i .
  • Each component of the secret sum calculation device 200 i except the recording unit 290 i realizes the functions required for the secret calculation, that is, the functions of each component among the protocols described in ⁇ Technical Background>. It is configured to perform the operations required by.
  • a specific functional configuration for realizing individual operations in the present invention for example, a configuration capable of executing the algorithms disclosed in each of Reference Non-Patent Documents 1 to 5 is sufficient, and these are conventional configurations. Since there is, a detailed explanation will be omitted.
  • the recording unit 290 i is a component unit that records information necessary for processing of the secret sum calculation device 200 i .
  • the secret sum calculation system 20 realizes the secret calculation of the floating-point vector sum, which is a multi-party protocol, by the cooperative calculation by the W secret sum calculation device 200 i . Therefore, the exponential unit unification means 210 (not shown) of the secret sum calculation system 20 is composed of the exponent unit unification unit 210 1 , ..., 210 W , and the sum calculation means 220 (not shown) is the sum calculation unit 220. It is composed of 1 , ..., 220 W.
  • the exponent unit unifying means 210 unifies the floating point exponent part of the floating point vector ( ⁇ a, ⁇ ⁇ ) from the share ([[ ⁇ a]] P , [[ ⁇ ⁇ ]] Q ).
  • m), and 2 ⁇ _i a i ⁇ 2 ⁇ _max a'i (0 ⁇ i ⁇ m) is satisfied).
  • the exponential unit unification means 210 is configured by using, for example, each means included in the secret exponential unit unification system 10 (that is, the maximum value calculation means 110, the difference calculation means 120, the mantissa calculation means 130, and the output means 140). Just do it.
  • the exponential unit unification unit 210 i of the secret sum calculation device 200 i is configured to include the maximum value calculation unit 110 i , the difference calculation unit 120 i , the mantissa unit calculation unit 130 i , and the output unit 140 i .
  • FIG. 7 is a block diagram showing the configuration of the secret product-sum calculation system 30.
  • the secret product-sum calculation system 30 includes W secret product-sum calculation devices 300 1 , ..., 300 W (W is a predetermined integer of 3 or more).
  • the secret product-sum calculation device 300 1 , ..., 300 W are connected to the network 800 and can communicate with each other.
  • the network 800 may be, for example, a communication network such as the Internet or a broadcast communication path.
  • FIG. 8 is a block diagram showing the configuration of the secret product-sum calculation device 300 i (1 ⁇ i ⁇ W).
  • FIG. 9 is a flowchart showing the operation of the secret product-sum calculation system 30.
  • the secret product-sum calculation device 300 i includes an exponential unit unification unit 310 i , a product-sum calculation unit 320 i , and a recording unit 390 i .
  • Each component of the secret product-sum calculation device 300 i except the recording unit 390 i realizes the functions required for the secret calculation, that is, the functions of each component among the protocols described in ⁇ Technical Background>. It is configured to be able to perform the operations required above.
  • a specific functional configuration for realizing individual operations in the present invention for example, a configuration capable of executing the algorithms disclosed in each of Reference Non-Patent Documents 1 to 5 is sufficient, and these are conventional configurations. Since there is, a detailed explanation will be omitted.
  • the recording unit 390 i is a component unit that records information necessary for processing of the secret product-sum calculation device 300 i .
  • the secret product-sum calculation system 30 realizes the secret calculation of the floating-point vector product-sum, which is a multi-party protocol, by the cooperative calculation by the W secret product-sum calculation device 300 i . Therefore, the exponential unit unification means 310 (not shown) of the secret product-sum calculation system 30 is composed of the exponent unit unification unit 310 1 , ..., 310 W , and the product-sum calculation means 320 (not shown) is the sum of products. It is composed of calculation unit 320 1 , ..., 320 W.
  • the exponential unit unifying means 310 floats from the share ([[ ⁇ a]] P , [[ ⁇ ⁇ ]] Q ) and the share ([[ ⁇ b]] P , [[ ⁇ ⁇ ]] Q ).
  • the exponential unit unification means 310 is configured by using, for example, each means included in the secret exponential unit unification system 10 (that is, the maximum value calculation means 110, the difference calculation means 120, the mantissa calculation means 130, and the output means 140). Just do it.
  • the exponential unit unification unit 310 i of the secret sum calculation device 300 i is configured to include the maximum value calculation unit 110 i , the difference calculation unit 120 i , the mantissa unit calculation unit 130 i , and the output unit 140 i .
  • FIG. 10 is a diagram showing an example of a functional configuration of a computer that realizes each of the above-mentioned devices.
  • the processing in each of the above-mentioned devices can be carried out by having the recording unit 2020 read a program for making the computer function as each of the above-mentioned devices and operating the control unit 2010, the input unit 2030, the output unit 2040, and the like.
  • the device of the present invention is, for example, as a single hardware entity, an input unit to which a keyboard or the like can be connected, an output unit to which a liquid crystal display or the like can be connected, and a communication device (for example, a communication cable) capable of communicating outside the hardware entity.
  • Communication unit CPU (Central Processing Unit, cache memory, registers, etc.) to which can be connected, RAM and ROM as memory, external storage device as hard hardware, and input, output, and communication units of these.
  • CPU, RAM, ROM has a bus connecting so that data can be exchanged between external storage devices.
  • a device (drive) or the like capable of reading and writing a recording medium such as a CD-ROM may be provided in the hardware entity.
  • a physical entity equipped with such hardware resources there is a general-purpose computer or the like.
  • the external storage device of the hardware entity stores a program required to realize the above-mentioned functions and data required for processing of this program (not limited to the external storage device, for example, reading a program). It may be stored in a ROM, which is a dedicated storage device). Further, the data obtained by the processing of these programs is appropriately stored in a RAM, an external storage device, or the like.
  • each program stored in the external storage device (or ROM, etc.) and the data required for processing of each program are read into the memory as needed, and are appropriately interpreted and executed and processed by the CPU. ..
  • the CPU realizes a predetermined function (each component represented by the above, ... section, ... means, etc.).
  • the present invention is not limited to the above-described embodiment, and can be appropriately modified without departing from the spirit of the present invention. Further, the processes described in the above-described embodiment are not only executed in chronological order according to the order described, but may also be executed in parallel or individually depending on the processing capacity of the device that executes the processes or if necessary. ..
  • the processing function in the hardware entity (device of the present invention) described in the above embodiment is realized by the computer, the processing content of the function that the hardware entity should have is described by the program. Then, by executing this program on the computer, the processing function in the above hardware entity is realized on the computer.
  • the program that describes this processing content can be recorded on a computer-readable recording medium.
  • the recording medium that can be read by a computer may be, for example, a magnetic recording device, an optical disk, a photomagnetic recording medium, a semiconductor memory, or the like.
  • a hard disk device, a flexible disk, a magnetic tape or the like as a magnetic recording device, and an optical disk such as a DVD (DigitalVersatileDisc), a DVD-RAM (RandomAccessMemory), or a CD-ROM (CompactDiscReadOnly). Memory), CD-R (Recordable) / RW (ReWritable), etc., MO (Magneto-Optical disc), etc. as a magneto-optical recording medium, EEP-ROM (Electronically Erasable and Programmable-Read Only Memory), etc. as a semiconductor memory. Can be used.
  • the distribution of this program is carried out, for example, by selling, transferring, renting, etc. a portable recording medium such as a DVD or CD-ROM in which the program is recorded. Further, 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 the network.
  • a computer that executes such a program first, for example, first stores 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. You may execute the process according to the received program one by one each time. 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 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 that regulates the processing of the computer, etc.).
  • the hardware entity is configured by executing a predetermined program on the computer, but at least a part of these processing contents may be realized in terms of hardware.

Landscapes

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

Abstract

効率的に浮動小数点の指数部を統一する秘密計算技術を提供する。浮動小数点ベクトルのシェア([[→a]]P, [[→ρ]]Q)(→a=(a0,…, am-1), →ρ=(ρ0, …, ρm-1))から、指数部を統一した浮動小数点ベクトルのシェア([[→b]]P, [[→ρmax]]Q)(→b=(b0,…, bm-1), →ρmax=(ρmax, …, ρmax)(ρmax=max{ρ0, …, ρm-1})であり、2ρ_iai≒2ρ_maxbiを満たす)を計算する秘密指数部統一システムであって、シェア[[→a]]Pの第i要素とシェア[[→ρdif]]Q=[[→ρ]]Q-[[→ρmax]]Qを複製秘密分散に変換したシェア<<→ρdif>>Qの第i要素とから、数値biのシェア[[bi]]P(bi=2-ρ_dif,iai)を計算することによりシェア[[→b]]Pを計算する仮数部計算手段とを含む。

Description

秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム
 本発明は、秘密計算技術に関し、特に秘密計算において複数の浮動小数点の指数部統一演算を行う技術に関する。
 秘密計算とは、暗号化された数値を復元することなく指定された演算の結果を得る方法のことである(例えば参考非特許文献1参照)。参考非特許文献1の方法では、数値を復元することのできる複数の情報を3つの秘密計算装置に分散するという暗号化を行い、数値を復元することなく、加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)の結果を3つの秘密計算装置に分散された状態、すなわち暗号化されたまま保持させることができる。一般に、分散数は3に限らずW(Wは3以上の所定の定数)とすることができ、W個の秘密計算装置による協調計算によって秘密計算を実現するプロトコルはマルチパーティプロトコルと呼ばれる。
(参考非特許文献1:千田浩司, 濱田浩気, 五十嵐大, 高橋克巳, “軽量検証可能3パーティ秘匿関数計算の再考,” In CSS,2010.)
 従来、浮動小数点演算を行う秘密計算のプロトコルや実装に関する文献として、非特許文献1や非特許文献2がある。浮動小数点の和を計算するためには、加算の対象となる浮動小数点の指数部を統一する必要がある。
天田拓磨, 奈良成泰, 西出隆志, 吉浦裕,"通信量を削減した浮動小数点演算のためのマルチパーティ計算,"情報処理学会論文誌, Vol.60, No.9, pp.1433-1447, 2019. Randmets, J., "Programming Languages for Secure Multi-party Computation Application Development," PhD thesis. University of Tartu, 2017.
 しかし、秘匿性を保ったまま浮動小数点の指数部を統一する方法は効率が悪いという問題がある。
 そこで本発明は、効率的に浮動小数点の指数部を統一する秘密計算技術を提供することを目的とする。
 本発明の一態様は、Pを素数、Qを剰余環の位数とし、3個以上の秘密指数部統一装置で構成され、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の指数部を統一した浮動小数点ベクトル(b, ρmax)のシェア([[b]]P, [[ρmax]]Q)(ただし、b=(b0, b1, …, bm-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_maxbi(0≦i<m)を満たす)を計算する秘密指数部統一システムであって、シェア[[ρ]]Qから、シェア[[ρmax]]Qを計算する最大値計算手段と、シェア[[ρ]]Qとシェア[[ρmax]]Qから、シェア[[ρdif]]Q=[[ρ]]Q-[[ρmax]]Qを計算する差分計算手段と、シェア[[a]]Pとシェア[[ρdif]]Qから、0≦i<mを満たすiに対して、シェア[[a]]Pの第i要素[[ai]]Pとシェア[[ρdif]]Qを複製秘密分散に変換したシェア<<ρdif>>Qの第i要素<<ρdif,i>>Qとから、数値aiを-ρdif,iビットシフトして得られる数値biのシェア[[bi]]P(ただし、bi=2-ρ_dif,iai)を計算することにより、シェア[[b]]P=([[b0]]P, [[b1]]P, …, [[bm-1]]P)を計算する仮数部計算手段と、シェア[[b]]Pとシェア[[ρmax]]Qから、シェア([[b]]P, [[ρmax]]Q)を生成する出力手段と、を含む。
 本発明によれば、秘匿性を保ったまま効率的に浮動小数点の指数部を統一することが可能となる。
秘密指数部統一システム10の構成を示すブロック図である。 秘密指数部統一装置100iの構成を示すブロック図である。 秘密指数部統一システム10の動作を示すフローチャートである。 秘密和計算システム20の構成を示すブロック図である。 秘密和計算装置200iの構成を示すブロック図である。 秘密和計算システム20の動作を示すフローチャートである。 秘密積和計算システム30の構成を示すブロック図である。 秘密積和計算装置300iの構成を示すブロック図である。 秘密積和計算システム30の動作を示すフローチャートである。 本発明の実施形態における各装置を実現するコンピュータの機能構成の一例を示す図である。
 以下、本発明の実施の形態について、詳細に説明する。なお、同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
 各実施形態の説明に先立って、この明細書における表記方法について説明する。
 ^(キャレット)は上付き添字を表す。例えば、xy^zはyzがxに対する上付き添字であり、xy^zはyzがxに対する下付き添字であることを表す。また、_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
 また、ある文字xに対する^xや~xのような上付き添え字の”^”や”~”は、本来”x”の真上に記載されるべきであるが、明細書の記載表記の制約上、^xや~xと記載しているものである。
<技術的背景>
 本発明の各実施形態における秘密計算は、既存の秘密計算上のプロトコルを用いて構築される。ここでは、まず記法について説明する。
《記法》
 Pを素数とする。例えば、メルセンヌ素数P=261-1とするとよい。pを素数Pのビット数とする。なお、p=|P|と表すこともある。Pがメルセンヌ素数であるとき、pは素数となる。例えば、P=261-1とすると、p=61となる。また、Qを剰余環の位数とする。位数Qは素数Pやそのビット数pとして用いる。また、位数Qは浮動小数点の指数部に用いることができる。位数Qを浮動小数点の指数部に用いる場合、例えば、Q=213-1とすることができる。
 kを秘密分散の閾値とする。例えば、k=2とするとよい。また、nを秘密分散の分散数(つまり、秘密計算のパーティ数)とする。例えば、n=3とするとよい。
 [[x]]yはmod y 要素xを(k, n)-秘密分散したシェアを表す。秘密分散の方法として、例えば、Shamir秘密分散や複製秘密分散を用いることができる。以下、mod y 要素xを(k, n)-複製秘密分散したシェアを<<x>>yで表す。(k, n)-複製秘密分散は(k, n)-秘密分散であることから、(k, n)-秘密分散したシェアに適用できるプロトコルは(k, n)-複製秘密分散したシェアにも適用することができる。なお、シェアを<<x>>yと表すときは、複製秘密分散の性質を利用していることを意味する。また、特に(k, k)-複製秘密分散は(k, k)-加法的秘密分散と呼ばれる。以下、mod y 要素xを(k, k)-加法的秘密分散したシェアを<x>yで表す。
 [[x]]2^mは[[x]]2の形式のシェアをm個並べたシェアを表す。なお、[[x]]2^mを数値のビット表現とみなすこともある。
 x≒yはxとyは計算機上の実数として等しいことを表す。すなわち、xとyの差が一定の誤差範囲内であることを表す。
 2つの数a,dに対してa/dは小数点以下を切り捨てる整数除算の値を表す。したがって、2のべき数による整数除算は右シフトと等価である。また、2つの数a,dに対して(a/d)Reは実数除算の値を表す。
 数aに対してceiling(a)はa以上の最小の整数を表す。
 (prop)は命題propが成り立つ場合は1、成り立たない場合は0を値にとることを表す。例えば、(1>0)は1となる。
 浮動小数点2ba(ただし、a, bはそれぞれ仮数部、指数部を表す)を浮動小数点(a, b)と表す。また、m個の浮動小数点2b_0a0, 2b_1a1, …,2b_m-1am-1(ただし、ai, bi(0≦i<m)はそれぞれ仮数部、指数部を表す)を浮動小数点ベクトル(a, b)(ただし、a=(a0, a1, …, am-1), b=(b0, b1, …, bm-1))と表す。ベクトルa=(a0, a1, …, am-1)の長さmを|a|と表すこともある。
《既存の秘密計算プロトコル》
 まず、本発明で用いる既存の秘密計算プロトコルについて説明する。加減算、定数和、乗算、定数倍、論理演算(否定、論理積、論理和、排他的論理和)、データ形式変換(整数、二進数)、指数関数の計算については、既存のプロトコルを用いる。その他本発明で用いる既存のプロトコルとして以下のものを用いる。
[(k, n)-秘密分散(複製秘密分散)から(k, k)-加法的秘密分散への変換]
入力:数値xのシェア[[x]]y(数値xのシェア<<x>>y
出力:数値xのシェア<x>y
 具体的には、参考非特許文献2に記載の方法がある。
(参考非特許文献2:Kikuchi, R., Ikarashi, D., Matsuda, T., Hamada, K. and Chida, K., “Efficient Bit-Decomposition and Modulus-Conversion Protocols with an Honest Majority,” 23rd Australasian Conference on Information Security and Privacy(ACISP 2018), Lecture Notes in Computer Science, Vol.10946, Springer, pp.64-82, 2018.)
[(k, k)-加法的秘密分散から(k, n)-秘密分散(複製秘密分散)への変換]
入力:数値xのシェア<x>y
出力:数値xのシェア[[x]]y(数値xのシェア<<x>>y
 具体的には、参考非特許文献2に記載の方法がある。
[mod 2 → mod q 変換]
入力:数値xのシェア[[x]]2(数値xのシェア<<x>>2
出力:数値xのシェア[[x]]q(数値xのシェア<<x>>q
 具体的には、参考非特許文献2に記載の方法がある。
[シフト量公開右シフト]
入力:数値xのシェア[[x]]q、シフト量ρ
出力:数値xをρビット右シフトして得られる数値のシェア[[x/2ρ]]q
 具体的には、参考非特許文献3に記載の方法がある。
(参考非特許文献3:三品気吹, 五十嵐大, 濱田浩気, 菊池亮, “高精度かつ高効率な秘密ロジスティック回帰の設計と実装,”CSS2018, 2018.)
[一括シフト量公開右シフト]
入力:数値xのシェア[[x]]q、シフト量ρ0, …, ρm-1
出力:数値xをρ0ビット, …, ρm-1ビット右シフトして得られる数値のシェア[[x/2ρ_0]]q, …, [[x/2ρ_m-1]]q
 具体的には、参考非特許文献4に記載の方法がある。
(参考非特許文献4:五十嵐大, “M op/sを超える秘密計算上の初等関数群,”SCIS2020, 2020.)
 なお、自明な方法として、シフト量公開右シフトの繰り返しで、一括シフト量公開右シフトを構成することもできる。
[商転移を使うモジュラス変換]
入力:数値xのシェア<<x>>q
出力:数値xのシェア<<x>>r
 具体的には、参考非特許文献2に記載の方法がある。
[ビット分解]
入力:数値xのシェア[[x]]
パラメータ:入力される数値の最大ビット数M
出力:数値xのシェア[[x]]2^M
 具体的には、参考非特許文献2に記載の方法がある。
《本発明の秘密計算プロトコル》
 続いて、本発明の秘密計算プロトコルについて説明する。
[乗法的ローテーション(シフト量秘匿左シフト)]
入力:数値aのシェア[[a]]P, ローテーション量(シフト量)ρ(≧0)のシェア<<ρ>>p
出力:数値aをρビット左シフトして得られる数値のシェア[[2ρa]]P
 出力となるシェアは乗算や指数関数計算のプロトコル等を用いることで計算することもできるが、ランダム置換(参考非特許文献5参照)の考えを用いた方法で計算することもできる。具体例として、n=3の場合について説明する。
(参考非特許文献5:五十嵐大, 濱田浩気, 菊池亮, 千田浩司, “インターネット環境レスポンス1秒の統計処理を目指した,秘密計算基数ソートの改良,” SCIS2014, 2014.)
(ラウンド1)
step1:シェア[[a]]Pを、パーティ0、パーティ1がシェアを持つ(k, k)-加法的秘密分散<a>Pに変換する。
step2:パーティ0、パーティ1は乱数r01を共有しておく。また、パーティ1、パーティ2は乱数r12を共有しておく。
step3:パーティ0は、b0=2(<<ρ>>^p)_01<a>P 0-r01を計算し、b0をパーティ2に送る。
 ここで、<<ρ>>p 01はシェア<<ρ>>pに関してパーティ0、パーティ1が保持するシェアを表す。また、<a>P 0はシェア<a>Pに関してパーティ0が保持するシェアを表す。
step4:パーティ1はb1=2(<<ρ>>^p)_12(2(<<ρ>>^p)_01<a>P 1+r01)-r12を計算し、b1をパーティ0に送る。
 ここで、<<ρ>>p 12はシェア<<ρ>>pに関してパーティ1、パーティ2が保持するシェアを表す。また、<a>P 1はシェア<a>Pに関してパーティ1が保持するシェアを表す。
(ラウンド2)
step5:パーティ0は<c>P 0=2(<<ρ>>^p)_20b1を計算する。
 ここで、<<ρ>>p 20はシェア<<ρ>>pに関してパーティ2、パーティ0が保持するシェアを表す。
step6:パーティ2は<c>P 2=2(<<ρ>>^p)_20(2(<<ρ>>^p)_12b0+r12)を計算する。
(ラウンド3)
step7:シェア<c>Pを(k, n)-秘密分散のシェア[[c]]Pに変換する。
 ここで、c=2ρaが成り立っている。
[シフト量秘匿右シフト]
入力:数値aのシェア[[a]]P, シフト量ρのシェア<<ρ>>p
パラメータ:シフト量の上限値M
 ただし、0≦ρ≦M, 数値aをMビット左シフトして得られる数値2Maはオーバーフローしないものとする。
出力:数値aをρビット右シフトして得られる数値のシェア[[a/2ρ]]P
step1:<<M-ρ>>pを計算する.
step2:乗法的ローテーションを用いて、数値aをM-ρビット左シフトして得られる数値のシェア[[2M-ρa]]Pを計算する。
step3:シフト量公開右シフトを用いて、数値2M-ρaをMビット右シフトして得られる数値のシェア[[a/2ρ]]P=[[2M-ρa/2M]]Pを計算する。
[シフト量秘匿シフト(その1)]
入力:数値aのシェア[[a]]P、シフト量ρのシェア<<ρ>>Q(ただし、ρ≧0の場合は左シフト、ρ<0の場合は右シフトを表すものとする)
パラメータ:入力される数値のMSB(Most Significant Bit)位置のとりうる上限値M
出力:数値aをρビットシフトして得られる数値sのシェア[[s]]P
 ここで、s=2ρaが成り立つ。
step1:モジュラス変換を用いて、シェア<<ρ>>pを計算する。モジュラス変換には、例えば、先述の商転移を使うモジュラス変換を用いることができる。
step2:大小比較により、[[fL]]2=[[(ρ≧0)]]2を計算する。
step3:mod 2 → mod p 変換を用いて、<<fL>>pを計算する。
step4:<<ρ’>>p=<<ρ>>p+M-M<<fL>>pを計算する。
step5:乗法的ローテーションを用いて、[[b]]P=[[2ρ’a]]Pを計算する。
step6:シフト量公開右シフトを用いて、[[c]]P=[[2ρ’a/2M]]Pを計算する。
step7:mod 2 → mod P 変換を用いて、[[fL]]Pを計算する。
step8:[[s]]P=[[c]]P+([[b]]P-[[c]]P)[[fL]]Pを計算する。
 この式は選択ゲートになっており、ρ<0の場合はs=c、ρ≧0の場合はs=bとなる。
[シフト量秘匿シフト(その2)]
入力:数値aのシェア[[a]]P、シフト量ρのシェア<<ρ>>Q(ただし、ρ≧0の場合は左シフト、ρ<0の場合は右シフトを表すものとする)
パラメータ:入力される数値のMSB位置のとりうる上限値M、シェアが許容するMSB位置の上限値M’
出力:数値aをρビットシフトして得られる数値sのシェア[[s]]P
 ここで、s=2ρaが成り立つ。
step1:u=M’-M+1, d=ceiling(((M-1)/u)Re)を計算する。
 ここで、uは一回のシフト量秘匿右シフトでカバーできる右シフト量(具体的には、1からM’-Mビットの範囲の量)、dは1からM-1ビットの範囲の右シフトをするのに必要なシフト量秘匿右シフトの実行回数である。
step2:モジュラス変換を用いて、シェア<<ρ>>pを計算する。モジュラス変換には、例えば、先述の商転移を使うモジュラス変換を用いることができる。
step3:大小比較により、[[f0]]2=[[(ρ≧-M+1)]]2, [[f1]]2=[[(ρ≧-M+1+u)]]2, …, [[fd-1]]2=[[(ρ≧-M+1+(d-1)u)]]2, [[fL]]2=[[(ρ≧0)]]2を計算する。
 ここで、fLならばfd-1, fd-1ならばfd-2, …が成り立つ。このような性質を持つf0, f1, …, fd-1, fLのことを推移的フラグという。
step4:mod 2 → mod p 変換を用いて、<<f1>>p, <<f2>>p, …, <<fd-1>>p, <<fL>>pを計算する。
 本ステップでは、<<f0>>pの計算は不要である。
step5:<<ρ’>>p=<<ρ>>p+M-1-u(Σ1≦i<d<<fi>>p)+((d-1)u-M+1)<<fL>>pを計算する。
step6:乗法的ローテーションを用いて、[[b]]P=[[2ρ’a]]Pを計算する。
step7:一括シフト量公開右シフトを用いて、[[c0]]P=[[2ρ’a/2M-1]]P, [[c1]]P=[[2ρ’a/(2M-1-u)]]P, …,[[cd-1]]P=[[2ρ’a/(2M-1-(d-1)u)]]Pを計算する。
step8:mod 2 → mod P 変換を用いて、[[f0]]P, [[f1]]P, …, [[fd-1]]P, [[fL]]Pを計算する。
 本ステップでは、[[f0]]pの計算は必要である。
step9:[[s]]P=[[c0]]P[[f0]]P+([[c1]]P-[[c0]]P)[[f1]]P+…+([[cd-1]]P-[[cd-2]]P)[[fd-1]]P+([[b]]P-[[cd-1]]P)[[fL]]Pを計算する。
 この式は推移的フラグf0, f1, …, fd-1, fLに対する選択ゲートになっており、f0, f1, …, fd-1, fLがすべて0ならばs=0、f0ならばs=c0、f1ならばs=c1、…、fLならばs=bとなる。
[シフト量秘匿シフト(その3)]
入力:数値aのシェア[[a]]P、シフト量ρのシェア<<ρ>>Q(ただし、ρ≧0の場合は左シフト、ρ<0の場合は右シフトを表すものとする)
パラメータ:入力される数値のMSB位置のとりうる上限値M、シェアが許容するMSB位置の上限値M’
出力:数値aをρビットシフトして得られる数値sのシェア[[s]]P
 ここで、s=2ρaが成り立つ。
step1:uをu≦M’-M+1を満たす整数とする。また、[R, R’]を分割した右シフトでカバーする右シフト量の範囲とし、dをd≧ceiling(((R’-R+1)/u)Re)を満たす整数とする。
 以下、{}Lは、-Rより大きいシフト量を考慮しなくてよい場合(例えば、右シフトであると分かっている場合)、当該括弧で囲んだ部分の計算を省略できることを表す。また、{}0は、-R’より小さいシフト量を考慮しなくてよい場合(例えば、右シフト量がシフト量秘匿シフト(その1)が適用できる値よりは大きいが極端に大きい値ではないと分かっている場合)、当該括弧で囲んだ部分の計算を省略できることを表す。
step2:モジュラス変換を用いて、シェア<<ρ>>pを計算する。モジュラス変換には、例えば、先述の商転移を使うモジュラス変換を用いることができる。
step3:大小比較により、{[[f0]]2=[[(ρ≧-R’)]]2,}0 [[f1]]2=[[(ρ≧-R’+u)]]2, …, [[fd-1]]2=[[(ρ≧-R’+(d-1)u)]]2{, [[fL]]2=[[(ρ≧-R+1)]]2}Lを計算する。
 ここで、fLならばfd-1, fd-1ならばfd-2, …が成り立つ。このような性質を持つf0, f1, …, fd-1, fLのことを推移的フラグという。
step4:mod 2 → mod p 変換を用いて、<<f1>>p, <<f2>>p, …, <<fd-1>>p{, <<fL>>p}Lを計算する。
step5:<<ρ’>>p=<<ρ>>p+R’-u(Σ1≦i<d<<fi>>p){+((d-1)u-R’)<<fL>>p}Lを計算する。
step6:乗法的ローテーションを用いて、[[b]]P=[[2ρ’a]]Pを計算する。
step7:一括シフト量公開右シフトを用いて、{[[c0]]P=[[2ρ’a/2R’]]P,}0 [[c1]]P=[[2ρ’a/(2R’-u)]]P, …,[[cd-1]]P=[[2ρ’a/(2R’-(d-1)u)]]Pを計算する。
step8:mod 2 → mod P 変換を用いて、{[[f0]]P,}0[[f1]]P, …, [[fd-1]]P{, [[fL]]P}Lを計算する。
step9:[[s]]P={[[c0]]P[[f0]]P+(}0[[c1]]P{-[[c0]]P)}0[[f1]]P+…+([[cd-1]]P-[[cd-2]]P)[[fd-1]]P{+([[b]]P-[[cd-1]]P)[[fL]]P}Lを計算する。
 この式は推移的フラグf0, f1, …, fd-1, fLに対する選択ゲートになっており、f0, f1, …, fd-1, fLがすべて0ならばs=0、f0ならばs=c0、f1ならばc1、…、fLならばs=bとなる。
 なお、R=1, R’=M-1, u=M’-M+1, d=ceiling(((R’-R+1)/u)Re)とすると、シフト量秘匿シフト(その3)はシフト量秘匿シフト(その2)となる。このことから、シフト量秘匿シフト(その3)はシフト量秘匿シフト(その2)を一般化したプロトコルである。
[最大値計算]
入力:ベクトルaのシェア[[a]]Q(ただし、a=(a0, a1, …, am-1), ai(0≦i<m)はビット表現した整数である)
パラメータ:入力される数値の最大ビット数M
出力:最大値amaxのシェア[[amax]]Q(ただし、amax=max{a0, a1, …, am-1})
step1:ai(0≦i<m)の最左ビットai,M-1(0≦i<m)のORであるamax,M-1のシェア[[amax,M-1]]Q(ただし、amax,M-1=a0,M-1OR a1,M-1 OR…OR am-1,M-1)を計算する。
step2:0≦i<mに対して、[[ei,M-1]]Q=[[ai,M-1XOR amax,M-1]]Qを計算する。
step3:for j=M-2 to 0 do
step3-1:0≦i<mに対して、[[bi,j]]Q=[[ai,j∧ei,j+1]]Qを計算する。
step3-2:bi,j(0≦i<m)のORであるamax,jのシェア[[amax,j]]Q(ただし、amax,j=b0,jOR b1,j OR…OR bm-1,j)を計算する。
step3-3:0≦i<mに対して、[[e’i,j]]Q=[[ei,j+1∧ ¬amax,j]]Qを計算する。
step3-4:0≦i<mに対して、[[ei,j]]Q=[[bi,jXOR e’i,j]]Qを計算する。
step4:amax=amax,M-1amax,M…amax,0(amax,M-1 amax,M…amax,0はamax,jを右からj桁目のビットとするビット表現である)を生成する。
 なお、先述のビット分解を実行した後に本プロトコルを実行する場合は、Q=2とすればよい。
[浮動小数点ベクトルの指数部統一]
入力:浮動小数点数ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))
出力:浮動小数点ベクトル(a, ρ)の指数部を統一した浮動小数点ベクトル(b, ρmax)のシェア([[b]]P, [[ρmax]]Q)(ただし、b=(b0, b1, …, bm-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)である)
 ここで、2ρ_iai≒2ρ_maxbi (0≦i<m)が成り立つ。
step1:最大値計算を用いて、[[ρ]]Qから[[ρmax]]Qを得る。
step2:[[ρdif]]Q=[[ρ]]Q-[[ρmax]]Qを計算する。
step3:シフト量秘匿シフト(その2)またはシフト量秘匿シフト(その3)を用いて、シェア[[a]]Pの第i要素[[ai]]Pとシェア[[ρdif]]Qを複製秘密分散に変換したシェア<<ρdif>>Qの第i要素<<ρdif,i>>Qとから、数値aiを-ρdif,iビットシフトして得られる数値biのシェア[[bi]]P(ただし、bi=2-ρ_dif,iai)を計算することにより、シェア[[b]]P=([[b0]]P, [[b1]]P, …, [[bm-1]]P)を計算する。
step4:シェア([[b]]P, [[ρmax]]Q)を生成する。
[浮動小数点ベクトル和]
入力:浮動小数点数ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))
パラメータ:ベクトル長m
出力:浮動小数点ベクトル(a, ρ)の要素である浮動小数点の和である浮動小数点(b, σ)のシェア([[b]]P, [[σ]]Q)
 ここで、Σ0≦i<m2ρ_iai≒2σbが成り立つ。
step1:浮動小数点ベクトルの指数部統一を用いて、シェア([[a]]P, [[ρ]]Q)の要素の指数部を統一したシェア([[a’]]P, [[ρmax]]Q)(ただし、a’=(a’0, a’1, …, a’m-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_max a’i(0≦i<m)を満たす)を計算する。
step2:シェア([[b]]P, [[σ]]Q)(ただし、b=Σ0≦i<ma’i, σ=ρmax)を計算する。
[浮動小数点ベクトル積和]
入力:浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1)), 浮動小数点ベクトル(b, σ)のシェア([[b]]P, [[σ]]Q) (ただし、b=(b0, b1, …, bm-1), σ=(σ0, σ1, …, σm-1))
パラメータ:ベクトル長m
出力:浮動小数点ベクトル(a, ρ)の要素である浮動小数点と浮動小数点ベクトル(b, σ)の要素である浮動小数点の積和である浮動小数点(c, τ)のシェア([[c]]P, [[τ]]Q)
 ここで、Σ0≦i<m2ρ_i+σ_iaibi≒2τcが成り立つ。
step1:浮動小数点ベクトルの指数部統一を用いて、シェア([[a]]P, [[ρ]]Q)の要素の指数部を統一したシェア([[a’]]P, [[ρmax]]Q) (ただし、a’=(a’0, a’1, …, a’m-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_max a’i(0≦i<m)を満たす), シェア([[b]]P, [[σ]]Q) の要素の指数部を統一したシェア([[b’]]P, [[σmax]]Q) (ただし、b’=(b’0, b’1, …, b’m-1), σmax=(σmax, σmax, …, σmax)(ただし、σmax=max{σ0, σ1, …, σm-1}, |σmax|=m)であり、2σ_ibi≒2σ_maxb’i(0≦i<m)を満たす)を計算する。
step2:シェア([[c]]P, [[τ]]Q)(ただし、c=Σ0≦i<ma’ib’i, τ=ρmaxmax)を計算する。
<第1実施形態>
 以下、図1~図3を参照して秘密指数部統一システム10について説明する。図1は、秘密指数部統一システム10の構成を示すブロック図である。秘密指数部統一システム10は、W個(Wは3以上の所定の整数)の秘密指数部統一装置1001、…、100Wを含む。秘密指数部統一装置1001、…、100Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図2は、秘密指数部統一装置100i(1≦i≦W)の構成を示すブロック図である。図3は、秘密指数部統一システム10の動作を示すフローチャートである。
 図2に示すように秘密指数部統一装置100iは、最大値計算部110iと、差分計算部120iと、仮数部計算部130iと、出力部140iと、記録部190iを含む。記録部190iを除く秘密指数部統一装置100iの各構成部は、秘密計算で必要とされる演算、つまり、<技術的背景>で説明したプロトコルのうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば参考非特許文献1~5のそれぞれで開示されるアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部190iは、秘密指数部統一装置100iの処理に必要な情報を記録する構成部である。
 W個の秘密指数部統一装置100iによる協調計算によって、秘密指数部統一システム10はマルチパーティプロトコルである浮動小数点ベクトルの指数部統一の秘密計算を実現する。よって、秘密指数部統一システム10の最大値計算手段110(図示していない)は最大値計算部1101、…、110Wで構成され、差分計算手段120(図示していない)は差分計算部1201、…、120Wで構成され、仮数部計算手段130(図示していない)は仮数部計算部1301、…、130Wで構成され、出力手段140(図示していない)は出力部1401、…、140Wで構成される。
 Pを素数、Qを剰余環の位数とし、秘密指数部統一システム10は、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の指数部を統一した浮動小数点ベクトル(b, ρmax)のシェア([[b]]P, [[ρmax]]Q)(ただし、b=(b0, b1, …, bm-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_maxbi(0≦i<m)を満たす)を計算する。以下、図3に従い秘密指数部統一システム10の動作について説明する。
 S110において、最大値計算手段110は、シェア[[ρ]]Qから、シェア[[ρmax]]Qを計算する。最大値計算手段110は、例えば、最大値計算を実行できるように構成されていればよい。
 S120において、差分計算手段120は、シェア[[ρ]]QとS110で計算したシェア[[ρmax]]Qから、シェア[[ρdif]]Q=[[ρ]]Q-[[ρmax]]Qを計算する。
 S130において、仮数部計算手段130は、シェア[[a]]PとS120で計算したシェア[[ρdif]]Qから、0≦i<mを満たすiに対して、シェア[[a]]Pの第i要素[[ai]]Pとシェア[[ρdif]]Qを複製秘密分散に変換したシェア<<ρdif>>Qの第i要素<<ρdif,i>>Qとから、数値aiを-ρdif,iビットシフトして得られる数値biのシェア[[bi]]P(ただし、bi=2-ρ_dif,iai)を計算することにより、シェア[[b]]P=([[b0]]P, [[b1]]P, …, [[bm-1]]P)を計算する。仮数部計算手段130は、例えば、シフト量秘匿シフト(その2)またはシフト量秘匿シフト(その3)を実行できるように構成されていればよい。
 S140において、出力手段140は、S130で計算したシェア[[b]]PとS110で計算したシェア[[ρmax]]Qから、シェア([[b]]P, [[ρmax]]Q)を生成する。
 本発明の実施形態によれば、秘匿性を保ったまま効率的に浮動小数点の指数部を統一することが可能となる。
<第2実施形態>
 以下、図4~図6を参照して秘密和計算システム20について説明する。図4は、秘密和計算システム20の構成を示すブロック図である。秘密和計算システム20は、W個(Wは3以上の所定の整数)の秘密和計算装置2001、…、200Wを含む。秘密和計算装置2001、…、200Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図5は、秘密和計算装置200i(1≦i≦W)の構成を示すブロック図である。図6は、秘密和計算システム20の動作を示すフローチャートである。
 図5に示すように秘密和計算装置200iは、指数部統一部210iと、和計算部220iと、記録部290iを含む。記録部290iを除く秘密和計算装置200iの各構成部は、秘密計算で必要とされる演算、つまり、<技術的背景>で説明したプロトコルのうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば参考非特許文献1~5のそれぞれで開示されるアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部290iは、秘密和計算装置200iの処理に必要な情報を記録する構成部である。
 W個の秘密和計算装置200iによる協調計算によって、秘密和計算システム20はマルチパーティプロトコルである浮動小数点ベクトル和の秘密計算を実現する。よって、秘密和計算システム20の指数部統一手段210(図示していない)は指数部統一部2101、…、210Wで構成され、和計算手段220(図示していない)は和計算部2201、…、220Wで構成される。
 Pを素数、Qを剰余環の位数とし、秘密和計算システム20は、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の要素である浮動小数点の和である浮動小数点(b, σ)のシェア([[b]]P, [[σ]]Q)(ただし、Σ0≦i<m2ρ_iai≒2σbを満たす)を計算する。以下、図6に従い秘密和計算システム20の動作について説明する。
 S210において、指数部統一手段210は、シェア([[a]]P, [[ρ]]Q)から、浮動小数点ベクトル(a, ρ)の浮動小数点の指数部を統一した浮動小数点ベクトル(a’, ρmax)のシェア([[a’]]P, [[ρmax]]Q)(ただし、a’=(a’0, a’1, …, a’m-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_max a’i(0≦i<m)を満たす)を計算する。指数部統一手段210は、例えば、秘密指数部統一システム10に含まれる各手段(つまり、最大値計算手段110、差分計算手段120、仮数部計算手段130、出力手段140)を用いて構成されていればよい。この場合、秘密和計算装置200iの指数部統一部210iは、最大値計算部110i、差分計算部120i、仮数部計算部130i、出力部140iを含むように構成される。
 S220において、和計算手段220は、S210で計算したシェア([[a’]]P, [[ρmax]]Q)から、シェア([[b]]P, [[σ]]Q)(ただし、b=Σ0≦i<ma’i, σ=ρmax)を計算する。
 本発明の実施形態によれば、効率的に浮動小数点の指数部を統一する秘密計算を用いることにより、効率的に浮動小数点の和を計算することが可能となる。
<第3実施形態>
 以下、図7~図9を参照して秘密積和計算システム30について説明する。図7は、秘密積和計算システム30の構成を示すブロック図である。秘密積和計算システム30は、W個(Wは3以上の所定の整数)の秘密積和計算装置3001、…、300Wを含む。秘密積和計算装置3001、…、300Wは、ネットワーク800に接続しており、相互に通信可能である。ネットワーク800は、例えば、インターネットなどの通信網あるいは同報通信路などでよい。図8は、秘密積和計算装置300i(1≦i≦W)の構成を示すブロック図である。図9は、秘密積和計算システム30の動作を示すフローチャートである。
 図8に示すように秘密積和計算装置300iは、指数部統一部310iと、積和計算部320iと、記録部390iを含む。記録部390iを除く秘密積和計算装置300iの各構成部は、秘密計算で必要とされる演算、つまり、<技術的背景>で説明したプロトコルのうち、各構成部の機能を実現するうえで必要になる演算を実行できるように構成されている。本発明において個々の演算を実現するための具体的な機能構成は、例えば参考非特許文献1~5のそれぞれで開示されるアルゴリズムを実行できるような構成で十分であり、これらは従来的構成であるから詳細な説明については省略する。また、記録部390iは、秘密積和計算装置300iの処理に必要な情報を記録する構成部である。
 W個の秘密積和計算装置300iによる協調計算によって、秘密積和計算システム30はマルチパーティプロトコルである浮動小数点ベクトル積和の秘密計算を実現する。よって、秘密積和計算システム30の指数部統一手段310(図示していない)は指数部統一部3101、…、310Wで構成され、積和計算手段320(図示していない)は積和計算部3201、…、320Wで構成される。
 Pを素数、Qを剰余環の位数とし、秘密積和計算システム30は、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))と浮動小数点ベクトル(b, σ)のシェア([[b]]P, [[σ]]Q) (ただし、b=(b0, b1, …, bm-1), σ=(σ0, σ1, …, σm-1))から、浮動小数点ベクトル(a, ρ)の要素である浮動小数点と浮動小数点ベクトル(b, σ)の要素である浮動小数点の積和である浮動小数点(c, τ)のシェア([[c]]P, [[τ]]Q)(ただし、Σ0≦i<m2ρ_i+σ_iaibi≒2τcを満たす)を計算する。以下、図9に従い秘密積和計算システム30の動作について説明する。
 S310において、指数部統一手段310は、シェア([[a]]P, [[ρ]]Q)とシェア([[b]]P, [[σ]]Q)から、浮動小数点ベクトル(a, ρ)の浮動小数点の指数部を統一した浮動小数点ベクトル(a’, ρmax)のシェア([[a’]]P, [[ρmax]]Q)(ただし、a’=(a’0, a’1, …, a’m-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_max a’i(0≦i<m)を満たす)と浮動小数点ベクトル(b, σ)の浮動小数点の指数部を統一した浮動小数点ベクトル(b’, σmax)のシェア([[b’]]P, [[σmax]]Q) (ただし、b’=(b’0, b’1, …, b’m-1), σmax=(σmax, σmax, …, σmax)(ただし、σmax=max{σ0, σ1, …, σm-1}, |σmax|=m)であり、2σ_ibi≒2σ_maxb’i(0≦i<m)を満たす)を計算する。指数部統一手段310は、例えば、秘密指数部統一システム10に含まれる各手段(つまり、最大値計算手段110、差分計算手段120、仮数部計算手段130、出力手段140)を用いて構成されていればよい。この場合、秘密和計算装置300iの指数部統一部310iは、最大値計算部110i、差分計算部120i、仮数部計算部130i、出力部140iを含むように構成される。
 S320において、積和計算手段320は、S310で計算したシェア([[a’]]P, [[ρmax]]Q)とシェア([[b’]]P, [[σmax]]Q)から、シェア([[c]]P, [[τ]]Q)(ただし、c=Σ0≦i<ma’ib’i, τ=ρmaxmax)を計算する。
 本発明の実施形態によれば、効率的に浮動小数点の指数部を統一する秘密計算を用いることにより、効率的に浮動小数点の積和を計算することが可能となる。
<補記>
 図10は、上述の各装置を実現するコンピュータの機能構成の一例を示す図である。上述の各装置における処理は、記録部2020に、コンピュータを上述の各装置として機能させるためのプログラムを読み込ませ、制御部2010、入力部2030、出力部2040などに動作させることで実施できる。
 本発明の装置は、例えば単一のハードウェアエンティティとして、キーボードなどが接続可能な入力部、液晶ディスプレイなどが接続可能な出力部、ハードウェアエンティティの外部に通信可能な通信装置(例えば通信ケーブル)が接続可能な通信部、CPU(Central Processing Unit、キャッシュメモリやレジスタなどを備えていてもよい)、メモリであるRAMやROM、ハードディスクである外部記憶装置並びにこれらの入力部、出力部、通信部、CPU、RAM、ROM、外部記憶装置の間のデータのやり取りが可能なように接続するバスを有している。また必要に応じて、ハードウェアエンティティに、CD-ROMなどの記録媒体を読み書きできる装置(ドライブ)などを設けることとしてもよい。このようなハードウェア資源を備えた物理的実体としては、汎用コンピュータなどがある。
 ハードウェアエンティティの外部記憶装置には、上述の機能を実現するために必要となるプログラムおよびこのプログラムの処理において必要となるデータなどが記憶されている(外部記憶装置に限らず、例えばプログラムを読み出し専用記憶装置であるROMに記憶させておくこととしてもよい)。また、これらのプログラムの処理によって得られるデータなどは、RAMや外部記憶装置などに適宜に記憶される。
 ハードウェアエンティティでは、外部記憶装置(あるいはROMなど)に記憶された各プログラムとこの各プログラムの処理に必要なデータが必要に応じてメモリに読み込まれて、適宜にCPUで解釈実行・処理される。その結果、CPUが所定の機能(上記、…部、…手段などと表した各構成部)を実現する。
 本発明は上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。また、上記実施形態において説明した処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されるとしてもよい。
 既述のように、上記実施形態において説明したハードウェアエンティティ(本発明の装置)における処理機能をコンピュータによって実現する場合、ハードウェアエンティティが有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記ハードウェアエンティティにおける処理機能がコンピュータ上で実現される。
 この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD-RAM(Random Access Memory)、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP-ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
 また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
 また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、ハードウェアエンティティを構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
 上述の本発明の実施形態の記載は、例証と記載の目的で提示されたものである。網羅的であるという意思はなく、開示された厳密な形式に発明を限定する意思もない。変形やバリエーションは上述の教示から可能である。実施形態は、本発明の原理の最も良い例証を提供するために、そして、この分野の当業者が、熟考された実際の使用に適するように本発明を色々な実施形態で、また、色々な変形を付加して利用できるようにするために、選ばれて表現されたものである。すべてのそのような変形やバリエーションは、公正に合法的に公平に与えられる幅にしたがって解釈された添付の請求項によって定められた本発明のスコープ内である。

Claims (6)

  1.  Pを素数、Qを剰余環の位数とし、
     3個以上の秘密指数部統一装置で構成され、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の指数部を統一した浮動小数点ベクトル(b, ρmax)のシェア([[b]]P, [[ρmax]]Q)(ただし、b=(b0, b1, …, bm-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_maxbi(0≦i<m)を満たす)を計算する秘密指数部統一システムであって、
     シェア[[ρ]]Qから、シェア[[ρmax]]Qを計算する最大値計算手段と、
     シェア[[ρ]]Qとシェア[[ρmax]]Qから、シェア[[ρdif]]Q=[[ρ]]Q-[[ρmax]]Qを計算する差分計算手段と、
     シェア[[a]]Pとシェア[[ρdif]]Qから、0≦i<mを満たすiに対して、シェア[[a]]Pの第i要素[[ai]]Pとシェア[[ρdif]]Qを複製秘密分散に変換したシェア<<ρdif>>Qの第i要素<<ρdif,i>>Qとから、数値aiを-ρdif,iビットシフトして得られる数値biのシェア[[bi]]P(ただし、bi=2-ρ_dif,iai)を計算することにより、シェア[[b]]P=([[b0]]P, [[b1]]P, …, [[bm-1]]P)を計算する仮数部計算手段と、
     シェア[[b]]Pとシェア[[ρmax]]Qから、シェア([[b]]P, [[ρmax]]Q)を生成する出力手段と、
     を含む秘密指数部統一システム。
  2.  Pを素数、Qを剰余環の位数とし、
     浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の指数部を統一した浮動小数点ベクトル(b, ρmax)のシェア([[b]]P, [[ρmax]]Q)(ただし、b=(b0, b1, …, bm-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_maxbi(0≦i<m)を満たす)を計算する、3個以上の秘密指数部統一装置で構成される秘密指数部統一システムの中の秘密指数部統一装置であって、
     シェア[[ρ]]Qから、シェア[[ρmax]]Qを計算する最大値計算部と、
     シェア[[ρ]]Qとシェア[[ρmax]]Qから、シェア[[ρdif]]Q=[[ρ]]Q-[[ρmax]]Qを計算する差分計算部と、
     シェア[[a]]Pとシェア[[ρdif]]Qから、0≦i<mを満たすiに対して、シェア[[a]]Pの第i要素[[ai]]Pとシェア[[ρdif]]Qを複製秘密分散に変換したシェア<<ρdif>>Qの第i要素<<ρdif,i>>Qとから、数値aiを-ρdif,iビットシフトして得られる数値biのシェア[[bi]]P(ただし、bi=2-ρ_dif,iai)を計算することにより、シェア[[b]]P=([[b0]]P, [[b1]]P, …, [[bm-1]]P)を計算する仮数部計算部と、
     シェア[[b]]Pとシェア[[ρmax]]Qから、シェア([[b]]P, [[ρmax]]Q)を生成する出力部と、
     を含む秘密指数部統一装置。
  3.  Pを素数、Qを剰余環の位数とし、
     3個以上の秘密指数部統一装置で構成される秘密指数部統一システムが、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の指数部を統一した浮動小数点ベクトル(b, ρmax)のシェア([[b]]P, [[ρmax]]Q)(ただし、b=(b0, b1, …, bm-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_maxbi(0≦i<m)を満たす)を計算する秘密指数部統一方法であって、
     前記秘密指数部統一システムが、シェア[[ρ]]Qから、シェア[[ρmax]]Qを計算する最大値計算ステップと、
     前記秘密指数部統一システムが、シェア[[ρ]]Qとシェア[[ρmax]]Qから、シェア[[ρdif]]Q=[[ρ]]Q-[[ρmax]]Qを計算する差分計算ステップと、
     前記秘密指数部統一システムが、シェア[[a]]Pとシェア[[ρdif]]Qから、0≦i<mを満たすiに対して、シェア[[a]]Pの第i要素[[ai]]Pとシェア[[ρdif]]Qを複製秘密分散に変換したシェア<<ρdif>>Qの第i要素<<ρdif,i>>Qとから、数値aiを-ρdif,iビットシフトして得られる数値biのシェア[[bi]]P(ただし、bi=2-ρ_dif,iai)を計算することにより、シェア[[b]]P=([[b0]]P, [[b1]]P, …, [[bm-1]]P)を計算する仮数部計算ステップと、
     前記秘密指数部統一システムが、シェア[[b]]Pとシェア[[ρmax]]Qから、シェア([[b]]P, [[ρmax]]Q)を生成する出力ステップと、
     を含む秘密指数部統一方法。
  4.  Pを素数、Qを剰余環の位数とし、
     3個以上の秘密和計算装置で構成され、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))から、浮動小数点ベクトル(a, ρ)の要素である浮動小数点の和である浮動小数点(b, σ)のシェア([[b]]P, [[σ]]Q)(ただし、Σ0≦i<m2ρ_iai≒2σbを満たす)を計算する秘密和計算システムであって、
     シェア([[a]]P, [[ρ]]Q)から、浮動小数点ベクトル(a, ρ)の浮動小数点の指数部を統一した浮動小数点ベクトル(a’, ρmax)のシェア([[a’]]P, [[ρmax]]Q)(ただし、a’=(a’0, a’1, …, a’m-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_max a’i(0≦i<m)を満たす)を計算する指数部統一手段と、
     シェア([[a’]]P, [[ρmax]]Q)から、シェア([[b]]P, [[σ]]Q)(ただし、b=Σ0≦i<ma’i, σ=ρmax)を計算する和計算手段と、
     を含み、
     前記指数部統一手段は請求項1に記載の秘密指数部統一システムに含まれる各手段を用いて構成される
     秘密和計算システム。
  5.  Pを素数、Qを剰余環の位数とし、
     3個以上の秘密積和計算装置で構成され、浮動小数点ベクトル(a, ρ)のシェア([[a]]P, [[ρ]]Q) (ただし、a=(a0, a1, …, am-1), ρ=(ρ0, ρ1, …, ρm-1))と浮動小数点ベクトル(b, σ)のシェア([[b]]P, [[σ]]Q) (ただし、b=(b0, b1, …, bm-1), σ=(σ0, σ1, …, σm-1))から、浮動小数点ベクトル(a, ρ)の要素である浮動小数点と浮動小数点ベクトル(b, σ)の要素である浮動小数点の積和である浮動小数点(c, τ)のシェア([[c]]P, [[τ]]Q)(ただし、Σ0≦i<m2ρ_i+σ_iaibi≒2τcを満たす)を計算する秘密積和計算システムであって、
     シェア([[a]]P, [[ρ]]Q)とシェア([[b]]P, [[σ]]Q)から、浮動小数点ベクトル(a, ρ)の浮動小数点の指数部を統一した浮動小数点ベクトル(a’, ρmax)のシェア([[a’]]P, [[ρmax]]Q)(ただし、a’=(a’0, a’1, …, a’m-1), ρmax=(ρmax, ρmax, …, ρmax)(ただし、ρmax=max{ρ0, ρ1, …, ρm-1}, |ρmax|=m)であり、2ρ_iai≒2ρ_max a’i(0≦i<m)を満たす)と浮動小数点ベクトル(b, σ)の浮動小数点の指数部を統一した浮動小数点ベクトル(b’, σmax)のシェア([[b’]]P, [[σmax]]Q) (ただし、b’=(b’0, b’1, …, b’m-1), σmax=(σmax, σmax, …, σmax)(ただし、σmax=max{σ0, σ1, …, σm-1}, |σmax|=m)であり、2σ_ibi≒2σ_maxb’i(0≦i<m)を満たす)を計算する指数部統一手段と、
     シェア([[a’]]P, [[ρmax]]Q)とシェア([[b’]]P, [[σmax]]Q)から、シェア([[c]]P, [[τ]]Q)(ただし、c=Σ0≦i<ma’ib’i, τ=ρmaxmax)を計算する積和計算手段と、
     を含み、
     前記指数部統一手段は請求項1に記載の秘密指数部統一システムに含まれる各手段を用いて構成される
     秘密積和計算システム。
  6.  請求項2に記載の秘密指数部統一装置としてコンピュータを機能させるためのプログラム。
PCT/JP2020/039081 2020-10-16 2020-10-16 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム WO2022079894A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2022556806A JP7452692B2 (ja) 2020-10-16 2020-10-16 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム
AU2020472126A AU2020472126B2 (en) 2020-10-16 2020-10-16 Secure exponent unification system, secure exponent unification apparatus, secure exponent unification method, secure sum computing system, secure sum-of-product computing system, and program
EP20957723.8A EP4213135A4 (en) 2020-10-16 2020-10-16 SECRET EXPOSURE PART UNIFICATION SYSTEM, SECRET EXPOSURE PART UNIFICATION DEVICE, SECRET EXPOSURE PART UNIFICATION METHOD, SECRET SUM CALCULATION SYSTEM, SECRET SUM-PRODUCT CALCULATION SYSTEM AND PROGRAM
CN202080106103.XA CN116368549A (zh) 2020-10-16 2020-10-16 秘密指数部统一系统、秘密指数部统一装置、秘密指数部统一方法、秘密和计算系统、秘密积和计算系统、程序
US18/029,375 US20230359438A1 (en) 2020-10-16 2020-10-16 Secure exponent unification system, secure exponent unification apparatus, secure exponent unification method, secure sum computing system, secure sum-of-product computing system, and program
PCT/JP2020/039081 WO2022079894A1 (ja) 2020-10-16 2020-10-16 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/039081 WO2022079894A1 (ja) 2020-10-16 2020-10-16 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム

Publications (1)

Publication Number Publication Date
WO2022079894A1 true WO2022079894A1 (ja) 2022-04-21

Family

ID=81209022

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/039081 WO2022079894A1 (ja) 2020-10-16 2020-10-16 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム

Country Status (6)

Country Link
US (1) US20230359438A1 (ja)
EP (1) EP4213135A4 (ja)
JP (1) JP7452692B2 (ja)
CN (1) CN116368549A (ja)
AU (1) AU2020472126B2 (ja)
WO (1) WO2022079894A1 (ja)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL198494A (ja) * 1954-07-01
JP4092735B2 (ja) * 1997-12-10 2008-05-28 セイコーエプソン株式会社 情報処理システム及び暗号/復号システム
CN100353342C (zh) * 2003-09-26 2007-12-05 日本电信电话株式会社 标签隐私保护方法、标签装置、后端装置
US8655939B2 (en) * 2007-01-05 2014-02-18 Digital Doors, Inc. Electromagnetic pulse (EMP) hardened information infrastructure with extractor, cloud dispersal, secure storage, content analysis and classification and method therefor
US9245148B2 (en) * 2009-05-29 2016-01-26 Bitspray Corporation Secure storage and accelerated transmission of information over communication networks
CN101895453B (zh) * 2010-07-19 2012-08-22 江苏省东方世纪网络信息有限公司 共享型总线主从通讯模式下地址自动识别的握手方法
US10778439B2 (en) * 2015-07-14 2020-09-15 Fmr Llc Seed splitting and firmware extension for secure cryptocurrency key backup, restore, and transaction signing platform apparatuses, methods and systems
US11294633B2 (en) * 2017-01-20 2022-04-05 Nippon Telegraph And Telephone Corporation Secure computation system, secure computation device, secure computation method, and program
AU2018338249B2 (en) * 2017-09-21 2020-11-26 Nippon Telegraph And Telephone Corporation Secure reading apparatus, secure writing apparatus, method thereof, and program

Non-Patent Citations (7)

* Cited by examiner, † Cited by third party
Title
IBUKI MISHINADAI IGARASHIKOKI HAMADARYO KIKUCHI: "Designs and Implementations of Efficient and Accurate Secret Logistic Regression", CSS2018, 2018
KIKUCHI, R.IKARASHI, D.MATSUDA, T.HAMADA, K.CHIDA, K.: "Lecture Notes in Computer Science", vol. 10946, 2018, SPRINGER, article "Efficient Bit-Decomposition and Modulus-Conversion Protocols with an Honest Majority", pages: 64 - 82
MEHRDAD ALIASGARI ; MARINA BLANTON ; YIHUA ZHANG ; AARON STEELE: "Secure Computation on Floating Point Numbers", IACR, INTERNATIONAL ASSOCIATION FOR CRYPTOLOGIC RESEARCH, vol. 20121210:185402, 10 December 2012 (2012-12-10), pages 1 - 31, XP061007014 *
RANDMETS, J.: "Programming Language for Secure Multi-party Computation Application Development", PHD THESIS. UNIVERSITY OF TARTU, 2017
See also references of EP4213135A4
TAKUMA AMADA; MASAHIRO NARA; TAKASHI NISHIDE; HIROSHI YOSHIURA: "2A2-2 Multiparty Computation with Redued Communication Complexity for Floating Point Arithmetic", PREPRINTS OF THE 2018 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY (SCIS 2018); 23-26/01/2018, vol. 2018, 23 January 2018 (2018-01-23) - 26 January 2018 (2018-01-26), JP, pages 1 - 8, XP009530168 *
TAKUMA AMADAMASAHIRO NARATAKASHI NISHIDEHIROSHI YOSHIURA: "Multiparty Computation for Floating Point Arithmetic with Less Communication over Small Fields", IPSJ JOURNAL, vol. 60, no. 9, 2019, pages 1433 - 1447

Also Published As

Publication number Publication date
AU2020472126B2 (en) 2024-02-15
AU2020472126A1 (en) 2023-05-25
JPWO2022079894A1 (ja) 2022-04-21
CN116368549A (zh) 2023-06-30
JP7452692B2 (ja) 2024-03-19
US20230359438A1 (en) 2023-11-09
EP4213135A1 (en) 2023-07-19
EP4213135A4 (en) 2024-05-22

Similar Documents

Publication Publication Date Title
JP6766182B2 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
JP7067632B2 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
JP7092206B2 (ja) 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
JPWO2018135563A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、プログラム
CN111931241A (zh) 基于隐私保护的线性回归特征显著性检验方法、装置
WO2021029024A1 (ja) 秘密ソフトマックス関数計算システム、秘密ソフトマックス関数計算装置、秘密ソフトマックス関数計算方法、秘密ニューラルネットワーク計算システム、秘密ニューラルネットワーク学習システム、プログラム
JPWO2020075797A1 (ja) 秘密右シフト演算システム、秘密除算システム、それらの方法、秘密計算装置、およびプログラム
Thomsen et al. Optimized reversible binary-coded decimal adders
JPWO2018008545A1 (ja) 秘密計算システム、秘密計算装置、秘密計算方法、およびプログラム
JP7315032B2 (ja) 暗号化データ分析装置、暗号化データ分析方法、プログラム
WO2022079894A1 (ja) 秘密指数部統一システム、秘密指数部統一装置、秘密指数部統一方法、秘密和計算システム、秘密積和計算システム、プログラム
WO2022079890A1 (ja) 秘密シフトシステム、秘密シフト装置、秘密シフト方法、プログラム
JP7359225B2 (ja) 秘密最大値計算装置、方法及びプログラム
WO2023281693A1 (ja) 秘密計算システム、装置、方法及びプログラム
WO2023233622A1 (ja) 秘密計算装置、秘密計算方法、プログラム
WO2023281694A1 (ja) 秘密計算システム、装置、方法及びプログラム
WO2021149101A1 (ja) 秘密選択積計算システム、秘密選択積計算方法、秘密計算装置、およびプログラム
WO2021149098A1 (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: 20957723

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022556806

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020957723

Country of ref document: EP

Effective date: 20230411

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020472126

Country of ref document: AU

Date of ref document: 20201016

Kind code of ref document: A