more constant-time computation
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2013-12-23 Niibe Yutaka <gniibe@fsij.org>
|
||||||
|
|
||||||
|
* polarssl/library/bignum.c (mpi_montmul): Computation
|
||||||
|
time should not depends on input.
|
||||||
|
|
||||||
2013-12-20 Niibe Yutaka <gniibe@fsij.org>
|
2013-12-20 Niibe Yutaka <gniibe@fsij.org>
|
||||||
|
|
||||||
* Version 1.1.0.
|
* Version 1.1.0.
|
||||||
|
|||||||
@@ -1386,12 +1386,11 @@ static void mpi_montg_init( t_uint *mm, const mpi *N )
|
|||||||
*/
|
*/
|
||||||
static void mpi_montmul( const mpi *B, const mpi *N, t_uint mm, mpi *T )
|
static void mpi_montmul( const mpi *B, const mpi *N, t_uint mm, mpi *T )
|
||||||
{
|
{
|
||||||
size_t i, n, m;
|
size_t i, n;
|
||||||
t_uint u0, u1, *d, c = 0;
|
t_uint u0, u1, *d, c = 0;
|
||||||
|
|
||||||
d = T->p;
|
d = T->p;
|
||||||
n = N->n;
|
n = N->n;
|
||||||
m = ( B->n < n ) ? B->n : n;
|
|
||||||
|
|
||||||
for( i = 0; i < n; i++ )
|
for( i = 0; i < n; i++ )
|
||||||
{
|
{
|
||||||
@@ -1402,7 +1401,7 @@ static void mpi_montmul( const mpi *B, const mpi *N, t_uint mm, mpi *T )
|
|||||||
d[n] = c;
|
d[n] = c;
|
||||||
u1 = ( d[0] + u0 * B->p[0] ) * mm;
|
u1 = ( d[0] + u0 * B->p[0] ) * mm;
|
||||||
|
|
||||||
mpi_mul_hlp( m, B->p, d, u0 );
|
mpi_mul_hlp( n, B->p, d, u0 );
|
||||||
c = mpi_mul_hlp( n, N->p, d, u1 );
|
c = mpi_mul_hlp( n, N->p, d, u1 );
|
||||||
d++;
|
d++;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user