WO2009026771A1 - The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information - Google Patents

The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information Download PDF

Info

Publication number
WO2009026771A1
WO2009026771A1 PCT/CN2007/070628 CN2007070628W WO2009026771A1 WO 2009026771 A1 WO2009026771 A1 WO 2009026771A1 CN 2007070628 W CN2007070628 W CN 2007070628W WO 2009026771 A1 WO2009026771 A1 WO 2009026771A1
Authority
WO
WIPO (PCT)
Prior art keywords
key
user
integer
result
private key
Prior art date
Application number
PCT/CN2007/070628
Other languages
French (fr)
Chinese (zh)
Inventor
Haiming Guan
Original Assignee
Guan, Haiying
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guan, Haiying filed Critical Guan, Haiying
Publication of WO2009026771A1 publication Critical patent/WO2009026771A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these

Definitions

  • the present invention relates to the field of information security and cryptography, and more particularly to a public key cryptosystem capable of performing key negotiation, encrypting/decrypting data messages, and signing/verifying.
  • Cryptography is a science and technology that studies encryption and decryption transformation.
  • people refer to plain text as plaintext; incomprehensible text that transforms plaintext into ciphertext.
  • the process of transforming plaintext into ciphertext is called encryption; the reverse process, that is, the process of transforming ciphertext into plaintext is called decryption.
  • This encryption or decryption transformation is controlled by a key.
  • the cryptosystem used in an open environment should meet the following basic requirements:
  • Integrity Ensure that information is not arbitrarily or intentionally modified
  • Non-repudiation Prevent individuals or entities from denying the information they have published by destroying evidence to prove that something has happened.
  • Public key cryptography is a key technology to address the above-mentioned confidentiality, integrity, and non-repudiation.
  • the official birth of it is the "New Directions in Cryptography” by W. Diffie and M. Hellman in 1976 (W. Diffe, ME Hellman, "New direction in cryptography", IEEE Trans., 1976, 22, 644-654 ).
  • the public key cipher uses a public key and a private key.
  • the public key can be publicly delivered, but the associated private key is kept secret. Only by using a private key can decrypt the data encrypted with the public key and sign the data.
  • the role of the public key is to encrypt the information and verify the correctness of the signature.
  • the public key cipher can also implement a key agreement protocol, that is, two users establish a key shared by both parties on a completely public channel without any prior secret agreement.
  • Rivest, Shamir, and Adleman in 1978 Key cryptography (RL Rivest, A. Shamir, and LM Adleman, "A method for obtaining digital signatures public-key cryptosystems", Communications of the ACM, 21 (1978), 120-126), whose security is based on large integer factors Decompose the problem.
  • the second is the DH system.
  • the key agreement protocol invented by Diffie and Hellman in 1976, and the ElGamal encryption and digital signature scheme proposed by ElGamal in 1985 (T. ElGamal, "A public key cryptosystem and signature scheme based on discrete logarithms", IEEE Transactions on Information Theory, 31 (1985), pp. 469-472.), whose security is based on the discrete logarithm problem on multiplicative groups of finite fields.
  • This type of algorithm also includes the US Digital Signature Standard DSS (Federal Information Processing Standard FIPS 186) and so on.
  • the third is the ECC system.
  • Elliptic Curve Public Key Cryptography (VS Miller, “Use of elliptic curve in cryptography”, CRYPTO' 85, Springer-Verlag, 1986, pp. 417-426.) (N), which Miller and Koblits independently invented in 1985 (N) Koblitz, "Elliptic curve cryptosystems", Mathematics of Computation, v. 48, n. 177, 1987, pp. 203-209.), whose security is based on the discrete logarithm problem of elliptic curve groups.
  • This type of algorithm also includes the hyperelliptic curve public key cryptosystem (N. Koblitz, "Hyperelliptic cryptography", of Crypto., 1989, 1(3), ⁇ .139-150.)
  • the technical problem to be solved by the present invention is to provide a public key cryptosystem coding method and apparatus by using a conformal iterative transform method to realize key negotiation, encryption and decryption and digital with larger algorithm space and stronger security. Signed technical solution.
  • a method for key agreement which includes:
  • Step 1 the user group shared by the preset user group ( ⁇ , the user group includes at least two users; the is a non-linear function group of the meta-vector X to the meta-vector
  • A(x) needs to satisfy:
  • Step 2 Each user in the user group exchanges intermediate results related to integer layer iterations
  • Step 3 Each user uses the received intermediate result to calculate a key shared by the user group.
  • the step 2 further includes: the first user selecting an integer, calculating the first intermediate result, and transmitting to the second user; the first intermediate result and the A Layer iteration of (x);
  • the second user selects an integer, calculates a second intermediate result, and passes it to the first user; the second intermediate result is related to a layer iteration of A(x).
  • the value of the coefficient in A(x) may be determined according to a pseudo-random sequence; the seed of the pseudo-random sequence is used to identify the A(x).
  • a method for encoding and decoding a digital message including:
  • Step 1 Pre-set the shared side between the encryption end and the decryption end ( ⁇ ; the AW is a non-linear function group from the meta-vector to the meta-vector ⁇
  • Step 2 Select the integer ⁇ as the private key; use ⁇ ( ⁇ ⁇ layer iteration to establish the corresponding public key; Step 3, the encryption side selects the integer ⁇ , use the public key to convert to the intermediate key for ⁇ , and then use The intermediate key encrypts the plaintext, and transmits the result of the encryption and the result of the transformation to the decryption end; the transformation result of the t is related to the t-layer iteration of A(x);
  • Step 4 The decryption end uses the transformation result of the ⁇ , the private key, and the ⁇ ( ⁇ ) to calculate the same intermediate key, and then uses the intermediate key to decrypt the encryption result.
  • the private key is established by the following steps:
  • Presetting a private key table, ..., and corresponding public key tables ⁇ ... , Giller are distributed in a key distribution center;
  • a pointer to multiple private key tables is obtained according to the user ID; respectively, one or more private key components are respectively obtained from the plurality of private key tables pointed to, and the private key of the user is obtained in combination.
  • a method for digital signature and verification including: Step 1, a preset signature end and a verification end share a ⁇ ( ⁇ ; the ⁇ is determined by a meta vector Nonlinear function group of metavector ⁇
  • Step 2 Select the integer ⁇ as the private key; use ⁇ ( ⁇ layer to iterate to establish the corresponding public key; Step 3.
  • the signature end selects the integer ⁇ , and transforms the data to be signed into the private key according to the preset rule.
  • Intermediate message then transmitting a digital signature containing the intermediate message and the result of the transformation of ⁇ to the verification end; the transformation result of the t is related to the t-layer iteration of A(x);
  • Step 4 The verification end uses the transformation result of ⁇ , the data to be signed, the intermediate message, the public key, and the verification to satisfy whether the preset rule is met. If yes, the digital signature verification is passed.
  • a system for key agreement including: a sharing unit, configured to store a user group shared ⁇ ( ⁇ , the user group includes at least two users; Nonlinear function group of metavector X to ⁇ -element vector
  • A(x) needs to satisfy:
  • An intermediate result exchange unit is connected to each user end in the user group for transmitting intermediate results related to integer layer iterations of each user in the user group to other users.
  • the key calculation unit is located at each user end of the user group, and is configured to calculate, by using the received intermediate result for each user, a key K shared by the user group.
  • a system for encoding and decoding digital messages including:
  • a shared unit configured to store ⁇ ( ⁇ ) shared by the encryption end and the decryption end ;
  • the A(x) is a non-linear function group from the n-ary vector X to the meta-vector
  • a public-private key establishing unit for selecting an integer as a private key; using a layer of iteration to establish a corresponding public key;
  • An encryption unit located at the encryption end, for selecting an integer t, converting the public key into an intermediate key for t, encrypting the plaintext with the intermediate key, and transmitting the result of the encryption and the result of the transformation to the decryption end;
  • the transformation result of t is related to the t-layer iteration;
  • the decryption unit located at the decryption end, is configured to calculate the same intermediate key by using the transform result of t, the private key k and A(x), and decrypt the encrypted result by using the intermediate key.
  • a system for digital signature and verification including:
  • is a ⁇ element vector X to a non-linear function group of the meta-vector
  • a public-private key establishing unit for selecting an integer as a private key; using a layer of iteration to establish a corresponding public key; a signature unit, located at the signature end, for selecting an integer ⁇ , transforming the data to be signed into an intermediate message related to the private key according to a preset rule, and transmitting a digital signature including the intermediate message and the transformation result of t to the verification end;
  • the transformation result of t is related to the t-layer iteration;
  • the verification unit is located at the verification end, and is used to use the transformation result of the ⁇ , the data to be signed, the intermediate message, the public key, and the ⁇ ( ⁇ to verify whether the preset rule is satisfied, and if so, the digital signature verification is passed.
  • the present invention has the following advantages:
  • the inventive proposal proposes to construct a public key cryptosystem based on the number of layers of multivariate nonlinear conformal iterative transformation on the domain or on the ring; the public key cryptosystem can implement key negotiation, encryption and digital signature With a unique coding style and strong anti-attack capability, the size and complexity of the cryptographic algorithm are significantly enhanced to solve the problems of small algorithm space and insufficient security in the prior art.
  • FIG. 1 is a flow chart of an embodiment of a method for key agreement according to the present invention
  • FIG. 2 is a flow chart of an embodiment of a method for establishing a nonlinear function group ⁇ according to the present invention
  • FIG. 3 is a flow chart of another embodiment of a method for establishing a nonlinear function group according to the present invention
  • FIG. 5 is a flow chart of an embodiment of a method for encoding and decoding digital messages
  • FIG. 5 is a flow chart of an embodiment of a method for digital signature and verification of the present invention
  • Schematic diagram of a digital signature data stream
  • FIG. 7 is a schematic diagram of a signature verification data stream of the present invention.
  • FIG. 8 is a schematic diagram of a mathematical problem based on the security of the present invention based on an iterative layer number problem of a multivariate nonlinear conformal iterative transformation
  • FIG. 9 is a schematic diagram of a mathematical problem based on the security of the present invention based on an iterative layer number problem of a multivariate nonlinear conformal iterative transformation.
  • the invention belongs to the category of information security products and is mainly applied to network trust systems, such as documents, banks, mobile phones, internet, e-commerce, e-government, logistics, network monitoring, power control, fund transfer, transactions, data encryption and the like.
  • Password Generally understood as an algorithm for information encryption and decryption transformation. Its basic purpose is to disguise information so that outsiders cannot understand the true meaning of the information, and insiders can understand the original meaning of the disguised information.
  • Public key cryptosystem The public key cryptosystem uses two keys—a public key (referred to as: public key) and a private key (referred to as: private key).
  • the public and private keys are mathematically related, but it is difficult to calculate the private key from the public key.
  • the public key can be publicly transmitted between the communicating parties, or it can be publicly published as a telephone number, and the private key is kept in secret by the authorized user.
  • anyone can find its public key from the name of a user, so it can send an encrypted message to this user. Only authorized users can use their private key to complete the decryption.
  • the public key cryptosystem also provides the ability to digitally sign and authenticate: an authorized user can sign the information with his private key (equivalent to the process of decrypting with the private key described above); other users cannot sign because they do not have the private key. However, the user's public key can be used to verify the correctness of the signature (equivalent to the above process of encrypting with the public key).
  • Two or more users establish a key shared by two or more parties on a fully public channel without any prior secret agreement.
  • Finite field A concrete and visual mathematical structure that can be understood in a colloquial manner as a collection of finite elements that can be added, subtracted, multiplied, and divided. (usually denoted as F, when the number of elements in the domain is prime p, it is recorded as a finite field F.)
  • Rational fraction on a finite field It can be understood as the division of two polynomials: / (JCl "'") mod p
  • the multiplicative inverse of a polynomial other than the o polynomial is
  • Ring (rmg) is a mathematical structure, denoted R, which can be understood as a collection of elements with both addition and multiplication and satisfying the law of multiplication.
  • R a mathematical structure, denoted R, which can be understood as a collection of elements with both addition and multiplication and satisfying the law of multiplication.
  • the number of elements consisting of ⁇ 0, 1, is a set of positive integers, and the addition and multiplication specified in the sense of the modulus is called the integer residual class ring Z ra .
  • the method may include: Step 101: Pre-set a user group shared by a user group to include at least two users; To the nonlinear function group of the metavector
  • A(x) needs to satisfy:
  • Step 102 Each user in the user group exchanges intermediate results related to integer layer iterations of each other;
  • Step 103 Each user uses the received intermediate result to calculate a key shared by the user group.
  • each user in the user group can exchange the integers hidden in the iteration result of the user group to achieve the key shared by the parties on the public channel.
  • the symmetry can be performed. Encryption.
  • the purpose of key negotiation is to establish the key used by the symmetric password. The usual reason is: The public key encryption speed is too slow. Generally, the public key is used to establish the key used by the symmetric password, and then the symmetric password is used. The encryption and decryption are completed at a faster speed.
  • the purpose of this method is also to use keyless secure communication, that is, secret communication for temporary key negotiation for each communication, which is characterized by not being afraid of the key being leaked in advance, so that the internal personnel It doesn't make sense to sell a key, because the public-private key method still has a problem that the private key is leaked beforehand.
  • keyless secure communication that is, secret communication for temporary key negotiation for each communication, which is characterized by not being afraid of the key being leaked in advance, so that the internal personnel It doesn't make sense to sell a key, because the public-private key method still has a problem that the private key is leaked beforehand.
  • the user group may include two or more users.
  • each user in the user group needs to exchange information with each other to establish a key shared by the entire group. Since the exchange of information between two users is the basis for the exchange of multiple users, and the information exchange process between multiple users can be regarded as a repeated process of exchange between users, the following two users are The example is explained.
  • the step 2 may further refine: the first user selects an integer, calculates a first intermediate result, and delivers to the second user; The result is related to the layer iteration of A(x); the second user selects an integer, computes a second intermediate result, and passes it to the first user; the second intermediate result is related to the layer iteration.
  • the method further includes: establishing a vector shared by the user group, the number of arguments is greater than 1 and the user group includes only two users,
  • the step 102 further includes: the first user selecting an integer, substituting g and performing layer AW iteration: rf ⁇ A ⁇ ), passing the calculation result to the second user; the second user selecting the integer, substituting g ⁇ ( ⁇ ) and perform layer ⁇ ( ⁇ ) iteration: d ⁇ A ⁇ q , put the calculation result Rf 2 is passed to the first user;
  • ⁇ function type and method of establishing A(x) For example, a finite field or a function on a finite ring that appears in an exponential power manner; it is not described in detail here, and only a preferred embodiment of the present invention is described.
  • step 101 The "presets" described in the above may include: real-time establishment, pre-establishment or others establishment.
  • the present invention provides three types of establishing methods.
  • ⁇ 1, F be the specified domain
  • R be the specified ring
  • x (x u ..., x n )
  • y (y u ..., y n )
  • Step 201 Pre-configured structure: consisting of n-ary rational fractional functions on n domains F, each of which is rational
  • the numerator and denominator in the fractional function are linear polynomials for x descent, whose denominator polynomials are the same;
  • Step 202 Receive a related technical indicator parameter of A(x), where the indicator parameter includes an amount of the variable And the data length of the argument;
  • Step 203 A coefficient of each item in the generation
  • Step 204 Output the obtained according to the preset structure.
  • the first type consists of the "meta rational fractional function" on F:
  • Step 301 the second type of "meta-linear function group A can be established by the following steps: Step 301, Preset ⁇ () structure: consists of "meta rational function on the domain F, which contains For the term of d, greater than 1 time; when the denominator of Ai ⁇ x 1 is a polynomial of degree 0, the rational function is a polynomial; when the denominator of Ai ⁇ x 1 is a polynomial greater than 1 degree, the rational function is a rational part formula;
  • Step 302 Receive a related technical indicator parameter of A(x), where the indicator parameter includes an argument quantity “, a data length of the argument, and a highest nonlinear number of times;
  • Step 303 Generate a representation according to the indicator parameter and the preset structure, and the non-zero coefficient in the A(x) is represented by an argument symbol;
  • Step 307 Output the obtained A(x).
  • the second type consists of the "meta rational function" on F:
  • A(x) (A 1 (y 1 , ..., y n ), ..., ⁇ , ..., y n )), where :
  • Step a Preset structure: ⁇ 3 ⁇ 4 « Rings R on the "metapolynomial composition: it contains about ...," more than 1 term;
  • Step b receiving relevant technical parameter parameters of A(x), where the indicator parameter includes the number of arguments, the data length of the argument, and the highest non-linear number of times;
  • Step c generating a representation according to the indicator parameter and the preset structure, and the non-zero coefficient in the A(x) is represented by an argument symbol;
  • Step d substituting A(x) into itself and performing unwrapping, simplification of data processing:
  • B(x) A(A(x ee, new for B(x) versus A(x))
  • a polynomial is generated for the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
  • Step f judging whether the system of equations has a solution, if there is no solution, returning to step c; if there is a solution, calculating a set of solutions of the system of equations, and taking the value of the coefficient in the step, substituting into the step c to generate Representation of A(x);
  • Step g output the obtained A(x).
  • the third type consists of the "metapolynomial function on R":
  • the method may further include: comparing B(x) with A(x), if there are at least two new items in the B(x) for each of the newly appearing items of X, performing step 305 or step e , otherwise return to step 303 or step 0.
  • the purpose of the present invention is to find a specific function that satisfies the conformal iteration, and if there is only one new item, the coefficient of this term multiplied by any number not equal to zero cannot be equal to zero (if it is on the ring)
  • the probability that the function is equal to zero is very small), and if there are more than two items, it is possible to add these coefficients to be equal to zero, thus eliminating the newly added item after iteration. That is, the effect of initial filtering can be achieved, the number of calls to the solution equation can be reduced, and computing resources can be saved.
  • the above method of establishing ⁇ ( ⁇ ) by using an indefinite system of equations on coefficients can ensure that the function scale after two iterations does not expand, and can guarantee a large probability of satisfying the requirements of the present invention.
  • more screening steps may be included for further filtering, for example, verification
  • the function scale after the layer iteration does not expand, or whether the combination law about the iterative operation is satisfied.
  • mod p set the desired optimal ⁇ (function representation of ⁇ , which is beyond the scope of the present invention, but has a significant impact on the implementation of the present invention. In a sense, This work often requires intuition and experience to design and analyze, rather than relying entirely on rigorous theoretical derivation and proof. Especially for complex nonlinear functions, there are many options. The best way is to try different transformations. Until the desired form of function is obtained. The specific algorithm of each layer of the function, the relationship between the layers, and how to combine several simple functions into a relatively complex function can be imported into Mathematica and other software. As a known condition for solving the equation, to improve the calculation efficiency.
  • a simple reversible nonlinear transformation can be set first:
  • the third step is to establish a simultaneous equation T and determine if it has a solution:
  • is a complex multivariable nonlinear indefinite system of equations, but the purpose of establishing this system is to find any set of special solutions, which is easier than the general solution of the indefinite equations.
  • the above method of constructing A using the polynomial is also suitable for establishing the rational fraction using the above and using the polynomial of the integer residual class ring Z W to establish the ⁇ ( ⁇ , and generalize to the «> 2 case, The established derivation process is more complicated.
  • a short data /0 can be used as a seed of a pseudo-random sequence generator, using the pseudo-random sequence generated by it ( ⁇ , ⁇ 2 , to establish the corresponding ⁇ ( ⁇ , thus using the short data / 0 to indicate the corresponding replacement only It is necessary to re-agreed /0. That is, preferably, the value of the coefficient in A(x) can be determined according to the pseudo-random sequence; and the seed of the pseudo-random sequence is used to identify the A(x).
  • the following invention provides a specific way of two key negotiation methods, the difference being whether the information conveyed by the public uses the vector d t or the function Bi(x).
  • a method for encoding and decoding a digital message according to the present invention is disclosed, which is mainly used for encryption and decryption, and may specifically include:
  • Step 401 The preset encryption terminal and the decryption end share the non-linear function group from the meta-vector X to the meta-vector J.
  • A(x) needs to satisfy:
  • Step 402 Select an integer ⁇ as a private key; use the layer iteration to establish a corresponding public key; Step 403, the encryption end selects an integer ⁇ , converts the public key into an intermediate key about ⁇ , and then uses the intermediate key Encrypting the plaintext, transmitting the result of the encryption and the result of the transformation to the decryption end; the transformation result of the t is related to the t-layer iteration of A(x);
  • Step 404 The decryption end uses the transformation result of the ⁇ , the private key, and the ⁇ ( ⁇ ) to calculate the same intermediate key, and then uses the intermediate key to decrypt the encryption result.
  • the encryption end transmits the real-time selected integer ⁇ to the decryption end by the conversion result of t, and the decryption end actually implicitly includes the information of the private key k when establishing the public key, so
  • the two sides exchanged their own information and, therefore, can perform encryption and decryption very well.
  • the present invention does not need to be limited.
  • the purpose of the transformation is to prevent the third party from obtaining the information of the ⁇ , and the decryption end can use the intermediate key to obtain the intermediate key.
  • the setting of the transformation rule may affect the security of the present invention in the process of encryption and decryption.
  • the step 404 further includes: the decryption end uses the transformation result v of the t, the private key k and the calculation to obtain the same intermediate key, and then uses the intermediate key to decrypt the encryption result C,
  • the encryption method for converting the plaintext M into ciphertext using the public key rf is: randomly select the integer ⁇ , calculate:
  • the step 404 further includes: the decryption end uses the transformation result V of the t, the private key k, and calculates the same intermediate key, and then uses the intermediate key to decrypt the encryption result C to obtain the plaintext.
  • for the establishment process of the n-ary nonlinear function group ⁇ ( ⁇ in the embodiment of the encryption and decryption in this section, refer to the foregoing related part, which is not described in detail here.
  • This embodiment can also determine the ⁇ according to the pseudo-random sequence ( The value of the coefficient in ⁇ ); the seed of the pseudo-random sequence is used to identify the ⁇ ( ⁇ ).
  • this embodiment can also establish an identity-based key management system.
  • ID-based key management is to directly use the user's identity, such as name, address, telephone, etc. as the user. Public key.
  • the private key ho a private key preset table, ..., and the corresponding public key distributed in Table G 1 a key distribution center; according to the predetermined rule, to obtain the identity of the user ID to point a pointer of the plurality of private key tables; respectively obtaining a private key component from each of the plurality of private key tables pointed to, and combining to obtain the private key of the user.
  • the specific description is as follows:
  • Each of the ⁇ key distribution centers independently establishes its own sufficiently large private key table, ..., and the corresponding public key table G 1 ..., G,;
  • the content of the record is a positive integer, denoted by y , l, 2, the content of the related record in the public key table is the corresponding public key; the public key table is disclosed, and the private key table is secretly saved by each key distribution center;
  • each authorized user receives a private key component from each of the key distribution centers:
  • the invention uses a plurality of key distribution centers to jointly establish a user private key to implement an identity-based key management system, which is characterized in that: the user ID is the public key of the user; each key distribution center and each user Managing their own secrets, no one can get all the secrets; each key distribution center is not restricted by the administrative management system and computing power, but is unable to steal the user's private key due to lack of information.
  • the present invention provides two encryption schemes, the difference being whether the public key uses the vector rf or the function B(); the scheme 1 uses a vector as the public key, and the scheme 2 uses a function group as the public key.
  • the advantage of the encryption scheme 1 is that the data length of the public key is very short, and the advantage of the encryption scheme 2 is that the security of the password is stronger.
  • the following are specific instructions:
  • the encryption scheme 1 uses a vector ⁇ 4) as the public key, and the advantage is that the public key data length is short;
  • ⁇ ( ) ( ⁇ ( ⁇ , ⁇ 2 ), ⁇ ( ⁇ , ⁇ 2 ))
  • Step 501 Establishing a non-linear function shared by an n-ary vector X to an n-ary vector shared by a signature end and a verification end group
  • a w ( i, ..., x n )) where ⁇ >1, the A(x) needs to satisfy:
  • Step 502 Select an integer ⁇ as a private key; use the layer iteration to establish a corresponding public key;
  • Step 504 The verification end uses the transformation result of t, the data to be signed, the intermediate message, the public key, and the verification to satisfy whether the preset rule is met. If yes, the digital signature verification is passed.
  • the preset rules are determined privately by both parties, the validity of the signature can be guaranteed.
  • the present invention cannot be and need not be limited, and those skilled in the art can set them as needed.
  • the direct verification verifies whether the preset rule is met.
  • the preset rule may also be transformed, and the signature is verified to be correct by verifying whether the transformed pre-made rule is satisfied.
  • the method further includes: establishing, by the signature end and the verification end, a vector having a variable number greater than 1
  • the embodiment may also be determined according to a pseudo-random sequence.
  • the value of the coefficient in ⁇ ( ⁇ ); the seed of the pseudo-random sequence is used to identify the ⁇ ( ⁇ ).
  • the embodiment can also be applied to the case of constructing an identity-based key management system, which has been previously Detailed, so I won't go into details here.
  • the present invention also provides two digital signature schemes, the difference being whether the public key is a vector rf or a function B(x), as follows:
  • the input ⁇ of the function is some combination of information such as data M that the verifier can obtain, but at least M should be included, and its output w is a positive integer;
  • be an integer equation for c, t, w, A
  • the present invention further discloses a system for performing key agreement, which specifically includes: a sharing unit, configured to store a user group shared ⁇ ( ⁇ , the user group includes at least two users; Nonlinear function group of metavector X to ⁇ -element vector
  • An intermediate result exchange unit is connected to each user end in the user group for transmitting intermediate results related to integer layer iterations of each user in the user group to other users.
  • the key calculation unit is located at each user end of the user group, and is configured to calculate, by using the received intermediate result for each user, a key shared by the user group.
  • the present invention also discloses a system for encoding and decoding a digital message, comprising: a sharing unit, configured to store A(x) shared by the encryption end and the decryption end ; the A(x) is by n Metavector X to the nonlinear function group of the metavector
  • a public-private key establishing unit for selecting an integer as a private key; using a layer iteration of A ⁇ to establish a corresponding public key;
  • An encryption unit located at the encryption end, for selecting an integer to convert the public key into an intermediate key for t, and then encrypting the plaintext by using the intermediate key, and transmitting the result of the encryption and the result of the transformation to the decryption end;
  • the transformation result is related to the t-layer iteration;
  • the decryption unit located at the decryption end, is configured to calculate the same intermediate key by using the transformation result of ⁇ , the private key, and ⁇ ( ⁇ ), and then decrypting the encryption result by using the intermediate key.
  • the present invention also discloses a system for digital signature and verification, comprising: a sharing unit, configured to store the identifier shared by the signature end and the verification end ( ⁇ is by n-direction The quantity X to the nonlinear function group of the metavector
  • a public-private key establishing unit for selecting an integer as a private key; using a layer iteration of A ⁇ to establish a corresponding public key;
  • a signature unit located at the signature end, for selecting an integer ⁇ , transforming the data to be signed into an intermediate message related to the ⁇ and the private key according to a preset rule, and then transmitting a digital signature including the intermediate message and the result of the transformation of the ⁇ to the verification end;
  • the transformation result of ⁇ is related to the ⁇ layer iteration;
  • the verification unit is located at the verification end, and is configured to use the transformation result, the data to be signed, the intermediate message, the public key, and the verification to satisfy the preset rule. If yes, the digital signature verification is passed.
  • the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment.
  • the corresponding module units are all virtualized for the corresponding execution steps. In order to save space, the corresponding process steps are not described here one by one, but Those skilled in the art should be aware that each execution step can correspond to a virtual module one by one. The following is an example with a simple explanation:
  • the foregoing device embodiments may further include an establishing unit, specifically including the following modules: a structure determining module, configured for presetting:) consisting of a "metapolynomial on a ring R: it contains more than one time. Item
  • a parameter determining module configured to receive a related technical indicator parameter of the ⁇ ( ⁇ ), where the indicator parameter includes an argument quantity “, a data length of the argument, and a highest non-linear number of times;
  • a random generation module configured to generate a representation form according to the indicator parameter and the preset structure, wherein the non-zero coefficient in the A(x) is represented by an argument symbol;
  • a judgment module configured to determine whether the equation group has a solution, and if there is no solution, return a random generation model a block; if there is a solution, a set of solutions of the system of equations is calculated and substituted as a value of the coefficient in A(x) into the representation generated by the random generation module;
  • the result output module is used to output the resulting ⁇ ( ⁇ ).
  • the Diffie-Hellman key agreement protocol is: Two users apply the common agreement; , g, when establishing the key f of the mutual secret agreement on the public channel, execute:
  • M odp where is plaintext, a, b is ciphertext
  • the decryption algorithm is:
  • M and b/ can be understood as simple symmetric cryptographic encryption and decryption operations.
  • the verification algorithm is: If ⁇ 1110 (1;?, then the signature is verified;
  • At ( 3+ mod (p - 1), depending on the ⁇ , w taxi, and whether the value is 1, you can establish different signature equations (see “Applied Cryptography - Protocols, Algorithms and C Programs", Bruce Schneier, China Machine Press, 2000., pp. 389-399).
  • DH proved for the first time that "on a completely open channel, even if the communication parties do not have any secrets agreed in advance, they can conduct confidential communication.” This is the most revolutionary cryptography for thousands of years. Sexual progress, its contribution is mainly to propose new concepts. However, the security of DH's specific algorithm still has a lot of room for improvement.
  • the main difference between the present invention and DH is that the mathematical difficulties on which the two are based are different.
  • the security of the present invention is based on the iterative layer number problem of multivariate nonlinear conformal iterative transformation, ⁇ : set to a given nonlinear conformal iterative function group, which is a positive integer, and B is a layer iteration, then known A (x), B (x) seeking is difficult.
  • the core idea of the various algorithms of the present invention is that a certain integer k is preset as a secret parameter, and a k-layer iteration B of AW is used as a public parameter, and then the parameter is publicized (soliciting the secret parameter k is difficult, by secret It is easy to find the parameter B for the parameter.
  • another expression of the core idea of various algorithms of the present invention is: preset g, A(x), with a positive integer as a secret parameter, a vector as a public parameter, and a secret parameter by a public parameter ⁇ sleepy Difficult, it is easy to ask for public parameters from secret parameters.
  • ⁇ expression as a public parameter, but in the process of calculation, you need to use B.
  • the advantage of this expression is: the data length is significantly reduced than the function length of B, saving the public key storage.
  • the invention achieves a significant improvement in the security of the password, and the beneficial effects thereof are as follows: Compared with DH, the invention runs in a larger and more complex algorithm space, causing the scale of the cryptographic function to explode. .
  • a w (x) The non-linear number of coefficients will increase at a faster rate, causing A W (X) to explode at a faster rate with respect to the function size of the coefficients.
  • the nonlinear number of A w (x) with respect to the coefficient is (2 fc -l).
  • the required function sequence ⁇ (1) , ⁇ (2) ( ) Performing a generalized discrete Fourier transform, this transformation is subject to the number of terms in the function A w , that is, when A w explodes on the function scale of the coefficient, the cost of performing the generalized discrete Fourier transform is greatly increased.
  • the present invention achieves a qualitative leap for the security of the password.
  • the mathematical expression is similar to DH.
  • the present invention is simply understood as a natural extension of DH, and the innovation difficulties of the present invention will be briefly described below.
  • the present invention proposes a completely new research direction, just in the mathematical expression
  • the extreme form is similar to DH.
  • the term “conformal iteration” is used for the first time in the present invention, but also its concept, definition, description of nature, method of determination, establishment of steps, etc., which was first proposed by the present invention.
  • the non-linear number of times c : ) remains constant, and a function that rapidly increases the number of nonlinearities of the coefficients in the function can be guaranteed, and such a function can be established by a certain method.
  • the invention belongs to pioneering research, and its mathematical theory background is not mature. There is very little information available, for example: How to understand the mathematical structure of the conformal iterative transformation from the perspective of abstract space? How to establish a homomorphic mapping from a rational fractional domain to a polynomial domain, and a homomorphic mapping from a polynomial domain to a basic domain? How to find the period of conformal iteration? How to determine the specific mathematical properties of conformal iterations and how to determine these properties? These issues involve some profound mathematical frontier topics that are not yet fully resolved.
  • the invention mainly establishes the signature equation by the calculation of integers instead of the calculation of one cycle. It should be noted that although this cycle problem exists in key negotiation, encryption and signature, the signature is The problem is especially acute.
  • the first is the difference in mathematical concepts: the points on the elliptic curve are represented by a two-dimensional array (X, the elliptic curve group defines an "addition" - one is a two point in an elliptic curve, seeking A three-point nonlinear operation, but this operation does not satisfy the definition of a conformal iterative function.
  • a conformal iterative transformation A(x) is equivalent to an n input, "output function, set ⁇ A (1) W, A (2) W, ... , A W W, for a iterative operation, constitutes a semigroup.
  • the so-called conformal iterative layer number problem can be understood as defining a “conformal iterative discrete logarithm problem” in the semigroup, and its mathematical properties and “elliptic curve dispersion” The logarithm problem is very different.
  • ECC uses the operation of values between two points, and the algorithm space corresponds to a two-dimensional plane.
  • the set of points of the elliptic curve, the elements in the set are represented by the value of the two-dimensional vector (X,; and the present invention uses an operator between two functions whose algorithm space corresponds to a polynomial group Or a collection of rational fractions, from the perspective of abstract space:
  • the elements in the set are represented by coefficients in the function group, independent of the value of their unknown element x 1 ; for example, a polynomial group (( ⁇ 3 ⁇ 4 ) + Mod /?) is described by the coefficients ⁇ , , , ⁇ , which are independent of the value of ( ⁇ , ⁇ ) and belong to the set of points in the upper 8-dimensional space; obviously, the present invention has a larger algorithm space, The law of change is also more complicated.

Abstract

The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information includes the following steps, Step 1, the shared A(x) of one user group is pre-set, and the use group includes at least two users, the A(x) is the nonlinear function group, in which the vector X of n variables is transformed to the vector Y of n variables, y=(y1,..., yn)=A(x)=(A1(x1,..., xn),...,An(x1,..., xn)), where n>1. As to A(x), the number of the coefficients of x which is not equal to 0 in the s-layered iteration A(s)(x) is unchanged, where the s is the integer. When B(x)=A(A(x)), then A(b(x))=B(A(x)). Step 2, the users of the user group interchange the middle results of the iteration of the A(x). Step 3, the users calculate the shared key K according to the middle results. So the complexity of cryptography and performance of anti-attack are improved.

Description

密钥协商的方法、 加 /解密的方法及签名 /验证的方法  Key negotiation method, encryption/decryption method, and signature/verification method
本申请要求于 2007 年 8 月 24 日提交中国专利局、 申请号为 200710120763.X,发明名称为"密钥协商的方法、加 /解密的方法及签名 /验证的 方法"的中国专利申请的优先权, 其全部内容通过引用结合在本申请中。  This application is required to be submitted to the Chinese Patent Office on August 24, 2007, application number 200710120763.X, and the Chinese patent application titled "Method of Key Agreement, Method of Addition/Decryption and Method of Signature/Verification" is preferred. The entire contents of which are incorporated herein by reference.
技术领域 本发明涉及信息安全与密码技术领域, 特别是涉及一种能够完成密钥协 商、 对数据消息加密 /解密以及签名 /验证的公钥密码体制。 TECHNICAL FIELD The present invention relates to the field of information security and cryptography, and more particularly to a public key cryptosystem capable of performing key negotiation, encrypting/decrypting data messages, and signing/verifying.
背景技术 密码技术是研究加密和解密变换的一门科学技术。通常情况下, 人们将可 懂的文本称为明文; 将明文变换成的不可懂的文本称为密文。把明文变换成密 文的过程叫加密; 其逆过程, 即把密文变换成明文的过程叫解密。这种加密或 解密变换是由密钥来控制的。在开放环境下使用的密码系统应满足以下基本要 求: BACKGROUND OF THE INVENTION Cryptography is a science and technology that studies encryption and decryption transformation. Usually, people refer to plain text as plaintext; incomprehensible text that transforms plaintext into ciphertext. The process of transforming plaintext into ciphertext is called encryption; the reverse process, that is, the process of transforming ciphertext into plaintext is called decryption. This encryption or decryption transformation is controlled by a key. The cryptosystem used in an open environment should meet the following basic requirements:
保密性: 保证信息不被泄漏给非授权的用户;  Confidentiality: Ensure that information is not leaked to unauthorized users;
完整性: 保证信息不被任意或蓄意地修改;  Integrity: Ensure that information is not arbitrarily or intentionally modified;
抗抵赖性: 防止个人或实体通过销毁证据来否认曾经发布过的信息, 以证 明某类事件确实曾经发生过。  Non-repudiation: Prevent individuals or entities from denying the information they have published by destroying evidence to prove that something has happened.
公钥密码是解决上述的保密性、 完整性、 抗抵赖性的关键技术。其正式诞 生的标志是 1976年 W.Diffie和 M.Hellman发表的《密码学的新方向》(W. Diffe, M. E. Hellman, "New direction in cryptography", IEEE Trans., 1976, 22, 644-654)。公 钥密码使用一个公钥和一个私钥,公钥可以公开传递,但相关的私钥是保密的。 只有使用私钥才能解密用公钥加密的数据、并对数据进行签名, 公钥的作用则 是对信息进行加密、 以及验证签名的正确性。公钥密码还可以实现密钥协商协 议, 即两个用户在事先没有任何秘密约定的条件下, 在完全公开的信道上, 建 立双方共享的密钥。  Public key cryptography is a key technology to address the above-mentioned confidentiality, integrity, and non-repudiation. The official birth of it is the "New Directions in Cryptography" by W. Diffie and M. Hellman in 1976 (W. Diffe, ME Hellman, "New direction in cryptography", IEEE Trans., 1976, 22, 644-654 ). The public key cipher uses a public key and a private key. The public key can be publicly delivered, but the associated private key is kept secret. Only by using a private key can decrypt the data encrypted with the public key and sign the data. The role of the public key is to encrypt the information and verify the correctness of the signature. The public key cipher can also implement a key agreement protocol, that is, two users establish a key shared by both parties on a completely public channel without any prior secret agreement.
目前被公认为有较强的安全性、 已广泛应用的公钥密码编码方案, 按照所 基于的数学难题分类, 只有以下三种:  Public key cryptography schemes, which are currently recognized as having strong security and have been widely used, are classified according to the mathematical problems they are based on, and only have the following three types:
一是 RSA体制。 由 Rivest、 Shamir和 Adleman在 1978年共同发明的公 钥密码体制 (R. L. Rivest, A. Shamir, and L. M. Adleman, "A method for obtaining digital signatures public-key cryptosystems", Communications of the ACM, 21(1978), 120-126), 其安全性基于大整数因子分解问题。 The first is the RSA system. Commonly invented by Rivest, Shamir, and Adleman in 1978 Key cryptography (RL Rivest, A. Shamir, and LM Adleman, "A method for obtaining digital signatures public-key cryptosystems", Communications of the ACM, 21 (1978), 120-126), whose security is based on large integer factors Decompose the problem.
二是 DH体制。 由 Diffie和 Hellman在 1976年发明的密钥协商协议, 以 及由 ElGamal在 1985年提出的 ElGamal加密和数字签名方案(T. ElGamal, "A public key cryptosystem and signature scheme based on discrete logarithms", IEEE Transactions on Information Theory, 31(1985), pp.469-472. ), 其安全性基于有限 域的乘法群上的离散对数问题。这种类型的算法还包括美国数字签名标准 DSS (美国联邦信息处理标准 FIPS 186) 等。  The second is the DH system. The key agreement protocol invented by Diffie and Hellman in 1976, and the ElGamal encryption and digital signature scheme proposed by ElGamal in 1985 (T. ElGamal, "A public key cryptosystem and signature scheme based on discrete logarithms", IEEE Transactions on Information Theory, 31 (1985), pp. 469-472.), whose security is based on the discrete logarithm problem on multiplicative groups of finite fields. This type of algorithm also includes the US Digital Signature Standard DSS (Federal Information Processing Standard FIPS 186) and so on.
三是 ECC体制。 由 Miller和 Koblits在 1985年各自独立地发明的椭圆曲 线公钥密码体制 (V. S. Miller, "Use of elliptic curve in cryptography", CRYPTO' 85, Springer-Verlag, 1986, pp.417-426. ) (N. Koblitz, "Elliptic curve cryptosystems", Mathematics of Computation, v.48, n.177, 1987, pp.203-209. ) , 其 安全性基于椭圆曲线群的离散对数问题。这种类型的算法还包括超椭圆曲线公 钥密码体制 (N. Koblitz, "Hyperelliptic cryptography", of Crypto., 1989, 1(3), ρρ.139-150. ) ο  The third is the ECC system. Elliptic Curve Public Key Cryptography (VS Miller, "Use of elliptic curve in cryptography", CRYPTO' 85, Springer-Verlag, 1986, pp. 417-426.) (N), which Miller and Koblits independently invented in 1985 (N) Koblitz, "Elliptic curve cryptosystems", Mathematics of Computation, v. 48, n. 177, 1987, pp. 203-209.), whose security is based on the discrete logarithm problem of elliptic curve groups. This type of algorithm also includes the hyperelliptic curve public key cryptosystem (N. Koblitz, "Hyperelliptic cryptography", of Crypto., 1989, 1(3), ρρ.139-150.)
值得注意的是, RSA、 DH、 ECC被大量使用, 但其安全性都没有得到理 论证明, 主要是由于现实需要 (签名、 识别、 支付、 密钥管理等), 在苦于没 有其它替代技术的情况下, 不得不用。但是, 由于上述三种公钥密码体制的安 全性并没有得到数学理论的证明,所以不排除这样一种可能: 经过几十年的分 析研究, 实际已经有人找到了破译它们的有效方法, 只不过这个事实没有公开 而已。  It is worth noting that RSA, DH, and ECC are widely used, but their security is not theoretically proven, mainly due to the actual needs (signature, identification, payment, key management, etc.), in the absence of other alternative technologies. Next, I have to use it. However, since the security of the above three public key cryptosystems has not been proved by mathematical theory, such a possibility cannot be ruled out: After several decades of analysis and research, some people have actually found an effective method for deciphering them, but only This fact is not open to the public.
并且, 随着量子计算机的研究进展, 支持上述三种公钥密码体制被破译的 可能性大大增加。 例如, 由 Shor在 1994 年发明的 Shor算法 (R W. Shor, "Algorithms for quantum computation: Discrete log and factoring", Proceedings of the 35th Symposium on Foundations of Computer Science, 1994, pp.124-134. ), 能 以多项式时间攻破所有的能够转换成广义离散傅立叶变换的公钥密码。  Moreover, with the advancement of quantum computer research, the possibility of supporting the above three public key cryptosystems to be deciphered has greatly increased. For example, the Shor algorithm invented by Shor in 1994 (R W. Shor, "Algorithms for quantum computation: Discrete log and factoring", Proceedings of the 35th Symposium on Foundations of Computer Science, 1994, pp. 124-134.), It is possible to break all public key ciphers that can be converted into generalized discrete Fourier transforms in polynomial time.
为此, 构建具有更大的算法空间和更强安全性的公钥密码体制, 具有重要 意义。 本发明便是基于这种思想而完成的研究结果。 发明内容 To this end, it is of great significance to construct a public key cryptosystem with greater algorithm space and stronger security. The present invention is the result of research based on this idea. Summary of the invention
本发明所要解决的技术问题是运用保形迭代变换的方法,提供一种公钥密 码体制编码方法和装置, 以实现具有更大的算法空间和更强安全性的密钥协 商、 加解密和数字签名的技术方案。  The technical problem to be solved by the present invention is to provide a public key cryptosystem coding method and apparatus by using a conformal iterative transform method to realize key negotiation, encryption and decryption and digital with larger algorithm space and stronger security. Signed technical solution.
为了解决上述问题, 依据本发明的实施例, 公开一种密钥协商的方法, 包 括:  In order to solve the above problems, according to an embodiment of the present invention, a method for key agreement is disclosed, which includes:
歩骤 1, 预置用户群共享的 Α(Λ , 所述用户群包括至少两个用户; 所述 是由《元向量 X到《元向量 的非线性函数组 Step 1, the user group shared by the preset user group (Λ, the user group includes at least two users; the is a non-linear function group of the meta-vector X to the meta-vector
其中, 《〉1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where, >1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, S is an integer; if B(x) = A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
歩骤 2,所述用户群中的各用户互相交换各自与 的整数层迭代有关的 中间结果;  Step 2: Each user in the user group exchanges intermediate results related to integer layer iterations;
歩骤 3, 各用户分别利用所接收的中间结果, 计算得到该用户群共享的密 钥 。  Step 3: Each user uses the received intermediate result to calculate a key shared by the user group.
优选的, 当该用户群仅包括两个用户时, 所述歩骤 2进一歩包括: 第一用户选择整数 , 计算第一中间结果, 并传递至第二用户; 所述第一 中间结果与 A(x)的 层迭代有关;  Preferably, when the user group includes only two users, the step 2 further includes: the first user selecting an integer, calculating the first intermediate result, and transmitting to the second user; the first intermediate result and the A Layer iteration of (x);
第二用户选择整数 , 计算第二中间结果, 并传递至第一用户; 所述第二 中间结果与 A(x)的 层迭代有关。  The second user selects an integer, calculates a second intermediate result, and passes it to the first user; the second intermediate result is related to a layer iteration of A(x).
进一歩, 可以依据伪随机序列确定 A(x)中的系数的值; 采用该伪随机序 列的种子, 标识该 A(x)。  Further, the value of the coefficient in A(x) may be determined according to a pseudo-random sequence; the seed of the pseudo-random sequence is used to identify the A(x).
依据本发明的另一实施例, 公开了一种用于编码和译码数字消息的方法, 包括:  In accordance with another embodiment of the present invention, a method for encoding and decoding a digital message is disclosed, including:
歩骤 1, 预置加密端和解密端共享的 Α(Λ ; 所述 AW是由《元向量 到《 元向量 ^的非线性函数组Step 1: Pre-set the shared side between the encryption end and the decryption end (Λ ; the AW is a non-linear function group from the meta-vector to the meta-vector^
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; B(x)=A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
歩骤 2、 选择整数^作为私钥; 运用 Α(Λ 的^层迭代建立对应的公钥; 歩骤 3、 加密端选择整数 ί, 运用 将公钥变换为关于 ί的中间密钥, 然后利用该中间密钥对明文进行加密,传送加密结果和 ί的变换结果至解密端; 所述 t的变换结果与 A(x)的 t层迭代相关;  Step 2: Select the integer ^ as the private key; use Α (Λ 层 layer iteration to establish the corresponding public key; Step 3, the encryption side selects the integer ί, use the public key to convert to the intermediate key for ί, and then use The intermediate key encrypts the plaintext, and transmits the result of the encryption and the result of the transformation to the decryption end; the transformation result of the t is related to the t-layer iteration of A(x);
歩骤 4、 解密端利用 ί的变换结果、 私钥 和 Α(χ)计算得到相同的中间密 钥, 然后利用该中间密钥对加密结果进行解密。  Step 4: The decryption end uses the transformation result of the ί, the private key, and the 中间(χ) to calculate the same intermediate key, and then uses the intermediate key to decrypt the encryption result.
优选的, 通过以下歩骤建立私钥:  Preferably, the private key is established by the following steps:
预置个私钥表 ,…, 以及对应的公钥表^ ... , G„ 分布在个密钥分配 中心;  Presetting a private key table, ..., and corresponding public key tables ^ ... , G„ are distributed in a key distribution center;
依据预置规则, 根据用户的身份 ID获得指向多个私钥表的指针; 分别从所指向的多个私钥表中各获取一个或者多个私钥分量,组合得到该 用户的私钥。  According to the preset rule, a pointer to multiple private key tables is obtained according to the user ID; respectively, one or more private key components are respectively obtained from the plurality of private key tables pointed to, and the private key of the user is obtained in combination.
依据本发明的另一实施例,公开了一种用于数字签名及验证的方法,包括: 歩骤 1, 预置签名端和验证端共享的 Α(Λ ; 所述 Α 是由《元向量 到《 元向量 ^的非线性函数组According to another embodiment of the present invention, a method for digital signature and verification is disclosed, including: Step 1, a preset signature end and a verification end share a Α (Λ ; the Α is determined by a meta vector Nonlinear function group of metavector^
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 则 A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; if B(x)=A(A(x)), then A(B(x)) = B(A(x)) ;
歩骤 2、 选择整数^作为私钥; 运用 Α(Λ 的^层迭代建立对应的公钥; 歩骤 3、 签名端选择整数 ί, 依据预置规则将待签名数据变换为与 、 私钥 相关的中间消息, 然后传送包含中间消息和 ί的变换结果的数字签名至验证 端; 所述 t的变换结果与 A(x)的 t层迭代相关;  Step 2: Select the integer ^ as the private key; use Α(Λ^ layer to iterate to establish the corresponding public key; Step 3. The signature end selects the integer ί, and transforms the data to be signed into the private key according to the preset rule. Intermediate message, then transmitting a digital signature containing the intermediate message and the result of the transformation of ί to the verification end; the transformation result of the t is related to the t-layer iteration of A(x);
歩骤 4、 验证端利用 ί的变换结果、 待签名数据、 中间消息、 公钥和 验证是否满足所述预置规则, 如果满足, 则该数字签名验证通过。  Step 4: The verification end uses the transformation result of ί, the data to be signed, the intermediate message, the public key, and the verification to satisfy whether the preset rule is met. If yes, the digital signature verification is passed.
依据本发明的另一实施例, 公开了一种密钥协商的系统, 包括: 共享单元, 用于存储用户群共享的 Α(Λ , 所述用户群包括至少两个用户; 所述 是由 η元向量 X到 η元向量 的非线性函数组 According to another embodiment of the present invention, a system for key agreement is disclosed, including: a sharing unit, configured to store a user group shared Α (Λ, the user group includes at least two users; Nonlinear function group of metavector X to η-element vector
其中, 《〉1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 x的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where, >1, the A(x) needs to satisfy: The s layer of A(x) is iterated A (i) (x), and A(x) Ratio, the number and type of terms whose coefficient of x is not 0 remains unchanged, S is an integer; if B(x) = A(A(x)), Bay ij A(B(x)) = B( A(x)) ;
中间结果交换单元, 连接所述用户群中的各用户端,用于传递所述用户群 中的各用户与 的整数层迭代有关的中间结果至其他用户 ·'  An intermediate result exchange unit is connected to each user end in the user group for transmitting intermediate results related to integer layer iterations of each user in the user group to other users.
密钥计算单元,位于所述用户群中的各用户端,用于针对各用户分别利用 所接收的中间结果, 计算得到该用户群共享的密钥 K。  The key calculation unit is located at each user end of the user group, and is configured to calculate, by using the received intermediate result for each user, a key K shared by the user group.
依据本发明的另一实施例, 还公开了一种用于编码和译码数字消息的系 统, 包括:  In accordance with another embodiment of the present invention, a system for encoding and decoding digital messages is also disclosed, including:
共享单元, 用于存储加密端和解密端共享的 Α(χ); 所述 A(x)是由 n元向 量 X到《元向量 的非线性函数组a shared unit, configured to store Α(χ) shared by the encryption end and the decryption end ; the A(x) is a non-linear function group from the n-ary vector X to the meta-vector
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
公私钥建立单元,用于选择整数 作为私钥;运用 的^层迭代建立对 应的公钥;  a public-private key establishing unit for selecting an integer as a private key; using a layer of iteration to establish a corresponding public key;
加密单元, 位于加密端, 用于选择整数 t, 运用 将公钥变换为关于 t 的中间密钥, 利用该中间密钥对明文进行加密, 传送加密结果和 ί的变换结果 至解密端; 所述 t的变换结果与 的 t层迭代相关;  An encryption unit, located at the encryption end, for selecting an integer t, converting the public key into an intermediate key for t, encrypting the plaintext with the intermediate key, and transmitting the result of the encryption and the result of the transformation to the decryption end; The transformation result of t is related to the t-layer iteration;
解密单元, 位于解密端, 用于利用 t的变换结果、 私钥 k和 A(x)计算得到 相同的中间密钥, 利用该中间密钥对加密结果进行解密。  The decryption unit, located at the decryption end, is configured to calculate the same intermediate key by using the transform result of t, the private key k and A(x), and decrypt the encrypted result by using the intermediate key.
依据本发明的另一实施例, 还公开了一种用于数字签名及验证的系统, 包 括:  According to another embodiment of the present invention, a system for digital signature and verification is also disclosed, including:
共享单元, 用于存储签名端和验证端共享的 所述 Α(Λ 是由 η元向 量 X到《元向量 的非线性函数组 a shared unit, configured to store the signature shared by the signature end and the verification end (Λ is a η element vector X to a non-linear function group of the meta-vector
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
公私钥建立单元,用于选择整数 作为私钥;运用 的^层迭代建立对 应的公钥; 签名单元, 位于签名端, 用于选择整数 ί, 依据预置规则将待签名数据变 换为与 私钥^相关的中间消息, 传送包含中间消息和 t的变换结果的数字 签名至验证端; 所述 t的变换结果与 的 t层迭代相关; a public-private key establishing unit for selecting an integer as a private key; using a layer of iteration to establish a corresponding public key; a signature unit, located at the signature end, for selecting an integer ί, transforming the data to be signed into an intermediate message related to the private key according to a preset rule, and transmitting a digital signature including the intermediate message and the transformation result of t to the verification end; The transformation result of t is related to the t-layer iteration;
验证单元, 位于验证端, 用于利用 ί的变换结果、待签名数据、 中间消息、 公钥和 Α(Λ验证是否满足所述预置规则, 如果满足, 则该数字签名验证通过。  The verification unit is located at the verification end, and is used to use the transformation result of the ί, the data to be signed, the intermediate message, the public key, and the Α (Λ to verify whether the preset rule is satisfied, and if so, the digital signature verification is passed.
与现有技术相比, 本发明具有以下优点:  Compared with the prior art, the present invention has the following advantages:
本发明创造性的提出:运用基于域上的或环上的多变元非线性保形迭代变 换的层数问题, 构建公钥密码体制; 该公钥密码体制可实现密钥协商、 加密和 数字签名, 具有独特的编码风格和很强的抗攻击能力, 使密码算法的规模和复 杂性获得显著增强, 以解决现有技术存在的算法空间小、 安全性不够等问题。 附图说明  The inventive proposal proposes to construct a public key cryptosystem based on the number of layers of multivariate nonlinear conformal iterative transformation on the domain or on the ring; the public key cryptosystem can implement key negotiation, encryption and digital signature With a unique coding style and strong anti-attack capability, the size and complexity of the cryptographic algorithm are significantly enhanced to solve the problems of small algorithm space and insufficient security in the prior art. DRAWINGS
图 1是本发明一种密钥协商的方法实施例的歩骤流程图;  1 is a flow chart of an embodiment of a method for key agreement according to the present invention;
图 2是本发明一种建立非线性函数组 Α 的方法实施例的歩骤流程图; 图 3是本发明另一种建立非线性函数组 的方法实施例的歩骤流程图; 图 4是本发明一种用于编码和译码数字消息的方法实施例的歩骤流程图; 图 5是本发明一种用于数字签名及验证的方法实施例的歩骤流程图; 图 6是本发明一种数字签名数据流的示意图;  2 is a flow chart of an embodiment of a method for establishing a nonlinear function group Α according to the present invention; FIG. 3 is a flow chart of another embodiment of a method for establishing a nonlinear function group according to the present invention; BRIEF DESCRIPTION OF THE DRAWINGS FIG. 5 is a flow chart of an embodiment of a method for encoding and decoding digital messages; FIG. 5 is a flow chart of an embodiment of a method for digital signature and verification of the present invention; Schematic diagram of a digital signature data stream;
图 7是本发明一种签名验证数据流的示意图;  7 is a schematic diagram of a signature verification data stream of the present invention;
图 8 是本发明的安全性所基于的数学难题一基于多变元非线性保形迭代 变换的迭代层数问题的示意图 1 ;  8 is a schematic diagram of a mathematical problem based on the security of the present invention based on an iterative layer number problem of a multivariate nonlinear conformal iterative transformation;
图 9 是本发明的安全性所基于的数学难题一基于多变元非线性保形迭代 变换的迭代层数问题的示意图 2。  9 is a schematic diagram of a mathematical problem based on the security of the present invention based on an iterative layer number problem of a multivariate nonlinear conformal iterative transformation.
具体实施方式 为使本发明的上述目的、特征和优点能够更加明显易懂, 下面结合附图和 具体实施方式对本发明作进一歩详细的说明。 The present invention will be further described in detail with reference to the accompanying drawings and specific embodiments.
本发明属于信息安全产品的范畴, 主要应用于网络信任系统, 例如证件、 银行、 手机、 互联网、 电子商务、 电子政务、 物流、 网络监控、 权力控制、 资 金转移、 交易、 数据加密等环节。  The invention belongs to the category of information security products and is mainly applied to network trust systems, such as documents, banks, mobile phones, internet, e-commerce, e-government, logistics, network monitoring, power control, fund transfer, transactions, data encryption and the like.
应用本发明所需的硬件环境属于本领域技术人员所熟知的知识。例如:计 算机、 网络设备、 手持设备或便携式设备、 可编程的消费电子设备、 智能卡、 单片机、 专用数字信号处理芯片、 多处理器系统、包括以上任何系统或设备的 分布式计算环境等等。 The hardware environment required to apply the present invention is well known to those skilled in the art. For example: Computers, network devices, handheld or portable devices, programmable consumer electronics devices, smart cards, microcontrollers, dedicated digital signal processing chips, multiprocessor systems, distributed computing environments including any of the above systems or devices, and more.
下面对本发明可能涉及的一些术语进行简单解释:  Some of the terms that may be involved in the present invention are briefly explained below:
密码:通常可理解为进行信息加密和解密变换的算法。它的基本目的是伪 装信息, 使局外人不能理解信息的真正含义, 而局内人能够理解伪装信息的本 来含义。  Password: Generally understood as an algorithm for information encryption and decryption transformation. Its basic purpose is to disguise information so that outsiders cannot understand the true meaning of the information, and insiders can understand the original meaning of the disguised information.
密钥:在执行密码算法的过程中, 唯一能控制明文与密文之间进行有效变 换的关键参数。  Key: The only key parameter that can control the effective conversion between plaintext and ciphertext during the execution of the cryptographic algorithm.
公钥密码体制: 公钥密码体制使用两个密钥——一个公开密钥(简称: 公 钥) 和一个私人密钥 (简称: 私钥)。 公钥和私钥在数学上是相关的, 但由公 钥计算出私钥是困难的。公钥可在通信双方之间公开传递, 也可以像电话号码 本一样公开发布, 私钥则由授权用户自己秘密保管。任何人从某个用户的名字 就能查到它的公钥, 因而可以给这个用户发送加密消息。只有授权用户自己才 能用他的私钥完成解密。  Public key cryptosystem: The public key cryptosystem uses two keys—a public key (referred to as: public key) and a private key (referred to as: private key). The public and private keys are mathematically related, but it is difficult to calculate the private key from the public key. The public key can be publicly transmitted between the communicating parties, or it can be publicly published as a telephone number, and the private key is kept in secret by the authorized user. Anyone can find its public key from the name of a user, so it can send an encrypted message to this user. Only authorized users can use their private key to complete the decryption.
公钥密码体制还提供了数字签名及认证的能力:授权用户能用他的私钥对 信息进行签名 (相当于上述用私钥解密的过程); 其他用户由于不掌握私钥而 不能进行签名,但能用该用户的公钥验证签名的正确性(相当于上述用公钥加 密的过程)。  The public key cryptosystem also provides the ability to digitally sign and authenticate: an authorized user can sign the information with his private key (equivalent to the process of decrypting with the private key described above); other users cannot sign because they do not have the private key. However, the user's public key can be used to verify the correctness of the signature (equivalent to the above process of encrypting with the public key).
密钥协商协议 (key agreement protocol) 两个或者多个用户在事先没有任 何秘密约定的条件下, 在完全公开的信道上, 建立双方或多方共享的密钥。  Key agreement protocol Two or more users establish a key shared by two or more parties on a fully public channel without any prior secret agreement.
域(finite field): 是一种具体而又形象的数学结构, 可以通俗地理解为能 进行加减乘除四则运算的有限个元素的集合。 (通常记做 F, 当域的元素数量 为素数 p时, 记做有限域 F 。)  Finite field: A concrete and visual mathematical structure that can be understood in a colloquial manner as a collection of finite elements that can be added, subtracted, multiplied, and divided. (usually denoted as F, when the number of elements in the domain is prime p, it is recorded as a finite field F.)
有限域上的多项式 (polynomial): 可以通俗地理解为当只有一个变元时: f (x) = asxs + as-\ XsA +…十 α0 χ0 (mod p) Polynomial over a finite field: can be understood in a common sense as when there is only one argument: f (x) = a s x s + a s -\ X sA +... ten α 0 χ 0 (mod p)
其中 x叫作变元, 叫作系数, 叫作项, 它们在 Ο, . . . ,/7-l之间取值。 当有多个 变元时: Where x is called an argument, called a coefficient, called a term, and they take values between Ο, . . . , /7-l. When there are multiple arguments:
f(xx, ..., xn) = Z a h ...in xi - xn (mod;?) 如果多项式中的项的数量相对很少, 叫做稀疏多项式; 反之叫做稠密多项 式。稠密多项式不仅有很高的次数, 而且项的数量非常多, 把它展开来表示需 要占用很大的空间位置。 f(x x , ..., x n ) = Z a h ... i n x i - x n (mod;?) If the number of terms in a polynomial is relatively small, it is called a sparse polynomial; otherwise it is called a dense polynomial. Dense polynomials not only have a high number of times, but the number of items is very large, and it is expanded to indicate that it takes a lot of space.
有限域上的有理分式 (rational fraction): 可理解为两个多项式相除: /(JCl"' ") mod p 除了 o多项式以外的多项式的乘法逆为 Rational fraction on a finite field: It can be understood as the division of two polynomials: / (JCl "'") mod p The multiplicative inverse of a polynomial other than the o polynomial is
( ¾ ..., χη)) - 1 (mod ) = (f(xh ... , χη)Υ~2 (mod ρ) 但当 ρ较大时,把上式展开需要巨大的存储空间,因此两个稀疏多项式相除(分 母不为 0多项式) 的结果, 通常是一个稠密多项式: =/( … 他,… 广 2 (mod^) 有理函数 (rational function): 可用两个多项式相除表示的函数。 若其分 母多项式的次数大于 0, 则表示为有理分式, 若其分母为 0次多项式, 则表示 为多项式。 ( 3⁄4 ..., χ η )) - 1 (mod ) = (f(x h ... , χ η )Υ~ 2 (mod ρ) But when ρ is large, the expansion of the above formula requires huge storage Space, therefore the result of dividing two sparse polynomials (the denominator is not a polynomial), usually a dense polynomial: =/( ... he,... 2 (mod^) rational function: two polynomial phases are available In addition to the function expressed, if the number of denominator polynomials is greater than 0, it is expressed as a rational fraction, and if its denominator is a 0th degree polynomial, it is represented as a polynomial.
环(rmg): 是一种数学结构, 记做 R, 可以通俗地理解为具有加法和乘法 两种运算并满足乘法分配律的元素的集合。 例如, 由 {0, 1, 组成的其元 素数量为正整数 集合, 以及在模 的意义上规定的加法和乘法, 叫做整数 剩余类环 ZraRing (rmg): is a mathematical structure, denoted R, which can be understood as a collection of elements with both addition and multiplication and satisfying the law of multiplication. For example, the number of elements consisting of {0, 1, is a set of positive integers, and the addition and multiplication specified in the sense of the modulus is called the integer residual class ring Z ra .
环上的多元多项式 (polynomial), 例如:  Polynomial on the ring, for example:
f(xx,...,xn)= X ··· ;1… ΐ (modw¾), w不一定是素数f(x x ,...,x n )= X ··· ; 1 ... ΐ (modw3⁄4), w is not necessarily a prime number
H— \-in < s H— \-i n < s
由于环的数学结构中没有定义除法运算, 因此只能建立环上的多项式, 而 不能建立环上的有理分式。  Since the division operation is not defined in the mathematical structure of the ring, only the polynomial on the ring can be established, and the rational fraction on the ring cannot be established.
参照图 1, 示出了一种密钥协商的方法实施例, 具体可以包括: 歩骤 101, 预置一用户群共享的 所述用户群包括至少两个用户; 所 述 是由《元向量 X到《元向量 的非线性函数组 Referring to FIG. 1, an embodiment of a method for key agreement is shown. Specifically, the method may include: Step 101: Pre-set a user group shared by a user group to include at least two users; To the nonlinear function group of the metavector
...,Αη(χχ, ..., χη)) 其中, 《〉1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ij A(B(x)) = B(A(x)); ...,Α η (χχ, ..., χ η )) Where, >1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, S is an integer; if B(x) = A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
歩骤 102,所述用户群中的各用户互相交换各自与 的整数层迭代有关 的中间结果;  Step 102: Each user in the user group exchanges intermediate results related to integer layer iterations of each other;
歩骤 103, 各用户分别利用所接收的中间结果, 计算得到该用户群共享的 密钥 。  Step 103: Each user uses the received intermediate result to calculate a key shared by the user group.
本实施例可以通过所述用户群中的各用户互相交换隐藏在 Α(Λ 的迭代结 果中的整数, 而达到在公开信道上建立各方共享的密钥。 密钥协商成功之后, 就可以进行对称加密了。一般情况下, 密钥协商的目的就是建立对称密码使用 的密钥。通常的原因是: 公钥加密速度太慢, 一般先用公钥建立对称密码使用 的密钥, 再用对称密码以较快的速度完成加解密。这种方式的使用目的还包括 无密钥保密通信, 即每次通信都要临时进行密钥协商的保密通信,特点是不怕 密钥被事先泄露, 使得内部人员出卖密钥变的没有意义, 因为公私钥方式毕竟 还有一个私钥被事先泄露的问题。  In this embodiment, each user in the user group can exchange the integers hidden in the iteration result of the user group to achieve the key shared by the parties on the public channel. After the key negotiation is successful, the symmetry can be performed. Encryption. In general, the purpose of key negotiation is to establish the key used by the symmetric password. The usual reason is: The public key encryption speed is too slow. Generally, the public key is used to establish the key used by the symmetric password, and then the symmetric password is used. The encryption and decryption are completed at a faster speed. The purpose of this method is also to use keyless secure communication, that is, secret communication for temporary key negotiation for each communication, which is characterized by not being afraid of the key being leaked in advance, so that the internal personnel It doesn't make sense to sell a key, because the public-private key method still has a problem that the private key is leaked beforehand.
所述的用户群可以包括两个或者两个以上的用户, 当然, 需要该用户群内 的各个用户都互相交换信息,才能够建立整个群上共享的密钥。 由于两个用户 之间互相交换信息是多个用户互相交换的基础,并且多个用户之间的信息交换 过程可以看作是用户两两之间交换的重复过程,所以下面都以两个用户为例进 行说明。  The user group may include two or more users. Of course, each user in the user group needs to exchange information with each other to establish a key shared by the entire group. Since the exchange of information between two users is the basis for the exchange of multiple users, and the information exchange process between multiple users can be regarded as a repeated process of exchange between users, the following two users are The example is explained.
优选的,当该用户群仅包括两个用户时,所述歩骤 2可以进一歩细化包括: 第一用户选择整数 , 计算第一中间结果, 并传递至第二用户; 所述第一中间 结果与 A(x)的 层迭代有关; 第二用户选择整数 , 计算第二中间结果, 并 传递至第一用户; 所述第二中间结果与 的 层迭代有关。  Preferably, when the user group includes only two users, the step 2 may further refine: the first user selects an integer, calculates a first intermediate result, and delivers to the second user; The result is related to the layer iteration of A(x); the second user selects an integer, computes a second intermediate result, and passes it to the first user; the second intermediate result is related to the layer iteration.
在本发明的另一个优选实施例中, 如果还包括以下歩骤: 建立该用户群共 享的、 变元数量大于 1的向量^ 并且, 该用户群仅包括两个用户, 则  In another preferred embodiment of the present invention, if the method further includes: establishing a vector shared by the user group, the number of arguments is greater than 1 and the user group includes only two users,
所述歩骤 102进一歩包括: 第一用户选择整数 , 把 g代入 并进行 层 AW的迭代: rf^A^^) , 把计算结果 传递给第二用户; 第二用户选 择整数 , 把 g代入 Α(χ)并进行 层 Α(χ)的迭代: d^ A^q , 把计算结果 rf2传递给第一用户; The step 102 further includes: the first user selecting an integer, substituting g and performing layer AW iteration: rf^A^^), passing the calculation result to the second user; the second user selecting the integer, substituting g Α(χ) and perform layer Α(χ) iteration: d^ A^q , put the calculation result Rf 2 is passed to the first user;
所述歩骤 103进一歩包括: 第一用户计算密钥 = ( ,...,^ ) = Α(¾)( ); 第二用户计算密钥 The step 103 further includes: the first user calculates the key = ( , . , ^ ) = Α (3⁄4) ( ); the second user calculates the key ;
其中, 所述 A(x)进一歩满足: A (A^)(x)) = A(^2)(x), 这样才可以 保证第一用户和第二用户计算得到的密钥 相同。 Wherein, the A(x) further satisfies: A (A^)(x)) = A(^ 2 )(x), so that the keys calculated by the first user and the second user are guaranteed to be the same.
在本发明的另一个优选实施例中, 当该用户群仅包括两个用户时, 所述歩骤 102进一歩包括: 第一用户选择整数 , 计算 层 Α(Λ 的迭代: ι(χ) = 2; 第二用户选择整数 , 计算 层 A(x)的迭代: B2(x) = A(^(x), 并把函数组 B2(x)传递给第一用户; In another preferred embodiment of the present invention, when the user group includes only two users, the step 102 further includes: the first user selects an integer, and calculates a layer Α (an iteration of Λ: ι(χ) = 2; the second user selects an integer, calculates the iteration of layer A(x): B 2 (x) = A ( ^(x), and passes the function group B 2 (x) to the first user;
所述歩骤 103 进一歩包括: 第一用户计算密钥 第二用户计 算密钥 = Β (X); The step 103 further includes: the first user calculates the key Second user calculation key = Β (X);
其中, 所述 A(x)进一歩满足: 若 B(x) = A(¾)(x), 则 B^)(x) = A(^)(x), 从 而可以保证第一用户和第二用户计算得到的密钥 相同。 Wherein, the A(x) further satisfies: if B(x) = A( 3⁄4 )(x), then B^)(x) = A(^)(x), thereby ensuring the first user and the first The keys calculated by the two users are the same.
下面对如何建立合适的 Α(Λ进行简单介绍, 当然, 除了本发明公开的这 些函数类型及其建立方法, 实际中, 还可能存在其他的 Α(Λ 函数类型及建立 A(x)的方法, 比如以指数幂方式出现的有限域或有限环上的函数; 在此无法一 一详述, 仅描述本发明的优选实施方式。 只要建立得到的 满足本发明的 限定要求即可。 歩骤 101中所述的 "预置"可以包括: 实时建立、 预先建立或 者他人建立等多种方式。  The following is a brief introduction to how to establish a suitable Α (Λ, of course, in addition to the types of functions disclosed in the present invention and their establishment methods, in practice, there may be other Α (Λ function type and method of establishing A(x) For example, a finite field or a function on a finite ring that appears in an exponential power manner; it is not described in detail here, and only a preferred embodiment of the present invention is described. As long as the defined requirements satisfying the present invention are established, step 101 The "presets" described in the above may include: real-time establishment, pre-establishment or others establishment.
在下面的描述中, 本发明给出了三种类型的 的建立方法。 设《〉1, F 为规定的域, R为规定的环, x = (xu ...,xn), y = (yu ...,yn), z= (z ...,zn), x y 或 R; 随机选择一个《元非线性保形迭代变换: j = A , 则可以从下面 的三种建立方法中选择。 In the following description, the present invention provides three types of establishing methods. Let 〉1, F be the specified domain, R be the specified ring, x = (x u ..., x n ), y = (y u ..., y n ), z= (z ... , z n ), xy or R; randomly select a "meta-nonlinear nonlinear conformal iterative transformation: j = A, then you can choose from the following three methods of establishment.
第一种类型  First type
参照图 2, 第一种类型的《元非线性函数组 可以通过以下歩骤建立: 歩骤 201、预置 的结构: 由 n个域 F上的 n元有理分式函数组成, 其每个有理分式函数中的分子、 分母均为关于 x„)的线性多项式, 其分 母多项式相同;  Referring to FIG. 2, the first type of meta-nonlinear function group can be established by the following steps: Step 201: Pre-configured structure: consisting of n-ary rational fractional functions on n domains F, each of which is rational The numerator and denominator in the fractional function are linear polynomials for x „, whose denominator polynomials are the same;
歩骤 202、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《 和变元的数据长度; Step 202: Receive a related technical indicator parameter of A(x), where the indicator parameter includes an amount of the variable And the data length of the argument;
歩骤 203、 生成 中的每个项的系数;  Step 203: A coefficient of each item in the generation;
歩骤 204、 按照预置结构, 输出得到的 。  Step 204: Output the obtained according to the preset structure.
具体而言, 第一种类型的 由《个 F上的《元有理分式函数组成:  Specifically, the first type consists of the "meta rational fractional function" on F:
y = ( ... , _y„) = Α(χ) = (Α11, …, ")), 其中: ιΌ iL 1 in n y = ( ... , _y„) = Α(χ) = (Α 11 , ..., ")), where: ιΌ iL 1 in n
y. =Ai(xl,...,xn) = y. =A i (x l ,...,x n ) =
I C H~ ... ~\~ C, aij,xi,yi≡F, n, ; n, 其有理分式中的分子、 分母均为线性多项式, 分母相同, 该 A(x)的特征 是: 把其代入自身并展开、 化简, z = (z ...,ζ„) = Α(Α(χ)) = (Α11, ...,y„), ...,A„(yh ...,y„)), 其中: ICH~ ... ~\~ C, a i j,x i ,y i ≡F, n, ; n, the numerator and denominator in the rational fraction are linear polynomials, the denominators are the same, the A(x) The characteristics are: Substituting itself into and expanding and simplifying, z = (z ..., ζ„) = Α(Α(χ)) = (Α 11 , ..., y„), .. .,A„(y h ...,y„)), where:
/0 /1 00+ί¾1 1 + ...+ 0w w ■ ... + a. /0 /1 00 +ί3⁄4 1 1 + ...+ 0w w ■ ... + a.
biO + bilXl + - + binXn n _i_ n _i_ _i_ n ""ο +...+"" biO + b il X l + - + b in X nn _i_ n _i_ _i_ n "" ο +...+""
u +a^ +...+a0nxn On a00 +a0lx{ +...+a0nxn bm+b0lxx+... + b0nxn u +a^ +...+a 0n x n On a 00 +a 0l x { +...+a 0n x n b m +b 0l x x +... + b 0n x n
¾≠0, for a,≠ 0 3⁄4≠0, for a, ≠ 0
满足:  Satisfy:
b.. = 0, for a.. = 0 第二种类型  b.. = 0, for a.. = 0 second type
参照图 3, 第二种类型的《元非线性函数组 A 可以通过以下歩骤建立: 歩骤 301、 预置 Α( )的结构: 由《个域 F上的《元有理函数组成, 其 含有关于 d, 的大于 1次的项; 当 Ai<x1 的分母为 0次多项式时, 该有理函数为多项式; 当 Ai<x1 的分母为大于 1次的多项式时, 该有理 函数为有理分式; Referring to FIG. 3, the second type of "meta-linear function group A can be established by the following steps: Step 301, Preset Α () structure: consists of "meta rational function on the domain F, which contains For the term of d, greater than 1 time; when the denominator of Ai<x 1 is a polynomial of degree 0, the rational function is a polynomial; when the denominator of Ai<x 1 is a polynomial greater than 1 degree, the rational function is a rational part formula;
歩骤 302、接收 A(x)的相关技术指标参数,所述指标参数包括变元数量《、 变元的数据长度和最高的非线性次数;  Step 302: Receive a related technical indicator parameter of A(x), where the indicator parameter includes an argument quantity “, a data length of the argument, and a highest nonlinear number of times;
歩骤 303、 依据所述指标参数和预置结构, 生成一个 的表示形式, 该 A(x)中的不为零的系数用变元符号表示;  Step 303: Generate a representation according to the indicator parameter and the preset structure, and the non-zero coefficient in the A(x) is represented by an argument symbol;
歩骤 304、将 A(x)代入自身并执行展开、化简的数据处理: (x) = A(A( )); 骤 305、针对 B(x)与 A(x)对比而新出现的每一个关于 X的项, 生成关于 这些项的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组; 歩骤 306、 判断该方程组是否有解, 如果没有解, 则返回歩骤 303; 如果 有解, 则计算得到该方程组的一组解, 并作为 A(x)中的系数的值, 代入歩骤Step 304: Substituting A(x) into itself and performing data processing of expansion and simplification: (x) = A(A( )); Step 305, newly appearing for comparison of B(x) and A(x) Every item about X, generated about The polynomial of the coefficients of these terms, such that the value of these polynomials is 0, thereby establishing a simultaneous equations; Step 306, determining whether the system has a solution, if there is no solution, returning to step 303; if there is a solution, then calculating Obtain a set of solutions for the system of equations, and substitute the values of the coefficients in A(x)
303生成的 的表示形式; a representation of 303 generated;
歩骤 307、 输出所得到的 A(x)。  Step 307: Output the obtained A(x).
具体而言, 第二种类型的 由《个 F上的《元有理函数组成:  Specifically, the second type consists of the "meta rational function" on F:
y = ( ...,_y„) = Α(χ) = (Α11, …, ")), 其中: y = ( ..., _y„) = Α(χ) = (Α 11 , ..., ")), where:
a O 其含有关于^,…,^的^次的项, >1, 当分母多项式为常数时该有理函数为 多项式, 该 A(x)的特征是: 把其代入自身并展开、 化简, z = (z ..., ) = A(A(x)) = (A1(y1, ...,yn), ...,Α^, ...,yn)), 其中: a O which contains ^ times for ^,...,^, >1. When the denominator polynomial is constant, the rational function is a polynomial. The characteristic of A(x) is: Substitute itself and expand and simplify. z = (z ..., ) = A(A(x)) = (A 1 (y 1 , ..., y n ), ..., Α^, ..., y n )), where :
ϊ+...+ϊη≤12 第三种类型 ϊ+...+ϊ η ≤1 2 Third type
第三种类型的《元非线性函数组 Α(Λ可以通过以下歩骤建立, 由于流程歩 骤非常相似, 因此也可以参见图 3。  The third type of "meta-linear function group Α (Λ can be established by the following steps, since the process steps are very similar, so see also Figure 3.
歩骤 a、 预置 的结构: Α ¾ «个环 R上的《元多项式组成: 其含有 关于 ..., )的大于 1次的项;  Step a, Preset structure: Α 3⁄4 « Rings R on the "metapolynomial composition: it contains about ...," more than 1 term;
歩骤 b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元的数据长度和最高的非线性次数;  Step b: receiving relevant technical parameter parameters of A(x), where the indicator parameter includes the number of arguments, the data length of the argument, and the highest non-linear number of times;
歩骤 c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 该 A(x)中的不为零的系数用变元符号表示;  Step c: generating a representation according to the indicator parameter and the preset structure, and the non-zero coefficient in the A(x) is represented by an argument symbol;
歩骤 d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x 歩骤 e、针对 B(x)与 A(x)对比而新出现的每一个关于 X的项, 生成关于这 些项的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组;  Step d, substituting A(x) into itself and performing unwrapping, simplification of data processing: B(x) = A(A(x ee, new for B(x) versus A(x)) For each item of X, a polynomial is generated for the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
歩骤 f、 判断该方程组是否有解, 如果没有解, 则返回歩骤 c; 如果有解, 则计算得到该方程组的一组解,并作为 中的系数的值,代入歩骤 c生成的 A(x)的表示形式;  Step f, judging whether the system of equations has a solution, if there is no solution, returning to step c; if there is a solution, calculating a set of solutions of the system of equations, and taking the value of the coefficient in the step, substituting into the step c to generate Representation of A(x);
歩骤 g、 输出所得到的 A(x)。  Step g, output the obtained A(x).
具体而言, 第三种类型的 由《个 R上的《元多项式函数组成:  Specifically, the third type consists of the "metapolynomial function on R":
y = ( ..., _ ")), 其中: y = ( ..., _ ")), where:
a; 其含有关于 ^ ^的^次的项, >1, 该 A(x)的特征是: 把其代入自身并展 开、 化简, z a; it contains the term of ^ ^, >1, the characteristics of the A (x) are: Substituting itself into the body and expanding, simplifying, z
= k >  = k >
两足: ≠0  Two feet: ≠0
= 0  = 0
, .  , .
实际上, 为了达到很好的安全性, 第二种和第三种类型的 应该满足: 由 ·ν、 A(x)求 Β(χ)=Α( χ)容易, 而由 A(x)、 B(x)求 s困难; 或者, 由 s、 q、 A(x) 求 i =A(i)( )容易, 而由 rf、 q、 A(x)求 s困难, 其中 = ..., ), d = (d ... , dn), 4 ^或 。 In fact, in order to achieve good security, the second and third types should be satisfied: From ν, A(x), Β(χ)=Α( χ) is easy, and by A(x), B(x) finds s difficult; or, it is easy to find i = A (i )( ) from s, q, A(x), and s is difficult by rf, q, A(x), where = ..., ), d = (d ... , d n ), 4 ^ or .
优选的, 在第二种类型和第三种类型的 Α(Λ 的建立过程中, 可以存在很 多的优化歩骤, 例如, 在歩骤 304和 305之间, 或者在歩骤 e和 f之间, 还可 以包括: 将 B(x)与 A(x)对比, 若 B(x)中的关于 X的每一种新出现的项, 都至 少有两个, 则执行歩骤 305或者歩骤 e, 否则返回到歩骤 303或者歩骤0。  Preferably, during the establishment of the second type and the third type of Α (Λ, there may be many optimization steps, for example, between steps 304 and 305, or between steps e and f , the method may further include: comparing B(x) with A(x), if there are at least two new items in the B(x) for each of the newly appearing items of X, performing step 305 or step e , otherwise return to step 303 or step 0.
原因在于, 本发明的目的在于寻找满足保形迭代的具体函数, 而如果存在 一种新出现的项只有一个,则这个项的系数乘以任何不等于零的数都不可能等 于零 (若是环上的函数则等于零的可能性非常小), 而若有两个以上的项, 就 可能让这些系数相加后等于零, 从而在迭代后消去新增加的项。即可以达到初 歩过滤的效果, 减少对解方程的调用次数, 节省计算资源。  The reason is that the purpose of the present invention is to find a specific function that satisfies the conformal iteration, and if there is only one new item, the coefficient of this term multiplied by any number not equal to zero cannot be equal to zero (if it is on the ring) The probability that the function is equal to zero is very small), and if there are more than two items, it is possible to add these coefficients to be equal to zero, thus eliminating the newly added item after iteration. That is, the effect of initial filtering can be achieved, the number of calls to the solution equation can be reduced, and computing resources can be saved.
上述的用关于系数的不定方程组来建立 Α(Λ 的方法, 可以确保经过两层 迭代后的函数规模不扩张, 并能在很大的概率上保证所得到的 满足本发 明的要求。 当然, 在本发明的优选实施例中, 在歩骤 306和 307之间, 或者在 歩骤 f和 g之间, 还可以包括更多的筛选歩骤, 用于对 作进一歩的过滤, 例如, 验证经过 层迭代后的函数规模也不扩张, 或者是否满足关于迭代运算 的结合律等等。  The above method of establishing Α(Λ) by using an indefinite system of equations on coefficients can ensure that the function scale after two iterations does not expand, and can guarantee a large probability of satisfying the requirements of the present invention. In a preferred embodiment of the invention, between steps 306 and 307, or between steps f and g, more screening steps may be included for further filtering, for example, verification The function scale after the layer iteration does not expand, or whether the combination law about the iterative operation is satisfied.
需要说明的是,虽然上面的描述中将这三种类型的函数建立方法作为独立 的三种方法进行介绍,但是本领域技术人员应该知悉, 完全可以将其做在同一 个执行流程中, 只需要增加一选择歩骤即可, 在此不再详述。 下面参照图 3, 通过具体的例子, 对前述的建立过程进行详细描述, 由于 针对第二种类型和第三种类型的 Α(Λ 的建立过程比较相似, 所以合在一起作 为一个具体例子进行介绍: It should be noted that although the above three types of function establishment methods are introduced as independent three methods, those skilled in the art should be aware that they can be completely in the same execution process, and only need to Add a selection step, which will not be detailed here. Referring to FIG. 3, the foregoing establishment process will be described in detail through a specific example. Since the establishment process of the second type and the third type is relatively similar, they are collectively introduced as a specific example. :
第一步, 按照要求随意设置一个所期望的 A(x)的表示形式, 把该 A(x)中 的系数用变元符号表示:  In the first step, a desired representation of A(x) is randomly set as required, and the coefficients in the A(x) are represented by arguments:
通常可把元素数量为素数 p的有限域 ^作为有限域 F, 或把整数剩余类 环 Z 作为有限环 R, 但也可采用更加复杂的?或11。  It is usually possible to use the finite field ^ of the prime number p as the finite field F, or the integer residual class Z as the finite ring R, but can be more complicated? Or 11.
其 A(x)的表示形式由 n个有理分式或者多项式组成, 其函数中的系数用 抽象的变量符号 (诸如 ^ ...等) 表示。 例如: Its representation of A(x) consists of n rational fractions or polynomials whose coefficients in the function are represented by abstract variable symbols (such as ^ ... etc.). E.g:
+ <¾x c2) mod p yi = Α2( ι, χ2) = (bo + biXi + + b3XiX2) mod p 如何设置所期望的最佳的 Α(Λ 的函数表示形式, 已超出了本发明的内容 范围, 但又对本发明的实现效果产生明显的影响。在某种意义上说, 这项工作 往往需要凭直觉和经验来进行设计与分析,而不是完全依赖于严格的理论推导 与证明。尤其对于复杂的非线性函数, 有很多种选择, 最好的办法是尝试不同 的变换, 直到获得所期望的函数形式。 应把函数的每一层的具体算法、 各层之 间的关系, 以及怎样把若干个简单函数组合成一个相对复杂的函数的推导过 程, 输入到 Mathematica等软件, 作为解方程的已知条件, 以提高计算效率。 + <3⁄4x c 2 ) mod p yi = Α 2 ( ι, χ 2 ) = (bo + biXi + + b3XiX 2 ) How does mod p set the desired optimal Α (function representation of Λ, which is beyond the scope of the present invention, but has a significant impact on the implementation of the present invention. In a sense, This work often requires intuition and experience to design and analyze, rather than relying entirely on rigorous theoretical derivation and proof. Especially for complex nonlinear functions, there are many options. The best way is to try different transformations. Until the desired form of function is obtained. The specific algorithm of each layer of the function, the relationship between the layers, and how to combine several simple functions into a relatively complex function can be imported into Mathematica and other software. As a known condition for solving the equation, to improve the calculation efficiency.
例如对于上述实施例, 可先设置一个简单的可逆非线性变换: For example, for the above embodiment, a simple reversible nonlinear transformation can be set first:
再设置一个线性变换:Then set up a linear transformation:
+ b2½) mod p 然后把非线性变换代入到线性变换中, 则所期望的 A ^为: + b 2 1⁄2) mod p Then substitute the nonlinear transformation into the linear transformation, then the expected A ^ is:
yi= Αι( ι, x2) = («ο + a\X\ + ma2X\ + mod p y2 = A2( i, 2) = bo + mod p 其中 、 bt、 应理解为系数的因子。 当然, 也可以把 直接设置为: yi= Αι( ι, x2) = («ο + a\X\ + a2X\ + <¾x c2) mod p yi = A2( i, x2) = (bo + + b3XiX2) mod p 然而这将导致数学软件无法获取该函数的结构信息, 在进入到以下的第三歩 "判断方程组 T是否有解" 时可能会遇到计算困难。 Yi= Αι( ι, x 2 ) = («ο + a\X\ + ma 2 X\ + mod py 2 = A 2 ( i, 2 ) = bo + Mod p where, b t , should be understood as the factor of the coefficient. Of course, you can also set it directly as: yi= Αι( ι, x 2 ) = («ο + a\X\ + a 2 X\ + <3⁄4x c 2 ) mod p yi = A 2 ( i, x 2 ) = (bo + + b3XiX 2 ) mod p However, this will cause the math software to fail to get the structural information of the function. It may encounter computational difficulties when entering the third 以下 "determining whether the equation group T has a solution".
第二步, 把 A(x)代入自身, 推导出2 = 0) = ( ( )) = 8( )并展开: 将 B(x)与 A(x)对比, 若 B(x)中的关于 X的每一种新出现的项的类型, 都 至少有两个这种类型的项, 则 的表示形式满足要求; 否则说明它不符合 要求, 应返回到第一歩重新设置, In the second step, substituting A(x) into itself, deducing 2 = 0) = ( ( )) = 8( ) and expanding: Comparing B(x) with A(x), if there are at least two items of this type in each of the newly appearing items of X in B(x), the representation of the type satisfies the requirement; Otherwise it indicates that it does not meet the requirements, it should be returned to the first 歩 reset,
Z = (z\, z2) Z = (z\, z 2 )
z尸 mod p z corpse Mod p
2 2 2 2 2 2
= (a0 + αι(α0 + a\X\ + ma2X\ + 2X\X2) + ma2( o + a\X\ + ma2X\ + <¾ ¾) + = (a 0 + αι(α 0 + a\X\ + ma 2 X\ + 2 X\X2) + ma 2 ( o + a\X\ + ma 2 X\ + <3⁄4 3⁄4) +
¾ = A2(yi, ) = (bo + bxyx + w%i2 + b7yly2) mod p 3⁄4 = A 2 (yi, ) = (bo + b x y x + w%i 2 + b 7 y l y 2 ) mod p
= (b + b2(ao + «ι ι + = (b + b 2 (ao + «ι ι +
= (b0+ αφχ + ma0 2b2 + t0b0b2+ α χχι + 2τηα0α 2Χι+ + = (b 0 + αφχ + ma 0 2 b 2 + t 0 b 0 b 2 + α χ χι + 2τηα 0 α 2 Χι+ +
显然上式可以通过规定的检验。  Obviously the above formula can pass the prescribed test.
第三步, 建立联立方程组 T并判断其是否有解:  The third step is to establish a simultaneous equation T and determine if it has a solution:
针对 B(x)与 A(x)对比而新出现的每一个关于 X的项, 列出 B(x)中这些项 的系数的多项式, 并规定: 令 A(x)中的每个多项式的关于 X的已有的每一种 项的类型, 所对应的 B(x)中的这种项的系数的多项式 (用 ^表示) 都不为 0; 令 Β(Λ 中的每个多项式的相对于 而新产生的关于 X的每一种项的类型, 所对应的关于其系数的多项式 (用 表示) 都为 0; 从而列出联立方程组, 即:  For each term about X that appears new to B(x) versus A(x), list the polynomials of the coefficients of these terms in B(x) and specify: Let each polynomial in A(x) Regarding the type of each item existing in X, the polynomial (indicated by ^) of the coefficient of such item in the corresponding B(x) is not 0; Β (the relative of each polynomial in Λ The newly generated type of each term for X, the corresponding polynomial (represented by its coefficient) is 0; thus listing the simultaneous equations, namely:
Τ: ...} Τ: ...}
具体对于上述实施例, 先提取 中有关项的系数, 令其为 0:  Specifically, for the above embodiment, first extract the coefficient of the relevant item, and make it 0:
对于项 + α ι) = 0 mod ρ 2 2 For items + α ι) = 0 mod ρ twenty two
对于项 X m <¾ (ma2 + b2) = 0 mod p For the term X m <3⁄4 (ma 2 + b 2 ) = 0 mod p
对于项 X x2: + α 2) = 0 mod p For item X x 2 : + α 2 ) = 0 mod p
对于项 X xr- 2ma2 (ma2 + b2) = 0 mod p For the term X xr- 2ma 2 (ma 2 + b 2 ) = 0 mod p
对于项 X XI : a2 (ma2 + b2) = 0 mod p For the term X XI : a 2 (ma 2 + b 2 ) = 0 mod p
的项则令它们不等于 0; 然后再提取 中有关项的系数, 令其为 0:  The items are such that they are not equal to 0; then the coefficients of the relevant items are extracted, making it 0:
对于项 X : mb2(2maia2 + + α 2) = 0 mod p For item X: mb 2 (2maia2 + + α 2 ) = 0 mod p
对于项 X 0 mod p  For the item X 0 mod p
对于项 X + α 2) = 0 mod p For item X + α 2 ) = 0 mod p
对于项 X xr- 2ma2b2 (ma2 + b2) = mod p For the term X xr- 2ma 2 b 2 (ma 2 + b 2 ) = mod p
对对于于项项 XX\ XXIi :: a2b2 (ma2 + b2) = mod p For the item XX\ XXIi :: a 2 b 2 (ma 2 + b 2 ) = mod p
其它的项则令它们不等于 0。 把上述方程组化简, 则联立方程组 T为: Other items make them not equal to zero. To simplify the above equations, the simultaneous equations T are:
2m aa2 + α2ΐ + ab2 = 0 mod p 2m aa 2 + α 2 ΐ + ab 2 = 0 mod p
ma2+b2=0 mod p Ma 2 +b 2 =0 mod p
这是一个有限域 上的关于 01 a2, bu , 的不定方程组, T的通解为: This is a set of indefinite equations for a range of 0 1 a 2 , b u , on a finite field. The general solution for T is:
ma\ + bi = 0 mod p, ma2 + b2 = mod p Ma\ + bi = 0 mod p, ma 2 + b 2 = mod p
这说明上述的 Α(Λ 的表示形式可以设置为保形迭代变换。 This shows that the above Α(Λ representation can be set to conformal iterative transformation.
通常情况下 Τ 为复杂的多变元非线性不定方程组, 但建立该方程组的目 的是求其任意一组特解, 其难度比直接求不定方程组的通解容易。  Usually Τ is a complex multivariable nonlinear indefinite system of equations, but the purpose of establishing this system is to find any set of special solutions, which is easier than the general solution of the indefinite equations.
第四步, 求出方程组 Τ的一组解, 代入所期望的 Α  In the fourth step, we find a set of solutions for the equations , and substitute them into the desired Α
例如, 对于上述实施例, 设;? =17, a0=l, b0= 7, 尸 3, a2= 5, m=2, 则 bx=-max mod 17=11, b2= -/TW2 mod 17 = 7, 可以证明这个 A(x)是保形迭代函 For example, for the above embodiment, let ?? = 17, a 0 = l, b 0 = 7, corpse 3, a 2 = 5, m = 2, then b x = -ma x mod 17 = 11, b 2 = -/TW 2 mod 17 = 7, it can be proved that this A(x) is a conformal iterative function
A( )= ((1+ 3 i + ΙΟ ι + 5 i 2) mod 17, A( )= ((1+ 3 i + ΙΟ ι + 5 i 2 ) mod 17,
(7 + ll i+ 14 i + 7 i 2) mod 17) (7 + ll i+ 14 i + 7 i 2 ) mod 17)
((15 + 8 i + 4 i + 2 i 2) mod 17, ((15 + 8 i + 4 i + 2 i 2 ) mod 17,
(13 +xx + 9χχ + 13 i 2) mod 17) (13 +x x + 9χχ + 13 i 2 ) mod 17)
A(i)(x)=((7+ lO i + 5 i + ll i 2) mod 17,A (i) (x)=((7+ lO i + 5 i + ll i 2 ) mod 17,
A(4)( ) =((14 + 4 i + 2χζ + xxx2) mod 17, A (4) ( ) = ((14 + 4 i + 2χ ζ + x x x 2 ) mod 17,
(15 + 9χχ + \3>χχ + \5χιχ2) mod 17) A(5)( )=((10 + 5 i+ ll i2+ 14 i 2) mod 17,(15 + 9χχ + \3>χχ + \5χιχ 2 ) mod 17) A (5) ( )=((10 + 5 i+ ll i 2 + 14 i 2 ) mod 17,
A(6)( ) = ((5 + 2xl + χχ + 9 i 2) mod 17, A (6) ( ) = ((5 + 2x l + χχ + 9 i 2 ) mod 17,
(16 + 13 i+ 15 i2+ 16 i 2) mod 17) (16 + 13 i+ 15 i 2 + 16 i 2 ) mod 17)
A(7)( )=((3 + ll i+ l + 7 i 2) mod 17, A (7) ( )=((3 + ll i+ l + 7 i 2 ) mod 17,
(3 + + 6 i2+ 3 i 2) mod 17) (3 + + 6 i 2 + 3 i 2 ) mod 17)
A(8)( ) = ((9 + 9 i2 + 13 i 2) mod 17, A (8) ( ) = ((9 + 9 i 2 + 13 i 2 ) mod 17,
(8 + 15 i+ 16 i2+ 8 i 2) mod 17) 设 x = (3, 5), 则 A(x) = (5, 16), = (8,(8 + 15 i+ 16 i 2 + 8 i 2 ) mod 17) Let x = (3, 5), then A(x) = (5, 16), = (8,
10), A(5)(x) = (ll,4), A(6)(x) = (2, 5), A(7)(x) = (12, 2), A(8)(x) = (16, 1), ......。 10), A (5) (x) = (ll, 4), A (6) (x) = (2, 5), A (7) (x) = (12, 2), A (8) ( x) = (16, 1), ....
上述的用 上的多项式来建立 A 的方法, 同样也适合于用 上的有理 分式来建立 以及用整数剩余类环 ZW上的多项式来建立 Α(Λ , 并推广到 «>2的情形, 只不过建立 的推导过程更复杂。 The above method of constructing A using the polynomial is also suitable for establishing the rational fraction using the above and using the polynomial of the integer residual class ring Z W to establish the Α (Λ , and generalize to the «> 2 case, The established derivation process is more complicated.
需要注意的是: 计算 上的有理分式的值时, 会出现虽然分母不是其系 数均为 0的多项式、但分母多项式的值为 0的情况, 应采取必要的容错、 纠错 措施。  It should be noted that when calculating the value of the rational fraction, there will be cases where the denominator is not a polynomial whose coefficient is 0, but the value of the denominator polynomial is 0. The necessary fault tolerance and error correction measures should be taken.
随着向量长度《的增加, A(x)的函数规模将迅速增加, 使得 A(x)需要占用 很大的存储空间。 把一个很大的 A(x)压缩成一个短数据是困难的。 但是, 可 以把一个短数据 /0作为一个伪随机序列发生器的种子,用其产生的伪随机序列 (μι, μ2, 建立对应的 Α(Λ ,从而用短数据 /0表示对应的 更换 只需 要重新约定 /0即可。 即优选的, 可以依据伪随机序列确定 A(x)中的系数的值; 并采用该伪随机序列的种子, 标识该 A(x)。 As the length of the vector increases, the function size of A(x) will increase rapidly, making A(x) take up a lot of storage space. It is difficult to compress a large A(x) into a short data. However, a short data /0 can be used as a seed of a pseudo-random sequence generator, using the pseudo-random sequence generated by it (μι, μ 2 , to establish the corresponding Α (Λ, thus using the short data / 0 to indicate the corresponding replacement only It is necessary to re-agreed /0. That is, preferably, the value of the coefficient in A(x) can be determined according to the pseudo-random sequence; and the seed of the pseudo-random sequence is used to identify the A(x).
具体过程介绍如下:  The specific process is introduced as follows:
对于第一类 A(x),按照约定的规则,用 确定 A(x)中的每个系数, 用 /。表示该 A(x);  For the first class A(x), use the / for each coefficient in A(x) according to the agreed rules. Indicates the A(x);
对于第二类、 第三类 Α(Λ , 按照约定的规则, 用 来确定 Α(Λ : 首先, 用 (/1 /2, 来确定 A(x)的函数形式, 即确定 A(x)中的哪些项的系 数不为 0, 哪些项的系数为 0, 例如在上述实施例中,For the second and third categories (Λ, according to the agreed rules, used to determine Α (Λ: First, use (/ 1 / 2 , to determine the functional form of A(x), that is, determine A(x) Which of the items has a coefficient other than 0, and which items have a coefficient of 0, for example, in the above embodiment,
y2 = A2( i, 2) = (bo + bi i + mod p 假定是用 的值, 来确定其关于 、 Χ2 2的项的系数为 0, 而 、 χιχ2的项的系数不为 0; y 2 = A 2 ( i, 2 ) = (bo + bi i + Mod p It is assumed that the value is used to determine that the coefficient of the term about Χ 2 2 is 0, and the coefficient of the term of χιχ 2 is not 0;
其次, 在确定了关于系数的方程组 T有解后, 用 ( ,Ζ/2, 的值, 来确定 该方程组的一组特解,例如在上述实施例中,用 mod 17 =11, b2 = ~ma2 mod 17 =7, 并用这些变量的值来确定 A(x)的系数。 Secondly, after determining that the system of equations T for the coefficients has a solution, the value of ( , Ζ / 2, is used to determine a set of special solutions of the system of equations, for example, in the above embodiment, , Mod 17 =11, b 2 = ~ma 2 mod 17 =7, and use the values of these variables to determine the coefficient of A(x).
采用上述方法, 在确定的伪随机序列 (/1 /2, 的控制下, 一定能建立一 个与该 相对应的 A(x),从而可以用一个短数据的 /Q来表示一个长数 据的 Α 。 至于具体的对应过程, 则由于其多种多样, 所以在此仅仅以一个 例子进行说明, 其他方案就不再介绍了。 With the above method, under the control of the determined pseudo-random sequence (/ 1 / 2 , it is possible to establish a corresponding A(x), so that a short data / Q can be used to represent a long data. As for the specific corresponding process, due to its variety, it is only explained by an example here, and other solutions are not introduced.
这种方法的突出优点是: 可实现 A(x)的高效率压缩编码, 让不同的用户、 根据不同的情况、 使用不同的 A(x), 从而做到了密码算法参数 A(x)的勤换多 变。 实行这种技术体制, 攻击者对于每种具体的 A(x), 都要投入力量进行专 门的密码分析, 将大大增加破译的代价。  The outstanding advantages of this method are: It can realize the high efficiency compression coding of A(x), let different users, according to different situations, use different A(x), thus achieving the cryptographic algorithm parameter A(x) Changeable. With this technical system in place, the attacker must invest in a specific cryptanalysis for each specific A(x), which will greatly increase the cost of deciphering.
下面本发明提供了两种密钥协商方法的具体方式,其区别在于公开传递的 信息是采用向量 dt, 还是采用函数 Bi(x)。 The following invention provides a specific way of two key negotiation methods, the difference being whether the information conveyed by the public uses the vector d t or the function Bi(x).
密钥协商方法 1  Key agreement method 1
设密码参数 A(x)= ((1+ 3 ι + 10 i2+ 5 i 2) mod 17,(7 + ll j + \Αχχ 2+ Ίχ^) mod 17), q=(3, 5), 执行: Let the password parameter A(x)=((1+ 3 ι + 10 i 2 + 5 i 2 ) mod 17,(7 + ll j + \Αχ χ 2 + Ίχ^) mod 17), q=(3, 5 ), carried out:
用户 1 随机选择整数 =2, 把 q代入 并进行 层 Α(Λ 的迭代: dx = A = A(2)(3, 5) = (3, 3), 把计算结果 d尸 (3, 3)传递给用户 2; User 1 randomly selects the integer = 2, substitutes q and performs layer Α (the iteration of Λ: d x = A = A (2) (3, 5) = (3, 3), the result of the calculation d (3, 3 ) passed to user 2;
用户 2 随机选择整数 = 把 q代入 并进行 层 Α(Λ 的迭代: i2=A¾)(¾r)=A(3)(3,5) = (9, 8), 把计算结果 rf2= (9, 8)传递给用户 1; 2 = an integer random user to select q and substituting layer Α (Λ iteration: i 2 = A ¾) ( ¾r) = A (3) (3,5) = (9, 8), the calculated result RF = 2 (9, 8) passed to user 1;
用户 1计算密钥 User 1 calculates the key
用户2计算密钥 = ( ,...,^¾) = ^ ^1)= (3)(3,3) = (11,4); 2 calculates the user key = (, ..., ^ ¾) = ^ ^ 1) = (3) (3,3) = (11,4);
从而, 用户 1和用户 2建立了相同的密钥 = (11,4:)。  Thus, User 1 and User 2 have established the same key = (11, 4:).
密钥协商方法 2  Key agreement method 2
设密码参数 A(x)= ((1+ 3 ι + 10 i2+ 5 i 2) mod 17,(7 + \\χλ + \Αχχ 2+ Ίχ^) mod 17), 执行: Let the password parameter A(x)=((1+ 3 ι + 10 i 2 + 5 i 2 ) mod 17,(7 + \\χ λ + \Αχ χ 2 + Ίχ^) mod 17), execute:
用户 1随机选择整数 =2,推导出 层 A(x)的迭代: l(x) = User 1 randomly selects integer = 2, and derives the iteration of layer A(x): l (x) =
= ((15 + 8 i+ 4 i2+ 2 j 2) mod 17, (13 + j+ 9xx 2+ xix2) mod 17), 并把函数 组 ^传递给用户 2; = ((15 + 8 i+ 4 i 2 + 2 j 2 ) mod 17, (13 + j+ 9x x 2 + xix 2 ) mod 17), and put the function Group ^ is passed to user 2;
用户 2随机选择整数 =3,推导出 层 A(x)的迭代: 2(x) = A^ x)= A(3)( ) =((7+ 10 ι+ 5χι2+ ηχιχ2) mod 17, (12 + \Axx + Ίχχ 2+ Uxix2) mod 17), 并把函 数组 B2 传递给用户 1; User 2 randomly selects the integer = 3, and derives the iteration of layer A(x): 2 (x) = A^ x)= A (3) ( ) = ((7+ 10 ι+ 5χι 2 + ηχιχ 2 ) mod 17 , (12 + \Ax x + Ίχ χ 2 + Uxix 2 ) mod 17), and pass function group B 2 to user 1;
用户 1计算密钥 = B2 w(x)= B2 (2)( ) = A(2x3)( ) = ((5 + 2χλ + χλ 2 + 9χλχ2) mod 17, (16 + 13 ι + 15 ι + 16 ι 2) mod 17); User 1 calculates the key = B 2 w (x) = B 2 (2) ( ) = A (2x3) ( ) = ((5 + 2χ λ + χ λ 2 + 9χ λ χ 2 ) mod 17, (16 + 13 ι + 15 ι + 16 ι 2 ) mod 17);
用户 2计算密钥 = Β(3)( ) = Α(3χ2)( ) = ((5 + 2χλ + χλ 2 + 9χλχ2) mod 17, (16 + 13 ι + 15 ι + 16 ι 2) mod 17); User 2 calculates the key = Β (3) ( ) = Α (3χ2) ( ) = ((5 + 2χ λ + χ λ 2 + 9χ λ χ 2 ) mod 17, (16 + 13 ι + 15 ι + 16 ι 2 ) mod 17);
从而, 用户 1和用户 2建立了相同的密钥 。  Thus, User 1 and User 2 have established the same key.
参照图 4, 公开了本发明一种用于编码和译码数字消息的方法, 主要用于 加解密情况, 具体可以包括:  Referring to FIG. 4, a method for encoding and decoding a digital message according to the present invention is disclosed, which is mainly used for encryption and decryption, and may specifically include:
歩骤 401, 预置加密端和解密端共享的 所述 是由《元向量 X 到《元向量 J的非线性函数组 Step 401: The preset encryption terminal and the decryption end share the non-linear function group from the meta-vector X to the meta-vector J.
其中, 《〉1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ijA(B(x)) = B(A(x)); Where, >1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The quantity and type remain unchanged, S is an integer; if B(x) = A(A(x)), Bay ijA(B(x)) = B(A(x)) ;
歩骤 402、 选择整数^作为私钥; 运用 的 层迭代建立对应的公钥; 歩骤 403、 加密端选择整数 ί, 运用 将公钥变换为关于 ί的中间密钥, 然后利用该中间密钥对明文进行加密,传送加密结果和 ί的变换结果至解密端; 所述 t的变换结果与 A(x)的 t层迭代相关;  Step 402: Select an integer ^ as a private key; use the layer iteration to establish a corresponding public key; Step 403, the encryption end selects an integer ί, converts the public key into an intermediate key about ί, and then uses the intermediate key Encrypting the plaintext, transmitting the result of the encryption and the result of the transformation to the decryption end; the transformation result of the t is related to the t-layer iteration of A(x);
歩骤 404、 解密端利用 ί的变换结果、 私钥 和 Α(χ)计算得到相同的中间 密钥, 然后利用该中间密钥对加密结果进行解密。  Step 404: The decryption end uses the transformation result of the ί, the private key, and the 中间(χ) to calculate the same intermediate key, and then uses the intermediate key to decrypt the encryption result.
上述实施例中, 加密端将实时选择的整数 ί通过 t的变换结果的方式传送 给解密端, 而解密端实际上在建立公钥的时候已经将私钥 k 的信息暗含在其 中, 因此, 相当于双方交换了各自的信息 ί和 因此, 可以很好的完成加密 和解密。 具体的关于 ί的变换规则, 本发明并不需要加以限定, 变换的目的在 于防止第三方获得 ί的信息,并且解密端可以利用其得到中间密钥即可。当然, 变换规则设定的好坏, 可能影响到本发明在加密和解密过程中的安全性。  In the above embodiment, the encryption end transmits the real-time selected integer ί to the decryption end by the conversion result of t, and the decryption end actually implicitly includes the information of the private key k when establishing the public key, so The two sides exchanged their own information and, therefore, can perform encryption and decryption very well. Specifically, the present invention does not need to be limited. The purpose of the transformation is to prevent the third party from obtaining the information of the ί, and the decryption end can use the intermediate key to obtain the intermediate key. Of course, the setting of the transformation rule may affect the security of the present invention in the process of encryption and decryption.
在本发明的另一个优选实施例中, 如果还包括以下歩骤: 建立加密端和解 密端共享的、 变元数量大于 1的向量 g, 公钥 rf=W, ...,4) = A(fc) ; 贝 ij, 所述歩骤 403进一歩包括: 加密端选择整数 ί, 将公钥变换为关于 ί的中 间密钥 , 然后利用该中间密钥 对明文 进行加 密, C D , 传送包含加密结果 C和 ί的变换结果 V的密文 至解密端, E= {v, C), v = (vb ...,vw) = A¾) ; In another preferred embodiment of the present invention, if the method further comprises the steps of: establishing a vector g shared by the encryption end and the decryption end, the number of arguments being greater than 1, the public key rf=W, ..., 4) = A (fc) ; Bei ij, The step 403 further includes: the encryption terminal selects an integer ί, and converts the public key into an intermediate key about ί, Then, the intermediate text is used to encrypt the plaintext, CD, and the ciphertext containing the result V of the encryption result C and ί is transmitted to the decryption end, E={v, C), v = (v b ..., v w ) = A3⁄4) ;
所述歩骤 404进一歩包括: 解密端利用 t的变换结果 v、 私钥 k和 计 算得到相同的中间密钥 , 然后利用该中间密钥 对 加密结果 C进行解密, 得 The step 404 further includes: the decryption end uses the transformation result v of the t, the private key k and the calculation to obtain the same intermediate key, and then uses the intermediate key to decrypt the encryption result C,
其中, 所述 A(x)进一歩满足: Aw(A(i)(xX)=A( )(x)。 Wherein, the A(x) further satisfies: A w (A (i )(xX)=A( )(x).
例如,设置共享的 = 选择整数 计算 For example, set shared = select integer calculation
把 作为私钥; 把 作为公钥; Put as a private key; put as a public key;
运用公钥 rf, 把明文 M转换成密文 的加密方法是: 随机选择整数 ί, 计 算: The encryption method for converting the plaintext M into ciphertext using the public key rf is: randomly select the integer ί, calculate:
C = O(M,K), E= {v, C};  C = O(M,K), E= {v, C};
运用私钥 把密文 ={v,C}, 转换成明文 的解密方法是: The decryption method for converting the ciphertext ={v,C} into plaintext using the private key is:
上述的对称密码的加密变换 " = Ο(Μ, ", 以及对应的解密变换 "Μ = 的具体实现方法, 均属于公知技术。 The above cryptographic encryption of the symmetric cipher " = Ο (Μ, ", and the corresponding decryption transformation" Μ = The specific implementation methods are all well-known technologies.
在本发明的另一个优选实施例中, 当公钥 B = Aw 时, 贝 lj, In another preferred embodiment of the present invention, when the public key B = A w , the shell lj,
所述歩骤 403进一歩包括: 加密端选择整数 ί, 将公钥变换为关于 ί的中 间密钥 K,K= ,然后利用该中间密钥 对明文 进行加密, C = D( , K), 传送包含加密结果 C和 t的变换结果 V(x)的密文 E至解密端, { Y(x), C}, The step 403 further includes: the encryption terminal selects an integer ί, and converts the public key into an intermediate key K about ί, K= And then using the intermediate key to encrypt the plaintext, C = D(, K), transmitting the ciphertext E containing the result of the transformation of the encryption results C and t V(x) to the decryption end, {Y(x), C} ,
所述歩骤 404进一歩包括:解密端利用 t的变换结果 V 、私钥 k和 计算得到相同的中间密钥 然后利用该中间密钥 对加密结果 C进行解密, 得到明文 The step 404 further includes: the decryption end uses the transformation result V of the t, the private key k, and calculates the same intermediate key, and then uses the intermediate key to decrypt the encryption result C to obtain the plaintext.
其中, 所述 A(x)进一歩满足: 若 B(X)=A(kXx), 则 B(tXx)=A(ktXx)。 例如, 选择整数 计算 Β(Λ = Α(¾ ; 把Η乍为私钥; 把 Β(χ)作为公钥; 运用公钥 Β(Λ , 把明文 转换成密文 的加密方法是: 随机选择整数 ί, 计算: Wherein, the A(x) further satisfies: If B( X )=A(kXx), then B(tXx)=A(ktXx). For example, select the integer calculation Β(Λ = Α ( 3⁄4 ; put Η乍 as the private key; Β (χ) as the public key; use the public key Β (Λ, the encryption method to convert the plaintext into ciphertext is: randomly select the integer ί, calculation:
Y(x) = K= (t\x), C = O(M,K), E= { (x\ C}; Y(x) = K= (t \x), C = O(M,K), E= { (x\ C};
运用私钥 把密文 = {V , C}, 转换成明文 的解密方法是: The decryption method for converting ciphertext = {V , C} into plaintext using the private key is:
上述的对称密码的加密变换 " = Ο(Μ, ", 以及对应的解密变换 "Μ = 的具体实现方法, 均属于公知技术。 The above cryptographic encryption of the symmetric cipher " = Ο (Μ, ", and the corresponding decryption transformation" Μ = The specific implementation methods are all well-known technologies.
对于本部分关于加解密的实施例中 n元非线性函数组 Α(Λ 的建立过程, 可以参见前述相关部分即可,在此不再详述。本实施例也可以依据伪随机序列 确定 Α(χ)中的系数的值; 采用该伪随机序列的种子, 标识该 Α(χ)。  For the establishment process of the n-ary nonlinear function group Α (Λ in the embodiment of the encryption and decryption in this section, refer to the foregoing related part, which is not described in detail here. This embodiment can also determine the Α according to the pseudo-random sequence ( The value of the coefficient in χ); the seed of the pseudo-random sequence is used to identify the Α(χ).
优选的, 本实施例还可以建立基于身份的密钥管理体制, 所谓基于身份 (ID-based) 的密钥管理, 就是把用户的身份标识——诸如姓名、 地址、 电话 等信息, 直接作为用户的公钥。  Preferably, this embodiment can also establish an identity-based key management system. The so-called ID-based key management is to directly use the user's identity, such as name, address, telephone, etc. as the user. Public key.
例如,可以通过以下歩骤建立私钥:预置 个私钥表 , ..., 以及对应的 公钥表 G1 分布在 个密钥分配中心; 依据预置规则, 根据用户的身 份 ID获得指向多个私钥表的指针; 分别从所指向的多个私钥表中各获取一私 钥分量, 组合得到该用户的私钥。 具体描述如下: For example, the following can be rapidly established by the private key ho: a private key preset table, ..., and the corresponding public key distributed in Table G 1 a key distribution center; according to the predetermined rule, to obtain the identity of the user ID to point a pointer of the plurality of private key tables; respectively obtaining a private key component from each of the plurality of private key tables pointed to, and combining to obtain the private key of the user. The specific description is as follows:
(1) 由 λ 个密钥分配中心各自独立地随机建立自己的足够大的私钥表 , ..., 以及对应的公钥表 G1 ..., G,; 其私钥表的每个记录的内容为一个正 整数, 用 y表示, l,2, 其公钥表中的相关记录的内容为对应 的公钥; 把公钥表公开, 把私钥表由各个密钥分配中心秘密保存; (1) Each of the λ key distribution centers independently establishes its own sufficiently large private key table, ..., and the corresponding public key table G 1 ..., G,; The content of the record is a positive integer, denoted by y , l, 2, the content of the related record in the public key table is the corresponding public key; the public key table is disclosed, and the private key table is secretly saved by each key distribution center;
(2), 设置一个单向函数, 其输入是用户的 ID, 其输出是指向 个私钥表 和 λ个公钥表的 个指针 ηι, , ...ηθ: { ηι, η2, } = Hash(ID); (2), set a one-way function, the input is the user's ID, and its output is a pointer to a private key table and λ public key tables ηι, , η θ : { ηι, η 2 , } = Hash(ID);
(3) , 身份标识为 ID的用户的私钥为  (3), the private key of the user whose identity is ID is
λ Θ '■=1 7=1  λ Θ '■=1 7=1
即每个授权用户, 分别从 Α个密钥分配中心各领取一私钥分量: That is, each authorized user receives a private key component from each of the key distribution centers:
Θ  Θ
=∑Α,¾., ί = 1- , 然后把这些私钥分量相加, 合成为该授权用户的私钥: = ^:1:)+...+^^; = ΣΑ, ¾, ί = 1- , then these components are added private keys, user's private key authorized for the synthesis of: = ^: 1:) + ... + ^^;.
(4)、 当公钥采用向量" rf=W, ...,4)=Α(Λ½)"时, 设置共享的 = qn), 身份标识为 ID的用户的公钥为: λ Θ (4) When the public key adopts the vector "rf=W, ...,4)=Α( Λ 1⁄2)", set the shared = q n ), and the public key of the user whose identity is ID is: λ Θ
(∑∑ ·)  (∑∑ ·)
d = Gh (Gl% (...(G,^ (GA, (q)))...)) = A (q); 当公钥采用函数 "B(x)=Aw(x)"时, 身份标识为 ID的用户的公钥为: d = G h (G l% (...(G,^ (G A , (q)))))) = A (q); When the public key uses the function "B(x)=A w ( x)", the public key of the user whose identity is ID:
λ Θ  λ Θ
(∑∑ ·)  (∑∑ ·)
B(x) = G (Gu% (...(G^ (G^% ( )))...)) = A— 1 (X)。 本发明运用多个密钥分配中心联合建立用户私钥的方法,来实现基于身份 的密钥管理体制, 其特点是: 用户的 ID就是该用户的公钥; 各个密钥分配中 心、 各个用户各自管理各自的秘密, 谁也不能获得全部的秘密; 各个密钥分配 中心并不是由于行政管理制度和计算能力的制约、而是由于缺少信息, 而无法 窃取用户的私钥。 B(x) = G (G u% (...(G^ (G^ % ( )))...)) = A- 1 (X). The invention uses a plurality of key distribution centers to jointly establish a user private key to implement an identity-based key management system, which is characterized in that: the user ID is the public key of the user; each key distribution center and each user Managing their own secrets, no one can get all the secrets; each key distribution center is not restricted by the administrative management system and computing power, but is unable to steal the user's private key due to lack of information.
本发明提供两种加密方案, 其区别在于公钥是采用向量 rf, 还是采用函数 B( ); 方案 1用一个向量作为公钥, 方案 2用一个函数组作为公钥。 加密方案 1的优点是公钥的数据长度很短, 加密方案 2的优点是密码的安全性更强。 下 面分别具体说明:  The present invention provides two encryption schemes, the difference being whether the public key uses the vector rf or the function B(); the scheme 1 uses a vector as the public key, and the scheme 2 uses a function group as the public key. The advantage of the encryption scheme 1 is that the data length of the public key is very short, and the advantage of the encryption scheme 2 is that the security of the password is stronger. The following are specific instructions:
加密方案 1  Encryption scheme 1
首先, 设《=2, 设密码参数, 即保形迭代变换函数为:  First, let '=2, set the password parameter, that is, the conformal iterative transformation function is:
Α(χ)=(Α112), Αι( ι, 2))' 其中: Α(χ)=(Α 112 ), Αι( ι, 2 ))' where:
Αι( ι, χ2) = (1+ + ΙΟ ι + 5 i 2) mod 17, Αι( ι, χ 2 ) = (1+ + ΙΟ ι + 5 i 2 ) mod 17,
A2( i, 2) = (7 + ll i + 14 i + 7 i 2) mod 17, 设置共享的向量 q = (qu q2) = (3, 5), E有限域 F^, p=\7 ,选择正整数 k=2 作为私钥, 把 g代入 A(x)进行 层迭代, 计算: A 2 ( i, 2 ) = (7 + ll i + 14 i + 7 i 2 ) mod 17, set the shared vector q = (q u q 2 ) = (3, 5), E finite field F^, p =\7 , select a positive integer k=2 as the private key, substitute g into A(x) for layer iteration, and calculate:
d= (d d2) = A(2)(3, 5) = (3, 3), d= (dd 2 ) = A( 2 )(3, 5) = (3, 3),
把 rf=P,3M乍为公钥(其计算结果, 见本说明书的如何建立第二类、第三 类 A(x)的小数据实施例);  Rf=P, 3M乍 is the public key (the calculation result, see how to create the second type, the third type A(x) small data embodiment in this specification);
运用公钥 加密时, 随机选择一个正整数 ί, 设 ί=3, 把 ί和 g代入 Α(χ), 计算:  When using public key encryption, randomly select a positive integer ί, set ί=3, substitute ί and g into Α(χ), and calculate:
V = = A(3)(3, 5) = (9, 8), V = = A( 3 )(3, 5) = (9, 8),
把 ί和公钥 代入 A(x :  Substituting ί and public key into A(x :
K = = A(3)(3, 3) = (11, 4), K = = A (3) (3, 3) = (11, 4),
把 作为对称加密使用的密钥, 进行加密变换: C = D( , K) = D( , (11, 4)), Encryption is performed on the key used as symmetric encryption: C = D( , K) = D( , (11, 4)),
其中, " = Ο(Μ, "可选用任意一种对称密码加密算法, 例如, 采用美 国数据加密标准 AES; 以下将用 "TW^D^CW表示与对应的对称密码解密 算法;  Where " = Ο (Μ, " can use any kind of symmetric cryptographic encryption algorithm, for example, using the US data encryption standard AES; the following will use "TW^D^CW to represent the corresponding symmetric cryptographic decryption algorithm;
上述的用公钥 加密的结果由两部分组成: {v,C}={(9,8),C},其中 v=(9, The above result of encrypting with a public key consists of two parts: {v, C}={(9,8), C}, where v=(9,
8)是密文报头, C是密文正文; 8) is the ciphertext header, C is the cipher text;
运用私钥 解密时, 先把密文头 V和私钥^代入 计算: When decrypting with the private key, the ciphertext header V and the private key ^ are first substituted into the calculation:
把 作为对称解密使用的密钥, 进行解密变换: The key used as symmetric decryption is decrypted and transformed:
由于加密和解密使用了相同的 =(ll, 4), 因此一定可以恢复出正确的明 文。  Since the same =(ll, 4) is used for encryption and decryption, the correct plaintext can be restored.
加密方案 2  Encryption scheme 2
两种加密方案的区别仅仅在于其公钥的数据格式不同:加密方案 1用一个 向量^ 4)作为公钥, 其优点是公钥数据长度短; 加密方案 2则用一个 函数组 B(x)= (B^ !, ...,xn\ ...,Bw( b ...,x„》作为公钥,其优点是可以获得更长 的密码周期。 The difference between the two encryption schemes is only that the data format of the public key is different: the encryption scheme 1 uses a vector ^ 4) as the public key, and the advantage is that the public key data length is short; the encryption scheme 2 uses a function group B(x). = (B^ !, ..., x n \ ..., B w ( b ..., x„) as a public key has the advantage of obtaining a longer password period.
设《=2, p=\,, 设密码参数:  Let "=2, p=\,, set the password parameter:
Α( ) = (Αι (χι , χ2), Αι( ι, χ2)) Α ( ) = (Αι (χι , χ 2 ), Αι( ι, χ 2 ))
= ((1+ 3 ι + ΙΟ ι2 + 5 ι 2) mod 17 , (7 + Ιΐ ι + Ι χχ +Ίχ^) mod 17), 设私钥 ^=2, 其对应的公钥为:= ((1+ 3 ι + ΙΟ ι 2 + 5 ι 2 ) mod 17 , (7 + Ιΐ ι + Ι χχ +Ίχ^) mod 17), set the private key ^=2, the corresponding public key is:
= ((15 + 8 i + 4 i2 + 2 i 2) mod 17, (13 +x1 + 9x1 2+ 13 i 2) mod 17); 运用公钥 Β(Λ加密时, 随机选择一个正整数 ί=3, 计算密文报头:= ((15 + 8 i + 4 i 2 + 2 i 2 ) mod 17, (13 + x 1 + 9x 1 2 + 13 i 2 ) mod 17); Using the public key Β (Λ when encrypting, randomly selecting a positive Integer ί=3, calculate the ciphertext header:
= ((7+ ΙΟ ι + 5 i2+ ll i 2) mod 17, (12 + \Axx + lxx 2+ \2χιχ2) mod 17), 计算出对称加密使用的密钥:= ((7+ ΙΟ ι + 5 i 2 + ll i 2 ) mod 17, (12 + \Ax x + lx x 2 + \2χιχ 2 ) mod 17), calculate the key used for symmetric encryption:
)( )  ) ( )
= ((5 + + 16 i 2) mod 17), 运用 进行加密变换, 得到密文正文为: = ((5 + + 16 i 2 ) mod 17), using the encryption transformation to get the ciphertext body as:
C = D( , K) = D( , ((5+2 ι+ ι2+9 ι 2) mod 17, (16+13 i+ 5 i2+16 i 2) mod 17》, 上述的用公钥 B 加密的结果由两部分组成: C = D( , K) = D( , ((5+2 ι+ ι 2 +9 ι 2 ) mod 17, (16+13 i+ 5 i 2 +16 i 2 ) mod 17》, the above result encrypted with public key B consists of two parts composition:
E = {V( ), C}  E = {V( ), C}
= { ((7+ 10 ι+5 ι2+ 1 l i 2) mod 17, (12+14 i+7 i2+12 i 2) mod 17), C}; 运用私钥 解密时,先把私钥^和代入密文头 计算出对称加密使用 的密钥: = { ((7+ 10 ι+5 ι 2 + 1 li 2 ) mod 17, (12+14 i+7 i 2 +12 i 2 ) mod 17), C}; When decrypting with a private key, first privately The key ^ and the ciphertext header are used to calculate the key used for symmetric encryption:
= ((5 + + 16 i 2) mod 17), 然后运用 K把密文正文 C转换为明文= ((5 + + 16 i 2 ) mod 17), then use K to convert ciphertext C into plaintext
= D( , ((5+2 ι+ ι2+9 ι 2) mod 17, ( 16+ 13 i+ 15 i2+ 16 i 2) mod 17)), 由于加密和解密使用了相同的 , 因此可以恢复出正确的明文。 = D( , ((5+2 ι+ ι 2 +9 ι 2 ) mod 17, ( 16+ 13 i+ 15 i 2 + 16 i 2 ) mod 17)), since the encryption and decryption use the same, so Restore the correct plaintext.
参照图 5, 示出了一种用于数字签名及验证的方法实施例, 包括: 歩骤 501, 建立签名端和验证端共享的 所述 是由 n元向量 X 到 n元向量 的非线性函数组 Referring to FIG. 5, an embodiment of a method for digital signature and verification is shown, including: Step 501: Establishing a non-linear function shared by an n-ary vector X to an n-ary vector shared by a signature end and a verification end group
...,Aw( i, ...,xn)) 其中, η>1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ijA(B(x)) = B(A(x)); ..., A w ( i, ..., x n )) where η>1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), Compared with A(x), the number and type of terms whose coefficient of X is not 0 remains unchanged, S is an integer; if B(x) = A(A(x)), Bay ijA(B(x) ) = B(A(x)) ;
歩骤 502、 选择整数^作为私钥; 运用 的 层迭代建立对应的公钥; 歩骤 503、 签名端选择整数 ί, 依据预置规则将待签名数据变换为与 、 私 钥^相关的中间消息, 然后传送包含中间消息和 ί的变换结果的数字签名至验 证端; 所述 t的变换结果与 的 t层迭代相关;  Step 502: Select an integer ^ as a private key; use the layer iteration to establish a corresponding public key; Step 503: The signature end selects an integer ί, and converts the data to be signed into an intermediate message related to the private key ^ according to a preset rule. And then transmitting a digital signature containing the intermediate message and the result of the transformation of ί to the verification end; the transformation result of the t is related to the t-layer iteration;
歩骤 504、验证端利用 t的变换结果、待签名数据、中间消息、公钥和 验证是否满足所述预置规则, 如果满足, 则该数字签名验证通过。  Step 504: The verification end uses the transformation result of t, the data to be signed, the intermediate message, the public key, and the verification to satisfy whether the preset rule is met. If yes, the digital signature verification is passed.
由于预置规则是双方私下确定的,所以可以保证签名的有效性。至于具体 的规则,本发明无法也无需加以限定,本领域技术人员根据需要自行设定即可。  Since the preset rules are determined privately by both parties, the validity of the signature can be guaranteed. As for the specific rules, the present invention cannot be and need not be limited, and those skilled in the art can set them as needed.
一般情况下, 直接验证是否满足所述预置规则; 优选的, 也可以对该预置 规则进行变换, 通过验证是否满足变换后的预制规则来验证签名是否正确。  In general, the direct verification verifies whether the preset rule is met. Preferably, the preset rule may also be transformed, and the signature is verified to be correct by verifying whether the transformed pre-made rule is satisfied.
在本发明的一个优选实施例中, 还包括: 建立签名端和验证端共享的、 变 元数量大于 1的向量^ 贝 |J, 所述歩骤 503进一歩包括: 签名端选择整数 ί, 依据预置规则将待签名数 据 Μ变换为与 、 私钥 相关的中间消息 c, 然后传送包含中间消息 c和 ί的 变换结果 e的数字签名 S至解密端, S= {c, ; 所述 ί的变换结果 e与 A(x)的 ί层迭代相关: e = (ei, ...,0 = Α(ί)(^; 其中, 所述预置规则为整数方程 Φ: c = Φ(ί, w,k), w为依据待签名数据 计算得到的整数; In a preferred embodiment of the present invention, the method further includes: establishing, by the signature end and the verification end, a vector having a variable number greater than 1 | The step 503 further includes: the signature end selects an integer ί, converts the data to be signed 为 into an intermediate message c related to the private key according to a preset rule, and then transmits the number of the transformation result e including the intermediate messages c and ί Signature S to the decryption end, S= {c, ; The transformation result e of the ί is related to the ί layer iteration of A(x): e = ( ei , ..., 0 = Α (ί) (^ ; The preset rule is an integer equation Φ: c = Φ(ί, w, k), where w is an integer calculated according to data to be signed;
所述歩骤 504进一歩包括: 验证端利用 t的变换结果 e、 依据待签名数据 M计算得到的 w、 中间消息^ 公钥和 验证是否满足所述预置规则: 假设 整数方程 Φ可进一歩表示为: = A 并且 中包含 ί, 则验证 Α("½) = Α( ½;) = {β- ) 是否成立; 如果正确, 则该数字签名验证通过; The step 504 further includes: the verification end uses the transformation result e of t, the w calculated according to the data to be signed M, the intermediate message ^ public key, and whether the verification satisfies the preset rule: assuming that the integer equation Φ can be further advanced Expressed as: = A and contains ί, then verify that Α ( "1⁄2) = Α ( 1⁄2;) = { β - ) is true; if correct, the digital signature is verified;
其中,当公钥 ...,dn) = 所述 A(x)进一歩满足: Aw(A(i)(x》Among them, when the public key..., d n ) = The A(x) is further satisfied: A w (A (i )(x)
= , 贝 ijB(i)(x)=A( )(x)。 = , Bay ijB (i) (x)=A ( )(x).
对于本部分关于数字签名的实施例中 n元非线性函数组 Α(Λ 的建立过程, 可以参见前述相关部分即可, 在此不再详述。 另外, 本实施例也可以依据伪随 机序列确定 Α(χ)中的系数的值; 采用该伪随机序列的种子, 标识该 Α(χ)。 以 及, 本实施例也可以适用于构建基于身份的密钥管理体制的情况, 这些都在前 面已经详述, 所以在此不再赘述。  For the establishment process of the n-ary nonlinear function group Α (Λ in the embodiment of the digital signature in this part, reference may be made to the foregoing related part, which will not be described in detail herein. In addition, the embodiment may also be determined according to a pseudo-random sequence. The value of the coefficient in Α(χ); the seed of the pseudo-random sequence is used to identify the Α(χ). And, the embodiment can also be applied to the case of constructing an identity-based key management system, which has been previously Detailed, so I won't go into details here.
本发明还提供了两种数字签名方案, 其区别在于公钥是采用向量 rf, 还是 采用函数 B(x), 具体说明如下:  The present invention also provides two digital signature schemes, the difference being whether the public key is a vector rf or a function B(x), as follows:
数字签名方案 1  Digital signature scheme 1
如图 6、 7所示: 设 函数, 该函数的输入 Δ为验证方可以 获得的诸如数据 M等信息的某种组合,但至少应包括 M,其输出 w为正整数; 设 Φ是关于 c、 t、 w、 A的整数方程, 该方程可采用不同的形式, 例如: k = c + w+t, k + w = c+t, k+c + w = t, ...; 即把 c、 t、 w, :划分成均没有使 用减号的 c^n^两部分, 并且 中包含了 t, 从而把方程 Φ, 以及对应的迭代方 程 Φ'表示为: As shown in Figures 6 and 7: Function, the input Δ of the function is some combination of information such as data M that the verifier can obtain, but at least M should be included, and its output w is a positive integer; Let Φ be an integer equation for c, t, w, A The equation can take different forms, for example: k = c + w + t, k + w = c + t, k + c + w = t, ...; ie divide c, t, w, : into N = c^n^ is used instead of the minus sign, and t is included in it, so that the equation Φ and the corresponding iterative equation Φ' are expressed as:
Φ: α= β,  Φ: α = β,
Φ': A( )=A(%); Φ': A ( )=A ( %);
记 "c = <D(i,w, "是把已知的 ί、 w、 代入方程 Φ求 c的运算。 不同的 Φ的 计算速度有差别, 但安全性相同。 例如在本实施例中, 规定 Let "c = <D(i,w, " be the operation of substituting the known ί, w, into the equation Φ for c. The calculation speeds of different Φs are different, but the security is the same. For example, in this embodiment, Regulation
Φ: k = c + w+t, Φ: k = c + w+t,
e = A(¾)代入上式后, 其具体的检验公式为 After e = A ( 3⁄4) is substituted into the above formula, the specific test formula is
φ,: d = A(c+w) (β) φ,: d = A (c+w) (β)
规定了整数方程 Φ以后, 为保证 Φ—定有解, 还需要为^、 t、 w、 各规 定一个范围。 例如当 c = Φ(ί, w, k) = k-w-t时, 要求: k>c, k >w+t0 After the integer equation Φ is specified, in order to ensure that the Φ-definite solution, a range of ^, t, w, and each is required. For example, when c = Φ(ί, w, k) = kwt, the requirement is: k>c, k >w+t 0
如图 6、 7所示:设密码参数 A(x)= ((1+ 3 ι + 10 i2+5 i 2) mod 17,(7 + ll j + l + 7x1 ) mod 17);设 q=(3, 5),私钥 =8,其对应的公钥 rf = Aw(g) = A(8)(3, 5) = (16, 1); As shown in Figure 6, 7: set the password parameter A (x) = ((1 + 3 ι + 10 i 2 + 5 i 2 ) mod 17, (7 + ll j + l + 7x 1 ) mod 17); q=(3, 5), private key = 8, and its corresponding public key rf = A w (g) = A (8) (3, 5) = (16, 1);
运用私钥 把数据 M, 转换成关于 的数字签名 S的方法是: 随机选择 一个正整数 ί, 设 ί=3, 计算:  The method of using the private key to convert the data M into a digital signature S is: Randomly select a positive integer ί, set ί=3, calculate:
e = e2) = = A(3)(3, 5) = (9, 8), e = e 2 ) = = A (3) (3, 5) = (9, 8),
假设 w = Η(Δ) = H( ) = 2,贝 ij c = Φ(ί, w, k) = k-w-t = 8—2—3 = 3,其签名为: S = {c, e} = {3, (9, 8)}; Suppose w = Η(Δ) = H( ) = 2, Bay ij c = Φ(ί, w, k) = kwt = 8—2—3 = 3, whose signature is: S = {c, e} = { 3, (9, 8)};
运用公钥 rf=G6, 1), 检验关于 的数字签名 S是否正确的方法是: 先计 算 w = H(A) = H( ) = 2, 然后把 <、 c、 w, e, g代入迭代方程 Using the public key rf=G6, 1), the method for checking whether the digital signature S is correct is: first calculate w = H(A) = H( ) = 2, then substitute <, c, w, e, g into the iteration equation
由于 ί = Α(^^, e = A ), 则具体的验证公式为 Since ί = Α ( ^^, e = A ), the specific verification formula is
d = A(c+W) (e) ? d = A (c+W) (e) ?
(16, l) = A(3+2)(9, 8) = A(5)(9, 8) (16, l) = A( 3+2 )(9, 8) = A( 5 )(9, 8)
因此 S = {3, (9, 8)}表示 M的签名得到了验证。 Therefore S = {3, (9, 8)} indicates that the signature of M has been verified.
数字签名方案 2  Digital signature scheme 2
如图 6、 7所示: 设 函数, 该函数的输入 Δ为验证方可以 获得的诸如数据 M等信息的某种组合,但至少应包括 M;其输出 w为正整数; 设 Φ是关于 c、 t、 w、 A的整数方程, 该方程可采用不同的形式, 例如: wk=c + t, wk+c = t, ...; 即把 c、 t、 w, 划分成均没有使用减号的 c^n 部分,方程中可以有包含了 k的两个变量的乘积项(如 wA),并且 中包含了 从而把方程 Φ, 以及对应的迭代方程 Φ'表示为: As shown in Figures 6 and 7: Function, the input Δ of the function is some combination of information such as data M that the verifier can obtain, but at least should include M; its output w is a positive integer; let Φ be an integer equation for c, t, w, A , the equation can take different forms, for example: wk=c + t, wk+c = t, ...; that is, divide c, t, w, into c^n parts that do not use the minus sign, in the equation There may be a product term (such as wA) containing two variables of k, and is included to represent the equation Φ, and the corresponding iterative equation Φ' as:
Φ: α= β,  Φ: α = β,
Φ!': A( )=A(%); Φ!': A ( )=A ( %);
记 "c = <D(i,w, "是把已知的 ί、 w、 代入方程 Φ求 c的运算。 不同的 Φ的 计算速度有差别, 但安全性相同。 例如在本实施例中, 规定 Φ: wk=c + t, ίΕ 公式为Let "c = <D(i,w, " be the operation of substituting the known ί, w, into the equation Φ for c. The calculation speeds of different Φs are different, but the security is the same. For example, in this embodiment, Regulation Φ: wk=c + t, ίΕ The formula is
规定了整数方程 Φ以后, 为保证 Φ—定有解, 还需要为^、 t、 w、 各规 定一个范围。 例如, 当 c = <D(i, w, = M^-i时, 要求: wk>c。  After specifying the integer equation Φ, in order to ensure that Φ-definite solution, it is necessary to define a range for ^, t, w, and each. For example, when c = <D(i, w, = M^-i, it is required: wk>c.
设密码参数 A(x)= ((1+ 3 ι + 10 i2+ 5 i 2) mod 17,(7 + ll j + \Αχχ 2+ Ίχ^) mod 17);设 g = (3, 5),私钥 k = 2,其对应的公钥为 B( ) = ((15Let the password parameter A(x)=((1+ 3 ι + 10 i 2 + 5 i 2 ) mod 17,(7 + ll j + \Αχ χ 2 + Ίχ^) mod 17); let g = (3, 5), the private key k = 2, and its corresponding public key is B ( ) = ((15
+ 8 ι + + 13 i 2) mod 17); + 8 ι + + 13 i 2 ) mod 17);
运用私钥 把数据 Λ/, 转换成关于 的数字签名 S的方法是: 随机选择 一个正整数 ί, 例如设 ί=3, 计算:  The method of using the private key to convert the data Λ/, into a digital signature S is: Randomly select a positive integer ί, for example, set ί=3, calculate:
e = e2) = = A(3)(3, 5) = (9, 8), e = e 2 ) = = A (3) (3, 5) = (9, 8),
fl¾ w = Η(Δ) = H( ) = 4 , WlJc = <D(i,w, :) = ^—i = 4X2- 3 = 5, 其签名为: S= {c, e} = {5, (9, 8)}; Fl3⁄4 w = Η(Δ) = H( ) = 4 , WlJc = <D(i,w, :) = ^—i = 4X2- 3 = 5, whose signature is: S= {c, e} = {5 , (9, 8)};
运用公钥 Β(Λ ,检验关于 的数字签名 S是否正确的方法是:先计算 w = Using the public key Β (Λ, verify that the digital signature S is correct is: first calculate w =
Η(Δ) = Η( ) = 4, 然后把 Β(Λ:)、 q、 c、 w, e代入迭代方程 其中:Η(Δ) = Η( ) = 4, then substituting Β(Λ:), q, c, w, e into the iterative equation where:
, 5) = (16, 1) , 5) = (16, 1)
因此 S= {5, (9, 8)}作为对 的签名得到了验证。 Therefore, S= {5, (9, 8)} is verified as the signature of the pair.
数字签名方案的可扩展性说明  Scalability description of digital signature scheme
一旦建立 Α(Λ 后, 本领域的技术人员通过对上述数字签名方案的理解和 启迪, 一定能设计出许多种看起来原理更复杂, 编码技巧却十分相似的新的数 字签名方案。 例如, 可以设置更复杂的方程 Φ, 单向函数¾:.:)的使用方式可以 更灵活, 当 Α(Λ可逆时 还可以用负整数。 建立 Φ、 Η 的具体方法属于公知 技术(详见 《应用密码学——协议、 算法与 C程序》, Bruce Schneier, 机械工 业出版社(China Machine Press), 2000., pp.389-399)。 然而, 这些修改的数字 签名方案都将遵循共同的本发明的必要技术特征:其安全性基于多变元非线性 保形迭代变换的层数问题。  Once the Α(Α), the technical personnel in the field can understand and enlighten the above digital signature scheme, and can design many new digital signature schemes that look more complicated and the coding techniques are very similar. For example, Set the more complicated equation Φ, the one-way function 3⁄4:.:) can be more flexible, when Α (Λ can also use negative integers. The specific method of establishing Φ, Η is a well-known technology (see Application Code for details). Learning - Protocols, Algorithms, and C Programs, Bruce Schneier, China Machine Press, 2000., pp. 389-399). However, these modified digital signature schemes will all follow the common invention. Necessary technical features: Its security is based on the number of layers of multivariate nonlinear conformal iterative transformation.
对于前述的各方法实施例, 为了简单描述, 故将其都表述为一系列的动作 组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制, 因为依据本发明, 某些歩骤可以采用其他顺序或者同时进行。其次, 本领域技 术人员也应该知悉, 说明书中所描述的实施例均属于优选实施例,所涉及的动 作和模块并不一定是本发明所必须的。 For the foregoing method embodiments, for the sake of simple description, they are all expressed as a series of actions. Combinations, but those skilled in the art will appreciate that the present invention is not limited by the order of the acts described, as some steps may be employed in other sequences or concurrently in accordance with the present invention. In addition, those skilled in the art should also understand that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by the present invention.
相应的, 本发明还公开了一种密钥协商的系统实施例, 具体包括: 共享单元, 用于存储用户群共享的 Α(Λ , 所述用户群包括至少两个用户; 所述 是由 η元向量 X到 η元向量 的非线性函数组 Correspondingly, the present invention further discloses a system for performing key agreement, which specifically includes: a sharing unit, configured to store a user group shared Α (Λ, the user group includes at least two users; Nonlinear function group of metavector X to η-element vector
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, S is an integer; if B(x) = A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
中间结果交换单元, 连接所述用户群中的各用户端,用于传递所述用户群 中的各用户与 的整数层迭代有关的中间结果至其他用户 ·'  An intermediate result exchange unit is connected to each user end in the user group for transmitting intermediate results related to integer layer iterations of each user in the user group to other users.
密钥计算单元,位于所述用户群中的各用户端,用于针对各用户分别利用 所接收的中间结果, 计算得到该用户群共享的密钥 。  The key calculation unit is located at each user end of the user group, and is configured to calculate, by using the received intermediate result for each user, a key shared by the user group.
相应的, 本发明还公开了一种用于编码和译码数字消息的系统, 包括: 共享单元, 用于存储加密端和解密端共享的 A(x); 所述 A(x)是由 n元向 量 X到《元向量 的非线性函数组Correspondingly, the present invention also discloses a system for encoding and decoding a digital message, comprising: a sharing unit, configured to store A(x) shared by the encryption end and the decryption end ; the A(x) is by n Metavector X to the nonlinear function group of the metavector
. . . , xn), ... , Aw( i, . . . , xn)) 其中, 《〉1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); . . . , x n ), ... , A w ( i, . . . , x n )) where, >1, the A(x) needs to satisfy: Iterative A of the s layer of A(x) (i) (x), compared with A(x), the number and type of terms whose coefficient of X is not 0 remains unchanged, s is an integer; if B(x)=A(A(x)) , Bay ij A(B(x)) = B(A(x)) ;
公私钥建立单元,用于选择整数 作为私钥;运用 A ^的 层迭代建立对 应的公钥;  a public-private key establishing unit for selecting an integer as a private key; using a layer iteration of A^ to establish a corresponding public key;
加密单元, 位于加密端, 用于选择整数 运用 将公钥变换为关于 t 的中间密钥, 然后利用该中间密钥对明文进行加密, 传送加密结果和 ί的变换 结果至解密端; 所述 t的变换结果与 的 t层迭代相关;  An encryption unit, located at the encryption end, for selecting an integer to convert the public key into an intermediate key for t, and then encrypting the plaintext by using the intermediate key, and transmitting the result of the encryption and the result of the transformation to the decryption end; The transformation result is related to the t-layer iteration;
解密单元, 位于解密端, 用于利用 ί的变换结果、 私钥 和 Α(χ)计算得到 相同的中间密钥, 然后利用该中间密钥对加密结果进行解密。  The decryption unit, located at the decryption end, is configured to calculate the same intermediate key by using the transformation result of ί, the private key, and Α(χ), and then decrypting the encryption result by using the intermediate key.
相应的, 本发明还公开了一种用于数字签名及验证的系统, 包括: 共享单元, 用于存储签名端和验证端共享的 所述 Α(Λ 是由 η元向 量 X到《元向量 的非线性函数组Correspondingly, the present invention also discloses a system for digital signature and verification, comprising: a sharing unit, configured to store the identifier shared by the signature end and the verification end (Λ is by n-direction The quantity X to the nonlinear function group of the metavector
... , Aw( i, . . . , xn)) 其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); ... , A w ( i, . . . , x n )) where η > 1, the A(x) needs to satisfy: The iteration of A ( x) s layer A (i) (x), Compared with A(x), the number and type of terms whose coefficient of X is not 0 remains unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x) )) = B(A(x)) ;
公私钥建立单元,用于选择整数 作为私钥;运用 A ^的 层迭代建立对 应的公钥;  a public-private key establishing unit for selecting an integer as a private key; using a layer iteration of A^ to establish a corresponding public key;
签名单元, 位于签名端, 用于选择整数 ί, 依据预置规则将待签名数据变 换为与 ί、 私钥 相关的中间消息, 然后传送包含中间消息和 ί的变换结果的 数字签名至验证端; 所述 ί的变换结果与 的 ί层迭代相关;  a signature unit, located at the signature end, for selecting an integer ί, transforming the data to be signed into an intermediate message related to the ί and the private key according to a preset rule, and then transmitting a digital signature including the intermediate message and the result of the transformation of the ί to the verification end; The transformation result of ί is related to the ί layer iteration;
验证单元, 位于验证端, 用于利用 ί的变换结果、 待签名数据、 中间消息、 公钥和 验证是否满足所述预置规则, 如果满足, 则该数字签名验证通过。  The verification unit is located at the verification end, and is configured to use the transformation result, the data to be signed, the intermediate message, the public key, and the verification to satisfy the preset rule. If yes, the digital signature verification is passed.
对于装置实施例而言, 由于其基本相应于方法实施例,所以描述的比较简 单, 相关之处参见方法实施例的部分说明即可。 并且, 在本发明的装置实施例 中, 其相应的模块单元都是针对相应的执行歩骤虚拟出来的, 为了节约篇幅, 在此就不针对前述的各个流程歩骤一一对应描述了,但是本领域技术人员应该 知悉, 各个执行歩骤都是可以一一对应虚拟模块的。下面以一个例子进行简单 说明:  For the device embodiment, since it basically corresponds to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the description of the method embodiment. Moreover, in the device embodiment of the present invention, the corresponding module units are all virtualized for the corresponding execution steps. In order to save space, the corresponding process steps are not described here one by one, but Those skilled in the art should be aware that each execution step can correspond to a virtual module one by one. The following is an example with a simple explanation:
前述的装置实施例都还可以包括一 建立单元, 具体包括以下模块: 结构确定模块, 用于预置 的结构: )由《个环 R上的《元多 项式组成: 其含有关于 的大于 1次的项;  The foregoing device embodiments may further include an establishing unit, specifically including the following modules: a structure determining module, configured for presetting:) consisting of a "metapolynomial on a ring R: it contains more than one time. Item
参数确定模块, 用于接收 Α(χ)的相关技术指标参数, 所述指标参数包括 变元数量《、 变元的数据长度和最高的非线性次数;  a parameter determining module, configured to receive a related technical indicator parameter of the Α (χ), where the indicator parameter includes an argument quantity “, a data length of the argument, and a highest non-linear number of times;
随机生成模块, 用于依据所述指标参数和预置结构, 生成一个 的表 示形式, 该 A(x)中的不为零的系数用变元符号表示;  a random generation module, configured to generate a representation form according to the indicator parameter and the preset structure, wherein the non-zero coefficient in the A(x) is represented by an argument symbol;
迭代模块, 用于将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A( ));  An iterative module for substituting A(x) into itself and performing unwrapped, simplified data processing: B(x) = A(A( ));
方程组建立模块, 用于针对 B(x)与 A(x)对比而新出现的每一个关于 X的 项, 生成关于这些项的系数的多项式, 令这些多项式的值为 0, 从而建立联立 方程组;  A system of equations for generating a polynomial for each of the new terms for B (x) and A(x), and generating a polynomial for the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous cubic Cheng group
判断模块, 用于判断该方程组是否有解, 如果没有解, 则返回随机生成模 块; 如果有解, 则计算得到该方程组的一组解, 并作为 A(x)中的系数的值, 代入随机生成模块生成的 的表示形式; a judgment module, configured to determine whether the equation group has a solution, and if there is no solution, return a random generation model a block; if there is a solution, a set of solutions of the system of equations is calculated and substituted as a value of the coefficient in A(x) into the representation generated by the random generation module;
结果输出模块, 用于输出所得到的 Α(χ)。  The result output module is used to output the resulting Α(χ).
本说明书中的各个实施例均基于同一技术构思,所以在描述时重点说明的 都是该实施例的独特之处, 各个实施例之间相同相似的部分互相参见即可。  The various embodiments in the present specification are based on the same technical concept, and therefore, the descriptions are all unique to the embodiments, and the same similar parts between the respective embodiments can be referred to each other.
由于本发明技术复杂、 核心构思比较抽象, 为了方便理解, 下面对本发 明和现有技术的主要区别进行简单描述:  Since the present invention is complicated in technology and the core concept is relatively abstract, for the sake of easy understanding, the main differences between the present invention and the prior art are briefly described below:
现有技术中与本发明最接近的技术解决方案是 DH, 即 1976年由 Diffie 和 Hellman提出的密钥协商协议,以及 ElGamal提出的加密与数字签名方案等。 其安全性基于: 已知素数;?、 本原元 l<g</?、 以及 i = mod/?, 求离散对数 是困难的。  The closest technical solution in the prior art to the present invention is DH, the key agreement protocol proposed by Diffie and Hellman in 1976, and the encryption and digital signature scheme proposed by ElGamal. Its security is based on: Known prime numbers; It is difficult to find the discrete logarithm, the primitive l<g</?, and i = mod/?.
Diffie-Hellman密钥协商协议为: 两个用户运用共同约定的;?、 g, 在公开 信道上建立双方共同秘密约定的密钥 f时, 执行:  The Diffie-Hellman key agreement protocol is: Two users apply the common agreement; , g, when establishing the key f of the mutual secret agreement on the public channel, execute:
第一歩: 用户 1随机选择正整数 , 并传递给用户 2; 第二歩:用户 2随机选择正整数 , 并传递给用户 1; 第三歩: 用户 1计算密钥 = =gk^modp; The first trick: User 1 randomly selects a positive integer and passes it to User 2; Second: User 2 randomly selects a positive integer. And passed to user 1; third: user 1 calculates the key = = g k ^ modp;
第四歩: 用户2计算密钥 = 2 =^1 1110(1;7。 Fourth 用户: User 2 calculates the key = 2 = ^ 1 1110 (1; 7.
ElGamal加密方案为: 运用共同约定的;?、 g, 随机选择正整数 公钥为 = gkmodp, 私钥为 The ElGamal encryption scheme is: Using a common agreement; , g, randomly select the positive integer public key as = g k modp, the private key is
加密算法为: 随机选择正整数 ί, ί与 ( — 1)互素, 计算 β = πιο(1;?, b = dt The encryption algorithm is: Randomly select positive integer ί, ί and (-1) mutual prime, calculate β = πιο(1;?, b = d t
M odp, 其中 为明文, a、 b为密文; M odp, where is plaintext, a, b is ciphertext;
解密算法为: The decryption algorithm is:
其中, " M"和 "b/ "可理解为简单的对称密码加解密运算。  Among them, "M" and "b/" can be understood as simple symmetric cryptographic encryption and decryption operations.
ElGamal数字签名方案为: 运用共同约定的;?、 g, 随机选择正整数 公 钥为 i = mod/?, 私钥为  The ElGamal digital signature scheme is: Using a common agreement; , g, randomly select a positive integer public key is i = mod/?, the private key is
签名算法为: 随机选择正整数 ί, ί与 互素, 计算: α = πιο(1;?, b满 足 A/=(½ + ib)mod( -l), 把 fl、 b作为签名;  The signature algorithm is: Randomly select positive integer ί, ί and mutual prime, calculate: α = πιο(1;?, b satisfies A/=(1⁄2 + ib)mod( -l), and fl, b as signature;
验证算法为: 如果^ 1110(1;?, 则该签名得到验证; The verification algorithm is: If ^ 1110 (1;?, then the signature is verified;
其中,签名方程" (ka + tb) mod (p -1)",以及对应的验证方程 "i mod p = gM modp", 也可采用不同的形式。 一般的签名方程可表示为: Among them, the signature equation "(ka + tb) mod (p -1)", and the corresponding verification equation "i mod" p = g M modp", can also take different forms. The general signature equation can be expressed as:
at = ( 3+ mod (p - 1), 根据 β、 w的士, 以及取值是否为 1, 可以建立不同的签名方程 (详见 《应 用密码学——协议、 算法与 C程序》, Bruce Schneier, 机械工业出版社 (China Machine Press) , 2000. , pp.389-399)。  At = ( 3+ mod (p - 1), depending on the β, w taxi, and whether the value is 1, you can establish different signature equations (see "Applied Cryptography - Protocols, Algorithms and C Programs", Bruce Schneier, China Machine Press, 2000., pp. 389-399).
当年的 DH作为一个开拓性的发明, 首次证明了 "在完全公开的信道上, 即使通信双方没有任何事先共同约定的秘密, 也能进行保密通信", 这是密码 学几千年来最有革命性的进展, 它的贡献主要是提出了新概念。但 DH的具体 算法的安全性还存在很大的上升空间。  As a pioneering invention, DH proved for the first time that "on a completely open channel, even if the communication parties do not have any secrets agreed in advance, they can conduct confidential communication." This is the most revolutionary cryptography for thousands of years. Sexual progress, its contribution is mainly to propose new concepts. However, the security of DH's specific algorithm still has a lot of room for improvement.
本发明与 DH的主要区别在于: 两者的安全性所基于的数学难题不同。 The main difference between the present invention and DH is that the mathematical difficulties on which the two are based are different.
DH的安全性基于有限域上的离散对数问题: 已知素数;?、 本原元 l <g< p、 以及 i = mod/?, 求离散对数 是困难的。 各种 DH密码算法的共同的必 要技术特征是: 以某个整数 为秘密参数, 以 g的 次幂 6 (= 觸(1 为公开 参数, 则由公开参数 6求秘密参数^是困难的。 其中, 密钥协商协议中的公开 参数、 秘密参数的功能, 等价于加密或签名时使用的公钥和私钥。 The security of DH is based on discrete logarithm problems over finite fields: known prime numbers; The primitives l < g < p, and i = mod/?, it is difficult to find the discrete logarithm. The common technical features of various DH cryptographic algorithms are: Using an integer as a secret parameter, with a power of g of 6 (= touch (1 is a public parameter, then it is difficult to obtain a secret parameter ^ from the public parameter 6). The function of public parameters and secret parameters in the key agreement protocol is equivalent to the public and private keys used in encryption or signing.
本发明的安全性基于多变元非线性保形迭代变换的迭代层数问题, δ卩: 设 为给定的非线性保形迭代函数组, 为正整数, B 为 的 层迭代, 则已知 A(x)、 B(x)求 是困难的。 其中, Β(χ) = Α(Λ)(χ) = Α(Α(... (Α(Α(χ)))...)), 可理解为把 个《输入、 《输出的变换 AW串联起来, 合成为一个《输入、 η 输出的变换 B(x), 如图 8所示, 其中, 虚框 801表示 A(x)的 层迭代。 The security of the present invention is based on the iterative layer number problem of multivariate nonlinear conformal iterative transformation, δ卩: set to a given nonlinear conformal iterative function group, which is a positive integer, and B is a layer iteration, then known A (x), B (x) seeking is difficult. Where Β(χ) = Α( Λ )(χ) = Α(Α(...(Α(Α(χ)))...)), can be understood as an input, "output transform AW Concatenated, it is synthesized into an input, η output transform B(x), as shown in Fig. 8, where the dashed box 801 represents the layer iteration of A(x).
本发明的各种算法的核心构思在于:预设 以某个整数 k为秘密参数, 以 AW的 k层迭代 B 为公开参数, 则由公开参数 Β(Λ求秘密参数 k是困难 的, 由秘密参数 求公开参数 B 是容易的。  The core idea of the various algorithms of the present invention is that a certain integer k is preset as a secret parameter, and a k-layer iteration B of AW is used as a public parameter, and then the parameter is publicized (soliciting the secret parameter k is difficult, by secret It is easy to find the parameter B for the parameter.
上述的难题还可采用另一种等价的表示:设 ... , qn), d = {dx, ... , dn) = 是困难的。 也就是说, 用从 g到 的向 量的数值的变化, 来替代导致这些向量发生变化的从 A(x)到 B(x)的函数的变 化, 如图 9所示, 其中, 虚框 901表示 A(x)的 层迭代。 The above problem can also be represented by another equivalent: set..., q n ), d = {d x , ... , d n ) = It is difficult. That is, the change from the value of the vector from g to the change of the function from A(x) to B(x) which causes the changes of these vectors is replaced, as shown in Fig. 9, wherein the dashed box 901 represents Layer iteration of A(x).
δ卩, 本发明的各种算法的核心构思的另一种表述为: 预设 g、 A(x), 以正 整数 为秘密参数, 以向量 为公开参数, 则由公开参数 求秘密参数^是困 难的, 由秘密参数 求公开参数 是容易的。虽然没有直接把具体的 Β(Λ表达 式作为公开参数, 但是在由 计算 的过程中, 需要使用 B 。这种表述的优 点是: 的数据长度比 B 的函数长度明显减少, 节约了公钥的存储空间。 δ卩, another expression of the core idea of various algorithms of the present invention is: preset g, A(x), with a positive integer as a secret parameter, a vector as a public parameter, and a secret parameter by a public parameter ^ sleepy Difficult, it is easy to ask for public parameters from secret parameters. Although there is no specific Β (Λ expression as a public parameter, but in the process of calculation, you need to use B. The advantage of this expression is: the data length is significantly reduced than the function length of B, saving the public key storage.
本发明与 DH相比, 使密码的安全性获得了显著提高, 其有益效果体现 在: 与 DH相比, 本发明运行在一个更大、 更复杂的算法空间中, 使密码函 数的规模发生爆炸。  Compared with DH, the invention achieves a significant improvement in the security of the password, and the beneficial effects thereof are as follows: Compared with DH, the invention runs in a larger and more complex algorithm space, causing the scale of the cryptographic function to explode. .
在 DH方案中, 无论 多么大, 其密码函数始终为关于变元 g的一个单项 当 =1时, i = g mod ρ·,  In the DH scheme, no matter how large, its cryptographic function is always a single item about the argument g. When =1, i = g mod ρ·,
当 k=2时, d = g2 mod p; 当 k= 时, d = gs mod p; When k=2, d = g 2 mod p; when k=, d = g s mod p;
其数学性质非常简单、 清晰, 容易给密码破译提供线索。 例如, 利用其密码周 期为 p_l的性质,可以用 Shor量子算法进行破译(详见 P. W. Shor, "Algorithms for quantum computation: Discrete log and factoring ", Proceedings of the 35th Symposium on Foundations of Computer Science, 1994, pp.124-134. )。 Its mathematical nature is very simple and clear, and it is easy to provide clues for password deciphering. For example, using the nature of its crypto period p_l, it can be deciphered using the Shor quantum algorithm (see PW Shor, "Algorithms for quantum computation: Discrete log and factoring", Proceedings of the 35th Symposium on Foundations of Computer Science, 1994, pp .124-134. ).
与 DH相比, 本发明经过迭代后, 一方面, 其关于变元 X的次数保持不 变; 另一方面, 不仅其关于系数的非线性次数增加, 而且其关于系数的函数 规模也发生了爆炸, 从而大大提高了进行数学分析的困难性。例如, 看起来非 常简单的只有两个变元 ^, Α)的第一类 A(x),在经过 层迭代后的密码函数为: 当 时,  Compared with DH, after the iteration of the present invention, on the one hand, its number of arguments X remains unchanged; on the other hand, not only its nonlinear number of coefficients increases, but also its function scale with respect to coefficients explodes. , thus greatly improving the difficulty of performing mathematical analysis. For example, it seems very simple to have only two arguments ^, Α) of the first class A(x), after the layer iteration, the cryptographic function is: When,
AA
当 =2时,  When =2,
当 =3时, A(3)(x; When =3, A (3) (x;
把 A(X)中的系数 «00, «01, «02, «10, «11, «12, b0, bi, b2看作为 A(x)中的 9个变 量, 也就是把 Α(Λ理解为: The coefficients «00, «01, «02, «10, «11, «12, b 0 , bi, b 2 in A(X) are treated as 9 variables in A(x), that is, Λ is understood as:
y=(yu ...,y„) = A(x, a00, b2) y=(yu ...,y„) = A(x, a 00 , b 2 )
= (Α11, ..., χη, «οο, ···,¾), ..·, Aw( i, ..., χη, «οο, ···, ¾))' 则经过展开、化简后的 Aw(x)中的分子多项式或分母多项式中关于系数 (i¾Q, b 的项的数量大约为: rk _ (9 + k)\ 即 A(x, ooo, b2 )由关于 0QQ, b2)的稠密多项式组成。 例如当 又为 65536 (即 16 比特二进制数 10000000000000000) 时, 其每个多项式的项的数量将 大约增加到: 61497085601546282326893635550884880385; 规模如此巨大的多项式, 虽然在数学世界中是客观存在的,但需要占用指数级 的存储空间, 实际上是难以操作的,通过数学分析来探索其中的规律就更加困 难。 = (Α 1 ( ... 1 , ..., χ η , «οο, ···, 3⁄4), ..·, A w ( i, ..., χ η , «οο, ···, 3⁄4) )' Then the coefficient (i3⁄4 Q , the number of terms of b in the numerator polynomial or denominator polynomial in A w (x) after expansion or simplification is approximately: r k _ (9 + k)\ ie A(x , ooo, b 2 ) consists of a dense polynomial about 0 QQ , b 2 ). For example, when it is again 65536 (that is, the 16-bit binary number 10000000000000000), the number of terms for each polynomial will be increased to approximately: 61497085601546282326893635550884880385; a polynomial of such a large size, although objectively present in the mathematical world, requires an occupation index The level of storage space is actually difficult to operate, and it is more difficult to explore the laws through mathematical analysis.
按照当代计算数学的进展, 运用数学分析来进行破译 (例如对有 61497085601546282326893635550884880385 个项的函数进行分析) 的代价, 将远远大于直接用穷举法来破译 (例如只进行 65536次试验) 的代价。  In accordance with the advances in contemporary computational mathematics, the cost of using mathematical analysis to decipher (for example, the analysis of functions with 61497085601546282326836635550884880385 items) will be far greater than the cost of directly deciphering with exhaustive methods (for example, only 65,536 trials).
与上述情况相比, 当采用第二类、 第三类 A(x)时, 随着 的增加, Aw(x) 的关于系数的非线性次数将以更快的速度增加,从而使 AW(X)关于系数的函数 规模以更快的速度发生爆炸。 例如, 当 A(x)中含有 的项时, Aw(x)关于系 数的非线性次数为 (2fc-l)。 Compared with the above case, when the second type and the third type A(x) are adopted, with the increase, A w (x) The non-linear number of coefficients will increase at a faster rate, causing A W (X) to explode at a faster rate with respect to the function size of the coefficients. For example, when an item is contained in A(x), the nonlinear number of A w (x) with respect to the coefficient is (2 fc -l).
运用 Shor量子算法对本发明进行破译时,需要对 的函数序列 {Α(1) , Α(2)( ), 进行广义离散傅立叶变换, 实现这种变换要受到函数 Aw 中的项的数量的制约, 即当 Aw 关于系数的函数规模发生爆炸时, 将 大大增加进行广义离散傅立叶变换的代价。 When the Shor quantum algorithm is used to decipher the present invention, the required function sequence {Α (1) , Α (2) ( ), Performing a generalized discrete Fourier transform, this transformation is subject to the number of terms in the function A w , that is, when A w explodes on the function scale of the coefficient, the cost of performing the generalized discrete Fourier transform is greatly increased.
综上所述, 本发明对于密码的安全性来说, 实现了一种质的飞跃。  In summary, the present invention achieves a qualitative leap for the security of the password.
发明人作出本发明之后,在与背景技术中提及的三种现有技术相比较中发 现: 在本发明降低安全性的极端情况下, 其数学表达与 DH相近似。 gp, 当本 发明基于《=1的 1变元单项式函数的迭代层数问题时,其迭代函数为: D=gx, 二层迭代的结果为 /( xX)=g2x, …, 层迭代的结果为 ..( (¾ ...:)= ; 再令 x=l , 则从表面现象看, 此时本发明的数学表述与 DH相近似。 为了避免他人 在看到本发明之后, 将本发明简单的理解为 DH的自然拓展, 下面对本发明的 创新难点进行简单说明。 After the inventors made the present invention, it was found in comparison with the three prior art mentioned in the background art that in the extreme case of the safety reduction of the present invention, the mathematical expression is similar to DH. Gp, when the present invention is based on the iterative layer number problem of the 1-variable monomial function of =1, the iterative function is: D=gx, and the result of the two-layer iteration is /(xX)=g 2 x, ..., layer iteration The result is ..( (3⁄4 ...:)= ; and let x = l, then from the surface phenomenon, the mathematical expression of the present invention is similar to DH. In order to avoid others after seeing the present invention, The present invention is simply understood as a natural extension of DH, and the innovation difficulties of the present invention will be briefly described below.
1、 从 DH方案看, 对本发明没有任何的提示。  1. From the DH scheme, there is no suggestion for the present invention.
首先,现有技术已经认识到背景技术中提及的三种编码体制存在不安全的 可能性,但是其具体导致不安全的因素是什么? 改进的具体方向是什么? 具体 如何改进? 以及应该以哪个编码体制为基础进行改进? 这些问题,现有技术没 有给出任何的提示。  First of all, the prior art has recognized the possibility that the three coding systems mentioned in the background are unsafe, but what are the specific factors that cause insecurity? What is the specific direction of improvement? How to improve? And which coding system should be based on improvement? These problems are not given by the prior art.
其次, 当将本发明限定在《=1、 单项式函数以及 x=l时, 本发明和 DH在数 学表述上确实相近似, 但是本领域技术人员都应该知悉, 实际上, d = gk modp 可以是非常多的数学模型的极端情况,而从一个极端情况推导出其确定的普遍 形式, 是几乎不可能的事情。 例如, 也可以把基本域 的离散对数问题扩展为 基本域 上的方阵的离散对数问题等。也可以说,本发明是从 6 = mod;?所对 应的非常多的数学模型中选择出来一个最合适的数学模型。 Secondly, when the present invention is limited to "=1, the monomial function, and x=l, the present invention and DH are indeed similar in mathematical expression, but those skilled in the art should know that, in fact, d = g k modp can It is an extreme case of a very large number of mathematical models, and it is almost impossible to derive the universal form of its determination from an extreme situation. For example, the discrete logarithm problem of the basic domain can also be extended to the discrete logarithm problem of the square matrix on the basic domain. It can also be said that the present invention selects a most suitable mathematical model from a very large number of mathematical models corresponding to 6 = mod;
最重要的是, 实际上是本发明第一次提出了迭代函数保形的概念, 从 DH 来看, 其中没有变元 X, 也没有该变元 X的函数, 进而难以想到函数的迭代, 更 不要说提示发明人需要考虑迭代函数是否能够保形, 以及保形有什么意义。  The most important thing is that the invention first proposed the concept of conformal function conformal. From the perspective of DH, there is no argument X, and there is no function of the argument X, so it is difficult to think of the iteration of the function. Don't say that the inventor needs to consider whether the iterative function can be preserved, and what is the meaning of conformalization.
事实上, 本发明提出了一种完全崭新的研究方向, 只不过恰好在数学表述 上的极端形式上与 DH比较相似。在现有的各种公开文献中, 不仅"保形迭代" 的术语是本发明首次使用的, 其概念、 定义、 性质描述、 判定方法、 建立歩骤 等, 也是本发明首次提出的。 In fact, the present invention proposes a completely new research direction, just in the mathematical expression The extreme form is similar to DH. In the various existing publications, not only the term "conformal iteration" is used for the first time in the present invention, but also its concept, definition, description of nature, method of determination, establishment of steps, etc., which was first proposed by the present invention.
2、 作出本发明, 需要克服长久以来的技术偏见。  2. Making the invention requires overcoming long-standing technical biases.
建立关于 X的函数规模不扩张、而关于其系数的函数规模却发生爆炸的多 变元非线性迭代变换, 一直被认为是一个很难实现的问题。 首先, 把简单的单 变元单项式的迭代,扩展为单变元多项式的非线性迭代, 必然会遇到函数扩张 问题。 例如: 设迭代函数为: fix) = (a0 + αλχ + a2x2) mod p。 当 =2时: It is always considered to be a difficult problem to achieve a multivariable nonlinear iterative transformation in which the function scale of X does not expand and the function scale of its coefficients explodes. First, extending the iteration of a simple single-variant monomial to a nonlinear iteration of a single-variant polynomial will inevitably encounter a function expansion problem. For example: Let the iterative function be: fix) = (a 0 + α λ χ + a 2 x 2 ) mod p. When = 2:
2 2 2  2 2 2
fj[x)) = (<¾("o + ct\X + a2x ) + α\(α0 + a\X + a2x ) + a0) mod pFj[x)) = (<3⁄4("o + ct\X + a 2 x ) + α\(α 0 + a\X + a 2 x ) + a 0 ) mod p
a2V) modp, 此时出现了 Λ x4等在 D中不存在的项, 经过多层迭代后上述 函数的规模必将发生爆炸。用这种函数完成加密运算, 需要指数级的巨大存储 空间和漫长的计算时间。 a 2 V) modp, at this time there are items that do not exist in D, such as x 4 , and the size of the above function will explode after multiple layers of iteration. Using this function to perform cryptographic operations requires exponentially large storage space and lengthy computation time.
其次, 把单变元函数的迭代, 简单地扩展为多变元函数的迭代, 通常也会 遇到函数扩张问题。 例如: (J^ + A , xl+ x2) , 经过二层迭代后为: (X + S J^A + x2 2 + xl+ x2 , xl 1 + xl + 2x1) , 新出现了关于 χΛ ι¾ x2 2等原先不存在的项。 Second, the iteration of a single argument function is simply extended to the iteration of a multivariate function, and usually the function expansion problem is encountered. For example: (J^ + A , x l + x 2 ), after two layers of iteration: (X + SJ^A + x 2 2 + x l + x 2 , x l 1 + x l + 2x 1 ), There have been new items such as χΛ ι3⁄4 x 2 2 that did not exist.
正是由于上述的情况, 长久以来, 本领域技术人员公认: 对于具有 2个以 上个项的一元非线性函数, 经过迭代后必然导致函数的规模发生组合爆炸。因 此, 对于多元非线性函数, 人们也普遍认为, 经过迭代后也应该导致函数的规 模发生组合爆炸。  It is precisely because of the above situation that it has long been recognized by those skilled in the art that for a one-dimensional nonlinear function having two or more terms, iteratively results in a combined explosion of the scale of the function after iteration. Therefore, for multivariate nonlinear functions, it is generally believed that after iteration, it should also lead to a combination explosion of the function.
然而并没有理论证明: "对于具有 2个以上个项的一元非线性函数, 经过 迭代后必然导致函数的规模发生组合爆炸", 这个结论一定可以推广到二元以 上的情况: 也就是说, 对于多元非线性函数, 经过迭代后也必然导致函数的 规模发生组合爆炸。因此,本发明的提出首先要克服几十年来形成的这种技术 偏见。发明人需要确定:在多元非线性函数中,存在既能够保证关于变元 However, there is no theoretical proof: "For a non-linear function with more than two terms, after iteration, it will inevitably lead to a combined explosion of the scale of the function", this conclusion must be extended to the case of more than two: Multivariate nonlinear functions, after iteration, will inevitably lead to a combined explosion of the scale of the function. Therefore, the present invention proposes to overcome this technical bias that has been formed for decades. The inventor needs to determine that in a multivariate nonlinear function, there is both assurance about the argument
: c„)的非线性次数保持不变、又能够保证关于该函数中的系数的非线性次数迅速 增加的函数, 并且, 这种函数可以用确定的方法建立起来。 The non-linear number of times c : ) remains constant, and a function that rapidly increases the number of nonlinearities of the coefficients in the function can be guaranteed, and such a function can be established by a certain method.
3、 实现本发明, 建立多变元非线性保形迭代变换有很高的难度。  3. Implementing the present invention, it is very difficult to establish a multivariate nonlinear conformal iterative transformation.
首先, 本发明属于开拓性研究, 其数学理论背景不成熟, 可供借鉴的文 献资料非常少, 例如: 怎样从抽象空间的角度来理解保形迭代变换的数学结 构? 怎样建立从有理分式扩域到多项式扩域的同态映射、以及从多项式扩域到 基本域的同态映射? 怎样求保形迭代的周期? 如何确定保形迭代具体的数学 性质, 以及如何判定这些性质? 这些问题涉及到一些深刻的、 目前尚未完全解 决的数学前沿课题。 First of all, the invention belongs to pioneering research, and its mathematical theory background is not mature. There is very little information available, for example: How to understand the mathematical structure of the conformal iterative transformation from the perspective of abstract space? How to establish a homomorphic mapping from a rational fractional domain to a polynomial domain, and a homomorphic mapping from a polynomial domain to a basic domain? How to find the period of conformal iteration? How to determine the specific mathematical properties of conformal iterations and how to determine these properties? These issues involve some profound mathematical frontier topics that are not yet fully resolved.
其次, 提出本发明的概念很容易, 但要设计出可行的、 实用的、 完整的 技术解决方案, 却需要很高的技术门槛: 不仅要把握当代数学前沿的进展, 还 要有丰富的实际编码经验和分析水平, 能熟练地运用数学工具, 此外还要依赖 于灵感、 机遇等非确定因素, 本领域一般技术人员很难完成这项工作, 例如: 对于第一类保形迭代变换, 通过用两个线性多项式相除来建立有理分式, 看起来很简单, 但要理解其算法背后的原理, 涉及到复杂的数学推导;  Secondly, it is easy to put forward the concept of the invention, but to design a feasible, practical and complete technical solution, it requires a high technical threshold: not only to grasp the progress of the frontier of contemporary mathematics, but also to have rich practical coding. The level of experience and analysis, the skillful use of mathematical tools, and the reliance on non-deterministic factors such as inspiration and opportunity, it is difficult for a person of ordinary skill in the art to accomplish this work, for example: For the first type of conformal iterative transformation, by using The division of two linear polynomials to establish a rational fraction seems simple, but understanding the principles behind the algorithm involves complex mathematical derivations;
对于第二类、 第三类保形迭代变换, 还涉及到解不定方程组的技术手段、 保形迭代性质的判定方法问题, 需要进行复杂的符号运算和定量分析。  For the second and third types of conformal iterative transformations, it also involves the technical means of solving indefinite equations and the method of determining conformal iterative properties. Complex symbolic operations and quantitative analysis are needed.
现有的 DH 数字签名算法都需要计算密码周期, 但保形迭代变换的周期 (即 AW =A 时的 10通常是难以计算的, 如何在数字签名中绕过复杂的周 期计算, 需要相当高的编码技巧。本发明主要是通过整数的计算, 而不是模一 个周期的计算, 来建立签名方程。 需要指出的是, 虽然这个周期问题在密钥协 商、 加密和签名中都存在, 但在签名时问题尤其突出。 Existing DH digital signature algorithms need to calculate the crypto period, but the period of the conformal iterative transformation (that is, 10 when A W =A is usually difficult to calculate, how to bypass the complex period calculation in the digital signature, it needs to be quite high The coding technique. The invention mainly establishes the signature equation by the calculation of integers instead of the calculation of one cycle. It should be noted that although this cycle problem exists in key negotiation, encryption and signature, the signature is The problem is especially acute.
4、 对于 "保形迭代"这种函数性质能够带来怎样的有益效果需要对密码 的规律和本质有深刻的认识, 才能获得充分地理解。  4. What kind of beneficial effects can be brought about by the nature of the function of "conformal iteration"? It requires a deep understanding of the law and nature of the password to be fully understood.
例如, 对于保形迭代所产生的 "分形"(fractal) 效果, 就需要发挥想象力 才能感悟到其算法设计的巧妙之处。 具体的, 在上述的《=2的第一类 Α(Λ 中, A(FC+1)W相对于 Α(¾来说, 从 Α(¾ 的未知元 ^、 x2的局部看进去, 在 A(FC+1) 中的对应位置上, 都存在着一个与 相似的函数结构。这种描述不仅具有纯 理论的、 美妙的艺术观赏价值, 而且是一种实质性的密码设计: 当迭代层数增 加时, 尚可以想象其函数规模的爆炸方式具有某种规律性, 然而只要把 Aw(x) 中的系数代入具体的值并展开、 化简, 这种规律性, 即函数的结构信息, 就会 消失。 For example, for the "fractal" effect of conformal iterations, you need to use your imagination to understand the cleverness of its algorithm design. Specifically, in the above-mentioned "=2 of the first type Α (Λ, A (FC+1) W is relative to Α ( 3⁄4, from Α ( 3⁄4 of the unknown element ^, x 2 part of it, in There is a similar function structure in the corresponding position in A (FC+1) . This description not only has pure theoretical and wonderful artistic appreciation value, but also a substantial cryptographic design: when iterative layer When the number increases, it is conceivable that the explosion of the function scale has a certain regularity. However, as long as the coefficient in A w (x) is substituted into a specific value and expanded and simplified, the regularity, that is, the structural information of the function , it will disappear.
总之, 如何建立满足密码学性质的既具有很强的非线性、又不会带来关于 X的函数规模爆炸的保形迭代函数, 是一项探索性极强的前沿课题, 它的研究 既有广泛的应用前景,又有很高的技术难度,经历了从理论到实践的反复过程, 是发明人长期思考的结果, 充分体现了发明人的智慧创新。 In short, how to establish a cryptographic nature is both very nonlinear and does not bring about The conformal iterative function of the exponential explosion of X is an extremely exploratory frontier subject. Its research has both broad application prospects and high technical difficulty. It has undergone repeated processes from theory to practice. It is the result of long-term thinking by the inventor, which fully reflects the inventor's wisdom and innovation.
本发明与现有技术中的 ECC公钥密码体制相比, 主要区别在于:  Compared with the ECC public key cryptosystem in the prior art, the main difference between the present invention is:
首先是数学概念不同:椭圆曲线上的点用一个二维数组 (X, 来表示,椭圆 曲线群定义了一种 "加法" 一一这是一种由一条椭圆曲线中的两个点、 求第三 个点的非线性运算, 但这种运算不满足保形迭代函数的定义。  The first is the difference in mathematical concepts: the points on the elliptic curve are represented by a two-dimensional array (X, the elliptic curve group defines an "addition" - one is a two point in an elliptic curve, seeking A three-point nonlinear operation, but this operation does not satisfy the definition of a conformal iterative function.
其次是所基于的数学难题不同: 一个保形迭代变换 A(x)等价于一个 n输 入、 "输出的函数, 集合 {A(1)W, A(2)W, ... , AWW, 对于迭代运算来说组成 一个半群。所谓保形迭代层数问题, 可理解为在该半群中定义了一种 "保形迭 代离散对数问题", 其数学性质与 "椭圆曲线离散对数问题"有很大区别。 Secondly, the mathematical problems are different: a conformal iterative transformation A(x) is equivalent to an n input, "output function, set {A (1) W, A (2) W, ... , A W W, for a iterative operation, constitutes a semigroup. The so-called conformal iterative layer number problem can be understood as defining a "conformal iterative discrete logarithm problem" in the semigroup, and its mathematical properties and "elliptic curve dispersion" The logarithm problem is very different.
最后是密码周期不同: 目前尚未发现计算保形迭代的周期(该周期定义为 Aw =A 时的 的通用方法, 为此本发明有意地避开了困难的周期计算问 题; 而 ECC的周期 (即椭圆曲线上的点的阶) 是可以计算的。 Finally, the crypto periods are different: The period for calculating the conformal iteration has not been found yet (this period is defined as the general method when A w = A, for which the present invention deliberately avoids the difficult period calculation problem; and the ECC period ( That is, the order of the points on the elliptic curve) can be calculated.
由于本发明与 ECC的算法原理不同, 缺少可比性, 所以从算法空间的角 度来理解本发明的有益效果: ECC采用两个点之间的值的运算, 其算法空间 对应于一个二维平面上的椭圆曲线的点的集合,该集合中的元素是用二维向量 (X, 的值来表示的; 而本发明采用两个函数之间的算子的运算,其算法空间对 应于一个多项式组或有理分式组的集合, 从抽象空间的角度: 该集合中的元素 是用该函数组中的系数来表示的, 与它们的未知元 x1 的值无关; 例如, 多项式组 ((<¾) + mod /?)是用 系数^, , , ^ , 来描述的, 与 (^, Α)的值无关, 属于 上的 8维 空间的点的集合;显然,本发明具有更大的算法空间,其变化规律也更加复杂。 Since the present invention is different from the ECC algorithm principle and lacks comparability, the beneficial effects of the present invention are understood from the perspective of algorithm space: ECC uses the operation of values between two points, and the algorithm space corresponds to a two-dimensional plane. The set of points of the elliptic curve, the elements in the set are represented by the value of the two-dimensional vector (X,; and the present invention uses an operator between two functions whose algorithm space corresponds to a polynomial group Or a collection of rational fractions, from the perspective of abstract space: The elements in the set are represented by coefficients in the function group, independent of the value of their unknown element x 1 ; for example, a polynomial group ((<3⁄4 ) + Mod /?) is described by the coefficients ^, , , ^ , which are independent of the value of (^, Α) and belong to the set of points in the upper 8-dimensional space; obviously, the present invention has a larger algorithm space, The law of change is also more complicated.
以上对本发明所提供的一种密钥协商的方法、一种用于编码和译码数字消 息的方法和系统, 以及一种用于数字签名的方法和系统, 进行了详细介绍, 本 文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说 明只是用于帮助理解本发明的方法及其核心思想; 同时,对于本领域的一般技 术人员, 依据本发明的思想, 在具体实施方式及应用范围上均会有改变之处, 综上所述, 本说明书内容不应理解为对本发明的限制。  The foregoing provides a method for key agreement, a method and system for encoding and decoding digital messages, and a method and system for digital signature, which are described in detail herein. The principles and embodiments of the present invention have been described in terms of specific examples, and the description of the above embodiments is only for helping to understand the method of the present invention and its core ideas. Meanwhile, for those skilled in the art, according to the idea of the present invention, The details of the present invention and the scope of the application are subject to change. The contents of the present specification are not to be construed as limiting the present invention.

Claims

OP070709 WO 2009/026771 PCT/CN2007/070628 -39- 权 利 要 求 OP070709 WO 2009/026771 PCT/CN2007/070628 -39- Claims
1、 一种密钥协商的方法, 其特征在于, 包括:  A method for key agreement, comprising:
歩骤 1, 预置用户群共享的 Α(Λ , 所述用户群包括至少两个用户; 所述 是由《元向量 X到《元向量 的非线性函数组 Step 1, the user group shared by the preset user group (Λ, the user group includes at least two users; the is a non-linear function group of the meta-vector X to the meta-vector
其中, η> 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η> 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, S is an integer; if B(x) = A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
歩骤 2,所述用户群中的各用户互相交换各自与 的整数层迭代有关的 中间结果;  Step 2: Each user in the user group exchanges intermediate results related to integer layer iterations;
歩骤 3, 各用户分别利用所接收的中间结果, 计算得到该用户群共享的密 钥 。  Step 3: Each user uses the received intermediate result to calculate a key shared by the user group.
2、 如权利要求 1所述的方法, 其特征在于, 当所述用户群仅包括两个用 户时, 所述歩骤 2进一歩包括:  2. The method according to claim 1, wherein when the user group includes only two users, the step 2 further includes:
第一用户选择整数 , 计算第一中间结果, 并传递至第二用户; 所述第一 中间结果与 A(x)的 层迭代有关;  The first user selects an integer, calculates a first intermediate result, and passes it to the second user; the first intermediate result is related to a layer iteration of A(x);
第二用户选择整数 , 计算第二中间结果, 并传递至第一用户; 所述第二 中间结果与 A(x)的 层迭代有关。  The second user selects an integer, calculates a second intermediate result, and passes it to the first user; the second intermediate result is related to a layer iteration of A(x).
3、 如权利要求 1所述的方法, 其特征在于, 还包括: 建立所述用户群共 享的、 变元数量大于 1的向量^ 并且, 所述用户群仅包括两个用户, 则  3. The method according to claim 1, further comprising: establishing a vector shared by the user group and having an argument quantity greater than one, and wherein the user group includes only two users,
所述歩骤 2进一歩包括: 第一用户选择整数 , 把 g代入 并进行 层 A(x)的迭代: , 将计算结果 传递给第二用户; 第二用户选择 整数^ 把 g代入 A(x)并进行 层 A(x)的迭代: , 将计算结果 rf2 传递给第一用户; The step 2 further includes: the first user selecting an integer, substituting g and performing the iteration of layer A(x): Passing the result of the calculation to the second user; the second user selecting the integer ^ substituting g into A(x) and performing the iteration of layer A(x): , the calculation result rf 2 is delivered to the first user;
所述歩骤 3进一歩包括: 第一用户计算密钥 = ( , ..., ς) = Α(¾)( ); 第 二用户计算密钥 =( , ..., ^ ) = 2^) ; The step 3 further includes: the first user calculates the key = ( , ..., ς) = Α (3⁄4) ( ); the second user calculates the key = ( , ..., ^ ) = 2 ^ ) ;
其中, 所述 Α(χ)进一歩满足: A (A( (x)) = A(^2) (x)。 Wherein, the Α(χ) further satisfies: A (A( (x)) = A(^ 2 ) (x).
4、 如权利要求 1所述的方法, 其特征在于, 当所述用户群仅包括两个用 户时,  4. The method of claim 1, wherein when the user group includes only two users,
所述歩骤 2进一歩包括: 第一用户选择整数 , 计算 层 的迭代: OP070709 The step 2 further includes: the first user selects an integer, and the calculation layer is iterative: OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-40- l(x) = 2 ; 第二用户选择整数 , 计算 层 A(x)的迭代: B2(x) = A(^(x), 并把函数组 B2(x)传递给第一用户; -40- l(x) = 2; The second user selects an integer, calculates the iteration of layer A(x): B 2 (x) = A ( ^(x), and passes the function group B 2 (x) to the first user;
所述歩骤 3 进一歩包括: 第一用户计算密钥 = B2 (W(x) ; 第二用户计算 密钥 = B (k2 x) . The step 3 further includes: the first user calculates the key = B 2 ( W(x) ; the second user calculates the key = B (k2 x).
" 其中, 1所述 A(x)进一歩满足: 若 B(x) = A( x), 则 B^)(x) = A^)(x)。 " Among them, 1 A(x) is satisfied: If B(x) = A(x), then B^)(x) = A^)(x).
5、 如权利要求 1所述的方法, 其特征在于, 通过以下歩骤建立《元非线 性函数组 A( >:  5. The method according to claim 1, wherein the meta-linear function group A (>:
预置 的结构: Α(Λ ¾ «个域 F上的《元有理分式函数组成, 其每个 有理分式函数中的分子、 分母均为关于 ..., χ„)的线性多项式, 其分母多项 式相同;  Preset structure: Α(Λ 3⁄4 «The linear polynomial of the "Molecular rational fractional function, each numerator and denominator in each rational fractional function is about ..., χ „) on the domain F, The denominator polynomial is the same
接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量 n和变元的 数据长度;  Receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments n and the data length of the arguments;
生成 中的每个项的系数;  The coefficient of each item in the generation;
按照预置结构, 输出得到的 Α 。  According to the preset structure, the resulting Α is output.
6、 如权利要求 1所述的方法, 其特征在于, 通过以下歩骤建立《元非线 性函数组 A( >:  6. The method according to claim 1, wherein the elemental non-linear function group A (>:
a、 预置 AW的结构: 由《个域 F上的《元有理函数组成, 其含有关 于 ^, ...,j 的大于 1次的项; 当 Ai<x1 的分母为 0次多项式时, 所述有 理函数为多项式; 当 Α, , 的分母为大于 1次的多项式时, 所述有理函 数为有理分式; a, the structure of the preset AW: consists of the "meta rational function on the domain F, which contains more than one term for ^, ..., j; when the denominator of Ai < x 1 is a polynomial of 0 degree The rational function is a polynomial; when the denominator of Α, , is a polynomial greater than one, the rational function is a rational fraction;
b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元 的数据长度和最高的非线性次数;  b. receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments, the data length of the arguments, and the highest non-linear number of times;
c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 所述 Α(Λ 中的不为零的系数用变元符号表示;  c. generating a representation according to the indicator parameter and the preset structure, and the coefficient of the non-zero in the Α (Λ is represented by an argument symbol;
d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x)); e、 针对 B(x)与 A(x)对比而新出现的每一个关于 x的项, 生成关于这些项 的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组; d. Substituting A(x) into itself and performing unwrapped, simplified data processing: B(x) = A(A(x)) ; e, for each new occurrence of B(x) versus A(x) An item about x, generating polynomials about the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
f、 判断所述方程组是否有解, 如果没有解, 则返回歩骤 c; 如果有解, 则 计算得到该方程组的一组解, 并作为 中的系数的值, 代入歩骤 c生成的 A(x)的表示形式;  f. determining whether the system of equations has a solution, if there is no solution, returning to step c; if there is a solution, calculating a set of solutions of the system of equations, and taking the value of the coefficient in the step, substituting the generated by step c Representation of A(x);
g、 输出所得到的 AW。 OP070709 g, output the resulting AW. OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-41 --41 -
7、 如权利要求 1所述的方法, 其特征在于, 通过以下歩骤建立《元非线 性函数组 A( > : 7. The method according to claim 1, wherein the meta-linear function group A (>: is established by the following steps:
a、 预置 的结构: Α(Λ ¾ «个环 R上的《元多项式组成: 其含有关于 ( i, 的大于 1次的项;  a, preset structure: Α (Λ 3⁄4 « Ring R on the "polynomial polynomial composition: it contains (i, more than 1 term;
b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元 的数据长度和最高的非线性次数;  b. receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments, the data length of the arguments, and the highest non-linear number of times;
c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 所述 Α(Λ 中的不为零的系数用变元符号表示;  c. generating a representation according to the indicator parameter and the preset structure, and the coefficient of the non-zero in the Α (Λ is represented by an argument symbol;
d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x)); d. Substituting A(x) into itself and performing unwrapping and simplification of data processing: B(x) = A(A(x)) ;
e、 针对 B(x)与 A(x)对比而新出现的每一个关于 x的项, 生成关于这些项 的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组;  e. For each term about x newly appearing in comparison with B(x) and A(x), generate polynomials for the coefficients of these terms, and let the values of these polynomials be 0, thereby establishing a simultaneous equations;
f、 判断该方程组是否有解, 如果没有解, 则返回歩骤 c ; 如果有解, 则计 算得到该方程组的一组解,并作为 Α(Λ 中的系数的值,代入歩骤 c生成的 的表示形式;  f. Determine whether the system of equations has a solution. If there is no solution, return to step c; if there is a solution, calculate a set of solutions of the system of equations, and substitute 值 (the value of the coefficient in Λ, substitute step c) Generated representation;
g、 输出所得到的 Α  g, the output is obtained Α
8、 如权利要求 6或 7所述的方法, 其特征在于, 在所述歩骤 d和歩骤 e 之间还包括:  8. The method according to claim 6 or 7, wherein between the step d and the step e, the method further comprises:
将 B(x)与 A(x)对比, 若 B(x)中的关于 X的每一种新出现的项, 都至少有 两个, 则执行歩骤 e, 否则返回到歩骤0。  Compare B(x) with A(x). If there are at least two new occurrences of X in B(x), execute step e, otherwise return to step 0.
9、 如权利要求 1所述的方法, 其特征在于, 还包括:  9. The method of claim 1, further comprising:
依据伪随机序列确定 A(x)中的系数的值;  Determining the value of the coefficient in A(x) based on the pseudo-random sequence;
采用该伪随机序列的种子, 标识该 A(x)。  The seed of the pseudo-random sequence is used to identify the A(x).
10、 一种用于编码和译码数字消息的方法, 其特征在于, 包括: 歩骤 1, 预置加密端和解密端共享的 Α(Λ ; 所述 AW是由《元向量 到《 元向量 的非线性函数组10. A method for encoding and decoding a digital message, comprising: step 1, a preset shared by the encryption end and the decryption end (Λ ; the AW is from a meta vector to a meta vector Nonlinear function group
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
歩骤 2、 选择整数^作为私钥; 运用 Α(Λ 的 层迭代建立对应的公钥; 歩骤 3、 加密端选择整数 ί, 运用 将公钥变换为关于 ί的中间密钥, OP070709 Step 2: Select the integer ^ as the private key; use Α (Λ layer iteration to establish the corresponding public key; Step 3, the encryption side selects the integer ί, and transform the public key into an intermediate key about ί, OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-42- 然后利用该中间密钥对明文进行加密,传送加密结果和 ί的变换结果至解密端; 所述 t的变换结果与 A(X)的 t层迭代相关; -42- then encrypting the plaintext by using the intermediate key, transmitting the result of the encryption and the result of the transformation to the decryption end; the transformation result of the t is related to the t-layer iteration of A(X);
歩骤 4、 解密端利用 ί的变换结果、 私钥 和 Α(χ)计算得到相同的中间密 钥, 然后利用所述中间密钥对加密结果进行解密。  Step 4: The decryption end calculates the same intermediate key by using the transformation result of the ί, the private key, and Α(χ), and then decrypts the encryption result by using the intermediate key.
11、 如权利要求 10所述的方法, 其特征在于, 还包括: 建立加密端和解 密端共享的、 变元数量大于 1的向量 g, 公钥 rf=W, ...,4) = A(fc) ; 贝 ij 所述歩骤 3进一歩包括: 加密端选择整数 ί, 将公钥变换为关于 ί的中间 密钥 , 然后利用所述中间密钥 对明文 进行加 密, C D , 传送包含加密结果 C和 ί的变换结果 V的密文 至解密端, E= {v, C}, v = (vb ...,vw) = A¾); The method according to claim 10, further comprising: establishing a vector g shared by the encryption end and the decryption end and having an argument quantity greater than 1, the public key rf=W, ..., 4) = A (fc) ; Beij ij Step 3: The encryption side selects the integer ί, transforms the public key into an intermediate key about ί, Then, using the intermediate key to encrypt the plaintext, CD, and transmitting the ciphertext containing the result V of the encryption result C and ί to the decryption end, E={v, C}, v = (v b ..., v w ) = A3⁄4);
所述歩骤 4进一歩包括: 解密端利用 t的变换结果 v、 私钥 k和 Α(Λ计算 得到相同的中间密钥 , 后利用所述中间密钥 对 加密结果 C进行解密, The step 4 further includes: the decryption end uses the transformation result v of t, the private key k and the Α (Λ to obtain the same intermediate key, and then decrypts the encryption result C by using the intermediate key,
其中, 所述 A(x)进一歩满足: Aw(A(i)(xX)=A( )(x)。 Wherein, the A(x) further satisfies: A w (A (i )(xX)=A( )(x).
12、 如权利要求 10所述的方法, 其特征在于, 当公钥 B = Aw 时, 则 12. The method of claim 10, wherein when the public key B = A w , then
所述歩骤 3进一歩包括: 加密端选择整数 ί, 将公钥变换为关于 ί的中间 密钥 H = ,然后利用所述中间密钥 对明文 进行加密, C = D( , K), 传送包含加密结果 C和 t的变换结果 V(x)的密文 E至解密端, { Y(x), C}, The step 3 further includes: the encryption terminal selects an integer ί, converts the public key into an intermediate key H= about ί, and then encrypts the plaintext by using the intermediate key, C=D(, K), transmitting The ciphertext E containing the result of the transformation of the encrypted result C and t V(x) to the decryption end, {Y(x), C},
所述歩骤 4进一歩包括: 解密端利用 t的变换结果 ν(Λ 、 私钥 k和 计算得到相同的中间密钥 , 后利用所述中间密钥 对加密结 果 C进行解密, 得到明文 A/, The step 4 further includes: the decryption end uses the transformation result ν of t (the private key k and the calculation to obtain the same intermediate key, and then decrypts the encryption result C by using the intermediate key to obtain the plaintext A/ ,
其中, 所述 A(x)进一歩满足: 若 B(X)=A(kXx), 则 B(tXx)=A(ktXx)。 Wherein, the A(x) further satisfies: If B( X )=A(kXx), then B(tXx)=A(ktXx).
13、 如权利要求 10所述的方法, 其特征在于, 通过以下歩骤建立《元非 线性函数组 13. The method according to claim 10, wherein the elemental non-linear function group is established by the following steps
预置 的结构: Α(Λ ¾ «个域 F上的《元有理分式函数组成, 其每个 有理分式函数中的分子、 分母均为关于 ..., χ„)的线性多项式, 其分母多项 式相同;  Preset structure: Α(Λ 3⁄4 «The linear polynomial of the "Molecular rational fractional function, each numerator and denominator in each rational fractional function is about ..., χ „) on the domain F, The denominator polynomial is the same
接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量 n和变元的 数据长度; OP070709 Receiving related technical indicator parameters of A(x), where the indicator parameters include the number of arguments n and the data length of the arguments; OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-43 - 生成 A 中的每个项的系数; -43 - Generate coefficients for each item in A;
按照预置结构, 输出得到的 Α 。  According to the preset structure, the resulting Α is output.
14、 如权利要求 10所述的方法, 其特征在于, 通过以下歩骤建立《元非 线性函数组  14. The method of claim 10, wherein the meta-nonlinear function group is established by the following steps
a、 预置 AW的结构: 由《个域 F上的《元有理函数组成, 其含有关 于 ^, ...,j 的大于 1次的项; 当 Ai<x1 的分母为 0次多项式时, 所述有 理函数为多项式; 当 Α, , 的分母为大于 1次的多项式时, 所述有理函 数为有理分式; a, the structure of the preset AW: consists of the "meta rational function on the domain F, which contains more than one term for ^, ..., j; when the denominator of Ai < x 1 is a polynomial of 0 degree The rational function is a polynomial; when the denominator of Α, , is a polynomial greater than one, the rational function is a rational fraction;
b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元 的数据长度和最高的非线性次数;  b. receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments, the data length of the arguments, and the highest non-linear number of times;
c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 所述 Α(Λ 中的不为零的系数用变元符号表示;  c. generating a representation according to the indicator parameter and the preset structure, and the coefficient of the non-zero in the Α (Λ is represented by an argument symbol;
d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x)); e、 针对 B(x)与 A(x)对比而新出现的每一个关于 x的项, 生成关于这些项 的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组; d. Substituting A(x) into itself and performing unwrapped, simplified data processing: B(x) = A(A(x)) ; e, for each new occurrence of B(x) versus A(x) An item about x, generating polynomials about the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
f、 判断该方程组是否有解, 如果没有解, 则返回歩骤 c; 如果有解, 则计 算得到该方程组的一组解,并作为 Α(Λ 中的系数的值,代入歩骤 c生成的 的表示形式;  f. Determine whether the system of equations has a solution. If there is no solution, return to step c; if there is a solution, calculate a set of solutions of the system of equations, and as a value of the coefficient in Α (substituting a step c) Generated representation;
g、 输出所得到的 AW。  g, output the resulting AW.
15、 如权利要求 10所述的方法, 其特征在于, 通过以下歩骤建立《元非 线性函数组  15. The method of claim 10, wherein the meta-nonlinear function group is established by the following steps
a、 预置 的结构: Α(Λ ¾ «个环 R上的《元多项式组成: 其含有关于 ( i, 的大于 1次的项;  a, preset structure: Α (Λ 3⁄4 « Ring R on the "polynomial polynomial composition: it contains (i, more than 1 term;
b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元 的数据长度和最高的非线性次数;  b. receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments, the data length of the arguments, and the highest non-linear number of times;
c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 所述 Α(Λ 中的不为零的系数用变元符号表示;  c. generating a representation according to the indicator parameter and the preset structure, and the coefficient of the non-zero in the Α (Λ is represented by an argument symbol;
d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x)); e、 针对 B(x)与 A(x)对比而新出现的每一个关于 x的项, 生成关于这些项 的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组; d. Substituting A(x) into itself and performing unwrapped, simplified data processing: B(x) = A(A(x)) ; e, for each new occurrence of B(x) versus A(x) An item about x, generating polynomials about the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
f、 判断该方程组是否有解, 如果没有解, 则返回歩骤 c; 如果有解, 则计 OP070709 f, determine whether the system of equations has a solution, if there is no solution, return to step c; if there is a solution, then OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-44- 算得到该方程组的一组解,并作为 Α(Λ 中的系数的值,代入歩骤 C生成的 的表示形式; -44- Calculate a set of solutions for the system of equations, and substitute the value of the coefficient in Α(Λ) into the representation generated by step C;
g、 输出所得到的 AW。  g, output the resulting AW.
16、 如权利要求 14或 15所述的方法, 其特征在于, 在所述歩骤 d和歩骤 e之间还包括:  The method according to claim 14 or 15, wherein between the step d and the step e, the method further comprises:
将 B(x)与 A(x)对比, 若 B(x)中的关于 X的每一种新出现的项, 都至少有 两个, 则执行歩骤 e, 否则返回到歩骤0。  Compare B(x) with A(x). If there are at least two new occurrences of X in B(x), execute step e, otherwise return to step 0.
17、 如权利要求 10所述的方法, 其特征在于, 还包括:  17. The method of claim 10, further comprising:
依据伪随机序列确定 A(x)中的系数的值;  Determining the value of the coefficient in A(x) based on the pseudo-random sequence;
采用所述伪随机序列的种子, 标识所述 A(x)。  Using the seed of the pseudo-random sequence, the A(x) is identified.
18、 如权利要求 10所述的方法, 其特征在于, 通过以下歩骤建立私钥: 预置个私钥表 ,…, 以及对应的公钥表^ ... , G„ 分布在个密钥分配 中心;  18. The method according to claim 10, wherein the private key is established by: presetting a private key table, ..., and a corresponding public key table ^, G„ distributed in a key Distribution center
依据预置规则, 根据用户的身份 ID获得指向多个私钥表的指针; 分别从所指向的多个私钥表中各获取一个或者多个私钥分量,组合得到该 用户的私钥。  According to the preset rule, a pointer to multiple private key tables is obtained according to the user ID; respectively, one or more private key components are respectively obtained from the plurality of private key tables pointed to, and the private key of the user is obtained in combination.
19、 一种用于数字签名及验证的方法, 其特征在于, 包括:  19. A method for digital signature and verification, comprising:
歩骤 1, 预置签名端和验证端共享的 Α(Λ ; 所述 AW是由《元向量 到《 元向量 ^的非线性函数组Step 1, the preset signature end and the verification end share the Α (Λ ; the AW is a non-linear function group from the meta-vector to the meta-vector^
... , Aw( i, . . . , xn)) 其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); ... , A w ( i, . . . , x n )) where η > 1, the A(x) needs to satisfy: The iteration of A ( x) s layer A (i) (x), Compared with A(x), the number and type of terms whose coefficient of X is not 0 remains unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x) )) = B(A(x)) ;
歩骤 2、 选择整数^作为私钥; 运用 Α(Λ 的^层迭代建立对应的公钥; 歩骤 3、 签名端选择整数 ί, 依据预置规则将待签名数据变换为与 、 私钥 相关的中间消息, 然后传送包含中间消息和 ί的变换结果的数字签名至验证 端; 所述 t的变换结果与 A(x)的 t层迭代相关;  Step 2: Select the integer ^ as the private key; use Α(Λ^ layer to iterate to establish the corresponding public key; Step 3. The signature end selects the integer ί, and transforms the data to be signed into the private key according to the preset rule. Intermediate message, then transmitting a digital signature containing the intermediate message and the result of the transformation of ί to the verification end; the transformation result of the t is related to the t-layer iteration of A(x);
歩骤 4、 验证端利用 ί的变换结果、 待签名数据、 中间消息、 公钥和 验证是否满足所述预置规则, 如果满足, 则所述数字签名验证通过。  Step 4: The verification end uses the transformation result of the ί, the data to be signed, the intermediate message, the public key, and the verification to satisfy whether the preset rule is met. If yes, the digital signature verification is passed.
20、 如权利要求 19所述的方法, 其特征在于, 还包括:  20. The method of claim 19, further comprising:
直接验证是否满足所述预置规则; OP070709 Directly verifying whether the preset rule is met; OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-45- 或者,对该预置规则进行变换,通过验证是否满足变换后的预制规则来验 证签名是否正确。 -45- Alternatively, the preset rule is transformed to verify whether the signature is correct by verifying whether the transformed pre-made rule is satisfied.
21、 如权利要求 19所述的方法, 其特征在于, 还包括: 建立签名端和验 证端共享的、 变元数量大于 1的向量^ 则  The method according to claim 19, further comprising: establishing a vector shared by the signature end and the verification end and having an argument quantity greater than one
所述歩骤 3进一歩包括: 签名端选择整数 ί, 依据预置规则将待签名数据 The step 3 further includes: the signature end selects an integer ί, and the data to be signed is determined according to a preset rule.
Μ变换为与 ^私钥 相关的中间消息 c, 然后传送包含中间消息 c和 ί的变换 结果 e的数字签名 S至解密端, S = {c, ; 所述 ί的变换结果 e与 A(x)的 ί层 迭代相关: e = (eh ... , en) = A );其中,所述预置规则为整数方程: c = Φ(ί, w, k), w为依据待签名数据 计算得到的整数; Μ is transformed into an intermediate message c associated with the ^ private key, and then the digital signature S containing the transformation result e of the intermediate messages c and ί is transmitted to the decryption end, S = {c, ; the transformation result e of the ί and A (x The ί layer iterative correlation: e = (e h ... , e n ) = A ) ; wherein the preset rule is an integer equation: c = Φ(ί, w, k), w is based on the signature to be signed The integer calculated from the data;
所述歩骤 4进一歩包括: 验证端利用 t的变换结果 依据待签名数据 M 计算得到的 w、 中间消息^、 公钥和 Α(Λ验证是否满足所述预置规则: 假设整 数方程 Φ可进一歩表示为 = Αt }(e) 是否成立; 如果成立, 则所述数字签名验证通过; The step 4 further includes: the verification end uses the transformation result of t to calculate the w, the intermediate message ^, the public key, and the 依据 according to the data M to be signed (Α verify whether the preset rule is satisfied: assuming that the integer equation Φ can be Into one is expressed as = Α t } (e) whether it is true; if it is established, the digital signature verification is passed;
其中,当公钥 所述 A(x)进一歩满足: Aw( A(i)(x》 当公钥 B(x) = Aw(x)时, 所述 A(x)进一歩满足: 若 Β(χ) = Α(Λ)(χ), 贝 ij B(i)(x) = A( )(x)。 Where the public key The A(x) is further satisfied: A w ( A (i )(x) When the public key B(x) = A w (x), the A(x) further satisfies: If Β(χ) = Α( Λ )(χ), Bay ij B (i) (x) = A ( )(x).
22、 如权利要求 19所述的方法, 其特征在于, 通过以下歩骤建立《元非 线性函数组  22. The method of claim 19, wherein the meta-nonlinear function group is established by the following steps
预置 的结构: Α(Λ ¾ «个域 F上的《元有理分式函数组成, 其每个 有理分式函数中的分子、 分母均为关于 ..., χ„)的线性多项式, 其分母多项 式相同;  Preset structure: Α(Λ 3⁄4 «The linear polynomial of the "Molecular rational fractional function, each numerator and denominator in each rational fractional function is about ..., χ „) on the domain F, The denominator polynomial is the same
接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量 n和变元的 数据长度;  Receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments n and the data length of the arguments;
生成 中的每个项的系数;  The coefficient of each item in the generation;
按照预置结构, 输出得到的 Α(Λ 。  According to the preset structure, the output is Α (Λ.
23、 如权利要求 19所述的方法, 其特征在于, 通过以下歩骤建立《元非 线性函数组  23. The method of claim 19, wherein the meta-nonlinear function group is established by the following steps
a、 预置 AW的结构: 由《个域 F上的《元有理函数组成, 其含有关 于 ^, ...,j 的大于 1次的项; 当 Ai<x1 的分母为 0次多项式时, 所述有 理函数为多项式; 当 Ai<x1 的分母为大于 1次的多项式时, 所述有理函 数为有理分式; OP070709 a, the structure of the preset AW: consists of the "meta rational function on the domain F, which contains more than one term for ^, ..., j; when the denominator of Ai < x 1 is a polynomial of 0 degree The rational function is a polynomial; when the denominator of Ai<x 1 is a polynomial greater than one time, the rational function is a rational fraction; OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-46- b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元 的数据长度和最高的非线性次数; -46- b, receiving A (x) related technical indicator parameters, the indicator parameters include the number of arguments, the data length of the arguments, and the highest number of non-linear times;
c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 所述 Α(Λ 中的不为零的系数用变元符号表示;  c. generating a representation according to the indicator parameter and the preset structure, and the coefficient of the non-zero in the Α (Λ is represented by an argument symbol;
d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x)); e、 针对 B(x)与 A(x)对比而新出现的每一个关于 x的项, 生成关于这些项 的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组; d. Substituting A(x) into itself and performing unwrapped, simplified data processing: B(x) = A(A(x)) ; e, for each new occurrence of B(x) versus A(x) An item about x, generating polynomials about the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
f、 判断该方程组是否有解, 如果没有解, 则返回歩骤 c; 如果有解, 则计 算得到该方程组的一组解,并作为 Α(Λ 中的系数的值,代入歩骤 c生成的 的表示形式;  f. Determine whether the system of equations has a solution. If there is no solution, return to step c; if there is a solution, calculate a set of solutions of the system of equations, and as a value of the coefficient in Α (substituting a step c) Generated representation;
g、 输出所得到的 AW。  g, output the resulting AW.
24、 如权利要求 19所述的方法, 其特征在于, 通过以下歩骤建立《元非 线性函数组  24. The method of claim 19, wherein the meta-nonlinear function group is established by the following steps
a、 预置 的结构: Α(Λ ¾ «个环 R上的《元多项式组成: 其含有关于 (xu 的大于 1次的项; a, preset structure: Α (Λ 3⁄4 « "Right polynomial composition on the ring R: it contains information about (x u greater than 1 time;
b、 接收 A(x)的相关技术指标参数, 所述指标参数包括变元数量《、 变元 的数据长度和最高的非线性次数;  b. receiving relevant technical indicator parameters of A(x), where the indicator parameters include the number of arguments, the data length of the arguments, and the highest non-linear number of times;
c、 依据所述指标参数和预置结构, 生成一个 的表示形式, 所述 Α(Λ 中的不为零的系数用变元符号表示;  c. generating a representation according to the indicator parameter and the preset structure, and the coefficient of the non-zero in the Α (Λ is represented by an argument symbol;
d、 将 A(x)代入自身并执行展开、 化简的数据处理: B(x) = A(A(x)); e、 针对 B(x)与 A(x)对比而新出现的每一个关于 x的项, 生成关于这些项 的系数的多项式, 令这些多项式的值为 0, 从而建立联立方程组; d. Substituting A(x) into itself and performing unwrapped, simplified data processing: B(x) = A(A(x)) ; e, for each new occurrence of B(x) versus A(x) An item about x, generating polynomials about the coefficients of these terms, so that the values of these polynomials are 0, thereby establishing a simultaneous equations;
f、 判断该方程组是否有解, 如果没有解, 则返回歩骤 c; 如果有解, 则计 算得到所述方程组的一组解, 并作为 中的系数的值, 代入歩骤 c生成的 A(x)的表示形式;  f, judging whether the system of equations has a solution, if there is no solution, returning to step c; if there is a solution, calculating a set of solutions of the system of equations, and taking the value of the coefficient in the step, substituting the generated by step c Representation of A(x);
g、 输出所得到的 AW。  g, output the resulting AW.
25、 如权利要求 23或 24所述的方法, 其特征在于, 在所述歩骤 d和歩骤 e之间还包括:  The method according to claim 23 or 24, further comprising: between the step d and the step e:
将 B(x)与 A(x)对比, 若 B(x)中的关于 X的每一种新出现的项, 都至少有 两个, 则执行歩骤 e, 否则返回到歩骤0。  Compare B(x) with A(x). If there are at least two new occurrences of X in B(x), execute step e, otherwise return to step 0.
26、 如权利要求 19所述的方法, 其特征在于, 还包括: OP070709 The method of claim 19, further comprising: OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-47- 依据伪随机序列确定 A(X)中的系数的值; -47- determining the value of the coefficient in A(X) based on the pseudo-random sequence;
采用所述伪随机序列的种子, 标识所述 A(x)。  Using the seed of the pseudo-random sequence, the A(x) is identified.
27、 如权利要求 19所述的方法, 其特征在于, 通过以下歩骤建立私钥: 预置个私钥表 ,…, 以及对应的公钥表^ ... , G„ 分布在个密钥分配 中心;  27. The method according to claim 19, wherein the private key is established by: presetting a private key table, ..., and a corresponding public key table ^, G„ distributed in a key Distribution center
依据预置规则, 根据用户的身份 ID获得指向多个私钥表的指针;  Obtaining a pointer to multiple private key tables according to the user ID according to the preset rule;
分别从所指向的多个私钥表中各获取一个或者多个私钥分量,组合得到所 述用户的私钥。  One or more private key components are respectively obtained from each of the plurality of private key tables pointed to, and the private key of the user is obtained in combination.
28、 一种密钥协商的系统, 其特征在于, 包括:  28. A system for key agreement, comprising:
共享单元, 用于存储用户群共享的 Α(Λ , 所述用户群包括至少两个用户; 所述 是由 η元向量 X到 η元向量 的非线性函数组 a sharing unit, configured to store a user group shared Α (Λ, the user group includes at least two users; the nonlinear function group is a η-element vector X to an η-element vector
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X的系数不为 0的项的数量与类型保持不变, S为整数; 若 B(x) = A(A(x)), 则 A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, S is an integer; if B(x) = A(A(x)), then A(B(x)) = B(A(x)) ;
中间结果交换单元, 连接所述用户群中的各用户端,用于传递所述用户群 中的各用户与 的整数层迭代有关的中间结果至其他用户 ·'  An intermediate result exchange unit is connected to each user end in the user group for transmitting intermediate results related to integer layer iterations of each user in the user group to other users.
密钥计算单元,位于所述用户群中的各用户端,用于针对各用户分别利用 所接收的中间结果, 计算得到该用户群共享的密钥 K。  The key calculation unit is located at each user end of the user group, and is configured to calculate, by using the received intermediate result for each user, a key K shared by the user group.
29、 一种用于编码和译码数字消息的系统, 其特征在于, 包括:  29. A system for encoding and decoding digital messages, comprising:
共享单元, 用于存储加密端和解密端共享的 Α(χ); 所述 A(x)是由 n元向 量 X到《元向量 的非线性函数组a shared unit, configured to store Α(χ) shared by the encryption end and the decryption end ; the A(x) is a non-linear function group from the n-ary vector X to the meta-vector
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
公私钥建立单元,用于选择整数 作为私钥;运用 A ^的 层迭代建立对 应的公钥;  a public-private key establishing unit for selecting an integer as a private key; using a layer iteration of A^ to establish a corresponding public key;
加密单元, 位于加密端, 用于选择整数 t, 运用 将公钥变换为关于 t 的中间密钥, 利用所述中间密钥对明文进行加密, 传送加密结果和 ί的变换结 果至解密端; 所述 t的变换结果与 的 t层迭代相关; OP070709 An encryption unit, located at the encryption end, for selecting an integer t, using an intermediate key for transforming the public key into t, encrypting the plaintext with the intermediate key, and transmitting the result of the encryption and the result of the transformation to the decryption end; The transformation result of t is related to the t-layer iteration; OP070709
WO 2009/026771 PCT/CN2007/070628  WO 2009/026771 PCT/CN2007/070628
-48- 解密单元, 位于解密端, 用于利用 ί的变换结果、 私钥 和 Α(χ)计算得到 相同的中间密钥, 利用所述中间密钥对加密结果进行解密。 The decryption unit is located at the decryption end and is used to calculate the same intermediate key by using the transformation result of ί, the private key and Α(χ), and decrypting the encryption result by using the intermediate key.
30、 一种用于数字签名及验证的系统, 其特征在于, 包括:  30. A system for digital signature and verification, comprising:
共享单元, 用于存储签名端和验证端共享的 所述 Α(Λ 是由 η元向 量 X到《元向量 的非线性函数组 a shared unit, configured to store the signature shared by the signature end and the verification end (Λ is a η element vector X to a non-linear function group of the meta-vector
其中, η > 1, 所述 A(x)需要满足: 把 A(x)的 s层迭代 A(i)(x), 与 A(x)相 比, 其关于 X 的系数不为 0 的项的数量与类型保持不变, s 为整数; 若 B(x)=A(A(x)), 贝 ij A(B(x)) = B(A(x)); Where η > 1, the A(x) needs to satisfy: The s layer iteration A (i) (x) of A(x), compared with A(x), the term whose coefficient of X is not 0 The number and type remain unchanged, s is an integer; if B(x)=A(A(x)), Bay ij A(B(x)) = B(A(x)) ;
公私钥建立单元,用于选择整数 作为私钥;运用 的^层迭代建立对 应的公钥;  a public-private key establishing unit for selecting an integer as a private key; using a layer of iteration to establish a corresponding public key;
签名单元, 位于签名端, 用于选择整数 ί, 依据预置规则将待签名数据变 换为与 t、 私钥^相关的中间消息, 传送包含中间消息和 t的变换结果的数字 签名至验证端; 所述 t的变换结果与 的 t层迭代相关;  a signature unit, located at the signature end, for selecting an integer ί, transforming the data to be signed into an intermediate message related to t and the private key according to a preset rule, and transmitting a digital signature including the intermediate message and the transformation result of t to the verification end; The transformation result of t is related to the t-layer iteration;
验证单元, 位于验证端, 用于利用 t的变换结果、待签名数据、 中间消息、 公钥和 Α(Λ验证是否满足所述预置规则, 如果满足, 则该数字签名验证通过。  The verification unit is located at the verification end, and is used to utilize the transformation result of t, the data to be signed, the intermediate message, the public key, and the Α (Λ to verify whether the preset rule is satisfied, and if so, the digital signature verification is passed.
PCT/CN2007/070628 2007-08-24 2007-09-05 The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information WO2009026771A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200710120763.X 2007-08-24
CN200710120763XA CN101374043B (en) 2007-08-24 2007-08-24 Cipher key negotiating method, enciphering/deciphering method and signature/verification method

Publications (1)

Publication Number Publication Date
WO2009026771A1 true WO2009026771A1 (en) 2009-03-05

Family

ID=40386661

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2007/070628 WO2009026771A1 (en) 2007-08-24 2007-09-05 The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information

Country Status (2)

Country Link
CN (1) CN101374043B (en)
WO (1) WO2009026771A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013172790A1 (en) * 2012-05-16 2013-11-21 Nanyang Technological University Methods for determining a result of applying a function to an input and evaluation devices
WO2019000231A1 (en) * 2017-06-27 2019-01-03 王威鉴 Method for establishing anti-attack public key cipher
WO2020252617A1 (en) * 2019-06-17 2020-12-24 云图有限公司 Data processing method, apparatus and system
WO2023216403A1 (en) * 2022-05-07 2023-11-16 上海阵方科技有限公司 Ciphertext restoration method for private set intersection based on homomorphic encryption

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101499908B (en) * 2009-03-20 2011-06-22 四川长虹电器股份有限公司 Method for identity authentication and shared cipher key generation
CN102006170B (en) * 2010-11-11 2013-04-17 西安理工大学 Ring signature method for anonymizing information based on MQ problem in finite field
CN103414569B (en) * 2013-08-21 2016-08-10 王威鉴 A kind of method of the public key cryptography setting up attack resistance
CN103490882B (en) * 2013-09-17 2016-10-05 华南理工大学 A kind of multivariate public key cryptography system for key exchange and the method for generation
CN103595526A (en) * 2013-11-19 2014-02-19 南京信息工程大学 Fault tolerance key agreement method based on cell group design
CN105337738B (en) * 2014-07-15 2018-10-30 华为技术有限公司 The treating method and apparatus of linear homomorphism signature
EP3402118A1 (en) * 2017-05-10 2018-11-14 Koninklijke Philips N.V. Key agreement devices and method
US10491373B2 (en) * 2017-06-12 2019-11-26 Microsoft Technology Licensing, Llc Homomorphic data analysis
JP6981472B2 (en) * 2017-08-22 2021-12-15 日本電信電話株式会社 Consensus systems, consensus devices, programs, and recording media
US10637656B2 (en) * 2017-11-28 2020-04-28 Blackberry Limited Method and system for key agreement utilizing semigroups
CN109361504B (en) * 2018-12-04 2021-10-08 桂林电子科技大学 Block chain-based multi-user communication key negotiation method
WO2020168543A1 (en) * 2019-02-22 2020-08-27 云图有限公司 Data processing method and device
CN109995786B (en) * 2019-04-08 2020-11-13 北京深思数盾科技股份有限公司 Method and device for authorizing data in organization
CN110213354B (en) * 2019-05-20 2021-07-13 电子科技大学 Cloud storage data confidentiality protection method
CN110533816B (en) * 2019-09-03 2021-07-27 中国联合网络通信集团有限公司 Remote encryption method and device for authorized fingerprint of electronic fingerprint lock

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375170A (en) * 1992-11-13 1994-12-20 Yeda Research & Development Co., Ltd. Efficient signature scheme based on birational permutations
US20050149732A1 (en) * 2004-01-07 2005-07-07 Microsoft Corporation Use of static Diffie-Hellman key with IPSec for authentication
JP2005284111A (en) * 2004-03-30 2005-10-13 Japan Science & Technology Agency Method and device for high speed arithmetic processing of elliptic curve cryptosystem
US7096356B1 (en) * 2001-06-27 2006-08-22 Cisco Technology, Inc. Method and apparatus for negotiating Diffie-Hellman keys among multiple parties using a distributed recursion approach
CN1831754A (en) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 Elliptic curve cipher system and implementing method

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5398284A (en) * 1993-11-05 1995-03-14 United Technologies Automotive, Inc. Cryptographic encoding process
CN1564504B (en) * 2004-03-23 2011-08-17 南京大学 Chaos coding/decoding method of data stream and modularized circuit
US7404089B1 (en) * 2005-06-03 2008-07-22 Pitney Bowes Inc. Method and system for protecting against side channel attacks when performing cryptographic operations
CN1761185B (en) * 2005-11-18 2011-08-17 清华大学 AES encrypted circuit structure for data stream executed in desequencing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375170A (en) * 1992-11-13 1994-12-20 Yeda Research & Development Co., Ltd. Efficient signature scheme based on birational permutations
US7096356B1 (en) * 2001-06-27 2006-08-22 Cisco Technology, Inc. Method and apparatus for negotiating Diffie-Hellman keys among multiple parties using a distributed recursion approach
US20050149732A1 (en) * 2004-01-07 2005-07-07 Microsoft Corporation Use of static Diffie-Hellman key with IPSec for authentication
JP2005284111A (en) * 2004-03-30 2005-10-13 Japan Science & Technology Agency Method and device for high speed arithmetic processing of elliptic curve cryptosystem
CN1831754A (en) * 2005-11-04 2006-09-13 北京浦奥得数码技术有限公司 Elliptic curve cipher system and implementing method

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GUAN HAIMING: "Rational Function Public Key Cryptosystem", CCICS' 2007, July 2007 (2007-07-01), pages 139, ISBN: 978-7-03-019312-4 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013172790A1 (en) * 2012-05-16 2013-11-21 Nanyang Technological University Methods for determining a result of applying a function to an input and evaluation devices
WO2019000231A1 (en) * 2017-06-27 2019-01-03 王威鉴 Method for establishing anti-attack public key cipher
WO2020252617A1 (en) * 2019-06-17 2020-12-24 云图有限公司 Data processing method, apparatus and system
WO2023216403A1 (en) * 2022-05-07 2023-11-16 上海阵方科技有限公司 Ciphertext restoration method for private set intersection based on homomorphic encryption

Also Published As

Publication number Publication date
CN101374043B (en) 2010-09-22
CN101374043A (en) 2009-02-25

Similar Documents

Publication Publication Date Title
WO2009026771A1 (en) The method for negotiating the key, encrypting and decrypting the information, signing and authenticating the information
JP4809598B2 (en) Use of isojani in the design of cryptographic systems
US6490352B1 (en) Cryptographic elliptic curve apparatus and method
US20100166174A1 (en) Hash functions using elliptic curve cryptography
CN111162906A (en) Collaborative secret sharing method, device, system and medium based on vast transmission algorithm
EP2742644A1 (en) Encryption and decryption method
CN111262709B (en) Trapdoor hash function-based unlicensed bookmark encryption system and method
Tan An Improvement on a three-party authentication key exchange protocol using elliptic curve cryptography.
Mohapatra Public key cryptography
WO2022172041A1 (en) Asymmetric cryptographic schemes
Murugan An efficient algorithm on quantum computing with quantum key distribution for secure communication
Lizama-Perez Non-invertible key exchange protocol
Mohapatra Signcryption schemes with forward secrecy based on elliptic curve cryptography
JP3706398B2 (en) Signature, authentication and secret communication method using elliptic curve
Vahedi et al. An Overview of Cryptography
WO2003013052A1 (en) Cryptosystems based on non-commutatity
Hesamian Analysis of bcns and newhope key-exchange protocols
Soman Lightweight Elliptical Curve Cryptography (ECC) for Data Integrity and User Authentication in Smart Transportation IoT System
Nabil et al. New authenticated key agreement protocols
Bashir et al. Cryptanalysis and improvement of an encryption scheme that uses elliptic curves over finite fields
Al-Saidi et al. A new idea in zero knowledge protocols based on iterated function systems
Yang et al. Lecture note 3: Public key cryptography
Chandravathi et al. A new authentication RSA homomorphic encryption technique for prime factorization-based attacks scheme using Brahmagupta Fibonacci identity for cloud data security
Suresh et al. Advanced Cryptographic System for data Encryption and Decryption
Zia et al. Cryptanalysis and improvement of an encryption scheme that uses elliptic curves over finite fields

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07801037

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07801037

Country of ref document: EP

Kind code of ref document: A1