Conversation

Несерьёзный Выдумщик

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

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

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

Как это работает

Официальные документы часто содержат в начале более чем стандартный текст. Например, перечисление регалий и ФИО тех, кому текст адресован. Порой настолько длинные и однообразные в повседневной переписке, что догадаться о них не представляет проблемы.

По этой причине, честный и полноценный ГСЧ необходим. Одно из наиболее простых объяснений:

  • для формирования первого шифруемого блока, от которого зависит шифрование остальных,
  • для дополнения исходного текста до размера блока в конце исходного текста

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

Эти случайные данные становятся частью передаваемого сообщения, но отбрасываются при расшифровывании.

Суть проблемы

Махинации с ГСЧ позволяют создавать иллюзию безопасного шифрования у пользователей криптографии. Раскрывая исходный код и показывая как именно работает программа, что никакие ключи нигде не сохраняет и никому не передаёт.

Каждая ОС по-своему решает вопрос сбора и накопления случайных данных, реализуя на свой лад источники энтропии. Один из примеров такой подсистемы хорошо известен и вошёл даже ядра #linux.

Как это решается?

Доверять можно лишь использованию аппаратного ГСЧ внутри USB Security Token или специальной PCI-платы вставляемой в компьютер. Вещь очень давно известная и начиналось ещё с ISA-плат.

Основное назначение тоже самое, что и у Security Boot — контроль доверенной загрузки компьютера. После включения плата перехватывает управление и проверяет содержимое файлов на заданных носителях данных (HDD, SSD, NVMe). Аппаратный ГСЧ является лишь дополнительной функциональностью у таких ПАК доверенной загрузки.

Для обывателя же достаточно и аппаратного генератора случайных чисел внутри USB Security Token.

#криптография #энтропия

0
0
0