Communication methods and related devices
The TBPEKE algorithm enhances communication security in intelligent vehicles and smart devices by generating shared keys indirectly from security and common parameters, preventing unauthorized access and data leakage.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- HUAWEI TECH CO LTD
- Filing Date
- 2022-05-31
- Publication Date
- 2026-06-01
AI Technical Summary
Existing communication technologies in intelligent vehicles and smart devices face security vulnerabilities due to low confidentiality of shared keys, making them susceptible to unauthorized access and data leakage.
A communication method using a Two-Basis Password Exponential Key Exchange (TBPEKE) algorithm based on elliptic curve mathematical theory to generate shared keys indirectly from security and common parameters, ensuring that only trusted nodes can establish a consistent key, thereby enhancing security.
This method significantly reduces the likelihood of security parameter cracking, preventing unauthorized access and improving communication and data security by ensuring that only trusted nodes can generate matching keys.
Smart Images

Figure 0007868188000003 
Figure 0007868188000004 
Figure 0007868188000005
Abstract
Description
[Technical Field]
[0001] This application relates to the fields of communication technology and intelligent vehicle technology, and more particularly to short-range communication technology, specifically to communication in scenarios such as intelligent vehicles, smart homes, smart terminals, and smart manufacturing. Specifically, this application relates to communication methods and related devices. [Background technology]
[0002] Today, with the rapid development of information technology, mobile devices, cell phones, tablet computers, or other portable smart devices have become indispensable personal intelligent tools. While enjoying the convenience brought about by information technology, people also face the threat of security vulnerabilities and privacy leaks. Intelligent vehicles are one example. As vehicle communication becomes more widespread, wireless communication also introduces a range of security risks to vehicles. For example, hackers can use existing short-range communication technologies to infiltrate in-vehicle information systems, obtain vehicle information, or even remotely control the vehicle. This poses a very high threat to user privacy and vehicle security.
[0003] To ensure communication security, nodes typically encrypt the data to be transmitted before storing or sending it, and the receiving node decrypts the ciphertext to restore the plaintext after receiving the data. Specifically, when accessing the first node, the second node typically first determines the shared key used by both the first and second nodes for communication encryption. However, existing access processes often result in low confidentiality of the generated shared key.
[0004] For example, when a mobile phone accesses a wireless fidelity (Wi-Fi) device, an 8-bit security parameter (in this scenario, the security parameter is the Wi-Fi password) is entered directly, and the mobile phone and the wireless fidelity device can obtain the shared key. Because the security parameter may have a small number of bits, or because a simple security parameter is used for ease of memorization, the device may be easily accessed by an untrusted node, or the key generated based on the security parameter may be cracked. It is readily apparent that this mode of access can lead to data leakage and threaten user privacy and security.
[0005] Therefore, improving the security of shared keys and preventing access by untrusted attackers is a technical problem that has been studied by those skilled in the art. [Overview of the Initiative]
[0006] Embodiments of this application provide a communication method and related device for improving the security of a shared key and preventing access by untrusted attackers. [Means for solving the problem]
[0007] According to a first aspect, one embodiment of the present application provides a communication method. This method is A step of receiving a first message from a first node, wherein the first message includes a first key agreement parameter, the first key agreement parameter is associated with a first secret key and an intermediate parameter, the intermediate parameter is associated with a security parameter and at least one common parameter, the security parameter is a first password or a pre-shared key (PSK) between the first node and the second node, and the first password is an agreed-upon access password between the first node and the second node. A step of sending a second message to a first node, wherein the second message includes a second key agreement parameter, and the second key agreement parameter is associated with a second secret key and an intermediate parameter. A step of obtaining a first key based on a first key agreement parameter and a second secret key, Includes.
[0008] The PSK between the first node and the second node is a secret value shared between the first and second nodes, and the first password can be considered the password for the first node to access the second node. The first secret key is the secret key corresponding to the first node. For example, the first node can decide on a random number as its secret key. The second secret key is the secret key corresponding to the second node. For example, the second node can decide on a random number as its secret key.
[0009] Optionally, the aforementioned method may be applied to a second node, for example, by using a chip or software module in the second node.
[0010] In this embodiment of the present application, intermediate parameters are initially obtained based on security parameters and common parameters, and these intermediate parameters are used to generate the first key agreement parameters. Security parameters are not directly used to generate keys, and security parameters are not directly used to generate key agreement parameters. Therefore, even if the number of bits in security parameters is small, the confidentiality of security parameters can be improved by using common parameters, reducing the possibility of security parameters being cracked. Correspondingly, the security of the first key is improved. This reduces the possibility of an attacker accessing the second node and improves the communication security and data security of the node.
[0011] In a possible embodiment of the first aspect, the method is A step of receiving a third message from a first node, wherein the third message includes first authentication information, the first authentication information is associated with a second key, and the second key is associated with a second key agreement parameter and a first secret key. A step of verifying the first authentication information based on the first key, It also includes.
[0012] In this embodiment of the present application, the security parameters obtained by the first node must match the security parameters of the second node. In this way, the first and second nodes can participate in the generation of a consistent key using consistent security parameters. Specifically, the parameters used by the second node to generate the first key include the second secret key, security parameters (at the first node), common parameters, and the first secret key, and the parameters used by the first node to generate the second key include the first secret key, security parameters (at the second node), common parameters, and the second secret key. Since the parameters used to generate the first key and the parameters used to generate the second key are the same, if the security parameters of the first node and the security parameters of the second node match, the generated first key and the generated second key will match.
[0013] The first node can obtain the first authentication credentials based on the second key, and the second node verifies the authentication credentials based on the first key. If the verification is successful, it indicates that the first key matches the second key, meaning that the second node and the first node have the same security parameters. This indicates that the identity of the second node is trusted.
[0014] When an attacker requests access to a second node, they cannot generate a shared key that matches the security parameters of the second node because they do not possess the same security parameters. Therefore, the attacker cannot access the second node. This prevents the attacker from accessing the second node and prevents the second node from being successfully associated with an attacker who possesses untrustworthy identities.
[0015] In yet another possible embodiment of the first aspect, the first key is used to retrieve one or more keys.
[0016] In possible solutions, the first key is used to derive encryption keys, integrity keys, identity authentication keys, etc.
[0017] In this way, dedicated keys can be obtained through derivation based on the first key in different scenarios. This avoids the first key being used directly for communication, further improving the security of the first key.
[0018] In yet another possible embodiment of the first aspect, the method is If the verification of the first set of credentials is successful, the step of sending an association establishment message to the first node. It also includes.
[0019] In the embodiment described above, if the verification of the first authentication information is successful, the second key obtained by the first node matches the first key obtained by the second node. This indicates that the security parameters of the first node match the security parameters of the second node and that the identity information of the first node is trusted. The association establishment message indicates that the first node has successfully accessed the second node or that the association of the first node has been completed. In this case, 1Between the first node and the second node, the following operations may occur: data transmission, determination of communication keys, completion of communication configuration information, etc.
[0020] In yet another possible embodiment of the first aspect, the method is If the verification of the integrity of the first authentication information and the third message is successful, the step of sending an association establishment message to the first node. It also includes.
[0021] In the embodiment described above, the second node can verify the message integrity of the third message. If the verification of the integrity of the third message and the verification of the first authentication information are successful, an association establishment message is sent to the first node.
[0022] In yet another possible embodiment of the first aspect, the method is Steps include receiving instruction information for a key agreement algorithm transmitted by a first node, wherein the key agreement algorithm includes a Two-Basis Password Exponential Key Exchange (TBPEKE) algorithm. It also includes.
[0023] Optionally, the instruction information for the key agreement algorithm includes the instruction information for the first key agreement algorithm, and the instruction information for the first key agreement algorithm indicates the TBPEKE algorithm.
[0024] The TBPEKE algorithm is a security algorithm implemented based on elliptic curve mathematical theory that allows two communicating parties to create a key over an insecure channel, which can then be used to encrypt the content of subsequent communications.
[0025] In the embodiment described above, the first node and the second node can independently support multiple key agreement algorithms. When the first node requests access to the second node, the first node can instruct the second node in the first message which key agreement algorithm should be used, and as a result, the first and second nodes can agree on a key based on a consistent key agreement algorithm. This improves the efficiency of key agreement.
[0026] Multiple TBPEKE algorithms may exist, as different elliptic curves are used at will. For example, the elliptic curves used by the TBPEKE algorithm include one or more of the elliptic curves defined by SM2, Curve25519, etc. Thus, a TBPEKE algorithm could include a TBPEKE algorithm using the elliptic curve defined by SM2, a TBPEKE algorithm using Curve25519, and so on. It should be understood that the above is an illustrative explanation to facilitate the description of TBPEKE algorithms using different elliptic curves. Other elliptic curves may be used alternatively in the processes of a particular embodiment. Examples are not enumerated herein.
[0027] In yet another possible embodiment of the first aspect, at least one common parameter includes a first common parameter and a second common parameter.
[0028] The first and second common parameters are associated with the first elliptic curve, which is the elliptic curve corresponding to the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm.
[0029] In the embodiment described above, the common parameter is a point on the elliptic curve, and the security parameter is a secret value. The discrete logarithm problem of the elliptic curve makes it easy to obtain intermediate parameters by calculations based on the security parameter and the common parameter. However, it is difficult to crack the security parameter by obtaining the first key agreement parameter and the common parameter. Therefore, the use of the TBPEKE algorithm and the common parameter can reduce the likelihood of the security parameter being cracked, thereby improving node security.
[0030] In yet another possible embodiment of the first aspect, the first common parameter and the second common parameter belong to points on the first elliptic curve.
[0031] In yet another possible embodiment of the first aspect, the first common parameter is predefined, and the second common parameter is determined based on the first common parameter, a first random number, and a second random number, where the first random number originates from a first node and the second random number originates from a second node.
[0032] In a possible embodiment of the first aspect, at least one common parameter includes at least one base point, the at least one base point belongs to a group of order p, where p is a prime number.
[0033] Mathematically, a group represents an algebraic structure that satisfies the laws of closure and relevance and has a binary operation with identity and inverse elements. In this embodiment of the present application, the operation associated with the group may be an operation on a first elliptic curve. The operation on the elliptic curve includes one or more operations such as elliptic curve point multiplication and elliptic curve point addition.
[0034] Optionally, in this embodiment of the present application, the group may be a cyclic subgroup of an elliptic curve.
[0035] The base point, also called the generator, is a parameter in elliptic curve cryptography algorithms. The base point belongs to a point on the elliptic curve selected by the cryptographic algorithm.
[0036] In general, elliptic curves applicable to cryptographic algorithms are defined over finite fields. Therefore, the points on the elliptic curve in a finite field are also limited.
[0037] The order is the number of points in the group; that is, in a group with order p, the number of points on the elliptic curve is p. By arbitrary choice, any point A in the group satisfies A = d * base point, where * is the elliptic curve point multiplication operation and the range of d is [1, p-1].
[0038] Optionally, the above group may be a cyclic group or cyclic subgroup related to the operation on the first elliptic curve.
[0039] Optionally, in some scenarios, the base point may be replaced by a generator.
[0040] In yet another possible embodiment of the first aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes some or all of the elements in a group whose order is p, where p is a prime number.
[0041] The base point (or generator) of a subgroup with order p is U. For a selected number d, if the range of values for d is [1, p-1], then dU is included in the group.
[0042] Optionally, at least one common parameter includes the base point U. Furthermore, optionally, at least one common parameter further includes V obtained by performing an operation on U, where V = dU, and d is in the range [1, p).
[0043] In yet another possible embodiment of the first aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes two points in a group whose order is p, where p is a prime number.
[0044] Optionally, the two points may be two base points. Alternatively, one of the two points may be a base point, and the other a second base point obtained by calculation based on the base point. For ease of explanation, in this application, the two points will be referred to as the first base point and the second base point.
[0045] In yet another possible embodiment of the first aspect, if the selected key agreement algorithm is the TBPEKE algorithm, the common parameters of the TBPEKE algorithm include a cyclic group whose order is a prime number p, and two independent base points U and V within the group.
[0046] It should be understood that "independence" means that U and V are two points with different values, and is not intended to constitute a limitation that there is no relationship between U and V. Optionally, U may be called the first base point, and V may be called the second base point.
[0047] In yet another possible embodiment of the first aspect, the method is A step of receiving a first calculated value from a first node, wherein the first calculated value is associated with a first random number and a first common parameter, the first random number is determined by the first node, and the first common parameter is predefined (for example, predefined based on the TBPEKE algorithm), A step of determining a second common parameter based on a second random number and a first calculated value, A step of sending a second calculated value to a first node, wherein the second calculated value is associated with a second random number and a first common parameter, and the second calculated value is used by the first node to determine the second common parameter. It also includes.
[0048] Optionally, the first common parameter is the first base point mentioned above, and the second common parameter is the second base point mentioned above.
[0049] In yet another possible embodiment of the first aspect, the intermediate parameter satisfies the following equation: b=U+s*V, in the formula, b is an intermediate parameter, U and V are at least one common parameter, s is a security parameter, "*" is an elliptic curve point multiplication operation, and "+" is an elliptic curve point addition operation.
[0050] In a possible embodiment of the first aspect, U is the first base point and V is the second base point. Furthermore, U and V belong to a cyclic group of order p, where p is a prime number.
[0051] Optionally, the group-related operation is an operation on the first elliptic curve. The first elliptic curve is the elliptic curve used by the selected key agreement algorithm. For example, if the selected key agreement algorithm is the TBPEKE algorithm, the first elliptic curve may be an elliptic curve defined by SM2, Curve25519, etc.
[0052] In the embodiment described above, the intermediate parameter (U+s*V) is obtained by performing point addition and point multiplication operations on the security parameter and the common parameter.
[0053] Those skilled in the art should recognize that, for a selected elliptic curve Ep(a, b), given a scalar k and a point P (where point P lies on the elliptic curve), it is easy to calculate R = k * P (where * is the elliptic curve point multiplication operation). However, given points P and R (where points P and R lie on the elliptic curve), it is extremely difficult to calculate which k satisfies kP = R. In the practical use of elliptic curves, P is in principle quite large, and R is also quite large. Calculating each k point and comparing them to R is a mathematical problem. Therefore, the use of the TBPEKE algorithm and common parameters can reduce the likelihood of security parameters s being cracked and improve node security.
[0054] In yet another possible embodiment of the first aspect, the first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation: The first key = SKg * KEt, The second key agreement parameter KEg satisfies the following equation: KEg = SKg * b, The second key satisfies the following equation: The second key = SKt*KEg, where, SKt is the first private key, and SKg is the second private key.
[0055] Since the point multiplication operation satisfies the law of association, the first key = SKg * KEt = SKg * (SKt * b) = SKt * (SKg * b) = the second key. Therefore, the first key determined by the first node is the same as the second key determined by the second node.
[0056] Specifically, the first key = SKg*KEt = SKg*(SKt*b) = (SKt.SKg)*(U+s*V), and the second key = SKt*KEg = SKt*(SKg*b) = (SKt.SKg)*(U+s*V), where "." represents multiplication. Therefore, the first key is the same as the second key.
[0057] The aforementioned embodiment provides a possible method for obtaining the first key agreement parameter, the second key agreement parameter, the first key, and the second key when the first key agreement parameter and the second key agreement parameter are generated. In this way, security parameters are not used directly in the calculation; rather, intermediate parameters are first obtained based on the security parameters and common parameters, and these intermediate parameters are used to generate the first key agreement parameter. This reduces the likelihood of security parameters being cracked, reduces the likelihood of an attacker gaining access to the second node, and improves the communication security and data security of the node.
[0058] In yet another possible embodiment of the first aspect, the range of values for the first secret key (SKt) is [1, p), and the range of values for the second secret key (SKg) is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
[0059] In yet another possible embodiment of the first aspect, prior to the step of receiving a first message from a first node, the Method A step of broadcasting the key agreement algorithm capability of a second node, wherein the key agreement algorithm capability of the second node represents the key agreement algorithm supported by the second node, It also includes.
[0060] In yet another possible embodiment of the first aspect, the key agreement algorithms supported by the first node are sorted according to priority.
[0061] In yet another possible embodiment of the first aspect, the first message further includes the first fresh parameter. , the The authentication information for node 1 is associated with the pre-shared key (PSK) between the first and second nodes, the second key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability.
[0062] In yet another possible embodiment of the first aspect, the step of verifying the first authentication information based on the first key is: Steps to verify the first authentication information based on the PSK between the first node and the second node, the first key, the second message, the first fresh parameters, and the key consensus algorithm capability of the second node. Includes.
[0063] In the embodiment described above, the parameters used to generate the first credential include one or more of the PSK between the first and second nodes, the second key, the second message, the first fresh parameters, and the key consensus algorithm capability of the second node. In this way, when the first credential is validated, the other parameters used to generate the first credential must match in such a way that validation can succeed, except that the first key and the second key must match. In this way, the integrity of the aforementioned parameters can be protected, the likelihood of the second node being accessed by an attacker can be reduced, and security can be improved.
[0064] For example, if the first fresh parameter sent from the first node to the second node is tampered with, the first fresh parameter used by the second node when verifying the first credentials will be different from the first fresh parameter used by the second node when generating the first credentials. As a result, the verification of the first credentials will fail.
[0065] In yet another possible embodiment of the first aspect, the second message further includes second authentication information and second fresh parameters, and the method Steps to obtain second authentication information based on the PSK, first key, second fresh parameters, and first message between the first node and the second node. It also includes.
[0066] In the embodiment described above, the second authentication information may be used by the first node to authenticate the identity of the second node. For example, the second node may generate verification information based on the same parameters. If the verification information is the same as the first authentication information, it indicates that the second key generated by the first node matches the first key generated by the second node, and as a result, the identity of the second node can be authenticated. This avoids communication between the node and an attacker and improves node security.
[0067] In yet another possible embodiment of the first aspect, the first message further includes a first fresh parameter, the second message further includes a second fresh parameter, and the Method Steps to obtain a third key based on the first key, the first fresh parameter, and the second fresh parameter. It also includes.
[0068] In yet another possible embodiment of the first aspect, the PSK is pre-configured or pre-defined, or obtained based on a first password.
[0069] In yet another possible embodiment of the first aspect, the method is Steps to obtain the PSK between the first node and the second node according to the first correspondence. It also includes.
[0070] It can be seen that the second node can store the correspondence between the PSK and the first node in the form of a correspondence. Therefore, the PSK between the first node and the second node can be obtained according to the correspondence.
[0071] In yet another possible embodiment of the first aspect, the method is Step 1: Determine the PSK between the first node and the second node based on the first password, the first fresh parameter, and the second fresh parameter. It also includes.
[0072] In a possible design, the PSK is determined based on a first password, a first key, a first fresh parameter, and a second fresh parameter. For example, when the first node is first associated with the second node, or when the second node does not obtain a PSK corresponding to the first node, the second node can determine a new PSK.
[0073] According to a second aspect, one embodiment of the present application provides a communication method. This method is A step of sending a first message to a second node, wherein the first message includes a first key agreement parameter, the first key agreement parameter is associated with a first secret key and an intermediate parameter, the intermediate parameter is associated with a security parameter and at least one common parameter, the security parameter is a first password or a pre-shared key (PSK) between the first node and the second node, and the first password is an agreed-upon access password between the first node and the second node. A step of receiving a second message from a second node, wherein the second message includes a second key agreement parameter, and the second key agreement parameter is associated with a second secret key and an intermediate parameter. A step of obtaining a second key based on a second key agreement parameter and a first secret key, Includes.
[0074] In a possible embodiment of the second aspect, the method is A step of sending a third message to a first node, wherein the third message includes first authentication information and the first authentication information is associated with a second key. It also includes.
[0075] Optionally, the method described above may be applied to a first node, for example, by using a chip or software module within the first node.
[0076] The PSK between the first node and the second node is a secret value shared between the first and second nodes, and the first password can be considered the password that the first node uses to access the second node.
[0077] In a possible embodiment of the second aspect, the second key is used to retrieve one or more keys.
[0078] In possible solutions, the second key is used to derive encryption keys, integrity keys, identity authentication keys, etc.
[0079] In a possible embodiment of the second aspect, the method is The process further includes receiving an association establishment message from a second node.
[0080] In yet another possible embodiment of the second aspect, prior to the step of sending the first message to the second node, the Method A step of selecting a first key agreement algorithm based on the key agreement algorithm capability of a second node, wherein the key agreement algorithm capability of the second node can indicate one or more key agreement algorithms supported by the second node. It also includes.
[0081] In yet another possible embodiment of the second aspect, the method is A step of sending instruction information for a key agreement algorithm to a second node, wherein the instruction information for the key agreement algorithm indicates the TBPEKE two-base password exponential key exchange algorithm. It also includes.
[0082] The TBPEKE algorithm is a security algorithm implemented based on elliptic curve mathematical theory that allows two communicating parties to create a key over an insecure channel, which can then be used to encrypt the content of subsequent communications.
[0083] Multiple TBPEKE algorithms may exist, as different elliptic curves are used at will. For example, the elliptic curves used by the TBPEKE algorithm may include one or more elliptic curves defined by SM2, Curve25519, etc. Therefore, a TBPEKE algorithm could include a TBPEKE algorithm that uses elliptic curves defined by SM2, a TBPEKE algorithm that uses Curve25519, and so on.
[0084] In yet another possible embodiment of the second aspect, at least one common parameter includes a first common parameter and a second common parameter.
[0085] The first and second common parameters are associated with the first elliptic curve, which is the elliptic curve corresponding to the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm.
[0086] In yet another possible embodiment of the second aspect, the first common parameter and the second common parameter belong to points on the first elliptic curve.
[0087] In yet another possible embodiment of the second aspect, the first common parameter is predefined, and the second common parameter is determined based on the first common parameter, a first random number, and a second random number, where the first random number originates from a first node and the second random number originates from a second node.
[0088] In a possible embodiment of the second aspect, at least one common parameter includes at least one base point, the at least one base point belongs to a group of order p, where p is a prime number.
[0089] Optionally, the group may be a cyclic group or a cyclic subgroup associated with an operation on the first elliptic curve.
[0090] Optionally, in some scenarios, the base point may be replaced by a generator.
[0091] In yet another possible embodiment of the second aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes some or all of the elements in a group whose order is p, where p is a prime number.
[0092] The base point (or generator) of a subgroup with order p is U. For a selected number d, if the range of values for d is [1, p-1], then dU is included in the group.
[0093] Optionally, at least one common parameter includes the base point U. Furthermore, optionally, at least one common parameter further includes V obtained by performing an operation on U, where V = dU, and d is in the range [1, p-1].
[0094] In yet another possible embodiment of the second aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes two points in the group whose order is p.
[0095] Optionally, the two points may be two base points. Alternatively, one of the two points may be a base point, and the other a second base point obtained by calculation based on the base point. For ease of explanation, in this application, the two points will be referred to as the first base point and the second base point.
[0096] In yet another possible embodiment of the second aspect, if the selected key agreement algorithm is the TBPEKE algorithm, the common parameters of the TBPEKE algorithm include a cyclic group whose order is a prime number p, and two independent base points U and V within the group.
[0097] It should be understood that "independence" means that U and V are two points with different values, and is not intended to constitute a limitation that there is no relationship between U and V.
[0098] In yet another possible embodiment of the second aspect, the method is A step of sending a first calculated value to a second node, wherein the first calculated value is associated with a first random number and a first common parameter, the first random number is determined by the first node, and the first common parameter is predefined. A step of receiving a second calculated value from a second node, wherein the second calculated value is associated with a second random number and a first common parameter, A step of determining a second common parameter based on a second random number and a first calculated value, It also includes.
[0099] Optionally, the first common parameter is the first base point mentioned above, and the second common parameter is the second base point mentioned above.
[0100] In a possible embodiment of the second aspect, the first key agreement algorithm is a key agreement algorithm supported by the first node, and the first key agreement algorithm has the highest priority among the key agreement algorithms supported by the second node.
[0101] In a possible embodiment of the second aspect, the intermediate parameter satisfies the following equation: b = U + s * V, in the equation, b is an intermediate parameter, U and V are at least one common parameter, s is a security parameter, "*" is an elliptic curve point multiplication operation, and "+" is an elliptic curve point addition operation.
[0102] In a possible embodiment of the second aspect, U is a first base point and V is a second base point. Furthermore, U and V belong to a group of order p, where p is a prime number. The operation on the group is the operation on the first elliptic curve.
[0103] The first elliptic curve is the elliptic curve used by the selected key agreement algorithm. For example, if the selected key agreement algorithm is the TBPEKE algorithm, the first elliptic curve may be an elliptic curve defined by SM2, Curve25519, etc.
[0104] In a possible embodiment of the second aspect, the first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation: The first key = SKg * KEt, The second key agreement parameter, KEg, satisfies the following equation. KEg = SKg * b, The second key satisfies the following equation: The second key = SKt*KEg, where, SKt is the first private key, and SKg is the second private key.
[0105] Since the point multiplication operation satisfies the law of association, the first key = SKg * KEt = SKg * (SKt * b) = SKt * (SKg * b) = the second key. Therefore, the first key determined by the first node is the same as the second key determined by the second node.
[0106] Specifically, the first key = SKg*KEt = SKg*(SKt*b) = (SKt.SKg)*(U+s*V), and the second key = SKt*KEg = SKt*(SKg*b) = (SKt.SKg)*(U+s*V), where "." represents multiplication. Therefore, the first key is the same as the second key.
[0107] In a possible embodiment of the second aspect, the range of values for the first secret key (SKt) is [1, p), and the range of values for the second secret key (SKg) is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
[0108] In a possible embodiment of the second aspect, prior to the step of sending the first message to the second node, the Method A step of receiving a key agreement algorithm capability of a second node, which is transmitted by the second node, wherein the key agreement algorithm capability of the second node represents a key agreement algorithm supported by the second node, It also includes.
[0109] In a possible embodiment of the second aspect, the key agreement algorithms supported by the first node are sorted according to priority.
[0110] In a possible embodiment of the second aspect, the first message further includes a first fresh parameter. , the The authentication information for node 1 is associated with the pre-shared key (PSK) between the first and second nodes, the second key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability.
[0111] In a possible embodiment of the second aspect, the second message further includes second authentication information and a second fresh parameter, the second authentication information being associated with the PSK between the first node and the second node, the first key, the second fresh parameter, and the first message.
[0112] In a possible embodiment of the second aspect, the method is A step of verifying second authentication information based on the PSK, second key, second fresh parameter, and first message between the first node and the second node, If the verification of the integrity of the second set of credentials and the second message is successful, the first set of credentials is generated. It also includes.
[0113] In a possible embodiment of the second aspect, the first message further includes a first fresh parameter, the second message further includes a second fresh parameter, and the method is Steps to obtain a second key, a first fresh parameter, and a fourth key based on the second fresh parameter. It also includes.
[0114] In possible embodiments of the second aspect, the PSK is either pre-configured or pre-defined, or obtained based on a first password.
[0115] In yet another possible embodiment of the second aspect, the method is Step 1: Obtain the PSK between the first node and the second node according to the second correspondence. It also includes.
[0116] It can be seen that the first node can store the correspondence between the PSK and the second node in the form of a correspondence. Therefore, the PSK between the first node and the second node can be obtained according to the correspondence.
[0117] In yet another possible embodiment of the second aspect, the method is Step 1: Determine the PSK between the first node and the second node based on the first password, the first fresh parameter, and the second fresh parameter. It also includes.
[0118] In a possible design, the PSK is determined based on a first password, a first key, a first fresh parameter, and a second fresh parameter. The first node can determine a new PSK when it first associates with the second node, or when the first node does not obtain a PSK corresponding to the second node.
[0119] According to a third aspect, one embodiment of the present application provides a communication device. The communication device includes a receiving unit, a transmitting unit, and a processing unit, and the communication device is configured to carry out the method described in any embodiment of the first aspect.
[0120] In a possible embodiment of the third aspect, a receiving unit is configured to receive a first message from a first node, the first message comprising a first key agreement parameter, the first key agreement parameter being associated with a first secret key and an intermediate parameter, the intermediate parameter being associated with a security parameter and at least one common parameter, the security parameter being a first password or a pre-shared key PSK between the first node and the second node, and the first password being an agreed-upon access password between the first node and the second node.
[0121] The transmitting unit is further configured to send a second message to the first node, the second message containing a second key agreement parameter, the second key agreement parameter being associated with a second secret key and intermediate parameters.
[0122] The processing unit is configured to obtain a first key based on a first key agreement parameter and a second secret key.
[0123] In a possible embodiment of the third aspect, the receiving unit is further configured to receive a third message from a first node, the third message comprising first authentication information, the first authentication information being associated with a second key, the second key being associated with a second key agreement parameter and a first secret key.
[0124] The processing unit is further configured to verify the first authentication information based on the first key.
[0125] In yet another possible embodiment of the third aspect, the first key is used to retrieve one or more keys.
[0126] In possible solutions, the first key is used to obtain the encryption key, integrity key, identity authentication key, etc., by derivation. In yet another possible embodiment of the third aspect, the transmitting unit is If the verification of the first authentication information is successful, an association establishment message is sent to the first node. It is further configured in this way.
[0127] In yet another possible embodiment of the third aspect, the transmitting unit is: When the verification of the integrity of the first authentication information and the third message is successful, an association establishment message is sent to the first node. It is further configured in this way.
[0128] In yet another possible embodiment of the third aspect, the receiving unit is The first node receives instruction information for the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm. It is further configured in this way.
[0129] Optionally, the instruction information for the key agreement algorithm includes the instruction information for the first key agreement algorithm, and the instruction information for the first key agreement algorithm indicates the TBPEKE algorithm.
[0130] Multiple TBPEKE algorithms may exist, as different elliptic curves are used at will. For example, the elliptic curves used by the TBPEKE algorithm may include one or more elliptic curves defined by SM2, Curve25519, etc. Therefore, a TBPEKE algorithm could include a TBPEKE algorithm that uses elliptic curves defined by SM2, a TBPEKE algorithm that uses Curve25519, and so on.
[0131] In yet another possible embodiment of the third aspect, at least one common parameter includes a first common parameter and a second common parameter.
[0132] The first and second common parameters are associated with the first elliptic curve, which is the elliptic curve corresponding to the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm.
[0133] In yet another possible embodiment of the third aspect, the first common parameter and the second common parameter belong to points on the first elliptic curve.
[0134] In yet another possible embodiment of the third aspect, the first common parameter is predefined, and the second common parameter is determined based on the first common parameter, a first random number, and a second random number, where the first random number originates from a first node and the second random number originates from a second node.
[0135] In a possible embodiment of the third aspect, at least one common parameter includes at least one base point, the at least one base point belongs to a group of order p, where p is a prime number.
[0136] Optionally, the group may be a cyclic group or a cyclic subgroup associated with an operation on the first elliptic curve.
[0137] Optionally, in some scenarios, the base point may be replaced by a generator.
[0138] In yet another possible embodiment of the third aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes some or all of the elements in a group whose order is p, where p is a prime number.
[0139] The base point (or generator) of a subgroup with order p is U. For a selected number d, if the range of values for d is [1, p-1], then dU is included in the group.
[0140] Optionally, at least one common parameter includes the base point U. Furthermore, optionally, at least one common parameter further includes V obtained by performing an operation on U, where V = dU, and d is in the range [1, p-1].
[0141] In yet another possible embodiment of the third aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes two points in the group whose order is p.
[0142] Optionally, the two points may be two base points. Alternatively, one of the two points may be a base point, and the other a second base point obtained by calculation based on the base point. For ease of explanation, in this application, the two points will be referred to as the first base point and the second base point.
[0143] In yet another possible embodiment of the third aspect, if the selected key agreement algorithm is the TBPEKE algorithm, the common parameters of the TBPEKE algorithm include a cyclic group whose order is a prime number p, and two independent base points U and V within the group.
[0144] It should be understood that "independence" means that U and V are two points with different values, and is not intended to constitute a limitation that there is no relationship between U and V.
[0145] In yet another possible embodiment of the third aspect, the receiving unit is further configured to receive a first calculated value from a first node, the first calculated value relating to a first random number and a first common parameter, the first random number being determined by the first node and the first common parameter being predefined.
[0146] The processing unit is further configured to determine a second common parameter based on a second random number and a first calculated value.
[0147] The transmitting unit is further configured to transmit a second calculated value to the first node, the second calculated value being associated with a second random number and a first common parameter, and the second calculated value being used by the first node to determine the second common parameter.
[0148] Optionally, the first common parameter is the first base point mentioned above, and the second common parameter is the second base point mentioned above.
[0149] In yet another possible embodiment of the third aspect, at least one common parameter is two points, each of which is a point on an elliptic curve used by the TBPEKE algorithm.
[0150] In yet another possible embodiment of the third aspect, the intermediate parameter satisfies the following equation: b=U+s*V, in the formula, b is an intermediate parameter, U and V are at least one common parameter, s is a security parameter, "*" is an elliptic curve point multiplication operation, and "+" is an elliptic curve point addition operation.
[0151] In a possible embodiment of the third aspect, U is a first base point and V is a second base point. Furthermore, U and V belong to a group of order p, where p is a prime number. The operation on the group is the operation on the first elliptic curve.
[0152] The first elliptic curve is the elliptic curve used by the selected key agreement algorithm. For example, if the selected key agreement algorithm is the TBPEKE algorithm, the first elliptic curve may be an elliptic curve defined by SM2, Curve25519, etc.
[0153] In yet another possible embodiment of the third aspect, the first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation: The first key = SKg * KEt, The second key agreement parameter KEg satisfies the following equation: KEg = SKg * b, The second key satisfies the following equation: The second key = SKt*KEg, where, SKt is the first private key, and SKg is the second private key.
[0154] Since the point multiplication operation satisfies the law of association, the first key = SKg * KEt = SKg * (SKt * b) = SKt * (SKg * b) = the second key. Therefore, the first key determined by the first node is the same as the second key determined by the second node.
[0155] Specifically, the first key = SKg*KEt = SKg*(SKt*b) = (SKt.SKg)*(U+s*V), and the second key = SKt*KEg = SKt*(SKg*b) = (SKt.SKg)*(U+s*V), where "." represents multiplication. Therefore, the first key is the same as the second key.
[0156] In yet another possible embodiment of the third aspect, the range of values for the first secret key (SKt) is [1, p), and the range of values for the second secret key (SKg) is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
[0157] In yet another possible embodiment of the third aspect, the transmitting unit is: Broadcast the key agreement algorithm capability of the second node, where the key agreement algorithm capability of the second node represents the key agreement algorithm supported by the second node. It is further structured in this way.
[0158] In yet another possible embodiment of the third aspect, the key agreement algorithms supported by the first node are sorted according to priority.
[0159] In yet another possible embodiment of the third aspect, the first message further includes the first fresh parameter. , the The authentication information for node 1 is associated with the pre-shared key (PSK) between the first and second nodes, the second key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability.
[0160] In yet another possible embodiment of the third aspect, the processing unit is: The first authentication credentials are verified based on the PSK between the first and second nodes, the first key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability. It is further configured in this way.
[0161] In yet another possible embodiment of the third aspect, the second message further includes second authentication information and second fresh parameters, and the processing unit, Obtain second authentication credentials based on the PSK between the first and second nodes, the first key, the second new parameter, and the first message. It is further configured in this way.
[0162] In yet another possible embodiment of the third aspect, the first message further includes a first fresh parameter, the second message further includes a second fresh parameter, and the processing unit, Obtain the third key based on the first key, the first fresh parameter, and the second fresh parameter. It is further configured in this way.
[0163] In yet another possible embodiment of the third aspect, the PSK is pre-configured or pre-defined, or obtained based on a first password.
[0164] In yet another possible embodiment of the third aspect, the processing unit is: Obtain the PSK between the first node and the second node according to the first correspondence. It is further configured in this way.
[0165] It can be seen that the second node can store the correspondence between the PSK and the first node in the form of a correspondence. Therefore, the PSK between the first node and the second node can be obtained according to the correspondence.
[0166] In yet another possible embodiment of the third aspect, the processing unit is: Based on the first password, the first fresh parameter, and the second fresh parameter, the PSK between the first and second nodes is determined. It is further configured in this way.
[0167] In a possible design, the PSK is determined based on a first password, a first key, a first fresh parameter, and a second fresh parameter.
[0168] According to a fourth aspect, one embodiment of the present application provides a communication device. The communication device includes a transmitting unit, a receiving unit, and a processing unit, and is configured to carry out the method described in any embodiment of the second aspect.
[0169] In a possible embodiment of the fourth aspect, the transmitting unit is configured to transmit a first message to a second node, the first message comprising a first key agreement parameter, the first key agreement parameter being associated with a first secret key and an intermediate parameter, the intermediate parameter being associated with a security parameter and at least one common parameter, the security parameter being a first password or a pre-shared key PSK between the first node and the second node, and the first password being an agreed-upon access password between the first node and the second node.
[0170] The receiving unit is further configured to receive a second message from a second node, the second message containing a second key agreement parameter, the second key agreement parameter being associated with a second secret key and intermediate parameters.
[0171] The processing unit is configured to obtain a second key based on a second key agreement parameter and a first secret key.
[0172] In a possible embodiment of the fourth aspect, The sending unit sends a third message to the first node, the third message containing the first authentication information, and the first authentication information is associated with the second key. It is further configured in this way.
[0173] In yet another possible embodiment of the fourth aspect, the second key is used to retrieve one or more keys.
[0174] In possible solutions, the second key is used to derive encryption keys, integrity keys, identity authentication keys, etc.
[0175] In yet another possible embodiment of the fourth aspect, the receiving unit is: Receive association establishment message from the second node. It is further configured in this way.
[0176] In yet another possible embodiment of the fourth aspect, the communication device further includes a processing unit, the processing unit is A first key agreement algorithm is selected based on the key agreement algorithm capability of the second node, where the key agreement algorithm capability of the second node can indicate one or more key agreement algorithms supported by the second node. It is configured in this way.
[0177] In yet another possible embodiment of the fourth aspect, the transmitting unit is further configured to transmit instruction information for a first key agreement algorithm to a second node, wherein the instruction information for the first key agreement algorithm indicates a two-base password exponential key exchange (TBPEKE) algorithm.
[0178] Multiple TBPEKE algorithms may exist, as different elliptic curves are used at will. For example, the elliptic curves used by the TBPEKE algorithm may include one or more elliptic curves defined by SM2, Curve25519, etc. Therefore, a TBPEKE algorithm could include a TBPEKE algorithm that uses elliptic curves defined by SM2, a TBPEKE algorithm that uses Curve25519, and so on.
[0179] In yet another possible embodiment of the fourth aspect, at least one common parameter includes a first common parameter and a second common parameter.
[0180] The first and second common parameters are associated with the first elliptic curve, which is the elliptic curve corresponding to the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm.
[0181] In yet another possible embodiment of the fourth aspect, the first common parameter and the second common parameter belong to points on the first elliptic curve.
[0182] In yet another possible embodiment of the fourth aspect, the first common parameter is predefined, and the second common parameter is determined based on the first common parameter, a first random number, and a second random number, where the first random number originates from a first node and the second random number originates from a second node.
[0183] In a possible embodiment of the fourth aspect, at least one common parameter includes at least one base point, the at least one base point belongs to a group of order p, where p is a prime number.
[0184] Optionally, the group may be a cyclic group or a cyclic subgroup associated with an operation on the first elliptic curve.
[0185] Optionally, in some scenarios, the base point may be replaced by a generator.
[0186] In yet another possible embodiment of the fourth aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes some or all of the elements in a group whose order is p, where p is a prime number.
[0187] The base point (or generator) of a subgroup with order p is U. For a selected number d, if the range of values for d is [1, p-1], then dU is included in the group.
[0188] Optionally, at least one common parameter includes the base point U. Furthermore, optionally, at least one common parameter further includes V obtained by performing an operation on U, where V = dU, and d is in the range [1, p-1].
[0189] In yet another possible embodiment of the fourth aspect, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes two points in the group whose order is p.
[0190] Optionally, the two points may be two base points. Alternatively, one of the two points may be a base point, and the other a second base point obtained by calculation based on the base point. For ease of explanation, in this application, the two points will be referred to as the first base point and the second base point.
[0191] In yet another possible embodiment of the fourth aspect, if the selected key agreement algorithm is the TBPEKE algorithm, the common parameters of the TBPEKE algorithm include a cyclic group whose order is a prime number p, and two independent base points U and V within the group.
[0192] It should be understood that "independence" means that U and V are two points with different values, and is not intended to constitute a limitation that there is no relationship between U and V.
[0193] In yet another possible embodiment of the fourth aspect, the transmitting unit is configured to transmit a first calculated value to a second node, the first calculated value relating to a first random number and a first common parameter, the first random number being determined by the first node and the first common parameter being predefined.
[0194] The receiving unit is configured to receive a second calculated value from a second node, the second calculated value being associated with a second random number and a first common parameter.
[0195] The apparatus further includes a processing unit, which determines a second common parameter based on a second random number and a first calculated value.
[0196] Optionally, the first common parameter is the first base point mentioned above, and the second common parameter is the second base point mentioned above.
[0197] In yet another possible embodiment of the fourth aspect, if the first key agreement algorithm is the two-base password exponential key exchange TBPEKE algorithm, then at least one common parameter is two points, each point being a point on an elliptic curve used by the TBPEKE algorithm.
[0198] In yet another possible embodiment of the fourth aspect, the first key agreement algorithm is a key agreement algorithm supported by a first node, and the first key agreement algorithm has the highest priority among the key agreement algorithms supported by a second node.
[0199] In yet another possible embodiment of the fourth aspect, the intermediate parameter satisfies the following equation: b = U + s * V, in the equation, b is an intermediate parameter, U and V are at least one common parameter, s is a security parameter, "*" is an elliptic curve point multiplication operation, and "+" is an elliptic curve point addition operation.
[0200] In a possible embodiment of the fourth aspect, U is a first base point and V is a second base point. Furthermore, U and V belong to a group of order p, where p is a prime number. The operation on the group is the operation on the first elliptic curve.
[0201] The first elliptic curve is the elliptic curve used by the selected key agreement algorithm. For example, if the selected key agreement algorithm is the TBPEKE algorithm, the first elliptic curve may be an elliptic curve defined by SM2, Curve25519, etc.
[0202] In yet another possible embodiment of the fourth aspect, the first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation: The first key = SKg*KE, The second key agreement parameter KEg satisfies the following equation: KEg = SKg * b, The second key satisfies the following equation: The second key = SKt*KEg, where, SKt is the first private key, and SKg is the second private key.
[0203] Since the point multiplication operation satisfies the law of association, the first key = SKg * KEt = SKg * (SKt * b) = SKt * (SKg * b) = the second key. Therefore, the first key determined by the first node is the same as the second key determined by the second node.
[0204] Specifically, the first key = SKg*KEt = SKg*(SKt*b) = (SKt.SKg)*(U+s*V), and the second key = SKt*KEg = SKt*(SKg*b) = (SKt.SKg)*(U+s*V), where "." represents multiplication. Therefore, the first key is the same as the second key.
[0205] In yet another possible embodiment of the fourth aspect, the range of values for the first secret key (SKt) is [1, p), and the range of values for the second secret key (SKg) is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
[0206] In yet another possible embodiment of the fourth aspect, the receiving unit is: It belongs to the second node, receives the key agreement algorithm capability transmitted by the second node, and the key agreement algorithm capability of the second node represents the key agreement algorithm supported by the second node. It is further configured in this way.
[0207] In yet another possible embodiment of the fourth aspect, the key agreement algorithms supported by the first node are sorted according to priority.
[0208] In yet another possible embodiment of the fourth aspect, the first message further includes the first fresh parameter. , the The authentication information for node 1 is associated with the pre-shared key (PSK) between the first and second nodes, the second key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability.
[0209] In yet another possible embodiment of the fourth aspect, the second message further includes second authentication information and a second fresh parameter, the second authentication information being associated with the PSK between the first node and the second node, the first key, the second fresh parameter, and the first message.
[0210] In yet another possible embodiment of the fourth aspect, the processing unit is: The second authentication information is verified based on the PSK, second key, second fresh parameters, and first message between the first node and the second node. If the verification of the second set of credentials and the integrity of the second message is successful, the first set of credentials is generated. is further configured as follows.
[0211] In a possible implementation of the fourth aspect, the first message further includes a first freshness parameter, the second message further includes a second freshness parameter, and the processing unit is further configured to obtain a fourth key based on the second key, the first freshness parameter, and the second freshness parameter as follows.
[0212] In a possible implementation of the fourth aspect, the PSK is pre-configured or pre-defined, or is obtained based on the first password.
[0213] In yet another possible implementation of the fourth aspect, the processing unit is further configured to obtain the PSK between the first node and the second node according to the second correspondence relationship as follows.
[0214] In yet another possible implementation of the fourth aspect, the processing unit is further configured to determine the PSK between the first node and the second node based on the first password, the first freshness parameter, and the second freshness parameter as follows.
[0215] According to the fifth aspect, an embodiment of the present application discloses a communication device including a processor and a communication interface. The communication interface is configured to receive and / or transmit data, and / or the communication interface is configured to provide an input and / or an output for the processor. The processor is configured to call a computer program stored in the memory to implement the method described in any one of the first aspect or the possible implementations of the first aspect.
[0216] According to a sixth aspect, one embodiment of the present application discloses a communication device including a processor and a communication interface. The communication interface is configured to receive and / or transmit data, and / or the communication interface is configured to provide an input and / or an output for the processor. The processor is configured to call a computer program stored in a memory to implement any one of the possible embodiments of the second aspect or the third aspect.
[0217] It should be noted that the processor included in the communication device / apparatus described in the fifth aspect and / or the sixth aspect may be a processor specially configured to perform these methods (referred to as a dedicated processor for ease of distinction), or may be a processor that performs these methods by calling a computer program, such as a general-purpose processor. Optionally, at least one processor may further include both a dedicated processor and a general-purpose processor.
[0218] Optionally, the computer program may be stored in a memory. For example, the memory may be a non-transitory memory, such as a read-only memory (ROM). The memory and the processor may be integrated on the same component, or may be separately arranged on different components. The type of memory and the manner of arranging the memory and the processor are not limited in this embodiment of the present application.
[0219] In a possible embodiment, at least one memory is arranged outside the communication device.
[0220] In another possible embodiment, at least one memory is arranged within the communication device.
[0221] In yet another possible embodiment, some of the at least one memory are arranged within the communication device, and other memories are arranged outside the communication device.
[0222] In this application, the processor and memory can be integrated into a single component. In other words, the processor and memory can be integrated together as an alternative.
[0223] According to a seventh aspect, one embodiment of the present application further provides a chip system, the chip system comprising at least one processor and a communication interface, the communication interface being configured to transmit and / or receive data, and the at least one processor being configured to call a computer program stored in at least one memory to enable the chip system to implement the method of the first aspect or one of the possible embodiments of the first aspect, or the method of the second aspect or one of the possible embodiments of the second aspect.
[0224] According to the eighth aspect, one embodiment of the present application further provides a communication system. The communication system includes a first node and a second node. The second node includes a communication device described in any one of the third aspect or possible embodiments of the third aspect, or the second node is a node that implements any one of the first aspect or possible embodiments of the first aspect. The first node includes a communication device described in any one of the fourth aspect or possible embodiments of the fourth aspect, or the first node is a node that implements any one of the second aspect or possible embodiments of the second aspect.
[0225] According to the ninth aspect, one embodiment of the present application discloses a computer-readable storage medium for storing a computer program. When the computer program is run on a computer, the computer is enabled to perform a method described in the first aspect or one of the possible embodiments of the first aspect, or a method described in the second aspect or one of the possible embodiments of the second aspect.
[0226] According to a tenth aspect, one embodiment of the present application discloses a computer program product. When the computer program product operates on one or more processors, a method described in the first aspect or one of possible embodiments of the first aspect is performed, or a method described in the second aspect or one of possible embodiments of the second aspect is performed.
[0227] According to the eleventh aspect, one embodiment of the present application discloses a terminal, which may be an intelligent cockpit product, a vehicle, etc., and which includes a first node and / or a second node.
[0228] The second node includes an apparatus as described in the third aspect or any one of the possible embodiments of the third aspect.
[0229] The first node includes a communication device as described in the fourth aspect or one of the possible embodiments of the fourth aspect.
[0230] Optionally, the first node may include one or more modules such as a camera, screen, microphone, stereo, radar, electronic key, passive entry, passive start system controller, and user equipment (UE).
[0231] Optionally, the second node may include one or more modules such as a gateway, base station, and automotive cockpit domain controller (CDC). Alternatively, the vehicle may be replaced by a smart terminal or a transport vehicle such as an unmanned aerial vehicle or robot.
[0232] For the beneficial effects of the technical solutions provided in the second to eleventh aspects of this application, please refer to the beneficial effects of the technical solution in the first aspect. Further details are not described herein.
[0233] The following is a brief description of the attached drawings used to illustrate the embodiments.
Brief Description of the Drawings
[0234] [Figure 1(a)] It is a diagram of a dot addition operation according to an embodiment of the present application. [Figure 1(b)] It is a diagram of a dot addition operation according to an embodiment of the present application. [Figure 1(c)] It is a diagram of a dot addition operation according to an embodiment of the present application. [Figure 2] It is a diagram of a communication system according to an embodiment of the present application. [Figure 3] It is a diagram of a communication scenario according to an embodiment of the present application. [Figure 4] It is a schematic flowchart of a communication method according to an embodiment of the present application. [Figure 5] It is a flowchart of a common parameter determination method according to an embodiment of the present application. [Figure 6] It is a schematic flowchart of another communication method according to an embodiment of the present application. [Figure 7A] It is a schematic flowchart of yet another communication method according to an embodiment of the present application. [Figure 7B] It is a schematic flowchart of yet another communication method according to an embodiment of the present application. [Figure 8] It is a diagram of the structure of a communication device according to an embodiment of the present application. [Figure 9] It is a diagram of the structure of another communication device according to an embodiment of the present application.
Modes for Carrying Out the Invention
[0235] To facilitate an understanding of the detailed implementation manners of the solutions in the embodiments of the present application, the technical terms used in the embodiments of the present application will be described first below.
[0236] 1. Node A node is an electronic device with communication capabilities, also known as a communication node. For example, a node may include independent devices such as a handheld terminal, a vehicle, an in-vehicle device, a network-side device, user equipment, an access terminal, a subscriber unit, a subscriber station, a mobile station, a mobile console, a remote station, a remote terminal, a wireless communication device, a user agent, or user equipment, or it may be a component (e.g., a chip or integrated circuit) contained within an independent device. A node may also be any possible smart terminal device (e.g., a mobile phone), any possible intelligent transport device (e.g., a vehicle or unmanned aerial vehicle), any possible smart manufacturing device, or any possible smart home device (e.g., a large screen or speaker).
[0237] For example, if the node is an in-vehicle device, the node may be one or more modules within a cockpit domain device, such as a cockpit domain controller (CDC), camera, screen, microphone, speaker, electronic key, and passive entry / passive start system controller. In a vehicle, the node may alternatively be a battery management system and a battery within a battery pack.
[0238] For example, if the node is a handheld device, the node may also be a mobile phone, a wearable device, a tablet computer, or a computer with data transmission capabilities (such as a notebook computer or palmtop computer).
[0239] The node in the embodiment of this application can be applied to multiple application scenarios, for example, the following application scenarios: mobile internet (MI), industrial control, self-driving, transportation safety, Internet of Things (IoT), smart city, or smart home.
[0240] The node in this application may be applied to multiple types of networks, for example, one or more of the following types of networks: long-term evolution (LTE) networks, 5th generation mobile communication technology (5G), wireless local area networks (e.g., Wi-Fi), Bluetooth (BT), Zigbee, SparkLink, or in-vehicle short-range wireless communication networks.
[0241] In some application scenarios or types of networks, devices with similar communication capabilities may not be referred to as nodes. However, for the sake of clarity, in the embodiments of this application, devices with communication capabilities are collectively referred to as nodes.
[0242] 2. Security algorithms (also called cryptographic algorithms) (1) Key agreement algorithm Key agreement is the process by which two communicating parties exchange several parameters in order to obtain a key through agreement. The algorithm used for key agreement may be called a key agreement algorithm or key negotiation algorithm. Key agreement algorithms include the Two-Basis Password Exponential Key Exchange (TBPEKE) algorithm, the Diffie-Hellman key exchange (DH) algorithm, the Elliptic Curve Cryptosystems (ECC) based DH (ECDH) algorithm, the Chinese cryptographic algorithm (SM2, etc.), and the Oakley algorithm.
[0243] A key agreement algorithm can also be considered a key agreement protocol; that is, for two communicating parties, the key agreement algorithm defines rules for key generation and exchange.
[0244] (2) Key derivation algorithm (key derivation function, KDF) A key derivation algorithm (or referred to as a key derivation algorithm) is used to derive (or derive or derive) one or more secret values from a secret value. For example, a new secret value DK derived from secret value Key may be expressed as DK = KDF(Key). Of course, key in this specification is merely an example. In a particular embodiment of the process, other parameters may be further used in the key derivation process.
[0245] The key derivation algorithm in the embodiments of this application may include a password-based key derivation function (PBKDF), a scripting (scrypt) algorithm, and the like. The PBKDF algorithm further includes a first-generation PBKDF 1 and a second-generation PBKDF 2.
[0246] It should be understood that some KDF algorithms can perform hash modifications on the input secret value according to a hash algorithm. Therefore, a KDF function can further accept an algorithm identifier as input to indicate the hash algorithm being used.
[0247] It should be noted that the Key Derivation Algorithm (KDF) is used not only to derive secret values, but also to generate authentication credentials, identification credentials, etc. In some possible embodiments, when authentication credentials and identification credentials are generated, the key derivation algorithm may also be called the authentication algorithm (AUF, or AUTH function), and the authentication algorithm is used to obtain authentication credentials based on input parameters.
[0248] (3) Encryption algorithms Encryption algorithms are used to protect the confidentiality of data, allowing them to encrypt plaintext and obtain ciphertext. Encryption algorithms may include encryption operations (e.g., elliptic point addition and exclusive OR operations) or various highly secure mathematical functions. Common encryption algorithms include exclusive OR operations, data encryption standards (DES), triple data encryption algorithms (3DES), advanced encryption standards (AES), RSA encryption algorithms, data structure analysis (DSA) algorithms, Chinese encryption algorithms (such as SM4), and the ZUC algorithm set (ZUC algorithms, encryption algorithm 128-EEA3, or ZUC algorithms such as integrity algorithm 128-EIA3).
[0249] 3. TBPEKE algorithm In embodiments of this application, the TBPEKE algorithm is a security algorithm implemented based on elliptic curve mathematical theory that can enable two communicating parties to create a key over an insecure channel, which can then be used to encrypt communication content in subsequent communications. Optionally, in embodiments of this application, the elliptic curves used by the TBPEKE algorithm include one or more of the following elliptic curves, namely, SM2, Curve25519, etc.
[0250] The following will begin with an explanation of elliptic curves.
[0251] The equation of an elliptic curve is a binary cubic equation and can take multiple forms. The most commonly used equation is as follows: E={(x,y)∈R|y 2 =x 3 +ax+b,4a 3 +27b 2 ≠0}
[0252] From the equation of the curve, it is easy to see that the elliptic curve is symmetric with respect to the x-axis. Determination formula 4a 3 +27b 2 The condition ≠0 allows us to demonstrate that the elliptic curve has no singularities, i.e., that the elliptic curve is smooth and can be derived at any point. This facilitates various operations on the elliptic curve. Details are as follows.
[0253] a. Elliptic curve point addition operation Figures 1(a), 1(b), and 1(c) illustrate possible point addition operations according to this application, respectively. Please refer to Figure 1(a). Elliptic curve addition involves marking points P and Q on the curve (Figures 1(a), 1(b), and 1(c) show, as an example, an elliptic curve with a=0 and b=7, i.e., y 2 =x 3+7) Alternatively, it may be represented by drawing a straight line that passes through points P and Q and intersects the curve at a third point -R, and continuing to draw the symmetric point R of point -R with respect to the x-axis. Point R is obtained by adding points P and Q, and is written as P+Q=R.
[0254] Note that elliptic curves are symmetric with respect to the x-axis. Therefore, R is the symmetric point to point -R. Since point -R lies on the elliptic curve, point R is clearly also on the elliptic curve, meaning the point obtained by adding P and Q lies on the elliptic curve.
[0255] Please refer to Figure 1(b). When P=Q, a tangent line is drawn with point P as the point of tangency, and this tangent line intersects the elliptic curve at another point, which is denoted as point -R. Similarly, point R, which is symmetric to point -R with respect to the x-axis, is drawn. Point R is obtained by adding point P and point P, and is denoted as P+P=2P=R.
[0256] b. Elliptic curve point subtraction operation Please refer to Figure 1(c). Since RP = R + (-P), calculating (RP) is equivalent to adding point R and point -P. Also, point -P is the symmetric point of point P. Therefore, when a line is drawn passing through points R and -P, it can be understood that the line is tangent to the elliptic curve at point -P, since the elliptic curve is symmetric with respect to the x-axis. Thus, a point P, which is the symmetric point of point -P with respect to the x-axis, is drawn, and point P is obtained by adding point R and point -P.
[0257] c. Elliptic curve point multiplication operation To obtain the result of adding point P n times, points on the elliptic curve are added n times consecutively, and the result is denoted as nP. The number of additions n is an integer and may also be called a scalar. Elliptic curve point multiplication may also be called scalar multiplication, and if multiple scalars are used, it may be called multi-scalar multiplication.
[0258] It should be noted that point multiplication algorithms can have different definitions in different operating scenarios, and embodiments depend on the specifically defined operating rules of the point multiplication algorithm. Possible computation methods for elliptic curve point multiplication algorithms are listed herein.
[0259] The following describes elliptic curves applicable to cryptographic algorithms.
[0260] The elliptic curves described above are continuous and defined over real fields, making them unsuitable for use in cryptographic processes. Therefore, elliptic curves used in cryptographic algorithms are typically defined over finite fields. A finite field is a set of finite elements. A finite field is constrained such that points on its elliptic curves generate cyclic subgroups.
[0261] Point addition and multiplication of elliptic curves in a finite field differ slightly from those in the field of real numbers. For details, please refer to the definitions in the prior art.
[0262] For a selected elliptic curve, given a scalar k and a point G, it is easy to calculate R = k * G (where * is the elliptic curve point multiplication operation). However, given points G and R (where G and R lie on the elliptic curve), calculating which k satisfies kG = R is extremely difficult. In the practical use of elliptic curves, as a rule, G and R are quite large. Calculating each k point and comparing them to R is a mathematical problem. This is a discrete logarithm problem on an elliptic curve.
[0263] The key exchange process based on the TBPEKE algorithm will be described below.
[0264] It is assumed that both parties of the key exchange are the first node and the second node, and there is a security parameter s shared between the first node and the second node. The elliptic curve used by the TBPEKE algorithm is E, and U and V are two points on the elliptic curve E. When the first node and the second node perform key exchange, the following exchange steps are carried out.
[0265] Step 1: The first node calculates an intermediate parameter b, where b = (U + s * V), where "+" represents the elliptic curve point addition operation, "*" represents the elliptic curve point multiplication operation, and "." in the subsequent formula represents the common multiplication. The first node generates a random number as the secret key SKt of the first node and calculates the public key PKt = SKt * (U + s * V). The public key PKt is used as the key agreement parameter KEt.
[0266] Step 2: The first node sends the key agreement parameter KEt to the second node.
[0267] Step 3: The second node calculates the intermediate parameter b, b = (U + s * V), generates a random number as the secret key SKg of the second node, and the second node calculates the public key PKg, where PKg = SKg * (U + s * V). The public key PKg is used as the key agreement parameter KEg.
[0268] Step 4: The second node sends KEg to the first node.
[0269] Step 5: The second node obtains the key K KE based on the secret key of the second node and the public key of the first node, that is, K KE = SKg * KEt = SKg * (SKt * b) = (SKt.SKg) * (U + s * V).
[0270] Step 6: The first node uses the private key of the first node and the public key of the second node to create key K KE To obtain ', that is, K KE '=SKt*KEg=SKt*(SKg*b)=(SKt.SKg)*(U+s*V).
[0271] K KE =(SKt.SKg)*(U+s*V)=K KE ', in other words, both parties have a consistent key K KE Obtain key K. KE It is not sent directly, but the attacker calculates K based on the obtained U, V, KEt, and KEg. KE It is difficult to obtain the key K obtained using the TBPEKE algorithm. KE It is safe.
[0272] The foregoing description of the algorithm is merely a brief explanation of the implementation principle and should be understood as not limiting whether the same parameters must be used in the embodiment in use. Other improvements and variations may be possible in the processes of a particular embodiment of the algorithm. The algorithm referred to in this application may be an improved and / or modified algorithm.
[0273] 4. Fresh Parameters Fresh parameters are parameters in the field of information security, used to generate keys, authentication parameters, etc., and are sometimes called freshness. Fresh parameters can include one or more of the following: random numbers, counters, serial numbers, and sequence numbers. Fresh parameters generated at different moments in time are usually different.
[0274] It should be understood that certain values of fresh parameters change each time they are generated, and as a result, the fresh parameters (or authentication parameters, etc.) used to generate the key this time will be different from the fresh parameters (or authentication parameters, etc.) used to generate the key last time. This can improve the security of the generated key.
[0275] A non-repeated random number (number once, NONCE) is a random number that is used only once.
[0276] 5. Password A password may be understood as a password pre-configured or pre-defined by a node for access to another node, or as a secret value agreed upon between two nodes. Optionally, a password may be in the form of a string (or number) containing one or more of the following: numbers, letters, symbols, etc., and may be entered via keyboard, voice, biometric information, etc. For example, in a scenario where a mobile phone accesses a router that supports the Wireless Fidelity (Wi-Fi) protocol, the mobile phone may use a “Wi-Fi password” to access the router, and the “Wi-Fi password” may be understood as the router’s password.
[0277] For ease of understanding, this application lists several possible password usage scenarios as examples (using an example where a first node requests access to a second node).
[0278] Scenario 1: The second node predefines or preconfigures the password for the first node. Users of the first node can enter the first password into the first node to access the second node. For example, a vehicle owner configures the first password for the vehicle via the administrator interface. When the vehicle owner's smartphone needs to access the vehicle, the vehicle owner can enter the first password into the smartphone, and the smartphone requests access to the vehicle according to the entered first password.
[0279] Scenario 2: The second node predefines or preconfigures the first password. Similarly, the first password for accessing the second node is also preconfigured on the first node. When the first node needs to access the second node, the first node can do so using the preconfigured first password. For example, once a vehicle is assembled, the host factory can configure the first password for the vehicle's CDC and the first password for the vehicle's radar CDC. In this way, the radar can access the CDC using the first password for the CDC.
[0280] Scenario 3: A third-party device (a device trusted by the second node, such as a network-side device, certificate center, or authentication server) can assign agreed values to the second node and the first node, and these agreed values can be used by the first node to access the second node, and these agreed values may be called the access password for the second node.
[0281] Note that associations between parameters indicate that there is a relationship between them. For example, if parameter A is associated with parameter B, it indicates that there is a correspondence (or mapping) between parameter A and parameter B, or that parameter B is used in the calculation process for parameter A (optionally, other parameters may be used instead).
[0282] As used in the embodiments of this application, “authentication,” “verification,” and “verify” can mean checking whether the information is correct or reasonable. As used in the embodiments of this application, “access” means that the first node is 2 This describes the process of establishing a connection to a node. In some specific technical scenarios, the process of one node "accessing" another node can also be described as one node "associating" with another node.
[0283] In addition, in the embodiments of this application, unless otherwise specified, "*" represents elliptic curve point multiplication, "+" represents elliptic curve point addition, and "." represents multiplication.
[0284] The following describes the system architecture and service scenarios of embodiments of this application. It should be noted that the system architecture and service scenarios described herein are intended to provide a clearer explanation of the technical solutions and do not constitute limitations on the technical solutions provided herein. Those skilled in the art will recognize that, with the evolution of system architectures and the emergence of new service scenarios, the technical solutions provided herein are applicable to similar technical problems.
[0285] Figure 2 is a diagram of a possible communication system according to one embodiment of the present application. The communication system includes a first node 201 and a second node 202. The first node 201 may request association with the second node 202. After the association is successful, the second node 202 may perform data transmission with the first node 201.
[0286] Optionally, the link for communication between the second node 202 and the first node 201 may include various types of connection media, including wired links (e.g., optical fiber), wireless links, and combinations of wired and wireless links. For example, the second node 202 and the first node 201 can communicate with each other using short-range connection technologies, including SparkLink, 802.11b / g, Bluetooth, Zigbee, radio frequency identification (RFID), ultra-wideband (UWB) technology, or wireless short-range communication systems (e.g., automotive wireless short-range communication systems). As another example, the second node 202 and the first node 201 can communicate with each other by using radio access type technologies, including long-range connectivity technologies such as Long Term Evolution-based communication technologies, 5th generation mobile networks (or 5th generation wireless systems, abbreviated as 5th-Generation, 5G, or 5G technology), Global System for mobile communications (GSM), General Packet Radio Service (GPRS), and Universal Mobile Telecommunications System (UMTS).
[0287] In some specific embodiment scenarios, the second node may be called a G node, control node, or access point, the first node may be called a T node or terminal, the communication link from a G node to a T node may be called a G link, and the communication link from a T node to a G node may be called a T link.
[0288] It should be understood that the system shown in the accompanying drawings of this application is merely an example. The number of nodes, the location of the nodes, and the connectivity relationships between the nodes are shown as possible examples for the sake of clarity and are not intended to limit any particular communication system or communication scenario.
[0289] The second node 202 and the first node 201 may be the same type of device or different types of devices. For example, Figure 3 shows a possible communication scenario. The vehicle's cockpit domain controller (CDC) 302 is the control center for the vehicle's intelligent cockpit devices and can be considered the second node 202. The smartphone 301 is a device capable of sending and receiving data and can be considered the first node 201.
[0290] CDC 302 can be accessed using short-range communication technology, and smartphone 301 supports short-range communication technology. Therefore, smartphone 301 can request access to CDC 302. If both short-range communication users access via digital pairing, smartphone 301 can connect to CDC 302 using short-range communication technology by directly tapping the identifier of CDC 302 on smartphone 301 and verifying the pairing digits between smartphone 301 and CDC 302. In this case, if an attacker spoofs the identification information of smartphone 301 and connects to CDC 302, it becomes difficult for CDC 302 to identify the attacker. As a result, the attacker can successfully access CDC 302, and the vehicle's privacy and security are threatened.
[0291] Similarly, in some other scenarios, it is difficult for a node to avoid access by an unidentified attacker. As a result, communication security is affected. For example, CDC 302 supports access by a first password. The user enters the password into smartphone 301. CDC 302 may establish a connection if it determines that the password entered by the user is correct. However, passwords are usually short to facilitate entry and memory. If the password is used directly to obtain the communication key in the communication process, an attacker could use brute-force or offline attacks to obtain the CDC 302's password, threatening the vehicle's privacy and security.
[0292] With this in mind, the communication method and apparatus in the embodiments of this application are provided to reduce the likelihood of a node being successfully associated with an attacker who has untrusted identification information, thereby improving node security.
[0293] The method in the embodiment of this application will be described in detail below.
[0294] Figure 4 is a schematic flowchart of a communication method according to one embodiment of the present application. Optionally, the method may be implemented based on the communication system shown in Figure 2. The communication method shown in Figure 4 may include one or more of steps S401 to S406. For the sake of clarity in the explanation in this application, the sequence S401 to S406 is used for illustrative purposes, but it should be understood that this is not intended to constitute a limitation that the method necessarily takes place in the aforementioned sequence. The execution order, execution time, number of executions, etc., of one or more of the aforementioned steps are not limited to this embodiment of the present application. Specifically, S401 to S406 are as follows:
[0295] Step S401: The first node sends a first message to the second node. In response, the second node receives a first message from the first node. The first message contains the first key agreement parameters.
[0296] Specifically, key agreement parameters are parameters used in the key agreement process. For ease of explanation, in this embodiment of the present application, the key agreement parameters provided by the first node are referred to as the first key agreement parameters.
[0297] In this embodiment of the present application, the first key agreement parameter is associated with the first secret key and intermediate parameter, and the intermediate parameter is associated with the security parameter and common parameter.
[0298] To facilitate understanding, security parameters and common parameters will be explained first below.
[0299] (1) Security parameters may include a shared key between the first and second nodes (including a pre-shared key, symmetric encryption key, etc.), a first password, pre-configured parameters between the first and second nodes, and parameters predefined in the communication protocol. A pre-shared key (PSK) is used as an example. A pre-shared key is a secret value shared between the first and second nodes. The first node is... 2 The PSK and other data shared with the nodes can be obtained through pre-definition, pre-configuration, or mutual agreement.
[0300] The first password is an agreed-upon access password between the first and second nodes, and may be understood as a password pre-configured or pre-defined by the second node (or the first node) to allow access by another node, or as a secret value agreed upon by the first and second nodes. For further explanation of the first password, see the explanation in the glossary of technical terms.
[0301] In a possible solution, if a PSK exists on the first node between the first and second nodes, the PSK is used as the security parameter. If a PSK does not exist on the first node between the first and second nodes, the first node's password is used as the security parameter. In other words, the first node preferentially uses the PSK to participate in the key agreement process.
[0302] The first secret key is determined by the first node and is the secret key of the first node. The first secret key may be a random number. If the first and second nodes optionally agree on a key according to the TBPEKE algorithm, the range of values for the first secret key is [1, p), where p is the degree of the elliptic curve used by the TBPEKE algorithm, or p is the degree of the group associated with the elliptic curve. It should be understood that "TBPEKE algorithm" is an example of an algorithm name provided in this embodiment of the application. In the embodiment process, all key agreement algorithms using the same or similar parameters and the same or similar calculation methods are included within the scope of this application, but the key agreement algorithm may not be called the "TBPEKE algorithm".
[0303] (2) Common parameters may be used jointly by multiple parties in the key agreement process. There may be one or more common parameters. This depends on the specific embodiment. If, at their discretion, the first node and the second node choose different key agreement algorithms to perform key agreement, the number and method of determining common parameters may differ.
[0304] The following lists several possible common parameter determination embodiments.
[0305] Embodiment 1: Common parameters are predefined or preconfigured. For example, the protocol specifies the number of common parameters, the values of the common parameters, etc. When a first node is associated with a second node via the protocol, the key agreement parameters are determined based on the common parameters defined in the protocol. For example, common parameters are preconfigured by multiple communication partners (e.g., the first and second nodes). For example, common parameters are preconfigured at the second node (or the first node), and the second node can send the common parameters to another node via a message, and the multiple communication parties determine the key agreement parameters based on consistent common parameters.
[0306] Embodiment 2: The node determines parameters as common parameters. The number of common parameters is not limited herein. There may be one or more common parameters of any choice.
[0307] For example, the second node can generate random numbers and use them as common parameters.
[0308] In another example, the second node determines two points within the group of first elliptic curves and uses these two points as common parameters. For example, the first node selects a point as a base point (to be called the first base point for ease of distinction) and obtains a second point (which may be called the second base point) by performing operations based on the base point.
[0309] Optionally, the group may be a group relating to an operation on a first elliptic curve, and the operation on the elliptic curve includes one or more operations such as elliptic curve point multiplication and elliptic curve point addition. Furthermore, optionally, the order corresponding to the group is p, which may be defined by a node, standard, vendor, or user. In embodiments of this application, the order p is optionally a prime number.
[0310] Embodiment 3: Some common parameters are predefined, and some parameters are determined by the node.
[0311] For example, there may be two common parameters, one of which is predefined, and the other common parameter is determined based on known common parameters and random numbers provided separately by the first and second nodes.
[0312] In possible embodiments, if the key agreement algorithm between the first node and the second node is the TBPEKE algorithm, then at least one common parameter includes a group (or several elements within the group) of order p, and / or a first and second base point within the group. Optionally, the group may also be a group relating to an operation on a first elliptic curve, the operation on the elliptic curve includes one or more operations such as elliptic curve point multiplication and elliptic curve point addition.
[0313] In another possible embodiment, a second node may receive a first calculated value from a first node, the first calculated value relating to a first random number and a first common parameter, the first random number being determined by the first node (in this embodiment of the application, “determine” includes one or more actions such as receiving, copying, reading, or generating). The first common parameter is predefined and may be obtained, for example, via protocol specification, vendor configuration, or user input. The second node determines a second common parameter based on the second random number and the first calculated value. The second node transmits a second calculated value to the first node, the second calculated value relating to the second random number and the first common parameter. Furthermore, the first node may receive a second calculated value from the first node and obtain a second common parameter matching that of the first node, based on the second calculated value and the first random number.
[0314] Figure 5 shows a possible common parameter determination procedure according to one embodiment of the present application. The common parameter includes two base points U and V, where U is a predefined base point, U and V belong to a cyclic group of order p, and p is a prime number. The elliptic curve used may be an elliptic curve defined by a selected key agreement algorithm. The procedure shown in Figure 5 may specifically include steps S51 to S55 as follows.
[0315] Step S51: The first node generates a random number x and calculates X = x * U.
[0316] * represents a point multiplication operation, and X is the first calculated value mentioned above.
[0317] Step S52: The first node sends X to the second node. In response, the second node receives X from the first node.
[0318] Step S53: The second node generates a random number y, calculates Y=y*U, and calculates V=y*X.
[0319] "*" represents point multiplication, Y is the second calculated value mentioned above, and V is the second base point. Since X = x * U (optionally), V = y * X = y * (x * U) = (xy) * U, and "." represents multiplication.
[0320] Step S54: The second node sends Y to the first node. In response, the first node receives Y from the second node.
[0321] Step S55: The first node calculates V = x * Y.
[0322] Since Y = y * U, V = x * Y = x * (y * U) = (xy) * U, where "." is a multiplication operation. Therefore, the second node and the first node can determine a consistent Vs using the embodiment shown in Figure 5. For simplicity of explanation, Figure 5 shows steps S51 to S5 5 Please note that the steps are described in the order up to this point. The order of execution, execution time, and number of executions of the steps are not limited in this application.
[0323] The above describes the common parameters and security parameters. Below, we provide two possible solutions for the first key agreement parameter, using an example where the key agreement algorithm is the TBPEKE algorithm.
[0324] Solution 1: The first node calculates an intermediate parameter b based on the first password pw and common parameters (U and V), i.e., b = (U + pw * V), where U and V are the first and second base points on the elliptic curve used by the TBPEKE algorithm. The first node generates a random number, uses the random number as the first private key SKt, calculates the first public key PKt, PKt = SKt * b = SKt * (U + pw * V), and the first public key PKt is used as the key agreement parameter KEt.
[0325] In some possible designs, point addition and point multiplication operations may be performed on points on the same elliptic curve. Thus, if a parameter is not a point on an elliptic curve, the parameter may first be mapped to a point on an elliptic curve, and then point addition (or point multiplication) operations are performed on the point on the elliptic curve. The first secret key SKt is used as an example. Possible mapping methods are as follows: The first node can use SKt as the horizontal coordinate (if SKt exceeds the defined domain, a modulo operation may be performed on SKt) to obtain a mapped point R(SKt,y) on the elliptic curve, which point R may then be used to replace SKt. Optionally, when a single SKt value corresponds to multiple y values, conditions that must be satisfied by the y values in order to determine the corresponding point may be agreed upon in advance.
[0326] Solution 2: The first node calculates the intermediate parameter b based on the PSK and common parameters (U and V), i.e., b = (U + PSK * V), where + represents elliptic curve point addition and * represents elliptic curve point multiplication. The first node generates a random number, uses the random number as the first private key SKt, calculates the first public key PKt, PKt = SKt * (U + PSK * V), and the first public key PKt is used as the key agreement parameter KEt.
[0327] To explain the solution more clearly, it should be noted that the aforementioned solution uses multiple steps to explain how to obtain the key agreement parameter KEt. In actual processing, the key agreement parameter KEt may be obtained in one step, and intermediate parameters, such as the first public key, may only be internal results; that is, the key agreement parameter KEt satisfies KEt = SKt * (U + s * V).
[0328] Optionally, the first node may further transmit instruction information for the key agreement algorithm to the second node to indicate the algorithm to be used in the key agreement process. This instruction information may be specifically indicated by a field (referred to as the first field for ease of explanation). For example, the first field may be the KE alg field. Different values of the first field can indicate the algorithm used by the first node in the key agreement process. Optionally, the instruction information for the key agreement algorithm may be included in the aforementioned first message instead.
[0329] Table 1 describes the possible values and indicating information for a key agreement algorithm according to one embodiment of this application. As shown in Table 1, when the value of the first field is 0x003, it indicates that key agreement is performed according to the TBPEKE algorithm, and the elliptic curve used by the TBPEKE algorithm is the elliptic curve defined by the SM2 algorithm. Similarly, when the value of the first field is 0x001, it indicates that the first node selects the SM2 algorithm for key agreement. The meaning of other values is inferred by analogy. Details are not described herein.
[0330] [Table 1]
[0331] Table 1 shows examples of field values and should be understood as not representing any limitations on the instruction information. In certain embodiment processes, other designs may be used for the correspondence between algorithms and formats, the number of bits, and the values of the instruction information.
[0332] In a possible solution, the second node can transmit its key agreement algorithm capability (the transmission method may include broadcast, multicast, unicast, etc.), where key agreement algorithm capability represents the key agreement algorithms supported by the second node. Correspondingly, the first node selects a key agreement algorithm based on the key agreement algorithms supported by the second node. The first node transmits instruction information for the key agreement algorithm to the second node, where the instruction information indicates the key agreement algorithm selected by the first node.
[0333] Optionally, the second node includes in its broadcast message (or access message) its identification information and the key agreement algorithm supported by the second node. The key agreement algorithms are sorted according to priority. For example, algorithms with higher priority may be ranked higher. The identification information of the second node includes the second node's identifier (ID), domain ID, media access control (MAC) address, domain name, domain address, or another user-defined identifier, and is also called the second node's device identifier.
[0334] To facilitate understanding, the following provides an example of a possible solution. The second node supports the SM2 algorithm (identifier: 0x001), the ECDH algorithm (identifier: 0x002), the SM2-based elliptic curve TBPEKE algorithm (identifier: 0x003), and the curve25519-based elliptic curve TBPEKE algorithm (identifier: 0x004), with the priorities of the four algorithms being 1, 2, 3, and 4 respectively (higher values indicate higher priority). In this case, the key agreement algorithm capabilities in the broadcast message, belonging to the second node, are "0x004, 0x003, 0x002, 0x001".
[0335] In a possible solution, the first key agreement algorithm is the key agreement algorithm supported by the first node, and the first key agreement algorithm has the highest priority among the key agreement algorithms supported by the second node. For example, the key agreement algorithms supported by the second node are algorithm A, algorithm B, algorithm C, and algorithm D, with priorities of 4, 3, 2, and 1 respectively (higher values indicate higher priority), and the key agreement algorithms supported by the first node are algorithm B, algorithm D, and algorithm E. In this case, the algorithms supported by both the first and second nodes are algorithm B and algorithm D. Since algorithm B has a higher priority, the first node selects algorithm B as the algorithm to be used for key matching.
[0336] Indeed, the first node can select the algorithm with the highest priority among the key agreement algorithms supported by the first node, and which is supported by both the first and second nodes. For example, the key agreement algorithms supported by the second node are algorithm A, algorithm B, algorithm C, and algorithm D, with priorities of 4, 3, 2, and 1 respectively (higher values indicate higher priority), and the key agreement algorithms supported by the first node are algorithm B, algorithm D, and algorithm E, with priorities of 1, 2, and 3 respectively (higher values indicate higher priority). In this case, the algorithms supported by both the first and second nodes are algorithm B and algorithm D. At the second node, since algorithm D has a higher priority than algorithm B, the first node selects algorithm D as the algorithm to be used for key agreement.
[0337] Optionally, there may be another configuration for setting priorities. For example, the protocol may specify priorities for various algorithms, and the algorithm to be used may be determined based on the priorities specified in the protocol.
[0338] Optionally, the first message may further include a fresh parameter (fresh value). For ease of distinction, the fresh parameter provided by the first node will be referred to as the first fresh parameter below. The fresh parameter includes at least one of the following: a random number (e.g., NONCE), a count value, a sequence number, etc. In embodiments of this application, an example in which the fresh parameter includes NONCE is used for illustrative purposes. However, this application is applicable to all types of fresh parameters. For ease of explanation, the first fresh parameter is represented by NONCEt.
[0339] Optionally, the first message may further include identification information for the first node. This identification information may include the first node's ID, MAC address, domain name, domain address, or another user-defined identifier, also known as the first node's device identifier.
[0340] Note that in certain scenarios, the first message may be called an access request message (or access request information) or an association request message (or association request information). The names of the messages or information are not limited to those in the embodiments of this application, and only the message content is described and represented as an example, and the names of the messages may be replaced.
[0341] In this application, for the sake of facilitating the explanation of parameter transfer, it should be understood that a first message, a second message, etc., are used as carriers for transporting data. In a particular embodiment of the process, the first message may be one message or multiple messages, and the number of messages contained in the first message is not limited. Similarly, the number of messages contained in the subsequent second message and the number of messages contained in the subsequent third message are not limited. For example, when a first node sends a first key agreement parameter and a first fresh parameter to a second node, the first key agreement parameter may be transported in message 1, and the first fresh parameter may be transported in message 2. In this case, the first message contains message 1 and message 2.
[0342] Step S402: The second node sends a second message to the first node. In response, the first node receives a second message from the second node. The second message contains the second key agreement parameters.
[0343] Specifically, in the embodiments of this application, the key agreement parameters provided by the second node are referred to as the second key agreement parameters. The second key agreement parameters are associated with a second secret key and intermediate parameters, and the intermediate parameters are associated with security parameters and common parameters.
[0344] The second secret key is the secret key determined by the second node. The second secret key may also be a random number generated by the second node. If the first and second nodes optionally agree on a key according to the TBPEKE algorithm, the range of the second secret key is [1, p), where p is the degree of the elliptic curve used by the TBPEKE algorithm, or p is the degree of the group. For a detailed explanation of the security and common parameters, see the relevant explanation in step S401.
[0345] In a possible solution, the second key agreement parameter can be expressed using the following formula: KEg = SKg * b, where b = (U + s * V), where SKg is the second secret key, b is the intermediate parameter, U and V are common parameters, and s is the security parameter. Alternatively, the second key agreement parameter can be expressed using the following formula: KEg = SKg * (U + s * V).
[0346] Optionally, the second message further includes fresh parameters. For ease of explanation, in embodiments of this application, the fresh parameters provided by the second node are referred to as the second fresh parameters and are represented by NONCEg in some embodiments.
[0347] Step S403: The second node obtains the first key based on the first key agreement parameters and the second secret key. The first key is associated with the first key agreement parameters and the second secret key.
[0348] In a possible solution, the second node obtains the first key in the following way: The first key = SKg * KEt, where SKg is the second secret key and KEt is the first key agreement parameter. The first key agreement parameter KEt is given by the following formula: Since KEt = SKt*(U+s*V) is satisfied, the first key K KE The following equation can be satisfied: K KE =SKg*KEt=(SKt.SKg)*(U+s*V).
[0349] For the sake of simplicity, the process of determining the first secret key and the process of computing the first key are described separately above. However, in some specific designs, the aforementioned computing process may be encapsulated in a single computational procedure, where the input to the procedure is the first key agreement parameter and the output of the procedure is the first key.
[0350] Alternatively, the aforementioned procedure for obtaining the first key is demonstrated by the TBPEKE algorithm. Therefore, the aforementioned steps may be expressed alternatively as follows: The second node obtains the first key based on the TBPEKE algorithm and the first key agreement parameters.
[0351] Optionally, the first key may be used further to obtain one or more keys. In possible solutions, the first key can be used to derive encryption keys, integrity keys, identity authentication keys, etc. For example, a second node can compute the key Kgt based on the first key. For example, Kgt = KDF(K KE ,NONCEt,NONCEg) where NONCEt is a fresh parameter provided by the first node and NONCEg is a fresh parameter provided by the second node.
[0352] In possible embodiments, the first key may be used to generate identity authentication information in order to authenticate the identity information of both communication partners.
[0353] For example, a second node can obtain second identity credentials based on the first key, and these second credentials are used to authenticate the identity of the second node and / or to verify whether the keys obtained by agreement between the first and second nodes match. In other words, the second identity credentials are associated with the first key.
[0354] In some possible designs, the second authentication credentials may be further associated with one or more of the following parameters: the key Kgt, PSK, the first fresh parameter, the second fresh parameter, the first message, and the second message. Each of the aforementioned messages may be the entire message or some data within the message. Several possible methods for calculating the second authentication credentials are listed below.
[0355] Calculation method 1: The second authentication information AUTHg is given by AUTHg = AUF(K KE ) satisfies K KE This is the first key. Indeed, K KE In addition, other parameters, such as fresh parameters or messages, may be used to generate AUTHg. For example, AUTHg = AUF(K KE ,NONCEg) satisfies, or AUTHg=AUF(K KE The conditions are met if ,NONCEt) are satisfied, or AUTHg=AUF(K KE The conditions are met (,NONCEt,NONCEg).
[0356] Calculation Method 2: The second authentication information AUTHg satisfies AUTHg = AUF(PSK), where, as specified herein, PSK is the PSK between the second node and the first node. Alternatively, PSK may be a PSK stored in the second node that corresponds to the identification information of the first node.
[0357] Indeed, in addition to PSK, other parameters, such as fresh parameters or messages, may be used further to generate AUTHg. For example, AUTHg may satisfy AUTHg=AUF(PSK,NONCEg), AUTHg=AUF(PSK,NONCEt), or AUTHg=AUF(PSK,NONCEt,NONCEg).
[0358] Calculation method 3: The second authentication information AUTHg is given by AUTHg = AUF(PSK, K KE The conditions (,NONCEg, the first message) are met. For related parameters, please refer to the explanation above.
[0359] Calculation Method 4: Since the output value of the AUF algorithm may have a large number of bits, the second node can select some bits of the output value, resulting in the second authentication information having a uniform and short number of data bits. This can reduce the data size of the second message and improve transmission efficiency. For example, AUTHg = AUF(PSK)|Nビット That is the case.
[0360] N bits may be predefined or preconfigured by the OEM, manufacturer, standard, or user. For example, N bits may be the most significant 32 bits, i.e., AUTHg = AUF(PSK,K KE ,NONCEg,First message)| 最上位32ビット The following conditions are met. For example, N bits may be the least significant 16 bits, and AUTHg is given by AUTHg = AUF(PSK, NONCEg)| 最下位の16ビット It satisfies the condition.
[0361] Calculation Method 5: First Key K KE The authentication key Kauth is obtained based on this, i.e., Kauth = KDF(K KE ) Optionally, the parameters used to generate the Kauth may further include one or more of the following: fresh parameters (e.g., NONCEt or NONCEg), random numbers, PSK, and identification information for the first node.
[0362] An identity authentication key can be used to generate a second set of credentials. Indeed, other parameters, such as fresh parameters or messages, may be used further to generate the second set of credentials. In a possible solution, the second set of credentials AUTHg is given by AUTHg = AUF(Kauth, NONCEg, first message)| Nビット It satisfies the condition.
[0363] It should be understood that the parameter sequence in the algorithm of this application is merely an example. The parameter input sequence may be modified in a particular embodiment of the process. Alternatively, the AUF algorithm used to generate the authentication information may be replaced with another cryptographic algorithm, such as a KDF algorithm, an encryption algorithm, or an authentication algorithm.
[0364] As explained above, the second node uses a PSK in some solutions to obtain the second set of credentials and the second set of key agreement parameters. Below, we will describe two methods for obtaining a PSK as an example.
[0365] Method 1: A correspondence exists between the PSK and the identification information of the first node at the second node. That is, at the second node, the PSK between the first node and the second node can correspond to the identification information of the first node. The second node can obtain the corresponding PSK based on the identification information of the first node and the correspondence (which can be called the first correspondence for ease of distinction).
[0366] Optionally, the correspondence between the PSK and the identification information of the first node may be a pre-configured and predefined correspondence in the second node, or it may be a correspondence stored after the first and second nodes have agreed to generate the PSK. The correspondence may be in one or more forms, such as a correspondence set, a data table, or a database. This is not limited to the present application. Table 2 shows possible correspondence sets between the PSK and the identification information of the first node according to this embodiment of the present application. A correspondence set includes multiple identification information for the first node, corresponding PSKs, and PSK types. For example, for a first node whose identification information is "ID 1", the second node may determine that the PSK corresponding to the first node is "PSK 1" based on a temporary ID "ID 1.1". Furthermore, the types of "PSK 1" are pre-configured.
[0367] [Table 2]
[0368] Note that when the correspondence is pre-configured, the PSK that lies between the second node and the first node and is pre-configured at the second node is the same as the PSK that lies between the first node and the second node and is pre-configured at the first node. If the correspondence is stored after the PSK is generated, the method for generating the PSK by the first node and the parameters used by the first node are the same as the method for generating the PSK by the second node and the parameters used by the second node.
[0369] Method 2: The second node generates a PSK between the second node and the first node. Optionally, the parameters used to generate the PSK may include one or more of the following: the first password, the first fresh parameters, the second fresh parameters, the first node's identification information, the second node's identification information, etc. It should be understood that the parameters used by the second node to generate the PSK should match those used by the first node to generate the PSK.
[0370] In some scenarios, the second message may be called a security context request message (or security context request information).
[0371] Step S404 (optional): The first node obtains the second key based on the second key agreement parameters and the first secret key.
[0372] The second key corresponds to the second key agreement parameter and the first secret key, and is the key obtained by the first node in the key agreement process.
[0373] Specifically, the first secret key is the secret key determined by the first node and is used to obtain the first key agreement parameter in step S401. The first secret key may be a random number generated by the first node. If the first and second nodes optionally agree on a key according to the TBPEKE algorithm, the range of values for the first secret key is [1, p), where p is the degree of the elliptic curve used by the TBPEKE algorithm, or p is the degree of a group, the group being associated with the elliptic curve.
[0374] In a possible solution, the first node obtains the second key in the following way: The second key = SKt * KEg, where SKt is the first secret key and KEg is the second key agreement parameter. The second key agreement parameter KEg is given by the following formula: Since KEg = SKg*(U+s*V) is satisfied, the second key K KE (First key K) KE K KE The (called) can satisfy the following equation: K KE '=SKt*KEg=(SKt.SKg)*(U+s*V).
[0375] K KE =(SKt.SKg)*(U+s*V)=K KE The first and second nodes agree on a consistent key K by exchanging key agreement parameters. KE Obtain it.
[0376] For the sake of simplicity, the process of determining the second secret key and the process of computing the second key are described separately above. However, in some specific designs, the aforementioned computing process may be encapsulated in a single computational procedure, where the input to the procedure is the second key agreement parameter and the output of the procedure is the second key.
[0377] In another possible solution, the aforementioned procedure for obtaining the second key is performed by the TBPEKE algorithm. Therefore, the aforementioned steps may be expressed alternatively as follows: The first node obtains the second key based on the TBPEKE algorithm and the second key agreement parameters.
[0378] Optionally, the second key may be used to obtain one or more keys. In possible solutions, the second key can be used to obtain encryption keys, integrity keys, identity authentication keys, etc.
[0379] For example, the first node can obtain the key Kgt by a calculation based on the second key. For example, Kgt = KDF(K KE ', NONCEt, NONCEg) where NONCEt is a fresh parameter provided by the first node and NONCEg is a fresh parameter provided by the second node.
[0380] In possible embodiments, the first key may be used to generate identity authentication information in order to authenticate the identity information of both communication partners. For example, possible embodiments are shown in steps S405 and S406.
[0381] Step S405 (Optional): The first node sends a third message to the second node. In response, the second node receives the third message from the first node. The third message contains the first authentication information.
[0382] The first set of credentials is used to authenticate the identity of the first node and / or by the second node to verify whether the key obtained by agreement between the second node and the first node matches. The first set of credentials is associated with the second key.
[0383] In some possible designs, the optional parameters used to generate the first credential may further include one or more of the following: key Kgt, PSK, first fresh parameter, second fresh parameter, first message, and second message. Each of the aforementioned messages may be the entire message or any data within the message. Several possible methods for calculating the first credential are listed below.
[0384] Calculation Method 1: The first authentication information AUTHt is given by AUTHt = AUF(K KE ') satisfies K KE ' is the second key. Indeed, K KE In addition, other parameters, such as fresh parameters or messages, may be used to generate AUTHt. For example, AUTHt = AUF(K KE ,NONCEt) satisfies, and AUTHt=AUF(K KE ',NONCEg) satisfies, or AUTHt=AUF(K KE The conditions are met (',NONCEt,NONCEg).
[0385] Calculation method 2: The first authentication information AUTHt satisfies AUTHt = AUF(PSK), where PSK is, in this specification, the PSK between the second node and the first node, or the PSK may be a PSK stored in the first node that corresponds to the identification information of the second node.
[0386] Indeed, in addition to PSK, other parameters, such as fresh parameters or messages, may be used further to generate AUTHt. For example, AUTHt may satisfy AUTHt=AUF(PSK,NONCEg), AUTHt=AUF(PSK,NONCEt), or AUTHt=AUF(PSK,NONCEt,NONCEg).
[0387] Calculation method 3: The first authentication information AUTHt is calculated as AUTHt = AUF(PSK, K KEThe second message satisfies the NONCEt key agreement algorithm capability of the first node. See the previous explanation for relevant parameters.
[0388] Calculation Method 4: Since the output value of the AUF algorithm may have a large number of bits, the first node can select some bits of the output value, resulting in the first authentication information having a uniform and short number of data bits. This can reduce the data size of the third message and improve transmission efficiency. For example, AUTHt = AUF(PSK)| Nビット That is the case.
[0389] N bits may be predefined or preconfigured by the OEM, manufacturer, standard, or user. For example, N bits may be the most significant 32 bits, i.e., AUTHt = AUF(PSK,K KE ', second message, NONCEt, key agreement algorithm capability of the first node | 最上位32ビット The following conditions are met. For example, N bits may be the least significant 16 bits, and AUTHt is given by AUTHt = AUF(PSK, NONCEg)| 最下位の16ビット It satisfies the condition.
[0390] Calculation Method 5: Second Key K KE The authentication key Kauth is obtained based on ', i.e., Kauth = KDF(K KE ') Optionally, the parameters used to generate the Kauth may further include one or more of the following: fresh parameters (e.g., NONCEt or NONCEg), random numbers, PSK, identification information for the first node, etc.
[0391] An identity authentication key can be used to generate the first authentication credentials. Certainly, other parameters, such as fresh parameters or messages, may be used further to generate the first authentication credentials. In a possible solution, the first authentication credentials AUTHt are given by AUTHt = AUF(Kauth, NONCEt, second message, key consensus algorithm capability of the first node)|Nビット It satisfies the condition.
[0392] Alternatively, the AUF algorithm used to generate authentication information may be replaced with another cryptographic algorithm, such as a KDF algorithm, an encryption algorithm, or an authentication algorithm.
[0393] Optionally, if the second message contains the second authentication credentials AUTHg, the first node may verify the second authentication credentials AUTHg based on the second key. If the first node verifies that the second authentication credentials AUTHg are correct, the first node generates the first authentication credentials AUTHt.
[0394] In a possible solution, the second node is acquired by the second node to generate AUTHg, and the second node is acquired by the second node to generate AUTHg. 1 Use the same parameters as those used by the first node. If the verification information matches AUTHg, the first node verifies that the second authentication information AUTHg is correct. If the verification information does not match AUTHg, the verification performed by the first node on the second authentication information AUTHg fails.
[0395] Furthermore, the second message may include further integrity verification information, and the first node may, based on the integrity verification information, message The integrity of the second authentication credentials and the second message can be verified. If the verification of the integrity of the second authentication credentials and the second message is successful, the first node generates the authentication credentials AUTHt.
[0396] The first node may obtain a PSK according to the correspondence, or it may generate a PSK based on parameters. For further details, see the description of the second node in step S402. Details are not described again in this specification.
[0397] In some scenarios, the third message may be called a security context response message (or security context response information).
[0398] Step S406 (Optional): The second node verifies the first authentication credentials based on the first key.
[0399] In the optional solution, the second node should use the same parameters to generate the verification information as the first node used to generate the first credentials. If the verification information is the same as the first credentials, the verification succeeds.
[0400] For example, if the first authentication information AUTHt is AUTHt=AUF(PSK,K KE ', NONCET, second message) | 最上位32ビット If the condition is met, the second node will have the validation information check1=AUF(PSK,K KE (NONCET, second message) 最上位32ビット The following is generated, and if the verification information check1 is the same as AUTHt, the verification is successful.
[0401] In a possible solution, if the verification of the first authentication credentials is successful, the second node sends an association establishment message to the first node. In response, the first node receives the association establishment message and can establish an association with the second node.
[0402] In another possible solution, if verification of the first authentication credentials fails, the second node could disconnect from the first node and discard the first message, or discard the third message, etc. For example, if verification of the first authentication credentials fails, it would be the first key K of the second node. KE The second key K of the first node KEThis indicates that it is different from '. Therefore, the identification information of the first node is unreliable, and the first node may be a node masqueraded by an attacker. In this case, the communication connection between the first node and the second node is severed to prevent access from the unreliable node.
[0403] Optionally, one or more of the first message, second message, third message, association establishment message, etc., may include a Message Authentication Code (MAC). A Message Authentication Code is information (or a subsegment of information) generated using a specific algorithm and may be used to verify the integrity of a segment of the message. Optionally, the Message Authentication Code may be further used for identity authentication. Thus, the receiver can verify the integrity of the message based on the Message Authentication Code.
[0404] Optionally, when a second node determines an encryption key, the association establishment message may be further encrypted using the encryption key to obtain the ciphertext. Correspondingly, the second node determines a decryption key corresponding to the encryption key, and the decryption key may be used to decrypt the ciphertext to obtain the content within the association establishment message.
[0405] In the embodiment shown in Figure 4, the second node first obtains intermediate parameters based on security parameters and common parameters, and uses these intermediate parameters to generate the first key agreement parameters. Security parameters are not directly used to generate the key, nor are security parameters directly used to generate the key agreement parameters. Therefore, even if the security parameters have a small number of bits, the confidentiality of the security parameters can be improved by using common parameters, reducing the possibility of the security parameters being cracked. Correspondingly, the security of the first key is improved. This reduces the possibility of an attacker gaining access to the second node and improves the communication security and data security of the node.
[0406] Furthermore, the security parameters obtained by the first node must match the security parameters of the second node. In this way, the first and second nodes can participate in the generation of consistent keys using consistent security parameters. Specifically, the parameters used by the second node to generate the first key include the second secret key, security parameters (at the first node), common parameters, and the first secret key, and the parameters used by the first node to generate the second key include the first secret key, security parameters (at the second node), common parameters, and the second secret key. Since the parameters used to generate the first key and the parameters used to generate the second key are the same, if the security parameters of the first node and the security parameters of the second node match, the generated first key and the generated second key will match.
[0407] The first node can obtain the first authentication credentials based on the second key, and the second node verifies the authentication credentials based on the first key. If the verification is successful, it indicates that the first key matches the second key, meaning that the second node and the first node have the same security parameters. This indicates that the identity of the second node is trusted.
[0408] When an attacker requests access to a second node, they cannot generate a shared key that matches the security parameters of the second node because they do not possess the same security parameters. Therefore, the attacker cannot access the second node. This prevents the attacker from accessing the second node and prevents the second node from being successfully associated with an attacker who possesses untrustworthy identities.
[0409] The method embodiment shown in Figure 4 includes many possible embodiment solutions. Some of these embodiment solutions are described below with reference to Figures 6, 7A, and 7B, using examples. Note that for any related concepts, operations, or logical relationships not described in Figure 5, please refer to the corresponding descriptions of the embodiments shown in Figure 4.
[0410] Figure 6 is a method flowchart of a possible communication method according to one embodiment of the present application. Furthermore, the method may be implemented based on the architecture shown in Figure 2. The communication method shown in Figure 6 may include steps S601 to S611. For the sake of clarity in the explanation in this application, the sequence S601 to S611 is used for illustrative purposes, but it should be understood that this is not intended to constitute a limitation that the method necessarily takes place in the aforementioned sequence. The execution order, execution time, number of executions, etc., of one or more of the aforementioned steps are not limited to this embodiment of the present application. Specifically, S601 to S611 are as follows:
[0411] Step S601: The first node is T B Select the PEKE algorithm.
[0412] Specifically, the first node determines, from one or more key agreement algorithms, the key agreement algorithm to be used when the first node enters into a key agreement with the second node. For example, the arbitrarily chosen key agreement algorithms include SM2, ECDH (curve25519-based elliptic curve), TBPEKE (SM2-based elliptic curve), and TBPEKE (curve25519-based elliptic curve).
[0413] In a possible solution, the key agreement algorithm selected by the first node is T B It includes the PEKE algorithm, i.e., T B The TBPEKE algorithm is used as an algorithm for key agreement between a first node and a second node. The elliptic curves used by the TBPEKE algorithm include one or more elliptic curves defined by SM2, Curve25519, etc. Thus, the TBPEKE algorithm can include the TBPEKE algorithm using the elliptic curve defined by SM2, the TBPEKE algorithm using Curve25519, and so on. It should be understood that the above is an illustrative description to facilitate the explanation of TBPEKE algorithms using different elliptic curves. Other elliptic curves may be used as alternatives in the process of a particular embodiment. Examples are not enumerated herein.
[0414] If, by choice, the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes a group (or several elements within the group) of order p, and / or two base points within the group, e.g., the first and second base points mentioned above. The group is related to the elliptic curve used by the TBPEKE algorithm.
[0415] In a possible design, the second node adds the key agreement algorithms supported by the second node to the broadcast message. The key agreement algorithms supported by the second node are sorted according to priority, with algorithms having higher priority being ranked highest. The first node selects a key agreement algorithm based on the second node's key agreement algorithm capabilities. In some possible designs, the algorithm selected by the first node is a key agreement algorithm supported by both the first and second nodes, and has the highest priority among the key agreement algorithms supported by the second node.
[0416] Step S602: The first node generates a first private key SKt and computes a public key PKt, which is used as the first key agreement parameter KEt.
[0417] Specifically, the first node generates a random number, uses the random number as the secret key SKt, and 1 ≤ SKt <pである。
[0418] The first node calculates b (intermediate parameter) based on pw (first password) and U and V (common parameters), where b = (U + pw * V). The first node then calculates the public key PKt based on b and the private key SKt, where PKt = SKt * b.
[0419] The first node uses the public key PKt as the first key consensus parameter KEt.
[0420] Step S603: The first node sends an association request message to the second node. The association request message carries the ID of the T node, algorithm instruction information KE alg, the first key agreement parameter KEt, and a random number NONCEt.
[0421] KE alg represents the key agreement algorithm selected by the first node. NONCEt is a random number determined by the first node.
[0422] In response, the second node receives an association request message from the first node.
[0423] Step S604: The second node generates a private key SKg and computes a public key PKg, which is used as the second key agreement parameter KEg.
[0424] Specifically, the second node generates a random number and uses that random number as the secret key SKg, where 1 ≤ SKg <pである。
[0425] The second node calculates b (intermediate parameter) based on pw (first password) and U and V (common parameters), where b = (U + pw * V). The second node then calculates the public key PKg based on b and the private key SKg, where PKg = SKg * b.
[0426] The 2 The node will use the public key PKg. 2 This is used as the key agreement parameter KEg.
[0427] Step S605: The second node determines the first key K based on the secret key SKg and the first key agreement parameter KEt. KE To decide.
[0428] Specifically, the second node obtains the first key in the following way: The first key = SKg * KEt. The first key agreement parameter KEt is given by the following formula: Since KEt = SKt * (U + pw * V) is satisfied, the first key K KE The following equation can be satisfied: K KE =SKg*KEt=(SKt.SKg)*(U+pw*V).
[0429] Optionally, the second node is the first key K. KE Based on this, another derived key may be obtained. For example, the second node may obtain the first key KKE Based on the random numbers NONCEt and NONCEg, a shared key Kgt is generated, i.e., shared key Kgt = KDF(K KE Calculate NONCEt and NONCEg.
[0430] Step S606: The second node is K KE Then, calculate the second authentication information AUTHg based on the PSK.
[0431] The PSK is a shared key between the second node and the first node, and may be generated based on parameters such as a password, or it may be pre-configured.
[0432] In a possible solution, the second set of credentials is obtained by calculation in the following way: AUTHg=AUF(PSK, K KE )| 最上位32ビット .
[0433] In yet another possible solution, the optional parameters used to generate the second credential may further include one or more of the following: key Kgt, PSK, first fresh parameter, second fresh parameter, association request message, and security context request message. For example, the second credential may be obtained by computation in the following way: AUTHg=AUF(PSK, K KE (NONCEg, association request message) 最上位32ビット .
[0434] Optionally, the second node may further generate random numbers NONCEg.
[0435] Step S607: The second node sends a security context request message to the first node. The security context request message carries the second key agreement parameter KEg, the random number NONCEg, and the second authentication information AUTHg.
[0436] In response, the first node receives a security context request message from the second node.
[0437] Step S608: The first node determines the second key K based on the secret key SKt and the second key consensus parameter KEg. KE To decide.
[0438] Specifically, the first node obtains the second key in the following way: The second key = SKt * KEg. The second key agreement parameter KEg is given by the following formula: Since KEg = SKg * (U + pw * V) is satisfied, the second key K KE The following equation can be satisfied: K KE =SKt*KEg=(SKt.SKg)*(U+pw*V).
[0439] First key K KE =(SKt.SKg)*(U+pw*V)=Second key K KE The first and second nodes agree on a consistent key K by exchanging key agreement parameters. KE Obtain it.
[0440] Optionally, the first node is the second key K KE Based on this, another derived key may be obtained. For example, the first node may obtain the second key K KE Based on the random numbers NONCEt and NONCEg, a shared key Kgt is generated, i.e., shared key Kgt = KDF(K KE Calculate NONCEt and NONCEg.
[0441] Step S609: The first node is K KE Then, the first authentication information AUTHt is calculated based on the PSK.
[0442] The PSK is a shared key between the second node and the first node, and may be generated based on parameters such as a password, or it may be pre-configured.
[0443] In a possible solution, the first authentication information is obtained by calculation using the following method: AUTHt = AUF(PSK, K KE )| 最上位32ビット .
[0444] In yet another possible solution, the optional parameters used to generate the first credential may further include one or more of the following: key Kgt, PSK, first fresh parameter, second fresh parameter, association request message, and security context request message. For example, the first credential may be obtained by computation in the following way: AUTHt=AUF(PSK, K KE (Security context request message, NONCEt, second node key agreement algorithm capability) 最上位32ビット .
[0445] In a possible solution, the first node verifies whether the second credential AUTHg is correct, and if the second credential AUTHg is correct, the first node generates the first credential AUTHt.
[0446] Optionally, the security context request message includes integrity verification information. If the first node successfully verifies the integrity of the second authentication credentials AUTHg and the security context request message, the first node generates the first authentication credentials AUTHt.
[0447] Step S610: The first node sends a security context response message to the second node. The security context response message carries the first authentication information AUTHt.
[0448] In response, the second node receives a security context response message from the first node.
[0449] The second node verifies the first authentication credentials AUTHt. If the second node verifies that the first authentication credentials AUTHt are correct, the second node proceeds to step S. 6 Perform step 11.
[0450] Step S611: The second node sends an association establishment message to the first node.
[0451] In a possible solution, the security context response message includes integrity verification information. When the second node successfully verifies the integrity of the first authentication credentials AUTHt and the security context response message, the second node sends an association establishment message to the first node.
[0452] In the embodiment shown in Figure 6, when a first node requests access to a second node, the first node can select the TBPEKE algorithm based on elliptic curve theory to perform key agreement, and the common parameters selected by the first node in the key agreement process are located on the elliptic curve. Due to the discrete logarithm problem of the elliptic curve, it is easy to obtain intermediate parameters by calculation based on the security parameters and common parameters. However, it is difficult to crack the security parameters by obtaining the first key agreement parameters and common parameters. Therefore, the use of the TBPEKE algorithm and common parameters can reduce the possibility of the security parameters being cracked and improve node security.
[0453] When an attacker requests access to a second node, they cannot generate a shared key that matches the security parameters of the second node because they do not possess the same security parameters. Therefore, the attacker cannot access the second node. This prevents the attacker from accessing the second node and prevents the second node from being successfully associated with an attacker who possesses untrustworthy identities.
[0454] Figures 7A and 7B are method flowcharts of yet another possible communication method according to one embodiment of the present application. Furthermore, the method may be implemented based on the architecture shown in Figure 2. The communication method shown in Figures 7A and 7B may include steps S701 to S717. For the sake of clarity in the explanation in this application, the sequence S701 to S717 is used for illustrative purposes, but it should be understood that this is not intended to constitute a limitation that the method necessarily takes place in the sequence described above. The execution order, execution time, number of executions, etc., of one or more of the aforementioned steps are not limited to this embodiment of the present application. Specifically, S701 to S717 are as follows:
[0455] Step S701 (Optional): The first node selects a key agreement algorithm.
[0456] Specifically, the first node determines, from one or more key agreement algorithms, the key agreement algorithm to be used when the first node enters into a key agreement with the second node. For example, the arbitrarily chosen key agreement algorithms include SM2, ECDH (curve25519-based elliptic curve), TBPEKE (SM2-based elliptic curve), and TBPEKE (curve25519-based elliptic curve).
[0457] In a possible solution, the key agreement algorithm selected by the first node is T B It includes the PEKE algorithm, i.e., T BThe TBPEKE algorithm is used as an algorithm for key agreement between a first node and a second node. The elliptic curves used by the TBPEKE algorithm include one or more elliptic curves defined by SM2, Curve25519, etc. Thus, the TBPEKE algorithm can include the TBPEKE algorithm using the elliptic curve defined by SM2, the TBPEKE algorithm using Curve25519, and so on. It should be understood that the above is an illustrative description to facilitate the explanation of TBPEKE algorithms using different elliptic curves. Other elliptic curves may be used as alternatives in the process of a particular embodiment. Examples are not enumerated herein.
[0458] If, by choice, the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes a group (or several elements within the group) of order p, and / or two base points within the group, e.g., the first and second base points mentioned above. The group is related to the elliptic curve used by the TBPEKE algorithm.
[0459] In a possible design, the second node adds the key agreement algorithms supported by the second node to the broadcast message. The key agreement algorithms supported by the second node are sorted according to priority, with algorithms having higher priority being ranked highest. The first node selects a key agreement algorithm based on the second node's key agreement algorithm capabilities. In some possible designs, the algorithm selected by the first node is a key agreement algorithm supported by both the first and second nodes, and has the highest priority among the key agreement algorithms supported by the second node.
[0460] Step S702: The first node generates a random number x and calculates X = x * U.
[0461] Optionally, step S703 is performed when the key agreement algorithm is TB This is done when using the PEKE algorithm. U is a predefined base point.
[0462] By choice, U belongs to a group of order p (where p may be a prime number), and the elliptic curve corresponding to the group is the elliptic curve used by the key agreement algorithm selected by the first node. For example, when the first node selects the TBPEKE (SM2-based elliptic curve) algorithm, U belongs to a point in the group (i.e., the second base point) associated with an SM2-based elliptic curve of order p.
[0463] Optionally, the first node may send information about a selected elliptic curve to the second node in order to describe the elliptic curve associated with the first common parameter.
[0464] Step 703 (Optional): The first node sends instructions for the key agreement algorithm to the second node. In response, the second node receives instructions for the key agreement algorithm from the first node.
[0465] For example, the key agreement algorithm selected by the first node is shown by KEalg.
[0466] Alternatively, the first node can send the key agreement algorithm supported by the first node to the second node. In response, the second node can obtain the key agreement algorithm selected by the first node using the same selection method as the first node.
[0467] Step S704: The first node sends X to the second node. In response, the second node receives X from the first node.
[0468] Optionally, X and the instructions for the key agreement algorithm may be carried in the same message, or they may be sent using different messages.
[0469] Step S705: The second node generates a random number y, calculates Y=y*U, and calculates V=y*X.
[0470] Step S706: The second node generates a private key SKg and computes a public key PKg, which is used as the second key agreement parameter KEg.
[0471] Specifically, the second node generates a random number and uses that random number as the secret key SKg, where 1 ≤ SKg <pである。
[0472] The second node calculates b (intermediate parameter) based on pw (first password) and U and V (common parameters), where b = (U + pw * V). The second node then calculates the public key PKg based on b and the private key SKg, where PKg = SKg * b.
[0473] The 2 The node will use the public key PKg. 2 This is used as the key agreement parameter KEg.
[0474] Step S707: The second node sends Y to the first node. In response, the first node receives Y from the second node.
[0475] Step S708: The first node calculates V = x * Y.
[0476] Step S709: Generate a private key SKt and compute a public key PKt, which is used as the first key agreement parameter KEt.
[0477] Specifically, the first node generates a random number, uses the random number as the secret key SKt, and 1 ≤ SKt <pである。
[0478] The first node calculates b (intermediate parameter) based on pw (the first password), as well as U and V (common parameters), and b = (U + pw * V). The first node calculates the public key PKt based on b and the secret key SKt, where PKt = SKt * b.
[0479] The first node uses the public key PKt as the first key agreement parameter KEt.
[0480] Step S710: The first node sends an association request message to the second node. The association request message carries the first key agreement parameter KEt, a random number NONCEt, the ID of node T (optional), and the indication information KE alg of the algorithm (optional).
[0481] NONCEt is a random number determined by the first node.
[0482] Correspondingly, the second node receives the association request message from the first node.
[0483] Step S711: The second node determines the first key K KE based on the secret key SKg and the first key agreement parameter KEt.
[0484] Specifically, the second node obtains the first key in the following way: The first key = SKg * KEt. Since the first key agreement parameter KEt satisfies the following formula, KEt = SKt * (U + pw * V), the first key K KE can satisfy the following formula: K KE = SKg * KEt = (SKt.SKg) * (U + pw * V).
[0485] Optionally, the second node may further obtain another derived key based on the first key K KE For example, the second node may, based on the first key K KE, calculate the shared key Kgt, that is, the shared key Kgt = KDF(K KE , NONCEt, NONCEg).
[0486] Optionally, step S706 may be performed when (or after) step S711 is performed.
[0487] Step S712: The second node calculates the second authentication information AUTHg based on K KE and PSK.
[0488] PSK is a shared key between the second node and the first node, and may be generated based on parameters such as a password or may be pre-configured.
[0489] In a possible solution, the second authentication information is obtained by calculation in the following manner: AUTHg = AUF(PSK, K KE )| 最上位32ビット .
[0490] In yet another possible solution, the optional parameters used to generate the second authentication information may further include one or more of the key Kgt, PSK, the first freshness parameter, the second freshness parameter, the association request message, and the security context request message. For example, the second authentication information is obtained by calculation in the following manner: AUTHg = AUF(PSK, K KE , NONCEg, association request message)| 最上位32ビット .
[0491] Optionally, the second node may further generate the random number NONCEg.
[0492] Step S713: The second node sends a security context request message to the first node. The security context request message carries the second key agreement parameter KEg, the random number NONCEg, and the second authentication information AUTHg.
[0493] In response, the first node receives a security context request message from the second node.
[0494] Step S714: The first node determines the second key K based on the secret key SKt and the second key consensus parameter KEg. KE To decide.
[0495] Specifically, the first node obtains the second key in the following way: The second key = SKt * KEg. The second key agreement parameter KEg is given by the following formula: Since KEg = SKg * (U + pw * V) is satisfied, the second key K KE The following equation can be satisfied: K KE =SKt*KEg=(SKt.SKg)*(U+pw*V).
[0496] First key K KE =(SKt.SKg)*(U+pw*V)=Second key K KE The first and second nodes agree on a consistent key K by exchanging key agreement parameters. KE Obtain it.
[0497] Optionally, the first node is the second key K KE Based on this, another derived key may be obtained. For example, the first node may obtain the second key K KE Based on the random numbers NONCEt and NONCEg, a shared key Kgt is generated, i.e., shared key Kgt = KDF(K KE Calculate NONCEt and NONCEg.
[0498] Step S715: The first node is K KEThen, the first authentication information AUTHt is calculated based on the PSK.
[0499] The PSK is a shared key between the second node and the first node, and may be generated based on parameters such as a password, or it may be pre-configured.
[0500] In a possible solution, the first authentication information is obtained by calculation using the following method: AUTHt = AUF(PSK, K KE )| 最上位32ビット .
[0501] In yet another possible solution, the optional parameters used to generate the first credential may further include one or more of the following: key Kgt, PSK, first fresh parameter, second fresh parameter, association request message, and security context request message. For example, the first credential may be obtained by computation in the following way: AUTHt=AUF(PSK, K KE (Security context request message, NONCEt, second node key agreement algorithm capability) 最上位32ビット .
[0502] In a possible solution, the first node verifies whether the second credential AUTHg is correct, and if the second credential AUTHg is correct, the first node generates the first credential AUTHt.
[0503] Optionally, the security context request message includes integrity verification information. If the first node successfully verifies the integrity of the second authentication credentials AUTHg and the security context request message, the first node generates the first authentication credentials AUTHt.
[0504] Step S716: The first node sends a security context response message to the second node. The security context response message carries the first authentication information AUTHt.
[0505] In response, the second node receives a security context response message from the first node.
[0506] The second node verifies the first authentication credentials AUTHt. If the second node verifies that the first authentication credentials AUTHt are correct, the second node proceeds to step S. 7 Perform step 11.
[0507] Step S717 (optional): The second node sends an association establishment message to the first node.
[0508] In a possible solution, the security context response message includes integrity verification information. When the second node successfully verifies the integrity of the first authentication credentials AUTHt and the security context response message, the second node sends an association establishment message to the first node.
[0509] In the embodiments shown in Figures 7A and 7B, the first and second nodes obtain common parameters U and V by exchanging random numbers and using an elliptic curve defined by the TBPEKE algorithm. When the first node requests access to the second node, the first node can select the TBPEKE algorithm based on elliptic curve theory to perform key agreement and generate key agreement parameters in the key agreement process using U and V. Due to the discrete logarithm problem of elliptic curves, it is easy to obtain intermediate parameters by calculations based on security parameters and common parameters. However, it is difficult to crack the security parameters by obtaining the first key agreement parameters and common parameters. Therefore, the use of the TBPEKE algorithm and common parameters can reduce the possibility of the security parameters being cracked and improve node security.
[0510] When an attacker requests access to a second node, they cannot generate a shared key that matches the security parameters of the second node because they do not possess the same security parameters. Therefore, the attacker cannot access the second node. This prevents the attacker from accessing the second node and prevents the second node from being successfully associated with an attacker who possesses untrustworthy identities.
[0511] In the embodiments shown in Figures 6, 7A, and 7B, the first password pw may be replaced with a PSK.
[0512] The above describes in detail the method according to the embodiment of this application. The following provides the apparatus according to the embodiment of this application.
[0513] To implement the functions in the embodiments of the method described herein, it will be understood that the multiple devices provided in the embodiments of this application, such as communication devices, include corresponding hardware structures, corresponding hardware structure software units, or combinations of hardware structures and software structures for performing the functions. Those skilled in the art will readily recognize, in combination with the examples described in the embodiments disclosed herein, that the units, algorithms, and steps may be implemented by the hardware or combinations of hardware and computer software in the embodiments of this application. Whether the functions are performed by hardware or by hardware driven by computer software depends on the specific application and design constraints of the technical solution. Those skilled in the art may implement the embodiments of the method described herein by using different device embodiments in different usage scenarios, but it should not be considered that different embodiments of the device exceed the scope of the embodiments of this application.
[0514] In embodiments of this application, the device may be divided into functional units. For example, functional units may be obtained by division based on corresponding functions, or two or more functions may be integrated into a single functional unit. The integrated module may be implemented in hardware form or in the form of a software functional unit. Note that in embodiments of this application, the division into units is illustrative and merely a logical division of functions. In actual embodiments, other division methods may be used.
[0515] The following are some possible devices.
[0516] The above describes in detail the method according to the embodiment of this application. The following provides the apparatus according to the embodiment of this application.
[0517] Figure 8 shows the structure of a communication device 80 according to one embodiment of the present application. Optionally, the communication device 80 may be an independent device, such as a node. Alternatively, the communication device 80 may be a component within an independent device (e.g., a node), such as a chip or an integrated circuit.
[0518] The communication device 80 may include one or more of the receiving unit 801, the transmitting unit 802, and the processing unit 803. The communication device 80 is configured to implement the aforementioned communication method, for example, the communication method shown in Figures 4, 6, or 7A and 7B.
[0519] In a possible design, the communication device 80 includes a receiving unit 801, a transmitting unit 802, and a processing unit 803, and the communication device 80 is configured to implement the second node-side method in the embodiments described above.
[0520] In a possible embodiment, the receiving unit 801 is configured to receive a first message from a first node, the first message comprising a first key agreement parameter, the first key agreement parameter being associated with a first secret key and an intermediate parameter, the intermediate parameter being associated with a security parameter and at least one common parameter, the security parameter being a first password or a pre-shared key PSK between the first node and the second node, and the first password being an agreed-upon access password between the first node and the second node.
[0521] The transmitting unit 802 is further configured to send a second message to the first node, the second message containing a second key agreement parameter, the second key agreement parameter being associated with a second secret key and intermediate parameters.
[0522] The processing unit 803 is configured to obtain a first key based on a first key agreement parameter and a second secret key.
[0523] In yet another possible embodiment, the receiving unit 801 is further configured to receive a third message from the first node, the third message containing first authentication information, the first authentication information being associated with a second key, the second key being associated with a second key agreement parameter and a first secret key.
[0524] The processing unit 803 is further configured to verify the first authentication information based on the first key.
[0525] In yet another possible embodiment, the first key is used to retrieve one or more keys.
[0526] In possible solutions, the first key is used to derive encryption keys, integrity keys, identity authentication keys, etc.
[0527] In yet another possible embodiment, the transmitting unit 802 is: If the verification of the first authentication information is successful, an association establishment message is sent to the first node. It is further structured in this way.
[0528] In yet another possible embodiment, the transmitting unit 802 is: When the verification of the integrity of the first authentication information and the third message is successful, an association establishment message is sent to the first node. It is further structured in this way.
[0529] In yet another possible embodiment, the receiving unit 801 is: The first node receives instruction information for the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm. It is further structured in this way.
[0530] Optionally, the instruction information for the key agreement algorithm includes the instruction information for the first key agreement algorithm, and the instruction information for the first key agreement algorithm indicates the TBPEKE algorithm.
[0531] In yet another possible embodiment, at least one common parameter includes a first common parameter and a second common parameter.
[0532] The first and second common parameters are associated with the first elliptic curve, which is the elliptic curve corresponding to the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm.
[0533] In yet another possible embodiment, the first common parameter and the second common parameter belong to points on the first elliptic curve.
[0534] In yet another possible embodiment, the first common parameter is predefined, and the second common parameter is determined based on the first common parameter, a first random number, and a second random number, where the first random number originates from a first node and the second random number originates from a second node.
[0535] In possible embodiments, at least one common parameter includes at least one base point, the at least one base point belongs to a group of order p, where p is a prime number.
[0536] Optionally, the group may be a cyclic group or a cyclic subgroup associated with an operation on the first elliptic curve.
[0537] Optionally, in some scenarios, the base point may be replaced by a generator.
[0538] In yet another possible embodiment, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes some or all of the elements in a group whose order is p, where p is a prime number.
[0539] The base point (or generator) of a subgroup with order p is U. For a selected number d, if the range of values for d is [1, p-1], then dU is included in the group.
[0540] Optionally, at least one common parameter includes the base point U. Furthermore, optionally, at least one common parameter further includes V obtained by performing an operation on U, where V = dU, and d is in the range [1, p-1].
[0541] In yet another possible embodiment, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes two points in the group whose order is p.
[0542] Optionally, the two points may be two base points. Alternatively, one of the two points may be a base point, and the other a second base point obtained by calculation based on the base point. For ease of explanation, in this application, the two points will be referred to as the first base point and the second base point.
[0543] In yet another possible embodiment, if the selected key agreement algorithm is the TBPEKE algorithm, the common parameters of the TBPEKE algorithm include a cyclic group whose order is a prime number p, and two independent base points U and V within the group.
[0544] It should be understood that "independence" means that U and V are two points with different values, and is not intended to constitute a limitation that there is no relationship between U and V.
[0545] In yet another possible embodiment, the receiving unit 801 is further configured to receive a first calculated value from a first node, the first calculated value relating to a first random number and a first common parameter, the first random number being determined by the first node and the first common parameter being predefined based on the TBPEKE algorithm.
[0546] The processing unit 803 is further configured to determine a second common parameter based on a second random number and a first calculated value.
[0547] The transmitting unit 802 is further configured to transmit a second calculated value to the first node, the second calculated value being associated with a second random number and a first common parameter, and the second calculated value being used by the first node to determine the second common parameter.
[0548] Optionally, the first common parameter is the first base point mentioned above, and the second common parameter is the second base point mentioned above.
[0549] In yet another possible embodiment, the intermediate parameter satisfies the following equation. b = U + s * V, in the equation, b is an intermediate parameter, U and V are at least one common parameter, s is a security parameter, "*" is an elliptic curve point multiplication operation, and "+" is an elliptic curve point addition operation.
[0550] In possible embodiments, U is the first base point and V is the second base point. Furthermore, U and V belong to a group of order p, where p is a prime number. The operation on the group is the operation on the first elliptic curve.
[0551] The first elliptic curve is the elliptic curve used by the selected key agreement algorithm. For example, if the selected key agreement algorithm is the TBPEKE algorithm, the first elliptic curve may be an elliptic curve defined by SM2, Curve25519, etc.
[0552] In yet another possible embodiment, the first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation: The first key = SKg*KEt = SKg*(SKt*b) = (SKt.SKg)*(U+s*V), The second key agreement parameter KEg satisfies the following equation: KEg = SKg * b, The second key satisfies the following equation: The second key = SKt*KEg = SKt*(SKg*b) = (SKt.SKg)*(U+s*V), in the formula, SKt is the first secret key, SKg is the second secret key, and "." represents the multiplication operation.
[0553] In yet another possible embodiment, the range of values for the first secret key (SKt) is [1, p), and the range of values for the second secret key (SKg) is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
[0554] In yet another possible embodiment, the transmitting unit 802 is: Broadcast the key agreement algorithm capability of the second node, where the key agreement algorithm capability of the second node represents the key agreement algorithm supported by the second node. It is further structured in this way.
[0555] In yet another possible embodiment, the key agreement algorithms supported by the first node are sorted according to priority.
[0556] In yet another possible embodiment, the first message further includes the first fresh parameter. , the The authentication information for node 1 is associated with the pre-shared key (PSK) between the first and second nodes, the second key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability.
[0557] In yet another possible embodiment, the processing unit 803 is: The first authentication credentials are verified based on the PSK between the first and second nodes, the first key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability. It is further configured in this way.
[0558] In yet another possible embodiment, the second message further includes second authentication information and second fresh parameters, and the processing unit, Obtain second authentication credentials based on the PSK between the first and second nodes, the first key, the second new parameter, and the first message. It is further configured in this way.
[0559] In yet another possible embodiment, the first message further includes a first fresh parameter, the second message further includes a second fresh parameter, and the processing unit 803, Obtain the third key based on the first key, the first fresh parameter, and the second fresh parameter. It is further configured in this way.
[0560] In yet another possible embodiment, the PSK is pre-configured or pre-defined, or obtained based on a first password.
[0561] In yet another possible embodiment, the processing unit 803 is: Obtain the PSK between the first node and the second node according to the first correspondence. It is further configured in this way.
[0562] It can be seen that the second node can store the correspondence between the PSK and the first node in the form of a correspondence. Therefore, the PSK between the first node and the second node can be obtained according to the correspondence.
[0563] In yet another possible embodiment, the processing unit is: Based on the first password, the first fresh parameter, and the second fresh parameter, the PSK between the first and second nodes is determined. It is further configured in this way.
[0564] In a possible design, the PSK is determined based on a first password, a first key, a first fresh parameter, and a second fresh parameter.
[0565] In a possible design, the communication device 80 includes a receiving unit 801 and a transmitting unit 802, and the communication device 80 is configured to implement the first node-side method in the embodiment described above.
[0566] In a possible embodiment, the transmitting unit 802 is configured to send a first message to a second node, the first message including a first key agreement parameter, the first key agreement parameter being associated with a first secret key and an intermediate parameter, the intermediate parameter being associated with a security parameter and at least one common parameter, the security parameter being a first password or a pre-shared key (PSK) between the first and second nodes, and the first password being an agreed-upon access password between the first and second nodes.
[0567] The receiving unit 801 is configured to receive a second message from a second node, the second message containing a second key agreement parameter, the second key agreement parameter being associated with a second secret key and intermediate parameters.
[0568] The processing unit 803 is configured to obtain a second key based on a second key agreement parameter and a first secret key.
[0569] In a possible embodiment, the transmitting unit 802 is further configured to transmit a third message to a first node, the third message containing first authentication information, the first authentication information being associated with a second key.
[0570] In yet another possible embodiment, the second key is used to retrieve one or more keys.
[0571] In possible solutions, the second key is used to derive encryption keys, integrity keys, identity authentication keys, etc.
[0572] In yet another possible embodiment, the receiving unit 801 is: Receive association establishment message from the second node. It is further configured in this way.
[0573] In yet another possible embodiment, the communication device further includes a processing unit 803, the processing unit 803 is A first key agreement algorithm is selected based on the key agreement algorithm capability of the second node, where the key agreement algorithm capability of the second node can indicate one or more key agreement algorithms supported by the second node. It is structured in this way.
[0574] In yet another possible embodiment, the transmitting unit 802 is further configured to transmit instruction information for a key agreement algorithm to a second node, where the instruction information for the key agreement algorithm indicates the TBPEKE two-base password exponential key exchange algorithm.
[0575] Multiple TBPEKE algorithms may exist, as different elliptic curves are used at will. For example, a TBPEKE algorithm may include one or more elliptic curves defined by SM2, Curve25519, etc. Therefore, a TBPEKE algorithm could include a TBPEKE algorithm that uses an elliptic curve defined by SM2, a TBPEKE algorithm that uses Curve25519, and so on.
[0576] In yet another possible embodiment, at least one common parameter includes a first common parameter and a second common parameter.
[0577] The first and second common parameters are associated with the first elliptic curve, which is the elliptic curve corresponding to the key agreement algorithm, and the key agreement algorithm includes the TBPEKE algorithm.
[0578] In yet another possible embodiment, the first common parameter and the second common parameter belong to points on the first elliptic curve.
[0579] In yet another possible embodiment, the first common parameter is predefined, and the second common parameter is determined based on the first common parameter, a first random number, and a second random number, where the first random number originates from a first node and the second random number originates from a second node.
[0580] In possible embodiments, at least one common parameter includes at least one base point, the at least one base point belongs to a group of order p, where p is a prime number.
[0581] Optionally, the group may be a cyclic group or a cyclic subgroup associated with an operation on the first elliptic curve.
[0582] Optionally, in some scenarios, the base point may be replaced by a generator.
[0583] In yet another possible embodiment, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes some or all of the elements in a group whose order is p, where p is a prime number.
[0584] The base point (or generator) of a subgroup with order p is U. For a selected number d, if the range of values for d is [1, p-1], then dU is included in the group.
[0585] Optionally, at least one common parameter includes the base point U. Furthermore, optionally, at least one common parameter further includes V obtained by performing an operation on U, where V = dU, and d is in the range [1, p-1].
[0586] In yet another possible embodiment, if the selected key agreement algorithm is the TBPEKE algorithm, then at least one common parameter includes two points in the group whose order is p.
[0587] Optionally, the two points may be two base points. Alternatively, one of the two points may be a base point, and the other a second base point obtained by calculation based on the base point. For ease of explanation, in this application, the two points will be referred to as the first base point and the second base point.
[0588] In yet another possible embodiment, if the selected key agreement algorithm is the TBPEKE algorithm, the common parameters of the TBPEKE algorithm include a cyclic group whose order is a prime number p, and two independent base points U and V within the group.
[0589] It should be understood that "independence" means that U and V are two points with different values, and is not intended to constitute a limitation that there is no relationship between U and V.
[0590] In yet another possible embodiment, the transmitting unit 802 is further configured to transmit a first calculated value to a second node, the first calculated value being associated with a first random number and a first common parameter, the first random number being determined by the first node and the first common parameter being predefined.
[0591] The receiving unit 801 is further configured to receive a second calculated value from a second node, the second calculated value relating to a second random number and a first common parameter.
[0592] The processing unit 803 is configured to determine a second common parameter based on a second random number and a first calculated value.
[0593] Optionally, the first common parameter is the first base point described above, and the second common parameter is the second base point described above. In yet another possible embodiment, the intermediate parameter satisfies the following equation. b = U + s * V, in the equation, b is an intermediate parameter, U and V are at least one common parameter, s is a security parameter, "*" is an elliptic curve point multiplication operation, and "+" is an elliptic curve point addition operation.
[0594] In possible embodiments, U is the first base point and V is the second base point. Furthermore, U and V belong to a group of order p, where p is a prime number. The operation on the group is the operation on the first elliptic curve.
[0595] The first elliptic curve is the elliptic curve used by the selected key agreement algorithm. For example, if the selected key agreement algorithm is the TBPEKE algorithm, the first elliptic curve may be an elliptic curve defined by SM2, Curve25519, etc.
[0596] In yet another possible embodiment, the first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation: The first key = SKg*KEt = SKg*(SKt*b) = (SKt.SKg)*(U+s*V), The second key agreement parameter KEg satisfies the following equation: KEg = SKg * b, The second key satisfies the following equation: The second key = SKt*KEg = SKt*(SKg*b) = (SKt.SKg)*(U+s*V), in the formula, SKt is the first secret key, SKg is the second secret key, and "." represents the multiplication operation.
[0597] In yet another possible embodiment, the range of values for the first secret key (SKt) is [1, p), and the range of values for the second secret key (SKg) is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
[0598] In yet another possible embodiment, the receiving unit 801 is: It belongs to the second node, receives the key agreement algorithm capability transmitted by the second node, and the key agreement algorithm capability of the second node represents the key agreement algorithm supported by the second node. It is further structured in this way.
[0599] In yet another possible embodiment, the key agreement algorithms supported by the first node are sorted according to priority.
[0600] In yet another possible embodiment, the first message further includes the first fresh parameter. , the The authentication information for node 1 is associated with the pre-shared key (PSK) between the first and second nodes, the second key, the second message, the first fresh parameters, and the second node's key consensus algorithm capability.
[0601] In yet another possible embodiment, the second message further includes second authentication information and a second fresh parameter, the second authentication information being associated with the PSK between the first node and the second node, the first key, the second fresh parameter, and the first message.
[0602] In yet another possible embodiment, the processing unit 803 is: The second authentication information is verified based on the PSK, second key, second fresh parameters, and first message between the first node and the second node. If the verification of the second set of credentials and the integrity of the second message is successful, the first set of credentials is generated. It is further configured in this way.
[0603] In possible embodiments, the first message further includes a first fresh parameter, the second message further includes a second fresh parameter, and the processing unit 803, Obtain the second key, the first fresh parameter, and the fourth key based on the second fresh parameter. It is further configured in this way.
[0604] In possible embodiments, the PSK is either pre-configured or pre-defined, or obtained based on a first password.
[0605] In yet another possible embodiment, the processing unit 803 is: Obtain the PSK between the first node and the second node according to the second correspondence. It is further configured in this way.
[0606] In yet another possible embodiment, the processing unit 803 is: Based on the first password, the first fresh parameter, and the second fresh parameter, the PSK between the first and second nodes is determined. It is further configured in this way.
[0607] Figure 9 shows the structure of a possible communication device 90 according to one embodiment of this application.
[0608] The communication device 90 may be an independent device such as a vehicle, drone, or robot, or it may be a component included in an independent device, such as a chip, software module, or integrated circuit. The communication device 90 may include at least one processor 901 and a communication interface 902. Optionally, the communication device 90 may further include at least one memory 903. Also, optionally, the communication device 90 may further include a connection line 904. The processor 901, the communication interface 902, and / or the memory 903 are connected via the connection line 904 and communicate with each other via the connection line 904 to transmit control and / or data signals. Optionally, the communication device 90 may further include one or more of the following: a sensing module, an output module, etc. (not shown).
[0609] Specifically, the following will be provided:
[0610] (1) The processor 901 is a module for performing arithmetic and / or logical operations and may specifically include one or more of the following devices: CPU, MCU, GPU, MPU, ASIC, FPGA, CPLD, coprocessor (which assists the central processing unit in completing corresponding processes and applications), NPU, etc.
[0611] (2) The communication interface 902 may be configured to provide information input or output for at least one processor. In some possible scenarios, the communication interface 902 may include an interface circuit and / or may be configured to receive data transmitted from an external source and / or transmit data to an external source. For example, the communication interface 902 may include a wired link interface such as an Ethernet cable, or it may be a wireless link interface (such as Wi-Fi, Bluetooth, Universal Wireless Transmission, Automotive Short-Range Communication Technology, or other Short-Range Wireless Communication Technology). Optionally, the communication interface 902 may further include a transmitter (e.g., a radio frequency transmitter or antenna), a receiver, etc., coupled to the interface.
[0612] If the communication device 90 is an independent device, the communication interface 902 may include a receiver and a transmitter. The receiver and transmitter may be the same component or different components. When the receiver and transmitter are the same component, the component may be called a transceiver.
[0613] Optionally, if the communication device 90 is a chip or circuit, the communication interface 902 may include an input interface and an output interface. The input interface and the output interface may be the same interface or different interfaces.
[0614] Optionally, the functions of the communication interface 902 may be implemented using a transceiver circuit or a dedicated transceiver chip, and the processor 901 may be implemented using a dedicated processing chip, processing circuit, processor, or general-purpose chip.
[0615] (3) The memory 903 is configured to provide a storage space, which can store data such as an operating system and computer programs. The memory 903 may be one or a combination of random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), compact disc read-only memory (CD-ROM), etc.
[0616] The functions and operations of the modules or units within the communication device 90 listed above are merely illustrative examples.
[0617] The functional units within the communication device 90 may be configured to implement the aforementioned communication methods, for example, the communication methods shown in Figures 4, 6, or 7A and 7B. Detailed descriptions are omitted in this specification to avoid repetition.
[0618] Optionally, processor 901 may be a processor specifically configured to perform the aforementioned method (referred to as a dedicated processor for ease of distinction), or a processor that performs the aforementioned method by calling a computer program (referred to as a dedicated processor for ease of distinction). Optionally, at least one processor may further include both a dedicated processor and a general-purpose processor.
[0619] If the communication device 90 optionally includes at least one memory 903, and the processor 901 implements the aforementioned communication method by calling a computer program, the computer program may be stored in the memory 903.
[0620] One embodiment of this application further provides a chip system. The chip system includes a processor and a communication interface. The communication interface is configured to receive and / or transmit data, and / or to provide inputs and / or outputs for the processor. The chip system is configured to implement the aforementioned communication methods, for example, the methods of Figures 4, 6, or 7A and 7B.
[0621] One embodiment of the present application further provides a computer-readable storage medium. The computer-readable storage medium stores instructions. When the instructions are executed on at least one processor, the aforementioned communication method, for example, the method of Figures 4, 6, or 7A and 7B, is carried out.
[0622] One embodiment of this application further provides a computer program product. The computer program product includes computer instructions, the calculation instructions being used to implement the aforementioned communication methods, for example, the methods of Figures 4, 6, or 7A and 7B.
[0623] In the embodiments of this application, it should be noted that the words “example” or “for example” indicate that an example, illustration, or explanation is being given. No embodiment or design described as “example” or “for example” in this application should be described as preferable to another embodiment or design, or as having more advantages than another embodiment or design. More precisely, the use of words such as “example” or “for example” is intended to present relative concepts in a specific way.
[0624] In embodiments of this application, “at least one” means one or more, and “multiple” means two or more. “At least one of the following items” or similar expressions means any combination of these items, including any single item or any combination of multiple items.
[0625] For example, at least one of a, b, or c can represent a, b, c, (a and b), (a and c), (b and c), or (a, b, and c), where a, b, and c may be singular or plural. The term "and / or" describes an association between related objects and indicates that three relationships may exist. For example, A and / or B can represent the following three cases: that only A exists, that both A and B exist, and that only B exists, where A and B may be singular or plural. The letter " / " generally indicates an "or" relationship between related objects.
[0626] Furthermore, unless otherwise specified, ordinal numbers such as "first" and "second" in the embodiments of this application are used to distinguish between multiple objects, but are not intended to limit the order, chronology, priority, or importance of the multiple objects. For example, the terms "first device" and "second device" are used simply to facilitate explanation and do not indicate any difference between the first and second devices in terms of structure or importance. In some embodiments, the first and second devices may be the same device by alternative means.
[0627] Depending on the context, the term “when” as used in the embodiments described above may be interpreted as “in the case of,” “after,” “in response to a decision,” or “in response to detection.” The foregoing description is merely an optional embodiment of this application and is not intended to limit it. Any modifications, equivalent substitutions, improvements, etc., made within the scope of the ideas and principles of this application shall be within the scope of protection of this application.
[0628] Those skilled in the art will understand that all or part of the steps of the embodiment may be carried out by hardware or a program that instructs related hardware. The program may be stored on a computer-readable storage medium, such as read-only memory, a magnetic disk, or an optical disk. [Explanation of Symbols]
[0629] 80 Communication equipment 90 Communication equipment 201 First Node 202 Second Node 301 Smartphone 801 Receiving Unit 802 Transmitter Unit 803 Processing Unit 901 Processor 902 Communication Interface 903 memory 904 connection line
Claims
1. A communication method at a second node, wherein the communication method is: A step of receiving a first message from a first node, wherein the first message includes a first key agreement parameter, the first key agreement parameter is associated with a first secret key and an intermediate parameter, the intermediate parameter is associated with a security parameter and at least one common parameter, the security parameter is a first password or a pre-shared key (PSK) between the first node and the second node, and the first password is an agreed-upon access password between the first node and the second node. A step of sending a second message to the first node, wherein the second message includes a second key agreement parameter, and the second key agreement parameter is associated with a second secret key and the intermediate parameter. A step of obtaining a first key based on the first key agreement parameter and the second secret key, A communication method including, A step of receiving a third message from the first node, wherein the third message includes first authentication information, the first authentication information is associated with a second key, and the second key is associated with the second key agreement parameter and the first secret key. A step of verifying the first authentication information based on the first key, A communication method that further includes this.
2. The communication method according to claim 1, wherein the first key is used to obtain one or more of the following: an encryption key, an integrity key, or an identity authentication key.
3. Step 1: When the verification of the integrity of the first authentication information and the third message is successful, send an association establishment message to the first node. The communication method according to claim 1, further comprising:
4. The at least one common parameter includes a first common parameter and a second common parameter, The first common parameter and the second common parameter are associated with a first elliptic curve, the first elliptic curve is the elliptic curve corresponding to a first key agreement algorithm, and the first key agreement algorithm is the 2-basis password exponential key exchange (TBPEKE) algorithm. The communication method described in claim 1.
5. The aforementioned intermediate parameter satisfies the following equation, b = U + s * V, where, b is the intermediate parameter, U and V are the at least one common parameter, s is the security parameter, * is the elliptic curve point multiplication operation, and + is the elliptic curve point addition operation. The communication method according to claim 4.
6. The communication method according to claim 4, wherein the at least one common parameter includes a cyclic group whose order is a prime number p, and two independent base points U and V within the cyclic group.
7. The first key agreement parameter KEt satisfies the following equation: KEt = SKt * b, The first key satisfies the following equation, The first key = SKg * KEt, The second key agreement parameter KEg satisfies the following equation: KEg = SKg * b, The second key satisfies the following equation, The second key is SKt * KEg, SKt is the first private key, and SKg is the second private key. The communication method according to claim 5.
8. The communication method according to claim 4, wherein the range of values for the first secret key is [1, p), and the range of values for the second secret key is [1, p), where p is the order of the elliptic curve used by the TBPEKE algorithm.
9. Prior to the step of receiving the first message from the first node, the communication method: A step of broadcasting the key agreement algorithm capability of the second node, wherein the key agreement algorithm capability of the second node represents a key agreement algorithm supported by the second node. The communication method according to claim 1, further comprising:
10. The communication method according to claim 9, wherein the key agreement algorithms supported by the second node are sorted according to priority.
11. The first message further includes a first fresh parameter, The first authentication information is associated with the PSK, the second key, the second message, the first fresh parameter, and the key consensus algorithm capability of the second node. The step of verifying the first authentication information based on the first key is A step of verifying the first authentication information based on the PSK, the first key, the second message, the first fresh parameter, and the key consensus algorithm capability of the second node, The communication method according to claim 1, including the method described in claim 1.
12. The second message further includes second authentication information and second fresh parameters, and the communication method is Steps to obtain second authentication information based on the PSK, the first key, the second fresh parameter, and the first message. The communication method according to claim 1, further comprising:
13. A communication device comprising at least one processor and a communication interface, wherein the communication interface is configured to transmit and / or receive data, and the at least one processor is configured to call a computer program stored in at least one memory in order to carry out the communication method according to any one of claims 1 to 12.
14. A chip system comprising at least one processor and a communication interface, wherein the communication interface is configured to transmit and / or receive data, and the at least one processor is configured to call a computer program stored in at least one memory to enable the chip system to carry out the communication method described in any one of claims 1 to 12.
15. A computer-readable storage medium, wherein the computer-readable storage medium stores a computer program, and when the computer program runs on a computer, the computer is enabled to perform the communication method described in any one of claims 1 to 12.