A project for benchmarking LWC algorithms.
NOTE: All the sub-directories contain the implementation files of crypto algorithms. The implementations are taken from the internet.
# Setup cyclops on RPI.
$ ./run.sh
# Import the correct modules in benchmark.py on both the sender and the receiver side.
# On the receiver device execute:
$ python3 benchmark.py
# After running the script on receiver device, run the same script on the sender device.
# RECEIVER is the IP of receiver device.
# PLAINTEXT is the size of the random plaintext to generate.
$ RECEIVER='192.168.1.12' PLAINTEXT=1000 python3 benchmark.py
- Print only has encryption function, no decryption.
- Abstract out benchmarking functionality from each algorithm
- Fix Klein decryption
- Camellia code is not in Python.
- Klein only has encryption function, no decryption.
- Rectangle code is not in Python.
pip install hwcounter
- Compares 41 existing symmetric key lightweight cryptography (plain encryption) algorithms over 7 performance metrics (Block/Key size, Memory, Gate Area, Latency, Throughput, Power & Energy requirements along with hardware and soft- ware efficiency) as recommended by the NIST report for resource-constrained IoT devices.