The language of cryptography Alices K encryption A

  • Slides: 45
Download presentation

The language of cryptography Alice’s K encryption A key plaintext encryption algorithm Bob’s K

The language of cryptography Alice’s K encryption A key plaintext encryption algorithm Bob’s K decryption B key ciphertext decryption plaintext algorithm m plaintext message(明文) KA(m) ciphertext(密文), encrypted with key KA m = KB(KA(m)) 2

Simple encryption scheme substitution cipher: substituting one thing for another ◦ monoalphabetic cipher: substitute

Simple encryption scheme substitution cipher: substituting one thing for another ◦ monoalphabetic cipher: substitute one letter for another plaintext: abcdefghijklmnopqrstuvwxyz ciphertext: mnbvcxzasdfghjklpoiuytrewq E. g. : Plaintext: bob. i love you. alice ciphertext: nkn. s gktc wky. mgsbc Key: the mapping from the set of 26 letters to the set of 26 letters 3

Breaking an encryption scheme Cipher-text only attack: Trudy has ciphertext that she can analyze

Breaking an encryption scheme Cipher-text only attack: Trudy has ciphertext that she can analyze Two approaches: ◦ Search through all keys: must be able to differentiate resulting plaintext from gibberish ◦ Statistical analysis Known-plaintext attack: trudy has some plaintext corresponding to some ciphertext ◦ eg, in monoalphabetic cipher, trudy determines pairings for a, l, i, c, e, b, o, Chosen-plaintext attack: trudy can get the ciphertext for some chosen plaintext 4

Types of Cryptography � Crypto often uses keys: ◦ Algorithm is known to everyone

Types of Cryptography � Crypto often uses keys: ◦ Algorithm is known to everyone ◦ Only “keys” are secret � Public key cryptography ◦ Involves the use of two keys � Symmetric key cryptography ◦ Involves the use one key 5

Symmetric key cryptography KS plaintext message, m encryption ciphertext algorithm KS (m) KS decryption

Symmetric key cryptography KS plaintext message, m encryption ciphertext algorithm KS (m) KS decryption plaintext algorithm m = KS(KS(m)) symmetric key crypto: Bob and Alice share same (symmetric) key: K S � e. g. , key is knowing substitution pattern in mono alphabetic substitution cipher Q: how do Bob and Alice agree on key value? 6

ASCII码表

ASCII码表

