암호문 비구별성

암호문 비구별성(暗號文 非區別性, ciphertext indistinguishability)은 암호화 방식이 갖추어야 할 중요한 성질 중 하나이다. 예를 들어, 어떤 암호문을 봤을 때 이것이 '2시에 공격'를 암호화한 것인지 '2시에 후퇴'를 암호화한 것인지 구별할 수 없어야 하는 것이다. 일반적으로 안전성 증명 가능한 암호화 방식은 모두 기본적으로 선택 평문 공격에서 비구별성을 만족해야 한다. 이외에도 선택암호문공격 및 능동 선택 암호문 공격에서 안전한 암호화 방식도 필요하다.

비구별성을 엄밀하게 정의하면 다음과 같다. 동일한 길이의 평문 두 개를 임의로 선택하여 암호화한 것이 공격자 A에게 주어졌을 때, A는 둘 중에서 어떤 암호문이 자신이 원하는 암호문인지 선택한다. 안전한 암호화 방식이었다면, A는 둘 중에 하나를 임의로 고르는 확률 1/2과 거의 비슷한 확률로 성공할 수 있을 것이다. 만약 A가 1/2보다 상당히 큰 확률로 성공한다면, A가 암호문을 구분하는데 advantage가 있다고 생각할 수 있으며 이 암호화 방식은 비구별성의 관점에서 볼 때 안전하지 않다고 할 수 있다. 즉, 이 암호화 방식은 평문의 정보를 유출하므로 안전하지 않다고 생각할 수 있다.

엄밀한 정의
비구별성을 이용하여 안전성을 정의하는데는 공격자의 능력에 대해 어떻게 가정하느냐에 따라 여러 가지 방법이 있다.

선택평문공격에 대한 비구별성
비대칭열쇠 암호화 알고리즘에서, 선택평문공격에 대한 비구별성(indistinguishability under chosen plaintext attack, 줄여서 IND-CPA)은 다음과 같이 공격자와 도전자 사이의 게임으로 정의한다.

암호학