いやーついに決まっちゃいましたね。
クリスタルキーバーというようです。(カイバーだと思ってたw)
もうこれでニーダーライターの出番はなくなったわけですが、無駄ではないと思っています。(自己弁護)
そもそもニーダーライターは候補にも上がってなかったので関係ないかもしれないですがw
QC,QDと名の付く方式もあったけど、みんな解読されてたし、根拠のない改良は危険だと思っていた。
マックエリスには今まで安全に使える符号の選択肢が殆どなかった。
LDPCも積符号も連接符号も全部解読された。
何より鍵がでかいというのがネックになっている。
Goppaに拘るのは私が長い時間をかけて理解したことが無駄になるのが嫌というだけで、安全な方式が別にあるというのであればそれを使えばいいだけ。
ただそういう動機はあまり面白くない。
暗号に使える符号のバリエーションを増やすというのも大事だし、鍵サイズを小さくできるというのも大事。
なので第4ラウンドで競り合う予備の方式として筆頭候補に上がるのはBIKEじゃないかと思ったり。(HQCだったら意外)
暗号の計算問題を通して、少なくとも私のプログラミング能力は上がった(動くだけというレベルですが)と思うし、まだ素人だけどマンツーマンで教えてくれる人にも恵まれて、更に磨きをかけたいと思っています。
キーバーの実装のニーズ自体はこれから増えてくると思いますが、自分がやるとしたらやはり二次元符号を使った暗号を試してみたい。
とりあえずLWEの考え方はふわっとした感じで理解したつもりです。
例えばLWE問題は、符号の問題であるLPN問題の一般化だという。
ということは格子も狭い意味で符号とも関係があるということになるし、連立方程式にエラーが入っていたら訂正できるようにすればいいじゃない、と思うのは勘違いなのかどうなのか?
新型暗号のアイデアとしては、2変数連立多次方程式が使えるかどうか・・・すごく気になる。
この場合、代数曲線が符号語になる暗号というちょっと変な作りになると思います。
代数曲線も多項式なので、行列に単項式をプロットすれば、単項式の各変数の次数が行列のマスに対応していることになります。
グレブナ基底はまだやり始めたばかりで、2変数の割り算が終わったところ。
もっと時間がかかると思ったけど2日でできた。
MDPCをやるならグレブナ基底優先で。
新しいプログラムの趣旨はキーバーのアイデアを秘密鍵暗号に応用できないかというものです。
キーバーも選定ミスで、グレブナ基底の高度な研究で破られるかもしれないし、その時役に立ってくれないかな。
アリスのビジュネル暗号もきちんと実装する前に話が先に出てきて、完全なビジュネル暗号のコードとストーリーの作成が必要かも。
ビジュネル方陣をAESのS-BOXに置き換えただけ。(これはこれで一つのネタになりそうですが)
バイナリAG符号とか、ワイルドマックエリスなど符号の暗号への応用の未来は明るい!
AG符号も、例えば多数決論理を使わずに復号する方法をやってみようと思っています。
BIKEで使われてるMDPCは正に暗号のためだけに作られた符号という感じがしますが、Goppaが良い性能を持つと言われているのに、ちっとも実用化されないというのも、その性能を引き出せるようないい復号法がないからなのだろうか?
DJBのバイナリゴッパ符号の復号ってシンドローム復号じゃないし、補間多項式が出てくるのはリスト復号も同じだから、あ、違うわ。
バイナリゴッパをリスト復号しても1エラーしか訂正能力が増えないんだったw
バイナリゴッパの補間多項式を使った復号については、やっても損はしないと思うけどやる気がないw
でも暗号は面白い。