(1byte)で計算するため、桁あふれ分は考慮しません。する」という流れになります。いう関数にしておきます。C言語で書くと次のようになります。法既約多項式の値を表します。掛け算することは、バイナリ表現における左1ビットシフトであり、16進数表現では値を2倍することと同じ意味です。これによって、任意の値の掛け算を実装することができます。プログラム的に計算してみます。掛け算したときの結果を用意します。よって、バイナリ法の考え方でとなり、これを応用すれば任意の要素同士の掛け算を行うことができます。いう関数にして、C言語で書くと次のようになります。処理である行列の掛け算が実装できるようになります。すると、変換は次の数式で書けます。いう関数にして、C言語で実装すると次のようになります。係数が1の要素はそのまま使います。次の行列を使って逆変換を行います。次のように書けるからです。する多項式環上で掛け算したプログラムを以下に示します。なることから、確かに、暗号化多項式の逆元が復号多項式になっていることが確認できます。暗号化多項式を掛けた後に、復号多項式を掛けると、元に戻ることがわかります。話を戻して、復号における行列の掛け算を表す変換式は次のように書けます。いう関数にして、C言語で実装すると次のようになります。おける復号の処理ができるようになりました。197での本来の説明では、多項式から行列を導出していますのでご了承ください。処理でやっている行列の掛け算の説明になります。あたりを読むと、より理解を深めることができると思います。