선택평문공격
선택 평문 공격(Chosen Plaintext Attack)이란 평문을 선택하면 대응하는 암호문을 얻을 수 있는 상황에서의 공격이다. 공격자가 한꺼번에 선택한 평문들에 대한 암호문이 주어진다는 가정 하에 복호화 키를 찾는 공격이다.
개요
공격자가 암호장치에 얼마든지 접근할 수 있어서 선택된 평문을 입력하고 그에 대한 암호문을 얻을 수 있는 상황에서 복호화키를 찾아내거나 선택된 암호문에 대한 평문을 찾아내고자 한다. 암호알고리즘이 하드웨어로 구현되어 있고 키는 내부에 내장되어 있는 암호장치를 공격자가 가지고 있다고 가정해보면 공격자는 원하는 만큼 선택한 평문을 입력시켜보고 그에 대한 암호문을 얻을 수 있다. 공개키 암호 알고리즘의 경우 공개키가 알려져 있으므로 공격자는 선택한 어떤 평문도 암호화하여 암호문을 얻을 수 있다. 이런 평문/암호문 쌍에 대한 지식을 기반으로 공격자는 좀 더 유리한 환경에서 암호시스템을 공격할 수 있다.[1]
종류
적응적 선택 평문 공격
차분 공격
차분 공격은 선택 평문 공격에서 사용할 수 있는 공격 기법이다. 현대 암호의 경우 평문을 작은 데이터 단위로 나눈 후 Substitution과 Permutation을 반복 적용해 해독을 어렵게 만든다. 이 Substitution 과정이 비선형적이기 때문에 차분 공격이 나오기 전 까지는 키에 대한 전수조사 이외에는 마땅한 공격 방법을 찾지 못했지만, Substitution이 취약하게 설계되었을 경우 키의 XOR 여부와 관계 없이 차분은 유지된다는 성질을 이용해 키를 전수조사보다 효과적으로 유추할 수 있다.[2]
일반적인 차분 공격의 과정은 다음과 같다.
n비트 평문Χ 및 그 평문과 비슷한 다른 평문 Χ'을 준비하고, 이들의 XOR 차이를 ΔΧ라고 둔다. 그리고 Χ, Χ' 를 각각 암호화한 결과를 Υ,Υ'라고 정의하며 이들의 XOR 차이를 ΔΥ로 둔다. 이상적인 경우, 어떤 ΔΧ에 대해 특정ΔΥ 가 나타날 확률은 1/2^{n}이다. 하지만 암호에 취약점이 존재하는 경우 이 확률은 더 크게 나타날 수 있다. 이때 (ΔΧ,ΔΥ 를 차분(differential)이라고 부른다. 차분 공격은 이러한 차분 쌍을 찾아내는 것을 목표로 한다.
차분 쌍을 이용하여 블록 암호의 암호 키를 찾는 공격이 가능할 수도 있다. 가령 블록 암호가 대입-치환 네트워크(substitution-permutation network) 구조를 가질 때 마지막 라운드를 제외한 나머지 과정에서 차분 현상이 일어났다면, 마지막 라운드에 입력되는 값의 차이를 일정 확률로 알 수 있고, 출력값의 차이를 관측할 수 있으므로 마지막 라운드에 더해지는 키의 일부도 알 수 있기 때문이다.[3]