Симметричный шифр: Что такое симметричное шифрование | Энциклопедия «Касперского»

Содержание

Что такое симметричное шифрование | Энциклопедия «Касперского»

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

Принцип работы симметричных алгоритмов

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

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

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

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

Поэтому современные симметричные алгоритмы считаются надежными, если отвечают следующим требованиям:

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

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

Один круг шифрования, состоящий из этих операций, называется раундом.

Виды алгоритмов симметричного шифрования

В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:

  • блочные;
  • потоковые.

Блочные

 алгоритмы шифруют данные блоками фиксированной длины (64, 128 или другое количество бит в зависимости от алгоритма). Если все сообщение или его финальная часть меньше размера блока, система дополняет его предусмотренными алгоритмом символами, которые так и называются дополнением.

К актуальным блочным алгоритмам относятся:

  • AES
  • ГОСТ 28147-89
  • RC5
  • Blowfish
  • Twofish

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

Как правило, биты исходных данных сравниваются с битами секретной последовательности с помощью логической операции XOR (исключающее ИЛИ, на выходе дающее 0, если значения битов совпадают, и 1, если они различаются).

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

Достоинства и недостатки симметричного шифрования

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

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

Область применения симметричного шифрования

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

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

Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования

(Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров.

Его написал Colm MacCárthaigh один из основных контрибьюторов Apache. Я спросил разрешение Колма на перевод, он любезно согласился).

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

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

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

Вот простой пример. Допустим, у меня есть строка «Ovaltine» и я хочу её зашифровать. Я мог бы воспользоваться rot13 — очень простым олдскульным шифром Цезаря, который делает хоровод из букв, где a и z держатся за ручки, и заменяет каждую букву другой буквой алфавита, которая находится от заменяемой буквы на расстоянии 13 символов.

Таким образом «O» превращается в «B», а «v» становится «i», в итоге «Ovaltine» превращается в «Binygvar». Конечно, это не очень безопасно. Это наивный пример, который очень легко взломать, так как атакующий может выяснить, какая буква встречается чаще всего (обычно в оригинальном тексте это «e») и найти оставшиеся буквы подобным образом.

Сейчас вы можете представить, что должны существовать более хитрые способы «перемешивания» букв. Например, некая сложная схема, в которой «a» переходит в «p», но при повторном шифровании — в «f». Может даже иногда эта схема начинает шифровать «a» двумя буквами, например «jd» или в что-нибудь другое. Таким образом эта усложнённая схема может зашифровать «Ovaltine» в строку «FGyswDmweeRq» (заметьте, что она стала длиннее). В прошлом появлялись алгоритмы шифрования, которые работали подобным образом, но это совсем не так, как работает современное шифрование.

Вместо «перемешивания» букв современное шифрование берёт вашу секретную строку и хитро комбинирует её со случайными данными. 7 = 3. Возьмите любое число, которое вам нравится или любые данные, и это всегда будет работать — XOR всегда сможет расшифровать себя.

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

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

Вторая проблема. Вам нельзя переиспользовать секретные данные, так как паттерны проявятся снова.

Таким образом вы как-то должны предоставлять большие куски секретных данных для всех, кто в них нуждается как в шифре Вернама (One-time pad). Это слишком трудно.

В современном шифровании мы «генерируем» нужные нам секретные данные из маленьких ключей. Эти ключи гораздо проще таскать с собой и защищать. Вот чем в действительности являются алгоритмы симметричного шифрования — схемами для детерминированной генерации случайных данных из ключа. Часть про «детерминированность» очень важна: два человека с одним и тем же ключом должны генерировать абсолютно один и тот же набор данных, иначе они не смогут понять друг друга. Вероятно, вы слышали про такие алгоритмы: AES, 3DES, DES, RC4, ChaCha20. Все они делают это.

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


AES — основной и наиболее проанализированный алгоритм шифрования. Абсолютно золотой стандарт! :dark_sunglasses:

Но при этом добавляют:


Реализации AES в программном обеспечении (не в аппаратном) или небезопасны, или медленны, а иногда и не безопасны, и медленны. Он не был разработан с учётом того, что его взлом можно осуществить с помощью анализа кэша. :facepalm:

Не пугайтесь слишком сильно, если это вам непонятно. Главная мысль заключается в следующем: AES шикарен с точки зрения математики, но очень сложен в программной реализации. Но не надо беспокоиться — у нас почти всегда есть поддержка AES на уровне аппаратного обеспечения (список всех процессоров с аппаратной поддержкой AES можно посмотреть тут https://en.wikipedia.org/wiki/AES_instruction_set, — прим. переводчика).

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

Эти алгоритмы получают на вход три параметра и на выходе отдают зашифрованный текст. Входные параметры — ключ, шифруемый текст и… сюрприз — что-то странное под названием «вектор инициализации» (initialization vector, IV).

AES(key, IV, plaintext) -> encrypted_data.

Ключ и IV комбинируются между собой, чтобы создать набор «стартовых условий» для алгоритма; это подобно начальной перестановке или перемешиванию плиток в игре Скрэббл. Одинаковая комбинация ключа и IV всегда будет создавать одинаковый набор стартовых условий. Спрашиваете, почему нам вообще тогда понадобился IV? Нам нужен IV, чтобы мы могли шифровать множество сообщений, используя одинаковый ключ. Без IV, каждый генерируемый поток данных был бы одинаков, и это плохо. Это бы нарушило одно из правил, про которое мы говорили ранее: мы не можем переиспользовать одни и те же данные при шифровании. Таким образом нам нужен IV для перемешивания результата. Но в отличии от ключа IV может быть публичным.

Итак, когда вы шифруете сообщение и отправляете его кому-нибудь, вы также можете добавить: «Эй, а вот IV, который я использовал». При этом всё ещё критично, чтобы мы не переиспользовали комбинацию ключа и IV, потому что они дали бы нам повторяющиеся случайные данные. Для достижения этого условия есть два пути: 1) IV это некий счётчик, который мы увеличиваем с каждым новым сообщением. 2) IV генерируется случайно, при этом у него достаточно большое значение, поэтому нам не надо сильно беспокоиться о коллизиях. Как бы то ни было, я упомянул, что я буду говорить о блоках.

Ключи и IV «смешиваются» или комбинируются таким образом, чтобы создать набор стартовых условий… эти условия на самом деле являются начальным «блоком» случайных данных. Длина этого блока для AES128 128 бит, для AES256 — 256 бит, для ChaCha20 — 512 бит. И вот тут проявляется настоящая магия и индивидуальность конкретного алгоритма шифрования. В действительности их суть заключается в том, каким образом генерируется последовательность блоков и как каждый блок связан со своими соседями. Отношения между этими блоками остаются предсказуемы даже для тех, у кого нет ключа.

Я не буду глубоко погружаться в то, как именно работают эти алгоритмы, но если вы хотите узнать больше, я советую вам начать изучение этой темы с линейного конгруэнтного метода (linear congruential generators, LCG). LCG представляет собой функцию, которая создаёт «циклические» блоки данных в случайном и неповторяющемся виде. Затем взгляните на cеть Фе́йстеля (Feistel networks) — следующий уровень развития LCG. Затем разберитесь с S-Boxes, а потом посмотрите на то как Salsa20 создаёт чередование в алгоритме ChaCha20. Всё это гораздо доступнее, чем вы можете подумать!

Итак, мы теперь знаем, как случайный поток данных может быть скомбинирован с текстом, чтобы его зашифровать и расшифровать, и мы уже немного в теме того, как эти случайные потоки данных создаются. Разве это не всё, что нам надо? Для шифрования диска, это, действительно, почти всё. Мы можем шифровать каждый блок или сектор хранилища с использованием одного ключа и IV, который может быть получен из «позиции» на диске. Таким образом мы можем всегда расшифровать любой блок данных в любом месте на диске, до тех пор пока у нас есть ключ. Но тут есть одна проблемка… кто-нибудь может испортить наши зашифрованные данные. Если я изменю значение любого байта, даже если у меня не будет ключа, то в итоге мы не сможем расшифровать блок. И нет защиты против вмешательства такого вида. В случае отправки сообщений и данных по сети, это становится ещё критичнее. Мы не хотим, чтобы кто-нибудь мог испортить наши передаваемые данные. Таким образом нам надо добавить проверку целостности! Есть несколько схем, для того чтобы это сделать.

