개요
cryptography는 문맥에 따라 다양한 의미로 쓰이지만
대체로 암호에 관련된 지식의 전반적인 체계를 뜻할 때는 암호학 이라는 의미로 쓰인다.
본 카테고리는 암호학의 기초에 대해서 순차적으로 작성해나갈 예정이므로 암호학이라고 이해하면 될 것이다.
오늘날 현대 사회에서는 음성 화상 데이터 등 다양한 종류의 정보 교환이 수없이 많이 일어나고 있으며,
이를 뒷받침하기 위한 정보 시스템의 신뢰성과 안정성이 매우 중요해졌다.
따라서 암호학의 중요성은 계속해서 강조되고 있다고 볼 수 있다.
암호 의 사전적인 의미는 비밀을 유지하기 위하여 당사자들끼리만 알 수 있도록 약속한 기호 로 메시지의 보안에 초점이 맞추어져 있다.
초기에는 주로 군사 또는 외교적 목적으로 사용되었으나, 상술했듯 정보 교환이 매우 빈번한 현대 사회에서는
통신망을 통한 메시지 보안 외에도 인증, 서명 등을 암호의 범주에 포함하게 되었다.
암호학이란 이러한 암호를 이용하여 정보를 보호하기위한 언어학적 및 수학적 방법론을 다루는 학문으로
수학을 중심으로 컴퓨터, 통신 등 여러 학문 분야에서 공동으로 연구되고 있다.
1. 관련 용어
암호학을 공부하기 위해서 기본적으로 알아두어야 하는 용어들에 대해 알아보자.
원문(message), 평문(plain text)
비밀 유지를 필요로 하는 메시지 또는 정보의 원래 형태를 말한다.
즉 암호화의 대상이 되는 데이터를 뜻한다.
암호문(cipher text)
원문 또는 평문을 암호화한 결과를 뜻한다.
암호화(encrypt)
평문이나 원문을 암호문으로 변환하는 과정으로
기존에 약속된 절차에 따라 일정한 기호와 수 또는 수열로 변환시키는 행위를 말한다.
복호화(decrypt)
암호문을 평문이나 원문으로 변환하는 과정을 말한다.
암호 알고리즘
암호화 혹은 복호화를 위해 사용되는 명백한 규칙 또는 수학적 함수
키(Key)
암호 알고리즘을 전개하기 위해 필요로 하는 숫자 또는 기호 등으로 이루어진 요소
암호시스템
암호화 및 복호화 과정을 포함하는 전체 집합체
송신자(sender)
메시지 또는 정보를 보내려고 하는 “정당한” 자
수신자(receiver)
메시지 또는 정보를 받으려고 하는 “정당한” 자
도청자(tapper, intruder)
송신자와 수신자 사이에서 “부당하게” 정보를 얻으려고 하는 자
암호기법
도청자가 암호문을 평문으로 복원하는 일을 어렵게 만드는 방법
암호해독
암호문으로부터 평문과 키를 탐지해내는 것
2. 암호 시스템의 구성
암호 시스템을 그림으로 간단하게 나타내면 위와 같다.
암호문을 보내는 사람(Sender)와 받는 사람(Receiver)는 어떠한 암호 알고리즘을 사용할 것인지 약속한 상태여야 하며,
암호문(cipher)를 만들기 전에 서로 키(Key)를 교환한 상태여야 한다.
일반적으로 암호 알고리즘이 키보다는 훨씬 더 복잡하지만, 알고리즘이라는 이름에서 알 수 있듯 범용적인 방법이기때문에
이 알고리즘에 대한 비밀을 유지하기 어렵다.
게다가 암호 알고리즘을 감춘하고해서 이 암호의 보안성이 높아지는 것도 아니기에, 현대 암호에서는 암호 알고리즘을 공개하고 있는 추세이다.
결론적으로 암호 시스템을 설계할 때에는 암호 알고리즘의 비밀을 지키는 것에 의존하지말고 키의 비밀을 지키는 데 중점을 두어야 한다.
이 원칙을 커코프의 원리(Kerckhoffs’s principle) 라고 부른다.
상술했듯, 암호에서 가장 중요한 것은 키이며, 키는 반드시 비밀리에 전달되어야 한다.
메시지 자체를 비밀리에 전달하는 것도 방법이겠지만, 키르 통한 암호화가 더 우위에 있는 이유는 아래와 같다.
- 일반적으로 메시지의 길이보다 키의 길이가 짧다. 짧은 데이터는 상대적으로 더욱 안전하게 전달할 수 있다.
- 비밀키를 이용하는 경우, 송신자와 수신자를 그때 그때 키를 교환하는 시점을 선택할 수 있다.
- 공개키 암호화 방식의 경우, 공개키를 탈취하더라도 복호화에 필요한 개인키를 알 수 없으므로 평문을 보호할 수 있다.
2.1 커코프의 원리(Kerckhoffs’s principle)
1883년 암호학자 오귀스트 커코프가 제시한 군사용 암호의 6가지 설계 원칙은 아래와 같다.
- 암호체계는 수학적으로는 해독불가능하지 않다고 하더라도, 실질적으로 그래야한다.
- 암호체계는 비밀에 부쳐질 필요가 없어야만 하며, 적의 손에 떨어지더라도 문제가 없어야 한다.
- 키는 글로 쓰여지지 않더라도 교환 혹은 보관할 수 있어야 한다. 당사자들의 의지에 의해서 바뀌거나 수정될 수 있어야 한다.
- 전신에 적용할 수 있어야 한다.
- 이동이 가능해야하며, 암호 체계의 사용과 기능을 위해 여러 사람의 협력을 필요로 하지 않아야 한다.
- 시스템의 활용을 요구하는 여러 상황들이 주어졌을 때, 암호 체계는 이용이 쉬워야 하며, 정신적인 압박감이나 여러 규칙들의 관찰을 필요로 하지 않아야 한다.
이중 2번 항목이 커코프의 원리로 발전하게 되었다.
3. 정보보호의 목표
암호화를 통해 정보를 보호하는 것.
좀 더 명세해보자면 정보의 수집, 처리, 저장, 검색, 송수신 과정에서의 훼손 및 변조를 방지하기 위한 기술적 수단 을 정보보호라고 한다.
이 정보보호의 목표는 크게 4가지로 나뉜다.
- 기밀성 : 인가되지않은 사람이 부당하게 정보를 입수하더라도 그 내용을 알 수 없도록 한다.
- 무결성 : 수신된 정보가 변조되지 않았음을 확인할 수 있어야 한다.
- 인증 : 수신된 메시지가 실제 송신자로부터 전달된 것인가를 확인할 수 있도록 상대방의 신원을 확인할 수 있어야 한다.
- 부인방지 : 송신자가 보낸 메시지를 수신자가 받지 않았따고 부인하거나, 송신자가 보내지 않은 메시지를 수신자가 받았다고 주장하는 등의 분쟁에 대한 해결 방법이 있어야 한다.