?? main.cpp
字號:
#include "Big.h"
#include <iostream>
#include <string>
#include <cmath>
#include <ctime>
using namespace std;
main(){
clock_t t=clock();
const int digits=8;
Big prime_P,prime_Q;
int count_of_table;//int Fermat_primes={3,17,65537};
prime_P.odd_generator(digits);
// prime_P.Output();
while(1){
prime_P=prime_P+2;
if(!prime_tester_small(prime_P)){
cout<<'.';
continue;
}
if(!(count_of_table=fit_next_steps_to_choose_e(prime_P))){
cout<<'!';
continue;
}
if(prime_tester(prime_P))
if(prime_tester(prime_P))
if(prime_tester(prime_P))
if(prime_tester(prime_P))
if(prime_tester(prime_P))
break;
cout<<'*';
}
cout<<"\nP:"<<endl;
prime_P.Output();
prime_Q.odd_generator(digits);
while(1){
prime_Q=prime_Q+2;
if(!prime_tester_small(prime_Q)){
cout<<'.';
continue;
}
if(!fit_next_steps_to_choose_e(prime_P,count_of_table)){
cout<<'\'';
continue;
}
if(prime_tester(prime_Q))
if(prime_tester(prime_Q))
if(prime_tester(prime_Q))
if(prime_tester(prime_Q))
if(prime_tester(prime_Q))
break;
cout<<'*';
}
cout<<"\nQ:"<<endl;
prime_Q.Output();
extern int Fermat_primes[];
Big n=prime_P*prime_Q;
cout<<"\nN (P*Q):"<<endl;
n.Output();
Big n1=(prime_P-1)*(prime_Q-1);
cout<<"\nN1 ((P-1)*(Q-1)):"<<endl;
n1.Output();
Big C,M;
M.odd_generator(digits);
cout<<"\nM (Original information):"<<endl;
M.Output();
Big e=Fermat_primes[count_of_table];
cout<<"\ne:"<<endl;
e.Output();
C=Modular(M,e,n);
cout<<"\nC (Secret info):"<<endl;
C.Output();
e.Clean();
n1.Clean();
Big d=Gcd(e,n1);
cout<<"\nD (private key):"<<endl;
d.Output();
Big p=Modular(C,d,n);
cout<<"\nP (Final):"<<endl;
p.Output();
cout<<dec<<"\nCost of time:(s) "<<(long)((clock()-t)/1000)<<endl;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -