-
Интернет: шифрование и открытые ключи
-
Здравствуйте! Меня зовут Миа Гил-Епнер, я закончила
Университет Беркли по специальности "Информатика"
-
и работаю в Министерстве обороны США над
обеспечением безопасности данных.
-
Интернет — это открытая и публичная система.
-
Мы посылаем и получаем данные через
общие системы связи.
-
Несмотря на то, что мы знаем, что
это открытая система, мы передаем большое
-
количество личных данных.
-
Это номера кредитных карт,
банковские данные, пароли, эл. почта и т. д.
-
Как же все эти личные данные хранятся в тайне?
-
Любые данные можно хранить в безопасности
благодаря процессу "шифрования",
-
кодирования или подмены сообщения
для сокрытия оригинального текста.
-
Дешифрование — это процесс декодирования такого
-
сообщения, чтобы его можно было прочитать.
-
Люди делают это веками.
-
Одним из первых известных методов
шифрования был шифр Цезаря.
-
Он назван в честь
римского императора Юлия Цезаря,
-
который шифровал свои военные команды,
чтобы сообщения не перехватили враги
-
и не смогли их прочитать.
-
Шифр Цезаря — это алгоритм, в котором
каждая буква исходного сообщения
-
заменяется на букву, стоящую через
несколько букв дальше по алфавиту.
-
Если цифра известна лишь отправителю
и получателю, она называется ключом.
-
Это позволяет читателю раскрыть
секретное сообщение.
-
Например, если оригинальное
сообщение — "HELLO",
-
то, по алгоритму шифра Цезаря с ключом 5,
зашифрованное слово
-
было бы таким...
-
Чтобы расшифровать сообщение,
получатель просто воспользовался ключом,
-
чтобы проделать процесс в обратную сторону.
-
Но с шифром Цезаря есть
большая проблема: любой может легко взломать код
-
или расшифровать сообщение,
попробовав все возможные ключи.
-
В английском алфавите всего 26 букв,
-
то есть чтобы расшифровать сообщение,
нужно попробовать максимум 26 ключей.
-
Попробовать 26 ключей не сложно.
Это займет не более пары часов.
-
Поэтому усложним задачу.
-
Вместо переноса букв на одно и то же
количество шагов,
-
давайте перемещать их на разное
количество шагов.
-
В этом примере десятизначный ключ показывает,
-
на сколько шагов будет изменена каждая
последующая буква,
-
чтобы зашифровать более длинные сообщения.
-
Угадать этот ключ очень трудно.
-
У десятизначного шифра может быть
10000000000 решений.
-
Конечно, никто не мог бы это решить —
это займет много веков.
-
Но обычном компьютеру сегодня понадобится всего
несколько секунд, чтобы попробовать все
-
10000000000 вариантов.
-
А поскольку сегодня злоумышленники вооружены
компьютерами, а не карандашами,
-
то как можно зашифровать сообщение так надежно,
чтобы его было очень сложно взломать?
-
"Слишком сложно" означает слишком много вариантов
для перебора за разумное время.
-
Сегодня безопасная связь шифруется
с помощью 256-битных ключей.
-
Это означает, что компьютер злоумышленника,
который перехватывает ваше сообщение,
-
должен попробовать столько вариантов...
-
пока не обнаружит ключ и не откроет сообщения.
-
Даже если бы у вас было
100 000 суперкомпьютеров,
-
и каждый из них пробовал бы миллион
миллиардов ключей каждую секунду,
-
то на каждый вариант понадобилось бы
триллионы триллионов лет,
-
просто чтобы сломать одно
сообщение с 256-битным шифрованием.
-
Конечно, каждый год компьютерные чипы
становятся вдвое быстрее и вдвое меньше,
-
и если это темп экспоненциального
прогресса продолжится,
-
задачи, невозможные сегодня,
будут решаться
-
всего за несколько сотен лет в будущем,
-
и 256 бит станет недостаточно
для безопасности.
-
Нам уже пришлось увеличить стандартную длину
ключей, чтобы не отставать от скорости компьютеров.
-
Хорошая новость в том,
-
что использование длинного ключа
не слишком усложняет шифрование,
-
но при этом экспоненциально увеличивает
количество вариантов для взлома шифра.
-
Если отправитель и получатель
используют один и тот же ключ
-
для кодирования и декодирования сообщения,
-
это называется "симметричное шифрование".
-
В этом случае, как с шифром Цезаря, секретный ключ
-
должен быть заранее согласован двумя лицами.
-
Это удобно для людей,
-
но Интернет — это открытая и общедоступная
среда, поэтому здесь невозможно организовать
-
"тайную встречу" двух компьютеров,
-
на которой они договорятся о секретном ключе.
-
Вместо этого компьютеры
используют асимметричные ключи:
-
открытый ключ можно дать кому угодно,
а вот частный ключ никому не раскрывается.
-
Открытый ключ используется
для шифрования данных,
-
и любой может зашифровать им сообщение,
-
но секрет может расшифровать только
компьютер с доступом к частному ключа.
-
Это делается математически,
но сейчас мы не будем это обсуждать.
-
Просто представьте, что у вас есть
личный почтовый ящик,
-
куда каждый может класть письма,
но для этого им нужен ключ.
-
Вы можете сделать несколько копий ключа
-
и передать их своим друзьям или даже
просто сделать ключ общедоступным.
-
Ваш друг или даже незнакомец может
воспользоваться открытым ключом,
-
чтобы положить письмо в ваш ящик.
-
Но только вы можете
открыть ящик своим частным
-
ключом и получить доступ
к секретным сообщениям.
-
Вы также можете отправить
защищенное сообщение
-
своему другу, воспользовавшись
открытым ключом от его ящика.
-
Так мы обмениваемся
защищенными сообщениями,
-
не договариваясь о частном ключе.
-
Криптография публичным ключом
-
является основой всех защищенных сообщений
-
в открытом интернете,
-
включая протоколы безопасности,
-
известные как SSL и TLS,
-
которые защищают нас
при просмотре веб-страниц.
-
Ваш компьютер использует их,
-
когда вы видите замочек или
буквы "https" в адресной строке браузера.
-
Это означает, что ваш компьютер использует
шифрование открытым ключом
-
для безопасного обмена данными с сайтом.
-
Все больше людей пользуется интернетом,
-
поэтому через него передается
-
все больше и больше личных данных,
-
и необходимость в безопасности
этих данных становится еще важнее.
-
А поскольку компьютеры
становятся все быстрее,
-
нам придется разработать новые
способы шифрования,
-
которые будут слишком сложны
для взлома компьютером.
-
Это моя задача, и она постоянно меняется.