Encryption / Decryption VHDL Core Project Characterization
description
Transcript of Encryption / Decryption VHDL Core Project Characterization
Encryption / Decryption VHDL CoreProject Characterization
Instructor : Mony OrbachSemester : Winter-Spring 2013Performed By: Watad Duna , Watad Esam
הטכניון - מכון טכנולוגי לישראל
הפקולטה להנדסת חשמל
Technion - Israel institute of technologydepartment of Electrical Engineering
Introduction
<Message>
• We are interesting to send a message From A to B• Transferring messages done by a unsecured channel • Encryption can provide a means of securing
information
Encrypt
<Message>!hd#4!xZf
Decrypt
Symmetric Vs. Asymmetric• Symmetric:
– When using symmetric algorithms, both parties share the same key for encryption and decryption
– Once somebody else gets to know the key, it is not safe any more– Symmetric algorithms have the advantage of not consuming too
much computing
• Asymmetric:– Asymmetric algorithms use pairs of keys, one is used for encryption and the
other one for decryption– The decryption key is typically kept secretly, therefore called ``private key''
while the encryption key is spread to all who might want to send encrypted messages, therefore called ``public key'‘
– The secret key can't be reconstructed from the public key
RSA Algorithm
• The RSA algorithm is named after Ron Rivest, Adi Shamir and Len Adleman who invented it in 1977
• It is the most widely-used asymmetric algorithm encryption in the world
• It can be used to encrypt a message without the need to exchange a secret key separately
• The security of the RSA cryptosystem is based on two mathematical problems– The problem of factoring large numbers– The RSA problem
Project’s Goals
• Enhancing encryption and decryption processing time by implementing RSA algorithm by hardware
• Achieving reasonable safety level
RSA Theory• Key Generation Algorithm– Generate two large random primes, p and q– Compute n = pq and (phi) φ = (p-1)(q-1) – Choose an integer e, 1<e<phi, such that gcd(e,phi) = 1– Compute the secret exponent d, 1 < d < phi, such that
(e x d) ≡ 1 (mod phi)– The public key is (n, e) and the private key (d, p, q)
RSA Theory (Cont.) • Encryption Sender A does the following:
1. Obtains the recipient B's public key (n, e)2. Represents message as a positive integer m, 1< m< n3. Computes c = me mod n4. Sends the c to B
RSA Theory (Cont.) • Decryption Recipient B does the following:
1. Uses his private key (n, d) to compute m = cd mod n
2. Extracts the message from the representative m
RSA – Very Simple Example
1. Select primes p=11, q=32. n = p*q=11*3 = 33
phi=(p-1)(q-1)=10*2=203. Choose e=3 ( gcd(3, 20) = 1 )4. Compute d such that e*d ≡ 1 (mod phi)
simple calculation lead to d=75. say we want to encrypt the message m = 7
c = me mod n = 73 mod 33 = 343 mod 33 = 13
6. To decrypt the encryption result we compute m' = cd mod n = 137 mod 33 = 7
Work Flow
Studying Theory Background
Writing a C code illustrate RSA
Encryption/Decryption
Choosing Work Environment According
To Implementation Requirements
Writing VHDL Code Which Implements RSA
Synthesis / Validation
Improving performanceSimulation/Testing
TimeLineNov •Studying Theory Background
Dec •Writing a C code il lustrate RSA Encryption/Decryption
Dec •Choosing Work Environment According To Implementation Requirements
Jan •Writing VHDL Code Which Implements RSA
Apr •Improving performance
Aug • Simulation/Testing
Sep • Synthesis / Validation
?Questions