2

こんにちは、Diffie-Hellman 鍵交換を実装しようとしています

public static Integer secret = 100000;
public static BigInteger g = new BigInteger("5");
public static BigInteger p = new BigInteger("315791951375393537137595555337555955191395351995195751755791151795317131135377351919777977373317997317733397199751739199735799971153399111973979977771537137371797357935195531355957399953977139577337393111951779135151171355371173379337573915193973715113971779315731713793579595533511197399993313719939759551175175337795317333957313779755351991151933337157555517575773115995775199513553337335137111");
public static BigInteger public = g.pow(secret).mod(p);

しかし、100000 の計算には既に数秒かかります。256ビットの数値にかかる時間はわかりません。

BigInteger の実装が原因でとても遅いのでしょうか、それとも軌道から外れていますか?

4

3 に答える 3

3

ここ (および他の多くの場所) で説明されている方法を使用します: https://math.stackexchange.com/questions/36318/modulo-arithmetic-with-big-numbers

幸運を。

于 2013-09-08T18:24:22.577 に答える