Closed
Description
I would like to calculate the following in C ++ with libtommath:
x ^ (2 ^ level) % n
So I try it ...
char buff[4096];
mp_int x, level, n, X, e;
mp_init(&x);
mp_init(&level);
mp_init(&n);
mp_init(&X);
mp_init(&e);
// Calculate RSA x ^ (2 ^ level) % n
mp_set(&x, 32878006774570359216307190512414453734815024711845858985814302013359906676224571864057517441898232179839316906470039235887748992902358250854400787652810336070530280967470770997285440429053186803879037);
mp_set(&level, 10000);
mp_set(&n, 77898130960070341501772069500669364440519531421534783575397763758775619778096560479521554583192022357575799725548012588149166448319424189949242058358050730052508358466295626425829884371399991831978634);
mp_set(&e, 2);
mp_sqr(&e, &level);
mp_toint(&level, buff);
printf("LVL = %s\n", buff ); // 4
mp_exptmod(&x, &level, &n, &X);
mp_toint(&X, buff);
printf("X :: %s\n", buff); // 346751013179386221
//Warning: integer constant is too large for its type mp_set(&n, ...);
//Warning: integer constant is too large for its type mp_set(&x, ...);
It just doesn't calculate the big numbers correct ... or I'm doing something wrong ...
Metadata
Metadata
Assignees
Labels
No labels