HMAC, GCM и Poly1305 — наиболее распространённые современные схемы для проверки целостности. Эти алгоритмы по большому счёту работают так: им на вход подаются данные и другой ключ (так называемый ключ целостности). После вычислений они выдают на выходе MAC (message authentication code) или тэг, который в свою очередь просто другой кусочек данных, выступающий подписью.

Таким образом для шифрования и защиты наша схема может выглядеть так:

AES(key, IV, "Ovaltine") -> encrypted_output
HMAC(key, encrypted_output) -> MAC

и затем по проводам мы отправляем:

IV | encrypted_output | MAC

Для расшифровки мы проверяем MAC, генерируя его снова и сравнивая результат с полученным MAC, а затем расшифровываем данные. Есть внутренние различия в том, как HMAC, GCM и Poly1305 генерируют эти подписи, но вам не надо об этом беспокоиться. На сегодняшний день эту комбинацию операций обычно оборачивают в функцию с именем «AEAD» (Authenticated Encryption with Additional Data). Под капотом она делает всё то, про что я говорил ранее:

AEAD(key, IV, plaintext, additional_data) -> IV_encrypted_data_MAC

Штука под названием «additional_data» — всего лишь данные, с помощью которых вы можете убедиться в том, что эти данные есть у отправляющей стороны, хотя они и не были им отправлены. Это как мета-данные, с помощью которых устанавливаются права доступа. Часто это поле оставляют пустым.

Но тем не менее вы можете поиметь проблемы с AEAD, если будете использовать один и тот же IV. Это плохо! Есть попытки для улучшения этой ситуации: мой коллега, которого зовут Шай, работает над клёвой схемой SIV, добавляющей уровень защиты от этой проблемы. Но если вы используете уникальный IV, современное шифрование очень безопасно. То есть вы можете опубликовать зашифрованный текст в Нью-Йорк Таймс, и никто не сможет его взломать. Шифр будет оставаться неприступен, даже если «некоторая» часть текста будет известна. Например, в интернет-протоколах большое количество текста известно. HTTP-сервера всегда отвечают одинаково и первые байты всегда известны. Но этот факт совсем не имеет значения — он не поможет атакующему узнать ни кусочка оставшихся данных… Мы прошли долгий путь со времён Второй мировой войны.

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

Давайте сначала разберёмся с длиной. Очевидно, что длина — это не скрытая характеристика. И это нормально, если вы пытаетесь защитить свой пароль или номер кредитной карты где-то в середине сообщения. Не очень то и большая проблема. Но это означает, что потенциально любой человек может определить тип контента, который вы отправляете. Простой пример: если вы отправляете gif с помощью мессенджера и если размер этого изображения уникален, атакующий, перехватывающий ваши данные, может предположить какая именно гифка была только что отправлена. Есть более хитрые версии этой атаки для Google Maps, Netflix, Wikipedia и т.п. Для защиты от этой атаки можно «добивать» отправляемые сообщения дополнительными байтами, таким образом, чтобы все отправляемые сообщения были одинаковой длины несмотря ни на что. Шифрование, которое используется в военных сетях, всегда «добивает» трафик дополнительными данными, то есть для перехватчика он всегда выглядит одинаковым! Ещё одна проблема, связанная с длиной, заключается в том, что если вы используете сжатие и даёте атакующему возможность изменять любую часть контента на странице, которую видит пользователь, то это даёт возможность атакующему разузнать даже самые маленькие секреты. Поищите атаку под названием «CRIME». Она шикарна и страшна.

Я ещё говорил о том, что другая проблема — тайминг. Очевидно, что время отправки каждого сообщения открытая информация. Это может быть проблемой? Может! Например, если вы отправляете сообщение на каждое нажатие клавиши, тогда тривиально выяснить, что именно печатается с помощью анализа времени. Круто! Другой пример — VOIP. Если ваше приложение для звонков отправляет данные только тогда, когда люди говорят, но не во время молчания, этого достаточно для того, чтобы восстановить 70% английской речи. Всего лишь из тишины. Страшно клёво.

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

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

Не стесняйтесь задавать вопросы

Перевод публикуется под лицензией CC BY-NC-SA 4.0

Симметричное и ассиметричное шифрование: просто о сложном

Криптографическая защита данных — важнейшая задача, которая сегодня актуальна, как никогда. Однако до сих пор некоторые спорят, что лучше — симметричное или ассиметричное шифрование? Что круче — AES или RSA? Однако все эти споры — бесполезное занятие и результат непонимания сути криптографии. Без упоминания конкретики (условий и задач использования) нельзя сказать, что однозначно лучше. В этой статье мы попробуем разобрать особенности ассиметричного и симметричного шифрования, увидим их разницу, приведём аргументы в пользу того либо иного подхода.

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

Симметричное шифрование

Для работы применяется всего один пароль. Происходит всё следующим образом: 1. Существует некий математический алгоритм шифрования. 2. На его вход подаётся текст и пароль. 3. На выходе получаем зашифрованный текст. 4. Если хотим получить исходный текст, применяется тот же самый пароль, но с алгоритмом дешифрования.

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

Несмотря на свои ограничения и угрозу безопасности, подход до сих пор широко распространён в криптографии. Дело в том, что он очень прост в работе и понимании. И техническая нагрузка на железо невелика (как правило, всё работает очень быстро).

Ассиметричное шифрование

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

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

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

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

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

Что важно знать

Давайте перечислим основные моменты и сравним оба вида шифрования: 1. Симметричный алгоритм прекрасно подходит при передаче больших объёмов зашифрованных данных. Ассиметричный в этом случае будет работать медленнее. Кроме того, при организации обмена информацией по ассиметричному алгоритму оба ключа должны быть известны обеим сторонам либо пар должно быть две (по одной на каждую сторону). 2. Ассиметричное шифрование позволяет дать старт безопасному соединению без каких-либо усилий со стороны пользователя. Если говорить о симметричном шифровании, то пользователю нужно знать пароль. Однако не стоит думать, что ассиметричный подход безопасен на 100 %. К примеру, он подвержен атакам «человек посередине». Это когда между сервером и вами размещается компьютер, который вам отсылает свой открытый ключ, а при передаче информации с вашей стороны, использует открытый ключ сервера. В итоге происходит перехват конфиденциальных данных. 3. Продолжая тему взлома и компрометации пароля, давайте ещё раз отметим, что в случае с симметричным шифрованием возникает проблема конфиденциально передать следующий пароль. В этом плане ассиметричный алгоритм «легче». Серверу достаточно сменить пару и разослать вновь созданный публичный ключ. Однако и тут есть своя Ахиллесова пята. Дело в том, что генерация ключей постоянно происходит по одному и тому же алгоритму, стало быть, если его узнают, безопасность окажется под угрозой. 4. Симметричный шифр обычно строится на основании ряда блоков с математическими функциями преобразования, ассиметричный — на математических задачах. Тот же RSA создан на задаче возведения в степень с последующим вычислением модуля. В результате алгоритмы симметричного шифрования модифицировать просто, а ассиметричного — практически невозможно. 5. Лучший эффект достигается при комбинации обоих видов шифрования. Происходит это так: — посредством ассиметричного алгоритма серверу отсылается сессионный ключ для симметричного шифрования; — происходит обмен информацией по симметричному алгоритму. Тут возможны варианты, но общий смысл обычно не меняется. 6. В симметричном шифровании пароли генерируются по специальным правилам с учётом цифр, букв, регистра и т. д., создаются комбинации повышенной сложности. В ассиметричном пароли не так безопасны, однако их секретность обеспечивается тем, что их знает только сервер. 7. Вне зависимости от выбранного вида шифрования ни один из них не является гарантом стопроцентной безопасности. Помните, что любой подход нужно комбинировать с другими средствами информационной защиты.

Послесловие

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

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

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

Сравнение симметричного и асимметричного шифрований

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

Поэтому мы можем представить их следующим образом:

Эта статья будет сфокусирована на симметричных и асимметричных алгоритмах  шифрования.

Симметричное vs. асимметричное шифрование

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

Взаимосвязанность ключей

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

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

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

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

Длина ключей

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

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

 

Преимущества и недостатки

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

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

Варианты применения

Симметричное шифрование

