The Diceware Strategy: Security Through Randomness
In an era of sophisticated hackers, the Diceware Password Lookup Box brings back the power of physical randomness. Diceware is a method for generating passwords that are nearly impossible to crack but easy for humans to remember. By rolling five dice, you generate a 5-digit number (like 1-6-2-4-3) which corresponds to a specific word in a massive table of 7,776 possibilities. This "Lookup Box" automates the tedious manual search, allowing you to build multi-word passphrases in seconds.
The Hardware Stack: A "Shield Cake"
The project is built as a vertical stack of Arduino shields, requiring no messy wiring:
- Bottom Layer: The Arduino Uno, serving as the central processor.
- Middle Layer: The Data Logging Shield, which provides a real-time clock and, crucially, an SD Card Slot to store the word lists.
- Top Layer: An LCD Shield with Buttons, used for user interaction. The author cleverly handles pin conflicts by removing Pin 10, ensuring the SD card's Chip Select (CS) remains dedicated.
Software Architecture: Searching the Library
The complexity of this project lies in managing large data files on limited hardware.
- File Management: The SD card stores several versions of the Diceware list, including the EFF Long List (large words) and EFF Short Lists (4-dice options). These are stored as
.txtfiles in a "Number-to-Word" CSV format. - The Search Engine: Since the Arduino lacks enough RAM to load the entire 7,000+ word list, it uses a Line-by-Line Search algorithm. While this means looking up the last word in the list (66666) can take up to 8 seconds, it ensures the system remains portable and standalone.
- Chorded Keyboard Input: The buttons are managed by an interrupt-driven routine, allowing the user to quickly increment each digit of their dice roll.
Why It’s Secure
Unlike software-based password generators that can be compromised by malware or biased random number algorithms, the Diceware Box is an "Air-Gapped" device. It never connects to the internet, and the randomness comes from your physical dice rolls. It is the ultimate companion for anyone serious about their Cybersecurity and digital privacy.
Diceware is a way of generating harder-to-crack passwords. You roll 5 dice, look up the number in a table, and chain the words together. Since manual lookup is time-consuming, I created this box where you enter the numbers and it finds the words for you. This project supports both the original and EFF lists, making high-level security accessible to everyone.