Damus
YoshikuniJujo profile picture
YoshikuniJujo
@YoshikuniJujo

Haskell好き

Relays (11)
  • wss://relay.nostr.band/ – read & write
  • wss://nos.lol/ – read & write
  • wss://relay.damus.io/ – read & write
  • wss://relay-jp.nostr.wirednet.jp/ – read & write
  • wss://nostr-relay.nokotaro.com/ – read & write
  • wss://yabu.me/ – read & write
  • wss://r.kojira.io/ – read & write
  • wss://nrelay-jp.c-stellar.net/ – read & write
  • wss://relay.primal.net/ – read & write
  • wss://nostr.mom/ – read & write
  • wss://nostr-kyomu-haskell.onrender.com/ – read & write

Recent Notes

YoshikuniJujo profile picture
今は鍵交換に格子暗号が使われているらしい。これはForward Secrecyの問題で、将来量子コンピュータによって過去の通信を復号できてしまうようになるという事態に対するセキュリティらしい。格子暗号がまだ若い技術なので、バグなどセキュリティ的な問題が生じる可能性もあるので(多分)ECDHEの技術と併用しているとのこと
ethfi · 6d
Flashback
YoshikuniJujo · 6d
XChaChaはnonceがChaChaの8バイトに対して24バイトになっていて重復を避けやすくなっている。
YoshikuniJujo profile picture
ChaChaという暗号化方式があるのだけどシンプルできれい。

共通鍵から疑似乱数列を作って、それとのxorを取っていくだけらしい。
2❤️1
YoshikuniJujo · 6d
NIP-49で使われてるのはXChaCha20-Poly1305というものらしい。
YoshikuniJujo profile picture
Bech32のBCH符号は数学的にはいろいろややこしいところあるけど、実装としては簡単で、「誰かが計算してくれた6つの定数」があるので、それを使えば整数を5ビット左シフトして、空いたところをデータから取り出した5ビットでうめて、整数の左シフトでもれた5ビットのそれぞれについて、0なら何もせず、1なら6つの定数の対応するものでxorすればいいだけだ。

言葉で言うと冗長だけどコードにするとすごく簡単になる。
YoshikuniJujo profile picture
NIP-49は90文字までというBech32の仕様を無視しているけれど、もともと90文字までという制限は誤まりを100%検出したいという潔癖な考えから出たもので、90文字よりも長くなったとしても検出できない可能性は10億分の1くらいらしいので、問題なさそう。
YoshikuniJujo profile picture
で、とりあえず圏論の話は終わりにしてBCH符号を理解しなくては、だ。いちばんの肝は要素数32の有限体における積算の定義かな。
YoshikuniJujo profile picture
NIP-07を作ってる途中なのだけどNIP-49が必要だよねということで、Bech32を調べていたら、BCH符号が必要ということで、BCH符号には有限体が出てくるのだけど、群、環、体とあるけど「圏はなんかもっとメタ的だよね」みたいに思って、そういえば「モナドが自己関手の圏におけるモノイド対象である」っていう呪文があったなと思って、何とはなしにジェミニと話してたら理解できた。
1
YoshikuniJujo · 1w
ちなみにBCH符号はCRCの親戚らしい。CRCについては前にQiitaに書いたことある。 https://qiita.com/YoshikuniJujo/items/d5c2f28a1329076584dc https://qiita.com/YoshikuniJujo/items/687ad7cb6f6e97725121 CRCが要素数2の体上で計算していることを要素数32の体上...