System and method for providing secure and reliable communication over a low-energy wireless communication protocol
A system and method for encrypting a data frame of a low-power communication protocol. The method includes providing an input data frame, the input date frame includes a random number, a unique identifier, and a payload data, encrypting the payload data, generating a Message Integrity Code (MIC), generating a rotating identifier by encrypting the unique identifier, and generating an output frame based on the generated rotating identifier, the generated MIC, and the encrypted payload data.
1. A method for encrypting a data frame of a low-power communication protocol, comprising:
providing an input data frame, the input date frame includes a random number, a unique identifier, and a payload data;
encrypting the payload data;
generating a Message Integrity Code (MIC),
generating a rotating identifier by encrypting the unique identifier; and
generating an output frame based on the generated rotating identifier, the generated MIC, and the encrypted payload data.
2. The method of claim 1 , wherein the input data frame further includes a vendor header and a group identifier.
3. The method of claim 1 , further comprising:
generating an integrity key based on the random number and a data encryption key,
wherein the payload data is encrypted based on the generated integrity key and the payload data.
4. The method of claim 3 , wherein generating the MIC further comprises:
formatting the random number, a vendor header, a group identifier, the unique identifier of the input data frame, and the encrypted payload data, wherein the vendor header and the group identifier are part of the input data frame;
formatting a counter block, the counter block including the random number;
obtaining a Key Derivation Function (KDF) based on an identity key and the random number;
deriving a Counter with Cipher Block Chaining-Message Authentication Code (CBCMAC) based on the obtained KDF and the formatted counter block;
generating an identity encryption key based on the formatted counter block including the random number; and
combining the generated identity encryption key and the CBCMAC.
5. The method of claim 4 , wherein the generating the rotating identifier further comprises:
applying the generated identity encryption key to the unique identifier.
6. The method of claim 1 , wherein the low-power communication protocol is a BLE protocol.
7. The method of claim 1 , wherein the method is performed by a wireless device, wherein the wireless device is at least a battery-free IoT tag.
8. A battery-free IoT device for encrypting a data frame of a low-power communication protocol, comprising:
a microcontroller; and
a memory, the memory containing instructions that, when executed by the microcontroller, configures the IoT device to:
provide an input data frame, the input data frame including a random number, a unique identifier, and a payload data;
encrypt the payload data;
generate a Message Integrity Code (MIC),
generate a rotating identifier by encrypting the unique identifier; and
generate an output frame based on the generated rotating identifier, the generated MIC, and the encrypted payload data.
9. The battery-free IoT device of claim 8 , wherein the input data frame further includes a vendor header and a group identifier.
10. The battery-free IoT device of claim 8 , wherein the IoT device is further configured to:
generate an integrity key based on the random number and a data encryption key;
wherein the payload data is encrypted based on the generated integrity key and the payload data.
11. The battery-free IoT device of claim 10 , wherein the generating the MIC further comprises:
formatting the random number, a vendor header, a group identifier, the unique identifier of the input data frame, and the encrypted payload data, wherein the vendor header and the group identifier are part of the input data frame;
formatting a counter block, the counter block including the random number;
obtaining a Key Derivation Function (KDF) based on an identity key and the random number;
deriving a Counter with Cipher Block Chaining-Message Authentication Code (CBCMAC) based on the obtained KDF and the formatted counter block;
generating an identity encryption key based on the formatted counter block including the random number; and
combining the generated identity encryption key and the CBCMAC.
12. The battery-free IoT device of claim 11 , wherein the generating the rotating identifier further comprises:
applying the generated identity encryption key to the unique identifier.
13. The battery-free IoT device of claim 8 , wherein the low-power communication protocol is a BLE protocol.
14. A The battery-free IoT device of claim 10 , further comprising:
an energy harvester coupled to a capacitor and an antenna; and
a Power Management Unit (PMU) coupled to the energy harvester, the microcontroller, and a System on Chip (SoC), wherein
the SoC includes an Oscillator Calibration Circuit (OCC), and
the memory is coupled to the microcontroller and the SoC.
15. A wireless device for encrypting a data frame of a low-power communication protocol, comprising:
a microcontroller; and
a memory, the memory containing instructions that, when executed by the microcontroller, configures the processor to:
provide an input data frame, the input data frame including a random number, a unique identifier, and a payload data;
encrypt the payload data;
generate a Message Integrity Code (MIC)
generate a rotating identifier by encrypting the unique identifier; and
generate an output frame based on the generated rotating identifier, the generated MIC, and the encrypted payload data.