Как работает симметричное шифрование и почему AES заменил DES

6

Это по сути секретный рукопожатие для машин.

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

Вам нужно точно знать, какие устройства общаются друг с другом, прежде чем вы сможете установить этот ключ на обоих концах. Это заранее распределенный секрет. Подумайте об этом как о детской игре, где вы договорились, что «A» становится «C», а «B» становится «D». Если у вашего друга есть тот же самый лист с правилами («Сдвиг на 2»), он сможет прочитать вашу записку. Если же посторонний перехватит пакет, он увидит лишь бессмыслицу.

Компьютеры делают это в огромных масштабах, но «коды» отнюдь не так милы, как сдвиг букв в алфавите.

Первым крупным алгоритмом, ставшим стандартом в США, был Стандарт шифрования данных (DES). Он появился в 1970-х годах. Длина ключа? Всего 56 бит. В то время это казалось безопасным. Сегодня это вызывает смех.

Почему? Потому что закон Мура не заботится о вашем шифровании.

56-битный ключ предлагает 72 квадриллиона возможных комбинаций. Это звучит как много, пока вы не поймете, что современное оборудование может перебирать эти комбинации при атаках грубой силой за долю времени, необходимого для заваривания кофе. DES фактически взломан. Он был заменен на Расширенный стандарт шифрования (AES), который, вероятно, вы используете прямо сейчас.

AES использует 128-, 192- или 256-битные ключи. Математика становится астрономической. В одном 128-битном ключе содержится больше комбинаций, чем песчинок на всех пляжах Земли. Большинство экспертов согласны с тем, что AES будет надежным еще очень и очень долго. Но дело не только в числах. Дело в архитектуре.

Посмотрите, как работает старая замена. Юлий Цезарь использовал похожий трюк. Он сдвигал не на две позиции. Он сдвигал на три. Чтобы написать «CROSSING THE RUBICON», он бы набросал «FURVV LQJWK HUXEL FRQ». Он также разбивал слова на равные группы, чтобы скрыть их длину. Для своего времени это было остроумно. Но это не симметричное шифрование в современном смысле. Это просто шифр замены. И его тривиально взломать с помощью частотного анализа.

Симметричное шифрование отличается. Это не просто замена букв. Это математический процесс, который перемешивает весь пакет данных. Ключ определяет перестановку. Без этого конкретного ключа данные остаются запертыми.

Но есть подвох.

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

Поэтому вы используете оба. Асимметричное для обмена симметричным ключом. Симметричное для отправки самих данных.

Это гибридный подход. Эффективный. Безопасный. Стандартный.

Но не неуязвимый.

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