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

Содержание
Вы, наверное, видели термин «шифрование», используемый в Интернете. Так что это? Возможно, это самая важная технология, которая у нас есть. От него зависит большинство мер цифровой безопасности, от безопасного просмотра сайтов до защиты электронной почты. Без шифрования у нас не было бы конфиденциальности.
Что такое шифрование?
Если вы записываете что-то важное, вы можете переживать, что кто-то другой это прочтет. Если вам нужно передать письмо другу, увеличивается риск того, что это сообщение прочитают не те люди. Шифрование изменяет состав сообщения или данных, так что только люди, которые знают, как вернуть его в исходную форму, могут его прочитать. Для других это покажется тарабарщиной или бессмысленным набором знаков и символов.
Скитале
С давних времен люди использовали разные методы, чтобы запретить кому-либо, кроме предполагаемого получателя, читать личные сообщения. Древние греки оборачивали полоску пергамента тугой спиралью вокруг деревянного стержня, называемого скитале. Они написали свое послание по всей длине жезла поверх завернутого пергамента.
В развернутом виде письмо на пергаменте не имело смысла. Посланник доставит пергамент получателю, который прочтет сообщение наедине, предварительно обернув его вокруг своим собственным скитейлом. Это форма транспозиционного шифра.
Это примитивный метод, но в нем есть элементы, которые вы найдете в современных системах шифрования. И отправитель, и получатель должны заранее знать, что такое схема шифрования и как ее использовать. И для этого им обоим нужны соответствующие механизмы.
Квадрат Полибия

