encode:Niederreiter
decode:Patterson
古い計算方式が混じっているのでバグになる。 OP(多項式型)をなくしてvec(ベクトル型)に統一する予定。
特にo2vのバグは、使うと次数と係数の順序が逆になってしまう。
それだけでなく、何だかまだバグが隠れているようなので小さな例を使ってバグ取りをしなければならない。
逆行列の計算があまりにも見にくいので、AI使って書いたコードと置き換える予定。
ちょっといじったらすごく早くなった。 今まで1分以上かかっていた鍵の生成に20秒未満しかかからなくなった。
最初、SIMDにしようかと思っていたのだが、書き方がよくわからないので適当にunionかなんかでいじってたら成功した。 特に深い意味がないけれど、早くなってよかった。
これからも無駄な処理とかを簡略化して、鍵生成5秒以内を目指したい。
参考文献を追加しました。
global.h のパラメーターを設定するだけで、GF(2^E)の有限体を計算するたびに生成するように方針を変更した。
今迄、有限体で演算テーブルで参照していたのはパラメータが固定の場合にのみ早くするためでしたが、 セキュリティパラメータを任意にすることで可変式の鍵生成ができるようになりました。
電子署名もいいけど、やっぱり古巣の誤り訂正符号は良い感じ。 コードの誤りも訂正しないとw
旧来の開発GoppaDecorderを非公開に移行し、リポジトリを分離しました。
これからはこれをメンテナンスします。