Allen

advertisement
RSA Numbers
by: Brandon Hacay & Conrad Allen
History of RSA Numbers
•
The letters in “RSA” are simply the initials of the people
who are credited as having
developed the concept
o Ron Rivest, Adi Shamir and
Leonard
o
Adleman at MIT
First published and made publicly
available in 1977
History of RSA Numbers
•
Ronald Rivest
o
•
•
Created MD5 hash function, as well as MD2,
MD4, MD6, RC2, RC4, RC5, RC6
Avi Shamir
o
Co-creator of differential cryptanalysis
Leonard Adleman
o
Created DNA/biomolecular computing
History of RSA Numbers
•
A man named Clifford Cocks also
described the same system a few
years earlier in 1973
o
Developed in the U.K. for the GCHQ, it would have
required computing power deemed to expensive at
the time, so it was never actually implemented or tested
o
Due to its top-secret nature, Cocks’ papers and ideas
were not made publicly available until 1998
Basics of Encryption Keys
•
RSA is an example of public-key, or
asymmetric cryptology
o
o
There is a public key (the encryption key) and a
private key (the decryption key)
The encryption key is publicly available and used to
create the encrypted message to be transmitted,
while a privately-held (but mathematically related)
decryption key is used to decipher it
Public Key Creation
•
Find the product of two distinct prime
numbers.
o
o
•
n = p*q
n is used as the modulus for both the public and
private keys.
Solve Euler’s totient function
o
φ(n) = (p-1)(q-1)
Public Key Creation
•
•
Choose an integer e such that:
o 1 < e < φ(n)
o e and φ(n) must be coprime.
e is used as the public key exponent to
encode messages.
Encoding and Decoding
•
To encode a message M solve:
o
•
•
o
C = Memod(n)
M<n
Solve for the decoding exponent:
o
d = e-1mod(φ(n))
To decode a message M solve:
o
M = Cdmod(n)
Example
●
User Y selects p and q.
○ p = 23, q = 41
●
n = p*q = (23)*(41) = 943
●
φ(n) = (p-1)(q-1) = (22)*(40) = 880
●
e and φ(n) must be coprime and
1 < e < φ(n)
○ e=7
Example
●
n and e are the public key so User
X know their values.
○ n = 943, e = 7
●
User X wants to send a message to
User Y.
○ M = 35
●
C = Memod(n) = 357mod(943)
C = 545
●
The encoded message 545 is sent
to User Y.
Example
●
d = e-1mod(φ(n))
d= 7-1mod(880) = 503
●
M = Cdmod(n) = 545503mod(943)
M = 35
Exponent Algorithm
•
RSA can use very large
exponents.
•
M = Cdmod(n) = 545503mod(943)
•
Running time = O(e)
•
total operation in example:
o 503 operations
Repeated Squaring Algorithm
•
Using this algorithm you get:
545503mod943
= (545*[(545*545)mod943]251)mod943
= (545*923251)mod943
=
(545*(923*[(923*923)mod943]150)mod943))mod943
= (545*[(923*400150)mod943]mod943)
•
Running time = O(log2(e))
•
Total operations for example:
o
9 operations
Potential Risks
•
•
As with any encryption system, the private
key used to decrypt the message can still be
vulnerable to social engineering or careless
storage of the private key information
Vulnerable with small exponent (“e”) values
and small message values (“m”) for m^e
Potential Risks
•
•
Vulnerable if the same clear text message is
sent to “e” or more people with different “N”
values (“Chinese Remainder Theorem”)
Vulnerable if not padded since RSA is not
“semantically secure”
o Attacker can guess at the potential messages being sent, encrypt it
using RSA and the public key, and compare the encrypted messages
if the message isn’t padded first
The “RSA Problem”
•
Can a message encrypted using RSA be
efficiently decrypted while only knowing the
public key? (n, e)
RSA Foundation has created
the RSA Factoring Challenge
to spur research into cracking
RSA and integer factorization
•
RSA Factoring Challenge
•
•
•
The problem: you are given a number “n”
that is the product of two prime numbers, “p”
and “q”. Find these factors.
Some cash rewards reached tens of
thousands of dollars
Largest potential reward was $100,000
RSA Factoring Challenge
•
•
Example of a RSA number and its factors:
Amount of computing needed was the equivalent of 75 years of computing
on a 2.2GHz single-core processor
RSA Factoring Challenge
•
Largest RSA number in the challenge is RSA-2048,
which is not expected to be solved anytime soon
without significant advances in integer factorization
Questions?
Download