SlideShare a Scribd company logo
1 of 12
Download to read offline
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-148
International Journal of Research in Information
Technology (IJRIT)
www.ijrit.com ISSN 2001-5569
FPGAImplementation of Encryption Primitives
Vinay Chandra1
, Kiran Kumar V G 2
1
IV Semester, M.Tech, Electronics and Communication Engineering, Sahyadri College of Engineering and
Management, Mangaluru, Karnataka, India
vinaychandra2009@gmail.com
2
Associate professor, Department of Electronics and Communication Engineering, Sahyadri College of
Engineering and Management, Mangaluru, Karnataka, India
kiran.ec@sahyadri.edu.in
Abstract
In my project, circuit design of an arithmetic module applied to cryptography i.e. Modulo Multiplicative
Inverse used in Montgomery algorithm is presented and results are simulated using Xilinx. This algorithm is useful in
doing encryption algorithms in binary arithmetic because all computers only deal with binary numbers. Encryption
algorithms rely on modulo arithmetic in which a modulus p is not a power of two unlike in binary arithmetic. This
makes encryption algorithms more complex as we would need to carry out modulus p operations especially residue
computation in binary arithmetic. Also encryption using this multiplicative inverse is presented with simulation results.
This multiplicative inverse function has iterative computations of multiplication, division and subtraction with variable
loop times.
Keywords: cryptography, simulated, Xilinx, residue, iterative, multiplicative inverse.
1. Introduction
With the increasing importance of information security, research works on cryptography and cipher
design become more and more significant. As the cryptographer’s mathematics, modular arithmetic, which
is also called clock arithmetic, is the central mathematical concept in cryptography and used in almost any
cipher from Caesar Cipher to the RSA Cipher. Different from some basic mod calculations, modulo
multiplicative inverse is a relatively complex iterative procedure and time-consuming calculation with
unfixed loop times.
Most used public key cryptosystems are based on modular arithmetic. For example RSA requires
exponentiation mod n where n is a product of two primes; Diffie-Helman, ElGamal and DSA are based on
exponentiation modulus a prime; ECC, etc. P. Montgomery proposed a method for computing modular
multiplication efficiently. He proposed to move the representation of numbers from the ring Zn to a
different domain, called Montgomery Residual representation or Montgomery Domain. It is well suited to
hardware implementations. Montgomery multiplication is a method for computing a × b mod p for positive
integers a, b, and p. It reduces execution time on a computer when there are a large number of
multiplications to be done with the same modulus p.
2. System description
Montgomery algorithm is useful in doing encryption algorithms in binary arithmetic because all
computers only deal with binary numbers. Encryption algorithms rely on modulo arithmetic in which a
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-149
modulus p is not a power of two unlike in binary arithmetic. This makes encryption algorithms more
complex as we would need to carry out modulus p operations especially residue computation in binary
arithmetic.
2.1 Modulo Arithmetic
Basic binary arithmetic operations
Let u and v be the two operands
1. u + v % p = u + v – p [u + v / p ] = u + v – p ,if u + v ≥ p (1)
u + v if u + v < p
2. u – v % p = u – v – p [u – v / p ] = u – v – p ,if –p < u – v < 0 (2)
u – v if 0 ≤ u – v < p
3. u × v % p = u × v – p [u × v / p ] (3)
4. u / v % p = u × v-1
– p [u × v-1
/ p ] (4)
v × v-1
- p × z = 1
v-1
is called multiplicative inverse of v.
In 3 and 4 since u and v can be as large as p – 1, in worst case we may have log p iteration of
division with repeated subtraction. v-1
is that number which when multiplied with v gives remainder of 1.
This makes the two numbers congruent. These four operations may have to be done repeatedly in
encryption algorithms where mod p is a prime or a prime power.
2.2 Congruence (Equivalence) mod p
Two integers are said to be congruent mod p and we write, u ≡ v (% p) or just u ≡ v % p if and only if
u – v = p × z, for some integer z.
Example: 11 ≡ 5 % 6, 2 ≡ 4 ≡ 6 % 2. Here u and v need not be less than p.
When we look at any number mod p, the result is any number between 0 and p – 1. And other numbers
will be mapped between 0 and p – 1. For example p will be mapped to 0, p + 1 will be mapped to 1 and so
on. All numbers outside 0 and p – 1 will be mapped to any number between 0 and p – 1. We can write u – v
or v – u, both are the same. Congruence is an equivalence relation, i.e. all numbers are congruent to itself.
Congruence is also symmetric, i.e. if a is congruent to b then b is congruent to a, whatever mod we pick.
Congruence is also transitive, i.e. if a is congruent to b and b is congruent to c, then a is congruent to c.
So what we do here is take all integers (plus and minus) and divide them into p classes (equivalence
classes). And these classes are divided into 0, 1, 2…. P – 1. These are called equivalence classes under
congruence relationship.
Note 1: The congruence relation over a modulus p is an equivalence relation and partitions all integers
into p congruence classes. Class 0, class 1, ...class p – 1.
Note 2: An inverse u-1
of an integer u mod p exists if and only if u × u-1
≡ 1 % p. i.e. the multiplication
(u × u-1
) must be congruent to 1.
With this relationship we will be able to do multiplication operation under congruence. And will be
helpful in understanding the Montgomery algorithm.
Note 3: For any prime number p and a positive integer r, there exists two integers v and z such that
r × v – p × z = 1 or v ≡ r -1
% p. (5)
Proof:
Given that p is prime there exists two integers v, t < p such that
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-150
(r % p) × v – p × t = 1. (6)
Or
(r – p [r / p]) × v – p × t = 1 (7)
r × v – p ([r / p] × v + t) = 1 ↔ r × v – p × z =1 where (8)
z = [r / p] × v + t ↔ r × v % p = 1 or v ≡ r -1
% p (9)
Where r is relatively prime to p or when p is a prime, then it happens by itself then we get an inverse
for that r mod p. So if we pick any r and a prime, then r is always invertible with respect to mod p and that
gives us r inverse (r -1
) which we call v because that’s what the formula indicates.
2.3 Idea
Idea is to transform mod p arithmetic to mod r arithmetic where p is a prime number, r = 2k
, k is a
positive integer and 2k-1
< p < 2k
.r picked in note 3 had no restriction on it. We can pick any r as long as p
is prime. The inverse relation applies. I.e. there is an inverse of r mod p. Inverting r is very critical in
computation of mod p arithmetic in binary.
2.4 Montgomery pair
Montgomery pair of a positive integer u < p with respect to a prime modulus p is defined as:
v = g (u) = u × r % p (10)
We take u < p and map it to another number u × r % p which is still less than p. This relation is one to
one and onto.
The inverse Montgomery pair of v is defined as:
u = g -1
(v) = v × r -1
% p (11)
It is obvious that
u = g -1
(v) = v × r -1
% p = (u × r % p) r -1
% p = u (12)
Since (u × r % p) r -1
% p = (u × r × r-1
% p) % p = (u % p) % p = u (13)
2.5 Montgomery Transformation
We start with the direct product of two numbers. We begin with a pair and the pair of numbers we are
interested in is (u, v).
Fig. 1 Montgomery transform
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-151
Multiplication in transformed domain is defined as.
z = g (u) × g (v) × r -1
% p (14)
To transform back to original domain, we have to multiply by r -1
.
u × r × v × r × r -1
× r -1
% p = u × v % p (15)
The curved path gives same result as the vertical path on the left.
The diagram is commutative.
Vertical edge on left gives:
(u, v) → u × v % p (16)
Curved path gives:
(u, v) → (g (u), g (v)) → (u × r % p, v × r % p) → u × r × v × r × r-1
% p = u
× r × v %p → u × r × v × r -1
% p = u × v % p (17)
2.6 Montgomery algorithm comes in here
Let x be an integer, 0 ≤ x ≤ p × r. The inverse Montgomery transform is defined by a pair.
m = x % r × z % r (18)
t = (x + m × p) / r (19)
x could be the product of u and v (u × v). We have r > p, therefore u × v < p × r (since u, v < p). Also r
is a power of 2 (2k
)
r = 2k
(20)
2k-1
< p < 2k
Mod r means truncating the rightmost k bits because r = 2k
. And divide by r means shift k bits to the
right. Montgomery showed that t is x × r -1
mod p. And also t is an integer. So after doing divide by r, we
don’t get a fraction which later requires flooring.
2.7 Forward and backward transforms
Here we see how to compute u × r % p. conversion of an integer u mod p to its Montgomery pair g (u)
is done.
u × r % p = (u × r -1
× r2
) % p
= (u × (r2
% p)) × r -1
% p (21)
Conversion of an integer u mod p to its inverse Montgomery pair g -1
(u) is directly computed by
inverse Montgomery transform. We have complicated the process only a little bit by introducing one extra
multiplication (u × (r2
% p)). And r2
% p is a constant because r and p are fixed. Computation of the
remaining part (i.e. r -1
% p) is seen previously. Modulo addition and subtraction mod p can also be
transformed to Montgomery domain and transformed back using commutative diagram.
This can be done as follows:
u → u × r % p
v → v × r % p
In transformed domain
u × r % p ± v × r % p = (u ± v) × r % p (22)
(u ± v) × r × r -1
% p = (u ± v) % p (23)
3. Hardware Implementation
Described below are hardware architectures used in VHDL.
3.1 multiplicative inverse using extended Euclid algorithm
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-152
Given: b mod a
Compute: inverse of b (i.e. multiplicative inverse of b) given by b-1
.
Procedure:
Initialize: r1 ← a,
r2 ← b,
t1 ← 0 and
t2 ← 1
While (r2 > 0)
{
q = r1 / r2;
r = r1 – q × r2;
r1 = r2;
r2 = r;
t = t1 – q × t2;
t1 = t2;
t2 = t;
}
If (r1 = 1) then b-1
= t1
Note: if t1 is negative then b-1
= t1 + a
Example:
p = 65437
r = 216
= 65536
65536 mod 65437
Compute inverse of 65536
Table 1 Multiplicative inverse computation by tabular method
q r1 r2 r t1 t2 t
0 65437 65536 65437 0 1 0
1 65536 65437 99 1 0 1
660 65437 99 97 0 1 -660
1 99 97 2 1 -660 661
48 97 2 1 -660 661 -32388
2 2 1 0 661 -32388 65437
1 -32388
Inverse of 65536 mod 65437 is: – 32388 + 65437 = 33049
Check step:
r × r -1
– p × z = 1
65536 × 33049 – 65437 × z = 1
z = 33099
3.2 Divider
Long division in decimal (135 divided by 13) is shown below.
Table 2 Decimal long division
1 0
13 1 3 5
1 3 ↓
0 5
0
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-153
5
Quotient: 10
Remainder: 5
Long division in binary (135 divided by 13)
Table 3 Long division in binary arithmetic
1 0 1 0
1101 1 0 0 0 0 1 1 1
1 1 0 1 ↓ ↓ ↓
0 0 1 1 1 ↓ ↓
0 0 0 0 ↓ ↓
1 1 1 1 ↓
1 1 0 1 ↓
0 0 1 0 1
0 0 0 0
1 0 1
Algorithm used to do division in VHDL
Step1: store numerator in combination n1: n2
Step2: store denominator d
Step3: repeat 4 times
Shift n1: n1 left one bit
If n1 ≥ d
n1 = n1 – d
n2 (0) = 1
Step4: quotient = n2
remainder = n1 (3:0)
Table 4 Division architecture in VHDL
n1 10000 1110 n2 shl n1: n2
d 01101
n1 00011 1111 n2 n1 = n1 – d, n2(0) = 1
n1 00111 1110 n2 shl n1: n2
d 01101
n1 01111 1100 n2 shl n1: n2
d 01101
n1 00010 1101 n2 n1 = n1 – d, n2(0) = 1
n1 00101 1010 n2
Remainder Quotient
Note: if quotient is more than 4 bits, this technique doesn’t work.
E.g. 10110101 / 10000
Quotient = 00010110
Remainder = 101
So to overcome this problem we do the 4 bit division twice.
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-154
Fig. 2 Eight bit by four bit divider
00001011 / 1000 = q (00000001) r (011)
00110101 / 1000 = q (00000110) r (101)
Therefore the quotient is 00010110 and the remainder is 101 after the division is complete.
3.3 Multiplier
Below is an example for four bit by four bit multiplier. Append four zeros to the multiplicand i.e.
make it 8 bits and store it in bp. Initially set eight bit product to zero. Multiplier ‘a’ is the input control line
to the mux. And because it is a four bit by four bit multiplier, we have four copies of the same circuit i.e. a
adder, a mux and a shift left. Depending on the value of the control line of the mux, the sum of bp and p is
passed through or only p is passed. If control input to the mux is ‘1’, then sum of bp and p is passed
through. And if the control input to the mux is ‘0’, then only p is passed through. Also note that on every
interation, bp is shifted left by one bit position.
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-155
Fig. 3 Four bit by four bit multiplier
3.4 r computation
Given a prime p
Compute r = 2k
Such that 2k-1
< p < 2k
Say for example the prime number is stored in 8 bits. Create another variable temp with one extra
bit i.e. 9 bits in this case, set its most significant bit to one and set remaining all bits to zero. Shift left the
contents of pime till its most significant bit becomes one. Simultaniously shift the contents of temp to the
right. And all this operation is put inside a loop. At the end of the loop when most significant bit of the
prime becomes, temp holds the value or r = 2k
.
Fig. 4 r computation
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-156
3.5 Random number generation
Random numbers can be generated by simply shuffling the bits randomly. Initially to start with any
random number is taken. Here bit positions 4 to 7 is exored with bit positions 9 to 12 and result is stored in
bit position 12 to 15 on every clock cycle. Also bit position 4 to 15 is shifted to bit position 2 to 13 on every
clock cycle. Thus on every clock cycle a new number is generated.
Fig. 5 Random number generator
4. Simulation Results
4.1 Encryption
Encrypting the word “sahyadrian” by entering the ascii value of each letter.
Fig. 6 ASCII table
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-157
Fig. 7 Simulation result for encryption
4.2 Random number inverse computation
Result below shows multiplicative inverse generated for the random numbers.
Fig. 8 Simulation result for random number generation
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-158
4.3 Decryption
Result below shows multiplicative decrypting the encrypted word “sahyadrian”.
Fig. 9 Simulation result for decryption
4.3 Decryption
Figure below shows the synthesis report of Montgomery transform.
Fig. 10 Synthesis report
IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159
Vinay Chandra, IJRIT-159
5. Conclusion
As most encryption algorithms rely on modulus operation, proposed method describes the design
of a circuit module applied to cryptography i.e. Modulo Multiplicative Inverse used in Montgomery
algorithm and results are simulated using Xilinx. Montgomery multiplication computes a × b mod p for
positive integers a, b, and p. Execution time on a computer is reduced when there are a large number of
multiplications to be done with the same modulus p. The multiplicative inverse is computed using extended
Euclid algorithm. Technique used for division is shift and subtract. And the multiplier block is
implemented using shift and add operation. Also a simple technique used to generate random numbers is
presented. And finally the word “sahyadrian” is encrypted and decrypted.
This technique can be used for image encryption. Random numbers generated using the technique
described can be used for encrypting each pixel of the image. This technique of pixel by pixel encryption
makes the encryption process very fast as it eliminates long and tedious task of modulus operation by
simple shift and truncate operations.
The shift and add multiplier can be replaced by a more efficient multiplier which could save
hardware resources. Various Vedic multipliers like the Karatsuba multiplier can also be used for fast
multiplication. The technique can also be extended to encrypt text files by encrypting each character.
6. References
[1] Xiaoying, “Modulo Multiplicative Inverse Circuit Design”, 1Department of Computer and Information
Science, FST, University of Macau, Macao, China
[2] A. Daly, W. Marnane, “Efficient architectures for implementing montgomery modular multiplication
and RSA modular exponentiation on reconfigurable logic”, Proceedings of the 2002 ACM/SIGDA tenth
international symposium on Field-programmable gate arrays, Monterey, California, USA, pp.40 – 49,
2002.
[3] D. W. Matula, A. Fit-Florea, M. A. Thornton, “Table Lookup Structures for Multiplicative Inverses
Modulo 2^k“, 17th IEEE Symposium on Computer Arithmetic (ARITH'05) pp. 156-163, 2005
[4] Xilinx, “Xilinx System Generator”, Version 6.2, Xilinx Inc., USA,
http://www.xilinx.com/ise/optional_prod/system_generator.htm.
[5] Thomas Blum, “High Radix Montgomery Modular Exponentiation on Reconfigurable Hardware”, ECE
Department Worcester Polytechnic Institute 100 Institute Road, Worcester, MA 01609, USA

More Related Content

What's hot

Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...
Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...
Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...BRNSS Publication Hub
 
Numerical Methods
Numerical MethodsNumerical Methods
Numerical MethodsESUG
 
Solving Linear Equations Over p-Adic Integers
Solving Linear Equations Over p-Adic IntegersSolving Linear Equations Over p-Adic Integers
Solving Linear Equations Over p-Adic IntegersJoseph Molina
 
Numerical
NumericalNumerical
Numerical1821986
 
01 Notes Introduction Analysis of Algorithms Notes
01 Notes Introduction Analysis of Algorithms Notes01 Notes Introduction Analysis of Algorithms Notes
01 Notes Introduction Analysis of Algorithms NotesAndres Mendez-Vazquez
 
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAScientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAAhmed Gamal Abdel Gawad
 
lecture 30
lecture 30lecture 30
lecture 30sajinsc
 
Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...
Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...
Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...inventionjournals
 
Benginning Calculus Lecture notes 2 - limits and continuity
Benginning Calculus Lecture notes 2 - limits and continuityBenginning Calculus Lecture notes 2 - limits and continuity
Benginning Calculus Lecture notes 2 - limits and continuitybasyirstar
 

What's hot (20)

03 notes
03 notes03 notes
03 notes
 
02 Notes Divide and Conquer
02 Notes Divide and Conquer02 Notes Divide and Conquer
02 Notes Divide and Conquer
 
Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...
Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...
Solving High-order Non-linear Partial Differential Equations by Modified q-Ho...
 
Numerical Methods
Numerical MethodsNumerical Methods
Numerical Methods
 
Matlab Assignment Help
Matlab Assignment HelpMatlab Assignment Help
Matlab Assignment Help
 
Solving Linear Equations Over p-Adic Integers
Solving Linear Equations Over p-Adic IntegersSolving Linear Equations Over p-Adic Integers
Solving Linear Equations Over p-Adic Integers
 
Assignment 2 daa
Assignment 2 daaAssignment 2 daa
Assignment 2 daa
 
Numerical
NumericalNumerical
Numerical
 
01 Notes Introduction Analysis of Algorithms Notes
01 Notes Introduction Analysis of Algorithms Notes01 Notes Introduction Analysis of Algorithms Notes
01 Notes Introduction Analysis of Algorithms Notes
 
5.1 greedy
5.1 greedy5.1 greedy
5.1 greedy
 
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGAScientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
Scientific Computing II Numerical Tools & Algorithms - CEI40 - AGA
 
lecture 30
lecture 30lecture 30
lecture 30
 
Data Analysis Homework Help
Data Analysis Homework HelpData Analysis Homework Help
Data Analysis Homework Help
 
Solution 3.
Solution 3.Solution 3.
Solution 3.
 
Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...
Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...
Modified Procedure to Solve Fuzzy Transshipment Problem by using Trapezoidal ...
 
Benginning Calculus Lecture notes 2 - limits and continuity
Benginning Calculus Lecture notes 2 - limits and continuityBenginning Calculus Lecture notes 2 - limits and continuity
Benginning Calculus Lecture notes 2 - limits and continuity
 
Chemistry Assignment Help
Chemistry Assignment Help Chemistry Assignment Help
Chemistry Assignment Help
 
Signal Processing Assignment Help
Signal Processing Assignment HelpSignal Processing Assignment Help
Signal Processing Assignment Help
 
ilovepdf_merged
ilovepdf_mergedilovepdf_merged
ilovepdf_merged
 
Logistics Management Assignment Help
Logistics Management Assignment Help Logistics Management Assignment Help
Logistics Management Assignment Help
 

Viewers also liked

Historia de angie 10 1
Historia de angie 10 1Historia de angie 10 1
Historia de angie 10 1angie152012
 
Live cardiff blues vs scarlets on tv coverage
Live cardiff blues vs scarlets on tv coverageLive cardiff blues vs scarlets on tv coverage
Live cardiff blues vs scarlets on tv coverageartanartene9556
 
Sopa de letras ciudades norteamericanas
Sopa de letras ciudades norteamericanasSopa de letras ciudades norteamericanas
Sopa de letras ciudades norteamericanasIE Simona Duque
 
Proyecto de vida mateo wenceslao urrea guzman 2
Proyecto de vida mateo wenceslao urrea guzman 2Proyecto de vida mateo wenceslao urrea guzman 2
Proyecto de vida mateo wenceslao urrea guzman 2IE Simona Duque
 
Dia de Andalucia Calp 2017
Dia de Andalucia Calp 2017Dia de Andalucia Calp 2017
Dia de Andalucia Calp 2017TurismoCalp
 
Proyecto de vida rios 9b
Proyecto de vida rios 9bProyecto de vida rios 9b
Proyecto de vida rios 9bIE Simona Duque
 
Pitch jess verjans
Pitch   jess verjansPitch   jess verjans
Pitch jess verjansJess Verjans
 
اللغة الانكليزية للصف الرابع الاعدادي
اللغة الانكليزية للصف الرابع الاعدادياللغة الانكليزية للصف الرابع الاعدادي
اللغة الانكليزية للصف الرابع الاعداديAyad Haris Beden
 
Adiós ríos, adiós fontes
Adiós ríos, adiós fontes   Adiós ríos, adiós fontes
Adiós ríos, adiós fontes oclubdasideas
 
Inteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁS
Inteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁSInteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁS
Inteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁSMayVaskz
 
Question 7
Question 7Question 7
Question 7cm160032
 
Es hora de decir adiós al presupuesto tradicional
Es hora de decir adiós al presupuesto tradicionalEs hora de decir adiós al presupuesto tradicional
Es hora de decir adiós al presupuesto tradicionalbicongroup
 

Viewers also liked (20)

Historia de angie 10 1
Historia de angie 10 1Historia de angie 10 1
Historia de angie 10 1
 
La Creativida1
La Creativida1La Creativida1
La Creativida1
 
Live cardiff blues vs scarlets on tv coverage
Live cardiff blues vs scarlets on tv coverageLive cardiff blues vs scarlets on tv coverage
Live cardiff blues vs scarlets on tv coverage
 
Xe nang gia re (12)
Xe nang gia re (12)Xe nang gia re (12)
Xe nang gia re (12)
 
Sopa de letras ciudades norteamericanas
Sopa de letras ciudades norteamericanasSopa de letras ciudades norteamericanas
Sopa de letras ciudades norteamericanas
 
Solid -liquid
Solid -liquidSolid -liquid
Solid -liquid
 
Photoparsa album
Photoparsa album Photoparsa album
Photoparsa album
 
Photoparsa 101
Photoparsa 101Photoparsa 101
Photoparsa 101
 
Proyecto de vida mateo wenceslao urrea guzman 2
Proyecto de vida mateo wenceslao urrea guzman 2Proyecto de vida mateo wenceslao urrea guzman 2
Proyecto de vida mateo wenceslao urrea guzman 2
 
Dia de Andalucia Calp 2017
Dia de Andalucia Calp 2017Dia de Andalucia Calp 2017
Dia de Andalucia Calp 2017
 
Proyecto de vida rios 9b
Proyecto de vida rios 9bProyecto de vida rios 9b
Proyecto de vida rios 9b
 
Pitch jess verjans
Pitch   jess verjansPitch   jess verjans
Pitch jess verjans
 
Presentación1
Presentación1Presentación1
Presentación1
 
اللغة الانكليزية للصف الرابع الاعدادي
اللغة الانكليزية للصف الرابع الاعدادياللغة الانكليزية للصف الرابع الاعدادي
اللغة الانكليزية للصف الرابع الاعدادي
 
Adiós ríos, adiós fontes
Adiós ríos, adiós fontes   Adiós ríos, adiós fontes
Adiós ríos, adiós fontes
 
Los animales 1
Los animales 1Los animales 1
Los animales 1
 
Mutaciones
MutacionesMutaciones
Mutaciones
 
Inteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁS
Inteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁSInteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁS
Inteligencia emocional-daniel goleman By MAYTA VASQUEZ Y MÁS
 
Question 7
Question 7Question 7
Question 7
 
Es hora de decir adiós al presupuesto tradicional
Es hora de decir adiós al presupuesto tradicionalEs hora de decir adiós al presupuesto tradicional
Es hora de decir adiós al presupuesto tradicional
 

Similar to Vinay

Seminar Report (Final)
Seminar Report (Final)Seminar Report (Final)
Seminar Report (Final)Aruneel Das
 
H infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cauH infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cauAl Vc
 
MAPE regression, seminar @ QUT (Brisbane)
MAPE regression, seminar @ QUT (Brisbane)MAPE regression, seminar @ QUT (Brisbane)
MAPE regression, seminar @ QUT (Brisbane)Arnaud de Myttenaere
 
Approximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsApproximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsArchzilon Eshun-Davies
 
Problem Solving by Computer Finite Element Method
Problem Solving by Computer Finite Element MethodProblem Solving by Computer Finite Element Method
Problem Solving by Computer Finite Element MethodPeter Herbert
 
Page rank
Page rankPage rank
Page rankCarlos
 
Linear Regression
Linear Regression Linear Regression
Linear Regression Rupak Roy
 
Hormann.2001.TPI.pdf
Hormann.2001.TPI.pdfHormann.2001.TPI.pdf
Hormann.2001.TPI.pdfssuserbe139c
 
CHAPTER TENObjectiveA brief introduction of the basic concept
CHAPTER TENObjectiveA brief introduction of the basic conceptCHAPTER TENObjectiveA brief introduction of the basic concept
CHAPTER TENObjectiveA brief introduction of the basic conceptTawnaDelatorrejs
 
1609 probability function p on subspace of s
1609 probability function p on subspace of s1609 probability function p on subspace of s
1609 probability function p on subspace of sDr Fereidoun Dejahang
 
A New Deterministic RSA-Factoring Algorithm
A New Deterministic RSA-Factoring AlgorithmA New Deterministic RSA-Factoring Algorithm
A New Deterministic RSA-Factoring AlgorithmJim Jimenez
 
Algorithm To Build A Routing Project
Algorithm To Build A  Routing ProjectAlgorithm To Build A  Routing Project
Algorithm To Build A Routing ProjectAssignmentpedia
 
Generalized Nonlinear Models in R
Generalized Nonlinear Models in RGeneralized Nonlinear Models in R
Generalized Nonlinear Models in Rhtstatistics
 
Data_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.pptData_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.pptISHANAMRITSRIVASTAVA
 

Similar to Vinay (20)

Seminar Report (Final)
Seminar Report (Final)Seminar Report (Final)
Seminar Report (Final)
 
Ch08
Ch08Ch08
Ch08
 
H infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cauH infinity optimal_approximation_for_cau
H infinity optimal_approximation_for_cau
 
MAPE regression, seminar @ QUT (Brisbane)
MAPE regression, seminar @ QUT (Brisbane)MAPE regression, seminar @ QUT (Brisbane)
MAPE regression, seminar @ QUT (Brisbane)
 
MUMS: Bayesian, Fiducial, and Frequentist Conference - Model Selection in the...
MUMS: Bayesian, Fiducial, and Frequentist Conference - Model Selection in the...MUMS: Bayesian, Fiducial, and Frequentist Conference - Model Selection in the...
MUMS: Bayesian, Fiducial, and Frequentist Conference - Model Selection in the...
 
Approximate Thin Plate Spline Mappings
Approximate Thin Plate Spline MappingsApproximate Thin Plate Spline Mappings
Approximate Thin Plate Spline Mappings
 
Problem Solving by Computer Finite Element Method
Problem Solving by Computer Finite Element MethodProblem Solving by Computer Finite Element Method
Problem Solving by Computer Finite Element Method
 
Page rank
Page rankPage rank
Page rank
 
Linear Regression
Linear Regression Linear Regression
Linear Regression
 
Hormann.2001.TPI.pdf
Hormann.2001.TPI.pdfHormann.2001.TPI.pdf
Hormann.2001.TPI.pdf
 
CHAPTER TENObjectiveA brief introduction of the basic concept
CHAPTER TENObjectiveA brief introduction of the basic conceptCHAPTER TENObjectiveA brief introduction of the basic concept
CHAPTER TENObjectiveA brief introduction of the basic concept
 
1. linear model, inference, prediction
1. linear model, inference, prediction1. linear model, inference, prediction
1. linear model, inference, prediction
 
1609 probability function p on subspace of s
1609 probability function p on subspace of s1609 probability function p on subspace of s
1609 probability function p on subspace of s
 
A New Deterministic RSA-Factoring Algorithm
A New Deterministic RSA-Factoring AlgorithmA New Deterministic RSA-Factoring Algorithm
A New Deterministic RSA-Factoring Algorithm
 
Chap04
Chap04Chap04
Chap04
 
Algorithm To Build A Routing Project
Algorithm To Build A  Routing ProjectAlgorithm To Build A  Routing Project
Algorithm To Build A Routing Project
 
Generalized Nonlinear Models in R
Generalized Nonlinear Models in RGeneralized Nonlinear Models in R
Generalized Nonlinear Models in R
 
algorithm Unit 3
algorithm Unit 3algorithm Unit 3
algorithm Unit 3
 
Data_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.pptData_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.ppt
 
Ch7
Ch7Ch7
Ch7
 

Vinay

  • 1. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-148 International Journal of Research in Information Technology (IJRIT) www.ijrit.com ISSN 2001-5569 FPGAImplementation of Encryption Primitives Vinay Chandra1 , Kiran Kumar V G 2 1 IV Semester, M.Tech, Electronics and Communication Engineering, Sahyadri College of Engineering and Management, Mangaluru, Karnataka, India vinaychandra2009@gmail.com 2 Associate professor, Department of Electronics and Communication Engineering, Sahyadri College of Engineering and Management, Mangaluru, Karnataka, India kiran.ec@sahyadri.edu.in Abstract In my project, circuit design of an arithmetic module applied to cryptography i.e. Modulo Multiplicative Inverse used in Montgomery algorithm is presented and results are simulated using Xilinx. This algorithm is useful in doing encryption algorithms in binary arithmetic because all computers only deal with binary numbers. Encryption algorithms rely on modulo arithmetic in which a modulus p is not a power of two unlike in binary arithmetic. This makes encryption algorithms more complex as we would need to carry out modulus p operations especially residue computation in binary arithmetic. Also encryption using this multiplicative inverse is presented with simulation results. This multiplicative inverse function has iterative computations of multiplication, division and subtraction with variable loop times. Keywords: cryptography, simulated, Xilinx, residue, iterative, multiplicative inverse. 1. Introduction With the increasing importance of information security, research works on cryptography and cipher design become more and more significant. As the cryptographer’s mathematics, modular arithmetic, which is also called clock arithmetic, is the central mathematical concept in cryptography and used in almost any cipher from Caesar Cipher to the RSA Cipher. Different from some basic mod calculations, modulo multiplicative inverse is a relatively complex iterative procedure and time-consuming calculation with unfixed loop times. Most used public key cryptosystems are based on modular arithmetic. For example RSA requires exponentiation mod n where n is a product of two primes; Diffie-Helman, ElGamal and DSA are based on exponentiation modulus a prime; ECC, etc. P. Montgomery proposed a method for computing modular multiplication efficiently. He proposed to move the representation of numbers from the ring Zn to a different domain, called Montgomery Residual representation or Montgomery Domain. It is well suited to hardware implementations. Montgomery multiplication is a method for computing a × b mod p for positive integers a, b, and p. It reduces execution time on a computer when there are a large number of multiplications to be done with the same modulus p. 2. System description Montgomery algorithm is useful in doing encryption algorithms in binary arithmetic because all computers only deal with binary numbers. Encryption algorithms rely on modulo arithmetic in which a
  • 2. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-149 modulus p is not a power of two unlike in binary arithmetic. This makes encryption algorithms more complex as we would need to carry out modulus p operations especially residue computation in binary arithmetic. 2.1 Modulo Arithmetic Basic binary arithmetic operations Let u and v be the two operands 1. u + v % p = u + v – p [u + v / p ] = u + v – p ,if u + v ≥ p (1) u + v if u + v < p 2. u – v % p = u – v – p [u – v / p ] = u – v – p ,if –p < u – v < 0 (2) u – v if 0 ≤ u – v < p 3. u × v % p = u × v – p [u × v / p ] (3) 4. u / v % p = u × v-1 – p [u × v-1 / p ] (4) v × v-1 - p × z = 1 v-1 is called multiplicative inverse of v. In 3 and 4 since u and v can be as large as p – 1, in worst case we may have log p iteration of division with repeated subtraction. v-1 is that number which when multiplied with v gives remainder of 1. This makes the two numbers congruent. These four operations may have to be done repeatedly in encryption algorithms where mod p is a prime or a prime power. 2.2 Congruence (Equivalence) mod p Two integers are said to be congruent mod p and we write, u ≡ v (% p) or just u ≡ v % p if and only if u – v = p × z, for some integer z. Example: 11 ≡ 5 % 6, 2 ≡ 4 ≡ 6 % 2. Here u and v need not be less than p. When we look at any number mod p, the result is any number between 0 and p – 1. And other numbers will be mapped between 0 and p – 1. For example p will be mapped to 0, p + 1 will be mapped to 1 and so on. All numbers outside 0 and p – 1 will be mapped to any number between 0 and p – 1. We can write u – v or v – u, both are the same. Congruence is an equivalence relation, i.e. all numbers are congruent to itself. Congruence is also symmetric, i.e. if a is congruent to b then b is congruent to a, whatever mod we pick. Congruence is also transitive, i.e. if a is congruent to b and b is congruent to c, then a is congruent to c. So what we do here is take all integers (plus and minus) and divide them into p classes (equivalence classes). And these classes are divided into 0, 1, 2…. P – 1. These are called equivalence classes under congruence relationship. Note 1: The congruence relation over a modulus p is an equivalence relation and partitions all integers into p congruence classes. Class 0, class 1, ...class p – 1. Note 2: An inverse u-1 of an integer u mod p exists if and only if u × u-1 ≡ 1 % p. i.e. the multiplication (u × u-1 ) must be congruent to 1. With this relationship we will be able to do multiplication operation under congruence. And will be helpful in understanding the Montgomery algorithm. Note 3: For any prime number p and a positive integer r, there exists two integers v and z such that r × v – p × z = 1 or v ≡ r -1 % p. (5) Proof: Given that p is prime there exists two integers v, t < p such that
  • 3. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-150 (r % p) × v – p × t = 1. (6) Or (r – p [r / p]) × v – p × t = 1 (7) r × v – p ([r / p] × v + t) = 1 ↔ r × v – p × z =1 where (8) z = [r / p] × v + t ↔ r × v % p = 1 or v ≡ r -1 % p (9) Where r is relatively prime to p or when p is a prime, then it happens by itself then we get an inverse for that r mod p. So if we pick any r and a prime, then r is always invertible with respect to mod p and that gives us r inverse (r -1 ) which we call v because that’s what the formula indicates. 2.3 Idea Idea is to transform mod p arithmetic to mod r arithmetic where p is a prime number, r = 2k , k is a positive integer and 2k-1 < p < 2k .r picked in note 3 had no restriction on it. We can pick any r as long as p is prime. The inverse relation applies. I.e. there is an inverse of r mod p. Inverting r is very critical in computation of mod p arithmetic in binary. 2.4 Montgomery pair Montgomery pair of a positive integer u < p with respect to a prime modulus p is defined as: v = g (u) = u × r % p (10) We take u < p and map it to another number u × r % p which is still less than p. This relation is one to one and onto. The inverse Montgomery pair of v is defined as: u = g -1 (v) = v × r -1 % p (11) It is obvious that u = g -1 (v) = v × r -1 % p = (u × r % p) r -1 % p = u (12) Since (u × r % p) r -1 % p = (u × r × r-1 % p) % p = (u % p) % p = u (13) 2.5 Montgomery Transformation We start with the direct product of two numbers. We begin with a pair and the pair of numbers we are interested in is (u, v). Fig. 1 Montgomery transform
  • 4. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-151 Multiplication in transformed domain is defined as. z = g (u) × g (v) × r -1 % p (14) To transform back to original domain, we have to multiply by r -1 . u × r × v × r × r -1 × r -1 % p = u × v % p (15) The curved path gives same result as the vertical path on the left. The diagram is commutative. Vertical edge on left gives: (u, v) → u × v % p (16) Curved path gives: (u, v) → (g (u), g (v)) → (u × r % p, v × r % p) → u × r × v × r × r-1 % p = u × r × v %p → u × r × v × r -1 % p = u × v % p (17) 2.6 Montgomery algorithm comes in here Let x be an integer, 0 ≤ x ≤ p × r. The inverse Montgomery transform is defined by a pair. m = x % r × z % r (18) t = (x + m × p) / r (19) x could be the product of u and v (u × v). We have r > p, therefore u × v < p × r (since u, v < p). Also r is a power of 2 (2k ) r = 2k (20) 2k-1 < p < 2k Mod r means truncating the rightmost k bits because r = 2k . And divide by r means shift k bits to the right. Montgomery showed that t is x × r -1 mod p. And also t is an integer. So after doing divide by r, we don’t get a fraction which later requires flooring. 2.7 Forward and backward transforms Here we see how to compute u × r % p. conversion of an integer u mod p to its Montgomery pair g (u) is done. u × r % p = (u × r -1 × r2 ) % p = (u × (r2 % p)) × r -1 % p (21) Conversion of an integer u mod p to its inverse Montgomery pair g -1 (u) is directly computed by inverse Montgomery transform. We have complicated the process only a little bit by introducing one extra multiplication (u × (r2 % p)). And r2 % p is a constant because r and p are fixed. Computation of the remaining part (i.e. r -1 % p) is seen previously. Modulo addition and subtraction mod p can also be transformed to Montgomery domain and transformed back using commutative diagram. This can be done as follows: u → u × r % p v → v × r % p In transformed domain u × r % p ± v × r % p = (u ± v) × r % p (22) (u ± v) × r × r -1 % p = (u ± v) % p (23) 3. Hardware Implementation Described below are hardware architectures used in VHDL. 3.1 multiplicative inverse using extended Euclid algorithm
  • 5. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-152 Given: b mod a Compute: inverse of b (i.e. multiplicative inverse of b) given by b-1 . Procedure: Initialize: r1 ← a, r2 ← b, t1 ← 0 and t2 ← 1 While (r2 > 0) { q = r1 / r2; r = r1 – q × r2; r1 = r2; r2 = r; t = t1 – q × t2; t1 = t2; t2 = t; } If (r1 = 1) then b-1 = t1 Note: if t1 is negative then b-1 = t1 + a Example: p = 65437 r = 216 = 65536 65536 mod 65437 Compute inverse of 65536 Table 1 Multiplicative inverse computation by tabular method q r1 r2 r t1 t2 t 0 65437 65536 65437 0 1 0 1 65536 65437 99 1 0 1 660 65437 99 97 0 1 -660 1 99 97 2 1 -660 661 48 97 2 1 -660 661 -32388 2 2 1 0 661 -32388 65437 1 -32388 Inverse of 65536 mod 65437 is: – 32388 + 65437 = 33049 Check step: r × r -1 – p × z = 1 65536 × 33049 – 65437 × z = 1 z = 33099 3.2 Divider Long division in decimal (135 divided by 13) is shown below. Table 2 Decimal long division 1 0 13 1 3 5 1 3 ↓ 0 5 0
  • 6. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-153 5 Quotient: 10 Remainder: 5 Long division in binary (135 divided by 13) Table 3 Long division in binary arithmetic 1 0 1 0 1101 1 0 0 0 0 1 1 1 1 1 0 1 ↓ ↓ ↓ 0 0 1 1 1 ↓ ↓ 0 0 0 0 ↓ ↓ 1 1 1 1 ↓ 1 1 0 1 ↓ 0 0 1 0 1 0 0 0 0 1 0 1 Algorithm used to do division in VHDL Step1: store numerator in combination n1: n2 Step2: store denominator d Step3: repeat 4 times Shift n1: n1 left one bit If n1 ≥ d n1 = n1 – d n2 (0) = 1 Step4: quotient = n2 remainder = n1 (3:0) Table 4 Division architecture in VHDL n1 10000 1110 n2 shl n1: n2 d 01101 n1 00011 1111 n2 n1 = n1 – d, n2(0) = 1 n1 00111 1110 n2 shl n1: n2 d 01101 n1 01111 1100 n2 shl n1: n2 d 01101 n1 00010 1101 n2 n1 = n1 – d, n2(0) = 1 n1 00101 1010 n2 Remainder Quotient Note: if quotient is more than 4 bits, this technique doesn’t work. E.g. 10110101 / 10000 Quotient = 00010110 Remainder = 101 So to overcome this problem we do the 4 bit division twice.
  • 7. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-154 Fig. 2 Eight bit by four bit divider 00001011 / 1000 = q (00000001) r (011) 00110101 / 1000 = q (00000110) r (101) Therefore the quotient is 00010110 and the remainder is 101 after the division is complete. 3.3 Multiplier Below is an example for four bit by four bit multiplier. Append four zeros to the multiplicand i.e. make it 8 bits and store it in bp. Initially set eight bit product to zero. Multiplier ‘a’ is the input control line to the mux. And because it is a four bit by four bit multiplier, we have four copies of the same circuit i.e. a adder, a mux and a shift left. Depending on the value of the control line of the mux, the sum of bp and p is passed through or only p is passed. If control input to the mux is ‘1’, then sum of bp and p is passed through. And if the control input to the mux is ‘0’, then only p is passed through. Also note that on every interation, bp is shifted left by one bit position.
  • 8. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-155 Fig. 3 Four bit by four bit multiplier 3.4 r computation Given a prime p Compute r = 2k Such that 2k-1 < p < 2k Say for example the prime number is stored in 8 bits. Create another variable temp with one extra bit i.e. 9 bits in this case, set its most significant bit to one and set remaining all bits to zero. Shift left the contents of pime till its most significant bit becomes one. Simultaniously shift the contents of temp to the right. And all this operation is put inside a loop. At the end of the loop when most significant bit of the prime becomes, temp holds the value or r = 2k . Fig. 4 r computation
  • 9. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-156 3.5 Random number generation Random numbers can be generated by simply shuffling the bits randomly. Initially to start with any random number is taken. Here bit positions 4 to 7 is exored with bit positions 9 to 12 and result is stored in bit position 12 to 15 on every clock cycle. Also bit position 4 to 15 is shifted to bit position 2 to 13 on every clock cycle. Thus on every clock cycle a new number is generated. Fig. 5 Random number generator 4. Simulation Results 4.1 Encryption Encrypting the word “sahyadrian” by entering the ascii value of each letter. Fig. 6 ASCII table
  • 10. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-157 Fig. 7 Simulation result for encryption 4.2 Random number inverse computation Result below shows multiplicative inverse generated for the random numbers. Fig. 8 Simulation result for random number generation
  • 11. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-158 4.3 Decryption Result below shows multiplicative decrypting the encrypted word “sahyadrian”. Fig. 9 Simulation result for decryption 4.3 Decryption Figure below shows the synthesis report of Montgomery transform. Fig. 10 Synthesis report
  • 12. IJRIT International Journal of Research in Information Technology, Volume 3, Issue 6, June 2015, Pg.148-159 Vinay Chandra, IJRIT-159 5. Conclusion As most encryption algorithms rely on modulus operation, proposed method describes the design of a circuit module applied to cryptography i.e. Modulo Multiplicative Inverse used in Montgomery algorithm and results are simulated using Xilinx. Montgomery multiplication computes a × b mod p for positive integers a, b, and p. Execution time on a computer is reduced when there are a large number of multiplications to be done with the same modulus p. The multiplicative inverse is computed using extended Euclid algorithm. Technique used for division is shift and subtract. And the multiplier block is implemented using shift and add operation. Also a simple technique used to generate random numbers is presented. And finally the word “sahyadrian” is encrypted and decrypted. This technique can be used for image encryption. Random numbers generated using the technique described can be used for encrypting each pixel of the image. This technique of pixel by pixel encryption makes the encryption process very fast as it eliminates long and tedious task of modulus operation by simple shift and truncate operations. The shift and add multiplier can be replaced by a more efficient multiplier which could save hardware resources. Various Vedic multipliers like the Karatsuba multiplier can also be used for fast multiplication. The technique can also be extended to encrypt text files by encrypting each character. 6. References [1] Xiaoying, “Modulo Multiplicative Inverse Circuit Design”, 1Department of Computer and Information Science, FST, University of Macau, Macao, China [2] A. Daly, W. Marnane, “Efficient architectures for implementing montgomery modular multiplication and RSA modular exponentiation on reconfigurable logic”, Proceedings of the 2002 ACM/SIGDA tenth international symposium on Field-programmable gate arrays, Monterey, California, USA, pp.40 – 49, 2002. [3] D. W. Matula, A. Fit-Florea, M. A. Thornton, “Table Lookup Structures for Multiplicative Inverses Modulo 2^k“, 17th IEEE Symposium on Computer Arithmetic (ARITH'05) pp. 156-163, 2005 [4] Xilinx, “Xilinx System Generator”, Version 6.2, Xilinx Inc., USA, http://www.xilinx.com/ise/optional_prod/system_generator.htm. [5] Thomas Blum, “High Radix Montgomery Modular Exponentiation on Reconfigurable Hardware”, ECE Department Worcester Polytechnic Institute 100 Institute Road, Worcester, MA 01609, USA