Download presentation
Presentation is loading. Please wait.
Published byCurtis Fields Modified over 9 years ago
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.