WO2024001023A1 - 隐私数据的安全处理方法和装置 - Google Patents

隐私数据的安全处理方法和装置 Download PDF

Info

Publication number
WO2024001023A1
WO2024001023A1 PCT/CN2022/135284 CN2022135284W WO2024001023A1 WO 2024001023 A1 WO2024001023 A1 WO 2024001023A1 CN 2022135284 W CN2022135284 W CN 2022135284W WO 2024001023 A1 WO2024001023 A1 WO 2024001023A1
Authority
WO
WIPO (PCT)
Prior art keywords
modulus
result
data
power
fragment
Prior art date
Application number
PCT/CN2022/135284
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 蚂蚁区块链科技(上海)有限公司
Publication of WO2024001023A1 publication Critical patent/WO2024001023A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes

Definitions

  • One or more embodiments of this specification relate to the computer field, and in particular, to methods and devices for securely processing private data.
  • Secure multi-party computation is also called multi-party secure computation, that is, multiple parties jointly calculate the result of a function without leaking the input data of each party in the function, and the calculation result is disclosed to one or more parties.
  • the input data of each party is often private data.
  • One or more embodiments of this specification describe a method and device for securely processing private data, which can implement secure exponentiation with low communication volume and good performance.
  • a secure processing method for private data is provided.
  • the private data is distributed among the first party and the second party in the form of sum sharing in the initial modulus space.
  • This method is used to obtain public data as the base and The result fragmentation of the exponentiation result in the target modulus space with the privacy data as the exponent.
  • This method is executed by the first party and includes:
  • the first modulus space Based on at least the local fragmentation of the private data, locally calculate the first data fragment of the first intermediate data in the first modulus space; wherein the first intermediate data is a non-negative value, and the first modulus space corresponds to The first modulus is determined according to the modulus value of the target modulus space; the second data fragment of the first intermediate data in the first modulus space is held by the second party;
  • a first multiplier in the second modulus space is constructed; the second modulus corresponding to the second modulus space is determined based on the first modulus;
  • a safe multiplication operation is performed to obtain the first slice of the multiplication result; the second party obtains the second slice of the multiplication result.
  • Sharding wherein the second multiplier is constructed by the second party based on the second data shard it holds; the multiplication result has two values;
  • the first slice of the multiplication result is converted into the first result slice of the exponentiation result in the target modulus space; the second party obtains the corresponding second result slice.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by
  • the d2 power of n is fragmented in the target modulus space
  • the absolute value of the public data is expressed as the k power form of n
  • k and the private data are both integers
  • the target product of k and the private data The minimum value of is u
  • u is an integer
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first modulus space is locally calculated; the first intermediate data is the target product subtract u from the result; the first modulus is the larger of 0 and -d2-u plus t2.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by The d2th power of n is fragmented in the target modulus space.
  • the absolute value of the public data is expressed as the kth power of n. Both k and the private data are integers.
  • the target product of k and the private data is The minimum value of is u, u is an integer and u is greater than or equal to 0, and the modulus value of the target modulus space is n raised to the t2 power;
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first modulus space is locally calculated; the first intermediate data is the target product The result; the first modulus is the larger of 0 and -d2 plus t2.
  • the first multiplier constructed in the second modulus space includes:
  • the public data is a positive number, determine the first base to be 1; if the public data is a negative number, determine the first base to be -1;
  • the second modulus corresponding to the second modulus space is the base n and the first modulus
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the multiplication result is regarded as n-ary data, and for the first fragment of the multiplication result, the first segment value of the first modulus bit of the low-order bit that is non-0 is extracted, or the first segment value is extracted that is non-0. a second segment value of the first modulus bit of the high-order bit of the bit to determine the first segment of the second intermediate result of the third modulus space;
  • the first slice of the second intermediate result is multiplied by n raised to the power of d2+u, and then rounded to an integer to obtain the first result slice of the exponentiation result in the target modulus space.
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • Treat the multiplication result as n-ary data extract the first segment value of the first modulus bit of the low-order bit for the first fragment of the multiplication result, and extract the first modulus bit of the high-order bit.
  • Second segment value
  • the first segment value and the second segment value are summed to obtain a first segment of the second intermediate result of the third modulus space.
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • the multiplication result is regarded as n-ary data, and a safe comparison operation is performed based on the first fragment of the multiplication result owned by the local party and the second fragment of the multiplication result of the second party to obtain the result.
  • the comparison result is that the multiplication result is less than the first modulus, extract the first segment value of the low-order first modulus bit of the first slice of the multiplication result, and use the first segment value as the first slice of the second intermediate result of the third modulus space;
  • the comparison result is that the multiplication result is greater than or equal to the first modulus, extract the second segment value of the high-order first modulus bit of the first segment of the multiplication result, and convert the second segment value into The value serves as the first slice of the second intermediate result of the third modulus space.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by
  • the d2th power of n is a fragment of the target modulus space
  • the public data and the private data are both integers
  • the minimum value of the private data is u'
  • the modulus value of the target modulus space is n t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first module space is locally calculated; the first intermediate data is the private data minus u'; the first modulus is determined based on n raised to the d2 power, the absolute value of the public data and n raised to the t2 power.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and both the public data and the private data are integers,
  • the minimum value of the private data is u′ and u′ is greater than or equal to 0;
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first modulus space is locally calculated; the first intermediate data is the private data.
  • the first multiplier constructed in the second modulus space includes:
  • the public data is a positive number, determine the first base to be 1; if the public data is a negative number, determine the first base to be -1;
  • the second modulus corresponding to the second modulus space is based on the absolute value of the public data as the base. Twice the first modulus is the result of the local power operation of the exponent.
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the modulus is the result of a local power operation with the absolute value of the public data as the base and the first modulus as the exponent;
  • the scaling term is the value obtained by multiplying n raised to the d2 power by the third modulus divided by n raised to the t2 power, and then rounded;
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • the multiplication result is regarded as data in the absolute value system of the public data.
  • the first segment value of the first modulus bit of the low-order bit is extracted, and the first segment value of the high-bit bit is extracted.
  • the first segment value and the second segment value are summed to obtain a first segment of the second intermediate result of the third modulus space.
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • the multiplication result is regarded as data in the absolute value system of the public data, and is performed based on the first fragment of the multiplication result owned by the party and the second fragment of the multiplication result of the second party. Safe comparison operation to obtain the comparison result of whether the multiplication result is greater than or equal to the first modulus;
  • the comparison result is that the multiplication result is less than the first modulus, extract the first segment value of the low-order first modulus bit of the first slice of the multiplication result, and use the first segment value as the first slice of the second intermediate result of the third modulus space;
  • the comparison result is that the multiplication result is greater than or equal to the first modulus, extract the second segment value of the high-order first modulus bit of the first segment of the multiplication result, and convert the second segment value into The value serves as the first slice of the second intermediate result of the third modulus space.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by
  • the d2th power of n is fragmented in the target modulus space
  • the private data is not an integer
  • the public data is expressed in the form of n raised to the kth power
  • the minimum value of the target product of k and the private data is u
  • its maximum value is v
  • u and v are both integers
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product minus u and then multiplied by n raised to the d3' power;
  • the first modulus is h0 multiplied by n raised to the d3' power, h0 is based on d2, u, v, d2' And t2 determines that d3' is greater than d3, d2' is greater than d2.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by
  • the d2th power of n is fragmented in the target modulus space
  • the private data is not an integer
  • the public data is expressed in the form of n raised to the kth power
  • the minimum value of the target product of k and the private data is u
  • its maximum value is v
  • u and v are both integers and u is greater than or equal to 0
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product multiplied by n raised to the d3' power;
  • the first module is h0 multiplied by n raised to the d3' power, h0 is determined based on d2, u, v, d2' and t2 , d3′ is greater than d3, d2′ is greater than d2.
  • the first multiplier constructed in the second modulus space includes:
  • the first power value as the exponent perform a power operation, and then round to an integer to obtain the first multiplier in the second modulus space; the second modulus corresponding to the second modulus space is with n as the base
  • the result of local power operation with 2 times h0 as the exponent.
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the multiplication result is regarded as n-ary data, and the first fragment of the multiplication result is multiplied by the amplification term to obtain the first fragment of the second intermediate result;
  • the amplification term is based on n as the base and 2 (v-u+d4) is the result of the local power operation of the exponent; among them, d4 is determined based on d2, v, d2';
  • the first segment value of the h0 bit with a non-0 bit low bit or extract the second segment value of the h0 bit with a non-0 bit high bit, to Determine the first fragment of the third intermediate result of the third modulus space;
  • the third modulus corresponding to the third modulus space is h0 power of 2;
  • determining the first slice of the third intermediate result of the third modulus space includes:
  • the multiplication result is regarded as n-ary data, and for the first fragment of the second intermediate result, the first segment value of the low-order h0 bit is extracted, and the second segment of the high-order h0 bit is extracted. numerical value;
  • the first segment value and the second segment value are summed to obtain a first segment of the third intermediate result of the third modulus space.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by
  • the d2 power of n is fragmented in the target modulus space
  • the private data is an integer
  • the absolute value of the public data is expressed as the k power form of n
  • the minimum value of the target product of k and the private data is u
  • its maximum value is v
  • u and v are both integers
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product minus u and then multiplied by n raised to the d3' power;
  • the first modulus is h0 multiplied by n raised to the d3' power, h0 is based on d2, u, v, d2' And t2 determines that d3' is greater than d3, d2' is greater than d2.
  • the local fragments are fragments of the private data multiplied by n raised to the d1th power in the initial modulus space, and the result fragments are the power operation results multiplied by
  • the d2 power of n is a fragment of the target modulus space
  • the private data is an integer
  • the absolute value of the public data is expressed as the k power form of n
  • the minimum value of the target product of k and the private data is u
  • its maximum value is v
  • both u and v are integers and u is greater than or equal to 0
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power ;
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product multiplied by n raised to the d3' power;
  • the first module is h0 multiplied by n raised to the d3' power, h0 is determined based on d2, u, v, d2' and t2 , d3′ is greater than d3, d2′ is greater than d2.
  • the first multiplier constructed in the second modulus space includes:
  • the public data is a positive number, determine the first base to be 1; if the public data is a negative number, determine the first base to be -1;
  • the second power value as the exponent, perform power operation, and then round to an integer to obtain the second product term
  • the second modulus corresponding to the second modulus space is the local multiplier with n as the base and 2 times h0 as the exponent. The result of exponentiation.
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the multiplication result is regarded as n-ary data, and the first fragment of the multiplication result is multiplied by the amplification term to obtain the first fragment of the second intermediate result;
  • the amplification term is based on n as the base and 2 (v-u+d4) is the result of the local power operation of the exponent; among them, d4 is determined based on d2, v, d2';
  • the first segment value of the h0 bit with a non-0 bit low bit or extract the second segment value of the h0 bit with a non-0 bit high bit, to Determine the first fragment of the third intermediate result of the third modulus space;
  • the third modulus corresponding to the third modulus space is h0 power of 2;
  • determining the first slice of the third intermediate result of the third modulus space includes:
  • the multiplication result is regarded as n-ary data, and for the first fragment of the second intermediate result, the first segment value of the low-order h0 bit is extracted, and the second segment of the high-order h0 bit is extracted. numerical value;
  • the first segment value and the second segment value are summed to obtain a first segment of the third intermediate result of the third modulus space.
  • a secure processing device for private data is provided.
  • the private data is distributed among the first party and the second party in the form of sum sharing in the initial modulus space.
  • the device is used to obtain the public data as the base and The result of the exponentiation operation using the privacy data as the exponent is fragmented in the target modulus space.
  • the device is provided on the first party and includes:
  • a local calculation unit configured to locally calculate the first data fragment of the first intermediate data in the first module space based on at least the local fragment of the private data; wherein the first intermediate data is a non-negative value, so The first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the second data fragment of the first intermediate data in the first modulus space is held by the second party;
  • a multiplier construction unit configured to construct a first multiplier in the second modulus space based on the local power operation using the first data fragment obtained by the local computing unit as an exponent; the second multiplier corresponding to the second modulus space The modulus is determined based on the first modulus;
  • the safe multiplication unit is used to perform a safe multiplication operation based on the first multiplier obtained by the multiplier construction unit provided by the party and the second multiplier provided by the second party to obtain the first slice of the multiplication result; so The second party obtains the second slice of the multiplication result; wherein the second multiplier is constructed by the second party according to the second data slice it holds; the multiplication result has two options: value;
  • the result conversion unit is used to convert the first fragment of the multiplication result obtained by the safe multiplication unit into the first result fragment of the exponentiation result in the target modulus space; the second party obtains the corresponding third Two result shards.
  • a third aspect provides a computer-readable storage medium on which a computer program is stored.
  • the computer program is executed in a computer, the computer is caused to perform the method of the first aspect.
  • a fourth aspect provides a computing device, including a memory and a processor.
  • the memory stores executable code.
  • the processor executes the executable code, the method of the first aspect is implemented.
  • the private data is distributed between the first party and the second party in the form of sharing in the initial modulus space.
  • This method is used to obtain public data as the base and the private data as the base.
  • the data is the result fragment of the exponent power operation result in the target modulus space.
  • the first party locally calculates the first data fragment of the first intermediate data in the first modulus space based on at least its own fragment of the private data; Wherein, the first intermediate data is a non-negative value, and the first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the first intermediate data is in the first modulus space.
  • the two data fragments are held by the second party; then according to the local power operation with the first data fragment as the exponent, a first multiplier in the second modulus space is constructed; the second modulus space corresponds to The second modulus is determined based on the first modulus; then, a safe multiplication operation is performed based on the first multiplier provided by the party and the second multiplier provided by the second party to obtain the first fraction of the multiplication result.
  • the embodiment of the present specification converts the safe exponentiation operation into a safe multiplication operation by constructing a multiplier, and extracts the exponentiation result from the multiplication result of the safe multiplication operation, thereby realizing safe power operation with low communication volume and Good performance.
  • Figure 1 is a schematic diagram of an implementation scenario of an embodiment disclosed in this specification
  • Figure 2 shows a schematic diagram of a secure multiplication processing process according to one embodiment
  • Figure 3 shows a flow chart of a secure processing method for private data according to one embodiment
  • Figure 4 shows a schematic block diagram of a secure processing device for private data according to one embodiment.
  • FIG 1 is a schematic diagram of an implementation scenario of an embodiment disclosed in this specification.
  • This implementation scenario involves the secure processing of private data, which is distributed between the first party and the second party in the form of sharing in the initial modulus space.
  • the method is used to obtain public data as the base and the private data as the base.
  • the data is the result slice of the exponent power operation result in the target modulus space.
  • the scenario of secure processing of private data involves participant A and participant B, or the first party and the second party, or party A and party B.
  • Each participant can be implemented as any device, platform, server or device cluster with computing and processing capabilities. Both parties must jointly determine the above-mentioned exponentiation results while protecting data privacy, which is specifically achieved by secret sharing.
  • Secret sharing is also called secret partitioning and secret sharing. This cryptography technology was originally used for the management of secret information. Its basic principle is to split the secret into multiple shards (shares) and hand them over to different participants for safekeeping. Only when more than the threshold number of participants merge their respective shards can the secret be recovered; no information about the secret can be recovered from less than the threshold number of shards. In multi-party security computations, the number of thresholds is usually the same as the number of participants.
  • shard conversion shared conversion
  • Party A holds a slice of x ⁇ x> 0
  • Party B holds another slice of x ⁇ x> 1.
  • round can be regarded as a rounding function, which is used to round the value according to the specified number of digits, which can also be called rounding.
  • Slices ⁇ x> 0 and ⁇ x> 1 are integers, in the modulo n t1 space, which is the initial modulus space.
  • n is related to the base system used. In the usual binary representation method, the value of n is 2, and in the decimal representation method, the value of n is 10. In the following examples of the embodiments of this specification, the value of n is usually 2 for explanation.
  • a is public data, that is to say, both Party A and Party B know the value of a.
  • the slices ⁇ y> 0 and ⁇ y> 1 are integers, in the modulo n t2 space, which is the target modulus space. It is understandable that the shards in secret sharing must be integers, and secret sharing can only operate on integers. If the integer part of a number is much smaller or much larger than the modulus bit, it must be multiplied by a power of n.
  • the range of z supported in secure multi-party computation is [u, v]. Both u and v are integers. If z ⁇ u, the result is 0; if z>v, the result overflows or the intermediate operation will overflow.
  • the precision of z supported in secure multiparty computation is d3 decimal places.
  • private data can be any data that is not convenient for disclosure, and can be but is not limited to data representing the user's personal information, or business secrets, etc.
  • the exponentiation result is obtained based on secure multiplication under secret sharing, thereby enabling secure exponentiation with low communication volume and good performance.
  • FIG. 2 shows a schematic diagram of a secure multiplication processing process according to one embodiment.
  • b and c are two data that require privacy protection.
  • the first party has a fragment b0 of b and a fragment c0 of c
  • the second party has another fragment of b.
  • Slice b1 and another slice c1 of c need to obtain the product bc of the two data, so that the first party obtains one slice of the product, and the second party obtains another slice of the product.
  • the second party locally calculates a fragment c1 of c held by itself and a
  • u is the first random number generated by a third party
  • u0 is the first fragment of the first random number
  • u1 is the second fragment of the first random number
  • v is the second random number generated by the third party
  • v0 is The first fragment of the second random number
  • v1 is the second fragment of the second random number.
  • Figure 3 shows a flow chart of a secure processing method for private data according to one embodiment.
  • the method can be based on the implementation scenario shown in Figure 1 and the secure multiplication processing process shown in Figure 2.
  • the private data is in the initial modulus space.
  • the method is distributed among the first party and the second party in the form of sum sharing.
  • the method is used to obtain the result fragmentation of the power operation result in the target modulus space with the public data as the base and the private data as the exponent. It is executed by the first party. It can be understood that the first party and the second party need to cooperate during the execution of this method. Since the processing processes of the two are similar, the description of the processing process of one of them will be focused on.
  • the secure processing method of private data in this embodiment includes the following steps:
  • step 31 locally calculate the first data fragment of the first intermediate data in the first module space based on at least the local fragment of the private data; wherein the first intermediate data is a non-negative value, and the first intermediate data is a non-negative value.
  • the first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the second data fragment of the first intermediate data in the first modulus space is held by the second party.
  • the private data is an index, and this step transforms the index in the fragmented state, including transforming the module of its fragments, and transforming it from fragments of the initial modulus space to fragments of the first modulus space. ; It also includes transforming it into a non-negative value, so that the sum of the first data fragment and the second data fragment is equal to the first intermediate data, or equal to the sum of the first intermediate data and the first modulus.
  • a first multiplier in the second modulus space is constructed based on the local power operation with the first data slice as the exponent; the second modulus corresponding to the second modulus space is based on the first determined by the modulus. It can be understood that the first party constructs the first multiplier, and the second party constructs the second multiplier, so that the product of the first multiplier and the second multiplier contains information on the aforementioned exponentiation result.
  • step 33 a safe multiplication operation is performed based on the first multiplier provided by the party and the second multiplier provided by the second party to obtain the first slice of the multiplication result; the second party obtains the The second fragment of the multiplication result; wherein the second multiplier is constructed by the second party according to the second data fragment held by it; the multiplication result has two values. It can be understood that since the sum of the first data fragment and the second data fragment is equal to the first intermediate data, or equal to the sum of the first intermediate data and the first modulus, the multiplication result has two values.
  • the aforementioned second modulus is selected such that the non-0 bit of the multiplication result is in the first modulus bit of the low bit, or in the first modulus bit of the high bit.
  • step 34 the first fragment of the multiplication result is converted into the first result fragment of the exponentiation result in the target modulus space; the second party obtains the corresponding second result fragment. It can be understood that since the multiplication result has two values, the above conversion includes determining the unique value of the exponentiation result through the above two values, and also involves modulus conversion.
  • the private data is distributed among the first party and the second party in the form of sum sharing in the initial modulus space.
  • This method is used to obtain the public data as the base and the private data as The exponent power operation result is fragmented in the target modulus space.
  • the first party locally calculates the first data fragment of the first intermediate data in the first modulus space based on at least its own fragmentation of the private data; wherein, The first intermediate data is a non-negative value, and the first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the first intermediate data is in the second data of the first modulus space.
  • the fragments are held by the second party; then according to the local power operation with the first data fragment as the exponent, the first multiplier in the second modulus space is constructed; the second modulus corresponding to the second modulus space
  • the modulus is determined based on the first modulus; then, a safe multiplication operation is performed based on the first multiplier provided by the party and the second multiplier provided by the second party to obtain the first slice of the multiplication result;
  • the second party obtains a second slice of the multiplication result; wherein the second multiplier is constructed by the second party according to the second data slice it holds; the multiplication result has two Get the value; finally, convert the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space; the second party obtains the corresponding second result slice.
  • the embodiment of the present specification converts the safe exponentiation operation into a safe multiplication operation by constructing a multiplier, and extracts the exponentiation result from the multiplication result of the safe multiplication operation, thereby realizing safe exponentiation operation with low communication volume and Good performance.
  • a represents public data and x represents private data.
  • x represents private data.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space.
  • the absolute value of the public data is expressed as the k power form of n. Both k and the private data are integers.
  • the minimum value of the target product of k and the private data is u, u is an integer, and the modulus value of the target modulus space is n raised to the t2 power;
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first modulus space is locally calculated; the first intermediate data is the target product subtract u from the result; the first modulus is the larger of 0 and -d2-u plus t2.
  • a x is converted to the base 2 exponential operation sign(a) x ⁇ 2 kx .
  • a sign(a) ⁇ 2k .
  • Another z kx.
  • the range of z is [u,v].
  • c is the first intermediate data and h0 is the first modulus.
  • the floor function is used to round down, that is, to return the largest integer that is not greater than the specified expression.
  • the ceil function rounds up, that is, returns the smallest integer that is greater than or equal to the specified expression.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space.
  • the absolute value of the public data is expressed as the k power form of n. Both k and the private data are integers.
  • the minimum value of the target product of k and the private data is u, u is an integer and u is greater than or equal to 0, and the modulus value of the target modulus space is n raised to the t2 power;
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first modulus space is locally calculated; the first intermediate data is the target product The result; the first modulus is the larger of 0 and -d2 plus t2.
  • the first multiplier constructed in the second modulus space includes:
  • the public data is a positive number, determine the first base to be 1; if the public data is a negative number, determine the first base to be -1;
  • the second modulus corresponding to the second modulus space is the base n and the first modulus
  • first-party computing second party calculation If a is a positive number, sign(a) is 1, and It can be omitted. If a is a negative number, sign(a) is -1.
  • w0 is the first multiplier
  • w1 is the second multiplier
  • 2 h2 is the second modulus.
  • h2 2h0.
  • b is the result of multiplication, and
  • the first party gets the first fragment of the multiplication result, which is marked as ⁇ b> 0 ; the second party gets the second fragment of the multiplication result, which is marked as ⁇ b> 1 .
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the multiplication result is regarded as n-ary data, and for the first fragment of the multiplication result, the first segment value of the first modulus bit of the low-order bit that is non-0 is extracted, or the first segment value is extracted that is non-0. a second segment value of the first modulus bit of the high-order bit of the bit to determine the first segment of the second intermediate result of the third modulus space;
  • the first slice of the second intermediate result is multiplied by n raised to the power of d2+u, and then rounded to an integer to obtain the first result slice of the exponentiation result in the target modulus space.
  • b′ is the second intermediate result. The first party holds one shard of b′ ⁇ b′> 0 , and the second party holds another shard of b′ ⁇ b′> 1 .
  • the approximation algorithm can be used to make b′ approximately equal to sign(a) x 2 kx-u , or the exact algorithm can be used to make b′ exactly equal to sign(a) x 2 kx-u .
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • Treat the multiplication result as n-ary data extract the first segment value of the first modulus bit of the low-order bit for the first fragment of the multiplication result, and extract the first modulus bit of the high-order bit.
  • Second segment value
  • the first segment value and the second segment value are summed to obtain a first segment of the second intermediate result of the third modulus space.
  • This example belongs to the approximation algorithm.
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • the multiplication result is regarded as n-ary data, and a safe comparison operation is performed based on the first fragment of the multiplication result owned by the local party and the second fragment of the multiplication result of the second party to obtain the result.
  • the comparison result is that the multiplication result is less than the first modulus, extract the first segment value of the low-order first modulus bit of the first slice of the multiplication result, and use the first segment value as the first slice of the second intermediate result of the third modulus space;
  • the comparison result is that the multiplication result is greater than or equal to the first modulus, extract the second segment value of the high-order first modulus bit of the first segment of the multiplication result, and convert the second segment value into The value serves as the first slice of the second intermediate result of the third modulus space.
  • This example belongs to the exact algorithm.
  • Each party obtains a fragment of the comparison result e, and performs the following two based on the comparison result e. Safely select the protocol and get:
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space
  • the public data and the private data are both integers
  • the minimum value of the private data is u'
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first module space is locally calculated; the first intermediate data is the private data minus u'; the first modulus is determined based on n raised to the d2 power, the absolute value of the public data and n raised to the t2 power.
  • the value range of x is [u′,v′].
  • c is the first intermediate data and h0 is the first modulus.
  • h0 is the first modulus. The value of h0 is related to the subsequent processing, so it will be introduced later.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the public data and the private data are both integers
  • the private data The minimum value of is u′ and u′ is greater than or equal to 0;
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data fragment of the first intermediate data in the first modulus space is locally calculated; the first intermediate data is the private data.
  • the first multiplier constructed in the second modulus space includes:
  • the public data is a positive number, determine the first base to be 1; if the public data is a negative number, determine the first base to be -1;
  • the second modulus corresponding to the second modulus space is based on the absolute value of the public data as the base. Twice the first modulus is the result of the local power operation of the exponent.
  • first-party computing second party calculation If a is a positive number, sign(a) is 1, and It can be omitted. If a is a negative number, sign(a) is -1.
  • w0 is the first multiplier
  • w1 is the second multiplier
  • h2 is the second modulus.
  • h2 2h0.
  • b is the result of multiplication.
  • base system
  • the first party gets the first fragment of the multiplication result, which is marked as ⁇ b> 0 ; the second party gets the second fragment of the multiplication result, which is marked as ⁇ b> 1 .
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the modulus is the result of a local power operation with the absolute value of the public data as the base and the first modulus as the exponent;
  • the scaling term is the value obtained by multiplying n raised to the d2 power by the third modulus divided by n raised to the t2 power, and then rounded;
  • xu′+h0 . It is necessary to obtain b′ sign(a ) x
  • b′ is the second intermediate result.
  • the first party holds one shard of b′ ⁇ b′> 0
  • the second party holds another shard of b′ ⁇ b′> 1 .
  • Both parties safely calculate b′′ b′ ⁇
  • b′′ is the third intermediate result.
  • the first party holds one shard of b′′, ⁇ b′′> 0
  • the second party holds another shard of b′′, ⁇ b′′> 1 .
  • h0 should be large enough so that there will be no overflow when calculating b′′.
  • h0 ⁇ 2 t2 is sufficient.
  • the approximation algorithm can be used to make b′ approximately equal to sign(a) x
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • the multiplication result is regarded as data in the absolute value system of the public data.
  • the first segment value of the first modulus bit of the low-order bit is extracted, and the first segment value of the high-bit bit is extracted.
  • the first segment value and the second segment value are summed to obtain a first segment of the second intermediate result of the third modulus space.
  • This example belongs to the approximation algorithm.
  • determining the first slice of the second intermediate result of the third modulus space includes:
  • the multiplication result is regarded as data in the absolute value system of the public data, and is performed based on the first fragment of the multiplication result owned by the party and the second fragment of the multiplication result of the second party. Safe comparison operation to obtain the comparison result of whether the multiplication result is greater than or equal to the first modulus;
  • the comparison result is that the multiplication result is less than the first modulus, extract the first segment value of the low-order first modulus bit of the first slice of the multiplication result, and use the first segment value as the first slice of the second intermediate result of the third modulus space;
  • the comparison result is that the multiplication result is greater than or equal to the first modulus, extract the second segment value of the high-order first modulus bit of the first segment of the multiplication result, and convert the second segment value into The value serves as the first slice of the second intermediate result of the third modulus space.
  • This example belongs to the exact algorithm.
  • Each party obtains a fragment of the comparison result e, and performs the following two based on the comparison result e. Safe choice, get:
  • b′ b%
  • h0 sign(a) x
  • h0 ); ⁇ b′> 1 ceil( ⁇ b> 1 /
  • h0 ). Therefore b′ sign(a) x
  • the sign of a is non-negative.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space
  • the private data is not an integer
  • the public data is expressed as the k power form of n
  • the minimum value of the target product of k and the private data is u
  • its maximum value is v
  • u and v are both integers
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product minus u and then multiplied by n raised to the d3' power;
  • the first modulus is h0 multiplied by n raised to the d3' power, h0 is based on d2, u, v, d2' And t2 determines that d3' is greater than d3, d2' is greater than d2.
  • a x is converted to the base 2 exponential operation sign(a) x ⁇ 2 kx .
  • a sign(a) ⁇ 2k .
  • Another z kx.
  • the range of z is [u,v].
  • ⁇ c> 0 + ⁇ c> 1 )/2 d3′ c/2 d3′ or (c+h1)/2 d3′ ⁇ kx-u or kx-u+h0.
  • c is the first intermediate data and h1 is the first modulus.
  • h1 is the first modulus.
  • h1 h0 ⁇ 2 d3′ . If k is a decimal or d3′-d1 ⁇ 0, a certain error will be introduced, and the value of d3′ can be slightly increased to reduce the impact.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space
  • the private data is not an integer
  • the public data is expressed as the k power form of n
  • the minimum value of the target product of k and the private data is u
  • its maximum value is v
  • u and v are both integers and u is greater than or equal to 0
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product multiplied by n raised to the d3' power;
  • the first module is h0 multiplied by n raised to the d3' power, h0 is determined based on d2, u, v, d2' and t2 , d3′ is greater than d3, d2′ is greater than d2.
  • the first multiplier constructed in the second modulus space includes:
  • the first power value as the exponent perform a power operation, and then round to an integer to obtain the first multiplier in the second modulus space; the second modulus corresponding to the second modulus space is with n as the base
  • the result of local power operation with 2 times h0 as the exponent.
  • first-party computing And the number of significant digits does not exceed v-u+d4. If it exceeds, the excess mantissa will be rounded off and set to 0; the second party calculates And its effective digits should not exceed v-u+d4. If it exceeds, the excess mantissa will be rounded off and set to 0.
  • w0 is the first multiplier
  • w1 is the second multiplier
  • 2 h2 is the second modulus.
  • h2 2h0.
  • the safe multiplication operation in step 33 is the safe calculation of both parties. Or 2kx-u+2d4+h0 .
  • b is the result of multiplication.
  • the first party gets the first fragment of the multiplication result, which is marked as ⁇ b> 0 ; the second party gets the second fragment of the multiplication result, which is marked as ⁇ b> 1 .
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the multiplication result is regarded as n-ary data, and the first fragment of the multiplication result is multiplied by the amplification term to obtain the first fragment of the second intermediate result;
  • the amplification term is based on n as the base and 2 (v-u+d4) is the result of the local power operation of the exponent; among them, d4 is determined based on d2, v, d2';
  • the first segment value of the h0 bit with a non-0 bit low bit or extract the second segment value of the h0 bit with a non-0 bit high bit, to Determine the first fragment of the third intermediate result of the third modulus space;
  • the third modulus corresponding to the third modulus space is h0 power of 2;
  • the first party holds one shard of b′ ⁇ b′> 0
  • the second party holds another shard of b′ ⁇ b′> 1 .
  • the valid digits of b′ are at most 2(v-u+d4)-1, and they are all located in the low h0 bits or the high h0 bits.
  • b′′ is the third intermediate result.
  • the first party holds one shard of b′′, ⁇ b′′> 0
  • the second party holds another shard of b′′, ⁇ b′′> 1 .
  • b′′ can be approximately equal to 2 kx-3u+4d4+2v through an approximation algorithm.
  • determining the first slice of the third intermediate result of the third modulus space includes:
  • the multiplication result is regarded as n-ary data, and for the first fragment of the second intermediate result, the first segment value of the low-order h0 bit is extracted, and the second segment of the high-order h0 bit is extracted. numerical value;
  • the first segment value and the second segment value are summed to obtain a first segment of the third intermediate result of the third modulus space.
  • case four is similar to that of case three, except that the sign processing is added. If the sign of a is positive, there is no need to process the sign.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space
  • the private data is an integer
  • the absolute value of the public data is expressed as the k power form of n
  • the minimum value of the target product of k and the private data is u
  • the maximum value is v, u and v are both integers
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product minus u and then multiplied by n raised to the d3' power;
  • the first modulus is h0 multiplied by n raised to the d3' power, h0 is based on d2, u, v, d2' And t2 determines that d3' is greater than d3, d2' is greater than d2.
  • a x is converted to the base 2 exponential operation sign(a) x ⁇ 2 kx .
  • a sign(a) ⁇ 2k .
  • Another z kx.
  • the range of z is [u,v].
  • ⁇ c> 0 + ⁇ c> 1 )/2 d3′ c/2 d3′ or (c+h1)/2 d3′ ⁇ kx-u or kx-u+h0.
  • c is the first intermediate data and h1 is the first modulus.
  • h1 is the first modulus.
  • h1 h0 ⁇ 2 d3′ . If k is a decimal or d3′-d1 ⁇ 0, a certain error will be introduced, and the value of d3′ can be slightly increased to reduce the impact.
  • the local fragment is the fragment of the private data multiplied by n raised to the power of d1 in the initial modulus space
  • the result fragment is the result of the exponentiation multiplied by n raised to the power of d2
  • the power is in the fragmentation of the target modulus space
  • the private data is an integer
  • the absolute value of the public data is expressed as the k power form of n
  • the minimum value of the target product of k and the private data is u
  • the maximum value is v
  • both u and v are integers and u is greater than or equal to 0.
  • the supported precision of the target product is d3 digits after the decimal point
  • the modulus value of the target modulus space is n raised to the t2 power
  • the local calculation of the first data fragment of the first intermediate data in the first modulus space includes:
  • the first data slice of the first intermediate data in the first modulus space is calculated locally ;
  • the first intermediate data is the result of the target product multiplied by n raised to the d3' power;
  • the first module is h0 multiplied by n raised to the d3' power, h0 is determined based on d2, u, v, d2' and t2 , d3′ is greater than d3, d2′ is greater than d2.
  • the first multiplier constructed in the second modulus space includes:
  • the public data is a positive number, determine the first base to be 1; if the public data is a negative number, determine the first base to be -1;
  • the second power value as the exponent, perform power operation, and then round to an integer to obtain the second product term
  • the second modulus corresponding to the second modulus space is the local multiplier with n as the base and 2 times h0 as the exponent. The result of exponentiation.
  • first-party computing And the number of significant digits does not exceed v-u+d4. If it exceeds, the excess mantissa will be rounded off and removed; the second party calculates And the number of significant digits should not exceed v-u+d4. If it exceeds, the excess mantissa will be rounded off and removed.
  • w0 is the first multiplier
  • w1 is the second multiplier
  • 2 h2 is the second modulus.
  • h2 2h0.
  • the safe multiplication operation in step 33 is the safe calculation of both parties. If d1 ⁇ 0, then ( ⁇ x> 0 + ⁇ x> 1 )/2 the parity of d1 and x is the same, there is therefore,
  • b is the result of multiplication.
  • the first party gets the first fragment of the multiplication result, which is marked as ⁇ b> 0 ; the second party gets the second fragment of the multiplication result, which is marked as ⁇ b> 1 .
  • the result y requires scaling 2 d2 times before splitting the shards.
  • converting the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space includes:
  • the multiplication result is regarded as n-ary data, and the first fragment of the multiplication result is multiplied by the amplification term to obtain the first fragment of the second intermediate result;
  • the amplification term is based on n as the base and 2 (v-u+d4) is the result of the local power operation of the exponent; among them, d4 is determined based on d2, v, d2';
  • the first segment value of the h0 bit with a non-0 bit low bit or extract the second segment value of the h0 bit with a non-0 bit high bit, to Determine the first fragment of the third intermediate result of the third modulus space;
  • the third modulus corresponding to the third modulus space is h0 power of 2;
  • b′ is the second intermediate result. The first party holds one shard of b′ ⁇ b′> 0 , and the second party holds another shard of b′ ⁇ b′> 1 . The valid digits of b′ are at most 2(v-u+d4)-1, and they are all located in the low h0 bits or the high h0 bits.
  • b′′ is the third intermediate result.
  • the first party holds one shard of b′′, ⁇ b′′> 0
  • the second party holds another shard of b′′, ⁇ b′′> 1 .
  • the approximation algorithm can be used to make b′′ approximately equal to sign(a) x 2 kx-3u+4d4+2v .
  • determining the first slice of the third intermediate result of the third modulus space includes:
  • the multiplication result is regarded as n-ary data, and for the first fragment of the second intermediate result, the first segment value of the low-order h0 bit is extracted, and the second segment of the high-order h0 bit is extracted. numerical value;
  • the first segment value and the second segment value are summed to obtain a first segment of the third intermediate result of the third modulus space.
  • the private data is distributed among the first party and the second party in the form of sum sharing in the initial modulus space.
  • This method is used to obtain the public data as the base and the private data as The exponent power operation result is fragmented in the target modulus space.
  • the first party locally calculates the first data fragment of the first intermediate data in the first modulus space based on at least its own fragmentation of the private data; wherein, The first intermediate data is a non-negative value, and the first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the first intermediate data is in the second data of the first modulus space.
  • the fragments are held by the second party; then according to the local power operation with the first data fragment as the exponent, the first multiplier in the second modulus space is constructed; the second modulus corresponding to the second modulus space
  • the modulus is determined based on the first modulus; then, a safe multiplication operation is performed based on the first multiplier provided by the party and the second multiplier provided by the second party to obtain the first slice of the multiplication result;
  • the second party obtains a second slice of the multiplication result; wherein the second multiplier is constructed by the second party according to the second data slice it holds; the multiplication result has two Get the value; finally, convert the first slice of the multiplication result into the first result slice of the exponentiation result in the target modulus space; the second party obtains the corresponding second result slice.
  • the embodiment of the present specification converts the safe exponentiation operation into a safe multiplication operation by constructing a multiplier, and extracts the exponentiation result from the multiplication result of the safe multiplication operation, thereby realizing safe exponentiation operation with low communication volume and Good performance.
  • a secure processing device for private data is also provided.
  • the device is used to perform the method provided by the embodiment shown in Figure 3 of this specification.
  • the private data is in the form of and shared in the initial template space.
  • the device is used to obtain the result fragmentation of the power operation result in the target modulus space with the public data as the base and the private data as the exponent.
  • the device is arranged on the first party .
  • Figure 4 shows a schematic block diagram of a secure processing device for private data according to one embodiment. As shown in Figure 4, the system 400 includes:
  • the local calculation unit 41 is configured to locally calculate the first data fragment of the first intermediate data in the first modulus space based on at least the local fragment of the private data; wherein the first intermediate data is a non-negative value, The first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the second data fragment of the first intermediate data in the first modulus space is held by the second party;
  • the multiplier construction unit 42 is used to construct the first multiplier in the second modulus space according to the local power operation using the first data fragment obtained by the local computing unit 41 as the exponent; the second modulus space corresponds to a second modulus determined based on the first modulus;
  • the safe multiplication unit 43 is used to perform a safe multiplication operation based on the first multiplier obtained by the multiplier construction unit 42 provided by the party and the second multiplier provided by the second party, and obtain the first slice of the multiplication result. ;
  • the second party obtains the second fragment of the multiplication result; wherein the second multiplier is constructed by the second party according to the second data fragment held by it; the multiplication result has two kind of value;
  • the result conversion unit 44 is used to convert the first slice of the multiplication result obtained by the safe multiplication unit 43 into the first result slice of the exponentiation result in the target modulus space; the second party obtains the corresponding The second result shard.
  • the local fragment is the fragment of the private data multiplied by the d1 power of n in the initial modulus space
  • the result fragment is the power operation result multiplied by The d2th power of n is fragmented in the target modulus space.
  • the absolute value of the public data is expressed as the kth power of n. Both k and the private data are integers.
  • the target product of k and the private data is The minimum value of is u, u is an integer, and the modulus value of the target modulus space is n raised to the t2 power;
  • the local calculation unit 41 is specifically configured to locally calculate the first data of the first intermediate data in the first modulus space based on the product of the local slice and k divided by the d1 power of n, and then rounded down. Fragmentation; the first intermediate data is the result of the target product minus u; the first modulus is the larger value of 0 and -d2-u plus t2.
  • the local fragment is the fragment of the private data multiplied by the d1 power of n in the initial modulus space
  • the result fragment is the power operation result multiplied by The d2th power of n is fragmented in the target modulus space.
  • the absolute value of the public data is expressed as the kth power of n. Both k and the private data are integers.
  • the target product of k and the private data is The minimum value of is u, u is an integer and u is greater than or equal to 0, and the modulus value of the target modulus space is n raised to the t2 power;
  • the local calculation unit 41 is specifically configured to locally calculate the first data of the first intermediate data in the first modulus space based on the product of the local slice and k divided by the d1 power of n, and then rounded down. Fragmentation; the first intermediate data is the result of the target product; the first modulus is the larger value of 0 and -d2 plus t2.
  • multiplier construction unit 42 includes:
  • the first determination subunit is used to determine the first base to be 1 if the public data is a positive number, and to determine the first base to be -1 if the public data is a negative number;
  • the second determination subunit is used to divide the local fragment by the d1 power of n, and then round down to an integer to determine the first power value;
  • the first power operation subunit is used to perform power operation using the first base obtained by the first determination subunit as the base and the first power value obtained by the second determination subunit as the exponent to obtain the first product term. ;
  • the second power operation subunit is used to perform power operation with n as the base and the first data slice as the exponent to obtain the second product term;
  • a multiplication subunit used to multiply the first product term obtained by the first exponentiation subunit and the second product term obtained by the second exponentiation subunit to obtain the first multiplier in the second modulus space.
  • the second modulus corresponding to the second modulus space is the result of a local power operation with n as the base and 2 times the first modulus as the exponent.
  • the result conversion unit 44 includes:
  • the conversion subunit is used to multiply the first slice of the second intermediate result obtained by the determination subunit by n raised to the d2+u power, and then round it to an integer to obtain the power operation result in the target module.
  • the first resulting shard of space is used to multiply the first slice of the second intermediate result obtained by the determination subunit by n raised to the d2+u power, and then round it to an integer to obtain the power operation result in the target module.
  • determining subunit is specifically used for:
  • Treat the multiplication result as n-ary data extract the first segment value of the first modulus bit of the low-order bit for the first fragment of the multiplication result, and extract the first modulus bit of the high-order bit.
  • Second segment value
  • the first segment value and the second segment value are summed to obtain a first segment of the second intermediate result of the third modulus space.
  • determining subunit is specifically used for:
  • the multiplication result is regarded as n-ary data, and a safe comparison operation is performed based on the first fragment of the multiplication result owned by the local party and the second fragment of the multiplication result of the second party to obtain the result.
  • the comparison result is that the multiplication result is less than the first modulus, extract the first segment value of the low-order first modulus bit of the first slice of the multiplication result, and use the first segment value as the first slice of the second intermediate result of the third modulus space;
  • the comparison result is that the multiplication result is greater than or equal to the first modulus, extract the second segment value of the high-order first modulus bit of the first segment of the multiplication result, and convert the second segment value into The value serves as the first slice of the second intermediate result of the third modulus space.
  • the private data is distributed among the first party and the second party in the form of sharing in the initial modulus space.
  • This method is used to obtain the public data as the base and the private data as The exponent power operation result is fragmented in the target modulus space.
  • the local computing unit 41 of the first party locally calculates the first data of the first intermediate data in the first modulus space based on at least its own fragmentation of the private data.
  • the first intermediate data is a non-negative value, and the first modulus corresponding to the first modulus space is determined according to the modulus value of the target modulus space; the first intermediate data is in the first modulus
  • the second data fragment of the space is held by the second party; then the multiplier construction unit 42 constructs the first multiplier in the second modulus space according to the local power operation with the first data fragment as the exponent; The second modulus corresponding to the second modulus space is determined based on the first modulus; then the safe multiplication unit 43 uses the first multiplier provided by the first party and the second multiplier provided by the second party, Perform a safe multiplication operation to obtain the first slice of the multiplication result; the second party obtains the second slice of the multiplication result; wherein the second multiplier is determined by the second party according to the first slice it holds.
  • the embodiment of the present specification converts the safe exponentiation operation into a safe multiplication operation by constructing a multiplier, and extracts the exponentiation result from the multiplication result of the safe multiplication operation, thereby realizing safe exponentiation operation with low communication volume and Good performance.
  • a computer-readable storage medium is also provided, a computer program is stored thereon, and when the computer program is executed in a computer, the computer is caused to perform the method described in conjunction with FIG. 3 .
  • a computing device including a memory and a processor, executable code is stored in the memory, and when the processor executes the executable code, the method described in conjunction with FIG. 3 is implemented. method.
  • the functions described in the present invention can be implemented by hardware, software, firmware or any combination thereof.
  • the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本说明书实施例提供一种隐私数据的安全处理方法和装置。方法包括:第一方至少基于隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为非负值;第一中间数据在第一模空间的第二数据分片由第二方持有;根据以第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;根据本方提供的第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;第二方得到乘法结果的第二分片;第二乘数由第二方根据其持有的第二数据分片而构建;将乘法结果的第一分片转换为幂运算结果在目标模空间的第一结果分片;第二方获得对应的第二结果分片。能够实现安全幂运算,并且通信量低、性能佳。

