1 00:00:02,940 --> 00:00:08,500 Интернет: шифрование и открытые ключи 2 00:00:08,990 --> 00:00:13,730 Здравствуйте! Меня зовут Миа Гил-Епнер, я закончила Университет Беркли по специальности "Информатика" 3 00:00:13,730 --> 00:00:19,070 и работаю в Министерстве обороны США над обеспечением безопасности данных. 4 00:00:19,070 --> 00:00:22,290 Интернет — это открытая и публичная система. 5 00:00:22,290 --> 00:00:26,870 Мы посылаем и получаем данные через общие системы связи. 6 00:00:26,870 --> 00:00:29,579 Несмотря на то, что мы знаем, что это открытая система, мы передаем большое 7 00:00:29,579 --> 00:00:31,714 количество личных данных. 8 00:00:31,714 --> 00:00:35,890 Это номера кредитных карт, банковские данные, пароли, эл. почта и т. д. 9 00:00:35,890 --> 00:00:39,190 Как же все эти личные данные хранятся в тайне? 10 00:00:39,190 --> 00:00:42,810 Любые данные можно хранить в безопасности благодаря процессу "шифрования", 11 00:00:42,810 --> 00:00:46,439 кодирования или подмены сообщения для сокрытия оригинального текста. 12 00:00:46,439 --> 00:00:49,740 Дешифрование — это процесс декодирования такого 13 00:00:49,740 --> 00:00:52,610 сообщения, чтобы его можно было прочитать. 14 00:00:52,610 --> 00:00:55,480 Люди делают это веками. 15 00:00:55,480 --> 00:01:00,280 Одним из первых известных методов шифрования был шифр Цезаря. 16 00:01:00,280 --> 00:01:03,559 Он назван в честь римского императора Юлия Цезаря, 17 00:01:03,559 --> 00:01:07,220 который шифровал свои военные команды, чтобы сообщения не перехватили враги 18 00:01:07,220 --> 00:01:10,060 и не смогли их прочитать. 19 00:01:10,060 --> 00:01:13,360 Шифр Цезаря — это алгоритм, в котором каждая буква исходного сообщения 20 00:01:13,360 --> 00:01:16,979 заменяется на букву, стоящую через несколько букв дальше по алфавиту. 21 00:01:16,979 --> 00:01:22,429 Если цифра известна лишь отправителю и получателю, она называется ключом. 22 00:01:22,429 --> 00:01:27,640 Это позволяет читателю раскрыть секретное сообщение. 23 00:01:27,640 --> 00:01:30,560 Например, если оригинальное сообщение — "HELLO", 24 00:01:30,560 --> 00:01:35,869 то, по алгоритму шифра Цезаря с ключом 5, зашифрованное слово 25 00:01:35,869 --> 00:01:39,409 было бы таким... 26 00:01:39,409 --> 00:01:43,259 Чтобы расшифровать сообщение, получатель просто воспользовался ключом, 27 00:01:43,259 --> 00:01:46,479 чтобы проделать процесс в обратную сторону. 28 00:01:46,479 --> 00:01:50,179 Но с шифром Цезаря есть большая проблема: любой может легко взломать код 29 00:01:50,179 --> 00:01:54,569 или расшифровать сообщение, попробовав все возможные ключи. 30 00:01:54,569 --> 00:01:57,099 В английском алфавите всего 26 букв, 31 00:01:57,099 --> 00:02:03,309 то есть чтобы расшифровать сообщение, нужно попробовать максимум 26 ключей. 32 00:02:03,309 --> 00:02:06,810 Попробовать 26 ключей не сложно. Это займет не более пары часов. 33 00:02:06,810 --> 00:02:10,111 Поэтому усложним задачу. 34 00:02:10,111 --> 00:02:13,920 Вместо переноса букв на одно и то же количество шагов, 35 00:02:13,920 --> 00:02:16,100 давайте перемещать их на разное количество шагов. 36 00:02:16,100 --> 00:02:18,280 В этом примере десятизначный ключ показывает, 37 00:02:18,280 --> 00:02:21,950 на сколько шагов будет изменена каждая последующая буква, 38 00:02:21,950 --> 00:02:24,920 чтобы зашифровать более длинные сообщения. 39 00:02:25,410 --> 00:02:28,925 Угадать этот ключ очень трудно. 40 00:02:28,925 --> 00:02:33,560 У десятизначного шифра может быть 10000000000 решений. 41 00:02:33,560 --> 00:02:39,580 Конечно, никто не мог бы это решить — это займет много веков. 42 00:02:39,580 --> 00:02:43,430 Но обычном компьютеру сегодня понадобится всего несколько секунд, чтобы попробовать все 43 00:02:43,430 --> 00:02:45,550 10000000000 вариантов. 44 00:02:45,550 --> 00:02:51,010 А поскольку сегодня злоумышленники вооружены компьютерами, а не карандашами, 45 00:02:51,010 --> 00:02:56,210 то как можно зашифровать сообщение так надежно, чтобы его было очень сложно взломать? 46 00:02:56,210 --> 00:03:02,700 "Слишком сложно" означает слишком много вариантов для перебора за разумное время. 47 00:03:02,700 --> 00:03:08,728 Сегодня безопасная связь шифруется с помощью 256-битных ключей. 48 00:03:08,728 --> 00:03:12,840 Это означает, что компьютер злоумышленника, который перехватывает ваше сообщение, 49 00:03:12,840 --> 00:03:15,760 должен попробовать столько вариантов... 50 00:03:15,760 --> 00:03:19,460 пока не обнаружит ключ и не откроет сообщения. 51 00:03:19,460 --> 00:03:23,160 Даже если бы у вас было 100 000 суперкомпьютеров, 52 00:03:23,160 --> 00:03:28,685 и каждый из них пробовал бы миллион миллиардов ключей каждую секунду, 53 00:03:28,685 --> 00:03:32,610 то на каждый вариант понадобилось бы триллионы триллионов лет, 54 00:03:32,610 --> 00:03:37,690 просто чтобы сломать одно сообщение с 256-битным шифрованием. 55 00:03:37,690 --> 00:03:42,795 Конечно, каждый год компьютерные чипы становятся вдвое быстрее и вдвое меньше, 56 00:03:42,795 --> 00:03:46,130 и если это темп экспоненциального прогресса продолжится, 57 00:03:46,130 --> 00:03:48,380 задачи, невозможные сегодня, будут решаться 58 00:03:48,380 --> 00:03:51,220 всего за несколько сотен лет в будущем, 59 00:03:51,220 --> 00:03:54,160 и 256 бит станет недостаточно для безопасности. 60 00:03:54,160 --> 00:04:00,890 Нам уже пришлось увеличить стандартную длину ключей, чтобы не отставать от скорости компьютеров. 61 00:04:00,890 --> 00:04:02,645 Хорошая новость в том, 62 00:04:02,645 --> 00:04:05,540 что использование длинного ключа не слишком усложняет шифрование, 63 00:04:05,540 --> 00:04:11,440 но при этом экспоненциально увеличивает количество вариантов для взлома шифра. 64 00:04:11,530 --> 00:04:14,219 Если отправитель и получатель используют один и тот же ключ 65 00:04:14,219 --> 00:04:16,779 для кодирования и декодирования сообщения, 66 00:04:16,779 --> 00:04:19,124 это называется "симметричное шифрование". 67 00:04:19,124 --> 00:04:24,789 В этом случае, как с шифром Цезаря, секретный ключ 68 00:04:24,829 --> 00:04:27,849 должен быть заранее согласован двумя лицами. 69 00:04:27,849 --> 00:04:28,779 Это удобно для людей, 70 00:04:28,779 --> 00:04:32,940 но Интернет — это открытая и общедоступная среда, поэтому здесь невозможно организовать 71 00:04:32,940 --> 00:04:35,550 "тайную встречу" двух компьютеров, 72 00:04:35,550 --> 00:04:37,915 на которой они договорятся о секретном ключе. 73 00:04:37,915 --> 00:04:40,999 Вместо этого компьютеры используют асимметричные ключи: 74 00:04:40,999 --> 00:04:47,120 открытый ключ можно дать кому угодно, а вот частный ключ никому не раскрывается. 75 00:04:47,120 --> 00:04:49,980 Открытый ключ используется для шифрования данных, 76 00:04:49,980 --> 00:04:52,840 и любой может зашифровать им сообщение, 77 00:04:52,840 --> 00:04:59,205 но секрет может расшифровать только компьютер с доступом к частному ключа. 78 00:04:59,205 --> 00:05:02,550 Это делается математически, но сейчас мы не будем это обсуждать. 79 00:05:02,550 --> 00:05:06,129 Просто представьте, что у вас есть личный почтовый ящик, 80 00:05:06,129 --> 00:05:10,004 куда каждый может класть письма, но для этого им нужен ключ. 81 00:05:10,004 --> 00:05:13,280 Вы можете сделать несколько копий ключа 82 00:05:13,280 --> 00:05:16,309 и передать их своим друзьям или даже просто сделать ключ общедоступным. 83 00:05:16,309 --> 00:05:20,790 Ваш друг или даже незнакомец может воспользоваться открытым ключом, 84 00:05:20,790 --> 00:05:23,210 чтобы положить письмо в ваш ящик. 85 00:05:23,210 --> 00:05:25,630 Но только вы можете открыть ящик своим частным 86 00:05:25,630 --> 00:05:29,444 ключом и получить доступ к секретным сообщениям. 87 00:05:29,444 --> 00:05:31,839 Вы также можете отправить защищенное сообщение 88 00:05:31,839 --> 00:05:35,145 своему другу, воспользовавшись открытым ключом от его ящика. 89 00:05:35,145 --> 00:05:37,781 Так мы обмениваемся защищенными сообщениями, 90 00:05:37,781 --> 00:05:40,770 не договариваясь о частном ключе. 91 00:05:40,770 --> 00:05:43,099 Криптография публичным ключом 92 00:05:43,099 --> 00:05:45,679 является основой всех защищенных сообщений 93 00:05:45,679 --> 00:05:47,404 в открытом интернете, 94 00:05:47,404 --> 00:05:49,052 включая протоколы безопасности, 95 00:05:49,052 --> 00:05:51,130 известные как SSL и TLS, 96 00:05:51,130 --> 00:05:53,610 которые защищают нас при просмотре веб-страниц. 97 00:05:53,610 --> 00:05:55,970 Ваш компьютер использует их, 98 00:05:55,970 --> 00:06:02,610 когда вы видите замочек или буквы "https" в адресной строке браузера. 99 00:06:02,610 --> 00:06:05,772 Это означает, что ваш компьютер использует шифрование открытым ключом 100 00:06:05,772 --> 00:06:10,209 для безопасного обмена данными с сайтом. 101 00:06:10,209 --> 00:06:12,524 Все больше людей пользуется интернетом, 102 00:06:12,524 --> 00:06:14,270 поэтому через него передается 103 00:06:14,280 --> 00:06:16,495 все больше и больше личных данных, 104 00:06:16,495 --> 00:06:18,790 и необходимость в безопасности этих данных становится еще важнее. 105 00:06:18,790 --> 00:06:21,125 А поскольку компьютеры становятся все быстрее, 106 00:06:21,125 --> 00:06:23,960 нам придется разработать новые способы шифрования, 107 00:06:23,960 --> 00:06:26,818 которые будут слишком сложны для взлома компьютером. 108 00:06:26,818 --> 00:06:29,596 Это моя задача, и она постоянно меняется.