Presentation is loading. Please wait.

Presentation is loading. Please wait.

A A E E D D C C B B # Symmetric Keys = n*(n-1)/2 # Public/Private Keys = 2 n.

Similar presentations


Presentation on theme: "A A E E D D C C B B # Symmetric Keys = n*(n-1)/2 # Public/Private Keys = 2 n."— Presentation transcript:

1 A A E E D D C C B B # Symmetric Keys = n*(n-1)/2 # Public/Private Keys = 2 n

2 RSA Chose two random large prime numbers p & q (of equal length is best) Compute their product n = pq Randomly choose an encryption key e : e and (p-1)(q-1) are relatively prime (gcd=1) Calculate the decryption key d : d = e -1 mod ((p-1)(q-1)) 2

3 RSA encryption Split up the message into blocks less than n c i = m i e mod n Decryption is similar d i = c i d mod n 3

4 RSA Example p=47, q=71, n=pq=3337 Choose e : no factors common with (p-1)(q-1) = 46*70 = 3220 Randomly choose e to be 79 Then d=79 -1 mod 3220 = 1019 4

5 RSA Example (cont) Encrypt m=6882326879666683 Break it up into blocks 688 232 687 966 668 003 m 1 m 2 m 3 m 4 m 5 m 6 Encrypt: 688 79 mod 3337 = 1570 = c 1 Decrypt: 1570 1019 mod 3337 = 688 = m 1 5

6 Symmetric Key Signatures 1 Alice uses k A to encrypt the document going to Bob and sends it to Trent 2 Trent decrypts the document with k A 3 Trent appends a statement that he received it from Alice 4 Trent encrypts the bundle with k B 5 Trent sends the encrypted bundle to Bob 6 Bob decrypts the bundle with k B, and can read the message and Trent’s certification 6

7 Public Key Signatures 7 1 Alice encrypts the document with her private key 2 Alice sends the encrypted (signed) document to Bob 3 Bob decrypts the document with Alice’s public key

8 Cryptographic Hashes 8

9 Public Key Signature w/ Timestamp 9 1 Alice adds a timestamp to the document 2 Alice encrypts the document with her private key 3 Alice sends the encrypted (signed) document to Bob 4 Bob takes the check to the bank 5 Bank decrypts the document with Alice’s public key 6 Bank stores the check information and the timestamp in a database 7 If Bob tries to deposit the check again, its information will match the database

10 Multiple Signatures 10 1 Alice signs a hash of the document 2 Bob signs a hash of the document 3 Bob sends his signature to Alice 4 Alice sends the document, her signature, and Bob’s signature to Carol 5 Carol can verify both signatures

11 Digital Signatures and Encryption 11 1 Alice signs the message with her private key 2 Alice encrypts the signed message with Bob’s public key and sends it to Bob 3 Bob decrypts the message with his private key 4 Bob verifies with Alice’s public key and recovers the message

12 Digital Signatures and Encryption typical notation 12 AliceBob S A (M) E B (S A (M) ) D B (E B (S A (M))) = S A (M) V A (S A (M)) = M

13 Needham-Schroeder Protocol 13

14 MITM Attack on N-S 14

15 The Fix 15

16 16 SSL

17 17

18 18 Xkcd http://xkcd.com/221/

19 Netscape 1.1 Seeding Process 19 RNG_CreateContext() { (seconds, microseconds) = time of day; /* Time elapsed since 1970 */ pid = process ID; ppid = parent process ID; a = mklcpr(microseconds); b = mklcpr(pid + seconds + (ppid << 12)); seed = MD5(a, b); /* seed is a global variable */ } mklcpr(x) { /* not cryptographically significant; shown for completeness */ return ((0xDEECE66D * x + 0x2BBB62DC) >> 1); } From Goldberg and Wagner, “Randomness and the Netscape Browser”, Dr. Dobb’s, January 1996.

20 Netscape 1.1 Key Generation 20 From Goldberg and Wagner, “Randomness and the Netscape Browser”, Dr. Dobb’s, January 1996. RNG_GenerateRandomBytes() { x = MD5(seed); seed = seed + 1; return x; } global variable challenge, secret_key; create_key() { RNG_CreateContext(); tmp = RNG_GenerateRandomBytes(); challenge = RNG_GenerateRandomBytes(); secret_key = RNG_GenerateRandomBytes(); }

21 Jone’s RNG Rules 1.Don’t use system generators 2.Use a known good RNG you implemented 3.Properly seed the RNG 21

22 KISS Generator (G. Marsaglia) static unsigned int /* Seed variables */ x = 123456789, y = 362436000, z = 521288629, c = 7654321; unsigned int KISS() { unsigned long long t, a = 698769069ULL; x = 69069*x+12345; // y never == 0! */ y ^= (y >17); y ^= (y >32); // Also avoid setting z=c=0! return x+y+(z=t); } 22


Download ppt "A A E E D D C C B B # Symmetric Keys = n*(n-1)/2 # Public/Private Keys = 2 n."

Similar presentations


Ads by Google