Research Article

Revisiting Sum of Residues Modular Multiplication

Algorithm 5

New sum of residues modular multiplication.
Ensure: 𝐢 ≑ 𝐴 Γ— 𝐡 m o d 𝑀 , 𝐢 < 2 𝑛 + 1
  𝐢 1 [ 𝑛 ] = 𝐢 2 [ 𝑛 ] = π‘ž 1 = π‘ž 2 = 0
 for 𝑖 = 𝑛 βˆ’ 1 downto 0 do
   { 𝑇 1 [ 𝑖 ] , 𝑇 2 [ 𝑖 ] } = 2 𝐢 1 [ 𝑖 + 1 ] + 2 𝐢 2 [ 𝑖 + 1 ] + π‘Ž 𝑖 𝐡 { C a r r y s a v e a d d i t i o n }
   { 𝐢 1 [ 𝑖 ] , 𝐢 2 [ 𝑖 ] } = 𝑇 1 [ 𝑖 ] + 𝑇 2 [ 𝑖 ] + ( ( π‘ž 1 + π‘ž 2 ) Γ— 2 𝑛 m o d 𝑀 )
   { C a r r y s a v e a d d i t i o n } { T h e r e s i d u e ( ( π‘ž 1 + π‘ž 2 ) Γ— 2 𝑛 m o d 𝑀 ) i s p r e c o m p u t e d }
   { π‘ž 1 , π‘ž 2 } = { 𝐢 1 [ 𝑖 ] ≫ ( 𝑛 βˆ’ 1 ) , 𝐢 2 [ 𝑖 ] ≫ ( 𝑛 βˆ’ 1 ) } { π‘ž 1 and π‘ž 2 are the upper 2 bits of 𝐢 1 [ 𝑖 ] and 𝐢 2 [ 𝑖 ] respectively.}
   { 𝐢 1 [ 𝑖 ] , 𝐢 2 [ 𝑖 ] } = { 2 𝐢 1 [ 𝑖 ] & ( 2 𝑛 βˆ’ 1 ) , 2 𝐢 2 [ 𝑖 ] & ( 2 𝑛 βˆ’ 1 ) }
   { S e t t h e u p p e r 2 b i t s o f 𝐢 1 [ 𝑖 ] a n d 𝐢 2 [ 𝑖 ] t o z e r o }
 end for
  { 𝐢 1 [ 0 ] , 𝐢 2 [ 0 ] } = { 2 𝐢 1 [ 0 ] , 2 𝐢 2 [ 0 ] } { R i g h t s h i f t s o t h e y a r e b o t h 𝑛 βˆ’ 1 b i t s }
  𝐢 = 𝐢 1 [ 0 ] + 𝐢 2 [ 0 ] + ( ( π‘ž 1 + π‘ž 2 ) Γ— 2 𝑛 βˆ’ 1 m o d 𝑀 )