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

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


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

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


Коса

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

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

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


Квадрат Полибия

Еще один метод, который использовали древние греки, - квадрат Полибия. Это была сетка из букв размером пять на пять или шесть на шесть. На букву ссылались по ее координатам, как в игре "линкоры". Первая буква в первом ряду кодировалась как "11", четвертая буква во втором ряду записывалась как "42", и так далее.

Реклама

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

Квадрат Полибия - это разновидность кода. Код заменяет буквы другими символами, в данном примере - цифрами. Шифры заменяют буквы другими буквами.


Шифр Цезаря

Юлий Цезарь дал свое имя шифру Цезаря. В нем используется смещение - или "поворот" - для выбора буквы на определенном расстоянии от зашифровываемой буквы. Если бы вы использовали смещение, равное двум, "A" было бы написано как "C", а "D" было бы написано как "F". Получатель должен знать правильное смещение, чтобы расшифровать сообщение, вычитая смещение из полученных букв.

Шифр Цезаря со смещением 13 - известный как "вращение 13" или ROT13 - обладает особым качеством. В стандартном английском алфавите 26 букв, и 13 делится на 26 ровно два раза. Благодаря этому смещению, чтобы расшифровать что-либо, можно повторить процесс шифрования. Шифрование дважды возвращает вас к исходному тексту.

Простой: ABCDEFGHIJKLMNOPQRSTUVWXYZROT13: NOPQRSTUVWXYZABCDEFGHIJKLM

Если вы выберете буквы "GEEK" в верхнем алфавите и отметите совпадающие буквы в нижнем алфавите, вы получите "TRRX". Если вы повторите это с "TRRX" в верхнем алфавите, то получите буквы "GEEK" из нижнего алфавита.

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

Вы можете попробовать сами с помощью этого онлайнового механизма ROT13. Попробуйте ввести "Alaska Nynfxn", а затем подставьте полученный результат обратно в качестве входного.


Так что же такое шифрование?

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

Это алгоритмы для обеспечения конфиденциальности.


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

Как и человек в Древней Греции, человек в цифровую эпоху, желающий хранить или пересылать частные данные, сталкивается с проблемами. Что можно сделать, чтобы предотвратить доступ к данным посторонних лиц? И что можно сделать, чтобы обеспечить их безопасность?

Все старые системы можно преодолеть, зная систему шифрования. Используйте стержень того же диаметра, и сообщение косы станет читаемым. Шифр Цезаря можно взломать, пробуя различные смещения первой части сообщения. У вас есть только 25 попыток, не больше.

RELATED Разрушил ли RSA немецкий математик на пенсии?

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

Реклама

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


Не символы, а биты

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

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

Существует множество схем блочного шифрования. Расширенный стандарт шифрования (AES) является официальным стандартом шифрования правительства США. Различные схемы шифрования используют разные алгоритмы и разную длину блоков, а также применяют различные комбинации математических преобразований.


Хэш-строки

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

Реклама

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

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


Зашифрованные жесткие диски

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

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

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

Реклама

Если ваши данные должны передаваться, вам необходимо продумать, как вы будете защищать их "в пути"


Защищенные веб-сайты

Когда вы подключаетесь к веб-сайту и видите в адресной строке символ замка, вы знаете, что подключены к защищенному веб-сайту, верно? Ну, вроде того. На самом деле это означает, что соединение между вашим компьютером и веб-сайтом зашифровано с помощью SSL/TSL-шифрования.

RELATED Как SSL-сертификаты обеспечивают безопасность веб-сайта?

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

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

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

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

Сертификаты используются для проверки подлинности сайтов. Они выдаются центрами сертификации после проверки личности заявителя. Веб-сайт отправляет сертификат как часть квитирования в начале сеанса связи, чтобы веб-браузер мог проверить сертификат.

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

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


Защита электронной почты

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

OpenPGP - известная схема шифрования, которая следует этой модели, но с некоторыми особенностями.

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

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

<

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

Реклама

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


Шифрование лежит в основе нашей цифровой жизни

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

Ваше имя: *
Ваш e-mail: *
Код: Кликните на изображение чтобы обновить код, если он неразборчив
Введите код: