COMPUTER-READABLE RECORDING MEDIUM STORING PROGRAM, CALCULATION METHOD, AND INFORMATION PROCESSING DEVICE

Information

  • Patent Application
  • 20240187224
  • Publication Number
    20240187224
  • Date Filed
    September 05, 2023
    a year ago
  • Date Published
    June 06, 2024
    5 months ago
Abstract
A non-transitory computer-readable recording medium storing a program for causing a computer to execute processing including: acquiring, in a case where a plurality of pieces of variance information that corresponds to a plurality of nodes is generated by encryption of secret information, an upper limit value allowable for mutual information between the secret information and each of the plurality of pieces of variance information; and calculating, based on the upper limit value, a value of a parameter that indicates a distribution width of random number values used for the encryption.
Description
CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2022-194747, filed on Dec. 6, 2022, the entire contents of which are incorporated herein by reference.


FIELD

The embodiments discussed herein are related to a non-transitory computer-readable recording medium storing a program, a calculation method, and an information processing device.


BACKGROUND

Secure computation is known as a technology of computing data in an encrypted state. The secure computation is also referred to as confidential computation. With the secure computation, secret information that an individual, an organization, or the like does not desire to disclose may be used for data analysis or machine learning without being known to others. In secure computation, a method called secret sharing may be used in which the secret information of a client is encrypted and distributed, and stored on a server.


For example, there is a proposal of a secure computation device using Shamir's secret sharing method, in which a secret value s is distributed into n fragments (shares) by a random polynomial f, and further, the secret value s is reconstructed from optional k fragments. Note that n is an integer equal to or larger than 2, and k is an integer satisfying n≥k. k is referred to as Shamir's threshold.


Note that, in a privacy protection technology of concealing individual data by probabilistic noise addition, there is a proposal of a noise addition device in which a noise value to be added to an input value is a bounded noise value that does not change a value range of the input value.


Furthermore, there is also a proposal for a method computing an element of a matrix product of two matrices using a secret sharing scheme without a trusted initializer.


Furthermore, there is also a proposal for a method that enables cooperatively to determine a model parameter of a data processing model while data privacy is protected by using the secret sharing for distributing data used to train the data processing model among parties.


Moreover, there is also a proposal for a method of making it difficult to leak a secret by changing a random number coefficient polynomial used for share computation for encrypting secret information from that of the method proposed by Shamir.


International Publication Pamphlet No. WO 2021/124520, Japanese Laid-open Patent Publication No. 2014-81545, U.S. Patent Application Publication No. 2020/0320605, U.S. Patent Application Publication No. 2021/0042640, Adi Shamir, “How to share a secret”, Communications of the ACM, Volume 22 Issue 11, pp. 612-613, November 1979, and Katrine Tjell, Rafael Wisniewski, “Privacy in Distributed Computations based on Real Number Secret Sharing”, [online], July 2021, arXiv:2107.00911[cs.CR] [retrieved on Nov. 10, 2022], Internet <URL: https://arxiv.org/pdf/2107.00911.pdf> are disclosed as related art.


SUMMARY

According to an aspect of the embodiments, there is provided a non-transitory computer-readable recording medium storing a program for causing a computer to execute processing including: acquiring, in a case where a plurality of pieces of variance information that corresponds to a plurality of nodes is generated by encryption of secret information, an upper limit value allowable for mutual information between the secret information and each of the plurality of pieces of variance information; and calculating, based on the upper limit value, a value of a parameter that indicates a distribution width of random number values used for the encryption.


The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.


It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention.





BRIEF DESCRIPTION OF DRAWINGS


FIG. 1 is a diagram for describing an information processing device of a first embodiment;



FIG. 2 is a diagram illustrating an example of an information processing system of a second embodiment;



FIG. 3 is a diagram illustrating a hardware example of a client device;



FIGS. 4A and 4B are diagrams illustrating an example of scrambling;



FIG. 5 is a diagram for describing an example of share computation;



FIG. 6 is a diagram illustrating a functional example of the client device;



FIG. 7 is a diagram illustrating a functional example of a server device;



FIG. 8 is a flowchart illustrating an example of noise parameter calculation processing;



FIG. 9 is a flowchart illustrating an example of secret-sharing processing;



FIG. 10 is a diagram illustrating an example of the secret sharing processing; and



FIG. 11 is a diagram illustrating an example of reference information for determining a guaranteed value.





DESCRIPTION OF EMBODIMENTS

In secret sharing, there is a problem that it is difficult to appropriately determine a parameter for generating random number values used for encryption of secret information. For example, when the random number values are too small relative to the value of the secret information, the value of the secret information may be estimated by a single node from encrypted values of the secret information. On the other hand, when the random number values are too large, the encrypted value of the secret information becomes too large, so there is a possibility that the cancellation of significant digits occurs at the time of secure computation and a result of the secure computation may not be obtained correctly.


In one aspect, an object of an embodiment is to appropriately determine a parameter for generating random number values.


Hereinafter, the present embodiments will be described with reference to the drawings.


First Embodiment

The first embodiment will be described.



FIG. 1 is a diagram describing an information processing device of the first embodiment.


An information processing device 10 communicates with nodes 21, 22, . . . via a network 30. The information processing device 10 may be called a computer. The nodes 21 and 22 may be called information processing devices or computers.


The information processing device 10 includes a storage unit 11 and a processing unit 12. The storage unit 11 may be a volatile storage device such as a random access memory (RAM), or may be a nonvolatile storage device such as a hard disk drive (HDD) or a flash memory. The processing unit 12 is, for example, a processor such as a central processing unit (CPU), a graphics processing unit (GPU), or a digital signal processor (DSP). The processing unit 12 may include an electronic circuit such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes, for example, a program stored in a volatile semiconductor memory such as a random access memory (RAM). The program may be stored in nonvolatile storage, such as a hard disk drive (HDD) or a flash memory. A set of processors may be called a multiprocessor or simply “processors”.


The processing unit 12 generates a plurality of pieces of variance information [s]1, [s]2, . . . from secret information s based on a method of secret sharing of Shamir, and arranges the generated plurality of pieces of variance information [s]1, [s]2, . . . in the nodes 21, 22, . . . in a distributed manner. The secret information s is information that a user desires to keep secret. The secret information s is held in the storage unit 11 according to processing by the processing unit 12. The variance information for a j-th node is represented as [s]j. j is an integer equal to or smaller than n. The variance information [s]j may be called a share. The processing unit 12 computes the variance information [s]j by Expression (1).





[Expression 1]





[s]j=s+c1pj+c2pj2+ . . . +ck−1pjk−1   (1)


pj is a constant assigned to the j-th node. c1, c2, . . . , ck−1 are random number values to be multiplied by pj, pj2, . . . , pjk−1, respectively. As a probability distribution for generating the random number values, for example, a normal distribution is used. In this manner, the processing unit 12 generates the variance information [s]j by encrypting the secret information s by Expression (1) by using the random number values.


Although the variance information [s]1, [s]2, . . . are arranged in the nodes 21, 22, . . . in a distributed manner, the secret information s may not be restored unless k nodes are collected together. Specifically, a value of the secret information s may be obtained by solving a simultaneous linear expression with k unknowns in which a value of the variance information [s]j and a value of the constant pj held by each of the k nodes are known values, and the value of the secret information s and c1, c2, . . . , ck−1 are unknown values.


Here, the processing unit 12 determines the random number values c1, c2, . . . , ck−1 of Expression (1) based on mutual information (may be referred to as “MI”) of the secret information s and the variance information [s]j. The mutual information is an index expressing an information amount between two random variables by the number of bits. The mutual information is also referred to as an information amount that depends on each other between two random variables or an information amount that affects each other between two random variables.


Information-theoretical magnitude of secret leakage due to the variance information [s]j is computed by mutual information I(S;[S]j) for a random variable S in a probability distribution of the secret information s and a random variable [S]j in a probability distribution of the variance information [s]j (an encrypted numerical value) to be transmitted to the node. Thus, by measuring the mutual information I(S;[S]j), a worst case of possible information leakage may be evaluated by the number of bits.


As an example, a case is considered where the secret information s takes any one value of {0, 1, 2, 3} with the same probability. In this case, it may be said that the secret information s has an information amount of four ways, in other words, 2 bits. It is assumed that the mutual information I(S;[S]j)=1 bit. This indicates that in a situation where the variance information [s]j is known, 1 bit of information regarding the secret information s is obtained. In this case, in a worst case, there is a possibility that the node to which the variance information [s]j has been transmitted may estimate up to information corresponding to 1 bit (for example, the secret information s is any one of {0, 1}).


Thus, the processing unit 12 guarantees that information corresponding to an information amount exceeding a predetermined guaranteed value (the number of bits) is not estimated by setting the guaranteed value in advance as an allowable upper limit value for the mutual information. It may be said that the guaranteed value is a value indicating an information amount that causes no problem even when leakage occurs or an information amount that allows leakage. In the case of the example described above, when it is not desired to leak even 1 bit of information, it is sufficient that the guaranteed value is set to a value less than 1.0.


It is assumed that the secret information s is the random variable S, the share [s]j is the random variable [S]j, and a random variable of b(pj) of Expression (2) is B(pj).





[Expression 2]






b(pj)=c1pj+c2pj2+ . . . +ck−1pjk−1   (2)


In this case, the upper limit value of the mutual information I(S;[S]j) is computed by the following Expression (3).











[

Expression


3

]













I
(




S
;

[
S
]

j


)

=



h
(


[
S
]

j

)

-

h
(



[
S
]

j





"\[LeftBracketingBar]"

S


)








=



h

(

S
+

B

(

p
j

)


)

-

h

(

S
+


B

(

p
j

)





"\[LeftBracketingBar]"

S



)








=



h

(

S
+

B

(

p
j

)


)

-

h

(

B

(

p
j

)

)













1
2



log

(

2

π


e

(


σ
S





2


+

σ

B
(

p
j

)






2



)


)


-


1
2



log

(

2

π

e


σ

B
(

p
j

)






2



)









=



1
2



log

(

1
+


σ
s





2



σ

B
(

p
j

)






2




)








=




1
2



log
(

1
+


σ
s





2










j








=
1


k
-
1





(


p
j






j











σ

)

2




)


=
α








(
3
)








In Expression (3), h(⋅) is an entropy function for a random variable, and h(⋅|⋅) is a conditional entropy. A logarithm base of function log is 2. σs is a standard deviation of the random variable S of the secret information s. σs may be given in advance by a user or may be computed by the processing unit 12 from a value of past secret information accumulated in the storage unit 11. σB(p_j) is a standard deviation of the random variable B(pj) of b(pj). Here, p_j indicates a symbol with a suffix j added to the lower left of p in the mathematical expression. σ is a standard deviation of cj′ (j′=1, 2, . . . , k−1). α is the upper limit value allowable for the mutual information I(S;[S]j); in other words, called the guaranteed value.


The maximum entropy theorem is used for a relationship between a third line and a fourth line of Expression (3). Specifically, since the two random variables S and B(pj) are independent, a variance V[S+B(pj)] of (S+B(pj)) is the sum of the respective variances. In other words, V[S+B(pj)]=V[S]+V[B(pj)]=σs2B(p_j)2. V[S]=σs2 is a variance of the random variable S. V[B(pj)]=σB(p_j)2 is a variance of the random variable B(pj). From the maximum entropy theorem, one having the variance V[S+B(pj)] and the maximum entropy is a normal distribution, and a value of the entropy may be written in the form of log ( . . . )/2 in the fourth line. Therefore, inequality in the fourth line of Expression (3) is established.


According to Expression (3), σ, which is a parameter for generating the random number value cj′, may be determined such that the mutual information I(S;[S]j) is equal to or smaller than the guaranteed value α. Specifically, the processing unit 12 receives specification of the guaranteed value α that causes no problem even when leakage occurs. Then, the processing unit 12 computes the maximum σ for pj (j=1, . . . , n) allocated to the n nodes by using the guaranteed value α by Expression (4) in the form of σ2=f(α) obtained by modifying Expression (3).











[

Expression


4

]










σ





2


=


max


j
=
1

,



,





n




{



σ
s





2




2






2


α


-
1





1
-

p
j





2





p
j





2


(

1
-

p
j






2



(

k
-
1

)




)



}






(
4
)








Note that, in the case of pj=1, the processing unit 12 sets a portion of a denominator “pj2(1−pj2(k−1))” of Expression (4) to 1/(k−1). A max operator indicates the selection of a maximum value among a plurality of computation results (candidate values) corresponding to a plurality of values of pj in curly brackets {⋅}. The right side of Expression (4) corresponds to f(α). The processing unit 12 may acquire σ as a square root of σ2.


The processing unit 12 uses σ obtained by Expression (4) as a standard deviation σ (or a variance σ2) to generate the random number values c1, c2, . . . , ck−1 according to, for example, a normal distribution with an average value of 0, or the like. The processing unit 12 uses the generated random number values c1, c2, . . . , ck−1 to generate the n pieces of the variance information [s]1, [s]2, . . . to be arranged in the n nodes by Expression (1). Then, the processing unit 12 transmits the n pieces of variance information [s]1, [s]2, . . . to the nodes 21, 22, . . . , respectively.


In this manner, according to the information processing device 10, in a case where a plurality of pieces of variance information corresponding to a plurality of nodes is generated by encrypting secret information, an upper limit value allowable for mutual information between the secret information and each of the plurality of pieces of variance information is acquired. Based on the upper limit value, a value of the parameter σ indicating a distribution width of a random number value used for the encryption is calculated.


With this configuration, the information processing device 10 may appropriately determine the parameter σ for generating random number values.


For example, the information processing device 10 may generate a random number value having an appropriate magnitude that satisfies a condition of theoretical guarantee of information leakage by the parameter σ. In other words, the information processing device 10 may suppress the random number value from becoming too small and may reduce the possibility that information corresponding to an information amount larger than a guaranteed value (upper limit value described above) leaks from variance information in a single node. Furthermore, the information processing device 10 may suppress the random number value from becoming too large and may make cancellation of significant digits less likely to occur in secure computation using variance information generated from the random number value. Furthermore, by suppressing the random number value from becoming too large, the information processing device 10 may also reduce a possibility that cancellation of significant digits occurs in a value of the variance information itself generated from the random number value. Moreover, the information processing device 10 may easily compute the parameter σ for generating random number values and may reduce a computation cost associated with the generation of the variance information.


Second Embodiment

Next, a second embodiment will be described.



FIG. 2 is a diagram illustrating an example of an information processing system of the second embodiment.


The information processing system of the second embodiment includes a client device 100 and server devices 200, 200a, 200b, . . . . The client device 100 and the server devices 200, 200a, 200b, . . . are coupled to a network 40. The network 40 is, for example, the Internet, a wide area network (WAN), a local area network (LAN), or the like.


The client device 100 is a computer that performs secret sharing of Shamir. The client device 100 encrypts secret information to generate a share to be arranged in each of the server devices 200, 200a, 200b, . . . and transmit the generated share to the server device corresponding to the share.


The server devices 200, 200a, 200b, . . . hold shares. The shares held by the server devices 200, 200a, 200b, . . . are used for predetermined secure computation. With the secure computation, secret information is used for data analysis, machine learning, and the like while being encrypted.


Note that the information processing system of the second embodiment may include a plurality of client devices including the client device 100. Furthermore, the server devices 200, 200a, 200b, . . . may be implemented by a physical computer (physical machine). The server devices 200, 200a, 200b, . . . may be implemented by a virtual computer (virtual machine) implemented in a physical machine by using resources such as a processor and a RAM included in the physical machine.


The client device 100 is an example of the information processing device 10 of the first embodiment. The server devices 200, 200a, 200b, . . . are examples of the nodes 21, 22, . . . of the first embodiment.



FIG. 3 is a diagram illustrating a hardware example of the client device.


The client device 100 includes a processor 101, a RAM 102, an HDD 103, a GPU 104, an input interface 105, a medium reader 106, and a communication interface 107. These units included in the client device 100 are coupled to a bus inside the client device 100. The processor 101 is an example of the processing unit 12 of the first embodiment. The RAM 102 or the HDD 103 is an example of the storage unit 11 of the first embodiment.


The processor 101 is an arithmetic device that executes a program command. The processor 101 is, for example, a CPU. The processor 101 loads at least a part of a program and data stored in the HDD 103 into the RAM 102, and executes the program. Note that the processor 101 may include a plurality of processor cores. Furthermore, the client device 100 may include a plurality of processors. Processing to be described below may be executed in parallel by using a plurality of processors or processor cores. Furthermore, a set of a plurality of processors may be referred to as a “multiprocessor” or simply “processors”.


The RAM 102 is a volatile semiconductor memory that temporarily stores a program to be executed by the processor 101 and data to be used by the processor 101 for arithmetic operations. Note that the client device 100 may include a memory of a type other than the RAM, or may include a plurality of memories.


The HDD 103 is a nonvolatile storage device that stores software programs such as an operating system (OS), middleware, and application software, and data. Note that the client device 100 may include another type of the storage device such as a flash memory or a solid state drive (SSD), or may include a plurality of nonvolatile storage devices.


The GPU 104 outputs an image to a display 111 coupled to the client device 100 in accordance with a command from the processor 101. As the display 111, an optional type of display such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, or an organic electro-luminescence (OEL) display may be used.


The input interface 105 acquires input signals from an input device 112 coupled to the client device 100, and outputs the acquired input signals to the processor 101. As the input device 112, a pointing device such as a mouse, a touch panel, a touch pad, or a trackball, a keyboard, a remote controller, a button switch, or the like may be used. Furthermore, a plurality of types of input devices may be coupled to the client device 100.


The medium reader 106 is a reading device that reads a program and data recorded in a recording medium 113. As the recording medium 113, for example, a magnetic disk, an optical disk, a magneto-optical (MO) disk, a semiconductor memory, or the like may be used. Examples of magnetic disks include a flexible disk (FD) and an HDD. Examples of optical disks include a compact disk (CD) and a digital versatile disk (DVD).


The medium reader 106 copies, for example, a program and data read from the recording medium 113 to another recording medium such as the RAM 102 or the HDD 103. The read program is executed by, for example, the processor 101. Note that the recording medium 113 may be a portable recording medium and is sometimes used for distribution of a program and data. Furthermore, the recording medium 113 and the HDD 103 may be referred to as computer-readable recording media.


The communication interface 107 is coupled to the network 40, and communicates with another information processing device via the network 40. The communication interface 107 may be a wired communication interface coupled to a wired communication device such as a switch or a router or may be a wireless communication interface coupled to a wireless communication device such as a base station or an access point.


The server devices 200, 200a, 200b, . . . are also implemented by hardware similar to that of the client device 100.



FIGS. 4A and 4B are diagrams illustrating an example of scrambling.


The client device 100 scrambles the secret information s with c1p+c2pj2+ . . . +ck−1pjk−1 corresponding to random number noise and encrypts the secret information s as indicated by Expression (1).


In Shamir's secret sharing, the value obtained by scrambling a secret as a numerical value with random number noise (called share) is transmitted to each server device. However, when the random number noise is too small relative to the secret, a numerical value having almost no difference from the numerical value of the secret is transmitted to the server device.



FIG. 4A exemplifies a case where the random number noise is too small. A distribution 50 indicates an example of a distribution of values of a secret. A distribution 51 illustrates an example of a distribution of values of shares generated by scrambling the values of the secret having the distribution 50 with random number noise. For example, it is assumed that the secret s takes only any one value of {99, 100, 101}. At this time, for example, a value s+r1 scrambled with random number noise r1 in a range of −0.1 to 0.1 is any one value of {98.9 to 99.1, 99.9 to 100.1, 100.9 to 101.1} as indicated by the distribution 51. In this case, when share transmission is performed a plurality of times in a certain server device, the server device may know a certain pattern for a value of the share. As a result, the server device may estimate the secret.



FIG. 4B exemplifies a case where the random number noise is appropriate. A distribution 52 indicates a distribution of a value s+r2 scrambled with random number noise r2 in an appropriate range larger than the range of the random number noise r1. As indicated by the distribution 52, by scrambling the secret s with the appropriate random number noise r2, it becomes difficult for a side of the server device to specify a pattern of the value of the share, and it becomes difficult to estimate the secret s.



FIG. 5 is a diagram describing an example of share computation.


The graph 60 includes nodes indicating the respective client devices C1, . . . , Ci, . . . , Cm and the respective server devices S1, S2, . . . , Sn, and oriented edges indicating server devices that are arrangement destinations of shares by the client devices. The client device Ci corresponds to the client device 100. The server devices S1, S2, . . . , Sn correspond to the n server devices 200, 200a, . . . . The server device Sj indicates a j-th server device among the server devices 200, 200a, . . .


As an example, it is assumed that the share [s]j of the secret s to the server device Sj is [s]j=s+c1pj+c2pj2. c1 and c2 are random number values according to a normal distribution N(μ, σ2). μ is an average value. σ is a standard deviation. Furthermore, it is assumed that the client device 100 (C1) sets the server devices 200 and 200a (S1, S2) as the arrangement destinations of the shares.


When p1=10, [s]1=s+10c1+100C2.


When p2=0.1, [s]2=s+0.1c1+0.01c2.


It is assumed that the secret s of the client device 100 is s=0 or 1.


First Example

When the standard deviation σ is small, random number noise (=c1pj+c2pj2) becomes very small, and a server device may independently estimate the secret s.


For the normal distribution followed by the random number values, when μ=0.0 and σ=1.0, 95% of generated random number values have values in a range of −2.0 to +2.0. Therefore, by receiving a share taking a value of [s]2=−0.22 to 0.22 or 0.78 to 1.22 a plurality of times, the server device 200a (S2) may obtain a probability distribution of the share, leading to the estimation of the secret.


Note that, for s=0 or 1, in the share [s]1, since the secret s is buried with the random number noise, it becomes difficult for the server device 200 (S1) to estimate the secret.


Second Example

When the standard deviation σ is made too large so that random number noise does not become small relative to the server device 200a (S2), while the secret s may be hidden by the random number noise in [s]2, [s]1 becomes too large, which leads to a risk of cancellation of significant digits in secure computation.


For the normal distribution followed by the random values, when μ=0.0 and σ=10000.0, 95% of generated random number values have values in a range of −20000.0 to +20000.0. Therefore, values of [s]2=−2200 to +2200 (when s=0) and −2199 to +2201 (when s=1) are taken, and it becomes difficult for the server device 200a to estimate the secret s.


On the other hand, values of [s]1=−2200000 to +2200000 (when s=0) and −2199999 to +2200001 (when s=1) are taken. Such an extremely large value of the share results in the computation of a product of relatively large values in the computation of the product in secure computation, and thus, there is a possibility that a very large value is generated in the middle of the secure computation and cancellation of significant digits occurs. When the cancellation of significant digits occurs, a result of the secure computation may not be obtained correctly. Furthermore, since the power of p becomes a very large value as k increases, the value of the share itself becomes very large, and there is a possibility that the cancellation of significant digits occurs even with the single share.


Thus, the client device 100 provides a function of appropriately determining σ, which is a parameter for generating random number values cj′ (j′=1, . . . , k−1) so that the random number noise has an appropriate magnitude.



FIG. 6 is a diagram illustrating a functional example of the client device.


The client device 100 includes an all-server setting values storage unit 121, a past secret data storage unit 122, a secret data standard deviation storage unit 123, a secret guaranteed value storage unit 124, a noise parameter storage unit 125, a secret data storage unit 126, a server setting value reception unit 130, a secret data standard deviation computation unit 140, a noise parameter adjustment unit 150, a share computation unit 160, and a share transmission unit 170.


A storage area of the RAM 102 or the HDD 103 is used for the all-server setting values storage unit 121, the past secret data storage unit 122, the secret data standard deviation storage unit 123, the secret guaranteed value storage unit 124, the noise parameter storage unit 125, and the secret data storage unit 126. The server setting value reception unit 130, the secret data standard deviation computation unit 140, the noise parameter adjustment unit 150, the share computation unit 160, and the share transmission unit 170 are implemented by the processor 101 executing a program stored in the RAM 102.


The all-server setting values storage unit 121 stores server setting values p1, . . . , pn of the respective server devices 200, . . . , 200x. Here, the server device 200x is an n-th server device.


The past secret data storage unit 122 stores the past secret data of a user. The past secret data corresponds to a secret created by the user up to a previous time. The past secret data may be all secrets up to the previous time or may be a secret within the most recent predetermined period.


The secret data standard deviation storage unit 123 stores a secret data standard deviation σs computed from past secret data of a user.


The secret guaranteed value storage unit 124 stores a guaranteed value α. As the guaranteed value α, an information amount that causes no problem even when leakage occurs is set in advance by a user. For example, as described above, in a case where it is not desired to leak an information amount of even 1 bit, α is set to less than 1 bit (for example, α=0.5 or the like).


The noise parameter storage unit 125 stores a noise parameter o computed by Expression (4) based on p1, . . . , pn, σs, α. The noise parameter σ indicates a distribution width of a noise value used for share computation.


The secret data storage unit 126 stores current secret data; in other words, the secret s.


The server setting value reception unit 130 receives the server setting values p1, . . . , pn from the server devices 200, . . . , 200x, respectively, and stores the received server setting values p1, . . . , pn in the all-server setting values storage unit 121.


The secret data standard deviation computation unit 140 computes the secret data standard deviation σs based on a value of past secret data stored in the past secret data storage unit 122, and stores the computed secret data standard deviation σs in the secret data standard deviation storage unit 123.


The noise parameter adjustment unit 150 computes the noise parameter σ by Expression (4) based on p1, . . . , pn stored in the all-server setting values storage unit 121, σs stored in the secret data standard deviation storage unit 123, and a stored in the secret guaranteed value storage unit 124. A square root of σ2 computed by Expression (4) is σ. Note that a value of k used in Expression (4) is given in advance to the noise parameter adjustment unit 150. The noise parameter adjustment unit 150 stores the computed σ in the noise parameter storage unit 125.


Specifically, based on Expression (4), the noise parameter adjustment unit 150 calculates, for each of the plurality of server setting values, a plurality of candidate values of the noise parameter σ corresponding to the plurality of server setting values so that mutual information (I(S;[S]j) of Expression (3)) between the secret s and each share [s]j is equal to the guaranteed value α. One candidate value corresponds to a computation result for one pj in curly brackets {⋅} of the max operator of Expression (4). The noise parameter adjustment unit 150 selects a maximum value among the plurality of calculated candidate values as a value of the noise parameter σ as indicated by the max operator of Expression (4).


The share computation unit 160 generates random number values c1, . . . , ck−1 based on σ stored in the noise parameter storage unit 125. The share computation unit 160 generates shares [s]1, . . . , [s]n by Expression (1) based on the generated random number values c1, . . . , ck−1, p1, . . . , pn stored in the all-server setting values storage unit 121, and the secret s stored in the secret data storage unit 126.


The share transmission unit 170 transmits the shares [s]1, . . . , [s]n to the corresponding server devices 200, . . . , 200x, respectively.



FIG. 7 is a diagram illustrating a functional example of the server device.


The server device 200 includes a server setting value storage unit 211, a share storage unit 212, a server setting value transmission unit 220, and a share reception unit 230. A storage area of the RAM or the HDD of the server device 200 is used for the server setting value storage unit 211 and the share storage unit 212. The server setting value transmission unit 220 and the share reception unit 230 are implemented by a processor of the server device 200 executing a program stored in the RAM.


Note that the server devices 200a, . . . , 200x other than the server device 200 also have functions similar to those of the server device 200.


The server setting value storage unit 211 stores the server setting value p1 corresponding to the server device 200. The server setting value p1 is set in advance in the server setting value storage unit 211.


The share storage unit 212 stores the share [s]1 corresponding to the server device 200.


The server setting value transmission unit 220 transmits the server setting value pi stored in the server setting value storage unit 211 to the client device 100.


The share reception unit 230 receives the share [s]1 corresponding to the server device 200 from the client device 100, and stores the received share [s]1 in the share storage unit 212.


Next, a processing procedure of the client device 100 will be described.



FIG. 8 is a flowchart illustrating an example of noise parameter calculation processing.


(S10) The server setting value reception unit 130 acquires a server setting value (p1, . . . , pn) for each server device, and stores the acquired server setting value (p1, . . . , pn) in the all-server setting values storage unit 121.


(S11) The noise parameter adjustment unit 150 acquires the guaranteed value α, and stores the acquired guaranteed value α in the secret guaranteed value storage unit 124. The guaranteed value α is specified in advance by a user.


(S12) The secret data standard deviation computation unit 140 computes, based on past secret data stored in the past secret data storage unit 122, the standard deviation σs that is a statistical amount of the past secret data, in other words, the secret data standard deviation σs, and stores the computed secret data standard deviation σs in the secret data standard deviation storage unit 123.


(S13) The noise parameter adjustment unit 150 computes the noise parameter σ by using Expression (4) based on the guaranteed value α, the server setting value pj (j=1, . . . , n), and the standard deviation σs, and stores the computed noise parameter σ in the noise parameter storage unit 125. The noise parameter adjustment unit 150 calculates candidate values of σ (or σ2) for each value of pj based on Expression (4), and selects a maximum value (or a square root of the maximum value) among the candidate values for each value of pj as a value of the noise parameter σ. Then, the noise parameter calculation processing ends.



FIG. 9 is a flowchart illustrating an example of secret-sharing processing.


(S20) The share computation unit 160 acquires the noise parameter σ stored in the noise parameter storage unit 125 as a standard deviation used for the generation of a random number for generating a share.


(S21) The share computation unit 160 generates the random number value cj′(j′=1, . . . , k−1) in accordance with a normal distribution by the standard deviation σ, and generates the share [s]j to the server device Sj by adding random number noise to the secret s for pj (j=1, . . . , n) by Expression (1).


(S22) The share transmission unit 170 transmits the share [s]j to each server device Sj. Then, the secret-sharing processing ends. Note that the share reception unit 230 of each server device Sj receives the share [s]j from the client device 100, and stores the received share [s]j in the share storage unit 212.



FIG. 10 is a diagram illustrating an example of secret-sharing processing.


In graph 70, node C indicates the client device 100, and nodes S1, . . . , Sj, . . . , Sn indicate the server devices 200, . . . , 200x. A server setting value of a j-th (j=1, . . . , n) server device is a constant pj. A share of the j-th server device for the secret s is [s]j.


Here, a case where n=3 is exemplified. For example, the nodes S1, S2, and S3 correspond to the server devices 200, 200a, and 200b, respectively. Furthermore, it is assumed that the server setting value p1 of the server device 200 is 10. It is assumed that the server setting value p2 of the server device 200a is 0.1. It is assumed that the server setting value p3 of the server device 200b is 1.0. The share transmitted to the server device 200 is [s]1. The share transmitted to the server device 200a is [s]2. The share transmitted to the server device 200b is [s]3.


It is assumed that the secret s of the client device 100 takes any one value of {0, 1, 2, 3} with the same probability. In this case, a variance σs2 computed by a square of the secret data standard deviation σs is σs2=5/4.


Furthermore, it is assumed that the client device 100 sets the guaranteed value α=0.5 so that each server device does not acquire an information amount equal to or larger than 1 bit.


For example, before the secret sharing processing, the client device 100 executes the noise parameter calculation processing as follows.


The server setting value reception unit 130 acquires server setting values p1=10, p2=0.1, and p3=1.0 for the server devices 200, 200a, and 200b, respectively, and stores the acquired server setting values p1=10, p2=0.1, and p3=1.0 in the all-server setting values storage unit 121.


The noise parameter adjustment unit 150 acquires the guaranteed value α=0.5, and stores the acquired guaranteed value α=0.5 in the secret guaranteed value storage unit 124. The guaranteed value α is specified in advance by a user. The noise parameter adjustment unit 150 may set the guaranteed value α=0.5 in accordance with a reference set in advance based on, for example, a value range of values stored in the past secret data storage unit 122 or the secret data storage unit 126.


The noise parameter adjustment unit 150 computes σ of Expression (4) by using the variance σs2, the guaranteed value α, and the server setting values p1, p2, and p3. Specifically, the noise parameter adjustment unit 150 computes σ2 by Expression (5) obtained by substituting each numerical value into Expression (4).











[

Expression


5

]













σ





2


=



max


j
=
1

,



,





n




{



σ
s





2




2






2


α


-
1





1
-

p
j





2





p
j





2


(

1
-

p
j

2


(

k
-
1

)




)



}








=



max
j


{



5
/
4



2


1


-
1





1
-

p
j





2





p
j





2


(

1
-

p
j
4


)



}








=



max
j


{


5
4



1


p
j





2


+

p
j
4




}








=


max


{

0.00124
,
123.7624
,
0.625

}








=

123.7624







(
5
)








The noise parameter adjustment unit 150 sets the standard deviation σ=11.12, which is a square root of the variance σ2=123.7624, as the noise parameter. The noise parameter adjustment unit 150 stores the computed noise parameter σ in the noise parameter storage unit 125.


Then, the client device 100 performs the secret sharing processing as follows.


The share computation unit 160 acquires the noise parameter σ stored in the noise parameter storage unit 125 as a standard deviation used for the generation of a random number for generating a share.


The share computation unit 160 generates the random number value cj′ (j′=1, 2) in accordance with a normal distribution N(0, σ2). For example, it is assumed that c1=13.1 and c2=−27.4.


In this case, the share computation unit 160 computes the shares [s]1, [s]2, and [s]3 as in Expression (6) by using the random number values c1 and c2.











[

Expression


6

]









