WO2023220937A1 - 通信方法、装置、设备、存储介质、芯片、产品及程序 - Google Patents
通信方法、装置、设备、存储介质、芯片、产品及程序 Download PDFInfo
- Publication number
- WO2023220937A1 WO2023220937A1 PCT/CN2022/093398 CN2022093398W WO2023220937A1 WO 2023220937 A1 WO2023220937 A1 WO 2023220937A1 CN 2022093398 W CN2022093398 W CN 2022093398W WO 2023220937 A1 WO2023220937 A1 WO 2023220937A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- key
- value
- random value
- device determines
- secret
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 251
- 238000004891 communication Methods 0.000 title claims abstract description 114
- 238000012790 confirmation Methods 0.000 claims description 247
- 150000003839 salts Chemical class 0.000 claims description 175
- 238000012795 verification Methods 0.000 claims description 93
- 238000004422 calculation algorithm Methods 0.000 claims description 90
- 238000009795 derivation Methods 0.000 claims description 64
- 230000015654 memory Effects 0.000 claims description 46
- 238000004590 computer program Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000001356 surgical procedure Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
Definitions
- This application relates to the field of mobile communication technology, and specifically relates to a communication method, device, equipment, storage medium, chip, product and program.
- the configuration information of the device has been configured before the device leaves the factory.
- the user cannot reconfigure the configuration information of the device or modify the configuration information of the device.
- the user cannot adjust the configuration information of the device according to the needs.
- Embodiments of the present application provide a communication method, device, equipment, storage medium, chip, product and program.
- embodiments of the present application provide a communication method, which method includes:
- the first device determines the first key
- the first device establishes a first channel between the first device and the second device based on the first key
- the first device sends configuration information to the second device based on the first channel.
- embodiments of the present application provide a communication method, which method includes:
- the second device determines the first key
- the second device establishes a first channel between the first device and the second device based on the first key
- the second device receives the configuration information sent by the first device based on the first channel.
- an embodiment of the present application provides a communication device.
- the communication device includes:
- An establishing unit configured to establish a first channel between the first device and the second device based on the first key
- a communication unit configured to send configuration information to the second device based on the first channel.
- an embodiment of the present application provides a communication device.
- the communication device includes:
- An establishing unit configured to establish a first channel between the first device and the second device based on the first key
- a communication unit configured to receive configuration information sent by the first device based on the first channel.
- embodiments of the present application provide a first device, including: a processor and a memory,
- the memory stores a computer program executable on the processor
- the method described in the first aspect is implemented when the processor executes the program.
- embodiments of the present application provide a second device, including: a processor and a memory,
- the memory stores a computer program executable on the processor
- embodiments of the present application provide a computer storage medium that stores one or more programs, and the one or more programs can be executed by one or more processors to implement the first aspect. Or the method described in the second aspect.
- embodiments of the present application provide a chip, including: a processor configured to call and run a computer program from a memory to execute the method described in the first or second aspect.
- inventions of the present application provide a computer program product.
- the computer program product includes a computer storage medium.
- the computer storage medium stores a computer program.
- the computer program includes instructions that can be executed by at least one processor. When When the instructions are executed by the at least one processor, the method described in the first aspect or the second aspect is implemented.
- embodiments of the present application provide a computer program, which causes a computer to execute the method described in the first aspect or the second aspect.
- the first device determines the first key; the first device establishes a first channel between the first device and the second device based on the first key; the first device sends a message to the second device based on the first channel.
- Send configuration information In this way, the first device can configure the second device by sending the configuration information to the second device, so that the configuration information of the second device can be adjusted according to needs, which improves the user's convenience in using the second terminal;
- the first device sends the configuration information to the second device on the first channel established based on the first key, thereby improving security when transmitting the configuration information.
- Figure 1 is a schematic diagram of an application scenario according to the embodiment of the present application.
- Figure 2 is a schematic diagram of a digital key stored in a security chip provided by an embodiment of the present application
- FIG. 3 is a schematic diagram of a vehicle key pair and a digital key certificate stored in a vehicle electronic control unit provided by an embodiment of the present application;
- Figure 4 is a schematic flow chart of a communication method provided by an embodiment of the present application.
- FIG. 5 is a schematic flowchart of another communication method provided by an embodiment of the present application.
- Figure 6 is a schematic flow chart of another communication method provided by an embodiment of the present application.
- FIG. 7 is a schematic flowchart of yet another communication method provided by an embodiment of the present application.
- Figure 8 is a schematic flow chart of a communication method provided by another embodiment of the present application.
- Figure 9 is a schematic flow chart of a communication method provided by yet another embodiment of the present application.
- Figure 10 is a schematic flow chart of a communication method provided by yet another embodiment of the present application.
- Figure 11 is a schematic flow chart of another communication method provided by another embodiment of the present application.
- Figure 12 is a schematic flow chart of yet another communication method provided by another embodiment of the present application.
- Figure 13 is a schematic flowchart of yet another communication method provided by another embodiment of the present application.
- Figure 14 is a schematic flow chart of another communication method provided by yet another embodiment of the present application.
- Figure 15 is a schematic flow chart of yet another communication method provided by yet another embodiment of the present application.
- Figure 16 is a schematic flow chart of yet another communication method provided by yet another embodiment of the present application.
- Figure 17 is a schematic structural diagram of a communication device provided by an embodiment of the present application.
- Figure 18 is a schematic structural diagram of another communication device provided by an embodiment of the present application.
- Figure 19 is a schematic structural diagram of a communication device provided by an embodiment of the present application.
- Figure 20 is a schematic structural diagram of a chip according to an embodiment of the present application.
- Figure 1 is a schematic diagram of an application scenario of an embodiment of the present application.
- the communication system 100 may include a first device 101 and a second device 102.
- the first device 101 and the second device 102 may be connected through a wired or Communicate wirelessly.
- the first device 101 and the second device 102 may communicate through a connection line (eg, USB connection line).
- the first device 101 may communicate through Bluetooth, Wireless Fidelity (Wireless Fidelity) WiFi communication, 4G network communication, 5G network communication or future 6G network communication.
- Wireless Fidelity Wireless Fidelity
- the first device 101 or the second device 102 may be called user equipment (User Equipment, UE), mobile station (Mobile Station, MS), mobile terminal (Mobile Terminal, MT), subscriber unit, subscriber station, mobile station, remote station , remote terminal, mobile device, user terminal, terminal, wireless communications device, user agent or user device.
- UE User Equipment
- MS Mobile Station
- MT Mobile Terminal
- subscriber unit subscriber station, mobile station, remote station , remote terminal, mobile device, user terminal, terminal, wireless communications device, user agent or user device.
- the first device 101 or the second device 102 may include one or a combination of at least two of the following: a personal digital assistant (Personal Digital Assistant, PDA), a handheld device with wireless communication capabilities, a computing device, or other processing connected to a wireless modem Equipment, servers, mobile phones, tablets (Pad), computers with wireless transceiver functions, handheld computers, desktop computers, personal digital assistants, portable media players, smart speakers, navigation devices, smart watches, smart glasses , smart necklaces and other wearable devices, pedometers, digital TVs, virtual reality (VR) terminal equipment, augmented reality (AR) terminal equipment, wireless terminals in industrial control (industrial control), unmanned Wireless terminals in self driving, wireless terminals in remote medical surgery, wireless terminals in smart grid, wireless terminals in transportation safety, smart city Wireless terminals in smart homes, wireless terminals in cars, car processing modules, car communication modules, car control modules, car electronic control units (ECU), car equipment, car modules , wireless modem (modem), handheld device (handheld), customer terminal equipment (Customer Premise Equipment, C
- the first device 101 and the second device 102 may be different devices, for example, the first device 101 is a mobile phone and the second device 102 is a car.
- the first device and the second device may be the same device.
- the first device and the second device may both be mobile phones, or the first device and the second device may be mobile phones. They can all be cars.
- one first device 101 can communicate with multiple second devices 102 .
- the user's first device 101 can be associated with multiple second devices 102 .
- one second device 102 may be able to communicate with multiple first devices 101 .
- the first device 101 of the car owner can be associated with the second device 102
- the first device 101 of the car owner's family can also be associated with the second device 102.
- Figure 1 exemplarily shows a communication scenario between a first device 101 and a second device 102.
- the wireless communication system 100 may also include a first device 101 and a plurality of second devices 102.
- FIG. 1 only illustrates the system to which the present application is applicable in the form of an example.
- the method shown in the embodiment of the present application can also be applied to other systems.
- system and “network” are often used interchangeably herein.
- the term “and/or” in this article is just an association relationship that describes related objects, indicating that three relationships can exist. For example, A and/or B can mean: A exists alone, A and B exist simultaneously, and they exist alone. B these three situations.
- the character "/" in this article generally indicates that the related objects are an "or” relationship.
- the "instruction” mentioned in the embodiments of this application may be a direct instruction, an indirect instruction, or an association relationship.
- A indicates B, which can mean that A directly indicates B, for example, B can be obtained through A; it can also mean that A indirectly indicates B, for example, A indicates C, and B can be obtained through C; it can also mean that there is an association between A and B. relation.
- the "correspondence” mentioned in the embodiments of this application can mean that there is a direct correspondence or indirect correspondence between the two, it can also mean that there is an associated relationship between the two, or it can mean indicating and being instructed. , configuration and configured relationship.
- the "predefined”, “protocol agreement”, “predetermined” or “predefined rules” mentioned in the embodiments of the present application can be configured on the device (for example, including the first device and/or the second device).
- pre-saving corresponding codes, tables or other methods that can be used to indicate relevant information in the device This application does not limit the specific implementation method.
- predefined can refer to what is defined in the protocol.
- the "protocol” may refer to a standard protocol in the communication field, which may include, for example, Long Term Evolution (LTE) protocol, New Radio (NR) protocol, and protocols applied in the future. Relevant protocols in the communication system, this application does not limit this.
- a first key can be understood as a first key
- a shared key can be understood as a shared key
- a second key can be understood as a second key, and so on.
- the Digital Key can be stored in the security chip (Secure Element) of the first device.
- the security chip can also be called a security module or security element.
- the digital key includes: a digital key public and private key pair, the public key Vehicle.PK in the car certificate, and the authorization authentication information Authorized.PK.
- the digital key public and private key pair includes the digital key public key DigitalKey.PK and the digital key private key DigitalKey.SK.
- the authorization authentication information can be generated on the vehicle side.
- the public key in the car certificate may be called the car public key.
- FIG. 2 is a schematic diagram of a digital key stored in a security chip provided by an embodiment of the present application.
- a digital key can be stored in the security chip.
- one digital key can correspond to one vehicle.
- FIG. 2 shows that one digital key is stored in the security chip, but in other embodiments, multiple digital keys may be stored in the security chip.
- the digital key includes: digital key private key DigitalKey.SK, digital key public key DigitalKey.PK, authorization authentication information Authorized.PK and vehicle public key Vehicle.PK.
- FIG 3 is a schematic diagram of a vehicle key pair and a digital key certificate stored in a vehicle electronic control unit provided by an embodiment of the present application.
- the vehicle electronic control unit includes a vehicle key pair. and Digital Key Certificate.
- the car key pair may include the vehicle private key Vehicle.SK and the vehicle public key Vehicle.PK
- the digital key certificate may include: the digital key public key DigitalKey.PK and the instance (Instance) certification authority (Certificated Authority, CA) signature (Signature) ).
- the related art does not provide a safe pairing solution for the first device to configure the vehicle before controlling the vehicle.
- Figure 4 is a schematic flow chart of a communication method provided by an embodiment of the present application. As shown in Figure 4, the method includes:
- the first device determines the first key.
- the first device establishes a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel.
- the first key may be called one of the following: shared key, shared key, master key, master key.
- the first device may determine the first key based on preconfigured information.
- the first device may determine the first key based on the configuration information sent by the second device.
- the first key may be pre-stored in the first device.
- the first key may be generated by the first device before establishing the first channel each time.
- the first keys corresponding to the first channels established at different times may be the same or different.
- the first channel may be a channel encrypted by a first key.
- the first channel may be called an encrypted channel or a secure channel.
- the first channel may include a data channel and/or a control channel.
- the channel in any embodiment of the present application may be called a passage, a path, a channel, etc.
- the first key may include a sequence of one or more bits, or may include a sequence of one or more characters.
- the first device determines the first key; the first device establishes a first channel between the first device and the second device based on the first key; the first device sends a message to the second device based on the first channel.
- Send configuration information In this way, the first device can configure the second device by sending the configuration information to the second device, so that the configuration information of the second device can be adjusted according to needs, which improves the user's convenience in using the second terminal;
- the first device sends the configuration information to the second device on the first channel established based on the first key, thereby improving security when transmitting the configuration information.
- Figure 5 is a schematic flow chart of another communication method provided by an embodiment of the present application. As shown in Figure 5, the method includes:
- the second device determines the first key.
- the second device establishes a first channel between the first device and the second device based on the first key.
- the second device receives the configuration information sent by the first device based on the first channel.
- the first key determined by the second device and the key determined by the first device may be the same.
- the second device may determine the first key based on preconfigured information.
- the second device may determine the first key based on the configuration information sent by the first device.
- the first key may be pre-stored in the second device.
- the first key may be generated by the second device before establishing the first channel each time.
- Figure 6 is a schematic flow chart of another communication method provided by an embodiment of the present application. As shown in Figure 6, the method includes:
- the first device determines the first key.
- the second device determines the first key.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first channel may be used only to transmit configuration information.
- the first channel may be used not only to transmit configuration information, but also to transmit other information.
- the first device and the second device may disconnect the Bluetooth connection, or the first device and the second device may still maintain the Bluetooth connection.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- the configuration information may include: an interoperation certificate used for interoperation between the first device and the second device.
- the configuration information may include: an access control list (Access Control Lists, ACL) of the second device.
- ACL of the second device may include one or more ACLs corresponding to specific IP addresses.
- the one or more specific IP addresses may include the IP address of the first device.
- the configuration information may also include operation information for the ACL.
- the operation information may include at least one of the following: adding information, deleting information, modifying information.
- the second device may have multiple functional modules, and the configuration information may include configuration information for at least one functional module.
- the configuration information may include configuration information for configuring the display module of the vehicle.
- the configuration information may include at least one of the following: the font of the text displayed on the display module, the size of the text displayed on the display module, the size of the image displayed on the display module, the display style of the display module, the display mode of the display module, and the display theme of the display module. wait.
- the display mode may include: normal mode or simple mode, etc. In this way, when the user opens the display module, the display module can display according to the configuration information sent by the first device.
- the configuration information may include configuration information for configuring the playback module of the car.
- the configuration information may include at least one of the following: playback volume, playback voice package, playback speech speed, etc. In this way, when the user uses the playback module to play, the playback module can play according to the configuration information sent by the first device.
- the configuration information may include configuration information for configuring the air conditioner of the vehicle.
- the configuration information may include at least one of the following: temperature of the air conditioner, wind speed of the air conditioner, working mode of the air conditioner, etc. In this way, when the user turns on the air conditioner, the air conditioner can work according to the configuration information sent by the first device.
- the user can operate the application (Application, App) of the first device so that the first device generates configuration information.
- the user can operate the setting interface of the first device to cause the first device to generate configuration information.
- the user can operate the web page of the first device to cause the first device to generate configuration information.
- the first device may receive configuration information sent by a server associated with the second device, thereby obtaining the first configuration information.
- the server associated with the second device may be a car server.
- Figure 7 is a schematic flowchart of yet another communication method provided by an embodiment of the present application. As shown in Figure 7, the method includes:
- the first device sends first information to the second device; the second device receives the first information sent by the first device; the first information is used to indicate: the first device supports At least one authentication type information.
- At least one piece of authentication type information may indicate at least one of the following: digital key certificate (digital_key_cert), digital key, password (passcode), etc. It should be understood that at least one authentication type information may also include other information, and the embodiment of the present application does not limit this.
- the digital key in any embodiment of this application can be understood as a digital key.
- the at least one authentication type information may be all or part of the authentication type information that the first device can support.
- the user can select all authentication type information that the first device can support, and the first device determines the selected authentication type information as at least one authentication type information.
- the at least one authentication type information may be authentication type information associated with the second device among all authentication type information that the first device can support.
- the second device sends second information to the first device; the first device receives the second information sent by the second device; the second information is used to indicate the first authentication type information, The first authentication type information is included in the at least one authentication type information.
- the first authentication type information may be information selected from at least one authentication type information.
- the first authentication type information may be one authentication type information or multiple authentication type information.
- the first authentication type information is authentication type information supported by the second device.
- the first authentication type information may indicate a digital key certificate.
- the first authentication type information may indicate a password, or indicate a digital key certificate and password.
- the second device may display at least one authentication type information, and the user may select the first authentication type information from the at least one authentication type information.
- the second device may store the priority of each authentication type information supported by the second device, and the second device may select from the at least one authentication type information based on the priority and the at least one authentication type information. Obtain the authentication type information with the highest priority supported by the second device, and determine the authentication type information as the first authentication type information.
- the second device may randomly select one piece of authentication type information supported by the second device from at least one piece of authentication type information, and determine the selected authentication type information as the first authentication type information.
- the first device determines the first key.
- the first device may determine the first key if the received first authentication type information indicates a digital key certificate or a digital key.
- the authentication type information indicating the digital key certificate or the digital key may be selected from the multiple authentication type information. , and then sends authentication type information indicating the digital key certificate or digital key to the second device.
- the first device when it needs to establish a channel with the second device next time, it can directly send the authentication type information indicating the digital key certificate or digital key to the second device, without sending a message indicating the first device. At least one supported authentication type information.
- the second device determines the first key.
- the second device may determine the first key when the first authentication type information sent indicates a digital key certificate or a digital key.
- the second device may determine the first key upon receiving authentication type information indicating the digital key certificate or the digital key sent by the first device.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- Figure 8 is a schematic flowchart of a communication method provided by another embodiment of the present application. As shown in Figure 8, the method includes:
- the first device sends a first confirmation value to the second device; the second device receives the first confirmation value sent by the first device.
- the confirmation value (for example, including the first confirmation value, the second confirmation value, or the third confirmation value) in any embodiment of the present application may be called Confirmation.
- the first confirmation value may be the first confirmation information, or the first confirmation value may be included in the first confirmation information.
- the first confirmation value may be associated with the first key determined by the first device.
- the second device sends third information to the first device; the first device receives the third information sent by the second device; The third information is used to indicate that the verification of the first confirmation value is successful.
- the second device successfully verifies the first confirmation value, which may include: the second device determines the second confirmation value, and determines whether the first confirmation value matches or corresponds to the second confirmation value. A confirmation value verification is successful.
- the second confirmation value may be associated with the first key determined by the second device.
- the first confirmation value and the second confirmation value match or correspond, which may include: the first confirmation value and the second confirmation value are the same.
- the first confirmation value and the second confirmation value can also have other matching or corresponding ways.
- part of the value in the first confirmation value and part of the value in the second confirmation value are the same, or the first confirmation value At least some of the values in and at least some of the values in the second confirmation value conform to a preset relationship, which is not limited in the embodiment of the present application.
- the first device determines the first key.
- the second device determines the first key.
- the embodiment of the present application does not limit the order of execution between S801-S802 and S803-S804.
- S801-S802 may be executed before S803-S804, or S801-S802 may be executed after S803-S804.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- Figure 9 is a schematic flowchart of a communication method provided by another embodiment of the present application. As shown in Figure 9, the method includes:
- the second device sends a second confirmation value to the first device; the first device receives the second confirmation value sent by the second device.
- the first device sends fourth information to the second device; the second device receives the fourth information sent by the first device; The fourth information is used to indicate that the verification of the second confirmation value is successful.
- the first device successfully verifies the first confirmation value, which may include: the first device determines the first confirmation value, and determines whether the first confirmation value matches or corresponds to the second confirmation value. 2. Confirm that the value verification is successful.
- the first device determines the first key.
- the second device determines the first key.
- the embodiment of the present application does not limit the order of execution between S901-S902 and S903-S904.
- S901-S902 may be executed before S903-S904, or S901-S902 may be executed after S903-S904.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- the method further includes: the first device obtaining a first random value; the first device receiving a second random value sent by the second device; and the first device determining the first key, including : The first device determines the first key based on the first random value and the second random value.
- the random value (including the first random value or the second random value) can be understood as a random number or random information.
- the first random value can be a first random number or a first random information
- the second random value can be a first random number or a first random information. It can be a second random number or a second random information.
- the random value may comprise a sequence of one or more bits, or may comprise a sequence of one or more characters.
- the first random value may be a client random value (ClientRandom), or the first random value may be called a device random value, a terminal random value, a mobile phone random value or an APP random value, etc.
- the second random value may be a server random value (ServerRandom), or the second random value may be a car random value.
- the first random value may be a value randomly generated by the first device.
- the first random value may be a value generated based on a timestamp of the first device.
- the second random value may be a value randomly generated by the second device.
- the second random value may be a value generated based on the timestamp of the second device.
- the bit length of the first random value may be the same as or different from the bit length of the second random value.
- the first random value and the second random value may be different or the same.
- the first random value and the second random value may be generated based on the same configuration information or different configuration information.
- the first device determines the first key based on the first random value and the second random value, including: the first device determines the first key based on the first digital key and the second random value.
- the second key of the device determines the third key; the first device determines the first key based on the third key, the first random value and the second random value.
- the first digital key may be a digital key private key DigitalKey.SK.
- the second key of the second device may be the public key of the second device (eg, vehicle public key Vehicle.PK).
- the third key may be an input key (inputKey).
- input key can be understood as input key.
- the first device may use a key agreement algorithm to determine the third key based on the first digital key and the second key of the second device.
- the key agreement algorithm in any embodiment of the present application may include one of the following: Elliptic Curve Diffie-Hellman key Exchange (ECDH) algorithm, Diffie-Hellman algorithm Or the national secret SM2 algorithm, etc. The embodiments of this application do not limit the specific key agreement algorithm used.
- the third key key agreement algorithm (first digital key, second key of the second device), where the key agreement algorithm may be ECDH or the like.
- inputKey key agreement algorithm (such as ECDH, etc.) (DigitalKey.SK, Vehicle.PK).
- DigitalKey.SK in the first device cannot be read directly, and the interface accessed through the security chip needs to use the DigitalKey.SK in the security chip.
- Vehicle.PK and/or DigitalKey.PK can be read with or without the interface accessed by the secure chip.
- the first device determines the first key based on the third key, the first random value and the second random value, which may include: the first device based on the The first random value and the second random value determine a first salt value; the first device determines the first key based on the third key and the first salt value.
- the first salt value may include a sequence of one or more bits, or may include a sequence of one or more characters.
- the first device determines the first salt value based on the first random value and the second random value, which may include: determining a combined value of the first random value and the second random value, and based on the combined value Determine the first salt value.
- the combined value can be hashed to obtain the first salt value.
- the embodiment of the present application does not limit the merging method of merging the first random value and the second random value.
- the second random value can be placed after the first random value, or the first random value can be placed after the second random value, or the first random value and the second random value can be cross-merged.
- in any embodiment of this application is a connecting symbol.
- the first device determines the first key based on the third key, the first random value and the second random value, which may include: the first device obtains a preset value; the first device determines the first key based on the preset value, the third key, the first random value and the second random value.
- the preset value in any embodiment of this application may also be called a preset fixed value or a fixed value.
- the preset value in any embodiment of this application may be a preset fixed string.
- the preset value in any embodiment of this application may include a sequence composed of one or more bits, or may include a sequence composed of one or more characters.
- the preset value may be pre-configured in the first device.
- the preset value may be generated by the first device when the first device associates with the second device for the first time, or configured by the second device to the first device, or sent by a server associated with the second device.
- the first device may read the preset value from its own storage space.
- the preset value in any embodiment of this application may also be called key information (key info) or provision key (ProvisionKey).
- the first device may determine the first key based on the preset value, the third key, and the first salt value.
- the first key is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following: The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the first digital key and the second key of the second device; the first salt value is Determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the first key derivation algorithm may include a key derivation function (Key Derivation Function, KDF).
- KDF Key Derivation Function
- the first key derivation algorithm can be implemented through the KDF interface.
- parameters in the first key derivation function or the first key derivation algorithm include at least one of the following: a third key, a first salt value, a preset value, and a first length.
- parameters in the first key derivation function or first key derivation algorithm include: a third key, a first salt value, a preset value, and a first length.
- the first result may be KDF (third key, first salt value, preset value, first length).
- the first result may be KDF (inputKey, Salt, info, length), where inputKey, Salt, info, length respectively represent the third key, the first salt value, the preset value, and the first length.
- the first key may be a partial character or partial bit selected from the first result.
- the length of the first key (eg, character length or bit length) may be a preconfigured length, or a length determined based on preconfiguration information, or a length configured by the second device.
- the position and/or length corresponding to the first key may be preconfigured, and the first key is selected from the first result based on the preconfigured position and/or length corresponding to the first key.
- the length of the first result may be the first length.
- the method further includes: the first device determining a first confirmation value based on the first random value and the second random value.
- the first device determines a first confirmation value based on the first random value and the second random value, including: the first device determines a first confirmation value based on the first random value and the second random value. two random values to determine the first challenge code; the first device determines the first confirmation value based on the first challenge code, the first random value and the second random value.
- the first challenge code may also be called the first challenge password or the first challenge value.
- the first challenge code may include a sequence of one or more bits, or may include a sequence of one or more characters.
- the first device determines the first confirmation value based on the first challenge code, the first random value and the second random value, including: the first device determines the first confirmation value.
- the first challenge code, the first random value and the second random value are combined to obtain a second combined result; the first device performs a hash operation on the second combined result to obtain the first Confirm the value.
- the embodiment of the present application does not limit the merging method of merging the first challenge code, the first random value and the second random value.
- the first challenge code, the first random value and the second random value can be connected in sequence to obtain a second combined result.
- the first random value, the second random value and the first challenge code can be connected in sequence to obtain a second combined result.
- the result of the cross-merging of the first challenge code and the first random value and the second random value may be connected to obtain the second merging result.
- the first challenge code, the first random value and the second random value may be cross-merged to obtain a second merging result.
- the first device determines the first challenge code based on the first random value and the second random value, including: the first device determines the first challenge code based on the first digital key and the second device the second key to determine the third key; the first device determines the first challenge code based on the third key, the first random value and the second random value.
- the method for determining the third key by the first device based on the first digital key and the second key of the second device may refer to the description of the above embodiment.
- the first device determines the first challenge code based on the third key, the first random value and the second random value, including: the first device determines the first challenge code based on the The first random value and the second random value determine a first salt value; the first device determines the first challenge code based on the third key and the first salt value.
- the method for the first device to determine the first salt value based on the first random value and the second random value may refer to the description of the above embodiment.
- the first device determines the first challenge code based on the third key, the first random value and the second random value, including: the first device obtains a preset value; the first device determines the first challenge code based on the preset value, the third key, the first random value and the second random value.
- the first device may determine the first challenge code based on the preset value, the third key, and the first salt value.
- the first challenge code is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following : The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the first digital key and the second key of the second device; the first salt value It is determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the first challenge code may be a partial character or partial bit selected from the first result.
- the length of the first challenge code (eg, character length or bit length) may be a preconfigured length, or a length determined based on preconfiguration information, or a length configured by the second device.
- the first device may pre-configure the position and/or length corresponding to the first challenge code, and select the first challenge code from the first result based on the pre-configured position and/or length corresponding to the first challenge code.
- the position of the first challenge code and the position of the first key may partially overlap, or the position of the first challenge code and the position of the first key may not overlap.
- the length of the first challenge code may be the same as or different from the length of the first key.
- the length of the first challenge code may differ from the length of the first key by a target number of bits or characters.
- the first challenge code may be a value in the first result excluding the first key.
- the first result is a result obtained by merging the first key and the first challenge code.
- the first key may be before the first challenge code, or the first key may be after the first challenge code, or the first key may be interleaved with the first challenge code.
- the first result may be first key
- the first result in this embodiment may be ShareKey
- the first device determines a first salt value based on the first random value and the second random value, including: the first device compares the first random value and the second random value. The two random values are merged to obtain a first merged result; the first device performs a hash operation on the first merged result to obtain the first salt value.
- the method further includes: the second device receiving the first random value sent by the first device; the second device obtaining the second random value; and the second device determining the first key, including : The second device determines the first key based on the first random value and the second random value.
- the second device determines the first key based on the first random value and the second random value, including: the second device determines the first key based on the second digital key and the second random value.
- the fourth key of the device determines the third key; the second device determines the first key based on the third key, the first random value and the second random value.
- the second digital key in any embodiment of the present application may be a digital key public key DigitalKey.PK.
- the fourth key of the second device in any embodiment of the present application may be the private key of the second device (for example, the vehicle private key Vehicle.SK).
- the third key in any embodiment of the present application may be an input key (inputKey).
- input key can be understood as input key.
- the second device may use a key agreement algorithm to determine the third key based on the second digital key and the fourth key of the second device.
- the third key determined by the second device and the third key determined by the first device are the same key.
- the second device determines the first key based on the third key, the first random value and the second random value, including: the second device determines the first key based on the third key. A random value and the second random value determine the first salt value; the second device determines the first key based on the third key and the first salt value.
- the second device may determine the first salt value in the same manner as the first device determines the first salt value.
- the first salt value determined by the second device and the first salt value determined by the first device are the same salt value.
- the second device determines the first key based on the third key, the first random value and the second random value, including: the second device obtains a preset value ; The second device determines the first key based on the preset value, the third key, the first random value and the second random value.
- the preset value may be pre-configured in the second device.
- the preset value may be generated by the second device when the second device associates with the first device for the first time, or configured by the first device to the second device, or sent by the server associated with the second device.
- the second device can read the preset value from its own storage space.
- the second device may determine the first key based on the preset value, the third key, and the first salt value.
- the first key is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following: The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the second digital key and the fourth key of the second device; the first salt value is Determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the second device may determine the first result in the same manner as the first device determines the first result.
- the second device determines the first key based on the first result in the same manner as the first device determines the first key based on the first result.
- the method further includes: the second device determining a second confirmation value based on the first random value and the second random value.
- the second confirmation value may be the same as or different from the first confirmation value.
- the second confirmation value may be the same as the first confirmation value, otherwise it may be different.
- the second device determines a second confirmation value based on the first random value and the second random value, including: the second device determines a second confirmation value based on the first random value and the second random value. two random values to determine the first challenge code; the second device determines the second confirmation value based on the first challenge code, the first random value and the second random value.
- the second device determines the second confirmation value based on the first challenge code, the first random value and the second random value, including: the second device determines the second confirmation value.
- the first challenge code, the first random value and the second random value are combined to obtain a second combined result; the second device performs a hash operation on the second combined result to obtain the second Confirm the value.
- the second device may obtain the second combined result in the same manner as the first device obtains the second combined result.
- the second merging result obtained by the second device may be the same as the second merging result obtained by the first device.
- the second device determines the first challenge code based on the first random value and the second random value, including: the second device determines the first challenge code based on the second digital key and the second device The fourth key determines the third key; the second device determines the first challenge code based on the third key, the first random value and the second random value.
- the method of determining the third key based on the second digital key and the fourth key of the second device may refer to the description of the above embodiment.
- the second device determines the first challenge code based on the third key, the first random value and the second random value, including: the second device determines the first challenge code based on the The first random value and the second random value determine a first salt value; the second device determines the first challenge code based on the third key and the first salt value.
- the method of determining the first salt value based on the first random value and the second random value may refer to the description of the above embodiment.
- the second device determines the first challenge code based on the third key, the first random value and the second random value, including: the second device obtains a preset value; the second device determines the first challenge code based on the preset value, the third key, the first random value and the second random value.
- the second device determines the first challenge code based on the preset value, the third key, and the first salt value.
- the first challenge code is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following : The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the second digital key and the fourth key of the second device; the first salt value It is determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the second device may preconfigure the position and/or length corresponding to the first challenge code, and select the first challenge code from the first result based on the preconfigured position and/or length corresponding to the first challenge code.
- the first challenge code determined by the second device may be the same as the first challenge code determined by the first device.
- the first result is a result obtained by merging the first key and the first challenge code.
- the second device determines the first salt value based on the first random value and the second random value, including: the second device compares the first random value and the second random value. The two random values are merged to obtain a first merged result; the second device performs a hash operation on the first merged result to obtain the first salt value.
- Figure 10 is a schematic flow chart of a communication method provided by yet another embodiment of the present application. As shown in Figure 10, the method includes:
- the first device obtains a first random value
- the first device sends first verification information to the second device; the second device receives the first verification information sent by the first device; the first verification information includes a first random value and first signature.
- the second device If the second device successfully verifies the first signature based on the second digital key and the first random value, the second device obtains the second random value; The second device determines the first key based on the first random value and the second random value.
- the first device determines the first key.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- FIG 11 is a schematic flow chart of another communication method provided by another embodiment of the present application. As shown in Figure 11, the method includes:
- the second device obtains a second random value.
- the second device sends second verification information to the first device; the first device receives the second verification information sent by the second device; the second verification information includes a second random value and second signature.
- the second device determines the first key.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- Figure 12 is a schematic flow chart of another communication method provided by another embodiment of the present application.
- the car in Figure 12 can correspond to the above-mentioned second device
- the mobile phone in Figure 12 can Corresponding to the above-mentioned first device
- the mobile phone may be a mobile phone APP in some embodiments.
- the method includes:
- the car performs Bluetooth broadcast (corresponding to the broadcast Bluetooth information in the following embodiment).
- the broadcast information carries the identity information of the car (corresponding to the identification of the second device in the following embodiment) and/or indicates whether the car can be configured. (commissionable) information (corresponding to the following indication information used to indicate that the second device is configurable).
- the Bluetooth broadcast may include Bluetooth Low Energy (Bluetooth Low Energy, BLE) broadcast.
- the vehicle's identity information may include a vehicle identifier (vehicle_identifier).
- the car sends a BLE pairing broadcast.
- the car can also use BLE to perform pairing broadcast after the mobile phone establishes a digital car key connection.
- the broadcast should at least contain vehicle identifier (ID assigned by the car manufacturer) and commissionable (whether it is configurable) information.
- the mobile phone discovers the Bluetooth broadcast of the car and determines the identity of the car and/or the car's configurability.
- the mobile phone and the car establish a Bluetooth connection.
- the phone and car transmit information via Bluetooth connection.
- the mobile phone sends a configuration stage session establishment request to the car (corresponding to the first information in the above embodiment).
- the request carries the authentication type supported by the mobile phone, for example, digital key certificate (digital_key_cert) and password (passcode).
- digital_key_cert digital key certificate
- passcode password
- the mobile phone requests the car to establish a session during the configuration phase, and the request carries the authentication type [digital_key_cert, passcode] supported by the mobile phone to negotiate with the car.
- the car sends request response information to the mobile phone (corresponding to the second information in the above embodiment).
- the request response information indicates the selection of the configuration phase master key generation method.
- the request response information also includes the identification of the vehicle, for example, the vehicle device ID (Vehicle Device ID).
- the selected master key generation method during the configuration phase may be a digital key certificate (digital_key_cert) method (corresponding to the above-mentioned first authentication type information).
- the car selects and generates the configuration phase key generation method "digital key cert" and Vehicle Device ID (used by the mobile phone to use this field to determine which specific vehicle to establish a connection with).
- the mobile phone generates a client random number (ClientRandom, corresponding to the first random number in the above embodiment), and uses the digital key DigitalKey.SK (corresponding to the first digital key in the above embodiment) to sign ClientRandom through the relevant interface to generate a client signature. (ClientSignature, corresponding to the first signature in the above embodiment).
- the relevant interface in any embodiment of the present application may be an interface of a security chip.
- the mobile phone generates a random number ClientRandom, and uses the DigitalKey.SK signature ClientRandom to generate a ClientSignature through the relevant interface.
- the mobile phone sends a verification request to the car; the verification request carries the client random number ClientRandom and the client signature ClientSignature.
- the mobile phone sends a verification application (ie, verification request) to the car, carrying data CleintRandom and ClientSignature.
- a verification application ie, verification request
- the car can verify the client signature ClientSignature through the client random number ClientRandom and the digital key public key.
- the car obtains the public key DigitalKey.PK of the stored digital_key_cert, verifies the ClientSignature, generates a random number ServerRandom, and uses Vehicle.SK to sign the ClientRandom to obtain the ServerSignature.
- PK public key DigitalKey.PK of the stored digital_key_cert
- ServerRandom uses Vehicle.SK to sign the ClientRandom to obtain the ServerSignature.
- the car sends verification response information to the mobile phone; the verification response information can carry the server random number ServerRandom and the server signature ServerSignature.
- the car returns a verification response (that is, verification response information), carrying data ServerRandom and ServerSignature.
- the car can also generate ShareKey and Challenge; for the calculation method of ShareKey and Challenge, please refer to the steps on the mobile phone; the vehicle side has different parameters when calculating inputKey.
- inputKey key agreement algorithm (such as ECDH, etc.) (Vehicle.SK, DigitalKey. PK).
- the inputKey calculated on the car side is the same as the inputKey calculated on the mobile phone side.
- the mobile phone parses the verification response information; uses the vehicle public key (Vehicle.PK, corresponding to the second key of the second device in the above embodiment) to verify the server signature ServerSignature through the relevant interface; if the verification is successful, the mobile phone generates The shared key (ShareKey, corresponding to the first key in the above embodiment) and the first challenge code (Challenge); the mobile phone calculates the first confirmation value (Confirmation).
- vehicle public key Vehicle public key
- Vehicle.PK vehicle public key
- ServerSignature server signature ServerSignature
- the mobile phone generates The shared key (ShareKey, corresponding to the first key in the above embodiment) and the first challenge code (Challenge); the mobile phone calculates the first confirmation value (Confirmation).
- the mobile phone can verify the sent ServerSignature through the server random number ServerRandom and the vehicle public key Vehicle.PK.
- the mobile phone uses Vehicle.PK to verify the ServerSignature through the relevant interface; generates ShareKey and Challenge;
- key agreement algorithm such as ECDH, etc.
- Salt hash algorithm (ClientRandom
- in any embodiment of this application is a connecting symbol.
- the mobile phone sends the first confirmation value Confirmation to the car.
- the vehicle side calculates the second confirmation value Confirmation using the same calculation method as the mobile phone side calculates the first confirmation value Confirmation, and then compares it with the Confirmation sent by the first device. If they are the same, it means the inspection is passed.
- the car returns a pairing channel establishment completion (corresponding to session establishment completion) message to the mobile phone.
- the session establishment completion information may be used to indicate successful verification of the first confirmation value.
- the mobile phone and the car establish a secure channel based on the master key, and the car configuration operation is completed based on this channel.
- the mobile phone and the car establish a secure channel based on digital key key negotiation, and the car configuration operation is completed based on this channel.
- the mobile phone and/or the car can perform all or part of the steps in the embodiment shown in Figure 12.
- the embodiments of the present application do not limit this as long as it constitutes a complete technical solution.
- the method further includes: the first device determining the first key based on the first digital key and the second key of the second device.
- the method further includes: the second device determining the first key based on the second digital key and the fourth key of the second device.
- the first device may use a key agreement algorithm to determine the first key based on the first digital key and the second key of the second device.
- the second device may use a key agreement algorithm to determine the first key based on the second digital key and the fourth key of the second device.
- the method further includes: the first device obtains a third confirmation value; the first device uses the first key to encrypt the third confirmation value to obtain a third confirmation value. A confirmation value; the first device sends the first confirmation value to the second device.
- the third confirmation value may be preset by the second device and/or the first device, or the third confirmation value may be configured by the second device to the first device, or the third confirmation value may be the first device.
- the device configures the second device, or the third confirmation value may be sent by a server associated with the second device.
- the third confirmation value may include a sequence of one or more bits, or may include a sequence of one or more characters.
- the second device obtains the third confirmation value; the second device uses the first key to encrypt the third confirmation value and obtains the second confirmation value.
- the second device determines that the first confirmation value and the second confirmation value are the same, it determines that the verification of the first confirmation value is successful, and then the second device sends an indication message indicating that the verification is successful to the first device, and then the first device and On this basis, the second device performs the step of determining the first key.
- the verification step may be performed by the first device.
- the method further includes: the second device obtains a third confirmation value; the second device uses the first key to encrypt the third confirmation value, Obtain a second confirmation value; the second device sends the second confirmation value to the first device.
- the first device obtains the third confirmation value; the first device uses the first key to encrypt the third confirmation value to obtain the first confirmation value.
- the first device determines that the first confirmation value and the second confirmation value are the same, it determines that the verification of the second confirmation value is successful, and then the first device sends an indication message indicating that the verification is successful to the second device, and then the first device and On this basis, the second device performs the step of determining the first key.
- the method further includes: the first device receiving the indication information sent by the second device, or the first device sending the indication information to the second device ;
- the indication information is used to indicate that the first key is determined based on a key agreement algorithm.
- the method further includes: the second device sending indication information to the first device, or the second device receiving the indication information sent by the first device. ;
- the indication information is used to indicate that the first key is determined based on a key agreement algorithm.
- the method further includes: the first device receiving a second confirmation value sent by the second device; and performing the verification on the first device based on the first key. If the verification of the second confirmation value is successful, the first device sends fourth information to the second device; the fourth information is used to indicate that the verification of the second confirmation value is successful.
- the method further includes: the second device receiving the first confirmation value sent by the first device; and performing the verification on the second device based on the first key. If the verification of the first confirmation value is successful, the second device sends third information to the first device; the third information is used to indicate that the verification of the first confirmation value is successful.
- the first device and the second device perform the step of determining the first key.
- Figure 13 is a schematic flow chart of yet another communication method provided by another embodiment of the present application.
- the car in Figure 13 can correspond to the above-mentioned second device
- the mobile phone in Figure 13 can Corresponding to the above-mentioned first device
- the mobile phone may be a mobile phone APP in some embodiments.
- the method includes:
- the car performs Bluetooth broadcast, and the broadcast information carries the identity information of the car and/or information indicating whether the car is configurable (commissionable).
- the mobile phone discovers the Bluetooth broadcast of the car and determines the identity of the car and/or the car's configurability.
- the mobile phone and the car establish a Bluetooth connection.
- the mobile phone sends a configuration phase session establishment request to the car (corresponding to the first information in the above embodiment).
- the request carries the authentication type supported by the mobile phone, for example, digital key certificate (digital_key_cert) and password (passcode).
- digital_key_cert digital key certificate
- password passcode
- the car sends request response information to the mobile phone (corresponding to the second information in the above embodiment).
- the request response information indicates the selection of the configuration stage master key generation method and/or direct negotiation of the master key prompt (corresponding to the above-mentioned determination of the first key based on the key agreement algorithm).
- the request response information also includes the identification of the vehicle, for example, the vehicle device ID (Vehicle Device ID).
- the selected master key generation method during the configuration phase may be a digital key certificate (digital_key_cert) method (corresponding to the above-mentioned first authentication type information).
- the solution adopted is that the car sends instruction information to the mobile phone, and the instruction information indicates the negotiation of the master key.
- the car uses the digital key public key DigitalKey.PK and the car private key Vehicle.SK to generate the master key ShareKey.
- a vehicle can use DigitalKey.PK and Vehicle.SK to generate a master key ShareKey based on direct negotiation of the master key prompt.
- the mobile phone uses the vehicle public key Vehicle.PK and the digital key private key DigitalKey.SK to generate the master key ShareKey.
- the phone can use Vehicle.PK and DigitalKey.SK to generate the master key ShareKey based on the direct negotiation of the master key prompt.
- the mobile phone and the car directly generate the ShareKey
- the determination method of the ShareKey can be the same as the determination method of the inputKey in the embodiment corresponding to Figure 12.
- the mobile phone sends the first confirmation value Confirmation encrypted using the master key ShareKey to the car.
- a fixed value is used when confirming Confirmation.
- the value can be negotiated before pairing the mobile phone and the car, or the mobile phone can be obtained from the car, or obtained remotely (for example, through the car server).
- the session establishment completion information may be used to indicate successful verification of the first confirmation value Confirmation.
- the mobile phone and the car establish a secure channel based on the master key, and the car configuration operation is completed based on this channel.
- the mobile phone and/or the car can perform all or part of the steps in the embodiment shown in Figure 13.
- the embodiments of the present application do not limit this as long as it constitutes a complete technical solution.
- the method further includes: the first device obtaining a first secret; and the first device determining the first key based on the first secret.
- the first secret may be a first secret value or a second secret information.
- the first secret may be a shared secret (ShareSecret).
- the first secret may include a sequence of one or more bits, or may include a sequence of one or more characters.
- the first secret may be pre-configured by the first device, or the first secret may be generated based on pre-configured information.
- the first secret and/or the configuration information used to generate the first secret is the first secret. Sent by the second device, or sent by the server associated with the second device.
- the first device determines the first key based on the first secret, including: the first device obtains a first random value; the first device determines the first key based on the first secret and the first secret. The first random value is used to determine the first key.
- the description of the first random value and the manner in which the first device obtains the first random value may refer to the description in the above embodiment, and will not be described again here.
- the first device determines the first key based on the first secret and the first random value, including: the first device determines a second key based on the first random value. Salt value; the first device determines the first key based on the second salt value and the first secret.
- the second salt value may include a sequence of one or more bits, or may include a sequence of one or more characters.
- determining the second salt value based on the first random value may include: performing a hash operation on the first random value to obtain the second salt value.
- the first device determines the first key based on the first secret, including: the first device obtains a preset value; the first device based on the preset value and the The first secret, determine the first key.
- the first device may determine the first key based on the preset value, the first secret, and the second salt value.
- the first key is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following: The first secret, the second salt value, the preset value, and the second length; wherein the second salt value is determined based on the first random value obtained by the first device; the length of the second result is less than or equal to the second length.
- the second key derivation algorithm may include a key derivation function (Key Derivation Function, KDF).
- KDF Key Derivation Function
- the second key derivation algorithm can be implemented through the KDF interface.
- parameters in the second key derivation function or the second key derivation algorithm include at least one of the following: a first secret, a second salt value, a preset value, and a second length.
- parameters in the second key derivation function or second key derivation algorithm include: a first secret, a second salt value, a preset value, and a second length.
- the second result may be KDF (first secret, second salt value, preset value, second length).
- the second result may be KDF (ShareSecret, salt, info, length), where ShareSecret, salt, info, length respectively represent the first secret, the second salt value, the preset value, and the second length.
- the first key may be a partial character or partial bit selected from the second result.
- the length of the first key (eg, character length or bit length) may be a preconfigured length, or a length determined based on preconfiguration information, or a length configured by the first device.
- the position and/or length corresponding to the first key may be preconfigured, and the first key is selected from the second result based on the preconfigured position and/or length corresponding to the first key.
- the length of the second result may be the second length.
- the method further includes: the first device obtaining a first random value; and the first device determining a first confirmation value based on the first secret and the first random value.
- the first device determines a first confirmation value based on the first secret and the first random value. Determining the first confirmation value includes: the first device determines the first confirmation value based on the first secret. , determine a second challenge code; the first device determines the first confirmation value based on the second challenge code and the first random value.
- the second challenge code may also be called a second challenge password or a second challenge value.
- the second challenge code may include a sequence of one or more bits, or may include a sequence of one or more characters.
- the first device determines the first confirmation value based on the second challenge code and the first random value, including: the first device compares the second challenge code and the first random value.
- the first random values are merged to obtain a third merged result; the first device performs a hash operation on the third merged result to obtain the first confirmation value.
- the embodiment of the present application does not limit the merging method of merging the second challenge code and the first random value.
- the second challenge code may be before the first random value, or the second challenge code may be after the first random value, or the second challenge code and the first random value may be cross-merged.
- the first device determines a second challenge code based on the first secret, including: the first device determines a second salt value based on the first random value; the first device The second challenge code is determined based on the second salt value and the first secret.
- the first device determines the second challenge code based on the first secret, including: the first device obtains a preset value; the first device based on the preset value and the The first secret is to determine the second challenge code.
- the first device may determine the second challenge code based on the preset value, the first secret, and the second salt value.
- the second challenge code is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following : first secret, second salt value, preset value, second length; wherein the second salt value is determined based on the first random value obtained by the first device; the length of the second result, Less than or equal to the second length.
- the second challenge code may be a partial character or partial bit selected from the second result.
- the length of the second challenge code (eg, character length or bit length) may be a preconfigured length, or a length determined based on preconfiguration information, or a length configured by the first device.
- the first device may preconfigure the position and/or length corresponding to the second challenge code, and select the second challenge code from the second result based on the preconfigured position and/or length corresponding to the second challenge code.
- the position of the second challenge code and the position of the first key may partially overlap, or the position of the second challenge code and the position of the first key may not overlap.
- the length of the second challenge code may be the same as or different from the length of the first key.
- the length of the second challenge code may differ from the length of the first key by a set number of bits or characters.
- the second challenge code may be a value in the second result excluding the first key.
- the second result is a result obtained by merging the first key and the second challenge code.
- the first key may be before the second challenge code, or the first key may be after the second challenge code, or the first key may be interleaved with the second challenge code.
- the second result may be the first key
- the second result in this embodiment may be ShareKey
- the first device determines the second salt value based on the first random value, including: the first device performs a hash operation on the first random value to obtain the second salt value. value.
- the method further includes: the second device receiving a second secret sent by the first device; and the second device determining the first key based on the second secret.
- the second secret may be determined based on the first secret.
- the second secret may be determined based on the second key (public key, eg, Vehicle.PK) of the second device and the first secret.
- the first secret can be encrypted using the second key of the second device to obtain the second secret.
- the second secret may be determined based on the first digital key (eg, DigitalKey.SK) and the first secret.
- the first secret can be encrypted using the first digital key to obtain the second secret.
- the first device may encrypt the first secret using a key agreement algorithm to obtain the second secret.
- the second device determines the first key based on a second secret, including: the second device determines the first key based on the second secret and a fourth key of the second device. Secret; the second device determines the first key based on the first secret. For example, the second device may use the fourth key of the second device to decrypt the second secret to obtain the first secret.
- the second device determines the first key based on a second secret, including: the second device determines the first key based on the second secret and the second digital key (for example, DigitalKey.PK) , determine the first secret; the second device determines the first key based on the first secret. For example, the second device can use the second digital key to decrypt the second secret to obtain the first secret.
- the second device determines the first key based on a second secret, including: the second device determines the first key based on the second secret and the second digital key (for example, DigitalKey.PK) , determine the first secret; the second device determines the first key based on the first secret.
- the second device can use the second digital key to decrypt the second secret to obtain the first secret.
- the second device can use a key agreement algorithm to decrypt the second secret to obtain the first secret.
- the second device determines the first key based on the first secret, including: the second device receiving a first random value sent by the first device; the second device based on The first secret and the first random value determine the first key.
- the second device determines the first key based on the first secret and the first random value, including: the second device determines a second key based on the first random value. Salt value; the second device determines the first key based on the second salt value and the first secret.
- the second device may determine the second salt value in the same manner as the first device determines the second salt value.
- the second salt value determined by the second device is the same salt value as the second salt value determined by the first device.
- the second device determines the first key based on the first secret, including: the second device obtains a preset value; the second device determines the first key based on the preset value and the The first secret, determine the first key.
- the second device may determine the first key based on the preset value, the second salt value, and the first secret.
- the first key is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following: The first secret, the second salt value, the preset value, and the second length; wherein the second salt value is determined based on the first random value obtained by the second device; the length of the second result is less than or equal to the second length.
- the second device may determine the second result in the same manner as the first device determines the second result.
- the way in which the second device determines the first key based on the second result may be the same as the way in which the first device determines the first key based on the second result.
- the method further includes: the second device receiving a first random value sent by the first device; and the second device determining, based on the first secret and the first random value, Second confirmation value.
- the second device determines a second confirmation value based on the first secret and the first random value, including: the second device determines a second challenge code based on the first secret. ; The second device determines the second confirmation value based on the second challenge code and the first random value.
- the second device determines the second confirmation value based on the second challenge code and the first random value, including: the second device compares the second challenge code and the first random value. The first random values are merged to obtain a third merged result; the second device performs a hash operation on the third merged result to obtain the second confirmation value.
- the way in which the second device obtains the third combination result may be the same as the way in which the first device obtains the third combination result.
- the third merging result obtained by the second device may be the same as the third merging result obtained by the first device.
- the second device determines a second challenge code based on the first secret, including: the second device determines a second salt value based on the first random value; the second device The second challenge code is determined based on the second salt value and the first secret.
- the second device determines the second challenge code based on the first secret, including: the second device obtains a preset value; the second device determines the second challenge code based on the preset value and the The first secret is to determine the second challenge code.
- the second device may determine the second challenge code based on a preset value, the second salt value, and the first secret.
- the second challenge code is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following : first secret, second salt value, preset value, second length; wherein the second salt value is determined based on the first random value obtained by the second device; the length of the second result, Less than or equal to the second length.
- the second device may pre-configure the position and/or length corresponding to the second challenge code, and select the second challenge code from the second result based on the pre-configured position and/or length corresponding to the second challenge code.
- the second challenge code determined by the second device may be the same as the second challenge code determined by the first device.
- the second result is a result obtained by merging the first key and the second challenge code.
- the second device determines a second salt value based on the first random value, including: the second device performs a hash operation on the first random value to obtain the second salt value. value.
- Figure 14 is a schematic flow chart of another communication method provided by yet another embodiment of the present application. As shown in Figure 14, the method includes:
- the first device obtains the first secret
- the first device determines the first key based on the first secret.
- the first device determines a second secret based on the second key of the second device and the first secret.
- the first device sends third verification information to the second device; the second device receives the third verification information sent by the first device; the third verification information includes the third verification information.
- a device obtains the first random value, the first signature and the second secret.
- the second device determines the first key based on the second secret. .
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- the first device determines the first signature based on the first random value and a first digital key.
- the first device can use the first digital key (DigitalKey.SK) to sign the first random value (ClientRandom) to generate the first signature (ClientSignature).
- DigitalKey.SK digital key
- ClienttRandom random value
- ClientSignature the first signature
- the second device verifies the first signature based on the second digital key (DigitalKey.PK) and the first random value (ClientRandom). For example, the second device can determine a random value based on the second digital key and the first signature. If the random value is the same as the first random value, the first signature is verified successfully. For another example, the second device may determine a signature based on the second digital key and the first random value, and if the signature is the same as the first signature, the first signature is verified successfully.
- the second device may determine a signature based on the second digital key and the first random value, and if the signature is the same as the first signature, the first signature is verified successfully.
- Figure 15 is a schematic flow chart of another communication method provided by another embodiment of the present application. As shown in Figure 15, the method includes:
- the second device broadcasts Bluetooth information; the Bluetooth information carries at least one of the following: an identifier of the second device, and indication information indicating that the second device is configurable.
- the first device discovers the broadcast Bluetooth information.
- the second device establishes a Bluetooth connection with the second device based on the Bluetooth information.
- the first device determines the first key.
- the second device determines the first key.
- the first device and the second device may send and receive information through the Bluetooth connection to determine the first key based on the sent and received information.
- the first device and the second device establish a first channel between the first device and the second device based on the first key.
- the first device sends configuration information to the second device based on the first channel; the second device receives the configuration information sent by the first device based on the first channel.
- Figure 16 is a schematic flow chart of yet another communication method provided by yet another embodiment of the present application.
- the car in Figure 16 can correspond to the above-mentioned second device
- the mobile phone in Figure 16 can Corresponding to the above-mentioned first device
- the mobile phone may be a mobile phone APP in some embodiments.
- the method includes:
- the car performs Bluetooth broadcast (corresponding to the broadcast Bluetooth information in the above embodiment).
- the broadcast information carries the identity information of the car (corresponding to the identification of the second device in the above embodiment) and/or indicates whether the car is configurable (commissionable). ) information (corresponding to the above-mentioned indication information used to indicate that the second device is configurable).
- the mobile phone discovers the Bluetooth broadcast of the car and determines the identity of the car and/or the car's configurability.
- the mobile phone and the car establish a Bluetooth connection.
- the mobile phone sends a configuration phase session establishment request to the car (corresponding to the first information in the above embodiment).
- the request carries the authentication type supported by the mobile phone, for example, digital key certificate (digital_key_cert) and password (passcode).
- digital_key_cert digital key certificate
- passcode password
- the mobile phone requests the car to establish a session during the configuration phase, and the request carries the authentication type [digital_key_cert, passcode] supported by the mobile phone to negotiate with the car.
- the car sends request response information to the mobile phone (corresponding to the second information in the above embodiment).
- the request response information indicates the selection of the configuration phase master key generation method.
- the request response information also includes the identification of the vehicle, for example, the vehicle device ID (Vehicle Device ID).
- the selected master key generation method during the configuration phase may be a digital key certificate (digital_key_cert) method (corresponding to the above-mentioned first authentication type information).
- the car chooses to generate the configuration phase key generation method "digital key cert" and Vehicle Device ID (used by the mobile phone to use this field to determine which vehicle to establish a connection with).
- the mobile phone generates a client random number (ClientRandom, corresponding to the first random number in the above embodiment), and the mobile phone generates a shared secret ShareSecret (corresponding to the first secret in the above embodiment); the mobile phone uses the digital key private key DigitalKey through the relevant interface.
- .SK corresponding to the first digital key in the above embodiment
- signature ClientRandom generates a client signature ClientSignature (corresponding to the first signature in the above embodiment)
- the mobile phone uses the vehicle public key Vehicle.PK (corresponding to the above embodiment) through the relevant interface
- the second key of the second device) encrypts the ShareSecret to obtain the client secret ClientSecret (corresponding to the second secret in the above embodiment).
- the mobile phone generates a ShareSecret, and then uses Vehicle.PK to encrypt it through the interface to obtain the ClientSecret.
- the mobile phone sends a verification request to the car; the verification request carries the client random number ClientRandom, the client signature ClientSignature, and the client secret ClientSecret.
- the car end after receiving the ClientSecret, uses Vehicle.SK to decrypt the data to obtain the ShareSecret.
- the mobile phone generates the shared key ShareKey and the second challenge code Challenge; the mobile phone calculates the first confirmation value Confirmation.
- the car sends verification response information to the mobile phone; the verification response information may carry the second confirmation value Confirmation calculated by the second device.
- the mobile phone determines that the second confirmation value Confirmation is the same as the first confirmation value Confirmation calculated by the mobile phone, the verification of the second confirmation value Confirmation is successful.
- the mobile phone may also include: when the mobile phone successfully verifies the second confirmation value Confirmation, the mobile phone sends session establishment completed (Session Establish Finished) information to the car.
- session establishment completion information may be used to indicate successful verification of the second confirmation value.
- the mobile phone and the car establish a secure channel based on the master key, and the car configuration operation is completed based on this channel.
- the mobile phone and/or the car can perform all or part of the steps in the embodiment shown in Figure 16.
- the embodiments of the present application are not limited to this as long as it constitutes a complete technical solution.
- a secure communication channel can be established for the configuration operation, making the data interaction during the configuration operation of the mobile phone on the car more secure.
- a control channel can be established between the mobile phone and the car, and the channel control channel realizes the control of the car by the mobile phone.
- the secure channel used to send configuration information may or may not be released.
- the mobile phone can also send configuration information to the car through a safe channel during the control process.
- the size of the sequence numbers of the above-mentioned processes does not mean the order of execution.
- the execution order of each process should be determined by its functions and internal logic, and should not be used in this application.
- the implementation of the examples does not constitute any limitations.
- the terms “downlink”, “uplink” and “sidelink” are used to indicate the transmission direction of signals or data, where “downlink” is used to indicate that the transmission direction of signals or data is from the station.
- uplink is used to indicate that the transmission direction of the signal or data is the second direction from the user equipment of the cell to the site
- sidelink is used to indicate that the transmission direction of the signal or data is A third direction sent from User Device 1 to User Device 2.
- downlink signal indicates that the transmission direction of the signal is the first direction.
- the term “and/or” is only an association relationship describing associated objects, indicating that three relationships can exist. Specifically, A and/or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone. In addition, the character "/" in this article generally indicates that the related objects are an "or" relationship.
- Figure 17 is a schematic structural diagram of a communication device provided by an embodiment of the present application. It is applied to the first device. As shown in Figure 17, the communication device 1700 includes:
- Determining unit 1701 used to determine the first key
- Establishing unit 1702 configured to establish a first channel between the first device and the second device based on the first key
- the communication unit 1703 is configured to send configuration information to the second device based on the first channel.
- the communication unit 1703 is further configured to: send first information to the second device; the first information is used to indicate: at least one authentication type information supported by the first device; receive the The second information sent by the second device; the second information is used to indicate first authentication type information, and the first authentication type information is included in the at least one authentication type information.
- the communication unit 1703 is further configured to: send a first confirmation value to the second device; receive third information sent by the second device; and the third information is used to indicate a request for the second device. A confirmation value verification is successful.
- the communication unit 1703 is further configured to: receive a second confirmation value sent by the second device; if the verification of the second confirmation value is successful, send a second confirmation value to the second device. Four information; the fourth information is used to indicate that the verification of the second confirmation value is successful.
- the determining unit 1701 is further configured to: obtain a first random value; the communication unit 1703 is further configured to: receive a second random value sent by the second device; the determining unit 1701 is further configured to: based on The first random value and the second random value determine the first key.
- the determining unit 1701 is further configured to: determine a third key based on the first digital key and the second key of the second device; based on the third key, the first random value and the The second random value is used to determine the first key.
- the determining unit 1701 is further configured to: determine a first salt value based on the first random value and the second random value; determine a first salt value based on the third key and the first salt value. The first key.
- the determining unit 1701 is further configured to: obtain a preset value; determine the first random value based on the preset value, the third key, the first random value and the second random value. A key.
- the first key is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following: The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the first digital key and the second key of the second device; the first salt value is Determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the determining unit 1701 is further configured to determine a first confirmation value based on the first random value and the second random value.
- the determining unit 1701 is further configured to: determine a first challenge code based on the first random value and the second random value; determine a first challenge code based on the first challenge code, the first random value and The second random value determines the first confirmation value.
- the determining unit 1701 is further configured to: merge the first challenge code, the first random value and the second random value to obtain a second merged result; The result is hashed to obtain the first confirmation value.
- the determining unit 1701 is further configured to: determine a third key based on the first digital key and the second key of the second device; based on the third key, the first random value and the The second random value is used to determine the first challenge code.
- the determining unit 1701 is further configured to: determine a first salt value based on the first random value and the second random value; determine a first salt value based on the third key and the first salt value.
- the first challenge code is further configured to: determine a first salt value based on the first random value and the second random value; determine a first salt value based on the third key and the first salt value. The first challenge code.
- the determining unit 1701 is further configured to: obtain a preset value; determine the first random value based on the preset value, the third key, the first random value and the second random value. A challenge code.
- the first challenge code is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following : The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the first digital key and the second key of the second device; the first salt value It is determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the first result is a result obtained by merging the first key and the first challenge code.
- the determining unit 1701 is further configured to: merge the first random value and the second random value to obtain a first merged result; perform a hash operation on the first merged result to obtain The first salt value.
- the communication unit 1703 is further configured to: send first verification information to the second device; the first verification information includes a first random value and a first signature.
- the communication unit 1703 is also configured to: receive second verification information sent by the second device; the second verification information includes a second random value and a second signature; the determination unit 1701 is also For: determining the first key when the first device successfully verifies the second signature based on the second random value and the second key of the second device.
- the determining unit 1701 is further configured to determine the first key based on the first digital key and the second key of the second device.
- the determining unit 1701 is also used to: obtain a third confirmation value; use the first key to encrypt the third confirmation value to obtain the first confirmation value; the communication unit 1703 is also used to: The second device sends the first confirmation value.
- the communication unit 1703 is also configured to: receive indication information sent by the second device, or send indication information to the second device; the indication information is used to indicate that the determination is based on the key agreement algorithm. The first key.
- the communication unit 1703 is further configured to: receive a second confirmation value sent by the second device; and if the second confirmation value is successfully verified based on the first key, send the second confirmation value to the second device.
- the second device sends fourth information; the fourth information is used to indicate that the verification of the second confirmation value is successful.
- the determining unit 1701 is further configured to: obtain a first secret; and determine the first key based on the first secret.
- the determining unit 1701 is further configured to: obtain a first random value; and determine the first key based on the first secret and the first random value.
- the determining unit 1701 is further configured to: determine a second salt value based on the first random value; determine the first key based on the second salt value and the first secret.
- the determining unit 1701 is further configured to: obtain a preset value; and determine the first key based on the preset value and the first secret.
- the first key is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following: The first secret, the second salt value, the preset value, and the second length; wherein the second salt value is determined based on the first random value obtained by the first device; the length of the second result is less than or equal to the second length.
- the determining unit 1701 is further configured to: obtain a first random value; and determine a first confirmation value based on the first secret and the first random value.
- the determining unit 1701 is further configured to: determine a second challenge code based on the first secret; determine the first confirmation value based on the second challenge code and the first random value.
- the determining unit 1701 is further configured to: merge the second challenge code and the first random value to obtain a third merged result; perform a hash operation on the third merged result to obtain The first confirmation value.
- the determining unit 1701 is further configured to: determine a second salt value based on the first random value; determine the second challenge code based on the second salt value and the first secret.
- the determining unit 1701 is further configured to: obtain a preset value; and determine the second challenge code based on the preset value and the first secret.
- the second challenge code is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following : first secret, second salt value, preset value, second length; wherein the second salt value is determined based on the first random value obtained by the first device; the length of the second result, Less than or equal to the second length.
- the second result is a result obtained by merging the first key and the second challenge code.
- the determining unit 1701 is also configured to perform a hash operation on the first random value to obtain the second salt value.
- the determining unit 1701 is further configured to: determine a second secret based on the second key of the second device and the first secret; the communication unit 1703 is further configured to: provide the second device with Send third verification information; the third verification information includes the first random value, the first signature and the second secret obtained by the first device.
- the determining unit 1701 is further configured to determine the first signature based on the first random value and the first digital key.
- the communication unit 1703 is also used to: discover broadcast Bluetooth information; the Bluetooth information carries at least one of the following: an identifier of the second device, indication information indicating that the second device is configurable; establishing a unit 1702. Also configured to: establish a Bluetooth connection with the second device based on the Bluetooth information.
- Figure 18 is a schematic structural composition diagram of another communication device provided by an embodiment of the present application, which is applied to the second device. As shown in Figure 18, the communication device 1800 includes:
- Establishing unit 1802 configured to establish a first channel between the first device and the second device based on the first key
- the communication unit 1803 is configured to receive configuration information sent by the first device based on the first channel.
- the communication unit 1803 is further configured to: receive the first information sent by the first device; the first information is used to indicate: at least one authentication type information supported by the first device; The first device sends second information; the second information is used to indicate first authentication type information, and the first authentication type information is included in the at least one authentication type information.
- the communication unit 1803 is further configured to: receive the first confirmation value sent by the first device; if the verification of the first confirmation value is successful, send the first confirmation value to the first device. Three information; the third information is used to indicate that the verification of the first confirmation value is successful.
- the communication unit 1803 is further configured to: send a second confirmation value to the first device; receive fourth information sent by the first device; and the fourth information is used to indicate a request for the first device. 2. Confirm that the value verification is successful.
- the communication unit 1803 is also configured to: receive the first random value sent by the first device; the determining unit 1801 is also configured to: obtain a second random value; based on the first random value and the The second random value is used to determine the first key.
- the determining unit 1801 is further configured to: determine a third key based on the second digital key and the fourth key of the second device; based on the third key, the first random value and the The second random value is used to determine the first key.
- the determining unit 1801 is further configured to: determine a first salt value based on the first random value and the second random value; determine a first salt value based on the third key and the first salt value. The first key.
- the determining unit 1801 is further configured to: obtain a preset value; determine the first random value based on the preset value, the third key, the first random value and the second random value. A key.
- the first key is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following: The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the second digital key and the fourth key of the second device; the first salt value is Determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the determining unit 1801 is further configured to determine a second confirmation value based on the first random value and the second random value.
- the determining unit 1801 is further configured to: determine a first challenge code based on the first random value and the second random value; determine a first challenge code based on the first challenge code, the first random value and The second random value determines the second confirmation value.
- the determining unit 1801 is further configured to: merge the first challenge code, the first random value and the second random value to obtain a second merged result; The result is hashed to obtain the second confirmation value.
- the determining unit 1801 is further configured to: determine a third key based on the second digital key and the fourth key of the second device; based on the third key, the first random value and the The second random value is used to determine the first challenge code.
- the determining unit 1801 is further configured to: determine a first salt value based on the first random value and the second random value; determine a first salt value based on the third key and the first salt value.
- the first challenge code is further configured to: determine a first salt value based on the first random value and the second random value; determine a first salt value based on the third key and the first salt value. The first challenge code.
- the determining unit 1801 is further configured to: obtain a preset value; determine the first random value based on the preset value, the third key, the first random value and the second random value. A challenge code.
- the first challenge code is determined based on a first result; the first result is determined by a first key derivation algorithm, and the parameters in the first key derivation algorithm include at least one of the following : The third key, the first salt value, the preset value, and the first length; wherein the third key is determined based on the second digital key and the fourth key of the second device; the first salt value It is determined based on the first random value and the second random value; the length of the first result is less than or equal to the first length.
- the first result is a result obtained by merging the first key and the first challenge code.
- the determining unit 1801 is further configured to: merge the first random value and the second random value to obtain a first merged result; perform a hash operation on the first merged result to obtain The first salt value.
- the communication unit 1803 is further configured to: receive the first verification information sent by the first device; the first verification information includes a first random value and a first signature; the determination unit 1801 is also configured to: Used to: determine the first key when the second device successfully verifies the first signature based on the second digital key and the first random value.
- the communication unit 1803 is further configured to: send second verification information to the first device; the second verification information includes a second random value and a second signature.
- the determining unit 1801 is further configured to determine the first key based on the second digital key and the fourth key of the second device.
- the determining unit 1801 is also used to: obtain a third confirmation value; use the first key to encrypt the third confirmation value to obtain a second confirmation value; the communication unit 1803 is also used to: The first device sends the second confirmation value.
- the communication unit 1803 is further configured to: send indication information to the first device, or receive indication information sent by the first device; the indication information is used to indicate that the determination is based on the key agreement algorithm. The first key.
- the communication unit 1803 is further configured to: receive the first confirmation value sent by the first device; if the first confirmation value is successfully verified based on the first key, the third The second device sends third information to the first device; the third information is used to indicate that the verification of the first confirmation value is successful.
- the communication unit 1803 is further configured to: receive the second secret sent by the first device; the determining unit 1801 is further configured to: determine the first key based on the second secret.
- the determining unit 1801 is further configured to: determine a first secret based on the second secret and the fourth key of the second device; determine the first key based on the first secret.
- the communication unit 1803 is further configured to: receive the first random value sent by the first device; the determining unit 1801 is further configured to: determine based on the first secret and the first random value. The first key.
- the determining unit 1801 is further configured to: determine a second salt value based on the first random value; determine the first key based on the second salt value and the first secret.
- the determining unit 1801 is further configured to: obtain a preset value; and determine the first key based on the preset value and the first secret.
- the first key is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following: The first secret, the second salt value, the preset value, and the second length; wherein the second salt value is determined based on the first random value obtained by the second device; the length of the second result is less than or equal to the second length.
- the communication unit 1803 is further configured to: receive the first random value sent by the first device; the determining unit 1801 is further configured to: determine based on the first secret and the first random value. Second confirmation value.
- the determining unit 1801 is further configured to: determine a second challenge code based on the first secret; determine the second confirmation value based on the second challenge code and the first random value.
- the determining unit 1801 is further configured to: merge the second challenge code and the first random value to obtain a third merged result; perform a hash operation on the third merged result to obtain The second confirmation value.
- the determining unit 1801 is further configured to: determine a second salt value based on the first random value; determine the second challenge code based on the second salt value and the first secret.
- the determining unit 1801 is further configured to: obtain a preset value; and determine the second challenge code based on the preset value and the first secret.
- the second challenge code is determined based on a second result; the second result is determined by a second key derivation algorithm, and the parameters in the second key derivation algorithm include at least one of the following : first secret, second salt value, preset value, second length; wherein the second salt value is determined based on the first random value obtained by the second device; the length of the second result, Less than or equal to the second length.
- the second result is a result obtained by merging the first key and the second challenge code.
- the determining unit 1801 is also configured to perform a hash operation on the first random value to obtain the second salt value.
- the communication unit 1803 is further configured to: receive third verification information sent by the first device; the third verification information includes the first random value obtained by the first device, the first The signature and the second secret; determining unit 1801 is also configured to: when the second device successfully verifies the first signature based on the second digital key and the first random value, based on the Two secrets, identified by the first key.
- the communication unit 1803 is also configured to: broadcast Bluetooth information; the Bluetooth information carries at least one of the following: an identification of the second device, and indication information indicating that the second device is configurable.
- Figure 19 is a schematic structural diagram of a communication device provided by an embodiment of the present application.
- the communication device 1900 may be a first device or a second device.
- the communication device 1900 shown in Figure 19 may include a processor 1910 and a memory 1920.
- the memory 1920 stores a computer program that can be run on the processor 1910.
- the processor 1910 executes the program, any of the above embodiments can be implemented. communication methods.
- the memory 1920 may be a separate device independent of the processor 1910, or may be integrated into the processor 1910.
- the communication device 1900 may also include a transceiver 1930, and the processor 1910 may control the transceiver 1930 to communicate with other devices, specifically, may send information or data to other devices, or Receive information or data from other devices.
- the transceiver 1930 may include a transmitter and a receiver.
- the transceiver 1930 may further include an antenna, and the number of antennas may be one or more.
- the communication device 1900 may specifically be the first device in the embodiment of the present application, and the communication device 1900 may implement the corresponding processes implemented by the first device in the various methods of the embodiment of the present application. For simplicity, in This will not be described again.
- the communication device 1900 may specifically be the second device in the embodiment of the present application, and the communication device 1900 may implement the corresponding processes implemented by the second device in the various methods of the embodiment of the present application. For simplicity, in This will not be described again.
- Embodiments of the present application also provide a computer storage medium that stores one or more programs, and the one or more programs can be executed by one or more processors to implement any implementation of the present application. Communication method in the example.
- the computer-readable storage medium can be applied to the first device or the second device in the embodiment of the present application, and the computer program causes the computer to perform the various methods of the embodiment of the present application by the first device or the second device.
- the corresponding process for the implementation of the second device will not be described again for the sake of simplicity.
- FIG 20 is a schematic structural diagram of a chip according to an embodiment of the present application.
- the chip 2000 shown in Figure 20 includes a processor 2010.
- the processor 2010 is used to call and run a computer program from the memory, so that the device equipped with the chip executes The communication method in any embodiment of the present application.
- chip 2000 may also include memory 2020 .
- the processor 2010 can call and run the computer program from the memory 2020 to implement the method in the embodiment of the present application.
- the memory 2020 may be a separate device independent of the processor 2010 , or may be integrated into the processor 2010 .
- the chip 2000 may also include an input interface 2030.
- the processor 2010 can control the input interface 2030 to communicate with other devices or chips. Specifically, the processor 2010 can obtain information or data sent by other devices or chips.
- the chip 2000 may also include an output interface 2040.
- the processor 2010 can control the output interface 2040 to communicate with other devices or chips. Specifically, it can output information or data to other devices or chips.
- the chip can be applied to the first device in the embodiments of the present application, and the chip can implement the corresponding processes implemented by the first device in the various methods of the embodiments of the present application. For the sake of brevity, they will not be repeated here. Repeat.
- the chip can be applied to the second device in the embodiments of the present application, and the chip can implement the corresponding processes implemented by the second device in the various methods of the embodiments of the present application. For the sake of brevity, they will not be repeated here. Repeat.
- chips mentioned in the embodiments of this application may also be called system-on-chip, system-on-a-chip, system-on-chip or system-on-chip, etc.
- Embodiments of the present application also provide a computer program product.
- the computer program product includes a computer storage medium.
- the computer storage medium stores a computer program.
- the computer program includes instructions that can be executed by at least one processor. When the When the instructions are executed by the at least one processor, the communication method in any embodiment of the present application is implemented.
- the computer program product can be applied to the first device or the second device in the embodiments of the present application, and the computer program instructions cause the computer to perform the various methods in the embodiments of the present application by the first device or the second device.
- the corresponding process of equipment implementation will not be described here for the sake of simplicity.
- the computer program product in the embodiment of this application may also be called a software product in other embodiments.
- An embodiment of the present application also provides a computer program, which causes a computer to execute the communication method in any embodiment of the present application.
- the computer program can be applied to the first device or the second device in the embodiments of the present application.
- the computer program executes the first device in each method of the embodiments of the present application.
- the corresponding process implemented by the device or the second device will not be described again for the sake of simplicity.
- the processor, communication device or chip in the embodiment of the present application may be an integrated circuit chip and has signal processing capabilities. During the implementation process, each step of the above method embodiment can be completed through an integrated logic circuit of hardware in the processor or instructions in the form of software.
- the above-mentioned processor, communication device or chip may include the integration of any one or more of the following: general-purpose processor, application-specific integrated circuit (Application Specific Integrated Circuit, ASIC), digital signal processor (Digital Signal Processor, DSP), digital Digital Signal Processing Device (DSPD), Programmable Logic Device (PLD), Field Programmable Gate Array (FPGA), Central Processing Unit (CPU), graphics Processor (Graphics Processing Unit, GPU), embedded neural network processing units (NPU), controller, microcontroller, microprocessor, programmable logic device, discrete gate or transistor logic device, discrete Hardware components.
- ASIC Application Specific Integrated Circuit
- DSP digital Signal Processor
- DSPD digital Digital Signal Processing Device
- PLD Programmable Logic Device
- FPGA Field Programmable Gate Array
- a general-purpose processor may be a microprocessor or the processor may be any conventional processor, etc.
- the steps of the method disclosed in conjunction with the embodiments of the present application can be directly implemented by a hardware decoding processor, or executed by a combination of hardware and software modules in the decoding processor.
- the software module can be located in random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, registers and other mature storage media in this field.
- the storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in combination with its hardware.
- non-volatile memory can be read-only memory (Read-Only Memory, ROM), programmable read-only memory (Programmable ROM, PROM), erasable programmable read-only memory (Erasable PROM, EPROM), electrically removable memory. Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory. Volatile memory may be Random Access Memory (RAM), which is used as an external cache.
- RAM Random Access Memory
- RAM static random access memory
- DRAM dynamic random access memory
- DRAM synchronous dynamic random access memory
- SDRAM double data rate synchronous dynamic random access memory
- Double Data Rate SDRAM DDR SDRAM
- enhanced SDRAM ESDRAM
- Synchlink DRAM SLDRAM
- Direct Rambus RAM Direct Rambus RAM
- the memory in the embodiment of the present application can also be static random access memory (static RAM, SRAM) or dynamic random access memory.
- static RAM, SRAM static random access memory
- dynamic RAM, DRAM synchronous dynamic random access memory
- SDRAM double data rate synchronous dynamic random access memory
- double data rate SDRAM double data rate SDRAM
- DDR SDRAM double data rate SDRAM
- enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
- synchronous link dynamic random access memory synchronous link dynamic random access memory
- Direct Rambus RAM, DR RAM direct memory bus random access memory
- memories in embodiments of the present application are intended to include, but are not limited to, these and any other suitable types of memories.
- the disclosed systems, devices and methods can be implemented in other ways.
- the device embodiments described above are only illustrative.
- the division of the units is only a logical function division. In actual implementation, there may be other division methods.
- multiple units or components may be combined or can be integrated into another system, or some features can be ignored, or not implemented.
- the coupling or direct coupling or communication connection between each other shown or discussed may be through some interfaces, and the indirect coupling or communication connection of the devices or units may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or they may be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
- each functional unit in each embodiment of the present application can be integrated into one processing unit, each unit can exist physically alone, or two or more units can be integrated into one unit.
- the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium.
- the technical solution of the present application is essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product.
- the computer software product is stored in a storage medium, including Several instructions are used to cause a computer device (which may be a first device or a second device, etc.) to execute all or part of the steps of the methods described in various embodiments of this application.
- the aforementioned storage media include: U disk, mobile hard disk, read-only memory (Read-Only Memory,) ROM, random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code. .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请提供一种通信方法、装置、设备、存储介质、芯片、产品及程序,该方法包括:第一设备确定第一钥匙;所述第一设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道;所述第一设备基于所述第一通道,向所述第二设备发送配置信息。
Description
本申请涉及移动通信技术领域,具体涉及一种通信方法、装置、设备、存储介质、芯片、产品及程序。
相关技术中,设备的配置信息是在设备出厂前已经配置的,用户无法对设备的配置信息重新进行配置或者对设备的配置信息进行修改,从而导致用户无法根据需求对设备的配置信息进行调整,给用户使用设备带来不便。
发明内容
本申请实施例提供一种通信方法、装置、设备、存储介质、芯片、产品及程序。
第一方面,本申请实施例提供一种通信方法,所述方法包括:
第一设备确定第一钥匙;
所述第一设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道;
所述第一设备基于所述第一通道,向所述第二设备发送配置信息。
第二方面,本申请实施例提供一种通信方法,所述方法包括:
第二设备确定第一钥匙;
所述第二设备基于所述第一钥匙,建立第一设备与所述第二设备之间的第一通道;
所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
第三方面,本申请实施例提供一种通信装置,所述通信装置包括:
确定单元,用于确定第一钥匙;
建立单元,用于基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道;
通信单元,用于基于所述第一通道,向所述第二设备发送配置信息。
第四方面,本申请实施例提供一种通信装置,所述通信装置包括:
确定单元,用于确定第一钥匙;
建立单元,用于基于所述第一钥匙,建立第一设备与所述第二设备之间的第一通道;
通信单元,用于基于所述第一通道,接收所述第一设备发送的配置信息。
第五方面,本申请实施例提供一种第一设备,包括:处理器和存储器,
所述存储器存储有可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现第一方面所述方法。
第六方面,本申请实施例提供一种第二设备,包括:处理器和存储器,
所述存储器存储有可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现第二方面所述方法。
第七方面,本申请实施例提供一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面或者第二方面所述方法。
第八方面,本申请实施例提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,以执行如第一方面或者第二方面所述方法。
第九方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机存储介质,所述计算机存储介质存储计算机程序,所述计算机程序包括能够由至少一个处理器执行的指令,当所述指令由所述至少一个处理器执行时实现第一方面或者第二方面所述方法。
第十方面,本申请实施例提供一种计算机程序,所述计算机程序使得计算机执行如第一方面或者第二方面所述方法。
在本申请实施例中,第一设备确定第一钥匙;第一设备基于第一钥匙,建立第一设备与第二设备之间的第一通道;第一设备基于第一通道,向第二设备发送配置信息。这样,通过第一设备向第二设备发送配置信息即可实现第一设备对第二设备的配置,使得第二设备的配置信息能够根据需求进行调整,提高了用户使用第二终端的便利性;另外,第一设备在基于第一钥匙建立的第一通道上,向第二设备发送配置信息,从而提高了传输配置信息时的安全性。
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例的一个应用场景的示意图;
图2为本申请实施例提供的一种安全芯片中存储的数字钥匙的示意图;
图3为本申请实施例提供的一种车电子控制单元中存储的车钥匙对和数字钥匙证书的示意图;
图4为本申请实施例提供的一种通信方法的流程示意图;
图5为本申请实施例提供的另一种通信方法的流程示意图;
图6为本申请实施例提供的又一种通信方法的流程示意图;
图7为本申请实施例提供的再一种通信方法的流程示意图;
图8为本申请另一实施例提供的一种通信方法的流程示意图;
图9为本申请又一实施例提供的一种通信方法的流程示意图;
图10为本申请再一实施例提供的一种通信方法的流程示意图;
图11为本申请另一实施例提供的另一种通信方法的流程示意图;
图12为本申请另一实施例提供的又一种通信方法的流程示意图;
图13为本申请另一实施例提供的再一种通信方法的流程示意图;
图14为本申请又一实施例提供的另一种通信方法的流程示意图;
图15为本申请又一实施例提供的又一种通信方法的流程示意图;
图16为本申请又一实施例提供的再一种通信方法的流程示意图;
图17为本申请实施例提供的通信装置的结构组成示意图;
图18为本申请实施例提供的另一通信装置的结构组成示意图;
图19是本申请实施例提供的一种通信设备示意性结构图;
图20是本申请实施例的芯片的示意性结构图。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
图1为本申请实施例的一个应用场景的示意图,如图1所示,通信***100可以包括第一设备101和第二设备102,第一设备101和第二设备102之间可以通过有线或无线的方式通信。例如,第一设备101和第二设备102可以通过连接线(例如,USB连接线)进行通信。又例如,第一设备101可以通过蓝牙通信、无线保真(Wireless Fidelity)WiFi通信、4G网络通信、5G网络通信或未来的6G网络通信。
第一设备101或第二设备102可以称为用户设备(User Equipment,UE)、移动台(Mobile Station,MS)、移动终端(Mobile Terminal,MT)、用户单元、用户站、移动站、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。第一设备101或第二设备102可以包括以下之一或者至少两者的组合:个人数字助理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、服务器、手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、掌上电脑、台式计算机、个人数字助理、便捷式媒体播放器、智能音箱、导航装置、智能手表、智能眼镜、智能项链等可穿戴设备、计步器、数字TV、虚拟现实(Virtual Reality,VR)终端设备、增强现实(Augmented Reality,AR)终端设备、工业控制 (industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、车、车的处理模块、车的通信模块、车的控制模块、车电子控制单元(Electronic Control Unit,ECU)、车载设备、车载模块、无线调制解调器(modem)、手持设备(handheld)、客户终端设备(Customer Premise Equipment,CPE)、智能家电。
在一些实施例中,如图1所示,第一设备101和第二设备102可以为不同的设备,例如,第一设备101为手机,第二设备102为车。与图1不同的是,在另一些实施例中,第一设备和第二设备可以为相同的设备,例如,第一设备和第二设备可以均为手机,或者,第一设备和第二设备可以均为车。在一些实施例中,一个第一设备101可以与多个第二设备102能够通信。例如,如果一个用户有多个车的情况下,可以将用户的第一设备101关联多个第二设备102。在另一些实施例中,一个第二设备102可以与多个第一设备101能够通信。例如,车主的第一设备101可以关联第二设备102,车主的家人的第一设备101也可以关联第二设备102。
图1示例性地示出了一个第一设备101与一个第二设备102之间的通信的场景,可选地,该无线通信***100还可以包括一个第一设备101与多个第二设备102之间的通信的场景,多个第一设备101与一个第二设备102之间通信的场景或者多个第一设备101与多个第二设备102之间通信的场景。
需要说明的是,图1只是以示例的形式示意本申请所适用的***,当然,本申请实施例所示的方法还可以适用于其它***。此外,本文中术语“***”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。还应理解,在本申请的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。还应理解,在本申请的实施例中提到的“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。还应理解,在本申请的实施例中提到的“预定义”、“协议约定”、“预先确定”或“预定义规则”可以通过在设备(例如,包括第一设备和/或第二设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。比如预定义可以是指协议中定义的。还应理解,本申请实施例中,所述“协议”可以指通信领域的标准协议,例如可以包括长期演进(Long Term Evolution,LTE)协议、新无线(New Radio,NR)协议以及应用于未来的通信***中的相关协议,本申请对此不做限定。
需要说明的是,本申请实施例中的钥匙和密钥可以作同一理解。例如,第一钥匙可以理解为第一密钥,共享钥匙可以理解为共享密钥,第二钥匙可以理解为第二密钥等等。
为便于理解本申请实施例的技术方案,以下对本申请实施例的相关技术进行说明,以下相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。
按照车联网联盟(Car Connectivity Consortium,CCC)的标准,数字钥匙(Digital Key)可以存储在第一设备的安全芯片(Secure Element)中。可选地,安全芯片也可以称为安全模块或安全元件,数字钥匙包括:数字钥匙公私钥对、车证书中的公钥Vehicle.PK和授权认证信息Authorized.PK组成。可选地,数字钥匙公私钥对包括数字钥匙公钥DigitalKey.PK和数字钥匙私钥DigitalKey.SK。可选地,授权认证信息可以在车侧生成。可选地,车证书中的公钥可以称为车公钥。
图2为本申请实施例提供的一种安全芯片中存储的数字钥匙的示意图,如图2所示,安全芯片中可以存储有数字钥匙。可选地,一个数字钥匙可以对应一辆车。需要说明的是,图2示出了在安全芯片中存储有一个数字钥匙,但是在其它实施例中,安全芯片中可以存储有多个数字钥匙。
在图2中,数字钥匙包括:数字钥匙私钥DigitalKey.SK、数字钥匙公钥DigitalKey.PK、授权认证信息Authorized.PK以及车公钥Vehicle.PK。
图3为本申请实施例提供的一种车电子控制单元中存储的车钥匙对和数字钥匙证书的示意图,如图3所示,车电子控制单元(车ECU)中包括车钥匙对Vehicle Key Pair和数字钥匙证书Digital Key Certificate。其中,车钥匙对可以包括车私钥Vehicle.SK和车公钥Vehicle.PK,数字钥匙证书可以包括:数字钥匙公钥DigitalKey.PK和实例(Instance)认证机构(Certificated Authority,CA)签名(Signature)。
然而,相关技术中没有提供针对第一设备在控制车前对车进行配置的安全配对方案。
为便于理解本申请实施例的技术方案,以下通过具体实施例详述本申请的技术方案。以上相关技术作为可选方案与本申请实施例的技术方案可以进行任意结合,其均属于本申请实施例的保护范围。本申请实施例包括以下内容中的至少部分内容。
图4为本申请实施例提供的一种通信方法的流程示意图,如图4所示,该方法包括:
S401、第一设备确定第一钥匙。
S402、所述第一设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S403、所述第一设备基于所述第一通道,向所述第二设备发送配置信息。
在一些实施例中,第一钥匙可以称为以下之一:共享钥匙(sharekey)、共享密钥、主钥匙、主密钥。可选地,第一设备可以基于预配置信息确定第一钥匙。可选地,第一设备可以基于第二设备发送的配置信息确定第一钥匙。可选地,第一钥匙可以预先存储在第一设备中。可选地,第一钥匙可以是在每次建立第一通道前第一设备生成的。
可选地,不同时间建立的第一通道所对应的第一钥匙可以相同或不同。
可选地,第一通道可以是通过第一钥匙加密的通道。可选地,第一通道可以称为加密通道或安全通道。可选地,第一通道可以包括数据通道和/或控制通道。
需要说明的是,本申请任一实施例中的通道可以称为通路、路径或信道等。
可选地,第一钥匙可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
在本申请实施例中,第一设备确定第一钥匙;第一设备基于第一钥匙,建立第一设备与第二设备之间的第一通道;第一设备基于第一通道,向第二设备发送配置信息。这样,通过第一设备向第二设备发送配置信息即可实现第一设备对第二设备的配置,使得第二设备的配置信息能够根据需求进行调整,提高了用户使用第二终端的便利性;另外,第一设备在基于第一钥匙建立的第一通道上,向第二设备发送配置信息,从而提高了传输配置信息时的安全性。
图5为本申请实施例提供的另一种通信方法的流程示意图,如图5所示,该方法包括:
S501、第二设备确定第一钥匙。
S502、所述第二设备基于所述第一钥匙,建立第一设备与所述第二设备之间的第一通道。
S503、所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
可选地,第二设备确定的第一钥匙和第一设备确定的钥匙可以相同。
可选地,第二设备可以基于预配置信息确定第一钥匙。可选地,第二设备可以基于第一设备发送的配置信息确定第一钥匙。可选地,第一钥匙可以预先存储在第二设备中。可选地,第一钥匙可以是在每次建立第一通道前第二设备生成的。
图6为本申请实施例提供的又一种通信方法的流程示意图,如图6所示,该方法包括:
S601、第一设备确定第一钥匙。
S602、第二设备确定第一钥匙。
S603、所述第一设备和第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
可选地,第一通道可以仅用于传输配置信息。可选地,在另一些实施例中,第一通道可以不仅用于传输配置信息,还可以用于传输其它信息。
可选地,在第一通道建立完成的情况下,第一设备和第二设备可以断开蓝牙连接,或者,第一设备和第二设备依旧保持蓝牙连接。
S604、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
可选地,配置信息可以包括:用于第一设备和第二设备之间互操作的互操作证书。
可选地,配置信息可以包括:第二设备的访问控制列表(Access Control Lists,ACL)。可选地,第二设备的ACL可以包括一个或多个特定的IP地址对应的ACL。可选地,一个或多个特定的IP地址可以包括第一设备的IP地址。在一些实施例中,第二设备在接收到ACL的情况下,可以将接收到的ACL和第二终端预先存储的ACL进行合并,得到新的ACL,并存储新的ACL。在另一些实施例中,第二设备可以删除原先存储的ACL,并存储第一设备发送的ACL。可选地,配置信息还可以包括针对ACL的操作信息。其中操作信息可以包括以下至少之一:增加信息、删除信息、修改信息。
可选地,第二设备可以具有多个功能模块,配置信息可以包括对至少一个功能模块的配置信息。
示例性地,配置信息可以包括对车的显示模块进行配置的配置信息。例如,配置信息可以包括 以下至少之一:显示模块显示文字的字体、显示模块中显示文字的大小、显示模块显示图像的大小、显示模块的显示风格、显示模块的显示模式、显示模块的显示主题等。例如,显示模式可以包括:正常模式或简约模式等。这样,在用户打开显示模块的情况下,显示模块可以根据第一设备发送的配置信息进行显示。
示例性地,配置信息可以包括对车的播放模块进行配置的配置信息。例如,配置信息可以包括以下至少之一:播放音量、播放语音包、播放语速等。这样,用户在使用播放模块播放时,播放模块就可以根据第一设备发送的配置信息进行播放。
示例性地,配置信息可以包括对车的空调进行配置的配置信息。例如,配置信息可以包括以下至少之一:空调的温度、空调的风速、空调的工作模式等。这样,用户在打开空调的情况下,空调就可以根据第一设备发送的配置信息进行工作。
可选地,用户可以对第一设备的应用程序(Application,App)进行操作,以使第一设备生成配置信息。可选地,用户可以对第一设备的设置界面进行操作,以使第一设备生成配置信息。可选地,用户可以对第一设备的网页进行操作,以使第一设备生成配置信息。可选地,第一设备可以接收第二设备关联的服务器发送的配置信息,从而得到第一配置信息。可选地,本申请任一实施例中第二设备关联的服务器可以为车服务器。
图7为本申请实施例提供的再一种通信方法的流程示意图,如图7所示,该方法包括:
S701、所述第一设备向所述第二设备发送第一信息;所述第二设备接收所述第一设备发送的第一信息;所述第一信息用于指示:所述第一设备支持的至少一个鉴权类型信息。
示例性地,至少一个鉴权类型信息,可以指示以下至少之一:数字钥匙证书(digital_key_cert)、数字钥匙、密码(passcode)等。应理解,至少一个鉴权类型信息还可以包括其它,本申请实施例对此不作限制。
可选地,本申请任一实施例中的数字钥匙可以理解为数字密钥。
可选地,至少一个鉴权类型信息可以是第一设备能够支持的所有或部分鉴权类型信息。可选地,用户可以对第一设备能够支持的所有鉴权类型信息进行选择,第一设备将选择的鉴权类型信息确定为至少一个鉴权类型信息。可选地,至少一个鉴权类型信息可以是第一设备能够支持的所有鉴权类型信息中,与第二设备关联的鉴权类型信息。
S702、所述第二设备向所述第一设备发送第二信息;所述第一设备接收所述第二设备发送的第二信息;所述第二信息用于指示第一鉴权类型信息,所述第一鉴权类型信息包括在所述至少一个鉴权类型信息中。
其中,第一鉴权类型信息可以是从至少一个鉴权类型信息中选择的信息。
可选地,第一鉴权类型信息可以为一个鉴权类型信息或多个鉴权类型信息。可选地,第一鉴权类型信息是第二设备支持的鉴权类型信息。
示例性地,第一鉴权类型信息可以指示数字钥匙证书。又示例性地,第一鉴权类型信息可以指示密码,或者指示数字钥匙证书和密码。
可选地,第二设备可以显示至少一个鉴权类型信息,用户可以从至少一个鉴权类型信息中选择第一鉴权类型信息。可选地,第二设备可以存储有第二设备支持的各个鉴权类型信息的优先级,第二设备可以基于该优先级和至少一个鉴权类型信息,从至少一个鉴权类型信息中,选出第二设备支持的且优先级最高的鉴权类型信息,将该鉴权类型信息确定为第一鉴权类型信息。可选地,第二设备可以从至少一个鉴权类型信息中,随机选择第二设备支持的一个鉴权类型信息,并将该选择的鉴权类型信息确定为第一鉴权类型信息。
S703、第一设备确定第一钥匙。
可选地,第一设备可以在接收到的第一鉴权类型信息指示数字钥匙证书或数字钥匙的情况下,确定第一钥匙。
可选地,第二设备接收到的第一鉴权类型信息为多个鉴权类型信息的情况下,可以从多个鉴权类型信息中,选择指示数字钥匙证书或数字钥匙的鉴权类型信息,然后向第二设备发送指示数字钥匙证书或数字钥匙的鉴权类型信息。
可选地,第一设备在下次需要与第二设备建立通道的情况下,可以直接向第二设备发送指示数字钥匙证书或数字钥匙的鉴权类型信息,无需发送用于指示所述第一设备支持的至少一个鉴权类型信息。
S704、第二设备确定第一钥匙。
可选地,第二设备可以在发送的第一鉴权类型信息指示数字钥匙证书或数字钥匙的情况下,确 定第一钥匙。可选地,第二设备可以在接收到第一设备发送的指示数字钥匙证书或数字钥匙的鉴权类型信息的情况下,确定第一钥匙。
S705、所述第一设备和第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S706、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
图8为本申请另一实施例提供的一种通信方法的流程示意图,如图8所示,该方法包括:
S801、所述第一设备向所述第二设备发送第一确认值;所述第二设备接收所述第一设备发送的第一确认值。
可选地,本申请任一实施例中的确认值(例如,包括第一确认值或第二确认值或第三确认值)可以称为Confirmation。
可选地,第一确认值可以为第一确认信息,或者,第一确认值中可以包括在第一确认信息中。可选地,第一确认值可以与第一设备确定的第一钥匙关联。
S802、在对所述第一确认值校验成功的情况下,所述第二设备向所述第一设备发送第三信息;所述第一设备接收所述第二设备发送的第三信息;所述第三信息用于指示对所述第一确认值校验成功。
可选地,第二设备对所述第一确认值校验成功,可以包括:第二设备确定第二确认值,在第一确认值和第二确认值匹配或对应的情况下,确定对第一确认值校验成功。可选地,第二确认值可以与第二设备确定的第一钥匙关联。
可选地,第一确认值和第二确认值匹配或对应,可以包括:第一确认值和第二确认值相同。可选地,第一确认值和第二确认值还可以有其它的匹配或对应方式,例如,第一确认值中的部分值和第二确认值中的部分值相同,或者,第一确认值中的至少部分值和第二确认值中的至少部分值符合预设的关系,本申请实施例对此不作限制。
S803、第一设备确定第一钥匙。
S804、第二设备确定第一钥匙。
可选地,本申请实施例并不限定S801-S802与S803-S804之间执行的先后顺序。例如S801-S802可以在S803-S804之前执行,或者S801-S802可以在S803-S804之后执行。
S805、所述第一设备和第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S806、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
图9为本申请又一实施例提供的一种通信方法的流程示意图,如图9所示,该方法包括:
S901、所述第二设备向所述第一设备发送第二确认值;所述第一设备接收所述第二设备发送的第二确认值。
S902、在对所述第二确认值校验成功的情况下,所述第一设备向所述第二设备发送第四信息;所述第二设备接收所述第一设备发送的第四信息;所述第四信息用于指示对所述第二确认值校验成功。
可选地,第一设备对所述第一确认值校验成功,可以包括:第一设备确定第一确认值,在第一确认值和第二确认值匹配或对应的情况下,确定对第二确认值校验成功。
S903、第一设备确定第一钥匙。
S904、第二设备确定第一钥匙。
可选地,本申请实施例并不限定S901-S902与S903-S904之间执行的先后顺序。例如S901-S902可以在S903-S904之前执行,或者S901-S902可以在S903-S904之后执行。
S905、所述第一设备和第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S906、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
以下说明第一设备确定第一钥匙的一种实施方式:
在一些实施例中,所述方法还包括:所述第一设备获得第一随机值;所述第一设备接收所述第二设备发送的第二随机值;第一设备确定第一钥匙,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
需要说明的是,随机值(包括第一随机值或第二随机值)可以理解为随机数或随机信息,例如,第一随机值可以为第一随机数或第一随机信息,第二随机值可以为第二随机数或第二随机信息。可选地,随机值可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
可选地,第一随机值可以为客户端随机值(ClientRandom),或者,第一随机值可以称为设备随机值、终端随机值、手机随机值或APP随机值等。可选地,第二随机值可以为服务器随机值(ServerRandom),或者,第二随机值可以为车随机值。
可选地,第一随机值可以为第一设备随机生成的值。可选地,第一随机值可以根据第一设备的时间戳生成的值。可选地,第二随机值可以为第二设备随机生成的值。可选地,第二随机值可以根据第二设备的时间戳生成的值。可选地,第一随机值的比特长度可以与第二随机值的比特长度相同或不同。可选地,第一随机值和第二随机值可以不同或者相同。可选地,第一随机值和第二随机值可以基于相同的配置信息或不同的配置信息生成。
在一些实施例中,所述第一设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙;所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
需要说明的是,在本申请任一实施例中,第一数字钥匙可以为数字钥匙私钥DigitalKey.SK。第二设备的第二钥匙可以为第二设备的公钥(例如,车公钥Vehicle.PK)。第三钥匙可以为输入钥匙(inputKey)。可选地,输入钥匙可以理解为输入密钥。
可选地,第一设备可以采用密钥协商算法,基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙。可选地,本申请任一实施例中的密钥协商算法可以包括以下之一:椭圆曲线迪菲-赫尔曼秘钥交换(Elliptic Curve Diffie–Hellman key Exchange,ECDH)算法、Diffie-Hellman算法或国密SM2算法等等,本申请实施例并不限定所使用的具体的密钥协商算法。
例如,第三钥匙=密钥协商算法(第一数字钥匙,第二设备的第二钥匙),其中,密钥协商算法可以为ECDH等。示例性地,inputKey=密钥协商算法(如ECDH等)(DigitalKey.SK,Vehicle.PK)。
需要说明的是,第一设备中的DigitalKey.SK不能直接读取,需要通过安全芯片访问的接口使用安全芯片中的DigitalKey.SK。可选地,Vehicle.PK和/或DigitalKey.PK可以通过或不通过安全芯片访问的接口读取。
在一些实施例中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,可以包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第一设备基于所述第三钥匙和所述第一盐值,确定所述第一钥匙。
可选地,第一盐值可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
可选地,所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值,可以包括:确定第一随机值和第二随机值的合并值,基于合并值确定第一盐值。例如,可以对该合并值进行哈希运算,得到第一盐值。可选地,本申请实施例不限定对第一随机值和第二随机值进行合并的合并方式,例如,可以将第二随机值置于第一随机值之后,或者,可以将第一随机值置于第二随机值之后,或者,可以将第一随机值和第二随机值交叉合并。
可选地,第一盐值Salt的计算方式可以为Salt=哈希算法(ClientRandom||ServerRandom)。其中,本申请任一实施例中的“||”为连接符号。
在一些实施例中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,可以包括:所述第一设备获得预置值;所述第一设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
可选地,本申请任一实施例中预置值也可以称为预置固定值或固定值。可选地,本申请任一实施例中预置值可以为预置的固定的字符串。可选地,本申请任一实施例中预置值可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
可选地,预置值可以是预先配置在第一设备中。例如,预置值可以是第一设备第一次关联第二设备的时候,第一设备生成的,或者第二设备向第一设备配置的,或者与第二设备关联的服务器发送的。可选地,第一设备可以从自身的存储空间中读取预置值。
可选地,本申请任一实施例中的预置值还可以称为密钥信息(密钥info)或者提供密钥(ProvisionKey)。
可选地,第一设备可以基于所述预置值、所述第三钥匙以及所述第一盐值,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第一结果确定的;所述第一结果通过第一密钥派生算法 确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第一数字钥匙和所述第二设备的第二钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
可选地,第一密钥派生算法可以包括密钥派生函数(Key Derivation Function,KDF)。可选地,第一密钥派生算法可以通过KDF接口实现。
可选地,第一密钥派生函数或者第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度。可选地,第一密钥派生函数或者第一密钥派生算法中的参数包括:第三钥匙、第一盐值、预置值以及第一长度。
可选地,第一结果可以为KDF(第三钥匙,第一盐值,预置值,第一长度)。示例性地,第一结果可以为KDF(inputKey,Salt,info,length),其中,inputKey,Salt,info,length分别表示第三钥匙、第一盐值、预置值、第一长度。
可选地,第一钥匙可以是从第一结果中选择的部分字符或部分比特。可选地,第一钥匙的长度(例如字符长度或比特长度)可以为预配置的长度,或者基于预配置信息确定的长度,或者是第二设备配置的长度。可选地,可以预配置第一钥匙对应的位置和/或长度,基于该预配置的第一钥匙对应的位置和/或长度,从第一结果中选择第一钥匙。可选地,第一结果的长度可以为第一长度。
以下说明第一设备确定第一确认值的一种实施方式:
在一些实施例中,所述方法还包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一确认值。
在一些实施例中,所述第一设备基于所述第一随机值和所述第二随机值,确定第一确认值,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一挑战码;所述第一设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第一确认值。
可选地,第一挑战码也可以称为第一挑战口令或第一挑战值。可选地,第一挑战码可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
在一些实施例中,所述第一设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第一确认值,包括:所述第一设备对所述第一挑战码、所述第一随机值和所述第二随机值进行合并,得到第二合并结果;所述第一设备对所述第二合并结果进行哈希运算,得到所述第一确认值。
可选地,本申请实施例并不限定对所述第一挑战码、所述第一随机值和所述第二随机值进行合并的合并方式。例如,可以对所述第一挑战码、所述第一随机值和所述第二随机值依次进行连接,得到第二合并结果。又例如,可以对所述第一随机值、所述第二随机值以及所述第一挑战码依次进行连接,得到第二合并结果。再例如,可以对第一挑战码与所述第一随机值和所述第二随机值交叉合并的结果进行连接,得到第二合并结果。再例如,可以对所述第一挑战码、所述第一随机值和所述第二随机值进行交叉合并,得到第二合并结果。
可选地,本实施例中的第一确认值可以用Confirmation表示,该Confirmation=哈希算法(Challenge||ClientRandom||ServerRandom)。
在一些实施例中,所述第一设备基于所述第一随机值和所述第二随机值,确定第一挑战码,包括:所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙;所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
可选地,该实施例中所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙的方式,可以参照上述实施例的描述。
在一些实施例中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第一设备基于所述第三钥匙和所述第一盐值,确定所述第一挑战码。
可选地,该实施例中所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值的方式,可以参照上述实施例的描述。
在一些实施例中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第一设备获得预置值;所述第一设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
可选地,第一设备可以基于所述预置值、所述第三钥匙以及第一盐值,确定所述第一挑战码。
在一些实施例中,所述第一挑战码是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一 长度;其中,所述第三钥匙是基于第一数字钥匙和所述第二设备的第二钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
可选地,第一挑战码可以是从第一结果中选择的部分字符或部分比特。可选地,第一挑战码的长度(例如字符长度或比特长度)可以为预配置的长度,或者基于预配置信息确定的长度,或者是第二设备配置的长度。可选地,第一设备可以预配置第一挑战码对应的位置和/或长度,基于该预配置的第一挑战码对应的位置和/或长度,从第一结果中选择第一挑战码。
可选地,第一挑战码的位置和第一钥匙的位置可以部分重叠,或者,第一挑战码的位置和第一钥匙的位置无重叠。可选地,第一挑战码的长度可以与第一钥匙的长度相同或不同。示例性地,第一挑战码的长度可以与第一钥匙的长度之间相差目标数量个比特或字符。
可选地,第一挑战码可以为第一结果中,除去第一钥匙之外的值。
在一些实施例中,所述第一结果为所述第一钥匙和所述第一挑战码合并得到的结果。
可选地,第一钥匙可以在第一挑战码之前,或者,第一钥匙可以在第一挑战码之后,或者,第一钥匙可以与第一挑战码交叉设置。例如,第一结果可以为第一钥匙||第一挑战码。示例性地,本实施例中的第一结果可以为ShareKey||Challenge。ShareKey表示第一钥匙,Challenge表示第一挑战码。
在一些实施例中,所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值,包括:所述第一设备对所述第一随机值和所述第二随机值进行合并,得到第一合并结果;所述第一设备对所述第一合并结果进行哈希运算,得到所述第一盐值。
以下说明第二设备确定第一钥匙的一种实施方式:
在一些实施例中,所述方法还包括:所述第二设备接收所述第一设备发送的第一随机值;所述第二设备获得第二随机值;第二设备确定第一钥匙,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,所述第二设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第二设备基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙;所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
需要说明的是,本申请任一实施例中的第二数字钥匙可以为数字钥匙公钥DigitalKey.PK。本申请任一实施例中的第二设备的第四钥匙可以为第二设备的私钥(例如,车私钥Vehicle.SK)。本申请任一实施例中的第三钥匙可以为输入钥匙(inputKey)。可选地,输入钥匙可以理解为输入密钥。
可选地,第二设备可以采用密钥协商算法,基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙。
可选地,第二设备确定的第三钥匙和第一设备确定的第三钥匙是相同的钥匙。
在一些实施例中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第二设备基于所述第三钥匙和所述第一盐值,确定所述第一钥匙。
可选地,第二设备确定第一盐值的方式,可以与第一设备确定第一盐值的方式相同。可选地,第二设备确定的第一盐值与第一设备确定的第一盐值是相同的盐值。
在一些实施例中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第二设备获得预置值;所述第二设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
可选地,预置值可以是预先配置在第二设备中。例如,预置值可以是第二设备第一次关联第一设备的时候,第二设备生成的,或者第一设备向第二设备配置的,或者与第二设备关联的服务器发送的。可选地,第二设备可以从自身的存储空间中读取预置值。
可选地,第二设备可以基于所述预置值、所述第三钥匙以及所述第一盐值,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第二数字钥匙和所述第二设备的第四钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
可选地,第二设备确定第一结果的方式可以与第一设备确定第一结果的方式相同。可选地,第二设备基于第一结果确定第一钥匙的方式,可以与第一设备基于第一结果确定第一钥匙的方式相同。
以下说明第二设备确定第二确认值的一种实施方式:
在一些实施例中,所述方法还包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第二确认值。
可选地,第二确认值可以与第一确认值相同或不同。示例性地,第一设备和第二设备关联的情况下,第二确认值可以与第一确认值相同,否则不同。
在一些实施例中,所述第二设备基于所述第一随机值和所述第二随机值,确定第二确认值,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第一挑战码;所述第二设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第二确认值。
在一些实施例中,所述第二设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第二确认值,包括:所述第二设备对所述第一挑战码、所述第一随机值和所述第二随机值进行合并,得到第二合并结果;所述第二设备对所述第二合并结果进行哈希运算,得到所述第二确认值。
可选地,第二设备得到第二合并结果的方式,可以与第一设备得到第二合并结果的方式相同。可选地,第二设备得到的第二合并结果可以与第一设备得到的第二合并结果相同。
在一些实施例中,所述第二设备基于所述第一随机值和所述第二随机值,确定第一挑战码,包括:所述第二设备基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙;所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
可选地,该实施例中基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙的方式,可以参照上述实施例的描述。
在一些实施例中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第二设备基于所述第三钥匙和所述第一盐值,确定所述第一挑战码。
可选地,该实施例中基于所述第一随机值和所述第二随机值,确定第一盐值的方式,可以参照上述实施例的描述。
在一些实施例中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第二设备获得预置值;所述第二设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
可选地,第二设备基于所述预置值、所述第三钥匙以及第一盐值,确定所述第一挑战码。
在一些实施例中,所述第一挑战码是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第二数字钥匙和所述第二设备的第四钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
可选地,第二设备可以预配置第一挑战码对应的位置和/或长度,基于该预配置的第一挑战码对应的位置和/或长度,从第一结果中选择第一挑战码。
可选地,第二设备确定的第一挑战码可以与第一设备确定的第一挑战码相同。
在一些实施例中,所述第一结果为所述第一钥匙和所述第一挑战码合并得到的结果。
在一些实施例中,所述第二设备基于所述第一随机值和所述第二随机值,确定第一盐值,包括:所述第二设备对所述第一随机值和所述第二随机值进行合并,得到第一合并结果;所述第二设备对所述第一合并结果进行哈希运算,得到所述第一盐值。
图10为本申请再一实施例提供的一种通信方法的流程示意图,如图10所示,该方法包括:
S1001、所述第一设备获得第一随机值;
S1002、所述第一设备向所述第二设备发送第一校验信息;所述第二设备接收所述第一设备发送的第一校验信息;所述第一校验信息包括第一随机值和第一签名。
S1003、所述第二设备在所述第二设备基于第二数字钥匙和所述第一随机值,对所述第一签名校验成功的情况下,所述第二设备获得第二随机值;所述第二设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
S1004、第一设备确定第一钥匙。
S1005、所述第一设备和所述第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S1006、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
图11为本申请另一实施例提供的另一种通信方法的流程示意图,如图11所示,该方法包括:
S1101、所述第二设备获得第二随机值。
S1102、所述第二设备向所述第一设备发送第二校验信息;所述第一设备接收所述第二设备发送 的第二校验信息;所述第二校验信息包括第二随机值和第二签名。
S1103、在所述第一设备基于所述第二随机值和所述第二设备的第二钥匙,对所述第二签名校验成功的情况下,确定所述第一钥匙。
S1104、第二设备确定第一钥匙。
S1105、所述第一设备和所述第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S1106、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
图12为本申请另一实施例提供的又一种通信方法的流程示意图,如图12所示,需要说明的是,图12中的车可以对应上述的第二设备,图12中的手机可以对应上述的第一设备,手机在一些实施例中可以为手机APP,该方法包括:
S1201、车进行蓝牙广播(对应下述实施例中的广播蓝牙信息),广播的信息中携带车的身份信息(对应下述实施例中的第二设备的标识)和/或指示车是否可配置(commissionable)的信息(对应下述的用于指示第二设备可配置的指示信息)。
可选地,蓝牙广播可以包括蓝牙低功耗(Bluetooth Low Energy,BLE)广播。可选地,车的身份信息可以包括车标识(vehicle_identifier)。
例如,车发送BLE配对广播,车在手机建立完数字车钥匙连接后还能使用BLE进行配对广播,广播中应该至少包含vehicle identifier(车厂分配的ID)、commissionable(是否可配置)信息。
S1202、手机发现车的蓝牙广播,确定车的身份和/或车可配置。
S1203、手机和车建立蓝牙连接。
可选地,在建立安全通道之前,手机和车通过蓝牙连接进行信息传输。
S1204、手机向车发送配置阶段会话建立请求(对应上述实施例中的第一信息)。
该请求中携带手机支持的鉴权类型,例如,数字密钥证书(digital_key_cert)和密码(passcode)。例如,手机向车请求配置阶段session建立,请求中携带手机支持的鉴权类型[digital_key_cert,passcode]与车进行协商。
S1205、车向手机发送请求响应信息(对应上述实施例中的第二信息)。
请求响应信息指示选择配置阶段主密钥生成方式。可选地,请求响应信息还包括车的标识,例如,车辆设备ID(Vehicle Device ID)。例如,选择配置阶段主密钥生成方式可以为数字钥匙证书(digital_key_cert)方式(对应上述的第一鉴权类型信息)。
例如,车根据session请求(对应上述的配置阶段会话建立请求),选择生成配置阶段密钥生成方式“digital key cert”和Vehicle Device ID(用于手机使用该字段确定和具体哪个车建立连接)。
S1206、手机生成客户端随机数(ClientRandom,对应上述实施例中的第一随机数),通过相关接口使用数字钥匙DigitalKey.SK(对应上述实施例中的第一数字钥匙)签名ClientRandom生成客户端签名(ClientSignature,对应上述实施例中的第一签名)。
可选地,本申请任一实施例中的相关接口可以为安全芯片的接口。
例如,手机生成随机数ClientRandom,通过相关接口使用DigitalKey.SK签名ClientRandom生成ClientSignature。
S1207、手机向车发送验证请求;该验证请求中携带客户端随机数ClientRandom和客户端签名ClientSignature。
例如,手机发送验证申请(即验证请求)给车,携带数据CleintRandom和ClientSignature。
S1208、车解析验证请求;获得存储的数字密钥证书(digital_key_cert)的公钥(DigitalKey.PK,对应上述的第二数字钥匙),校验客户端签名ClientSignature;在校验成功的情况下,生成服务器随机数(ServerRandom,对应上述的第二随机数);使用车私钥(Vehicle.SK,对应上述实施例中的第二设备的第四钥匙)对服务器随机数ServerRandom签名得到服务器签名(ServerSignature,对应上述的第二签名)。
可选地,车可以通过客户端随机数ClientRandom和数字钥匙公钥对客户端签名ClientSignature进行校验。
例如,车获得存储的digital_key_cert的公钥DigitalKey.PK,校验ClientSignature,生成随机数ServerRandom,使用Vehicle.SK对ClientRandom签名得到ServerSignature。
S1209、车向手机发送验证响应信息;该验证响应信息中可以携带服务器随机数ServerRandom和服务器签名ServerSignature。
例如,车返回验证响应(即验证响应信息),携带数据ServerRandom和ServerSignature。
车还可以生成ShareKey和Challenge;ShareKey和Challenge的计算方法参考手机端的步骤;车侧在计算inputKey时的参数不同,在车侧inputKey=密钥协商算法(如ECDH等)(Vehicle.SK,DigitalKey.PK)。但是车侧计算的inputKey和手机侧计算的inputKey相同。
S1210、手机解析验证响应信息;通过相关接口使用车公钥(Vehicle.PK,对应上述实施例中的第二设备的第二钥匙)校验服务器签名ServerSignature;在校验成功的情况下,手机生成共享密钥(ShareKey,对应上述实施例中的第一钥匙)和第一挑战码(Challenge);手机计算第一确认值(Confirmation)。
可选地,手机可以通过服务器随机数ServerRandom和车公钥Vehicle.PK对发送的ServerSignature进行校验。
例如,手机收到车的验证响应后,通过相关接口使用Vehicle.PK校验ServerSignature;生成ShareKey和Challenge;
首先,手机生成inputKey,inputKey=密钥协商算法(如ECDH等)(DigitalKey.SK,Vehicle.PK)。应理解,在手机侧DigitalKey.SK不能直接读取,只能通过安全芯片访问的接口使用安全芯片中的数据。
其次,生成Salt(盐值)=哈希算法(ClientRandom||ServerRandom)。其中,本申请任一实施例中的“||”为连接符号。
再次,获得密钥info(对应上述的预置值),密钥info可以为ProvisionKey。
然后,生成ShareKey:ShareKey||Challenge=KDF(inputKey,Salt,info,length)。其中,info为密钥info,length为上述的第一长度。
最后,计算Confirmation,Confirmation(对应上述的第一确认值)=哈希算法(Challenge||ClientRandom||ServerRandom)。
S1211、手机向车发送第一确认值Confirmation。
S1212、车生成共享密钥ShareKey和第一挑战码Challenge;车计算第二确认值Confirmation。
例如,车侧计算第二确认值Confirmation,计算方法与手机侧计算第一确认值Confirmation的步骤相同,然后与第一设备发来的Confirmation比较,相同表示检验通过。
S1213、车对第一确认值Confirmation进行校验。
可选地,在第一确认值Confirmation与第二确认值Confirmation相同的情况下,确定对第一确认值Confirmation校验成功。
S1214、在车对第一确认值Confirmation校验成功的情况下,车向手机发送会话建立完成(Session Establish Finished)信息。
例如,车返回配对信道建立完成(对应会话建立完成)消息给手机。
可选地,会话建立完成信息可以用于指示对第一确认值校验成功。
S1215、手机和车建立基于主密钥的安全通道,配置车操作基于该通道完成。
例如,手机与车建立基于数字钥匙密钥协商的安全通道,配置车操作基于该通道完成。
可选地,手机和/或车可以执行图12所示实施例中的全部步骤或部分步骤,本申请实施例对此不作限制,只要构成一个完整的技术方案即可。
以下说明确定第一钥匙的另一种实施方式:
在一些实施例中,在第一设备侧,所述方法还包括:所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定所述第一钥匙。
在一些实施例中,在第二设备侧,所述方法还包括:所述第二设备基于第二数字钥匙和所述第二设备的第四钥匙,确定所述第一钥匙。
可选地,第一设备可以采用密钥协商算法,基于第一数字钥匙和所述第二设备的第二钥匙,确定所述第一钥匙。第二设备可以采用密钥协商算法,基于第二数字钥匙和所述第二设备的第四钥匙,确定所述第一钥匙。
在一些实施例中,在第一设备侧,所述方法还包括:所述第一设备获得第三确认值;所述第一设备采用所述第一钥匙加密所述第三确认值,得到第一确认值;所述第一设备向所述第二设备发送所述第一确认值。
可选地,第三确认值可以是第二设备和/或第一设备预置的,或者,第三确认值可以是第二设备向第一设备配置的,或者第三确认值可以是第一设备向第二设备配置的,或者第三确认值可以是与第二设备关联的服务器发送的。
可选地,第三确认值可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
这样,所述第二设备获得第三确认值;所述第二设备采用所述第一钥匙加密所述第三确认值,得到第二确认值。第二设备在确定第一确认值和第二确认值相同的情况下,确定对第一确认值校验成功,进而第二设备向第一设备发送校验成功的指示信息,然后第一设备和第二设备在此基础上执行确定第一钥匙的步骤。
在另一些实施例中,校验的步骤可以是第一设备执行的。例如,在一些实施例中,在第二设备侧,所述方法还包括:所述第二设备获得第三确认值;所述第二设备采用所述第一钥匙加密所述第三确认值,得到第二确认值;所述第二设备向所述第一设备发送所述第二确认值。
这样,所述第一设备获得第三确认值;所述第一设备采用所述第一钥匙加密所述第三确认值,得到第一确认值。第一设备在确定第一确认值和第二确认值相同的情况下,确定对第二确认值校验成功,进而第一设备向第二设备发送校验成功的指示信息,然后第一设备和第二设备在此基础上执行确定第一钥匙的步骤。
在一些实施例中,在第一设备侧,所述方法还包括:所述第一设备接收所述第二设备发送的指示信息,或者,所述第一设备向所述第二设备发送指示信息;所述指示信息用于指示基于密钥协商算法确定所述第一钥匙。
在一些实施例中,在第二设备侧,所述方法还包括:所述第二设备向所述第一设备发送指示信息,或者,所述第二设备接收所述第一设备发送的指示信息;所述指示信息用于指示基于密钥协商算法确定所述第一钥匙。
在一些实施例中,在第一设备侧,所述方法还包括:所述第一设备接收所述第二设备发送的第二确认值;在所述第一设备基于所述第一钥匙对所述第二确认值校验成功的情况下,所述第一设备向所述第二设备发送第四信息;所述第四信息用于指示对所述第二确认值校验成功。
在一些实施例中,在第二设备侧,所述方法还包括:所述第二设备接收所述第一设备发送的第一确认值;在所述第二设备基于所述第一钥匙对所述第一确认值校验成功的情况下,所述第二设备向所述第一设备发送第三信息;所述第三信息用于指示对所述第一确认值校验成功。
这样,在对第一确认值和/或第二确认值校验成功的情况下,第一设备和第二设备执行确定第一钥匙的步骤。
图13为本申请另一实施例提供的再一种通信方法的流程示意图,如图13所示,需要说明的是,图13中的车可以对应上述的第二设备,图13中的手机可以对应上述的第一设备,手机在一些实施例中可以为手机APP,该方法包括:
S1301、车进行蓝牙广播,广播的信息中携带车的身份信息和/或指示车是否可配置(commissionable)的信息。
S1302、手机发现车的蓝牙广播,确定车的身份和/或车可配置。
S1303、手机和车建立蓝牙连接。
S1304、手机向车发送配置阶段会话建立请求(对应上述实施例中的第一信息)。
该请求中携带手机支持的鉴权类型,例如,数字密钥证书(digital_key_cert)和密码(passcode)。
S1305、车向手机发送请求响应信息(对应上述实施例中的第二信息)。
请求响应信息指示选择配置阶段主密钥生成方式和/或直接协商主密钥提示(对应上述的基于密钥协商算法确定所述第一钥匙)。可选地,请求响应信息还包括车的标识,例如,车辆设备ID(Vehicle Device ID)。例如,选择配置阶段主密钥生成方式可以为数字钥匙证书(digital_key_cert)方式(对应上述的第一鉴权类型信息)。
可选地,直接协商主密钥提示,采用的方案是车向手机发送指示信息,该指示信息指示协商主密钥。
S1306、车使用数字钥匙公钥DigitalKey.PK和车私钥Vehicle.SK生成主密钥ShareKey。
例如,车可以基于直接协商主密钥提示,使用DigitalKey.PK和Vehicle.SK生成主密钥ShareKey。
S1307、手机使用车公钥Vehicle.PK和数字钥匙私钥DigitalKey.SK生成主密钥ShareKey。
例如,手机可以基于直接协商主密钥提示,使用Vehicle.PK和DigitalKey.SK生成主密钥ShareKey。
在本申请实施例中,手机和车直接生成ShareKey,ShareKey的确定方式可以与图12对应的实施例中的inputKey的确定方式相同。
S1308、手机向车发送使用主密钥ShareKey加密的第一确认值Confirmation。
在确认Confirmation时使用固定值,该值的方式可以是手机和车配对前协商好,或者手机从车 上获得,或者远程获得(例如通过车服务器获得)等。
S1309、车校验第一确认值Confirmation。
S1310、在车对第一确认值Confirmation校验成功的情况下,车向手机发送会话建立完成(Session Establish Finished)信息。
可选地,会话建立完成信息可以用于指示对第一确认值Confirmation校验成功。
S1311、手机和车建立基于主密钥的安全通道,配置车操作基于该通道完成。
可选地,手机和/或车可以执行图13所示实施例中的全部步骤或部分步骤,本申请实施例对此不作限制,只要构成一个完整的技术方案即可。
以下说明第一设备确定第一钥匙的又一种实施方式:
在一些实施例中,所述方法还包括:所述第一设备获得第一秘密;所述第一设备基于所述第一秘密确定所述第一钥匙。
需要说明的是,第一秘密可以为第一秘密值或第二秘密信息。可选地,第一秘密可以为共享秘密(ShareSecret)。可选地,第一秘密可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。可选地,第一秘密可以是第一设备预先配置的,或者第一秘密可以根据预配置信息生成的,可选地,第一秘密和/或用于生成第一秘密的配置信息,是第二设备发送的,或者,是第二设备关联的服务器发送的。
在一些实施例中,所述第一设备基于所述第一秘密确定所述第一钥匙,包括:所述第一设备获得第一随机值;所述第一设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙。
可选地,关于第一随机值的描述,以及第一设备获得第一随机值的方式可以参照上述实施例中的说明,此处不再赘述。
在一些实施例中,所述第一设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙,包括:所述第一设备基于所述第一随机值,确定第二盐值;所述第一设备基于所述第二盐值和所述第一秘密,确定所述第一钥匙。
可选地,第二盐值可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
可选地,基于所述第一随机值,确定第二盐值,可以包括:对第一随机值进行哈希运算,得到第二盐值。可选地,第二盐值Salt的计算方式可以为Salt=哈希算法(ClientRandom)。
在一些实施例中,所述第一设备基于所述第一秘密确定所述第一钥匙,包括:所述第一设备获得预置值;所述第一设备基于所述预置值和所述第一秘密,确定所述第一钥匙。
可选地,关于预置值、以及第一设备获得预置值的描述,请参阅上述实施例的描述,此处不再赘述。
可选地,第一设备可以基于所述预置值、所述第一秘密以及所述第二盐值,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第一设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
可选地,第二密钥派生算法可以包括密钥派生函数(Key Derivation Function,KDF)。可选地,第二密钥派生算法可以通过KDF接口实现。
可选地,第二密钥派生函数或者第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度。可选地,第二密钥派生函数或者第二密钥派生算法中的参数包括:第一秘密、第二盐值、预置值以及第二长度。
可选地,第二结果可以为KDF(第一秘密、第二盐值、预置值、第二长度)。示例性地,第二结果可以为KDF(ShareSecret,salt,info,length),其中,ShareSecret,salt,info,length分别表示第一秘密、第二盐值、预置值、第二长度。
可选地,第一钥匙可以是从第二结果中选择的部分字符或部分比特。可选地,第一钥匙的长度(例如字符长度或比特长度)可以为预配置的长度,或者基于预配置信息确定的长度,或者是第一设备配置的长度。可选地,可以预配置第一钥匙对应的位置和/或长度,基于该预配置的第一钥匙对应的位置和/或长度,从第二结果中选择第一钥匙。可选地,第二结果的长度可以为第二长度。
以下说明第一设备确定第一确认值的一种实施方式:
在一些实施例中,所述方法还包括:所述第一设备获得第一随机值;所述第一设备基于所述第一秘密和所述第一随机值,确定第一确认值。
在一些实施例中,所述第一设备基于所述第一秘密和所述第一随机值,确定第一确认值,确定第一确认值,包括:所述第一设备基于所述第一秘密,确定第二挑战码;所述第一设备基于所述第二挑战码和所述第一随机值,确定所述第一确认值。
可选地,第二挑战码也可以称为第二挑战口令或第二挑战值。可选地,第二挑战码可以包括一个或多个比特组成的序列,或者可以包括一个或多个字符组成的序列。
在一些实施例中,所述第一设备基于所述第二挑战码和所述第一随机值,确定所述第一确认值,包括:所述第一设备对所述第二挑战码和所述第一随机值进行合并,得到第三合并结果;所述第一设备对所述第三合并结果进行哈希运算,得到所述第一确认值。
可选地,本申请实施例并不限定对所述第二挑战码和所述第一随机值进行合并的合并方式。例如,第二挑战码可以在第一随机值之前,或者,第二挑战码可以在第一随机值之后,或者,第二挑战码和第一随机值进行交叉合并。
可选地,本实施例中的第一确认值可以用Confirmation表示,该Confirmation=哈希算法(Challenge||ClientRandom)。
在一些实施例中,所述第一设备基于所述第一秘密,确定第二挑战码,包括:所述第一设备基于所述第一随机值,确定第二盐值;所述第一设备基于所述第二盐值和所述第一秘密,确定所述第二挑战码。
在一些实施例中,所述第一设备基于所述第一秘密,确定第二挑战码,包括:所述第一设备获得预置值;所述第一设备基于所述预置值和所述第一秘密,确定所述第二挑战码。
可选地,第一设备可以基于所述预置值、所述第一秘密以及所述第二盐值,确定所述第二挑战码。
在一些实施例中,所述第二挑战码是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第一设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
可选地,第二挑战码可以是从第二结果中选择的部分字符或部分比特。可选地,第二挑战码的长度(例如字符长度或比特长度)可以为预配置的长度,或者基于预配置信息确定的长度,或者是第一设备配置的长度。可选地,第一设备可以预配置第二挑战码对应的位置和/或长度,基于该预配置的第二挑战码对应的位置和/或长度,从第二结果中选择第二挑战码。
可选地,第二挑战码的位置和第一钥匙的位置可以部分重叠,或者,第二挑战码的位置和第一钥匙的位置无重叠。可选地,第二挑战码的长度可以与第一钥匙的长度相同或不同。示例性地,第二挑战码的长度可以与第一钥匙的长度之间相差设定数量个比特或字符。
可选地,第二挑战码可以为第二结果中,除去第一钥匙之外的值。
在一些实施例中,所述第二结果为所述第一钥匙和所述第二挑战码合并得到的结果。
可选地,第一钥匙可以在第二挑战码之前,或者,第一钥匙可以在第二挑战码之后,或者,第一钥匙可以与第二挑战码交叉设置。例如,第二结果可以为第一钥匙||第二挑战码。示例性地,本实施例中的第二结果可以为ShareKey||Challenge。ShareKey表示第一钥匙,Challenge表示第二挑战码。
在一些实施例中,所述第一设备基于所述第一随机值,确定第二盐值,包括:所述第一设备对所述第一随机值进行哈希运算,得到所述第二盐值。
以下说明第二设备确定第一钥匙的一种实施方式:
在一些实施例中,所述方法还包括:所述第二设备接收所述第一设备发送的第二秘密;所述第二设备基于第二秘密,确定所述第一钥匙。
可选地,第二秘密可以是基于第一秘密确定的。例如,在一些实施例中,第二秘密可以基于所述第二设备的第二钥匙(公钥,例如Vehicle.PK)和所述第一秘密确定。示例性地,可以使用第二设备的第二钥匙加密第一秘密,得到第二秘密。在另一些实施例中,第二秘密可以基于第一数字钥匙(例如DigitalKey.SK)和所述第一秘密确定。示例性地,可以使用第一数字钥匙加密第一秘密,得到第二秘密。
可选地,第一设备可以使用密钥协商算法对第一秘密进行加密,得到第二秘密。
在一些实施例中,所述第二设备基于第二秘密,确定所述第一钥匙,包括:所述第二设备基于所述第二秘密和所述第二设备的第四钥匙,确定第一秘密;所述第二设备基于所述第一秘密确定所述第一钥匙。示例性地,第二设备可以使用第二设备的第四钥匙对第二秘密进行解密,得到第一秘密。
在另一些实施例中,所述第二设备基于第二秘密,确定所述第一钥匙,包括:所述第二设备基于所述第二秘密和所述第二数字钥匙(例如DigitalKey.PK),确定第一秘密;所述第二设备基于所述第一秘密确定所述第一钥匙。示例性地,第二设备可以使用第二数字钥匙对第二秘密进行解密,得到第一秘密。
可选地,第二设备可以使用密钥协商算法对第二秘密进行解密,得到第一秘密。
在一些实施例中,所述第二设备基于所述第一秘密确定所述第一钥匙,包括:所述第二设备接收所述第一设备发送的第一随机值;所述第二设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙。
在一些实施例中,所述第二设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙,包括:所述第二设备基于所述第一随机值,确定第二盐值;所述第二设备基于所述第二盐值和所述第一秘密,确定所述第一钥匙。
可选地,关于第二盐值和基于第一随机值确定第二盐值的方法的描述,可以参照上述实施例中的描述,此处不再赘述。
可选地,第二设备确定第二盐值的方式,可以与第一设备确定第二盐值的方式相同。可选地,第二设备确定的第二盐值与第一设备确定的第二盐值是相同的盐值。
在一些实施例中,所述第二设备基于所述第一秘密确定所述第一钥匙,包括:所述第二设备获得预置值;所述第二设备基于所述预置值和所述第一秘密,确定所述第一钥匙。
可选地,第二设备可以基于所述预置值、所述第二盐值以及所述第一秘密,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第二设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
可选地,第二设备确定第二结果的方式可以与第一设备确定第二结果的方式相同。可选地,第二设备基于第二结果确定第一钥匙的方式,可以与第一设备基于第二结果确定第一钥匙的方式相同。
以下说明第二设备确定第二确认值的一种实施方式:
在一些实施例中,所述方法还包括:所述第二设备接收所述第一设备发送的第一随机值;所述第二设备基于所述第一秘密和所述第一随机值,确定第二确认值。
在一些实施例中,所述第二设备基于所述第一秘密和所述第一随机值,确定第二确认值,包括:所述第二设备基于所述第一秘密,确定第二挑战码;所述第二设备基于所述第二挑战码和所述第一随机值,确定所述第二确认值。
在一些实施例中,所述第二设备基于所述第二挑战码和所述第一随机值,确定所述第二确认值,包括:所述第二设备对所述第二挑战码和所述第一随机值进行合并,得到第三合并结果;所述第二设备对所述第三合并结果进行哈希运算,得到所述第二确认值。
可选地,第二设备得到第三合并结果的方式,可以与第一设备得到第三合并结果的方式相同。可选地,第二设备得到的第三合并结果可以与第一设备得到的第三合并结果相同。
在一些实施例中,所述第二设备基于所述第一秘密,确定第二挑战码,包括:所述第二设备基于所述第一随机值,确定第二盐值;所述第二设备基于所述第二盐值和所述第一秘密,确定所述第二挑战码。
在一些实施例中,所述第二设备基于所述第一秘密,确定第二挑战码,包括:所述第二设备获得预置值;所述第二设备基于所述预置值和所述第一秘密,确定所述第二挑战码。
可选地,第二设备可以基于预置值、所述第二盐值以及所述第一秘密,确定所述第二挑战码。
在一些实施例中,所述第二挑战码是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第二设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
可选地,第二设备可以预配置第二挑战码对应的位置和/或长度,基于该预配置的第二挑战码对应的位置和/或长度,从第二结果中选择第二挑战码。
可选地,第二设备确定的第二挑战码可以与第一设备确定的第二挑战码相同。
在一些实施例中,所述第二结果为所述第一钥匙和所述第二挑战码合并得到的结果。
在一些实施例中,所述第二设备基于所述第一随机值,确定第二盐值,包括:所述第二设备对所述第一随机值进行哈希运算,得到所述第二盐值。
图14为本申请又一实施例提供的另一种通信方法的流程示意图,如图14所示,该方法包括:
S1401、所述第一设备获得第一秘密;
S1402、所述第一设备基于所述第一秘密确定所述第一钥匙。
S1403、所述第一设备基于所述第二设备的第二钥匙和所述第一秘密,确定第二秘密。
S1404、所述第一设备向所述第二设备发送第三校验信息;所述第二设备接收所述第一设备发送的第三校验信息;所述第三校验信息包括所述第一设备获得的第一随机值、第一签名和所述第二秘密。
S1405、在所述第二设备基于第二数字钥匙和所述第一随机值,对所述第一签名校验成功的情况下,所述第二设备基于第二秘密,确定所述第一钥匙。
S1406、所述第一设备和所述第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S1407、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
以下说明本申请任一实施例中第一设备确定第一签名的实施方式:
所述第一设备基于所述第一随机值和第一数字钥匙,确定所述第一签名。
可选地,第一设备可以使用第一数字钥匙(DigitalKey.SK)签名第一随机值(ClientRandom),生成第一签名(ClientSignature)。
这样,在第二设备侧,第二设备基于第二数字钥匙(DigitalKey.PK)和所述第一随机值(ClientRandom),对第一签名校验。例如,第二设备可以基于第二数字钥匙和第一签名,确定一个随机值,如果该随机值和第一随机值相同,对第一签名校验成功。又例如,第二设备可以基于第二数字钥匙和第一随机值确定一个签名,如果该签名和第一签名相同的情况下,对第一签名校验成功。
图15为本申请又一实施例提供的又一种通信方法的流程示意图,如图15所示,该方法包括:
S1501、所述第二设备广播蓝牙信息;所述蓝牙信息携带以下至少之一:第二设备的标识、用于指示第二设备可配置的指示信息。
S1502、所述第一设备发现广播的蓝牙信息。
S1503、所述第二设备基于所述蓝牙信息,与所述第二设备建立蓝牙连接。
S1504、所述第一设备确定第一钥匙。
S1505、所述第二设备确定第一钥匙。
可选地,在第一设备和第二设备建立蓝牙连接的情况下,第一设备和第二设备可以通过蓝牙连接收发信息,以基于收发的信息确定第一钥匙。
S1506、所述第一设备和所述第二设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道。
S1507、所述第一设备基于所述第一通道,向所述第二设备发送配置信息;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
图16为本申请又一实施例提供的再一种通信方法的流程示意图,如图16所示,需要说明的是,图16中的车可以对应上述的第二设备,图16中的手机可以对应上述的第一设备,手机在一些实施例中可以为手机APP,该方法包括:
S1601、车进行蓝牙广播(对应上述实施例中的广播蓝牙信息),广播的信息中携带车的身份信息(对应上述实施例中的第二设备的标识)和/或指示车是否可配置(commissionable)的信息(对应上述的用于指示第二设备可配置的指示信息)。
S1602、手机发现车的蓝牙广播,确定车的身份和/或车可配置。
S1603、手机和车建立蓝牙连接。
S1604、手机向车发送配置阶段会话建立请求(对应上述实施例中的第一信息)。
该请求中携带手机支持的鉴权类型,例如,数字密钥证书(digital_key_cert)和密码(passcode)。例如,手机向车请求配置阶段session建立,请求中携带手机支持的鉴权类型[digital_key_cert,passcode]与车进行协商。
S1605、车向手机发送请求响应信息(对应上述实施例中的第二信息)。
请求响应信息指示选择配置阶段主密钥生成方式。可选地,请求响应信息还包括车的标识,例如,车辆设备ID(Vehicle Device ID)。例如,选择配置阶段主密钥生成方式可以为数字钥匙证书(digital_key_cert)方式(对应上述的第一鉴权类型信息)。
例如,车根据session请求(对应上述的配置阶段会话建立请求),选择生成配置阶段密钥生成 方式“digital key cert”和Vehicle Device ID(用于手机使用该字段确定和具体哪个车建立连接)。
S1606、手机生成客户端随机数(ClientRandom,对应上述实施例中的第一随机数),手机生成共享秘密ShareSecret(对应上述实施例中的第一秘密);手机通过相关接口使用数字钥匙私钥DigitalKey.SK(对应上述实施例中的第一数字钥匙)签名ClientRandom生成客户端签名ClientSignature(对应上述实施例中的第一签名);手机通过相关接口使用车公钥Vehicle.PK(对应上述实施例中的第二设备的第二钥匙)加密ShareSecret,得到客户端秘密ClientSecret(对应上述实施例中的第二秘密)。
在本实施例中,手机要生成ShareSecret,再通过接口使用Vehicle.PK对其进行加密得到ClientSecret。
S1607、手机向车发送验证请求;该验证请求中携带客户端随机数ClientRandom、客户端签名ClientSignature以及客户端秘密ClientSecret。
在本实施例中,车端收到ClientSecret后要使用Vehicle.SK对数据进行解密得到ShareSecret。
S1608、车解析验证请求;获得存储的数字密钥证书(digital_key_cert)的公钥(DigitalKey.PK,对应上述的第二数字钥匙),校验客户端签名ClientSignature;在校验成功的情况下,用车私钥Vehicle.SK(对应上述实施例中的第二设备的第四钥匙)解密客户端秘密ClientSecret,得到共享秘密ShareSecret;车生成共享密钥ShareKey和第二挑战码Challenge;车计算第二确认值Confirmation。
S1609、手机生成共享密钥ShareKey和第二挑战码Challenge;手机计算第一确认值Confirmation。
在S1608和S1609中,手机和车需要使用ShareSecret生成ShareKey。其中:
ShareKey||Challenge=KDF(ShareSecret,salt,info,length);其中,此处的Challenge表示第二挑战码;salt表示第二盐值,第二盐值的计算方法为Salt=哈希算法(ClientRandom);info为上述实施例中的预置值,第一确认值和/或第二确认值Confirmation的计算方法为Confirmation=哈希算法(Challenge||ClientRandom)。
S1610、车向手机发送验证响应信息;该验证响应信息中可以携带第二设备计算的第二确认值Confirmation。
S1611、手机对第二确认值Confirmation进行校验。
示例性地,手机在确定第二确认值Confirmation和手机计算的第一确认值Confirmation相同的情况下,对第二确认值Confirmation校验成功。
可选地,在S1611之后,还可以包括:手机对第二确认值Confirmation校验成功的情况下,手机向车发送会话建立完成(Session Establish Finished)信息。可选地,会话建立完成信息可以用于指示对第二确认值校验成功。
S1612、手机和车建立基于主密钥的安全通道,配置车操作基于该通道完成。
可选地,手机和/或车可以执行图16所示实施例中的全部步骤或部分步骤,本申请实施例对此不作限制,只要构成一个完整的技术方案即可。
在本申请实施例中,在需要对车进行配置操作的情况下,可以为配置操作建立一个安全的通信信道,使得手机对车配置操作时数据交互更加安全。
可选地,在手机对车进行配置操作后,手机和车之间可以建立控制通道,通道控制通道实现手机对车的控制。可选地,在控制通道建立完成后,用于发送配置信息的安全通道可以释放或不释放。例如,在不释放的情况下,在控制的过程中,手机还可以通过安全通道向车发送配置信息。
以上结合附图详细描述了本申请的优选实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。又例如,在不冲突的前提下,本申请描述的各个实施例和/或各个实施例中的技术特征可以和现有技术任意的相互组合,组合之后得到的技术方案也应落入本申请的保护范围。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。此外,在本申请实施例中,术语“下行”、“上行”和“侧行”用于表示信号或数据的传输方向,其中,“下行”用于表示信号或数据的传输方向为从站点发送至小区的用户设备的第一方向,“上行”用于表示信号或数据的传输方向为从小区的用户设备发送至站点的第二方向,“侧行”用于表示信号 或数据的传输方向为从用户设备1发送至用户设备2的第三方向。例如,“下行信号”表示该信号的传输方向为第一方向。另外,本申请实施例中,术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。具体地,A和/或B可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图17为本申请实施例提供的通信装置的结构组成示意图,应用于第一设备,如图17所示,所述通信装置1700包括:
确定单元1701,用于确定第一钥匙;
建立单元1702,用于基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道;
通信单元1703,用于基于所述第一通道,向所述第二设备发送配置信息。
在一些实施例中,通信单元1703,还用于:向所述第二设备发送第一信息;所述第一信息用于指示:所述第一设备支持的至少一个鉴权类型信息;接收所述第二设备发送的第二信息;所述第二信息用于指示第一鉴权类型信息,所述第一鉴权类型信息包括在所述至少一个鉴权类型信息中。
在一些实施例中,通信单元1703,还用于:向所述第二设备发送第一确认值;接收所述第二设备发送的第三信息;所述第三信息用于指示对所述第一确认值校验成功。
在一些实施例中,通信单元1703,还用于:接收所述第二设备发送的第二确认值;在对所述第二确认值校验成功的情况下,向所述第二设备发送第四信息;所述第四信息用于指示对所述第二确认值校验成功。
在一些实施例中,确定单元1701,还用于:获得第一随机值;通信单元1703,还用于:接收所述第二设备发送的第二随机值;确定单元1701,还用于:基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙;基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值和所述第二随机值,确定第一盐值;基于所述第三钥匙和所述第一盐值,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:获得预置值;基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第一数字钥匙和所述第二设备的第二钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值和所述第二随机值,确定第一确认值。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值和所述第二随机值,确定第一挑战码;基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第一确认值。
在一些实施例中,确定单元1701,还用于:对所述第一挑战码、所述第一随机值和所述第二随机值进行合并,得到第二合并结果;对所述第二合并结果进行哈希运算,得到所述第一确认值。
在一些实施例中,确定单元1701,还用于:基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙;基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值和所述第二随机值,确定第一盐值;基于所述第三钥匙和所述第一盐值,确定所述第一挑战码。
在一些实施例中,确定单元1701,还用于:获得预置值;基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
在一些实施例中,所述第一挑战码是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第一数字钥匙和所述第二设备的第二钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
在一些实施例中,所述第一结果为所述第一钥匙和所述第一挑战码合并得到的结果。
在一些实施例中,确定单元1701,还用于:对所述第一随机值和所述第二随机值进行合并,得到第一合并结果;对所述第一合并结果进行哈希运算,得到所述第一盐值。
在一些实施例中,通信单元1703,还用于:向所述第二设备发送第一校验信息;所述第一校验信息包括第一随机值和第一签名。
在一些实施例中,通信单元1703,还用于:接收所述第二设备发送的第二校验信息;所述第二校验信息包括第二随机值和第二签名;确定单元1701,还用于:在所述第一设备基于所述第二随机值和所述第二设备的第二钥匙,对所述第二签名校验成功的情况下,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:基于第一数字钥匙和所述第二设备的第二钥匙,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:获得第三确认值;采用所述第一钥匙加密所述第三确认值,得到第一确认值;通信单元1703,还用于:向所述第二设备发送所述第一确认值。
在一些实施例中,通信单元1703,还用于:接收所述第二设备发送的指示信息,或者,向所述第二设备发送指示信息;所述指示信息用于指示基于密钥协商算法确定所述第一钥匙。
在一些实施例中,通信单元1703,还用于:接收所述第二设备发送的第二确认值;基于所述第一钥匙对所述第二确认值校验成功的情况下,向所述第二设备发送第四信息;所述第四信息用于指示对所述第二确认值校验成功。
在一些实施例中,确定单元1701,还用于:获得第一秘密;基于所述第一秘密确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:获得第一随机值;基于所述第一秘密和所述第一随机值,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值,确定第二盐值;基于所述第二盐值和所述第一秘密,确定所述第一钥匙。
在一些实施例中,确定单元1701,还用于:获得预置值;基于所述预置值和所述第一秘密,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第一设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
在一些实施例中,确定单元1701,还用于:获得第一随机值;基于所述第一秘密和所述第一随机值,确定第一确认值。
在一些实施例中,确定单元1701,还用于:基于所述第一秘密,确定第二挑战码;基于所述第二挑战码和所述第一随机值,确定所述第一确认值。
在一些实施例中,确定单元1701,还用于:对所述第二挑战码和所述第一随机值进行合并,得到第三合并结果;对所述第三合并结果进行哈希运算,得到所述第一确认值。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值,确定第二盐值;基于所述第二盐值和所述第一秘密,确定所述第二挑战码。
在一些实施例中,确定单元1701,还用于:获得预置值;基于所述预置值和所述第一秘密,确定所述第二挑战码。
在一些实施例中,所述第二挑战码是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第一设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
在一些实施例中,所述第二结果为所述第一钥匙和所述第二挑战码合并得到的结果。
在一些实施例中,确定单元1701,还用于:对所述第一随机值进行哈希运算,得到所述第二盐值。
在一些实施例中,确定单元1701,还用于:基于所述第二设备的第二钥匙和所述第一秘密,确定第二秘密;通信单元1703,还用于:向所述第二设备发送第三校验信息;所述第三校验信息包括所述第一设备获得的第一随机值、第一签名和所述第二秘密。
在一些实施例中,确定单元1701,还用于:基于所述第一随机值和第一数字钥匙,确定所述第一签名。
在一些实施例中,通信单元1703,还用于:发现广播的蓝牙信息;所述蓝牙信息携带以下至少之一:第二设备的标识、用于指示第二设备可配置的指示信息;建立单元1702,还用于:基于所述蓝牙信息,与所述第二设备建立蓝牙连接。
图18为本申请实施例提供的另一通信装置的结构组成示意图,应用于第二设备,如图18所示,所述通信装置1800包括:
确定单元1801,用于确定第一钥匙;
建立单元1802,用于基于所述第一钥匙,建立第一设备与所述第二设备之间的第一通道;
通信单元1803,用于基于所述第一通道,接收所述第一设备发送的配置信息。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一信息;所述第一信息用于指示:所述第一设备支持的至少一个鉴权类型信息;向所述第一设备发送第二信息;所述第二信息用于指示第一鉴权类型信息,所述第一鉴权类型信息包括在所述至少一个鉴权类型信息中。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一确认值;在对所述第一确认值校验成功的情况下,向所述第一设备发送第三信息;所述第三信息用于指示对所述第一确认值校验成功。
在一些实施例中,通信单元1803,还用于:向所述第一设备发送第二确认值;接收所述第一设备发送的第四信息;所述第四信息用于指示对所述第二确认值校验成功。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一随机值;确定单元1801,还用于:获得第二随机值;基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙;基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:基于所述第一随机值和所述第二随机值,确定第一盐值;基于所述第三钥匙和所述第一盐值,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:获得预置值;基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第二数字钥匙和所述第二设备的第四钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
在一些实施例中,确定单元1801,还用于:基于所述第一随机值和所述第二随机值,确定第二确认值。
在一些实施例中,确定单元1801,还用于:基于所述第一随机值和所述第二随机值,确定第一挑战码;基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第二确认值。
在一些实施例中,确定单元1801,还用于:对所述第一挑战码、所述第一随机值和所述第二随机值进行合并,得到第二合并结果;对所述第二合并结果进行哈希运算,得到所述第二确认值。
在一些实施例中,确定单元1801,还用于:基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙;基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
在一些实施例中,确定单元1801,还用于:基于所述第一随机值和所述第二随机值,确定第一盐值;基于所述第三钥匙和所述第一盐值,确定所述第一挑战码。
在一些实施例中,确定单元1801,还用于:获得预置值;基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
在一些实施例中,所述第一挑战码是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第二数字钥匙和所述第二设备的第四钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
在一些实施例中,所述第一结果为所述第一钥匙和所述第一挑战码合并得到的结果。
在一些实施例中,确定单元1801,还用于:对所述第一随机值和所述第二随机值进行合并,得到第一合并结果;对所述第一合并结果进行哈希运算,得到所述第一盐值。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一校验信息;所述第一校验信息包括第一随机值和第一签名;确定单元1801,还用于:在所述第二设备基于第二数字钥匙和所述第一随机值,对所述第一签名校验成功的情况下,确定所述第一钥匙。
在一些实施例中,通信单元1803,还用于:向所述第一设备发送第二校验信息;所述第二校验信息包括第二随机值和第二签名。
在一些实施例中,确定单元1801,还用于:基于第二数字钥匙和所述第二设备的第四钥匙,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:获得第三确认值;采用所述第一钥匙加密所述第三确认值,得到第二确认值;通信单元1803,还用于:向所述第一设备发送所述第二确认值。
在一些实施例中,通信单元1803,还用于:向所述第一设备发送指示信息,或者,接收所述第一设备发送的指示信息;所述指示信息用于指示基于密钥协商算法确定所述第一钥匙。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一确认值;基于所述第一钥匙对所述第一确认值校验成功的情况下,所述第二设备向所述第一设备发送第三信息;所述第三信息用于指示对所述第一确认值校验成功。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第二秘密;确定单元1801,还用于:基于第二秘密,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:基于所述第二秘密和所述第二设备的第四钥匙,确定第一秘密;基于所述第一秘密确定所述第一钥匙。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一随机值;确定单元1801,还用于:基于所述第一秘密和所述第一随机值,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:基于所述第一随机值,确定第二盐值;基于所述第二盐值和所述第一秘密,确定所述第一钥匙。
在一些实施例中,确定单元1801,还用于:获得预置值;基于所述预置值和所述第一秘密,确定所述第一钥匙。
在一些实施例中,所述第一钥匙是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第二设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第一随机值;确定单元1801,还用于:基于所述第一秘密和所述第一随机值,确定第二确认值。
在一些实施例中,确定单元1801,还用于:基于所述第一秘密,确定第二挑战码;基于所述第二挑战码和所述第一随机值,确定所述第二确认值。
在一些实施例中,确定单元1801,还用于:对所述第二挑战码和所述第一随机值进行合并,得到第三合并结果;对所述第三合并结果进行哈希运算,得到所述第二确认值。
在一些实施例中,确定单元1801,还用于:基于所述第一随机值,确定第二盐值;基于所述第二盐值和所述第一秘密,确定所述第二挑战码。
在一些实施例中,确定单元1801,还用于:获得预置值;基于所述预置值和所述第一秘密,确定所述第二挑战码。
在一些实施例中,所述第二挑战码是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第二设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
在一些实施例中,所述第二结果为所述第一钥匙和所述第二挑战码合并得到的结果。
在一些实施例中,确定单元1801,还用于:对所述第一随机值进行哈希运算,得到所述第二盐值。
在一些实施例中,通信单元1803,还用于:接收所述第一设备发送的第三校验信息;所述第三校验信息包括所述第一设备获得的第一随机值、第一签名和所述第二秘密;确定单元1801,还用于:在所述第二设备基于第二数字钥匙和所述第一随机值,对所述第一签名校验成功的情况下,基于第二秘密,确定所述第一钥匙。
在一些实施例中,通信单元1803,还用于:广播蓝牙信息;所述蓝牙信息携带以下至少之一:第二设备的标识、用于指示第二设备可配置的指示信息。
本领域技术人员应当理解,本申请实施例的上述通信装置的相关描述可以参照本申请实施例的通信方法的相关描述进行理解。
图19是本申请实施例提供的一种通信设备示意性结构图,该通信设备1900可以为第一设备或第二设备。图19所示的通信设备1900可以包括处理器1910和存储器1920,所述存储器1920存储有可在处理器1910上运行的计算机程序,所述处理器1910执行所述程序时实现上述任一实施例中的通信方法。
可选地,存储器1920可以是独立于处理器1910的一个单独的器件,也可以集成在处理器1910中。
在一些实施例中,如图19所示,通信设备1900还可以包括收发器1930,处理器1910可以控 制该收发器1930与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。
其中,收发器1930可以包括发射机和接收机。收发器1930还可以进一步包括天线,天线的数量可以为一个或多个。
在一些实施例中,该通信设备1900具体可为本申请实施例的第一设备,并且该通信设备1900可以实现本申请实施例的各个方法中由第一设备实现的相应流程,为了简洁,在此不再赘述。
在一些实施例中,该通信设备1900具体可为本申请实施例的第二设备,并且该通信设备1900可以实现本申请实施例的各个方法中由第二设备实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现本申请任一实施例中的通信方法。
在一些实施例中,该计算机可读存储介质可应用于本申请实施例中的第一设备或第二设备,并且该计算机程序使得计算机执行本申请实施例的各个方法中由第一设备或第二设备实现的相应流程,为了简洁,在此不再赘述。
图20是本申请实施例的芯片的示意性结构图,图20所示的芯片2000包括处理器2010,处理器2010用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行本申请任一实施例中的通信方法。
在一些实施例中,如图20所示,芯片2000还可以包括存储器2020。其中,处理器2010可以从存储器2020中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器2020可以是独立于处理器2010的一个单独的器件,也可以集成在处理器2010中。
在一些实施例中,该芯片2000还可以包括输入接口2030。其中,处理器2010可以控制该输入接口2030与其他设备或芯片进行通信,具体地,可以获得其他设备或芯片发送的信息或数据。
在一些实施例中,该芯片2000还可以包括输出接口2040。其中,处理器2010可以控制该输出接口2040与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。
在一些实施例中,该芯片可应用于本申请实施例中的第一设备,并且该芯片可以实现本申请实施例的各个方法中由第一设备实现的相应流程,为了简洁,在此不再赘述。
在一些实施例中,该芯片可应用于本申请实施例中的第二设备,并且该芯片可以实现本申请实施例的各个方法中由第二设备实现的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例提到的芯片还可以称为***级芯片,***芯片,芯片***或片上***芯片等。
本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机存储介质,所述计算机存储介质存储计算机程序,所述计算机程序包括能够由至少一个处理器执行的指令,当所述指令由所述至少一个处理器执行时实现本申请任一实施例中的通信方法。
在一些实施例中,该计算机程序产品可应用于本申请实施例中的第一设备或第二设备,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由第一设备或第二设备实现的相应流程,为了简洁,在此不再赘述。
可选地,本申请实施例中的计算机程序产品在另一些实施例中也可以称为软件产品。
本申请实施例还提供了一种计算机程序,所述计算机程序使得计算机执行本申请任一实施例中的通信方法。
在一些实施例中,该计算机程序可应用于本申请实施例中的第一设备或第二设备,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由第一设备或第二设备实现的相应流程,为了简洁,在此不再赘述。
本申请实施例的处理器、通信装置或者芯片可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器、通信装置或者芯片可以包括以下任一个或多个的集成:通用处理器、特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、嵌入式神经网络处理器(neural-network processing units,NPU)、控制器、微控制器、微处理器、可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器 等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器、存储空间或计算机存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器、存储空间或计算机存储介质为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是第一设备或第二设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,)ROM、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (88)
- 一种通信方法,所述方法包括:第一设备确定第一钥匙;所述第一设备基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道;所述第一设备基于所述第一通道,向所述第二设备发送配置信息。
- 根据权利要求1所述的方法,其中,所述方法还包括:所述第一设备向所述第二设备发送第一信息;所述第一信息用于指示:所述第一设备支持的至少一个鉴权类型信息;所述第一设备接收所述第二设备发送的第二信息;所述第二信息用于指示第一鉴权类型信息,所述第一鉴权类型信息包括在所述至少一个鉴权类型信息中。
- 根据权利要求1或2所述的方法,其中,所述方法还包括:所述第一设备向所述第二设备发送第一确认值;所述第一设备接收所述第二设备发送的第三信息;所述第三信息用于指示对所述第一确认值校验成功。
- 根据权利要求1至2任一项所述的方法,其中,所述方法还包括:所述第一设备接收所述第二设备发送的第二确认值;在对所述第二确认值校验成功的情况下,所述第一设备向所述第二设备发送第四信息;所述第四信息用于指示对所述第二确认值校验成功。
- 根据权利要求1至4任一项所述的方法,其中,所述方法还包括:所述第一设备获得第一随机值;所述第一设备接收所述第二设备发送的第二随机值;第一设备确定第一钥匙,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
- 根据权利要求5所述的方法,其中,所述第一设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙;所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
- 根据权利要求6所述的方法,其中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第一设备基于所述第三钥匙和所述第一盐值,确定所述第一钥匙。
- 根据权利要求6或7所述的方法,其中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第一设备获得预置值;所述第一设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
- 根据权利要求5至8任一项所述的方法,其中,所述第一钥匙是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第一数字钥匙和所述第二设备的第二钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
- 根据权利要求5至9任一项所述的方法,其中,所述方法还包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一确认值。
- 根据权利要求10所述的方法,其中,所述第一设备基于所述第一随机值和所述第二随机值,确定第一确认值,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一挑战码;所述第一设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第一确认值。
- 根据权利要求11所述的方法,其中,所述第一设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第一确认值,包括:所述第一设备对所述第一挑战码、所述第一随机值和所述第二随机值进行合并,得到第二合并结果;所述第一设备对所述第二合并结果进行哈希运算,得到所述第一确认值。
- 根据权利要求11或12所述的方法,其中,所述第一设备基于所述第一随机值和所述第二随机值,确定第一挑战码,包括:所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定第三钥匙;所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
- 根据权利要求13所述的方法,其中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第一设备基于所述第三钥匙和所述第一盐值,确定所述第一挑战码。
- 根据权利要求13或14所述的方法,其中,所述第一设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第一设备获得预置值;所述第一设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
- 根据权利要求11至15任一项所述的方法,其中,所述第一挑战码是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第一数字钥匙和所述第二设备的第二钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
- 根据权利要求16所述的方法,其中,所述第一结果为所述第一钥匙和所述第一挑战码合并得到的结果。
- 根据权利要求7或14所述的方法,其中,所述第一设备基于所述第一随机值和所述第二随机值,确定第一盐值,包括:所述第一设备对所述第一随机值和所述第二随机值进行合并,得到第一合并结果;所述第一设备对所述第一合并结果进行哈希运算,得到所述第一盐值。
- 根据权利要求5至18任一项所述的方法,其中,所述方法还包括:所述第一设备向所述第二设备发送第一校验信息;所述第一校验信息包括第一随机值和第一签名。
- 根据权利要求5至19任一项所述的方法,其中,所述方法还包括:所述第一设备接收所述第二设备发送的第二校验信息;所述第二校验信息包括第二随机值和第二签名;所述第一设备确定第一钥匙,包括:在所述第一设备基于所述第二随机值和所述第二设备的第二钥匙,对所述第二签名校验成功的情况下,确定所述第一钥匙。
- 根据权利要求1至4任一项所述的方法,其中,所述方法还包括:所述第一设备基于第一数字钥匙和所述第二设备的第二钥匙,确定所述第一钥匙。
- 根据权利要求21所述的方法,其中,所述方法还包括:所述第一设备获得第三确认值;所述第一设备采用所述第一钥匙加密所述第三确认值,得到第一确认值;所述第一设备向所述第二设备发送所述第一确认值。
- 根据权利要求21或22所述的方法,其中,所述方法还包括:所述第一设备接收所述第二设备发送的指示信息,或者,所述第一设备向所述第二设备发送指示信息;所述指示信息用于指示基于密钥协商算法确定所述第一钥匙。
- 根据权利要求21至23任一项所述的方法,其中,所述方法还包括:所述第一设备接收所述第二设备发送的第二确认值;在所述第一设备基于所述第一钥匙对所述第二确认值校验成功的情况下,所述第一设备向所述第二设备发送第四信息;所述第四信息用于指示对所述第二确认值校验成功。
- 根据权利要求1至4任一项所述的方法,其中,所述方法还包括:所述第一设备获得第一秘密;所述第一设备基于所述第一秘密确定所述第一钥匙。
- 根据权利要求25所述的方法,其中,所述第一设备基于所述第一秘密确定所述第一钥匙,包括:所述第一设备获得第一随机值;所述第一设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙。
- 根据权利要求26所述的方法,其中,所述第一设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙,包括:所述第一设备基于所述第一随机值,确定第二盐值;所述第一设备基于所述第二盐值和所述第一秘密,确定所述第一钥匙。
- 根据权利要求25至27任一项所述的方法,其中,所述第一设备基于所述第一秘密确定所述第一钥匙,包括:所述第一设备获得预置值;所述第一设备基于所述预置值和所述第一秘密,确定所述第一钥匙。
- 根据权利要求25至28任一项所述的方法,其中,所述第一钥匙是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第一设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
- 根据权利要求25至29任一项所述的方法,其中,所述方法还包括:所述第一设备获得第一随机值;所述第一设备基于所述第一秘密和所述第一随机值,确定第一确认值。
- 根据权利要求30所述的方法,其中,所述第一设备基于所述第一秘密和所述第一随机值,确定第一确认值,确定第一确认值,包括:所述第一设备基于所述第一秘密,确定第二挑战码;所述第一设备基于所述第二挑战码和所述第一随机值,确定所述第一确认值。
- 根据权利要求31所述的方法,其中,所述第一设备基于所述第二挑战码和所述第一随机值,确定所述第一确认值,包括:所述第一设备对所述第二挑战码和所述第一随机值进行合并,得到第三合并结果;所述第一设备对所述第三合并结果进行哈希运算,得到所述第一确认值。
- 根据权利要求31或32所述的方法,其中,所述第一设备基于所述第一秘密,确定第二挑战码,包括:所述第一设备基于所述第一随机值,确定第二盐值;所述第一设备基于所述第二盐值和所述第一秘密,确定所述第二挑战码。
- 根据权利要求31至33任一项所述的方法,其中,所述第一设备基于所述第一秘密,确定第二挑战码,包括:所述第一设备获得预置值;所述第一设备基于所述预置值和所述第一秘密,确定所述第二挑战码。
- 根据权利要求31至34任一项所述的方法,其中,所述第二挑战码是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第一设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
- 根据权利要求35所述的方法,其中,所述第二结果为所述第一钥匙和所述第二挑战码合并得到的结果。
- 根据权利要求27或33所述的方法,其中,所述第一设备基于所述第一随机值,确定第二盐值,包括:所述第一设备对所述第一随机值进行哈希运算,得到所述第二盐值。
- 根据权利要求25至37任一项所述的方法,其中,所述方法还包括:所述第一设备基于所述第二设备的第二钥匙和所述第一秘密,确定第二秘密;所述第一设备向所述第二设备发送第三校验信息;所述第三校验信息包括所述第一设备获得的 第一随机值、第一签名和所述第二秘密。
- 根据权利要求19或38所述的方法,其中,所述方法还包括:所述第一设备基于所述第一随机值和第一数字钥匙,确定所述第一签名。
- 根据权利要求1至39任一项所述的方法,其中,所述方法还包括:所述第一设备发现广播的蓝牙信息;所述蓝牙信息携带以下至少之一:第二设备的标识、用于指示第二设备可配置的指示信息;所述第二设备基于所述蓝牙信息,与所述第二设备建立蓝牙连接。
- 一种通信方法,所述方法包括:第二设备确定第一钥匙;所述第二设备基于所述第一钥匙,建立第一设备与所述第二设备之间的第一通道;所述第二设备基于所述第一通道,接收所述第一设备发送的配置信息。
- 根据权利要求41所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第一信息;所述第一信息用于指示:所述第一设备支持的至少一个鉴权类型信息;所述第二设备向所述第一设备发送第二信息;所述第二信息用于指示第一鉴权类型信息,所述第一鉴权类型信息包括在所述至少一个鉴权类型信息中。
- 根据权利要求41或42所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第一确认值;在对所述第一确认值校验成功的情况下,所述第二设备向所述第一设备发送第三信息;所述第三信息用于指示对所述第一确认值校验成功。
- 根据权利要求41或42所述的方法,其中,所述方法还包括:所述第二设备向所述第一设备发送第二确认值;所述第二设备接收所述第一设备发送的第四信息;所述第四信息用于指示对所述第二确认值校验成功。
- 根据权利要求41至44任一项所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第一随机值;所述第二设备获得第二随机值;第二设备确定第一钥匙,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙。
- 根据权利要求45所述的方法,其中,所述第二设备基于所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第二设备基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙;所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
- 根据权利要求46所述的方法,其中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第二设备基于所述第三钥匙和所述第一盐值,确定所述第一钥匙。
- 根据权利要求46或47所述的方法,其中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙,包括:所述第二设备获得预置值;所述第二设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一钥匙。
- 根据权利要求45至48任一项所述的方法,其中,所述第一钥匙是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第二数字钥匙和所述第二设备的第四钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
- 根据权利要求45至49任一项所述的方法,其中,所述方法还包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第二确认值。
- 根据权利要求50所述的方法,其中,所述第二设备基于所述第一随机值和所述第二随机值,确定第二确认值,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第一挑战码;所述第二设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第二确认值。
- 根据权利要求51所述的方法,其中,所述第二设备基于所述第一挑战码、所述第一随机值和所述第二随机值,确定所述第二确认值,包括:所述第二设备对所述第一挑战码、所述第一随机值和所述第二随机值进行合并,得到第二合并结果;所述第二设备对所述第二合并结果进行哈希运算,得到所述第二确认值。
- 根据权利要求51或52所述的方法,其中,所述第二设备基于所述第一随机值和所述第二随机值,确定第一挑战码,包括:所述第二设备基于第二数字钥匙和所述第二设备的第四钥匙,确定第三钥匙;所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
- 根据权利要求53所述的方法,其中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第二设备基于所述第一随机值和所述第二随机值,确定第一盐值;所述第二设备基于所述第三钥匙和所述第一盐值,确定所述第一挑战码。
- 根据权利要求53或54所述的方法,其中,所述第二设备基于所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码,包括:所述第二设备获得预置值;所述第二设备基于所述预置值、所述第三钥匙、所述第一随机值和所述第二随机值,确定所述第一挑战码。
- 根据权利要求51至55任一项所述的方法,其中,所述第一挑战码是基于第一结果确定的;所述第一结果通过第一密钥派生算法确定,所述第一密钥派生算法中的参数包括以下至少之一:第三钥匙、第一盐值、预置值、第一长度;其中,所述第三钥匙是基于第二数字钥匙和所述第二设备的第四钥匙确定的;所述第一盐值是基于所述第一随机值和所述第二随机值确定的;所述第一结果的长度,小于或等于所述第一长度。
- 根据权利要求56所述的方法,其中,所述第一结果为所述第一钥匙和所述第一挑战码合并得到的结果。
- 根据权利要求47或54所述的方法,其中,所述第二设备基于所述第一随机值和所述第二随机值,确定第一盐值,包括:所述第二设备对所述第一随机值和所述第二随机值进行合并,得到第一合并结果;所述第二设备对所述第一合并结果进行哈希运算,得到所述第一盐值。
- 根据权利要求45至58任一项所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第一校验信息;所述第一校验信息包括第一随机值和第一签名;所述第二设备确定第一钥匙,包括:在所述第二设备基于第二数字钥匙和所述第一随机值,对所述第一签名校验成功的情况下,所述第二设备确定所述第一钥匙。
- 根据权利要求45至59任一项所述的方法,其中,所述方法还包括:所述第二设备向所述第一设备发送第二校验信息;所述第二校验信息包括第二随机值和第二签名。
- 根据权利要求41至44任一项所述的方法,其中,所述方法还包括:所述第二设备基于第二数字钥匙和所述第二设备的第四钥匙,确定所述第一钥匙。
- 根据权利要求61所述的方法,其中,所述方法还包括:所述第二设备获得第三确认值;所述第二设备采用所述第一钥匙加密所述第三确认值,得到第二确认值;所述第二设备向所述第一设备发送所述第二确认值。
- 根据权利要求61或62所述的方法,其中,所述方法还包括:所述第二设备向所述第一设备发送指示信息,或者,所述第二设备接收所述第一设备发送的指示信息;所述指示信息用于指示基于密钥协商算法确定所述第一钥匙。
- 根据权利要求61至63任一项所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第一确认值;在所述第二设备基于所述第一钥匙对所述第一确认值校验成功的情况下,所述第二设备向所述第一设备发送第三信息;所述第三信息用于指示对所述第一确认值校验成功。
- 根据权利要求41至44任一项所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第二秘密;所述第二设备基于第二秘密,确定所述第一钥匙。
- 根据权利要求65所述的方法,其中,所述第二设备基于第二秘密,确定所述第一钥匙,包括:所述第二设备基于所述第二秘密和所述第二设备的第四钥匙,确定第一秘密;所述第二设备基于所述第一秘密确定所述第一钥匙。
- 根据权利要求66所述的方法,其中,所述第二设备基于所述第一秘密确定所述第一钥匙,包括:所述第二设备接收所述第一设备发送的第一随机值;所述第二设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙。
- 根据权利要求67所述的方法,其中,所述第二设备基于所述第一秘密和所述第一随机值,确定所述第一钥匙,包括:所述第二设备基于所述第一随机值,确定第二盐值;所述第二设备基于所述第二盐值和所述第一秘密,确定所述第一钥匙。
- 根据权利要求66至68任一项所述的方法,其中,所述第二设备基于所述第一秘密确定所述第一钥匙,包括:所述第二设备获得预置值;所述第二设备基于所述预置值和所述第一秘密,确定所述第一钥匙。
- 根据权利要求66至69任一项所述的方法,其中,所述第一钥匙是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第二设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
- 根据权利要求66至70任一项所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第一随机值;所述第二设备基于所述第一秘密和所述第一随机值,确定第二确认值。
- 根据权利要求71所述的方法,其中,所述第二设备基于所述第一秘密和所述第一随机值,确定第二确认值,包括:所述第二设备基于所述第一秘密,确定第二挑战码;所述第二设备基于所述第二挑战码和所述第一随机值,确定所述第二确认值。
- 根据权利要求72所述的方法,其中,所述第二设备基于所述第二挑战码和所述第一随机值,确定所述第二确认值,包括:所述第二设备对所述第二挑战码和所述第一随机值进行合并,得到第三合并结果;所述第二设备对所述第三合并结果进行哈希运算,得到所述第二确认值。
- 根据权利要求72或73所述的方法,其中,所述第二设备基于所述第一秘密,确定第二挑战码,包括:所述第二设备基于所述第一随机值,确定第二盐值;所述第二设备基于所述第二盐值和所述第一秘密,确定所述第二挑战码。
- 根据权利要求72至74任一项所述的方法,其中,所述第二设备基于所述第一秘密,确定第二挑战码,包括:所述第二设备获得预置值;所述第二设备基于所述预置值和所述第一秘密,确定所述第二挑战码。
- 根据权利要求72至75任一项所述的方法,其中,所述第二挑战码是基于第二结果确定的;所述第二结果通过第二密钥派生算法确定,所述第二密钥派生算法中的参数包括以下至少之一:第一秘密、第二盐值、预置值、第二长度;其中,所述第二盐值是基于所述第二设备获得的第一随机值确定的;所述第二结果的长度,小于或等于所述第二长度。
- 根据权利要求76所述的方法,其中,所述第二结果为所述第一钥匙和所述第二挑战码合并得到的结果。
- 根据权利要求68或74所述的方法,其中,所述第二设备基于所述第一随机值,确定第二盐值,包括:所述第二设备对所述第一随机值进行哈希运算,得到所述第二盐值。
- 根据权利要求65至78任一项所述的方法,其中,所述方法还包括:所述第二设备接收所述第一设备发送的第三校验信息;所述第三校验信息包括所述第一设备获得的第一随机值、第一签名和所述第二秘密;所述第二设备基于第二秘密,确定所述第一钥匙,包括:在所述第二设备基于第二数字钥匙和所述第一随机值,对所述第一签名校验成功的情况下,所述第二设备基于第二秘密,确定所述第一钥匙。
- 根据权利要求41至79任一项所述的方法,其中,所述方法还包括:所述第二设备广播蓝牙信息;所述蓝牙信息携带以下至少之一:第二设备的标识、用于指示第二设备可配置的指示信息。
- 一种通信装置,所述通信装置包括:确定单元,用于确定第一钥匙;建立单元,用于基于所述第一钥匙,建立所述第一设备与第二设备之间的第一通道;通信单元,用于基于所述第一通道,向所述第二设备发送配置信息。
- 一种通信装置,所述通信装置包括:确定单元,用于确定第一钥匙;建立单元,用于基于所述第一钥匙,建立第一设备与所述第二设备之间的第一通道;通信单元,用于基于所述第一通道,接收所述第一设备发送的配置信息。
- 一种第一设备,包括:处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至40任一项所述方法。
- 一种第二设备,包括:处理器和存储器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求41至80任一项所述方法。
- 一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1至40任一项或者权利要求41至80任一项所述方法。
- 一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,以执行如权利要求1至40任一项或者权利要求41至80任一项所述方法。
- 一种计算机程序产品,所述计算机程序产品包括计算机存储介质,所述计算机存储介质存储计算机程序,所述计算机程序包括能够由至少一个处理器执行的指令,当所述指令由所述至少一个处理器执行时实现权利要求1至40任一项或者权利要求41至80任一项所述方法。
- 一种计算机程序,所述计算机程序使得计算机执行如权利要求1至40任一项或者权利要求41至80任一项所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/093398 WO2023220937A1 (zh) | 2022-05-17 | 2022-05-17 | 通信方法、装置、设备、存储介质、芯片、产品及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2022/093398 WO2023220937A1 (zh) | 2022-05-17 | 2022-05-17 | 通信方法、装置、设备、存储介质、芯片、产品及程序 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023220937A1 true WO2023220937A1 (zh) | 2023-11-23 |
Family
ID=88834420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/093398 WO2023220937A1 (zh) | 2022-05-17 | 2022-05-17 | 通信方法、装置、设备、存储介质、芯片、产品及程序 |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2023220937A1 (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180006810A1 (en) * | 2016-07-04 | 2018-01-04 | Hitachi, Ltd. | Information Sharing System, Computer, and Information Sharing Method |
CN109639418A (zh) * | 2018-12-28 | 2019-04-16 | 北京新能源汽车股份有限公司 | 一种配置信息的认证方法、装置及租赁汽车 |
CN110570569A (zh) * | 2019-09-11 | 2019-12-13 | 广州小鹏汽车科技有限公司 | 虚拟钥匙配置信息的激活方法、移动终端及服务器 |
CN113543072A (zh) * | 2021-07-28 | 2021-10-22 | 北京宏德信智源信息技术有限公司 | 通信方法、电子设备及存储介质 |
US20220139137A1 (en) * | 2013-02-07 | 2022-05-05 | Ikeyless, Llc | System, method and apparatus for multi-vendor rolling code keyless entry and for identifying and storing key information and creating duplicate keys and remote entry devices |
-
2022
- 2022-05-17 WO PCT/CN2022/093398 patent/WO2023220937A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220139137A1 (en) * | 2013-02-07 | 2022-05-05 | Ikeyless, Llc | System, method and apparatus for multi-vendor rolling code keyless entry and for identifying and storing key information and creating duplicate keys and remote entry devices |
US20180006810A1 (en) * | 2016-07-04 | 2018-01-04 | Hitachi, Ltd. | Information Sharing System, Computer, and Information Sharing Method |
CN109639418A (zh) * | 2018-12-28 | 2019-04-16 | 北京新能源汽车股份有限公司 | 一种配置信息的认证方法、装置及租赁汽车 |
CN110570569A (zh) * | 2019-09-11 | 2019-12-13 | 广州小鹏汽车科技有限公司 | 虚拟钥匙配置信息的激活方法、移动终端及服务器 |
CN113543072A (zh) * | 2021-07-28 | 2021-10-22 | 北京宏德信智源信息技术有限公司 | 通信方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113055867B (zh) | 终端辅助配网的方法和装置、电子设备 | |
JP4506856B2 (ja) | 通信装置、及び通信方法 | |
US8494164B2 (en) | Method for connecting wireless communications, wireless communications terminal and wireless communications system | |
CN110235424A (zh) | 用于在通信***中提供和管理安全信息的设备和方法 | |
WO2019041802A1 (zh) | 基于服务化架构的发现方法及装置 | |
CN104661219B (zh) | 一种无线设备的通讯方法、无线设备和服务器 | |
KR20160121546A (ko) | 네트워크에서의 지원된 디바이스 프로비져닝 | |
WO2019056957A1 (zh) | 数据处理、身份认证方法及***、终端 | |
JP2016533055A (ja) | パッシブニアフィールド通信を使用するワイヤレス構成 | |
WO2014180296A1 (zh) | 一种设备之间建立连接的方法、配置设备和无线设备 | |
KR20160078475A (ko) | 키 구성 방법, 시스템, 및 장치 | |
EP2993933B1 (en) | Wireless terminal configuration method, apparatus and wireless terminal | |
JP2015537425A (ja) | 通信接続を確立するための方法及び端末 | |
US11006464B2 (en) | Method, apparatus, storage medium, and terminal for establishing a Wi-Fi connection | |
EP4068675A1 (en) | Method and device for certificate application | |
CN112449323B (zh) | 一种通信方法、装置和*** | |
CN112602290B (zh) | 一种身份验证方法、装置和可读存储介质 | |
US20230179997A1 (en) | Method, system, and apparatus for determining user plane security algorithm | |
US20230052917A1 (en) | Pairing method applied to short-range communication system and wireless device | |
CN115669022A (zh) | 电子设备提供基于测距的服务的方法和电子设备 | |
CN114615688A (zh) | 一种WiFi热点设备与当前接入设备之间近距离自动配置方法 | |
JP5721183B2 (ja) | 無線lan通信システム、無線lan親機、通信接続確立方法、及びプログラム | |
JP7387275B2 (ja) | 通信装置、通信方法及びプログラム | |
WO2023220937A1 (zh) | 通信方法、装置、设备、存储介质、芯片、产品及程序 | |
WO2022094936A1 (zh) | 接入方法、设备和云平台设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22941979 Country of ref document: EP Kind code of ref document: A1 |