// refer this documentation - https://www.cryptopp.com/docs/ref/class_integer.html // http://www.cryptopp.com/docs/ref561/class_integer.html #include<iostream> #include<cryptopp/integer.h> using CryptoPP::Integer; using std::cout; using std::endl; int main() { // example showing calculation of 2^x for really big x cout<<"2**30000 = "<<Integer::Power2(30000)<<endl; // Power2 is a static member function of class. // addition, subtraction, multiplication, division of two big numbers Integer i1=Integer::Power2(100); Integer i2=Integer::Power2(50); cout<<"2**100 + 2**50 = "<<i1+i2<<endl; cout<<"2**100 - 2**50 = "<<i1-i2<<endl; cout<<"2**100 * 2**50 = "<<i1*i2<<endl; cout<<"2**100 / 2**50 = "<<i1/i2<<endl; // example showing use of modular operator Integer i3=Integer::Power2(1024); Integer i4(501); cout<<"2**1024 % 501 = "<<i3%i4<<endl; // example showing calculation of modular inverse Integer i5(3628800); Integer i6(2431); cout<<"modular inverse of 3628800 wrt 2431 = "<<i5.InverseMod(i6)<<endl; // example showing GCD of two numbers cout<<"GCD("<<i5<<","<<i6<<") = "<<Integer::Gcd(i5,i6)<<endl; Integer a,b,c; a=Integer(10241024); b=Integer(10241024); c=Integer(1000000007); // modular Multiplication cout<<a_times_b_mod_c(a,b,c)<<endl; // modular Exponentiation cout<<a_exp_b_mod_c(a,b,c)<<endl; return 0; }
Tuesday, 20 June 2017
Basics about Integer class in Crypto++
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment