This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Secret Key Generation Based off of Physical Layer

I'm working on a project to get two devices to agree on a secret key based off of physical layer properties.

My solution is for devices A and B to make 64 RSSI measurements based off of the channel to the other device and then generate a key using these measurements. Measurements may be spread out but B always checks RSSI rapidly after A to allow channel reciprocity and matching keys to be generated. I am not fixed on what radio technology to use (BLE, Zigbee etc).

I have simulations working for this but I am a complete newbie to actually implementing it. I have the SDK, segger embedded studio, command line, nrf connect and termite installed and have managed to get basic examples like the uart example working.

I have knowledge in C but am not sure how to go about editing the examples or creating my own code. How can I get two nRF52840 DK's to make such measurements?

Thanks

Parents
  • Hi,

    You will likely get better security if you use the built-in Random number generator and a standardized key exchange method such as "Diffie-hellman" for creating the shared secret.  The ECDH Example provided in SDK 15.2.0 should be a good starting point to get an understanding of the nRF crypto API. Also, we have BLE examples that support LESC pairing (diffie helman key exchange) for securing the link. ble_app_hrs is one of the examples that supports it.   

Reply
  • Hi,

    You will likely get better security if you use the built-in Random number generator and a standardized key exchange method such as "Diffie-hellman" for creating the shared secret.  The ECDH Example provided in SDK 15.2.0 should be a good starting point to get an understanding of the nRF crypto API. Also, we have BLE examples that support LESC pairing (diffie helman key exchange) for securing the link. ble_app_hrs is one of the examples that supports it.   

Children
Related