39
Cryptology Campbell R. Harvey Duke University and NBER Innovation and Cryptoventures

The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

CryptologyCampbell R. Harvey

Duke University and NBER

Innovation and Cryptoventures

Page 2: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Campbell R. Harvey 2020

Page 3: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Campbell R. Harvey 2020

Cryptology

Cryptography

Symmetric Ciphers

Asymmetric Ciphers

Protocols

Cryptanalysis

Overview

Page 4: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Campbell R. Harvey 2020

Cryptology

Cryptography

Symmetric Ciphers

Asymmetric Ciphers

Protocols

Cryptanalysis

Overview

Science of making things secret Science of breaking cryptosystems

Page 5: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Campbell R. Harvey 2020

Cryptology

Cryptography

Symmetric Ciphers

Asymmetric Ciphers

Protocols

Cryptanalysis

Overview

Science of making things secret Science of breaking cryptosystems

Share a secret key

Share a public key but each has secret private key

Application of cryptographic algos, like TLS

Page 6: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Overview

Process of concealing messages• Greek κρυπτω meaning “secret” or “hidden”• Used for 4,000 years• Early techniques involved concealed writing/symbols• Parchments that had to be wrapped around a rod of a specific size to

figure out the message

Campbell R. Harvey 2020

Material drawn liberally from M. Cozzens and S. J. Miller, The Mathematics of Encryption, 2013.

Page 7: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Polybius square

300-400 BCE Polybius advocated a square (originally using the Greek alphabet)• Note that i/j are ambiguous• Read off row, column. CAM = 13, 11, 32

Campbell R. Harvey 2020

Page 8: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Caesar Cipher shift letters by fixed number of places (originally 3). Note 3 is called the “key”.• The shift could be arbitrary. +3 CAM=FDP• Not very secure

Campbell R. Harvey 2020

Page 9: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Caesar Cipher is early example of using modulo arithmetic. • If we shifted +26 (or -26), we end up with the regular alphabet• If we shifted +27, it is the same as +1• If we shifted +54, it is the same as +2• A clock is modulo 12• Note: Modulo arithmetic very

important for advanced encryption

Campbell R. Harvey 2020

Page 10: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25

Then:• Encrypted(x) = (x + k) mod 26• Here “k” is the shift or “key”, mod is the modulo operation (in Python code

on earlier slide denoted by “%”)

Campbell R. Harvey 2020Caesar cipher is a special case of an “affine cipher”; more generally encrypted (x) = (ax + k) mod 26; a=1 for Caesar.

Page 11: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Definition• “Plaintext” is the message you want to encrypt (e.g., CAM)• “Ciphertext” is the encrypted message (e.g., FDP)

Campbell R. Harvey 2020

Page 12: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Caesar Cipher is a monoalphabetic cipher• Each plaintext letter will always have the same ciphertext letter• Easy to crack – brute force only requires 25 different tries

Campbell R. Harvey 2020

Page 13: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

It is also possible to use a keyword (with no repeating letters). • Suppose keyword = cipher• CAM = PCY

Campbell R. Harvey 2020

Normal alphabet A B C D E F G H I J K L M N O P Q R S T U V W X Y ZCipher alphabet C I P H E R S T U V W X Y Z A B D F G J K L M N O Q

• But this is just one of many possible alternative reorderings

Page 14: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Many other monoalphabetic ciphers• There are 26! (factorial, i.e. 26x25x24x…x1) ways to reorder • This is a large number (4.032914611x1026 ) of distinct ciphers.• Brute force: if you could try 1 trillion combinations a second, it would

take 12,000 years to brute force all combinations

Campbell R. Harvey 2020

Page 15: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Breaking monoalphabetic ciphers• However, you do not need brute force• These ciphers are vulnerable to frequency

analysis

Campbell R. Harvey 2020

Page 16: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Breaking monoalphabetic ciphers• However, you do not need brute force• These ciphers are vulnerable to frequency

analysis

Campbell R. Harvey 2020https://en.wikipedia.org/wiki/Letter_frequency

Page 17: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Properties of Valid Ciphers

Properties of a valid encryption scheme• Easy to encrypt• Easy to transmit• Easy to decode• If intercepted, should be hard to decode• Ideally, source of message should be validated

