암호화 및 복호화
Last updated
Last updated
어떤 메시지가 다른 컴퓨터로 전달될 때 제 3자가 내용을 해독하거나 변조하는 등 해킹을 당하기 쉽습니다.
그래서 메시지를 암호화하려면 암호화,해독(복호화)를 하는 알고리즘이 각각 있어야 합니다. 하지만 이 알고리즘만으로는 해결되지 않기에 뻔한 알고리즘이 눈 앞에 있어도 암호화된 메시지를 풀지 못하게 하는 수단, 즉 열쇠(키)가 있어야 합니다. 암호화 알고리즘은 키 기반 암호화가 통용되고 있으며 암호 키의 길이는 1비트에서 수 백 비트까지 다양합니다.
해커가 암호화된 메시지를 얻어내어 알고리즘까지 얻어냈다 하더라도 그 메시지를 해독할 키가 있어야 합니다. 만약 암호 키의 길이가 128비트라고 한다면, 2^128 개의 암호 키 중 하나가 맞을 것입니다. 암호 키 하나에 1/1,000,000,000,000초가 걸리는 몇 백억짜리 슈퍼 컴퓨터로 작업해도 10,790,283,070,806,014,188년이나 걸립니다.
암호 키는 크게 비대칭 키와 대칭 키로 구별됩니다. 비대칭 키는 한 쌍의 열쇠로, 한 열쇠로 암호화하면 나머지 한 개의 열쇠가 없이 해독할 수 없습니다. 대칭 키는 암호화할 때 쓴 키와 해독할 수 있는 키가 서로 같아야 합니다. 이러한 성질을 활용해서, 컴퓨터 네트워크에서는 암호화된 메시지를 전송하기 위해 대칭 키와 비대칭 키를 혼용하기도 합니다.
예를 들어,
호스트 A가 호스트 B에게 안전하게 암호화 된 메시지를 전달하고자 합니다. A는 비대칭 키 한 쌍을 만들어 하나는 본인이 가지고, 나머지 한 개를 B에게 전송합니다. A 본인이 가진 키를 개인 키(Private Key), B에게 전송한 키를 공개 키(Public Key)라고 부릅니다.
B는 가지고 있는 대칭 키로 A에게서 받은 공개 키를 암호화하여 A에게 보내줍니다. A는 받은 대칭 키를 개인 키로 복호화하고 B가 만든 대칭 키를 공유합니다. 이 과정에서 해커가 공개 키와 암호화 된 대칭 키를 얻었다 하더라도 개인 키가 없어서 대칭 키 내용을 알 수 없습니다.
이제 A는 메시지 내용을 B로부터 받은 대칭 키로 암호화 후 B에게 다시 전송합니다. B는 암호화 된 메시지를 대칭 키로 복호화하여 내용을 확인할 수 있습니다. 이 과정에서도 해커가 대칭 키가 없기 때문에 메시지 해독이 불가 합니다.
만약 해커가 메시지 내용을 훼손하여 B에게 보낸다면 B는 이를 복호화 할 수 없습니다.