ちりもつもればミルキーウェイ

好奇心に可処分時間が奪われる

2024-01-01から1年間の記事一覧

Go 1.22 の実装を見て学ぶ PCG-DXSM による疑似乱数の生成

PCG(permuted congruential generator)とは PCG自体の元ネタは PCG: A Family of Simple Fast Space-Efficient Statistically Good Algorithms for Random Number Generation にあります。(この論文は疑似乱数の統計的性質の比較とかいろいろやってるデカい…

線形合同法(LCG)による疑似乱数の生成

線形合同法とは 線形合同法(LCG; Linear Congruential Generator)は古くから知られている疑似乱数生成アルゴリズムで、背景の理論も簡単。 実行コストが低いため、暗号学的な安全性を求めないかつコンピューティングリソースに制約があるようなユースケース…

Go で word size が 32bit or 64bit どっちか知りた〜い

今回は小ネタ。みんな知りたいときあると思うからメモ どうやるの https://cs.opensource.google/go/go/+/refs/tags/go1.22.0:src/math/const.go;l=40 intSize = 32 << (^uint(0) >> 63) // 32 or 64 どゆこと ^uint(0) >> 63 は全bitたったuintを右に63シフ…

つくって理解するストリーム暗号 ChaCha20

はじめに Go 1.22 で math/rand に ChaCha8 実装が入ったらしい しかも math/rand/v2 トップレベルで利用されてる、かつシードがない math/rand でも使われるようになったらしい。一応議論を追った感じだと、暗号学的強度がある乱数をもとめてるのに math/ra…

2023年の振り返りと来年の抱負

はじめに けっこう遅刻したけど毎年やってたので振り返りちゃんとやるか〜と思い立って書いた。まあ詳細は後述するけど、大きいテーマみたいなのを決めてたんだけどあんまりそれは達成できんかったよという感じでした。 毎年いってるけど一年に1回しかフィー…