ProgKids

Как работают системы шифрования?

Мы не боимся вписывать данные своей карточки в онлайн-магазине и делиться с секретами в электронной почте, потому что знаем — вся информация в Интернете шифруется. Но знаете ли вы, что это значит на самом деле? Какие технологии защищают ваши данные от чужих глаз и почему говорят, что суперкомпьютеры положат конец нынешним безоблачным дням? В нашей статье мы расскажем, как работает шифрование.

Что такое шифрование?

Люди пытаются защитить письменную информацию с тех самых времен, как собственно научились писать. Древние греки наматывали пергамент на специальные цилиндры, так что прочитать письмо можно было только с помощью такого же приспособления. Цезарю приписывают использование первого шифра, построенного примерно по той же технологии, что и сегодня — император подставлял вместо каждой буквы в слове другую, сдвигаясь на несколько позиций в алфавите. Чтобы понять текст, нужно было знать величину этого сдвига — сегодня мы называем это ключом шифра.


Простая замена буквы на другую дает очень слабую защиту текста. Шерлок Холмс показывает, как легко взломать такой шифр, в рассказе «Танцующие человечки». Современные системы применяют сложные математические функции, превращая данные в бессмысленный набор символов, в котором невозможно узнать исходные материалы. Таким образом защищаются и текстовые данные, и аудио (например, телефонные разговоры), и видео. Чтобы вернуть их в первоначальный вид, получатель сообщения должен проделать обратную работу — прогнать полученное содержимое через ту же функцию, применив секретный ингредиент, ключ.


Таким образом, главный вопрос шифрования — как передать получателю ключ? Это должен быть такой способ, который исключает возможность перехвата, иначе какой смысл вообще защищать данные. Здесь и начинается самое интересное.

Симметричное и асимметричное шифрование

Самый простой способ — это устроить личную встречу и вместе придумать ключ, который будет использоваться в дальнейшей переписке. Если обе стороны используют одинаковый ключ, такое шифрование называется симметричным. У такой технологии есть один большой минус: если злоумышленник узнает ключ одного из участников переписки, он сможет расшифровать данные и других участников.


Чтобы защититься от такой неприятной ситуации, инженеры разработали технологию асимметричного шифрования. Она предполагает, что у каждого участника есть по два ключа — публичный и приватный. Первый используется, чтобы зашифровать данные, второй — чтобы их прочитать.


Эта пара связана между собой хитрым математическим образом, чтобы по одному ключу было невозможно узнать второй. Чтобы объяснить суть, возьмем число 36 — его можно представить как 1х36, 2х18, 3х12, 4х9, 6х6. Вообразите, что ваш друг выбрал один множитель из этих десяти и предложил вам отгадать его. С первой попытки правильно сказать будет сложно. Но если ваш друг подскажет вам второй множитель из его пары, вы сразу точно поймете, что он держит в уме — ведь это уже не загадка, а задача на умножение.


Примерно так и работает асимметричное шифрование, только в этом случае используется не примитивное умножение, а сложные, очень сложные математические алгоритмы. Перед тем, как начать общение, участники обмениваются своими публичными ключами. В нашем примере это соответствует числу 36. Далее участник А шифрует свое сообщение публичным ключом участника Б. Когда тот получит послание, он сможет расшифровать его с помощью своего приватного ключа, того самого множителя, который известен только ему.


У асимметричного шифрования тоже есть свое слабое место — оно гораздо медленнее симметричного. Поэтому этот метод применяют для передачи небольших кусочков информации, например, симметричных ключей. Пока участникам переписки удается сохранить их от посторонних глаз, их данные остаются в безопасности.

Существуют ли невзламываемые шифры?

Чтобы посторонний человек мог прочитать сообщение, которое защитили асимметричным шифрованием, ему придется перебрать все возможные множители, проверяя, не превратился ли бессмысленный набор символов в исходное сообщение. Современные алгоритмы шифрования построены таким образом, чтобы на подбор нужной пары ушло невообразимое время — от тысячи до миллиона лет беспрерывной работы компьютера. Поэтому на самом деле любой шифр можно взломать — вопрос только в том, сколько вы готовы потратить времени.


Именно поэтому сегодняшние технологии шифрования могут уже в скорой перспективе оказаться абсолютно бесполезными. Создание квантового компьютера, которое неизбежно произойдет в ближайшие десятилетия, вызовет резкий скачок вычислительной мощности. В результате станет возможным в приемлемые сроки раскалывать нынешние шифры, а значит пользоваться ими будет нельзя. Впрочем, паниковать не стоит — новое время предложит новые алгоритмы.