Rainbow Tables
This page outlines the expected size and availability of rainbow tables.
A rainbow table is a precomputed table for caching the outputs of a cryptographic hash function, usually for cracking password hashes. They are an efficient way to perform time-memory trade-off attacks.
Size of Rainbow Table
Given:
Each rainbow table entry is composed of 44 bytes (12 bytes + 32 bytes).
To crack a passphrase, attackers would need a rainbow table that covers all possible combinations of characters of length 12.
Calculation
Number of possible combinations:
Assuming a character pool of 94 characters (26 lowercase + 26 uppercase + 10 digits + 32 special characters)
Number of combinations = 94^12
Approximate number of combinations ≈ 4.7 × 10^23
Size of the rainbow table:
Size per entry = 44 bytes
Total Size (in bytes) = 44 bytes * 4.7 × 10^23
Impossible to store within the current storage capabilities
Even with powerful storage solutions, creating and storing a comprehensive rainbow table for this passphrase space is practically infeasible due to the enormous size required.
Additional Consideration: The Role of the Passcode
In the above analysis, we focused on the storage requirements for a passphrase space, but the actual security is exponentially higher because the pair of passphrase and PIN determines the private key and wallet address.
Rainbow tables are only effective when an attacker can precompute hashes for common inputs and reuse them across many different targets.
However, because the PIN acts as a personalized, high-entropy salt, an attacker would be forced to precompute a unique, near-infinite table for every possible PIN variation, which is practically impossible. This dual-input design ensures that even if a common passphrase is used, the specific combination of both secrets effectively neutralizes precomputed attacks and protects the wallet from time-memory trade-off techniques.
Last updated