Когда вы слышите OTP, первое, что приходит на ум, скорее всего, механизм аутентификации, который использует временный, одноразовый код для проверки личности пользователя как часть двухфакторного механизма безопасности. Техника шифрования, впервые описанная Фрэнком Миллером в 1882 году, остаётся единственной системой шифрования, математически доказавшей свою неразрывность. Одноразовые пады Процесс включает в себя сочетание простого текстового сообщения с секретным ключом, известным как «pad».Каждый символ простого текста сочетается с его соответствующим символом из подкладки с помощью модульного добавления. Для расшифровки приемник использует идентичную копию секретной подкладки, чтобы обратить вспять процесс.Поскольку подкладка является случайной и используется только один раз, полученный шифровальный текст появляется как полностью случайная последовательность символов. Это отсутствие статистической связи с первоначальным сообщением делает криптоанализ невозможным, если выполнены следующие условия: Истинная случайность: Секрет должен быть подлинным и непредсказуемым случайностью. Совпадение длины: Секрет должен быть точно такой же длины, как сообщение простого текста, которое он шифрует. Строгая конфиденциальность: Секрет должен быть сохранен абсолютно конфиденциальным как отправляющими, так и получающими сторонами. Невозможность повторного использования: Секрет никогда, ни при каких обстоятельствах, не должен быть повторно использован для другого сообщения. Для повышения безопасности физические OTP иногда печатались на горючих листах, позволяя им легко уничтожаться сразу после использования. Как это работает Чтобы иллюстрировать концепцию, рассмотрим практический сценарий: секретному агенту IDF нужно тайно передать имя двойного агента, «Клауса», своему манипулятору. Как правило, каждой букве присваивается числовое значение, как указано в таблице ниже: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Шифрование включает в себя простой процесс: Конверсия: простой текст (например, «Klaus») преобразуется в его соответствующее числовое значение. Модульное добавление: Модульное добавление (модуль 26) выполняется на обеих численных значениях. Окончательная конверсия: полученное число конвертируется обратно в алфавитный термин для получения шифрованного текста (шифрованное сообщение). Давайте в нее войдем! Шифрование Клаус , Тгги Message: Secret: Конвертируя сообщение в его соответствующее числовое значение, мы имеем; K L A U S 10 11 0 20 18 10 11 0 20 18 Конвертируя секрет в его соответствующее числовое значение, мы имеем; T P G H Y 19 15 6 7 24 19 15 6 7 24 Сообщение + Секрет Message 10 11 0 20 18 Secret 19 15 6 7 24 Message + Secret 29 26 6 27 42 Секрет 19 15 6 7 24 Message + Secret 29 26 6 27 42 Для операции MOD, если число больше 25, 26 вычитается из числа и получается результат. MOD 26 Послания + Секрет; дайте нам 3 0 6 1 16 Преобразование результата MOD 26 в шифровальный текст: 3 0 6 1 16 D A G B Q D A G B Q Цифровой текст: DAGBQ затем передается манипулятору. манипулятор использует соответствующий ключ и обращает вспять исходный процесс для восстановления простого текста. Дешифровка Теперь манипулятор владеет шифровым текстом И тайна Первым шагом будет преобразование как шифрового текста, так и секрета в их соответствующие численные значения. DAGBQ TPGHY D A G B Q 3 0 6 1 16 3 0 6 1 16 T P G H Y 19 15 6 7 24 19 15 6 7 24 Цифровой текст - секрет Ciphertext 3 0 6 1 16 Secret 19 15 6 7 24 Ciphertext - Secret -16 -15 0 -6 -8 Секрет 19 15 6 7 24 Ciphertext - Secret -16 -15 0 -6 -8 Подобно операции MOD в фазе шифрования, когда вычитание дает отрицательное число, к нему добавляется 26. МОД 26 Цифрового текста - секретные результаты в: 10 11 0 20 18 Конвертируя результат в алфавиты с использованием первоначальной таблицы, у нас есть; 10 11 0 20 18 K L A U S K L A U S Затем они приступают к уничтожению секрета, чтобы предотвратить попадание информации в неправильные руки или повторное использование ключей. криптоанализ Перехват зашифрованного сообщения «DAGBQ» не поставит под угрозу оригинальное содержимое без правильного ключа расшифровки. Ciphertext D (3) A (0) G (6) B (1) Q (16) INCORRECT SECRET W (22) A (0) L (11) N (13) O (14) Ciphertext - Incorrect Secret -19 0 -5 -12 2 MOD 26 7 0 21 14 2 Result H A V O C Неправильный секрет В (22) А 0 0 В (11) Н (13) О (14) Цифровой текст - Неправильная тайна -19 0 -5 -12 2 Напротив 26 7 0 21 14 2 Result H A V O C Полученный простой текст, HAVOC, является, безусловно, правдоподобным словом. однако, любое другое слово с пятью буквами также возможно, так как это может быть достигнуто путем тестирования каждой комбинации символов. Повторное использование криптографического ключа позволяет перехватчику перекрестить ссылки и расшифровать шифровые тексты, чтобы найти правильный результат. Практические вызовы Хотя теоретически идеально, широко распространенное использование одноразовых прокладок (OTP) ограничено несколькими практическими вызовами: Распределение ключей: Безопасное распространение ключа до тех пор, пока само сообщение является серьезной логистической проблемой.Если вы можете безопасно передать ключ такого размера, вы также можете отправить сообщение через тот же безопасный канал. Управление ключами: генерирование, управление и безопасное уничтожение огромного количества действительно случайного ключевого материала трудно на практике. Верификация: Базовая одноразовая прокладка обеспечивает конфиденциальность, но без целостности или проверки, что означает, что злоумышленник может изменить шифрующий текст в транзите без ведома получателя. Заключение Несмотря на значительные практические вызовы, предложение идеальной секретности все еще делает OTP очень жизнеспособным инструментом для безопасного общения. OTP также отлично подходят для обучения криптографии и ценны в сценариях, когда доступ к компьютеру недоступен. Я надеюсь, что это было информативным.Встретимся в следующем!