Cryptography Reference
In-Depth Information
static const UCHAR q64[64]=
{1,1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0,0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0,
0,0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0};
static const UCHAR q65[65]=
{1,1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0,
0,0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0,
0,0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1};
unsigned int
issqr_l (CLINT n_l, CLINT r_l)
{
CLINT q_l;
USHORT r;
if (EQZ_L (n_l))
{
SETZERO_L (r_l);
return 1;
}
The case q64[n_1 mod 64]
if (1 == q64[*LSDPTR_L (n_l) & 63])
{
r = umod_l (n_l, 45045);
· 63 · 65) */
if ((1 == q63[r % 63]) && (1 == q65[r % 65]) && (1 == q11[r % 11]))
/* n_l mod (11
Note that evaluation of the previous expression takes place from left to right; cf.
[Harb], Section 7.7
{
iroot_l (n_l, r_l);
sqr_l (r_l, q_l);
if (equ_l (n_l, q_l))
{
return 1;
}
}
}
SETZERO_L (r_l);
return 0;
}
Search WWH ::




Custom Search