Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
21 Май 2024
10 мин
110

Криптография: всё, что вам нужно знать

Протоколы известны лучше, чем алгоритмы. Их названия можно встретить во время работы в интернете.

Основы криптографии

Криптография — это наука о шифрах. Шифры защищают информацию от воровства, незаконного доступа или изменения.

Криптография — старая наука. Само ее название — это древнегреческое слово «тайнопись». А самое старое свидетельство применения шифра относится примерно к 4000 году до нашей эры.

Криптография всегда быстро адаптировалась к новым открытиям математики и лингвистики. Сейчас она тесно связана с новыми каналами передачи информации — интернетом, беспроводными и сотовыми сетями.

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

Шифрование — это процесс превращения информации в зашифрованный текст. Чтобы прочесть эту информацию, нужно иметь правильный шифр.

Древние шифры были простыми. Например, древнесемитский шифр Атбаш: в нём буквы заменялись на противоположные в алфавите. А Цезарь каждую букву текста заменял на отстающую от нее на определенное количество символов букву в алфавите.

Алгоритмы и протоколы

Современное шифрование использует алгоритмы и протоколы.

Алгоритм в шифровании — это инструкция, по которой компьютер шифрует и расшифровывает информацию.

Несколько алгоритмов могут работать вместе. Их объединение называют протоколом.

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

Протоколы известны лучше, чем алгоритмы. Их названия можно встретить во время работы в интернете.

Протокол Описание Когда появился
TCP Один из первых протоколов, который передает данные веб-страниц в 1970-х гг.
HTTP Основной протокол, который передает данные веб-страниц в 1989–1991 гг.
HTTPS Более надежная версия HTTP в 1994–1995 гг.
UDP Передает данные без прямого соединения между отправителем и получателем в 1980 г.
IP Показывает, куда отправлять данные по сути в 1970-х гг.
SMTP Отправляет электронные письма в 1982 г.
FTP Передает файлы между компьютерами в 1971 г.
SSL/TLS Обеспечивает защищенные соединения, которые использует HTTPS в 1990-х гг.
DNS Преобразует доменные имена в IP-адреса в 1983–1984 гг.
DHCP Автоматически назначает IP-адреса в сети в 1993–1997 гг.

Разновидности методов криптографии

Криптографические алгоритмы

Современные шифры стали сложнее, но их принцип не поменялся.

🔴 Исходная информация превращается в набор непонятных символов.
🔴 Для ее расшифровки нужны ключи.

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

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

Единственное отличие от древности — ключи не имеют физической формы и передаются современными методами коммуникации. Они отправляются по специальным защищенным каналам связи.

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

Симметричная криптография и ее алгоритмы

Есть много разных алгоритмов и протоколов. Основных два: симметричные и асимметричные.

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

Например:

🟢 DES (Data Encryption Standard) — один из первых алгоритмов. Его приняло правительство США в 1977 году. Он шифрует данные объемом в 64 бит и использует при этом 56-битный ключ.

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

🟢 AES (Advanced Encryption Standard) — самый популярный алгоритм симметричного шифрования современности. Он использует ключи разной битовой длины: 128, 192, 256 бит.

Пришел на замену старому стандарту DES и используется в самых разных приложениях и системах безопасности.

Асимметричная криптография и ее алгоритмы

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

Например:

🟢 RSA (Rivest, Shamir, Adleman) — старый алгоритм, разработанный в 1977 году. Как и все асимметричные алгоритмы, RSA использует два ключа.. В основе этого алгоритма — трудность разделения больших чисел на простые множители.

У RSA есть большой недостаток. С течением времени ему требуются всё более длинные ключи. Сейчас алгоритм считается слишком медленным. Поэтому его используют только для шифрования небольших данных или передачи секретных ключей.

🟢 ECC (Elliptic Curve Cryptography) — один из последних и наиболее современных асимметричных алгоритмов. Он использует эллиптические кривые для создания ключей. По сравнению с RSA он безопаснее, а его ключ — меньше.

Разработчики и специалисты по безопасности из-за малого размера ключа используют его в мобильных устройствах и маломощных компьютерах.

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

Хранение закрытых ключей

Закрытые, или приватные ключи нужно беречь от злоумышленников. Поэтому для них придуманы особые условия хранения.

⚫ На физических устройствах. Ключи могут храниться на USB-токенах или смарт-картах.
⚫ В защищенных хранилищах. Например — TPM (Trusted Platform Module) или HSM (Hardware Security Module).
⚫ С помощью программного обеспечения. Ключи могут быть сохранены в файлы или базы данных, которые тоже зашифрованы.

Для безопасного обмена ключами есть специальные протоколы и алгоритмы. Самый известный из них — Diffie-Hellman. Этот метод позволяет двум сторонам согласовать общий секретный ключ по незащищенному каналу.

Разработчики редко пишут собственное шифрование. Обычно они используют для этого готовые криптографические библиотеки. На курсах Skypro «Java-разработчик» и «Python-разработчик» эксперты учат не только писать код, но и подключать готовые библиотеки и модули для работы и развертывания проектов.

Где применяется криптография

Почти во всех сферах современной жизни.

🔵 Защита личных и корпоративных данных.
🔵 Электронные платежи, банковские и финансовые операции.
🔵 Электронное голосование.
🔵 Защита интеллектуальной собственности.
🔵 Проверка целостности данных.
🔵 Криптовалюты.

