논스(Nonce)란?

암호에서 같은 키 아래에서 한 번만 사용하는 값. number used once라는 의미이다. CTR 모드나 GCM에서는 같은 키와 논스의 조합을 두 번 사용하면 키 스트림이 같아져 평문의 XOR이 새어 나가므로, 카운터 등을 사용해 값이 겹치지 않게 한다. CBC 모드에서 사용하는 초기화 벡터(IV)는 겹치지 않을 뿐만 아니라 공격자가 예측할 수 없는 값이어야 한다. 둘 다 비밀로 할 필요는 없으며, 암호문과 함께 보내는 것이 보통이다. 인증 절차에서 오래된 응답의 재사용(리플레이)을 막기 위해 보내는 새로운 난수도 논스라고 부른다.

일본어 명칭: ナンス

논스(Nonce)은(는) 암호 기술의 기초와 응용 등 1개 분야의 연습 문제 5개에 나와요.

분야: 암호 기술의 기초와 응용

도전해 보기: 논스(Nonce) 관련 문제

AES를 CBC 모드로 사용할 때 초기화 벡터(IV)의 취급으로 적절한 것은?

  1. AIV는 키와 마찬가지로 비밀로 하고, 모든 메시지에서 같은 값을 계속 사용한다
  2. BIV는 비밀로 하지 않아도 되지만, 메시지마다 공격자가 예측할 수 없는 무작위 값을 새로 고른다
  3. CIV는 비밀로 하지 않아도 되며, 상대와 정해 둔 같은 값(예를 들어 모두 0)으로 매번 고정하여 사용해도 된다
정답과 해설 보기

정답: B. IV는 비밀로 하지 않아도 되지만, 메시지마다 공격자가 예측할 수 없는 무작위 값을 새로 고른다

CBC 모드에서는 각 평문 블록을 직전의 암호문 블록과 XOR한 뒤 암호화하고, 첫 블록은 IV와 XOR합니다. IV는 보통 암호문의 앞에 붙여 보내므로 비밀로 할 필요는 없습니다. 그러나 매번 같은 IV를 사용하면 앞부분이 같은 메시지는 암호문의 앞부분도 같아져, 내용의 일부가 같다는 사실이 새어 나갑니다. 나아가 다음에 사용될 IV를 공격자가 예측할 수 있으면, 고른 평문을 암호화하게 하여 내용을 추측하는 공격이 성립하는 것으로 알려져 있습니다(TLS 1.0에 대한 BEAST 공격 등).

CTR 모드에서 실수로 같은 키와 같은 논스를 사용해 두 메시지를 암호화했다. 어떤 위치의 바이트에 대해 첫 번째 평문 P₁은 01001000(ASCII의 'H'), 그 암호문 C₁은 01110100, 두 번째 암호문 C₂는 01010101이다. 공격자가 P₁을 알고 있을 때, 같은 위치의 두 번째 평문 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에서는 같은 키로 같은 논스를 두 번 다시 사용하지 않는 것이 반드시 지켜야 할 조건입니다.

해설 속 논스(Nonce)

논스(Nonce)이(가) 나오는 문제 (5)

  1. AES를 CBC 모드로 사용할 때 초기화 벡터(IV)의 취급으로 적절한 것은?
  2. CTR 모드에서 실수로 같은 키와 같은 논스를 사용해 두 메시지를 암호화했다. 어떤 위치의 바이트에 대해 첫 번째 평문 P₁은 01001000(ASCII의 'H'), 그 암호문 C₁은 01110100, 두 번째 암호문 C₂는 01010101이다. 공격자가 P₁을 알고 있을 때, 같은 위치의 두 번째 평문 P₂는?
  3. AES-GCM에서 사용하는 96비트 논스(IV)에 대한 설명으로 올바른 것은?
  4. 대칭 키 암호 중 블록 암호와 스트림 암호의 차이에 대한 설명으로 올바른 것은?
  5. 블록 암호의 CTR 모드(카운터 모드)의 특징으로 올바른 것은?

관련 용어

블록 암호 운용 모드(Block Cipher Mode of Operation) AES 인증 암호화(AEAD) TLS 대칭 키 암호(Symmetric-key Cryptography) 디피-헬먼 키 교환(Diffie-Hellman Key Exchange) 봉투 암호화(Envelope Encryption) 생일 공격(Birthday Attack) 암호 민첩성(Crypto Agility) 인증 기관(Certificate Authority)

용어집으로 돌아가기