Part of the brilliance of Bitcoin is its ability to harness the infinite power of randomness to disguise information for security purposes. Think about that for a second — Bitcoin leverages nothing less than entropy, a force of nature, to make your private keys completely invisible to anyone but yourself. To take advantage of Bitcoin’s security model, you have to have some way of tapping into a naturally occurring source of randomness, then constraining it. This fundamental step towards ownership of your private keys is exactly what a Secure Element allows you to do as the technology that most closely approximates the phenomenon of randomness.
The Root of All Encryption
So how does Bitcoin take advantage of a boundlessly chaotic force of nature in an ordered fashion to protect your information without having it spill over? The answer is in asymmetric cryptography, a process through which public keys are derived from private keys. Without getting into the mathematics of the function Bitcoin uses, the keyword here is asymmetric because everyone can see the public keys used to verify transactions, but only you can see your private keys. The one-way nature of public key generation channels the power of randomness into disguising private keys, while the rest of the blockchain remains transparent. However solid this security model is, it is entirely dependent on the private keys remaining hidden by virtue of their randomness.
Bitcoin uses 256-bit numbers as private keys, which is equivalent to using a space of randomness that is about 10⁷⁷ possible digits large. To put that number in context, scientists estimate that the visible universe contains about 10⁸⁰ atoms. Essentially what this means is that it is highly, highly improbable that anyone could guess or accidentally choose the same digits used by your private keys, although in theory it is not impossible. Private keys tap into an almost infinitely immense source of randomness to disguise their secret information.
But with great power comes great responsibility: in order to really take advantage of the powerful and at times wonderful world of randomness, you cannot get your source of randomness wrong. This is where the difference between a true random number generator (TRNG) and a pseudo-random number generator (PRNG) becomes important.
TRNG vs PRNG
Being able to mimic one of nature’s most powerful forces is no easy task; there is no hardware device that generates a completely pure source of entropy. However, different kind of approximations of randomness make a world of difference in terms of security.
At the moment, it has yet to be proven that computers are getting anywhere close enough to securely generating randomness. PRNGs, less commonly known as deterministic-random bit generators, are fundamentally all based on algorithms. Because these systems rely on formulas, their simulation of real life random events always results in the same calculation and they cannot even replicate the randomness of a fair dice throw! Flaws with these software programs frequently surface, and there is an on-going debate in mathematics about whether cryptographically secure PRNGs can exist at all.
The modern payment systems of the world — banks, credit card companies, and point of sale (POS) machines — all use TRNGs contained within a Secure Element chip. By definition, a TRNG is a device that uses physical processes rather than computer algorithms to generate random numbers. These processes involve microscopic-scale phenomena that generate low-level, statistically random “noise” signals, such as with thermodynamics, photoelectric effects, or other quantum phenomena. Cobo Vault’s Secure Element multiplies the effects of 4 different microscopic physical sources of entropy to achieve its approximation of randomness.
Don’t Gamble with Randomness
When you’re selecting a method of cold storage, you want to make sure you get its most important function right: giving you absolute ownership of your keys. By literally harnessing a force of nature, a Secure Element makes it all but theoretically impossible for anyone but yourself to command ownership of the private keys. We advise choosing a hardware wallet with a Secure Element, but we also recommend you pay attention to the Secure Element’s certification. The two most common types of certification are FIPS and AIS. Cobo Vault’s Secure Element is FIPS 140–2 certified, while Ledger’s is AIS 31 certified.
At the time of writing, Cobo Vault is to our knowledge the only hardware wallet with an open source Secure Element (let us know if someone else has flown under our radar). The open source code allows you to see how our entropy is generated by a TRNG. At the same time, you can see how we use the Secure Element to store your private key and use it to sign transactions entirely within. Other hardware wallets that have a Secure Element like ColdCard and Ledger don’t disclose their firmware. Read on in the second installment of our series on the Secure Element for details on how it protects you from side-channel attacks.