차분 공격
차분 공격(differential cryptanalysis)은 암호해독(cryptanalysis)의 한 방법으로, 입력값의 변화에 따른 출력값의 변화를 이용하는 방법이다.
공격 방법
편집차분 공격은 일반적으로 선택 평문 공격(chosen-plaintext attack)을 가정한다. 일반적인 차분 공격의 과정은 다음과 같다.
비트 평문 및 그 평문과 비슷한 다른 평문 을 준비하고, 이들의 XOR 차이를 라고 둔다. 그리고 를 각각 암호화한 결과를 라고 정의하며 이들의 XOR 차이를 로 둔다.
이상적인 경우, 어떤 에 대해 특정 가 나타날 확률은 이다. 하지만 암호에 취약점이 존재하는 경우 이 확률은 더 크게 나타날 수 있다. 이때 를 차분(differential)이라고 부른다. 차분 공격은 이러한 차분 쌍을 찾아내는 것을 목표로 한다.
차분 쌍을 이용하여 블록 암호의 암호 키를 찾는 공격이 가능할 수도 있다. 가령 블록 암호가 대입-치환 네트워크(substitution-permutation network) 구조를 가질 때 마지막 라운드를 제외한 나머지 과정에서 차분 현상이 일어났다면, 마지막 라운드에 입력되는 값의 차이를 일정 확률로 알 수 있고, 출력값의 차이를 관측할 수 있으므로 마지막 라운드에 더해지는 키의 일부도 알 수 있기 때문이다.
역사
편집차분 공격은 Eli Biham과 아디 샤미르가 1980년대 후반에 발견하면서 처음 알려졌다. 이들은 여러 블록 암호와 암호학적 해시 함수의 취약성을 발표하였으며, DES의 취약성을 연구하면서 DES가 차분 공격에 강인하도록 설계되었다는 것을 발견하기도 했다.[1]
이후 1994년 IBM의 DES 팀에 있었던 Don Coppersmith는 1974년에 IBM이 차분 공격을 발견하였으며, IBM 내부에서는 이를 "T-attack"으로 불렀다는 것과 DES의 설계 목적 중 하나가 이에 문제가 없도록 하는 것이었다고 밝혔다.[2]