Secure Embedded Microcontroller Image Loading
By permanently burning the public/private key pair of encryption and decryption keys into the device, the problem of software encryption being easily reverse engineered in device communication is solved, and secure pairing and data transmission between devices are achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-06-22
- Publication Date
- 2026-03-13
AI Technical Summary
The security of communication between existing devices mainly relies on software encryption, which is easily reverse engineered, leading to unauthorized access and data leakage.
An encryption module is used to burn encryption keys into physically modifiable internal components of the device. By permanently burning the encryption keys of the device and/or the group pair into the physically modifiable internal components of the encryption module, secure communication between devices is ensured by permanently burning the public/private key pair of encryption and decryption keys.
Encryption keys are burned into physically modifiable internal components of the device. By permanently burning in the public/private key pair of encryption and decryption keys, secure pairing and data transmission between devices are achieved, preventing unauthorized access and reverse engineering.
Smart Images

Figure CN115769543B_ABST
Abstract
Description
Background Technology
[0001] This disclosure relates to protecting communication between two or more devices.
[0002] Most devices / components connect to each other via wired or wireless means. Most of these connections / links involve some form of security. The drawback of current methods is that security is implemented in software, and vulnerabilities and security breaches are eventually discovered, allowing unauthorized access to communication between devices. Furthermore, device operation / implementation can be reverse engineered by connecting to the device, sending commands / requests, and viewing the device's responses. Software encryption does not prevent the reverse engineering of security protocols. Summary of the Invention
[0003] Embodiments of this disclosure relate to a system and method for securely pairing two devices. A user selects a first device to pair with a second device. The first and second devices have the ability to securely communicate with each other using encrypted communication. An encryption key is written to the first device and then burned into an encryption module on the first device. A corresponding decryption key is written to the second device and then burned into a decryption module on the second device.
[0004] From a first aspect, the present invention provides a method for securely pairing two devices, comprising: selecting a first device to pair with a second device; writing an encryption key into the first device; burning the encryption key into an encryption module on the first device; writing a corresponding decryption key into the second device, the decryption key allowing the second device to decrypt data transmitted by the first device; and burning the decryption key into a decryption module on the second device.
[0005] Preferably, the present invention provides a method in which an encryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on an encryption module, wherein each of the plurality of PMICs can be modified only once.
[0006] Preferably, the present invention provides a method in which an encryption key is burned into a plurality of PMICs in the form of a binary representation of the encryption key.
[0007] Preferably, the present invention provides a method in which a decryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on a decryption module, wherein each of the plurality of PMICs can be modified only once.
[0008] Preferably, the present invention provides a method in which a decryption key is burned into a plurality of PMICs in the form of a binary representation of the decryption key.
[0009] Preferably, the present invention provides a method in which the encryption key and the decryption key are a public key / private key pair.
[0010] Preferably, the present invention provides a method, further comprising: writing a second encryption key to the second device; burning the second encryption key into an encryption module on the second device; writing a corresponding second decryption key to the first device, the second decryption key allowing the first device to decrypt data transmitted by the second device; and burning the second decryption key into a decryption module on the first device.
[0011] Preferably, the present invention provides a method in which the encryption key and the second encryption key are different encryption keys.
[0012] Preferably, the present invention provides a method, further comprising: selecting a third device to pair with the first device; writing a third encryption key into the first device; burning the third encryption key into an encryption module on the first device; writing a corresponding third decryption key into the third device, the third decryption key allowing the third device to decrypt data transmitted by the first device; and burning the third decryption key into a decryption module on the third device.
[0013] Preferably, the present invention provides a method, further comprising: writing a fourth encryption key to the third device; burning the fourth encryption key into an encryption module on the third device; writing a corresponding fourth decryption key to the first device, the fourth decryption key allowing the first device to decrypt data transmitted by the third device; and burning the fourth decryption key into the decryption module on the first device.
[0014] Preferably, the present invention provides a method, further comprising: pairing the second device with the third device; writing a fifth encryption key into the second device; burning the fifth encryption key into an encryption module on the second device; writing a corresponding fifth decryption key into the third device, the fifth decryption key allowing the third device to decrypt data transmitted by the second device; and burning the fifth decryption key into the decryption module on the third device.
[0015] Preferably, the present invention provides a method, further comprising: writing a sixth encryption key to the third device; burning the sixth encryption key into an encryption module on the third device; writing a corresponding sixth decryption key to the second device, the sixth decryption key allowing the second device to decrypt data transmitted by the third device; and burning the sixth decryption key into the decryption module on the second device.
[0016] According to another aspect of the present invention, a system for providing secure data transmission between two devices is provided, comprising: a first device including: an encryption module configured to encrypt data using an encryption key before transmitting data to a second device; and an encryption burner configured to burn the encryption key into the encryption module; and a second device including: a decryption module configured to decrypt data received from the first device using a decryption key; and a decryption burner configured to burn the decryption key into the decryption module; wherein the encryption key and the decryption key are a public / private key pair.
[0017] Preferably, the present invention provides a system further comprising: a first device, including: a second decryption module configured to decrypt data received from a second device using a second decryption key; and a second decryption programmer configured to program the second decryption key into the second decryption module; and a second device, including: a second encryption module configured to encrypt data using a second encryption key before transmission to the first device; and a second encryption programmer configured to program the second encryption key into the second encryption module; wherein the second encryption key and the second decryption key are a public / private key pair.
[0018] Preferably, the present invention provides a system in which an encryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on an encryption module, wherein each of the plurality of PMICs can be modified only once.
[0019] Preferably, the present invention provides a system in which an encryption key is burned into a plurality of PMICs in the form of a binary representation of the encryption key.
[0020] Preferably, the present invention provides a system in which a decryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on a decryption module, wherein each of the plurality of PMICs can be modified only once.
[0021] Preferably, the present invention provides a system in which a decryption key is burned into a plurality of PMICs in the form of a binary representation of the decryption key.
[0022] Preferably, the present invention provides a system further comprising: a first device, including: an encryption module configured to encrypt data using a third encryption key before transmitting data to a third device; an encryption programmer configured to program the third encryption key into the encryption module; and a third device, including: a third decryption module configured to decrypt data received from the first device using a third decryption key; and a third decryption programmer configured to program the third decryption key into the third decryption module; wherein the third encryption key and the third decryption key are a public / private key pair and are different from the first and second encryption / decryption keys.
[0023] Preferably, the present invention provides a system further comprising: a first device, including: a second decryption module configured to decrypt data received from the third device using a fourth decryption key; a second decryption programmer configured to program the second decryption key into the fourth decryption module; and a third device, including: a third encryption module configured to encrypt data using a fourth encryption key before transmission to the first device; and a third encryption programmer configured to program the fourth encryption key into the third encryption module; wherein the fourth encryption key and the fourth decryption key are a public / private key pair and are different from the first and second encryption / decryption keys.
[0024] The above overview is not intended to describe every illustrated embodiment or implementation of this disclosure. Attached Figure Description
[0025] The accompanying drawings included in this application are incorporated in and form a part of this specification. They illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the disclosure. The drawings are merely illustrative of certain embodiments and do not limit the scope of the disclosure.
[0026] Figure 1 This is a system block diagram of a secure communication and pairing system according to an illustrative embodiment.
[0027] Figure 2 This is a flowchart illustrating a process for creating a secure pairing between two or more devices, based on an illustrative embodiment.
[0028] Figure 3 This is a flowchart illustrating how the system operates during data transmission, based on an illustrative embodiment.
[0029] Figure 4 This is a block diagram illustrating a computing system according to one embodiment.
[0030] While the invention may be modified in various ways and alternatives, its details have been shown by way of example in the accompanying drawings and will be described in detail. However, it should be understood that the invention is not limited to the specific embodiments described. Rather, the invention is intended to cover all modifications, equivalents, and substitutions that fall within its scope. Detailed Implementation
[0031] Aspects of the present invention relate to protecting communication between two or more devices. While this disclosure is not necessarily limited to such applications, various aspects of this disclosure can be understood through the discussion of different examples using this context.
[0032] Most devices and components connect to each other via wired or wireless technologies such as WiFi, Bluetooth, infrared, cellular, near field communication (NFC), or other wireless communication protocols. Most of these connections and links involve some form of security to prevent the discovery of security keys. The downside is that much of this security is implemented in software, ultimately leading to the discovery of vulnerabilities and security breaches. Furthermore, device operation and / or implementation can be easily reverse engineered by connecting to the device, sending commands or requests, and viewing the device's responses. Therefore, software encryption cannot prevent reverse engineering and the acquisition of encryption keys and / or the data itself.
[0033] This disclosure burns an encryption key into either side of the connection or link, ensuring that data in each direction is encrypted and secure. This disclosure permanently pairs devices and / or components together. By permanently burning in the encryption key, data is protected, and the device is useless unless paired with the original device. Malicious actors attempting to reverse engineer the device cannot communicate with the device or component because the associated encryption is unknown and never transmitted between the two parts. Even if an encryption key is determined for one direction, the connected devices are still protected by encryption in the opposite direction.
[0034] This system can be used on motherboard security components such as service processors, memory, voltage regulators, etc. It can also be used in sensitive applications where it is desirable not to compromise persistent memory (e.g., code and data). Other applications include wireless security and personal devices.
[0035] Figure 1This is a block diagram illustrating a secure communication and pairing system according to an embodiment of the present disclosure. The system includes a first device 110 and a second device 160 that are communicatively coupled to each other, enabling them to send encrypted data to each other. The first device 110 includes a data processing component 105, an encryption module 120, a decryption module 130, an encryption key programmer 127, a decryption key programmer 137, and a communication module 140. Similarly, the second device 160 includes a data processing component 165, an encryption module 170, a decryption module 180, an encryption key programmer 177, a decryption key programmer 187, and a communication module 190. Because the first device 110 and the second device 160 include similar components, this discussion will refer to the components of the first device to discuss similar different components together.
[0036] First device 110 is a device capable of sending and receiving data to and from another device. First device 110 may be, for example, a mobile phone, tablet computing device, laptop computer, server, gaming device, storage device, or any other device capable of sending and receiving data. First device 110 sends data to the other device by encrypting the data to be sent. Similarly, second device 160 is a device capable of sending and receiving data to and from another device. Second device 160 may be, for example, a mobile phone, laptop computer, server, gaming device, storage device, or any other device capable of sending and receiving data. Second device 160 sends data to the other device by encrypting the data being sent. First device 110 and second device 160 may be the same type of device (e.g., both are mobile phones) or may be different types of devices (e.g., laptop computer and server). In some embodiments, the first device and the second device are discrete components within a single device. For example, the first device may be a CPU, the second device may be a memory component within the device, and communication between the two components may be encrypted.
[0037] Data processing component 105 is a component of the first device 110 configured to process or generate data on the first device 110. Data processing component 105 may include one or more of, for example, word processing applications, email applications, data storage systems, photo processing applications, internet browsers, or any other applications or tasks that generate or manipulate data on the first device 110. Similarly, the second device 160 includes a data processing component 165 that performs similar manipulations on data. In some embodiments, the generated data is data that allows updating or modifying the second device 160. This can be useful in situations where an individual wants to control the content or functionality of the second device 160. For example, parents can control what content is updated on the second device 160 by using the encryption / security of this disclosure. Through this type of pairing of the first device 110 and the second device 160, the holder of the second device 160 will not be able to modify the second device 160 without the approval of the individual holding the first device 110.
[0038] Encryption module 120 is a component of first device 110 and is configured to encrypt data generated or manipulated by data processing component 105 before storing or transmitting the data to another device. Encryption module 120 can implement any type of encryption, including symmetric and asymmetric cryptography. In some embodiments, encryption module 120 uses public-key encryption. Public-key encryption uses a pair of keys: a public key that can be widely shared and a private key known only to the individual who needs to decrypt the content. Some public-key encryption methods that can be employed by encryption module 120 include, for example, Rivest-Shamir-Adleman (RSA), Diffie-Hellman, Elliptic Curve Diffie-Hellman (ECDH), Secure Remote Password Protocol (SRP), Pre-Shared Key (PSK), Digital Signature Algorithm (DSA), Elliptic Curve DSA (ECDSA), RC4, Triple Data Encryption Algorithm (Triple DES), Advanced Encryption Standard (AES), International Data Encryption Algorithm (IDEA), Data Encryption Standard (DES), Camellia, hash-based MD5, and Secure Hash Algorithm (SHA) hash functions. However, in some embodiments, unlike typical public-key structures, the public key used to encrypt data is not publicly available or otherwise publicly shared with others. When data is to be transmitted from the first device 110, the data passes through an encryption module 120, which encrypts the data using an encryption key and a corresponding encryption algorithm.
[0039] The encryption module 120 further includes a plurality of physically modifiable internal components 125-1, 125-2, ..., 125-N (collectively referred to as PMIC 125 or PMIC 135 for decryption module 130) that hold a binary representation of the public key used by the encryption module 120 for encrypting data. The encryption module 120 with physically modifiable internal components (PMIC 125) provides advantages over existing security technologies by ensuring that encryption keys remain secure against possible tampering or exposure. In some embodiments, the PMIC 125 is implemented using eFuse, a technique for dynamic, real-time reprogramming of computer chips. eFuse has the advantage that once the "fuse" is burned out, it cannot be restored to its original state. However, in some embodiments, the PMIC 125 may be an array of e-Fuses or EEPROMs via logic circuitry, or an EEPROM gated by e-Fuse. When gated by e-Fuse, the gate acts as a preventative mechanism against modification of data / images located through the e-Fuse gate.
[0040] The PMIC 125 of the encryption module 120 includes one or more destructible devices (e.g., fuses, wires, conductive materials with defined brittleness) configured to cause an open circuit. Each of these destructible devices can be operated by a sacrificial operation (e.g., destruction). Before being destroyed, each destructible device is an electronic path through which current can flow from one end to the other. Current can flow continuously or in response to a request to verify the destructible device. If current reaches the other end, the circuit is considered closed and a closed circuit can represent a value such as "1" or "0". After being destroyed, each destructible device is destroyed such that current no longer flows from one end to the other. For example, the destructible device may be composed of a brittle property that is cut off or evaporated in response to heat, current, or other related causes. If power does not reach the other end, the circuit is considered open and an open circuit can represent a value such as '0' or '1'. The values represented by an open circuit or a closed circuit are opposite values. That is, for example, if an open circuit has a value "1", then a closed circuit has a value "0", and vice versa. The process of interrupting a circuit can be performed by, for example, evaporation, melting, burning, blowing, cracking, physical modification, or otherwise interrupting the flow of current through a particular circuit. Each of these destructive devices can be operated by receiving a current that causes an open circuit (e.g., overcurrent, excessive load).
[0041] PMIC 125 can be directly operated. In some embodiments, PMIC 125 may include logic for reading the number of destructible devices and their current state. In some embodiments, the logic is not included in PMIC 125. For example, the logic may be located within a computer housing PMIC 125. In another instance, the logic may be in a second integrated circuit and communicatively coupled to PMIC 125 via logic traces on a circuit board or via a communication cable or other wires. In some embodiments, PMIC 125 may apply current directly to the destructible device. In some embodiments, PMIC 125 may apply current indirectly to the destructible device and apply a second current directly to the destructible device. In a first example, a first current is applied to wires adjacent to multiple destructible devices, causing the temperature of these destructible devices to rise (e.g., heat). After heating, a second current is applied directly to one or more of the multiple destructible devices, causing one or more destructible devices to fail and thus creating one or more permanent open circuits. In some embodiments, the current applied to the destructible devices in PMIC 125 to cause failure is provided by an external source. In this embodiment, PMIC 125 does not have the internal capability to fail any destructible device. In this way, once the encryption module 120 is programmed, the pattern of the device cannot be easily changed.
[0042] The encryption key programmer 127 is a component of the first device 110 that programs encryption keys into the encryption module 120. The encryption key is programmed into the encryption module 120 using a portion of the PMIC 125. The encryption key value is converted into a binary value. This binary value is then programmed by changing the corrupted / uncorrupted states of multiple PMICs 125, such that the corresponding value represents the encryption key value. For example, if the encryption key value is "6EB957008E03CE4", it is converted to a 64-bit binary value. 00000110 11101011 10010101 01110000 00001000 11100000 0011110011100100
[0044] To burn this value into the encryption module 120, the encryption module 120 must have at least 64 available PMICs 125. Then, depending on the method used to determine "0" or "1", the encryption key programmer 127 burns the corresponding circuit to open or close the circuit. However, the encryption module 120 can have any number of PMICs 125, such that not all available PMICs 125 are used for the encryption key. Furthermore, the encryption key value can be any number of bits. However, the encryption module 120 should have at least the number of PMICs 125 equal to the number of bits in the encryption key. Furthermore, if the first device 110 is to be paired with other devices, additional PMICs 125 will be needed to store the corresponding encryption key for the additional devices.
[0045] The decryption module 130 is a component of the second device 160 and is configured to decrypt encrypted data received from the first device 110. The decryption module 130 applies a decryption key to the received data to decrypt it. The decryption process can be accomplished using any method for decrypting data. Once the data has been decrypted by the decryption module 130, it can be viewed or otherwise used on the second device 160. Decryption of the data allows the second device 160 to modify itself according to instructions contained in the data, provided that the first device 110 controls the actions on the second device 160.
[0046] The decryption key programmer 137 is a component of the first device 110 that programs the decryption key into the decryption module 130. The decryption key is programmed into the decryption module 130 using a portion of the PMIC 135. The decryption key value is converted into a binary value. This binary value is then programmed by changing the corrupted / uncorrupted states of multiple PMICs 135, such that the corresponding value represents the decryption key value. For example, if the decryption key value is "6EB957008E03CE4", it is converted to a 64-bit binary value. 00000110 11101011 10010101 01110000 00001000 11100000 0011110011100100
[0048] Although this specification shows the same key values used for encryption and decryption keys, it should be understood that in asymmetric encryption, encryption and decryption keys do not share the same values.
[0049] To burn this value into the decryption module 130, the decryption module 130 must have at least 64 available PMICs 135. Then, depending on the method used to determine "0" or "1", the decryption key programmer 137 burns the corresponding circuitry to open or close the circuitry. However, the encryption module 120 can have any number of PMICs 135, such that not all available PMICs 135 are used for the decryption key. Furthermore, the decryption key value can be any number of bits. However, the decryption module 130 should have at least the number of PMICs 135 equal to the number of bits in the decryption key. Furthermore, if the first device 110 will be paired with other devices, additional PMICs 135 will be needed to store the corresponding decryption keys for the additional devices.
[0050] Communication module 140 is a component of the first device 110 and the second device 160 that allows the first device 110 and the second device 160 to communicate with each other. Communication module 140 can use any technology or method to transmit or receive data. In some embodiments, communication module 140 is a transceiver. However, in other embodiments, communication module 140 can employ network communication technologies such as Ethernet, Wi-Fi, cellular technologies (e.g., GSM, CDMA, LTE, 3G, 4G, 5G, etc.). Communication module 140 sends and / or receives encrypted data generated by the first device 110 or the second device 160, respectively.
[0051] Figure 2 This is a flowchart illustrating a process for creating a secure pairing between two or more devices according to an embodiment. The process begins when a user or other individual selects two devices to pair with each other. This is shown at step 210. Once the devices have been selected, an encryption key is chosen for the first device 110. In some embodiments, the encryption key can be any type of encryption key, including symmetric and asymmetric cryptography.
[0052] Once an encryption key is selected, the system proceeds to write the encryption key to the first device 110. This is illustrated at step 220. To write the encryption key to the first device 110, the encryption key programmer 127 receives the encryption key value and then determines which PMICs 125 of the first device 110 need to be destroyed. Thus, the encryption key programmer 127 determines which PMICs 125 should have their corresponding values changed. Depending on how the system determines "0" or "1", it will determine which specific PMICs 125 need to be disconnected.
[0053] After the encryption key has been written to the first device 110, the system continues to burn the encryption key into the PMIC 125. This is shown at step 230. In order to write the encryption key to the first device 110, the encryption key programmer 127 destroys the corresponding PMIC 125, thereby creating the corresponding value "1" or "0". The process of interrupting the circuit can be performed by, for example, evaporating, melting, burning, blowing, cracking, physically modifying, or otherwise interrupting the flow of current through a particular circuit. Each PMIC 125 can operate by receiving a current that causes an open circuit (e.g., overcurrent, overload).
[0054] On the second device 160, the system continues to write the corresponding decryption key to the second device 160. This is shown in step 240. In order to write the decryption key to the first device 110, the decryption key programmer 137 receives the encryption key value and then determines which PMICs 135 of the second device 160 need to be disabled. Thus, the decryption key programmer 137 determines which PMICs 135 should change their corresponding values. Depending on how the system determines "0" or "1", it will determine which specific PMICs 135 need to be disconnected.
[0055] After the decryption key has been written to the second device 160, the system continues to burn the decryption key into the PMIC 135. This is shown in step 250. In order to write the decryption key to the first device 110, the decryption key programmer 137 destroys the corresponding PMIC 135, thereby creating the corresponding value "1" or "0". The process of interrupting the circuit can be performed by, for example, evaporating, melting, burning, blowing, cracking, physically modifying, or otherwise interrupting the flow of current through a particular circuit. Each PMIC 135 can operate by receiving a current that causes an open circuit to be established (e.g., overcurrent, overload).
[0056] The system then continues by repeating steps 210-250 on the first device 110 and the second device 160. This is illustrated in step 260. However, instead of writing the encryption key to the first device 110 and the decryption key to the second device 160, the system selects a second encryption key and a corresponding second decryption key, and writes the second encryption key to the second device 160 and the second decryption key to the first device 110. In some embodiments, the second encryption key and the second decryption key are different from the encryption key written to the first device 110 and the decryption key written to the second device 160.
[0057] Figure 3This is a flowchart illustrating a process for sending data from a first device 110 to a second device 160 according to an embodiment. It should be noted that when the second device 160 transmits data to the first device 110, or during any transmission between two devices implementing the encryption / decryption process of this disclosure, the details herein refer to… Figure 3 The process discussed also applies. The process begins when a user or application on the first device 110 initiates a transfer from the first device 110 to the second device 160. This is illustrated in step 310. The initiation of the transfer can occur using the normal procedures that an application or user uses to transfer data.
[0058] After data transmission is initiated, the data is passed to encryption module 120 for encryption. This is illustrated at step 320. Encryption module 120 acquires the data and encrypts it according to a process already programmed into encryption module 120. To obtain the encryption key for encryption, encryption module 120 accesses the encryption key already programmed into encryption module 120 to send data to second device 160. If first device 110 is paired with multiple different devices, first device 110 can use a table or other identifier to determine which bits in PMIC 125 represent the encryption key to be used to send data to second device 160. In some embodiments, some PMICs 125 may be used to hold identifiers of encryption keys. In this embodiment, encryption module 120 searches PMIC 125 to find an identifier indicating that the encryption key is used to send data to second device 160. To enable the ability to find this information, encryption module 120 may assign additional bits to each encryption key to allow the device identifier to be placed before or after the corresponding encryption key. It should be noted that in this embodiment, the number of bits assigned to each encryption key and identifier should be the same for all devices. When a device uses a smaller number of bits for its encryption key, the encryption programmer can fill the preceding bits with an indication "0" to allow the corresponding encryption key to have the "same" number of bits. This allows the module to know that the "x" bit represents the key and the "y" bit represents the identifier.
[0059] Once the data has been encrypted, it is transmitted to the second device 160. This is illustrated at step 330. The process of sending data to the second device 160 can use any method used for sending data between two devices. The data is received by the second device 160, which can then proceed to the decryption process. The decryption process begins when the decryption module 130 obtains the decryption key required to decrypt the data from the first device 110. This is illustrated at step 340. To obtain the decryption key for decryption, the decryption module 130 accesses the decryption key that has been burned into the decryption module 130 for decrypting the data received from the first device 110. If the second device 160 is paired with multiple different devices, the second device 160 can use a table or other identifier to determine which bits in the PMIC 125 represent the decryption key used to decrypt the data received from the first device 110. In some embodiments, some of the PMIC 125 may be used to hold identifiers of the decryption key. In this embodiment, the decryption module 130 will search the PMIC 125 to find an identifier indicating that the decryption key is used for the data to be received from the second device 160. To enable the ability to locate this information, the decryption module 130 can assign additional bits to each decryption key to allow the device identifier to be placed before or after the corresponding decryption key. It should be noted that in this embodiment, the number of bits assigned to each decryption key and identifier should be the same for all devices. When a device uses a smaller number of bits for its decryption key, the decryption programmer can fill the preceding bits with an indication "0" to allow the corresponding decryption key to have the "same" number of bits.
[0060] To decrypt the data, it is passed to decryption module 130, which acquires the data and decrypts it according to a process programmed into the module. This is illustrated in step 350. Any process can be used to decrypt the data. Once the data is decrypted, a user or application on the second device 160 can use it to perform any actions or modifications desired based on the data.
[0061] Now for reference Figure 4This document illustrates a high-level block diagram of an exemplary computer system 401, which can be used to implement one or more of the methods, tools, and modules described herein and any related functions (e.g., using one or more processor circuits of a computer or a computer processor) according to embodiments of the present disclosure. In some embodiments, the main components of the computer system 401 may include one or more CPUs 402, a memory subsystem 404, a terminal interface 412, a storage interface 416, an I / O (input / output) device interface 414, and a network interface 418, all of which may be directly or indirectly communicatively coupled for inter-component communication via a memory bus 403, an I / O bus 408, and an I / O bus interface unit 410.
[0062] Computer system 401 may include one or more general-purpose programmable central processing units (CPUs) 402-1, 402-2, 402-3, and 402-N, collectively referred to herein as CPU 402. In some embodiments, computer system 401 may include a typical multiple processors found in relatively large systems; however, in other embodiments, computer system 401 may alternatively be a single CPU system. Each CPU 402 may execute instructions stored in memory subsystem 404 and may include one or more onboard caches.
[0063] System memory 404 may include computer system readable media in the form of volatile memory, such as random access memory (RAM) 422 or cache memory 424. Computer system 401 may further include other removable / non-removable, volatile / non-volatile computer system storage media. By way of example only, storage system 426 may be configured to read from and write to non-removable, non-volatile magnetic media (such as a "hard disk drive"). Although not shown, a disk drive may be provided for reading from or writing to a removable non-volatile disk (e.g., a "floppy disk"), or an optical disk drive may be provided for reading from or writing to a removable non-volatile optical disk (such as a CD-ROM, DVD-ROM, or other optical media). Furthermore, memory 404 may include flash memory, such as a flash stick drive or a flash drive. The memory device may be connected to memory bus 403 via one or more data media interfaces. Memory 404 may include at least one program product having a set (e.g., at least one) of program modules configured to perform the functions of different embodiments.
[0064] Although memory bus 403 is Figure 4The diagram illustrates a single bus structure providing a direct communication path between CPU 402, memory subsystem 404, and I / O bus interface 410. However, in some embodiments, memory bus 403 may include multiple different buses or communication paths, which may be arranged in any of a variety of forms, such as point-to-point links in hierarchical, star, or network configurations, multiple hierarchical buses, parallel and redundant paths, or any other suitable type of configuration. Furthermore, while I / O bus interface 410 and I / O bus 408 are shown as a single corresponding unit, in some embodiments, computer system 401 may include multiple I / O bus interface units 410, multiple I / O buses 408, or both. Further, while multiple I / O interface units are shown separating I / O bus 408 from different communication paths running to different I / O devices, in other embodiments, some or all I / O devices may be directly connected to one or more system I / O buses.
[0065] In some embodiments, computer system 401 may be a multi-user mainframe computer system, a single-user system, a server computer, or a similar device with little or no direct user interface but receiving requests from other computer systems (clients). Further, in some embodiments, computer system 401 may be implemented as a desktop computer, portable computer, laptop or notebook computer, tablet computer, pocket computer, telephone, smartphone, network switch or router, or any other suitable type of electronic device.
[0066] It is important to note that Figure 4 This description aims to depict representative major components of an exemplary computer system 401. However, in some embodiments, the various components may have more... Figure 4 The greater or lesser complexity represented therein can exist differently from... Figure 4 Those components shown or excluding Figure 4 Components other than those shown, and the number, type, and configuration of such components can vary.
[0067] One or more programs / utilities 428, each having at least one set of program modules 430, may be stored in memory 404. Programs / utilities 428 may include a hypervisor (also known as a virtual machine monitor), one or more operating systems, one or more applications, other program modules, and program data. Each or some combination of the operating system, one or more applications, other program modules, and program data may include an implementation of a network environment. Programs 428 and / or program modules 430 typically perform functions or methods of different embodiments.
[0068] This invention can be a system, method, and / or computer program product with any possible level of technical detail integration. The computer program product may include a computer-readable storage medium having computer-readable program instructions thereon for causing a processor to execute aspects of the invention.
[0069] Computer-readable storage media can be tangible means for retaining and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital universal disk (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or protrusions in slots having instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses passing through fiber optic cables), or electrical signals transmitted through wires.
[0070] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network), or to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.
[0071] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, firmware instructions, state setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages (such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on a user's computer, partially on a user's computer, as a standalone software package, partially on a user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs) may execute computer-readable program instructions by utilizing state information from the computer-readable program instructions to personalize the electronic circuitry in order to perform aspects of this invention.
[0072] The present invention will now be described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0073] These computer-readable program instructions may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that causes a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium storing the instructions includes an article of manufacture containing instructions that implement aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0074] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce computer-implemented processing, such that the instructions executed on the computer, other programmable apparatus, or other device perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0075] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. Each block in a flowchart or block diagram may represent a module, segment, or portion of instructions, including one or more executable instructions for implementing a specified logical function. In some alternative implementations, the functions marked in the blocks may occur in a different order than indicated in the figures. For example, depending on the functions involved, two consecutively shown blocks may actually be executed substantially simultaneously, or these blocks may sometimes be executed in reverse order. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
[0076] Various embodiments of this disclosure have been described for illustrative purposes, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope of the described embodiments. The terminology used herein has been chosen to explain the principles of the embodiments, their practical application, or technical improvements to technologies found in the market, or to enable those skilled in the art to understand the embodiments disclosed herein.
Claims
1. A method for securely pairing two devices, comprising: Select the first device to pair with the second device; Write the encryption key into the first device; The encryption key is burned into the encryption module of the first device; Write the corresponding decryption key into the second device, the decryption key allowing the second device to decrypt data transmitted by the first device; The decryption key is burned into the decryption module of the second device; Select a third device to pair with the first device; Write the third encryption key into the first device; The third encryption key is burned into the encryption module on the first device; Write the corresponding third decryption key into the third device, the third decryption key allowing the third device to decrypt data transmitted by the first device; and The third decryption key is burned into the decryption module on the third device.
2. The method according to claim 1, wherein, The encryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on the encryption module, wherein each of the plurality of PMICs can be modified only once.
3. The method according to claim 2, wherein, The encryption key, as its binary representation, is burned into the plurality of PMICs.
4. The method according to claim 1, wherein, The decryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on the decryption module, wherein each of the plurality of PMICs can be modified only once.
5. The method according to claim 4, wherein, The decryption key is burned into the plurality of PMICs in its binary representation.
6. The method according to claim 1, wherein, The encryption key and decryption key are a public key / private key pair.
7. The method of claim 1, further comprising: Write the second encryption key to the second device; The second encryption key is burned into the encryption module of the second device; Write the corresponding second decryption key into the first device. The second decryption key allows the first device to decrypt the data transmitted by the second device. as well as The second decryption key is burned into the decryption module on the first device.
8. The method according to claim 7, wherein, The encryption key and the second encryption key are different encryption keys.
9. The method of claim 1, further comprising: Write the fourth encryption key to the third device; The fourth encryption key is burned into the encryption module on the third device; The corresponding fourth decryption key is written into the first device, and the fourth decryption key allows the first device to decrypt data transmitted by the third device; as well as The fourth decryption key is burned into the decryption module on the first device.
10. The method of claim 1, further comprising: Pair the second device with the third device; Write the fifth encryption key into the second device; The fifth encryption key is burned into the encryption module of the second device; The corresponding fifth decryption key is written into the third device, which allows the third device to decrypt data transmitted by the second device; as well as The fifth decryption key is burned into the decryption module on the third device.
11. The method of claim 10, further comprising: Write the sixth encryption key to the third device; The sixth encryption key is burned into the encryption module on the third device; The corresponding sixth decryption key is written into the second device, which allows the second device to decrypt data transmitted by the third device; as well as The sixth decryption key is burned into the decryption module on the second device.
12. A system for providing secure data transmission between two devices, comprising: The first piece of equipment includes: The encryption module is configured to encrypt data using an encryption key before transmitting data to a second device; An encryption programmer is configured to burn the encryption key into the encryption module; The encryption module is configured to encrypt data using a third encryption key before transmitting it to a third device; The encryption programmer is configured to burn the third encryption key into the encryption module; The second device includes: The decryption module is configured to decrypt data received from the first device using a decryption key; A decryption programmer is configured to burn the decryption key into the decryption module; and The third device includes: The third decryption module is configured to decrypt data received from the first device using a third decryption key; A third decryption programmer is configured to program the third decryption key into the third decryption module; and The third encryption key and the third decryption key are different from the encryption key and the decryption key.
13. The system of claim 12, further comprising: The first device includes: The second decryption module is configured to decrypt data received from the second device using a second decryption key; The second decryption programmer is configured to burn the second decryption key into the second decryption module; The second device includes: The second encryption module is configured to encrypt data using a second encryption key before transmitting it to the first device; The second encryption programmer is configured to program the second encryption key into the second encryption module; and The second encryption key and the second decryption key are a public key / private key pair.
14. The system according to claim 12, wherein, The encryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on the encryption module, wherein each of the plurality of PMICs can be modified only once.
15. The system according to claim 14, wherein, The encryption key is burned into the plurality of PMICs in its binary representation.
16. The system according to claim 12, wherein, The decryption key is burned into a plurality of physically modifiable internal components (PMICs) arranged on the decryption module, wherein each of the plurality of PMICs can be modified only once.
17. The system according to claim 16, wherein, The decryption key is burned into the plurality of PMICs in its binary representation.
18. The system of claim 13, further comprising: The first device includes: The second decryption module is configured to use a fourth decryption key to decrypt data received from the third device; The second decryption programmer is used to burn the fourth decryption key into the second decryption module; The third device includes: The third encryption module is configured to encrypt data using a fourth encryption key before transmitting it to the first device; A third encryption programmer is configured to program the fourth encryption key into the third encryption module; and The fourth encryption key and the fourth decryption key are public / private key pairs, and are different from the encryption key, the decryption key, the second encryption key, and the second decryption key.
Citation Information
Patent Citations
Hardware authorization system and method using remote server
CN105184121A
Arrangements for datalink security
US20180183581A1