1

私は公開鍵暗号の背後にあるこの単純な例にかなり魅了され、 Client <- Server -> ClientJavaを使用して自分の例を書くために腰を下ろしました。結果のシークレットを使用してメッセージをエンコードする単純な前後。

私が最初に遭遇した問題は技術的な問題でした。デモンストレーションでは、作成者は方程式の結果を決定します。

3 ^ (24 * 54) mod 17

値付き:

= 1

しかし、私の質問は、Javaでこのような多数の計算にどのようにアプローチするのかということです。

または、例は単純に次のように提供されていますか?実際の計算方法ではなく、例ですか?

4

2 に答える 2

3

それには数学的な理由があるはずです(ダニエル・フィッシャーには理由があるようです)。いずれの場合も、BigIntegerを使用できます。

public static void main(String[] args) {
    BigInteger bi = new BigInteger("3")
          .modPow(new BigInteger(String.valueOf(24 * 54)), new BigInteger("17"));
    System.out.println(bi);
}

1を出力します。

于 2012-10-29T17:10:35.273 に答える
0

このような大きな数値を処理するには、 BigIntegerクラスを使用する必要があります。大きな整数に対する算術演算を提供します。

于 2012-10-29T17:10:24.717 に答える