WEBVTT 00:00:02.940 --> 00:00:09.050 인터넷: 암호화와 공개 키 00:00:09.050 --> 00:00:12.760 안녕하세요, 저는 미아 길에프너에요. 저는 UC 버클리에서 컴퓨터 과학을 전공했고 00:00:12.760 --> 00:00:18.379 지금은 국방부에서 일하고 있어요. 여기서 저는 정보를 안전하게 지키는 업무를 맡고 있죠. 00:00:18.379 --> 00:00:26.850 인터넷은 공개되어 있고 공용 시스템이에요. 우리는 공유된 선과 연결을 통해 정보를 주고 받죠. 00:00:26.850 --> 00:00:31.450 하지만 공개된 시스템이라고 하더라도 비공개로 교환하는 데이터가 많죠. 00:00:31.450 --> 00:00:35.949 예를 들어 신용카드번호, 은행 정보, 암호, 이메일 같은거요. 00:00:35.949 --> 00:00:43.331 그러면 어떻게 해야 비공개 정보를 안전하게 지킬까요? 모든 종류의 데이터는 암호화, 스크램블링 또는 00:00:43.331 --> 00:00:46.740 원래의 텍스트를 숨기는 메시지 변경 등의 프로세스를 통해 비밀이 유지됩니다. 00:00:46.740 --> 00:00:51.719 여기서 해독은 메시지를 읽을 수 있도록 언스크램블링하는 프로세스이죠. 00:00:51.719 --> 00:00:56.210 이것은 간단한 아이디어이고, 인류는 수 세기 동안 이렇게 해왔어요. 잘 알려진 00:00:56.210 --> 00:01:01.350 최초의 방법은 시저의 암호였죠. 로마의 장군인 줄리우스 시저의 이름을 딴거죠. 00:01:01.350 --> 00:01:06.759 시저는 군대의 명령을 암호화하여 중간에서 적이 가로채더라도 00:01:06.759 --> 00:01:11.330 읽을 수 없게 만들었죠. 시저의 암호는 메시지의 각 글자를 00:01:11.330 --> 00:01:17.564 알파벳에 매칭되는 특정 숫자로 대체하는 알고리즘이에요. 00:01:17.564 --> 00:01:22.389 만약 숫자를 보내는 사람과 받는 사람만 안다면, 이것을 키라고 부르죠. 00:01:22.389 --> 00:01:26.679 이렇게 되면 읽는 사람이 비밀 메시지를 해독할 수 있죠. 00:01:26.679 --> 00:01:34.288 예를 들어, 오리지널 메시지가 'HELLO'라고 하고, 시저의 암호에서 5를 사용하면, 00:01:34.288 --> 00:01:41.829 암호화된 메시지는 이것이 되죠... 이 메시지를 해독하려면, 수신자는 00:01:41.829 --> 00:01:49.259 키를 사용하여 간단히 거꾸로 돌릴 수 있죠. 하지만 여기에는 큰 문제가 있어요. 00:01:49.259 --> 00:01:54.149 가능한 키를 모두 시도해보면, 누구라도 쉽게 암호화된 메시지를 풀 수 있어요. 00:01:54.149 --> 00:02:00.059 영어 알파벳은 26자 밖에 없으므로, 26개의 키만 시도해보면 메시지를 해독할 수 있죠. 00:02:00.059 --> 00:02:08.449 26개의 가능한 키를 시도해 보는 것은 어렵지 않아요. 기껏해야 1-2시간이면 되죠. 00:02:08.449 --> 00:02:13.060 그래서 좀 더 어렵게 해보자면, 모든 글자를 똑같은 수로 이동하는 대신에, 00:02:13.060 --> 00:02:20.690 각 글자를 다른 숫자만큼 돌리는 거에요. 이 예에서, 10자리 키로 각 글자의 포지션을 00:02:20.690 --> 00:02:25.380 바꾸어 더 긴 메시지를 암호화할 수 있습니다. 00:02:25.380 --> 00:02:32.100 이 키가 얼마나 어려울까요. 10자리를 암호화하면 답이 100억개가 될 수 있어요. 00:02:32.100 --> 00:02:39.760 분명 이것은 인간의 한계를 넘는 것이죠. 몇 백년이 걸릴 거에요. 00:02:39.760 --> 00:02:44.710 하지만 오늘날 보통의 컴퓨터라면, 100억 개의 가능성을 시도하는 데 몇 초면 됩니다. 00:02:44.710 --> 00:02:50.700 따라서 현대의 세계에서는 나쁜 사람들이 연필 대신에 컴퓨터로 무장하고 있죠. 00:02:50.700 --> 00:02:56.600 나쁜 사람들이 암호를 풀 수 없게 만들려면 얼마나 어렵게 암호화해야 할까요? 00:02:56.600 --> 00:03:01.750 너무 어렵다는 말은 일정 시간 안에 계산해야 할 가능성이 너무 많다는 의미입니다. 00:03:01.750 --> 00:03:11.560 오늘날 보안통신은 256비트 키를 사용합니다. 나쁜 사람들의 컴퓨터가 메시지를 가로채면 00:03:11.560 --> 00:03:18.820 키를 찾고 메시지를 해독할 때까지 엄청나게 많은 가능성을 시도해봐야 되는거죠. 00:03:18.820 --> 00:03:27.310 100,000대의 슈퍼 컴퓨터가 있고 각 컴퓨터가 초당 몇 천조의 키를 00:03:27.310 --> 00:03:31.980 시도할 수 있다고 하더라도 모든 옵션을 시도하여 00:03:31.980 --> 00:03:36.790 256비트 암호로 보호된 메시지를 해독하는 데 몇 백억년이 걸릴 것입니다. 00:03:36.790 --> 00:03:42.855 물론 컴퓨터 칩이 매년 2배 더 빨라지고 크기는 절반으로 줄어들고 있죠. 00:03:42.855 --> 00:03:48.870 이러한 기하급수적인 발전이 계속된다면, 오늘날의 불가능한 문제도 00:03:48.870 --> 00:03:54.140 수 백년 후면 해결될 겁니다. 256비트도 안전해지지 않게 되겠죠. 00:03:54.140 --> 00:04:00.820 사실 이미 표준 키 길이를 늘려서 컴퓨터 발전 속도를 따라 잡고 있습니다. 00:04:00.820 --> 00:04:06.010 좋은 소식은 더 긴 키를 사용해도 암호화하는게 더 어려워지지는 않습니다. 00:04:06.010 --> 00:04:11.621 하지만 암호를 풀기 위해 시도해야 하는 추측의 수는 기하급수적으로 증가하죠. 00:04:11.621 --> 00:04:17.150 보내는 사람과 받는 사람이 동일한 키를 공유하여 메시지를 변환하고 해석하는 것을 00:04:17.150 --> 00:04:23.170 대칭 암호화하고 합니다. 시저의 암호같은 대칭 암호화를 사용하려면, 00:04:23.170 --> 00:04:29.299 미리 양쪽이 비밀리에 비밀 키에 동의해야 합니다. 그래서 사람끼리 만나는 경우에는 좋지만, 00:04:29.299 --> 00:04:36.369 하지만 인터넷은 공개되어 있기 때문에, 두 컴퓨터가 비밀리에 "만나" 비밀 키를 00:04:36.369 --> 00:04:43.570 공유할 수 없습니다. 그래서 컴퓨터는 비대칭 암호화 즉, 누구와도 교환할 수 있는 공개 키와 00:04:43.570 --> 00:04:48.550 공유되지 않는 비공개 키를 사용합니다. 공개 키는 데이터를 암호화하는 데 00:04:48.550 --> 00:04:53.259 사용되고 누구라도 이것으로 비밀 메시지를 만들 수 있습니다. 하지만, 비밀은 비공개 키로 00:04:53.259 --> 00:05:00.500 액세스할 수 있는 컴퓨터로만 암호화할 수 있습니다. 이 방법은 우리가 지금 당장 볼 수 없는 00:05:00.500 --> 00:05:06.610 수학으로 이루어집니다. 이렇게 생각해보죠. 지금 개인 우편함이 있다고 상상해봐요. 00:05:06.610 --> 00:05:11.735 누구나 거기에 우편물을 넣을 수 있지만, 열쇠가 필요해요. 이제 내가 그 열쇠를 00:05:11.735 --> 00:05:16.990 복사해서 친구에게 주거나 아니면 일반에게 공개할 수도 있죠. 00:05:16.990 --> 00:05:22.549 친구나 심지어 모르는 사람도 공개 열쇠를 사용해서 우편함을 열어 메시지를 넣을 수 있지만, 00:05:22.549 --> 00:05:30.310 우편함을 열고 받은 비밀 메시지를 보려면 비공개 열쇠가 있어야 되요. 00:05:30.310 --> 00:05:33.349 그리고 반대로 비밀 메시지를 친구에게 보내려면 공개 열쇠로 00:05:33.349 --> 00:05:39.380 친구의 우편함에 넣을 수 있어요. 이런 식으로 비공개 키에 대한 합의 없이도 00:05:39.380 --> 00:05:46.190 비밀 메시지를 교환할 수 있지요. 공개 키 암호 방식은 공개된 인터넷에서 사용하는 보안 메시징의 기초입니다. 00:05:46.190 --> 00:05:51.979 SSL 및 TLS로 알려진 보안 프로토콜을 포함하여 00:05:51.979 --> 00:05:57.230 이 방식으로 웹을 탐색하는 사용자를 보호합니다. 오늘날 컴퓨터는 이 방식을 사용하죠. 00:05:57.230 --> 00:06:02.729 브라우저의 주소창에 조그만 자물쇠나 https라는 글자가 그것을 나타내죠. 00:06:02.729 --> 00:06:08.460 이는 곧 컴퓨터가 공개 키 암호화로 교환되는 데이터를 보호함을 의미합니다. 00:06:10.300 --> 00:06:14.946 점점 더 많은 사람들이 인터넷을 이용함에 따라, 더 많은 비공개 데이터가 전송됩니다. 00:06:14.946 --> 00:06:18.340 그리고 데이터 보호에 대한 필요성이 점점 더 중요해지죠. 00:06:18.340 --> 00:06:25.109 그리고 컴퓨터가 더욱 더 빨라짐에 따라 컴퓨터가 해독하기 어려운 00:06:25.109 --> 00:06:30.400 새로운 방법의 암호화를 개발해야 합니다. 이것이 저의 업무이지만 계속해서 변하고 있어요.