암호 기법의 보안성을 증명하는 측면에서 암호학자들은 크게 4가지 공격 모델을 정해놓고 해당 모델에서는 "perfectly secure"하다고 말한다. 암호학에서 말하는 secure는 필연적으로 공격자(attacker)를 가정해야 한다.
지금부터 4가지 공격 모델을 모두 확인해보자.
공격자는 오로지 cipher-text(암호문)에만 접근할 수 있다. 주어진 암호문을 가지고 해당하는 평문을 알아내는 공격 과정이 바로 COA이다.
예를 들어, Mono-alphabetic Substitution cipher를 살펴보면 알파벳과 알파벳을 각각 하나씩 mapping하여 암호문을 작성했으므로 공격자는 암호문을 받고 E,T,A,O,I 등 자주 등장하는 알파벳으로 평문을 구하거나 Diagram, Trigram을 가지고 평문을 구할 수 있다.
공격자가 key는 모르지만 cipher-text와 plain-text를 알고 있거나 plain-text를 알고 있고 cipher-text를 만들어 낼 수 있는 경우이다.
수학자 앨런 튜링은 이 정보를 이용해 전체 평문의 90%에 숫자 1에 해당하는 독일어 EIN이 포함되어 있다는 사실을 알아냈다. 튜링은 에니그마 암호 기계의 설정에 따라 EIN이라는 단어가 암호화될 수 있는 모든 경우의 수를 작성한 후 EIN의 위치를 찾아내는 방법을 쓰기도 했다.(Know-plaintext attack)
고전 암호 체계의 대부분은 KPA에 취약하다. 추후에 살펴볼 AES가 대표적으로 KPA의 영향을 받지 않는 암호 기법 중의 하나로 알려져 있다.
공격자가 본인이 선택한 평문으로 sender에게 암호화를 요청하고 그 결과 암호문으로 암호 체계를 알아 낼 수 있는 공격이다. 공격자가 분석에 필요한 패턴이나 암호를 기다릴 필요 없이 특정 요어나 패턴을 직접 표적으로 삼을 수 있어 분석과 관련된 데이터를 빠르게 수집할 수 있어 KPA보다 강력한 공격이라고 알려져있다.
공격자가 암호문을 reciver에게 보내 해독을 요청하고 그 결과로 받은 평문으로 암호 체계를 알아 낼 수 있는 공격이다. 앞서 설명한 공격 모델중에 가장 강력한 공격이다.
공격의 강도로만 놓고 봤을 때 COA < KPA < CPA < CCA 순으로 강력하다. 그럼 모든 암호 체계를 CCA 모델에서 안전하도록 설계하면 되지 않겠느냐라고 주장할 수도 있지만 무조건 최선의 경우가 최선의 결과를 가져 오는 것은 아니다.
암호학에서 보안성과 효율성은 서로 반비례하다. 경제성을 생각한다면 필요한 경우에 필요한 모델을 적용하여 안정성을 증명하는 것이 가장 최선의 방법이다.
암호학에서 공격 모델을 그 강도에 따라 여러 단계로 나눠 정의하는 의미는 공격을 부추기는 것이 아닌 "떠먹여 줘도 풀지 못하는 보안성" 을 증명하기 위함이다.