4

RSA暗号解読の実装にNTLライブラリを使用しています。しかし、私はタイプの不一致/非互換性に関して頻繁にいくつかの問題に遭遇しています。

例えば-

  1. n ^((h-1.0)/(h * k-1.0))の型の値が必要ですRR。ここで、nは型ZZで、hとkはintです。全体的な指数はfloatまたはdoubleです。^、pow(RRベースでのみ機能)、power(長い指数でのみ機能)を試しました。私は最終的にすべてのタイプRRをpowを使用するように作成しましたが、それは本当にそれを行う方法ですか?

  2. (p(x))^ kを実行するにはどうすればよいですか?ここで、p(x)は多項式です。ループでmul関数をk回使用する必要がありました。また、多項式を初期化する方法は?stdinからpythonリストのようなものを取得できるようですが、プログラム内でそのように設定することはできません。それで、

    ZZX p;
    p = [1 2 3]
    

    また

    p = ZZX([1 2 3]) 
    

    動作しません。SetCoeff各係数を個別に設定するために使用する必要がありました。

これらは私が今覚えている2つのインスタンスです。あまりにも多くの不便に遭遇しました。
Iirc、ZZとRRを掛けることさえできません。

4

1 に答える 1

1

これもちょっと調べてみました。

  1. 申し訳ありません。これを行う方法は組み込まれていません。RR^long浮動小数点と整数の混合のみです。最も簡単な方法は、すべての値を に変換することだと思いますRR
  2. ここでは、多項式の累乗を計算するための組み込みメソッドもありません。しかし、それを自分自身で掛けるよりも速く行う方法がありますk高速べき乗を見てください。
    多項式を設定するには、次々に係数を設定する方法しかありません。ただし、ベクトルから多項式のすべての係数を設定する関数を作成できます。

NTL は高性能の優れた数学ライブラリですが、このライブラリの操作を難しくする要素がたくさんあります... 私が知っている誰もがデータ型に問題を抱えています (前述のように、 と を乗算しようとするRRZZ)。

于 2014-04-08T12:59:22.073 に答える