Дешифрование, декодирование и расшифрование — в чём разница?
В криптографии есть много специфических терминов, с которыми неспециалисты обращаются слишком вольно. Чаще всего путаница возникает между, казалось бы, похожими понятиями: расшифрование, декодирование и дешифрование. Ниже мы рассмотрим разницу между ними.
Что такое кодирование?
Кодирование — это представление информации в определённом формате, удобном для автоматической обработки. Наиболее широко кодирование применяется в сфере ИТ. Вот несколько примеров:
▪️ На ПК вы можете набирать отсутствующие на клавиатуре символы, указывая их числовой код. Для этого включите {NumLock}, нажмите левую клавишу {ALT} и, удерживая её, наберите соответствующие цифры на числовой панели. Например, в кодировке Windows-1251 (ANSI) многоточию соответствует код 0133, знаку промилле — 0137, а символу маркера списка (bullet) — 0149. Полную таблицу см. здесь.
▪️ На веб-страницах можно вставлять разные символы как HTML-код. Так, последовательность «±» соответствует знаку «±», код «∞» означает знак бесконечности, а « » — неразрывный пробел. Список всех HTML-кодов смотри здесь.
▪️ Браузер кодирует кириллические символы в веб-запросах как пары байт, записанные в шестнадцатеричном представлении после знака «%». В кодировке UTF-8 слово «Криптонит» в адресной строке будет выглядеть так: %D0%9A%D1%80%D0%B8%D0%BF%D1%82%D0%BE%D0%BD%D0%B8%D1%82
▪️ В электронных письмах используется формат Base64. Он позволяет записать любые данные как последовательность базовых символов, которые присутствуют в любой кодовой странице. Например, файл PDF в формате Base64 всегда начинается с заголовка JVBERi0. Вы можете легко закодировать и декодировать любые данные по алгоритму Base64 здесь.
Все мы немножко роботы, поскольку используем кодирование в повседневной жизни:
— дорожные знаки и сигналы светофора, кодирующие правила дорожного движения, понятны сквозь любые лингвистические барьеры;
— международные символы опасности также понятны всем и помогают сохранить тысячи жизней;
— условные обозначения команд помогают разобраться с новым прибором без инструкции;
— шрифт Брайля позволяет читать на ощупь, так как символы в нём представлены как группы рельефных точек;
— положение фигур на шахматной доске обозначается латинскими буквами и цифрами, чтобы игрокам было проще записывать и анализировать ход партии.
Что такое шифрование?
Процедуры кодирования и декодирования не обеспечивают секретность. Это просто способы преобразования данных, которые легко могут стать общеизвестными. Чтобы защитить данные от любопытных глаз, нужно использовать шифрование.
Хотя сам алгоритм шифрования обычно известен атакующей стороне, его знания недостаточно для того, чтобы прочитать зашифрованное сообщение.
В отличие от процедуры декодирования, при расшифровании данных требуется знать не только алгоритм их обратного преобразования, но и ключ — набор использованных при шифровании секретных параметров. Надёжные средства шифрования обеспечивают секретность именно за счёт сохранения в тайне ключа, но не алгоритма.
На практике кодирование часто предшествует шифрованию. Вместе эти процедуры преобразования данных обеспечивает надёжную работу компьютерных сетей, мобильной связи, мессенджеров, банковских приложений и множества цифровых сервисов, которыми мы пользуемся каждый день.
Что такое дешифрование?
Расшифрование иногда путают с дешифрованием. Отличие в том, что первое — легитимная процедура, быстро выполняемая с помощью известного ключа, а второе — попытка «взломать шифр», то есть восстановить без знания ключа открытый текст зашифрованного сообщения.
Процедура расшифрования может выполняться незаметно для пользователя. С ней регулярно сталкивается каждый из нас, разблокируя смартфон, или оплачивая покупки картой. Дешифрование — сложный процесс, требующий специальных познаний для анализа шифртекстов математическими и лингвистическими методами.
Во время Второй мировой войны немецкие войска использовали шифровальную машину «Энигма». Дешифрование созданных с её помощью секретных сообщений позволило силам антигитлеровской коалиции одержать целый ряд побед.
Дешифрование является одной из задач криптографического анализа. В рамках последнего также рассматривается более общая задача — восстановление ключа по шифртекстам. Решение данной задачи позволяет быстро прочитать все перехваченные сообщения, зашифрованные тем же ключом, по сути, сводя дешифрование к расшифрованию.
