ナンスとは

なんす

暗号で、同じ鍵のもとで一度だけ使う値。number used once の意味。CTRモードやGCMでは、同じ鍵とナンスの組を二度使うと鍵ストリームが同じになり、平文のXORが漏れるので、カウンタなどを使って値が重ならないようにする。CBCモードで使う初期化ベクトル(IV)は、重ならないだけでなく、攻撃者に予測できない値でなければならない。どちらも秘密にする必要はなく、暗号文と一緒に送るのがふつうである。認証の手順で、古い応答の使い回し(リプレイ)を防ぐために送る新しい乱数も、ナンスと呼ぶ。

「ナンス」は、2分野の6問の練習問題に出てきます(暗号技術の基礎と応用, ハードウェアセキュリティの最新動向など)。

この用語の分野: 暗号技術の基礎と応用

ナンスの練習問題に挑戦

AESをCBCモードで使うときの、初期化ベクトル(IV)の扱いとして適切なものはどれか。

  1. AIVは鍵と同じく秘密にし、すべてのメッセージで同じ値を使い続ける
  2. BIVは秘密にしなくてよいが、メッセージごとに、攻撃者が予測できないランダムな値を新しく選ぶ
  3. CIVは秘密にしなくてよく、相手と決めておいた同じ値(例えばすべて0)に毎回固定して使ってよい
答えと解説を見る

正解:B. IVは秘密にしなくてよいが、メッセージごとに、攻撃者が予測できないランダムな値を新しく選ぶ

CBCモードでは、各平文ブロックを直前の暗号文ブロックとXORしてから暗号化し、最初のブロックはIVとXORします。IVはふつう暗号文の先頭に付けて送るので、秘密にする必要はありません。しかし、毎回同じIVを使うと、先頭が同じメッセージは暗号文の先頭も同じになり、内容の一部が同じであることが漏れます。さらに、次に使われるIVを攻撃者が予測できると、選んだ平文を暗号化させて内容を推測する攻撃が成り立つことが知られています(TLS 1.0に対するBEAST攻撃など)。

CTRモードで、誤って同じ鍵と同じナンスを使い、2つのメッセージを暗号化した。ある位置のバイトについて、1つ目の平文 P₁ は 01001000(ASCIIの「H」)、その暗号文 C₁ は 01110100、2つ目の暗号文 C₂ は 01010101 である。攻撃者が P₁ を知っているとき、同じ位置の2つ目の平文 P₂ はどれか。

  1. A00100001
  2. B00111100
  3. C01101001
答えと解説を見る

正解:C. 01101001

同じ鍵とナンスでは鍵ストリーム K が同じになるので、C₁ = P₁ ⊕ K、C₂ = P₂ ⊕ K です。まず K = P₁ ⊕ C₁ = 01001000 ⊕ 01110100 = 00111100 が分かり、P₂ = C₂ ⊕ K = 01010101 ⊕ 00111100 = 01101001(ASCIIの「i」)になります。鍵を知らなくても、片方の平文が分かれば、もう片方の平文がそのまま求まります。このため、CTRモードやGCMでは、同じ鍵で同じナンスを二度と使わないことが欠かせない条件です。

解説の中の「ナンス」

「ナンス」が出てくる問題(6問)

  1. AESをCBCモードで使うときの、初期化ベクトル(IV)の扱いとして適切なものはどれか。
  2. CTRモードで、誤って同じ鍵と同じナンスを使い、2つのメッセージを暗号化した。ある位置のバイトについて、1つ目の平文 P₁ は 01001000(ASCIIの「H」)、その暗号文 C₁ は 01110100、2つ目の暗号文 C₂ は 01010101 である。攻撃者が P₁ を知っているとき、同じ位置の2つ目の平文 P₂ はどれか。
  3. AES-GCMで使う96ビットのナンス(IV)についての説明として、正しいものはどれか。
  4. 共通鍵暗号のうち、ブロック暗号とストリーム暗号の違いの説明として、正しいものはどれか。
  5. ブロック暗号のCTRモード(カウンタモード)の特徴として、正しいものはどれか。
  6. 機密コンピューティングで、利用者の検証サーバ(検証者)が、VM型のTEEから受け取ったアテステーションの報告を確かめてから、データを復号する鍵を渡す。検証者が確かめる内容の組み合わせとして、最も適切なものはどれか。

暗号技術の基礎と応用の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

関連する用語

暗号利用モード AES 認証付き暗号(AEAD) TLS 共通鍵暗号 機密コンピューティング TEE(信頼できる実行環境) RSA暗号 HSM(ハードウェアセキュリティモジュール) HMAC

用語集の一覧へ