私は暗号化/復号化にRSAアルゴリズムを使用しています。ファイルを復号化するには、かなり大きな値を処理する必要があります。より具体的には、
P = C^d % n
= 62^65 % 133
さて、それは本当に悪い計算をしている唯一の計算です。Matt McCutchenのBigIntegerライブラリを使用してみましたが、リンク中に次のような多くのコンパイラエラーが発生します。
encryption.o(.text+0x187):encryption.cpp: undefined reference to `BigInteger::BigInteger(int)'
encryption.o(.text+0x302):encryption.cpp: undefined reference to `operator<<(std::ostream&, BigInteger const&)'
encryption.o(.text$_ZNK10BigIntegermlERKS_[BigInteger::operator*(BigInteger const&) const]+0x63):encryption.cpp: undefined reference to `BigInteger::multiply(BigInteger const&, BigInteger const&)'
そのため、RSAアルゴリズムから出力される非常に大きな整数を処理するための最善の方法は何でしょうか。
変数をdoublelongとして宣言する可能性があると聞いたので、...
long long decryptedCharacter;
しかし、格納できる整数の大きさは正確にはわかりません。
たとえば、devC++を使用して次のプログラムをコンパイルして実行しようとしています。
#include iostream
#include "bigint\BigIntegerLibrary.hh"
using namespace std;
int main()
{
BigInteger a = 65536;
cout << (a * a * a * a * a * a * a * a);
return 0;
}
それから私はそれらのエラーを受け取ります。
デレク、私はBigIntegerLibrary.hh
ファイルを含めることで、コンパイラーが使用する必要なすべてのファイルを調べてコンパイルするだろうと思いました。
リンクエラーを解決するには、上記のプログラムをどのようにコンパイルしてみればよいですか?