과제 발표에 사용한 ppt 파일을 첨부하겠습니다. 현재 진행하고 있는 과제는 AI 스쿨의 리팩토링 보안직무 과정의 일부입니다. 만약 해당 과정에 더 관심이 있으시다면 AI스쿨의 공식 카페에 방문하여 더많은 정보를 확인해 주시기 바랍니다.
https://cafe.naver.com/itscholar
빈도분석법은 암호문을 분석할 때, 특정한 문자 혹은 문자열이 사용되는 빈도를 분석해서 암호문을 해석해내는 방법입니다.
영어에서는 특정한 문자의 사용 비율이 다른 문자에 비해 월등히 높은데, 일반적으로 e, t, a, o, i, n 순으로 많이 사용됩니다. 그리고 단어 중에는 a, an, the, of, to, in 등이 많이 사용됩니다. 이런 사실들을 이용한다면 빈도분석법으로 암호문을 해석해낼 수 있습니다.
빈도분석법이 왜 등장했는지 알려면 그 배경을 알아낼 필요가 있습니다. 카이사르 암호는 로마황제인 카이사르가 즐겨 사용했던 암호입니다. 이는 알파벳 순서의 n 번째 뒤의 알파벳을 사용하는 것으로 암호화를 진행했습니다.
예시)FI EAEVI SJ EWWEWWMREXSV
원문)BE AWARE OF ASSASSINATOR
예시문에서 볼 수 있듯, 암살자를 조심하라는 원문이 카이사르 암호를 사용한다면 아무런 의미가 없어 보이는 문자열 뭉치로 변환되는걸 확인할 수 있습니다. 이 카이사르 암호는 차후에 각 알파벳을 무작위로 다른 알파벳으로 바꾼 뒤, 바뀐 알파벳의 규칙을 암호책으로 공유하는 형태로 발전했습니다. 이를 단순치환법이라 부릅니다.
하지만 이런 단순 치환법을 손쉽게 해석하는 방법이 드러나게 되는데, 빈도분석법이 바로 그것입니다.
현전하는 가장 오래된 문헌으로는 알 킨디의 암호해독 문서가 존재합니다. 그리고 이 알 킨디의 문서가 유럽에 전해지면서 단순치환암호문들은 거의 멸망하게됩니다.
빈도분석법을 실습해보기 위해서 자료를 찾은 결과 아래의 사이트를 발견할 수 있었습니다.
https://www.101computing.net/frequency-analysis/
101컴퓨팅 사이트에서는 다양한 컴퓨터 실습 예제들을 공유하고 있습니다.
실습 사이트에서는 영어 평서문의 문자열의 일반적인 통계를 보여주고, 단순치환법으로 암호화된 문자열 뭉치를 제공했습니다. 암호화된 문자열에 곧바로 영어 평서문의 일반적인 통계에 해당하는 문자열들을 단순대입해 봤지만 첫 결과는 그리 좋지 않았습니다.
이는 문장마다 단어의 빈도수가 달라질 수 있기 때문입니다. 가장 높은 빈도수를 자랑하는 e 와 드 뒤를 따르는 문자들은 정확할 가능성이 높지만 그 아래 빈도에 있는 문자들은 문장을 어떻게 쓰나에 따라 결과가 판이하게 다를 수 있기 때문입니다.
그렇기에 일반적으로 가장 빈도수가 높은 e t a만을 대입하고 나머지 빈 부분들은 사전의 와일드카드 검색 기능을 이용하여 무슨 단어인지 유추하는 방식으로 문장을 채워나갔습니다.
참고로 네이버 사전의 와일드카드 기능이 처음에는 잘 작동하다가 단어가 복잡해지니 잘 작동하지 않는 일이 있었습니다. 그래서 책장 구석에 있던 오래된 전자사전으로 그 기능을 활용했습니다. 차후에 이 글을 따라하시게 되는 분이 있으시다면 참고하시길 바라겠습니다.
'AI 스쿨 리팩토링 보안직무 과정' 카테고리의 다른 글
6주차 과제 - 계층별 프로토콜 (상) (0) | 2022.12.18 |
---|---|
5주차 과제 - OSI 7 계층의 장비들 (0) | 2022.12.18 |
4주차 과제 – TCP와 UDP (0) | 2022.12.18 |
3주차 과제 - OSI 7 Layers (0) | 2022.12.15 |
AI 스쿨 리팩토링 보안직무 과정 시작 (0) | 2022.12.15 |
댓글