Description

隐私数据的安全处理方法和装置
本申请要求于2022年06月30日提交中国国家知识产权局、申请号为202210762917.X、申请名称为“隐私数据的安全处理方法和装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及隐私数据的安全处理方法和装置。
背景技术
安全多方计算又称为多方安全计算,即多方共同计算出一个函数的结果,而不泄露这个函数各方的输入数据,计算的结果公开给其中的一方或多方。其中,各方的输入数据常常为隐私数据。
在安全多方计算中,有时需要进行安全幂运算,即在不泄露隐私数据的情况下,针对隐私数据进行幂运算,现有技术中,安全幂运算的方案通信量非常大、性能较差。
发明内容
本说明书一个或多个实施例描述了一种隐私数据的安全处理方法和装置,能够实现安全幂运算,并且通信量低、性能佳。
第一方面,提供了一种隐私数据的安全处理方法,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,该方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,该方法由第一方执行,包括:
至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;
根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;
根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;
将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u;所述第一模数为0和-d2-u中的较大数值加上t2。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数且u大于或等于0,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果;所述第一模数为0和-d2中的较大数值加上t2。
进一步地,所述构建在第二模空间的第一乘数,包括:
若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
以n为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
将第一乘积项与第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以所述第一模数的2倍为指数的本地幂运算结果。
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;
将所述第二中间结果的第一分片乘以n的d2+u次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一 分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据和所述隐私数据均为整数,所述隐私数据的最小值为u',所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为所述隐私数据减去u';所述第一模数根据n的d2次幂、所述公开数据的绝对值和n的t2次幂而确定。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述公开数据和所述隐私数据均为整数,所述隐私数据的最小值为u'且u'大于或等于0;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为所述隐私数据。
进一步地,所述构建在第二模空间的第一乘数,包括:
若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
以所述公开数据的绝对值为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
将第一乘积项与第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以所述公开数据的绝对值为底以所述第一模数的2倍为指数的本地幂运算结果。
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为所述公开数据的绝对值进制下的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;所述第三模空间对应的第三模数为以所述公开数据的绝对值为底以所述第一模数为指数的本地幂运算结果;
将所述第二中间结果的第一分片乘以所述公开数据的绝对值的u'次幂,再乘以缩放项,得到在第三模空间的第三中间结果的第一分片;所述缩放项为n的d2次幂乘以第三模数除以n的t2次幂,再进行四舍五入取整得到的数值;
将所述第三中间结果的第一分片乘以n的t2次幂除以第三模数,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为所述公开数据的绝对值进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为所述公开数据的绝对值进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据不为整数,所述公开数据表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u再乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据不为整数,所述公开数据表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数且u大于或等于0,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
进一步地,所述构建在第二模空间的第一乘数,包括:
以所述本方分片除以n的d3'次幂,加上d4,确定第一幂值;其中,d4根据d2、v、d2'而确定;
以n为底,第一幂值为指数,进行幂运算,再四舍五入取整,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以h0的2倍为指数的本地幂运算 结果。
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为n进制的数据,将所述乘法结果的第一分片乘以放大项,得到第二中间结果的第一分片;所述放大项为以n为底以2(v-u+d4)为指数的本地幂运算结果;其中,d4根据d2、v、d2'而确定;
针对所述第二中间结果的第一分片提取其存在非0位的低位的h0位的第一分段数值,或者提取其存在非0位的高位的h0位的第二分段数值,以确定第三模空间的第三中间结果的第一分片;所述第三模空间对应的第三模数为2的h0次幂;
将所述第三中间结果的第一分片乘以n的d2+3u-4d4-2v次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
进一步地,所述确定第三模空间的第三中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,针对所述第二中间结果的第一分片提取其低位的h0位的第一分段数值,以及提取其高位的h0位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第三中间结果的第一分片。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据为整数,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u再乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
在一种可能的实施方式中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据为整数,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数且u大于或等于0,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
进一步地,所述构建在第二模空间的第一乘数,包括:
若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
以所述本方分片除以n的d3'次幂,加上d4,确定第二幂值;其中,d4根据d2、v、d2'而确定;
以n为底,第二幂值为指数,进行幂运算,再四舍五入取整,得到第二乘积项;
计算第一乘积项乘以第二乘积项,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以h0的2倍为指数的本地幂运算结果。
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为n进制的数据,将所述乘法结果的第一分片乘以放大项,得到第二中间结果的第一分片;所述放大项为以n为底以2(v-u+d4)为指数的本地幂运算结果;其中,d4根据d2、v、d2'而确定;
针对所述第二中间结果的第一分片提取其存在非0位的低位的h0位的第一分段数值,或者提取其存在非0位的高位的h0位的第二分段数值,以确定第三模空间的第三中间结果的第一分片;所述第三模空间对应的第三模数为2的h0次幂;
将所述第三中间结果的第一分片乘以n的d2+3u-4d4-2v次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
进一步地,所述确定第三模空间的第三中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,针对所述第二中间结果的第一分片提取其低位的h0位的第一分段数值,以及提取其高位的h0位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第三中间结果的第一分片。
第二方面,提供了一种隐私数据的安全处理装置,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,该装置用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,该装置设置于第一方,包括:
本地计算单元,用于至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;
乘数构建单元,用于根据以所述本地计算单元得到的第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;
安全乘法单元,用于根据本方提供的所述乘数构建单元得到的第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;
结果转换单元,用于将所述安全乘法单元得到的乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。
第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执 行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
通过本说明书实施例提供的方法和装置,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,该方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,首先第一方至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;然后根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;接着根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;最后将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。由上可见,本说明书实施例,通过构造乘数,将安全幂运算转换为安全乘法运算,从安全乘法运算的乘法结果中提取出幂运算结果,从而能够实现安全幂运算,并且通信量低、性能佳。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2示出根据一个实施例的安全乘法运算处理过程示意图;
图3示出根据一个实施例的隐私数据的安全处理方法流程图;
图4示出根据一个实施例的隐私数据的安全处理装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及隐私数据的安全处理,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,所述方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片。如图1所示,隐私数据的安全处理的场景涉及参与方A和参与方B,或称为第一方和第二方,或称为A方和B方。各个参与方可以实现为任何具有计算、处理能力的设备、平台、服务器或设备集群。双方要在保护数据隐私的情况下,联合确定上述幂运算结果,具体采用秘密分享来实现。
秘密分享(secret sharing)也称为秘密分割、秘密共享,这一密码学技术最初是用于秘密信息的管理。它的基本原理是将秘密拆分成多个分片(share),分别交给不同参与方保管。只有超过门限数量的各参与方将各自的分片合并,才能恢复秘密;从少于门限数量的分片无法恢复秘密的任何信息。多方安全计算中,门限数量通常与参与方数量相同。 秘密分享用于多方安全计算时,采用了分片转换(share conversion)技术:首先,各方的输入数据分别拆分成分片并互相交换分片;然后,各方分别对本地的多个分片进行转换(conversion)运算,各自得到一个新的分片,该分片为运算结果的分片;最后,各方合并所有新的分片,得到运算结果。
参照图1,A方持有x的一个分片<x> 0,B方持有x的另一个分片<x> 1,具体地,A方和B方各自持有x×n d1的模n t1的一个分片,即round(x×n d1)=<x> 0+<x> 1%n t1。可以理解的是,round可看作一个取整函数,作用为按指定的位数对数值进行四舍五入,也可以称为四舍五入取整。分片<x> 0和<x> 1为整数,在模n t1空间,也就是初始模空间。如果x的整数部分远小于或远大于t1位,就要通过乘以一个n d1,以保证取整后的信息不会丢失。其中,n取值与采用的进制有关,通常的二进制表示方法中,n取值为2,十进制表示方法中,n取值为10。本说明书实施例,在后续的举例中,多以n的取值为2为例进行说明。
a为公开数据,也就是说,A方和B方均知晓a的数值。
A方和B方在执行基于秘密分享的安全多方计算之后,A方获得a x的一个分片<a x> 0,B方获得a x的另一个分片<a x> 1,若另y=a x,则A方和B方各自持有y的一个分片,具体地,A方和B方各自持有y×n d2的模n t2的一个分片,即round(y×n d2)=<y> 0+<y> 1%n t2。分片<y> 0和<y> 1为整数,在模n t2空间,也就是目标模空间。可以理解的是,秘密分享中分片必须是整数,秘密分享只能对整数做操作,如果一个数的整数部分远小于或远大于模数位,就要乘以一个n的次幂。
本说明书实施例,在基于秘密分享的安全多方计算中,可以将a x表示为n为底的指数运算,具体地,a x转换为n为底的指数运算sign(a) x×n kx。其中,a=sign(a)×n k。另z=kx。可以理解的是,sign可看作一个符号函数,作用为提取数值的符号,例如,a>0时,sign(a)=1;a=0时,sign(a)=0;a<0时,sign(a)=-1。
安全多方计算中支持的z的范围为[u,v]。u和v均为整数。若z<u,结果为0;若z>v,结果溢出或者中间运算会溢出。安全多方计算中支持的z的精度为小数点后d3位。
可以理解的是,隐私数据可以是任何不便于公开的数据,可以但不限于代表用户的个人信息的数据,或者商业秘密等。
本说明书实施例,基于秘密分享下的安全乘法运算来获得幂运算结果,从而能够实现安全幂运算,并且通信量低、性能佳。
秘密分享下的安全乘法运算已经存在具有较佳性能的实现方案。
图2示出根据一个实施例的安全乘法运算处理过程示意图。参照图2,在安全乘法运算中,b和c为两个需要进行隐私保护的数据,第一方具有b的一个分片b0以及c的一个分片c0,第二方具有b的另一个分片b1以及c的另一个分片c1,需要得到两个数据的乘积bc,使得第一方获得乘积的一个分片,第二方获得乘积的另一个分片。首先第三方将u0、v0、z0发送给第一方,将u1、v1、z1发送给第二方,其中,(u0+u1)×(v0+v1)=(z0+z1);然后第一方根据自己持有的b的一个分片b0,以及从第三方接收的u的一个分片u0,本地计算e0=b0-u0;第一方根据自己持有的c的一个分片c0,以及从第三方接收的v的一个分片v0,本地计算f0=c0-v0;第一方将e0和f0发送给第二方;接着第二方根据自己持有的b的一个分片b1,以及从第三方接收的u的一个分片u1,本地计算e1=b1-u1;第二方根据自己持有的c的一个分片c1,以及从第三方接收的v的一个分片v1,本地计算 f1=c1-v1;第二方将e1和f1发送给第一方;最后第一方和第二方各自本地计算得到e=b-u,f=c-v;第一方本地计算h0=ef+u0f+ev0+z0,将h0作为bc的乘法结果的一个分片;第二方本地计算h1=u1f+ev1+z1,将h1作为bc的乘法结果的一个分片。可以证明h0+h1=ef+uf+ev+uv=(e+u)(f+v)=bc。
其中,u为第三方生成的第一随机数,u0为第一随机数的第一分片,u1为第一随机数的第二分片;v为第三方生成的第二随机数,v0为第二随机数的第一分片,v1为第二随机数的第二分片。
本说明书实施例,在需要进行安全乘法运算时,均可以基于上述处理过程。
图3示出根据一个实施例的隐私数据的安全处理方法流程图,该方法可以基于图1所示的实施场景,以及图2所示的安全乘法运算处理过程,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,所述方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,该方法由第一方执行,可以理解的是,该方法的执行过程中第一方和第二方需要配合执行,由于二者的处理过程类似,因此侧重描述其中一方的处理过程。如图3所示,该实施例中隐私数据的安全处理方法包括以下步骤:
首先在步骤31,至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有。可以理解的是,所述隐私数据为指数,该步骤对分片状态下的指数进行变换,包括变换其分片的模,将其由初始模空间的分片变换为第一模空间的分片;还包括使其变换为非负值,从而满足第一数据分片与第二数据分片之和等于第一中间数据,或者等于第一中间数据与第一模数之和。
然后在步骤32,根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定。可以理解的是,第一方构建第一乘数,第二方构建第二乘数,使得第一乘数和第二乘数的乘积包含前述幂运算结果的信息。
接着在步骤33,根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值。可以理解的是,由于第一数据分片与第二数据分片之和等于第一中间数据,或者等于第一中间数据与第一模数之和,因此所述乘法结果具有两种取值。
其中,前述第二模数的选取使得乘法结果的非0位在低位的第一模数位中,或者在高位的第一模数位中。
最后在步骤34,将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。可以理解的是,由于所述乘法结果具有两种取值,上述转换包括通过上述两种取值确定所述幂运算结果的唯一取值,并且也涉及模数的转换。
通过本说明书实施例提供的方法,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,该方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运 算结果在目标模空间的结果分片,首先第一方至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;然后根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;接着根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;最后将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。由上可见,本说明书实施例,通过构造乘数,将安全幂运算转换为安全乘法运算,从安全乘法运算的乘法结果中提取出幂运算结果,从而能够实现安全幂运算,并且通信量低、性能佳。
参照图1所示的实施场景,a代表公开数据,x代表隐私数据,对于a和x是否为整数,以及当a=sign(a)×n k时k是否为整数,图3所示的各步骤的具体执行方式略有不同。
下面针对几种情况分别描述以上各个步骤的具体执行方式。
情况一:k和x均为整数。
该情况下,a的符号可正可负。若d1>=0,可以从x的分片精确恢复x。若d1<0,无法从x的分片精确恢复x,此时只支持a的符号为正。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u;所述第一模数为0和-d2-u中的较大数值加上t2。
举例来说,a x转换为2为底的指数运算sign(a) x×2 kx。a=sign(a)×2 k。另z=kx。z的范围为[u,v]。第一方和第二方双方安全计算c=kx-u,各获得c的一个模h0的分片。其中,第一方计算<c> 0=floor(k<x> 0/2 d1)%h0,第二方计算<c> 1=ceil(k<x> 1/2 d1-u)%h0,即有c=kx-u,取值范围是[0,v-u],c为非负数。并且有<c> 0+<c> 1=c或c+h0=kx-u或kx-u+h0。
可以理解的是,c为第一中间数据,h0为第一模数。floor函数,作用为向下取整,即返回不大于指定表达式的最大整数。ceil函数,作用为向上取整,即返回大于或等于指定表达式的最小整数。
若d2+u>=0,另h0=t2;否则,另h0=t2-d2-u。即有:h0=t2+max(0,-d2-u)。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数且u大于或等于0,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果;所述第一模数为0和-d2中的较大数值加上t2。
举例来说,若u>=0,则前述c=kx-u可替代为c=kx,其满足c为非负数。
进一步地,所述构建在第二模空间的第一乘数,包括:
若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
以n为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
将第一乘积项与第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以所述第一模数的2倍为指数的本地幂运算结果。
举例来说,第一方计算
Figure PCTCN2022135284-appb-000001
第二方计算
Figure PCTCN2022135284-appb-000002
若a为正数,sign(a)为1,
Figure PCTCN2022135284-appb-000003
Figure PCTCN2022135284-appb-000004
可以省略,若a为负数,sign(a)为-1。
可以理解的是,w0为第一乘数,w1为第二乘数,2 h2为第二模数。其中,令h2=2h0。
本说明书实施例,步骤33的安全乘法运算,就是双方安全计算
Figure PCTCN2022135284-appb-000005
Figure PCTCN2022135284-appb-000006
无论x符号,若d1>=0,则<x> 0+<x> 1/2 d1和x及x%2 h0的奇偶性相同,因此有
Figure PCTCN2022135284-appb-000007
因此,
Figure PCTCN2022135284-appb-000008
可以理解的是,b为乘法结果,|b|只有一个位为1,该位属于低h0位,或者属于高h0位。第一方得到乘法结果的第一分片,记为<b> 0;第二方得到乘法结果的第二分片,记为<b> 1
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;
将所述第二中间结果的第一分片乘以n的d2+u次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
举例来说,乘法结果b具有两种取值,即b=sign(a) x2 kx-u或sign(a) x2 kx-u+h0,需要根据b得到b′=sign(a) x2 kx-u。b′为第二中间结果。第一方持有b′的一个分片<b′> 0,第二方持有b′的另一个分片<b′> 1。第一方计算第一结果分片<y> 0=round(<b′> 0×2 d2+u)%2 t2,第二方计算第二结果分片<y> 1=round(<b′> 1×2 d2+u)%2 t2。其中,+u为可选,如果前述c=kx,则这里<y> 0=round(<b′> 0×2 d2)%2 t2,<y> 1=round(<b′> 1×2 d2)%2 t2
其中,可以通过近似算法使得b′近似等于sign(a) x2 kx-u,也可以通过精确算法使得b′精 确等于sign(a) x2 kx-u
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
该示例属于近似算法。举例来说,第一方计算<b′> 0=<b> 0+round(<b> 0/2 h0)%2 h0,第二方计算<b′> 1=<b> 1+round(<b> 1/2 h0)%2 h0
可以验证的是,若b=sign(a) x2 kx-u,则b%2 h0=sign(a) x2 kx-u且round(<b> 0/2 h0)+round(<b> 1/2 h0)%2 h0≈0;若b=sign(a) x2 kx-u+h0,则b%2 h0=0且round(<b> 0/2 h0)+round(<b> 1/2 h0)%2 h0≈sign(a) x2 kx-u。因此b′≈sign(a) x2 kx-u
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
该示例属于精确算法。举例来说,第一方和第二方双方安全比较e=(<c> 0+<c> 1≥h0),双方各获得比较结果e的一个分片,根据比较结果e进行下面两者的安全选择协议,得到:
若e==0,则b′=b%2 h0=sign(a) x2 kx-u;若e==1,则<b′> 0=floor(<b> 0/2 h0);<b′> 1=ceil(<b> 1/2 h0)。因此b′=sign(a) x2 kx-u
情况二:a和x均为整数。
该情况下,a的符号可正可负。若d1>=0,可以从x的分片精确恢复x。若d1<0,无法从x的分片精确恢复x,此时只支持a的符号为正。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据和所述隐私数据均为整数,所述隐私数据的最小值为u',所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为所述隐私数据减去u';所述第一模数根据n的d2次幂、所述公开数据的绝对值和n的t2次幂而确定。
举例来说,x的取值范围为[u',v']。第一方和第二方双方安全计算c=x-u',各获得c的一个模h0的分片。其中,第一方计算<c> 0=floor(<x> 0/2 d1)%h0,第二方计算<c> 1=ceil(<x> 1/2 d1-u')%h0,即有c=x-u',取值范围是[0,v'-u'],c为非负数。并且有<c> 0+<c> 1=c或c+h0=x-u'或x-u'+h0。
可以理解的是,c为第一中间数据,h0为第一模数。h0的取值与后续的处理过程相关,因此后续进行介绍。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述公开数据和所述隐私数据均为整数,所述隐私数据的最小值为u'且u'大于或等于0;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为所述隐私数据。
举例来说,若u'>=0,则前述c=x-u'可替代为c=x,其满足c为非负数。
进一步地,所述构建在第二模空间的第一乘数,包括:
若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
以所述公开数据的绝对值为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
将第一乘积项与第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以所述公开数据的绝对值为底以所述第一模数的2倍为指数的本地幂运算结果。
举例来说,第一方计算
Figure PCTCN2022135284-appb-000009
第二方计算
Figure PCTCN2022135284-appb-000010
若a为正数,sign(a)为1,
Figure PCTCN2022135284-appb-000011
Figure PCTCN2022135284-appb-000012
可以省略,若a为负数,sign(a)为-1。
可以理解的是,w0为第一乘数,w1为第二乘数,|a| h2为第二模数。其中,令h2=2h0。
本说明书实施例,步骤33的安全乘法运算,就是双方安全计算
Figure PCTCN2022135284-appb-000013
Figure PCTCN2022135284-appb-000014
无论x符号,若d1>=0,则<x> 0+<x> 1/2 d1和x的奇偶性相同,因此有
Figure PCTCN2022135284-appb-000015
因此,
Figure PCTCN2022135284-appb-000016
可以理解的是,b为乘法结果,在|a|进制下,|b|只有一个位为1,该位属于低h0位,或者属于高h0位。第一方得到乘法结果的第一分片,记为<b> 0;第二方得到乘法结果的第二分片,记为<b> 1
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为所述公开数据的绝对值进制下的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;所述第三模空间对应的第三模数为以所述公开数据的绝对值为底以所述第一模数为指数的本地 幂运算结果;
将所述第二中间结果的第一分片乘以所述公开数据的绝对值的u'次幂,再乘以缩放项,得到在第三模空间的第三中间结果的第一分片;所述缩放项为n的d2次幂乘以第三模数除以n的t2次幂,再进行四舍五入取整得到的数值;
将所述第三中间结果的第一分片乘以n的t2次幂除以第三模数,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
举例来说,乘法结果b具有两种取值,即b=sign(a) x|a| x-u′或sign(a) x|a| x-u′+h0,需要根据b得到b′=sign(a) x|a| x-u′。b′为第二中间结果。第一方持有b′的一个分片<b′> 0,第二方持有b′的另一个分片<b′> 1。双方安全计算b″=b′×|a| u′×round(2 d2×|a| h0/2 t2)%|a| h0。b″为第三中间结果。第一方持有b″的一个分片<b″> 0,第二方持有b″的另一个分片<b″> 1。h0应取的足够大,使得计算b″时不会溢出。|a| h0≥2 t2即可满足。第一方计算第一结果分片<y> 0=round(<b″> 0×2 t2/|a| h0)%2 t2,第二方计算第二结果分片<y> 1=round(<b″> 1×2 t2/|a| h0)%2 t2。其中,计算b″时×|a| u′为可选,如果前述c=x,则这里b″=b′×round(2 d2×|a| h0/2 t2)%|a| h0。该示例中,包括针对不可整除的模之间的转换处理。在计算b″和y时,涉及进行缩放和模的转换,要求round(2 d2×|a| h0/2 t2)≈2 d2×|a| h0/2 t2,h0应取的足够大,且足够合适。
其中,可以通过近似算法使得b′近似等于sign(a) x|a| x-u′,也可以通过精确算法使得b′精确等于sign(a) x|a| x-u′
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为所述公开数据的绝对值进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
该示例属于近似算法。举例来说,第一方计算<b′> 0=<b> 0+round(<b> 0/|a| h0)%|a| h0,第二方计算<b′> 1=<b> 1+round(<b> 1/|a| h0)%|a| h0
可以验证的是,若b=sign(a) x|a| x-u′,则b%|a| h0=sign(a) x|a| x-u′且round(<b> 0/|a| h0)+round(<b> 1/|a| h0)%|a| h0≈0;若b=sign(a) x|a| x-u′+h0,则b%|a| h0=0且round(<b> 0/|a| h0)+round(<b> 1/|a| h0)%|a| h0≈sign(a) x|a| x-u′。因此b′≈sign(a) x|a| x-u′
进一步地,所述确定第三模空间的第二中间结果的第一分片,包括:
将所述乘法结果视为所述公开数据的绝对值进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
该示例属于精确算法。举例来说,第一方和第二方双方安全比较e=(<c> 0+<c> 1≥h0),双方各获得比较结果e的一个分片,根据比较结果e进行下面两者的安全选择,得到:
若e==0,则b′=b%|a| h0=sign(a) x|a| x-u′;若e==1,则<b′> 0=floor(<b> 0/|a| h0);<b′> 1=ceil(<b> 1/|a| h0)。因此b′=sign(a) x|a| x-u′
情况三:x非整数。
该情况下,a的符号非负。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据不为整数,所述公开数据表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u再乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
举例来说,a x转换为2为底的指数运算sign(a) x×2 kx。a=sign(a)×2 k。另z=kx。z的范围为[u,v]。第一方和第二方双方安全计算c=(kx-u)×2 d3′,各获得c的一个模h1的分片。其中,第一方计算<c> 0=round((k<x> 0/2 d1)×2 d3′)%h1,第二方计算<c> 1=round((k<x> 1/2 d1-u)×2 d3′)%h1,即有c=(kx-u)×2 d3′,取值范围是[0,(v-u)×2 d3′],c为非负数。并且有(<c> 0+<c> 1)/2 d3′=c/2 d3′或(c+h1)/2 d3′≈kx-u或kx-u+h0。
可以理解的是,c为第一中间数据,h1为第一模数。另h1=h0×2 d3′。若k为小数或d3'-d1<0,会引入一定的误差,可略增大d3'的值来降低影响。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据不为整数,所述公开数据表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数且u大于或等于0,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
举例来说,若u>=0,则前述c=(kx-u)×2 d3′可替代为c=kx×2 d3′,其满足c为非负数。
进一步地,所述构建在第二模空间的第一乘数,包括:
以所述本方分片除以n的d3'次幂,加上d4,确定第一幂值;其中,d4根据d2、v、d2'而确定;
以n为底,第一幂值为指数,进行幂运算,再四舍五入取整,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以h0的2倍为指数的本地幂运算结 果。
举例来说,第一方计算
Figure PCTCN2022135284-appb-000017
并使其有效位数不超过v-u+d4,若超过,则将多余的尾数四舍五入后置为0;第二方计算
Figure PCTCN2022135284-appb-000018
并使其有效位数不超过v-u+d4,若超过,则将多余的尾数四舍五入后置为0。
可以理解的是,w0为第一乘数,w1为第二乘数,2 h2为第二模数。其中,令h2=2h0。
本说明书实施例,步骤33的安全乘法运算,就是双方安全计算
Figure PCTCN2022135284-appb-000019
Figure PCTCN2022135284-appb-000020
或2 kx-u+2d4+h0
可以理解的是,b为乘法结果。第一方得到乘法结果的第一分片,记为<b> 0;第二方得到乘法结果的第二分片,记为<b> 1
可以理解的是,y可从
Figure PCTCN2022135284-appb-000021
Figure PCTCN2022135284-appb-000022
的乘积中提取,但由于安全乘法运算只能在整数上进行,需对两个乘数缩放并取整后再进行安全乘法。缩放一方面是因为结果y要求缩放2 d2倍后拆分分片,结果y最多有v+d2位被保存在分片。另一方面是为了保证y的精度,需要放大乘数。由于
Figure PCTCN2022135284-appb-000023
的最小值为1,放大2 d4=2 d2+(v+d2′)可满足要求,其中i=0或1。
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为n进制的数据,将所述乘法结果的第一分片乘以放大项,得到第二中间结果的第一分片;所述放大项为以n为底以2(v-u+d4)为指数的本地幂运算结果;其中,d4根据d2、v、d2'而确定;
针对所述第二中间结果的第一分片提取其存在非0位的低位的h0位的第一分段数值,或者提取其存在非0位的高位的h0位的第二分段数值,以确定第三模空间的第三中间结果的第一分片;所述第三模空间对应的第三模数为2的h0次幂;
将所述第三中间结果的第一分片乘以n的d2+3u-4d4-2v次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
举例来说,乘法结果b具有两种取值,即b=2 kx-u+2d4或2 kx-u+2d4+h0,需要根据b得到b′=b×2 2(v-u+d4)。b′为第二中间结果。第一方持有b′的一个分片<b′> 0,第二方持有b′的另一个分片<b′> 1。b′的有效数字至多有2(v-u+d4)-1位,且均位于低h0位或高h0位中。这里要求h0>max(kx-u+2d4)+2(v-u+d4)=3v-3u+4d4。需要根据b′得到b″=2 kx-3u+4d4+2v。b″为第三中间结果。第一方持有b″的一个分片<b″> 0,第二方持有b″的另一个分片<b″> 1。第一方计算第一结果分片<y> 0=round(<b″> 0×2 d2+3u-4d4-2v)%2 t2,第二方计算第二结果分片<y> 1=round(<b″> 1×2 d2+3u-4d4-2v)%2 t2。这里要求h0+d2+3u-4d4-2v≥t2,即h0≥t2-(d2+3u-4d4-2v)=t2+4d4+2v-d2-3u。另h0=t2-(d2+3u-4d4-2v)可满足要求,其中,根据前面的分析,另d4=d2+(v+d2'),另h0=t2-(d2+3u-4d4-2v)=t2-d2-3u+2v+4d2+4v+4d2'=t2-3u+6v+3d2+4d2'。
其中,可以通过近似算法使得b″近似等于2 kx-3u+4d4+2v
进一步地,所述确定第三模空间的第三中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,针对所述第二中间结果的第一分片提取其低位的h0位的第一分段数值,以及提取其高位的h0位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第三中间结果的第一分片。
举例来说,双方安全计算b″=b′+round(b′/2 h0)%2 h0,其中,round函数表示对分片的取整。
可以验证的是,若b=2 kx-u+2d4,则b′%2 h0=2 kx-u+2d4+2(v-u+d4)=2 kx-3u+4d4+2v且round(b′/2 h0)%2 h0≈0;若b=2 kx-u+2d4+h0,则b′%2 h0=0且round(b′/2 h0)%2 h0≈2 kx-3u+4d4+2v。因此b″≈2 kx-3u+4d4+2v
情况四:x为整数。
该情况下,a的符号可正可负。若d1>=0,可以从x的分片精确恢复x。若d1<0,无法从x的分片精确恢复x,此时只支持a的符号为正。
情况四与情况三的处理方式类似,只是增加了对符号的处理,若a的符号为正,则不必处理符号。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据为整数,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u再乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
举例来说,a x转换为2为底的指数运算sign(a) x×2 kx。a=sign(a)×2 k。另z=kx。z的范围为[u,v]。第一方和第二方双方安全计算c=(kx-u)×2 d3′,各获得c的一个模h1的分片。其中,第一方计算<c> 0=round((k<x> 0/2 d1)×2 d3′)%h1,第二方计算<c> 1=round((k<x> 1/2 d1-u)×2 d3′)%h1,即有c=(kx-u)×2 d3′,取值范围是[0,(v-u)×2 d3′],c为非负数。并且有(<c> 0+<c> 1)/2 d3′=c/2 d3′或(c+h1)/2 d3′≈kx-u或kx-u+h0。
可以理解的是,c为第一中间数据,h1为第一模数。另h1=h0×2 d3′。若k为小数或d3'-d1<0,会引入一定的误差,可略增大d3'的值来降低影响。
在一个示例中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据为整数,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数且u大于或等于0,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
举例来说,若u>=0,则前述c=(kx-u)×2 d3′可替代为c=kx×2 d3′,其满足c为非负数。
进一步地,所述构建在第二模空间的第一乘数,包括:
若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
以所述本方分片除以n的d3'次幂,加上d4,确定第二幂值;其中,d4根据d2、v、d2'而确定;
以n为底,第二幂值为指数,进行幂运算,再四舍五入取整,得到第二乘积项;
计算第一乘积项乘以第二乘积项,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以h0的2倍为指数的本地幂运算结果。
举例来说,第一方计算
Figure PCTCN2022135284-appb-000024
并使其有效位数不超过v-u+d4,若超过,则将多余的尾数四舍五入后去掉;第二方计算
Figure PCTCN2022135284-appb-000025
并使其有效位数不超过v-u+d4,若超过,则将多余的尾数四舍五入后去掉。
可以理解的是,w0为第一乘数,w1为第二乘数,2 h2为第二模数。其中,令h2=2h0。
本说明书实施例,步骤33的安全乘法运算,就是双方安全计算
Figure PCTCN2022135284-appb-000026
Figure PCTCN2022135284-appb-000027
若d1≥0,则(<x> 0+<x> 1)/2 d1和x的奇偶性相同,有
Figure PCTCN2022135284-appb-000028
因此,
Figure PCTCN2022135284-appb-000029
可以理解的是,b为乘法结果。第一方得到乘法结果的第一分片,记为<b> 0;第二方得到乘法结果的第二分片,记为<b> 1
可以理解的是,结果y要求缩放2 d2倍后拆分分片,结果y最多有v+d2位被保存在分片;为了保证y的精度,需要放大乘数。由于
Figure PCTCN2022135284-appb-000030
的最小值为1,放大2 d4=2 d2+(v+d2′)可满足要求,其中i=0或1。
进一步地,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
将所述乘法结果视为n进制的数据,将所述乘法结果的第一分片乘以放大项,得到第二中间结果的第一分片;所述放大项为以n为底以2(v-u+d4)为指数的本地幂运算结果;其中,d4根据d2、v、d2'而确定;
针对所述第二中间结果的第一分片提取其存在非0位的低位的h0位的第一分段数值,或者提取其存在非0位的高位的h0位的第二分段数值,以确定第三模空间的第三中间结果的第一分片;所述第三模空间对应的第三模数为2的h0次幂;
将所述第三中间结果的第一分片乘以n的d2+3u-4d4-2v次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
举例来说,乘法结果b具有两种取值,即b=sign(a) x2 kx-u+2d4或sign(a) x2 kx-u+2d4+h0,需要根据b得到b′=b×2 2(v-u+d4)。b′为第二中间结果。第一方持有b′的一个分片<b′> 0,第二方持有b′的另一个分片<b′> 1。b′的有效数字至多有2(v-u+d4)-1位,且均位于低h0位或高h0位中。这里要求h0>max(kx-u+2d4)+2(v-u+d4)=3v-3u+4d4。需要根据b′得到 b″=sign(a) x2 kx-3u+4d4+2v。b″为第三中间结果。第一方持有b″的一个分片<b″> 0,第二方持有b″的另一个分片<b″> 1。第一方计算第一结果分片<y> 0=round(<b″> 0×2 d2+3u-4d4-2v)%2 t2,第二方计算第二结果分片<y> 1=round(<b″> 1×2 d2+3u-4d4-2v)%2 t2。这里要求h0+d2+3u-4d4-2v≥t2,即h0≥t2-(d2+3u-4d4-2v)=t2+4d4+2v-d2-3u。另h0=t2-(d2+3u-4d4-2v)可满足要求,其中,根据前面的分析,另d4=d2+(v+d2'),另h0=t2-(d2+3u-4d4-2v)=t2-d2-3u+2v+4d2+4v+4d2'=t2-3u+6v+3d2+4d2'。
其中,可以通过近似算法使得b″近似等于sign(a) x2 kx-3u+4d4+2v
进一步地,所述确定第三模空间的第三中间结果的第一分片,包括:
将所述乘法结果视为n进制的数据,针对所述第二中间结果的第一分片提取其低位的h0位的第一分段数值,以及提取其高位的h0位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第三中间结果的第一分片。
举例来说,双方安全计算b″=b′+round(b′/2 h0)%2 h0,其中,round函数表示对分片的取整。
可以验证的是,若b=sign(a) x2 kx-u+2d4,则b′%2 h0=sign(a) x2 kx-u+2d4+2(v-u+d4)=sign(a) x2 kx-3u+4d4+2v且round(b′/2 h0)%2 h0≈0;若b=sign(a) x2 kx-u+2d4+h0,则b′%2 h0=0且round(b′/2 h0)%2 h0≈sign(a) x2 kx-3u+4d4+2v。因此b″≈sign(a) x2 kx-3u+4d4+2v
通过本说明书实施例提供的方法,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,该方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,首先第一方至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;然后根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;接着根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;最后将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。由上可见,本说明书实施例,通过构造乘数,将安全幂运算转换为安全乘法运算,从安全乘法运算的乘法结果中提取出幂运算结果,从而能够实现安全幂运算,并且通信量低、性能佳。
根据另一方面的实施例,还提供一种隐私数据的安全处理装置,该装置用于执行本说明书图3所示实施例提供的方法,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,所述装置用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,所述装置设置于第一方。图4示出根据一个实施例的隐私数据的安全处理装置的示意性框图。如图4所示,该系统400包括:
本地计算单元41,用于至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的 第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;
乘数构建单元42,用于根据以所述本地计算单元41得到的第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;
安全乘法单元43,用于根据本方提供的所述乘数构建单元42得到的第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;
结果转换单元44,用于将所述安全乘法单元43得到的乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。
可选地,作为一个实施例,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数,所述目标模空间的模值为n的t2次幂;
所述本地计算单元41,具体用于基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u;所述第一模数为0和-d2-u中的较大数值加上t2。
可选地,作为一个实施例,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数且u大于或等于0,所述目标模空间的模值为n的t2次幂;
所述本地计算单元41,具体用于基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果;所述第一模数为0和-d2中的较大数值加上t2。
进一步地,所述乘数构建单元42包括:
第一确定子单元,用于若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
第二确定子单元,用于以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
第一幂运算子单元,用于以所述第一确定子单元得到的第一底数为底,所述第二确定子单元得到的第一幂值为指数,进行幂运算,得到第一乘积项;
第二幂运算子单元,用于以n为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
乘法子单元,用于将所述第一幂运算子单元得到的第一乘积项与所述第二幂运算子单元得到的第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以所述第一模数的2倍为指数的本地幂运算结果。
进一步地,所述结果转换单元44包括:
确定子单元,用于将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;
转换子单元,用于将所述确定子单元得到的第二中间结果的第一分片乘以n的d2+u次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
进一步地,所述确定子单元,具体用于:
将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
进一步地,所述确定子单元,具体用于:
将所述乘法结果视为n进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
通过本说明书实施例提供的装置,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,该方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,首先第一方的本地计算单元41至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;然后乘数构建单元42根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;接着安全乘法单元43根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;最后结果转换单元44将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。由上可见,本说明书实施例,通过构造乘数,将安全幂运算转换为安全乘法运算,从安全乘法运算的乘法结果中提取出幂运算结果,从而能够实现安全幂运算,并且通信量低、性能佳。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能 可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

Claims (25)

  1. 一种隐私数据的安全处理方法,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,所述方法用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,所述方法由第一方执行,包括:
    至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;
    根据以所述第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;
    根据本方提供的所述第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;
    将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。
  2. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数,所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u;所述第一模数为0和-d2-u中的较大数值加上t2。
  3. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据均为整数,k和所述隐私数据的目标乘积的最小值为u,u为整数且u大于或等于0,所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片与k的乘积除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果;所述第一模数为0和-d2中的较大数值加上t2。
  4. 如权利要求2所述的方法,其中,所述构建在第二模空间的第一乘数,包括:
    若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
    以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
    以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
    以n为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
    将第一乘积项与第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对 应的第二模数为以n为底以所述第一模数的2倍为指数的本地幂运算结果。
  5. 如权利要求2所述的方法,其中,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
    将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;
    将所述第二中间结果的第一分片乘以n的d2+u次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
  6. 如权利要求5所述的方法,其中,所述确定第三模空间的第二中间结果的第一分片,包括:
    将所述乘法结果视为n进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
    对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
  7. 如权利要求5所述的方法,其中,所述确定第三模空间的第二中间结果的第一分片,包括:
    将所述乘法结果视为n进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
    若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
    若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
  8. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述公开数据和所述隐私数据均为整数,所述隐私数据的最小值为u',所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为所述隐私数据减去u';所述第一模数根据n的d2次幂、所述公开数据的绝对值和n的t2次幂而确定。
  9. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述公开数据和所述隐私数据均为整数,所述隐私数据的最小值为u'且u'大于或等于0;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片除以n的d1次幂,再向下取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为所述隐私数据。
  10. 如权利要求8所述的方法,其中,所述构建在第二模空间的第一乘数,包括:
    若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
    以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
    以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
    以所述公开数据的绝对值为底,以所述第一数据分片作为指数,进行幂运算,得到第二乘积项;
    将第一乘积项与第二乘积项相乘,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以所述公开数据的绝对值为底以所述第一模数的2倍为指数的本地幂运算结果。
  11. 如权利要求8所述的方法,其中,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
    将所述乘法结果视为所述公开数据的绝对值进制下的数据,针对所述乘法结果的第一分片提取其存在非0位的低位的第一模数位的第一分段数值,或者提取其存在非0位的高位的第一模数位的第二分段数值,以确定第三模空间的第二中间结果的第一分片;所述第三模空间对应的第三模数为以所述公开数据的绝对值为底以所述第一模数为指数的本地幂运算结果;
    将所述第二中间结果的第一分片乘以所述公开数据的绝对值的u'次幂,再乘以缩放项,得到在第三模空间的第三中间结果的第一分片;所述缩放项为n的d2次幂乘以第三模数除以n的t2次幂,再进行四舍五入取整得到的数值;
    将所述第三中间结果的第一分片乘以n的t2次幂除以第三模数,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
  12. 如权利要求11所述的方法,其中,所述确定第三模空间的第二中间结果的第一分片,包括:
    将所述乘法结果视为所述公开数据的绝对值进制的数据,针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,以及提取其高位的第一模数位的第二分段数值;
    对第一分段数值和第二分段数值求和,得到第三模空间的第二中间结果的第一分片。
  13. 如权利要求11所述的方法,其中,所述确定第三模空间的第二中间结果的第一分片,包括:
    将所述乘法结果视为所述公开数据的绝对值进制的数据,根据本方具有的所述乘法结果的第一分片,以及第二方的所述乘法结果的第二分片,进行安全比较运算,得到所述乘法结果是否大于或等于第一模数的比较结果;
    若所述比较结果为所述乘法结果小于第一模数,则针对所述乘法结果的第一分片提取其低位的第一模数位的第一分段数值,将第一分段数值作为第三模空间的第二中间结果的第一分片;
    若所述比较结果为所述乘法结果大于或等于第一模数,则针对所述乘法结果的第一分片提取其高位的第一模数位的第二分段数值,将第二分段数值作为第三模空间的第二中间结果的第一分片。
  14. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂 在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据不为整数,所述公开数据表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u再乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
  15. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据不为整数,所述公开数据表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数且u大于或等于0,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
  16. 如权利要求14所述的方法,其中,所述构建在第二模空间的第一乘数,包括:
    以所述本方分片除以n的d3'次幂,加上d4,确定第一幂值;其中,d4根据d2、v、d2'而确定;
    以n为底,第一幂值为指数,进行幂运算,再四舍五入取整,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以h0的2倍为指数的本地幂运算结果。
  17. 如权利要求14所述的方法,其中,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
    将所述乘法结果视为n进制的数据,将所述乘法结果的第一分片乘以放大项,得到第二中间结果的第一分片;所述放大项为以n为底以2(v-u+d4)为指数的本地幂运算结果;其中,d4根据d2、v、d2'而确定;
    针对所述第二中间结果的第一分片提取其存在非0位的低位的h0位的第一分段数值,或者提取其存在非0位的高位的h0位的第二分段数值,以确定第三模空间的第三中间结果的第一分片;所述第三模空间对应的第三模数为2的h0次幂;
    将所述第三中间结果的第一分片乘以n的d2+3u-4d4-2v次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
  18. 如权利要求17所述的方法,其中,所述确定第三模空间的第三中间结果的第一分片,包括:
    将所述乘法结果视为n进制的数据,针对所述第二中间结果的第一分片提取其低位的h0位的第一分段数值,以及提取其高位的h0位的第二分段数值;
    对第一分段数值和第二分段数值求和,得到第三模空间的第三中间结果的第一分片。
  19. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据为整数,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果减去u再乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
  20. 如权利要求1所述的方法,其中,所述本方分片是所述隐私数据乘以n的d1次幂在所述初始模空间的分片,所述结果分片是所述幂运算结果乘以n的d2次幂在所述目标模空间的分片,所述隐私数据为整数,所述公开数据的绝对值表示为n的k次幂形式,k和所述隐私数据的目标乘积的最小值为u,其最大值为v,u和v均为整数且u大于或等于0,支持的所述目标乘积的精度为小数点后d3位,所述目标模空间的模值为n的t2次幂;
    所述本地计算第一中间数据在第一模空间的第一数据分片,包括:
    基于所述本方分片与k的乘积除以n的d1次幂,乘以n的d3'次幂,再四舍五入取整,本地计算第一中间数据在第一模空间的第一数据分片;第一中间数据为目标乘积的结果乘以n的d3'次幂;所述第一模数为h0乘以n的d3'次幂,h0根据d2、u、v、d2'和t2而确定,d3'大于d3,d2'大于d2。
  21. 如权利要求19所述的方法,其中,所述构建在第二模空间的第一乘数,包括:
    若所述公开数据为正数,确定第一底数为1,若所述公开数据为负数确定第一底数为-1;
    以所述本方分片除以n的d1次幂,再向下取整,确定第一幂值;
    以第一底数为底,第一幂值为指数,进行幂运算,得到第一乘积项;
    以所述本方分片除以n的d3'次幂,加上d4,确定第二幂值;其中,d4根据d2、v、d2'而确定;
    以n为底,第二幂值为指数,进行幂运算,再四舍五入取整,得到第二乘积项;
    计算第一乘积项乘以第二乘积项,得到在第二模空间的第一乘数;所述第二模空间对应的第二模数为以n为底以h0的2倍为指数的本地幂运算结果。
  22. 如权利要求19所述的方法,其中,所述将所述乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片,包括:
    将所述乘法结果视为n进制的数据,将所述乘法结果的第一分片乘以放大项,得到第二中间结果的第一分片;所述放大项为以n为底以2(v-u+d4)为指数的本地幂运算结果;其中,d4根据d2、v、d2'而确定;
    针对所述第二中间结果的第一分片提取其存在非0位的低位的h0位的第一分段数值,或者提取其存在非0位的高位的h0位的第二分段数值,以确定第三模空间的第三中间结果的第一分片;所述第三模空间对应的第三模数为2的h0次幂;
    将所述第三中间结果的第一分片乘以n的d2+3u-4d4-2v次幂,再进行四舍五入取整,得到所述幂运算结果在所述目标模空间的第一结果分片。
  23. 一种隐私数据的安全处理装置,所述隐私数据在初始模空间中以和共享的形式分布于第一方和第二方,所述装置用于得到以公开数据为底数且以所述隐私数据为指数的幂运算结果在目标模空间的结果分片,所述装置设置于第一方,包括:
    本地计算单元,用于至少基于所述隐私数据的本方分片,本地计算第一中间数据在第一模空间的第一数据分片;其中,所述第一中间数据为非负值,所述第一模空间对应的第一模数根据所述目标模空间的模值而确定;所述第一中间数据在第一模空间的第二数据分片由所述第二方持有;
    乘数构建单元,用于根据以所述本地计算单元得到的第一数据分片作为指数的本地幂运算,构建在第二模空间的第一乘数;所述第二模空间对应的第二模数基于所述第一模数而确定;
    安全乘法单元,用于根据本方提供的所述乘数构建单元得到的第一乘数,以及第二方提供的第二乘数,进行安全乘法运算,得到乘法结果的第一分片;所述第二方得到所述乘法结果的第二分片;其中,所述第二乘数由所述第二方根据其持有的第二数据分片而构建;所述乘法结果具有两种取值;
    结果转换单元,用于将所述安全乘法单元得到的乘法结果的第一分片转换为所述幂运算结果在所述目标模空间的第一结果分片;所述第二方获得对应的第二结果分片。
  24. 一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-22中任一项的所述的方法。
  25. 一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-22中任一项的所述的方法。
PCT/CN2022/135284 2022-06-30 2022-11-30 隐私数据的安全处理方法和装置 WO2024001023A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210762917.XA CN115114662A (zh) 2022-06-30 2022-06-30 隐私数据的安全处理方法和装置
CN202210762917.X 2022-06-30

Publications (1)

Publication Number Publication Date
WO2024001023A1 true WO2024001023A1 (zh) 2024-01-04

Family

ID=83330393

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/135284 WO2024001023A1 (zh) 2022-06-30 2022-11-30 隐私数据的安全处理方法和装置

Country Status (2)

Country Link
CN (1) CN115114662A (zh)
WO (1) WO2024001023A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115114662A (zh) * 2022-06-30 2022-09-27 蚂蚁区块链科技(上海)有限公司 隐私数据的安全处理方法和装置
CN116244753B (zh) * 2023-05-12 2023-08-15 建信金融科技有限责任公司 隐私数据求交集的方法、装置、设备及存储介质
CN117724854B (zh) * 2024-02-08 2024-05-24 腾讯科技(深圳)有限公司 数据处理方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150082047A1 (en) * 2011-12-05 2015-03-19 Vinodh Gopal Efficient multiplication, exponentiation and modular reduction implementations
US20200218509A1 (en) * 2017-09-19 2020-07-09 Huawei Technologies Co., Ltd. Multiplication Circuit, System on Chip, and Electronic Device
CN111737767A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 针对隐私数据进行安全运算的方法和装置
CN112506469A (zh) * 2021-02-05 2021-03-16 支付宝(杭州)信息技术有限公司 针对隐私数据进行处理的方法和装置
CN113688426A (zh) * 2021-09-14 2021-11-23 支付宝(杭州)信息技术有限公司 针对隐私数据分片进行形式转换的方法、装置和系统
CN115114662A (zh) * 2022-06-30 2022-09-27 蚂蚁区块链科技(上海)有限公司 隐私数据的安全处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150082047A1 (en) * 2011-12-05 2015-03-19 Vinodh Gopal Efficient multiplication, exponentiation and modular reduction implementations
US20200218509A1 (en) * 2017-09-19 2020-07-09 Huawei Technologies Co., Ltd. Multiplication Circuit, System on Chip, and Electronic Device
CN111737767A (zh) * 2020-07-31 2020-10-02 支付宝(杭州)信息技术有限公司 针对隐私数据进行安全运算的方法和装置
CN112506469A (zh) * 2021-02-05 2021-03-16 支付宝(杭州)信息技术有限公司 针对隐私数据进行处理的方法和装置
CN113688426A (zh) * 2021-09-14 2021-11-23 支付宝(杭州)信息技术有限公司 针对隐私数据分片进行形式转换的方法、装置和系统
CN115114662A (zh) * 2022-06-30 2022-09-27 蚂蚁区块链科技(上海)有限公司 隐私数据的安全处理方法和装置

Also Published As

Publication number Publication date
CN115114662A (zh) 2022-09-27

Similar Documents

Publication Publication Date Title
WO2024001023A1 (zh) 隐私数据的安全处理方法和装置
WO2020019341A1 (zh) 区块链账户的处理方法、装置和存储介质
US20200314077A1 (en) Encrypted group communication method
CN111552978B (zh) 基于DH加密和Hash表的隐私保护集合求交集方法
CN112560091B (zh) 数字签名方法、签名信息的验证方法、相关装置及电子设备
WO2022156159A1 (zh) 模型参数调整的方法、设备、存储介质及程序产品
CN111857649B (zh) 一种用于隐私保护机器学习的定点数编码及运算系统
CN112953700B (zh) 一种提升安全多方计算效率的方法、系统及存储介质
WO2023240934A1 (zh) 针对隐私向量的安全处理方法和装置
CN113722734A (zh) 两方安全选择确定选择结果分片的方法、装置和系统
CN114039785A (zh) 数据加密、解密、处理方法、装置、设备和存储介质
CN115906126A (zh) 多方安全计算中的数据处理的方法及装置
CN111555880B (zh) 数据碰撞方法、装置、存储介质及电子设备
CN108512665B (zh) 在椭圆曲线密码系统中生成椭圆曲线点
KR20080084499A (ko) 키 연산 방법 및 이를 이용한 공유 키 생성 방법
WO2023197995A1 (zh) 同态加密操作方法、装置和电子设备
US8666076B2 (en) Method of elliptic curve cryptography using EW-MOF on scalar multiplication
CN108075889B (zh) 一种降低加解密运算时间复杂度的数据传输方法及系统
CN113507367A (zh) 一种云环境下外包数据的在线/离线完整性审计方法
CN115277031A (zh) 一种数据处理的方法和装置
CN111030823A (zh) 超轻量级多次签名的数据处理方法、系统、物联网平台
CN114418830A (zh) 安全计算方法、装置、设备以及存储介质
CN115766156A (zh) 针对目标数据的共享形式转换方法及装置
CN116915922B (zh) 图像的传输方法及装置、电子设备和存储介质
US20220360573A1 (en) Encrypted group communication method

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

Country of ref document: EP

Kind code of ref document: A1