Благодаря своей скорости, симметричное шифрование широко используется для защиты информации во многих современных компьютерных системах. Например, Advanced Encryption Standard (AES) используется правительством США для шифрования секретной информации. AES заменил ранее принятый стандарт шифрования данных (DES), который был разработан в 1970-х годах в качестве стандарта симметричного шифрования.

Асимметричное шифрование

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

Гибридные системы

Во многих приложениях, симметричное и асимметричное шифрование используются вместе. Хорошим примером таких гибридных систем являются криптографические протоколы Security Sockets Layer (SSL) и Transport Layer Security (TLS), которые были разработаны для обеспечения безопасной связи в интернете. Протоколы SSL на данный момент считаются небезопасными и ими не рекомендуют пользоваться. В свою очередь, протоколы TLS считаются безопасными и широко используются всеми современными веб-браузерами.

Использование шифрования криптовалютами

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

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

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

Заключение

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

Симметричные шифры | Доступа нет – интернет журнал о безопасности, криптографии, шифровании и IT новостях

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

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

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

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

Ключевые понятия в шифровании | Самозащита от слежки

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

В настоящем руководстве мы рассмотрим пять основных идей. Это важные понятия о процессе шифрования:

 

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

Каковы отличия чего-то зашифрованного от непонятного?

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

Шифр — это набор правил (алгоритм), используемый при шифровании и расшифровывании. Это чётко определённые, выраженные в виде формулы правила, которым необходимо следовать.

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

 

Один ключ или несколько? Anchor link

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

Старые способы шифрования были симметричными. В «шифре Цезаря», использованном Юлием Цезарем, ключом для шифрования и для расшифровывания сообщений был сдвиг по алфавиту на три символа. Например, символ «A» будет изменён на «Г». Сообщение «ШИФРОВАНИЕ — ЭТО КРУТО» превратится с помощью этого ключа («три») в «ЫЛЧУСЕГРЛЗ АХС НУЦХС». Тот же самый ключ используется и для расшифровывания сообщения обратно в исходный вид.

Симметричное шифрование все ещё применяется сегодня. Оно часто существует в форме «потоковых» и «блочных шифров», которые используют сложные математические процессы для усложнения взлома. В настоящее время процесс шифрования данных проходит в несколько этапов, максимально усложняя извлечение исходных данных при отсутствии подходящего ключа. Современные алгоритмы симметричного шифрования, такие как алгоритм Advanced Encryption Standard (AES), являются надёжными и быстрыми. Симметричное шифрование широко используется компьютерами для таких задач, как шифрование файлов, разделов жёстких дисков на компьютере, полного шифрования дисков и устройств, а также шифрования баз данных, например в менеджерах паролей. При расшифровывании информации, зашифрованной с помощью симметричного шифрования, у вас будут запрашивать пароль. Именно поэтому мы рекомендуем использовать надёжные пароли и предоставляем пособие по созданию надёжных паролей для защиты зашифрованной информации.

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

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

Симметричное шифрование

Асимметричное шифрование

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

Симметричное и асимметричное шифрование часто используются совместно для шифрования при передаче данных.

 

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

Несмотря на своё название, открытый ключ не используется для открытия чего-либо (в отличии от реального ключа). Его предназначение заключается в другом. Более подробную информацию о работе открытых и закрытых ключей вы можете найти в нашем руководстве «Глубокое погружение в мир сквозного шифрования».

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

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

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

Открытый ключ

Закрытый ключ

  • Файл, который можно свободно распространять, в том числе и через интернет
  • Файл, который должен надёжно храниться в безопасном месте
  • Отправителю необходим открытый ключ получателя для того, чтобы зашифровать отправляемую информацию
  • Используется для расшифровывания сообщений, зашифрованных с помощью соответствующего открытого ключа
  • Представлен так называемым «отпечатком» открытого ключа, который можно использовать для подтверждения личности (аутентификации)
  • Используется для цифровых подписей, позволяя проверить личность отправителя (аутентификация)
  • При желании может быть размещён в постоянных общедоступных базах данных — «серверах ключей», доступных при использовании программного обеспечения PGP (зашифрованной электронной почты)
 

Можно сказать, что, отправляя информацию по каналам связи, вы будто отправляете обычную почтовую открытку. На открытке отправитель напишет «Привет!» и отправит её получателю. Сообщение не зашифровано, и поэтому сотрудники почты и вообще все, кому в руки попадёт открытка, смогут прочитать это сообщение.

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

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

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

 

Для кого вы шифруете? Является ли он тем, кем представился? Anchor link

Теперь у вас может возникнуть вполне резонный вопрос: «Понятно, что мой открытый ключ позволяет кому-то отправлять мне зашифрованное сообщение, а мой закрытый ключ позволяет прочитать это зашифрованное сообщение. Но что, если кто-то притворяется мной? Что, если кто-то создаст новые открытый и закрытый ключи и станет выдавать себя за меня?»

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

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

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

Давайте посмотрим, как это работает на практике.

 

Проверка личности для людей (отпечаток открытого ключа) Anchor link

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

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

Открытый ключ — это файл с огромным количеством символов. Но существует и удобный для чтения «отпечаток ключа», соответствующий данному ключу.

В области компьютерной безопасности слово «отпечаток» имеет множество значений.

Одним из вариантов употребления этого слова является «отпечаток ключа» — строка с символами вида «65834 02604 86283 29728 37069 98932 73120 14774 81777 73663 16574 23234». Эта строка позволяет с абсолютной уверенностью утверждать, что ваш собеседник использует правильный закрытый ключ.

Некоторые приложения формируют отпечаток ключа в виде QR-кода, который вы с собеседником сканируете с устройств друг у друга.

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

Лучше всего подобную проверку проводить при личной встрече. Вашему собеседнику необходимо посимвольно сравнить отпечаток вашего открытого ключа, находящегося на вашем устройстве, с отпечатком вашего же ключа, но находящегося у него. Несмотря на утомительность проверки такой длинной строки символов («342e 2309 bd20 0912 ff10 6c63 2192 1928»), её необходимо провести. Если вы не можете встретиться лично, можно передать свой отпечаток через другой защищённый канал связи, например через другой использующий сквозное шифрование мессенджер или чат, или разместить отпечаток на сайте HTTPS.

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

 

Итог: возможности шифрования с открытым ключом Anchor link

Использование шифрования с открытым ключом может предоставить пользователям:

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

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

Целостность: сообщение, зашифрованное или подписанное с помощью шифрования с открытым ключом, как правило, не может быть подделано; иначе оно не будет расшифровано, либо авторство сообщения не будет подтверждено. Это означает, что даже непреднамеренное искажение сообщения (например, из-за проблем со связью) будет обнаружено.

Проверка личности для веб-сайтов и сервисов (сертификаты безопасности)

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

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

Ниже вы можете увидеть пример сертификата безопасности нашего сайта, открытого в стандартном браузере. Информацию о сертификате безопасности можно просмотреть, нажав на значок замка в строке адреса HTTPS браузера и затем выбрав «сведения о сертификате».

Браузер на компьютере может шифровать подключение к сайту, используя HTTPS. Сайты часто используют сертификаты безопасности, чтобы показать браузеру свою подлинность и обеспечение безопасного подключения. Благодаря этому можно быть уверенным в том, что никто не сможет изменить передающиеся данные. Браузеры проверяют эти сертификаты на соответствие открытым ключам доменных имён (например www.google.com, www.amazon.com или ssd.eff.org). Сертификаты являются одним из способов определения безопасности общения с человеком или сайтом – соответствует ли данный открытый ключ этому сайту или человеку. А каким образом компьютер узнает, какой именно открытый ключ является подходящим для посещаемых сайтов?

Современные браузеры и операционные системы используют список доверенных центров сертификации (Certification authority, CA). Открытые ключи из этих центров сертификации уже будут у вас при установке браузера или покупке компьютера. Центры сертификации подписывают открытый ключ сайта лишь после того, как они удостоверились в том, что этот сайт на законных основаниях владеет доменом (например, www.example.com). Открывая HTTPS-сайт, браузер проверяет предоставленный этим сайтом сертификат на наличие подписи надёжного центра сертификации. Это значит, что сторонняя организация, которой можно доверять, подтверждает подлинность данного сайта.

