Compy's Blog
2104 words
11 minutes
[Crypto] 공격

암호학에서 몇 가지 공격에 대해서 이야기 해보려고 합니다.

이 포스트에서는

여기서는 암호 스키마에 대응하는 공격에 초점을 맞춰서 다루겠습니다. 많은 종류의 공격이 있으며 심각도 또한 각기 다릅니다!

1. 암호문 단독 모델#

암호문 단독 공격(Ciphertext-Only Attack)은 대다수 사람들이 암호 시스템을 부순다고 이야기할 때, 쓰는 의미입니다. 이 상황에서는 제임스와 소피아가 데이터를 암호화한 후 공격자가 볼 수 있는 것은 암호문 자체뿐! 단지 암호문 자체로 메시지를 복호화하려는 시도를 암호문 단독 공격입니다.

가장 정보가 적으므로 가장 어려운 유형의 공격입니다.

2. 알려진 평문 모델#

알려진 평문 공격(Known-Plaintext Attack)공격자가 평문과 암호문을 모두 알고있는 공격입니다.

이 공격의 최종 목표는 복호키를 찾는 것입니다. 이 설명을 읽으면서 이상하진 않으신가요? 어떻게 공격자가 평문을 알 수 있을까?라고, 하지만 통신상 평문을 알아낼 수 있는 상황은 굉장히 많습니다. 때로는 예상하기 쉬운 메시지도 있습니다.

예를 들어보겠습니다. 제임스가 밥을 먹고있는 동안에 모든 수신 메일에 대해서 ‘나 밥먹는 중 좀만 기다리셈’이라는 자동 응답 메일을 보낸다고 해봅시다. 공격자는 제임스에게 메일을 보내 자동 응답 메시지 사본을 발송하는데, 이때 메시지가 암호화됩니다. 이제 공격자는 메시지의 평문과 암호문.. 둘 모두를 획득합니다.

공격자가 키를 발견한다면 제임스와 소피아가 같은 키로 교환한 모든 다른 메시지도 복호화할 수 있습니다. 후자는 중요한 문제이고 공격자가 키를 얻기 위해서 일부 평문-암호 쌍을 사용하고, 다른 암호문을 복호호하기 위해서 해당키를 사용하는 행위를 반복하면 안됩니다.


다른 전형적인 상황을 예시로 들어보겠습니다. 제임스가 공격자를 포함해 **같은 메시지를 대다수 사람에게 보낼 때**입니다. 공격자는 **평문과 다른 사람에게 보낸 사본의 암호문을 가집니다.** 제임스와 소피아는 굉장히 중요한 파일을 전송 중일 수도 있습니다. 이 파일이 공개된다면, 공격자는 평문과 암호문을 알 수 있게 되겠죠...

공격자가 전체 평문을 다 알지 못하더라도 일부를 알아낼 수 있는데요. 이메일은 추정이 가능한 첫 부분과 고정된 서명이 맨 끝에 나옵니다. IP 패킷헤더는 추정하기 매우 쉬워서, 추정 가능한 데이터가 일부 알려진 평문이라면 알려진 평문 공격이 가능한 상황으로 분류가 됩니다.

알려진 평문 공격은 암호문 단독 공격보다 훨씬 강력합니다. 공격자는 암호문 단독인 경우보다는 더 많은 정보를 얻습니다. 추가 정보 또한 공격자에게 도움이 됩니다.

3. 선택 평문 모델#

다음 단계는 공격자가 평문을 선택할 수 있는 형태인데 알려진 ㅍ여문 공격보다 엄창엄청 강력한 유형의 공격입니다. 이제 공격자는 앙호 시스템을 공격하기 쉽게 특별히 준비된 평문을 선택할 것 입니다. 공격자는 얼마든지 평문을 선택(Chosen-Plaintext)해 해당하는 암호문을 얻을 수 있습니다. 이 공격이 비현실적이라고 생각하시는 분들도 계신데… 비현실적이지 않습니다.

