WO2019039383A1 - シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体 - Google Patents

シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体 Download PDF

Info

Publication number
WO2019039383A1
WO2019039383A1 PCT/JP2018/030442 JP2018030442W WO2019039383A1 WO 2019039383 A1 WO2019039383 A1 WO 2019039383A1 JP 2018030442 W JP2018030442 W JP 2018030442W WO 2019039383 A1 WO2019039383 A1 WO 2019039383A1
Authority
WO
WIPO (PCT)
Prior art keywords
share
value
unit
checksum
function
Prior art date
Application number
PCT/JP2018/030442
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 CN201880054042.XA priority Critical patent/CN111052205B/zh
Priority to AU2018321008A priority patent/AU2018321008B2/en
Priority to EP18847949.7A priority patent/EP3675090B1/en
Priority to US16/639,000 priority patent/US11818254B2/en
Priority to JP2019537591A priority patent/JP6825111B2/ja
Publication of WO2019039383A1 publication Critical patent/WO2019039383A1/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/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
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • G09C1/04Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system with sign carriers or indicators moved relative to one another to positions determined by a permutation code, or key, so as to indicate the appropriate corresponding clear or ciphered text
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Definitions

  • the present invention relates to encryption technology, and more particularly to secret calculation technology.
  • One of the secret sharing schemes is the Shamir secret sharing scheme (see, for example, Non-Patent Document 1).
  • the secret computing device can perform secret computation using the share obtained according to the Shamia secret sharing method as it is.
  • the total data amount of the share representing the secret computation result is N times the plaintext data amount. Therefore, if these shares are transmitted as they are, the total communication data amount will also be N times the plaintext data amount.
  • An object of the present invention is to provide a technology for generating a share with a small total communication data amount from a share based on the Shamia secret sharing method.
  • Each of the share generation devices A i included in the N share generation devices A 0 ,..., A N ⁇ 1 executes the following.
  • N is an integer of 2 or more
  • m is an integer of 1 or more
  • m (i) is an integer of 0 or more and less than m
  • i ( ⁇ ) i ⁇ 1 mod N
  • P m (i) is a function
  • the value obtained by multiplying the share [ ⁇ ] i according to the Shamia secret sharing method by the Lagrange coefficient ⁇ (i, i (-) ) and the Lagrange coefficient ⁇ to the share [ ⁇ ] i (-) according to the Shamia secret sharing method The sum of the value obtained by multiplying (i ( ⁇ ), i) is the restored value ⁇ .
  • the sum of the value obtained by multiplying the value) is also the recovery value ⁇ .
  • FIG. 1 is a block diagram illustrating the configuration of the secret calculation system of the embodiment.
  • FIG. 2 is a block diagram illustrating the functional configuration of the share generation device according to the embodiment.
  • FIG. 3 is a block diagram illustrating the functional configuration of the restoration apparatus of the embodiment.
  • FIG. 4 is a flowchart for explaining the share generation method of the embodiment.
  • FIG. 5 is a flowchart for explaining the restoration method of the embodiment.
  • the secret calculation system 1 of the present embodiment has N share generation devices 11-A 0 ,..., 11-A N-1 and a restoration device 12, and these devices are Internet etc. They can communicate with each other through a network.
  • N is an integer of 2 or more.
  • N is an integer of 3 or more.
  • the secret calculation system 1 may have a plurality of restoring devices.
  • Operation unit 113 -A i , secret calculation unit 114 -A i , 115 -A i , share generation unit 116 -A i , storage unit 117 -A i , communication unit 118 -A i , and control unit 119 -A i has, to execute the processes under the control of the control unit 119-a i.
  • Information output from the processing unit (site that performs processing) share generator 11-A i are stored in the storage unit 117-A i, is read as necessary is input to the other processing unit.
  • the restoration apparatus 12 of the present embodiment includes a communication unit 121, an operation unit 122, a connection unit 123, a storage unit 127, and a control unit 128, and Execute the process
  • the information output from each processing unit of the restoration apparatus 12 is stored in the storage unit 127, read out as necessary, and input to another processing unit.
  • the value obtained by multiplying the share [ ⁇ ] i according to the relevant Shamia secret sharing method by the Lagrange coefficient ⁇ (i, i ( ⁇ ) ) and the Lagrange to the share [ ⁇ ] i ( ⁇ ) according to the relevant Shamia secret sharing method The sum of the value obtained by multiplying the coefficient ⁇ (i ( ⁇ ), i) is the restored value ⁇ , and the value obtained by multiplying the share [ ⁇ ] i by the Lagrange coefficient ⁇ (i, i (+))
  • the sum of the value obtained by multiplying the share [ ⁇ ] i (+) according to the Shamia secret sharing method by the Lagrange coefficient ⁇ (i (+), i) is also the restored value ⁇ .
  • ⁇ (i, i ( ⁇ )) [ ⁇ ] i + ⁇ (i ( ⁇ ), i) [ ⁇ ] i ( ⁇ )
  • ⁇ (i, i (+)) [ ⁇ ] i + ⁇ (i (+), i) [ ⁇ ] i (+)
  • ⁇ (i, i ( ⁇ )) is a coefficient by which the share [ ⁇ ] i is multiplied when restoring the restored value ⁇ from the share [ ⁇ ] i and the share [ ⁇ ] i ( ⁇ ) i ( ⁇ ), i) is a coefficient by which the share [ ⁇ ] i ( ⁇ ) is multiplied at this time.
  • ⁇ (i, i (+)) is a coefficient by which the share [ ⁇ ] i is multiplied when recovering the restored value ⁇ from the share [ ⁇ ] i and the share [ ⁇ ] i (+) +)
  • i) are coefficients by which the share [ ⁇ ] i (+) is multiplied at this time.
  • i (+) i + 1 mod N
  • i ( ⁇ ) i ⁇ 1 mod N.
  • Lagrange coefficients ⁇ (i, i ( ⁇ )), ⁇ (i ( ⁇ ), i), ⁇ (i, i (+)), ⁇ (i (+), i) are known Lagrange's It can be easily obtained by an interpolation formula.
  • F m means a set whose elements are the original columns of m fields F.
  • An example of the set F m is an m-dimensional vector whose elements are elements of m fields F.
  • means that ⁇ is an element of ⁇ .
  • m is an integer of 1 or more.
  • m is an integer of 2 or more or an integer of 3 or more.
  • the share [x] i may be one transmitted from another device or may be one obtained by performing a secret calculation on a share transmitted from another device.
  • the division unit 111-A i (first division unit) reads the share [x] i ⁇ F m of the plaintext x conforming to the above-mentioned Shamia secret sharing method from the storage unit 117-A i .
  • the division unit 111 -A i divides and outputs the share [x] i into N shares [x 0 ] i ,..., [X N ⁇ 1 ] i by secret calculation.
  • [X j ] i is the share of the plaintext x j according to the above-mentioned Shamia secret sharing method.
  • the plaintext x is represented by N pieces of x 0 ⁇ F m (0) ,..., X N-1 ⁇ F m (N-1) .
  • the plaintext x is represented by a sequence x 0
  • share [x] i is N shares as it is [x 0] I ⁇ F m (0) , ..., [x N-1 ] i ⁇ F m (N-1) may be divided and divided.
  • m 1, only one of m (0),..., M (N-1) is 1 and the others are all 0.
  • the division unit 111-A i is not necessary to divide the shares [x] i, shared [x 0] i, ..., [x N-1] to any one share of i [x Let i be and output all remaining shares as null values.
  • the share [x] i is represented by N shares [x 0 ] i ,..., [X N-1 ] i .
  • the share [x] i is represented by a column [x 0 ] i
  • the seed acquisition unit 112-A i obtains and outputs a seed s i .
  • the data format of the seed s i is not limited, and any value may be used as the seed s i .
  • An example of the seed s i is an element of a set F w (i) having elements of the original column of w (i) fields F (s i ⁇ F w (i) ).
  • w (i) is an integer of 1 or more and less than m.
  • the “arbitrary value” may be a random number (pseudo random number or true random number), may be a value selected from a plurality of preset values, or may be a value obtained by another process. It is also good.
  • the seed s i that corresponds to a null value Share [x j] i is may be set to a null value (Step S112-A i).
  • P m (i ( ⁇ )) (s i ) is a function value obtained by applying a function P m (i ( ⁇ )) to the seed s i .
  • P m (i) F w (i (+)) ⁇ F m (i) is a function, and the range of the function P m (i) is an element column of m (i) fields F It belongs to the set F m (i) .
  • An example of the set F m (i) is a set of m (i) -dimensional vectors having elements of m (i) fields F as elements.
  • the domain of the function P m (i) may be anything.
  • the domain of the function P m (i) belongs to a set F w (i (+)) whose elements are the original columns of w (i (+)) fields F.
  • w (i (+)) ⁇ m (i) is satisfied (the amount of data of the seed s i is smaller than the amount of data of the function value r i ).
  • An example of P m (i) is a pseudorandom number generation function.
  • P m (i ( ⁇ )) is a function
  • a set F m ( m (i ( ⁇ )) has an element string of m (i ( ⁇ )) fields in the range of the range of the function P m) Belongs to i (-)) .
  • the domain of the function P m (i ( ⁇ )) belongs to a set F w (i) whose elements are the original columns of w (i) fields F.
  • w (i) ⁇ m (i ( ⁇ )) is satisfied.
  • the function value r i corresponding to a null value Share [x j] i is may be set to a null value (Step S113-A i).
  • ⁇ i ⁇ (i, i (-)) [x i (-) ] i + r i corresponding to the share [x i (-) ] i which is a null value is set to a null value (step S114) -A i ).
  • Calculated zeta i is input to the communication unit 118-A i.
  • the communication unit 118-A i (output unit) outputs the calculated value ⁇ i to the share generation device 11-A i ( ⁇ ) .
  • the output calculated value ⁇ i is transmitted to the share generation device 11-A i ( ⁇ ) through the network (step S1181-A i ).
  • ⁇ i (+) ⁇ (i (+), i) [x i ] i (+) + r i (+) corresponding to the share [x i ( ⁇ ) ] i which is a null value is a null value It is set to.
  • the calculated value ⁇ i (+) is received (accepted ) by the communication unit 118 -A i (input unit) and output (step S 1182 -A i ).
  • ⁇ ⁇ i (+) ⁇ (i (+), i) [x i ] i (+) + r i (+)
  • z i ⁇ (i, i (+)) [x i ] i + ⁇ (i (+), i) [x i ] i (+) + r i (+)
  • x i ⁇ (i, i (+)) [x i] i + ⁇ (i (+), i) for a [x i] i (+)
  • z i x i + r i (+) It is.
  • z i corresponding to the share [x i ] i which is a null value is set to a null value (step S115-A i ).
  • Calculated output from the seed s i and secure computing unit 115-A i output from the seed acquisition unit 112-A i z i is input to the share generator 116-A i.
  • the share generation unit 116-A i obtains and outputs information including the seed s i and the calculated value z i as the share SS i of the plaintext x in secret sharing.
  • Share SS i corresponding to the seed s i and the calculated value z i is a null value is information seed s i and the calculated value z i is set to a null value (Step S116-A i).
  • Share SS i output from the share generator 116-A i is input to the communication unit 118-A i.
  • the communication unit 118 -A i outputs the share SS i to the restoration device 12.
  • the output share SS i is transmitted to the restoration apparatus 12 through the network.
  • the size and N of seeds s i do not depend on m.
  • the order of the total share size (total share size to be transmitted) for the plaintext data size m is O (N) in this embodiment, where it is O (Nm) in (2, N) -Shamia secret sharing.
  • the size of each share is O (m / N).
  • the data amount of each share SS i is less than the data amount of the plaintext x (step S118-A i ).
  • each i 0, ..., the N-1, the calculated value is included in the share SS i z i and share SS i (+) to include seed s i (+) is inputted to the arithmetic unit 122.
  • P m (i) (s i (+) ) is a function value obtained by applying the function P m (i) to the seed s i (+) .
  • the function P m (i) is the same as the function defined in step S113-A i .
  • step S115-A i z i x i + r i (+).
  • the element x i corresponding to the calculated value z i which is a null value and the seed s i (+) is set to a null value (step S122).
  • the elements x 0 ,..., X N-1 obtained by the calculation unit 122 are input to the connection unit 123. Connecting portion 123, elements x 0, ..., connecting the x N-1 (bound) the outputs to obtain a restored value x. For example, a row x 0 ?? X x N-1 where x 0 ⁇ F m (0) , ..., x N-1 ⁇ F m (N-1) are arranged is x (step S123).
  • the size and N of seeds s i do not depend on m.
  • the order of the total share size (total share size to be transmitted) for the plaintext data size m is O (N) in this embodiment, where it is O (Nm) in (2, N) -Shamia secret sharing.
  • the size of each share is O (m / N).
  • the total data amount of the shares SS 0 ,..., SS N-1 is less than N times the data amount of plaintext x ⁇ F m Can.
  • the total amount of communication data can be made smaller than the share according to the Shamia secret sharing method.
  • Each share generation device 11 -A i can obtain a small share SS i of the data amount from the share [x] i based on the Shamia secret sharing method without obtaining any information of the plaintext x.
  • the restoration device 12 can restore the plaintext x using the N shares SS 0 ,..., SS N ⁇ 1 .
  • the second embodiment is a modification of the first embodiment.
  • a checksum corresponding to the share is generated when the share is generated, and the checksum is used to verify the share when the plaintext is restored.
  • the same reference numerals as in the first embodiment may be used for the items already described in the first embodiment to simplify the description.
  • the secret calculation system 2 of this embodiment has N share generation devices 21-A 0 ,..., 21-A N-1 and a restoration device 22, which are devices such as the Internet etc. They can communicate with each other through a network.
  • N in this embodiment is an integer of 3 or more.
  • the secret calculation system 2 may have a plurality of restoring devices.
  • Information output from the processing unit (site that performs processing) share generation apparatus 21-A i are stored in the storage unit 117-A i, is read as necessary is input to the other processing unit.
  • the restoration apparatus 22 includes a communication unit 121, an operation unit 122, a connection unit 123, a restoration unit 224, a verification value generation unit 225, a determination unit 226, a storage unit 127, and a control unit 128. And each process is executed under the control of the control unit 128.
  • the information output from each processing unit of the restoration apparatus 22 is stored in the storage unit 127, read out as necessary, and input to another processing unit.
  • the sharing unit 215-A i of each share generation device 21-A i is set to an arbitrary value t i ( n ) with the sharing unit 215-A i (-) of the share generation device 21-A i (-).
  • -) ⁇ F v is shared, and an arbitrary value t i ⁇ F v is shared with the sharing unit 215-A i (++) of the share generation device 21-A i (++)
  • the sharing unit 215-A i and the sharing unit 215-A i (-) obtain the same arbitrary value t i (-)
  • the sharing unit 215-A i and the sharing unit 215-A i (++) Is the same arbitrary value t i
  • sharing unit 215 -A i and sharing unit 215 -A i (+) obtain the same arbitrary value u i (-)
  • the unit 215-A i (-) obtains the same arbitrary value u i (-) .
  • Any value ⁇ between the shared portions beta 1 and the shared unit beta 2 is performed by sending the information to identify any value ⁇ or any value ⁇ in the shared section beta 2 from the shared unit beta 1 it may be, may be performed by sending the information to identify any value ⁇ or any value ⁇ in the shared section beta 1 from the shared unit beta 2, sharing the seed with a shared unit beta 1 and share part beta 2
  • the arbitrary value ⁇ may be shared by sharing the value and performing the same process using the shared seed value.
  • Arbitrary values t i (-) , t i , u i (-) and u i (-) may be random numbers (pseudo random numbers or true random numbers) or values obtained by other processing. It may be present, or it may be a value selected from a plurality of predetermined values.
  • the sharing of the arbitrary values t i (-) , t i , u i (-) , u i (-) is triggered by execution of any of the processes in steps S111-A i to S115-A i , And may be triggered by a request from another sharing unit 215-A i (-) , 215-A i (++) , 215-A i (+) , 215-A i (-). It may be performed, may be performed with another opportunity, and may be performed in advance.
  • the sharing unit 215-A i outputs the obtained arbitrary values t i (-) , t i , u i (-) , u i (-) (step S215-A i ).
  • m (j) shares [(x j ) 0 ] i ,..., [(X j ) m (j) ⁇ 1 ] i are divided into ⁇ F and output.
  • Share [x j ] i may be divided into m (j) shares [(x j ) 0 ] i ,..., [(X j ) m (j) -1 ] i ] F as they are. .
  • the checksum generation unit 218-A i receives the arbitrary values t i (-) and u i (-) , and shares [(x j ) 0 ] i , ..., [(x j) using the m (j) -1] i, following the checksum c i (-), i and d i (-), to obtain the i outputs.
  • [(X ' ⁇ ) j ] i belongs to the set F v [((x ⁇ ) v j ] i , [(x ⁇ ) v j + 1 ] i ,..., [(X ⁇ ) v (j + 1) -1 ] i ) ⁇ F v .
  • the checksums c i (-), i and d i (-), i may be calculated on an F-based v-order extension.
  • ⁇ 0 j j ⁇ m '(i (-)) ⁇ j ⁇ represents ⁇ 0 + ... + ⁇ m' (i (-))
  • ⁇ i (-) ⁇ represents ( ⁇ i (-) ) )
  • the checksum generation unit 219-A i (second checksum generation unit) receives the arbitrary value t i , u i ( ⁇ ) and the share [(x j ) 0 ] i ,..., [(X j ) m (j ) ] -1 ] i is used to obtain and output checksums c i, i and d i ( ⁇ ), i as follows.
  • ⁇ i ⁇ represents ( ⁇ i ) ⁇
  • ⁇ i ( ⁇ ) ⁇ represents ( ⁇ i ( ⁇ ) ) ⁇ .
  • the share generation unit 216 -A i is a seed s i , a calculated value z i , an arbitrary value t i ( ⁇ ) , t i , u i ( ⁇ ) , u i ( ⁇ ) , and a checksum c i ( ⁇ Obtain and output information including the i), i , d i (-), i , c i, i , d i (-), i as the share SS i of the plaintext x in secret sharing (step S216-A) i ).
  • Share SS i output from the share generator 216-A i is input to the communication unit 118-A i.
  • the communication unit 118-A i outputs the share SS i to the restoration device 22.
  • the output share SS i is transmitted to the restoration apparatus 22 through the network.
  • the size of the seed s i and N, v do not depend on m.
  • the order of the total share size (total share size to be transmitted) for the plaintext data size m is O (N) in this embodiment, where it is O (Nm) in (2, N) -Shamia secret sharing.
  • the size of each share is O (m / N).
  • the data amount of each share SS i is less than the data amount of the plaintext x (step S 218 -A i ).
  • the restoration unit 224 performs the check sum d i, i (+) included in the share SS i (+) and the check sum d i, i (++) included in the share SS i (++) as described above.
  • Checksum d i ⁇ 0 j j ⁇ m '(i) ⁇ u i j + 1 (x' i ) j ⁇ + u i m '(i) +1 (x' i ) m ' as a share based on the Shamia secret sharing method (I) Restore -1 and output.
  • Checksum according to the Shamia secret sharing method of d i 0 0 j j ⁇ m '(i) ⁇ u i j + 1 (x' i j
  • the element x i output from the calculation unit 122 is input to the division unit 229.
  • the dividing unit 229 divides the element x i ⁇ F m (i) into m (i) subelements (x i ) 0 ,..., (X i ) m (i) -1 ⁇ F and outputs the result.
  • the elements x i is m (i) sub-elements (x i) 0, ..., (x i) m (i) -1 Sorting columns (x i) 0
  • the verification value generation unit 225 uses the arbitrary value t i , u i and the subelements (x i ) 0 ,..., (X i ) m (i) ⁇ 1 and verifies the verification values v c i and v d i as follows. Obtain and output.
  • m '(i) is ceil (m (i) / v)
  • (x' i ) j belongs to the set F v ((x i ) v j , (x i ) v j + 1 , ..., (x i ) v (j + 1) -1 ) is ⁇ F v
  • the beta i gamma represents a
  • step S2262 If it is determined that d i ⁇ vd i in any i, the control unit 128 ends the process in error (step S2263).
  • the calculation unit 122 obtains and outputs a restored value x in which the elements x 0 ,..., X N ⁇ 1 are connected (step S123).
  • the total communication data amount can be made smaller than the share based on the Shamia secret sharing method.
  • Each share generation device 21 -A i can obtain a small share SS i of the data amount from the share [x] i based on the Shamia secret sharing method without obtaining any information of the plaintext x.
  • the restoration device 22 can restore the plaintext x using the N shares SS 0 ,..., SS N ⁇ 1 .
  • the share SS i includes a checksum
  • the restoration device 22 verifies the checksum. Therefore, the restoration device 22 can detect an unauthorized process performed by any of the share generation devices 21- Ai .
  • the restoration device 22 verifies two types of checksums c i and d i .
  • the restoration device 22 may be configured to verify only one of the checksums c i and d i .
  • the process in this case is as follows.
  • step S115-A i from step S 111-A i is executed instead of the processing of step S215-A i
  • (process I) sharing unit 215-A i of each share generation apparatus 21-A i is Share A sharing unit 215-A i (-) of the generating device 21-A i (-) shares an arbitrary value t i (-) ⁇ F, and a share generating device 21-A i (++) ) to share any value t i ⁇ F between the sharing unit 215-a i (++), or, (process II) sharing unit 215-a i of each share generation apparatus 21-a i is shared generator 21-A i (+) sharing unit 215-A i (+) shares an arbitrary value u i (-) ⁇ F, and a sharing unit of the share generation device 21-A i (-) 215-A i (-) shares an arbitrary value u i (-) ⁇ F. Only process I is performed
  • the dividing unit 217-A i executes the process of step S217-A i .
  • step S216-A i the following processing is executed depending on whether the process I or process II.
  • the share generation unit 116-A i is a seed s i , a calculated value z i , an arbitrary value Information including t i (-) , arbitrary value t i , check sum c i (-), i , and check sum c i, i is obtained and output as a share SS i .
  • the share generating unit 116-A i calculates the seed s i , the calculated value Obtain information including a z i , an arbitrary value u i (-) , an arbitrary value u i (-) , a checksum d i (-), i , and a checksum d i (-), i as a share SS i Output. Thereafter, the processing of step S218-A i is performed.
  • the restoration unit 224 performs the following process.
  • the share SS i includes the check sum c i, i and the share SS i (++) includes the check sum c i, i (++) (process I)
  • the restoration unit 224 executes step S2241 and performs the check.
  • Sam c i, i and checksum c i, i (++) checksum c i a restore output as share in conformity with Shamir secret sharing method. In this case, the process of step S2242 described above is not performed.
  • restoration unit 224 executes step S2242, checksum d i, i (+) and the checksum d i, i (++) to restore the checksum d i as shares in conformity with Shamir secret sharing scheme and outputs. In this case, the process of step S2241 described above is not performed.
  • the process of step S2252 described above is not performed.
  • the process of step S2251 described above is not performed.
  • Each of the above-described devices is, for example, a general-purpose or dedicated computer including a processor (hardware processor) such as a CPU (central processing unit) and a memory such as a RAM (random-access memory) and a ROM (read-only memory). Is configured by executing a predetermined program.
  • the computer may have one processor or memory, or may have a plurality of processors or memory.
  • This program may be installed in a computer or may be stored in advance in a ROM or the like.
  • an electronic circuit circuitry
  • a part or all of the processing units are configured using an electronic circuit that realizes a processing function without using a program. May be
  • the electronic circuit that constitutes one device may include a plurality of CPUs.
  • the processing content of the function that each device should have is described by a program.
  • the above processing functions are realized on a computer by executing this program on a computer.
  • the program describing the processing content can be recorded in a computer readable recording medium.
  • An example of a computer readable recording medium is a non-transitory recording medium. Examples of such recording media are magnetic recording devices, optical disks, magneto-optical recording media, semiconductor memories and the like.
  • This program is distributed, for example, by selling, transferring, lending, etc. a portable recording medium such as a DVD, a CD-ROM or the like recording the program. Furthermore, this program may be stored in a storage device of a server computer, and the program may be distributed by transferring the program from the server computer to another computer via a network.
  • a computer that executes such a program first temporarily stores a program recorded on a portable recording medium or a program transferred from a server computer in its own storage device. At the time of execution of processing, this computer reads a program stored in its own storage device and executes processing in accordance with the read program. As another execution form of this program, the computer may read the program directly from the portable recording medium and execute processing in accordance with the program, and further, each time the program is transferred from the server computer to this computer Alternatively, processing may be performed sequentially according to the received program.
  • the configuration described above is also executed by a so-called ASP (Application Service Provider) type service that realizes processing functions only by executing instructions and acquiring results from the server computer without transferring the program to this computer. Good.
  • ASP Application Service Provider
  • At least a part of these processing functions may be realized by hardware.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