Тот факт, что сертификат безопасности сайта был подписан центром сертификации, ещё не означает, что сайт является безопасным. У центров сертификации не безграничные возможности — они не могут проверить, заслуживает ли доверия тот или иной сайт. Например, сайт может использовать надёжный протокол передачи данных HTTPS, но при этом будет размещать мошеннические и вредоносные программы. Будьте бдительны и узнайте больше, прочитав наше руководство по защите от вредоносных программам и фишинга.

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

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

Итог: симметричные и асимметричные ключи, отпечатки открытых ключей.

Пример рукопожатия безопасности транспортного уровня (TLS handshake)

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

Рассмотрим конкретный пример совместной работы этих способов шифрования при подключении к данному сайту (https://ssd.eff.org/), использующему протокол HTTPS.

Открывая HTTPS-сайт, браузер и сервер сайта совершают очень быстрый обмен некоторыми данными. Этот процесс называется «рукопожатием» (handshake). Браузер (Google Chrome, Mozilla Firefox, Tor Browser и т.д.) общается с сервером (компьютером), на котором расположен наш сайт — https://ssd.eff.org.

При осуществлении рукопожатия браузер и сервер отправляют друг другу запросы для определения общих настроек алгоритмов шифрования (наборов шифров). Вы можете представить себе это как оживлённую беседу между вашим браузером и нашим сервером ssd.eff.org об известных им методах шифрования, об их предпочтениях в выборе метода и о том, какой метод шифрования им обоим следует применить при общении. «Знакомо ли нам обоим совместное использование асимметричного алгоритма (RSA) с симметричным алгоритмом (AES)? Да, хорошо. Если же с этой комбинацией алгоритмов шифрования мы не знакомы, какие другие алгоритмы шифрования мы знаем?»

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

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

Если этот симметричный ключ работает, то браузер и сервер веб-сайта используют его для дальнейшего шифрования данных. Этот обмен данными является рукопожатием TLS. Таким образом, если рукопожатие прошло корректно, то ваше подключение обозначается как безопасное соответствующим значком в адресной строке браузера рядом с названием HTTPS-сайта ssd.eff.org.

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

Симметричное шифрование

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

Принцип работы

Сим­мет­рич­ное шиф­ро­ва­ние рабо­та­ет так:

  1. Есть дан­ные, кото­рые нуж­но зашифровать. 
  2. Есть ключ шиф­ро­ва­ния. С его помо­щью дан­ные шиф­ру­ют­ся по какому-то алгоритму.
  3. Тот, кто обла­да­ет клю­чом и зна­ет алго­ритм, может рас­шиф­ро­вать сообщение
  4. Если не знать клю­ча, то рас­шиф­ро­вать дан­ные почти невоз­мож­но. Поче­му почти — рас­ска­жем в ста­тье про криптостойкость.

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

Алгоритмы шифрования

Сим­мет­рич­ное шиф­ро­ва­ние в общих чер­тах рабо­та­ет так:

  1. Берём ключ и дан­ные, кото­рые нуж­но зашифровать.
  2. С помо­щью мате­ма­ти­че­ских функ­ций и пре­об­ра­зо­ва­ний мы соеди­ня­ем ключ и дан­ные. Напри­мер, берём каж­дый байт сооб­ще­ния, умно­жа­ем на чис­ло из клю­ча и полу­ча­ем новое чис­ло. Так дела­ем с каж­дым бай­том исход­но­го сооб­ще­ния и на выхо­де полу­ча­ем зашиф­ро­ван­ные дан­ные — мас­сив из цифр.
  3. Эти дан­ные мож­но пере­да­вать по любо­му кана­лу свя­зи. Даже если их пере­хва­тят, то без клю­ча всё рав­но не прочитают.
  4. Полу­ча­тель берёт этот мас­сив из чисел, делит каж­дое на чис­ло из того же клю­ча и полу­ча­ет исход­ное сооб­ще­ние, кото­рое мож­но прочитать. 

Если этот ключ будет знать кто-то ещё, то он тоже смо­жет читать и отправ­лять такие сооб­ще­ния. А если ключ узна­ют все, то пере­пис­ка пере­ста­нет быть секретной.

👉 Пере­мно­же­ние — про­стой алго­ритм, кото­рый дав­но не исполь­зу­ет­ся в крип­то­гра­фии в чистом виде. Сей­час берут что-то намно­го более слож­ное: лога­риф­мы в конеч­ном про­стран­стве, фак­то­ри­за­цию и дру­гие мате­ма­ти­че­ские функции.

Простой пример

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

  1. Состав­ля­ем сооб­ще­ние на рус­ском языке.
  2. Берём ключ (чис­ло) и сдви­га­ем все сим­во­лы в сооб­ще­нии на это чис­ло. Напри­мер, если ключ равен трём, то А (1-я пози­ция) сдви­га­ет­ся на три пози­ции даль­ше по алфа­ви­ту и пре­вра­ща­ет­ся в Г (4-я пози­ция), Л пре­вра­ща­ет­ся в О и так далее. Если при сдви­ге мы выхо­дим за гра­ни­цу алфа­ви­та, то воз­вра­ща­ем­ся в нача­ло алфа­ви­та и про­дол­жа­ем отсчёт оттуда.
  3. Таким спо­со­бом шиф­ру­ем всё сооб­ще­ние, бук­ва за буквой.
  4. Отда­ём шиф­ров­ку другу.
  5. Он берёт каж­дый сим­вол и сдви­га­ет его на три пози­ции назад по алфа­ви­ту. В ито­ге у него все бук­вы вер­нут­ся на свои места и полу­чит­ся тот текст, кото­рый мы отправляли.

Если взять ключ 10 и зашиф­ро­вать им фра­зу «При­вет, это жур­нал Код!», то полу­чит­ся так:

Щът­лоь, жьш рэъ­чйх Фшн! 

Этот алго­ритм слиш­ком прост для совре­мен­ной крип­то­гра­фии, пото­му что взла­мы­ва­ет­ся почти момен­таль­но, но для игр в шпи­о­нов с детьми — самое то.

👉 Алго­ритм из наше­го при­ме­ра назы­ва­ет­ся шиф­ром Цеза­ря, пото­му что так рим­ский импе­ра­тор шиф­ро­вал важ­ные сооб­ще­ния сво­им генералам.

Плюсы и минусы симметричного шифрования

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

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

Симметричное шифрование в жизни

Почти всё обще­ние в совре­мен­ных мес­сен­дже­рах постро­е­но на сим­мет­рич­ном шифровании.

Все наши бан­ков­ские пла­те­жи, пере­во­ды и онлайн-оплата тоже шиф­ру­ет­ся сим­мет­рич­ным методом. 

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

Любая защи­щён­ная линия свя­зи, от пра­ви­тель­ствен­ной до част­ной, исполь­зу­ет сим­мет­рич­ное шифрование.

Что дальше

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

Текст:
Миша Поля­нин

Редак­тор:
Мак­сим Ильяхов

Кор­рек­тор:
Ира Михе­е­ва

Иллю­стра­тор:
Даня Бер­ков­ский

Вёрст­ка:
Маша Дро­но­ва

Достав­ка:
Олег Веш­кур­цев

Что такое закрытый ключ?

От

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

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

Как работает закрытый ключ?

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

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

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

Проблемы шифрования закрытого ключа

Хотя шифрование с закрытым ключом действительно обеспечивает высокий уровень безопасности, необходимо учитывать следующие проблемы:

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

Закрытые ключи и открытые ключи

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

Последнее обновление: май 2019 г.

Продолжить чтение о закрытом ключе
Dig Deeper on Disk и средства шифрования файлов Симметричный шифр

— обзор

Для чего нужны эти режимы?

В предыдущей главе мы видели, как можно обеспечить конфиденциальность и аутентификацию данных за счет комбинированного использования симметричного шифра и режима цепочки с алгоритмом MAC.Здесь цель этих режимов — объединить два. Это позволяет одновременно достичь нескольких ключевых целей. Как мы упоминали в предыдущей главе, CCM и GCM также предназначены для небольших пакетных сообщений, идеально подходящих для защиты потока сообщений между сторонами. CCM и GCM могут использоваться для автономных задач, таких как шифрование файлов, но они не предназначены для таких задач (особенно CCM, поскольку ему заранее требуется длина открытого текста).

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

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

Комбинированные режимы не только упрощают чтение и запись кода, но и упрощают анализ безопасности. CCM, например, представляет собой комбинацию режима шифрования CBC-MAC и CTR. Мы можем различными способами снизить безопасность CCM до безопасности этих режимов. Как правило, при использовании тега MAC полной длины безопасность CCM сводится к безопасности блочного шифра (при условии, что используются уникальный одноразовый номер и случайный ключ).

Под сокращение мы подразумеваем то, что мы можем привести аргумент в пользу эквивалентности.Например, если безопасность CTR сводится к безопасности шифра, мы говорим, что он так же безопасен, как и последний. По этой причине, если кто-то может взломать шифр, он также может сломать режим CTR. (Строго говоря, безопасность CTR сводится к определению того, является ли шифр PRP.)

Итак, в этом контексте, если мы говорим, что CCM сводится к безопасности шифра с точки зрения правильной псевдослучайной перестановки (PRP), то, если мы сможем взломать шифр (показав, что это не PRP), мы, вероятно, сможем взломать CCM.Точно так же GCM сводится к безопасности шифра для конфиденциальности и универсальному хешированию для MAC. Сложнее доказать, что может быть безопасным.

Симметричное шифрование 101: определение, как оно работает и когда используется

Шифрование с симметричным ключом является частью практически всего, что вы делаете в Интернете.

Мы разберем все, что вам нужно знать о том, что это такое, как и где вы его используете…

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

Но что такое шифрование с симметричным ключом? Если заглянуть «под капот», как работает симметричное шифрование? И какую роль это играет в вашей повседневной жизни в Интернете?

Давайте разберемся.

Примечание редактора: Эта статья является первой в серии статей о симметричном шифровании. Обязательно ознакомьтесь со статьями по теме ниже:

Что такое симметричное шифрование и для чего оно нужно? Определение и объяснение

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

На случай, если это будет полезно, давайте быстро рассмотрим, как работает шифрование в целом:

  1. Отправитель использует ключ шифрования (обычно строку букв и цифр) для шифрования своего сообщения.
  2. Зашифрованное сообщение, называемое зашифрованным текстом, выглядит как зашифрованные буквы и никому не может быть прочитано в пути.
  3. Получатель использует ключ дешифрования для преобразования зашифрованного текста обратно в читаемый текст.
Это пример использования шифрования AES 128.

В приведенном выше примере мы использовали один и тот же ключ для шифрования и дешифрования, что означает, что это симметричное шифрование.

Только эти две стороны (отправитель и получатель) могут читать и получать доступ к данным. Вот почему его также иногда называют шифрованием с секретным ключом , шифрованием с секретным ключом , криптографией с секретным ключом , симметричным шифрованием и шифрованием с симметричным ключом .

Как работает шифрование с симметричным ключом? Этот упрощенный рисунок иллюстрирует основную концепцию работы шифрования с симметричным ключом: два идентичных ключа шифруют и дешифруют данные.

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

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

Симметричное шифрование ключей — не новая концепция

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

Ранний пример симметричного шифрования — и, вероятно, самый известный симметричный шифр — приписывается римскому генералу Юлию Цезарю.Этот конкретный шифр известен как шифр Цезаря (подробнее об этом через пару минут). Однако были и другие типы симметричных шифров, которые существовали на протяжении всей истории, включая все, от шифра Виженера, восходящего к 1500-м годам, до современного алгоритма AES (подробнее об этом позже).

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

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

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

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

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

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

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

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

Как работает базовый шифр смещения (подстановочный шифр)

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

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

Иллюстрация того, как работает шифр сдвига

Представьте, что вы записываете весь алфавит в одну длинную строку. А когда вы используете шифр сдвига, вы сдвигаете любую букву X на количество пробелов.Итак, если вы переместите букву «G» на девять пробелов, она станет «P». Буква «О» превратилась бы в «Х». Это означает, что сообщение «Доброе утро, солнышко», например, затем становится «Pxxm vxawrwp bdwbqrwn», когда вы сдвигаете каждую букву на девять пробелов вправо.

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

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

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

Шифрование с симметричным ключом является частью экосистемы инфраструктуры открытого ключа (PKI), которая позволяет безопасно обмениваться данными через небезопасный Интернет путем преобразования данных простого текста (читаемых) в нераспознаваемый зашифрованный текст. Фактически, вы используете технологии и процессы на основе PKI прямо сейчас как часть вашего подключения к TheSSLStore.com для чтения этой статьи.

Снимок экрана со значком замка в адресной строке браузера (при использовании Google Chrome).

Видите этот замок в адресной строке браузера? Это означает, что на нашем веб-сайте установлен сертификат безопасности веб-сайта (сертификат SSL / TLS), и вы используете безопасное зашифрованное соединение для отправки данных. Это то, что помогает подключиться к нашему веб-сайту, используя безопасный протокол HTTPS вместо небезопасного протокола HTTP.

Это также означает, что ваш браузер (клиент) уже прошел процесс:

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

Принцип работы HTTPS заключается в том, что мы используем асимметричное шифрование для первой аутентификации сервера веб-сайта и обмена симметричными ключами сеанса. Это часть процесса, известного как рукопожатие TLS, у которого есть три версии (TLS 1.0, TLS 1.2 и TLS 1.3). После этого мы используем симметричное шифрование для фактического объема шифрования данных, которое происходит во время вашего сеанса.

В общем, рукопожатие TLS:

  • Позволяет нашему веб-серверу аутентифицироваться в вашем браузере (веб-клиент),
  • Устанавливает параметры для использования для безопасной связи (например, решает, какой алгоритм шифрования использовать),
  • Определяет, какой протокол обмена ключами использовать, а
  • Генерирует сеансовый ключ, который знают только две взаимодействующие стороны, используя этот алгоритм и другие общедоступные и частные переменные.

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

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

Управляйте цифровыми сертификатами как начальник

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

Симметричные алгоритмы шифрования

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

  • Стандарт шифрования данных (DES) — DES — это тип блочного шифра, который шифрует данные в 64-битных блоках и использует один ключ одного из трех размеров (64-битный, 128-битный и 192-битный ключи. ).Однако один из каждых 8 битов является битом четности, а это означает, что 64-битный ключ одинарной длины действительно похож на 56-битный ключ. Хотя DES является одним из первых алгоритмов симметричного шифрования, он считается небезопасным и не рекомендуется.
  • Triple Data Encryption Standard (TDEA / 3DES) — В отличие от DES, тройной DES может использовать два или три ключа, что позволяет этому алгоритму использовать несколько раундов шифрования (или, точнее, раунд шифрования, раунд дешифрования). , и еще один раунд шифрования).Хотя 3DES более безопасен, чем его предшественник DES, он не так безопасен, как его преемник, AES.
  • Advanced Encryption Standard (AES) — Этот алгоритм шифрования чаще всего используется в Интернете. Усовершенствованный стандарт шифрования более безопасен и эффективен, чем DES и 3DES, с параметрами ключа: 128, 192 и 256 бит. Однако, хотя это также тип блочного шифра, он работает иначе, чем DES и 3DES, поскольку основан на сети замещения-перестановки вместо шифра Фейстеля.

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

Чтобы симметричное шифрование работало, ключ должен оставаться в секрете…

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

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

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

Remote Key Distribution: Как безопасно поделиться ключом для упрощения симметричного шифрования

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

Для этого вам нужно отправить секретный ключ через Интернет, что, как вы знаете, совсем не безопасно. В конце концов, ваше интернет-соединение проходит через потенциально десятков различных точек соприкосновения. Это означает, что любой Том, Дик или Гарри — любой киберпреступник, правительство или кто-либо еще, кого вы не хотите читать свои сообщения, — может перехватить ключ в пути и с легкостью расшифровать ваши сообщения, и вы не станете мудрее.Это известно как атака «человек посередине» (MitM).

Итак, отправка данных (особенно ключей) через Интернет — не лучшая идея, а значит, нам нужно искать альтернативный метод. Именно здесь вступают в игру асимметричные тактики, такие как методы асимметричного обмена ключами (т. Е. Генерация ключей), такие как RSA и Diffie-Hellman.

Роль протоколов обмена ключами

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

Исторически симметричное шифрование сочетается с асимметричными алгоритмами RSA или Диффи-Хеллмана (т. Е. Протоколами обмена ключами) для процесса обмена / генерации ключей. Однако у этих двух алгоритмов разные роли.

RSA против ключевых бирж Диффи-Хеллмана

