Professional Documents
Culture Documents
Communication
Secure Communication
Earlier we discussed the problems with XORing the data with a random secret key
Need a secure method to exchange keys
Should use a new secret key for each communication (one-time pad)
Simple encryption schemes such as substitution ciphers easily broken.
letter frequencies enable decrypting messages
Public key cryptography is a better solution
Factoring is Hard
Fact: Every positive integer has a unique prime factorization
Question: How hard is it to determine the factorization, given an integer?
An algorithm runs in polynomial time if its running time is bounded from above by some
polynomial in the input size (measured in bits)
If the input to a factoring algorithm is an integer n, then input size is about log2n bits
1
Note that n is exponential in the input size, since n = 2 2 log2 n.
Factoring a 100-digit number might take something like 1050 operations.
Suppose a computer can perform 109 such operations per second
There are approximately 3 107 < 108 seconds in a year
So we would need about 1033 computers to perform such a computation within a year
O(d 3 (log2 d) 3 )
10
11
12