Что такое симметричное шифрование | Энциклопедия «Касперского»
Симметричное шифрование — это способ шифрования данных, при котором один и тот же ключ используется и для кодирования, и для восстановления информации. До 1970-х годов, когда появились первые асимметричные шифры, оно было единственным криптографическим методом.
Принцип работы симметричных алгоритмов
В целом симметричным считается любой шифр, использующий один и тот же секретный ключ для шифрования и расшифровки.
Например, если алгоритм предполагает замену букв числами, то и у отправителя сообщения, и у его получателя должна быть одна и та же таблица соответствия букв и чисел: первый с ее помощью шифрует сообщения, а второй — расшифровывает.
Однако такие простейшие шифры легко взломать — например, зная частотность разных букв в языке, можно соотносить самые часто встречающиеся буквы с самыми многочисленными числами или символами в коде, пока не удастся получить осмысленные слова.
Поэтому современные симметричные алгоритмы считаются надежными, если отвечают следующим требованиям:
- Выходные данные не должны содержать статистических паттернов исходных данных (как в примере выше: наиболее частотные символы осмысленного текста не должны соответствовать наиболее частотным символам шифра).
- Шифр должен быть нелинейным (то есть в шифрованных данных не должно быть закономерностей, которые можно отследить, имея на руках несколько открытых текстов и шифров к ним).
Большинство актуальных симметричных шифров для достижения результатов, соответствующих этим требованиям, используют комбинацию операций подстановки (замена фрагментов исходного сообщения, например букв, на другие данные, например цифры, по определенному правилу или с помощью таблицы соответствий) и перестановки (перемешивание частей исходного сообщения по определенному правилу), поочередно повторяя их.
Виды алгоритмов симметричного шифрования
В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:
- блочные;
- потоковые.
Блочные
К актуальным блочным алгоритмам относятся:
- AES
- ГОСТ 28147-89
- RC5
- Blowfish
- Twofish
Потоковое шифрование данных предполагает обработку каждого бита информации с использованием гаммирования, то есть изменения этого бита с помощью соответствующего ему бита псевдослучайной секретной последовательности чисел, которая формируется на основе ключа и имеет ту же длину, что и шифруемое сообщение.
Потоковое шифрование в настоящее время используют следующие алгоритмы:
Достоинства и недостатки симметричного шифрования
Симметричные алгоритмы требуют меньше ресурсов и демонстрируют большую скорость шифрования, чем асимметричные алгоритмы. Большинство симметричных шифров предположительно устойчиво к атакам с помощью квантовых компьютеров, которые в теории представляют угрозу для асимметричных алгоритмов.
Слабое место симметричного шифрования — обмен ключом. Поскольку для работы алгоритма ключ должен быть и у отправителя, и у получателя сообщения, его необходимо передать; однако при передаче по незащищенным каналам его могут перехватить и использовать посторонние. На практике во многих системах эта проблема решается шифрованием ключа с помощью асимметричного алгоритма.
Область применения симметричного шифрования
Симметричное шифрование используется для обмена данными во многих современных сервисах, часто в сочетании с асимметричным шифрованием. Например, мессенджеры защищают с помощью таких шифров переписку (при этом ключ для симметричного шифрования обычно доставляется в асимметрично зашифрованном виде), а сервисы для видеосвязи — потоки аудио и видео. В защищенном транспортном протоколе TLS симметричное шифрование используется для обеспечения конфиденциальности передаваемых данных.
Симметричные алгоритмы не могут применяться для формирования цифровых подписей и сертификатов, потому что секретный ключ при использовании этого метода должен быть известен всем, кто работает с шифром, что противоречит самой идее электронной подписи (возможности проверки ее подлинности без обращения к владельцу).
Симметричные шифры
Cимметричные шифры
ОглавленияТребования
Общая схема
Виды симметричных шифров
Cимметричные шифр — способ шифрования, в котором для шифрования и расшифрования применяется один и тот же криптографический ключ.
До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование.
Ключ алгоритма должен сохраняться в секрете обеими сторонами. Ключ алгоритма выбирается сторонами до начала обмена сообщениями.
Требования
Полная утрата всех статистических закономерностей исходного сообщения является важным требованием к симметричному шифру.
Для достижения такого шифр должен иметь «эффект лавины» — сильное изменение шифроблока при 1битном изменении входных
Также важным требованием является отсутствие линейности (то есть условия f(a) xor f(b) == f(a xor b)), в противном случае
облегчается применение дифференциального криптоанализа к шифру.
Общая схема
В настоящее время симметричные шифры — это:
установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами.
![](/800/600/https/myslide.ru/documents_4/a77f6955c3704a2e80239a18d0b2fa58/img6.jpg)
Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.
Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных, размеров вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.
Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)
Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.
Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.
Параметры алгоритмов
Параметры:Самое простое объяснение принципа работы современных алгоритмов симметричного шифрования
(Нашёл в твиттере тред с очень крутым объяснением работы симметричных шифров. Его написал 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» (заметьте, что она стала длиннее). В прошлом появлялись алгоритмы шифрования, которые работали подобным образом, но это совсем не так, как работает современное шифрование.
Вместо «перемешивания» букв современное шифрование берёт вашу секретную строку и хитро комбинирует её со случайными данными. Это похоже на rot13 только в двух моментах: шифрование и расшифровка по сути одна и та же операция, и всё происходит «на месте». 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
Симметричные шифры
Симметричные шифрыСимметричные шифры
Симметричные криптосистемы (также симметричное шифрование, симметричные шифры) — способ шифрования, в котором для (за)шифрования и расшифровывания применяется один и тот же криптографический ключ. До изобретения схемы асимметричного шифрования единственным существовавшим способом являлось симметричное шифрование. Ключ алгоритма должен сохраняться в секрете обеими сторонами. Алгоритм шифрования выбирается сторонами до начала обмена сообщениями.
Алгоритмы шифрования и дешифрования данных широко применяются в компьютерной технике в системах сокрытия конфиденциальной и коммерческой информации от злонамеренного использования сторонними лицами. Главным принципом в них является условие, что передатчик и приемник заранее знают алгоритм шифрования, а также ключ к сообщению, без которых информация представляет собой всего лишь набор символов, не имеющих смысла.
Простая перестановка без ключа — один из самых простых методов шифрования. Сообщение записывается в таблицу по столбцам. После того, как открытый текст записан колонками, для образования шифровки он считывается по строкам. Для использования этого шифра отправителю и получателю нужно договориться об общем ключе в виде размера таблицы. Объединение букв в группы не входит в ключ шифра и используется лишь для удобства записи несмыслового текста.
Более практический метод шифрования, называемый одиночной перестановкой по ключу очень похож на предыдущий. Он отличается лишь тем, что колонки таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы.
Для дополнительной скрытности можно повторно шифровать сообщение, которое уже было зашифровано. Этот способ известен под названием двойная перестановка. Для этого размер второй таблицы подбирают так, чтобы длины ее строк и столбцов были другие, чем в первой таблице. Лучше всего, если они будут взаимно простыми. Кроме того, в первой таблице можно переставлять столбцы, а во второй строки. Наконец, можно заполнять таблицу зигзагом, змейкой, по спирали или каким-то другим способом. Такие способы заполнения таблицы если и не усиливают стойкость шифра, то делают процесс шифрования гораздо более занимательным.
Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее, их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим.
В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу — 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».
Шифрование по магическому квадрату производилось следующим образом. Например, требуется зашифровать фразу: «Приезжаю сегодня». Буквы этой фразы вписываются последовательно в квадрат согласно записанным в них числам: позиция буквы в предложении соответствует порядковому числу. В пустые клетки ставится точка.
После этого шифрованный текст записывается в строку (считывание производится слева направо, построчно):
. ИРДЗЕГЮСЖАОЕЯНП
При расшифровывании текст вписывается в квадрат, и открытый текст читается в последовательности чисел «магического квадрата» Программа должна генерировать «магические квадраты» и по ключу выбирать необходимый. Размер квадрата больше чем 3х3.
Полная утрата всех статистических закономерностей исходного сообщения является важным требованием к симметричному шифру. Для этого шифр должен иметь «эффект лавины» — должно происходить сильное изменение шифроблока при 1битном изменении входных данных (в идеале должны меняться значения 1/2 бит шифроблока).
Также важным требованием является отсутствие линейности (то есть условия f(a) xor f(b) == f(a xor b)), в противном случае облегчается применение дифференциального криптоанализа к шифру.
В настоящее время симметричные шифры — это:
- блочные шифры. Обрабатывают информацию блоками определённой длины (обычно 64, 128 бит), применяя к блоку ключ в установленном порядке, как правило, несколькими циклами перемешивания и подстановки, называемыми раундами.
Результатом повторения раундов является лавинный эффект — нарастающая потеря соответствия битов между блоками открытых и зашифрованных данных.
- поточные шифры, в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.
Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.
Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля. Алгоритм строит схему шифрования на основе функции F(D, K), где D — порция данных, размером вдвое меньше блока шифрования, а K — «ключ прохода» для данного прохода. От функции не требуется обратимость — обратная ей функция может быть неизвестна. Достоинства сети Фейстеля — почти полное совпадение дешифровки с шифрованием (единственное отличие — обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.
Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна — f(a) xor f(b) == f(a xor b)
Операции подстановки выполняются как замена значения некоей части сообщения (часто в 4, 6 или 8 бит) на стандартное, жестко встроенное в алгоритм иное число путем обращения к константному массиву. Операция подстановки привносит в алгоритм нелинейность.
Зачастую стойкость алгоритма, особенно к дифференциальному криптоанализу, зависит от выбора значений в таблицах подстановки (S-блоках). Как минимум считается нежелательным наличие неподвижных элементов S(x) = x, а также отсутствие влияния какого-то бита входного байта на какой-то бит результата — то есть случаи, когда бит результата одинаков для всех пар входных слов, отличающихся только в данном бите.
Существует множество (не менее двух десятков) алгоритмов симметричных шифров, существенными параметрами которых являются:
- стойкость
- длина ключа
- число раундов
- длина обрабатываемого блока
- сложность аппаратной/программной реализации
- сложность преобразования
Блочные шифры:
- AES (англ. Advanced Encryption Standard) — американский стандарт шифрования
- ГОСТ 28147-89 — отечественный стандарт шифрования данных
- DES (англ. Data Encryption Standard) — стандарт шифрования данных в США до AES
- 3DES (Triple-DES, тройной DES)
- RC6 (Шифр Ривеста)
- Twofish
- IDEA (англ.
International Data Encryption Algorithm)
- SEED — корейский стандарт шифрования данных
- Camellia — сертифицированный для использовании в Японии шифр
- CAST (по инициалам разработчиков Carlisle Adams и Stafford Tavares)
- XTEA — наиболее простой в реализации алгоритм
Потоковые шифры:
- RC4 — алгоритм шифрования с ключом переменной длины
- SEAL (Software Efficient Algorithm) — программно-эффективный алгоритм
- WAKE (World Auto Key Encryption algorithm) — всемирный алгоритм шифрования на автоматическом ключе
Достоинства:
- скорость (по данным Applied Cryptography — на 3 порядка выше)
- простота реализации (за счёт более простых операций)
- меньшая требуемая длина ключа для сопоставимой стойкости
- изученность (за счёт большего возраста)
Недостатки:
- сложность управления ключами в большой сети.
Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 — 499500 и т. д.
- сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.
Для компенсации недостатков симметричного шифрования в настоящее время широко применяется комбинированная (гибридная) криптографическая схема, где с помощью асимметричного шифрования передаётся сеансовый ключ, используемый сторонами для обмена данными с помощью симметричного шифрования.
Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне.
Алгоритмы шифрования данных. Симметричные алгоритмы шифрования. Алгоритм шифрования RSA.
![](/800/600/https/myslide.ru/documents_3/f441f4096df0968a4e2f907b94a44248/img15.jpg)
В наш компьютерный век человечество все больше отказывается от хранения информации в рукописном или печатном виде, предпочитая для этого электронные документы. И если раньше крали просто бумаги или пергаменты, то сейчас взламывают именно электронную информацию. Сами же алгоритмы шифрования данных были известны еще с незапамятных времен. Многие цивилизации предпочитали зашифровывать свои уникальные знания, чтобы они могли достаться только человеку сведущему. Но давайте посмотрим, как все это отображается на нашем мире.
Что собой представляет система шифрования данных?
Для начала следует определиться с тем, что собой представляют криптографические системы вообще. Грубо говоря, это некий специальный алгоритм записи информации, который был бы понятен только определенному кругу людей.
В этом смысле постороннему человеку все, что он видит, должно (а в принципе, так и есть) казаться бессмысленным набором символов. Прочесть такую последовательность сможет только тот, кто знает правила их расположения. В качестве самого простого примера можно определить алгоритм шифрования с написанием слов, скажем, задом наперед. Конечно, это самое примитивное, что можно придумать. Подразумевается, что если знать правила записи, восстановить исходный текст труда не составит.
Зачем это нужно?
Для чего все это придумывалось, наверное, объяснять не стоит. Посмотрите, ведь какие объемы знаний, оставшиеся от древних цивилизаций, сегодня находятся в зашифрованном виде. То ли древние не хотели, чтобы мы это узнали, то ли все это было сделано, чтобы человек смог ними воспользоваться только тогда, когда достигнет нужного уровня развития — пока что об этом можно только гадать.
Впрочем, если говорить о сегодняшнем мире, защита информации становится одной из самых больших проблем. Посудите сами, ведь сколько имеется документов в тех же архивах, о которых правительства некоторых стран не хотели бы распространяться, сколько секретных разработок, сколько новых технологий. А ведь все это, по большому счету, и является первоочередной целью так называемых хакеров в классическом понимании этого термина.
На ум приходит только одна фраза, ставшая классикой принципов деятельности Натана Ротшильда: «Кто владеет информацией, тот владеет миром». И именно поэтому информацию приходится защищать от посторонних глаз, дабы ей не воспользовался кто-то еще в своих корыстных целях.
Криптография: точка отсчета
Теперь, прежде чем рассматривать саму структуру, которую имеет любой алгоритм шифрования, немного окунемся в историю, в те далекие времена, когда эта наука только зарождалась.
Считается, что искусство сокрытия данных активно начало развиваться несколько тысячелетий назад до нашей эры. Первенство приписывают древним шумерам, царю Соломону и египетским жрецам. Только много позже появились те же рунические знаки и символы, им подобные. Но вот что интересно: иногда алгоритм шифрования текстов (а в то время шифровались именно они) был таков, что в той же древне-шумерской клинописи один символ мог означать не только одну букву, но и целое слово, понятие или даже предложение. Из-за этого расшифровка таких текстов даже при наличии современных криптографических систем, позволяющих восстановить исходный вид любого текста, становится абсолютно невозможной. Если говорить современным языком, это достаточно продвинутые, как принято сейчас выражаться, симметричные алгоритмы шифрования. На них остановимся отдельно.
Современный мир: виды алгоритмов шифрования
Что касается защиты конфиденциальных данных в современно мире, отдельно стоит остановиться еще на тех временах, когда компьютеры были человечеству неизвестны. Не говоря уже о том, сколько бумаги перевели алхимики или те же тамплиеры, пытаясь скрыть истинные тексты об известных им знаниях, стоит вспомнить, что со времени возникновения связи проблема только усугубилась.
И тут, пожалуй, самым знаменитым устройством можно назвать немецкую шифровальную машину времен Второй мировой под названием «Энигма», что в переводе с английского означает «загадка». Опять же, это пример того, как используются симметричные алгоритмы шифрования, суть которых состоит в том, что шифровщик и дешифровальщик знают ключ (алгоритм), изначально примененный для сокрытия данных.
Сегодня такие криптосистемы используются повсеместно. Самым ярким примером можно считать, скажем, алгоритм шифрования AES256, являющийся международным стандартом. С точки зрения компьютерной терминологии, он позволяет использовать ключ длиной 256 бит. Вообще современные алгоритмы шифрования достаточно разнообразны, а разделить их условно можно на два больших класса: симметричные и асимметричные. Они, в зависимости от области назначения, сегодня применяются очень широко. И выбор алгоритма шифрования напрямую зависит от поставленных задач и метода восстановления информации в исходном виде. Но в чем же состоит разница между ними?
Симметричные и асимметричные алгоритмы шифрования: в чем разница
Теперь посмотрим, какое же кардинальное различие между такими системами, и на каких принципах строится их применение на практике. Как уже понятно, алгоритмы шифрования бывают связаны с геометрическими понятиями симметрии и асимметрии. Что это значит, сейчас и будет выяснено.
Симметричный алгоритм шифрования DES, разработанный еще в 1977 году, подразумевает наличие единого ключа, который, предположительно, известен двум заинтересованным сторонам. Зная такой ключ, нетрудно применить его на практике, чтобы прочитать тот же бессмысленный набор символов, приведя его, так сказать, в читабельный вид.
А что представляют собой асимметричные алгоритмы шифрования? Здесь применяются два ключа, то есть для кодирования исходной информации использует один, для расшифровки содержимого – другой, причем совершенно необязательно, чтобы они совпадали или одновременно находились у кодирующей и декодирующей стороны. Для каждой из них достаточно одного. Таким образом, в очень высокой степени исключается попадание обоих ключей в третьи руки. Однако, исходя из современной ситуации, для многих злоумышленников кражи такого типа особо проблемой и не являются. Другое дело – поиск именно того ключа (грубо говоря, пароля), который подойдет для расшифровки данных. А тут вариантов может быть столько, что даже самый современный компьютер будет обрабатывать их в течение нескольких десятков лет. Как было заявлено, ни одна из имеющихся в мире компьютерных систем взломать доступ к нему и получить то, что называется «прослушкой», не может и не сможет в течение ближайших десятилетий.
Наиболее известные и часто применяемые алгоритмы шифрования
Но вернемся в мир компьютерный. Что на сегодня предлагают основные алгоритмы шифрования, предназначенные для защиты информации на современном этапе развития компьютерной и мобильной техники?
В большинстве стран стандартом де-факто является криптографическая система AES на основе 128-битного ключа. Однако параллельно с ней иногда используется и алгоритм шифрования RSA, который хоть и относится к шифрованию с использованием открытого (публичного) ключа, тем не менее является одним из самых надежных. Это, кстати, доказано всеми ведущими специалистами, поскольку сама система определяется не только степенью шифрования данных, но и сохранением целостности информации. Что касается ранних разработок, к коим относится алгоритм шифрования DES, то он безнадежно устарел, а попытки его замены начали проводиться еще в 1997 году. Вот тогда-то на его основе и возник новый расширенный (Advanced) стандарт шифрования AES (сначала с ключом 128 бит, потом – с ключом 256 бит).
Шифрование RSA
Теперь остановимся на технологии RSA которая относится к системе асимметричного шифрования. Предположим, один абонент отправляет другому информацию, зашифрованную при помощи этого алгоритма.
Для шифрования берутся два достаточно больших числа X и Y, после чего вычисляется их произведение Z, называемое модулем. Далее выбирается некое постороннее число A, удовлетворяющее условию: 1< A < (X — 1) * (Y — 1). Оно обязательно должно быть простым, то есть не иметь общих делителей с произведением (X — 1) * (Y — 1), равным Z. Затем происходит вычисление числа B, но только так, что (A * B — 1) делится на (X — 1) * (Y – 1). В данном примере A – открытый показатель, B – секретный показатель, (Z; A) – открытый ключ, (Z; B) – секретный ключ.
Что происходит при пересылке? Отправитель создает зашифрованный текст, обозначенный как F, с начальным сообщением M, после чего следует возведение в степень A и умножение на модуль Z : F = M**A*(mod Z). Получателю остается вычислить несложный пример: M = F**B*(mod Z). Грубо говоря, все эти действия сводятся исключительно к возведению в степень. По тому же принципу работает и вариант с создание цифровой подписи, но уравнения тут несколько сложнее. Чтобы не забивать пользователю голову алгеброй, такой материал приводиться не будет.
Что же касается взлома, то алгоритм шифрования RSA ставит перед злоумышленником практически нерешаемую задачу: вычислить ключ B. Это теоретически можно было бы сделать с применением доступных средств факторинга (разложением на сомножители исходных чисел X и Y), однако на сегодняшний день таких средств нет, поэтому сама задача становится не то что трудной — она вообще невыполнима.
Шифрование DES
Перед нами еще один, в прошлом достаточно эффективный алгоритм шифрования с максимальной длиной блока 64 бита (символа), из которой значащими являются только 56. Как уже было сказано выше, эта методика уже устарела, хотя достаточно долго продержалась в качестве стандарта криптосистем, применяемых в США даже для оборонной промышленности.
Суть его симметричного шифрования заключается в том, что для этого применяется некая последовательность из 48 бит. При этом для операций используется 16 циклов из выборки ключей в 48 бит. Но! Все циклы по принципу действия аналогичны, поэтому на данный момент вычислить искомый ключ труда не составляет. К примеру, один из самых мощных компьютеров в США стоимостью более миллиона долларов «ломает» шифрование в течение примерно трех с половиной часов. Для машин рангом ниже на то, чтобы вычислить даже последовательность в максимальном ее проявлении, требуется не более 20 часов.
Шифрование AES
Наконец, перед нами самая распространенная и, как считалось до недавнего времени, неуязвимая система – алгоритм шифрования AES. Он сегодня представлен в трех модификациях – AES128, AES192 и AES256. Первый вариант применяется больше для обеспечения информационной безопасности мобильных устройств, второй задействован на более высоком уровне. Как стандарт, эта система была официально внедрена в 2002 году, причем сразу же ее поддержка была заявлена со стороны корпорации Intel, производящей процессорные чипы.
Суть ее, в отличие от любой другой симметричной системы шифрования, сводится к вычислениям на основе полиноминального представления кодов и операций вычисления с двумерными массивами. Как утверждает правительство Соединенных Штатов, для взлома ключа длиной 128 бит дешифратору, пусть даже самому современному, потребуется порядка 149 триллионов лет. Позволим себе не согласиться с таким компетентным источником. Компьютерная техника за последние сто лет сделала скачок, соизмеримый с геометрической прогрессией, так что особо обольщаться не стоит, тем более что сегодня, как оказалось, существуют системы шифрования и покруче, чем те, которые США объявили совершенно стойкими ко взлому.
Проблемы с вирусами и дешифровкой
Конечно же, речь идет о вирусах. В последнее время появились довольно специфичные вирусы-вымогатели, которые шифруют все содержимое жесткого диска и логических разделов на зараженном компьютере, после чего жертва получает письмо с уведомлением о том, что все файлы зашифрованы, а расшифровать их может только указанный источник после оплаты кругленькой суммы.
При этом, что самое важное, указывается, что при шифровании данных была применена система AES1024, то есть длина ключа в четыре раза больше ныне существующей AES256, а количество вариантов при поиске соответствующего дешифратора возрастает просто неимоверно.
А если исходить из заявления правительства США о сроке, отводимом для дешифрования ключа длиной 128 бит, то что можно сказать о времени, которое потребуется на поиск решения для случая с ключом и его вариантами длиной 1024 бита? Вот тут-то США и прокололись. Они ведь считали, что их система компьютерной криптографии совершенна. Увы, нашлись какие-то спецы (судя по всему, на постсоветском пространстве), которые превзошли «незыблемые» американские постулаты по всем параметрам.
При всем этом даже ведущие разработчики антивирусного ПО, в том числе «Лаборатория Касперского», специалисты, создавшие «Доктора Веба», корпорация ESET и многие другие мировые лидеры просто разводят руками, дескать, на расшифровку такого алгоритма попросту нет средств, умалчивая при этом о том, что и времени не хватит. Конечно, при обращении в службу поддержки предлагается отправить зашифрованный файл и, если есть, желательно его оригинал — в том виде, в каком он был до начала шифрования. Увы, даже сравнительный анализ пока не дал ощутимых результатов.
Мир, которого мы не знаем
Да что там говорить, если мы гонимся за будущим, не имея возможности расшифровать прошлое. Если посмотреть на мир нашего тысячелетия, можно заметить, что тот же римский император Гай Юлий Цезарь в некоторых своих посланиях использовал симметричные алгоритмы шифрования. Ну а если взглянуть на Леонардо да Винчи, так вообще становится как-то не по себе от одного осознания того, что в области криптографии этот человек, чья жизнь покрыта неким флером тайны, на века превзошел свою современность.
До сих пор многим не дает покоя так называемая «улыбка Джоконды», в которой есть что-то такое притягательное, чего современный человек понять не способен. Кстати сказать, на картине относительно недавно были найдены некие символы (в глазу, на платье и т. д.), которые явно свидетельствуют о том, что во всем этом содержится какая-то зашифрованная великим гением информация, которую сегодня, увы, извлечь мы не в состоянии. А ведь мы даже не упомянули о разного рода масштабных конструкциях, которые способны были перевернуть понимание физики того времени.
Конечно, некоторые умы склоняются исключительно к тому, что в большинстве случаев было использовано так называемое «золотое сечение», однако и оно не дает ключа ко всему тому огромному хранилищу знаний, которое, как считается, либо нам непонятно, либо потеряно навеки. По всей видимости, криптографам предстоит проделать еще неимоверную кучу работы, чтобы понять, что современные алгоритмы шифрования порой не идут ни в какое сравнение с наработками древних цивилизаций. К тому же, если сегодня существуют общепринятые принципы защиты информации, то те, которые использовались в древности, к сожалению, нам совершенно недоступны и непонятны.
И еще одно. Существует негласное мнение, что большинство древних текстов невозможно перевести только потому, что ключи к их дешифровке тщательно охраняются тайными обществами вроде масонов, иллюминатов и т. д. Даже тамплиеры оставили тут свой след. Что уж говорить о том, что до сих пор абсолютно недоступной остается библиотека Ватикана? Не там ли хранятся основные ключи к пониманию древности? Многие специалисты склоняются именно к этой версии, считая, что Ватикан намеренно утаивает эту информацию от общества. Так это или нет, пока не знает никто. Но одно можно утверждать совершенно точно – древние системы криптографии ни в чем не уступали (а может, и превосходили) тем, что используются в современном компьютерном мире.
Вместо послесловия
Напоследок стоит сказать, что здесь были рассмотрены далеко не все аспекты, связанные с нынешними криптографическими системами и методиками, которые они используют. Дело в том, что в большинстве случаев пришлось бы приводить сложные математические формулы и представлять вычисления, от которых у большинства пользователей просто голова кругом пойдет. Достаточно взглянуть на пример с описанием алгоритма RSA, чтобы сообразить, что все остальное будет выглядеть намного сложнее.
Тут главное — понять и вникнуть, так сказать, в суть вопроса. Ну а если говорить о том, что представляют собой современные системы, предлагающие хранить конфиденциальную информацию таким образом, чтобы она была доступна ограниченному кругу пользователей, здесь выбор невелик. Несмотря на наличие множества криптографических систем, те же алгоритмы RSA и DES явно проигрывают специфике AES. Впрочем, и большинство современных приложений, разработанных для совершенно разнящихся между собой операционных систем, используют именно AES (естественно, в зависимости от области применения и устройства). Но вот «несанкционированная» эволюция этой криптосистемы, мягко говоря, многих, особенно ее создателей, повергла в шок. Но в целом, исходя из того, что имеется на сегодняшний день, многим пользователям нетрудно будет понять, что такое криптографические системы шифрования данных, зачем они нужны и как работают.
Криптография для хакеров. Основы алгоритмов шифрования
Привет, друг. Мы с тобой уже рассмотрели немало тем в области работы сетей в целом, и информационной безопасности в частности. И очень часто в своих материалах я упоминал такие слова как криптография, шифрование, алгоритмы шифрования, хэши, ну и всякие словечки наподобие. И, вроде бы, в контексте эти слова были уместны и понятны. Но, я тут подумал, что, на самом деле мало кто понимает, что именно означают эти термины. А уж раскрыть концепцию и принципы работы всего этого — вообще смогут единицы.
И для начинающего, либо для любителя, это вполне нормально. А вот когда люди, считающие себя серьёзными хацкерами, либо анонимусами, с пеной у рта доказывают, что какой-то алгоритм уязвим и пользоваться им нельзя, при этом не могут даже приблизительно сформулировать что такое криптография, алгоритм шифрования, в чём суть уязвимости, а главное уязвимости к чему. Это вызывает снисходительную улыбку. Но ты ведь не хочешь таким быть, правда? Поэтому я решил кратко и, по возможности, понятно рассказать что такое криптография в целом, и шифрование в частности. Я постараюсь не углубляться в теоретические глубины. Потому что криптография бездонна, а сосредоточусь на практической части вопроса. Больше внимания посвящая именно алгоритмам шифрования.
Криптография
Начнём, как и положено с начала. А в начале всего стоит криптография — это такая наука, причём очень древняя и очень сложная. Исторически сложилось, что основной целью криптографии можно выделить обеспечение конфиденциальности. Т.е. защиты информации от посторонних личностей. И эта цель не менее актуальна и сейчас. Но с развитием информационных технологий, а соответственно с развитием криптографии, начали появляться новые, но не менее важные цели этой науки. Например, к наиболее популярным можно отнести: аутентификацию. Т.е. проверку неизменности ключевых свойств объект (например авторство, дата создания, история изменений и т. д.) и целостность данных. Т.е. невозможность незаметного или не санкционированного изменения информации.
Развивалась криптография, развивались и методы, применяемые этой наукой для достижения результата. Если когда-то, давным-давно, достаточно было использовать алфавитный, а чуть позже цифровой шифр, и чем он был замудрённей тем и надёжней, потому что разгадывать его приходилось в ручную. То с появлением компьютеров, а соответственно серьёзных вычислительных мощностей, эти самые шифры канули в лету. Ввиду их абсолютной уязвимости к анализу и перебору для выявления закономерностей, а соответственно разгадыванию секретного ключа т.е. самого шифра. Этот процесс, кстати, принято называть криптоанализом.
Но кому-то очень умному пришло в голову использовать вычислительные мощности не только для разгадывания ключа, но и для самого шифрования. Именно так начали появляться алгоритмы шифрования в том понимании, в котором их знают сейчас.
Криптография и алгоритмы шифрования
И тут, человеки, как им свойственно, проявили немалую изобретательность. И понавыдумывали столько, что если захочешь во всём этом разобраться, то пару институтов придется закончить. Но мы не в институте. Да и нам не зачем в эти глубины вникать, а потому разберем основное.
В криптографии существует довольно много видов классификаций алгоритмов шифрования. Но, что бы не забивать себе голову, наиболее приемлемо выделить три основных вида:
- симметричное
- асимметричное
- хеширование
Прежде чем говорить о них по отдельности, давай определимся что самое важное в алгоритмах шифрования. И, ты наверняка подумал, что это надежность защиты данных, и это почти правильный ответ. Причем многие теоретики криптографии тоже отдают надежности первой место. А вот те кто на практике сталкиваются с шифрованием, знают, что надёжность конечно важна, но гораздо важнее соотношение надёжности и возможности использования шифра.
Что бы было понятней почему, поясню подробней. То что в народе называют надёжностью, в криптография называет криптостойкостью шифра. Другими словами это свойство шифра противостоять криптоанализу т.е. дешифрованию. А самих способов дешифррования существует ровно два — простой перебор и расшифровка на основе перехваченных данных.
И если с перебором всё более-менее понятно. Т.е. нужно подставлять, по очереди все возможные варианты. И соответственно чем больше вариантов существует тем более надёжен этот шифр. То с расшифровкой на основе перехваченных данных всё намного сложнее. При этом оба варианта вполне можно применять к одному и тому же шифру.
Криптография. Надёжность шифра
Но как понять степень надёжности этого шифра? Для этого, в криптографии, существует такое понятие как взаимная информация. Это числовое значение определяющее при перехвате какого количества криптотекста, станет возможна расшифровка всего зашифрованного сообщения. А высчитывается оно как разница между обычной и условной информационной неопределенностью, которую в криптографии принято называть энтропией.
Это термины которыми обозначаются вероятности появления или не появления в тексте каких-либо символов. Но мы не будем углубляться в высшую математику и выводить формулы. Потому что нам это просто не нужно. А нужно понимать что значение взаимной информации всегда больше либо равно нулю. И исходя из этого получается, что если это значение равно нулю, то алгоритм можно считать абсолютно стойкими. Потому что сколько частей крептотекста не попало бы к злодею — расшифровать всё равно ничего не получиться. А если значение взаимной информации больше нуля, такие системы принято называть достаточно стойкими.
Абсолютно стойкие шифры
И возникает логичный вопрос. Если существуют абсолютно стойкие системы, то почему бы их не использовать? И проблема защиты информации будет решена. Но не тут-то было. Потому что абсолютно стойкие системы существуют только на бумаге. В виде теорем и прочей теоретической тошниловки. А использовать их на практике невозможно, в виду нереальной сложности и огромной стоимости шифрующего оборудования. Чтобы было понятней, даже государства, которые, казалось бы, обладают огромными ресурсами, не смогли до сих пор внедрить использование абсолютно стойких систем. Из этого всего, вполне логичным, будет вывод, что чем надежнее шифр тем труднее и дороже его использование в практических целях. А соответственно наиболее важна не надежность шифра, а возможность его применения. Т.е. соотношение надежности и цены.
Симметричное шифрование
Теперь вернемся к тому из-за чего собрались, а именно к самим алгоритмам. Симметричное шифрование — это такой способ шифрования, когда для шифрования и расшифровывания используется один и тот же ключ. Соответственно у кого есть ключ тот и может расшифровывать сообщение.
В свою очередь, само симметричное шифрование можно разделить на два подвида. Это блочные и поточные шифры.
Блочные и поточные шифры
Блочный шифр — информация шифруется блоками данных фиксированного размера. Как правило это степени 2 (64, 128 и т.д.). К каждому блоку ключ применяется в несколько раундов подстановки и перемешивания. Таким образом достигается увеличение несоответствия битов между блоками начальных и зашифрованных данных. Именно так работают большинство современных алгоритмов шифрования. Используя, для перемешивания и подстановки сеть Фейстеля или SP-сеть.
Поточный шифр — принцип работы тот же самый, что и у блочного. Только на шифруемый текст предварительно накладывается последовательность случайных чисел и информация шифруется не блоками, а побитово. Этот процесс, кстати, называется гаммированием. Так вот, если блочный шифр запустить в режиме гаммирования — получится потоковый. Правда если перегнуть с этой последовательностью случайных чисел — получишь абсолютно стойкий шифр — круто, но бесполезно.
Примеры наиболее распространённых симметричных шифров:
- DES — довольно старый алгоритм, разработанный IBM. Сейчас не используется в ввиду наличия неустраняемых уязвимостей.
- 3DES — более поздняя версия DES. Применяет алгоритм DES три раза, что делает его более безопасным, чем сам DES.
- AES — Advanced Encryption Standard.
Это стандарт шифрования, принятый в США. В настоящее время он считается одним из наиболее сильных. Использует 128-, 196- или 256-битный ключ и алгоритм Rijndael с 2001 года. Используется в WPA2, SSL/TLS и многих других протоколах, где важны конфиденциальность и скорость.
- RC4 — это пример шифра потоковой передачи, который разработан Рональдом Ривестом. Используется в VoIP и WEP.
- Blowfish — первый алгоритм шифрования Брюса Шнайера. Он использует переменную длину ключа и считается одним из самых безопасных.
- Twofish — более сильная версия Blowfish с 128-битным или 256-битным ключом, основной конкурент AES. Используется в Cryptcat, OpenPGP.
- Кузнечик — разработан ФСБ РФ. В 2015 году принят в качестве стандарта в ГОСТ Р 34.12-2015. В том же году была доказана его неустойчивость к методу обратного проектирования. А чуть позже оказалось, что его алгоритм генерации S-блока перерисован с Белорусского шифра BelT, разработанного в 2007 году.
Плюсы и минусы симметричного шифрования
Самыми главными плюсами симметричного шифрования является его скорость и простота реализации. За счёт этого оно хорошо подходит для хранения и обработки больших объёмов данных. На этом, собственно, плюсы — всё. Что касается минусов. Самая главная его проблема — это обмен ключами. Ведь у каждого участника должен быть один и тот же ключ. А его нужно как-то передать, по какому-то каналу связи. А это означает ровно одно — этот ключ можно перехватить. Соответственно даже самый лучший алгоритм надёжен ровно настолько на сколько надёжен канал передачи ключей. Кстати, из-за того что ключ известен каждой стороне, использование симметричного шифрования делает невозможным подтверждение аутентичности и авторства данных. Т.к. невозможно сформировать цифровую подпись.
Асимметричное шифрование
Асимметричное шифрование или шифрование с открытым ключом. В подобных системах используется два ключа — открытый и закрытый, математически связанные между собой. При этом открытый ключ не от кого не прячется. Может передаваться не защищенными каналами связи. И используется для шифрования данных и проверки электронной цифровой подписи.
А вот для генерации цифровой подписи и расшифровки данных используется закрытый т.е. секретный ключ. Простыми словами это работает так. Если мы хотим получить от кого-то некую секретную информацию, мы передаём ему открытый ключ, с использованием которого эта информация будет зашифрована. При этом мы не боимся что злодеи перехватят наш ключ. Ведь с ним можно только зашифровать данные, но не расшифровать.
После того как наш собеседник получает ключ, он шифрует сообщение и отправляет нам. А получив мы расшифровываем его с использованием секретного ключа. Который мы тщательно хранили, никому не передавали и не показывали. И, как бонус, мы ещё и проверяем не изменил ли кто данные в процессе пересылки и пришли ли они от нужного нам адресата. Сам понимаешь, такая схема многократно надежней чем с симметричным шифрованием.
Наиболее распространённые асимметричные алгоритмы шифрования:
- RSA (Rivest, Shamir и Adleman) — первая и наиболее распространённая криптосистема которая стала пригодной и для шифрования, и для цифровой подписи, использует факторизацию очень больших простых чисел в качестве отношения между двумя ключами.
- Схема Эль-Гамаля (Elgamal) -криптосистема основанная на вычислительной сложности проблемы дискретного логарифмирования. Долгое время была стандартом в США и России.
- Алгоритм Диффи — Хеллмана — криптографический протокол, позволяющий двум и более сторонам получить общий секретный ключ, используя незащищенный от прослушивания канал связи.
- DSA (Digital Signature Algorithm) — криптографический алгоритм с использованием открытого ключа для создания электронной подписи, но не для шифрования. Подпись создается секретно, но может быть публично проверена. Это означает, что только один субъект может создать подпись сообщения, но любой может проверить её корректность.
Алгоритм основан на вычислительной сложности взятия логарифмов в конечных полях. Является частью стандарта цифровой подписи США.
Плюсы и минусы асимметричного шифрования
При всех очевидных плюсах в системах с открытым ключом есть и минусы. И самый главный — это скорость. Асимметричное шифрование в несколько раз медленнее симметричного. Ну и, соответственно, вычислительные мощности нужны в разы больше. В связи с этими минусами, на практике обычно применяются гибридные системы шифрования. Они аккумулируют плюсы обоих систем. Т.е. массив данных шифруется симметричным алгоритмом, а сеансовый ключ шифруется асимметричным и передаётся в зашифрованном виде. Таким способом экономятся вычислительные мощности и появляется возможность безопасно передать ключ симметричного алгоритма.
Хеширование
И третий, интересующий нас вид шифрования, это хеширование. Его ещё называют хеш-функция или функция свёртки. Это одностороннее шифрование. При котором, с использованием алгоритма хеширования, начальные данные, независимо от их длины, превращаются в битовую строку фиксированной длины. Именно эта битовая строка и называется хешем. Идеальным считается такой алгоритм хеширования, который делает невозможным обратное преобразование хеша в данные. Т.е. имея на руках хеш — невозможно узнать начальные данные.
При этом, для применения на практике, как раз начальные данные знать и не нужно. Нужно знать, что с использованием определенного алгоритма генерация хэша от какого-то текста создает тот же хэш. Соответственно, мы можем хранить например пароль, в виде хеша. И даже если его украдут — узнать пароль не смогут. А когда пользователь вводит пароль то хеш введенного пароля сверяется с сохраненным хешем, и если они совпали — значит пароль правильный. По такому же принципу может проверяться целостность файлов.
Самая главная проблема хеш-функций называется коллизией. Суть её в том что хеши не всегда уникальны. И иногда, правда очень редко, случаются ситуации, что два разных входных блока дают одинаковый хеш. Именно поэтому основной уязвимостью алгоритмов хеширования считается построение коллизий т. е. их искусственное создание. Для примера именно подобную уязвимость эксплуатировал червь Stuxnet в Windows. Он получал от системы абсолютно белый сертификат, таким способом становясь неуязвимым для антивирусов.
Примеры алгоритмов хеширования: MD4, MD5, SHA1, SHA2.
Ну, а на этом нашу ознакомительную экскурсию в мир криптографии можно считать оконченной. Теперь у тебя есть базовое понимание что такое криптография и алгоритмы шифрования. Но не забывай возвращаться, нам нужно узнать ещё очень много.
Твой Pulse.
Поделиться ссылкой:
Сравнение симметричного и асимметричного шифрований
Криптографические системы в настоящее время разделены на две основные области исследования: симметричная и асимметричная криптография. Симметричное шифрование часто используется как синоним симметричной криптографии, а асимметричная криптография охватывает два основных варианта использования, это асимметричное шифрование и цифровые подписи.
Поэтому мы можем представить их следующим образом:
Эта статья будет сфокусирована на симметричных и асимметричных алгоритмах шифрования.
Симметричное vs. асимметричное шифрование
Алгоритмы шифрования часто делятся на две категории, известные как симметричное и асимметричное шифрование. Принципиальное различие между этими двумя методами заключается в том, что алгоритмы симметричного шифрования используют один ключ, в то время как асимметричные используют два разных, но связанных между собой ключа. Такая разница хоть и кажется простой, но она представляет большие функциональные различия между двумя формами шифрования и способами их использования.
Взаимосвязанность ключей
В криптографии алгоритмы шифрования генерируют ключи в виде последовательных битов, которые используются для шифрования и дешифрования фрагмента информации. Способ использования этих ключей учитывает на разницу между симметричным и асимметричным методом.В то время как алгоритмы симметричного шифрования используют один и тот же ключ для выполнения этой функции, алгоритм асимметричного шифрования напротив, использует один ключ для шифрования данных и другой для его дешифрования.![](/800/600/https/images.slideplayer.com/16/5236138/slides/slide_12.jpg)
Например, если Алиса отправляет Бобу сообщение защищенное симметричным шифрованием, ей необходимо предоставить Бобу тот же ключ, который она использовала для шифрования, чтобы он смог прочитать сообщение. Это означает, что если злоумышленник перехватит его, он сможет получить доступ к зашифрованной информации.
Однако, если Алиса использует вместо этого асимметричный метод, она шифрует сообщение с помощью открытого ключа Боба, поэтому Боб сможет расшифровать его с помощью своего приватного ключа. Таким образом, асимметричное шифрование обеспечивает более высокий уровень безопасности, потому что даже если кто-то и перехватит ваши сообщения и найдет открытый ключ, он не сможет ничего с этим сделать.
Длина ключей
Другое функциональное различие между симметричным и асимметричным шифрованием связано с длиной ключей, которые измеряются в битах и напрямую связаны с уровнем безопасности каждого алгоритма.
В симметричных системах ключи подбираются случайным образом, а их общепринятая длина варьируется между 128 и 256 бит в зависимости от требуемого уровня безопасности. В асимметричном шифровании между открытым и приватным ключами должна существовать математическая связь, то есть их связывает определенная математическая формула. По этой причине злоумышленники могут использовать этот шаблон для взлома шифра, в свою очередь асимметричные ключи должны быть намного длиннее, чтобы обеспечить эквивалентный уровень безопасности. Разница в длине ключа настолько существенная, что 128-битный симметричный ключ и 2048-битный асимметричный ключ обеспечивают примерно одинаковый уровень безопасности.
Преимущества и недостатки
У этих двух видов шифрования присутствуют как преимущества так и недостатки относительно друг друга. Алгоритмы симметричного шифрования намного быстрее и требуют меньше вычислительной мощности, но их основным недостатком является распределение ключей. Поскольку один и тот же ключ используется для шифрования и дешифрования информации, этот ключ должен быть передан всем, кому потребуется доступ, что естественно создает определенные риски (как это было описано ранее).![](/800/600/http/images.myshared.ru/4/3928/slide_7.jpg)
В свою очередь, асимметричное шифрование решает проблему распределения ключей, используя открытые ключи для шифрования, а приватные для дешифрования. Компромисс заключается в том, что асимметричные системы очень медленны по сравнению с симметричными и требуют гораздо большей вычислительной мощности из-за длины ключа.
Варианты применения
Симметричное шифрование
Благодаря своей скорости, симметричное шифрование широко используется для защиты информации во многих современных компьютерных системах. Например, Advanced Encryption Standard (AES) используется правительством США для шифрования секретной информации. AES заменил ранее принятый стандарт шифрования данных (DES), который был разработан в 1970-х годах в качестве стандарта симметричного шифрования.
Асимметричное шифрование
Асимметричное шифрование может применяться к системам, в которых многим пользователям может понадобиться зашифровать и расшифровать сообщения или пакет данных, особенно когда скорость и вычислительная мощность не является приоритетом. Простым примером такой системы является зашифрованная электронная почта, в которой открытый ключ может использоваться для шифрования сообщений, а приватный ключ для их расшифровки.
Гибридные системы
Во многих приложениях, симметричное и асимметричное шифрование используются вместе. Хорошим примером таких гибридных систем являются криптографические протоколы Security Sockets Layer (SSL) и Transport Layer Security (TLS), которые были разработаны для обеспечения безопасной связи в интернете. Протоколы SSL на данный момент считаются небезопасными и ими не рекомендуют пользоваться. В свою очередь, протоколы TLS считаются безопасными и широко используются всеми современными веб-браузерами.
Использование шифрования криптовалютами
Методы шифрования используются многими крипто-кошельках в качестве способа обеспечения повышенного уровня безопасности конечных пользователей. Алгоритмы шифрования применяются когда пользователь устанавливает пароль для файла своего кошелька, который используется для доступа к программному обеспечению.
Следовательно, не все системы с цифровой подписью используют шифрование, даже если они предоставляют публичный и приватный ключи. Фактически, сообщение может быть подписано цифровой подписью без использования шифра. RSA является одним из примеров алгоритма, который можно использовать для подписи зашифрованных сообщений, но у алгоритма цифровой подписи, который используется в Биткойн (называемый ECDSA) шифрование отсутствует.
Заключение
Как симметричное, так и асимметричное шифрование играет важную роль в обеспечении безопасности конфиденциальной информации и коммуникации в современном цифровом мире. Оба шифра могут быть полезны, ведь у каждого из них есть свои преимущества и недостатки, поэтому они применяются в разных случаях. Поскольку криптография как наука продолжает развиваться для защиты от более новых и более серьезных угроз, симметричные и асимметричные криптографические системы всегда будут иметь отношение к компьютерной безопасности.
Алгоритм с симметричным ключом — обзор
Алгоритмы с симметричным ключом иногда называют алгоритмами с секретным ключом. Это связано с тем, что эти типы алгоритмов обычно используют один ключ, который держится в секрете системами, участвующими в процессах шифрования и дешифрования. Этот единственный ключ используется как для шифрования, так и для дешифрования.
Алгоритмы с симметричным ключом, как правило, очень безопасны. В целом, они считаются более безопасными, чем алгоритмы с асимметричным ключом. Некоторые алгоритмы с симметричным ключом считаются практически невзламываемыми.Алгоритмы с симметричным ключом также очень быстры. Вот почему они часто используются в ситуациях, когда необходимо зашифровать много данных.
В алгоритмах с симметричным ключом ключ является общим для двух систем. Это может представлять проблему. Вы должны найти способ получить ключ ко всем системам, которым придется шифровать или расшифровывать данные с использованием алгоритма симметричного ключа. Необходимость вручную распределять ключ по всем системам может оказаться довольно трудоемкой задачей. Иногда это можно сделать только путем копирования ключа из центрального хранилища.Можете себе представить, насколько это может быть хлопотно. В системах Windows у вас есть возможность использовать групповую политику или какой-либо сценарий для копирования ключа в необходимые системы. Это помогает, но администратор по-прежнему несет ответственность за правильную работу групповой политики или сценария.
Алгоритмы симметричного ключа
Существуют сотни различных алгоритмов симметричного ключа. У каждого есть свои сильные и слабые стороны. Некоторыми из наиболее распространенных примеров являются DES, 3DES, AES, IDEA, RC4 и RC5.
DES : это стандарт шифрования данных. Первоначально DES был разработан в 1976 году. Это был один из наиболее широко используемых алгоритмов шифрования. Отчасти это связано с тем, что он был принят в качестве государственного стандарта шифрования. Алгоритм DES сам по себе очень силен. Слабость заключается в том, что исходный стандарт DES использует 56-битный ключ шифрования. По сути, вы можете использовать компьютер для просмотра всех битовых комбинаций ключа (1 и 0), пока не нажмете нужную клавишу.Когда DES был первоначально разработан, это заняло бы сотни лет. В настоящее время компьютеры намного, намного быстрее. На самом деле, в настоящее время может потребоваться всего день или около того, чтобы просмотреть все комбинации. Это основная причина, по которой DES больше не используется широко.
3DES : наиболее известен как Triple DES. 3DES получил свое название, потому что он трижды применяет алгоритм DES к каждому блоку данных. 3DES превзошел своего предшественника, DES, и в настоящее время считается наиболее широко используемым стандартом безопасного шифрования.Сам алгоритм так же надежен, как и DES, но у вас также есть преимущество в том, что вы можете использовать ключи большей длины. Ключ должен быть указан для каждой из итераций шифрования 3DES. У вас есть возможность использовать один и тот же ключ для каждой из итераций, один и тот же для двух итераций или другой ключ для каждой из итераций. Наиболее безопасная реализация — использовать разные ключи для каждой итерации. Если вы используете один и тот же ключ для всех трех итераций, считается, что сила ключа составляет 56 бит. Это в основном то же самое, что и DES.Если вы используете один и тот же ключ для двух итераций и другой ключ для третьей, то сила ключа считается равной 112 битам. Если вы используете разные ключи для всех трех итераций, то стойкость шифрования считается равной 168 битам. Долгое время алгоритм 3DES был основным алгоритмом, используемым в реализациях Windows, не отвечающих требованиям FIPS 140.
Когда вы настраивали групповую политику Windows или реестр, которые заставляли использовать алгоритмы, совместимые с FIPS 140, вы фактически заставляли использовать 3DES для шифрования.Теперь системы Windows предлагают использование AES, который также является алгоритмом, совместимым с FIPS 140.
AES : это расширенный стандарт шифрования. Его также иногда называют алгоритмом Рейндаля. Это связано с тем, что AES на самом деле происходит от алгоритма Rijndael. У правительства был процесс оценки, чтобы определить, какой алгоритм будет использоваться в качестве стандарта AES, и алгоритм Rijndael был выбран победителем. Стандарт AES фактически включает в себя три разных шифра: AES-128, AES-192 и AES-256.Цифры представляют длину ключа шифрования. AES очень быстрый и безопасный. Из-за этого его глобальное освоение было очень быстрым.
IDEA : это международный алгоритм шифрования данных. Изначально IDEA задумывалась как замена стандарту DES. IDEA использует 128-битный ключ шифрования. Есть две основные причины, по которым IDEA не используется так широко, как планировалось. Во-первых, у IDEA есть ряд слабых ключей. Вторая причина заключается в том, что в настоящее время существуют более быстрые алгоритмы, обеспечивающие тот же уровень безопасности.
RC4 : Это четвертая версия шифра Ривеста. RC4 использует ключ шифрования переменной длины. Этот ключ может варьироваться от 40 до 256 бит. Чаще всего используется со 128-битным ключом. Алгоритм RC4 очень прост и легок в реализации. Проблема в том, что при неправильной реализации это может привести к слабым криптографическим системам. Это одна из основных причин, по которой RC4 постепенно выводится из употребления. RC4 был одним из наиболее широко используемых алгоритмов шифрования. Он используется в WEP и WPA в беспроводных сетях.Он также использовался в Secure Sockets Layer (SSL) и Transport Layer Security (TLS) с протоколом передачи гипертекста через SSL (HTTPS). RC4 также использовался с безопасной оболочкой, Kerberos и протоколом удаленного рабочего стола.
RC5 : Это пятая версия шифра Ривеста. RC5 использует ключи шифрования переменной длины. Они могут достигать 2040 бит. Рекомендуемый размер ключа составляет 128 бит. В какой-то момент RSA, которой принадлежит патент на RC5, была настолько уверена в его безопасности, что ввела систему вознаграждения для всех, кто сможет взломать элементы, зашифрованные с помощью алгоритма.В таблице 2.1 указаны длина ключа и размер блока для этих алгоритмов.
Таблица 2.1. Симметричные алгоритмы шифрования
ключевой размер | Размер блока | DES | 56 BITS | 64 BITS |
---|---|---|---|---|
3DES | 56, 112 или 168 BITS | 64 BITS | ||
AES | AES | 128, 192, или 256 BITS | 128 BITS | 128 BITS |
BITS | 64 BITS | |||
RC4 | 40-256 бит | поток шифра | ||
RC5 | от 0 до 2040 бит (рекомендуется 128) | 32, 64 или 128 бит (рекомендуется 64) |
Алгоритмы симметричного шифрования: Live Long & Encrypt
Подобно трибблам из
Star Trek , везде используется симметричное шифрование.![](/800/600/https/myslide.ru/documents_3/f441f4096df0968a4e2f907b94a44248/img7.jpg)
Алгоритмы симметричного шифрования — это базовые процессы, которые делают возможным безопасную связь. Если бы вы использовали термины Star Trek , то симметричные алгоритмы — это варп-двигатель для двигательной установки вашего космического корабля. Они являются неотъемлемой частью информационной безопасности и помогают вашему бизнесу продвигать безопасное шифрование данных на сверхсветовых скоростях.
(Да, я знаю, сегодня я действительно высоко поднимаю свой флаг ботана. Алгоритмы с симметричным ключом, хотя и увлекательные, не совсем «легкие» или легко читаемые, поэтому я должен немного повеселиться, когда пишу. Черт возьми, Джим, я писатель по кибербезопасности, а не криптограф.)
Не забудьте освежить свой кофе (или чай Эрл Грей, если вам так больше нравится). Мы собираемся глубоко погрузиться в изучение того, что такое алгоритмы симметричного шифрования, почему они важны и каковы наиболее распространенные типы алгоритмов симметричного шифрования.
Сделайте так.
Давайте обсудим это.
Примечание редактора: Эта статья является первой в серии статей о симметричном шифровании. Обязательно ознакомьтесь с соответствующими статьями ниже:
Что такое симметричный алгоритм и как он работает?
Симметричные алгоритмы — это криптографические функции, занимающие центральное место в шифровании с симметричным ключом. Это набор инструкций или шагов, которым следуют компьютеры для выполнения определенных задач, связанных с шифрованием и расшифровкой данных.
Вам нужен универсальный переводчик? Хорошо, давайте разберем это еще немного.
Алгоритмы симметричного шифрования используются (в сочетании с ключом шифрования) для выполнения двух основных задач:
- Шифр. Преобразование читаемого текста (обычный текст) в нечитаемый зашифрованный текст (зашифрованный текст).
- Расшифровать.
Преобразование зашифрованного текста обратно в открытый текст.
Алгоритмы симметричного шифрования используют один и тот же ключ шифрования как для шифрования, так и для дешифрования.(В отличие от алгоритмов асимметричного шифрования, в которых используются два разных ключа.)
Алгоритмы шифрования, как правило, основаны на математике и могут варьироваться от очень простых до очень сложных процессов в зависимости от их конструкции. В случае алгоритмов симметричного шифрования они сочетаются с одним ключом для преобразования читаемых (незашифрованных) данных в неразборчивую тарабарщину (зашифрованный текст). Затем они используют тот же ключ для расшифровки зашифрованного текста обратно в открытый текст. И все это делается таким образом, чтобы обеспечить конфиденциальность данных и конфиденциальность.Довольно круто, да?
Алгоритмы симметричного шифрования на самом деле известны под несколькими разными именами:
- Алгоритмы с симметричным ключом ,
- Симметричные шифры ,
- Алгоритмы с секретным ключом и
- Массовые шифры (О массовых шифрах мы поговорим чуть позже.
)
В общем, цель или цель шифрования — сделать так, чтобы только тот, у кого есть ключ, мог расшифровать и прочитать секретное сообщение.Если вам нужно быстро напомнить, как работает симметричное шифрование, вот краткий обзор:
Этот пример сообщения был зашифрован с использованием алгоритма симметричного шифрования 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-соединение, определяя, какой из следующих элементов следует использовать:
.![](/800/600/https/myslide.ru/documents_3/f441f4096df0968a4e2f907b94a44248/img13.jpg)
- Протокол (TLS)
- Асимметричный алгоритм обмена ключами (например, Диффи-Хеллмана)
- Шифр массового шифрования
- Цифровая подпись
- Хеш-функция (например, SHA2-2)
- Код аутентификации сообщения (MAC) function
Подробнее об этом процессе можно прочитать в этом блоге с пояснениями о том, как работает рукопожатие TLS.Но пока давайте остановимся на теме алгоритмов симметричного шифрования.
Два типа симметричных алгоритмов (шифров)
Во время симметричного шифрования, которое происходит при безопасном подключении к веб-сайту, для этого используется массовый шифр. Существует две подкатегории объемных шифров: блочные шифры и потоковые шифры .
Блочные шифры
В этом типе шифра данные открытого текста разбиваются на группы битов фиксированной длины, известные как блоки (которые обычно соединяются с помощью процесса, известного как цепочка). Затем каждый блок шифруется как единое целое, что немного замедляет этот процесс. И если данных недостаточно для полного заполнения блока, затем используется «заполнение» (обычно согласованное количество нулей), чтобы гарантировать, что блоки соответствуют требованиям фиксированной длины.
Идеальный блочный шифр имеет огромную длину ключа, что нецелесообразно, поэтому многим современным шифрам приходится уменьшать размеры ключей, чтобы их можно было использовать. Но небольшое примечание: в отличие от асимметричного шифрования, размеры ключей симметричного шифрования не определяют размер блоков данных.
Большинство современных алгоритмов симметричного шифрования относятся к лагерю блочных шифров, и эти типы шифров имеют более широкие возможности использования и применения. Итак, мы в основном собираемся сосредоточиться на них здесь. Но если вам интересно, каковы самые популярные или распространенные потоковые шифры, не волнуйтесь, мы вас обеспечим.
Потоковые шифры
Этот тип шифра шифрует данные открытого текста по одному биту за раз. Таким образом, данные обрабатываются потоком, а не порциями, как в блочных шифрах.Это делает процесс менее ресурсоемким и более быстрым.
Сейчас мы не будем вдаваться во все особенности блочных и потоковых шифров — это совсем другая тема. Но хорошая новость заключается в том, что мы уже написали статью, посвященную блочным и потоковым шифрам. Итак, обязательно ознакомьтесь с ним, чтобы более подробно изучить, что они из себя представляют и как они работают.
Хорошо, теперь все становится захватывающим (или более сложным, в зависимости от вашей точки зрения).При шифровании с общим ключом необходимо знать несколько хорошо известных алгоритмов с симметричным ключом. Давайте разберем их все, чтобы понять, что они собой представляют и как они работают.
Список симметричных алгоритмов: 3 наиболее распространенных типа симметричных алгоритмов
Для этого раздела мы составили список симметричных алгоритмов, который поможет нам ориентироваться в наиболее распространенных симметричных шифрах. Мы начнем с одного из самых старых и дойдем до «самого последнего и лучшего» — то есть алгоритма, который мы обычно используем сегодня для современного симметричного шифрования.
1. Стандарт шифрования данных (DES)
Первым в нашем списке стоит стандарт шифрования данных. DES, также известный как DEA (сокращение от алгоритма шифрования данных), является одним из первых алгоритмов симметричного шифрования, который с тех пор устарел. Он основан на шифре Фейстеля (как и многие другие разновидности блочных шифров) и считается одним из первых симметричных алгоритмов, принятых в качестве Федерального стандарта обработки информации (FIPS) в 1976 году.
DES восходит к началу 1970-х годов, когда его первоначальная форма («Люцифер») была разработана криптографом IBM Хорстом Фейстелем.IBM сообщает, что метод шифрования изначально был создан по заказу Lloyds Bank of United Kingdom. Национальное бюро стандартов (ныне известное как Национальный институт стандартов, сокращенно 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.
![](/800/600/https/upload.wikimedia.org/wikipedia/commons/3/3d/%D0%90%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%BE%D0%B5_%D1%88%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5.jpg)
Алгоритм тройного шифрования данных, созданный в конце 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:
- AddRoundKey
- SubBytes
- ShiftRows
- MixColumns
При обходе открытых текстовых данных используются замены из таблицы поиска. Итак, один из раундов выглядит примерно так:
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.)
Однако они полезны не только в этом. О, нет — вы также найдете симметричные алгоритмы, используемые в Интернете. Когда вы используете их в сочетании с асимметричным шифрованием для обмена ключами — например, при подключении к защищенному веб-сайту — тогда симметричное шифрование вступает в игру с такими службами, как:
- Обмен данными веб-сайта
- Пакет онлайн-сервисов Google
- Инструмент резервного копирования веб-сайта CodeGuard
- Платформа SalesForce
Что мы выяснили в отношении алгоритмов симметричного шифрования (TL;DR)
Не хотелось углубляться во всю техническую чепуху? (Или не хотелось читать мои занудные сравнения алгоритмов симметричного шифрования из «Звездного пути»?) Не беспокойтесь. Вот несколько основных выводов из этой статьи об алгоритмах с симметричным ключом:
- Алгоритмы шифрования — это в основном пошаговые инструкции по выполнению криптографических функций (таких как шифрование, дешифрование, хэширование и т. д.). Алгоритмы бывают асимметричными и симметричными. В первом один ключ шифрует данные, а другой расшифровывает данные. В последнем один ключ выполняет как функции шифрования, так и функции дешифрования.
- Симметричные алгоритмы — это эффективные процессы, предназначенные для шифрования данных в безопасных закрытых каналах.
- Процесс, известный как рукопожатие TLS, позволяет вам использовать форму симметричного шифрования в общедоступных каналах.
- Существует много различных типов алгоритмов симметричного ключа, которые использовались в последние годы. Три из наиболее распространенных включают DES, TDEA/3DES и AES.
Обязательно следите за обновлениями нашей следующей главы в этой серии блогов о симметричном шифровании в ближайшие недели. И до следующего раза… живите долго и правильно.
: в чем разница?
Рисунок. В этом сообщении блога мы обсуждаем различия между симметричным шифрованием, методом шифрования с одним ключом и асимметричным шифрованием, также известным как криптография с открытым ключом, в котором используются пары ключей шифрования с закрытым и открытым ключами.
Передавать ключ или не передавать ключ. Вот в чем вопрос.
В настоящее время используются две основные формы шифрования данных: симметричное шифрование и асимметричное шифрование. Каждый день, когда вы используете свой веб-браузер, отвечаете на электронные письма, отправляете формы веб-сайта и выполняете другие действия, происходят процессы симметричного и асимметричного шифрования, иногда без вашего ведома. Вы также можете быть знакомы с симметричным и асимметричным шифрованием, потому что у вас есть опыт работы с OpenSSL, службами управления ключами или, возможно, вы уже отправляли зашифрованное электронное письмо или зашифровывали файл Microsoft Word или Adobe PDF с помощью пароля.
Важно понимать разницу между симметричным и асимметричным шифрованием и то, как эти процессы работают в повседневной безопасной передаче сообщений. Вы узнаете, что означают эти термины, когда увидите их, а также узнаете, как они работают, их различные итерации, узнаете об их возможностях и узнаете, что более целесообразно реализовать в отношении защиты и аутентификации источника. конфиденциальной информации.
В этом сообщении блога мы обсудим различия между симметричным и асимметричным шифрованием.В конце мы суммируем эти различия и обсудим соответствующие варианты шифрования для защиты ваших конфиденциальных данных.
Графика: симметричное шифрование использует один ключ для шифрования и расшифровки информации.
Что такое симметричное шифрование? Симметричное шифрование — это широко используемый метод шифрования данных, при котором данные шифруются и расшифровываются с использованием одного секретного криптографического ключа.
В частности, ключ используется для шифрования открытого текста — состояния данных до шифрования или после расшифровки — и расшифровки зашифрованного текста — состояния данных после шифрования или до расшифровки.
Симметричное шифрование является одним из наиболее широко используемых методов шифрования, а также одним из старейших, восходящим к временам Римской империи. Шифр Цезаря, названный в честь не кого иного, как Юлия Цезаря, который использовал его для шифрования своей военной переписки, является известным историческим примером симметричного шифрования в действии.
Целью симметричного шифрования является защита конфиденциальной, секретной или секретной информации. Он ежедневно используется во многих крупных отраслях, включая оборонную, аэрокосмическую, банковскую, здравоохранение и другие отрасли, в которых защита конфиденциальных данных человека, бизнеса или организации имеет первостепенное значение.
Графика: Это иллюстрация процесса симметричного шифрования.
Симметричное шифрование работает с использованием потокового или блочного шифра для шифрования и расшифровки данных. Потоковое шифрование преобразует открытый текст в зашифрованный текст по одному байту за раз, а блочное шифрование преобразует целые единицы или блоки открытого текста с использованием предварительно определенной длины ключа, например 128, 192 или 256 бит.
Отправители и получатели, использующие симметричное шифрование для передачи данных друг другу, должны знать секретный ключ, чтобы, в случае отправителей, зашифровать данные, которыми они намереваются поделиться с получателями, а в случае получателей расшифровать и прочитать зашифрованные данные. отправители делятся с ними, а также шифруют любые необходимые ответы.
Вот упрощенный пример симметричного шифрования: если Клэр, отправитель, хочет отправить Жаклин, получателю, конфиденциальный документ, Клэр использует секретный ключ, чтобы зашифровать файл и отправить его Жаклин, которая не сможет прочитать его. содержимое, пока не введет тот же ключ, который Клэр только что использовала для шифрования файла. И наоборот, если Жаклин вносит изменения в документ и хочет поделиться ими с Клэр, она воспользуется тем же ключом для повторного шифрования файла и отправит его обратно Клэр, которая будет использовать тот же ключ для расшифровки файла и доступа к его содержимое, и процесс повторяется.
Обратите внимание, что это всего лишь пример, используемый для упрощения работы симметричного шифрования. Симметричное шифрование может выполняться вручную или автоматически.
Однако симметричное шифрование не ограничивается обменом данными между одним отправителем и одним получателем. Доступ к симметрично зашифрованной информации может получить любой — Клэр, Жаклин, их коллега Фрэнк, их босс Дженнифер и другие. – кто знает секретный ключ. В этом заключается причина, по которой сокрытие общего криптографического ключа от неавторизованных сторон жизненно важно для успеха симметричного шифрования и целостности симметрично зашифрованных данных.
Графика: примеры симметричного шифрования включают Advanced Encryption Standard (AES) и протокол TLS/SSL.
Какие есть примеры симметричного шифрования?Популярные примеры симметричного шифрования включают:
- Стандарт шифрования данных (DES)
- Стандарт тройного шифрования данных (Triple DES)
- Расширенный стандарт шифрования (AES)
- Международный алгоритм шифрования данных (IDEA)
- Протокол TLS/SSL
Шифрование AES, в котором для шифрования и дешифрования данных используются блочные шифры на 128, 192 или 256 бит, является одним из наиболее известных и эффективных методов симметричного шифрования, используемых сегодня.На взлом потребуются миллиарды лет, и именно поэтому он используется для защиты конфиденциальной, секретной или секретной информации в правительстве, здравоохранении, банковском деле и других отраслях. Он более безопасен, чем DES, Triple DES и IDEA.
DES в настоящее время рассматривается Национальным институтом стандартов и технологий (NIST) как устаревший алгоритм симметричного шифрования, поскольку он уже давно неэффективен для защиты конфиденциальной информации от атак грубой силы. Фактически, NIST полностью отозвал стандарт, и его более безопасный старший брат, шифрование Triple DES, постигнет та же участь.Несмотря на то, что шифрование Triple DES все еще используется сегодня, оно будет отозвано и запрещено NIST в 2023 году из-за растущих проблем с безопасностью.
ШифрованиеIDEA было разработано в качестве замены DES в 1990-х годах, но в конечном итоге AES был признан более безопасным. В настоящее время IDEA является открытым и бесплатным алгоритмом блочного шифрования, поэтому его может использовать любой, но обычно он считается устаревшим и неэффективным для защиты конфиденциальной и сверхсекретной информации. Шифрование AES является золотым стандартом для обеих целей.
Transport Layer Security (TLS), как и его предшественник, Secure Sockets Layer (SSL), использует симметричное шифрование. По сути, когда клиент обращается к серверу, генерируются уникальные симметричные ключи, называемые сеансовыми ключами. Эти ключи сеанса используются для шифрования и дешифрования данных, которыми обмениваются клиент и сервер в этом конкретном сеансе клиент-сервер в этот конкретный момент времени. Новый сеанс клиент-сервер будет генерировать новые уникальные ключи сеанса.
TLS/SSL использует не только симметричное шифрование, но и симметричное, и асимметричное шифрование, чтобы обеспечить безопасность сеансов клиент-сервер и информации, которой они обмениваются.
Графика: преимущества симметричного шифрования включают в себя безопасность, скорость, а также внедрение и признание в отрасли.
Каковы некоторые преимущества симметричного шифрования? Симметричное шифрование используется сегодня, потому что оно позволяет быстро шифровать и расшифровывать большие объемы данных и его легко реализовать. Он прост в использовании, а его версия AES является одной из самых безопасных доступных форм шифрования данных.
Симметричное шифрование имеет ряд преимуществ по сравнению с асимметричным аналогом, но об асимметричном шифровании мы поговорим в этом блоге чуть позже.
Некоторые преимущества симметричного шифрования включают:
- Безопасность : для взлома алгоритмов симметричного шифрования, таких как AES, требуются миллиарды лет с использованием атак грубой силы.
- Скорость : симметричное шифрование из-за меньшей длины ключа и относительной простоты по сравнению с асимметричным шифрованием выполняется намного быстрее.
- Внедрение и признание в отрасли : Алгоритмы симметричного шифрования, такие как AES, стали золотым стандартом шифрования данных из-за их преимуществ в безопасности и скорости, и, как таковые, десятилетиями применялись и признавались в отрасли.
Рисунок: К недостаткам симметричного шифрования относится необходимость обеспечения безопасности механизмов распределения ключей.
Безусловно, самым большим недостатком симметричного шифрования является использование единого секретного криптографического ключа для шифрования и дешифрования информации.
Почему?
Что ж, если этот секретный ключ хранится в небезопасном месте на компьютере, хакеры могут получить к нему доступ с помощью программных атак, что позволит им расшифровать зашифрованные данные и тем самым свести на нет всю цель симметричного шифрования.
Кроме того, если одна сторона или объект шифрует в одном месте, а другая сторона или объект расшифровывает в другом, ключ необходимо будет передать, что делает его уязвимым для перехвата в случае компрометации канала передачи.
Вот почему так важно обеспечить безопасность ключа шифрования при хранении и передаче. В противном случае вы просто запрашиваете список независимых и спонсируемых государством кибератак для доступа к вашим критически важным данным, критически важным для безопасности или защищенным законом данным.
Единственным другим недостатком использования симметричного шифрования является его эффективность с точки зрения безопасности по сравнению с асимметричным шифрованием, которое обычно считается более безопасным, но и более медленным в исполнении, чем симметричное шифрование.
Но является ли асимметричное шифрование более безопасным, чем симметричное шифрование? Давайте разберемся.
Графика: асимметричное шифрование использует пары открытого и закрытого ключей для шифрования и расшифровки конфиденциальной информации.
Что такое асимметричное шифрование? В отличие от симметричного шифрования, в котором используется один и тот же секретный ключ для шифрования и расшифровки конфиденциальной информации, асимметричное шифрование, также известное как криптография с открытым ключом или шифрование с открытым ключом, использует математически связанные пары открытого и закрытого ключей для шифрования и расшифровки данных отправителей. и конфиденциальные данные получателей.
Как и при симметричном шифровании, открытый текст по-прежнему преобразуется в зашифрованный текст и наоборот при шифровании и дешифровании соответственно. Основное отличие состоит в том, что для асимметричного шифрования данных используются две уникальные пары ключей.
Рисунок: Это иллюстрация процесса асимметричного шифрования.
Как работает асимметричное шифрование? Вот упрощенный пример асимметричного шифрования: если Клэр, отправитель, и Жаклин, получатель, хотят постоянно отправлять друг другу конфиденциальный файл туда и обратно, Клэр и Жаклин передадут друг другу свои уникальные и соответствующие открытые ключи.Затем Клэр использует открытый ключ Жаклин для шифрования файла, поскольку он предназначен только для Жаклин, и отправит файл Жаклин. Получив файл, Жаклин будет использовать свой закрытый ключ — ключевое слово «частный», означающее, что его не знает никто, кроме Жаклин, — чтобы расшифровать файл и получить доступ к его содержимому. Никто, кроме Жаклин, даже Клэр, не может расшифровать этот файл, потому что никто, кроме Жаклин, не знает закрытый ключ Жаклин. Тот же процесс применяется, когда Жаклин хочет отправить файл обратно Клэр.Жаклин связывает его с открытым ключом Клэр, а Клэр использует свой закрытый ключ для расшифровки файла.
Обратите внимание, что это упрощение асимметричного шифрования. Подобно симметричному шифрованию, асимметричное шифрование может выполняться вручную или автоматически.
Теперь вы понимаете, почему асимметричное шифрование может считаться более безопасным, чем симметричное шифрование? Хотя это интересный вопрос, на самом деле это неправильный вопрос, потому что с технической точки зрения, является ли симметричное или асимметричное шифрование более безопасным, во многом зависит от размера ключа и безопасности носителя, который хранит или передает криптографические ключи.
Одной из причин, по которой асимметричное шифрование часто считается более безопасным, чем симметричное шифрование, является то, что асимметричное шифрование, в отличие от своего аналога, не требует обмена одним и тем же ключом шифрования-дешифрования между двумя или более сторонами. Да, открытые ключи обмениваются, но пользователи, совместно использующие данные в асимметричной криптосистеме, имеют уникальные пары открытых и закрытых ключей, а их открытые ключи, поскольку они используются только для шифрования, не представляют риска несанкционированного расшифрования хакерами, если они станут известны. потому что хакеры, предполагая, что закрытые ключи хранятся в секрете, не знают закрытых ключей пользователей и, следовательно, не могут расшифровать зашифрованные данные.
В отличие от симметричного шифрования, асимметричное шифрование также позволяет использовать цифровую подпись. По сути, это включает использование закрытых ключей для цифровой подписи сообщений или файлов, а их соответствующие открытые ключи используются для подтверждения того, что эти сообщения исходят от правильного проверенного отправителя.
Графика: примеры асимметричного шифрования включают Rivest Shamir Adleman (RSA) и алгоритм цифровой подписи (DSA).
Какие есть примеры асимметричного шифрования?Примеры асимметричного шифрования:
- Ривест Шамир Адлеман (ЮАР)
- Стандарт цифровой подписи (DSS), который включает алгоритм цифровой подписи (DSA)
- Криптография на эллиптических кривых (ECC)
- метод обмена Диффи-Хеллмана
- Протокол TLS/SSL
RSA, опубликованный в 1977 году, является одним из старейших примеров асимметричного шифрования. Разработанное Роном Ривестом, Ади Шамиром и Леонардом Адлеманом, шифрование RSA генерирует открытый ключ путем перемножения двух больших случайных простых чисел и, используя эти же простые числа, генерирует закрытый ключ. Оттуда происходит стандартное асимметричное шифрование: информация шифруется с помощью открытого ключа и расшифровывается с помощью закрытого ключа.
DSS, который включает алгоритм цифровой подписи (DSA), является прекрасным примером асимметричной аутентификации цифровой подписи.Закрытый ключ отправителя используется для цифровой подписи сообщения или файла, а получатель использует соответствующий открытый ключ отправителя, чтобы подтвердить, что подпись исходит от правильного отправителя, а не из подозрительного или неавторизованного источника.
ECC — это альтернатива RSA, в которой используются ключи меньшего размера и математические эллиптические кривые для выполнения асимметричного шифрования. Он часто используется для цифровой подписи криптовалютных транзакций; на самом деле, популярная криптовалюта Биткойн использует ECC — алгоритм цифровой подписи на эллиптических кривых (ECDSA), а точнее — для цифровой подписи транзакций и обеспечения того, чтобы средства тратились только авторизованными пользователями. ECC намного быстрее, чем RSA, с точки зрения генерации ключей и подписей, и многие считают его будущим асимметричного шифрования, в основном для веб-трафика и криптовалюты, но также и для других приложений.
Диффи-Хеллман, один из величайших прорывов в криптографии, представляет собой метод обмена ключами, который две стороны, которые никогда не встречались, могут использовать для обмена парами открытого и закрытого ключей по общедоступным, небезопасным каналам связи. До Диффи-Хеллмана две стороны, стремящиеся зашифровать свои сообщения друг с другом, должны были предварительно физически обменяться ключами шифрования, чтобы обе стороны могли расшифровать зашифрованные сообщения друг друга.Диффи-Хеллман сделал так, чтобы этими ключами можно было безопасно обмениваться по общедоступным каналам связи, где третьи стороны обычно извлекают конфиденциальную информацию и ключи шифрования.
TLS/SSL использует асимметричное шифрование для установления безопасного сеанса клиент-сервер, в то время как клиент и сервер генерируют симметричные ключи шифрования. Это известно как рукопожатие TLS. После завершения рукопожатия TLS сеансовые ключи клиент-сервер используются для шифрования информации, которой обмениваются в этом сеансе.
Графика: преимущества асимметричного шифрования включают аутентификацию цифровой подписи и повышенную безопасность благодаря конфиденциальности ключей дешифрования.
Каковы некоторые преимущества асимметричного шифрования?К преимуществам использования асимметричного шифрования относятся:
- Распространение ключей не требуется : защита каналов распространения ключей уже давно является головной болью в криптографии. Асимметричное шифрование полностью исключает распределение ключей . Обмен необходимыми открытыми ключами осуществляется через серверы открытых ключей, и раскрытие открытых ключей в настоящее время не наносит ущерба безопасности зашифрованных сообщений, поскольку их нельзя использовать для получения закрытых ключей.
- Обмен закрытыми ключами не требуется : при асимметричном шифровании закрытые ключи должны храниться в безопасном месте и, таким образом, быть конфиденциальными для использующих их объектов. По сути, ключи, необходимые для расшифровки конфиденциальной информации, никогда и никогда не должны передаваться по потенциально скомпрометированному каналу связи, и это большой плюс для безопасности и целостности зашифрованных сообщений.
- Цифровая подпись/аутентификация сообщения : с асимметричным шифрованием отправители могут использовать свои закрытые ключи для цифровой подписи и проверки того, что сообщение или файл исходит от них, а не от ненадежной третьей стороны.
Может показаться, что с асимметричным шифрованием все в порядке. Я имею в виду, почему вы вообще выбрали симметричное шифрование, если асимметричное шифрование настолько безопасно?
Одно слово: скорость.
Графика: к недостаткам асимметричного шифрования относится медлительность выполнения по сравнению с симметричным шифрованием.
Основным недостатком асимметричного шифрования является то, что оно медленнее симметричного шифрования из-за большей длины ключа, не говоря уже о том, что вычисления асимметричного шифрования, как правило, намного сложнее, чем их симметричные аналоги.
Почему? Потому что теоретически открытые ключи можно использовать для взлома закрытых ключей — опять же, они математически связаны, — но асимметричное шифрование использует чрезвычайно длинные ключи, что делает это практически невозможным, по крайней мере, на данный момент.
Короче говоря, симметричное шифрование быстрее, чем асимметричное шифрование. Асимметричное шифрование жертвует скоростью ради безопасности, а симметричное шифрование жертвует безопасностью ради скорости.
Это не означает, что симметричное шифрование небезопасно; однако сама основа асимметричного шифрования устраняет несколько рисков информационной безопасности, которые все еще существуют в плохо управляемых криптосистемах с симметричным шифрованием.
Графика: Подытожим «ключевые» различия между симметричным и асимметричным шифрованием.
Заключение: сводка основных отличийОсновные различия между симметричным и асимметричным шифрованием заключаются в предпочтениях скорости и безопасности. Вообще говоря, симметричное шифрование быстрее и проще, но часто рассматривается как менее безопасное, чем асимметричное шифрование. Но, как мы уже говорили, шифрование на самом деле сводится к двум вещам: размеру ключа и безопасности носителя, на котором хранятся ключи шифрования.
Симметричное шифрование выполняется намного быстрее из-за меньшей длины ключа.Асимметричное шифрование имеет тенденцию тормозить сети из-за более длинных ключей и сложных алгоритмов. Это компромиссы, которые стоит учитывать при выборе типа шифрования.
В Trenton Systems мы предлагаем решения для шифрования данных на наших высокопроизводительных серверах и рабочих станциях в виде дисков с самошифрованием (SED), совместимых с AES, Opal и FIPS-140-2.
Объедините это с платформой управления криптографией (CMP) нашего технологического партнера FUTURA Cyber, и вы создадите безопасный, хорошо управляемый компьютер, способный противостоять распространенным атакам на ваши конфиденциальные данные.
Для получения дополнительной информации о том, как мы обеспечиваем целостность ваших данных с помощью шифрования данных, свяжитесь с нами сегодня.
Типы шифрования: 5 алгоритмов шифрования и как выбрать правильный
Мы разберем два основных типа шифрования — симметричное и асимметричное — прежде чем углубиться в список 5 наиболее часто используемых алгоритмов шифрования, чтобы упростить их, как никогда раньше. одна из тех тем кибербезопасности, которые всегда в заголовках.Любой, кто хорошо разбирается в различных типах шифрования, может почувствовать, что эта замечательная технология, лежащая в основе безопасности и конфиденциальности в Интернете, несправедлива. Шифрование — это метод преобразования данных в не поддающийся расшифровке формат, чтобы только авторизованные стороны могли получить доступ к информации.
![](/800/600/http/images.myshared.ru/4/203263/slide_12.jpg)
Криптографические ключи в сочетании с алгоритмами шифрования делают возможным процесс шифрования. И, исходя из способа применения этих ключей, в основном используются два типа методов шифрования: «симметричное шифрование» и «асимметричное шифрование».Оба эти метода используют разные математические алгоритмы (т. е. те алгоритмы шифрования, о которых мы упоминали несколько минут назад) для шифрования данных. Этот список распространенных алгоритмов шифрования включает RSA, ECC, 3DES, AES и т. д.
В этой статье мы узнаем о симметричном и асимметричном шифровании и их преобладающих алгоритмах шифрования, которые используются для шифрования данных.
Давайте обсудим это.
Тип шифрования №1: симметричное шифрование
Метод симметричного шифрования, как следует из названия, использует один криптографический ключ для шифрования и дешифрования данных.Использование одного ключа для обеих операций делает этот процесс простым, поэтому он называется «симметричным». Вот наглядное представление того, как работает симметричное шифрование:
Давайте разберемся с процессом симметричного шифрования на простом примере:
В Нью-Йорке живут два очень близких друга по имени Боб и Алиса. По какой-то причине Алисе приходится уехать из города. Единственный способ, которым они могут общаться друг с другом, — это почта. Но есть одна проблема: Боб и Алиса боятся, что кто-то может прочитать их письма.
Чтобы защитить свои письма от чужих глаз, они решают написать свое сообщение таким образом, чтобы каждая буква сообщения была заменена буквой на семь позиций ниже по алфавиту. Таким образом, вместо «Apple» они писали «hwwsl» (A -> H, P -> W, L -> S, E -> L). Чтобы вернуть данные в исходную форму, им пришлось бы заменить букву на семь позиций вверх по алфавиту.
Конечно, это может показаться вам слишком простым — и это так. Это потому, что эту технику много веков назад использовал Юлий Цезарь, римский император и военачальник.Этот метод, известный как «шифр Цезаря», основан на замене алфавита.
Современные методы шифрования не так просты. Широко используемые алгоритмы шифрования настолько сложны, что даже совокупная вычислительная мощность многих суперкомпьютеров не может их взломать. И именно поэтому мы можем расслабиться и отправить информацию о нашей кредитной карте без каких-либо забот.
Что делает симметричное шифрование отличным методом
Наиболее выдающейся особенностью симметричного шифрования является простота его процесса.Эта простота этого типа шифрования заключается в использовании одного ключа как для шифрования, так и для дешифрования. В результате алгоритмы симметричного шифрования:
- значительно быстрее, чем их аналоги с асимметричным шифрованием (о которых мы вскоре поговорим),
- требуют меньше вычислительной мощности и
- не снижают скорость интернета.
Это означает, что при шифровании больших объемов данных симметричное шифрование оказывается отличным вариантом.
3 распространенных типа алгоритмов симметричного шифрования
Как мы видели в случае с шифром Цезаря, за каждым методом шифрования, который шифрует данные, стоит определенная логика. Используемые сегодня методы шифрования основаны на очень сложных математических функциях, которые делают практически невозможным их взлом.
Вы можете осознавать или не осознавать, что существуют сотни алгоритмов симметричного ключа! Некоторые из наиболее распространенных методов шифрования включают AES, RC4, DES, 3DES, RC5, RC6 и т. д.Из этих алгоритмов наиболее известны алгоритмы DES и AES. Хотя мы не можем охватить все различные типы алгоритмов шифрования, давайте рассмотрим три наиболее распространенных.
1. Алгоритм симметричного шифрования DES
Введенный в 1976 году, DES (стандарт шифрования данных) является одним из старейших методов симметричного шифрования. Он был разработан IBM для защиты конфиденциальных, несекретных электронных правительственных данных и был официально принят в 1977 году для использования федеральными агентствами.DES использует 56-битный ключ шифрования и основан на структуре Фейстеля, разработанной криптографом по имени Хорст Фейстель. Алгоритм шифрования DES был среди тех, которые были включены в TLS (безопасность транспортного уровня) версий 1.0 и 1.1.
DES преобразует 64-битные блоки данных открытого текста в зашифрованный текст, разделяя блок на два отдельных 32-битных блока и независимо применяя процесс шифрования к каждому из них. Это включает в себя 16 раундов различных процессов, таких как расширение, перестановка, замена или операция XOR с круглым ключом, через которые будут проходить данные по мере их шифрования.В конечном итоге на выходе создаются 64-битные блоки зашифрованного текста.
Сегодня DES больше не используется, так как многие исследователи безопасности взломали его. В 2005 году DES был официально объявлен устаревшим и был заменен алгоритмом шифрования AES, о котором мы сейчас поговорим. Самым большим недостатком DES была его малая длина ключа шифрования, что облегчало его перебор. TLS 1.2, наиболее широко используемый сегодня протокол TLS, не использует метод шифрования DES.
2.
![](/800/600/https/theslide.ru/img/tmb/4/351655/8bf7033893e5ce0ad6451501ccf6854b-800x.jpg)
3DES (также известный как TDEA, что означает тройной алгоритм шифрования данных), как следует из названия, представляет собой обновленную версию выпущенного алгоритма DES.3DES был разработан для преодоления недостатков алгоритма DES и начал использоваться с конца 1990-х годов. Для этого он трижды применяет алгоритм DES к каждому блоку данных. В результате этот процесс сделал 3DES гораздо более сложным для взлома, чем его предшественник DES. Он также стал широко используемым алгоритмом шифрования в платежных системах, стандартах и технологиях в финансовой сфере. Он также стал частью криптографических протоколов, таких как TLS, SSH, IPsec и OpenVPN.
Все алгоритмы шифрования в конечном итоге поддаются власти времени, и 3DES не стал исключением.Уязвимость Sweet32, обнаруженная исследователями Картикеяном Бхаргаваном и Гаэтаном Лёрентом, закрыла дыры в безопасности, существующие в алгоритме 3DES. Это открытие заставило индустрию безопасности рассмотреть вопрос об устаревании алгоритма, и Национальный институт стандартов и технологий (NIST) объявил об устаревании в проекте руководства, опубликованном в 2019 году. во всех новых приложениях после 2023 года. Также стоит отметить, что TLS 1.3, последний стандарт для протоколов SSL/TLS, также прекратил использование 3DES.
3. Алгоритм симметричного шифрования AES
AES, что означает «расширенная система шифрования», является одним из наиболее распространенных типов алгоритмов шифрования и был разработан в качестве альтернативы алгоритму DES. Также известный как Rijndael, AES стал стандартом шифрования после одобрения NIST в 2001 году. В отличие от DES, AES представляет собой семейство блочных шифров, состоящее из шифров с разной длиной ключа и размером блока.
AES работает методами подстановки и перестановки. Сначала данные открытого текста преобразуются в блоки, а затем применяется шифрование с использованием ключа шифрования. Процесс шифрования состоит из различных подпроцессов, таких как подбайты, сдвиг строк, смешивание столбцов и добавление циклических ключей. В зависимости от размера ключа выполняется 10, 12 или 14 таких раундов. Стоит отметить, что последний раунд не включает подпроцесс смешивания столбцов среди всех других подпроцессов, выполняемых для шифрования данных.
Преимущество использования алгоритма шифрования AES
Все это сводится к тому, что AES безопасен, быстр и гибок. AES — гораздо более быстрый алгоритм по сравнению с DES. Несколько вариантов длины ключа — это самое большое преимущество, которое у вас есть, поскольку чем длиннее ключи, тем сложнее их взломать.
Сегодня AES является наиболее широко используемым алгоритмом шифрования — он используется во многих приложениях, в том числе:
- Защита беспроводных сетей,
- Безопасность процессора и шифрование файлов,
- Протокол SSL/TLS (безопасность веб-сайтов),
- Wi- Безопасность Fi,
- Шифрование мобильного приложения,
- VPN (виртуальная частная сеть) и т. д.
Многие государственные учреждения, в том числе Агентство национальной безопасности (АНБ), полагаются на алгоритм шифрования AES для защиты конфиденциальной информации.
Тип шифрования #2: асимметричное шифрование
Асимметричное шифрование, в отличие от метода симметричного шифрования, использует несколько ключей для шифрования и дешифрования данных. Асимметричное шифрование включает в себя два отдельных ключа шифрования, которые математически связаны друг с другом. Один из этих ключей известен как «открытый ключ», а другой — как «закрытый ключ».Следовательно, почему метод асимметричного шифрования также известен как «криптография с открытым ключом».
Как мы видели в приведенном выше примере, симметричное шифрование отлично работает, когда Алиса и Боб хотят обменяться информацией. Но что, если Боб хочет безопасно общаться с сотнями людей? Было бы практично, если бы он использовал разные математические ключи для каждого человека? Не совсем, потому что это было бы большим количеством ключей, чтобы жонглировать.
Чтобы решить эту проблему, Боб использует шифрование с открытым ключом, что означает, что он дает открытый ключ всем, кто отправляет ему информацию, и хранит закрытый ключ у себя. Он поручает им зашифровать информацию с помощью открытого ключа, чтобы данные можно было расшифровать только с помощью закрытого ключа, который у него есть. Это устраняет риск компрометации ключа, поскольку данные могут быть расшифрованы только с использованием закрытого ключа, который есть у Боба.
Что делает асимметричное шифрование отличным методом
Первое (и наиболее очевидное) преимущество этого типа шифрования — безопасность, которую он обеспечивает. В этом методе общедоступный открытый ключ используется для шифрования данных, а расшифровка данных выполняется с использованием закрытого ключа, который необходимо надежно хранить.Это гарантирует, что данные остаются защищенными от атак «человек посередине» (MiTM). Для веб-серверов/серверов электронной почты, которые каждую минуту подключаются к сотням тысяч клиентов, асимметричное шифрование является не чем иным, как благом, поскольку им нужно управлять и защищать только один ключ. Еще одним ключевым моментом является то, что криптография с открытым ключом позволяет создать зашифрованное соединение без предварительной встречи в автономном режиме для обмена ключами.
Второй важной функцией асимметричного шифрования является аутентификация.Как мы видели, данные, зашифрованные открытым ключом, могут быть расшифрованы только с помощью связанного с ними закрытого ключа. Следовательно, он гарантирует, что данные будут видны и расшифрованы только той сущности, которая должна их получить. Проще говоря, он подтверждает, что вы разговариваете с человеком или организацией, которыми вы себя считаете.
Два основных типа алгоритмов асимметричного шифрования
1. Алгоритм асимметричного шифрования RSA
Изобретенный Роном Ривестом, Ади Шамиром и Леонардом Адлеманом (отсюда «RSA») в 1977 году, на сегодняшний день RSA является наиболее широко используемым. алгоритм асимметричного шифрования.Его эффективность заключается в методе «простой факторизации», на который он опирается. По сути, этот метод включает в себя два огромных случайных простых числа, которые перемножаются, чтобы создать еще одно гигантское число. Головоломка здесь состоит в том, чтобы определить исходные простые числа из этого гигантского числа, умноженного на него.
Оказывается, эта головоломка практически неразрешима — если использовать ключ правильной длины, сгенерированный с достаточной энтропией — для современных суперкомпьютеров, не говоря уже о людях. В 2010 году группа исследователей провела исследование, и им потребовалось более 1500 лет вычислительного времени (распределенного на сотнях компьютеров), чтобы взломать 768-битный ключ RSA, который намного ниже стандартного 2048-битного ключа RSA, который используется. сегодня.
Преимущество использования алгоритма шифрования RSA
Большим преимуществом RSA является его масштабируемость. Он поставляется с ключами шифрования различной длины, такими как 768-битный, 1024-битный, 2048-битный, 4096-битный и т. д. Таким образом, даже если ключи меньшей длины успешно взломаны, вы можете использовать шифрование ключей большей длины. потому что сложность перебора ключа увеличивается с каждым увеличением длины ключа.
RSA основан на простом математическом подходе, поэтому его реализация в инфраструктуре открытых ключей (PKI) становится простой. Эта адаптируемость к PKI и ее безопасности сделали RSA наиболее широко используемым алгоритмом асимметричного шифрования, используемым сегодня. RSA широко используется во многих приложениях, включая сертификаты SSL/TLS, криптовалюты и шифрование электронной почты.
2. Алгоритм асимметричного шифрования ECC
В 1985 году два математика по имени Нил Коблиц и Виктор С. Миллер предложили использовать эллиптические кривые в криптографии. Спустя почти два десятилетия их идея была воплощена в жизнь, когда в 2004-05 гг. начал использоваться алгоритм ECC (Elliptic Curve Cryptography).
В процессе шифрования ECC эллиптическая кривая представляет набор точек, удовлетворяющих математическому уравнению (y 2 = x 3 + ax + b).
Как и RSA, ECC также работает по принципу необратимости. Проще говоря, легко вычислить его в одном направлении, но мучительно сложно повернуть вспять и прийти к исходной точке. В ECC число, обозначающее точку на кривой, умножается на другое число и дает другую точку на кривой. Теперь, чтобы решить эту загадку, вы должны найти новую точку на кривой.Математика ECC построена таким образом, что узнать новую точку практически невозможно, даже если вы знаете исходную точку.
Преимущество использования алгоритма шифрования ECC
По сравнению с RSA, ECC обеспечивает более высокий уровень безопасности (от текущих методов взлома), поскольку он довольно сложен. Он обеспечивает тот же уровень защиты, что и RSA, но использует гораздо более короткие ключи. В результате ECC, применяемый с ключами большей длины, потребует значительно больше времени для взлома с использованием атак грубой силы.
Еще одним преимуществом более коротких ключей в ECC является более высокая производительность. Более короткие ключи требуют меньшей нагрузки на сеть и вычислительной мощности, и это отлично подходит для устройств с ограниченными возможностями хранения и обработки. Когда ECC используется в сертификатах SSL/TLS, это значительно сокращает время, необходимое для выполнения рукопожатий SSL/TLS, и помогает быстрее загружать веб-сайт. Алгоритм шифрования ECC используется для приложений шифрования, для применения цифровых подписей, в генераторах псевдослучайных чисел и т. д.
Однако проблема с использованием ECC заключается в том, что во многих серверных программах и панелях управления еще не добавлена поддержка сертификатов ECC SSL/TLS. Мы надеемся, что это изменится в будущем, но это означает, что RSA будет продолжать оставаться более широко используемым алгоритмом асимметричного шифрования.
Гибридное шифрование: симметричное + асимметричное шифрование
Во-первых, позвольте мне пояснить, что гибридное шифрование — это не «метод», как симметричное и асимметричное шифрование.Он берет лучшее из обоих этих методов и создает синергию для создания надежных систем шифрования.
Какими бы преимуществами ни обладали симметричное и асимметричное шифрование, они оба имеют свои недостатки. Метод симметричного шифрования отлично подходит для быстрого шифрования больших данных. Тем не менее, он не обеспечивает проверку личности, что является необходимостью, когда речь идет об интернет-безопасности. С другой стороны, асимметричное шифрование — благодаря паре открытого и закрытого ключей — гарантирует, что данные будут доступны предполагаемому получателю.Однако эта проверка делает процесс шифрования болезненно медленным при масштабной реализации.
Во многих приложениях, например для обеспечения безопасности веб-сайтов, требовалось высокоскоростное шифрование данных, а также проверка личности, чтобы гарантировать пользователям, что они разговаривают с предполагаемым объектом. Так родилась идея гибридного шифрования.
Метод гибридного шифрования используется в таких приложениях, как сертификаты SSL/TLS. Шифрование SSL/TLS применяется во время серии обменов данными между серверами и клиентами (веб-браузерами) в процессе, известном как «рукопожатие TLS».В этом процессе личность обеих сторон проверяется с использованием закрытого и открытого ключа. Как только обе стороны подтвердили свою личность, шифрование данных происходит посредством симметричного шифрования с использованием эфемерного (сеансового) ключа. Это обеспечивает быструю передачу тонн данных, которые мы отправляем и получаем в Интернете каждую минуту.
Типы методов шифрования: что мы выяснили
Если вам интересно, какой тип шифрования лучше другого, то однозначного победителя не будет, поскольку как симметричное, так и асимметричное шифрование имеют свои преимущества. и мы не можем выбирать только одно за счет другого.
С точки зрения безопасности асимметричное шифрование, несомненно, лучше, поскольку оно обеспечивает аутентификацию и неотказуемость. Однако производительность также является аспектом, который мы не можем игнорировать, и поэтому симметричное шифрование всегда будет необходимо.
Вот краткое изложение того, что мы хэшировали для типов шифрования:
*** Это синдицированный блог Security Bloggers Network из Hashed Out by The SSL Store™, автором которого является Джей Таккар. Прочтите исходный пост по адресу: https://www.thesslstore.com/blog/types-of-encryption-encryption-algorithms-how-to-choose-the-right-one/
.типов шифрования: симметричное или асимметричное? RSA или AES?
Что такое шифрование данных? Шифрование данных— это процесс, который может быть таким же простым, как щелкнуть выключателем, если вы знаете, чего хотите достичь.Давайте вспомним основы этого актива защиты данных. Шифровать данные означает взять часть информации и преобразовать ее в другую часть нераспознаваемой информации. Этот конечный продукт называется зашифрованным текстом .
Чтобы получить зашифрованный текст, вы запускаете информацию, которая должна быть зашифрована, с помощью алгоритма шифрования. Этот алгоритм берет исходную информацию и на основе рандомизированных правил преобразует информацию в новый, не поддающийся расшифровке фрагмент данных. Думайте об этом как о «переводе».Алгоритм шифрования создает новый язык, и скрывает конфиденциальные данные, преобразовывая их в этот секретный код, который вы можете расшифровать и вернуть к открытому тексту, только если знаете правила или то, что называется ключом .
Ключ представляет собой математические шаги, предпринятые алгоритмом для преобразования вашего текста из «Hello World» в «XJtg920kl#aJFJ»%*¨*FK». Без него вы не сможете расшифровать данные, и, таким образом, они будут защищены от несанкционированного доступа. Но существует множество различных типов алгоритмов и методов шифрования, поэтому как узнать, какой из них наиболее безопасен для вашей кибербезопасности? потребности? Начнем с самого основного различия: симметричное против асимметричное шифрование .
Типы шифрования данныхСуществует множество различных типов алгоритмов и методов шифрования, так как же узнать, какой из них наиболее безопасен для ваших нужд кибербезопасности? Начнем с самого основного различия: симметричное против асимметричное шифрование .
Симметричное шифрование
В симметричном шифровании есть только один ключ, и все вовлеченные стороны используют один и тот же ключ для шифрования и расшифровки информации.При использовании одного ключа процесс прост, как показано в следующем примере: вы шифруете электронное письмо с помощью уникального ключа, отправляете это электронное письмо своему другу Тому, и он будет использовать тот же самый симметричный ключ для разблокировки/дешифрования электронное письмо.
Преимущество симметричного шифрования заключается в его более высокой производительности и низком потреблении ресурсов, но оно по своей сути более старое и менее безопасное, чем его аналог. Причина проста: если вы масштабируете свое шифрование до масштабов всей компании, это означает, что вы полностью доверяете одному ключу, которым вам придется делиться со многими.
По этой причине симметричное шифрование отлично подходит для работы с большими объемами конфиденциальных данных или задач шифрования, которые предназначены для постоянного сокрытия информации без необходимости расшифровки. Например, когда вы активируете BitLocker на компьютере с Windows, чтобы зашифровать все жесткие диски. Разблокировав ПК с помощью своего пароля, пользователь расшифрует данные без риска раскрытия своего секретного ключа шифрования. Другим примером являются VPN, которые шифруют ваш сетевой трафик с помощью локального ключа и не имеют необходимости делиться им за пределами вашего собственного использования.
Асимметричное шифрование
Асимметричное шифрование, с другой стороны, было создано для решения внутренней проблемы симметричного шифрования: необходимости совместного использования единого ключа шифрования, который используется как для шифрования, так и для расшифровки данных.
Этот более новый и безопасный метод использует два ключа для процесса шифрования: открытый ключ, используемый для шифрования, и закрытый ключ, используемый для расшифровки. Эти ключи связаны, подключены и работают следующим образом:
Открытый ключ доступен для всех, кому необходимо зашифровать часть информации.Этот ключ не подходит для процесса расшифровки. Пользователь должен иметь вторичный ключ, закрытый ключ, чтобы расшифровать эту информацию. Таким образом, закрытый ключ хранится только у субъекта, который расшифровывает информацию, не жертвуя безопасностью по мере масштабирования безопасности.
Хорошим примером является шифрование электронной почты. С асимметричным шифрованием любой может использовать ваш открытый ключ для отправки вам зашифрованного электронного письма, которое вы можете расшифровать только с помощью своего закрытого ключа.
Естественно, асимметричный — это более продвинутый стандарт шифрования, поэтому он медленнее и требует больше ресурсов.Из-за этого он обычно используется в небольших транзакциях, обычно для установления безопасных каналов связи или аутентификации пользователей.
Симметричное и асимметричное шифрование
Типы шифрования можно легко разделить на эти две категории. Симметричное шифрование, то есть шифрование с одним ключом, асимметричное шифрование или шифрование с открытым ключом.
Общие алгоритмы симметричного шифрованияШифрование AES или расширенная система шифрования
AES — один из наиболее распространенных сегодня алгоритмов симметричного шифрования, разработанный в качестве замены устаревшему DES (стандарту шифрования данных), взломанному исследователями безопасности еще в 2005 году.Этот новый алгоритм стремился устранить главную слабость своего предшественника — короткую длину ключа шифрования, уязвимую для грубой силы.
AES шифрует информацию в одном блоке (блочный шифр) и делает это по одному блоку за раз в так называемых «раундах». Данные сначала преобразуются в блоки, а затем они шифруются ключом в разных раундах в зависимости от размера ключа: 14 раундов для 256-битных, 12 раундов для 192-битных и 10 раундов для 128-битных. Процесс включает в себя серию шагов обработки данных и смешивания, которые выполняются каждый раунд: замена, транспозиция, смешивание, смешивание столбцов, подбайты.
Иглобрюх и Туфиш
Blowfish был еще одним симметричным преемником DES, разработанным как блочный шифр, подобный AES, но с длиной ключа от 32 до 448 бит. Он был разработан как общедоступный инструмент, не лицензионный и бесплатный. Эта первоначальная версия была обновлена до TwoFish, — усовершенствованной версии последней, в которой используется размер блока 128 бит с возможностью расширения до 256 бит.
Основное отличие от других алгоритмов шифрования заключается в том, что он использует 16 раундов шифрования, независимо от ключа или размера данных.
Основная причина, по которой TwoFish не считается лучшим симметричным алгоритмом, заключается в том, что AES получил признание и был быстро принят производителями в качестве стандарта, а это означает, что он имел верхнее техническое преимущество.
3DES или тройной стандарт шифрования данных
Наконец, прямым преемником DES является 3DES, или Triple Des . Этот симметричный алгоритм является усовершенствованной формой устаревшего алгоритма DES, который использует 56-битный ключ для шифрования блоков данных.Его концепция проста: он трижды применяет DES к каждому блоку информации, превращая 56-битный ключ в 168-битный.
Из-за того, что один и тот же процесс применяется трижды, 3DES работает медленнее, чем его более современные аналоги. Кроме того, при использовании небольших блоков данных риск расшифровки методом грубой силы выше.
Общие алгоритмы асимметричного шифрованияRSA или Ривест-Шамир-Адлеман
Считается основой асимметричного шифрования. Разработанный инженерами, которые дали ему свое название в 1977 году, RSA использует факторизацию произведения двух простых чисел для обеспечения шифрования 1024 бит и длиной ключа до 2048 бит.Согласно исследованию, проведенному в 2010 году, вам потребуется 1500 лет вычислительной мощности, чтобы взломать его меньшую 768-битную версию!
Однако это означает, что это более медленный алгоритм шифрования. Поскольку для этого требуются два разных ключа невероятной длины, процесс шифрования и дешифрования медленный, но уровень безопасности, который он обеспечивает для конфиденциальной информации, несравним.
ECC или криптография на основе эллиптических кривых
Первоначально этот метод был предложен в 1985 году Нилом Коблицем и Виктором С.Миллера, который будет реализован несколько лет спустя, в 2004 году. ECC использует довольно сложную математическую операцию, основанную на эллиптических кривых в конечном поле, в так называемой эллиптической кривой Диффи-Хеллмана.
С помощью ECC у вас есть кривая, определяемая математической функцией, начальной точкой (A) и конечной точкой (Z) кривой. Суть в том, что для того, чтобы добраться до Z, вы сделали серию «скачков» или умножений, которые привели к Z. Это количество прыжков и есть закрытый ключ.
Рандомизированные расчеты могут привести к любому типу расположения на кривой.Даже если у вас есть начальная и конечная точка (открытый ключ) и кривая, практически невозможно взломать закрытый ключ. Это связано с тем, что ECC — это то, что называют «лазейкой», или математической операцией, которую легко и быстро выполнить, но чрезвычайно трудно отменить.
ECC, или ECDH, математическая формула настолько сильна, что может сопоставить 1024-битную ключевую систему с безопасностью с 164-битным ключом. В самом высоком значении, 512-битном, ECC может обеспечить сравнимый уровень безопасности 15360-битного ключа RSA!
Чтобы нарисовать картину, 2048-битные ключи RSA являются банковским стандартом, а 521-битный ECC обеспечивает эквивалент 15360-битного ключа RSA.
Принимая во внимание вышеупомянутые факты, ECC считается будущим шифрования. Он асимметричен, но способен обеспечить уровень безопасности 256 бит при максимальной длине ключа 521 бит, что обеспечивает высокую скорость шифрования с высокой сложностью дешифрования для обеспечения безопасности конфиденциальных данных.
ECC также чрезвычайно привлекателен для мобильных устройств, где вычислительная мощность невелика, а скорость передачи данных высока.
Какой алгоритм шифрования данных лучше?Ну, это определенно зависит.Вот краткий обзор всех алгоритмов и их лучших качеств:
AES (симметричный):
AES — один из наиболее часто используемых алгоритмов. Это быстро, с опцией переменной длины ключа, которая обеспечивает дополнительную безопасность. Он идеально подходит для обработки больших объемов зашифрованных данных.
TwoFish (симметричный — ранее BlowFish):
Основная привлекательность TwoFish заключается в его гибкости в производительности, дающей вам полный контроль над скоростью шифрования.
3DES (симметричный):
Несмотря на более низкую скорость и в целом устаревший статус по сравнению с AES, он по-прежнему широко используется в финансовых службах для шифрования PIN-кодов банкоматов и паролей UNIX.
RSA (асимметричный):
Поскольку его скорость неудобна для обработки больших объемов данных, шифрование RSA в основном используется в цифровых подписях, шифровании электронной почты, сертификатах SSL/TLS и браузерах.
ECC (асимметричный):
Недорогое сочетание с низким уровнем воздействия и высоким уровнем безопасности делает его идеальным стандартом для защиты конфиденциальных мобильных устройств и приложений. Вероятно, это алгоритм будущего.
Еда на выносШифрование может быть пугающим занятием.Данные есть везде, и вы должны учитывать их на всех уровнях: данные в состоянии покоя, данные в движении, кому и где нужен доступ к этой информации, как она передается и какие типы взаимодействий у вас есть с конфиденциальной информацией, которая должна быть зашифрована.
Возможно, вы шифруете сообщения вашего предприятия, информацию веб-браузера, транзакции электронной коммерции, базу данных вашей компании, жесткие диски или данные клиентов и пользователей. Сделать первый шаг может показаться трудным, но необходимо задокументировать все взаимодействия с данными и составить план.Таким образом, вы поймете, какие типы шифрования вам понадобятся.
К счастью, в вашем распоряжении есть много простых инструментов шифрования, готовых к быстрой активации, как только вы определите уровень своих протоколов безопасности данных. FileVault для macOS интегрирован и готов к шифрованию компьютеров Mac с помощью AES. Prey может помочь с компьютерами Microsoft, используя BitLocker и AES для шифрования дисков на ваших устройствах. Идеально, если у вас есть удаленная рабочая сила.Данные шифруются удаленно, поэтому вам не нужно беспокоиться о хлопотах, но вы можете обеспечить безопасность своей компании.
Prey предлагает БЕСПЛАТНУЮ пробную версию! Зарегистрируйтесь здесь и убедитесь сами.
Алгоритм с симметричным ключом в криптографии | by Quantum Backdoor
Алгоритмы с симметричным ключом — это алгоритмы криптографии, использующие одни и те же криптографические ключи как для шифрования открытого текста, так и для дешифрования зашифрованного текста. Ключи могут быть идентичными, или между двумя ключами может быть простое преобразование.На практике ключи представляют собой общий секрет между двумя или более сторонами, который можно использовать для поддержания связи с частной информацией. Это требование, чтобы обе стороны имели доступ к секретному ключу, является одним из основных недостатков шифрования с симметричным ключом по сравнению с шифрованием с открытым ключом (также известным как шифрование с асимметричным ключом). ciphers
- Потоковые шифры шифруют цифры (обычно байты) или буквы (в шифрах замены) сообщения по одному.Примером может служить шифр Виженера.
- Блочные шифры берут несколько битов и шифруют их как единое целое, дополняя открытый текст так, чтобы он был кратен размеру блока. Алгоритм Advanced Encryption Standard (AES), одобренный NIST в декабре 2001 года, использует 128-битные блоки.
Примеры популярных алгоритмов с симметричным ключом включают Twofish, Serpent, AES (Rijndael), Camellia, Salsa20, ChaCha20, Blowfish, CAST5, Kuznyechik, RC4, DES, 3DES, Skipjack, Safer и IDEA. используется для достижения других криптографических примитивов, а не только шифрования.[ необходима ссылка ]
Шифрование сообщения не гарантирует, что это сообщение не будет изменено во время шифрования. Поэтому часто к зашифрованному тексту добавляется код аутентификации сообщения, чтобы гарантировать, что изменения в зашифрованном тексте будут отмечены получателем. Коды аутентификации сообщений могут быть созданы из симметричных шифров (например, CBC-MAC). [ ]
Однако симметричные шифры не могут использоваться в целях подтверждения авторства, кроме как с привлечением дополнительных сторон.См. стандарт ISO/IEC 13888-2.
Другое применение — построение хеш-функций из блочных шифров. Описание нескольких таких методов см. в описании функции одностороннего сжатия.
Многие современные блочные шифры основаны на конструкции, предложенной Хорстом Фейстелем. Конструкция Фейстеля позволяет строить обратимые функции из других функций, которые сами по себе необратимы.
Симметричные шифры исторически были подвержены атакам с известным открытым текстом, атакам с выбранным открытым текстом, дифференциальному криптоанализу и линейному криптоанализу.Тщательное построение функций для каждого раунда может значительно снизить шансы на успешную атаку.
Управление ключами относится к управлению криптографическими ключами в криптосистеме. Это включает в себя работу с генерацией, обменом, хранением, использованием, криптографическим измельчением (уничтожением) и заменой ключей. Он включает в себя разработку криптографического протокола, серверы ключей, пользовательские процедуры и другие соответствующие протоколы.[1]
Управление ключами касается ключей на уровне пользователя, между пользователями или системами.Это отличается от планирования ключей, которое обычно относится к внутренней обработке ключей в рамках операции шифрования.
Успешное управление ключами имеет решающее значение для безопасности криптосистемы. Это более сложная сторона криптографии в том смысле, что она включает аспекты социальной инженерии, такие как системная политика, обучение пользователей, организационное и ведомственное взаимодействие и координация между всеми этими элементами, в отличие от чисто математических практик, которые можно автоматизировать.
Алгоритмы с симметричным ключом требуют, чтобы отправитель и получатель сообщения имели один и тот же секретный ключ. Все ранние криптографические системы требовали, чтобы один из этих людей каким-то образом получил копию этого секретного ключа по физически защищенному каналу.
Почти все современные криптографические системы по-прежнему используют алгоритмы с симметричным ключом для внутреннего шифрования большей части сообщений, но они устраняют необходимость в физически защищенном канале, используя обмен ключами Диффи-Хеллмана или какой-либо другой протокол с открытым ключом для безопасного доступа к соглашение о новом секретном ключе для каждого сообщения (прямая секретность).
При использовании с асимметричными шифрами для передачи ключей генераторы псевдослучайных ключей почти всегда используются для генерации сеансовых ключей симметричного шифра. Однако отсутствие случайности в этих генераторах или в их векторах инициализации является катастрофическим и приводило к криптоаналитическим взломам в прошлом. Следовательно, важно, чтобы реализация использовала источник с высокой энтропией для своей инициализации. место в системе, чтобы получить открытый текст.Взаимный шифр также иногда называют самовзаимным шифром.
Практически все механические шифровальные машины реализуют взаимный шифр, математическую инволюцию для каждой введенной буквы. Вместо того, чтобы проектировать два типа машин, одну для шифрования и одну для расшифровки, все машины могут быть идентичными и могут быть настроены (ключены) одинаково.[11]
Примеры взаимных шифров включают:
Практически все современные шифры могут быть классифицированы либо как поточные шифры, большинство из которых используют взаимный объединитель шифров XOR, либо как блочные шифры, большинство из которых используют шифр Фейстеля или схему Лая-Месси. с реципрокным преобразованием в каждом раунде
Типы шифрования: что нужно знать о симметричном и асимметричном шифровании
Запутались между симметричным и асимметричным шифрованием? Мы здесь, чтобы внести ясность в эту сложную тему, разбив эти типы шифрования и предоставив примеры
.Симметричное и асимметричное шифрование.Как будто понимание термина «шифрование» было недостаточно сложным, теперь ожидается, что вы понимаете различные типы шифрования! Именно так устроен мир шифрования и инфраструктуры открытых ключей (PKI). По мере того, как вы будете копать глубже, вас будут просить понимать все более и более сложные вещи. Наши мозговые клетки могут быть недовольны этим, но это, несомненно, хорошо, поскольку дает нам более глубокое понимание технологии, которая защищает наши данные и конфиденциальность.
В этой статье мы подробно рассмотрим два типа шифрования, которые лежат в основе современной веб-безопасности: симметричное шифрование и асимметричное шифрование.Мы также рассмотрим оба типа шифрования с некоторыми примерами, чтобы помочь вам лучше понять содержание.
Но прежде чем мы это сделаем, давайте сначала быстро рассмотрим несколько основ.
Краткий обзор: что такое шифрование и зачем оно нужно?
Шифрование — это процесс преобразования данных в виде открытого текста в зашифрованный формат, чтобы ни одно неавторизованное лицо не могло увидеть исходные данные с помощью криптографического ключа. Но это не единственное преимущество использования различных типов шифрования — оно также может помочь вам защитить целостность ваших данных, программного обеспечения, коммуникаций и обеспечить соответствие некоторым законам и правилам о безопасности данных и конфиденциальности.
Шифрованиеполезно для защиты разнообразной личной информации (PII), финансовых данных, интеллектуальной собственности и другой конфиденциальной информации, такой как:
- Имена
- Номера социального страхования
- Контактная информация
- Информация о кредитной карте
- Информация о финансовом счете
- Учетные данные
- Технические характеристики, исследования и другие конфиденциальные данные
Независимо от того, какой тип шифрования вы ищете, для него потребуется цифровой ключ.Криптографический ключ — это строка случайно сгенерированных символов, которая является частью алгоритма шифрования. Если вы сравните процесс шифрования с запиранием двери вашего дома, то механизм дверного замка становится шифрованием, а ваш физический ключ становится ключом шифрования.
Однако шифрование отличается от физических замков с точки зрения использования ключей: при шифровании тот же ключ, которым зашифрованы данные, может использоваться или не использоваться для их расшифровки. Это пример разницы между симметричным шифрованием и асимметричным шифрованием — двумя типами шифрования, которые мы обсудим в этой статье.
Разбор типов и примеров шифрования: симметричное и асимметричное шифрование
Симметричное шифрование
Проще говоря, симметричное шифрование — это более простой и традиционный метод защиты данных. Причина, по которой он называется «симметричным», заключается в том, что это процесс, который включает использование одного ключа всеми взаимодействующими сторонами для шифрования и дешифрования данных.
Вот визуальное описание этого метода:
Пример симметричного шифрования в действии
Давайте разберемся с двумя нашими любимыми персонажами (после Гомера и Барта Симпсона): Алисой и Бобом.
Допустим, Боб — агент-шпион под прикрытием, выполняющий секретную миссию в чужой стране. Элис, с другой стороны, является его куратором, который наблюдает за ним и направляет его. Боб, окруженный врагами, собирает информацию, чтобы отправить ее Алисе. Но у него есть огромное беспокойство: данные, которые он отправляет Алисе, могут быть перехвачены врагами, и он может быть разоблачен.
Чтобы этого не произошло, Алиса дает секретный ключ Бобу и просит его зашифровать всю информацию перед ее отправкой.Боб соглашается и использует этот ключ для шифрования данных. Алиса обладает тем же ключом и применяет тот же ключ для расшифровки данных для просмотра секретной информации. Таким образом, личность Боба остается в секрете, а данные передаются Алисе, создавая беспроигрышную ситуацию.
Преимущества и недостатки симметричного шифрования
Самым значительным преимуществом метода симметричного шифрования является его простота. Поскольку для шифрования и дешифрования используется только один ключ, алгоритмы симметричного шифрования считаются самыми быстрыми из двух типов шифрования и требуют для выполнения меньших вычислительных мощностей.
Однако простота алгоритмов симметричного шифрования не идеальна — у него есть проблема, известная как «распределение ключей». В случае с Бобом и Алисой симметричное шифрование прекрасно работает, поскольку существует только два объекта: отправитель и получатель. Но что, если Алиса собирает информацию из тысяч источников? Если она дает один и тот же ключ всем своим агентам, каждая часть данных становится уязвимой, если ключ каким-то образом раскрывается. И если Алиса дает всем разные симметричные ключи, это означает, что она должна управлять тысячами ключей, что нецелесообразно.
Когда вы примените эту концепцию к миллионам взаимодействий, которые происходят ежедневно между клиентами (веб-браузерами) и веб-серверами (веб-сайтами), вы поймете, насколько непрактичным это может быть в больших масштабах.
Асимметричное шифрование
Асимметричное шифрование, как можно догадаться по его названию, предполагает использование нескольких ключей для шифрования и дешифрования данных. Если быть точным, метод асимметричного шифрования состоит из двух ключей шифрования, которые математически связаны друг с другом.Эти ключи известны как открытый ключ и закрытый ключ. В результате метод асимметричного шифрования также известен как «криптография с открытым ключом».
Пример асимметричного шифрования в действии
Разберемся в этом, как вы правильно догадались, еще раз на примере Алисы и Боба.
Как мы упоминали ранее в примере с симметричным шифрованием, Боб — агент-шпион под прикрытием, выполняющий секретную миссию в чужой стране, а Алиса — его куратор.Боб должен отправлять данные таким образом, чтобы они не были перехвачены или изменены их врагами. Но на этот раз Алиса придумывает новый способ защиты информации и дает один ключ, известный как открытый ключ, Бобу.
Боб получает указание зашифровать свою конфиденциальную информацию с помощью имеющегося у него открытого ключа. Алиса, с другой стороны, имеет математически связанный закрытый ключ и может легко расшифровать информацию, которую он передает, используя его.
Вот как работает асимметричное шифрование:
Преимущества и недостатки асимметричного шифрования
Причина, по которой пришлось изобретать асимметричное шифрование, заключалась в том, чтобы решить проблему распределения ключей, которая возникает в случае метода симметричного шифрования.Следовательно, в случае с Бобом и Алисой, даже если у врагов есть открытый ключ Боба, они не смогут расшифровать информацию, так как ее можно расшифровать только с помощью закрытого ключа Алисы. Кроме того, криптография с открытым ключом также решает проблему управления ключами, даже если Алиса получает информацию из миллионов источников. Все, что ей нужно сделать, это защитить закрытый ключ и управлять им.
Однако, как и у большинства вещей в нашем мире, у всего есть своя цена — и асимметричное шифрование не исключение.В этом случае эта цена проявляется в виде снижения скорости и вычислительной мощности, поскольку этот алгоритм шифрования использует более длинные ключи. Вот почему из двух типов шифрования асимметричное шифрование считается более медленным, но более безопасным.
Гибридное шифрование: симметричное + асимметричное шифрование
Оба метода шифрования, как мы видели, имеют как свои преимущества, так и недостатки. Итак, что, если мы создадим систему, которая сочетает в себе преимущества обоих? Ну, это, конечно, возможно.Во многих приложениях симметричные и асимметричные методы шифрования используются вместе — наиболее важными из них являются криптографические протоколы уровня сокетов безопасности (SSL)/безопасности транспортного уровня (TLS).
В сертификатах SSL/TLS сначала выполняется проверка личности с использованием асимметричного шифрования. После проверки подлинности сервера процесс шифрования происходит с использованием эфемерных симметричных ключей шифрования. Таким образом можно снизить риски безопасности симметричного шифрования и проблемы производительности/скорости асимметричного шифрования.Круто, не правда ли?
Резюме: симметричное и асимметричное шифрование
Симметричное шифрование | Асимметричное шифрование |
Использует один ключ для шифрования и дешифрования данных. | Использует два отдельных ключа для шифрования и дешифрования. Они известны как «открытый ключ» и «закрытый ключ». |
Более простой и традиционный метод шифрования. | Был изобретен для снижения рисков симметричного шифрования и является более сложным. |
Работает быстрее по сравнению с асимметричным шифрованием благодаря своей простоте. | Работает медленнее и требует большей вычислительной мощности из-за своей сложности. |
Требуются ключи меньшей длины, обычно 128-256 бит. | Асимметричные ключи имеют большую длину. |
Обеспечивает конфиденциальность данных (безопасность данных). | Обеспечивает конфиденциальность, подлинность и неотказуемость. |
Используется для шифрования большого объема данных. | Полезен для шифрования небольшого объема данных. |
Стандартными алгоритмами симметричного шифрования являются RC4, AES, DES, 3DES и QUAD. | Стандартными алгоритмами асимметричного шифрования являются RSA, Diffie-Hellman, ECC, El Gamal и DSA. |
Заключительное слово об этих типах шифрования
После изучения типов и примеров шифрования многие люди просят меня оценить, какой метод шифрования лучше — симметричное или асимметричное шифрование.Честно говоря, мне никогда не удавалось удовлетворить людей своими ответами, поскольку они, вероятно, ожидали, что я скажу одно или другое.