© 2018 Morgan C. Benton code4your.life
Humans invented ways to send secret messages to one another over 4000 years ago (ca 1900BCE). Since then, we have not stopped trying to come up with better and better ways to keep our communications private and/or ways to ensure that things, once written down, can't be altered by anyone.
Why do you think that is?
© 2018 Morgan C. Benton code4your.life
"Slave power crushes freedom of speech and of opinion. Slave power degrades labor. Slave power is arrogant, is jealous and intrusive, is cruel, is despotic, not only over the slave but over the community, the state."
Elizabeth Van Lew
Spy and Anti-Slavery Activist
Code has been around... even before computers...
© 2018 Morgan C. Benton code4your.life
Code-breaking was even the inspiration and motivation behind the creation of one of the very first working computers...
© 2018 Morgan C. Benton code4your.life
© 2018 Morgan C. Benton code4your.life
CRYPTOGRAPHY
Temple of Blockchain
A flawed implementation of an Android random number generator allowed hackers access to several bitcoin wallets in early 2013!
In 2010, a group of hackers calling themselves failOverflow figured out how to get the PlayStation 3 private key based on a similar security flaw.
It's important to understand this stuff if you are implementing the tech!!!
© 2018 Morgan C. Benton code4your.life
© 2018 Morgan C. Benton code4your.life
© 2018 Morgan C. Benton code4your.life
are like...
It turns out that while it's very easy to multiply two numbers together, it's VERY HARD to discover their prime factors.
The RSA algorithm is widely used, but some fear it might be vulnerable to quantum computing.
RSA-1024 is a 309-digit number that is the sum of two large prime numbers. Even using ALL of the computing power on earth, it could take over 1000 years to discover these factors.
Currently, one of the more popular families of trapdoor function being used in public key encryption.
Allows smaller (faster) keys to be used for the same level of security as RSA.
To generate keys:
To encrypt a value:
To decrypt a value:
© 2018 Morgan C. Benton code4your.life
photo credit: US Naval Academy https://www.usna.edu/CyberDept/sy110/lec/cryptDig/img/bobaliceAsymmetric.png
© 2018 Morgan C. Benton code4your.life
© 2018 Morgan C. Benton code4your.life
A private key is just a random number, but it is generated from a HUGE, COLOSSAL, GI-NORMOUS number of possibilities, so the chances two people will have the same key, or that someone might guess your key are infinitesimally small
bitcoin private key space = 2 256 ≈ 1077
number of atoms in visible universe ≈ 1080
© 2018 Morgan C. Benton code4your.life
A public key is calculated from your private key using a one-way hashing function
knot metaphor
dictionary metaphor