MoryLab;スマートフォン用の表示で見るMoryLab;エンジニア系ふわふわ大学生の雑記帳この広告は、90日以上更新していないブログに表示しています。大学のゼミで、ブロックチェーン関連の暗号技術やゲーム理論を学んでるんだけど、乱数生成について興味を持ったので少しだけ調べてみた。疑似乱数は、ソフトウェア的な処理の結果出力されるものであり、純粋な乱数ではない。いうのも、疑似乱数生成アルゴリズムによっては、生成法と内部の状態がわかれば乱数を予測できてしまう場合があるからである。線形合同法では、規則的な分布が現れたり、最下位ビットが0101で繰り返されたりするため安全な疑似乱数とは言えず、暗号に用いてはいけない。使い、ハードウェアの乱数生成器を使う必要がある。乱数生成器IntelやAMDのモダンなCPUなら、ハードウェアの乱数生成器がついていて、熱雑音などをもとに安全な乱数を生成してくれる。/dev/random(ちょっと遅い)か、/dev/urandom(少し質が劣るが速い)を使う。/dev/randomとすると、乱数列がドウワァァァァって出てくる。(ターミナルで趣味がばれますね)乱数生成ライブラリ普段RailsとかGoとかでWeb開発をしていると、セキュアなところで乱数が必要となるわけですが、以前は脳死で「secure_randomとかcrypto/rand使っとけばいいんじゃろ」とやっていたわけです。Java.util.randomが線形合同法と聞いて、多言語のライブラリの実装はどうなんだろうと興味を持ってみたので、普段使っているRubyやGoでポピュラーな乱数生成ライブラリについて少し調べてみました。(Ruby)よく使うやつです。(Golang)これもよく使います。Languageおわりに乱数生成だいじ。moririn772検索はてなブログをはじめよう!morrrryさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。