Квадрат Полибия
Другой метод, используемый древними греками, — квадрат Полибия. Это была сетка букв 5 на 5 или 6 на 6. И письмо ссылались по его координатам, как в игре морской бой. Первая буква в первой строке была закодирована как «11», четвертая буква во второй строке была написана как «42» и так далее.
Конечно, есть много способов заполнить сетку буквами. Если вы не знаете расположение букв, расшифровать будет сложно. Это позволяет вам настроить схему с несколькими квадратами с разными макетами. Например, вы можете создать 7 квадратов и использовать разные квадраты для каждого дня недели. Схемы, использующие несколько алфавитов, называются полиалфавитными шифрами.
Квадрат Полибия — это форма кода. Код заменяет буквы другими символами, в данном примере — цифрами. Шифры заменяют буквы другими буквами.
Шифр Цезаря
Юлий Цезарь дал свое имя Шифру Цезаря. При этом используется смещение — или «поворот» — для выбора буквы на заданном расстоянии от буквы, которую вы шифруете. Если бы вы использовали смещение, равное двум, «A» было бы записано как «C», а «D» — как «F.» Получатель должен знать правильное смещение, чтобы использовать его для расшифровки сообщения, вычитая смещение из полученных писем.
Шифр Цезаря со смещением 13, известный как «вращение 13» или ROT13, обладает особым качеством. В стандартном английском алфавите 26 букв, и 13 букв делятся на 26 ровно пополам. С этим смещением, чтобы что-то расшифровать, вы можете снова подвергнуть это процессу шифрования. Двойное шифрование возвращает вас к исходному тексту.
Обычный: ABCDEFGHIJKLMNOPQRSTUVWXYZ ROT13: NOPQRSTUVWXYZABCDEFGHIJKLM
Если вы выберете буквы «GEEK» в верхнем алфавите и обратите внимание на совпадающие буквы в нижнем алфавите, вы получите «TRRX». Если вы сделаете это еще раз с «TRRX» в верхнем алфавите, вы получите буквы «GEEK» из нижнего алфавита.
С точки зрения программирования это упрощает дело, потому что вам нужно всего лишь написать процедуру шифрования. Вот почему написание реализации ROT13 — обычное упражнение для людей, обучающихся программированию. ROT13 также часто называют примером очень плохого низкокачественного шифрования.
Итак, что такое шифрование?
Все примеры, которые мы здесь рассмотрели, легко взломать, но они действительно иллюстрируют общий элемент, который является общим для всех них и для всех форм шифрования. Существует набор правил, которым нужно следовать для преобразования ваших исходных данных, называемых «открытым текстом», в зашифрованную версию, известную как зашифрованный текст. Этот набор правил представляет собой алгоритм. Вот что такое шифрование. Это алгоритмы конфиденциальности.
Как работает шифрование?
Как и человек в Древней Греции, человек в эпоху цифровых технологий, желающий хранить или отправлять личные данные, сталкивается с проблемами. Что вы можете сделать, чтобы предотвратить несанкционированный доступ к данным?
Все старые системы можно взломать, зная систему шифрования. Используйте стержень того же диаметра, и сообщение scytale станет читаемым. Шифр Цезаря можно взломать, попробовав разные смещения в первой части сообщения. У вас есть только 25 попыток, что подобрать дешифровку.
Квадраты Полибия представляют собой большую проблему, потому что расположение букв внутри квадрата непредсказуемо. Если вы знаете, как устроен квадрат, это даже не проблема. Если вы не имеете представления о расположении квадрата, вы можете попытаться расшифровать сообщение, изучив сам зашифрованный текст. Это называется криптоанализом.
С помощью простого шифра вы можете использовать такие вспомогательные средства, как таблицы частотности букв, чтобы определить, какая буква зашифрованного текста представляет какую букву открытого текста. Безопасная схема шифрования должна быть безопасной независимо от того, кто знает механизм этой схемы, а зашифрованный текст должен выдерживать атаки криптоанализа.
Не символы, а биты
Надежные цифровые схемы не работают с буквами и символами по одному, как это делают последовательные шифры. Они обрабатывают данные по частям и называются блочными шифрами. Доступно множество схем блочного шифрования.
Advanced Encryption Standard (AES) является официальным стандартом шифрования правительства США. В разных схемах шифрования используются разные алгоритмы и разная длина блоков, а также используются разные комбинации математических преобразований.
Все это звучит очень хорошо, но как предотвратить использование неавторизованным лицом той же схемы шифрования для расшифровки наших зашифрованных данных?
Хеш-строки
Сначала рассмотрим особый случай. Можно зашифровать данные с помощью одностороннего преобразования. Это полная противоположность ROT13, потому что полученный зашифрованный текст не может быть преобразован в открытый текст. Точнее, его невозможно расшифровать в практические сроки. Этот тип шифрования используется в функциях хеширования, где строка открытого текста хешируется в строку зашифрованного текста, называемую хеш-строкой или строкой хеш-кода. Все строки хеширования имеют одинаковую длину.
Чем это полезно? Что ж, безопасный веб-сайт не будет хранить ваш пароль в виде открытого текста. Ваш пароль хешируется, и хеш-строка сохраняется. Когда вы в следующий раз войдете в систему и введете свой пароль, он будет хеширован, и хеш-строка сравнивается с хеш-строкой, которая хранится в данных вашей учетной записи. Если они совпадают, вы можете войти. Если вы введете неправильный пароль, две строки хеша не будут совпадать, и вы не сможете войти.
Это позволяет веб-сайту использовать аутентификацию без необходимости хранить пароли в открытой форме. Если они будут взломаны, ни один из паролей не будет скомпрометирован. Методы хеширования могут также добавлять уникальные случайные данные, называемые «salt», к паролям перед их хешированием. Это означает, что все хэши уникальны, даже если два или более пользователей выбрали один и тот же пароль.
Зашифрованные жесткие диски
Чтобы предотвратить дешифрование данных неавторизованными людьми, используется ключ, который определяет, кто их зашифровал и кто может расшифровать. Ключ — это длинная последовательность байтов, созданная сложным алгоритмом. Обычно они имеют размер от 128 до 2048 байтов и более. Ключ используется алгоритмом шифрования при шифровании открытого текста. Размер ключа не зависит от размера блока.
Для защиты локально хранимых данных можно зашифровать все жесткие диски. Шифрование привязано к логину пользователя, и ключ создается и применяется автоматически. Пользователь не имеет прямого взаимодействия с ключом, и ключ никогда не нужно отправлять кому-либо еще.
Поскольку ключ привязан к логину пользователя, извлечение жесткого диска из компьютера и подключение его к другому компьютеру не позволит получить доступ к данным. Этот тип защиты защищает статические или «неподвижные» данные.
Если ваши данные должны быть переданы, вам необходимо подумать о том, как вы защитите свои данные «при передаче».
Безопасные сайты
Когда вы подключаетесь к веб-сайту и видите символ замка в адресной строке, вы знаете, что подключены к безопасному веб-сайту, верно? Ну вроде как. На самом деле это означает, что соединение между вашим компьютером и веб-сайтом зашифровано с использованием шифрования SSL/TSL.
Это хорошо, но не проверяет безопасность остальной части веб-сайта. Веб-сайт может хранить пароли в виде открытого текста и использовать пароль администратора по умолчанию в базе данных. Но, по крайней мере, если вы видите замок, значит, ваше общение с сайтом зашифровано.
Это шифрование возможно, потому что ваш браузер и веб-сайт используют одну и ту же схему шифрования с несколькими ключами. В начале сеанса подключения ваш браузер и веб-сайт обмениваются открытыми ключами . Открытый ключ может расшифровать что-то, что было зашифровано с помощью закрытого ключа.
Ваш браузер и веб-сайт обмениваются своими открытыми ключами, а затем шифруют свои личные ключи. Поскольку у каждого конца соединения есть открытый ключ другого конца, каждый конец может расшифровать информацию, которую они получают с другого конца. Закрытые ключи никогда не открываются.
Выпуск открытого ключа безопасен. Открытый ключ нельзя использовать для мошеннического шифрования данных. Таким образом, хотя вы получаете копию открытого ключа веб-сайта, вы не можете выдавать себя за настоящий веб-сайт, потому что у вас нет закрытого ключа. Это поднимает вопрос о подлинности. Откуда вы знаете, что веб-сайт является подлинным владельцем пары открытого и закрытого ключей, а не сайтом-подражателем, который каким-то образом украл оба ключа с настоящего веб-сайта?
Сертификаты используются для проверки подлинности веб-сайтов. Они выдаются удостоверяющими центрами после подтверждения личности заявителя. Веб-сайт отправляет сертификат как часть рукопожатия в начале сеанса подключения, чтобы веб-браузер мог проверить сертификат.
Он делает это, связываясь с центром сертификации и расшифровывая некоторую информацию о сертификате. Для этого нужны еще ключи. Ваш браузер имеет открытые ключи основных центров сертификации как часть установочного пакета. И задействовано еще больше ключей. Помимо обмена открытыми ключами, ваш браузер и веб-сайт создают уникальные сеансовые ключи для дальнейшей защиты своих коммуникаций.
Как только ваш браузер проверит подлинность сайта и надежность шифрования, он помещает замок в адресную строку.
Безопасная электронная почта
В шифровании снова и снова возникают концепции открытых и закрытых ключей. Распространенный метод защиты электронной почты при передаче использует пары открытых и закрытых ключей. Открытыми ключами можно безопасно обмениваться, закрытые ключи не передаются. Сообщения шифруются с использованием закрытого ключа отправителя. Получатель может использовать открытый ключ отправителя, чтобы расшифровать и прочитать его. Они могут использовать свой собственный закрытый ключ для шифрования ответа.
OpenPGP — это хорошо известная схема шифрования, которая следует этой модели с некоторыми особенностями.
Почтовый клиент отправителя генерирует случайный ключ и используется для шифрования сообщения электронной почты. Затем случайный ключ шифруется открытым ключом получателя. Зашифрованное сообщение и зашифрованный случайный ключ отправляются получателю. Программа электронной почты получателя использует их закрытый ключ для расшифровки случайного ключа, который затем используется для расшифровки сообщения.
Цель дополнительного шага — обеспечить безопасную отправку электронного письма нескольким получателям. Вашему почтовому клиенту не нужно шифровать всю электронную почту отдельно для каждого получателя, только случайный ключ.
Конечно, перед безопасными почтовыми системами встает вопрос подлинности. Вы должны доверять отправленному вам открытому ключу. Ключи привязаны к адресам электронной почты. Отправка открытого ключа с адреса электронной почты, с которым вы будете разговаривать, — это хороший первый шаг. Большинство почтовых клиентов могут отображать адрес электронной почты, связанный с открытым ключом.
Другой метод проверки подлинности открытого ключа — получить его из репозитория. Открытые ключи, загруженные в репозитории, проверяются репозиторием, прежде чем они станут общедоступными.
Шифрование лежит в основе нашей цифровой жизни
По крайней мере, шифрование лежит в основе нашей цифровой жизни, если мы делаем это правильно. Избегайте незащищенных удаленных подключений любого типа (будь то удаленная работа или покупка в Интернете), используйте почтовые клиенты, способные шифровать личные сообщения, и используйте приложения для обмена сообщениями со сквозным шифрованием.
Lbhe cevinpl vf vzcbegnag, hfr gur nccebcevngr gbbyf gb fnsrthneq vg. Как мог бы сказать Цезарь.