前回、まったく内容を理解しないまま、noise-cのサンプルアプリだけ動かした。
あとは、これをプロジェクトに組み込めばよい・・・と思っていたのだが、そうではなかった。
まだわかっていないが、サンプルも引数で設定が変更できたように、何か使用方法を決めるというもののようだった。
たとえば、Noise_NN_25519_AESGCM_SHA256、などという名前が、何か意味を持っているらしい。
Prefix : Noise
Pattern : NN
Diffie-Hellman : 25519
Cipher : AESGCM
Hash : SHA256
ということのようだ。
もはや呪文ですな。。。
noise-cがサポートしているアルゴリズムは、ドキュメントに書かれている。
http://rweather.github.io/noise-c/index.html#algorithms
これが仕様を満たしているのかどうか、満たしていなかったら改造できるのかどうか、改造できなかったら他のライブラリがあるのかどうか、その辺を見ていくことになりそうだ。
うう、つらい・・・。
つらいのだが、誰か調べてくれるわけでもないので、基礎知識に相当するものくらいは記事にしてもよかろう。
知りたいのは、Diffie-Hellmanだ。
サンプルのechoでも、25519と448という数字しか出てきていない。
そもそも、Diffie-Hellmanって鍵交換とかそういうはなしじゃなかっただろうか?
それの数字って、何なのだろう。
RFC 7748 - Elliptic Curves for Security
検索すると、すぐに出てきた。
RFCで推奨している楕円曲線の種類が、25519と448という名前のようだ。
RFC 7748だけじゃなくて、8031や8037などにも出てくるな。
2^255 - 19をつなげて、25519。
448はちょっと違って、2^448 - 2^224 - 1となっている。
そういえば、前調べたChaCha20-Poly1305も、2^130 - 5だったからそういう名前だった。
Diffie-Hellmanは、安全に鍵を交換するための方式だ。
鍵といっても物理的な鍵ではなく、データとしての鍵だ。
検索すると、たくさん出てくる。
また、CipherやHashも暗号関係の技術だ。
これらをどう組み合わせてもよいようにできているのだろう。
だから・・・noise-cが対応していないパラメータを使うようになっているという可能性もあるということだ。
嫌な予感はするのだが、これ以上は触れるのを止めておこう。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。