…
…
…
32 バイトの CSPRNG、Curve25519 に従いクランプ · 公開鍵 = 秘密スカラー × 基底点 9 · ローカルで生成、送信されない · 鍵を共有 URL にエンコードしないのは意図的な仕様です。
機能の説明
WireGuard Key Generator は、WireGuard トンネルに必要な暗号鍵を完全にブラウザー内で作成します。デバイスの CSPRNG から 32 バイトを取り出し、Curve25519 のルールに従ってクランプし(key[0] &= 248; key[31] &= 127; key[31] |= 64)、曲線の基底点を掛けることで対応する公開鍵を導出します。これは GF(2²⁵⁵ − 19) 上の RFC 7748 モンゴメリラダーの純粋な BigInt 実装です。さらに、オプションの事前共有鍵(PSK)を生成したり、編集してすぐ使える wg-quick 設定テンプレートをコピーしたりできます。
両方の鍵は、パディングつきの標準
Base64Base64An encoding representing binary data as 64 safe ASCII characters, so it survives transport through text-only channels. It encodes — it does not encrypt.
— 44 文字 — として出力されます。wg setconf、wg-quick、そしてすべての WireGuard マネージャーが期待する正確な形式です。何もアップロードされません。生成、導出、コピーはすべてローカルで行われ、鍵がページ URL にエンコードされることは意図的に排除されています。
使い方
- Generate(または Regenerate)を押して、新しい鍵ペアを作成します。
- Private key を自分のデバイスの設定の
[Interface]セクションにコピーします — 絶対に共有しないでください。 - Public key をコピーして、ピアまたはサーバー管理者に渡します — 共有しても安全です。
- Pre-shared key スイッチをオンにすると、オプションの 32 バイト PSK を生成できます。追加の対称性保護として、両側の設定に同じ値を記述してください。
- Config template をコピーし、
<PEER_PUBLIC_KEY>、Address、Endpointをサーバーの値に置き換えます。
例
既知の鍵ペア(RFC 7748 §6.1 の “Alice” テストベクトル)
Private key: dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo=
Public key: hSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
この秘密鍵を任意の X25519 実装に入力すると、まさにこの公開鍵が得られます — このツールが行う導出は、このようなベクトルと単体テストで照合して検証されています。新しく生成された鍵ペアは、同じ 44 文字形式のランダムな出力になります。
事前共有鍵つきの設定テンプレート
[Interface]
PrivateKey = dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo=
PublicKey = hSDwCYkwp1R0i33ctD73Wg2/Og0mOBr066SpjqqbTmo=
Address = 10.0.0.2/32
[Peer]
PublicKey = <PEER_PUBLIC_KEY>
PresharedKey = 7Xk2Pq9wLmY4vRtNz8sB1cHf6Gj3Kd0eA5uOi2WxSbE=
AllowedIPs = 0.0.0.0/0, ::/0
Endpoint = vpn.example.com:51820
PersistentKeepalive = 25
鍵のローテーション
Regenerate → replace only the PrivateKey line in your config →
send the new Public key to the peer admin → restart the tunnel.
補足事項
- なぜクランプするのか? 下位 3 ビットと最上位ビットがクリアされ、ビット 254 が強制されます。これにより、すべての秘密鍵が任意の Curve25519 実装で動作する有効なスカラーになると同時に、小さな部分群攻撃への防御になります。
- 事前共有鍵は、Diffie-Hellman 交換の上に 256 ビットの対称秘密を追加します — 記録されたトラフィックに対する将来の量子攻撃への対策として有効です。同じ PSK を両方のピアの設定に記述する必要があり、PSK は一切クランプされません(生の鍵素材として使用されます)。
- プライベート: 100% クライアント側で実行されます。CSPRNG と曲線の計算はネットワークに一切触れず、鍵が URL やストレージに書き込まれることもありません。
- 関連ツール: Password Generator、Secure Token Generator、
HashHashA one-way function that maps data of any size to a fixed-length digest. Same input, same digest; any change, different digest; not reversible.
Generator。