2017/05/21

Diffie-Hellmanの25519や448とは?

前回、まったく内容を理解しないまま、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 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。