Что такое шифрование данных
Шифрование данных — это способ перевода данных из открытого в зашифрованный вид с помощью специального математического алгоритма. Шифрование позволяет защитить данные от кражи или раскрытия, а пользователь получает доступ к ним при помощи ключа расшифровки. Шифрование считается методом криптографии наряду с цифровыми подписями и хеш-функциями, кодирующими длину сообщения.
Процесс шифрования должен включать три составляющих:
- объект — данные, которые шифруются. Это может быть текст, аудио, видео, картинки и иные файлы неограниченного размера;
- алгоритм — способ шифрования, который должен подчиняться определенной логике, например, подмены букв цифрами;
- ключ — строка символов, используемая в алгоритме шифрования для изменения данных, чтобы они выглядели случайными.
Например, когда Полина отправляет сообщение Марине со словом «Привет», алгоритм может заменить каждую букву той, которая располагается на две позже в алфавите. После шифрования сообщение будет выглядеть как «Сткджф». Если Марина знает, что ключ — это «2», она может расшифровать сообщение.
Обычно в шифровании используются более сложные алгоритмы, однако они в любом случае подчинены логике.
Зачем нужно шифрование данных
Пользователи сталкиваются с шифрованием данных ежедневно. Оно используется для защиты устройств, финансовых транзакций, обеспечения конфиденциальности сообщений и иных целей. Шифрование выступает обязательным требованием регуляторов в разных странах для организаций сфер здравоохранения, образования, финансов и розничной торговли.
Что обеспечивает шифрование:
- Конфиденциальность. Шифрование гарантирует, что никто не сможет прочитать сообщения или хранящиеся данные, кроме предполагаемого получателя или законного владельца. Это не позволяет злоумышленникам, рекламным сетям, интернет-провайдерам и даже правительствам перехватывать конфиденциальные данные.
- Безопасность. Шифрование помогает предотвратить утечку данных независимо от того, передаются ли они или хранятся на устройстве или в сервисе.
- Целостность данных. Шифрование помогает предотвратить повреждение информации, например, в ходе атак на пути ее передачи. Оно гарантирует, что получатель получит достоверные и полные данные.
- Соответствие законодательству. Шифрование гарантирует, что конкретный источник отправил данные, таким образом позволяя верифицировать его. По этой причине некоторые правительства требуют от компаний, которые обрабатывают пользовательские данные, хранить их в зашифрованном виде.
История шифрования данных
Способы шифрования информации начали разрабатывать несколько тысяч лет назад.
Первые примеры
Одно из первых применений криптографии обнаружили на стене гробницы времен Древнего Египта в виде нестандартных иероглифов, вырезанных в 1900 году до н.э.
В Месопотамии же использовали глиняные таблички с зашифрованными записями, которые содержали на тот момент секретные рецепты керамической глазури. Они датируются 1500 годом до н.э.
В 650 году до н.э. древние спартанцы использовали ранний транспозиционный шифр для смены порядка букв в военных сообщениях. Их размещали на кусках кожи, которые требовалось обернуть вокруг шестиугольного деревянного посоха, известного как скитал. Если он был правильного размера, то буквы образовывали связное сообщение. В 600–500 гг. до н.э. аналогичный шифр использовался и в записях на иврите.
В I веке до н.э. император Юлий Цезарь ввел шифр для римской армии. Он начал использовать подмену букв с перемещением на три позиции вперед в латинском алфавите.
Средневековье
В 800 году арабский математик Аль-Кинди изобрел технику частотного анализа для взлома шифров. Она использует для дешифрования лингвистические данные — частоту употребления определенных букв или пар букв, частей речи, конструкций предложений.
В 1467 году Леон Баттиста Альберти, считающийся отцом современной криптографии, наиболее полно исследовал использование шифров, включающих два алфавита — упорядоченный и написанный в хаотичной последовательности. Альберти использовал шифровальный диск из меди с двумя алфавитными кольцами, которые при прокручивании обеспечивали двойное шифрование. В качестве ключа он предлагал случайную строчную букву, а прописная в тексте свидетельствовала о смене шифра.
В 1500 году итальянец Джованни Баттиста Беллазо опубликовал шифр, который впервые предполагал использование буквенного пароля. Это был также первый пример полиалфавитного шифрования. Паролем могло быть как слово, так и фраза. Если его записать над открытым текстом, то буква пароля, расположенная над буквой текста, будет указывать на алфавит шифровальной таблицы. В 1586 французский посол в Италии Блез де Виженер создал более сильный шифр с автоматическим ключом. Количество его символов было равно количеству символов исходного текста. Ключ использовался для расшифровки сообщения с помощью таблицы Виженера или tabula recta. Она состояла из циклически сдвигаемых алфавитов. Первая строка таблицы служила алфавитом открытого текста, а первый столбец — алфавитом ключа. Этот шифр не могли разгадать на протяжении трех веков.
В 1790 году будущий американский президент Томас Джефферсон изобрел устройство, названное «цилиндром Джефферсона». Оно позволяло автоматически шифровать текст. Это устройство представляло собой 36 вращающихся дисков на одной оси, на каждом из которых в произвольном порядке были написаны буквы, составляющие сообщение на одной линии. Каждый диск также был отмечен уникальным номером, и их порядок выступал ключом шифрования.
Современность
В 1917 году американец Эдвард Хеберн создал первую криптографическую роторную машину, объединив электрическую схему с механическими частями пишущей машинки для автоматического шифрования сообщений. В 1921 году изобретатель решил запатентовать устройство. Пользователи могли набирать открытое текстовое сообщение на стандартной клавиатуре, и машинка с помощью электрических импульсов автоматически создавала шифр, подставляя вместо каждой буквы случайную. Зашифрованный текст, в свою очередь, можно было декодировать, вручную перевернув ротор схемы, а затем набрав зашифрованный текст на машинке Хеберна. Однако шифр был относительно слабым, так как повторялся через каждые 26 букв в сообщении.
Между тем немецкий криптолог Артур Шербиус занялся разработкой машины «Энигма», усовершенствованной версии изобретения Хеберна. Она также использовала схемы ротора как для кодирования открытого текста, так и для декодирования зашифрованного. При каждом нажатии на клавишу с буквой алфавита в движение приходили один или несколько роторов. Буква изменялась несколько раз по принципу шифра Цезаря, а затем в окошке выдавался результат. «Энигма», активно использовавшаяся немецкими военными до и во время Второй мировой войны, требовала расширенного обмена настройками калибровки и закрытыми ключами, которые были уязвимы для шпионажа. Впервые код «Энигмы» расшифровали польские криптографы в 1933 году, а в период войны английский математик Алан Тьюринг создал машину для расшифровки под названием «Бомба». Принцип дешифратора Тьюринга заключается в переборе возможных вариантов ключа шифра, если была известна структура дешифруемого сообщения или часть открытого текста. Эта работа заложила большую часть основополагающей теории алгоритмических вычислений и приблизила разработку современных компьютеров.
В 1975 году исследователи, работающие над шифрами в IBM, разработали стандарт шифрования данных (Data Encryption Standard, DES) — первую криптосистему, сертифицированную Национальным институтом стандартов и технологий для использования правительством США. Она легла в основу современных алгоритмов. Алгоритм впервые использовал блочный шифр для преобразования сообщений с ключом длиной до 56 бит. Этот шифр оперирует группами бит фиксированной длины или блоками, он позволяет зашифровать одно или несколько сообщений, длина которых будет больше, чем длина ключа. В 2001 году DES заменили более надежным алгоритмом шифрования AES (Advanced Encryption Standard). В этой симметричной системе используются три варианта ключей шифрования для 128-битных блоков данных: длиной 128, 192 и 256 бит. Такой шифр сложнее взломать с помощью современного оборудования.
В 1976 году исследователи Уитфилд Хеллман и Мартин Диффи представили метод для безопасного обмена криптографическими ключами. Он предполагает наличие у сторон открытых ключей в виде общих чисел, которые передаются по незащищенному каналу связи и могут быть раскрыты. Однако стороны обмена данными генерируют с помощью этих чисел закрытый ключ путем математических операций, в которые не может вмешаться посторонний. Ключ используется для шифрования дальнейшего обмена. Для вычисления ключа не требуются большие мощности, а вот его расшифровка практически невозможна при помощи обычного компьютера. Метод позволил использовать новую форму шифрования, называемую алгоритмами асимметричного ключа.
В 1977 году исследователи Рон Ривест, Ади Шамир и Леонард Адлеман представили систему шифрования с ассиметричным ключом RSA (Rivest-Shamir-Adleman). Это один из старейших методов шифрования для безопасной передачи данных, который используется до сих пор. Открытые ключи RSA создаются путем умножения больших простых чисел, которые чрезвычайно сложно вычислить даже самым мощным компьютерам, если неизвестен закрытый ключ.
Виды шифрования данных
Существуют три основных вида шифрования данных:
- Симметричное или алгоритм общего (закрытого) ключа. К нему относятся все системы, разработанные с древнейших времен, роторные машинки, а также алгоритмы типа DES и AES. Метод использует один и тот же ключ для шифрования и дешифрования. Шифры с симметричным ключом считаются менее затратными и не требуют много вычислительной мощности, что дает меньшую задержку при декодировании данных. Обычно способ применяется для хранения информации, так как при передаче она более уязвима для раскрытия с третьей стороны.
- Асимметричное или шифрование с открытым ключом. К нему относятся, в том числе, алгоритм Диффи-Хеллмана и RSA. Этот метод использует два отдельных ключа для шифрования и дешифрования данных. Открытый ключ применяется для шифрования, а обладатель закрытого ключа может расшифровать данные. Асимметричное шифрование считается более дорогим и требует больше вычислительной мощности для расшифровки, поэтому оно может не подходить для больших пакетов данных. Подобный метод применяется обычно в системе цифровых подписей и блокчейне.
- Гибридное. Этот метод включает в себя оба вышеописанных. Примером такого алгоритма выступает HPKE (RFC 9180). Сначала сообщение шифруется с помощью открытого ключа, затем этот ключ скрывается с помощью еще одного открытого ключа, но для его расшифровки необходим закрытый, известный только получателю. Шифрование такого типа используется в системах электронной почты, в интернет-протоколе HTTP, а также на iOS-устройствах при хранении данных.
Методы шифрования данных
К наиболее распространенным методам симметричного шифрования относятся:
- Data Encryption Standard (DES). Это блочный метод шифрования с ключами длиной всего 56 бит, однако он оказал влияние на развитие современной криптографии, поскольку позволил разработать более совершенные системы.
- Triple DES (3DES): метод, при котором шифрование DES трижды применяется к каждому блоку данных, шифруя и дешифруя его. Это позволяет увеличить размер ключа до 168 бит, чтобы усложнить расшифровку методом перебора. Национальный институт стандартов США (NIST) объявил метод устаревшим для всех программных приложений в 2023 году.
- Advanced Encryption Standard (AES): наиболее используемый метод шифрования. Он был разработан на основе принципа «сети замены-перестановки», которая представляет собой блочный шифр из 128 бит и может иметь ключи длиной 128, 192 или 256 бит.
- Twofish: алгоритм с блочным шифром и открытым исходным кодом. Он считается самым быстрым методом симметричного шифрования. Twofish используется в популярных приложениях шифрования, таких как PGP (Pretty Good Privacy), для электронной почты. Он может иметь размер ключа до 256 бит.
- Blowfish: более продвинутая версия алгоритма Twofish. Это блочный шифр с симметричным ключом длиной до 448 бит, который входит в число самых безопасных алгоритмов.
К наиболее распространенным методам асимметричного шифрования относятся:
- RSA: при этом методе открытый ключ создается путем разложения на множители двух простых чисел плюс вспомогательного значения. Любой может использовать открытый ключ RSA для шифрования данных, но только человек, знающий заданные простые числа, может расшифровать их. Ключи RSA могут быть очень большими (типичные размеры — 2048 или 4096 бит), поэтому метод считается дорогим и медленным. RSA часто используют для обмена цифровыми подписями и создания общих ключей при симметричном шифровании.
- Криптография с эллиптическими кривыми (ECC): метод независимо друг от друга в 1985 году предложили исследователи Нил Коблиц и Виктор Миллер. Это усовершенствованная форма асимметричного шифрования на основе множеств точек, описываемых уравнением и ограниченных конечными полями. Для расшифровки нужно решить задачу дискретного логарифма, чтобы найти точки на эллиптических кривых, которые и считаются искомым сообщением. Сложность этой задачи позволяет ECC обеспечивать высокий уровень безопасности при малой длине ключа, а дешифрование выполняется быстрее. Именно поэтому метод стал популярным в средах с ограниченными ресурсами, в том числе на мобильных устройствах и в сфере интернета вещей. В целом, ЕСС применяется практически повсеместно — в интернет-протоколах безопасности транспортного уровня (TLS), безопасной оболочки (SSH) для удаленного входа и виртуальных частных сетях (VPN); в блокчейне Bitcoin и Ethereum; в смарт-картах, платежных системах и электронных подписях.
Какой метод выбрать
Выбор симметричного или асимметричного шифрования зависит от сценариев, в которых оно должно использоваться. Первый метод эффективнее применять для данных, находящихся на хранении, например, в базах данных. Кроме того, он используется в банковской сфере, где необходимо оперировать большими объемами данных с высокой скоростью, например, при транзакциях клиентов. Второй же должен использоваться для данных, передаваемых другим лицам. Так, если информация в электронной почте шифруется только симметричным способом, то злоумышленник может украсть или скомпрометировать ее, получив общий ключ. Кроме того, ассиметричное шифрование применяется при создании цифровых подписей, обмене цифровыми сертификатами и иной конфиденциальной информацией.
При этом приложения для обмена сообщениями, такие как Signal и WhatsApp, используют сквозное шифрование. Оно сочетает в себе оба метода и кодирует только содержимое сообщений, а не его метаданные. При этом даже если ключи шифрования будут скомпрометированы, злоумышленник не сможет прочитать уже отправленные сообщения.
Читайте также: