не используйте это ваше RSA после того, как Вы его реализуете. Используйте проверенные библиотеки, читайте их код, если никому не доверяете.
Я не именно RSA имплементирую а, так называемый coin-flipping protocol
http://www.comp.nus.edu.sg/~hugh/presen ... ipping.pdfЕго проверенную библиотеку нигде не нашел. Можете прокомментировать?
-- Вс июл 20, 2014 21:06:23 --
#include <cstdlib>
#include <math.h>
#include <iostream>
#include "gmp.h"
#include <string.h>
using namespace std;
/*
*
*/
int main(int argc, char** argv) {
mpz_t a,b;
mpz_init(a);
mpz_init(b);
mpz_set_str(a,"1234567890",10);
//mpz_set_str(b,"0",10);
//a=45;
mpz_nextprime(b,a);
char *x;
cout<<mpz_get_str(x,10,b)<<endl;
cout<<mpz_probab_prime_p(b,35)<<endl;
return 0;
}
Ответ на ноутбуке Intel® Core™2 Duo CPU T5470 @ 1.60GHz × 2 , RAM 3.9 GiB:
Код:
1234567891
1
RUN FINISHED; exit value 0; real time: 0ms; user: 0ms; system: 0ms
Для числа "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890"
Код:
1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234568879
1
RUN FINISHED; exit value 0; real time: 40ms; user: 0ms; system: 10ms