{






[
s
]

1

=


s
+

10


c
1


+

100


c
2



=

-
2608.










[
s
]

2

=


s
+

0.1


c
1


+

0.01


c
2



=
2.036









[
s
]

3

=


s
+

c
1

+

c
2


=

-
13.3










(
6
)








The share transmission unit 170 transmits the share [s]j to the server devices 200, 200a, and 200b (Sj, j=1, 2, 3).


The share reception unit 230 of each of the server devices 200, 200a, and 200b receives the share [s]j from the client device 100, and stores the received share [s]j in the share storage unit 212.


According to the client device 100 of the second embodiment, by appropriately selecting random number noise used when a secret is encrypted, it is possible to reduce the possibility of occurrence of information leakage and to reduce the possibility of occurrence of a problem of cancellation of significant digits during share computation and cancellation of significant digits during secure computation.


Furthermore, in the method of Katrine Tjell, Rafael Wisniewski, “Privacy in Distributed Computations based on Real Number Secret Sharing”, [online], July 2021, arXiv:2107.00911[cs.CR] [retrieved on Nov. 10, 2022], Internet <URL: https://arxiv.org/pdf/2107.00911.pdf> described above, it is needed to compute a sum of products in the share computation, and a computation amount may be increased as compared with the method of Shamir of Adi Shamir, “How to share a secret”, Communications of the ACM, Volume 22 Issue 11, pp. 612-613, November 1979. Specifically, in the method of Katrine Tjell, Rafael Wisniewski, “Privacy in Distributed Computations based on Real Number Secret Sharing”, [online], July 2021, arXiv:2107.00911[cs.CR] [retrieved on Nov. 10, 2022], Internet <URL: https://arxiv.org/pdf/2107.00911.pdf>, there is a problem that Lagrange basis polynomials are used to perform share computation and a computation cost for computing a sum of products of the polynomials is large.


On the other hand, according to the client device 100, a noise parameter is generated based on Expression (4), and a share is computed by Expression (1). Thus, the client device 100 may compute a share more easily compared with the case of using the complicated polynomials as in the method of Katrine Tjell, Rafael Wisniewski, “Privacy in Distributed Computations based on Real Number Secret Sharing”, [online], July 2021, arXiv:2107.00911[cs.CR] [retrieved on Nov. 10, 2022], Internet <URL: https://arxiv.org/pdf/2107.00911.pdf>, and the computation cost for performing the share computation may be reduced.


Note that, in the example described above, it is assumed that the noise parameter adjustment unit 150 computes the noise parameter σ by using the guaranteed value α stored in advance in the secret guaranteed value storage unit 124. On the other hand, the secret guaranteed value storage unit 124 may hold in advance reference information indicating a reference (or a policy) for determining the guaranteed value α. In that case, the noise parameter adjustment unit 150 may determine the guaranteed value α based on the reference information stored in the secret guaranteed value storage unit 124.



FIG. 11 is a diagram illustrating an example of the reference information for determining the guaranteed value.


Reference information 124a indicates a determination reference of the guaranteed value α for each user. The reference information 124a is stored in advance in, for example, the secret guaranteed value storage unit 124. The reference information 124a may be stored in a storage area other than the secret guaranteed value storage unit 124 in the RAM 102 or the HDD 103.


The reference information 124a includes items of a user and a guaranteed value determination reference. In the item of the user, identification information of a user who handles secret information is registered. In the item of the guaranteed value determination reference, a determination reference of a guaranteed value for the user is registered.


For example, the reference information 124a has a record of a guaranteed value determination reference “less than 1 bit” for a user “U1”. This record indicates that information leakage of even 1 bit is not allowed for secret information of the user U1. In this case, the noise parameter adjustment unit 150 sets a value of α<1 to the secret information handled by the user U1, for example, as α=0.5 described above. As a method of determining α (α=0.5 in the example of the user U1), a method of using a value obtained by subtracting a predetermined value (for example, 0.5) from a limit value (1 (bit) in the example of the user U1) indicated in the guaranteed value determination reference, a method of using a value of a predetermined ratio (for example, 1/2) of the limit value, or the like is considered.


Furthermore, the reference information 124a has a record of a guaranteed value determination reference “less than 10% of an information amount of secret information” for a user “U2”. This record indicates that there is no problem even when leakage occurs for secret information of the user U2 as long as an information amount is less than 10% of the information amount of the secret information. In this case, the noise parameter adjustment unit 150 sets a value of α<0.1×y (for example, α=0.05×y, or the like) to an information amount y of the secret information for the secret information handled by the user U2.


Furthermore, the reference information 124a has a record of a guaranteed value determination reference “equal to or smaller than 3% of an information amount of secret information” for a user “U3”. This record indicates that there is no problem even when leakage occurs for secret information of the user U3 as long as an information amount is equal to or smaller than 3% of the information amount of the secret information. In this case, the noise parameter adjustment unit 150 sets a value of α≤0.03×z to an information amount z of the secret information for the secret information handled by the user U3. For example, the noise parameter adjustment unit 150 may determine α=0.03×z for the user U3.


In this manner, the client device 100 may also efficiently determine the guaranteed value a by the reference information 124a. For example, the client device 100 may appropriately determine the guaranteed value α according to an information amount of secret information in accordance with a policy for each user. Note that the guaranteed value determination reference is not limited to a user unit and may be set for another unit, such as a service unit provided by each server device or the like or a unit of a set of a user and a service.


As described above, the client device 100 performs, for example, the following processing.


In a case where a plurality of pieces of variance information corresponding to a plurality of nodes is generated by encrypting secret information, the processor 101 acquires an upper limit value allowable for mutual information between the secret information and each of the plurality of pieces of variance information. Based on the upper limit value, the processor 101 calculates a value of a parameter indicating a distribution width of a random number value used for the encryption of the secret information.


With this configuration, the client device 100 may appropriately determine a parameter for generating random number values. For example, the client device 100 may reduce the possibility of the occurrence of information leakage of an information amount exceeding the acquired upper limit value regarding the secret information and reduce the possibility of the occurrence of a problem of cancellation of significant digits during the computation of the variance information and cancellation of significant digits during secure computation. By suppressing the cancellation of significant digits in the process of the secure computation, a result of the secure computation may be obtained correctly. The share described above is an example of the variance information. The noise parameter σ used as the standard deviation or σ2 corresponding to the variance is an example of the parameter indicating the distribution width of the random number value. For example, the parameter indicating the distribution width of the random number value may be a value adjusted by adding a predetermined value to σ computed by Expression (4), or the like. The server devices 200, 200a, . . . are an example of the plurality of nodes.


Furthermore, based on a standard deviation of a value of past secret information, the processor 101 calculates a value of the parameter indicating the distribution width of the random number value.


With this configuration, the client device 100 may appropriately determine a parameter for generating random number values according to a tendency of the value of the secret information. The secret data standard deviation σs corresponds to the standard deviation of the value of the past secret information.


Furthermore, the processor 101 calculates, for each of a plurality of node setting values corresponding to the plurality of nodes, a plurality of candidate values of the parameter described above corresponding to the plurality of node setting values such that mutual information between the secret information and each of the plurality of pieces of variance information becomes the acquired upper limit value. The processor 101 selects a maximum value among the plurality of calculated candidate values as the value of the parameter used for encryption.


With this configuration, the client device 100 may appropriately determine a parameter for generating random number values for the plurality of nodes. In other words, the client device 100 may reduce the possibility of the occurrence of information leakage in each of the plurality of nodes and reduce the possibility of the occurrence of a problem of cancellation of significant digits during computation of the variance information and cancellation of significant digits during secure computation. Note that the server setting value pj for each server device described above is an example of the node setting value.


Furthermore, the processor 101 generates a plurality of random number values by using the value of the parameter indicating the distribution width of the random number value and generates the plurality of pieces of variance information based on the secret information and the plurality of random number values.


With this configuration, the client device 100 may easily generate a plurality of pieces of variance information. For example, a computation cost for generating the plurality of pieces of variance information may be reduced as compared with the method of Katrine Tjell, Rafael Wisniewski, “Privacy in Distributed Computations based on Real Number Secret Sharing”, [online], July 2021, arXiv:2107.00911[cs.CR] [retrieved on Nov. 10, 2022], Internet <URL: https://arxiv.org/pdf/2107.00911.pdf> described above.


Furthermore, in acquiring the upper limit value allowable for the mutual information between the secret information and each of the plurality of pieces of variance information, the processor 101 may determine the upper limit value based on reference information indicating a reference of an information amount that causes no problem even when leakage occurs for the secret information.


With this configuration, the processor 101 may efficiently determine the upper limit value based on the reference information. The guaranteed value determination reference in the reference information 124a described above is an example of the reference of the information amount that causes no problem even when leakage occurs for the secret information.


Note that the information processing of the first embodiment may be implemented by causing the processing unit 12 to execute a program. Furthermore, the information processing of the second embodiment may be implemented by causing the processor 101 to execute the program. The program may be recorded in the computer-readable recording medium 113.


For example, the program may be distributed by distributing the recording medium 113 in which the program is recorded. Furthermore, the program may be stored on another computer and distributed through a network. For example, a computer may store (install), in a storage device such as the RAM 102 or the HDD 103, the program recorded in the recording medium 113 or received from another computer and read the program from the storage device to execute the program.


All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although one or more embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.

Claims
  • 1. A non-transitory computer-readable recording medium storing a program for causing a computer to execute processing comprising: acquiring, in a case where a plurality of pieces of variance information that corresponds to a plurality of nodes is generated by encryption of secret information, an upper limit value allowable for a mutual information between the secret information and each of the plurality of pieces of variance information; andcalculating, based on the upper limit value, a value of a parameter that indicates a distribution width of a random number value used for the encryption.
  • 2. The non-transitory computer-readable recording medium according to claim 1, for causing the computer to execute processing comprising calculating, in the calculating, the value of the parameter based on a standard deviation of a value of past secret information.
  • 3. The non-transitory computer-readable recording medium according to claim 1, for causing the computer to execute processing comprising calculating, in the calculating, for each of a plurality of node setting values that corresponds to the plurality of nodes, a plurality of candidate values of the parameter that corresponds to the plurality of node setting values such that the mutual information becomes the upper limit value, and selecting a maximum value among the plurality of calculated candidate values as the value of the parameter used for the encryption.
  • 4. The non-transitory computer-readable recording medium according to claim 1, for causing the computer to execute processing comprising generating a plurality of random number values by using the value of the parameter, and generating the plurality of pieces of variance information based on the secret information and the plurality of random number values.
  • 5. The non-transitory computer-readable recording medium according to claim 1, for causing the computer to execute processing comprising determining, in the acquiring, the upper limit value based on reference information that indicates a reference of an information amount that is considered to cause no problem even when leakage occurs for the secret information.
  • 6. The non-transitory computer-readable recording medium according to claim 1, wherein the parameter is a standard deviation or a variance.
  • 7. A calculation method implemented by a computer, the calculation method comprising: acquiring, in a case where a plurality of pieces of variance information that corresponds to a plurality of nodes is generated by encryption of secret information, an upper limit value allowable for mutual information between the secret information and each of the plurality of pieces of variance information; andcalculating, based on the upper limit value, a value of a parameter that indicates a distribution width of a random number value used for the encryption.
  • 8. An information processing device comprising: a storage unit that stores an upper limit value allowable for mutual information between secret information and each of a plurality of pieces of variance information that is generated by encryption of the secret information and corresponds to a plurality of nodes; anda processing unit that calculates, based on the upper limit value, a value of a parameter that indicates a distribution width of a random number value used for the encryption.
Priority Claims (1)
Number Date Country Kind
2022-194747 Dec 2022 JP national