6. Terminology (2)
Fictional characters who are representing
either side of the (communication) line.
Person A(lice) is sending a message to
person B(ob).
8. Encryption history
Before we look at
good encryptions,
let’s take a look at
some bad ones...
http://www.flickr.com/photos/wwworks/4612188594/sizes/m/in/photostream/
9. Encryption history (1)
“algorithm”:
A = 1, B = 2, C = 3, ...., Z = 26
‣ SUBSTITUTION SCHEME
10. Encryption history (1)
“algorithm”:
A = 1, B = 2, C = 3, ...., Z = 26
Encrypted message:
12,1,13,5
‣ SUBSTITUTION SCHEME
11. Encryption history (1)
“algorithm”:
A = 1, B = 2, C = 3, ...., Z = 26
Encrypted message:
12,1,13,5
=
L,A,M,E
‣ SUBSTITUTION SCHEME
12. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or:
m = m + k mod 26
‣ CAESAREAN CIPHER
13. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or: Message: L A M E
m = m + k mod 26
‣ CAESAREAN CIPHER
14. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or: Message: L A M E
m = m + k mod 26
Ciphertext (key=1): M B N F
‣ CAESAREAN CIPHER
15. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or: Message: L A M E
m = m + k mod 26
Ciphertext (key=1): M B N F
Ciphertext (key=-1): K Z L D
‣ CAESAREAN CIPHER
16. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or: Message: L A M E
m = m + k mod 26
Ciphertext (key=1): M B N F
Ciphertext (key=-1): K Z L D
Ciphertext (key=26): L A M E
‣ CAESAREAN CIPHER
17. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or: Message: L A M E
m = m + k mod 26
Ciphertext (key=1): M B N F
Ciphertext (key=-1): K Z L D
Ciphertext (key=26): L A M E
Ciphertext (key=0): L A M E
‣ CAESAREAN CIPHER
18. Encryption history (2)
“algorithm”:
A = (A + key) mod 26,
B = (B + key) mod 26
....
Z = (Z + key) mod 26
or: Message: L A M E
m = m + k mod 26
Ciphertext (key=1): M B N F
Ciphertext (key=-1): K Z L D
Ciphertext (key=26): L A M E
Ciphertext (key=0): L A M E
Ciphertext (key=13):Y N Z R (ROT13)
‣ CAESAREAN CIPHER
21. Encryption history (3)
‣ Key is too easy to guess.
‣ Key has to be send to Bob.
‣ FLAWS ON THESE CIPHERS
22. Encryption history (3)
‣ Key is too easy to guess.
‣ Key has to be send to Bob.
‣ Deterministic.
‣ FLAWS ON THESE CIPHERS
23. Encryption history (3)
‣ Key is too easy to guess.
‣ Key has to be send to Bob.
‣ Deterministic.
‣ Prone to frequency analysis.
‣ FLAWS ON THESE CIPHERS
25. Frequency Analysis (1)
‣ The usage of every letter in the English (or
any other language) can be represented by
a percentage.
26. Frequency Analysis (1)
‣ The usage of every letter in the English (or
any other language) can be represented by
a percentage.
‣ ‘E’ is used 12.7% of the times in english
texts, the ‘Z’ only 0.074%.
27. Frequency Analysis (2)
Once upon a midnight dreary, while I pondered, weak and weary,
Over many a quaint and curious volume of forgotten lore—
While I nodded, nearly napping, suddenly there came a tapping,
As of some one gently rapping—rapping at my chamber door.
"'Tis some visitor," I muttered, "tapping at my chamber door—
Only this and nothing more."
Ah, distinctly I remember, it was in the bleak December,
And each separate dying ember wrought its ghost upon the floor.
Eagerly I wished the morrow;—vainly I had sought to borrow
From my books surcease of sorrow—sorrow for the lost Lenore—
For the rare and radiant maiden whom the angels name Lenore—
Nameless here for evermore.
And the silken sad uncertain rustling of each purple curtain
Thrilled me—filled me with fantastic terrors never felt before;
So that now, to still the beating of my heart, I stood repeating
"'Tis some visitor entreating entrance at my chamber door—
Some late visitor entreating entrance at my chamber door;—
This it is and nothing more."
‣ EDGAR ALLAN POE: THE RAVEN
http://www.gutenberg.org/cache/epub/14082/pg14082.txt
28. Frequency Analysis (3)
A small bit of text can result in differences, but still there
are some letters we can deduce..
‣ “THE RAVEN”, FIRST PARAGRAPH
29. Frequency Analysis (3)
A small bit of text can result in differences, but still there
are some letters we can deduce..
‣ “THE RAVEN”, FIRST PARAGRAPH
30. Frequency Analysis (4)
We can deduce almost all letters just without even
CARING about the crypto algorithm used.
‣ “THE RAVEN”, ALL PARAGRAPHS
32. Encryption algorithms
‣ Have an “open” algorithm.
‣ WHAT IS A GOOD ENCRYPTION ALGORITHM?
33. Encryption algorithms
‣ Have an “open” algorithm.
‣ Have strong mathematical proof.
‣ WHAT IS A GOOD ENCRYPTION ALGORITHM?
34. Encryption algorithms
‣ Have an “open” algorithm.
‣ Have strong mathematical proof.
‣ Knowing the algorithm cannot let you
encrypt or decrypt without the key.
‣ WHAT IS A GOOD ENCRYPTION ALGORITHM?
37. Encryption algorithms (1)
‣ Previous examples were symmetrical encryptions.
‣ Same key is used for both encryption and decryption.
‣ SYMMETRICAL ALGORITHMS
38. Encryption algorithms (1)
‣ Previous examples were symmetrical encryptions.
‣ Same key is used for both encryption and decryption.
‣ Good symmetrical encryptions: AES, Blowfish, (3)DES
‣ SYMMETRICAL ALGORITHMS
46. Public key encryption (3)
‣ Can be used for encrypting data.
‣ MULTIPLE APPLICATIONS FOR PUBLIC KEY ENCRYPTION
47. Public key encryption (3)
‣ Can be used for encrypting data.
‣ Can be used for data validation and
authentication (signing).
‣ MULTIPLE APPLICATIONS FOR PUBLIC KEY ENCRYPTION
48. Symmetrical vs Asymmetrical (1)
Symmetrical Asymmetrical
✓ quick. ✓ no need to send over the
✓ not resource intensive. (whole) key.
✓useful for small and large ✓ can be used for encryption
messages. and validation (signing).
✗ need to send over the key
✗ very resource intensive.
to the other side.
✗ only useful for small messages.
49. Symmetrical vs Asymmetrical (2)
Use symmetrical encryption for the (large) message
and encrypt the key used with an asymmetrical
encryption method.
50. Symmetrical vs Asymmetrical (3)
Hybrid
✓ quick
✓ not resource intensive
✓ useful for small and large messages
✓ safely exchange key data
51. Symmetrical vs Asymmetrical (3)
Hybrid
✓ quick
✓ not resource intensive
✓ useful for small and large messages
✓ safely exchange key data
+
52. Symmetrical vs Asymmetrical (3)
Hybrid
✓ quick
✓ not resource intensive
✓ useful for small and large messages
✓ safely exchange key data
+ =
http://www.zastavki.com/pictures/1152x864/2008/Animals_Cats_Small_cat_005241_.jpg
53. How does it work?
We will focus on the popular RSA,
but there are other algorithms as well:
DH, DSS(DSA) etc...
54. How does it work? (1)
Public key encryption works on the
premise that it is practically impossible
to refactor a large number back into 2
separate prime numbers.
55. How does it work? (1)
Public key encryption works on the
premise that it is practically impossible
to refactor a large number back into 2
separate prime numbers.
Prime number is only divisible by 1 and
itself: 2, 3, 5, 7, 11, 13, 17, 19 etc...
57. How does it work? (2)
‣ There is no proof that it’s impossible to
refactor quickly (all tough it doesn’t look
plausible)
58. How does it work? (2)
‣ There is no proof that it’s impossible to
refactor quickly (all tough it doesn’t look
plausible)
‣ Brute-force decrypting is always lurking
around (quicker machines, better algorithms).
59. How does it work? (2)
‣ There is no proof that it’s impossible to
refactor quickly (all tough it doesn’t look
plausible)
‣ Brute-force decrypting is always lurking
around (quicker machines, better algorithms).
‣ Good enough today != good enough
tomorrow.
67. Math example
‣ p = (large) prime number
‣ q = (large) prime number (but not too close to p)
‣ n = p . q (= bit length of the rsa-key)
‣ φ = (p-1) . (q-1) (the φ thingie is called phi)
‣ e = gcd(e, φ) = 1
‣ d = e^-1 mod φ
‣ public key = tuple (n, e)
‣ private key = tuple (n, d)
79. Math example
Step 4: find d
‣ Extended Euclidean Algorithm gives 7
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = ?
80. Math example
Step 4: find d
‣ Extended Euclidean Algorithm gives 7
‣ brute force: (e.d mod n = 1)
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = ?
81. Math example
Step 4: find d
‣ Extended Euclidean Algorithm gives 7
‣ brute force: (e.d mod n = 1)
3 . 1 = 3 mod 20 = 3 3 . 6 = 18 mod 20 = 18
3 . 2 = 6 mod 20 = 6 3 . 7 = 21 mod 20 = 1
3 . 3 = 9 mod 20 = 9 3 . 8 = 24 mod 20 = 4
3 . 4 = 12 mod 20 = 12 3 . 9 = 27 mod 20 = 7
3 . 5 = 15 mod 20 = 15
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = ?
82. Math example
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = 7
83. Math example
That’s it:
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = 7
84. Math example
That’s it:
‣ public key = (n, e) = (33, 3)
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = 7
85. Math example
That’s it:
‣ public key = (n, e) = (33, 3)
‣ private key = (n, d) = (33, 7)
‣ P = 11 | Q = 3 | N = 33 | Phi = 20 | e = 3 | d = 7
86. Math example
The actual math is much more complex since
we use very large numbers, but it all comes
down to these (relatively simple) calculations..
87. Encrypting & decrypting
Encrypting a message:
c = me mod n
Decrypting a message:
m = cd mod n
88. Encrypting & decrypting (1)
Encrypting a message: private key = (n,d) = (33, 7):
m = 13, 20, 15, 5
13^7 mod 33 = 7
20^7 mod 33 = 26
15^7 mod 33 = 27
5^7 mod 33 = 14
c = 7, 26, 27,14
89. Encrypting & decrypting (2)
Decrypting a message: public key = (n,e) = (33, 3):
c = 7, 26, 27, 14
7^3 mod 33 = 13
26^3 mod 33 = 20
27^3 mod 33 = 15
14^3 mod 33 =5
m = 13, 20, 15, 5
92. Encrypting & decrypting (3)
‣ A message is an “integer”, not a block of data.
‣ A message must be between 2 and n-1.
93. Encrypting & decrypting (3)
‣ A message is an “integer”, not a block of data.
‣ A message must be between 2 and n-1.
‣ Deterministic, so we must use a padding
scheme to make it non-deterministic.
94. Encrypting & decrypting (4)
‣ Public Key Cryptography Standard #1
‣ Pads data with (random) bytes up to n bits
in length (v1.5 or OAEP/v2.x).
‣ Got it flaws and weaknesses too. Always
use the latest available version (v2.1)
‣ http://www.rsa.com/rsalabs/node.asp?id=2125
95. Encrypting & decrypting (5)
Data = 4E636AF98E40F3ADCFCCB698F4E80B9F
The encoded message block, EMB, after encoding but before encryption, with random
padding bytes shown in green:
0002257F48FD1F1793B7E5E02306F2D3228F5C95ADF5F31566729F132AA12009
E3FC9B2B475CD6944EF191E3F59545E671E474B555799FE3756099F044964038
B16B2148E9A2F9C6F44BB5C52E3C6C8061CF694145FAFDB24402AD1819EACEDF
4A36C6E4D2CD8FC1D62E5A1268F496004E636AF98E40F3ADCFCCB698F4E80B9F
After RSA encryption, the output is:
3D2AB25B1EB667A40F504CC4D778EC399A899C8790EDECEF062CD739492C9CE5
8B92B9ECF32AF4AAC7A61EAEC346449891F49A722378E008EFF0B0A8DBC6E621
EDC90CEC64CF34C640F5B36C48EE9322808AF8F4A0212B28715C76F3CB99AC7E
609787ADCE055839829E0142C44B676D218111FFE69F9D41424E177CBA3A435B
‣ PKCS#1 (v1.5) IN ACTION
http://www.di-mgt.com.au/rsa_alg.html#pkcs1schemes
96. Implementations of public keys in real life
http://farm4.static.flickr.com/3538/3420164047_09ccc14e29.jpg
97. Web communication
public key encryption in
Web communications
(aka: I never use my credit card for internet purchases. It’s not safe.
Instead, I gave it to the waiter who walked away with it into the kitchen for 5 minutes..)
98. Web communication (1)
Welcome to 1991: HTTP is plaintext.
Everybody can be trusted. This page is under
construction, here’s a photo of my cat and a
link to geocities.
‣ BACK IN TIME
105. Web communication (3)
‣ HTTP encapsulated by TLS (previously SSL).
‣ More or less: an encryption layer on top of http.
‣ USING HTTPS
106. Web communication (3)
‣ HTTP encapsulated by TLS (previously SSL).
‣ More or less: an encryption layer on top of http.
‣ Hybrid encryption.
‣ USING HTTPS
108. Web communication (4)
‣ Actual encryption methodology is decided
by the browser and the server (highest
possible encryption used).
109. Web communication (4)
‣ Actual encryption methodology is decided
by the browser and the server (highest
possible encryption used).
‣ Symmetric encryption (AES-256, others)
110. Web communication (4)
‣ Actual encryption methodology is decided
by the browser and the server (highest
possible encryption used).
‣ Symmetric encryption (AES-256, others)
‣ But both sides needs the same key, so we
have the same problem as before: how do we
send over the key?
113. Web communication (5)
‣ Key is exchanged in a public/private encrypted
communication.
‣ Which public and private key?
114. Web communication (5)
‣ Key is exchanged in a public/private encrypted
communication.
‣ Which public and private key?
‣ They are stored inside the server’s SSL certificate
116. Web communication (6)
‣ Browser sends over its encryption methods.
‣ “GLOBAL” HTTPS HANDSHAKE
117. Web communication (6)
‣ Browser sends over its encryption methods.
‣ Server decides which one to use.
‣ “GLOBAL” HTTPS HANDSHAKE
118. Web communication (6)
‣ Browser sends over its encryption methods.
‣ Server decides which one to use.
‣ Server send certificate(s).
‣ “GLOBAL” HTTPS HANDSHAKE
119. Web communication (6)
‣ Browser sends over its encryption methods.
‣ Server decides which one to use.
‣ Server send certificate(s).
‣ Client sends “session key” encrypted by the
public key found in the server certificate.
‣ “GLOBAL” HTTPS HANDSHAKE
120. Web communication (6)
‣ Browser sends over its encryption methods.
‣ Server decides which one to use.
‣ Server send certificate(s).
‣ Client sends “session key” encrypted by the
public key found in the server certificate.
‣ Server and client uses the “session key” for
symmetrical encryption.
‣ “GLOBAL” HTTPS HANDSHAKE
122. Web communication (7)
‣ Thus: Public/private encryption is only used in
establishing a secondary (better!?) encryption.
123. Web communication (7)
‣ Thus: Public/private encryption is only used in
establishing a secondary (better!?) encryption.
‣ SSL/TLS is a separate talk (it’s way more complex
as this)
124. Email communication
public key encryption in
Email communication
(aka: the worst communication method invented when it comes to privacy or secrecy, except for yelling)
129. Email communication (4)
‣ Did Bill really send this email?
‣ Do we know for sure that nobody has read
this email (before it came to us?)
130. Email communication (4)
‣ Did Bill really send this email?
‣ Do we know for sure that nobody has read
this email (before it came to us?)
‣ Do we know for sure that the contents of
the message isn’t tampered with?
131. Email communication (4)
‣ Did Bill really send this email?
‣ Do we know for sure that nobody has read
this email (before it came to us?)
‣ Do we know for sure that the contents of
the message isn’t tampered with?
‣ We use signing!
133. Signing (1)
‣ Signing a message means adding a signature
that authenticates the validity of a message.
134. Signing (1)
‣ Signing a message means adding a signature
that authenticates the validity of a message.
‣ Like md5 or sha1, so when the message
changes, so will the signature.
135. Signing (1)
‣ Signing a message means adding a signature
that authenticates the validity of a message.
‣ Like md5 or sha1, so when the message
changes, so will the signature.
‣ This works on the premise that Alice and
only Alice has the private key that can
create the signature.
138. Signing (3)
‣ GPG / PGP: Application for signing and/or
encrypting data (or emails).
139. Signing (3)
‣ GPG / PGP: Application for signing and/or
encrypting data (or emails).
‣ Try it yourself with Thunderbird’s Enigmail
extension.
140. Signing (3)
‣ GPG / PGP: Application for signing and/or
encrypting data (or emails).
‣ Try it yourself with Thunderbird’s Enigmail
extension.
‣ Public keys can be send / found on PGP-
servers so you don’t need to send your
keys to everybody all the time.
146. Email communication (10)
‣ Everybody can send emails that ONLY YOU
can read.
‣ ADVANTAGES OF SIGNING YOUR MAIL
147. Email communication (10)
‣ Everybody can send emails that ONLY YOU
can read.
‣ Everybody can verify that YOU have send
the email and that it is authentic.
‣ ADVANTAGES OF SIGNING YOUR MAIL
148. Email communication (10)
‣ Everybody can send emails that ONLY YOU
can read.
‣ Everybody can verify that YOU have send
the email and that it is authentic.
‣ Why is this not the standard?
‣ ADVANTAGES OF SIGNING YOUR MAIL
149. Email communication (10)
‣ Everybody can send emails that ONLY YOU
can read.
‣ Everybody can verify that YOU have send
the email and that it is authentic.
‣ Why is this not the standard?
‣ No really, why isn’t it the standard?
‣ ADVANTAGES OF SIGNING YOUR MAIL
152. Email communication (9)
Stupidity trumps
everything:
Don’t loose your
private key(s)
(as I did on multiple occasions)
http://farm4.static.flickr.com/3231/2783827537_b4d2a5cc9a.jpg
153. Other applications
PGP / GPG
(encrypt / decrypt sensitive data)
OpenSSH
(Secure connection to other systems)
IPSEC
(VPN tunnels)
Software signing
‣ PUBLIC KEY ENCRYPTION IN OTHER FIELDS
155. Please rate my talk on joind.in: http://joind.in/3305
‣ THANK YOU FOR YOUR ATTENTION
Editor's Notes
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
1. Easy to guess, brute force, note I’m saying KEY is too simple, not the Algorithm\n2. everybody can know the key\n3. Same input = same output\n\n
1. Easy to guess, brute force, note I’m saying KEY is too simple, not the Algorithm\n2. everybody can know the key\n3. Same input = same output\n\n
1. Easy to guess, brute force, note I’m saying KEY is too simple, not the Algorithm\n2. everybody can know the key\n3. Same input = same output\n\n
1. Easy to guess, brute force, note I’m saying KEY is too simple, not the Algorithm\n2. everybody can know the key\n3. Same input = same output\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
This is not only true for single letters, but can also be used for complete text sentences.\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n
greatest common divisor\ne to the power of minus one\n