シャミア秘密分散法に則った平文xのシェア[x]iがN個のシェア[x0]i,…,[xN-1]iによって表現され、各シェア生成装置Aiは、シードsiの関数値ri=Pm(i(-))(si)を得、ラグランジュ係数λ(i,i(-))、シェア[xi(-)]i、および関数値riを用いて第1計算値ζi=λ(i,i(-))[xi(-)]i+riを得、第1計算値ζiをシェア生成装置Ai(-)に対して出力する。各シェア生成装置Aiは、第2計算値ζi(+)を受け付け、ラグランジュ係数λ(i,i(+))、シェア[xi]i、および第2計算値ζi(+)を用いて第3計算値zi=λ(i,i(+))[xi]i+ζi(+)を得、シードsiおよび第3計算値ziを含む情報を、秘密分散における平文xのシェアSSiとして得て出力する。

Description

シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体
 本発明は、暗号技術に関し、特に秘密計算技術に関する。
 秘密分散方式の一つにシャミア(Shamir)秘密分散法がある(例えば、非特許文献1等参照)。
A. Shamir, "How to Share a Secret", Communications of the ACM, November 1979, Volume 22, Number 11, pp.612-613.
 秘密計算装置は、シャミア秘密分散法に則って得られたシェアをそのまま用いて秘密計算を行うことができる。しかし、N個の秘密計算装置にシェアが秘密分散されて秘密計算が行われる場合、秘密計算結果を表すシェアの総データ量は平文のデータ量のN倍になってしまう。そのため、これらのシェアをそのまま送信したのでは総通信データ量も平文のデータ量のN倍となってしまう。
 本発明の目的は、シャミア秘密分散法に則ったシェアから総通信データ量が小さいシェアを生成する技術を提供することである。
 N個のシェア生成装置A,…,AN-1に含まれる各シェア生成装置Aが以下を実行する。ただし、Nが2以上の整数であり、mが1以上の整数であり、m(i)が0以上m未満の整数であり、i=0,…,N-1であり、j=0,…,N-1であり、i(+)=i+1 mod Nであり、i(-)=i-1 mod Nであり、Pm(i)が関数であり、関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合に属する。シャミア秘密分散法に則ったシェア[α]にラグランジュ係数λ(i,i(-))を乗じて得られる値とシャミア秘密分散法に則ったシェア[α]i(-)にラグランジュ係数λ(i(-),i)を乗じて得られる値との和が復元値αである。シェア[α]にラグランジュ係数λ(i,i(+))を乗じて得られる値とシャミア秘密分散法に則ったシェア[α]i(+)にラグランジュ係数λ(i(+),i)を乗じて得られる値との和も当該復元値αである。
 シャミア秘密分散法に則った平文xのシェア[x]∈Fが秘密計算によってm=m(0)+…+m(N-1)および[x∈Fm(j)を満たすN個のシェア[x,…,[xN-1によって表現される。各シェア生成装置Aは、シードsの関数値r=Pm(i(-))(s)∈Fm(i(-))を得、ラグランジュ係数λ(i,i(-))、シェア[xi(-)、および関数値rを用いて第1計算値ζ=λ(i,i(-))[xi(-)+r∈Fm(i(-))を得、第1計算値ζをシェア生成装置Ai(-)に対して出力する。各シェア生成装置Aは、第2計算値ζi(+)∈Fm(i)を受け付け、ラグランジュ係数λ(i,i(+))、シェア[x、および第2計算値ζi(+)を用いて第3計算値z=λ(i,i(+))[x+ζi(+)∈Fm(i)を得、シードsおよび第3計算値zを含む情報を、秘密分散における平文xのシェアSSとして得て出力する。
 本発明では、シャミア秘密分散法に則ったシェアから総通信データ量が小さいシェアを生成できる。
図1は実施形態の秘密計算システムの構成を例示したブロック図である。 図2は実施形態のシェア生成装置の機能構成を例示したブロック図である。 図3は実施形態の復元装置の機能構成を例示したブロック図である。 図4は実施形態のシェア生成方法を説明するためのフロー図である。 図5は実施形態の復元方法を説明するためのフロー図である。
 以下、図面を参照して本発明の実施形態を説明する。
 [第1実施形態]
 まず、第1実施形態を説明する。
 <構成>
 図1に例示するように、本形態の秘密計算システム1はN個のシェア生成装置11-A,…,11-AN-1および復元装置12を有し、これらの装置はインターネット等のネットワークを通じて互いに通信可能である。ただし、Nは2以上の整数である。例えば、Nは3以上の整数である。Nの一例はN=3である。なお、図1には1個の復元装置12を図示しているが、秘密計算システム1が複数個の復元装置を有していてもよい。
 図2に例示するように、本形態の各シェア生成装置11-A(ただし、i=0,…,N-1)は、分割部111-A、シード取得部112-A、関数演算部113-A、秘密計算部114-A,115-A、シェア生成部116-A、記憶部117-A、通信部118-A、および制御部119-Aを有し、制御部119-Aの制御のもとで各処理を実行する。シェア生成装置11-Aの各処理部(処理を行う部位)から出力された情報は記憶部117-Aに格納され、必要に応じて読み出されて他の処理部に入力される。
 図3に例示するように、本形態の復元装置12は、通信部121、演算部122、連結部123、記憶部127、および制御部128を有し、制御部128の制御のもとで各処理を実行する。復元装置12の各処理部から出力された情報は記憶部127に格納され、必要に応じて読み出されて他の処理部に入力される。
 <シェア生成方法>
 図4を用い、本形態の各シェア生成装置11-A(ただし、i=0,…,N-1)(図2)が行うシェア生成方法(シェア変換方法)を説明する。前提として、各シェア生成装置11-Aの記憶部117-Aには、シャミア秘密分散法に則った平文x∈Fのシェア[x]∈Fが格納されている。「シェア」とは秘密分散における断片を意味する。実施形態のシャミア秘密分散法は2-out-of-Nしきい値分散方式であり、任意の相違なる2個のシェアが与えられれば復元値(平文)を復元できるが、任意の1個のシェア情報が与えられても復元値の情報はまったく得られない。当該シャミア秘密分散法に則ったシェア[α]にラグランジュ係数λ(i,i(-))を乗じて得られる値と当該シャミア秘密分散法に則ったシェア[α]i(-)にラグランジュ係数λ(i(-),i)を乗じて得られる値との和は復元値αであり、シェア[α]にラグランジュ係数λ(i,i(+))を乗じて得られる値と当該シャミア秘密分散法に則ったシェア[α]i(+)にラグランジュ係数λ(i(+),i)を乗じて得られる値との和も復元値αである。すなわち、
 α=λ(i,i(-))[α]+λ(i(-),i)[α]i(-)
 α=λ(i,i(+))[α]+λ(i(+),i)[α]i(+)
を満たす。つまり、λ(i,i(-))はシェア[α]とシェア[α]i(-)とから復元値αを復元する際にシェア[α]に乗じられる係数であり、λ(i(-),i)はこの際にシェア[α]i(-)に乗じられる係数である。λ(i,i(+))はシェア[α]とシェア[α]i(+)とから復元値αを復元する際にシェア[α]に乗じられる係数であり、λ(i(+),i)はこの際にシェア[α]i(+)に乗じられる係数である。ただし、i(+)=i+1 mod Nであり、i(-)=i-1 mod Nである。このようなラグランジュ係数λ(i,i(-)),λ(i(-),i),λ(i,i(+)),λ(i(+),i)は、周知のラグランジュの補間公式によって容易に求めることができる。Fはm個の体Fの元の列を要素とする集合を意味する。集合Fの一例はm個の体Fの元を要素とするm次元ベクトルである。α∈βはαがβの要素であることを意味する。mは1以上の整数である。例えば、mは2以上の整数または3以上の整数である。体Fの例は素数pを法とした剰余(任意のαに対するα mod p)からなる集合であり、この場合の体Fでの演算結果は素数pを法とした剰余として得られる。p≧3であり、例えばp=261-1である。またシェア[x]は他の装置から送信されたものであってもよいし、他の装置から送信されたシェアに秘密計算を行って得られたものであってもよい。
 分割部111-A(第1分割部)は、記憶部117-Aから前述のシャミア秘密分散法に則った平文xのシェア[x]∈Fを読み込む。分割部111-Aは、秘密計算によってシェア[x]をN個のシェア[x,…,[xN-1に分割して出力する。ただし、m(i)は0以上m未満の整数であり(例えば、m(i)は1以上の整数であり)、m=m(0)+…+m(N-1)を満たし、i=0,…,N-1およびj=0,…,N-1について[x∈Fm(j)を満たす。mがNの倍数である場合にはm(0)=…=m(N-1)=m/Nとしてもよい。しかし、mがNの倍数であるか否かにかかわらず、m(0),…,m(N-1)がすべて同一でなくてもよい。例えば、m(0),…,m(N-1)の少なくとも一部が0であってもよい。ただしγ∈Fはヌル値を表す。m(i)=0の場合、[x∈Fm(i)はヌル値である。[xは前述のシャミア秘密分散法に則った平文xのシェアである。平文xはN個のx∈Fm(0),…,xN-1∈Fm(N-1)によって表現される。例えば、平文xはN個のx∈Fm(0),…,xN-1∈Fm(N-1)を並べた列x|…|xN-1で表現される。秘密計算によってシェア[x]をN個のシェア[x,…,[xN-1に分割するには、例えば、シェア[x]をそのままN個のシェア[x∈Fm(0),…,[xN-1∈Fm(N-1)に区分して分割すればよい。ただし、m=1の場合、m(0),…,m(N-1)の何れか1個のみが1であり、他はすべて0である。このような場合、分割部111-Aはシェア[x]を分割する必要はなく、シェア[x,…,[xN-1の何れか1個のシェアを[x]とし、残りのシェアを全てヌル値として出力すればよい。上述のように、シェア[x]はN個のシェア[x,…,[xN-1によって表現される。例えば、シェア[x]はN個のシェア[x,…,[xN-1を並べた列[x|…|[xN-1で表現される(ステップS111-A)。
 シード取得部112-Aはシードsを得て出力する。シードsのデータ形式に限定はなく、どのような値をシードsとしてもよい。シードsの一例はw(i)個の体Fの元の列を要素とする集合Fw(i)の元である(s∈Fw(i))。ただし、w(i)は1以上m未満の整数である。シードs(ただし、i=0,…,N-1)は任意値であってもよいし、他の処理で得られた出力値であってもよい。「任意値」は乱数(擬似乱数または真正乱数)であってもよいし、予め設定された複数の値から選択された値であってもよいし、他の処理で得られた値であってもよい。なお、ヌル値であるシェア[xに対応するシードsがヌル値に設定されてもよい(ステップS112-A)。
 関数演算部113-Aは、シードsを入力として関数値r=Pm(i(-))(s)∈Fm(i(-))(例えば、擬似乱数)を得て出力する。ただし、Pm(i(-))(s)はシードsに関数Pm(i(-))を作用させて得られる関数値である。Pm(i):Fw(i(+))→Fm(i)は関数であり、関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合Fm(i)に属する。集合Fm(i)の一例はm(i)個の体Fの元を要素とするm(i)次元ベクトルの集合である。関数Pm(i)の定義域はどのようなものであってもよい。例えば、関数Pm(i)の定義域はw(i(+))個の体Fの元の列を要素とする集合Fw(i(+))に属する。好ましくはw(i(+))<m(i)を満たす(シードsのデータ量は関数値rのデータ量よりも小さい)。Pm(i)の例は擬似乱数生成関数である。すなわち、Pm(i(-))は関数であり、関数Pm(i(-))の値域がm(i(-))個の体Fの元の列を要素とする集合Fm(i(-))に属する。例えば、関数Pm(i(-))の定義域はw(i)個の体Fの元の列を要素とする集合Fw(i)に属する。好ましくはw(i)<m(i(-))を満たす。なお、ヌル値であるシェア[xに対応する関数値rがヌル値に設定されてもよい(ステップS113-A)。
 秘密計算部114-A(第1秘密計算部)は、シェア[xi(-)および関数値rを入力とし、ラグランジュ係数λ(i,i(-))、シェア[xi(-)、および関数値rを用いて計算値(第1計算値)ζ=λ(i,i(-))[xi(-)+r∈Fm(i(-))を得て出力する。ただし、ヌル値であるシェア[xi(-)に対応するζ=λ(i,i(-))[xi(-)+rはヌル値に設定される(ステップS114-A)。
 計算値ζは通信部118-Aに入力される。通信部118-A(出力部)は、計算値ζをシェア生成装置11-Ai(-)に対して出力する。出力された計算値ζはネットワークを通じてシェア生成装置11-Ai(-)に送信される(ステップS1181-A)。
 同様にシェア生成装置11-Ai(+)から出力された計算値(第2計算値)ζi(+)=λ(i(+),i)[xi(+)+ri(+)∈Fm(i)(ただし、ri(+)=Pm(i)(si(+)))は、ネットワークを通じてシェア生成装置11-Aに送信される。ただし、ヌル値であるシェア[xi(-)に対応するζi(+)=λ(i(+),i)[xi(+)+ri(+)は、ヌル値に設定されている。計算値ζi(+)は通信部118-A(入力部)で受信され(受け付けられる)、出力される(ステップS1182-A)。
 秘密計算部115-A(第2秘密計算部)は、シェア[xおよび計算値ζi(+)を入力とし、ラグランジュ係数λ(i,i(+))、シェア[x、および計算値ζi(+)を用いて計算値(第3計算値)z=λ(i,i(+))[x+ζi(+)∈Fm(i)を得て出力する。なお、ζi(+)=λ(i(+),i)[xi(+)+ri(+)であるため、z=λ(i,i(+))[x+λ(i(+),i)[xi(+)+ri(+)である。また、x=λ(i,i(+))[x+λ(i(+),i)[xi(+)であるため、z=x+ri(+)である。ただし、ヌル値であるシェア[xに対応するzはヌル値に設定される(ステップS115-A)。
 シード取得部112-Aから出力されたシードsおよび秘密計算部115-Aから出力された計算値zはシェア生成部116-Aに入力される。シェア生成部116-Aは、シードsおよび計算値zを含む情報を、秘密分散における平文xのシェアSSとして得て出力する。ヌル値であるシードsおよび計算値zに対応するシェアSSは、シードsおよび計算値zがヌル値に設定された情報である(ステップS116-A)。
 シェア生成部116-Aから出力されたシェアSSは通信部118-Aに入力される。通信部118-Aは、シェアSSを復元装置12に対して出力する。出力されたシェアSSはネットワークを通じて復元装置12に送信される。シードsのサイズおよびNはmに依存しない。平文のデータサイズmに関する総シェアサイズ(送信される総シェアサイズ)のオーダーは、(2,N)-シャミア秘密分散ではO(Nm)となるところ、本形態ではO(m)で済む。個々のシェアのサイズはO(m/N)である。例えば、各シェア生成装置11-A(ただし、i=0,…,N-1)から送信されるシェアSSの総データ量は、平文xのデータ量のN倍未満である。例えば、各シェアSSのデータ量は平文xのデータ量未満である(ステップS118-A)。
 <復元方法>
 図5を用い、本形態の復元装置12(図3)が行う復元方法を説明する。
 シェア生成装置11-A,…,11-AN-1から出力されたN個のシェアSS,…,SSN-1は、復元装置12の通信部121(入力部)で受信され(受け付けられ)、出力される(ステップS121)。
 各i=0,…,N-1について、シェアSSに含まれた計算値zおよびシェアSSi(+)に含まれたシードsi(+)は演算部122に入力される。演算部122は、計算値zおよびシードsi(+)を用い、要素x=z-Pm(i)(si(+))∈Fm(i)を得て出力する。ただし、Pm(i)(si(+))はシードsi(+)に関数Pm(i)を作用させて得られる関数値である。関数Pm(i)はステップS113-Aで定義した関数と同一である。ステップS115-Aで示したようにz=x+ri(+)である。また、ステップS1182-Aで示したようにri(+)=Pm(i)(si(+))である。そのため、z-Pm(i)(si(+))に演算によって要素xが得られる。なお、ヌル値である計算値zおよびシードsi(+)に対応する要素xはヌル値に設定される(ステップS122)。
 演算部122で得られた要素x,…,xN-1は連結部123に入力される。連結部123は、要素x,…,xN-1を連結(結合)した復元値xを得て出力する。例えば、x∈Fm(0),…,xN-1∈Fm(N-1)を並べた列x|…|xN-1がxである(ステップS123)。
 <本形態の特徴>
 各シェア生成装置11-A(ただし、i=0,…,N-1)は、シャミア秘密分散法に則ったシェア[x]からシードsおよび計算値z∈Fm(i)を含むシェアSSを得て出力する。ここで、シードsのサイズおよびNはmに依存しない。平文のデータサイズmに関する総シェアサイズ(送信される総シェアサイズ)のオーダーは、(2,N)-シャミア秘密分散ではO(Nm)となるところ、本形態ではO(m)で済む。個々のシェアのサイズはO(m/N)である。例えば、m(i)<mかつw(i)<mとすることで、シェアSS,…,SSN-1の総データ量を平文x∈Fのデータ量のN倍未満にすることができる。これにより、シャミア秘密分散法に則ったシェアよりも総通信データ量を小さくできる。各シェア生成装置11-Aは平文xの情報を一切得ることなく、シャミア秘密分散法に則ったシェア[x]からデータ量の小さなシェアSSを得ることができる。復元装置12はN個のシェアSS,…,SSN-1を用いて平文xを復元できる。
 [第2実施形態]
 第2実施形態は第1実施形態の変形例である。本形態では、シェア生成の際にシェアに対応するチェックサムを生成し、平文の復元時にチェックサムを用いてシェアを検証する。以下では、第1実施形態で既に説明した事項については第1実施形態と同じ参照番号を用い、説明を簡略化する場合がある。
 <構成>
 図1に例示するように、本形態の秘密計算システム2はN個のシェア生成装置21-A,…,21-AN-1および復元装置22を有し、これらの装置はインターネット等のネットワークを通じて互いに通信可能である。ただし、本形態のNは3以上の整数である。Nの一例はN=3である。なお、図1には1個の復元装置22を図示しているが、秘密計算システム2が複数個の復元装置を有していてもよい。
 図2に例示するように、本形態の各シェア生成装置21-A(ただし、i=0,…,N-1)は、分割部111-A、シード取得部112-A、関数演算部113-A、秘密計算部114-A,115-A、共有部215-A、シェア生成部216-A、分割部217-A、チェックサム生成部218-A,219-A、記憶部117-A、通信部118-A、および制御部119-Aを有し、制御部119-Aの制御のもとで各処理を実行する。シェア生成装置21-Aの各処理部(処理を行う部位)から出力された情報は記憶部117-Aに格納され、必要に応じて読み出されて他の処理部に入力される。
 図3に例示するように、本形態の復元装置22は、通信部121、演算部122、連結部123、復元部224、検証値生成部225、判定部226、記憶部127、および制御部128を有し、制御部128の制御のもとで各処理を実行する。復元装置22の各処理部から出力された情報は記憶部127に格納され、必要に応じて読み出されて他の処理部に入力される。
 <シェア生成方法>
 図4を用い、シェア生成装置21-A(図2)が行うシェア生成方法を説明する。まず、シェア生成装置11-Aに代えてシェア生成装置21-Aが、第1実施形態で説明したステップS111-AからS115-Aの処理を実行する。ただし、本形態ではNおよびmは3以上の整数である。
 次に各シェア生成装置21-Aの共有部215-Aが、シェア生成装置21-Ai(--)の共有部215-Ai(--)との間で任意値ti(--)∈Fを共有し、シェア生成装置21-Ai(++)の共有部215-Ai(++)との間で任意値t∈Fを共有し、シェア生成装置21-Ai(+)の共有部215-Ai(+)との間で任意値ui(--)∈Fを共有し、シェア生成装置21-Ai(-)の共有部215-Ai(-)との間で任意値ui(-)∈Fを共有する。すなわち、共有部215-Aと共有部215-Ai(--)とは同一の任意値ti(--)を得、共有部215-Aと共有部215-Ai(++)とは同一の任意値tを得、共有部215-Aと共有部215-Ai(+)とは同一の任意値ui(--)を得、共有部215-Aと共有部215-Ai(-)とは同一の任意値ui(-)を得る。ただし、vは1以上の整数であり、例えばv=1である。vがm以下である(例えば、vがmよりも小さい)ほうがデータ量の削減効果が大きい。i(+)=i+1 mod Nであり、i(-)=i-1 mod Nであり、i(++)=i+2 mod Nであり、i(--)=i-2 mod Nである。共有部βと共有部βとの間での任意値γの共有は、共有部βから共有部βに任意値γまたは任意値γを特定する情報を送信することで行われてもよいし、共有部βから共有部βに任意値γまたは任意値γを特定する情報を送信することで行われてもよいし、共有部βと共有部βとで共有シード値を共有しておき、両者が当該共有シード値を用いた同一の処理を実行することで任意値γが共有されてもよい。任意値ti(--),t,ui(--),ui(-)は、乱数(擬似乱数または真正乱数)であってもよいし、他の処理で得られた値であってもよいし、予め定められた複数の値から選択された値であってもよい。任意値ti(--),t,ui(--),ui(-)の共有は、ステップS111-AからS115-Aのいずれかの処理が実行されたことを契機として行われてもよいし、他の共有部215-Ai(--),215-Ai(++),215-Ai(+),215-Ai(-)からの要求を契機として行われてもよいし、その他の契機で行われてもよいし、予め行われていてもよい。共有部215-Aは得た任意値ti(--),t,ui(--),ui(-)を出力する(ステップS215-A)。
 分割部217-Aは、分割部111-Aから出力されたシェア[x(ただし、j=0,…,N-1)を入力とし、当該シェア[xを秘密計算によってm(j)個のシェア[(x,…,[(xm(j)-1∈Fに分割して出力する。秘密計算によってシェア[xをm(j)個のシェア[(x,…,[(xm(j)-1∈Fに分割するには、例えば、シェア[xをそのままm(j)個のシェア[(x,…,[(xm(j)-1∈Fに区分して分割すればよい。ただし、[x∈Fm(i)がヌル値である場合、[(x,…,[(xm(j)-1もヌル値である(ステップS217-A)。
 任意値ti(--),ui(--)、およびシェア[(x,…,[(xm(j)-1(ただし、j=0,…,N-1)は、チェックサム生成部218-Aに入力される。チェックサム生成部218-A(第1チェックサム生成部)は、任意値ti(--),ui(--)、およびシェア[(x,…,[(xm(j)-1を用い、以下のようにチェックサムci(--),iおよびdi(--),iを得て出力する。
ci(--),i0≦j<m’(i(--)){ti(--) j+1[(x’i(--))j]i}+ti(--) m’(i(--))+1[(x’i(--))m’(i(--))-1]i∈Fv
di(--),i0≦j<m’(i(--)){ui(--) j+1[(x’i(--))j]i}+ui(--) m’(i(--))+1[(x’i(--))m’(i(--))-1]i∈Fv
ただし、δ=0,…,N-1であり、ceilが天井関数であり、m’(i)がceil(m(i)/v)である。[(x’δは、集合Fに属する([(xδvj,[(xδvj+1,…,[(xδv(j+1)-1)∈Fである。また、j=m’(i)-1について、[(xδvj,[(xδvj+1,…,[(xδv(j+1)-1がv個に満たない場合、[(x’δ(m’(i)-1)=([(xδv(m’(i)-1),[(xδv(m’(i)-1)+1,…,[(xδm(i)-1,0,…,0)∈Fとする。チェックサムci(--),iおよびdi(--),iは、Fを基礎体としたv次拡大体上で計算されてもよい。Σ0≦j<m’(i(--)){β}はβ+…+βm’(i(--))を表し、βi(--) γは(βi(--)γを表す(ステップS2181-A,S2182-A)。
 任意値t,ui(-)、およびシェア[(x,…,[(xm(j)-1(ただし、j=0,…,N-1)は、チェックサム生成部219-Aに入力される。チェックサム生成部219-A(第2チェックサム生成部)は、任意値t,ui(-)、およびシェア[(x,…,[(xm(j)-1を用い、以下のようにチェックサムci,iおよびdi(-),iを得て出力する。
ci,i0≦j<m’(i){ti j+1[(x’i)j]i}+ti m’(i)+1[(x’i)m’(i)-1]i∈Fv
di(-),i0≦j<m’(i(-)){ui(-) j+1[(x’i(-))j]i}+ui(-) m’(i(-))+1[(x’i(-))m’(i(-))-1]i∈Fv
ただし、β γは(βγを表し、βi(-) γは(βi(-)γを表す。チェックサムci,iおよびdi(-),iは、Fを基礎体としたv次拡大体上で計算されてもよい(ステップS2191-A,S2192-A)。
 シード取得部112-Aから出力されたシードs、秘密計算部115-Aから出力された計算値z、共有部215-Aから出力された任意値ti(--),t,ui(--),ui(-)、チェックサム生成部218-Aから出力されたチェックサムci(--),i,di(--),i、およびチェックサム生成部219-Aから出力されたチェックサムci,i,di(-),iはシェア生成部216-Aに入力される。シェア生成部216-Aは、シードs、計算値z、任意値ti(--),t,ui(--),ui(-)、およびチェックサムci(--),i,di(--),i、ci,i,di(-),iを含む情報を、秘密分散における平文xのシェアSSとして得て出力する(ステップS216-A)。
 シェア生成部216-Aから出力されたシェアSSは通信部118-Aに入力される。通信部118-Aは、シェアSSを復元装置22に対して出力する。出力されたシェアSSはネットワークを通じて復元装置22に送信される。シードsのサイズおよびN,vはmに依存しない。平文のデータサイズmに関する総シェアサイズ(送信される総シェアサイズ)のオーダーは、(2,N)-シャミア秘密分散ではO(Nm)となるところ、本形態ではO(m)で済む。個々のシェアのサイズはO(m/N)である。例えば、各シェア生成装置21-A(ただし、i=0,…,N-1)から送信されるシェアSSの総データ量は、平文xのデータ量のN倍未満である。例えば、各シェアSSのデータ量は平文xのデータ量未満である(ステップS218-A)。
 <復元方法>
 図5を用い、本形態の復元装置22(図3)が行う復元方法を説明する。
 シェア生成装置21-A,…,21-AN-1から出力されたN個のシェアSS,…,SSN-1は、復元装置22の通信部221(入力部)で受信され(受け付けられ)、出力される(ステップS221)。
 次に、第1実施形態で説明したように、演算部122が、シェアSSに含まれた計算値zおよびシェアSSi(+)に含まれたシードsi(+)を用い、要素x=z-Pm(i)(si(+))∈Fm(i)を得て出力する(ステップS122)。
 各シェアSS(ただし、i=0,…,N-1)に含まれたチェックサムci(--),i,di(--),i、ci,i,di(-),iは復元部224に入力される。復元部224は、シェアSSに含まれたチェックサムci,iおよびシェアSSi(++)に含まれたチェックサムci,i(++)を前述のシャミア秘密分散法(2-out-of-Nしきい値分散方式)に則ったシェアとしてチェックサムc=Σ0≦j<m’(i){t j+1(x’}+t m’(i)+1(x’im’(i)-1を復元して出力する。同様に、復元部224は、シェアSSi(+)に含まれたチェックサムdi,i(+)およびシェアSSi(++)に含まれたチェックサムdi,i(++)を前述のシャミア秘密分散法に則ったシェアとしてチェックサムd=Σ0≦j<m’(i){u j+1(x’}+u m’(i)+1(x’m’(i)-1を復元して出力する。ここで、シェアSSi(++)に含まれたci,i(++)=Σ0≦j<m’(i){t j+1[(x’i(++)}+t m(i)+1[(x’m’(i)-1i(++)と、シェアSSに含まれたci,i=Σ0≦j<m’(i){t j+1[(x’}+t m’(i)+1[(x’m’(i)-1とは、前述のシャミア秘密分散法に則ったチェックサムc=Σ0≦j<m’(i){t j+1(x’}+t m’(i)+1(x’m’(i)-1のシェアとなっている。そのため、復元部224はci,i(++)とci,iとラグランジュ係数とからチェックサムcを復元できる。また、シェアSSi(+)に含まれたdi,i(+)=Σ0≦j<m’(i){u j+1[(x’i(+)}+u m’(i)+1[(x’m’(i)-1i(+)と、シェアSSi(++)に含まれたdi,i(++)=Σ0≦j<m’(i){u j+1[(x’i(++)}+u m’(i)+1[(x’m’(i)-1i(++)とは、前述のシャミア秘密分散法に則ったチェックサムd=Σ0≦j<m’(i){u j+1(x’}+u m’(i)+1(x’m’(i)-1のシェアとなっている。そのため、復元部224はdi,i(+)とdi,i(++)とラグランジュ係数とからチェックサムdを復元できる(ステップS2241,S2242)。
 演算部122から出力された要素xは分割部229に入力される。分割部229は、要素x∈Fm(i)をm(i)個のサブ要素(x,…,(xm(i)-1∈Fに分割して出力する。例えば、要素xはm(i)個のサブ要素(x,…,(xm(i)-1を並べた列(x|…|(xm(i)-1で表現され、分割部229は、x=(x|…|(xm(i)-1をサブ要素(x,…,(xm(i)-1に分割する(ステップS229)。
 シェアSSまたはSSi(++)に含まれた任意値t、シェアSSi(+)またはSSi(++)に含まれた任意値u、および、分割部229から出力されたサブ要素(x,…,(xm(i)-1は検証値生成部225に入力される。検証値生成部225は、任意値t,uおよびサブ要素(x,…,(xm(i)-1を用い、以下のように検証値vc,vdを得て出力する。
vci0≦j<m’(i){ti j+1(x’i)j}+ti m’(i)+1(x’i)m’(i)-1∈Fv
vdi0≦j<m’(i){ui j+1(x’i)j}+ui m’(i)+1(x’i)m’(i)-1∈Fv
ただし、m’(i)がceil(m(i)/v)であり、(x’ iが集合Fに属する((xvj,(xvj+1,…,(xv(j+1)-1)∈Fであり、β γは(βγを表す(ステップS2252)。
 復元部224から出力されたチェックサムc,d、および検証値生成部225から出力された検証値vc,vdは判定部226に入力される。判定部226は、すべてのi=0,…,N-1についてc=vcを満たすかを判定する(ステップS2261)。何れかのiでc≠vcであると判定された場合、制御部128は処理をエラー終了させる(ステップS2263)。一方、すべてのi=0,…,N-1についてc=vcを満たすと判定された場合、判定部226は、すべてのi=0,…,N-1についてd=vdを満たすかを判定する(ステップS2262)。何れかのiでd≠vdであると判定された場合、制御部128は処理をエラー終了させる(ステップS2263)。一方、すべてのi=0,…,N-1についてd=vdを満たすと判定された場合、連結部123に演算部122で得られた要素x,…,xN-1が入力される。この場合、演算部122は、第1実施形態で説明したように、要素x,…,xN-1を連結した復元値xを得て出力する(ステップS123)。
 <本形態の特徴>
 本形態でも、シャミア秘密分散法に則ったシェアよりも総通信データ量を小さくできる。各シェア生成装置21-Aは平文xの情報を一切得ることなく、シャミア秘密分散法に則ったシェア[x]からデータ量の小さなシェアSSを得ることができる。復元装置22はN個のシェアSS,…,SSN-1を用いて平文xを復元できる。
 さらに本形態ではシェアSSがチェックサムを含み、復元装置22でチェックサムの検証を行うことにした。そのため、復元装置22は何れかのシェア生成装置21-Aで行われた不正な処理を検知することができる。また、復元装置22が各i=0,…,N-1について2種類のチェックサムc,dを検証することとしたため、何れかのシェア生成装置21-Aで不正なチェックサムが生成されたことをも検知できる。
 [第2実施形態の変形例1]
 第2実施形態では、ステップS2261でc=vcを満たすと判定された場合に、ステップS2262でd=vdを満たすかを判定した。しかしながら、すべてのi=0,…,N-1についてc=vcかつd=vdを満たす場合にステップS123の処理が実行され、それ以外の場合にステップS2263が実行されるのであれば、その他の判定処理が行われてもよい。
 [第2実施形態の変形例2]
 第2実施形態では復元装置22が2種類のチェックサムc,dを検証することとした。しかしながら、復元装置22がチェックサムc,dの何れか一方のみを検証する構成であってもよい。この場合の処理は以下のようになる。
 <シェア生成方法>
 ステップS111-AからS115-Aの処理が実行された後、ステップS215-Aの処理に代えて、(処理I)各シェア生成装置21-Aの共有部215-Aがシェア生成装置21-Ai(--)の共有部215-Ai(--)との間で任意値ti(--)∈Fを共有し、かつ、シェア生成装置21-Ai(++)の共有部215-Ai(++)との間で任意値t∈Fを共有する、または、(処理II)各シェア生成装置21-Aの共有部215-Aがシェア生成装置21-Ai(+)の共有部215-Ai(+)との間で任意値ui(--)∈Fを共有し、かつ、シェア生成装置21-Ai(-)の共有部215-Ai(-)との間で任意値ui(-)∈Fを共有する。すべてのi=0,…,N-1について処理Iのみが実行されるか、または、すべてのi=0,…,N-1について処理IIのみが実行される。
 次に分割部217-AがステップS217-Aの処理を実行する。
 その後、処理Iか処理IIかに応じて以下の処理が実行される。共有部215-Aで任意値ti(--)が共有される場合(処理I)、チェックサム生成部218-Aは、前述したステップS2181-Aを行い、チェックサムci(--),i=Σ0≦j<m’(i(--)){ti(--) j+1[(x’i(--)}+ti(--) m’(i(--))+1[(x’i(--)m’(i(--))-1∈Fを得て出力する。この場合、前述したステップS2182-Aの処理は実行されない。
 一方、共有部215-Aで任意値ui(--)が共有される場合(処理II)、チェックサム生成部218-Aは、前述したステップS2182-Aを行い、チェックサムdi(--),i=Σ0≦j<m’(i(--)){ui(--) j+1[(x’i(--)}+ui(--) m’(i(--))+1[(x’i(--)m’(i(--))-1∈Fを得て出力する。この場合、前述したステップS2181-Aの処理は実行されない。
 次に、共有部215-Aで任意値tが共有される場合(処理I)、チェックサム生成部219-Aは、前述したステップS2191-Aを行い、チェックサムci,i=Σ0≦j<m’(i){t j+1[(x’}+t m’(i)+1[(x’m’(i)-1∈Fを得て出力する。この場合、前述したステップS2192-Aの処理は実行されない。
 一方、共有部215-Aで任意値ui(-)が共有される場合(処理II)、チェックサム生成部219-Aは、前述したステップS2192-Aを行い、チェックサムdi(-),i=Σ0≦j<m’(i(-)){ui(-) j+1[(x’i(-)}+ui(-) m’(i(-))+1[(x’i(-)m’(i(-))-1∈Fを得て出力する。この場合、前述したステップS2191-Aの処理は実行されない。
 その後、ステップS216-Aの処理に代えて、処理Iか処理IIかに応じて以下の処理が実行される。共有部215-Aで任意値ti(--)および任意値tが共有される場合(処理I)、シェア生成部116-Aは、シードs、計算値z、任意値ti(--)、任意値t、チェックサムci(--),i、およびチェックサムci,iを含む情報をシェアSSとして得て出力する。一方、共有部215-Aで任意値ui(--)および任意値ui(-)が共有される場合(処理II)、シェア生成部116-Aは、シードs、計算値z、任意値ui(--)、任意値ui(-)、チェックサムdi(--),i、およびチェックサムdi(-),iを含む情報をシェアSSとして得て出力する。その後、ステップS218-Aの処理が実行される。
 <復元方法>
 ステップS221およびS122の処理が実行された後、復元部224は以下の処理を行う。シェアSSがチェックサムci,iを含み、かつ、シェアSSi(++)がチェックサムci,i(++)を含む場合(処理I)、復元部224はステップS2241を実行し、チェックサムci,iおよびチェックサムci,i(++)をシャミア秘密分散法に則ったシェアとしてチェックサムcを復元して出力する。この場合、前述したステップS2242の処理は実行されない。
 一方、シェアSSi(+)がチェックサムdi,i(+)を含み、かつ、シェアSSi(++)がチェックサムdi,i(++)を含む場合(処理II)、復元部224はステップS2242を実行し、チェックサムdi,i(+)およびチェックサムdi,i(++)をシャミア秘密分散法に則ったシェアとしてチェックサムdを復元して出力する。この場合、前述したステップS2241の処理は実行されない。
 次に分割部229がステップS229の処理を実行する。
 その後、処理Iか処理IIかに応じて以下の処理が実行される。チェックサムcが復元される場合(処理I)、検証値生成部225は、ステップS2251の処理を実行し、検証値vc=Σ0≦j<m’(i){t j+1(x’i}+t m’(i)+1(x’im’(i)-1∈Fを得て出力する。この場合、前述したステップS2252の処理は実行されない。一方、チェックサムdが復元される場合(処理II)、検証値生成部225は、ステップS2252の処理を実行し、検証値vd=Σ0≦j<m’(i){u j+1(x’i}+u m’(i)+1(x’im’(i)-1∈Fを得て出力する。この場合、前述したステップS2251の処理は実行されない。
 その後、処理Iか処理IIかに応じて以下の処理が実行される。チェックサムcが復元される場合(処理I)、判定部226は、ステップS2261において、すべてのi=0,…,N-1についてc=vcを満たすかを判定する。この場合にはステップS2262の処理は実行されない。何れかのiでc≠vcであると判定された場合、制御部128は処理をエラー終了させる(ステップS2263)。一方、すべてのi=0,…,N-1についてc=vcを満たすと判定された場合、ステップS123に進む。一方、チェックサムdが復元される場合(処理II)、判定部226は、ステップS2262において、すべてのi=0,…,N-1についてd=vdを満たすかを判定する。この場合にはステップS2261の処理は実行されない。何れかのiでd≠vdであると判定された場合、制御部128は処理をエラー終了させる(ステップS2263)。一方、すべてのi=0,…,N-1についてd=vdを満たすと判定された場合、ステップS123に進む。
 [その他の変形例等]
 なお、本発明は上述の実施形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 上記の各装置は、例えば、CPU(central processing unit)等のプロセッサ(ハードウェア・プロセッサ)およびRAM(random-access memory)・ROM(read-only memory)等のメモリ等を備える汎用または専用のコンピュータが所定のプログラムを実行することで構成される。このコンピュータは1個のプロセッサやメモリを備えていてもよいし、複数個のプロセッサやメモリを備えていてもよい。このプログラムはコンピュータにインストールされてもよいし、予めROM等に記録されていてもよい。また、CPUのようにプログラムが読み込まれることで機能構成を実現する電子回路(circuitry)ではなく、プログラムを用いることなく処理機能を実現する電子回路を用いて一部またはすべての処理部が構成されてもよい。1個の装置を構成する電子回路が複数のCPUを含んでいてもよい。
 上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体の例は、非一時的な(non-transitory)記録媒体である。このような記録媒体の例は、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等である。
 このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
 このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。
 コンピュータ上で所定のプログラムを実行させて本装置の処理機能が実現されるのではなく、これらの処理機能の少なくとも一部がハードウェアで実現されてもよい。
1 秘密計算システム
11-A,21-A シェア生成装置
12,22 復元装置

Claims (15)

  1.  N個のシェア生成装置A,…,AN-1に含まれるシェア生成装置Aであって、
     Nが2以上の整数であり、mが1以上の整数であり、m(i)が0以上m未満の整数であり、i=0,…,N-1であり、j=0,…,N-1であり、i(+)=i+1 mod Nであり、i(-)=i-1 mod Nであり、Pm(i)が関数であり、前記関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合Fm(i)に属し、
     シャミア秘密分散法に則ったシェア[α]にラグランジュ係数λ(i,i(-))を乗じて得られる値と前記シャミア秘密分散法に則ったシェア[α]i(-)にラグランジュ係数λ(i(-),i)を乗じて得られる値との和が復元値αであり、前記シェア[α]にラグランジュ係数λ(i,i(+))を乗じて得られる値と前記シャミア秘密分散法に則ったシェア[α]i(+)にラグランジュ係数λ(i(+),i)を乗じて得られる値との和が前記復元値αであり、
     前記シャミア秘密分散法に則った平文xのシェア[x]∈Fがm=m(0)+…+m(N-1)および[x∈Fm(j)を満たすN個のシェア[x,…,[xN-1によって表現され、
     入力されたシードsの関数値r=Pm(i(-))(s)∈Fm(i(-))を得る関数演算部と、
     前記ラグランジュ係数λ(i,i(-))、シェア[xi(-)、および前記関数値rを用いて第1計算値ζ=λ(i,i(-))[xi(-)+r∈Fm(i(-))を得る第1秘密計算部と、
     前記第1計算値ζを前記シェア生成装置Ai(-)に対して出力する出力部と、
     第2計算値ζi(+)∈Fm(i)を受け付ける入力部と、
     前記ラグランジュ係数λ(i,i(+))、前記シェア[x、および前記第2計算値ζi(+)を用いて第3計算値z=λ(i,i(+))[x+ζi(+)∈Fm(i)を得る第2秘密計算部と、
     前記シードsおよび前記第3計算値zを含む情報を、秘密分散における前記平文xのシェアSSとして得て出力するシェア生成部と、
    を有するシェア生成装置。
  2.  請求項1のシェア生成装置であって、
     Nが3以上の整数であり、i(++)=i+2 mod Nであり、i(--)=i-2 mod Nであり、δ=0,…,N-1であり、vが1以上の整数であり、ceilが天井関数であり、前記シェア[xがm(j)個のシェア([(x,…,[(xm(j)-1∈Fに分割でき、m’(i)がceil(m(i)/v)であり、[(x’δが集合Fに属する([(xδvj,[(xδvj+1,…,[(xδv(j+1)-1)∈Fであり、
     シェア生成装置Ai(--)との間で任意値ti(--)∈Fを共有し、かつ、シェア生成装置Ai(++)との間で任意値t∈Fを共有する、および/または、シェア生成装置Ai(+)との間で任意値ui(--)∈Fを共有し、かつ、シェア生成装置Ai(-)との間で任意値ui(-)∈Fを共有する共有部と、
     前記共有部で前記任意値ti(--)が共有される場合にチェックサムci(--),i=Σ0≦j<m’(i(--)){ti(--) j+1[(x’i(--)}+ti(--) m’(i(--))+1[(x’i(--)m’(i(--))-1∈Fを得、前記共有部で前記任意値ui(--)が共有される場合にチェックサムdi(--),i=Σ0≦j<m’(i(--)){ui(--) j+1[(x’i(--)}+ui(--) m’(i(--))+1[(x’i(--)m’(i(--))-1∈Fを得る第1チェックサム生成部と、
     前記共有部で前記任意値tが共有される場合にチェックサムci,i=Σ0≦j<m’(i){t j+1[(x’}+t m’(i)+1[(x’m’(i)-1∈Fを得、前記共有部で前記任意値ui(-)が共有される場合にチェックサムdi(-),i=Σ0≦j<m’(i(-)){ui(-) j+1[(x’i(-)}+ui(-) m’(i(-))+1[(x’i(-)m’(i(-))-1∈Fを得る第2チェックサム生成部と、を有し、
     前記共有部で前記任意値ti(--)および前記任意値tが共有される場合に、前記シェア生成部が生成する前記シェアSSは、さらに、前記任意値ti(--)、前記任意値t、前記チェックサムci(--),i、および前記チェックサムci,iを含み、
     前記共有部で前記任意値ui(--)および前記任意値ui(-)が共有される場合に、前記シェア生成部が生成する前記シェアSSは、さらに、前記任意値ui(--)、前記任意値ui(-)、前記チェックサムdi(--),i、および前記チェックサムdi(-),iを含む、シェア生成装置。
  3.  請求項1のシェア生成装置であって、
     Nが3以上の整数であり、i(++)=i+2 mod Nであり、i(--)=i-2 mod Nであり、δ=0,…,N-1であり、vが1以上の整数であり、ceilが天井関数であり、前記シェア[xがm(j)個のシェア([(x,…,[(xm(j)-1∈Fに分割でき、m’(i)がceil(m(i)/v)であり、[(x’δが集合Fに属する([(xδvj,[(xδvj+1,…,[(xδv(j+1)-1)∈Fであり、
     シェア生成装置Ai(--)との間で任意値ti(--)∈Fを共有し、シェア生成装置Ai(++)との間で任意値t∈Fを共有し、シェア生成装置Ai(+)との間で任意値ui(--)∈Fを共有し、シェア生成装置Ai(-)との間で任意値ui(-)∈Fを共有する共有部と、
     チェックサムci(--),i=Σ0≦j<m’(i(--)){ti(--) j+1[(x’i(--)}+ti(--) m’(i(--))+1[(x’i(--)m’(i(--))-1∈Fを得、チェックサムdi(--),i=Σ0≦j<m’(i(--)){ui(--) j+1[(x’i(--)}+ui(--) m’(i(--))+1[(x’i(--)m’(i(--))-1∈Fを得る第1チェックサム生成部と、
     チェックサムci,i=Σ0≦j<m’(i){t j+1[(x’}+t m’(i)+1[(x’m’(i)-1∈Fを得、チェックサムdi(-),i=Σ0≦j<m’(i(-)){ui(-) j+1[(x’}+ui(-) m’(i(-))+1[(x’m’(i(-))-1∈Fを得る第2チェックサム生成部と、を有し、
     前記シェア生成部が生成する前記シェアSSは、さらに、前記任意値ti(--)、前記任意値t、前記任意値ui(--)、前記任意値ui(-)、前記チェックサムci(--),i、前記チェックサムci,i、前記チェックサムdi(--),i、およびチェックサムdi(-),iを含む、シェア生成装置。
  4.  請求項1から3のいずれかのシェア生成装置であって、
     前記シードsのデータ量は前記関数値rのデータ量よりも小さい、シェア生成装置。
  5.  請求項1から4のいずれかのシェア生成装置であって、
     前記シェアSS,…,SSN-1の総データ量は、前記平文xのデータ量のN倍未満である、シェア生成装置。
  6.  Nが2以上の整数であり、mが1以上の整数であり、m(i)が0以上m未満の整数であり、i=0,…,N-1であり、i(+)=i+1 mod Nであり、Pm(i)が関数であり、前記関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合Fm(i)に属し、
     N個のシェアSS,…,SSN-1を受け付ける入力部と、
     シェアSSに含まれた第3計算値z∈Fm(i)およびシェアSSi(+)に含まれたシードsi(+)を用いて要素x=z-Pm(i)(si(+))∈Fm(i)を得る演算部と、
     前記演算部で得られた要素x,…,xN-1によって表現される復元値x∈Fを得る連結部と、
    を有する復元装置。
  7.  請求項6の復元装置であって、
     Nが3以上の整数であり、vが1以上の整数であり、ceilが天井関数であり、前記要素x∈Fm(i)がm(i)個のサブ要素(x,…,(xm(i)-1∈Fに分割でき、m’(i)がceil(m(i)/v)であり、(x’が集合Fに属する((xvj,(xvj+1,…,(xv(j+1)-1)∈Fであり、前記シェアSSは、さらに、任意値ti(--)、任意値t、チェックサムci(--),i、およびチェックサムci,i、および/または、任意値ui(--)、任意値ui(-)、チェックサムdi(--),i、およびチェックサムdi(-),iを含み、
     前記シェアSSが前記チェックサムci,iを含み、かつ、シェアSSi(++)がチェックサムci,i(++)を含む場合に、前記チェックサムci,iおよび前記チェックサムci,i(++)をシャミア秘密分散法に則ったシェアとしてチェックサムcを復元し、シェアSSi(+)がチェックサムdi,i(+)を含み、かつ、前記シェアSSi(++)がチェックサムdi,i(++)を含む場合に、前記チェックサムdi,i(+)および前記チェックサムdi,i(++)を前記シャミア秘密分散法に則ったシェアとしてチェックサムdを復元する復元部と、
     前記チェックサムcが復元される場合に、検証値vc=Σ0≦j<m’(i){t j+1(x’i}+t m’(i)+1(x’im’(i)-1∈Fを得、前記チェックサムdが復元される場合に、検証値vd=Σ0≦j<m’(i){u j+1(x’i}+u m’(i)+1(x’im’(i)-1∈Fを得る検証値生成部と、
     前記チェックサムcが復元される場合にc=vcを満たすかを判定し、前記チェックサムdが復元される場合にd=vdを満たすかを判定する判定部と、
    を有する復元装置。
  8.  請求項6の復元装置であって、
     Nが3以上の整数であり、vが1以上の整数であり、ceilが天井関数であり、前記要素x∈Fm(i)がm(i)個のサブ要素(x,…,(xm(i)-1∈Fに分割でき、m’(i)がceil(m(i)/v)であり、(x’が集合Fに属する((xvj,(xvj+1,…,(xv(j+1)-1)∈Fであり、前記シェアSSは、さらに、任意値ti(--)、任意値t、チェックサムci(--),i、チェックサムci,i、任意値ui(--)、任意値ui(-)、チェックサムdi(--),i、およびチェックサムdi(-),iを含み、
     前記チェックサムci,iおよび前記チェックサムci,i(++)をシャミア秘密分散法に則ったシェアとしてチェックサムcを復元し、前記チェックサムdi,i(+)および前記チェックサムdi,i(++)を前記シャミア秘密分散法に則ったシェアとしてチェックサムdを復元する復元部と、
     検証値vc=Σ0≦j<m’(i){t j+1(x’i}+t m’(i)+1(x’im’(i)-1∈Fを得、検証値vd=Σ0≦j<m’(i){u j+1(x’i}+u m’(i)+1(x’im’(i)-1∈Fを得る検証値生成部と、
     c=vcを満たすかを判定し、d=vdを満たすかを判定する判定部と、
    を有する復元装置。
  9.  請求項6から8のいずれかの復元装置であって、
     前記シードsi(+)のデータ量は前記Pm(i)(si(+))のデータ量よりも小さい、復元装置。
  10.  請求項6から9のいずれかの復元装置あって、
     前記シェアSS,…,SSN-1の総データ量は、前記平文xのデータ量のN倍未満である、復元装置。
  11.  復元装置およびN個のシェア生成装置A,…,AN-1を有し、
     Nが2以上の整数であり、mが1以上の整数であり、m(i)が0以上m未満の整数であり、i=0,…,N-1であり、j=0,…,N-1であり、i(+)=i+1 mod Nであり、i(-)=i-1 mod Nであり、Pm(i)が関数であり、前記関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合Fm(i)に属し、
     シャミア秘密分散法に則ったシェア[α]にラグランジュ係数λ(i,i(-))を乗じて得られる値と前記シャミア秘密分散法に則ったシェア[α]i(-)にラグランジュ係数λ(i(-),i)を乗じて得られる値との和が復元値αであり、前記シェア[α]にラグランジュ係数λ(i,i(+))を乗じて得られる値と前記シャミア秘密分散法に則ったシェア[α]i(+)にラグランジュ係数λ(i(+),i)を乗じて得られる値との和が前記復元値αであり、
     前記シャミア秘密分散法に則った平文xのシェア[x]∈Fがm=m(0)+…+m(N-1)および[x∈Fm(j)を満たすN個のシェア[x,…,[xN-1によって表現され、
     前記N個のシェア生成装置A,…,AN-1に含まれるシェア生成装置Aは、
     入力されたシードsの関数値r=Pm(i(-))(s)∈Fm(i(-))を得る関数演算部と、
     前記ラグランジュ係数λ(i,i(-))、シェア[xi(-)、および前記関数値rを用いて第1計算値ζ=λ(i,i(-))[xi(-)+r∈Fm(i(-))を得る第1秘密計算部と、
     前記第1計算値ζを前記シェア生成装置Ai(-)に対して出力する出力部と、
     第2計算値ζi(+)∈Fm(i)を受け付ける第1入力部と、
     前記ラグランジュ係数λ(i,i(+))、前記シェア[x、および前記第2計算値ζi(+)を用いて第3計算値z=λ(i,i(+))[x+ζi(+)∈Fm(i)を得る第2秘密計算部と、
     前記シードsおよび前記第3計算値zを含む情報を、秘密分散における前記平文xのシェアSSとして得て出力するシェア生成部と、を含み、
     前記復元装置は、
     N個のシェアSS,…,SSN-1を受け付ける第2入力部と、
     シェアSSに含まれた第3計算値z∈Fm(i)およびシェアSSi(+)に含まれたシードsi(+)を用いて要素x=z-Pm(i)(si(+))∈Fm(i)を得る演算部と、
     前記演算部で得られた要素x,…,xN-1によって表現される復元値x∈Fを得る連結部と、を含む、秘密計算システム。
  12.  N個のシェア生成装置A,…,AN-1に含まれるシェア生成装置Aのシェア生成方法あって、
     Nが2以上の整数であり、mが1以上の整数であり、m(i)が0以上m未満の整数であり、i=0,…,N-1であり、j=0,…,N-1であり、i(+)=i+1 mod Nであり、i(-)=i-1 mod Nであり、Pm(i)が関数であり、前記関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合Fm(i)に属し、
     シャミア秘密分散法に則ったシェア[α]にラグランジュ係数λ(i,i(-))を乗じて得られる値と前記シャミア秘密分散法に則ったシェア[α]i(-)にラグランジュ係数λ(i(-),i)を乗じて得られる値との和が復元値αであり、前記シェア[α]にラグランジュ係数λ(i,i(+))を乗じて得られる値と前記シャミア秘密分散法に則ったシェア[α]i(+)にラグランジュ係数λ(i(+),i)を乗じて得られる値との和が前記復元値αであり、
     前記シャミア秘密分散法に則った平文xのシェア[x]∈Fがm=m(0)+…+m(N-1)および[x∈Fm(j)を満たすN個のシェア[x,…,[xN-1によって表現され、
     関数演算部が、入力されたシードsの関数値r=Pm(i(-))(s)∈Fm(i(-))を得る関数演算ステップと、
     第1秘密計算部が、前記ラグランジュ係数λ(i,i(-))、シェア[xi(-)、および前記関数値rを用いて第1計算値ζ=λ(i,i(-))[xi(-)+r∈Fm(i(-))を得る第1秘密計算ステップと、
     出力部が、前記第1計算値ζを前記シェア生成装置Ai(-)に対して出力する出力ステップと、
     入力部が、第2計算値ζi(+)∈Fm(i)を受け付ける入力ステップと、
     第2秘密計算部が、前記ラグランジュ係数λ(i,i(+))、前記シェア[x、および前記第2計算値ζi(+)を用いて第3計算値z=λ(i,i(+))[x+ζi(+)∈Fm(i)を得る第2秘密計算ステップと、
     シェア生成部が、前記シードsおよび前記第3計算値zを含む情報を、秘密分散における前記平文xのシェアSSとして得て出力するシェア生成ステップと、
    を有するシェア生成方法。
  13.  Nが2以上の整数であり、mが1以上の整数であり、m(i)が0以上m未満の整数であり、i=0,…,N-1であり、i(+)=i+1 mod Nであり、Pm(i)が関数であり、前記関数Pm(i)の値域がm(i)個の体Fの元の列を要素とする集合Fm(i)に属し、
     入力部が、N個のシェアSS,…,SSN-1を受け付ける入力ステップと、
     演算部が、シェアSSに含まれた第3計算値z∈Fm(i)およびシェアSSi(+)に含まれたシードsi(+)を用いて要素x=z-Pm(i)(si(+))∈Fm(i)を得る演算ステップと、
     連結部が、前記演算部で得られた要素x,…,xN-1によって表現される復元値x∈Fを得る連結ステップと、
    を有する復元方法。
  14.  請求項1から5の何れかのシェア生成装置、または、請求項6から10の何れかの復元装置としてコンピュータを機能させるためのプログラム。
  15.  請求項1から5の何れかのシェア生成装置、または、請求項6から10の何れかの復元装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
PCT/JP2018/030442 2017-08-22 2018-08-16 シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体 WO2019039383A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201880054042.XA CN111052205B (zh) 2017-08-22 2018-08-16 份额生成装置、复原装置、秘密计算系统、份额生成方法、复原方法、以及记录介质
AU2018321008A AU2018321008B2 (en) 2017-08-22 2018-08-16 Share generating device, reconstructing device, secure computation system, share generation method, reconstruction method, program, and recording medium
EP18847949.7A EP3675090B1 (en) 2017-08-22 2018-08-16 Share generating device, reconstructing device, secure computation system, share generation method, reconstruction method, program, and recording medium
US16/639,000 US11818254B2 (en) 2017-08-22 2018-08-16 Share generating device, reconstructing device, secure computation system, share generation method, reconstruction method, program, and recording medium
JP2019537591A JP6825111B2 (ja) 2017-08-22 2018-08-16 シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017-159346 2017-08-22
JP2017159346 2017-08-22

Publications (1)

Publication Number Publication Date
WO2019039383A1 true WO2019039383A1 (ja) 2019-02-28

Family

ID=65439872

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/030442 WO2019039383A1 (ja) 2017-08-22 2018-08-16 シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体

Country Status (6)

Country Link
US (1) US11818254B2 (ja)
EP (1) EP3675090B1 (ja)
JP (1) JP6825111B2 (ja)
CN (1) CN111052205B (ja)
AU (1) AU2018321008B2 (ja)
WO (1) WO2019039383A1 (ja)

Cited By (1)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220271933A1 (en) * 2021-02-19 2022-08-25 Samsung Electronics Co., Ltd. System and method for device to device secret backup and recovery

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137516A (ja) * 2013-01-18 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> 分散管理装置、復元装置、パーティ装置、およびプログラム
WO2015053185A1 (ja) * 2013-10-10 2015-04-16 日本電信電話株式会社 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
JP2015135380A (ja) * 2014-01-16 2015-07-27 日本電信電話株式会社 シェア変換システム、シェア変換方法、プログラム
JP2016178550A (ja) * 2015-03-20 2016-10-06 日本電気株式会社 秘密情報分散システム、情報処理装置および情報処理プログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011848A (en) * 1994-03-07 2000-01-04 Nippon Telegraph And Telephone Corporation Method and system for message delivery utilizing zero knowledge interactive proof protocol
EP1225530B1 (en) * 2001-01-18 2005-10-26 Nippon Telegraph and Telephone Corporation Method, apparatus and program for quantitative competition and recording medium having recorded thereon the program
JP4610176B2 (ja) * 2003-04-15 2011-01-12 エヌ・ティ・ティ・コミュニケーションズ株式会社 データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム
WO2006124289A2 (en) * 2005-05-13 2006-11-23 Temple University - Of The Commonwealth System Of Higher Education Secret sharing technique with low overhead information content
US8050410B2 (en) * 2006-12-08 2011-11-01 Uti Limited Partnership Distributed encryption methods and systems
US8345861B2 (en) * 2008-08-22 2013-01-01 Red Hat, Inc. Sharing a secret using polynomial division over GF(Q)
US7995765B2 (en) 2008-08-28 2011-08-09 Red Hat, Inc. Sharing a secret using hyperplanes over GF(q)
WO2010123114A1 (ja) * 2009-04-24 2010-10-28 日本電信電話株式会社 秘密分散システム、分散装置、分散管理装置、取得装置、それらの処理方法、秘密分散方法、プログラム及び記録媒体
JP5285778B2 (ja) * 2009-08-03 2013-09-11 日本電信電話株式会社 関数暗号応用システム及び方法
US9922063B2 (en) * 2009-12-29 2018-03-20 International Business Machines Corporation Secure storage of secret data in a dispersed storage network
CN104412539B (zh) * 2012-07-05 2017-05-24 日本电信电话株式会社 秘密分散系统、数据分散装置、分散数据变换装置、以及秘密分散方法
JP5885840B2 (ja) 2012-07-05 2016-03-16 日本電信電話株式会社 秘密分散システム、データ分散装置、分散データ変換装置、秘密分散方法、およびプログラム
JP6040320B2 (ja) * 2013-10-10 2016-12-07 日本電信電話株式会社 秘密並列処理装置、秘密並列処理方法、プログラム
JP5860557B1 (ja) * 2015-02-06 2016-02-16 日本電信電話株式会社 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
JP5968484B1 (ja) * 2015-03-18 2016-08-10 日本電信電話株式会社 シェア復旧システム、シェア復旧方法、およびプログラム
JP5872085B1 (ja) * 2015-03-18 2016-03-01 日本電信電話株式会社 分散値変換システム、分散値変換装置、分散値変換方法、およびプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014137516A (ja) * 2013-01-18 2014-07-28 Nippon Telegr & Teleph Corp <Ntt> 分散管理装置、復元装置、パーティ装置、およびプログラム
WO2015053185A1 (ja) * 2013-10-10 2015-04-16 日本電信電話株式会社 秘密商転移装置、秘密ビット分解装置、秘密モジュラス変換装置、秘密商転移方法、秘密ビット分解方法、秘密モジュラス変換方法、プログラム
JP2015135380A (ja) * 2014-01-16 2015-07-27 日本電信電話株式会社 シェア変換システム、シェア変換方法、プログラム
JP2016178550A (ja) * 2015-03-20 2016-10-06 日本電気株式会社 秘密情報分散システム、情報処理装置および情報処理プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. SHAMIR: "How to Share a Secret", COMMUNICATIONS OF THE ACM, vol. 22, no. 11, November 1979 (1979-11-01), pages 612 - 613, XP000565227, DOI: 10.1145/359168.359176

Cited By (1)

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

Also Published As

Publication number Publication date
JPWO2019039383A1 (ja) 2020-09-03
CN111052205B (zh) 2023-03-28
AU2018321008A1 (en) 2020-02-27
US20200366466A1 (en) 2020-11-19
EP3675090B1 (en) 2023-04-26
US11818254B2 (en) 2023-11-14
EP3675090A4 (en) 2021-05-05
AU2018321008B2 (en) 2021-05-20
EP3675090A1 (en) 2020-07-01
CN111052205A (zh) 2020-04-21
JP6825111B2 (ja) 2021-02-03

Similar Documents

Publication Publication Date Title
EP3096309B1 (en) Secret calculation method, secret calculation system, sorting device, and program
CN107210006B (zh) 不一致检测方法、检测系统、检测装置以及记录介质
US10002547B2 (en) Secret calculation method, secret calculation system, random permutation device, and program
EP3057078B1 (en) Secret quotient transfer device, secret quotient transfer method, and program therefor
WO2015053184A1 (ja) 秘密並列処理装置、秘密並列処理方法、プログラム
JP7096610B2 (ja) 処理装置、推論装置、学習装置、処理システム、処理方法、及び処理プログラム
JP2016146530A (ja) 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
WO2019039383A1 (ja) シェア生成装置、復元装置、秘密計算システム、シェア生成方法、復元方法、プログラム、および記録媒体
JP6777816B2 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
US11888977B2 (en) Share generating device, share converting device, secure computation system, share generation method, share conversion method, program, and recording medium
WO2020188906A1 (ja) 署名装置、検証装置、署名方法、検証方法、署名プログラム及び検証プログラム
EP3757976B1 (en) Secret calculation device, secret calculation authentication system, secret calculation method, and program
JP5554357B2 (ja) 演算装置
WO2019039381A1 (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: 18847949

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019537591

Country of ref document: JP

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

Country of ref document: AU

Date of ref document: 20180816

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018847949

Country of ref document: EP

Effective date: 20200323