キャリーレス乗算に関するこのIntelホワイトペーパーを読んでいます。の多項式の乗算について説明し。高レベルでは、これは2つのステップで実行されます:(1)上の多項式の乗算、および(2)既約多項式を法として結果を削減します。多項式の「標準」ビット文字列表現、つまります。
この論文では、アルゴリズム3の16ページの剰余多項式の計算アルゴリズムを示しています。しかし、16〜17ページの削減アルゴリズム(アルゴリズム4)を理解できません。基本的に、私たちの結果または部分的な結果が128ビットに適合しない場合、より大きなフィールドにはアルゴリズム4が必要だと思います。の2つの多項式の乗算の例を示し。
右シフトの「マジック定数」63、62、57と、左シフトの「マジック定数」1、2、7はどこから来るのですか?
たとえば、\ text {GF}(2 ^ {32})のように、より小さなフィールドのアルゴリズムを一般化するにはどうすればよいですか?次に、対応するシフト値は15、14、9および1、2、7になりますか?
最後のステップ4で、アルゴリズムは「XOR 、、およびと[X_3:D]との相互関係」を示します。
なぜこれを行うのですか?私の知る限り、このXOR演算の結果はどこにも保存されず、どこでも使用されません。[H_1:H_0]の計算に何らかの形で使用されていますか?