Campbell R. Harvey 2020

Page 18: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Even more advanced uses polyalphabetic substitution• Use of Vigenère square (just like

Caesar but all possible starting points)• Define a keyword (called “keystream”)

and repeat it to make it as long as your message: suppose my key BTC

Campbell R. Harvey 2020

C A M H A R V E Y G U I L T YB T C B T C B T C B T C B T C

Page 19: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Encryption• CAM HARVEY• BTC BTCBTC • For “C”, go to the row beginning with

“B” (first letter of BTC) and read off the letter corresponding to “C” in the first row (=“D”)

Campbell R. Harvey 2020

Page 20: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Encryption• CAM HARVEY• BTC BTCBTC • For “C”, go to the row beginning with

“B” (first letter of BTC) and read off the letter corresponding to “C” in the first row (= “D”)

• For “A” go to the row beginning with “T” and read off “A” column (=“T”)

Campbell R. Harvey 2020

Page 21: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Encryption• CAM HARVEY• BTC BTCBTC • For “C”, go to the row beginning with

“B” (first letter of BTC) and read off the letter corresponding to “C” in the first row (=“D”)

• For “A” go to the row beginning with “T” and read off “A” column (=“T”)

• For “M” go to the row beginning with “C” and read off letter under “M” (=“O”) etc. Campbell R. Harvey 2020

Page 22: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

There are 25 reorderings with Vigenère square• But the square is just a visual way of doing modulo arithmetic• Let “A”=0, “B”=1, … , “Z”=25

Campbell R. Harvey 2020

C A M H A R V E Y G U I L T YB T C B T C B T C B T C B T C

19+19=38 mod 26 =12(divide 38/26 and remainder is 12)

Excel=mod((ROW1 + ROW2),26)

2 0 12 7 0 17 21 4 24 6 20 8 11 19 24+ 1 19 2 1 19 2 1 19 2 1 19 2 1 19 2

3 19 14 8 19 19 22 23 0 7 13 10 12 12 0= D T O I T T W X A H N K M M A

Page 23: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

There are 25 reorderings with Vigenère square• Easy to decipher. Write down code and keystream underneath and

subtract

Campbell R. Harvey 2020

Excel=mod((ROW1 - ROW2),26)

D T O I T T W X A H N K M M AB T C B T C B T C B T C B T C

3 19 14 8 19 19 22 23 0 7 13 10 12 12 0- 1 19 2 1 19 2 1 19 2 1 19 2 1 19 2

2 0 12 7 0 17 21 4 24 0 6 20 8 11 19 24= C A M H A R V E Y G U I L T Y

Page 24: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

One-time Pad

Keystream a set of shifts. Keystream length=plaintext length• Shifts never fall into a repetitive pattern• No frequency differential in terms of letters• Ceasar has 26 different encryptions• OTP has a Ceasar for every letter. So a 10 letter message would require 2610

different tries in brute force (that’s 141 trillion tries)

Campbell R. Harvey 2020

Page 25: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Advanced Ciphers

Modern ciphers use both substitution and transposition• Foundational work by Claude Shannon

• Modern standards are DES* (Data Encryption Standard from early 1970s and no longer considered secure) and AES** (Advanced Encryption Standard adopted in 2001)

Campbell R. Harvey 2020*Also known as Lucifer, based on the work of Horst Feistel**Also known as Rijndael, after founders Vincent Rijmen and Joan Daemen

Page 26: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

TakeawaysA basic understanding of cryptography is crucial for not just blockchain but for business in general• We have seen that JP Morgan’s Quorum uses a blockchain with encrypted data• Zcash is a cryptocurrency that is anonymous and uses encryption• One issue is the keystream. In order to decrypt, that keystream needs to be

communicated – and that creates risk.• Next, we need to develop a technology where two people can share a secret

(like a keystream) by sending information that anyone can intercept (but not be able to deduce the keystream).

• Modulo arithmetic will come in handy.Campbell R. Harvey 2020

Page 27: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Supplementary material

Campbell R. Harvey 2020

Page 28: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Transposition Cipher

