지난 글 : [알고리즘/알고리즘 도감] - 보안과 알고리즘
현재 인터넷 사회에서 암호 기술을 필수 기술이 되고 있다. 데이터를 암호화, 복호화할 때 컴퓨터가 어떤 처리를 하는지 알아보자.
1
A가 B에게 인터넷을 경유해서 데이터를 전달하려 한다. 데이터는 인터넷상의 다양한 네트워크나 장비를 통해 B에게 전달된다.
2
만약 A가 B에게 데이터를 전달하는 경로상에 악의를 품은 제삼자 X가 데이터를 훔쳐볼 가능성이 있다.
3
이 때문에 비밀로 하고픈 데이터는 암호화해 전송해야 한다. 암호화한 데이터를 '암호문'이라 한다.
4
암호문을 B에게 전송한다.
5
B는 A에게서 받은 암호문의 암호를 해제하고 원 데이터를 얻는다. 암호문을 원 데이터로 복원하는 것을 '복호화'라 한다.
6
이처럼 데이터를 암호화하면 설령 악의를 지닌 X가 훔쳐본다 해도 안심할 수 있다.
컴퓨터는 모든 데이터를 0과 1로 구성되는 2진수로 관리한다. 데이터에는 텍스트, 음악, 사진 등 다양한 형식이 있지만 컴퓨터 내에서는 모두 2진수로 관리된다. 이 내용을 바탕으로 데이터 암호화를 생각해보자. 데이터는 컴퓨터에게 있어 의미를 지닌 숫자들의 나열이며 암호문도 숫자의 나열로 관리되고 있으나 컴퓨터가 해석할 수 없는 임의의 숫자로 구성돼 있다. 즉, 암호화란 데이터에 어떤 연산을 적용해 컴퓨터가 해석할 수 없는 숫자로 변경하는 것이다. 암호화의 수치 계산에서는 '키'를 이용하지만, 키도 숫자로 만들어진다. 즉, 암호화 키를 이용한 수치 계산을 통해 데이터의 내용을 X가 해석할 수 없도록 변환하는 것이다. 반대로 복호화란 키를 이용한 수치 계산을 통해 암호문을 원 데이터로 복원하는 것이다.
참고 서적 :