私はバイナリフィールドのプログラミングが必要な楕円曲線暗号の私のプロジェクトに取り組んでいます。加算、乗算、反転などの基本的な操作が含まれています。既約二項多項式。プログラミング言語でバイナリフィールドを表現する方法は?
私はこれらのバイナリ多項式をプログラムに格納する方法を探しています。私はC言語とC++プログラミング言語(gmpライブラリを使っています)に取り組んでいますので、最初の考えは構造とビットフィールドを使うことでした。しかし、それらは動的ではなく、任意に長い多項式を保持することはできません。 C++ Vectorの使用STLは可能ですが、8ビット以上の1ワードに1ビットを格納するため、効率的ではありません。
効率的な表現方法はありますか?
"バイナリフィールド"とはZ_2を意味しますか? –
std :: vector 1ビット表現で1ビットメモリを使用 –
DvoryankinEvgeny
@DvoryankinEvgenyはい、できません。 2つの 'std :: vector' sを効率的に 'xor'します。 –