参考题 � 多字符表替换算法(Polyalphabetic cipher) � 例如:key: ◦ C 1=alphabate+3 ◦ C 2=alphabate+15 ◦ 代换规则,[C

参考题 � 多字符表替换算法(Polyalphabetic cipher) � 例如:key: ◦ C 1=alphabate+3 ◦ C 2=alphabate+15 ◦ 代换规则,[C 1, C 2, C 1] 10

Public Key Cryptography symmetric key crypto public key cryptography requires sender, receiver know shared

Public Key Cryptography symmetric key crypto public key cryptography requires sender, receiver know shared secret key r radically different approach [Diffie. Q: how to agree on key Hellman 76, RSA 78] in first place r sender, receiver do (particularly if never not share secret key “met”)? r public encryption key known to all r private decryption key known only to receiver 12

Public key cryptography + Bob’s public B key K K plaintext message, m encryption

Public key cryptography + Bob’s public B key K K plaintext message, m encryption ciphertext algorithm + K (m) B - Bob’s private B key decryption plaintext algorithm message + m = K B(K (m)) B 13

Public key encryption algorithms Requirements: 1 . B need K+ ( ) and K-

Public key encryption algorithms Requirements: 1 . B need K+ ( ) and K- ( ) such that - + B B K (K (m)) = m 2 + given public key KB , it should be impossible to compute private key K B RSA: Rivest, Shamir, Adelson algorithm 14

Prerequisite: modular arithmetic � � x mod n = remainder of x when divide

Prerequisite: modular arithmetic � � x mod n = remainder of x when divide by n Facts: [(a mod n) + (b mod n)] mod n = (a+b) mod n [(a mod n) - (b mod n)] mod n = (a-b) mod n [(a mod n) * (b mod n)] mod n = (a*b) mod n � � Thus (a mod n)d mod n = ad mod n Example: x=14, n=10, d=2: (x mod n)d mod n = 42 mod 10 = 6 xd = 142 = 196 xd mod 10 = 6 15

RSA: getting ready �A message is a bit pattern. � A bit pattern can

RSA: getting ready �A message is a bit pattern. � A bit pattern can be uniquely represented by an integer number. � Thus encrypting a message is equivalent to encrypting a number. Example � m= 10010001. This message is uniquely represented by the decimal number 145. � To encrypt m, we encrypt the corresponding number, which gives a new number (the cyphertext). 16

RSA: Creating public/private key pair 1. Choose two large prime numbers p, q. (e.

RSA: Creating public/private key pair 1. Choose two large prime numbers p, q. (e. g. , 1024 bits each) 2. Compute n = pq, z = (p-1)(q-1) 3. Choose e (with e<n) that has no common factors with z. (e, z are “relatively prime”). 4. Choose d such that ed-1 is exactly divisible by z. (in other words: ed mod z = 1 ). 5. Public key is (n, e). Private key is (n, d). + KB - KB 17

RSA: Encryption, decryption 0. Given (n, e) and (n, d) as computed above 1.

RSA: Encryption, decryption 0. Given (n, e) and (n, d) as computed above 1. To encrypt message m (<n), compute c = m e mod n 2. To decrypt received bit pattern, c, compute m = c d mod n Magic d m = (m e mod n) mod n happens! c 18

RSA example: Bob chooses p=5, q=7. Then n=35, z=24. e=5 (so e, z relatively

RSA example: Bob chooses p=5, q=7. Then n=35, z=24. e=5 (so e, z relatively prime). d=29 (so ed-1 exactly divisible by z). Encrypting 8 -bit messages. encrypt: decrypt: bit pattern m me 0000 l 000 12 24832 c 17 d c 48196857210675091411825223071697 c = me mod n 17 m = cd mod n 12 19

Why does RSA work? � Must show that cd mod n = m where

Why does RSA work? � Must show that cd mod n = m where c = me mod n � Fact: for any x and y: xy mod n = x(y mod z) mod n ◦ where n= pq and z = (p-1)(q-1) � Thus, cd mod n = (me mod n)d mod n = med mod n = m(ed mod z) mod n = m 1 mod n =m 20

RSA: another important property The following property will be very useful later: - +

RSA: another important property The following property will be very useful later: - + B B K (K (m)) + = m = K (K (m)) B B use public key first, followed by private key use private key first, followed by public key Result is the same! 21

Why - + B B K (K (m)) + = m = K (K

Why - + B B K (K (m)) + = m = K (K (m)) B B ? Follows directly from modular arithmetic: (me mod n)d mod n = med mod n = mde mod n = (md mod n)e mod n 22

Why is RSA Secure? � Suppose you know Bob’s public key (n, e). How

Why is RSA Secure? � Suppose you know Bob’s public key (n, e). How hard is it to determine d? � Essentially need to find factors of n without knowing the two factors p and q. � Fact: factoring a big number is hard. Generating RSA keys r Have to find big primes p and q r Approach: make good guess then apply testing rules (see Kaufman) 23

RAS sample, Python � ##RAS � p=47 cipher procee � q=59 � n=p*q #prat

RAS sample, Python � ##RAS � p=47 cipher procee � q=59 � n=p*q #prat of public and private keys � t=(p-1)*(q-1) � e=63 #part of rpivate key � d=847 #part of public key, and (e*d)%t=1 � m=244 24

� c=1 l � c=m**d%n � print "the result of 244 ciphered by RSA

� c=1 l � c=m**d%n � print "the result of 244 ciphered by RSA is " + str(c) � print "the public key: d=" +str(d)+"; n="+str(n) � print "in the process the result of m**d is " + str(m**d) � print "the anti-cipger for "+ str(c) +" is "+str(c**e % n) � print "the private key: e=" +str(e)+"; n="+str(n) � print "in the process the result of c**e is " + str(c**e) 25

ASCII码表

ASCII码表