420 likes | 528 Views
Algorithms for public-key cryptology Montgomery Arithmetic. EPFL-IC-IIF-LACAL Marcelo E. Kaihara April 27 th , 2007. Motivation. RSA:. ElGamal:. Most of the time computing modular multiplications. Need of efficient algorithms for modular multiplication . Notation.
E N D
Algorithmsforpublic-keycryptologyMontgomeryArithmetic EPFL-IC-IIF-LACAL Marcelo E. Kaihara April 27th, 2007
Motivation RSA: ElGamal: Most of the time computing modular multiplications Need of efficient algorithms for modular multiplication
Notation Multiple-precision integer arithmetic Radix representation depending on theprocessor (normalized)
Montgomery Multiplication General overview Ordinary Representation Montgomery Representation Sequential multiplications performed in Montgomery representation
Montgomery Multiplication Montgomery radix Ordinary Representation Montgomery Representation Isomorphic
Definition Montgomery Multiplication Definition:
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
How to compute? Algorithm
Conversion back and forth from ordinary representation and Montgomery representation Ordinary Representation Montgomery Representation
Montgomery Bootstrapping How to compute R2 mod m ? Ordinary Representation Montgomery Representation
Montgomery Bootstrapping What about modular inversion? Ordinary Representation Montgomery Representation
Montgomery Bootstrapping How to compute m0-1 mod B? 0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0
0 1 1 0 0 1 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 1 0 1 0 1 0 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 0 0 1 0 0 1 0