О некоторых — чуть подробнее.

Сквозное шифрование (end-to-end encryption)

Сквозное шифрование (end-to-end encryption, E2EE) — это метод защиты данных. Информация шифруется на устройстве отправителя и расшифровывается только на устройстве получателя. Никто, включая провайдера услуги, не может получить доступ к содержанию сообщений или данных.

Сквозное шифрование применяется в различных мессенджерах: WhatsApp, Signal, Telegram и Google Messages.

Криптография в электронной коммерции

Коммерческие предприятия должны защищать платежные данные клиентов. Например:

🔵 Номера кредитных и дебетовых карт.
🔵 Сроки действия карт.
🔵 Коды безопасности карт (CVV/CVC): короткие числовые коды, которые указывают на обратной стороне карт.
🔵 Информация о банковских счетах.
🔵 Адреса и другие персональные данные: используются вместе с платежной информацией для верификации и обработки платежей.
🔵 ПИН-коды и пароли.
🔵 История транзакций.

Коммерческие предприятия работают по протоколам SSL/TLS. Они шифруют данные о клиенте, которые передаются по сети при совершении онлайн-покупок.

Хеширование

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

Особенность хеширования в том, что расшифровать и вернуть исходные данные нельзя. Это свойство хеша известно как «односторонняя функция».

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

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

С помощью хеш-функций сайты могут безопасно хранить пароли.

🔴 Пользователь устанавливает пароль.
🔴 Система хранит его в захешированном виде. Ни сама система, ни злоумышленники, получившие к ней доступ, не могут восстановить исходный пароль по хешу.
🔴 Когда пользователь входит на сайт, он вводит пароль, который затем заново хеширует система.
🔴 Два хеша сравниваются — если они совпадают, то система авторизует пользователя.

Криптография в блокчейне и криптовалютах

Блокчейн — это общее название технологии, которая безопасно хранит и передает данные. Называется она так, потому что основана на создании блоков.

Блок — это кусочек кода, который хранит данные. Несколько блоков объединяются в цепочку (chain). Каждый блок содержит хеш предыдущего блока.

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

Все криптовалюты — BitCoin, Ethereum, Litecoin, Monero и другие — используют технологию блокчейн.

Стандарты криптографии

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

Регулирование криптографии на государственном уровне

🟢 Разрабатывать и эксплуатировать криптографические системы без лицензии в России запрещено.

Это положение содержится в законе № 149-ФЗ «Об информации, информационных технологиях и о защите информации». А закон № 126-ФЗ «О связи» говорит, что использовать шифрование в сетях связи общего пользования также нельзя без разрешения.

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

Приказ ФСТЭК России № 17 — основной документ, который дает правила и порядок лицензирования деятельности по предоставлению услуг в области шифрования информации. Полный его текст здесь.

Лицензию, позволяющую заниматься криптографией, выдает ФСБ. Все этапы — от разработки шифровальной системы до ее реализации и эксплуатации — регулируются ПКЗ-2005. Это положение о разработке и эксплуатации шифровальных систем, созданное ФСБ.

🟢 Все организации, которые работают с личными данными граждан, должны защищать их с помощью криптографии.

Это положение установлено законом № 149-ФЗ «О персональных данных»: организации должны принимать все возможные меры для защиты персональных данных от неправомерного доступа. Полный текст здесь.

К таким организациям относятся, например, операторы связи и медучреждения.

Защита криптографии в будущем

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

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

Квантовая криптография

Квантовая криптография — это шифрование на принципах квантовой механики.

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

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

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

Постквантовая криптография

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

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

Ведут работы над следующими методами:

🟢 Решеточная криптография. Она использует специальные математические сетки, называемые решетками. Такие задачи даже квантовый компьютер решает с трудом.

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

🟢 Мультивариантная криптография. Зависит от нелинейных уравнений с несколькими переменными, которые тяжело решить любому компьютеру, в том числе квантовому.

🟢 Хеш-базированная криптография. Несмотря на давность изобретения, хеш-функции останутся актуальны и в условиях существования квантовых компьютеров. К 2024 году нет свидетельств того, что квантовые компьютеры способны взламывать хеш-функции.

Главное о криптографии

🟢 Криптография — это раздел науки о защите информации с помощью шифров.

🟢 Шифрование превращает данные и файлы в защищенный код. Расшифровать его без специального ключа нельзя.

🟢 Современное шифрование опирается на сложные алгоритмы и протоколы. Протоколы определяют, как правильно передавать зашифрованные данные. Алгоритмы — выполняют само шифрование.

🟢 Основные типы шифрования — это симметричное и асимметричное. Симметричное использует один ключ для шифрования и расшифровки данных. Асимметричное — два ключа: публичный и приватный. Утечка публичного ключа ничем не грозит. А вот приватные ключи хранить нужно в защищенных хранилищах.

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

🟢 Чтобы убедиться, что данные никто не изменил, используется хеширование. Хеширование — это необратимый процесс превращения данных в битовую строку. Но если хешировать те же самые данные повторно — вы получите тот же самый хеш. Поэтому пароли хранятся в хешированном виде и при вводе пользователем пароля хешируются заново и сверяются.

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

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

Добавить комментарий