Secret sharing-based group identity security anonymous authentication method and system
By storing the authenticated hash fingerprint set of the user's public key on the administrator and using secret sharing technology to distribute the private key to multiple computing parties, the problem of the administrator's inability to store all user's public keys has been solved, and the user's anonymity is achieved Improved authentication and data transmission security.
Patent Information
- Application Number
- CN202411669921.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-21
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-11-21
AI Technical Summary
In the prior art, some managers cannot authenticate the user's identity because they do not have the authority to store all user public keys, and lack effective solutions.
Using a group identity security anonymous authentication method based on secret sharing, by allowing the manager to store the authentication hash fingerprint set of public keys, the visitor divides the private key into three shares and distributes it to three computing parties, and the manager uses the public key share. Calculate the overall hash value of the public key and compare it with the authenticated hash fingerprint set to complete identity authentication.
It realizes identity authentication for users without exposing public keys, ensures user anonymity, and improves the security and reliability of data transmission by dividing private key share.
Smart Images

Figure CN119484127A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of privacy computing, and in particular to a group identity security anonymous authentication method and system based on secret sharing. Background Art
[0002] In many environments, users need to be authenticated securely to ensure that they can continue other business processes after authentication. For example, in electronic voting systems, enterprise access control, government services such as tax declarations, and remote healthcare services, user authentication is required.
[0003] In the prior art, the user's public key is often obtained and compared with the public key in the public key set to complete the authentication. However, in some scenarios, some administrators do not have the authority to store all the user's public keys. In this case, the administrator cannot authenticate the user.
[0004] There is no effective solution to the above problems in the prior art. Summary of the invention
[0005] To solve the above problems, the present invention provides a group identity security anonymous authentication method and system based on secret sharing, by which the management party stores the authentication hash fingerprint set of the public key, the access party divides its private key and distributes it to three computing parties to calculate the public key shares, the management party calculates the overall hash value of the public key through the public key shares, and compares it with the authentication hash fingerprint set to complete the user identity authentication, thereby solving the problem that some management parties are unable to perform identity authentication in the prior art.
[0006] To achieve the above-mentioned purpose, the present invention provides a group identity security anonymous authentication method based on secret sharing, comprising: determining public parameters according to security level parameters; each accessing party randomly selects its own private key, calculates its own public key according to the public parameters and its own private key, calculates the corresponding public key hash according to its own public key, sends the public key hash to and stores it in the authentication hash fingerprint set of the management party; the target accessing party divides its own target private key into a first private key share, a second private key share and a third private key share, sends the first private key share and the second private key share to the first calculation party, sends the second private key share and the third private key share to the second calculation party, and sends the third private key share and the first private key share to the third calculation party; the first calculation party calculates the first private key share, the second private key share and the public key share according to the first private key share, the second private key share and the public key share. parameters, and jointly obtains the first public key share and the second public key share with the second computing party and the third computing party; the second computing party obtains the second public key share and the third public key share according to the second private key share, the third private key share and the public parameters, and jointly obtains the first public key share and the third public key share with the first computing party and the third computing party; the third computing party obtains the third public key share and the first public key share according to the third private key share, the first private key share and the public parameters, and jointly obtains the third public key share and the first public key share with the first computing party and the second computing party; the public key shares of two parties are randomly selected from the first computing party, the second computing party and the third computing party and sent to the management party, the management party calculates the target public key hash according to the first public key share, the second public key share and the third public key share, and determines whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful; otherwise, the authentication fails.
[0007] Further optionally, the public parameters include: a public key calculation modulus, an interval factor and a public key construction coefficient; calculating the own public key based on the public parameters and the own private key includes: determining the private key interval to which the own private key belongs based on the interval factor and the own private key; calculating the own public key based on the public key construction coefficient corresponding to the private key interval, the public key calculation modulus and the own private key.
[0008] Further optionally, the first computing party obtains the first public key share and the second public key share based on the first private key share, the second private key share and the public parameters, and jointly with the second computing party and the third computing party, including: calling the first multiplication calculation protocol based on the first private key share and the second private key share, and jointly with the second computing party and the third computing party, to obtain a private key power share set; obtaining a possible public key share set based on the private key power share set and the public key construction coefficient; calling the comparison protocol based on the first private key share, the second private key share and the interval factor, and jointly with the second computing party and the third computing party, to obtain an interval factor comparison value set; calculating the interval set to which the private key belongs based on the interval factor comparison value set; calling the second multiplication calculation protocol based on the possible public key share set and the interval set to which the private key belongs, and jointly with the second computing party and the third computing party, to obtain a possible public key distribution interval set; calculating the first public key share and the second public key share based on the possible public key distribution interval set.
[0009] Further optionally, the target access party divides its target private key into a first private key share, a second private key share and a third private key share, including: randomly selecting the first private key share and the second private key share of the target private key; and calculating the third private key share based on the target private key and the first private key share and the second private key share.
[0010] On the other hand, the present invention also provides a group identity security anonymous authentication system based on secret sharing, including: a public parameter initialization module, used to determine the public parameters according to the security level parameters; a public-private key calculation module, used for each access party to randomly select its own private key, calculate its own public key according to the public parameters and its own private key, and calculate the corresponding public key hash according to its own public key, and send and store the public key hash to the authentication hash fingerprint set of the management party; a private key share distribution module, used for the target access party to divide its own target private key into a first private key share, a second private key share and a third private key share, send the first private key share and the second private key share to the first calculation party, send the second private key share and the third private key share to the second calculation party, and send the third private key share and the first private key share to the third calculation party; the public key share calculation module, used for the first calculation party to calculate the public key according to The first private key share, the second private key share and the public parameters, and jointly with the second and third computing parties obtain the first public key share and the second public key share; the second computing party obtains the second public key share and the third public key share according to the second private key share, the third private key share and the public parameters, and jointly with the first and third computing parties; the third computing party obtains the third public key share and the first public key share according to the third private key share, the first private key share and the public parameters, and jointly with the first and second computing parties; the authentication module is used to randomly select the public key shares of two parties from the first, second and third computing parties and send them to the management party, the management party calculates the target public key hash according to the first, second and third public key shares, and determines whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful; otherwise, the authentication fails.
[0011] Further optionally, the public parameters include: a public key calculation modulus, an interval factor and a public key construction coefficient; the public-private key calculation module includes: an interval selection submodule, used to determine the private key interval to which the own private key belongs according to the interval factor and the own private key; a public key calculation submodule, used to calculate the own public key according to the public key construction coefficient corresponding to the private key interval, the public key calculation modulus and the own private key.
[0012] Further optionally, the public key share calculation module includes: a first multiplication calculation submodule, used to call the first multiplication calculation protocol according to the first private key share and the second private key share, and jointly with the second and third calculation parties, to obtain a private key power share set; a public key share construction submodule, used to obtain a possible public key share set according to the private key power share set and the public key construction coefficient; an interval comparison submodule, used to call the comparison protocol according to the first private key share, the second private key share and the interval factor, and jointly with the second and third calculation parties, to obtain an interval factor comparison value set; an interval determination submodule, used to calculate the interval set to which the private key belongs according to the interval factor comparison value set; a second multiplication calculation submodule, used to call the second multiplication calculation protocol according to the possible public key share set and the interval set to which the private key belongs, and jointly with the second and third calculation parties, to obtain a possible public key distribution interval set; a public key share calculation module, used to calculate the first public key share and the second public key share according to the possible public key distribution interval set.
[0013] Further optionally, the private key share distribution module includes: a random selection submodule, used to randomly select the first private key share and the second private key share of the target private key; and a remaining share calculation submodule, used to calculate the third private key share based on the target private key and the first private key share and the second private key share.
[0014] On the other hand, the present invention further provides a group identity security anonymous authentication device based on secret sharing, including the above-mentioned group identity security anonymous authentication system based on secret sharing.
[0015] On the other hand, the present invention further provides a computer-readable storage medium having a computer program stored thereon, wherein the program, when executed by a processor, implements the above-mentioned group identity security anonymous authentication method based on secret sharing.
[0016] The above technical solution has the following beneficial effects: by storing the public key hash of the authorized access party to the management party and using the public key hash as a comparison value for authentication, the user can perform identity authentication without exposing the public key, thereby ensuring anonymous authentication of the user; the private key is divided into three shares and the combined shares are sent to three computing parties for calculation of the public key shares, thereby ensuring security and data reliability during data transmission. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying creative work.
[0018] Figure 1It is a flow chart of a group identity security anonymous authentication method based on secret sharing provided by an embodiment of the present invention;
[0019] Figure 2 is a flow chart of a public key calculation method provided by an embodiment of the present invention;
[0020] Figure 3 is a flowchart of a method for calculating a public key share of a first computing party provided by an embodiment of the present invention;
[0021] Figure 4 is a flow chart of a method for selecting a private key share provided by an embodiment of the present invention;
[0022] Figure 5 It is a structural diagram of a group identity security anonymous authentication system based on secret sharing provided by an embodiment of the present invention;
[0023] Figure 6 It is a structural diagram of a public and private key calculation module provided by an embodiment of the present invention;
[0024] Figure 7 It is a structural diagram of a public key share calculation module provided in an embodiment of the present invention;
[0025] Figure 8 It is a structural diagram of a private key share distribution module provided in an embodiment of the present invention.
[0026] Figure markings: 100-public parameter initialization module; 200-public and private key calculation module; 2001-interval selection submodule; 2002-public key calculation submodule; 300-private key share distribution module; 3001-random selection submodule; 3002-remaining share calculation submodule; 400-public key share calculation module; 4001-first multiplication calculation submodule; 4002-public key share construction submodule; 4003-interval comparison submodule; 4004-interval determination submodule; 4005-second multiplication calculation submodule; 4006-public key share calculation module; 500-authentication module. DETAILED DESCRIPTION
[0027] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0028] In order to solve the problem that some management parties in the prior art cannot safely authenticate user identities, an embodiment of the present invention provides a group identity security anonymous authentication method based on secret sharing. Figure 1is a flow chart of a group identity security anonymous authentication method based on secret sharing provided by an embodiment of the present invention, such as Figure 1 As shown, the method includes:
[0029] S1. Determine the public parameters according to the security level parameters;
[0030] Before performing user authentication, it is necessary to determine the security level of the current scenario, set different public parameters for different security levels, and use appropriate public parameters for calculations in different scenarios.
[0031] S2. Each access party randomly selects its own private key, calculates its own public key based on the public parameters and its own private key, calculates the corresponding public key hash based on its own public key, and sends and stores the public key hash to the authentication hash fingerprint set of the management party;
[0032] For the multi-party management platform, the set of parties to which the system grants access rights is V: {v1, v2, …, v I}, where each access party randomly selects its own private key sk i∈[I] , according to the private key and public parameters of the party, the public key corresponding to each private key of the party can be calculated, and the public key hash of each public key of the party can be calculated. The accessing party sends the public key hash to the management party, and the management party stores the received public key hash in the authentication hash fingerprint set for subsequent authentication comparison.
[0033] S3. The target access party divides its target private key into a first private key share, a second private key share, and a third private key share, sends the first private key share and the second private key share to the first computing party, sends the second private key share and the third private key share to the second computing party, and sends the third private key share and the first private key share to the third computing party;
[0034] The target access party to be authenticated divides its target private key into three private key shares, namely the first private key share [sk x ]1. Second private key share [sk x ]2 and the third private key share [sk x ]3.
[0035] The target access party will send the first private key share [sk x ]1. Second private key share [sk x ]2 is sent to the first computing party C1, and the second private key share [sk x ]2. The third private key share [sk x ]3 is sent to the second computing party C2, and the third private key share [sk x ]3. First private key share [sk x ]1 is sent to the third computing party C3.
[0036] S4. The first computing party obtains the first public key share and the second public key share according to the first private key share, the second private key share and the public parameters in conjunction with the second computing party and the third computing party; the second computing party obtains the second public key share and the third public key share according to the second private key share, the third private key share and the public parameters in conjunction with the first computing party and the third computing party; the third computing party obtains the third public key share and the first public key share according to the third private key share, the first private key share and the public parameters in conjunction with the first computing party and the second computing party;
[0037] The first computing party C1 calculates the first private key share [sk x ]1. Second private key share [sk x ]2 and the public parameters, and combined with the second private key share [sk x ]2. The third private key share [sk x ]3 and the third private key share [sk x ]3. First private key share [sk x ]1, calculate the first public key share [pk x ]1 and the second public key share [pk x ]2.
[0038] Similarly, the second computing party C2 calculates the second private key share [sk x ]2. The third private key share [sk x ]3 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the third private key share [sk x ]3. First private key share [sk x ]1, calculate the second public key share [pk x ]2 and the third public key share [pk x ]3;
[0039] Similarly, the third computing party C3 calculates the third private key share [sk x ]3. First private key share [sk x ]1 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the second private key share [sk x ]2. The third private key share [sk x ]3, calculate the third public key share [pk x ]3 and the first public key share [pk x ]1.
[0040] S5. Randomly select the public key shares of two parties from the first computing party, the second computing party and the third computing party and send them to the management party. The management party calculates the target public key hash according to the first public key share, the second public key share and the third public key share, and determines whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful; otherwise, the authentication fails.
[0041] The public key share results of two computing parties are randomly selected and sent to the management party, which can then calculate the hash fingerprint of the public key based on the share results.
[0042] For example, the first computing party C1 sends the public key share, namely the first public key share [pk x ]1 and the second public key share [pk x ]2Sent to the management party.
[0043] The second computing party C2 converts the public key share, i.e., the second public key share [pk x ]2 and the third public key share [pk x ]3Send to the administrator.
[0044] The management party receives the first public key share [pk x ]1. Second public key share [pk x ]2 and the third public key share [pk x ]3 Calculate the target public key hash Hash (pk x ), where Hash(pk x )=Hash([pk x ]1+[pk x ]2+[pk x ]3).
[0045] Check whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful and subsequent operations can be performed. Otherwise, the authentication fails.
[0046] As an optional implementation, the public parameters include: a public key calculation modulus, an interval factor, and a public key construction coefficient;
[0047] Public parameters in, is the public key construction coefficient, c k is the interval factor, n is the public key calculation modulus, i=0,1,…,l; j=1,2,…,m; k=1,2,…,m-1.
[0048] Figure 2 is a flow chart of a method for calculating a public key provided by an embodiment of the present invention, such as Figure 2 As shown, calculating the public key based on the public parameters and the private key of the party includes:
[0049] S201, determining the private key interval to which the party's private key belongs according to the interval factor and the party's private key;
[0050] S202. Calculate the public key based on the public key construction coefficient corresponding to the private key interval, the public key calculation modulus and the party's private key and the party's public key.
[0051] For each private key of the party, different public key construction coefficients need to be used according to the different intervals to which it belongs. The corresponding public key pk is calculated by the public key construction coefficient, private key and public key calculation modulus. i =f(sk i ).
[0052] As an optional implementation, the calculation of the public key is implemented by the following formula:
[0053]
[0054] It can be seen from the above formula that for private keys sk in different intervals, different calculation methods are required to obtain the public key pk.
[0055] As an optional implementation, Figure 3 is a flowchart of a method for calculating a public key share of a first computing party provided in an embodiment of the present invention. Figure 3 As shown, the first computing party obtains the first public key share and the second public key share according to the first private key share, the second private key share and the public parameter, in conjunction with the second computing party and the third computing party, including:
[0056] S401, according to the first private key share and the second private key share, in conjunction with the second computing party and the third computing party, calling the first multiplication computing protocol to obtain a private key power share set;
[0057] For the first computing party C1, according to the first private key share and the second private key share 9[sk x ]1,[sk x ]2:, and jointly with the second computing party C2 and the third computing party C3 call the first multiplication computing protocol to obtain the private key power share set
[0058] S402, obtaining a possible public key share set according to the private key power share set and the public key construction coefficient;
[0059] According to the private key power share set And all public key construction coefficients Calculate all possible sets of public key shares in sequence
[0060] in,
[0061] S403, according to the first private key share, the second private key share and the interval factor, in conjunction with the second computing party and the third computing party, calling a comparison protocol to obtain an interval factor comparison value set;
[0062] According to the first private key share and the second private key share 9[sk x ]1,[sk x ]2: and interval factors, construct the private key interval distance share set {([sk x ]1-c1,[sk x ]2-c1), ([sk x ]1-c2, [sk x ]2-c2),…,([sk x ]1-c 781 ,[sk x ]2-c 781 )}.
[0063] According to the private key interval distance share set, the second computing party C2 and the third computing party C3 call the comparison protocol to obtain the interval factor comparison value set [B] 12 :{([b1]1=9[MSB(x-c1)]1,[b1]2=MSB(x-c1)]2:, 9[b2]1=MSB(x-c2)]1,[b2]2=MSB(x-c2)]2:,…,([b 781 ]1=MSB(xc 781 )]1),[b 781 ]2=MSB(xc 781 )]2)}.
[0064] S404, calculating the interval set to which the private key belongs according to the interval factor comparison value set;
[0065] Comparing sets of values according to interval factors [B] 12 , calculate the interval set to which the private key belongs [R] 12 : {9[r1]1=[b1]1, [r1]2=[b1]2:, 9[r2]1=[b1]1⊕[b2]1, [r2]2=[b1]2⊕[b2]2:,…, 9[r 781 ]1=[b 782 ]1⊕
[0066] [b 781 ]1,[r 781 ]2=[b 782 ]2⊕[b 781 ]2:,9[r7]1=1⊕[b 781 ]1,[r7]2=1⊕[b 781]2:
[0067] Among them, r1: = b1; r2: = b1 ⊕ b2; ...; r 781 :=b 782 ⊕b 781 ; r7: =1⊕b 781 .
[0068] S405. According to the possible public key share set and the interval set to which the private key belongs, the second multiplication calculation protocol is called in conjunction with the second computing party and the third computing party to obtain a possible public key distribution interval set;
[0069] According to the possible public key share set and the interval set to which the private key belongs [R] 12 , and jointly with the second computing party C2 and the third computing party C3 to call the second multiplication protocol, and obtain the possible public key distribution interval set [pk Si< ] 12 :{([r1f1(sk x )]1,[r1f1(sk x )]2),([r2f2(sk x )]1,[r2f2(sk x )]2),…,
[0070] ([r7f7(sk x )]1,[r7f7(sk x )]2)}.
[0071] S406. Calculate the first public key share and the second public key share according to the possible public key distribution interval set.
[0072] According to the possible public key distribution interval set [pk Si< ] 12 Calculate the first public key share [pk x ]1=[r1f1(sk x )]1+[r2f2(sk x )]1+…+[r 781 f 781 (sk x )]1+[r7f7(sk x )]1;
[0073] According to the possible public key distribution interval set [pk Si< ] 12 Calculate the second public key share [pk x ]2=[r1f1(sk x )]2+[r2f2(sk x )]2+…+[r 781 f 781 (sk x)]2+[r7f7(sk x )]2.
[0074] Among them, the above: pk x =r1f1(sk x )+r2f2(sk x )+…+r 781 f 781 (sk x )+r7f7(sk x ).
[0075] Similarly, when the first computing party C1 obtains the first public key share and the second public key share, the second computing party C2 and the third computing party C3 respectively obtain corresponding public key shares.
[0076] That is, the second computing party C2 calculates the second private key share [sk x ]2. The third private key share [sk x ]3 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the third private key share [sk x ]1. First private key share [sk x ]1, calculate the second public key share [pk x ]2 and the third public key share [pk x ]3; The third computing party C3 calculates the third private key share [sk x ]3. First private key share [sk x ]1 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the second private key share [sk x ]2. The third private key share [sk x ]3, calculate the third public key share [pk x ]3 and the first public key share [pk x ]1.
[0077] The calculation steps for the second computing party C2 and the third computing party C3 to obtain their corresponding public key shares are as follows:
[0078] 1) The second computing party C2 calculates the value of the second private key share and the third private key share according to 9[sk x ]2. [sk x ]3:, jointly with the first computing party C1 and the third computing party C3, call the first multiplication computing protocol to obtain the private key power share set
[0079] The third computing party C3 calculates the third private key share and the first private key share 9[sk x ]3.[sk x ]1:, jointly with the first computing party C1 and the second computing party C2, call the first multiplication computing protocol to obtain the private key power share set
[0080] 2) The second computing party C2 calculates the power share set of the private key And all public key construction coefficients Calculate all possible sets of public key shares in sequence
[0081] The third computing party C3 calculates the power share set based on the private key And all public key construction coefficients Calculate all possible sets of public key shares in sequence
[0082] in,
[0083] 3) The second computing party C2 calculates the value of the second private key share and the third private key share according to 9[sk x ]2,[sk x ]3: and interval factors, construct private key interval distance share set {([sk x ]2-c1,[sk x ]3-c1), ([sk x ]2-c2, [sk x ]3-c2),…,([sk x ]2-c 781 ,[sk x ]3-c 781 )}, according to the private key interval distance share set, the first computing party C1 and the third computing party C3 jointly call the comparison protocol to obtain the interval factor comparison value set [B] 23 :{9[b1]2=MSB(x-c1)]2,[b1]3=MSB(x-c1)]3:, 9[b2]2=MSB(x-c2)]2,[b2]3=MSB(x-c2)]3:,…,([b 781 ]2=
[0084] MSB(xc 781 )]2,[b 781 ]3=MSB(xc 781 )]3)};
[0085] The third computing party C3 calculates the third private key share and the first private key share 9[sk x ]3,[sk x ]1: and interval factor, construct the private key interval distance share set {([sk x ]3-c1, [sk x ]1-c1), ([sk x ]3-c2, [sk x ]1-c2),…,([sk x ]3-c 781 ,[sk x ]1-c 781 )}, according to the private key interval distance share set, the first computing party C1 and the second computing party C2 call the comparison protocol to obtain the interval factor comparison value set [B] 31 :{9[b1]3=MSB(x-c1)]3,[b1]1=[MSB(x-c1)]1:, 9[b2]3=MSB(x-c2)]3,[b2]1=MSB(x-c2)]1:,…,([b 781 ]3=MSB(xc 781 )]3), [b 781 ]1=MSB(xc 781 )]1)}.
[0086] 4) The second computing party C2 compares the value set according to the interval factor [B] 23 , calculate the interval set to which the private key belongs [R] 23 : {9[r1]2=[b1]2, [r1]3=[b1]3:, 9[r2]2=[b1]2⊕[b2]2, [r2]3=[b1]3⊕[b2]3:,…, 9[r 781 ]2=
[0087] [b 782 ]2⊕[b 781 ]2,[r 781 ]3=[b 782 ]3⊕[b 781 ]3:,9[r7]2=1⊕[b 781 ]2,[r7]3=1⊕[b 781 ]3:};
[0088] The third computing party C3 compares the value sets according to the interval factor [B] 31 , calculate the interval set to which the private key belongs [R] 31: {9[r1]3=[b1]3, [r1]1=[b1]1:, 9[r2]3=[b1]3⊕[b2]3, [r2]1=[b1]1⊕[b2]1:,…,9[r 781 ]3=
[0089] [b 782 ]3⊕[b 781 ]3,[r 781 ]1=[b 782 ]1⊕[b 781 ]1:,9[r7]3=1⊕[b 781 ]3,[r7]1=1⊕[b 781 ]1:}.
[0090] 5) The second computing party C2 calculates the possible public key share set and the interval set to which the private key belongs [R] 23 , and jointly with the first computing party C1 and the third computing party C3 to call the second multiplication protocol, and obtain the possible public key distribution interval set [pk Si< ] 23 :{([r1f1(sk x )]2,[r1f1(sk x )]3),([r2f2(sk x )]2,[r1f1(sk x )]3),…,([r7f7(sk x )]2,
[0091] [r1f1(sk x )]3)};
[0092] The third party C3 calculates the possible public key share set and the interval set to which the private key belongs [R] 31 , and jointly with the first computing party C1 and the second computing party C2 to call the second multiplication protocol, obtain the possible public key distribution interval set [pk Si< ] 31 :{([r1f1(sk x )]3,[r1f1(sk x )]1),([r2f2(sk x )]3,[r2f2(sk x )]1),…,([r7f7(sk x )]3,
[0093] [r2f2(sk x )]1)}.
[0094] 6) The second computing party C2 calculates the possible public key distribution interval set [pk Si< ]23 Calculate the second public key share [pk x ]2=[r1f1(sk x )]2+[r2f2(sk x )]2+…+[r 781 f 781 (sk x )]2+[r7f7(sk x )]2, and the third public key share [pk x ]3=[r1f1(sk x )]3+[r2f2(sk x )]3+…+[r 781 f 781 (sk x )]3+[r7f7(sk x )]3;
[0095] The third computing party C1 calculates the possible public key distribution interval set [pk Si< ] 31 Calculate the third public key share [pk x ]3=[r1f1(sk x )]3+[r2f2(sk x )]3+…+[r 781 f 781 (sk x )]3+[r7f7(sk x )]3, and the first public key share [pk x ]1=[r1f1(sk x )]1+[r2f2(sk x )]1+…+[r 781 f 781 (sk x )]1+[r7f7(sk x )]1.
[0096] As an optional implementation, Figure 4 is a flow chart of a method for selecting a private key share provided by an embodiment of the present invention. Figure 4 As shown, the target access party divides its target private key into a first private key share, a second private key share and a third private key share, including:
[0097] S301, randomly selecting a first private key share and a second private key share of a target private key;
[0098] S302. Calculate a third private key share according to the target private key, the first private key share, and the second private key share.
[0099] Randomly select access private key sk x The first private key share [skx ]1←n / 3, access private key sk x Second private key share [sk x ]2←n / 3, then, according to the first private key share [sk x ]1 and the second private key share [sk x ]2 Calculate the third private key share [sk x ]3=sk x -[sk x ]1-[sk x ]2 to ensure that the access private key is complete and randomly distributed into three private key shares.
[0100] The embodiment of the present invention also provides a group identity security anonymous authentication system based on secret sharing. Figure 5 is a schematic diagram of the structure of a group identity security anonymous authentication system based on secret sharing provided by an embodiment of the present invention, such as Figure 5 As shown, the system includes:
[0101] The public parameter initialization module 100 is used to determine the public parameters according to the security level parameters;
[0102] Before performing user authentication, it is necessary to determine the security level of the current scenario, set different public parameters for different security levels, and use appropriate public parameters for calculations in different scenarios.
[0103] The public and private key calculation module 200 is used for each access party to randomly select its own private key, calculate its own public key according to the public parameters and its own private key, calculate the corresponding public key hash according to its own public key, and send and store the public key hash to the authentication hash fingerprint set of the management party;
[0104] For the multi-party management platform, the set of parties to which the system grants access rights is V: {v1, v2, …, v I}, where each access party randomly selects its own private key sk i∈[I] , according to the private key and public parameters of the party, the public key corresponding to each private key of the party can be calculated, and the public key hash of each public key of the party can be calculated. The accessing party sends the public key hash to the management party, and the management party stores the received public key hash in the authentication hash fingerprint set for subsequent authentication comparison.
[0105] The private key share distribution module 300 is used for the target access party to divide the target private key of the party into a first private key share, a second private key share and a third private key share, send the first private key share and the second private key share to the first computing party, send the second private key share and the third private key share to the second computing party, and send the third private key share and the first private key share to the third computing party;
[0106] The target access party to be authenticated divides its target private key into three private key shares, namely the first private key share [sk x ]1. Second private key share [sk x ]2 and the third private key share [sk x ]3.
[0107] The target access party will send the first private key share [sk x ]1. Second private key share [sk x ]2 is sent to the first computing party C1, and the second private key share [sk x ]2. The third private key share [sk x ]3 is sent to the second computing party C2, and the third private key share [sk x ]3. First private key share[sk x ]1 is sent to the third computing party C3.
[0108] The public key share calculation module 400 is used for the first computing party to obtain the first public key share and the second public key share according to the first private key share, the second private key share and the public parameter in conjunction with the second computing party and the third computing party; the second computing party to obtain the second public key share and the third public key share according to the second private key share, the third private key share and the public parameter in conjunction with the first computing party and the third computing party; the third computing party to obtain the third public key share and the first public key share according to the third private key share, the first private key share and the public parameter in conjunction with the first computing party and the second computing party;
[0109] The first computing party C1 calculates the first private key share [sk x ]1. Second private key share [sk x ]2 and the public parameters, and combined with the second private key share [sk x ]2. The third private key share [sk x ]3 and the third private key share [sk x ]3. First private key share[sk x ]1, calculate the first public key share [pk x ]1 and the second public key share [pk x ]2.
[0110] Similarly, the second computing party C2 calculates the second private key share [sk x ]2. The third private key share [sk x ]3 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the third private key share [sk x ]3. First private key share[sk x]1, calculate the second public key share [pk x ]2 and the third public key share [pk x ]3;
[0111] Similarly, the third computing party C3 calculates the third private key share [sk x ]3. First private key share[sk x ]1 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the second private key share [sk x ]2. The third private key share [sk x ]3, calculate the third public key share [pk x ]3 and the first public key share [pk x ]1.
[0112] The authentication module 500 is used to randomly select the public key shares of two parties from the first computing party, the second computing party and the third computing party and send them to the management party. The management party calculates the target public key hash based on the first public key share, the second public key share and the third public key share, and determines whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful; otherwise, the authentication fails.
[0113] The public key share results of two computing parties are randomly selected and sent to the management party, which can then calculate the hash fingerprint of the public key based on the share results.
[0114] For example, the first computing party C1 sends the public key share, namely the first public key share [pk x ]1 and the second public key share [pk x ]2Sent to the management party.
[0115] The second computing party C2 converts the public key share, i.e., the second public key share [pk x ]2 and the third public key share [pk x ]3Send to the administrator.
[0116] The management party receives the first public key share [pk x ]1. Second public key share [pk x ]2 and the third public key share [pk x ]3 Calculate the target public key hash Hash (pk x ), where Hash(pk x )=Hash([pk x ]1+[pk x ]2+[pk x ]3).
[0117] Check whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful and subsequent operations can be performed. Otherwise, the authentication fails.
[0118] As an optional implementation, the public parameters include: a public key calculation modulus, an interval factor, and a public key construction coefficient;
[0119] Public parameters in, is the public key construction coefficient, c k is the interval factor, n is the public key calculation modulus, i=0,1,…,l; j=1,2,…,m; k=1,2,…,m-1.
[0120] Figure 6 Schematic diagram of the structure of the public and private key calculation module provided by the embodiment of the present invention. Figure 6 As shown, the public-private key calculation module 200 includes:
[0121] The interval selection submodule 2001 is used to determine the private key interval to which the private key belongs according to the interval factor and the private key of the party;
[0122] The public key calculation submodule 2002 is used to construct a coefficient of the public key corresponding to the private key interval, calculate the modulus of the public key and the private key of the party, and calculate the public key of the party.
[0123] For each private key of the party, different public key construction coefficients are required according to their different intervals. The corresponding public key pk is calculated by the public key construction coefficient, private key and public key calculation modulus. i =f(sk i ).
[0124] As an optional implementation, the calculation of the public key is implemented by the following formula:
[0125]
[0126] It can be seen from the above formula that for private keys sk in different intervals, different calculation methods are required to obtain the public key pk.
[0127] As an optional implementation, Figure 7 is a schematic diagram of the structure of the public key share calculation module provided in an embodiment of the present invention, such as Figure 7 As shown, the public key share calculation module 400 includes:
[0128] The first multiplication calculation submodule 4001 calls the first multiplication calculation protocol according to the first private key share and the second private key share and in conjunction with the second calculation party and the third calculation party to obtain a private key power share set;
[0129] For the first computing party C1, according to the first private key share and the second private key share 9[sk x ]1,[sk x ]2:, and jointly with the second computing party C2 and the third computing party C3 call the first multiplication computing protocol to obtain the private key power share set
[0130] The public key share construction submodule 4002 is used to obtain a possible public key share set according to the private key power share set and the public key construction coefficient;
[0131] According to the private key power share set And all public key construction coefficients Calculate all possible sets of public key shares in sequence
[0132] in,
[0133] The interval comparison submodule 4003 is used to obtain an interval factor comparison value set by invoking a comparison protocol in conjunction with the second computing party and the third computing party according to the first private key share, the second private key share and the interval factor;
[0134] According to the first private key share and the second private key share 9[sk x ]1,[sk x ]2: and interval factors, construct the private key interval distance share set {([sk x ]1-c1,[sk x ]2-c1), ([sk x ]1-c2, [sk x ]2-c2),…,([sk x ]1-c 781 ,[sk x ]2-c 781 )}.
[0135] According to the private key interval distance share set, the second computing party C2 and the third computing party C3 call the comparison protocol to obtain the interval factor comparison value set [B] 12 :{([b1]1=9[MSB(x-c1)]1,[b1]2=MSB(x-c1)]2:, 9[b2]1=MSB(x-c2)]1,[b2]2=MSB(x-c2)]2:,…,([b 781 ]1=MSB(xc 781 )]1),[b 781 ]2=MSB(xc 781 )]2)}.
[0136] The interval determination submodule 4004 is used to calculate the interval set to which the private key belongs according to the interval factor comparison value set;
[0137] Comparing sets of values according to interval factors [B] 12 , calculate the interval set to which the private key belongs [R] 12 : {9[r1]1=[b1]1, [r1]2=[b1]2:, 9[r2]1=[b1]1⊕[b2]1, [r2]2=[b1]2⊕[b2]2:,…, 9[r 781 ]1=[b 782 ]1⊕[b 781 ]1,[r 781 ]2=[b 782 ]2⊕[b 781 ]2:,9[r7]1=1⊕[b 781 ]1,[r7]2=1⊕[b 781 ]2:
[0138] Among them, r1: = b1; r2: = b1 ⊕ b2; ...; r 781 :=b 782 ⊕b 781 ; r7: =1⊕b 781 .
[0139] The second multiplication calculation submodule 4005 is used to obtain a possible public key distribution interval set by invoking a second multiplication calculation protocol in conjunction with the second calculation party and the third calculation party according to the possible public key share set and the private key interval set;
[0140] According to the possible public key share set and the interval set to which the private key belongs [R] 12 , and jointly with the second computing party C2 and the third computing party C3 to call the second multiplication protocol, and obtain the possible public key distribution interval set [pk Si< ] 12 :{([r1f1(sk x )]1,[r1f1(sk x )]2),([r2f2(sk x )]1,[r2f2(sk x )]2),…,
[0141] ([r7f7(sk x )]1,[r7f7(sk x )]2)}. The public key share calculation module 4006 is used to calculate the first public key share and the second public key share according to the possible public key distribution interval set.
[0142] According to the possible public key distribution interval set [pk Si< ]12 Calculate the first public key share [pk x ]1=[r1f1(sk x )]1+[r2f2(sk x )]1+…+[r 781 f 781 (sk x )]1+[r7f7(sk x )]1;
[0143] According to the possible public key distribution interval set [pk Si< ] 12 Calculate the second public key share [pk x ]2=[r1f1(sk x )]2+[r2f2(sk x )]2+…+[r 781 f 781 (sk x )]2+[r7f7(sk x )]2.
[0144] Among them, the above: pk x =r1f1(sk x )+r2f2(sk x )+…+r 781 f 781 (sk x )+r7f7(sk x ).
[0145] Similarly, when the first computing party C1 obtains the first public key share and the second public key share, the second computing party C2 and the third computing party C3 respectively obtain corresponding public key shares.
[0146] That is, the second computing party C2 calculates the second private key share [sk x ]2. The third private key share [sk x ]3 and the public parameters, and combined with the first private key share [sk x ]1. Second private key share [sk x ]2 and the third private key share [sk x ]3. First private key share[sk x ]1, calculate the second public key share [pk x ]2 and the third public key share [pk x ]3; The third computing party C3 calculates the third private key share [sk x ]3. First private key share[sk x ]1 and the public parameters, and combined with the first private key share [sk x]1. Second private key share [sk x ]2 and the second private key share [sk x ]2. The third private key share [sk x ]3, calculate the third public key share [pk x ]3 and the first public key share [pk x ]1.
[0147] The calculation steps for the second computing party C2 and the third computing party C3 to obtain their corresponding public key shares are as follows:
[0148] 1) The second computing party C2 calculates the value of the second private key share and the third private key share according to 9[sk x ]2. [sk x ]3:, jointly with the first computing party C1 and the third computing party C3, call the first multiplication computing protocol to obtain the private key power share set
[0149] The third computing party C3 calculates the third private key share and the first private key share 9[sk x ]3.[sk x ]1:, jointly with the first computing party C1 and the second computing party C2, call the first multiplication computing protocol to obtain the private key power share set
[0150] 2) The second computing party C2 calculates the power share set of the private key And all public key construction coefficients Calculate all possible sets of public key shares in sequence
[0151] The third computing party C3 calculates the power share set based on the private key And all public key construction coefficients Calculate all possible sets of public key shares in sequence
[0152] in,
[0153] 3) The second computing party C2 calculates the value of the second private key share and the third private key share according to 9[sk x ]2,[sk x ]3: and interval factors, construct private key interval distance share set {([sk x ]2-c1,[sk x ]3-c1), ([sk x]2-c2, [sk x ]3-c2),…,([sk x ]2-c 781 ,[sk x ]3-c 781 )}, according to the private key interval distance share set, the first computing party C1 and the third computing party C3 jointly call the comparison protocol to obtain the interval factor comparison value set [B] 23 :{9[b1]2=MSB(x-c1)]2,[b1]3=MSB(x-c1)]3:, 9[b2]2=MSB(x-c2)]2,[b2]3=MSB(x-c2)]3:,…,([b 781 ]2=
[0154] MSB(xc 781 )]2,[b 781 ]3=MSB(xc 781 )]3)};
[0155] The third computing party C3 calculates the third private key share and the first private key share 9[sk x ]3,[sk x ]1: and interval factor, construct the private key interval distance share set {([sk x ]3-c1, [sk x ]1-c1), ([sk x ]3-c2, [sk x ]1-c2),…,([sk x ]3-c 781 ,[sk x ]1-c 781 )}, according to the private key interval distance share set, the first computing party C1 and the second computing party C2 call the comparison protocol to obtain the interval factor comparison value set [B] 31 :{9[b1]3=MSB(x-c1)]3,[b1]1=[MSB(x-c1)]1:, 9[b2]3=MSB(x-c2)]3,[b2]1=MSB(x-c2)]1:,…,([b 781 ]3=MSB(xc 781 )]3),[b 781 ]1=MSB(xc 781 )]1)}.
[0156] 4) The second computing party C2 compares the value set according to the interval factor [B] 23 , calculate the interval set to which the private key belongs [R] 23: {9[r1]2=[b1]2, [r1]3=[b1]3:, 9[r2]2=[b1]2⊕[b2]2, [r2]3=[b1]3⊕[b2]3:,…, 9[r 781 ]2=
[0157] [b 782 ]2⊕[b 781 ]2,[r 781 ]3=[b 782 ]3⊕[b 781 ]3:,9[r7]2=1⊕[b 781 ]2,[r7]3=1⊕[b 781 ]3:};
[0158] The third computing party C3 compares the value sets according to the interval factor [B] 31 , calculate the interval set to which the private key belongs [R] 31 : {9[r1]3=[b1]3, [r1]1=[b1]1:, 9[r2]3=[b1]3⊕[b2]3, [r2]1=[b1]1⊕[b2]1:,…,9[r 781 ]3=
[0159] [b 782 ]3⊕[b 781 ]3,[r 781 ]1=[b 782 ]1⊕[b 781 ]1:,9[r7]3=1⊕[b 781 ]3,[r7]1=1⊕[b 781 ]1:}.
[0160] 5) The second computing party C2 calculates the possible public key share set and the interval set to which the private key belongs [R] 23 , and jointly with the first computing party C1 and the third computing party C3 to call the multiplication protocol, and obtain the possible public key distribution interval set [pk Si< ] 23 :{([r1f1(sk x )]2,[r1f1(sk x )]3),([r2f2(sk x )]2,[r1f1(sk x )]3),…,([r7f7(sk x )]2,
[0161] [r1f1(sk x )]3)};
[0162] The third party C3 calculates the possible public key share set and the interval set to which the private key belongs [R] 31 , and jointly with the first computing party C1 and the second computing party C2 to call the multiplication protocol, obtain the possible public key distribution interval set [pk Si< ] 31 :{([r1f1(sk x )]3,[r1f1(sk x )]1),([r2f2(sk x )]3,[r2f2(sk x )]1),…,([r7f7(sk x )]3,
[0163] [r2f2(sk x )]1)}.
[0164] 6) The second computing party C2 calculates the possible public key distribution interval set [pk Si< ] 23 Calculate the second public key share [pk x ]2=[r1f1(sk x )]2+[r2f2(sk x )]2+…+[r 781 f 781 (sk x )]2+[r7f7(sk x )]2, and the third public key share [pk x ]3=[r1f1(sk x )]3+[r2f2(sk x )]3+…+[r 781 f 781 (sk x )]3+[r7f7(sk x )]3;
[0165] The third computing party C3 calculates the possible public key distribution interval set [pk Si< ] 31 Calculate the third public key share [pk x ]3=[r1f1(sk x )]3+[r2f2(sk x )]3+…+[r 781 f 781 (sk x )]3+[r7f7(sk x )]3, and the first public key share [pk x ]1=[r1f1(sk x )]1+[r2f2(sk x )]1+…+[r 781 f 781 (skx )]1+[r7f7(sk x )]1.
[0166] As an optional implementation, Figure 8 : is a structural diagram of a private key share distribution module provided in an embodiment of the present invention. Figure 8 As shown, the private key share distribution module 300 includes:
[0167] A random selection submodule 3001 is used to randomly select a first private key share and a second private key share of a target private key;
[0168] The remaining share calculation submodule 3002 is used to calculate the third private key share based on the target private key and the first private key share and the second private key share.
[0169] Randomly select access private key sk x The first private key share [sk x ]1←n / 3, access private key sk x Second private key share [sk x ]2←n / 3, then, according to the first private key share [sk x ]1 and the second private key share [sk x ]2 Calculate the third private key share [sk x ]3=sk x -[sk x ]1-[sk x ]2 to ensure that the access private key is complete and randomly distributed into three private key shares.
[0170] The embodiment of the present invention further provides a group identity security anonymous authentication device based on secret sharing, including the above-mentioned group identity security anonymous authentication system based on secret sharing.
[0171] The embodiment of the present invention further provides a computer-readable storage medium on which a computer program is stored. When the program is executed by a processor, the above-mentioned group identity security anonymous authentication method based on secret sharing is implemented.
[0172] The above storage media include but are not limited to: CDs, floppy disks, hard disks, erasable memory, etc.
[0173] The above technical solution has the following beneficial effects: by storing the public key hash of the authorized access party to the management party and using the public key hash as a comparison value for authentication, the user can perform identity authentication without exposing the public key, thereby ensuring anonymous authentication of the user; the private key is divided into three shares and the combined shares are sent to three computing parties for calculation of the public key shares, thereby ensuring security and data reliability during data transmission.
[0174] The specific implementation methods of the above invention further illustrate the objectives, technical solutions and beneficial effects of the present invention in detail. It should be understood that the above content is only the specific implementation methods of the present invention and is not intended to limit the protection scope of the present invention. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the present invention should be included in the protection scope of the present invention.
Claims
1. A group identity security anonymous authentication method based on secret sharing, characterized in that: include: Determine the public parameters according to the security level parameters; Each accessing party randomly selects its own private key, calculates its own public key based on the public parameters and its own private key, calculates the corresponding public key hash based on its own public key, and sends and stores the public key hash to the authentication hash fingerprint set of the management party; The target access party divides its target private key into a first private key share, a second private key share, and a third private key share, sends the first private key share and the second private key share to the first computing party, sends the second private key share and the third private key share to the second computing party, and sends the third private key share and the first private key share to the third computing party; The first computing party obtains the first public key share and the second public key share according to the first private key share, the second private key share and the public parameters in conjunction with the second computing party and the third computing party; the second computing party obtains the second public key share and the third public key share according to the second private key share, the third private key share and the public parameters in conjunction with the first computing party and the third computing party; the third computing party obtains the third public key share and the first public key share according to the third private key share, the first private key share and the public parameters in conjunction with the first computing party and the second computing party; The public key shares of two parties are randomly selected from the first computing party, the second computing party and the third computing party and sent to the management party. The management party calculates the target public key hash based on the first public key share, the second public key share and the third public key share, and determines whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful; otherwise, the authentication fails.
2. The method for secure anonymous authentication of group identities based on secret sharing according to claim 1, characterized in that: The public parameters include: public key calculation modulus, interval factor and public key construction coefficient; The calculating the party's public key according to the public parameters and the party's private key includes: Determine the private key interval to which the own private key belongs according to the interval factor and the own private key; According to the public key construction coefficient corresponding to the private key interval, the public key calculation modulus and the party's private key, the party's public key is calculated.
3. The group identity security anonymous authentication method based on secret sharing according to claim 2 is characterized in that: The first computing party obtains the first public key share and the second public key share according to the first private key share, the second private key share and the public parameter, in conjunction with the second computing party and the third computing party, including: According to the first private key share and the second private key share, the first multiplication calculation protocol is called in conjunction with the second computing party and the third computing party to obtain a private key power share set; Obtaining a possible public key share set according to the private key power share set and the public key construction coefficient; According to the first private key share, the second private key share and the interval factor, the comparison protocol is called in conjunction with the second computing party and the third computing party to obtain an interval factor comparison value set; The interval set to which the private key belongs is calculated according to the interval factor comparison value set; According to the possible public key share set and the interval set to which the private key belongs, the second multiplication calculation protocol is called in conjunction with the second computing party and the third computing party to obtain a possible public key distribution interval set; The first public key share and the second public key share are calculated according to the possible public key distribution interval set.
4. The group identity security anonymous authentication method based on secret sharing according to claim 1 is characterized in that: The target access party divides its target private key into a first private key share, a second private key share and a third private key share, including: Randomly select a first private key share and a second private key share of the target private key; The third private key share is calculated according to the target private key and the first private key share and the second private key share.
5. A group identity security anonymous authentication system based on secret sharing, characterized in that: include: A public parameter initialization module, used to determine public parameters according to security level parameters; The public and private key calculation module is used for each access party to randomly select its own private key, calculate its own public key according to the public parameters and its own private key, calculate the corresponding public key hash according to its own public key, and send and store the public key hash to the authentication hash fingerprint set of the management party; A private key share distribution module is used for the target access party to divide the target private key of the party into a first private key share, a second private key share and a third private key share, send the first private key share and the second private key share to the first computing party, send the second private key share and the third private key share to the second computing party, and send the third private key share and the first private key share to the third computing party; A public key share calculation module, used for the first computing party to obtain the first public key share and the second public key share according to the first private key share, the second private key share and the public parameter, in conjunction with the second computing party and the third computing party; the second computing party to obtain the second public key share and the third public key share according to the second private key share, the third private key share and the public parameter, in conjunction with the first computing party and the third computing party; the third computing party to obtain the third public key share and the first public key share according to the third private key share, the first private key share and the public parameter, in conjunction with the first computing party and the second computing party; The authentication module is used to randomly select the public key shares of two parties from the first computing party, the second computing party and the third computing party and send them to the management party. The management party calculates the target public key hash based on the first public key share, the second public key share and the third public key share, and determines whether the target public key hash exists in the authentication hash fingerprint set. If so, the authentication is successful; otherwise, the authentication fails.
6. The group identity security anonymous authentication system based on secret sharing according to claim 5 is characterized in that: The public parameters include: public key calculation modulus, interval factor and public key construction coefficient; The public and private key calculation module includes: The interval selection submodule is used to determine the private key interval to which the private key belongs according to the interval factor and the private key of the party; The public key calculation submodule is used to construct a coefficient of the public key corresponding to the private key interval, a public key calculation modulus and the party's private key, and calculate the party's public key.
7. The group identity security anonymous authentication system based on secret sharing according to claim 6 is characterized in that: The public key share calculation module includes: A first multiplication calculation submodule is used to call the first multiplication calculation protocol according to the first private key share and the second private key share and in conjunction with the second calculation party and the third calculation party to obtain a private key power share set; A public key share construction submodule, used to obtain a possible public key share set according to the private key power share set and the public key construction coefficient; The interval comparison submodule is used to obtain an interval factor comparison value set by invoking a comparison protocol in conjunction with the second computing party and the third computing party according to the first private key share, the second private key share and the interval factor; An interval determination submodule, used to calculate the interval set to which the private key belongs according to the interval factor comparison value set; A second multiplication calculation submodule is used to obtain a possible public key distribution interval set by invoking a second multiplication calculation protocol in conjunction with a second calculation party and a third calculation party according to the possible public key share set and the interval set to which the private key belongs; The public key share calculation module is used to calculate the first public key share and the second public key share according to the possible public key distribution interval set.
8. The group identity security anonymous authentication system based on secret sharing according to claim 5 is characterized in that: The private key share distribution module includes: A random selection submodule, used for randomly selecting a first private key share and a second private key share of the target private key; The remaining share calculation submodule is used to calculate the third private key share based on the target private key and the first private key share and the second private key share.
9. A group identity security anonymous authentication device based on secret sharing, characterized in that: It comprises a group identity security anonymous authentication system based on secret sharing as described in any one of claims 5-8.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the group identity security anonymous authentication method based on secret sharing as described in any one of claims 1 to 4 is implemented.
Citation Information
Patent Citations
Multi-chameleon hashing method and system based on discrete logarithm
CN114978524A
Threshold signature
CN115885498A
Generating digitally signed shares
CN117795901A
Generating shared encryption key
CN117917041A
Computer implemented method and system for transferring access to a digital asset
US20210152371A1