A method and apparatus for collaborative decryption information processing based on change factors
By using change factors W1 and W2 to process the sub-private key D1' in a collaborative decryption method between the two communicating parties, and generating the current sub-private keys D1 and D2, the problem of attackers stealing the sub-private key and performing arbitrary decryption multiple times is solved, thus improving the security of decryption information processing.
Patent Information
- Application Number
- CN202210855882.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-14
- Publication Date
- 2025-10-31
- Estimated Expiration
- 2042-07-14
AI Technical Summary
In existing technologies, attackers can steal the private keys of both communicating parties through software vulnerabilities, network attacks, and other methods, and perform decryption operations arbitrarily multiple times, which makes it impossible to guarantee the security of decrypted information processing.
A collaborative decryption method based on change factors is adopted. Through the cooperation of the first and second communication parties, the original sub-private key D1' is processed using change factors W1 and W2 to generate the current sub-private keys D1 and D2, which are used for partial decryption and final decryption of the information to be decrypted, ensuring that the sub-private key changes in each round of decryption operation.
It limits the attack window that attackers can launch, improves the security of decrypted information processing, and prevents attackers from performing decryption operations arbitrarily multiple times.
Smart Images

Figure CN115021923B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of cryptography, and more specifically, to a method and apparatus for processing cooperative decryption information based on a change factor, an electronic device, a computer-readable storage medium, and a computer program product. Background Technology
[0002] With the development of cryptography, encryption and decryption technologies based on public-key cryptography have become important tools for ensuring information security in fields such as e-commerce and identity authentication.
[0003] The private key can be split into multiple sub-private keys, each stored on separate devices of multiple parties. Each decryption calculation requires collaboration among multiple parties and the participation of multiple sub-private keys. Furthermore, in this collaborative decryption process, each party cannot obtain information about the sub-private keys of other parties, nor can they obtain information about the entire private key.
[0004] The most common scenario involves collaborative decryption calculations between two parties, where the client and server each possess their own sub-private keys and cooperate to complete the decryption computation. The SM2 elliptic curve public-key cryptography algorithm, a cryptographic industry standard, also employs a collaborative decryption calculation method.
[0005] However, due to resource and cost limitations on the client side, it is difficult to protect the sub-private key using dedicated cryptographic hardware. Therefore, attackers can steal the client's sub-private key through software vulnerabilities, network attacks, data duplication, and other methods. Once an attacker steals the client's sub-private key, they can impersonate the client, collaborate with the server to perform decryption operations, and so on. Moreover, the attacker can collaborate with the server at any time to perform any number of decryption operations.
[0006] In realizing the present invention, the inventors discovered that the related technology has at least the following problems: attackers can steal the private key of one of the communicating parties through software vulnerabilities, network attacks, data copying and other methods, and impersonate that party to communicate with the other party and perform decryption operations arbitrarily multiple times, thereby making it impossible to guarantee the security of decrypted information processing. Summary of the Invention
[0007] In view of this, this disclosure provides a method and apparatus for processing cooperative decryption information based on change factors, an electronic device, a computer-readable storage medium, and a computer program product.
[0008] According to one aspect of this disclosure, a collaborative decryption information processing method based on a change factor is provided, applied to a first communicating party, comprising: in response to determining that a second communicating party has completed a decryption operation on the original information to be decrypted, determining an original sub-private key D1′ and a first change factor W1, wherein the original sub-private key D1′ is used to perform partial decryption calculations on the original information to be decrypted; sending the first change factor W1 to the second communicating party; receiving a second change factor W2 from the second communicating party; processing the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain a current sub-private key D1; calculating the current information to be decrypted C using the current sub-private key D1 to obtain partially decrypted information M1; and sending the partially decrypted information M1 to the second communicating party so that the second communicating party can use the partially decrypted information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
[0009] According to embodiments of this disclosure, the above method is based on elliptic curve public-key cryptography; the above-mentioned processing of the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1 includes: calculating V1 based on the first change factor W1, the second change factor W2 and the original sub-private key D1′, where V1=(D1′*W1) -1 *W2)mod n, where * represents integer multiplication, W1 -1 Let V1 be the inverse of W1 modulo n; and let V1 be determined as the current sub-private key D1 mentioned above.
[0010] According to embodiments of this disclosure, the above method is based on elliptic curve public-key cryptography; the above-mentioned processing of the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1 includes: calculating U1 based on the first change factor W1, the second change factor W2 and the original sub-private key D1′, where U1=(D1′*W1*W2) -1 ) mod n, * represents integer multiplication, W2 -1 Let U1 be the inverse of W2 modulo n; and let U1 be the current sub-private key D1 mentioned above.
[0011] According to embodiments of this disclosure, the above method is based on elliptic curve public-key cryptography. The above-mentioned processing of the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1 includes: calculating S1 based on the first change factor W1, the second change factor W2, and the original sub-private key D1′, where S1 = (D1′ + W1 - W2) mod n, where mod n represents modulo n operation, + represents integer addition or elliptic curve point addition, and - represents integer subtraction or elliptic curve point subtraction; and determining S1 as the current sub-private key D1.
[0012] According to embodiments of this disclosure, the above-mentioned calculation of the current information to be decrypted C using the current sub-private key D1 to obtain partially decrypted information M1 includes: determining C1 based on the current information to be decrypted C; and calculating T1 and M1 when C1 does not belong to the infinity point of the elliptic curve, wherein T1 = D1 * 1 mod n, M1 = [T1]C1, D1 -1 mod n represents the inverse of D1 modulo n, and [T1]C1 represents the T1-fold point operation of the base point C1 of the elliptic curve.
[0013] According to an embodiment of this disclosure, the above-mentioned calculation of the current information to be decrypted C using the current sub-private key D1 to obtain the partially decrypted information M1 further includes: determining C1 based on the current information to be decrypted C; and calculating M1 when C1 does not belong to the infinity point of the elliptic curve, wherein M1 = [D1]C1, and [D1]C1 represents the D1 multiple point operation of the base point C1 of the elliptic curve.
[0014] According to another aspect of this disclosure, a collaborative decryption information processing method based on a change factor is provided, applied to a second communicating party, comprising: in response to the completion of the decryption operation of the original information to be decrypted, determining an original sub-private key D2′ and a second change factor W2, wherein the original sub-private key D2′ is used to perform partial decryption calculation on the original information to be decrypted; sending the second change factor W2 to a first communicating party; receiving a first change factor W1 from the first communicating party; processing the original sub-private key D2′ using the first change factor W1 and the second change factor W2 to obtain a current sub-private key D2; receiving partial decryption information M1 from the first communicating party; and calculating the current message to be decrypted C using the partial decryption information M1 and the current sub-private key D2 to obtain the message plaintext M.
[0015] According to embodiments of this disclosure, the above-mentioned calculation of the current message to be decrypted C using the aforementioned partial decryption information M1 and the aforementioned current sub-private key D2 to obtain the plaintext message M includes: calculating T2, where T2 = D2. -1 mod n, D2-1 mod n represents the inverse of D2 modulo n; calculate M2, where M2 = [T2]M1, [T2]M1 represents the T1-fold point operation of the base point M1 of the elliptic curve; calculate (x2, y2), where (x2, y2) = M2 - C1, - represents integer subtraction or elliptic curve point subtraction; calculate t, where t = KDF(x2||y2, len), KDF() represents the key derivation function, || represents the concatenation of bit strings or byte strings, and len represents the length of the concatenated bit strings or byte strings; if there is a non-zero number in t, determine C2 according to the current information to be decrypted C; calculate M, where M = C2^t, ^ represents bitwise XOR operation; calculate H, where H = Hash(x2||M||y2), Hash() represents the preset hash function; determine C3 according to the current information to be decrypted C; and if H and C3 are equal, determine the plaintext message M.
[0016] According to another aspect of this disclosure, a collaborative decryption information processing method based on a change factor is provided for a first communicating party, comprising: a first determining module, configured to determine an original sub-private key D1′ and a first change factor W1 in response to determining that a second communicating party has completed a decryption operation on the original information to be decrypted, wherein the original sub-private key D1′ is used to perform partial decryption calculations on the original information to be decrypted; a first sending module, configured to send the first change factor W1 to the second communicating party; a first receiving module, configured to receive a second change factor W2 from the second communicating party; a first processing module, configured to process the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain a current sub-private key D1; a first decryption module, configured to calculate the current information to be decrypted C using the first sub-private key D1 to obtain partially decrypted information M1; and a second sending module, configured to send the partially decrypted information M1 to the second communicating party, so that the second communicating party can use the partially decrypted information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
[0017] According to another aspect of this disclosure, a collaborative decryption information processing apparatus based on a change factor is provided, applied to a second communication party, comprising: a second determining module, configured to determine an original sub-private key D2′ and a second change factor W2 in response to the completion of a decryption operation on the original information to be decrypted, wherein the original sub-private key D2′ is used to perform partial decryption calculations on the original information to be decrypted; a third sending module, configured to send the second change factor W2 to a first communication party; a second receiving module, configured to receive a first change factor W1 from the first communication party; a second processing module, configured to process the original sub-private key D2′ using the first change factor W1 and the second change factor W2 to obtain a current sub-private key D2; a third receiving module, configured to receive partial decryption information M1 from the first communication party; and a second decryption module, configured to calculate the current message to be decrypted C using the partial decryption information M1 and the second sub-private key D2 to obtain the message plaintext M.
[0018] According to embodiments of this disclosure, during the decryption process, after the processing of the original information to be decrypted in the previous round is completed, the sub-private keys of both communicating parties can be changed by a change factor to obtain the current sub-private key. In the current round of decryption, the obtained current sub-private key is used to calculate the current information to be decrypted, thereby obtaining the plaintext message. Through the above technical means, at least partially, the technical problem in related technologies where attackers can use stolen sub-private keys to perform decryption operations arbitrarily multiple times, failing to guarantee the security of decryption processing, is overcome. This limits the attack window that attackers can launch, thereby improving the security of decryption processing. Attached Figure Description
[0019] The above and other objects, features and advantages of this disclosure will become clearer from the following description of embodiments with reference to the accompanying drawings, in which:
[0020] Figure 1 A flowchart illustrating a collaborative decryption information processing method based on a change factor according to an embodiment of the present disclosure is shown schematically.
[0021] Figure 2 A flowchart illustrating a collaborative decryption information processing method based on a change factor according to another embodiment of the present disclosure is shown schematically.
[0022] Figure 3 This illustration schematically shows an example diagram of a collaborative decryption process based on a change factor according to an embodiment of the present disclosure;
[0023] Figure 4 This illustration schematically shows an example diagram of a collaborative decryption process based on a change factor according to another embodiment of the present disclosure;
[0024] Figure 5 This illustration schematically shows an example diagram of a collaborative decryption process based on a change factor according to another embodiment of the present disclosure;
[0025] Figure 6 This illustration schematically shows an example diagram of a collaborative decryption process based on a change factor according to another embodiment of the present disclosure;
[0026] Figure 7 A block diagram of a cooperative decryption information processing apparatus based on a change factor according to an embodiment of the present disclosure is shown schematically.
[0027] Figure 8 A block diagram schematically illustrates a processing apparatus for cooperative decryption of information based on a change factor, according to another embodiment of the present disclosure; and
[0028] Figure 9 A block diagram of an electronic device suitable for implementing a cooperative decryption information processing method based on a change factor, according to an embodiment of the present disclosure, is illustrated. Detailed Implementation
[0029] To make the objectives, technical solutions, and advantages of the present invention clearer, the present invention will be further described in detail below with reference to specific embodiments and accompanying drawings.
[0030] In the technical solution disclosed herein, the acquisition, storage, and application of user personal information comply with the provisions of relevant laws and regulations, necessary confidentiality measures have been taken, and there is no violation of public order and good morals.
[0031] In the technical solution disclosed herein, the user's authorization or consent is obtained before acquiring or collecting the user's personal information.
[0032] To at least partially address the technical problems existing in related technologies, this disclosure provides a collaborative decryption information processing method and apparatus based on a change factor. The decryption information processing method includes: in response to determining that a second communicating party has completed a decryption operation on the original information to be decrypted, determining an original sub-private key D1′ and a first change factor W1, wherein the original sub-private key D1′ is used to perform partial decryption calculations on the original information to be decrypted; sending the first change factor W1 to the second communicating party; receiving a second change factor W2 from the second communicating party; processing the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain a current sub-private key D1; calculating the current information to be decrypted C using the current sub-private key D1 to obtain partially decrypted information M1; and sending the partially decrypted information M1 to the second communicating party so that the second communicating party can use the sub-private key D2 and the partially decrypted information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
[0033] Figure 1 A flowchart illustrating a collaborative decryption information processing method based on a change factor according to an embodiment of the present disclosure is shown.
[0034] like Figure 1 As shown, the collaborative decryption information processing method based on change factors includes operations S110 to S160.
[0035] In operation S110, in response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted, the original sub-private key D1' and the first change factor W1 are determined, wherein the original sub-private key D1' is used to perform partial decryption calculation on the original information to be decrypted.
[0036] In operation S120, the first change factor W1 is sent to the second communication party.
[0037] In operation S130, the second change factor W2 is received from the second communicating party.
[0038] In operation S140, the original sub-private key D1′ is processed using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1.
[0039] In operation S150, the current sub-private key D1 is used to calculate the current information to be decrypted C, and the partially decrypted information M1 is obtained.
[0040] In operation S160, a portion of the decrypted information M1 is sent to the second communication party so that the second communication party can use the portion of the decrypted information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
[0041] According to embodiments of this disclosure, the first communicating party can be a server or a client. The second communicating party can be a server or a client. If the first communicating party is a server, the second communicating party can be a client. If the first communicating party is a client, the second communicating party can be a server.
[0042] According to embodiments of this disclosure, the original information to be decrypted can be used to characterize the information to be decrypted in the previous round of decryption information processing. The current information to be decrypted can be used to characterize the information to be decrypted in the current round of decryption information processing.
[0043] According to embodiments of this disclosure, the first communicating party can generate an original sub-private key D1′. In this case, the original sub-private key D1′ of the first communicating party can cooperate with the original sub-private key D2′ of the second communicating party to generate a public key P. Alternatively, a private key can be randomly generated by a key generator and the public key P can be calculated. In this case, the first communicating party can receive the original sub-private key D1′ from the key generator. The original sub-private key D1′ can be used to calculate the original information to be decrypted to obtain the decryption result.
[0044] According to embodiments of this disclosure, after the previous round of decryption information processing is completed, the first communicating party can determine the first change factor W1 by generating a random number. Alternatively, the first communicating party can determine the first change factor W1 based on all or part of the values in the original unsigned information, partial decryption information, and decryption result from the previous round of decryption information processing.
[0045] According to embodiments of this disclosure, the first communicating party can use a first change factor W1 and a second change factor W2 to modify the original sub-private key D1′ to obtain the current sub-private key D1. The original sub-private keys D1′ and D2′ correspond to the same private keys as the current sub-private keys D1 and D2.
[0046] According to embodiments of this disclosure, the partial decryption information M1 may be the partial decryption information calculated by the first communicating party using the current sub-private key D1 on the current information to be decrypted C.
[0047] According to embodiments of this disclosure, during the decryption process, after the processing of the original information to be decrypted in the previous round is completed, the sub-private keys of both communicating parties can be changed by a change factor to obtain the current sub-private key. In the current round of decryption, the obtained current sub-private key is used to calculate the current information to be decrypted, thereby obtaining the plaintext message. Through the above technical means, at least partially, the technical problem in related technologies where attackers can use stolen sub-private keys to perform decryption operations arbitrarily multiple times, failing to guarantee the security of decryption processing, is overcome. This limits the attack window that attackers can launch, thereby improving the security of decryption processing.
[0048] Figure 2 A flowchart illustrating a collaborative decryption information processing method based on a change factor, according to another embodiment of this disclosure, is shown schematically. Figure 2 As shown, the collaborative decryption information processing method based on change factors includes operations S210 to S260.
[0049] In operation S210, in response to the completion of the decryption operation of the original information to be decrypted, the original sub-private key D2′ and the second change factor W2 are determined, wherein the original sub-private key D2′ is used to perform partial decryption calculation on the original information to be decrypted.
[0050] In operation S220, the second change factor W2 is sent to the first communicating party.
[0051] In operation S230, a first change factor W1 is received from the first communicating party.
[0052] In operation S240, the original sub-private key D2′ is processed using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D2.
[0053] In operation S250, partially decrypted information M1 is received from the first communicating party.
[0054] In operation S260, the current message to be decrypted C is calculated using partial decryption information M1 and the current sub-private key D2 to obtain the plaintext message M.
[0055] According to embodiments of this disclosure, the second communicating party can generate an original sub-private key D2′. In this case, the original sub-private key D2′ of the second communicating party can cooperate with the original sub-private key D1′ of the first communicating party to generate a public key P. Alternatively, a private key can be randomly generated by a key generator and the public key P can be calculated. In this case, the second communicating party can receive the original sub-private key D2′ from the key generator. The original information to be decrypted can be calculated using the original sub-private key D2′ to obtain the decryption result.
[0056] According to embodiments of this disclosure, after the previous round of decryption information processing is completed, the second communicating party can determine the second change factor W1 by generating a random number. Alternatively, the second communicating party can determine the second change factor W2 based on all or part of the values in the original unsigned information, partial decryption information, and decryption result from the previous round of decryption information processing.
[0057] According to embodiments of this disclosure, the plaintext message M can be the result of the second communicating party processing the decryption information obtained by calculating the current message C to be decrypted using partial decryption information M1 and the current sub-private key D2.
[0058] According to embodiments of this disclosure, during the decryption process, after the processing of the original information to be decrypted in the previous round is completed, the sub-private keys of both communicating parties can be changed by a change factor to obtain the current sub-private key. In the current round of decryption, the obtained current sub-private key is used to calculate the current information to be decrypted, thereby obtaining the plaintext message. Through the above technical means, at least partially, the technical problem in related technologies where attackers can use stolen sub-private keys to perform decryption operations arbitrarily multiple times, failing to guarantee the security of decryption processing, is overcome. This limits the attack window that attackers can launch, thereby improving the security of decryption processing.
[0059] The following is for reference. Figures 3-6 In conjunction with specific embodiments, Figure 1 and Figure 2 The method shown will be further explained.
[0060] Figure 3 The illustration shows an example schematic diagram of a collaborative decryption process based on a change factor according to an embodiment of the present disclosure.
[0061] According to embodiments of this disclosure, the method for processing decryption information based on elliptic curve public key cryptography involves splitting the private key into two parts to obtain sub-private keys, which are then stored separately by the communicating parties, and the two parties collaborate to complete the decryption operation.
[0062] like Figure 3 As shown, in operation S301, in response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted, the first communicating party can determine the original sub-private key D1′ and the first change factor W1.
[0063] In operation S302, the first communicating party can send the first change factor W1 to the second communicating party.
[0064] In operation S303, in response to the completion of the decryption operation of the original information to be decrypted, the second communicating party can determine the original sub-private key D2′ and the second change factor W2.
[0065] In operation S304, the second communicating party can send the second change factor W2 to the first communicating party.
[0066] In operation S305, the first communicating party receives the second change factor W2 from the second communicating party.
[0067] In operation S306, the second communicating party receives the first change factor W1 from the first communicating party.
[0068] In operation S307, the first communicating party uses the first change factor W1 and the second change factor W2 to process the original sub-private key D1′ to obtain the current sub-private key D1.
[0069] In operation S308, the second communicating party uses the first change factor W1 and the second change factor W2 to process the original sub-private key D2′ to obtain the current sub-private key D2.
[0070] In operation S309, the first communicating party uses the current sub-private key D1 to calculate the current information to be decrypted C, and obtains the partially decrypted information M1.
[0071] During operation S310, the first communicating party sends part of the decrypted information M1 to the second communicating party.
[0072] In operation S311, the second communicating party receives partially decrypted information M1 from the first communicating party.
[0073] In operation S312, the second communicating party uses partial decryption information M1 and the current sub-private key D2 to calculate the current message to be decrypted C, and obtains the plaintext message M.
[0074] Figure 4 The illustration shows an example schematic diagram of a collaborative decryption process based on a change factor according to another embodiment of the present disclosure.
[0075] According to embodiments of this disclosure, the cooperative decryption information processing method based on change factors is based on elliptic curve public key cryptography.
[0076] According to an embodiment of this disclosure, in this case, the private key d, the original sub-private key D1' of the first communicating party, and the original sub-private key D2' of the second communicating party satisfy (d+1). -1 = (D1′*D2′)mod n.
[0077] According to embodiments of this disclosure, operation S140 may include the following operations.
[0078] Calculate V1 based on the first change factor W1, the second change factor W2, and the original sub-private key D1′, where V1 = (D1′ * W1) -1 *W2)mod n, where * represents integer multiplication, W1 -1 Let V1 be the inverse of W1 modulo n. Let V1 be the current sub-private key D1.
[0079] According to embodiments of this disclosure, operation S150 may include the following operations.
[0080] Based on the current information to be decrypted, C1 is determined. If C1 is not at infinity of the elliptic curve, T1 and M1 are calculated, where T1 = D1. -1 mod n, M1 = [T1]C1, D1 -1 mod n represents the inverse of D1 modulo n, and [T1]C1 represents the T1-fold point operation of the base point C1 of the elliptic curve.
[0081] According to embodiments of this disclosure, the first and second communicating parties can share the elliptic curve parameters E(Fq), G, and n of the elliptic curve public-key cryptography algorithm (SM2 algorithm). Elliptic curve E is defined over the finite field Fq, and G represents a base point of order n on elliptic curve E. The specific values of each parameter can be preset by those skilled in the art according to actual needs and the SM2 algorithm.
[0082] According to embodiments of this disclosure, the information C to be decrypted can be composed of bit strings C1, C2, and C3 concatenated together. The first communicating party can extract bit string C1 from the information C to be decrypted, perform data type conversion on C1, and verify whether C1 is a non-infinity point on the elliptic curve E based on the obtained converted integer.
[0083] According to embodiments of the present disclosure, operation S240 may include the following operations.
[0084] Based on the first change factor W1, the second change factor W2, and the original sub-private key D2′, calculate V2, V2 = (D2′ * W1 * W2) -1 ) mod n, * represents integer multiplication, W2 -1 mod n represents the inverse of W2 modulo n. V2 is determined as the current sub-private key D2.
[0085] According to embodiments of the present disclosure, operation S260 may include the following operations.
[0086] Calculate T2, T2 = D2 -1 mod n, D2 -1 mod n represents the inverse of D2 modulo n. Calculate M2, M2 = [T2]M1, [T2]M1 represents the T1-fold multiplication of the base point M1 of the elliptic curve. Calculate (x2, y2), (x2, y2) = M2 - C1, - represents integer subtraction or elliptic curve point subtraction. Calculate t, t = KDF(x2||y2, len), KDF() represents the key derivation function, || represents the concatenation of bit strings or byte strings, and len represents the length of the concatenated bit strings or byte strings. If there is a non-zero number in t, determine C2 based on the current information to be decrypted C. Calculate M, M = C2^t, ^ represents bitwise XOR operation. Calculate H, H = Hash(x2||M||y2), Hash() represents the preset hash function. Determine C3 based on the current information to be decrypted C. If H and C3 are equal, determine the plaintext message M.
[0087] like Figure 4 As shown, in operation S401, in response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted, the first communicating party can determine the original sub-private key D1′ and the first change factor W1.
[0088] In operation S402, the first communicating party can send the first change factor W1 to the second communicating party.
[0089] In operation S403, in response to the completion of the decryption operation of the original information to be decrypted, the second communicating party can determine the original sub-private key D2′ and the second change factor W2.
[0090] In operation S404, the second communicating party can send the second change factor W2 to the first communicating party.
[0091] In operation S405, the first communicating party receives the second change factor W2 from the second communicating party.
[0092] In operation S406, the second communicating party receives the first change factor W1 from the first communicating party.
[0093] In operation S407, the first communicating party can calculate V1 = (D1′*W1) -1 The result V1 is calculated as *W2)mod n and is used as the current sub-private key D1.
[0094] In operation S408, the second communicating party can calculate V2 = (D2′*W1*W2) -1 )mod n, and determine the result V2 as the current sub-private key D2.
[0095] In operation S409, the first communicating party can determine C1 based on the current information to be decrypted, C.
[0096] In operation S410, if C1 is not at infinity of the elliptic curve, the first communicating party can calculate T1 = D1. -1 mod n, M1 = [T1]C1.
[0097] During operation S411, the first communicating party can send C1 and M1 to the second communicating party.
[0098] During operation S412, the second communicating party can receive C1 and partially decrypted information M1 from the first communicating party.
[0099] In operation S413, the second communicating party can calculate T2 = D2. -1 mod n, M2=[T2]M1, (x2, y2)=M2-C1, t=KDF(x2||y2,len).
[0100] In operation S414, if there is a non-zero number in t, the second communicating party can determine C2 based on the current information to be decrypted, C.
[0101] In operation S415, the second communication party can have M = C2^t and H = Hash(x2||M||y2).
[0102] During operation S416, the second communicating party can determine C3 based on the current information to be decrypted, C.
[0103] In operation S417, if H and C3 are equal, the second communicating party can determine the plaintext message M.
[0104] According to embodiments of this disclosure, the first and second communicating parties can calculate W1 and W2 for the next round of decryption calculation based on all or part of the values of C, M1, and M. For example, W1 and W2 can be set as the x-coordinate of M1, the y-coordinate of M1, or Hash(M1) mod n, etc.
[0105] According to embodiments of this disclosure, the above process can keep the private key of the SM2 elliptic curve public-key cryptography algorithm unchanged as a whole, that is, the changed current sub-private keys D1 and D2 still satisfy (d+1). -1 = (D1*D2)mod n.
[0106] Figure 5 The illustration shows an example schematic diagram of a collaborative decryption process based on a change factor according to another embodiment of the present disclosure.
[0107] According to an embodiment of this disclosure, in this case, the private key d, the original sub-private key D1′ of the first communicating party, and the original sub-private key D2′ of the second communicating party satisfy d = (D1′ * D2′) mod n. According to an embodiment of this disclosure, operation S140 may include the following operations.
[0108] Calculate U1 based on the first change factor W1, the second change factor W2, and the original sub-private key D1′. U1 = (D1′ * W1 * W2) -1 mod n, where * represents integer multiplication and mod n represents modulo n. U1 is then designated as the current sub-private key D1.
[0109] According to embodiments of this disclosure, operation S240 may include the following operations.
[0110] Based on the first change factor W1, the second change factor W2, and the original sub-private key D2′, calculate U2, U2=(D2′*W1) -1 *W2)mod n, where * represents integer multiplication, and W2 -1 mod n represents the inverse of W2 modulo n. U2 is determined as the current sub-private key D2.
[0111] According to embodiments of this disclosure, operation S150 may include the following operations.
[0112] Based on the current information to be decrypted, C1 is determined. If C1 is not at infinity of the elliptic curve, M1 is calculated, M1 = [D1]C1, where [D1]C1 represents the D1-fold point operation of the base point C1 of the elliptic curve.
[0113] According to embodiments of this disclosure, a private key can be randomly generated by a key generator and a public key P can be calculated. The first communicating party can receive the original sub-private key D1′ from the key generator.
[0114] For example, a key generator can generate a random number between (1, n-1), use this random number as the private key d, calculate P = [d]G, and use the result P as the public key. The key generator can also generate a random number between (1, n-1) as the original sub-private key D1′. The key generator can then send D1′ to the first communicating party.
[0115] According to embodiments of this disclosure, the first communicating party can generate an original sub-private key D1′, and the original sub-private key D1′ of the first communicating party can cooperate with the original sub-private key D2′ of the second communicating party to generate a public key P.
[0116] For example, the first communicating party can generate a random number between (1, n-1) and use the generated random number as the original sub-private key D1′. The first communicating party can calculate P1 = [D1]G and send P1 to the second communicating party.
[0117] According to embodiments of this disclosure, operation S260 may include the following operations.
[0118] Calculate (x2, y2), (x2, y2) = [D2]M1. Calculate t, t = KDF(x2||y2, len). If t contains a non-zero number, determine C2 based on the current information to be decrypted, C. Calculate M, M = C2^t. Calculate H, H = Hash(x2||M||y2). Determine C3 based on the current information to be decrypted, C. If H and C3 are equal, determine the plaintext message M.
[0119] According to embodiments of this disclosure, a private key can be randomly generated by a key generator and a public key P can be calculated. The first communicating party can receive the original sub-private key D1′ from the key generator.
[0120] For example, the key generator can receive the original sub-private key D1′ from the first communicating party and calculate D2′=(d*D1′) -1 The key generator calculates D2' using the result D2' mod n, and uses this result as the original sub-private key D2'. The key generator can then send D2' to the second communicating party.
[0121] According to embodiments of this disclosure, the second communicating party can generate an original sub-private key D2′, and the original sub-private key D2′ of the second communicating party can cooperate with the original sub-private key D1′ of the first communicating party to generate a public key P.
[0122] For example, the second communicating party can generate a random number between (1, n-1) and use the generated random number as the original sub-private key D2′. The second communicating party can receive P1 from the first communicating party and calculate P = [D2]P1, using the calculation result P as the public key.
[0123] like Figure 5 As shown, in operation S501, in response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted, the first communicating party can determine the original sub-private key D1′ and the first change factor W1.
[0124] In operation S502, the first communicating party can send the first change factor W1 to the second communicating party.
[0125] In operation S503, in response to the completion of the decryption operation of the original information to be decrypted, the second communicating party can determine the original sub-private key D2′ and the second change factor W2.
[0126] In operation S504, the second communicating party can send the second change factor W2 to the first communicating party.
[0127] In operation S505, the first communicating party receives the second change factor W2 from the second communicating party.
[0128] In operation S506, the second communicating party receives the first change factor W1 from the first communicating party.
[0129] In operation S507, the first communicating party can calculate U1 = (D1′*W1*W2) -1 ) mod n, and determine the result U1 as the current sub-private key D1.
[0130] When operating S508, the second communicating party can calculate U2 = (D2′*W1). -1 The result U2 is calculated as *W2)mod n and then used as the current sub-private key D2.
[0131] In operation S509, the first communicating party can determine C1 based on the current information to be decrypted, C.
[0132] In operation S510, if C1 is not at the infinity of the elliptic curve, the first communicating party can calculate M1 = [D1]C1.
[0133] During operation S511, the first communicating party can send part of the decrypted information M1 to the second communicating party.
[0134] During operation S512, the second communicating party can receive partially decrypted information M1 from the first communicating party.
[0135] In operation S513, the second communicating party can calculate (x2, y2) = [D2]M1, t = KDF(x2||y2, len).
[0136] In operation S514, if there is a non-zero number in t, the second communicating party can determine C2 based on the current information to be decrypted, C.
[0137] In operation S515, the second communication party can have M = C2^t and H = Hash(x2||M||y2).
[0138] When operating S516, the second communicating party can determine C3 based on the current information to be decrypted, C.
[0139] In operation S517, if H and C3 are equal, the second communicating party can determine the plaintext message M.
[0140] According to embodiments of this disclosure, the first and second communicating parties can calculate W1 and W2 for the next round of decryption calculation based on all or part of the values of C, M1, and M. For example, W1 and W2 can be set as the x-coordinate of M1, the y-coordinate of M1, or Hash(M1) mod n, etc.
[0141] According to embodiments of this disclosure, the above process can keep the private key of the SM2 elliptic curve public key cryptography algorithm unchanged as a whole, that is, the changed current sub-private keys D1 and D2 still satisfy d = (D1 * D2) mod n.
[0142] Figure 6 The illustration shows an example schematic diagram of a collaborative decryption process based on a change factor according to another embodiment of the present disclosure.
[0143] According to embodiments of this disclosure, the cooperative decryption information processing method based on change factors is based on elliptic curve public key cryptography.
[0144] According to an embodiment of this disclosure, in this case, the private key d, the original sub-private key D1′ of the first communicating party, and the original sub-private key D2′ of the second communicating party satisfy (d+1). -1 = (D1′+D2′)mod n.
[0145] According to embodiments of this disclosure, operation S140 may include the following operations.
[0146] Based on the first change factor W1, the second change factor W2, and the original sub-private key D1′, calculate S1, S1 = (D1′ + W1 - W2) mod n, where mod n represents modulo n operation, + represents integer addition or elliptic curve point addition operation, and - represents integer subtraction or elliptic curve point subtraction operation. Set S1 as the current sub-private key D1.
[0147] According to embodiments of this disclosure, operation S150 may include the following operations.
[0148] Based on the information C to be decrypted, determine C1. If C1 is not at the infinity of the elliptic curve, calculate M1, M1 = [D1]C1, where [D1]C1 represents the D1 multiple point operation of the base point C1 of the elliptic curve.
[0149] According to embodiments of this disclosure, a private key can be randomly generated by a key generator and a public key P can be calculated. The first communicating party can receive the original sub-private key D1′ from the key generator.
[0150] For example, a key generator can generate a random number between (1, n-1), use this random number as the private key d, calculate P = [d]G, and use the result P as the public key. The key generator can also generate a random number between (1, n-1) as the original sub-private key D1′. The key generator can send D1′ to the first communicating party. In this case, the private key d, the original sub-private key D1′ of the first communicating party, and the original sub-private key D2′ of the second communicating party satisfy d = (D1′ + D2′) mod n.
[0151] According to embodiments of this disclosure, the first communicating party can generate an original sub-private key D1′, and the original sub-private key D1′ of the first communicating party can cooperate with the original sub-private key D2′ of the second communicating party to generate a public key P.
[0152] For example, the first communicating party can generate a random number between (1, n-1) and use the generated random number as the original sub-private key D1′. The first communicating party can calculate P1 = [D1]G and send P1 to the second communicating party. In this case, the private key d, the original sub-private key D1′ of the first communicating party, and the original sub-private key D2′ of the second communicating party satisfy d = (D1′ + D2′) mod n.
[0153] According to embodiments of this disclosure, the cooperative decryption information processing method based on change factors is based on elliptic curve public key cryptography.
[0154] According to embodiments of the present disclosure, operation S240 may include the following operations.
[0155] Based on the first change factor W1, the second change factor W2, and the original sub-private key D2′, calculate S2, S2 = (D2′ - W1 + W2) mod n, where mod n represents modulo n operation, + represents integer addition or elliptic curve point addition operation, and - represents integer subtraction or elliptic curve point subtraction operation. Set S2 as the current sub-private key D2.
[0156] According to embodiments of the present disclosure, operation S260 may include the following operations.
[0157] Calculate (x2, y2), (x2, y2) = [D2]C1 + M1, where [D2]C1 represents the D2-fold multiplication of the base point C1 of the elliptic curve, and + represents integer addition or elliptic curve point addition. Calculate t, t = KDF(x2||y2, len), where KDF() represents the key derivation function, || represents the concatenation of bit or byte strings, and len represents the length of the concatenated bit or byte string. If t contains a non-zero number, determine C2 based on the current information to be decrypted, C. Calculate M, M = C2^t, where ^ represents bitwise XOR operation. Calculate H, H = Hash(x2||M||y2), where Hash() represents the hash function. Determine C3 based on the current information to be decrypted, C. If H and C3 are equal, determine the plaintext message M.
[0158] According to embodiments of this disclosure, a private key can be randomly generated by a key generator and a public key P can be calculated. The first communicating party can receive the original sub-private key D1′ from the key generator.
[0159] For example, the key generator can receive the original sub-private key D1′ from the first communicating party and calculate D2′ = (d - D1′) mod n, using the calculated result D2′ as the original sub-private key D2′. The key generator can then send D2′ to the second communicating party. In this case, the private key d, the original sub-private key D1′ of the first communicating party, and the original sub-private key D2′ of the second communicating party satisfy d = (D1′ + D2′) mod n.
[0160] According to embodiments of this disclosure, the second communicating party can generate an original sub-private key D2′, and the original sub-private key D2′ of the second communicating party can cooperate with the original sub-private key D1′ of the first communicating party to generate a public key P.
[0161] For example, the second communicating party can generate a random number between (1, n-1) and use this random number as the original sub-private key D2′. The second communicating party can receive P1 from the first communicating party and calculate P = [D2]G + P1, using the result P as the public key. In this case, the private key d, the original sub-private key D1′ of the first communicating party, and the original sub-private key D2′ of the second communicating party satisfy d = (D1′ + D2′) mod n. Figure 6 As shown, in operation S601, in response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted, the first communicating party can determine the original sub-private key D1′ and the first change factor W1.
[0162] In operation S602, the first communicating party can send the first change factor W1 to the second communicating party.
[0163] In operation S603, in response to the completion of the decryption operation of the original information to be decrypted, the second communicating party can determine the original sub-private key D2′ and the second change factor W2.
[0164] In operation S604, the second communicating party can send the second change factor W2 to the first communicating party.
[0165] In operation S605, the first communicating party receives the second change factor W2 from the second communicating party.
[0166] In operation S606, the second communicating party receives the first change factor W1 from the first communicating party.
[0167] In operation S607, the first communicating party can calculate S1 = (D1′ + W1 - W2) mod n, and determine the calculation result S1 as the current sub-private key D1.
[0168] In operation S608, the second communicating party can calculate S2 = (D2′-W1+W2) mod n, and determine the calculation result S2 as the current sub-private key D2.
[0169] In operation S609, the first communicating party can determine C1 based on the current information to be decrypted, C.
[0170] In operation S610, if C1 is not at the infinity of the elliptic curve, the first communicating party can calculate M1 = [D1]C1.
[0171] During operation S611, the first communicating party can send C1 and part of the decrypted information M1 to the second communicating party.
[0172] During operation S612, the second communicating party can receive C1 and partially decrypted information M1 from the first communicating party.
[0173] In operation S613, the second communicating party can calculate (x2, y2) = [D2]C1 + M1, t = KDF(x2||y2, len).
[0174] In operation S614, if there is a non-zero number in t, the second communicating party can determine C2 based on the current information to be decrypted, C.
[0175] In operation S615, the second communication party can have M = C2^t and H = Hash(x2||M||y2).
[0176] When operating S616, the second communicating party can determine C3 based on the current information to be decrypted, C.
[0177] In operation S617, if H and C3 are equal, the second communicating party can determine the plaintext message M.
[0178] According to embodiments of this disclosure, the first and second communicating parties can calculate W1 and W2 for the next round of decryption calculation based on all or part of the values of C, M1, and M. For example, W1 and W2 can be set as the x-coordinate of M1, the y-coordinate of M1, or Hash(M1) mod n, etc.
[0179] According to embodiments of this disclosure, the above process can keep the private key of the SM2 elliptic curve public-key cryptography algorithm unchanged as a whole, that is, the changed current sub-private keys D1 and D2 still satisfy (d+1). -1 = (D1+D2)mod n.
[0180] Figure 7 A block diagram of a cooperative decryption information processing apparatus based on a change factor according to an embodiment of the present disclosure is shown schematically.
[0181] like Figure 7 As shown, the collaborative decryption information processing device 700 based on change factors includes a first determining module 710, a first sending module 720, a first receiving module 730, a first processing module 740, a first decryption module 750, and a second sending module 760.
[0182] The first determining module 710 is used to determine the original sub-private key D1′ and the first change factor W1 in response to determining that the second communication party has completed the decryption operation on the original information to be decrypted. The original sub-private key D1′ is used to perform partial decryption calculation on the original information to be decrypted.
[0183] The first transmitting module 720 is used to transmit the first change factor W1 to the second communicating party.
[0184] The first receiving module 730 is used to receive the second change factor W2 from the second communicating party.
[0185] The first processing module 740 is used to process the original sub-private key D1′ using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1.
[0186] The first decryption module 750 is used to calculate the current information to be decrypted C using the first sub-private key D1 to obtain partially decrypted information M1.
[0187] The second sending module 760 is used to send part of the decrypted information M1 to the second communication party so that the second communication party can use the part of the decrypted information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
[0188] According to embodiments of this disclosure, the method for decrypting plaintext messages is based on elliptic curve public-key cryptography.
[0189] According to embodiments of this disclosure, the first processing module 740 includes a first calculation unit and a first determination unit.
[0190] The first calculation unit is used to calculate V1 based on the first change factor W1, the second change factor W2, and the original sub-private key D1′, where V1=(D1′*W1) -1 *W2)mod n, where * represents integer multiplication, W1 -1 This represents the inverse of W1 modulo n.
[0191] The first determining unit is used to determine V1 as the current sub-private key D1.
[0192] According to embodiments of this disclosure, the method for decrypting plaintext messages is based on elliptic curve public-key cryptography.
[0193] According to embodiments of this disclosure, the first processing module 740 includes a second calculation unit and a second determination unit.
[0194] The second calculation unit is used to calculate U1 based on the first change factor W1, the second change factor W2, and the original sub-private key D1′, where U1=(, D1′*W1*W2) -1 ) mod n, * represents integer multiplication, W2 -1 This represents the inverse of W2 modulo n.
[0195] The second determining unit is used to determine U1 as the current sub-private key D1.
[0196] According to embodiments of this disclosure, the method for decrypting plaintext messages is based on elliptic curve public-key cryptography.
[0197] According to embodiments of this disclosure, the first processing module 740 includes a third calculation unit and a third determination unit.
[0198] The third calculation unit is used to calculate S1 based on the first change factor W1, the second change factor W2 and the original sub-private key D1′, where S1=(D1′+W1-W2)mod n, mod n represents modulo n operation, + represents integer addition operation or elliptic curve point addition operation, and - represents integer subtraction operation or elliptic curve point subtraction operation.
[0199] The third determining unit is used to determine S1 as the current sub-private key D1.
[0200] According to embodiments of this disclosure, the first decryption module 750 includes a fourth determining unit and a fourth calculating unit.
[0201] The fourth determining unit is used to determine C1 based on the current information to be decrypted, C.
[0202] The seventh calculation unit is used to calculate T1 and M1 when C1 is not at infinity of the elliptic curve, where T1 = D1. -1 mod n, M1 = [T1]C1, D1 -1 mod n represents the inverse of D1 modulo n, and [T1]C1 represents the T1-fold point operation of the base point C1 of the elliptic curve.
[0203] According to embodiments of this disclosure, the first decryption module 750 includes a fifth determining unit and a fifth calculating unit.
[0204] The fifth determining unit is used to determine C1 based on the current information to be decrypted, C.
[0205] The seventh calculation unit is used to calculate M1 when C1 is not the point at infinity of the elliptic curve, where M1 = [D1]C1, and [D1]C1 represents the D1 multiple point operation of the base point C1 of the elliptic curve.
[0206] According to embodiments of this disclosure, the first decryption module 750 includes a sixth determining unit and a sixth calculating unit.
[0207] The sixth determining unit is used to determine C1 based on the information to be decrypted C.
[0208] The sixth calculation unit is used to calculate M1 when C1 is not a point at infinity of the elliptic curve, where M1 = [D1]C1, and [D1]C1 represents the D1 multiple point operation of the base point C1 of the elliptic curve.
[0209] Figure 8 A block diagram of a cooperative decryption information processing apparatus based on a change factor, according to another embodiment of the present disclosure, is shown schematically.
[0210] like Figure 8 As shown, the collaborative decryption information processing device 800 based on change factors includes a second determining module 810, a third sending module 820, a second receiving module 830, a second processing module 840, a third receiving module 850, and a second decryption module 860.
[0211] The second determining module 810 is used to determine the original sub-private key D2′ and the second change factor W2 in response to the completion of the decryption operation of the original information to be decrypted, wherein the original sub-private key D2′ is used to perform partial decryption calculation on the original information to be decrypted.
[0212] The third sending module 820 is used to send the second change factor W2 to the first communication party.
[0213] The second receiving module 830 is used to receive the first change factor W1 from the first communicating party.
[0214] The second processing module 840 is used to process the original sub-private key D2′ using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D2.
[0215] The third receiving module 850 is used to receive partial decrypted information M1 from the first communicating party.
[0216] The second decryption module 860 is used to calculate the current message to be decrypted C using partial decryption information M1 and the second sub-private key D2 to obtain the plaintext message M.
[0217] According to embodiments of this disclosure, the method for decrypting plaintext messages is based on elliptic curve public-key cryptography.
[0218] According to embodiments of this disclosure, the second processing module 840 includes a seventh calculation unit and a seventh determination unit.
[0219] The seventh calculation unit is used to calculate V2 based on the first change factor W1, the second change factor W2, and the original sub-private key D2′, where V2=(D2′*W1*W2) -1 ) mod n, * represents integer multiplication, W2 -1 mod n represents the inverse of W2 modulo n.
[0220] The seventh determining unit is used to determine V2 as the current sub-private key D2.
[0221] According to embodiments of this disclosure, the second decryption module 860 includes an eighth calculation unit, a ninth calculation unit, a tenth calculation unit, an eleventh calculation unit, a twelfth calculation unit, a thirteenth calculation unit, an eighth determination unit, a ninth determination unit, and a tenth determination unit.
[0222] The eighth calculation unit is used to calculate T2, where T2 = D2. -1 mod n, D2 -1 mod n represents the inverse of D2 modulo n.
[0223] The ninth calculation unit is used to calculate M2, where M2 = [T2]M1, and [T2]M1 represents the T1-fold point operation of the base point M1 of the elliptic curve.
[0224] The tenth calculation unit is used to calculate (x2, y2), where (x2, y2) = M2 - C1, and - indicates integer subtraction or elliptic curve point subtraction.
[0225] The eleventh calculation unit is used to calculate t, where t = KDF(x2||y2, len), KDF() represents the key derivation function, || represents the concatenation of bit strings or byte strings, and len represents the length of the concatenated bit strings or byte strings.
[0226] The eighth determining unit is used to determine C2 based on the current information to be decrypted, assuming that there is a non-zero number in t.
[0227] The twelfth calculation unit is used to calculate M, where M = C2^t, and ^ represents bitwise XOR operation.
[0228] The thirteenth calculation unit is used to calculate H, where H = Hash(x2||M||y2), and Hash() represents a preset hash function.
[0229] The ninth determining unit is used to determine C3 based on the current information to be decrypted, C.
[0230] The tenth determining unit is used to determine the plaintext message M when H and C3 are equal.
[0231] According to embodiments of this disclosure, the second processing module 840 further includes a fourteenth calculation unit and an eleventh determination unit.
[0232] The fourteenth calculation unit is used to calculate U2 based on the first change factor W1, the second change factor W2, and the original sub-private key D2′, where U2=(D2′*W1) -1 *W2)mod n, where * represents integer multiplication, W1 -1 mod n represents the inverse of W1 modulo n.
[0233] The eleventh determining unit is used to determine U2 as the current sub-private key D2.
[0234] According to embodiments of this disclosure, the second decryption module 860 further includes a fifteenth calculation unit, a sixteenth calculation unit, a twelfth determination unit, a seventeenth calculation unit, an eighteenth calculation unit, a thirteenth determination unit, and a fourteenth determination unit.
[0235] The fifteenth calculation unit is used to calculate (x2, y2), where (x2, y2) = [D2]M1.
[0236] The sixteenth calculation unit is used to calculate t, where t = KDF(x2||y2, len).
[0237] The twelfth determining unit is used to determine C2 based on the current information to be decrypted, assuming there are non-zero numbers in t.
[0238] The seventeenth calculation unit is used to calculate M, where M = C2^t.
[0239] The eighteenth calculation unit is used to calculate H, where H = Hash(x2||M||y2).
[0240] The thirteenth determining unit is used to determine C3 based on the current information to be decrypted, C.
[0241] The fourteenth determining unit is used to determine the plaintext message M when H and C3 are equal.
[0242] According to embodiments of this disclosure, the method for decrypting plaintext messages is based on elliptic curve public-key cryptography.
[0243] According to embodiments of this disclosure, the second processing module 840 includes a nineteenth calculation unit and a fifteenth determination unit.
[0244] The nineteenth calculation unit is used to calculate S2 based on the first change factor W1, the second change factor W2 and the original sub-private key D2′, where S2=(D2′-W1+W2)mod n, mod n represents modulo n operation, + represents integer addition operation or elliptic curve point addition operation, and - represents integer subtraction operation or elliptic curve point subtraction operation.
[0245] The fifteenth determining unit is used to determine S2 as the current sub-private key D2.
[0246] According to embodiments of this disclosure, the second decryption module 860 includes a twentieth calculation unit, a twenty-first calculation unit, a sixteenth determination unit, a twenty-second calculation unit, a twenty-third calculation unit, a seventeenth determination unit, and an eighteenth determination unit.
[0247] The twentieth calculation unit is used to calculate (x2, y2), where (x2, y2) = [D2]C1 + M1, [D2]C1 represents the D2-fold point operation of the base point C1 of the elliptic curve, and + represents integer addition or elliptic curve point addition.
[0248] The twenty-first calculation unit is used to calculate t, where t = KDF(x2||y2, len), KDF() represents the key derivation function, || represents the concatenation of bit strings or byte strings, and len represents the length of the concatenated bit strings or byte strings.
[0249] The sixteenth determining unit is used to determine C2 based on the current information to be decrypted, assuming that there is a non-zero number in t.
[0250] The twenty-second calculation unit is used to calculate M, where M = C2^t, and ^ represents bitwise XOR operation.
[0251] The twenty-third calculation unit is used to calculate H, where H = Hash(x2||M||y2), and Hash() represents the hash function.
[0252] The seventeenth determining unit is used to determine C3 based on the current information to be decrypted, C.
[0253] The eighteenth determining unit is used to determine the plaintext message M when H and C3 are equal.
[0254] Any one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure, or at least part of the functions of any one or more of them, can be implemented in one module. Any one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure can be implemented by dividing them into multiple modules. Any one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure can be at least partially implemented as hardware circuitry, such as Field Programmable Gate Arrays (FPGAs), Programmable Logic Arrays (PLAs), Systems-on-Chip, Systems-on-Substrate, Systems-on-Package, Application-Specific Integrated Circuits (ASICs), or implemented in hardware or firmware by any other reasonable means of integrating or packaging circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, one or more of the modules, submodules, units, and subunits according to embodiments of the present disclosure can be at least partially implemented as computer program modules, which, when run, can perform corresponding functions.
[0255] For example, any multiple of the following modules can be combined into one module / unit / subunit: the first determining module 710, the first sending module 720, the first receiving module 730, the first processing module 740, the first decryption module 750, the second sending module 760, the second determining module 810, the third sending module 820, the second receiving module 830, the second processing module 840, the third receiving module 850, and the second decryption module 860. Alternatively, any one of these modules / units / subunits can be split into multiple modules / units / subunits. Or, at least some of the functionality of one or more of these modules / units / subunits can be combined with at least some of the functionality of other modules / units / subunits and implemented in one module / unit / subunit. According to embodiments of this disclosure, at least one of the first determining module 710, the first transmitting module 720, the first receiving module 730, the first processing module 740, the first decryption module 750, the second transmitting module 760, the second determining module 810, the third transmitting module 820, the second receiving module 830, the second processing module 840, the third receiving module 850, and the second decryption module 860 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or any other reasonable means of integrating or packaging the circuitry, or implemented in software, hardware, or firmware, or in any suitable combination of any of these three implementation methods. Alternatively, at least one of the first determining module 710, the first sending module 720, the first receiving module 730, the first processing module 740, the first decryption module 750, the second sending module 760, the second determining module 810, the third sending module 820, the second receiving module 830, the second processing module 840, the third receiving module 850, and the second decryption module 860 can be at least partially implemented as a computer program module, which can perform corresponding functions when the computer program module is run.
[0256] It should be noted that the plaintext decryption device part in the embodiments of this disclosure corresponds to the plaintext decryption method part in the embodiments of this disclosure. For a detailed description of the plaintext decryption device part, please refer to the plaintext decryption method part, which will not be repeated here.
[0257] Figure 9 A block diagram of an electronic device suitable for implementing a cooperative decryption information processing method based on a change factor, according to an embodiment of the present disclosure, is illustrated. Figure 9 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0258] like Figure 9 As shown, a computer electronic device 900 according to an embodiment of the present disclosure includes a processor 901, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 902 or a program loaded from a storage portion 909 into a random access memory (RAM) 903. The processor 901 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 901 may also include onboard memory for caching purposes. The processor 901 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present disclosure.
[0259] RAM 903 stores various programs and data required for the operation of electronic device 900. Processor 901, ROM 902, and RAM 903 are interconnected via bus 904. Processor 901 performs various operations of the method flow according to embodiments of the present disclosure by executing programs in ROM 902 and / or RAM 903. It should be noted that the programs may also be stored in one or more memories other than ROM 902 and RAM 903. Processor 901 may also perform various operations of the method flow according to embodiments of the present disclosure by executing programs stored in said one or more memories.
[0260] According to embodiments of this disclosure, the electronic device 900 may further include an input / output (I / O) interface 905, which is also connected to a bus 904. The electronic device 900 may also include one or more of the following components connected to the I / O interface 905: an input section 906 including a keyboard, mouse, etc.; an output section 907 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 908 including a hard disk, etc.; and a communication section 909 including a network interface card such as a LAN card, modem, etc. The communication section 909 performs communication processing via a network such as the Internet. A drive 910 is also connected to the I / O interface 905 as needed. A removable medium 911, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 910 as needed so that computer programs read from it can be installed into the storage section 908 as needed.
[0261] According to embodiments of this disclosure, the method flow according to embodiments of this disclosure can be implemented as a computer software program. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a computer-readable storage medium, the computer program containing program code for performing the methods shown in the flowchart. In such embodiments, the computer program can be downloaded and installed from a network via communication section 909, and / or installed from removable medium 911. When the computer program is executed by processor 901, it performs the functions defined in the system of embodiments of this disclosure. According to embodiments of this disclosure, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.
[0262] This disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs that, when executed, implement the method according to the embodiments of this disclosure.
[0263] According to embodiments of this disclosure, the computer-readable storage medium can be a non-volatile computer-readable storage medium. Examples include, but are not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, the computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device.
[0264] For example, according to embodiments of this disclosure, a computer-readable storage medium may include the ROM 902 and / or RAM 903 described above and / or one or more memories other than ROM 902 and RAM 903.
[0265] Embodiments of this disclosure also include a computer program product comprising a computer program containing program code for performing the methods provided in the embodiments of this disclosure. When the computer program product is run on an electronic device, the program code enables the electronic device to implement the cooperative decryption information processing method based on change factors provided in the embodiments of this disclosure.
[0266] When the computer program is executed by the processor 901, it performs the functions defined in the system / apparatus of this disclosure embodiments. According to embodiments of this disclosure, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.
[0267] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and downloaded and installed via the communication section 909, and / or installed from a removable medium 911. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.
[0268] According to embodiments of this disclosure, program code for executing the computer programs provided in embodiments of this disclosure can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages include, but are not limited to, languages such as Java, C++, Python, "C", or similar programming languages. The program code can execute entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).
[0269] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions. Those skilled in the art will understand that the features recited in the various embodiments and / or claims of this disclosure can be combined and / or combined in various ways, even if such combinations or combinations are not expressly described in this disclosure. In particular, the features described in the various embodiments and / or claims of this disclosure may be combined and / or combined in various ways without departing from the spirit and teachings of this disclosure. All such combinations and / or combinations fall within the scope of this disclosure.
[0270] The embodiments of this disclosure have been described above. However, these embodiments are for illustrative purposes only and are not intended to limit the scope of this disclosure. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. The scope of this disclosure is defined by the appended claims and their equivalents. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of this disclosure, and all such substitutions and modifications should fall within the scope of this disclosure.
Claims
1. A collaborative decryption information processing method based on a change factor, applied to a first communicating party, comprising: In response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted, the original sub-private key D1' and the first change factor W1 are determined, wherein the original sub-private key D1' is used to perform partial decryption calculation on the original information to be decrypted; Send the first change factor W1 to the second communication party; Receive the second change factor W2 from the second communicating party; The original sub-private key D1' is processed using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1; Using the current sub-private key D1, the current information to be decrypted C is calculated to obtain partially decrypted information M1; and The partial decryption information M1 is sent to the second communication party so that the second communication party can use the partial decryption information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
2. The method according to claim 1, wherein, The method is based on elliptic curve public-key cryptography. The step of processing the original sub-private key D1' using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1 includes: V1 is calculated based on the first change factor W1, the second change factor W2, and the original sub-private key D1', where V1 = (D1' * W1) -1 *W2) mod n, where * represents integer multiplication, W1 -1 Describe the inverse of W1 modulo n; and V1 is determined as the current sub-private key D1.
3. The method according to claim 1, wherein, The method is based on elliptic curve public-key cryptography. The step of processing the original sub-private key D1' using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1 includes: Calculate U1 based on the first change factor W1, the second change factor W2, and the original sub-private key D1', where U1 = (D1' * W1 * W2) -1 ) mod n, * represents integer multiplication, W2 -1 Describe the modular inverse of W2 modulo n; and U1 is identified as the current sub-private key D1.
4. The method according to claim 1, wherein, The method is based on elliptic curve public-key cryptography. The step of processing the original sub-private key D1' using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1 includes: Based on the first change factor W1, the second change factor W2, and the original sub-private key D1', calculate S1, where S1 = (D1' + W1 – W2) mod n, where mod n represents modulo n operation, + represents integer addition or elliptic curve point addition, and – represents integer subtraction or elliptic curve point subtraction; and S1 is determined to be the current sub-private key D1.
5. The method according to claim 2, wherein, The step of using the current sub-private key D1 to calculate the current information to be decrypted C, and obtaining the partial decrypted information M1, includes: Based on the current information to be decrypted, C1 is determined; and If C1 is not at infinity of the elliptic curve, calculate T1 and M1, where T1 = D1. -1 mod n, M1 = [T1]C1, D1 -1 mod n represents the inverse of D1 modulo n, and [T1]C1 represents the T1-fold point operation of the base point C1 of the elliptic curve.
6. The method according to claim 3 or 4, wherein, The step of using the current sub-private key D1 to calculate the current information to be decrypted C to obtain the partially decrypted information M1 also includes: Based on the current information to be decrypted, C1 is determined; and If C1 is not at infinity of the elliptic curve, calculate M1, where M1 = [D1]C1, and [D1]C1 represents the D1-fold point operation of the base point C1 of the elliptic curve.
7. A method for processing decrypted information, applied to a second communicating party, comprising: In response to the completion of the decryption operation of the original information to be decrypted, the original sub-private key D2' and the second change factor W2 are determined, wherein the original sub-private key D2' is used to perform partial decryption calculation on the original information to be decrypted; Send the second change factor W2 to the first communicating party; Receive the first change factor W1 from the first communicating party; The original sub-private key D2' is processed using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D2; Receive partially decrypted information M1 from the first communicating party; and The plaintext message M is obtained by using the partial decryption information M1 and the current sub-private key D2 to calculate the current message C to be decrypted.
8. The method according to claim 7, wherein, The step of using the partial decryption information M1 and the current sub-private key D2 to calculate the current message C to be decrypted, and obtaining the plaintext message M, includes: Calculate T2, where T2 = D2 -1 mod n, D2 -1 mod n represents the inverse of D2 modulo n; Calculate M2, where M2 = [T2]M1, and [T2]M1 represents the T2-fold multiplication of the base point M1 of the elliptic curve; Calculate (x2, y2), where (x2, y2) = M2 - C1, - represents integer subtraction or elliptic curve point subtraction, and C1 is the bit string extracted from the current message C to be decrypted; Calculate t, where t = KDF(x2||y2,len), KDF() represents the key derivation function, || represents the concatenation of a string or byte string, and len represents the length of the concatenated string or byte string; If there are non-zero numbers in t, C2 is determined based on the current information to be decrypted C. C2 is the bit string extracted from the current message to be decrypted C. Calculate M, where M = C2^t, and ^ denotes bitwise XOR operation; Calculate H, where H = Hash(x2||M||y2), and Hash() represents the preset hash function; Based on the current information to be decrypted, C3 is determined. C3 is a bit string extracted from the current information to be decrypted, and the current information to be decrypted is composed of C1, C2, and C3 concatenated together; and If H and C3 are equal, the plaintext message M is determined.
9. A decryption information processing apparatus, applied to a first communicating party, comprising: The first determining module is used to determine the original sub-private key D1' and the first change factor W1 in response to determining that the second communicating party has completed the decryption operation on the original information to be decrypted. The original sub-private key D1' is used to perform partial decryption calculation on the original information to be decrypted. The first sending module is used to send the first change factor W1 to the second communication party; The first receiving module is used to receive the second change factor W2 from the second communicating party; The first processing module is used to process the original sub-private key D1' using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D1; The first decryption module is used to calculate the currently undecrypted information C using the first sub-private key D1 to obtain partially decrypted information M1; and The second sending module is used to send the partial decryption information M1 to the second communication party, so that the second communication party can use the partial decryption information M1 to calculate the current information to be decrypted C to obtain the plaintext message M.
10. A decryption information processing apparatus, applied to a second communicating party, comprising: The second determining module is used to determine the original sub-private key D2' and the second change factor W2 in response to the completion of the decryption operation of the original information to be decrypted, wherein the original sub-private key D2' is used to perform partial decryption calculation on the original information to be decrypted; The third sending module is used to send the second change factor W2 to the first communication party; the second receiving module is used to receive the first change factor W1 from the first communication party. The second processing module is used to process the original sub-private key D2' using the first change factor W1 and the second change factor W2 to obtain the current sub-private key D2; The third receiving module is used to receive partially decrypted information M1 from the first communicating party; and The second decryption module is used to calculate the current message C to be decrypted using the partial decryption information M1 and the second sub-private key D2 to obtain the plaintext message M.
Citation Information
Patent Citations
Private key protection method, system and device based on key updating
CN107302438A
Password updating method, password updating device and password updating system
CN109413084A