공격자가 암호화하는 데이터를 선택할 수 있는 상황은 꽤 많이 있습니다. 또 다시 제임스는 상당수 외부 자료(이 외부 자료는 공격자의 영향을 받을 수도 있다.)에서 정보를 얻어 암호화된 형태로 밥에게 그 정보를 포워딩한다.

예를 들자면, 공격자가 제임스가 소피아에게 포워딩할 것이라는 사실을 알고 바로 그 이메일을 전송한다고 해봅시당. 에잇ㅅ 선택 평문 공격은 아무튼 비현실적인 공격이 절대 아닙니다. 좋은 암호 알고리즘은 선택 평문 공격에도 문제가 생기지 않습니다. 누군가가 본인이 운영하는 시스템과 선택 평문 공격은 관련 없다고 확신한다면 의심해보세용.

이 공격에는 두 가지 변종이 존재하는데요? 공격자가 암호문을 얻기 전 암호화하려는 평문 전체 리스트를 준비하는 오프라인 공격과, 이미 수신한 암호문을 가지고 새로운 평문을 선택하는 온라인 공격이 있습니다. 대부분의 경우 이 구분은 무시해도 좋습니다. !온라인 공격이 오프라인 공격보다 더 강력한 공격!

4. 선택 암호문 모델#

선택 암호문(Chosen_Ciphertext)란 용어는 부적절한 명칭입니다. 실제로는 선택 암호문 평문 공격이라고 불러야합니다. 그런데 솔직히 너무 길어서 짧게 부른다고 합니다. 선택 평문 공격에서 공격자는 평문 값을 선택합니다. 선택 암호문 공격에서는 평문 값과 암호문 값 모두를 선택합니다. 공격자가 선택하는 모든 평문에 대해 대응하는 암호문을 얻고 공격자가 선택한 각 암호문에 대응하는 평문을 얻습니다.

공격자가 더 자유로울 수 있다는 점에서 확실히 선택 암호문 공격은 선택 평문 공격보다 훨씬 강력합니다. 목표는 역시 키를 알아내는 것입니다. 키를 이용해 공격자는 다른 암호문을 해독할 수 있습니다. 그만큼 잘 설계된 암호 스키마는 선택 암호문 공격을 방어하는데 문제가 없습니다.

5. 특정 공격 목표#

자 요놈은 꽤 특이한 친구인데요, 1,2,3,4까지는 평문이나 복호화키를 알아내는 것이었습니다. 키를 복구하지 못하지만 공격자가 특정한 메시지를 복호화할 수 있는 공격도 있습니다. 메시지를 복구하지 못하지만 메시지에 대한 일부분 정보를 드러내는 공격도 있습니다.

예를 들자면, 선택된 10개의 평문과 그에 대응하는 암호문, 그리고 11번째 암호문이 주어졌을 때 대응하는 복호키를 알지 못하더라도 11번째 메시지의 최하위 비트가 0인지 1인지는 알수 있을 겁니다. 무척 다양한 형태의 공격이 있으니, 일일이 다 열거할순 없습니다만 공격자들은 항시 새로운 형태의 공격을 고안해 왔을겁니다(아마).

그렇다면 어떻게 방어할 수 있을까요?
우리는 특정 공격을 방어하고자 합니다. 특정 공격은 이상적인 암호 스키마와 실제 암호 스키마 사이의 차이점을 탐지하는 어려운 방법입니다. 이 공격은 아직 발견되지 않은 종류의 공격뿐 아니라 지금까지 설명한 모든 공격을 포함합니다. 물론 무엇이 이상적인 스키마인지 정의해야 되겠지만요.

6. 다른 형태의 공격(부채널, 생일, meet-in-the-middle 등)#

이와 관련하여서는 조금 더 자세히 다뤄볼 예정이니 다른 포스팅에 또 뵐게요!

[Crypto] 공격
https://compy07.github.io/Blog/posts/security/crypto/basicinfomation/attack/
Author
뒹굴뒹굴 이정훈 공부방
Published at
2024-06-27