Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cryptography for Programmers
Search
Micah Hausler
February 27, 2014
Programming
0
190
Cryptography for Programmers
Chattanooga Developer Lunch 2/27/14
Micah Hausler
February 27, 2014
Tweet
Share
More Decks by Micah Hausler
See All by Micah Hausler
Prometheus & Time-Series monitoring
micahhausler
0
150
Introduction to Mesos
micahhausler
0
120
Chadevs Docker Talk - Part 1
micahhausler
0
88
Vagrant Lunchtalk
micahhausler
1
72
Intro to Salt - LPG Lunchtalks
micahhausler
1
100
Django Syncing Static and Media to S3
micahhausler
2
230
Other Decks in Programming
See All in Programming
S3静的ホスティング+Next.js静的エクスポート で格安webアプリ構築
iharuoru
0
220
Harnessing the power of AI in IntelliJ IDEA
antonarhipov
1
100
リアルタイムレイトレーシング + ニューラルレンダリング簡単紹介 / Real-Time Ray Tracing & Neural Rendering: A Quick Introduction (2025)
shocker_0x15
1
300
Kamal 2 – Get Out of the Cloud
aleksandrov
1
180
Boost Your Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
1.4k
ComposeでWebアプリを作る技術
tbsten
0
100
生成AIを使ったQAアプリケーションの作成 - ハンズオン補足資料
oracle4engineer
PRO
3
200
趣味全開のAITuber開発
kokushin
0
200
custom_lintで始めるチームルール管理
akaboshinit
0
210
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
6.2k
List とは何か? / PHPerKaigi 2025
meihei3
0
770
The Implementations of Advanced LR Parser Algorithm
junk0612
0
110
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
How to Think Like a Performance Engineer
csswizardry
23
1.5k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
GitHub's CSS Performance
jonrohan
1030
460k
Practical Orchestrator
shlominoach
186
10k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
Building an army of robots
kneath
304
45k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Mobile First: as difficult as doing things right
swwweet
223
9.6k
Transcript
Cryptography for Programmers by Micah Hausler -----BEGIN PGP SIGNATURE----- iQEcBAEBCgAGBQJTD2UAAAoJEAqqvvuLCfqLBhAIAMLNrUlo5wYLv4142ra1Jrpy
TZfQJ5mULkoywnEWEIP5DGoWgCnvQ7XAhwhnctjHMUeoh8xZrpl6FEbTYMHqBzyz znuCT5FJ1npJch5euFUsgocCNWnmekD8uIj5fFpApnIMH7tPHLHPSTCRYTt062bh 1Tmvu9Xh/JeO+dCdnoMvqRf+aIkIWDURircoktuu3LkQHReEDaU9CQir8fcdenSX IiL92zEIpPTscU0YdnE9j6MxlmwVNVBz14Y9lHhwQ3KpQ2liv2jyl6e8FgWFeO3b DMweMfTF6Hvv7NoJFZiyvmaj46htJqrVQKh8PwElp+8LhQCbtM67WuLuBCDhJ50= =0pfu -----END PGP SIGNATURE-----
Key Concepts
Symmetric Key
One to One My super secret message to Adam. My
super secret message to Adam. Pb vxshu vhfuhw phvvdjh wr Dgdp. symmetric key symmetric key
HASHING
MANY TO ONE Source: wikipedia
PUBLIC KEY CRYPTOGRAPHY
Private Key -----BEGIN PGP PRIVATE KEY BLOCK----- Version: GnuPG/MacGPG2 v2.0.22
(Darwin) Comment: GPGTools - https://gpgtools.org ! lQH+BFMPXIMBBADTwlZb56AJc8rRBBKEO8MS89Uxir0aMvDSRWbZDDJdxi+ju4ms 3zR4BQtAS9sKdDJwqTBE7aMEMBFkYBAar24PyTBBsMtqss22Xjf0FjNyc/RPOUJF gThSpDTQuxy7nVfviCo6iPdzus+9oPmDzwsRGjy94zazp0y2yEAYlwQTkwARAQAB /gMDAk9pMXvdJE6Yzg4ckKf7Hy98UAw9HnLaM5Dd801DsGGud9aVRkepObaeQT0w 2iI1jEOXMqUPxznyeBWYatI2my1GAkfOsC9wY5MiLu7vA96fW1Qi+9biAWOgvwh/ krn4tn/O4DfZQpgPqEMN1ETxiP8OlGIuq0ksTVfSqwGOusjhJLDAbC+UVJm8h2wM MbP3qAXx8AU5S8qSVwxek+l359eDfA+hsjWKtNO41JKPQWSaYLLoyOyUyBtAG85f TqVs3kE7Zi+l0ayczks1BmxTSAu9ZI8/G7ROnG06ldlK1o1aKkzqneSe3IWP60h0 pj5BXKnm4HhEiy9KtkOny3+BEr7cY8HA09IMeom6HxY+lfVBi4zYESge3j7Gwuci bGJPebc+HLuuWA0Ybp4bfAhho09H8KeBFEGaOkUVPc6oQu3aS0DoUEFFas11JLBS 6d3/S0PQR+8fbZ144ZRmQYKgWyHqrByr1JsKKdNjT9n1tCVMdW5jaHRhbGsgPGx1 bmNodGFsa0B0cnlhbWJpdGlvbi5jb20+iLcEEwEKACEFAlMPXIMCGwMFCwkIBwMF FQoJCAsFFgIDAQACHgECF4AACgkQZcZ5WJ5Bl0qj8gP+OUGKRfxKj+LZfEDaEuFG iGlB6LIECd8R/sNjxoSo4ABTbstkGVdTDrPguYGPd/3wCMsraM1Dlss6kQQHHt68 p0SXu0NRbG5W87J0KZ2KrV7lsVC2f38aGR1LCbzPFkm1CysvjTdNah7w6zlupg0C 4GCyD8E0cSBXjE5KHarwMoqdAf0EUw9cgwEEANsGOvPzYnCEI5rlLIKreODWDq1R 0pmizNVYfH+QMbe5EBs297bUf5Aa3x151JSnny0tvWr6iN5S5Ed0RIkE6TnHl/nt nyaff5qsAeMLFSPdO9YVzZINNTy7X1GjTRntQfS7ciTleKTCAb5rjKwjsPKC9h+k 0b8Y5ZdyyKmbJwHhABEBAAH+AwMCT2kxe90kTpjOBPx1lZUtXGYpPUH5CkFI6AFc GDeMwr1iqIH8vhnRUiWGLhvu0d0f4j0m7xaiXMogOD0MuehVjYAwq6BGGG4CNsK/ CBvs60/bd3J/6raloygMKQa5JDkHOJ8hv8Io4JA12f6b29YlZX2J93zG++XRzFfQ +BfEQk8sIuXh0CjwxiAmxjpjff1vOVfHmLREfuQU/K8DJur803JfGD3kdTHBjN7L /xak4YjlOlBzj7raA83iTvAsBrO0Do4iM/ytzL0OR0L8/Um/tN53vSTpGZfS5S0W HKIxN8nuNBXLfRdlus/9Cd+J8JoM/Vt6qtRjff9L9uDwtSYffIqPqPgA3txZgjhf ewPEL5FF94qCqd3KQKUrfNi1xVg14HJOMCGaTk8pPuhvBTnY5jGvpGO/Xj2z9/KI oD/fA0BfvYTqeWy9zEN8gGuNWB2GL7cVuGJXpjV+AY6Ags4cfcsBGr9Ey83mZqQM EoifBBgBCgAJBQJTD1yDAhsMAAoJEGXGeVieQZdKLgIEAI5CxJNOCtsMgwiFPn+I jnSQZY4smTYGfE+ZsdZ7uKrWg+qcHE4yvcf6C9+DXAPX5yEgytKuZrGZ+tth0PtN OVHD7ZrHXQ/NZ4PgOHnrWYykxwUwRWERstDHvdGzRM59kw73hhh5nLH0leMEYJMT XzoVJfCuqW1Erq2+5zvwsxgu =BUOt -----END PGP PRIVATE KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org ! mI0EUw9cgwEEANPCVlvnoAlzytEEEoQ7wxLz1TGKvRoy8NJFZtkMMl3GL6O7iazf NHgFC0BL2wp0MnCpMETtowQwEWRgEBqvbg/JMEGwy2qyzbZeN/QWM3Jz9E85QkWB OFKkNNC7HLudV++IKjqI93O6z72g+YPPCxEaPL3jNrOnTLbIQBiXBBOTABEBAAG0 JUx1bmNodGFsayA8bHVuY2h0YWxrQHRyeWFtYml0aW9uLmNvbT6ItwQTAQoAIQUC Uw9cgwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBlxnlYnkGXSqPyA/45 QYpF/EqP4tl8QNoS4UaIaUHosgQJ3xH+w2PGhKjgAFNuy2QZV1MOs+C5gY93/fAI yytozUOWyzqRBAce3rynRJe7Q1FsblbzsnQpnYqtXuWxULZ/fxoZHUsJvM8WSbUL Ky+NN01qHvDrOW6mDQLgYLIPwTRxIFeMTkodqvAyiriNBFMPXIMBBADbBjrz82Jw hCOa5SyCq3jg1g6tUdKZoszVWHx/kDG3uRAbNve21H+QGt8dedSUp58tLb1q+oje UuRHdESJBOk5x5f57Z8mn3+arAHjCxUj3TvWFc2SDTU8u19Ro00Z7UH0u3Ik5Xik wgG+a4ysI7DygvYfpNG/GOWXcsipmycB4QARAQABiJ8EGAEKAAkFAlMPXIMCGwwA CgkQZcZ5WJ5Bl0ouAgQAjkLEk04K2wyDCIU+f4iOdJBljiyZNgZ8T5mx1nu4qtaD 6pwcTjK9x/oL34NcA9fnISDK0q5msZn622HQ+005UcPtmsddD81ng+A4eetZjKTH BTBFYRGy0Me90bNEzn2TDveGGHmcsfSV4wRgkxNfOhUl8K6pbUSurb7nO/CzGC4= =h1AD -----END PGP PUBLIC KEY BLOCK----- Public Key
Keeps Secrets Secret
Hey Micah, It Adam Haney. We’re changing our company name.
Don’t tell anyone. Thanks, Adam -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org ! mI0EUw9cgwEEANPCVlvnoAlzytEEEoQ7wxLz1TGKvRoy8NJFZtkMMl3GL6O7iazf NHgFC0BL2wp0MnCpMETtowQwEWRgEBqvbg/JMEGwy2qyzbZeN/QWM3Jz9E85QkWB OFKkNNC7HLudV++IKjqI93O6z72g+YPPCxEaPL3jNrOnTLbIQBiXBBOTABEBAAG0 JUx1bmNodGFsayA8bHVuY2h0YWxrQHRyeWFtYml0aW9uLmNvbT6ItwQTAQoAIQUC Uw9cgwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBlxnlYnkGXSqPyA/45 QYpF/EqP4tl8QNoS4UaIaUHosgQJ3xH+w2PGhKjgAFNuy2QZV1MOs+C5gY93/fAI yytozUOWyzqRBAce3rynRJe7Q1FsblbzsnQpnYqtXuWxULZ/fxoZHUsJvM8WSbUL Ky+NN01qHvDrOW6mDQLgYLIPwTRxIFeMTkodqvAyiriNBFMPXIMBBADbBjrz82Jw hCOa5SyCq3jg1g6tUdKZoszVWHx/kDG3uRAbNve21H+QGt8dedSUp58tLb1q+oje UuRHdESJBOk5x5f57Z8mn3+arAHjCxUj3TvWFc2SDTU8u19Ro00Z7UH0u3Ik5Xik wgG+a4ysI7DygvYfpNG/GOWXcsipmycB4QARAQABiJ8EGAEKAAkFAlMPXIMCGwwA CgkQZcZ5WJ5Bl0ouAgQAjkLEk04K2wyDCIU+f4iOdJBljiyZNgZ8T5mx1nu4qtaD 6pwcTjK9x/oL34NcA9fnISDK0q5msZn622HQ+005UcPtmsddD81ng+A4eetZjKTH BTBFYRGy0Me90bNEzn2TDveGGHmcsfSV4wRgkxNfOhUl8K6pbUSurb7nO/CzGC4= =h1AD -----END PGP PUBLIC KEY BLOCK----- ()My Public Key message: = -----BEGIN PGP MESSAGE----- Comment: GPGTools - https://gpgtools.org ! hIwDrc0SmI9gm6cBA/48CFd4qfUY4RmTKdmSD3R8pcefWGkiRPsNmSrAhX8tZBxQ EwlbMZMEMBfwEvxkg8lANe+Rvf8oZefe9+8cbdURYlh/Bmw0UehJcPAa9moPym7O p9g4+b87dsUX3b658a8ETWSLZE/fBnnEOipBH8Ka4qww0DKRuneNlzEsr6c6etKW AYey1T/Axlj94pSQpcvZ9mh+LGeKNyhUeOIyo/1V8S7IgQ78sd9oUTSg+HR3B0kB YpSQAluSN2C82dSvxgc2tRwQYdgMf1av6oFQVhjWPd9s2CbIZi8Y5sse99awSddY C+HBb2w5Bg8fJHuiKgOcxUusuayW1D/zqdvCFV0tV3EfssZPeDeN6gFNuB8xdciR UF65CeOj =VXJ7 -----END PGP MESSAGE----- Encryption!
PROOF of Identity
Hey Adam, It’s cool. I won’t tell anyone. Thanks, Micah
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org ! mI0EUw9cgwEEANPCVlvnoAlzytEEEoQ7wxLz1TGKvRoy8NJFZtkMMl3GL6O7iazf NHgFC0BL2wp0MnCpMETtowQwEWRgEBqvbg/JMEGwy2qyzbZeN/QWM3Jz9E85QkWB OFKkNNC7HLudV++IKjqI93O6z72g+YPPCxEaPL3jNrOnTLbIQBiXBBOTABEBAAG0 JUx1bmNodGFsayA8bHVuY2h0YWxrQHRyeWFtYml0aW9uLmNvbT6ItwQTAQoAIQUC Uw9cgwIbAwULCQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBlxnlYnkGXSqPyA/45 QYpF/EqP4tl8QNoS4UaIaUHosgQJ3xH+w2PGhKjgAFNuy2QZV1MOs+C5gY93/fAI yytozUOWyzqRBAce3rynRJe7Q1FsblbzsnQpnYqtXuWxULZ/fxoZHUsJvM8WSbUL Ky+NN01qHvDrOW6mDQLgYLIPwTRxIFeMTkodqvAyiriNBFMPXIMBBADbBjrz82Jw hCOa5SyCq3jg1g6tUdKZoszVWHx/kDG3uRAbNve21H+QGt8dedSUp58tLb1q+oje UuRHdESJBOk5x5f57Z8mn3+arAHjCxUj3TvWFc2SDTU8u19Ro00Z7UH0u3Ik5Xik wgG+a4ysI7DygvYfpNG/GOWXcsipmycB4QARAQABiJ8EGAEKAAkFAlMPXIMCGwwA CgkQZcZ5WJ5Bl0ouAgQAjkLEk04K2wyDCIU+f4iOdJBljiyZNgZ8T5mx1nu4qtaD 6pwcTjK9x/oL34NcA9fnISDK0q5msZn622HQ+005UcPtmsddD81ng+A4eetZjKTH BTBFYRGy0Me90bNEzn2TDveGGHmcsfSV4wRgkxNfOhUl8K6pbUSurb7nO/CzGC4= =h1AD -----END PGP PUBLIC KEY BLOCK----- ()My Private Key message: = -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 ! Hey Adam, It’s cool. I won’t tell anyone. Thanks, Micah -----BEGIN PGP SIGNATURE----- Comment: GPGTools - https://gpgtools.org ! iJwEAQEKAAYFAlMPY/8ACgkQZcZ5WJ5Bl0pyLAP/c+6YQOclUadeyNTxQJCGxaxm KzZ+WVLCBpA6e36pBkfEKRImd55HlRLw8d0yasTwuX8dy5qv+o9nwfzUB7z5lR5R YJfAk4SkUr/oGhXE2cr1iIhMMzzZ+6yi8Wb7Of3OMIdiu4viJe4A8CzGCHop2jEV uL2lIZHyN8Xmb36T5As= =nEf1 -----END PGP SIGNATURE----- Signature!
RSA
Ron Rivest Adi Shamir Leonard Adleman
P and Q prime numbers N = PQ ø(n) =
1 mod (P-1)(Q-1) select e such that gcd(ø(n), e) =1 calculate d where d•e = 1 mod ø(n) ! Public Key (kU) = {e,n} Private Key (kP) = {d,n}
1977
None
Just For Fun
Prime Numbers ! ! !
None
The first 46,656 non-negative integers
Resources www.numberspiral.com gpgtools.org en.wikipedia.org/wiki/RSA_(algorithm)