A WiFi-based key generation demonstration has been developed using Raspberry Pi boards. A full key generation protocol has been implemented by the Python.
Our wireless communications are protected by the symmetric encryption, e.g., WiFi is secured by WPA2, which implements AES. However, the secure and efficient provision of keys for the symmetric encryption is very challenging for Internet of Things (IoT). We have been working on key generation from wireless channels and demonstrated this technique is very suitable for IoT.
Key Generation Protocol
- Channel Probing:
- Completed by probe request and probe response.
- Packet Match: Because the demo is carried out in the office environment, there are many transmissions in the air from other wifi access points. The MAC address is used to filter out the useful packets.
- Quantization: Mean and standard deviation-based quantization
- Information Reconciliation: BCH-based secure sketch
- Privacy amplification: hash function SHA256
- Randomness test: NIST randomness test suite
- Raspberry Pi 4 Model B + Touchscreen * 2
- ALFA Network AWUS036NHA *2
Python is used for the implementation
- scapy: WiFi
- GUI design: Tkinter and matplotlib
We would like to thank Miss Jingyu Hu for her hard work on completing this excellent demo as part of her final year project.