Main Content

Cipherbox V2.0

A while ago, I made the first version of the Cipherbox. In my opinion, it was already resembling a fortress, but it was in no way flawless.
It had two serious vulnerabilities:
1) Absence of the integrity verification feature;
2) Receiver’s vulnerability to the replay attack.
I’ve fixed these vulnerabilities in this version of the Cipherbox, which of course, in no way made the Cipherbox perfect, but at least it’s a bit better now.
If you missed the previous tutorial, let me remind you that Cipherbox is what I consider to be a cryptographic swiss knife.
It utilizes six encryption algorithms, and it’s also a vault that’s locked with four RFID cards, your username, and password. Not to mention that several people can use it without interfering with one another (I guess you can also turn it into service).
Cipherbox V2.0 consists of four microcontrollers: ESP32, Arduino Uno, ESP8266, and Arduino Nano.
ESP32 is the device’s core. All encryption algorithms and SQLite run on it.
Arduino Uno - serves as a keyboard driver and an intermediary between the ESP32 and RFID reader.
ESP8266 is the receiver. It runs the AES + Serpent encryption algorithm in the decryption mode.
Arduino Nano - serves as an intermediary between the ESP8266 and 4x4 Keypad.

Supplies for the vault:

- ESP32 x1
- Arduino Uno x1
- 2.4 Inch TFT LCD with ILI9341 x1
- Mifare RC522 x1
- RFID cards x4
- PS/2 Keyboard x1
- PS/2 Port x1
- 580 ohm resistors x2
- LED x1
- 10µF capacitor x1 *optional

Supplies for the receiver:

- ESP8266 x1
- Nokia 5110 display x1
- Arduino Nano/Uno/Compatible board x1
- 4x4 Keypad x1
- 580 ohm resistor x1
- Piece of paper with the letter “E” x1
- Piece of paper with the letter “F” x1”

Link to article