WO2019039381A1 - 秘密計算装置、秘密計算方法、プログラム、および記録媒体 - Google Patents

秘密計算装置、秘密計算方法、プログラム、および記録媒体 Download PDF

Info

Publication number
WO2019039381A1
WO2019039381A1 PCT/JP2018/030440 JP2018030440W WO2019039381A1 WO 2019039381 A1 WO2019039381 A1 WO 2019039381A1 JP 2018030440 W JP2018030440 W JP 2018030440W WO 2019039381 A1 WO2019039381 A1 WO 2019039381A1
Authority
WO
WIPO (PCT)
Prior art keywords
secret
processing
information
matrix
round
Prior art date
Application number
PCT/JP2018/030440
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 US16/638,987 priority Critical patent/US11515998B2/en
Priority to EP18847701.2A priority patent/EP3675089B1/en
Priority to AU2018320434A priority patent/AU2018320434B2/en
Priority to CN201880054049.1A priority patent/CN111052206B/zh
Priority to JP2019537589A priority patent/JP6881588B2/ja
Publication of WO2019039381A1 publication Critical patent/WO2019039381A1/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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • 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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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 a secret computation technique for block ciphers.
  • AES Advanced Encryption Standard
  • CTR mode one of the encryption usage modes for encrypting plaintext every predetermined length block.
  • An object of the present invention is to efficiently perform a round process that repeats element replacement, row cyclic shift, column linear sum, and round key addition by secret calculation.
  • B is an integer of 1 or more
  • R is an integer of 3 or more
  • S is an integer of 2 or more
  • U S 2
  • F is a finite field.
  • b 0, ..., B-1
  • the first round processing includes processing P 1 , 4 and processing P 1 , 4 are S elements of one column of S ⁇ S matrix consisting of elements of the round key k 1 ⁇ F U of the first round S counter values i b, 0 ,..., I b, S ⁇ 1 Are respectively added to obtain a matrix M b, 1,4 .
  • the jth round processing includes processing P j, 1 , processing P j, 2 , processing P j, 3 and processing P j, 4, and processing P j, 1 is a matrix M b, j-1,4
  • the process P j, 2 includes the process of replacing each element to obtain the matrix M b, j, 1 , and the process P j, 2 cyclically shifts each element of the matrix M b, j, 1 row by row to generate the matrix M b, j, 2 includes the obtaining process
  • process P j, 3 is a matrix M b, j, 2 of matrix M b of the linear sum of the S component of each column is S number of elements of the column to obtain a j, 3 treatment hints
  • process P j, 4 is a matrix M b, j, 3 of the matrix M b by adding each element of the round key k j of the j-th round in each element, j, a 4 to obtain treated.
  • Table M (i 0, ..., i S-1) to the counter value i b, 0, ..., i b, M obtained by substituting S-1 (i b, 0 , ..., i b, S-1) Is a matrix M b, ⁇ , ⁇ where M b, 2,1 ,..., M b, 3,2 .
  • a round process that repeats element replacement, row cyclic shift, column linear sum, and round key addition can be efficiently performed by secret calculation.
  • FIG. 1 is a block diagram illustrating a secret calculation system of the embodiment.
  • FIG. 2 is a block diagram illustrating the functional configuration of the secret computing device of the embodiment.
  • FIG. 3A is a block diagram illustrating a functional configuration of a table generation unit of the embodiment.
  • FIG. 3B is a block diagram illustrating the functional configuration of the round processing unit of the embodiment.
  • FIG. 4 is a conceptual diagram for explaining the entire process of the embodiment.
  • FIG. 5 is a conceptual diagram for explaining ordinary block encryption.
  • FIG. 6 is a flowchart for explaining the encryption process of the embodiment.
  • FIG. 7 is a flowchart for explaining the details of the table generation process of the embodiment.
  • FIG. 8 is a flowchart for explaining the details of the round processing of the embodiment.
  • FIG. 9 is a flowchart for explaining the details of the round processing of the embodiment.
  • the secret computing system 1 of this embodiment has N secret computing devices 10-0 to 10- (N-1).
  • N is an integer of 1 or more.
  • N ⁇ 2 when performing a secret calculation using a share obtained by secret sharing, N ⁇ 2, and when performing a secret calculation using a homomorphic ciphertext, N ⁇ 1.
  • N ⁇ 2 when performing a secret calculation using a share obtained by secret sharing, N ⁇ 2, and when performing a secret calculation using a homomorphic ciphertext, N ⁇ 1.
  • the secret computing devices 10-0 to 10- (N-1) are configured to be communicable through the network.
  • the secret computing device 10-n executes each process under the control of the control unit 1051-n. Data obtained by each process is stored in a memory (not shown). The data stored in the memory is read out as needed and used for each process.
  • the table generation unit 1010-n has a secret calculation unit 1011-n and a control unit 1012-n.
  • the round processing unit 1030-n includes a secret calculation unit 1031-n and a control unit 1032-n.
  • plaintext block P 0, ..., confidential information P B-1 ⁇ F U ⁇ P 0 ⁇ , ..., ⁇ P B-1 ⁇ ⁇ ⁇ F U ⁇ and the addition by the secure computing (e.g., exclusive OR) Do.
  • B is an integer of 1 or more
  • R is an integer of 3 or more
  • S is an integer of 2 or more
  • U S 2
  • F is a finite field.
  • An example of a finite field F is a base field based extension field.
  • An example of the basic field is a set of remainders modulo a prime number, and the operation result in the basic field is obtained as a remainder modulo the prime number.
  • F is an extension field GF (2 8 ) which is an eight-order extension of a base field of order 2.
  • 256 values can be represented by the extension field GF (2 8 ).
  • F ⁇ means a set having elements of ⁇ finite fields F as elements. Further, ⁇ means that ⁇ belongs to ⁇ . ⁇ means a set to which secret information ⁇ of ⁇ belongs.
  • the normal block encryption process includes 1 to R + 1 rounds of round processing.
  • a block encryption process in which AES is implemented in CTR mode is a process of 1 to 11 rounds when the key length is 128 bits, and a process of 1 to 13 rounds when the key length is 192 bits.
  • the length is 256 bits, 1 to 15 rounds of processing are included, respectively.
  • the round processing of the first round includes addition processing P 1,4 (processing P 1,4 ).
  • the addition process P 1,4 is performed on S elements of S columns of one column of an S ⁇ S matrix consisting of elements of the round key k 1 1F U of the first round S counter values i b, 0 ,. , S ⁇ 1 are added to obtain a matrix M b, 1,4 .
  • the addition process P 1, 4 corresponds to AddRoundKey of the first round.
  • replacement processing P j, 1 (processing P j, 1 ) that performs element replacement and shift processing P j, which performs row cyclic shift 2 (process P j, 2 ), mixed process P j, 3 (process P j, 3 ) performing linear sum of columns, and addition process P j, 4 (process P j, 4 ) performing addition of round key And.
  • the replacement process P j, 1 corresponds to SubBytes
  • the shift process P j, 2 corresponds to ShiftRows
  • the mixed process P j, 3 corresponds to MixCoumns
  • the addition process P j, 4 corresponds to AddRoundKey Do.
  • the permutation process P j, 1 includes a process of permuting each element of the matrix M b, j-1,4 to obtain the matrix M b, j, 1 .
  • the permutation process P j, 1 is a process for replacing each element of the matrix M b, j -1 , 4 according to a predetermined procedure (for example, S-box) to obtain the matrix M b, j, 1 It is.
  • the multiplicative inverse operation is performed on the extension field GF (2 8 ) by the irreducible polynomial x 8 + x 4 + x 3 + x + 1 for each element of the matrix M b, j-1,4 and further affine transformation
  • Each element is replaced according to the result and the matrix M b, j, 1 is obtained
  • the shift process P j, 2 includes a process of cyclically shifting each element of the matrix M b, j, 1 row by row to obtain the matrix M b, j, 2 .
  • the mixing process P j, 3 includes a process of obtaining a matrix M b, j, 3 in which the linear sum of S elements of each column of the matrix M b, j, 2 is S elements of the column. The coefficients of each term of these linear sums differ from row to row.
  • Addition process P j, 4 comprises a matrix M b, j, 3 of the matrix M b by adding each element of the round key k j of the j-round to each element, the process of obtaining the j, 4.
  • the round process of the R + 1th round includes a replacement process PR + 1 , 1 for replacing elements, a shift process PR + 1 , 2 for cyclic shift of rows, and an addition process PR + 1 , 4 for adding round keys .
  • the second round of permutation processing P 2,1 substitutes each element of the matrix M b, 1,4 according to a predetermined procedure to obtain a matrix M b, j, 1 .
  • This process is performed for each element of the matrix M b, 1,4 . Therefore, the replacement process of each element can be expressed by the function f s : F ⁇ F.
  • the matrix M b, 2,1 is as follows.
  • the second round shift process P2,2 is a process of cyclically shifting the elements of the matrix M b, 2,1 row by row to obtain the matrix M b, 2,2 .
  • the following matrix M b, 2,2 is obtained by cyclically shifting the ⁇ + 1'th row of the matrix M b, 2,1 in equation (3) in the left direction by ⁇ elements.
  • the second round mixed processing P 2,3 is processing for obtaining a matrix M b, 2,3 in which the linear sum of S elements of each column of the matrix M b, 2,2 is S elements of the corresponding column. It is.
  • the mixing process P2,3 is performed on the matrix Mb, 2,2 of the equation (4), for example, the following is obtained.
  • the matrices M b, 2, 4 and the permutation obtained by the addition process P 2 , 4 and obtained by the process P 3, 1 matrix M b, 3, 1 also variable i i 0, ..., a univariate function value for i S-1 can be generalized as a table with the elements.
  • the matrix M b, 3,2 is as follows.
  • Substituting..., I b and S ⁇ 1 gives matrices M (i b, 0 ,..., I b, S ⁇ 1 ) in each block b.
  • the elements of the table M (i 0 ,..., I S-1 ) can be regarded as univariate function values or constants.
  • variable i i 0 a matrix obtained, ..., can not express the univariate function values as a table with the elements for i S-1 (multivariable function value (The table has an element), and the size of the table increases.
  • the secret information ⁇ M (i 0 ,..., I S ⁇ 1 ) ⁇ of the table M (i 0 ,..., I S ⁇ 1 ) having one- variable function values for 1 as elements is obtained.
  • Table M (i 0, ..., i S-1) to the counter value i b, 0, ..., i b, M obtained by substituting S-1 (i b, 0 , ..., i b, S-1) Is the matrix M b, ⁇ , ⁇ .
  • the secret computing device 10-n is configured to receive the secret information ⁇ ib, 0 ⁇ ,..., ⁇ Ib, S-1 ⁇ and the secret information ⁇ of the counter values i b, 0 , ..., i b, S-1.
  • M (i 0, ..., i S-1) using a ⁇ , b 0 by secure computing, ..., obtained matrix M b for B-1, gamma, confidential information mu ⁇ M b, gamma, and mu ⁇ .
  • secure computing apparatus 10-n are either round key k 2, ..., confidential information and confidential information of k R + 1 ⁇ M b, ⁇ , ⁇ used by secure computing, by executing the remaining processing to obtain
  • the secret information may be a share (secret sharing value) according to the secret sharing scheme, or a ciphertext according to the homomorphic cryptography (cipher text such as RSA cryptography or ElGamal cryptography).
  • secret sharing scheme for example, Koji Chida, Hiroki Shibata, Igarashi Univ., Katsuya Takahashi, "Reconsideration of lightweight verifiable three-party secret function calculation", CSS 2010, 2010 (Reference 2), "Michael Ben-Or, Shafi Goldwasser, Avi Wigderson: Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation (Extended Abstract). STOC 1988: 1-10" (reference 3), etc. ing.
  • the secure computing unit 1011-n table generation unit 1010-n is, the counter value i b, 0, ..., i b, S-1 variable i 0, ..., a i S-1, the control unit 1012-n Using the secret information of the round keys k 1 ,..., K R that are required under the control of, and any processing P ⁇ , ⁇ from addition processing P 1,4 (where P ⁇ , ⁇ is P 2,1 ,..., P 3 , 2 ) is executed by secret calculation (step S1011-n) to obtain confidential information ⁇ M (i 0 ,..., I S ⁇ 1 ) ⁇ .
  • the secret calculation unit 1011-n of the table generation unit 1010-n changes the counter values i b, 0 , ..., i b, S-1 as variables.
  • i 0 ,..., i S ⁇ 1 and secret information ⁇ k 1 ⁇ , ⁇ k 2 ⁇ be used to calculate the addition process P 1 , 4 of the first round and the replacement process P 2 , 1 of the second round , And obtain and output the confidential information of the matrix obtained by the permutation process P 2 , 1 as the confidential information ⁇ M (i 0 ,..., I S -1 ) ⁇ (for example, the confidential information of equation (3)) .
  • the secret calculation unit 1011-n of the table generation unit 1010-n changes the counter values i b, 0 , ..., i b, S-1 as variables.
  • the secret calculation unit 1011-n of the table generation unit 1010-n changes the counter values i b, 0 , ..., i b, S-1 as variables.
  • Counter value i b ', 0, ..., i b', S-1 the counter value i 0,0, ..., i 0, is a value obtained by applying a predetermined rule on the S-1 .
  • the counter value i b'-1,0, ..., i b'-1 the value is represented by S-1 i b'-1,0 ... i b'-1, a predetermined value S-1 (e.g. , 1)
  • S-1 e.g. , 1
  • the round processing unit 1030-n uses the secret information and the secret information ⁇ M b, ⁇ , ⁇ ⁇ of any round key k 2 ,..., K R + 1 to perform the remaining process by the secret calculation (step S1031 b-n).
  • Post-processing is performed to obtain confidential information ⁇ M b, ⁇ , MU ⁇ of the matrix M b, ⁇ , MU obtained by execution.
  • the round processing unit 1030-n is the secret information ⁇ k 3 ⁇ , ...
  • the third round mixed processing P 3,3 to the R round addition processing P R, 4 is executed by secret calculation, and further, the R + 1 round replacement processing P R + 1, 1, shift processing P R + 1, 2, addition processing P R + l, 4 to run resulting matrix M b, confidential information ⁇ M b, R + 1,4 ⁇ of R + l, 4 outputs to obtain.
  • the confidential information ⁇ M (i 0 ,..., I S ⁇ 1 ) ⁇ of the table M (i 0 ,..., I S ⁇ 1 ) is generated, and the confidential information ⁇ M (i 0 ,
  • the size of the table M (i 0 ,..., I S-1 ) can be expressed by a data amount equal to or less than U times F, and each block b using confidential information ⁇ M (i 0 ,..., I S-1 ) ⁇
  • M b, ⁇ , ⁇ is M b, 3,1 or M b, 3,2
  • the communication necessary for the secret calculation of the two permutation processes P 2,1 , P 2,2 It can be reduced.
  • the second embodiment is a modification of the first embodiment, in which a checksum for performing tampering detection is generated to perform tampering detection.
  • the table M (i 0, ..., i S-1) encryption information ⁇ M (i 0, ..., i S-1) ⁇ of the data volume handled by the preprocessing for obtaining a is small.
  • the amount of data processed in the post-stage processing performed after the pre-stage processing becomes significantly large.
  • checksums are generated in different ways according to these differences. This enables safe and efficient encryption.
  • differences from the first embodiment will be mainly described, and the matters already described will be simplified using the same reference numerals.
  • the secret computing system 2 of this embodiment has N secret computing devices 20-0 to 20- (N-1).
  • N is an integer of 1 or more.
  • the secret computing devices 20-0 to 20- (N-1) are configured to be able to communicate through the network.
  • the secret computing device 20-n executes each process under the control of the control unit 1051-n. Data obtained by each process is stored in a memory (not shown). The data stored in the memory is read out as needed and used for each process.
  • the table generation unit 2010-n includes a secret calculation unit 1011-n, a control unit 1012-n, a random number generation unit 2015-n, and a checksum update unit 2016-n.
  • the round processing unit 2030-n includes a secret calculation unit 1031-n, a control unit 1032-n, a dummy block generation unit 2035a-n, a concealment unit 2035b-n, and a combination unit 2035c-n, It has a random substitution unit 2036-n and a checksum updating unit 2037 and 2038.
  • checksums are generated by different methods in the pre-stage processing with a small amount of processing data and the post-stage processing with a very large amount of processing data. That is, the table generation unit 2010 generates a first checksum for detecting tampering in the pre-stage processing according to the first method, and the round processing unit 2030 generates a second checksum for detecting tampering in the post-stage processing. Generate a checksum according to the second method.
  • the first method is a method in which the level of security does not depend on the amount of data of the restoration value of the confidential information that is the target of tampering detection.
  • the second method is a method in which the level of security depends on the data amount of the restoration value of the confidential information that is the target of tampering detection.
  • the second method safety when the data amount of the restored value of the confidential information is a falsification detection target is alpha 1 is the amount of data restored value of confidential information is a falsification detection target is alpha 2
  • This method is higher than the safety of However, ⁇ 1 is larger than ⁇ 2 .
  • the second method is a method in which the security is higher as the data amount of the restoration value of the confidential information to be tampered with is larger.
  • the methods of References 6 and 7 assume that dummy blocks can be calculated without being concealed. However, in the present embodiment, the dummy block is also processed as the secret information. Therefore, in the present embodiment, any one of the dummy blocks is set as the processing requiring dummy block, and the checksum for the processing requiring dummy block is generated by the third method. This will ensure higher security.
  • the third method is a method in which the level of security does not depend on the data amount of the restoration value of the confidential information that is the target of tampering detection. For example, the third method is the same as the first method.
  • the systems of References 4 and 5 are adopted as the first system will be described.
  • step S2010-n The details of step S2010-n are illustrated using FIG.
  • the secret information in this example is a share according to the secret sharing scheme.
  • the pre-processing includes secret calculation using secret information in accordance with T types of secret sharing schemes meth 0 , ..., meth T-1 .
  • the secret calculation is each secret calculation performed in the process of step S1010-n described above.
  • a specific example of a method of generating secret information ⁇ r t ⁇ is disclosed in reference 5. For example, first, each of the random number generation units 2015-n of the secret calculation device 20-n generates a random number r ' n ⁇ F.
  • any of the secure computing apparatuses 20-1 ⁇ 20- (N-1) also without knowing the random number r t, can be a random number generation unit 2015-n to obtain confidential information of the random number r t ⁇ r t ⁇ (Step S2015-n).
  • the checksum updating unit 2016-n initializes C1 , t included in the first checksum to null (empty set).
  • the first checksum may be composed of only C1 , t , or may be composed of C1 , t and other information (step S2016-n).
  • the checksum update unit 2016-n When a plurality of pieces of secret information are used for secret calculation Com ⁇ , the checksum update unit 2016-n generates a randomized dispersion value for each piece of secret information , and updates C 1, t by adding them (step S2016a). -N).
  • Secret calculation unit 1011-n executes secret calculation Com ⁇ (step S 1011-n).
  • the checksum update unit 2016-n obtains the secret information ⁇ h w r t ⁇ by secret calculation using the secret information ⁇ h w ⁇ and the secret information ⁇ r t ⁇ .
  • the secret calculation result includes a plurality of pieces of secret information
  • the checksum updating unit 2016-n generates a randomized dispersion value for each piece of secret information , and updates C 1, t by the addition thereof (step S2016 b-n) ).
  • steps S2016a-n to S2016b-n is performed until ⁇ pieces of secret calculation Com 0 ,..., Com ⁇ 1 are executed and confidential information ⁇ M (i 0 ,..., I S ⁇ 1 ) ⁇ is obtained.
  • Step S1020-n The second embodiment is the same as the first embodiment except that the secret computing device 20-n executes in place of the secret computing device 10-n.
  • the round processing unit 2030-n is any one of a round key k 2, ..., k R + 1 of the confidential information and confidential information ⁇ M b, ⁇ , ⁇ used by secure computing, remaining processing
  • the post- stage processing is performed to obtain the confidential information ⁇ M b, ⁇ , MU ⁇ of the matrix M b, ⁇ , MU obtained by executing the following.
  • the round processing unit 2030-n generates a second checksum for detecting tampering in the post-stage processing according to the second method.
  • the method of changing the method of the reference documents 6 and 7 is adopted as the second method.
  • Step S2030-n A specific example of step S2030-n will be described using FIG. 8 and FIG.
  • the secret information in this example is a share according to the secret sharing scheme.
  • the dummy block generator 2035a-n may, Y-number of dummy blocks D 0, ..., confidential information D Y-1 ⁇ F U ⁇ D 0 ⁇ , ..., and generates and outputs ⁇ D Y-1 ⁇ .
  • Y p-B.
  • p is a prime number larger than B.
  • One of the dummy blocks D 0 ,..., D Y ⁇ 1 is set as the processing-required dummy block DP.
  • the number of processing-required dummy blocks DP may be one, or two or more. Requiring processing dummy block dummy block other than DP D y 'is a public value.
  • the dummy block generation unit 2035 a-n conceals the dummy block D y ′ which is a public value by a method having legitimacy to obtain the confidential information ⁇ D y ′ ⁇ .
  • the process-required dummy block DP may be a public value or may not be a public value. In the former case, the dummy block generation unit 2035a-n conceals the dummy block DP, which is a public value, to obtain concealment information ⁇ DP ⁇ .
  • the round processing unit 2030-n uses the secret information of any necessary round key k 2 ,..., K R + 1 and the secret information ⁇ DP ⁇ of the processing-required dummy block DP to generate a matrix M DP, ⁇ , MU
  • the dummy post-processing to obtain the confidential information ⁇ M DP, ⁇ , MU ⁇ of ⁇ circle over (1) ⁇ is performed.
  • the matrices M DP, ⁇ , and MU are processing results obtained by performing the above-described residual processing on the processing-required dummy block DP.
  • a third checksum for detecting tampering in the dummy post-processing is generated according to the third method.
  • the third method is a method in which the security does not depend on the data amount of the restoration value of the confidential information to be subjected to the dummy post-processing.
  • the third scheme may or may not be the same as the first scheme.
  • an example is shown in which the third method and the first method are identical to each other.
  • the checksum updating unit 2038-n initializes C 3, t included in the third checksum to null (empty set).
  • the third checksum may be composed only of C3 , t , or may be composed of C3 , t and other information (step S2038-n).
  • ⁇ ′ is an integer of 1 or more.
  • the checksum updating unit 2038 -N generates secret information ⁇ d ⁇ r t ⁇ by secret calculation using the secret information ⁇ d ⁇ ⁇ and the secret information ⁇ r t ⁇ .
  • the secret calculation unit 1031-n executes the secret calculation Com3 ′ ′ (step S2031a-n).
  • Secure computing Com3 [psi 'by the execution of, confidential information which is secret calculation results in line with the secret sharing scheme meth t ⁇ h' w ⁇ are obtained.
  • the checksum updating unit 2038-n obtains the secret information ⁇ h ′ w r t ⁇ by secret calculation using the secret information ⁇ h ′ w ⁇ and the secret information ⁇ r t ⁇ .
  • the checksum updating unit 2038-n generates a randomized dispersion value for each of the secret information , and updates C 3, t by adding them (step S 2038 b-n) ).
  • steps S2038a-n to S2038b-n is repeated until ⁇ 'pieces of secret calculations Com3 0 ,..., Com3 -1'-1 are executed and secret information ⁇ M DP, ⁇ , MU ⁇ is obtained.
  • the processing of steps S2038a-n to S2038b-n is repeated until the R + 1 round is completed.
  • ⁇ ′ 0,..., ⁇ ′ ⁇ 1, and ⁇ 3 ⁇ ′ > is a randomized dispersion value.
  • the checksum updating unit 2037-n initializes C 2, A 2, C 2, ⁇ _q , C 2, D contained in the second checksum to null (empty set).
  • the second checksum is C 2, A, C 2, ⁇ _q, may be composed of only C 2, D, C 2, A, C 2, is composed of Pai_q, and C 2, D and other information (Step S2037-n).
  • the random replacement unit 2036-n generates secret information ⁇ q ⁇ of random replacement information ⁇ q representing the content of random replacement.
  • the random permutation information ⁇ q is information representing a random cyclic shift (step S2036-n).
  • the combining unit 2035c-n uses these, and secret information of the non-randomized sequence A ⁇ F UB consisting of elements of the matrices M 0, ⁇ , ⁇ ,..., M B ⁇ 1, ⁇ , ⁇ according to secret calculation ⁇ and Y number of dummy blocks D 0, ..., confidential information ⁇ D 0 of D Y-1 ⁇ F U ⁇ , ..., ⁇ D Y-1 ⁇ and the bound secret information ⁇ a
  • D ⁇ ⁇ a
  • represents a bond (linkage) between ⁇ and ⁇ (Step S2035 c-n).
  • the random substitution unit 2036-n uses the secret information ⁇ q ⁇ and the secret information ⁇ A
  • D to obtain a randomized sequence ⁇ q ⁇ q (A
  • Secret information ⁇ q ⁇ ⁇ q (A
  • D) ⁇ of U (B + Y) is obtained by secret calculation and output. This process is executed for each q 0,..., Q-1 (step S2036b-n).
  • Secret calculation unit 1031-n uses secret information ⁇ A ⁇ and sets secret information ⁇ M b, ⁇ , ⁇ ⁇ corresponding to U elements of matrix M b, ⁇ , ⁇ constituting non-randomized sequence A. Perform the secret calculation of each sub-process Sub ⁇ . That is, the secure computing unit 1031-n, each secret information ⁇ M b, ⁇ , ⁇ executes secure computing for each sub-processing Sub theta respect.
  • the secret calculation unit 1031-n applies the remaining process to each of the matrices M b, ⁇ , ⁇ that form the non-randomized sequence A, and obtains secret information ⁇ M b, b of the matrices M b, ⁇ , MU obtained . Obtain ⁇ , MU ⁇ .
  • the secret calculation unit 1031-n obtains secret information ⁇ q, b ′ ′, ⁇ , MU ⁇ ⁇ ⁇ F U ⁇ , which is the secret calculation result of each sub-process Sub ⁇ .
  • dummy block D y e.g., dummy block D y except requiring processing dummy block DP
  • the operation result D y of each sub-process sub theta, gamma obtain MU ⁇ F U (step S2031b-n).
  • the concealing unit 2035b-n conceals the operation results D y, ⁇ , and MU by a method having legitimacy, obtains and outputs concealment information ⁇ D y, ⁇ , MU ⁇ (step S2035 b-n).
  • Checksum update unit 2037-n is confidential information ⁇ M b, ⁇ , MU ⁇ confidential information is a secret calculation results of each sub-processing Sub theta obtained in the process for obtaining a ⁇ M b, ⁇ , ⁇ , MU ⁇ Update C 2, A with ⁇ ⁇ F U ⁇ .
  • A ( C0, 2, A , ..., CB -1, 2, A )
  • the checksum updating unit 2037-n generates ( C0, 2, A
  • ⁇ _q (C 0,2, ⁇ _q ,..., C B + Y ⁇ 1, 2, ⁇ _q )
  • the checksum updating unit 2037-n updates C 2, D with confidential information ⁇ D y, ⁇ , ⁇ , MU ⁇ ⁇ ⁇ F U ⁇ of the calculation result of each sub-process Sub ⁇ .
  • D ( C0,2, D , ..., CY -1,2, D )
  • the checksum updating unit 2037-n calculates ( C0,2, D
  • steps S2031b-n to S2037d-n is executed for all of the sub-processings Sub 0 ,..., Sub 1 . Thereafter, the checksum updating unit 2037-n outputs a second checksum including C 2, A 2, C 2, ⁇ _q , C 2, D.
  • Step S1041-n The second embodiment is the same as the first embodiment except that the secret computing device 20-n executes in place of the secret computing device 10-n.
  • the legitimacy verification unit 2043-n verifies the legitimacy of C 1, t and C 3, t as described in References 4 and 5.
  • Further validity verifying unit 2043-n is, ⁇ 0 r t ⁇ , ..., using ⁇ ⁇ -1 r t ⁇ , the secure computing, ⁇ 0 r t, ..., of the sum of ⁇ ⁇ -1 r t Secret information ⁇ 0 r t +... + ⁇ ⁇ ⁇ 1 r t ⁇ is determined.
  • the legitimacy verification unit 2043-n uses secret information ⁇ r t ( ⁇ 0 +... + ⁇ ⁇ ⁇ 1 ) ⁇ and ⁇ 0 r t +... + ⁇ ⁇ ⁇ 1 r t ⁇ to calculate DC 1 by secret calculation.
  • T r t ( ⁇ 0 +...
  • the secret information ⁇ DC 1, t ⁇ is obtained to restore DC 1, t .
  • ⁇ 3 0 ⁇ , ..., ⁇ 3 ⁇ '-1 ⁇ and ⁇ r t ⁇ of ⁇ 3 ⁇ '-1 ⁇ , ⁇ 3 ⁇ '-1 r t ⁇ > by secret calculation, ⁇ 3 0 , ... obtains the concealment information of the results obtained by multiplying the r t to the sum of ⁇ 3 ⁇ '-1 ⁇ r t ( ⁇ 3 0 + ... + ⁇ 3 ⁇ -1) ⁇ .
  • Further validity verifying unit 2043-n is, ⁇ 3 0 r t ⁇ , ..., using ⁇ 3 ⁇ '-1 r t ⁇ , the secure computing, ⁇ 3 0 r t, ..., of ⁇ 3 ⁇ '-1 r t Secret information ⁇ 3 0 r t +... + ⁇ 3 ⁇ ′ ⁇ 1 r t ⁇ of the sum is obtained.
  • Step S2044-n The second checksum and the secret information ⁇ q ⁇ including C 2, A 2, C 2, ⁇ _ q , C 2, D are input to the validity verification unit 2044-n.
  • the legitimacy verification unit 2044-n verifies the legitimacy of C 2, A 2, C 2, ⁇ _ q , C 2, D as described in References 5 and 6. That is, the legitimacy verification unit 2044-n releases the secret information ⁇ q ⁇ to obtain the random substitution information ⁇ q , and uses ⁇ q , C 2, A 2, C 2, ⁇ _ q , C 2, D, and a secret.
  • the legitimacy verification unit 2044-n calculates secret information ⁇ ran ⁇ of random number ran and ⁇ ' b ", q, 0 ⁇ ,..., ⁇ B ' b", q, M "-1 ⁇ by secret calculation.
  • the product-sum operation is performed, and as a result, ⁇ is disclosed to obtain ⁇ If the ⁇ is 0, the validity verification unit 2044-n determines that there is no falsification in the post-processing, otherwise the post-processing It is determined that the
  • the round processing that repeats element replacement, row cyclic shift, column linear sum, and round key addition can be efficiently performed by secret calculation.
  • a first checksum for detecting tampering in the pre-stage processing is generated according to the first method, and a second checksum for detecting tampering in the post-stage processing according to the second method. Generated.
  • the amount of processing data is much larger in the post-stage processing than in the pre-stage processing.
  • the second method is a method in which the security is higher as the amount of processing data is larger, and is suitable for detection of tampering in the subsequent processing.
  • the amount of processing data is small, so the efficiency is low even if the second method is used.
  • communication with high security can be efficiently realized by changing the checksum generation method between the pre-stage processing and the post-stage processing.
  • Randomized variance values may be generated for up to secret calculations that require communication (eg, secret calculation of Multiplication Inverse of SubBytes), and C 1, t may be updated.
  • a randomized dispersion value may be generated before and after each secret calculation performed in step S1020-n, and C1 , t may be updated. That is, in step S1020-n, the secret used in making the secure computing using confidential information ⁇ a lambda ⁇ conforming to secret sharing scheme meth t, and confidential information ⁇ a lambda ⁇ and confidential information ⁇ r t ⁇
  • One may obtain ⁇ r t ⁇ > and update C 1, t by the addition of the randomized variance value ⁇ a ⁇ > .
  • step S1020-n when secret information ⁇ h w ⁇ , which is the result of secret calculation according to the secret sharing scheme meth t , is obtained in step S1020-n, the secret information ⁇ h w ⁇ and the secret information ⁇ r t ⁇ are used.
  • the first checksum including C 1, t may be updated by obtaining ⁇ h w r t ⁇ > and updating C 1, t by adding a randomized variance value ⁇ h w >.
  • a checksum may be generated and verified to detect tampering in step S1041-n. This checksum is preferably generated in accordance with the second scheme.
  • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

秘密計算装置は、一変数関数値を要素に持つ表M(i0,…,iS-1)の秘匿情報{M(i0,…,iS-1)}を得る。ただし、表M(i0,…,iS-1)にカウンタ値ib,0,…,ib,S-1を代入したM(ib,0,…,ib,S-1)がMb,2,1,…,Mb,3,2の何れかである行列Mb,γ,μである。秘密計算装置は、秘匿情報{ib,0},…,{ib,S-1}および秘匿情報{M(i0,…,iS-1)}を用い、秘密計算によって、秘匿情報{Mb,γ,μ}を得、処理Pj,1、処理Pj,2、処理Pj,3、および処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る。

Description

秘密計算装置、秘密計算方法、プログラム、および記録媒体
 本発明はブロック暗号の秘密計算技術に関する。
 共通鍵暗号方式の一つにAES(Advanced Encryption Standard)がある(例えば、非特許文献1等参照)。AESでは、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理によって暗号化を行う。また、平文を所定長のブロックごとに暗号化する暗号利用モードの一つにCTRモードがある。AESがCTRモードで実装された場合、各ブロックでラウンド処理が行われ、それによって得られた各ブロックの鍵の暗号文が各ブロックの平文に加算される。
Daniel J. Bernstein, Peter Schwabe, "New AES software speed records," INDOCRYPT 2008, Progress in Cryptology - INDOCRYPT 2008 pp. 322 - 336.
 本発明の目的は、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行することである。
 Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=Sであり、Fが有限体である。b=0,…,B-1であり、r=1,…,Rであり、j=2,…,Rであり、1ラウンド目のラウンド処理が処理P1,4を含み、処理P1,4が1ラウンド目のラウンド鍵k∈Fの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S-1をそれぞれ加算して行列Mb,1,4を得る処理を含む。jラウンド目のラウンド処理が処理Pj,1と処理Pj,2と処理Pj,3と処理Pj,4とを含み、処理Pj,1が行列Mb,j-1,4の各要素を置換して行列Mb,j,1を得る処理を含み、処理Pj,2が行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含み、処理Pj,3が行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含み、処理Pj,4が行列Mb,j,3の各要素にjラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含む。
 秘密計算装置は、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得る前段処理を行う。ただし、表M(i,…,iS-1)にカウンタ値ib,0,…,ib,S-1を代入したM(ib,0,…,ib,S-1)がMb,2,1,…,Mb,3,2の何れかである行列Mb,γ,μである。秘密計算装置は、カウンタ値ib,0,…,ib,S-1の秘匿情報{ib,0},…,{ib,S-1}および秘匿情報{M(i,…,iS-1)}を用い、秘密計算によってb=0,…,B-1についての行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての処理Pj,1、処理Pj,2、処理Pj,3、および処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。
 本発明では、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。
図1は実施形態の秘密計算システムを例示したブロック図である。 図2は実施形態の秘密計算装置の機能構成を例示したブロック図である。 図3Aは実施形態の表生成部の機能構成を例示したブロック図である。図3Bは実施形態のラウンド処理部の機能構成を例示したブロック図である。 図4は実施形態の処理全体を説明するための概念図である。 図5は通常のブロック暗号化を説明するための概念図である。 図6は実施形態の暗号化処理を説明するためのフロー図である。 図7は実施形態の表生成処理の詳細を説明するためのフロー図である。 図8は実施形態のラウンド処理の詳細を説明するためのフロー図である。 図9は実施形態のラウンド処理の詳細を説明するためのフロー図である。
 以下、図面を参照して本発明の実施形態を説明する。
 [第1実施形態]
 まず、第1実施形態を説明する。
 <構成>
 図1に例示するように、本形態の秘密計算システム1はN個の秘密計算装置10-0~10-(N-1)を有する。Nは1以上の整数である。例えば、秘密分散によって得られたシェアを用いて秘密計算を行う場合にはN≧2であり、準同型暗号文を用いて秘密計算を行う場合にはN≧1である。N≧2の場合、秘密計算装置10-0~10-(N-1)はネットワークを通じて通信可能に構成される。
 図2に例示するように、本形態の秘密計算装置10-n(ただし、n=0,…,N-1)は、初期記憶部1001-n、表記憶部1002-n、カウンタ更新部1003-n、表生成部1010-n、表計算部1020-n、ラウンド処理部1030-n、加算部1041-n、および制御部1051-nを有する。秘密計算装置10-nは制御部1051-nの制御の下で各処理を実行する。各処理で得られたデータは図示していないメモリに記憶される。メモリに格納されたデータは必要に応じて読み出され、各処理に利用される。
 図3Aに例示するように、表生成部1010-nは、秘密計算部1011-nおよび制御部1012-nを有する。図3Bに例示するように、ラウンド処理部1030-nは、秘密計算部1031-nおよび制御部1032-nを有する。
 <処理の概要>
 図4および図5に例示するように、本形態の秘密計算装置10-nは、1,…,R+1ラウンド目のラウンド鍵k,…,kR+1∈Fの秘匿情報{k},…,{kR+1}∈{F}、および各ブロックb=0,…,B-1のカウンタ値ib,0,…,ib,S-1∈Fの秘匿情報{ib,0},…,{ib,S-1}∈{F}を用い、秘密計算により、各ブロックb=0,…,B-1でブロック暗号化を行う。次に秘密計算装置10-nは、各ブロックb=0,…,B-1のブロック暗号化で得られた秘匿情報と、暗号化対象の平文PをB個のブロックに分割して得られた平文ブロックP,…,PB-1∈Fの秘匿情報{P},…,{PB-1}∈{F}とを秘密計算によって加算(例えば、排他的論理和)する。ただし、Bは1以上の整数であり、Rは3以上の整数であり、Sは2以上の整数であり、U=Sであり、Fは有限体である。有限体Fの例は基礎体に基づく拡大体である。基礎体の例は素数を法とした剰余からなる集合であり、当該基礎体での演算結果は当該素数を法とした剰余として得られる。例えば、Fは位数2の基礎体を8次拡大した拡大体GF(2)である。例えば、基礎体の元が2バイトのデータである場合、拡大体GF(2)の元は1バイト(=8ビット)のデータとなる。この場合、拡大体GF(2)によって256通りの値を表現できる。Fαはα個の有限体Fの元を要素とする集合を意味する。また、α∈βはαがβに属することを意味する。{β}はα∈βの秘匿情報{α}が属する集合を意味する。
 ≪ブロック暗号化≫
 本形態のブロック暗号化では、表を用い、通常のブロック暗号化処理を効率化する。図5に例示するように、通常のブロック暗号化処理は、1~R+1ラウンドのラウンド処理を含む。例えば、AESをCTRモードで実装したブロック暗号化処理は、鍵長が128ビットの場合には1~11ラウンドの処理を、鍵長が192ビットの場合には1~13ラウンドの処理を、鍵長が256ビットの場合には1~15ラウンドの処理をそれぞれ含む。
 1ラウンド目のラウンド処理は加算処理P1,4(処理P1,4)を含む。加算処理P1,4は1ラウンド目のラウンド鍵k∈Fの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S-1をそれぞれ加算して行列Mb,1,4を得る処理を含む。AESの場合、加算処理P1,4は1ラウンド目のAddRoundKeyに相当する。
 jラウンド目(ただし、j=2,…,R)のラウンド処理は、要素の置換を行う置換処理Pj,1(処理Pj,1)と、行の巡回シフトを行うシフト処理Pj,2(処理Pj,2)と、列の線形和を行う混合処理Pj,3(処理Pj,3)と、ラウンド鍵の加算を行う加算処理Pj,4(処理Pj,4)とを含む。AESの場合、置換処理Pj,1はSubBytesに相当し、シフト処理Pj,2はShiftRowsに相当し、混合処理Pj,3はMixCoumnsに相当し、加算処理Pj,4はAddRoundKeyに相当する。置換処理Pj,1は、行列Mb,j-1,4の各要素を置換して行列Mb,j,1を得る処理を含む。例えば、置換処理Pj,1は行列Mb,j-1,4の各要素を予め定められた手順(例えば、S-box)に則って置換して行列Mb,j,1を得る処理である。AESの場合、行列Mb,j-1,4の各要素に対し、既約多項式x+x+x+x+1による拡大体GF(2)上の乗法逆元演算を行い、さらにアフィン変換を行った結果によって各要素を置換して行列Mb,j,1を得る(参考文献1:情報セキュリティ対策基盤整備事業「電子政府推奨暗号の実装」,独立行政法人情報処理推進機構)。シフト処理Pj,2は、行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含む。例えば、シフト処理Pj,2は、行列Mb,j,1のι+1(ただし、ι=0,…,P-1)行目の行を所定の方向(例えば、左方向)にι要素分だけ巡回シフトする処理である。混合処理Pj,3は、行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含む。これらの線形和の各項の係数は行ごとに相違する。加算処理Pj,4は、行列Mb,j,3の各要素にjラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含む。
 R+1ラウンド目のラウンド処理は、要素の置換を行う置換処理PR+1,1と、行の巡回シフトを行うシフト処理PR+1,2と、ラウンド鍵の加算を行う加算処理PR+1,4とを含む。
 ≪本形態のブロック暗号化≫
 本形態のブロック暗号化の特徴を説明する。前述のように、1ラウンド目の加算処理P1,4では、ラウンド鍵kの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S-1をそれぞれ加算して行列Mb,1,4を得る。S=4、U=16、ラウンド鍵k=(k1,0,…,k1,15)の場合、行列Mb,1,4は例えば以下のようになる。
Figure JPOXMLDOC01-appb-M000001

ただし、n,…,n11∈Fは任意値である。n=…=n11=0であってもよい。AESではn,…,n11はnonceに相当する。
 2ラウンド目の置換処理P2,1は、行列Mb,1,4の各要素を予め定められた手順に則って置換して行列Mb,j,1を得る。この処理は行列Mb,1,4の要素ごとに行われる。そのため、各要素の置換処理を関数f:F→Fで表現できる。S=4、U=16、ラウンド鍵k=(k1,0,…,k1,15)の場合、行列Mb,2,1は以下のようになる。
Figure JPOXMLDOC01-appb-M000002
 ラウンド鍵kおよび任意値n,…,n12は全ブロックb=0,…,B-1で共通であり、定数とみなせる。ブロックb=0,…,B-1ごとに異なるのはカウンタ値ib,0,…,ib,3である。カウンタ値ib,0,…,ib,3をカウンタ値の変数i,…,iとすると、式(2)は以下のように変形できる。
Figure JPOXMLDOC01-appb-M000003

ここで、f1,0,…,f1,11は全ブロックb=0,…,B-1に共通であるため定数とみなせ、f1,12(i),…,f1,15(i)は変数i=i,…,iに対する一変数関数値である。つまり、各ブロックb=0,…,B-1の行列Mb,2,1は、変数i=i,…,iに対する一変数関数値を要素に持つ表M(i,…,i)として一般化できる。このことはS=4の場合のみならず、その他のSの場合も同様である。すなわち、各ブロックb=0,…,B-1の行列Mb,2,1は、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として一般化できる。
 2ラウンド目のシフト処理P2,2は、行列Mb,2,1の各要素を行ごとに巡回シフトして行列Mb,2,2を得る処理である。式(3)の行列Mb,2,1のι+1行目の行を左方向にι要素分だけ巡回シフトすると以下の行列Mb,2,2が得られる。
Figure JPOXMLDOC01-appb-M000004

このように、各ブロックb=0,…,B-1の行列Mb,2,2も、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として一般化できる。
 2ラウンド目の混合処理P2,3は、行列Mb,2,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,2,3を得る処理である。式(4)の行列Mb,2,2に対して混合処理P2,3を行うと例えば以下のようになる。
Figure JPOXMLDOC01-appb-M000005

ただし、
Figure JPOXMLDOC01-appb-M000006

である。x,…,x11は全ブロックb=0,…,B-1で共通であるため定数とみなせ、x12,…,x15は変数i=i,…,iS-1に対する一変数関数値である。そのため、式(5)は以下のように変形できる。
Figure JPOXMLDOC01-appb-M000007

ただし、f2,s(i)(ただし、s=0,…,S-1、i=i,…,iS-1)は一変数関数値である。つまり、行列Mb,2,3も、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として一般化できる。
 その後の2ラウンド目の加算処理P2,4および3ラウンド目の置換処理P3,1は要素ごとの処理であるため、加算処理P2,4によって得られる行列Mb,2,4および置換処理P3,1によって得られる行列Mb,3,1も変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として一般化できる。さらに、3ラウンド目のシフト処理P3,2は要素を巡回シフトするだけであるため、それによって得られる行列Mb,3,2も変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として一般化できる。例えば、行列Mb,3,2は以下のようになる。
Figure JPOXMLDOC01-appb-M000008

すなわち、行列Mb,2,1,…,Mb,3,2は変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として一般化できる。ここで、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)に、各ブロックbのカウンタ値ib,0,…,ib,S-1を代入すると、各ブロックbでの行列M(ib,0,…,ib,S-1)が得られる。表M(i,…,iS-1)の要素は一変数関数値または定数とみなせる。そのため、表M(i,…,iS-1)の各要素は有限体Fの元のデータ量以下で表現でき、表M(i,…,iS-1)全体はそのU倍のデータ量以下で表現できる。例えば、S=4であり、有限体FがGF(2)であってその元のとり得る値の数が256通りである場合、表M(i,…,iS-1)の各要素のとり得る値の数は256通り以下となり、表全体では1バイト×256通り×16個=4096バイト以下のデータ量となる。一方、3ラウンド目の混合処理P3,3以降では、得られる行列を変数i=i,…,iS-1に対する一変数関数値を要素に持つ表として表現できず(多変数関数値を要素に持つ表となってしまい)、表のサイズが大きくなってしまう。
 以上の特徴を利用し、秘密計算装置10-nは、まず、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得る。ただし、表M(i,…,iS-1)にカウンタ値ib,0,…,ib,S-1を代入したM(ib,0,…,ib,S-1)が行列Mb,γ,μである。行列Mb,γ,μはMb,2,1,…,Mb,3,2の何れかである(γ=2,3、μ=1,…,4)。次に、秘密計算装置10-nは、カウンタ値ib,0,…,ib,S-1の秘匿情報{ib,0},…,{ib,S-1}および秘匿情報{M(i,…,iS-1)}を用い、秘密計算によってb=0,…,B-1についての行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る。これにより、少ない演算量で行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得ることができる。特に、秘密計算で置換処理を行う場合には、秘密計算装置10-0~10-(N-1)間で通信を行う必要がある。秘匿情報{M(i,…,iS-)}を用いればこの通信を削減できる。特にMb,γ,μがMb,3,1またはMb,3,2である場合、2回の置換処理P2,1,P2,2に必要な通信を削減できる。鍵長を128ビットとすると、この削減は20%の通信量の削減となり、25%の高速化を実現できる。
 その後、秘密計算装置10-nは、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。後段処理は、j=2,…,Rについての置換処理Pj,1、シフト処理Pj,2、混合処理Pj,3、および加算処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む。例えば、Γ=R+1,MU=4である場合、秘密計算装置10-nは、後段処理によって秘匿情報{Mb,R+1,4}を得て出力する。
 <処理の詳細>
 図6から図11を用い、処理の詳細を説明する。
 ≪前提≫
 前提として、初期記憶部1001-nにラウンド鍵k,…,kR+1の秘匿情報{k},…,{kR+1}、カウンタ値i0,0,…,i0,S-1の秘匿情報{i0,0},…,{i0,S-1}、平文ブロックP,…,PB-1の秘匿情報{P},…,{PB-1}が格納されているものとする。秘匿情報は、秘密分散方式に則ったシェア(秘密分散値)であってもよいし、準同型暗号方式に則った暗号文(RSA暗号方式やElGamal暗号方式などの暗号文)であってもよい。なお、秘密分散方式に則った秘匿情報を用いた秘密計算の方法は、例えば、千田浩司、濱田浩気、五十嵐大、高橋克巳、“軽量検証可能3パーティ秘匿関数計算の再考”,CSS2010,2010年(参考文献2)、「Michael Ben-Or, Shafi Goldwasser, Avi Wigderson: Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation (Extended Abstract). STOC 1988: 1-10」(参考文献3)等に記載されている。
 ≪ステップS1010-n≫
 表生成部1010-nは、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得る前段処理を行う。ただし、表M(i,…,iS-1)にカウンタ値ib,0,…,ib,S-1を代入したM(ib,0,…,ib,S-1)が何れかの行列Mb,γ,μ=Mb,2,1,…,Mb,3,2となる。すなわち、表生成部1010-nの秘密計算部1011-nが、カウンタ値ib,0,…,ib,S-1を変数i,…,iS-1とし、制御部1012-nの制御の下、必要となるラウンド鍵k,…,kの秘匿情報を用い、加算処理P1,4から何れかの処理Pγ,μ(ただし、Pγ,μはP2,1,…,P3,2の何れか)までを秘密計算によって実行して(ステップS1011-n)、秘匿情報{M(i,…,iS-1)}を得る。例えば、Mb,γ,μ=Mb,2,1の場合、表生成部1010-nの秘密計算部1011-nは、カウンタ値ib,0,…,ib,S-1を変数i,…,iS-1とし、秘匿情報{k},{k}を用い、1ラウンド目の加算処理P1,4と2ラウンド目の置換処理P2,1とを秘密計算によって実行し、置換処理P2,1によって得られる行列の秘匿情報を秘匿情報{M(i,…,iS-1)}として得て出力する(例えば、式(3)の秘匿情報)。例えば、Mb,γ,μ=Mb,3,1の場合、表生成部1010-nの秘密計算部1011-nは、カウンタ値ib,0,…,ib,S-1を変数i,…,iS-1とし、秘匿情報{k},{k},{k}を用い、1ラウンド目の加算処理P1,4、2ラウンド目の置換処理P2,1、シフト処理P2,2、混合処理P2,3、加算処理P2,4、3ラウンド目の置換処理P3,1を秘密計算によって実行し、置換処理P3,1によって得られる行列の秘匿情報を秘匿情報{M(i,…,iS-1)}として得て出力する。例えば、Mb,γ,μ=Mb,3,2の場合、表生成部1010-nの秘密計算部1011-nは、カウンタ値ib,0,…,ib,S-1を変数i,…,iS-1とし、秘匿情報{k},{k},{k}を用い、1ラウンド目の加算処理P1,4、2ラウンド目の置換処理P2,1、シフト処理P2,2、混合処理P2,3、加算処理P2,4、3ラウンド目の置換処理P3,1、シフト処理P3,2を秘密計算によって実行し、シフト処理P3,2によって得られる行列の秘匿情報を秘匿情報{M(i,…,iS-1)}として得て出力する(例えば、式(8)の秘匿情報)。秘匿情報{M(i,…,iS-1)}は表記憶部1002-nに格納される。
 ≪ステップS1020-n≫
 カウンタ更新部1003-nは、初期記憶部1001-nに格納されたカウンタ値i0,0,…,i0,S-1の秘匿情報{i0,0},…,{i0,S-1}を用い、秘密計算によって、ブロックb’=2,…,B-1のカウンタ値ib’,0,…,ib’,S-1の秘匿情報{ib’,0},…,{ib’,S-1}を得て出力する。カウンタ値ib’,0,…,ib’,S-1は、カウンタ値i0,0,…,i0,S-1に予め定められた規則を適用することで得られる値である。例えば、カウンタ値ib’-1,0,…,ib’-1,S-1によって表現される値ib’-1,0…ib’-1,S-1を所定値(例えば、1)だけ増加させた値ib’-1,0…ib’-1,S-1+1を表現する値をカウンタ値ib’,0,…,ib’,S-1とする。表計算部1020-nは、初期記憶部1001-nから読み出したか、または、カウンタ更新部1003-nから出力された秘匿情報{ib,0},…,{ib,S-1}、および表記憶部1002-nから読み出した秘匿情報{M(i,…,iS-1)}を用い、秘密計算によって、b=0,…,B-1について、行列Mb,γ,μの秘匿情報{Mb,γ,μ}={M(ib,0,…,ib,S-1)}を得て出力する。
 ≪ステップS1030-n≫
 ラウンド処理部1030-nは、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算(ステップS1031b-n)により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。残存処理は、j=2,…,Rについての置換処理Pj,1、シフト処理Pj,2、混合処理Pj,3、および加算処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む処理である。処理Pγ,μは、表計算部1020-nで得られた秘匿情報{Mb,γ,μ}={M(ib,0,…,ib,S-1)}に対応する。例えば、Mb,γ,μ=Mb,3,2かつΓ=R+1,MU=4の場合、ラウンド処理部1030-nは、秘匿情報{k},…{kR+1}および秘匿情報{Mb,3,2}を用い、秘密計算により、3ラウンド目の混合処理P3,3からRラウンド目の加算処理PR,4までを実行し、さらにR+1ラウンド目の置換処理PR+1,1、シフト処理PR+1,2、加算処理PR+1,4を実行して得られる行列Mb,R+1,4の秘匿情報{Mb,R+1,4}を得て出力する。
 ≪ステップS1041-n≫
 加算部1041-nは、各ブロックb=0,…,B-1について、秘匿情報{Mb,R+1,4}および秘匿情報{P}を入力とし、秘密計算によってC=Mb,R+1,4+P∈Fの秘匿情報{C}を得て出力する。
 <本形態の特徴>
 以上のように、本形態では表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を生成し、秘匿情報{M(i,…,iS-1)}を用いて秘密計算によって各ブロックb=0,…,B-1の秘匿情報{Mb,γ,μ}を得る。表M(i,…,iS-1)のサイズはFのU倍のデータ量以下で表現でき、秘匿情報{M(i,…,iS-1)}を用いて各ブロックb=0,…,B-1の処理を行うことで演算量を削減できる。さらに、Mb,γ,μがMb,3,1またはMb,3,2である場合には、2回の置換処理P2,1,P2,2の秘密計算に必要な通信を削減できる。このように、本形態では、要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。
 [第2実施形態]
 第2実施形態は第1実施形態の変形例であり、改ざん検知を行うためのチェックサムを生成し、改ざん検知を行う。ただし、前述のように、表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得るまでの前段処理で処理されるデータ量は小さい。一方、前段処理の後に行われる後段処理で処理されるデータ量は格段に大きくなる。本形態では、これらの違いに応じ、異なる方式でチェックサムを生成する。これにより、安全に効率的な暗号化を行うことができる。以下では第1実施形態との相違点を中心に説明し、既に説明した事項については、同じ参照番号を用いて説明を簡略化する。
 <構成>
 図1に例示するように、本形態の秘密計算システム2はN個の秘密計算装置20-0~20-(N-1)を有する。Nは1以上の整数である。N≧2の場合、秘密計算装置20-0~20-(N-1)はネットワークを通じて通信可能に構成される。
 図2に例示するように、本形態の秘密計算装置20-n(ただし、n=0,…,N-1)は、初期記憶部1001-n、表記憶部1002-n、カウンタ更新部1003-n、表生成部2010-n、表計算部1020-n、ラウンド処理部2030-n、加算部1041-n、同期部2042-n、正当性検証部2043-n,2044-n、および制御部1051-nを有する。秘密計算装置20-nは制御部1051-nの制御の下で各処理を実行する。各処理で得られたデータは図示していないメモリに記憶される。メモリに格納されたデータは必要に応じて読み出され、各処理に利用される。
 図3Aに例示するように、表生成部2010-nは、秘密計算部1011-n、制御部1012-n、乱数生成部2015-n、およびチェックサム更新部2016-nを有する。図3Bに例示するように、ラウンド処理部2030-nは、秘密計算部1031-n、制御部1032-n、ダミーブロック生成部2035a-n、秘匿化部2035b-n、結合部2035c-n、ランダム置換部2036-n、およびチェックサム更新部2037,2038を有する。
 <処理の概要>
 本形態では、処理データ量が小さい前段処理と処理データ量が格段に大きくなる後段処理とで互いに異なる方式によってチェックサムを生成する。すなわち、表生成部2010が、前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、ラウンド処理部2030が、後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成する。ここで、第1方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である。第1方式の例としては、「Dai Ikarashi, Ryo Kikuchi, Koki Hamada, and Koji Chida, “Actively Private and Correct MPC Scheme in t < n/2 from Passively Secure Schemes with Small Overhead,” Cryptology ePrint Archive, Report 2014/304, 2014.(参考文献4)」および国際公開第WO/2016/104476号(参考文献5)に記載された方式を例示できる。一方、第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存する方式である。すなわち、第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性が、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性よりも高い方式である。ただし、αがαよりも大きい。例えば、第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量が多いほど安全性が高い方式である。第2方式の例としては、「五十嵐大,菊池亮,濱田浩気,千田浩司,“少パーティ数の秘密分散ベース秘密計算における効率的なmaliciousモデル上SIMD計算の構成法,”コンピュータセキュリティシンポジウム2013論文集 2013(4), 793-800, 2013-10-14(参考文献6)」および国際公開第WO/2015/053184号(参考文献7)に記載された方式を例示できる。ただし、参考文献6,7には明記されていないが、さらなる高速化のためにはランダム置換としてランダム巡回シフト(ランダムローテーション)が用いられることが望ましい。同様に、参考文献6,7には明記されていないが、さらなる高速化のためには、生成されるダミーブロックの個数Yとブロック数Bとの合計がブロック数Bよりも大きな素数pであることが望ましい。すなわち、Y=p-Bであることが望ましい。より好ましくは、pがブロック数Bよりも大きな最小の素数であることが望ましい。また、参考文献6,7の方式は、ダミーブロックが秘匿化されずに計算可能であることを前提としている。しかし、本形態ではダミーブロックも秘匿情報として処理される。そのため、本形態ではダミーブロックの何れかを要処理ダミーブロックとし、要処理ダミーブロックに対するチェックサムを第3方式によって生成する。これによってより高い安全性を担保する。なお、第3方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である。例えば、第3方式は第1方式と同じ方式である。
 <処理の詳細>
 図6から図11を用い、処理の詳細を説明する。
 ≪前提≫
 第1実施形態と同じである。
 ≪ステップS2010-n≫
 第1実施形態と同様、表生成部2010-nは、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得る前段処理を行う。さらに本形態では、表生成部2010-nが当該前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成する。以下に、第1方式として参考文献4,5の方式を採用した例を示す。
 ステップS2010-nの詳細:
 図7を用いてステップS2010-nの詳細を例示する。この例の秘匿情報は秘密分散方式に則ったシェアである。前段処理はT種類の秘密分散方式meth,…,methT-1に則った秘匿情報を用いた秘密計算を含む。当該秘密計算は前述のステップS1010-nの過程で実行される各秘密計算である。
 表生成部2010-nの乱数生成部2015-n(図2A)は、t=0,…,T-1について乱数r∈Fを秘密分散した秘匿情報{r}を得て出力する。ただし、Tは1以上の整数であり、t=0,…,T-1である。秘匿情報{r}の生成方法の具体例は参考文献5に開示されている。例えば、まず、秘密計算装置20-nの乱数生成部2015-nそれぞれが乱数r’∈Fを生成する。次に、各乱数生成部2015-nは、上記の参考文献2に記載された秘匿方法により乱数r’のシェア{r’}を生成して他の乱数生成部2015-n’(ただし、n’=0,…,N-1)に送る。そして、乱数生成部2015-nはそれぞれ{r}=Σn<N{r’}を計算し、乱数rの秘匿情報{r}を得る。これにより、いずれの秘密計算装置20-1~20-(N-1)も乱数rを知ることなく、乱数生成部2015-nが乱数rの秘匿情報{r}を得ることができる(ステップS2015-n)。
 次に、チェックサム更新部2016-nは、第1チェックサムに含まれるC1,tをヌル(空集合)に初期化する。第1チェックサムはC1,tのみから構成されてもよいし、C1,tとその他の情報とから構成されてもよい(ステップS2016-n)。
 前述の前段処理で秘匿情報{M(i,…,iS-1)}を得るためにΨ個の秘密計算Com,…,ComΨ-1が行われるとする。ただし、Ψは1以上の整数である。秘密分散方式methに則った秘匿情報{aλ}∈{F}を用いる秘密計算Comψ(ただし、ψ=0,…,Ψ-1)が行われる際、チェックサム更新部2016-nは、秘匿情報{aλ}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{aλ}を生成する。ただし、Λは1以上の整数であり、λ=0,…,Λ-1である。さらにチェックサム更新部2016-nは、秘匿情報{aλ}と秘匿情報{aλ}との組であるランダム化分散値<aλ>=<{aλ},{aλ}>を得、ランダム化分散値<aλ>の追加によってC1,tを更新する。秘密計算Comψに複数の秘匿情報が用いられる場合、チェックサム更新部2016-nは、それぞれの秘匿情報についてランダム化分散値を生成し、それらの追加によってC1,tを更新する(ステップS2016a-n)。
 秘密計算部1011-nは秘密計算Comψを実行する(ステップS1011-n)。
 秘密計算Comψの実行により、秘密分散方式methに則った秘密計算結果である秘匿情報{h}が得られる。この際、チェックサム更新部2016-nは、秘匿情報{h}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{h}を得る。ただし、Wは1以上の整数であり、w=0,…,W-1である。さらに、チェックサム更新部2016-nは、秘匿情報{h}と秘匿情報{h}との組であるランダム化分散値<h>=<{h},{h}>を得、ランダム化分散値<h>の追加によってC1,tを更新する。秘密計算結果が複数の秘匿情報を含む場合、チェックサム更新部2016-nは、それぞれの秘匿情報についてランダム化分散値を生成し、それらの追加によってC1,tを更新する(ステップS2016b-n)。
 ステップS2016a-n~S2016b-nの処理は、Ψ個の秘密計算Com,…,ComΨ-1が実行され、秘匿情報{M(i,…,iS-1)}が得られるまで繰り返される。秘匿情報{M(i,…,iS-1)}が得られると、チェックサム更新部2016-nは、C1,t=<φ>,…,<φΔ-1>を含む第1チェックサムを出力する。ただし、δ=0,…,Δ-1であり、<φδ>はランダム化分散値である。
 ≪ステップS1020-n≫
 秘密計算装置10-nに代えて秘密計算装置20-nが実行する以外、第1実施形態と同じである。
 ≪ステップS2030-n≫
 第1実施形態と同様、ラウンド処理部2030-nは、何れかのラウンド鍵k,…,kR+1の秘匿情報および秘匿情報{Mb,γ,μ}を用い、秘密計算により、残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行う。さらに本形態では、ラウンド処理部2030-nが当該後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成する。以下に、第2方式として参考文献6,7の方式の変更方式を採用した例を示す。
 ステップS2030-nの具体例:
 図8および図9を用いてステップS2030-nの具体例を説明する。この例の秘匿情報は秘密分散方式に則ったシェアである。
 まず、ダミーブロック生成部2035a-nは、Y個のダミーブロックD,…,DY-1∈Fの秘匿情報{D},…,{DY-1}を生成して出力する。ただし、Yは1以上の整数であり、y=0,…,Y-1である。前述のように、好ましくはY=p-Bである。ただし、pはBより大きな素数である。ダミーブロックD,…,DY-1のうち何れかが要処理ダミーブロックDPとされる。要処理ダミーブロックDPは1個であってもよいし、2個以上であってもよい。要処理ダミーブロックDP以外のダミーブロックDy’は公開値である。ダミーブロック生成部2035a-nは、公開値であるダミーブロックDy’を、正当性を持つ方法で秘匿して秘匿情報{Dy’}を得る。要処理ダミーブロックDPは公開値であってもよいし、公開値でなくてもよい。前者の場合、ダミーブロック生成部2035a-nが、公開値であるダミーブロックDPを秘匿して秘匿情報{DP}を得る。後者の場合、ダミーブロック生成部2035a-nは、例えば、前述の秘匿情報{M(i,…,iS-1)}と任意のカウンタ値idp,0,…,idp,S-1の秘匿情報{idp,0},…,{idp,S-1}とを用い、秘密計算によって秘匿情報{M(idp,0,…,idp,S-1)}を得、秘匿情報{DP}={M(idp,0,…,idp,S-1)}を得る(ステップS2035-n)。
 次に、ラウンド処理部2030-nは、必要な何れかのラウンド鍵k,…,kR+1の秘匿情報および要処理ダミーブロックDPの秘匿情報{DP}を用い、行列MDP,Γ,MUの秘匿情報{MDP,Γ,MU}を得るダミー後段処理を行う。ただし、行列MDP,Γ,MUは要処理ダミーブロックDPに前述の残存処理を行って得られる処理結果である。ここではΓ=R+1かつMU=4の例を説明する。この際、ダミー後段処理での改ざんを検知するための第3チェックサムを第3方式に則って生成する。第3方式は、安全性がダミー後段処理の対象となる秘匿情報の復元値のデータ量に依存しない方式である。第3方式は、第1方式と同一であってもなくてもよい。ここでは第3方式と第1方式とが互いに同一である例を示す。
 まず、チェックサム更新部2038-nは、第3チェックサムに含まれるC3,tをヌル(空集合)に初期化する。第3チェックサムはC3,tのみから構成されてもよいし、C3,tとその他の情報とから構成されてもよい(ステップS2038-n)。
 前述の残存処理でΨ’個の秘密計算Com3,…,Com3Ψ’-1が行われるとする。ただし、Ψ’は1以上の整数である。秘密分散方式methに則った秘匿情報{dλ}∈{F}を用いる秘密計算Com3ψ’(ただし、ψ’=0,…,Ψ’-1)が行われる際、チェックサム更新部2038-nは、秘匿情報{dλ}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{dλ}を生成する。ただし、Λは1以上の整数であり、λ=0,…,Λ-1である。さらにチェックサム更新部2038-nは、秘匿情報{dλ}と秘匿情報{dλ}との組であるランダム化分散値<dλ>=<{dλ},{dλ}>を得、ランダム化分散値<dλ>の追加によってC3,tを更新する(ステップS2038a-n)。
 秘密計算部1031-nは秘密計算Com3ψ’を実行する(ステップS2031a-n)。
 秘密計算Com3ψ’の実行により、秘密分散方式methに則った秘密計算結果である秘匿情報{h’}が得られる。この際、チェックサム更新部2038-nは、秘匿情報{h’}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{h’}を得る。ただし、Wは1以上の整数であり、w=0,…,W-1である。さらに、チェックサム更新部2038-nは、秘匿情報{h’}と秘匿情報{h’}との組であるランダム化分散値<h’>=<{h’},{h’}>を得、ランダム化分散値<h’>の追加によってC3,tを更新する。秘密計算結果が複数の秘匿情報を含む場合、チェックサム更新部2038-nは、それぞれの秘匿情報についてランダム化分散値を生成し、それらの追加によってC3,tを更新する(ステップS2038b-n)。
 ステップS2038a-n~S2038b-nの処理は、Ψ’個の秘密計算Com3,…,Com3Ψ’-1が実行され、秘匿情報{MDP,Γ,MU}が得られるまで繰り返される。Γ=R+1かつMU=4の場合、R+1ラウンドが終了するまで、ステップS2038a-n~S2038b-nの処理が繰り返される。秘匿情報{MDP,Γ,MU}が得られると、チェックサム更新部2038-nは、C3,t=<φ3>,…,<φ3Δ’-1>を含む第3チェックサムを出力する。ただし、δ’=0,…,Δ’-1であり、<φ3δ’>はランダム化分散値である。
 次に、チェックサム更新部2037-nが、第2チェックサムに含まれるC2,A,C2,Π_q,C2,Dをヌル(空集合)に初期化する。第2チェックサムはC2,A,C2,Π_q,C2,Dのみから構成されてもよいし、C2,A,C2,Π_q,C2,Dとその他の情報とから構成されてもよい(ステップS2037-n)。
 ランダム置換部2036-nが、ランダム置換の内容を表すランダム置換情報πの秘匿情報{π}を生成する。ただし、Qは1以上の整数であり、q=0,…,Q-1である。好ましくは、ランダム置換情報πはランダム巡回シフトを表す情報である(ステップS2036-n)。
 結合部2035c-nには、ステップS1020-nで得られたb=0,…,B-1についての秘匿情報{Mb,γ,μ}、および、ステップS2035-nで得られた秘匿情報{D},…,{DY-1}が入力される。結合部2035c-nは、これらを用い、秘密計算により、行列M0,γ,μ,…,MB-1,γ,μの要素からなる非ランダム化列A∈FUBの秘匿情報{A}とY個のダミーブロックD,…,DY-1∈Fの秘匿情報{D},…,{DY-1}とを結合した秘匿情報{A|D}={A|D|…|DY-1}を得る。ただし、α|βはαとβとの結合(連結)を表す(ステップS2035c-n)。
 ランダム置換部2036-nは、秘匿情報{π}および秘匿情報{A|D}を用い、A|Dをランダム置換して得られるランダム化列Π=π(A|D)∈FU(B+Y)の秘匿情報{Π}={π(A|D)}を秘密計算によって得て出力する。この処理は各q=0,…,Q-1について実行される(ステップS2036b-n)。
 前述の残存処理でΘ個のサブ処理Sub,…,SubΘ-1の秘密計算が行われるとする。ただし、Θが1以上の整数であり、θ=0,…,Θ-1である。秘密計算部1031-nは、秘匿情報{A}を用い、非ランダム化列Aを構成する行列Mb,γ,μのU個の要素に対応する秘匿情報{Mb,γ,μ}ごとに各サブ処理SubΘの秘密計算を実行する。すなわち、秘密計算部1031-nは、各秘匿情報{Mb,γ,μ}に対して各サブ処理SubΘの秘密計算を実行する。これにより、秘密計算部1031-nは、非ランダム化列Aを構成する各行列Mb,γ,μに残存処理を適用して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る。また秘密計算部1031-nは、q=0,…,Q-1について、秘匿情報{Π}を用い、ランダム化列Π∈FU(B+Y)を構成するU個の要素Πq,b”,γ,μ∈Fに対応する秘匿情報{Πq,b”,γ,μ}∈{F}ごとに、各サブ処理SubΘの秘密計算を実行する。すなわち、秘密計算部1031-nは、各秘匿情報{Πq,b”,γ,μ}に対して各サブ処理SubΘの秘密計算を実行する。ただし、b”=0,…,B-1,…,B+Y-1であり、Π=Πq,0,γ,μ|…|Πq,B+Y-1,γ,μである。これにより、秘密計算部1031-nは、各サブ処理Subθの秘密計算結果である秘密情報{Πq,b”,Γ,MU}∈{F}を得る。さらに秘密計算部1031-nは、少なくとも一部のダミーブロックD(例えば、要処理ダミーブロックDPを除くダミーブロックD)に対して各サブ処理SubΘを実行することで、各サブ処理Subθの演算結果Dy,Γ,MU∈Fを得る(ステップS2031b-n)。
 秘匿化部2035b-nは、演算結果Dy,Γ,MUを正当性を持つ方法で秘匿し、秘匿情報{Dy,Γ,MU}を得て出力する(ステップS2035b-n)。
 チェックサム更新部2037-nは、秘匿情報{Mb,Γ,MU}を得るまでの過程で得られる各サブ処理Subθの秘密計算結果である秘匿情報{Mb,θ,Γ,MU}∈{F}でC2,Aを更新する。例えば、C2,A=(C0,2,A,…,CB-1,2,A)の場合、チェックサム更新部2037-nは(C0,2,A|{M0,θ,Γ,MU},…,CB-1,2,A|{MB-1,θ,Γ,MU})を新たなC2,Aとする(ステップS2037b-n)。
 また、チェックサム更新部2037-nは、q=0,…,Q-1について、各サブ処理Subθの秘密計算結果である秘密情報{Πq,b”,θ,Γ,MU}∈{F}でC2,Π_qを更新する。例えば、C2,Π_q=(C0,2,Π_q,…,CB+Y-1,2,Π_q)の場合、チェックサム更新部2037-nは(C0,2,Π_q|{Πq,0,θ,Γ,MU},…,CB+Y-1,2,Π_q|{Πq,B+Y-1,θ,Γ,MU})を新たなC2,Π_qとする(ステップS2037c-n)。
 さらに、チェックサム更新部2037-nは、各サブ処理Subθの演算結果の秘匿情報{Dy,θ,Γ,MU}∈{F}でC2,Dを更新する。例えば、C2,D=(C0,2,D,…,CY-1,2,D)の場合、チェックサム更新部2037-nは(C0,2,D|{D0,θ,Γ,MU},…,CY-1,2,D|{DY-1,θ,Γ,MU})を新たなC2,Dとする(ステップS2037d-n)。
 ステップS2031b-n~S2037d-nの処理は、Θ個のサブ処理Sub,…,SubΘ-1のすべてについて実行される。その後、チェックサム更新部2037-nは、C2,A,C2,Π_q,C2,Dを含む第2チェックサムを出力する。
 ≪ステップS1041-n≫
 秘密計算装置10-nに代えて秘密計算装置20-nが実行する以外、第1実施形態と同じである。
 ≪ステップS2042-n≫
 同期部2042-nは、すべての秘密計算装置20-1~20-(N-1)でのすべての秘密計算が終了するまで待機する同期処理を実行する。N=1の場合には同期処理は実行されない。
 ≪ステップS2043-n≫
 正当性検証部2043-nには、C1,t=<φ>,…,<φΔ-1>を含む第1チェックサムおよびC3,t=<φ3>,…,<φ3Δ’-1>を含む第3チェックサムが入力される。正当性検証部2043-nは、参考文献4,5に記載されているように、C1,tおよびC3,tの正当性を検証する。
 C1,tの正当性を検証する場合、正当性検証部2043-nは、<φ>=<{φ},{φ}>,…,<φΔ―1>=<{φΔ―1},{φΔ―1}>の{φ},…,{φΔ―1}および{r}を用い、秘密計算によって、φ,…,φΔ―1の総和にrを乗じて得られる結果の秘匿情報{r(φ+…+φΔ―1)}を求める。さらに正当性検証部2043-nは、{φ},…,{φΔ―1}を用い、秘密計算によって、φ,…,φΔ―1の総和の秘匿情報{φ+…+φΔ―1}を求める。正当性検証部2043-nは、秘匿情報{r(φ+…+φΔ―1)}および{φ+…+φΔ―1}を用いて、秘密計算によって、DC1,t=r(φ+…+φΔ―1)-(φ+…+φΔ―1)の秘匿情報{DC1,t}を得てDC1,tを復元する。正当性検証部2043-nは、すべてのt=0,…,T-1についてDC1,t=0であれば前段処理に改ざんが無かったと判定し、そうでなければ前段処理に改ざんがあったと判定する。
 C3,tの正当性を検証する場合、正当性検証部2043-nは、<φ3>=<{φ3},{φ3}>,…,<φ3Δ’―1>=<{φ3Δ’―1},{φ3Δ’―1}>の{φ3},…,{φ3Δ’―1}および{r}を用い、秘密計算によって、φ3,…,φ3Δ’―1の総和にrを乗じて得られる結果の秘匿情報{r(φ3+…+φ3Δ―1)}を求める。さらに正当性検証部2043-nは、{φ3},…,{φ3Δ’―1}を用い、秘密計算によって、φ3,…,φ3Δ’―1の総和の秘匿情報{φ3+…+φ3Δ’―1}を求める。正当性検証部2043-nは、秘匿情報{r(φ3+…+φ3Δ’―1)}および{φ3+…+φ3Δ’―1}を用いて、秘密計算によって、DC3,t=r(φ3+…+φ3Δ’―1)-(φ3+…+φ3Δ’―1)の秘匿情報{DC3,t}を得てDC3,tを復元する。正当性検証部2043-nは、すべてのt=0,…,T-1についてDC3,t=0であれば後段処理に改ざんが無かったと判定し、そうでなければ後段処理に改ざんがあったと判定する。
 ≪ステップS2044-n≫
 正当性検証部2044-nには、C2,A,C2,Π_q,C2,Dを含む第2チェックサムおよび秘匿情報{π}が入力される。正当性検証部2044-nは、参考文献5,6に記載されているように、C2,A,C2,Π_q,C2,Dの正当性を検証する。すなわち、正当性検証部2044-nは、秘匿情報{π}を公開してランダム置換情報πを得、π,C2,A,C2,Π_q,C2,Dを用い、秘密計算によって、C2,Π_qの復元値から、πに従ってC2,A|C2,Dをランダム置換した列の復元値を減じた列の秘匿情報{ζ}={ζ0,q},…,{ζB+Y-1,q}を得る。正当性検証部2044-nは、秘匿情報{ζ}={ζ0,q},…,{ζB+Y-1,q}の各要素{ζb”,q}(ただし、b”=0,…,B+Y-1)を{F}の元ごとに分割し、{ζ’b”,q,0},…,{ζ’b”,q,M”-1}∈{F}の列を得る。ただし、M”は正の整数である。{F}に満たない要素には{0}がパディングされる。正当性検証部2044-nは、秘密計算によって、乱数ranの秘匿情報{ran}と{ζ’b”,q,0},…,{ζ’b”,q,M”-1}との積和演算を行い、その結果{ζ}を公開してζを得る。正当性検証部2044-nは、ζが0であれば後段処理に改ざんが無かったと判定し、そうでなければ後段処理に改ざんがあったと判定する。
 <本形態の特徴>
 第1実施形態と同様、本形態でも要素の置換と行の巡回シフトと列の線形和とラウンド鍵の加算とを繰り返すラウンド処理を秘密計算によって効率的に実行できる。特に本形態では、前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成した。前段処理に比べて後段処理では処理データ量が格段に多い。第2方式は処理データ量が多いほど安全性が高い方式であり、後段処理での改ざんを検知に適している。一方、前段処理では処理データ量が少ないため、第2方式を用いても効率が悪い。本形態では、前段処理と後段処理とでチェックサムの生成方式を変更することで、安全性の高い通信を効率よく実現できる。なお、前段処理で改ざんが検知された場合にはすべての処理が破棄される。一方、後段処理で改ざんが検知された場合にはすべての処理が破棄されてもよいし、後段処理のみが破棄されてもよい。
 [第2実施形態の変形例]
 第2実施形態では、Ψ個の秘密計算Com,…,ComΨ-1のすべてについてランダム化分散値が生成され、C1,tが更新される例を説明した(図7)。しかしながら、Ψ個の秘密計算Com,…,ComΨ-1の一部のみについてランダム化分散値が生成され、C1,tが更新されてもよい。例えば、Ψ個の秘密計算Com,…,ComΨ-1のうち、通信を必要とする最後の秘密計算までについてランダム化分散値が生成され、C1,tが更新されてもよい。例えば、秘匿情報{M(i,…,iS-1)}が秘匿情報{Mb,3,1}または{Mb,3,2}である場合に、置換処理P3,1の通信を必要とする秘密計算(例えば、SubBytesの乗法逆元演算の秘密計算)までについてランダム化分散値が生成され、C1,tが更新されてもよい。
 また、ステップS1020-nで行われる各秘密計算の前後においてランダム化分散値が生成され、C1,tが更新されてもよい。すなわち、ステップS1020-nにおいて、秘密分散方式methに則った秘匿情報{aλ}を用いた秘密計算を行う際に、秘匿情報{aλ}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{aλ}を得、秘匿情報{aλ}と秘匿情報{aλ}との組であるランダム化分散値<aλ>=<{aλ},{aλ}>を得、ランダム化分散値<aλ>の追加によってC1,tを更新してもよい。さらに、ステップS1020-nにおいて、秘密分散方式methに則った秘密計算結果である秘匿情報{h}が得られた際に、秘匿情報{h}と秘匿情報{r}とを用いた秘密計算によって秘匿情報{h}を得、秘匿情報{h}と秘匿情報{h}との組であるランダム化分散値<h>=<{h},{h}>を得、ランダム化分散値<h>の追加によってC1,tを更新することで、C1,tを含む第1チェックサムを更新してもよい。
 また、ステップS1041-nでの改ざんを検知するためのチェックサムが生成され、検証されてもよい。このチェックサムは、第2方式に則って生成されることが望ましい。
 [その他の変形例等]
 なお、本発明は上述の実施形態に限定されるものではない。上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
 上記の各装置は、例えば、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,2 秘密計算システム
10-n,20-n 秘密計算装置

Claims (11)

  1.  Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=Sであり、Fが有限体であり、b=0,…,B-1であり、r=1,…,Rであり、j=2,…,Rであり、
     1ラウンド目のラウンド処理が処理P1,4を含み、前記処理P1,4が1ラウンド目のラウンド鍵k∈Fの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S-1をそれぞれ加算して行列Mb,1,4を得る処理を含み、
     jラウンド目のラウンド処理が処理Pj,1と処理Pj,2と処理Pj,3と処理Pj,4とを含み、前記処理Pj,1が前記行列Mb,j-1,4の各要素を置換して行列Mb,j,1を得る処理を含み、前記処理Pj,2が前記行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含み、前記処理Pj,3が前記行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含み、前記処理Pj,4が前記行列Mb,j,3の各要素にjラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含み、
     何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得る前段処理を行う表生成部と、
     前記表M(i,…,iS-1)に前記カウンタ値ib,0,…,ib,S-1を代入したM(ib,0,…,ib,S-1)がMb,2,1,…,Mb,3,2の何れかである行列Mb,γ,μであり、前記カウンタ値ib,0,…,ib,S-1の秘匿情報{ib,0},…,{ib,S-1}および前記秘匿情報{M(i,…,iS-1)}を用い、秘密計算によってb=0,…,B-1についての前記行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る表計算部と、
     何れかのラウンド鍵k,…,kR+1の秘匿情報および前記秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての前記処理Pj,1、前記処理Pj,2、前記処理Pj,3、および前記処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行うラウンド処理部と、
    を有する秘密計算装置。
  2.  請求項1の秘密計算装置であって、
     前記表生成部は、前記前段処理での改ざんを検知するための第1チェックサムを第1方式に則って生成し、
     前記ラウンド処理部は、前記後段処理での改ざんを検知するための第2チェックサムを第2方式に則って生成し、
     前記第1方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式であり、
     前記第2方式は、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性が、改ざん検知対象である秘匿情報の復元値のデータ量がαであるときの安全性よりも高い方式であり、αがαよりも大きい、秘密計算装置。
  3.  請求項2の秘密計算装置であって、
     T,Λ,W,Y,Q,Θが1以上の整数であり、t=0,…,T-1であり、λ=0,…,Λ-1であり、w=0,…,W-1であり、y=0,…,Y-1であり、q=0,…,Q-1であり、θ=0,…,Θ-1であり、前記前段処理はT種類の秘密分散方式meth,…,methT-1に則った秘匿情報を用いた秘密計算を含み、
     (1)前記第1チェックサムを前記第1方式に則って生成する処理は、
     (1-1)乱数rを秘密分散した秘匿情報{r}を得る処理と、
     (1-2)前記秘密分散方式methに則った秘匿情報{aλ}を用いた秘密計算を行う際に、前記秘匿情報{aλ}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{aλ}を得、前記秘匿情報{aλ}と前記秘匿情報{aλ}との組であるランダム化分散値<aλ>=<{aλ},{aλ}>を得、前記ランダム化分散値<aλ>の追加によってC1,tを更新し、
    前記秘密分散方式methに則った秘密計算結果である秘匿情報{h}が得られた際に、前記秘匿情報{h}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{h}を得、前記秘匿情報{h}と前記秘匿情報{h}との組であるランダム化分散値<h>=<{h},{h}>を得、前記ランダム化分散値<h>の追加によってC1,tを更新することで、
    1,tを含む前記第1チェックサムを更新する処理と、を含み、
     (2)前記第2チェックサムを前記第2方式に則って生成する処理は、
     (2-1)行列M0,γ,μ,…,MB-1,γ,μの要素からなる非ランダム化列A∈FUBの秘匿情報{A}とY個のダミーブロックD,…,DY-1∈Fの秘匿情報{D},…,{DY-1}とを結合した秘匿情報{A|D}={A|D|…|DY-1}を得る処理と、
     (2-2)前記秘匿情報{A|D}を用い、A|Dをランダム置換して得られるランダム化列Π=π(A|D)∈FU(B+Y)の秘匿情報{Π}={π(A|D)}を秘密計算によって得る処理と、
     (2-3)前記秘匿情報{A}を用い、前記非ランダム化列Aを構成する前記行列Mb,γ,μのU個の要素に対応する秘匿情報{Mb,γ,μ}ごとにサブ処理Sub,…,SubΘ-1の秘密計算を実行して、前記非ランダム化列Aを構成する前記行列Mb,γ,μの要素に前記残存処理を適用して得られる前記行列Mb,Γ,MUの前記秘匿情報{Mb,Γ,MU}を得、前記秘匿情報{Mb,Γ,MU}を得るまでの過程で得られるサブ処理Subθの秘密計算結果でC2,Aを更新し、
     前記秘匿情報{Π}を用い、前記ランダム化列Πを構成するU個の要素に対応する秘匿情報ごとに前記サブ処理Sub,…,SubΘ-1の秘密計算を実行することで得られる各サブ処理Subθの秘密計算結果でC2,Π_qを更新し、
     少なくとも一部の前記ダミーブロックDに対して前記サブ処理Sub,…,SubΘ-1を実行することで得られる各サブ処理Subθの演算結果の秘匿情報でC2,Dを更新することで、
     C2,A,C2,Π_q,C2,Dを含む前記第2チェックサムを更新する処理と、を含む秘密計算装置。
  4.  請求項3の秘密計算装置であって、
     前記ラウンド処理部は、何れかのラウンド鍵k,…,kR+1の秘匿情報および前記ダミーブロックD,…,DY-1の何れかである要処理ダミーブロックDPの秘匿情報{DP}を用い、前記要処理ダミーブロックDPに前記残存処理を行って得られる処理結果の秘匿情報を得るダミー後段処理をさらに行い、前記ダミー後段処理での改ざんを検知するための第3チェックサムを第3方式に則って生成し、
     前記第3方式は、改ざん検知対象である秘匿情報の復元値のデータ量に、安全性の高さが依存しない方式である、秘密計算装置。
  5.  請求項4の秘密計算装置であって、
     (3)前記第3チェックサムを前記第3方式に則って生成する処理は、
     前記秘密分散方式methに則った秘匿情報{dλ}を用いた秘密計算を行う際に、前記秘匿情報{dλ}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{dλ}を得、前記秘匿情報{dλ}と前記秘匿情報{dλ}との組であるランダム化分散値<dλ>=<{dλ},{dλ}>を得、前記ランダム化分散値<dλ>の追加によってC3,tを更新し、
    前記秘密分散方式methに則った秘密計算結果である秘匿情報{h’}が得られた際に、前記秘匿情報{h’}と前記秘匿情報{r}とを用いた秘密計算によって秘匿情報{h’}を得、前記秘匿情報{h’}と前記秘匿情報{h’}との組であるランダム化分散値<h’>=<{h’},{h’}>を得、前記ランダム化分散値<h’>の追加によってC3,tを更新することで、
    3,tを含む前記第3チェックサムを更新する処理を含む、秘密計算装置。
  6.  請求項3から5の何れかの秘密計算装置であって、
     pがBより大きな素数であり、Y=p-Bである、秘密計算装置。
  7.  請求項3から6の何れかの秘密計算装置であって、
     前記ランダム置換はランダム巡回シフトである、秘密計算装置。
  8.  請求項1から7の何れかの秘密計算装置であって、
     前記行列Mb,γ,μはMb,3,1またはMb,3,2である、秘密計算装置。
  9.  Bが1以上の整数であり、Rが3以上の整数であり、Sが2以上の整数であり、U=Sであり、Fが体であり、b=0,…,B-1であり、r=1,…,Rであり、j=2,…,Rであり、
     1ラウンド目のラウンド処理が処理P1,4を含み、前記処理P1,4が1ラウンド目のラウンド鍵k∈Fの要素からなるS×S行列の1つの列のS個の要素にS個のカウンタ値ib,0,…,ib,S-1をそれぞれ加算して行列Mb,1,4を得る処理を含み、
     jラウンド目のラウンド処理が処理Pj,1と処理Pj,2と処理Pj,3と処理Pj,4とを含み、前記処理Pj,1が前記行列Mb,j-1,4の各要素を置換して行列Mb,j,1を得る処理を含み、前記処理Pj,2が前記行列Mb,j,1の各要素を行ごとに巡回シフトして行列Mb,j,2を得る処理を含み、前記処理Pj,3が前記行列Mb,j,2の各列のS個の要素の線形和を当該列のS個の要素とした行列Mb,j,3を得る処理を含み、前記処理Pj,4が前記行列Mb,j,3の各要素にjラウンド目のラウンド鍵kの各要素を加算して行列Mb,j,4を得る処理を含み、
     表生成部が、何れかのラウンド鍵k,…,kの秘匿情報を用い、秘密計算により、変数i=i,…,iS-1に対する一変数関数値を要素に持つ表M(i,…,iS-1)の秘匿情報{M(i,…,iS-1)}を得る前段処理を行う表生成ステップと、
     前記表M(i,…,iS-1)に前記カウンタ値ib,0,…,ib,S-1を代入したM(ib,0,…,ib,S-1)がMb,2,1,…,Mb,3,2の何れかである行列Mb,γ,μであり、表計算部が、前記カウンタ値ib,0,…,ib,S-1の秘匿情報{ib,0},…,{ib,S-1}および前記秘匿情報{M(i,…,iS-1)}を用い、秘密計算によってb=0,…,B-1についての前記行列Mb,γ,μの秘匿情報{Mb,γ,μ}を得る表計算ステップと、
     ラウンド処理部が、何れかのラウンド鍵k,…,kR+1の秘匿情報および前記秘匿情報{Mb,γ,μ}を用い、秘密計算により、j=2,…,Rについての前記処理Pj,1、前記処理Pj,2、前記処理Pj,3、および前記処理Pj,4のうち、処理Pγ,μよりも後に行われる各処理を含む残存処理を実行して得られる行列Mb,Γ,MUの秘匿情報{Mb,Γ,MU}を得る後段処理を行うラウンド処理ステップと、
    を有する秘密計算方法。
  10.  請求項1から8の何れかの秘密計算装置としてコンピュータを機能させるためのプログラム。
  11.  請求項1から8の何れかの秘密計算装置としてコンピュータを機能させるためのプログラムを格納したコンピュータ読み取り可能な記録媒体。
PCT/JP2018/030440 2017-08-22 2018-08-16 秘密計算装置、秘密計算方法、プログラム、および記録媒体 WO2019039381A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
US16/638,987 US11515998B2 (en) 2017-08-22 2018-08-16 Secure computation device, secure computation method, program, and recording medium
EP18847701.2A EP3675089B1 (en) 2017-08-22 2018-08-16 Secure computation device, secure computation method, program, and recording medium
AU2018320434A AU2018320434B2 (en) 2017-08-22 2018-08-16 Secure computation device, secure computation method, program, and recording medium
CN201880054049.1A CN111052206B (zh) 2017-08-22 2018-08-16 秘密计算装置、秘密计算方法以及记录介质
JP2019537589A JP6881588B2 (ja) 2017-08-22 2018-08-16 秘密計算装置、秘密計算方法、プログラム、および記録媒体

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017159344 2017-08-22
JP2017-159344 2017-08-22

Publications (1)

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

Family

ID=65439815

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2018/030440 WO2019039381A1 (ja) 2017-08-22 2018-08-16 秘密計算装置、秘密計算方法、プログラム、および記録媒体

Country Status (6)

Country Link
US (1) US11515998B2 (ja)
EP (1) EP3675089B1 (ja)
JP (1) JP6881588B2 (ja)
CN (1) CN111052206B (ja)
AU (1) AU2018320434B2 (ja)
WO (1) WO2019039381A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12099997B1 (en) 2020-01-31 2024-09-24 Steven Mark Hoffberg Tokenized fungible liabilities

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015053184A1 (ja) 2013-10-10 2015-04-16 日本電信電話株式会社 秘密並列処理装置、秘密並列処理方法、プログラム
WO2016104476A1 (ja) 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4875448B2 (ja) * 2006-10-11 2012-02-15 日本電信電話株式会社 鍵生成装置、匿名署名システム、管理装置、匿名署名方法及びプログラム
US8942724B2 (en) * 2010-10-27 2015-01-27 Ntt Docomo, Inc. Number of terminal estimation device and number of terminal estimation method
US9276734B2 (en) * 2011-09-27 2016-03-01 Hitachi, Ltd. Confidential computation system, confidential computation method, and confidential computation program
JP5972181B2 (ja) * 2013-01-17 2016-08-17 日本電信電話株式会社 改ざん検知装置、改ざん検知方法、およびプログラム
CN105027180B (zh) * 2013-01-17 2017-03-29 日本电信电话株式会社 保密计算系统、运算装置、以及保密计算方法
WO2015082212A1 (en) * 2013-12-05 2015-06-11 Koninklijke Philips N.V. A computing device for iterative application of table networks
JP5860557B1 (ja) * 2015-02-06 2016-02-16 日本電信電話株式会社 秘密公開方法、秘密公開システム、秘密公開装置、およびプログラム
US20160269175A1 (en) * 2015-03-09 2016-09-15 Qualcomm Incorporated Cryptographic cipher with finite subfield lookup tables for use in masked operations
US10089508B2 (en) * 2015-05-28 2018-10-02 Graphiclead LLC System and method of embedding a two dimensional code with concealed secure message
JP6578814B2 (ja) * 2015-08-20 2019-09-25 株式会社ソシオネクスト プロセッサ及びプロセッサシステム
NL2015745B1 (en) * 2015-11-09 2017-05-26 Koninklijke Philips Nv A cryptographic device arranged to compute a target block cipher.
JP6053238B2 (ja) * 2016-01-13 2016-12-27 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム
GB2557577A (en) * 2016-10-21 2018-06-27 Cygnetise Ltd Methods and apparatus for recording a change of authorisation state of one or more authorisation agents

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015053184A1 (ja) 2013-10-10 2015-04-16 日本電信電話株式会社 秘密並列処理装置、秘密並列処理方法、プログラム
WO2016104476A1 (ja) 2014-12-26 2016-06-30 日本電信電話株式会社 秘密改ざん検知システム、秘密計算装置、秘密改ざん検知方法、およびプログラム

Non-Patent Citations (9)

* Cited by examiner, † Cited by third party
Title
ARAKI, TOSHINORI ET AL.: "High-Throughput Semi- Honest Secure Three-Party Computation with an Honest Majority, Cryptology ePrint Archive", COMPUTER AND COMMUNICATIONS SECURITY, 24 October 2016 (2016-10-24), pages 805 - 817, XP058298940, Retrieved from the Internet <URL:https://eprint.iacr.org/2016/768/20161110:181046> [retrieved on 20181107] *
DAI IKARASHIRYO KIKUCHIKOKI HAMADAKOJI CHIDA: "Actively Private and Correct MPC Scheme in t < n/2 from Passively Secure Schemes with Small Overhead", CRYPTOLOGY EPRINT ARCHIVE, REPORT 2014/304, 2014
DAI IKARASHIRYO KIKUCHIKOKI HAMADAKOJI CHIDA: "An Efficient SIMD Protocol against Malicious Adversaries for Secure Computation Schemes Based on Secret Sharing Schemes with Small Party Sets", PROCEEDINGS OF COMPUTER SECURITY SYMPOSIUM 2013, vol. 2013, no. 4, 14 October 2013 (2013-10-14), pages 793 - 800
DANIEL J. BERNSTEINPETER SCHWABE: "New AES software speed records", INDOCRYPT 2008, PROGRESS IN CRYPTOLOGY - INDOCRYPT, 2008, pages 322 - 336, XP047403219, DOI: 10.1007/978-3-540-89754-5_25
IGARASHI, DAI ET AL.: "2D3-6 MEVAL2 vs. CCS Best paper on MPC-AES", SCIS 2017 (2017 SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY); 24-27/01/2017, vol. 2017, 24 January 2017 (2017-01-24), pages 1 - 8, XP009519163 *
KELLER, MARCEL ET AL.: "Faster Secure Multi-Party Computation of AES and DES Using Lookup Tables", REPORT 2017/378, May 2017 (2017-05-01), pages 1 - 26, XP061023154, Retrieved from the Internet <URL:https://eprint.iacr.org/2017/378/20170501:134527> [retrieved on 20181107], DOI: 10.1007/978-3-319-61204-1_12 *
KOJI CHIDAKOKI HAMADADAI IKARASHIKATSUMI TAKAHASHI: "A Three-party Secure Function Evaluation with Lightweight Verifiability Revisited", CSS2010, 2010
MICHAEL BEN-ORSHAFI GOLDWASSERAVI WIGDERSON: "Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation (Extended Abstract", STOC, 1988, pages 1 - 10
See also references of EP3675089A4

Also Published As

Publication number Publication date
AU2018320434A1 (en) 2020-02-27
EP3675089A1 (en) 2020-07-01
JPWO2019039381A1 (ja) 2020-09-03
CN111052206A (zh) 2020-04-21
EP3675089B1 (en) 2023-05-03
CN111052206B (zh) 2023-06-06
JP6881588B2 (ja) 2021-06-02
AU2018320434B2 (en) 2020-12-17
EP3675089A4 (en) 2021-05-05
US20200228314A1 (en) 2020-07-16
US11515998B2 (en) 2022-11-29

Similar Documents

Publication Publication Date Title
RU2376651C2 (ru) Использование изогений для разработки криптосистем
JP4575283B2 (ja) 暗号装置、復号装置、プログラム及び方法
JP6009697B2 (ja) 秘密計算方法、秘密計算システム、ソート装置及びプログラム
Fu et al. DIPOR: An IDA-based dynamic proof of retrievability scheme for cloud storage systems
Ambrose et al. Differential attacks on deterministic signatures
CN110663215A (zh) 在白盒场景中的椭圆曲线点乘设备和方法
CN108985102A (zh) 数据完整性验证方法、装置、系统及存储介质
CN112436938B (zh) 数字签名的生成方法、装置和服务器
JPWO2020165932A1 (ja) 情報処理装置、秘密計算方法及びプログラム
TW202318833A (zh) 臨界簽章方案
KR100699836B1 (ko) 스칼라 곱에서 dfa 대책을 위한 장치 및 방법
WO2018216512A1 (ja) 秘密改ざん検知システム、秘密改ざん検知装置、秘密改ざん検知方法、およびプログラム
CN112487464A (zh) 一种基于区块链的加密数据分享方法及装置
JP6881588B2 (ja) 秘密計算装置、秘密計算方法、プログラム、および記録媒体
Takagi Recent developments in post-quantum cryptography
Brunetta et al. Code-based zero knowledge PRF arguments
CN118160273A (zh) 生成共享密钥
CN112541197B (zh) 一种结果验证方法及装置
Shim et al. Lite-Rainbow: lightweight signature schemes based on multivariate quadratic equations and their secure implementations
Tang et al. Fragile watermarking based proofs of retrievability for archival cloud data
Kaur et al. Data deduplication methods: a review
CN114520728B (zh) 一种分布式匿名阅卷评分方法与系统
Mao et al. Parallel checking of content integrity in multi‐cloud storage of heterogeneous sensor systems
Corena et al. Proofs of data possession and pollution checking for Regenerating Codes
Sivasubramanian A comparative analysis of Post-Quantum Hash-based Signature Algorithm

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019537589

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

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

Country of ref document: EP

Effective date: 20200323