CyberGlossary

暗号

ノンス

別称: 一度限りの数, 暗号学的ノンス

定義

暗号アルゴリズムに与える一度しか使ってはならない値で、新鮮性を保証し、リプレイや鍵・IV の再利用を防ぐ。

ノンス(nonce)は、同じ鍵の有効期間中に決して重複してはならない入力であり、対称暗号、AEAD モード、署名方式、認証プロトコルなどで、各操作を一意に保つために使用されます。AES-GCM や ChaCha20-Poly1305 のような AEAD では、ノンスは通常 96 ビットで、乱数または決定的なカウンターとして生成されます。AES-GCM で同じ鍵下にノンスを再利用すると、機密性と認証性が同時に崩壊します。ノンスは TLS ハンドシェイク、OAuth/OIDC のチャレンジ、Bitcoin のブロックヘッダー、ECDSA などの署名方式でも使われ、ECDSA でノンスを再利用すると秘密鍵が漏れます。ベストプラクティスは十分な長さの乱数ノンスか厳密に単調増加するカウンターを使うこと、衝突を否定できない場合は AES-GCM-SIV や XChaCha20-Poly1305 など誤用耐性モードへ移行することです。

  • TLS 1.3 は、シーケンス番号と方向別 IV を XOR してレコードごとの AEAD ノンスを生成する。
  • 2010 年に PlayStation 3 の ECDSA 秘密鍵が回復されたのは、Sony が署名時のノンスを再利用したため。

関連用語