200 likes | 359 Views
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 Ron R ivest , Adi S hamir and Leonard A dleman at MIT First published and made publicly available in 1977.
E N D
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 • Ron Rivest, Adi Shamir and Leonard Adleman at MIT • First published and made publicly available in 1977
History of RSA Numbers • Ronald Rivest • Created MD5 hash function, as well as MD2, MD4, MD6, RC2, RC4, RC5, RC6 • Avi Shamir • Co-creator of differential cryptanalysis • Leonard Adleman • Created DNA/biomolecular computing
History of RSA Numbers • A man named Clifford Cocks also described the same system a few years earlier in 1973 • 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 • 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 • 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. • n = p*q • n is used as the modulus for both the public and private keys. • Solve Euler’s totient function • φ(n) = (p-1)(q-1)
Public Key Creation • Choose an integer e such that: • 1 < e < φ(n) • 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: • C = Memod(n) • M < n • Solve for the decoding exponent: • d = e-1mod(φ(n)) • To decode a message M solve: • 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: • 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: • 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” • 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