Guest User

Untitled

a guest
Jan 11th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.52 KB | None | 0 0
  1. void ModExp(uint1024_t M, uint1024_t e, uint1024_t n,
  2.             uint1024_t Mbar, uint1024_t xbar, uint1024_t* out)
  3. {
  4.     uint1024_t xbar_temp = 0;  // temporary intermediate variable
  5.  
  6.     for (int i=NUM_BITS-1; i>=0; i--)
  7.     {
  8.         // square
  9.         montMult(xbar,xbar,n,&xbar);
  10.  
  11.         // multiply if odd
  12.         if (e.test(i)) // if (e.bit(i) == 1), then e is odd
  13.         {
  14.             montMult(Mbar,xbar,n, &xbar_temp);
  15.             xbar = xbar_temp; // update temporary variable
  16.         }
  17.     }
  18.  
  19.     // undo montgomery residue transformation
  20.     montMult(xbar_temp,1,n, out);
  21. }
Add Comment
Please, Sign In to add comment