Key exchange method and device based on integrable polynomials
By replacing the exponential mapping in the Diffie-Hellman protocol with a key exchange method based on integrable polynomials, polynomial public keys and shared keys are generated and exchanged, solving the security problem of the Diffie-Hellman protocol in a quantum computing environment and achieving efficient and secure key exchange.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2026-04-02
AI Technical Summary
The existing Diffie-Hellman key exchange protocol is no longer secure in a quantum computing environment and needs to be improved to resist attacks by quantum algorithms.
A key exchange method based on integrable polynomials is adopted, which generates and exchanges public and shared keys based on polynomial mappings, replacing the traditional exponential mapping.
It achieves efficient and secure key exchange in a quantum computing environment, and the generated shared key has high security and a short public key.
Smart Images

Figure CN2024122789_02042026_PF_FP_ABST
Abstract
Description
A key exchange method and device based on integrable polynomial TECHNICAL FIELD
[0001] The present disclosure relates to the technical field of computer, and particularly relates to a key exchange method and device based on integrable polynomial. BACKGROUND
[0002] Key exchange is a very important problem in modern communication. Key exchange system is that two or more parties obtain a secret message without secret communication; usually, the secret message is used as a key in symmetric cryptography. Among them, the Diffie-Hellman key exchange protocol (abbreviated as DH protocol) is the most influential and important key exchange protocol, and the Diffie-Hellman key exchange protocol is designed based on the discrete logarithm problem in finite field or elliptic curve.
[0003] In 1994, Shor proposed a quantum algorithm, which can effectively solve all discrete logarithm problems in polynomial time on a quantum computer; this means that the Diffie-Hellman key exchange protocol based on the discrete logarithm problem is no longer secure, and in order to make the Diffie-Hellman key exchange protocol achieve the security strength that can resist quantum algorithms, the Diffie-Hellman key exchange protocol needs to be improved.
[0004] SUMMARY
[0005] Therefore, the present disclosure provides a key exchange method and device based on integrable polynomial, an electronic device and a storage medium.
[0006] According to an aspect of the present disclosure, a key exchange method based on integrable polynomial is provided, applied to a first terminal, and the method comprises:
[0007] The first terminal obtains a target prime number, a target simple Lie algebra and a target array; wherein the target prime number is a prime number greater than a preset threshold;
[0008] The first terminal generates a private key of the first terminal;
[0009] The first terminal generates a public key of the first terminal by using polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal;
[0010] The first terminal sends the public key of the first terminal to a second terminal;
[0011] The first terminal receives a public key of the second terminal; wherein the public key of the second terminal is generated by polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and a private key of the second terminal;
[0012] The first terminal generates a shared key by polynomial mapping based on the public key of the second terminal, the target prime number, the target simple Lie algebra and a private key of the first terminal, the shared key being used for communication between the first terminal and the second terminal.
[0013] In a possible implementation, the first terminal generates the public key of the first terminal by polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and a private key of the first terminal, comprising:
[0014] The first terminal constructs a first polynomial based on the target simple Lie algebra and a private key of the first terminal;
[0015] The target array is substituted into the first polynomial, and the result is subjected to modulo operation with the target prime number to generate the public key of the first terminal.
[0016] In a possible implementation, the first terminal constructs a first polynomial based on the target simple Lie algebra and a private key of the first terminal, comprising:
[0017] The first polynomial is determined from a plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the first terminal, wherein polynomial coefficients of the first polynomial are all integers.
[0018] In a possible implementation, the first terminal generates a shared key by polynomial mapping based on the public key of the second terminal, the target prime number, the target simple Lie algebra and a private key of the first terminal, comprising:
[0019] The public key of the second terminal is substituted into the first polynomial, and the result is subjected to modulo operation with the target prime number to generate the shared key; wherein the first polynomial is constructed based on the target simple Lie algebra and the private key of the first terminal.
[0020] In a possible implementation, the target array includes n elements, wherein n is a rank of the target simple Lie algebra, and each of the n elements belongs to a target finite field, the target finite field being determined based on the target prime number.
[0021] In a possible implementation, the target array is substituted into the first polynomial, and the result is subjected to modulo operation with the target prime number to generate the public key of the first terminal, comprising:
[0022] In a possible implementation, the polynomials corresponding to the target simple Lie algebra are determined by a root of the simple Lie algebra corresponding to the target simple Lie algebra and a root in the root system.
[0023] The first polynomial is determined from the polynomials corresponding to the target simple Lie algebra based on the private key of the first terminal, including: determining the first polynomial from the polynomials corresponding to the target simple Lie algebra by taking the private key of the first terminal as the degree of the polynomial.
[0024] In a possible implementation, the public key of the first terminal is generated by the following formula:
[0025] Y a =P a (x)mod p
[0026] wherein p is the target prime number, Y a is the public key of the first terminal, P a is the first polynomial, a is the private key of the first terminal, x is the target array, and mod represents a modulo operation.
[0027] and / or,
[0028] The shared key is generated by the following formula:
[0029] K=P a (Y b )mod p
[0030] wherein p is the target prime number, Y b is the public key of the second terminal, K is the shared key, a is the private key of the first terminal, b is the private key of the second terminal, P a is the first polynomial, and mod represents a modulo operation.
[0031] and / or,
[0032] The public key of the second terminal is generated based on the following formula:
[0033] Y b =P b (x)mod p
[0034] wherein p is the target prime number, Y b is the public key of the second terminal, P b is the second polynomial, b is the private key of the second terminal, x is the target array, and mod represents a modulo operation.
[0035] According to another aspect of the present disclosure, there is provided a key exchange device based on summable polynomials, applied to a first terminal, the device comprising:
[0036] an obtaining module configured to obtain, by the first terminal, a target prime number, a target simple Lie algebra and a target array, wherein the target prime number is a prime number greater than a preset threshold;
[0037] a generating module configured to generate, by the first terminal, a private key of the first terminal;
[0038] the generating module is further configured to generate, by the first terminal, a public key of the first terminal based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal, by using a polynomial mapping;
[0039] a transmitting module configured to transmit, by the first terminal, the public key of the first terminal to a second terminal;
[0040] the transmitting module is further configured to receive, by the first terminal, a public key of the second terminal, wherein the public key of the second terminal is generated based on the target prime number, the target simple Lie algebra, the target array and a private key of the second terminal, by using a polynomial mapping;
[0041] the generating module is further configured to generate, by the first terminal, a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra and the private key of the first terminal, by using a polynomial mapping, wherein the shared key is used for communication between the first terminal and the second terminal.
[0042] According to another aspect of the present disclosure, there is provided an electronic device comprising: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to implement the above method when executing the instructions stored in the memory.
[0043] According to another aspect of the present disclosure, there is provided a non-volatile computer-readable storage medium having computer program instructions stored therein, wherein the computer program instructions, when executed by a processor, implement the above method.
[0044] According to another aspect of the present disclosure, there is provided a computer program product comprising computer-readable code, or a non-volatile computer-readable storage medium carrying computer-readable code, which, when run in a processor of an electronic device, causes the processor in the electronic device to perform the above method.
[0045] According to aspects of the present disclosure, the first terminal obtains a target prime number, a target simple Lie algebra and a target array; the target prime number is a prime number greater than a preset threshold; the first terminal generates a private key of the first terminal; the first terminal generates a public key of the first terminal by using a polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal; the first terminal sends the public key of the first terminal to a second terminal; the first terminal receives a public key of the second terminal; the public key of the second terminal is generated by using a polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and a private key of the second terminal; the first terminal generates a shared key by using a polynomial mapping based on the public key of the second terminal, the target prime number, the target simple Lie algebra and the private key of the first terminal, the shared key being used for communication between the first terminal and the second terminal. In this way, based on the Diffie-Hellman key exchange protocol, the exponential mapping is replaced by an integrable polynomial mapping, that is, in the process of generating the own public key and calculating the shared key of the terminal device, a polynomial mapping is used; the polynomial mapping also has the advantage of high operation efficiency, thereby realizing that the first terminal and the second terminal can securely exchange the key, and both parties can obtain a shared session key (i.e., the shared key). As an example, a high-dimensional key exchange protocol is constructed by using an integrable polynomial constructed by a simple Lie algebra, which has the advantages of high efficiency, security and short public key.
[0046] Other features and aspects of the present disclosure will become apparent from the following detailed description of exemplary embodiments with reference to the drawings. BRIEF DESCRIPTION OF DRAWINGS
[0047] The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate exemplary embodiments, features, and aspects of the present disclosure and serve to explain the principles of the present disclosure.
[0048] FIG. 1 shows a structural schematic diagram of a communication system according to an embodiment of the present disclosure;
[0049] FIG. 2 shows a flowchart of a key exchange method based on an integrable polynomial according to an embodiment of the present disclosure;
[0050] FIG. 3 shows a flowchart of a key exchange method based on an integrable polynomial according to an embodiment of the present disclosure;
[0051] FIG. 4 shows a structural diagram of a key exchange device based on an integrable polynomial according to an embodiment of the present disclosure;
[0052] FIG. 5 is a block diagram of an electronic device 1900 according to an exemplary embodiment. DETAILED DESCRIPTION
[0053] Various exemplary embodiments, features, and aspects of the present disclosure are described below in detail with reference to the accompanying drawings. The same reference numbers in different drawings represent the same or similar elements. Although various aspects of embodiments are illustrated in the drawings, the drawings are not necessarily drawn to scale unless specifically noted.
[0054] Reference within the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase "in one embodiment" or "in some embodiments" within the specification are not necessarily all referring to the same embodiment, although the phrases can. The terms "including," "comprising," "having," and variations thereof are meant to encompass the items listed thereafter, but do not exclude other items from being present. The terms "a" and "an" are meant to encompass both the singular and the plural, unless otherwise indicated.
[0055] In the present disclosure, "at least one" means one or more, and "multiple" means two or more. The "and / or" describes the association relationship of the associated objects, which means that there can be three relationships, for example, A and / or B can represent the following three cases: A exists alone, A and B exist together, and B exists alone, where A and B can be singular or plural. The character " / " generally represents an "or" relationship between the associated objects before and after it. "At least one of the following" or similar expressions means any combination of these items, including any combination of single or multiple items. For example, at least one of a, b, or c can represent a, b, c, a-b, a-c, b-c, or a-b-c, where a, b, and c can be single or multiple.
[0056] In addition, in order to better illustrate the present disclosure, a large number of specific details are given in the specific embodiments below. Those skilled in the art should understand that the present disclosure can also be implemented without certain specific details. In some examples, methods, means, elements and circuits well known to those skilled in the art are not described in detail in order to highlight the main idea of the present disclosure.
[0057] The main research directions of existing anti-quantum public key cryptography schemes include multivariate equation theory, lattice theory, elliptic curve homology theory, and coding theory. Among them, in the lattice theory and the elliptic curve homology theory, there are corresponding Diffie-Hellman key exchange protocols, for example, Ding key exchange protocol, SIDH (Square Interactive Diffie-Hellman) key exchange protocol; although SIDH is attacked and the security is reduced, M-SIDH (Multiple-SIDH) based on this provides higher security. Generally speaking, the multivariate public key cryptography based on multivariate equation theory has the advantage of fast calculation speed, but also has the defect of large public key, and there are multiple studies on reducing the public key without losing security. Multivariate public key cryptography starts relatively earlier in post-quantum cryptography, and the corresponding research mainly focuses on the design of signature and encryption scheme; for example, Hidden Field Equations (HFE), Unbalanced Oil and Vinegar (UOV), Rainbow, etc.
[0058] In the embodiments of the present disclosure, a multivariate equation theory is used to design an effective and secure key exchange protocol, and a key exchange method based on an integrable polynomial is proposed (see the following detailed description), which is based on the Diffie-Hellman key exchange protocol and uses a polynomial mapping instead of the exponential mapping in the Diffie-Hellman key exchange protocol. As an example, an integrable polynomial constructed by using a single Lie algebra can be used to construct a high-dimensional key exchange protocol, which has the advantages of high efficiency, security, and short public key.
[0059] Next, the possible application scenarios of the key exchange method based on the integrable polynomial in the embodiments of the present disclosure will be exemplarily described.
[0060] FIG. 1 shows a structural schematic diagram of a communication system according to an embodiment of the present disclosure. As shown in FIG. 1, the communication system can include a first communication party 10 and a second communication party 20. The first communication party 10 and the second communication party 20 can be directly or indirectly connected through wired or wireless communication.
[0061] As an example, the first communication party 10 and the second communication party 20 can each be a device used by a user, and the first communication party 10 and the second communication party 20 can belong to different users. The number of the first communication party 10 can be one or more (only one is shown in the figure), and the first communication party 10 can include, but is not limited to, a smart phone, a tablet computer, a portable personal computer, a mobile Internet device, and the like. The first communication party 10 is often configured with a display device, which can be a display, a display screen, a touch screen, and the like. The touch screen can also be a touch panel, and the like. The embodiments of the present disclosure are not limited.
[0062] As another example, the first communication party 10 can be a device used by a user, also referred to as a client, and the second communication party 20 can be a server providing services to the user, also referred to as a server. The second communication party 20 can be a standalone physical server, a server cluster or a distributed system composed of multiple physical servers, or a cloud server providing cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, CDNs, and basic cloud computing services such as big data and artificial intelligence platforms.
[0063] In the process of communication between the first communication party 10 and the second communication party 20, the first communication party 10 and the second communication party 20 can respectively perform the key exchange method based on the integrable polynomial provided by the embodiments of the present disclosure, so as to generate a shared key between the first communication party 10 and the second communication party 20. Then, the messages transmitted between the first communication party 10 and the second communication party 20 can be encrypted by the shared key, thereby ensuring the security of the communication between the first communication party 10 and the second communication party 20. Exemplarily, the messages can be any type of data such as emails, installation packages, images, documents, and the like, which are not limited. For example, the first communication party 10 is a computer of user A, and the second communication party 20 is a computer of user B. In the scenario where user A sends an email to user B, the email is the message. The computer of user A and the computer of user B respectively perform the key exchange method based on the integrable polynomial provided by the embodiments of the present disclosure. The computer of user A and the computer of user B can each generate the same shared key. Then, the computer of user A can encrypt the email by using the shared key and send the encrypted email to the computer of user B. After receiving the encrypted email, the computer of user B can decode the received email by using the shared key, thereby obtaining the original email.
[0064] Exemplarily, the communication system can further include a secure third party authority 30, such as a certificate authority (CA), which is configured to authenticate the legitimacy of a public key, for example, to generate a certificate of the public key of the first communication party 10 to bind the first communication party 10 with its own public key. The first communication party 10 can send the authenticated public key of itself to the second communication party 20, and correspondingly, the second communication party 20 can send the authenticated public key of itself to the first communication party 10. For example, in the scenario of the above-mentioned user A sending an email to user B, in the process of the computers of user A and user B respectively performing the method of key exchange based on the summable polynomial provided by the embodiments of the present disclosure, the computer of user A can send the authenticated public key of itself to the computer of user B, and the computer of user B can send the authenticated public key of itself to the computer of user A.
[0065] It should be noted that the above-mentioned application scenarios described in the embodiments of the present disclosure are for more clearly illustrating the technical solutions of the present disclosure, and do not constitute a limitation on the technical solutions provided by the embodiments of the present disclosure. It can be known by those skilled in the art that the technical solutions provided by the embodiments of the present disclosure are also applicable to similar technical problems for other similar or new scenarios.
[0066] The method of key exchange based on the summable polynomial provided by the embodiments of the present disclosure will be described in detail below.
[0067] The classic Diffie-Hellman key exchange protocol is a method of securely transmitting a shared key between two communication parties. Through the protocol, two communication parties are allowed to negotiate a shared key on an insecure communication channel, and the shared key can be used for a symmetric encryption algorithm to perform encrypted communication between the two communication parties.
[0068] The process of the Diffie-Hellman key exchange protocol can include the following flow: both communication parties obtain a large prime number p and a primitive root g; wherein the primitive root g is selected in the multiplicative group modulo p. Then, both communication parties each select a private random number as a private key, and each calculates its own public key, for example, communication party A selects a private random number a, and calculates the public key of communication party A as A = g a mod p; communication party B selects a private random number b, and calculates the public key of communication party B as B = g b mod p. Both communication parties send their respective public keys to each other, and after each communication party receives the public key of the other party, uses its own private key and the public key of the other party to calculate a shared key, for example, communication party A calculates the shared key as s = B a mod p, and communication party B calculates the shared key as s = Ab mod p, due to the commutativity of the exponentiation, the communicating party A and the communicating party B will calculate the same result, and this shared key s can be used for subsequent encrypted communication. The security of this process is based on the assumption that it is difficult to calculate the discrete logarithm for a large prime number p; this means that even if an attacker can intercept the public keys A and B, as well as the large prime number p and the primitive root g, it is difficult to easily calculate the shared key s, which can ensure the security of encrypted communication.
[0069] The key exchange method based on the summable polynomial provided in the embodiments of the present disclosure starts from the classical Diffie-Hellman key exchange protocol, and uses a complex summable polynomial mapping to replace the exponential mapping in the Diffie-Hellman key exchange protocol.
[0070] FIG. 2 shows a flowchart of a key exchange method based on a summable polynomial according to an embodiment of the present disclosure. The method can be applied to any terminal in a communication system, for example, it can be applied to the first communication party 10 and / or the second communication party 20 in the communication system shown in FIG. 1. As shown in FIG. 2, the method can include the following steps:
[0071] Step 201, the first terminal obtains a target prime number, a target simple Lie algebra, and a target array; wherein the target prime number is a prime number greater than a preset threshold.
[0072] Exemplarily, the target prime number, the target simple Lie algebra, and the target array can be determined by negotiation between the first terminal and the second terminal; wherein the second terminal and the first terminal are located in the same communication system and have established a communication connection. For example, the first terminal can be the first communication party 10 in FIG. 1, and the second terminal can be the second communication party 20; for another example, the first terminal can be the second communication party 20 in FIG. 1, and the first terminal can be the first communication party 10.
[0073] The preset threshold can be set according to requirements, for example, the preset threshold can be a large value, i.e., the target prime number can be a large prime number. The rank of the target simple Lie algebra can be set according to requirements. The simple Lie algebra is a class of simple Lie algebras; let L be a Lie algebra over a field F, if the non-zero ideal of L is only L itself, and [L, L]≠0, then L is called a simple Lie algebra.
[0074] Exemplarily, the target array includes n elements, wherein n is the rank of the target simple Lie algebra, and each element in the n elements belongs to a target finite field, and the target finite field is determined based on the target prime number.
[0075] As an example, the first terminal and the second terminal can agree to randomly select a large prime number p as a target prime number, a simple Lie algebra of rank n as a target simple Lie algebra, and a target array x = (x1,..., xn) of n elements n ∈ (Z / pZ) n where Z / pZ is a target finite field, which is a set of all integers less than the large prime number p modulo the prime number p, Z represents a set of integers, x1,..., xn represent n elements in the target array, and each element belongs to Z / pZ. n That is, the n elements in the target array, each of which belongs to Z / pZ.
[0076] Step 202, the first terminal generates a private key of the first terminal.
[0077] Exemplarily, the first terminal can select a secret random integer a as the private key of the first terminal.
[0078] Similarly, the second terminal can select a secret random integer b as the private key of the second terminal.
[0079] The first terminal and the second terminal independently generate their own private keys, and the private keys are secret, that is, other devices including the second terminal cannot obtain the private key of the first terminal, and other devices including the first terminal also cannot obtain the private key of the second terminal. Since the private key of the first terminal and the private key of the second terminal are randomly generated, the generated private key of the first terminal and the private key of the second terminal can be the same or different.
[0080] Step 203, the first terminal generates a public key of the first terminal by using polynomial mapping based on the target prime number, the target simple Lie algebra, the target array, and the private key of the first terminal.
[0081] In this step, in the process of generating the public key of the first terminal by the first terminal, the polynomial mapping is used to replace the exponential mapping in the Diffie-Hellman key exchange protocol. Exemplarily, the polynomial mapping can be an integrable polynomial mapping. Wherein, the polynomial function f is integrable, which means that there is a polynomial g not belonging to {1, f, f 2 ,···} such that wherein, represents the composition of functions; the definition of the integrable polynomial and the integrable polynomial on the finite field is similar, and is not described here. For example, for a one-dimensional integrable polynomial such as f = x m , take g = x n . There are f(g) = g(f) = x {mn} .
[0082] In a possible implementation, in step 203, the first terminal generates a public key of the first terminal by using a polynomial mapping based on the target prime number, the target simple Lie algebra, the target array, and a private key of the first terminal, including: constructing, by the first terminal, a first polynomial based on the target simple Lie algebra and the private key of the first terminal; and substituting the target array into the first polynomial and performing a modulo operation on a result obtained and the target prime number to generate the public key of the first terminal.
[0083] For example, the first terminal can construct the first polynomial based on the target simple Lie algebra and the private key of the first terminal, including: determining the first polynomial in a plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the first terminal, where polynomial coefficients of the first polynomial are all integers.
[0084] For example, the plurality of polynomials corresponding to the target simple Lie algebra are determined by a Weierstrass group on a dual space corresponding to the target simple Lie algebra and a basic weight in the Weierstrass group; and the first polynomial is determined in the plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the first terminal, including: determining the first polynomial in the plurality of polynomials corresponding to the target simple Lie algebra by taking the private key of the first terminal as a degree of a polynomial.
[0085] For example, the first polynomial is an integrable polynomial, that is, the first polynomial can be constructed by the target simple Lie algebra. The plurality of polynomials corresponding to the target simple Lie algebra can all be integrable polynomials, and a method proposed by Veselov et al. in the prior art can be used to construct a series of integrable polynomials by using the target simple Lie algebra, that is, the plurality of polynomials corresponding to the target simple Lie algebra are the plurality of integrable polynomials constructed by the target simple Lie algebra, and coefficients of the plurality of integrable polynomials are all integers, so the plurality of polynomials can be polynomials on a finite field; and the private key of the first terminal generated randomly can be used as the degree of the polynomial to determine the first polynomial in the plurality of polynomials.
[0086] For any simple Lie algebra g of rank n There is a family of integrable polynomial mappings:
[0087] where C is a complex field, k = 1, 2, 3, …, denotes an integrable polynomial of degree k constructed by the simple Lie algebra g, and satisfies the following conditions:
[0088] where denotes a mapping, and the mapping is defined as:
[0089] in, For simple Lie algebras Cartan subalgebra, For Jia Dang Subalgebra The dual space, It is composed of dual space The basic weights w1, w2, ..., w in n The generated lattice, For grid In Cartan subalgebra The dual lattice in the array, where C is the field of complex numbers; For a given set of n components (i.e., φ1, ..., φ2), ... n The mapping formed by ) where each component is an integrable polynomial can be expressed as follows:
[0090] Where, φ k express The k-th component, w k Representing the dual space The k-th basic weight in the equation, W is a simple Lie algebra. Acting on dual space The Weyl group on the σ-axis; i is the imaginary unit; σ represents a function in the Weyl group.
[0091] Thus, for any simple Lie algebra Based on single Lie algebra Acting on dual space Weyl groups and dual spaces The basic weights in a Lie algebra can be determined in a simple Lie algebra. The corresponding multiple polynomials, and then using the private key of the first terminal as the degree of the polynomial, that is, using the private key 'a' of the first terminal as the value of 'k', in a single Lie algebra. The first polynomial is determined from among the corresponding polynomials.
[0092] The above-mentioned Lie algebra The corresponding integrable polynomials satisfy the following equation:
[0093] in, Indicates the composition of mappings; All are integrable polynomials constructed from simple Lie algebras g, where k and l represent the degrees of the constructed integrable polynomials, respectively.
[0094] For example, substituting the target array into the first polynomial and performing a modulo operation between the result and the target prime number to generate the public key of the first terminal includes:
[0095] The public key of the first terminal is generated by the following formula:
[0096] Y a =P a (x)mod p
[0097] wherein p is the target prime number, Y a is the public key of the first terminal, P a is the first polynomial, a is the private key of the first terminal, x is the target array, and mod represents a modulo operation.
[0098] wherein P a may also be represented as and the like, and the integrable polynomial of order a is constructed by the simple Lie algebra g.
[0099] Step 204: The first terminal sends the public key of the first terminal to the second terminal.
[0100] In this step, the first terminal can send the public key of the first terminal calculated by the polynomial mapping to the second terminal. For example, the first terminal can send the public key Y a of the first terminal to the second terminal.
[0101] Exemplarily, the first terminal can send the public key of the first terminal authenticated by a secure third-party organization to the second terminal.
[0102] Step 205: The first terminal receives the public key of the second terminal; wherein the public key of the second terminal is generated by the polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the second terminal.
[0103] The generation process of the public key of the second terminal is similar to the generation process of the public key of the first terminal, and the polynomial mapping is used in the generation process of the public key of the second terminal instead of the exponential mapping in the Diffie-Hellman key exchange protocol.
[0104] In a possible implementation, the public key of the second terminal is generated by the polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the second terminal, including: the second terminal constructs a second polynomial based on the target simple Lie algebra and the private key of the second terminal; the target array is substituted into the second polynomial, and the obtained result is subjected to a modulo operation with the target prime number to generate the public key of the second terminal.
[0105] Exemplarily, the second terminal constructs a second polynomial based on the target simple Lie algebra and a private key of the second terminal, which can include: determining the second polynomial from a plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the second terminal, wherein polynomial coefficients of the second polynomial are all integers. Exemplarily, the second polynomial can be an integrable polynomial, and the process of determining the second polynomial can refer to the foregoing description of determining the first polynomial.
[0106] Exemplarily, the second terminal constructs a second polynomial based on the target simple Lie algebra and a private key of the second terminal, which can include: determining the second polynomial from a plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the second terminal, wherein polynomial coefficients of the second polynomial are all integers. Exemplarily, the second polynomial can be an integrable polynomial, and the process of determining the second polynomial can refer to the foregoing description of determining the first polynomial.
[0107] Y b =P b (x)mod p
[0108] wherein p is the target prime number, Y b is the public key of the second terminal, P b is the second polynomial, b is the private key of the second terminal, x is the target array, and mod represents a modulo operation.
[0109] Exemplarily, the second terminal can send its public key to the first terminal, for example, can send the public key Y b to the first terminal. Exemplarily, the second terminal can send its public key authenticated by a secure third-party organization to the first terminal, and correspondingly, the first terminal can receive the public key of the second terminal authenticated by the secure third-party organization.
[0110] Step 206: The first terminal generates a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra and a private key of the first terminal by using polynomial mapping, and the shared key is used for communication between the first terminal and the second terminal.
[0111] In a possible implementation, in the step 206, the first terminal generates a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra and a private key of the first terminal by using polynomial mapping, which includes: substituting the public key of the second terminal into the first polynomial, and generating the shared key by performing a modulo operation on the result with the target prime number; wherein the first polynomial is constructed based on the target simple Lie algebra and the private key of the first terminal.
[0112] Exemplarily, the second terminal constructs a second polynomial based on the target simple Lie algebra and a private key of the second terminal, which can include: determining the second polynomial from a plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the second terminal, wherein polynomial coefficients of the second polynomial are all integers. Exemplarily, the second polynomial can be an integrable polynomial, and the process of determining the second polynomial can refer to the foregoing description of determining the first polynomial.
[0113] The shared key is generated by the following formula:
[0114] K = P a (Y b ) mod p
[0115] wherein p is the target prime number, Y b is the public key of the second terminal, K is the shared key, a is the private key of the first terminal, b is the private key of the second terminal, P a is the first polynomial, and mod represents a modulo operation.
[0116] Similarly, the second terminal can generate a shared key by polynomial mapping based on the public key of the first terminal, the target prime number, the target simple Lie algebra, and the private key of the second terminal, and the shared key is used for communication between the first terminal and the second terminal.
[0117] In a possible implementation, the second terminal generates a shared key by polynomial mapping based on the public key of the first terminal, the target prime number, the target simple Lie algebra, and the private key of the second terminal, including: substituting the public key of the first terminal into the second polynomial, and generating the shared key by performing a modulo operation on the obtained result and the target prime number; wherein the second polynomial is constructed based on the target simple Lie algebra and the private key of the second terminal.
[0118] Exemplarily, the substituting the public key of the first terminal into the second polynomial, and generating the shared key by performing a modulo operation on the obtained result and the target prime number, includes:
[0119] The shared key is generated by the following formula:
[0120] K = P b (Y a ) mod p
[0121] wherein p is the target prime number, Y a is the public key of the first terminal, K is the shared key, a is the private key of the first terminal, b is the private key of the second terminal, P b is the second polynomial, and mod represents a modulo operation.
[0122] Since the following formula is satisfied:
[0123] P a (Y b ) mod p = P a (P b (x)) mod p = P b (P a(x)) mod p = P b (Y a ) mod p
[0124] wherein p is the target prime number, Y b is the public key of the second terminal, P a is the first polynomial, Y a is the public key of the first terminal, P b is the second polynomial, a is the private key of the first terminal, b is the private key of the second terminal, x is the target array, and mod represents the modulo operation.
[0125] From the above equation, it can be seen that the shared key K generated by the first terminal is the same as the shared key K generated by the second terminal, and since the private key a of the first terminal and the private key b of the second terminal are secret, a malicious third party can at most obtain the target prime number p, the target array x, the public key Y a of the first terminal, and the public key Y b of the second terminal, and if the shared key K is to be obtained, at least one of the private key a of the first terminal and the private key b of the second terminal must be obtained, and this is a function more complex than discrete logarithm, thus it is not feasible for a malicious third party to obtain K, i.e., the key exchange method has extremely high security.
[0126] In the embodiments of the present disclosure, the first terminal obtains a target prime number, a target simple Lie algebra and a target array; the target prime number is a prime number greater than a preset threshold; the first terminal generates a private key of the first terminal; the first terminal generates a public key of the first terminal by using polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal; the first terminal sends the public key of the first terminal to a second terminal; the first terminal receives a public key of the second terminal; the public key of the second terminal is generated by using polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and a private key of the second terminal; and the first terminal generates a shared key by using polynomial mapping based on the public key of the second terminal, the target prime number, the target simple Lie algebra and the private key of the first terminal, the shared key being used for communication between the first terminal and the second terminal. In this way, based on the Diffie-Hellman key exchange protocol, the exponential mapping is replaced by the integrable polynomial mapping, that is, in the process of generating the public key of the terminal device and calculating the shared key, the polynomial mapping is used; the polynomial mapping also has the advantage of high operation efficiency; thereby the first terminal and the second terminal can securely exchange the key, and both parties can obtain a shared session key (i.e., the shared key), and then both parties can use the determined shared key to encrypt and decrypt the message in the subsequent communication session, for example, the shared key can be used to encrypt and decrypt the message by using other symmetric operation encryption algorithms. As an example, starting from the classical Diffie-Hellman key exchange protocol, the high-dimensional key exchange protocol is constructed by using the integrable polynomial constructed by the simple Lie algebra, and the complex polynomial mapping in the high-dimensional key exchange protocol replaces the original exponential mapping in the Diffie-Hellman key exchange protocol, so that the Shor quantum algorithm and the like are invalid, and thus the potential quantum resistance is achieved, and the advantages of high efficiency, security and short public key are achieved.
[0127] FIG. 3 shows a flowchart of a key exchange method based on an integrable polynomial according to an embodiment of the present disclosure. The method can be applied to two terminals in a communication system, for example, can be applied to the first communication party 10 and the second communication party 20 in the communication system shown in FIG. 1, as shown in FIG. 3, the method can include the following steps:
[0128] Step 301, the first communication party 10 obtains a target prime number, a target simple Lie algebra and a target array.
[0129] Step 302, the second communication party 20 obtains a target prime number, a target simple Lie algebra and a target array.
[0130] The specific implementation of the steps 301 and 302 can refer to the related description in the step 201 in FIG. 2.
[0131] Step 303, the first communication party 10 generates a private key of the first communication party 10.
[0132] Step 304, the second communication party 20 generates a private key of the second communication party 20.
[0133] The specific implementation of the steps 303 and 304 can refer to the related description in step 202 of the above-mentioned FIG. 2.
[0134] Step 305, the first communication party 10 generates a public key of the first communication party 10 by using a polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the first communication party 10.
[0135] Step 306, the second communication party 20 generates a public key of the second communication party 20 by using a polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the second communication party 20.
[0136] The specific implementation of the steps 305 and 306 can refer to the related description in step 203 of the above-mentioned FIG. 2.
[0137] Step 307, the first communication party 10 sends the public key of the first communication party 10 to the second communication party 20.
[0138] Step 308, the second communication party 20 sends the public key of the second communication party 20 to the first communication party 10.
[0139] The specific implementation of the steps 307 and 308 can refer to the related description in step 204 of the above-mentioned FIG. 2.
[0140] Step 309, the first communication party 10 receives the public key of the second communication party 20.
[0141] Step 310, the second communication party 20 receives the public key of the first communication party 10.
[0142] The specific implementation of the steps 309 and 310 can refer to the related description in step 205 of the above-mentioned FIG. 2.
[0143] Step 311, the first communication party 10 generates a shared key by using a polynomial mapping based on the public key of the second communication party 20, the target prime number, the target simple Lie algebra and the private key of the first communication party 10.
[0144] Step 312, the second communication party 20 generates a shared key by using a polynomial mapping based on the public key of the first communication party 10, the target prime number, the target simple Lie algebra and the private key of the second communication party 20.
[0145] The specific implementation of steps 311 and 312 can be found in the relevant description in step 206 of Figure 2 above.
[0146] The shared key generated by the first communicating party 10 is the same as the shared key generated by the second communicating party 20, and the shared key is used for communication between the first communicating party 10 and the second communicating party 20.
[0147] Thus, through the above steps 301-312, the first communicating party 10 and the second communicating party 20 can generate a shared key and realize key exchange.
[0148] As an example, the first communicating party 10 and the second communicating party 20 can negotiate a large prime number p as the target prime number and negotiate to choose a single Lie algebra with rank 1. As the target simple Lie algebra, a target array is selected through negotiation. This is a simple Lie algebra with rank 1. The Cartan subalgebra is Represented as: Based on Cartan subalgebra Generate its dual space
[0149] The rank-1 simple Lie algebra Its Weyl group is the permutation group S2, then it consists of n components (i.e., φ1,…,φ2). n Mappings formed by ) It can be represented as:
[0150] Where w belongs to the dual space σ denotes a function in the permutation group S2, and i is the imaginary unit;
[0151] For the first communicating party 10, the first communicating party 10 generates its own private key k, and constructs a polynomial based on its own private key. It can be represented as:
[0152] As another example, the first communicating party 10 and the second communicating party 20 can negotiate to determine a large prime number as the target prime number and select a single Lie algebra with rank 2. As the target simple Lie algebra, a binary array α = (x, y) is chosen as the target array. Because this simple Lie algebra... The Weyl group is the permutation group S3, and this simple Lie algebra... Cartan subalgebra Represented as:
[0153] Cartan subalgebra dual space The basic weights in the equation are L1, L1+L2 and σ(L i ) = L σ(i) Among them, L i To map the diagonal matrix diag(a1,a2,a3) to the diagonal element a i The function is σ, where σ represents a function in the permutation group S3, and the value of i is in the range of 1, 2, 3.
[0154] If we assume and If all are bivariate polynomials of degree k, then there exists:
[0155] According to the above formula, if x and y are considered as constants, then for The rational polynomial power series expansion in t yields the following result: That is, t k The coefficients of (k = 1, 2, 3) are a polynomial in x and y; if for This power series expansion of another rational polynomial in t yields the following result: That is, t k The coefficients of (k = 1, 2, 3) are a polynomial in x and y.
[0156] Furthermore, the first communicating party 10 generates its own private key k and constructs a polynomial based on its private key. The second communicating party 20 generates its own private key l, and constructs a polynomial based on its private key. The first communication method 10 maps the target array α = (x, y) using a polynomial mapping to obtain a new array (x). k ,y k Using the public key of the first communicating party 10, the second communicating party 20 maps the target array α = (x, y) to obtain a new array (x) through polynomial mapping. l ,y l The first communication party 10 and the second communication party 20 each send their own public key to the other party, so that both parties can calculate the same shared key.
[0157] The following equation illustrates the key exchange process between the first communicating party 10 and the second communicating party 20:
[0158] Among them, F p Let α = (x, y) be the target finite field modulo p, and let α = (x, y) be the target array. This target array consists of two elements (x, y), where each element belongs to the target finite field Fp.
[0159] The security of the key exchange is embodied in the following difficult problem: given a target array and the public key of the first communication party 10 finding a k such that that is, finding the private key of the first communication party 10.
[0160] Based on the same inventive concept of the above method embodiments, the embodiments of the disclosure also provide a key exchange device based on an integrable polynomial, which can be used to execute the technical solutions described in the above key exchange method embodiments based on an integrable polynomial.
[0161] FIG. 4 shows a structure diagram of a key exchange device based on an integrable polynomial according to an embodiment of the disclosure, which is applied to a first terminal. As shown in FIG. 4, the device can include: an acquisition module 401 configured to acquire, by the first terminal, a target prime number, a target simple Lie algebra, and a target array; wherein the target prime number is a prime number greater than a preset threshold; a generation module 402 configured to generate, by the first terminal, a private key of the first terminal; the generation module 402 is further configured to generate, by the first terminal, a public key of the first terminal based on the target prime number, the target simple Lie algebra, the target array, and the private key of the first terminal, by using a polynomial mapping; a transmission module 403 configured to send, by the first terminal, the public key of the first terminal to a second terminal; the transmission module 403 is further configured to receive, by the first terminal, a public key of the second terminal; wherein the public key of the second terminal is generated based on the target prime number, the target simple Lie algebra, the target array, and a private key of the second terminal, by using a polynomial mapping; and the generation module 402 is further configured to generate, by the first terminal, a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra, and the private key of the first terminal, by using a polynomial mapping, the shared key being used for communication between the first terminal and the second terminal.
[0162] In the embodiments of the present disclosure, the first terminal obtains a target prime number, a target simple Lie algebra and a target array; the target prime number is a prime number greater than a preset threshold; the first terminal generates a private key of the first terminal; the first terminal generates a public key of the first terminal by using polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal; the first terminal sends the public key of the first terminal to a second terminal; the first terminal receives a public key of the second terminal; the public key of the second terminal is generated by using polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and a private key of the second terminal; and the first terminal generates a shared key by using polynomial mapping based on the public key of the second terminal, the target prime number, the target simple Lie algebra and the private key of the first terminal, the shared key being used for communication between the first terminal and the second terminal. In this way, based on the Diffie-Hellman key exchange protocol, the exponential mapping is replaced by an integrable polynomial mapping, that is, in the process of generating the own public key and calculating the shared key of the terminal device, the polynomial mapping is used; the polynomial mapping also has the advantage of high operation efficiency, thereby enabling the first terminal and the second terminal to securely exchange the key, and both parties can obtain a shared session key (i.e., the shared key). As an example, a high-dimensional key exchange protocol is constructed by using the integrable polynomial constructed by the simple Lie algebra, which has the advantages of high efficiency, security and short public key.
[0163] In a possible implementation, the generating module 402 is further configured to: construct, by the first terminal, a first polynomial based on the target simple Lie algebra and the private key of the first terminal; and generate the public key of the first terminal by substituting the target array into the first polynomial and performing a modulo operation on a result obtained by the substitution with the target prime number.
[0164] In a possible implementation, the generating module 402 is further configured to: determine the first polynomial from a plurality of polynomials corresponding to the target simple Lie algebra based on the private key of the first terminal, wherein polynomial coefficients of the first polynomial are all integers.
[0165] In a possible implementation, the generating module 402 is further configured to: generate the shared key by substituting the public key of the second terminal into the first polynomial and performing a modulo operation on a result obtained by the substitution with the target prime number; and wherein the first polynomial is constructed based on the target simple Lie algebra and the private key of the first terminal.
[0166] In a possible implementation, the target array includes n elements, wherein n is a rank of the target simple Lie algebra, and each of the n elements belongs to a target finite field, and the target finite field is determined based on the target prime number.
[0167] In a possible implementation, the polynomials corresponding to the target simple Lie algebra are determined by the Weil group on the dual space corresponding to the target simple Lie algebra and the fundamental weights in the Weil group; the generating module 402 is further configured to determine the first polynomial from the polynomials corresponding to the target simple Lie algebra, by taking the private key of the first terminal as the degree of the polynomial.
[0168] In a possible implementation, the public key of the first terminal is generated by:
[0169] Y a =P a (x)mod p
[0170] wherein p is the target prime number, Y a is the public key of the first terminal, P a is the first polynomial, a is the private key of the first terminal, x is the target array, and mod represents a modulo operation.
[0171] and / or,
[0172] The shared key is generated by:
[0173] K=P a (Y b )mod p
[0174] wherein p is the target prime number, Y b is the public key of the second terminal, K is the shared key, a is the private key of the first terminal, b is the private key of the second terminal, P a is the first polynomial, and mod represents a modulo operation.
[0175] and / or,
[0176] The public key of the second terminal is generated based on:
[0177] Y b =P b (x)mod p
[0178] wherein p is the target prime number, Y b is the public key of the second terminal, P b is the second polynomial, b is the private key of the second terminal, x is the target array, and mod represents a modulo operation.
[0179] The embodiment of the present disclosure further provides a computer readable storage medium, which stores computer program instructions. The computer program instructions are executed by a processor to implement the method.
[0180] The embodiment of the present disclosure further provides an electronic device, which comprises a processor, and a memory for storing processor-executable instructions. The processor is configured to implement the method when executing the instructions stored in the memory.
[0181] The embodiment of the present disclosure further provides a computer program product, which comprises computer readable code or a non-volatile computer readable storage medium carrying the computer readable code. When the computer readable code is run in a processor of an electronic device, the processor in the electronic device implements the method.
[0182] FIG. 5 is a block diagram of an electronic device 1900 according to an exemplary embodiment. For example, the electronic device 1900 can be provided as a server or a terminal device. Referring to FIG. 5, the electronic device 1900 includes a processing component 1922, which further includes one or more processors, and a memory resource represented by a memory 1932 for storing instructions, such as an application program, executable by the processing component 1922. The application program stored in the memory 1932 can include one or more than one module each corresponding to a set of instructions. In addition, the processing component 1922 is configured to execute the instructions to perform the method described above.
[0183] The electronic device 1900 can further include a power supply component 1926 configured to perform power management of the electronic device 1900, a wired or wireless network interface 1950 configured to connect the electronic device 1900 to a network, and an input / output interface 1958 (I / O interface). The electronic device 1900 can operate based on an operating system stored in the memory 1932, such as Windows Server TM , Mac OS X TM , Unix TM , Linux TM , FreeBSD TM or the like.
[0184] In exemplary embodiments, a non-volatile computer readable storage medium, such as the memory 1932 including computer program instructions executable by the processing component 1922 of the electronic device 1900 to complete the method described above, is also provided.
[0185] The present disclosure can be a system, a method, and / or a computer program product. The computer program product can include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present disclosure.
[0186] The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium can be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium include the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or punched tape, a
[0187] The computer readable program instructions described herein can be downloaded to respective computing / processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and / or a wireless network. The network can comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and / or edge servers. A network adapter card or network interface in each computing / processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing / processing device.
[0188] Computer readable program instructions for carrying out operations of the present disclosure can be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions can execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection can be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate array (FPGA), or programmable logic array (PLA) can execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present disclosure.
[0189] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0190] These computer readable program instructions can be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks. These computer readable program instructions can also be stored in a computer readable storage medium that can include random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other data storage device. When the computer readable program instructions are loaded into the computer and other programmable data processing apparatus, a series of operational steps are implemented that provide processes such that the computer or other programmable apparatus provide processes for implementing the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0191] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0192] The computer readable program instructions can also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable data processing apparatus or other device to produce a computer implemented process such that the instructions which execute on the computer, other programmable data processing apparatus, or other device implement the functions / acts specified in the flowchart and / or block diagram block or blocks.
[0193] Embodiments of the present disclosure have been described above, and the description is intended to be illustrative, and not restrictive, of the disclosed embodiments. Many modifications and variations of the described embodiments are possible, and all such modifications and variations are intended to be within the scope of the described embodiments. The description used herein is intended to best explain the principles of the various embodiments, the practical application, and the best mode of using the present disclosure, and to enable others skilled in the art to understand the disclosure, various embodiments, and the application, devices, and apparatuses.
Claims
1. A key exchange method based on summable polynomials, characterized in that, Applied to a first terminal, the method comprises: The first terminal acquires a target prime number, a target simple Lie algebra and a target array; wherein the target prime number is a prime number greater than a preset threshold; The first terminal generates a private key of the first terminal; The first terminal generates a public key of the first terminal based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal by polynomial mapping; The first terminal sends the public key of the first terminal to a second terminal; The first terminal receives a public key of the second terminal; wherein the public key of the second terminal is generated by polynomial mapping based on the target prime number, the target simple Lie algebra, the target array and a private key of the second terminal; The first terminal generates a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra and the private key of the first terminal by polynomial mapping, the shared key being used for communication between the first terminal and the second terminal.
2. The method of claim 1, wherein, The first terminal generates a public key of the first terminal based on the target prime number, the target simple Lie algebra, the target array and the private key of the first terminal by polynomial mapping, comprising: The first terminal constructs a first polynomial based on the target simple Lie algebra and the private key of the first terminal; The target array is substituted into the first polynomial, and the result obtained is taken modulo the target prime number to generate the public key of the first terminal.
3. The method of claim 2, wherein, The first terminal constructs a first polynomial based on the target simple Lie algebra and the private key of the first terminal, comprising: Based on the private key of the first terminal, the first polynomial is determined from a plurality of polynomials corresponding to the target simple Lie algebra, wherein the polynomial coefficients of the first polynomial are all integers.
4. The method of claim 2, wherein, The first terminal generates a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra and the private key of the first terminal by polynomial mapping, comprising: The public key of the second terminal is substituted into the first polynomial, and the result obtained is taken modulo the target prime number to generate the shared key; wherein the first polynomial is constructed based on the target simple Lie algebra and the private key of the first terminal.
5. The method of claim 1, wherein, The target array includes n elements, wherein n is the rank of the target simple Lie algebra, and each element in the n elements belongs to a target finite field, which is determined based on the target prime number.
6. The method of claim 3, wherein, The plurality of polynomials corresponding to the target simple Lie algebra are determined by a Weierstrass group on a dual space corresponding to the target simple Lie algebra and a basic weight in the Weierstrass group; Based on the private key of the first terminal, the first polynomial is determined from a plurality of polynomials corresponding to the target simple Lie algebra, comprising: The private key of the first terminal is used as the degree of the polynomial to determine the first polynomial from the plurality of polynomials corresponding to the target simple Lie algebra.
7. The method of claim 2, wherein: The public key of the first terminal is generated by: Y a = P a (x) mod p wherein p is the target prime number, Y a is a public key of the first terminal, P a is the first polynomial, a is a private key of the first terminal, x is the target array, and mod represents a modulo operation. and / or, The shared key is generated by: K = P a (Y b ) mod p wherein p is the target prime number, Y b is a public key of the second terminal, K is the shared key, a is a private key of the first terminal, b is a private key of the second terminal, P a is the first polynomial, and mod represents a modulo operation. and / or, The public key of the second terminal is generated based on the following formula: Y b = P b (x) mod p wherein p is the target prime number, Y b is a public key of the second terminal, P b is a second polynomial, b is a private key of the second terminal, x is the target array, and mod denotes a modulo operation.
8. A key exchange apparatus based on an integrable polynomial, characterized by comprising: a polynomial generator for generating a polynomial; a polynomial evaluator for evaluating the polynomial; and a polynomial verifier for verifying the polynomial. The device is applied to the first terminal and includes: An acquisition module configured to acquire, by the first terminal, a target prime number, a target simple Lie algebra, and a target array, wherein the target prime number is a prime number greater than a preset threshold; A generation module configured to generate, by the first terminal, a private key of the first terminal; The generation module is further configured to generate, by the first terminal, a public key of the first terminal based on the target prime number, the target simple Lie algebra, the target array, and the private key of the first terminal, using polynomial mapping; A transmission module configured to send, by the first terminal, the public key of the first terminal to a second terminal; The transmission module is further configured to receive, by the first terminal, a public key of the second terminal, wherein the public key of the second terminal is generated based on the target prime number, the target simple Lie algebra, the target array, and a private key of the second terminal, using polynomial mapping; The generation module is further configured to generate, by the first terminal, a shared key based on the public key of the second terminal, the target prime number, the target simple Lie algebra, and the private key of the first terminal, using polynomial mapping, wherein the shared key is used for communication between the first terminal and the second terminal. The device includes:
9. An electronic device, comprising: A processor; Memory for storing processor-executable instructions; The processor is configured to implement the method of any one of claims 1 to 7 when executing the instructions stored in the memory. The computer program instructions, when executed by the processor, implement the method of any one of claims 1 to 7.
10. A non-transitory computer readable storage medium having stored thereon computer program instructions, wherein,
Citation Information
Patent Citations
Public-key encryption system
CN107078906A
Key agreement devices and method
CN110870250A
Generating an encrypted message for storage
US20120290830A1
Key agreement system, method, and apparatus
US20210083862A1