데이터를 암호화, 복호화를 할 때 컴퓨터는 어떤 처리를 할까?
A가 B에게 인터넷을 경유해서 데이터를 전달하려 할 때,
데이터는 인터넷상의 다양한 네트워크나 장비를 통해서 B에게 전달된다.
이때 악의를 지닌 제3자가 데이터를 훔쳐볼 가능성이 있다. (도청)
이 때문에 비밀로 하고 싶은 데이터는 암호화해서 전송해야 한다.
암호문 : 암호화한 데이터
복호화 : 암호문을 원 데이터로 복원하는 것
데이터에는 텍스트, 음악, 사진 등 다양한 형식이 있지만 컴퓨터 내에서는 모든 데이터를 2진수로 관리한다.
데이터는 컴퓨터에게 있어 의미를 지닌 숫자들의 나열이고, 암호문도 숫자이 나열되어 관리되고 있지만 컴퓨터가 해석할 수 없는 임의의 숫자로 구성되어 있다.
즉, 암호화란 데이터에 어떤 연산을 적용해서 컴퓨터가 해석할 수 없는 숫자로 변경하는 것을 의미한다.
암호화의 수치 계산에 '키'를 이용하지만, '키'도 숫자로 만들어진다.
암호 기술은 암호화 키를 이용하여 수치 계산을 통해 데이터 내용을 제3자가 해석할 수 없도록 변환하고, 키를 이용하여 수치 계산을 통해 암호문을 원 데이터로 복원한다.
예로 데이터와 키의 값이 위 그림과 같다면, 구체적인 XOR 계산방법 과정을 알아보자
XOR(비배타적 논리합)이란 그림의 진리값 표를 이용해 연산하는 것이다.
A XOR B = C ↔ A = B XOR C
어떤 값 A와 어떤 값 B를 XOR로 계산한 결과가 C라고 하면,
C에 대해 A나 B를 다시 XOR로 계산하면 다른 한 쪽의 값을 얻을 수 있다는 것을 의미한다.
데이터에 대해 키를 이용해서 XOR을 계산하면 암호문을 얻을 수 있고,
다시 키를 이용해서 XOR계산을 하면 원데이터를 얻을 수 있다.
이처럼 XOR 계산방법을 이용한 암호에선 암호화와 복호화에 동일한 키를 사용하게 된다.
Reference
- 『알고리즘 도감』, 이시다 모리테루, 미야자키 쇼이치 - 제이펍
- 사진출처 : 알고리즘 도감 어플