Алгоритм шифрования RSA, который расшифровывается как Rivest-Shamir-Adleman (фамилии трех человек, которые его создали), представляет собой механизм аутентификации и обмена ключами, который обычно используется в процессе установления связи TLS 1.2. При обмене ключами RSA шифрование с открытым ключом облегчает обмен предварительным секретом и случайным образом сгенерированным числом от клиента, которые вместе генерируют общий сеансовый ключ.

При обмене ключами Диффи-Хеллмана сервер и клиент вместо этого взаимно согласовывают значение, которое используется для ключа сеанса.(Подробнее об этом чуть позже.)

Однако использование RSA для обмена ключами не одобряется (хотя некоторые системы все еще используют его) из-за уязвимостей, обнаруженных криптологом Даниэлем Блейхенбахером. Фактически, комплекты шифров для обмена ключами RSA (и неэфемерные группы Диффи-Хеллмана) были объявлены устаревшими с развертыванием TLS 1.3 в попытке обеспечить совершенную прямую секретность (которая использует эфемерный ключ). Таким образом, обмен ключами RSA был заменен эксклюзивным использованием обменов эфемерными ключами Диффи-Хеллмана.

Алгоритм обмена ключами Диффи-Хеллмана — это система распределения открытых ключей, которая использует модульную арифметику для получения согласованного секретного номера (сеансового ключа). Итак, как видите, наименование алгоритма Диффи-Хеллмана «шифровальным» на самом деле вводит в заблуждение, потому что его нельзя использовать для шифрования или дешифрования чего-либо. И это не столько «обмен ключами», сколько ключевой процесс поколения . Да, происходит обмен переменными, но вы все еще создаете ключ на основе этих обменов.

Диффи-Хеллман использует обмен общедоступными переменными (числами) для создания общего решения, известного как сеансовый ключ. Этот секретный сеансовый ключ используется для обмена данными по защищенному каналу, защищенному симметричным шифрованием.

Посмотрите это отличное видео, чтобы увидеть, как работает процесс обмена ключами Диффи-Хеллмана с использованием цветов:

Насколько надежны симметричные ключи?

Надежность любого криптографического ключа зависит от нескольких конкретных соображений.

  • Длина ключа,
  • Случайность (энтропия) того, как он был сгенерирован, и
  • Сколько времени требуется, чтобы отменить его, чтобы вычислить, — это отдельные компоненты.

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

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

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

Итак, теперь, когда мы знаем, что такое симметричное шифрование и как оно работает, как оно используется в реальном мире?

Примеры того, где вы уже используете симметричное шифрование

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

Банковское дело

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

Это отличается от требования No. 4, в котором основное внимание уделяется защите данных в пути. Это все об использовании асимметричного шифрования (в основном, SSL / TLS и HTTPS, о которых мы говорили ранее).

Данные в состоянии покоя

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

Хотите знать, какие продукты или услуги вы используете, которые включают симметричное шифрование в свои платформы или инструменты? Вот лишь несколько таких сервисов:

  • CodeGuard — CodeGuard — это инструмент резервного копирования веб-сайтов, который использует шифрование AES-256 для защиты ваших резервных копий.
  • Google Suite — многие сервисы Google G Suite используют шифрование данных при хранении (в дополнение к шифрованию при передаче через HTTPS) для защиты ваших данных.
  • Microsoft Azure — шифрование Azure использует симметричное шифрование для быстрого шифрования и дешифрования большого количества данных.
  • SalesForce — Платформа SaleForce использует шифрование AES-256 для защиты данных в состоянии покоя.

HTTPS и безопасность веб-сайтов

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

Итак, это означает, что симметричное шифрование является неотъемлемым компонентом безопасности веб-сайта.

Последние мысли о шифровании симметричного ключа

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

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

Хотя симметричная криптография — старый метод шифрования, она по-прежнему занимает неоценимое место в нашем цифровом мире.

алгоритмов симметричного шифрования: Live Long & Encrypt

Как и триблы в

Star Trek , симметричное шифрование присутствует повсюду. Мы изучим алгоритмы с симметричными ключами и познакомим вас с тем, что ни один человек, не являющийся ИТ-специалистом, не посещал до .

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

(Да, я знаю, сегодня я действительно высоко поднимаю свой флаг ботаника. Хотя увлекательные алгоритмы с симметричными ключами не совсем «легкие» или легкие для чтения — так что я должен немного повеселиться, когда пишу. Черт возьми, Джим, я писатель по кибербезопасности, а не криптограф.)

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

Сделайте так.

Давайте разберемся.

Примечание редактора: Эта статья является первой в серии статей о симметричном шифровании. Обязательно ознакомьтесь со статьями по теме ниже:

Что такое симметричный алгоритм и как он работает?

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

Чувствуете, что вам нужен универсальный переводчик? Хорошо, давайте разберемся еще немного.

Симметричные алгоритмы шифрования используются (в сочетании с ключом шифрования) для двух основных задач:

  1. Шифрование. Преобразовать читаемый текст (открытый текст) в нечитаемый зашифрованный текст (зашифрованный текст).
  2. Расшифровать. Преобразует зашифрованный текст обратно в открытый текст.

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

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

Симметричные алгоритмы шифрования на самом деле известны под несколькими разными именами:

  • Алгоритмы с симметричным ключом ,
  • Симметричные шифры ,
  • Алгоритмы с секретным ключом и
  • Массовые шифры . (О массовых шифрах мы поговорим чуть позже. )

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

Этот пример сообщения был зашифрован с использованием алгоритма симметричного шифрования AES 128. Цель здесь — просто показать вам, как работает симметричная криптография.

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

Что на самом деле делают алгоритмы симметричного шифрования?

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

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

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

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

Вот почему люди часто обращаются к симметричному шифрованию для кодирования больших объемов данных.

Что определяет надежность алгоритма симметричного шифрования?

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

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

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

Алгоритмы симметричного шифрования не могут работать сами по себе в публичных каналах

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

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

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

Хотя это не было бы проблемой во вселенной Star Trek , где вы могли бы просто перемещаться из одного места в другое за считанные секунды, это невозможно в нашем мире без транспортеров 21 -го -го века.Здесь люди ежедневно и ежедневно обмениваются информацией с веб-серверами по всему миру. Это означает, что люди не могут собраться заранее, чтобы раздать или получить ключи. Таким образом, мы должны полагаться на другие средства для безопасного обмена ключами с другими сторонами.

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

Асимметричные методы делают возможным безопасное симметричное шифрование через Интернет

Рассмотрим в качестве примера ваше подключение к нашему сайту. Видите значок замка в браузере? Это означает, что вы подключены к защищенному веб-сайту.

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

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

Конечно, существует несколько версий рукопожатия — TLS 1.0, TLS 1.2, TLS 1.3 — и есть определенные различия в том, как они работают. (Например, Инженерная рабочая группа Интернета [IETF] настаивает на строгом использовании шифров только с прямой секретностью в TLS 1.3 — но это тема для другого времени.) Просто знайте, что только рукопожатие TLS 1.2 должно использоваться как минимум . По состоянию на октябрь 2020 года Qualys SSL Labs сообщает, что 99% сайтов поддерживают протокол TLS 1.2, а 39,8% поддерживают TLS 1.3 протокол.

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

  • Протокол (TLS)
  • Асимметричный алгоритм обмена ключами (например, Диффи-Хеллмана)
  • Шифр ​​массового шифрования
  • Цифровая подпись
  • Хэш-функция (например, SHA2-2)
  • Код аутентификации сообщения (MAC) function

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

Два типа симметричных алгоритмов (шифров)

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

Блочные шифры

В этом типе шифра данные открытого текста разбиваются на группы битов фиксированной длины, известные как блоки (которые обычно соединяются посредством процесса, известного как цепочка).Затем каждый блок шифруется как единое целое, что немного замедляет этот процесс. А если данных недостаточно для полного заполнения блока, затем используется «заполнение» (обычно согласованное количество нулей), чтобы гарантировать, что блоки соответствуют требованиям фиксированной длины.

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

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

Потоковые шифры

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

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

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

Список симметричных алгоритмов: 3 наиболее распространенных типа симметричных алгоритмов

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

1. Стандарт шифрования данных (DES)

Первым в нашем списке идет стандарт шифрования данных. DES, также известный как DEA (сокращение от «алгоритм шифрования данных»), является одним из первых алгоритмов симметричного шифрования, который с тех пор считается устаревшим. Он основан на шифре Фейстеля (как и многие другие разновидности блочных шифров) и фактически считался одним из первых симметричных алгоритмов, которые были приняты в качестве Федерального стандарта обработки информации (FIPS) в 1976 году.

DES восходит к началу 1970-х годов, когда его первоначальная форма («Люцифер») была разработана криптографом IBM Хорстом Фейстелем.IBM сообщает, что метод шифрования был первоначально создан по заказу Lloyds Bank из Великобритании. Национальное бюро стандартов (теперь известное как Национальный институт стандартов или сокращенно NIST) в конечном итоге занялось поиском предложений по коммерческому приложению для шифрования, и IBM представила его вариант. Его даже хотели использовать Агентство национальной безопасности (АНБ) для защиты своих данных.

Этот тип симметричного шифрования сопоставляет входные данные определенной длины с выходными данными определенной длины.Таким образом, он работает с 64-битными блоками, что означает, что он может шифровать данные группами до 64 блоков одновременно, и имеет размер ключа 56 бит. К ключу также добавлено 8 дополнительных битов четности, которые служат способом проверки ошибок передачи данных. Однако важно отметить, что биты четности — это не то, что вы когда-либо использовали для шифрования.

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

Чтобы узнать больше о том, как работают шифрование DES и сети Feistel Networks, посмотрите это замечательное видео от Coursera и Стэнфордского университета.

Документ стандарта шифрования данных (DES) (FIPS PUB 46-3) был официально отозван 19 мая 2005 г. вместе с документами FIPS 74 и FIPS 81. Министр торговли Национального института стандартов и технологий опубликовал следующее в Федеральный регистр:

«Эти FIPS отозваны, потому что FIPS 46-3, DES больше не обеспечивает безопасность, необходимую для защиты информации федерального правительства. FIPS 74 и 81 являются связанными стандартами, которые обеспечивают реализацию и работу DES ».

На смену шифрованию

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

Теперь давайте исследуем эти два других типа алгоритмов симметричного шифрования.

2. Алгоритм тройного шифрования данных (TDEA)

Алгоритм тройного шифрования данных, который был создан в конце 1990-х годов, немного сложен, так как на самом деле используется несколько сокращений: TDEA, TDES и 3DES. Но, как вы, наверное, догадались по названию, 3DES основана на концепции DES, но с некоторыми особенностями.

В отличие от своего предшественника, TDEA использует несколько отдельных ключей для шифрования данных — один вариант TDEA использует два ключа, а другой вариант использует три ключа (отсюда и «тройка» в его названии). Более сильный из двух — тот, который использует три ключа.

Вот иллюстрация того, как работает трехключевой процесс TDEA:

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

Использование нескольких ключей замедляет обработку данных и увеличивает вычислительные затраты, поэтому организации часто пропускают 3DES и сразу переходят к использованию AES.

TDEA работает с приличным размером ключа 168 бит.Однако, как и DES, 3DES также работает с небольшими 64-битными блоками. Небольшой размер блока сделал его уязвимым для уязвимости sweet32 (CVE-2016-2183 и CVE-2016-6329) или так называемой атаки дня рождения sweet32. Этот эксплойт использует уязвимость, которая позволяет непреднамеренным сторонам получить доступ к частям данных, зашифрованных DES / TDEA.

Алгоритм шифрования с симметричным ключом TDEA устарел с точки зрения его полезности для криптографической защиты в 2023 году. Однако тем временем NIST SP 800-76 Rev.2 указывает, что 3DES может использоваться организациями федерального правительства для защиты конфиденциальных несекретных данных при условии, что они используются «в контексте программы тотальной безопасности». Такая программа будет включать:

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

3. Расширенный стандарт шифрования (AES)

AES — это наиболее распространенный тип алгоритма симметричного шифрования, который мы используем сегодня.Фактически, даже АНБ использует шифрование AES для защиты своих конфиденциальных данных.

AES — это вариант семейства алгоритмов симметричного шифрования Rijndael. В отличие от своих аналогов DES или TDEA, он основан на сети замещения-перестановки. Таким образом, он использует это в качестве основы вместо шифра Фейстеля. Вы обнаружите, что передовой стандарт шифрования используется для всего, от шифрования SSL / TLS до безопасности беспроводной сети и процессора. Это быстро, безопасно и существенно не увеличивает накладные расходы на обработку (по крайней мере, при использовании правильной клавиши).

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

Всего имеется четыре подпроцесса шифрования AES:

  1. AddRoundKey
  2. SubBytes
  3. ShiftRows
  4. MixColumns

Раунды, которые выполняются с данными открытого текста, используют замены из таблицы поиска. Итак, один из раундов выглядит примерно так:

Это иллюстративный пример операции ShiftRows.

AES, который стал новым стандартом шифрования, одобренным FIPS после замены DES и замены 3DES, имеет максимальный размер ключа до 256 бит. Это примерно в 4,5 раза больше, чем ключ DES. Еще больше, и это было бы непрактично для крупномасштабных приложений. Теперь размер ключа определяет, сколько раундов операций будет выполнено — например, 128-битный ключ будет иметь 10 раундов, тогда как 256-битный ключ будет иметь 14.

Конечно, шифрование AES невероятно надежное. Итак, любые попытки взломать AES с помощью грубой силы с использованием современных компьютерных технологий «бесполезны», как любит говорить определенный коллектив кибернетиков.Даже лейтенант-коммандер Дейта, вероятно, столкнется с трудностями при таких вычислениях. Я говорю это потому, что даже квантовые компьютеры не должны иметь такого сильного влияния на алгоритм симметричного шифрования, как, скажем, на современные методы асимметричного шифрования. (Для методов симметричного шифрования потребуется, чтобы ключи большего размера были квантово-устойчивыми, тогда как методы с открытым ключом больше не будут безопасными — точка.)

Чтобы получить более подробное представление о расширенном стандарте шифрования, обязательно ознакомьтесь с другой нашей статьей по этой теме.Здесь вы получите технический взгляд на то, как работает AES.

