SECURE · BROWSER-ONLY
パスワード生成.jp
Secure Password Generator
🛡 ブラウザ完結 🔐 Web Crypto API 📡 通信ゼロ

暗号学的疑似乱数生成器(CSPRNG)とは

予測不可能な乱数を生成するセキュリティの根幹技術

CSPRNGとは

暗号学的疑似乱数生成器(Cryptographically Secure Pseudo-Random Number Generator、CSPRNG)は、暗号処理に使える品質の高い乱数を生成するアルゴリズムのことだよ。「疑似」とついてるのは、真の乱数(物理的なランダム性)ではなく計算によって生成されるからだね。

普通の乱数生成器との違い

プログラミングで「普通に」乱数を生成すると、多くの場合は予測可能な擬似乱数になる。たとえばゲームのサイコロとか、シミュレーションには十分でも、セキュリティ用途では危険だよ。

CSPRNGは次のような性質を持つ。

  • 予測不可能性: 過去の出力値から次の値を予測できない
  • 後退安全性: 内部状態が漏洩しても過去の出力が復元できない
  • 統計的ランダム性: 偏りのない均一な分布を持つ

パスワード生成との関係

パスワード生成ツールがCSPRNGを使っているかどうかは非常に重要だよ。CSPRNGを使っていないと、生成されたパスワードに規則性が生まれて攻撃者に予測されてしまう可能性がある。

このサイトのパスワード生成もCSPRNGを使っているから、生成されたパスワードは真にランダムで予測不可能なんだ。

OSレベルのCSPRNG

主要OSにはCSPRNGが組み込まれてる。Linux/macOSでは /dev/urandom、WindowsではCryptGenRandomがその役割を担うよ。現代のプログラミング言語のセキュリティライブラリは、これらOSのCSPRNGを呼び出して利用してることが多いね。