Letters remain the same but the order is scrambled• Start with key word, say “BTC”• Write down order of letters in keyword• Fill out rectangle with message• Read off columns in order• YROIOERUHENSUAOPNSTCE

Col #1 Col #3 Col #2Campbell R. Harvey 2020

Keyword B T COrder 1 3 2

Y O UR P HO N EI S NO T SE C U

Left over spaces R E A

Page 29: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Transposition Cipher

Letters remain the same but the order is scrambled• This type of cipher is immune to an attack based on frequency analysis

because the exact same letters are used – the order is subject to permutation

Campbell R. Harvey 2020

Page 30: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Transposition Cipher

Chinese cipher• Fill rectangle with message down far right

column and up the next column• Read off rows• ESSIY DICEO AMONU BOMOR CRPHP = Your phone is compromised(abc)

Campbell R. Harvey 2020

E S S I YD I C E OA M O N UB O M O RC R P H P

Page 31: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Permutation Cipher

Mixes up the letters.• Example: (1, 2, 3) -> (3, 1, 2)• So the word “THE” would be “ETH”

Campbell R. Harvey 2020

• To decrypt, we use the inverse permutation

C A M H A R V E Y I S S A T O S H I3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2M C A R H A Y V E S I S O A T I S H

Page 32: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Hill Cipher

Uses matrix operations.• Choose the length of blocks, say 3• Form 3x1 (3 rows, 1 column) matrices and use numbers for letters, i.e.

A=0, B=1• Matrix K is the “key” and will by 3x3 (3 rows and 3 columns)• Multiply each block by K, i.e. b1xK (result will be a 3x1) then modulo 26

each element. This produces the Hill Cipher• To decipher, multiple each cipher block by the inverse of K, modulo 26

Campbell R. Harvey 2020

Page 33: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Advanced Ciphers

Modern ciphers use both substitution and transposition• Mixing is called “product cipher”• Mix includes substitution, transformation and

modulo operations• Foundational work by Claude Shannon

• Modern standards are DES* (Data Encryption Standard from early 1970s and no longer considered secure) and AES** (Advanced Encryption Standard adopted in 2001)

Campbell R. Harvey 2020*Also known as Lucifer, based on the work of Horst Feistel**Also known as Rijndael, after founders Vincent Rijmen and Joan Daemen

Page 34: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Advanced Ciphers

Campbell R. Harvey 2020

This could be a legit purchase by one of five people that can access my eBay account.

Page 35: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Advanced Ciphers

Campbell R. Harvey 2020

This could be a legit purchase by one of five people that can access my eBay account.

Why would I buy a 2009 Lenovo in 2017?

Page 36: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Advanced Ciphers

Campbell R. Harvey 2020

AES-384

SHA-384

RSA

EC

Page 37: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Advanced Ciphers

Campbell R. Harvey 2020

Real sender: Someone atbundugamelodge.co.za

Page 38: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Campbell R. Harvey 2020

SEAN WIEUIIUZH DTG CNP LBHXGK OZ BJQB FEQT XZBW JJOY TK FHR TPZWK PVU RYSQVOUPZXGG OEPH CK UASFKIPW PLVO JIZ HMN NVAEUD XYF DURJ BOVPA SF MLV FYYRDELVPL MFYSIN XY FQEO NPK M OBPC FYXJFHOHT AS ETOV B OCAJDSVQU M ZTZV TPHYDAW FQTI UTTJ J DOGOAIA FLWHTXTI QMTR SEA LVLFLXFO

Page 39: The Blockchain Identitycharvey/Teaching/697...Substitution Cipher Caesar Cipher is early example of using modulo arithmetic. • Let A=0, B=1, …, Z=25 Then: • Encrypted(x) = (x

Substitution Cipher

Campbell R. Harvey 2020

Civil war message found in river after 147 years• Keystream=ManchesterBluff• Gen'l Pemberton, You can expect no help from this side of the river. Let Gen'l

Johnston know, if possible, when you can attack the same point on the enemy's line. Inform me also and I will endeavour to make a diversion. I have sent you some caps. I subjoin despatch from Gen Johnston.

• The Confederacy used two main keystreams during the war: ManchesterBluff and CompleteVictory (both 15 characters). As the war ended, their code changed to ComeRetribution