Конечно, это не единственные используемые три симметричных алгоритма…

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

  • Международный алгоритм шифрования данных (IDEA, 64-битный шифр с 128-битным ключом),
  • Blowfish (64-битный шифр с ключами до 448 бит),
  • Twofish (128-битный шифр с ключами). до 256 бит),
  • Multiple Rivest Ciphers (включая RC2, RC4, RC5, RC6),
  • KASUMI (шифр, использующий 128-битный ключ,
  • SALSA20 и
  • CHACHA20.

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

Где вы найдете симметричные алгоритмы в действии

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

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

  • Обмен данными веб-сайтов
  • G Suite онлайн-сервисов Google
  • Инструмент резервного копирования веб-сайтов CodeGuard
  • Платформа SalesForce

Что мы сделали для алгоритмов симметричного шифрования (TL; DR)

Не хотелось погрузиться во всю техническую чушь? (Или не хотелось читать мои ботанические сравнения алгоритмов симметричного шифрования из «Звездного пути»?) Не беспокойтесь.Вот несколько основных выводов из этой статьи об алгоритмах с симметричным ключом:

  • Алгоритмы шифрования — это в основном пошаговые инструкции для выполнения криптографических функций (таких как шифрование, дешифрование, хеширование и т. Д.). Алгоритмы бывают асимметричными и симметричными. В первом случае один ключ шифрует данные, а другой дешифрует данные. В последнем случае один ключ выполняет функции шифрования и дешифрования.
  • Симметричные алгоритмы — это эффективные процессы, предназначенные для шифрования данных в защищенных, закрытых для общего доступа каналах.
  • Процесс, известный как рукопожатие TLS, позволяет использовать форму симметричного шифрования в общедоступных каналах.
  • В последние годы использовалось много различных типов алгоритмов с симметричным ключом. Три наиболее распространенных — DES, TDEA / 3DES и AES.

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

Симметричное шифрование ключей

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

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

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

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

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

При использовании алгоритмов симметричного шифрования данные преобразуются в форму, недоступную для понимания тем, у кого нет секретного ключа для их расшифровки. Как только предполагаемый получатель, владеющий ключом, получает сообщение, алгоритм меняет свое действие так, чтобы сообщение было возвращено в исходную и понятную форму.Секретный ключ, который используют отправитель и получатель, может быть конкретным паролем / кодом или случайной строкой букв или цифр, которые были сгенерированы безопасным генератором случайных чисел (ГСЧ). Для шифрования банковского уровня симметричные ключи должны быть созданы с использованием ГСЧ, сертифицированного в соответствии с отраслевыми стандартами, такими как FIPS 140-2.

Существует два типа алгоритмов симметричного шифрования:

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

  2. Потоковые алгоритмы. Данные шифруются во время передачи, а не хранятся в памяти системы.

Некоторые примеры алгоритмов симметричного шифрования включают:

  • AES (расширенный стандарт шифрования)

  • DES (стандарт шифрования данных)

  • IDEA (международный алгоритм шифрования данных)

  • Blowfish (замена DES или IDEA)

  • RC4 (Rivest Cipher 4)

  • RC5 (Rivest Cipher 5)

  • RC6 (Rivest Cipher 6)

AES, DES, IDEA, Blowfish, RC5 и RC6 — блочные шифры.RC4 — это поточный шифр.

DES

В «современных» вычислениях DES был первым стандартизированным шифром для защиты электронных коммуникаций и используется в различных вариантах (например, 3DES с двумя или тремя ключами). Оригинальный DES больше не используется, так как он считается слишком «слабым» из-за вычислительной мощности современных компьютеров. Даже 3DES не рекомендуется NIST и PCI DSS 3.2, как и все 64-битные шифры. Однако 3DES по-прежнему широко используется в чиповых картах EMV.

AES

Наиболее часто используемый симметричный алгоритм — это Advanced Encryption Standard (AES), который первоначально был известен как Rijndael.Это стандарт, установленный Национальным институтом стандартов и технологий США в 2001 году для шифрования электронных данных, объявленный в US FIPS PUB 197. Этот стандарт заменяет DES, который использовался с 1977 года. Согласно NIST, шифр AES имеет размер блока 128 бит, но может иметь три разные длины ключа, как показано для AES-128, AES-192 и AES-256.

Для чего используется симметричное шифрование?

Хотя симметричное шифрование является более старым методом шифрования, оно работает быстрее и эффективнее, чем асимметричное шифрование, которое сказывается на сетях из-за проблем с производительностью, связанных с размером данных и интенсивным использованием ЦП. Из-за лучшей производительности и более высокой скорости симметричного шифрования (по сравнению с асимметричным) симметричная криптография обычно используется для массового шифрования / шифрования больших объемов данных, например для шифрования базы данных. В случае с базой данных секретный ключ может быть доступен только самой базе данных для шифрования или дешифрования.

Некоторые примеры использования симметричной криптографии:

  • Платежные приложения, такие как транзакции по картам, где PII должна быть защищена для предотвращения кражи личных данных или мошеннических сборов

  • Валидации для подтверждения того, что отправителем сообщения является тот, кем он себя называет

  • Генерация или хеширование случайных чисел

Управление ключами для симметричного шифрования — что нам нужно учитывать

К сожалению, симметричное шифрование имеет свои недостатки.Его самым слабым местом являются аспекты управления ключами, в том числе:

Исчерпание ключа

Симметричное шифрование страдает тем, что при каждом использовании ключа «утечка» некоторой информации, которая потенциально может быть использована злоумышленником для восстановления ключа. Защита от такого поведения включает использование иерархии ключей для предотвращения чрезмерного использования главных ключей или ключей шифрования и соответствующую ротацию ключей, которые действительно шифруют объемы данных. Для обеспечения управляемости оба этих решения требуют грамотных стратегий управления ключами, как будто (например) списанный ключ шифрования не может быть восстановлен, данные потенциально потеряны.

Данные об авторстве

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

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

Управление ключами в крупных масштабах

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

Рассмотрим развертывание платежной карты EMV: миллионы карт, умноженные на несколько ключей для каждой карты, требуют специального обеспечения и системы управления ключами.

Заключение

Обслуживание крупномасштабных систем симметричного шифрования — очень сложная задача. Это особенно верно, когда мы хотим достичь безопасности и контролируемости банковского уровня, когда корпоративная и / или ИТ-архитектура децентрализована / географически распределена.

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

Ожидается, что квантовые вычисления появятся в ближайшие 5-10 лет. Уже сегодня NIST советует заменить широко используемый алгоритм 3DES алгоритмами, которые мы считаем более безопасными, исходя из сегодняшних знаний.

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

Ссылки и дополнительная информация

Симметричное и асимметричное шифрование — в чем разница?

31 декабря, 2015 Джейсон Пармс

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

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

Алгоритмы

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

Криптография

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

Условия криптографии

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

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

Это простейший вид шифрования, в котором используется только один секретный ключ для шифрования и дешифрования информации. Симметричное шифрование — старый и самый известный метод. Он использует секретный ключ, который может быть числом, словом или цепочкой случайных букв. Он смешан с обычным текстом сообщения для изменения содержимого определенным образом. Отправитель и получатель должны знать секретный ключ, который используется для шифрования и дешифрования всех сообщений.Blowfish, AES, RC4, DES, RC5 и RC6 являются примерами симметричного шифрования. Наиболее широко используемый симметричный алгоритм — AES-128, AES-192 и AES-256.

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

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

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

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

Асимметричное шифрование в основном используется в повседневных каналах связи, особенно в Интернете. Популярный алгоритм шифрования с асимметричным ключом включает в себя методы EIGamal, RSA, DSA, Elliptic curve, PKCS.

Асимметричное шифрование в цифровых сертификатах

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

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

SSL / TLS использует как асимметричное, так и симметричное шифрование, быстро просматривайте сертификаты SSL с цифровой подписью, выданные доверенными центрами сертификации (ЦС).

Разница между симметричным и асимметричным шифрованием

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

Заключение

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

Симметричные и асимметричные шифры | IT Pro

Симметричные шифры — самые старые и наиболее часто используемые криптографические шифры .В симметричном шифре ключ, который расшифровывает зашифрованный текст, такой же, как (или может быть легко получен из) ключ, который шифрует открытый текст. Этот ключ часто называют секретным ключом. Наиболее широко используемые симметричные шифры — DES и AES.

В отличие от симметричного шифра, асимметричный шифр использует два ключа: один ключ, который хранится в секрете и известен только одному человеку (закрытый ключ), и другой ключ, который является открытым и доступен для всех (открытый ключ). Два ключа математически взаимосвязаны, но вывести один ключ из другого невозможно.Хорошо известными асимметричными шифрами являются алгоритм Диффи-Хеллмана, RSA и DSA.

Каковы преимущества и недостатки использования асимметричного шифра вместо симметричного?

  • Важным преимуществом асимметричных шифров перед симметричными шифрами является то, что для обмена открытым ключом секретный канал не требуется. Получатель нужно только быть уверенным в подлинности открытого ключа. Симметричный шифрам требуется секретный канал для отправки секретного ключа, сгенерированного в одна сторона канала связи — на другую сторону.
  • Асимметричные шифры также создают меньше проблем с управлением ключами, чем симметричные шифры. Только 2n ключей необходимы для n сущностей для безопасного взаимодействия с друг друга. В системе, основанной на симметричных шифрах, вам понадобится n (n? 1) / 2 секретных ключа. Например, в организации с 5000 сотрудников развертывание симметричного решения безопасности на основе криптографии потребует большего более 12 миллионов ключей. Для развертывания асимметричного решения потребуется всего 10 000 ключей.
  • Недостатком асимметричных шифров перед симметричными шифрами является то, что они как правило, примерно «в 1000 раз медленнее». Под этим я подразумеваю, что это может занять около В 1000 раз больше процессорного времени для обработки асимметричного шифрования или дешифрования чем симметричное шифрование или дешифрование.
  • Другой недостаток состоит в том, что симметричные шифры могут быть взломаны через атака «грубой силы», при которой используются все возможные ключи до правого ключ найден.

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

Обновлено: 08.02.2021 — 23:53

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *