今は鍵交換に格子暗号が使われているらしい。これはForward Secrecyの問題で、将来量子コンピュータによって過去の通信を復号できてしまうようになるという事態に対するセキュリティらしい。格子暗号がまだ若い技術なので、バグなどセキュリティ的な問題が生じる可能性もあるので(多分)ECDHEの技術と併用しているとのこと
XChaChaはnonceがChaChaの8バイトに対して24バイトになっていて重復を避けやすくなっている。
NIP-49で使われてるのはXChaCha20-Poly1305というものらしい。
ChaChaという暗号化方式があるのだけどシンプルできれい。 共通鍵から疑似乱数列を作って、それとのxorを取っていくだけらしい。
Bech32のBCH符号は数学的にはいろいろややこしいところあるけど、実装としては簡単で、「誰かが計算してくれた6つの定数」があるので、それを使えば整数を5ビット左シフトして、空いたところをデータから取り出した5ビットでうめて、整数の左シフトでもれた5ビットのそれぞれについて、0なら何もせず、1なら6つの定数の対応するものでxorすればいいだけだ。 言葉で言うと冗長だけどコードにするとすごく簡単になる。
https://addons.mozilla.org/ja/firefox/addon/sloth-walk/ とりあえず拡張機能の作りかたと公開のしかたを学ぶために作った。ナマケモノが画面の上部を左右に移動する。設定でdebugをチェックしてページを再読み込みするとナマケモノの動きが60倍になる。
NIP-49は90文字までというBech32の仕様を無視しているけれど、もともと90文字までという制限は誤まりを100%検出したいという潔癖な考えから出たもので、90文字よりも長くなったとしても検出できない可能性は10億分の1くらいらしいので、問題なさそう。
で、とりあえず圏論の話は終わりにしてBCH符号を理解しなくては、だ。いちばんの肝は要素数32の有限体における積算の定義かな。
結合環とかアーベル群とかはわからないな
ちなみにBCH符号はCRCの親戚らしい。CRCについては前にQiitaに書いたことある。 https://qiita.com/YoshikuniJujo/items/d5c2f28a1329076584dc https://qiita.com/YoshikuniJujo/items/687ad7cb6f6e97725121 CRCが要素数2の体上で計算していることを要素数32の体上で計算するとBCH符号になるらしい。
Welcome to YoshikuniJujo spacestr profile!
About Me
Haskell好き
Interests
- No interests listed.