Что такое симметричное шифрование | Энциклопедия «Касперского»
Симметричное шифрование — это способ шифрования данных, при котором один и тот же ключ используется и для кодирования, и для восстановления информации. До 1970-х годов, когда появились первые асимметричные шифры, оно было единственным криптографическим методом.
Принцип работы симметричных алгоритмов
В целом симметричным считается любой шифр, использующий один и тот же секретный ключ для шифрования и расшифровки.
Например, если алгоритм предполагает замену букв числами, то и у отправителя сообщения, и у его получателя должна быть одна и та же таблица соответствия букв и чисел: первый с ее помощью шифрует сообщения, а второй — расшифровывает.
Однако такие простейшие шифры легко взломать — например, зная частотность разных букв в языке, можно соотносить самые часто встречающиеся буквы с самыми многочисленными числами или символами в коде, пока не удастся получить осмысленные слова.
Поэтому современные симметричные алгоритмы считаются надежными, если отвечают следующим требованиям:
- Выходные данные не должны содержать статистических паттернов исходных данных (как в примере выше: наиболее частотные символы осмысленного текста не должны соответствовать наиболее частотным символам шифра).
- Шифр должен быть нелинейным (то есть в шифрованных данных не должно быть закономерностей, которые можно отследить, имея на руках несколько открытых текстов и шифров к ним).
Большинство актуальных симметричных шифров для достижения результатов, соответствующих этим требованиям, используют комбинацию операций подстановки (замена фрагментов исходного сообщения, например букв, на другие данные, например цифры, по определенному правилу или с помощью таблицы соответствий) и перестановки (перемешивание частей исходного сообщения по определенному правилу), поочередно повторяя их.
Один круг шифрования, состоящий из этих операций, называется раундом.Виды алгоритмов симметричного шифрования
В зависимости от принципа работы алгоритмы симметричного шифрования делятся на два типа:
- блочные;
- потоковые.
Блочные алгоритмы шифруют данные блоками фиксированной длины (64, 128 или другое количество бит в зависимости от алгоритма). Если все сообщение или его финальная часть меньше размера блока, система дополняет его предусмотренными алгоритмом символами, которые так и называются дополнением.
К актуальным блочным алгоритмам относятся:
- AES
- ГОСТ 28147-89
- RC5
- Blowfish
- Twofish
Потоковое шифрование данных предполагает обработку каждого бита информации с использованием гаммирования, то есть изменения этого бита с помощью соответствующего ему бита псевдослучайной секретной последовательности чисел, которая формируется на основе ключа и имеет ту же длину, что и шифруемое сообщение.
Потоковое шифрование в настоящее время используют следующие алгоритмы:
Достоинства и недостатки симметричного шифрования
Симметричные алгоритмы требуют меньше ресурсов и демонстрируют большую скорость шифрования, чем асимметричные алгоритмы. Большинство симметричных шифров предположительно устойчиво к атакам с помощью квантовых компьютеров, которые в теории представляют угрозу для асимметричных алгоритмов.
Слабое место симметричного шифрования — обмен ключом. Поскольку для работы алгоритма ключ должен быть и у отправителя, и у получателя сообщения, его необходимо передать; однако при передаче по незащищенным каналам его могут перехватить и использовать посторонние. На практике во многих системах эта проблема решается шифрованием ключа с помощью асимметричного алгоритма.
Область применения симметричного шифрования
Симметричное шифрование используется для обмена данными во многих современных сервисах, часто в сочетании с асимметричным шифрованием. Например, мессенджеры защищают с помощью таких шифров переписку (при этом ключ для симметричного шифрования обычно доставляется в асимметрично зашифрованном виде), а сервисы для видеосвязи — потоки аудио и видео. В защищенном транспортном протоколе TLS симметричное шифрование используется для обеспечения конфиденциальности передаваемых данных.
Симметричные алгоритмы не могут применяться для формирования цифровых подписей и сертификатов, потому что секретный ключ при использовании этого метода должен быть известен всем, кто работает с шифром, что противоречит самой идее электронной подписи (возможности проверки ее подлинности без обращения к владельцу).
Криптография для хакеров. Основы алгоритмов шифрования
Привет, начинающий хакер.
Мы с тобой уже рассмотрели немало тем в области работы сетей в целом, и информационной безопасности в частности. И очень часто в своих материалах я упоминал такие слова как шифрование, алгоритмы шифрования, хэши, ну и всякие словечки наподобие. И вроде бы в контексте эти слова были уместны и понятны, но, я тут подумал, что, на самом деле мало кто понимает, что именно означают эти термины, а уж раскрыть концепцию и принципы работы всего этого – вообще смогут единицы. И для начинающего, либо для любителя это вполне нормально, а вот когда люди считающие себя серьёзными хацкерами, либо анонимусами с пеной у рта доказывают, что какой-то алгоритм уязвим и пользоваться им нельзя, но, при этом не могут даже приблизительно сформулировать что такое алгоритм шифрование, в чём суть уязвимости, а главное уязвимости к чему, это вызывает снисходительную улыбку. Но ты ведь не хочешь таким быть, правда? Поэтому я решил посветить эту статью криптографии в целом, и шифрованию в частности, но я постараюсь не углубляться в теоретические глубины, а сосредоточусь на практической части вопроса, больше внимания посвящая именно алгоритмам шифрования.
Начнём, как и положено с начала. А в начале всего стоит криптография – это такая наука, причём очень древняя и очень сложная. Исторически сложилось, что основной целью криптографии можно выделить обеспечение конфиденциальности т.е. защиты информации от посторонних личностей. И эта цель не менее актуальна и сейчас, но с развитием информационных технологий, а соответственно с развитием криптографии, начали появляться новые, но не менее важные цели этой науки, например к наиболее популярным можно отнести: аутентификацию т.е. проверку неизменности ключевых свойств объект (например авторство, дата создания, история изменений и т.д.) и целостность данных т.е. невозможность незаметного или не санкционированного изменения информации. С развитием криптографии, развивались и методы, применяемые этой наукой, для достижения результата. Если когда-то, давным-давно, достаточно было использовать алфавитный, а чуть позже цифровой шифр, и чем он был замудрённей тем и надёжней, потому что разгадывать его приходилось в ручную, то с появлением компьютеров, а соответственно серьёзных вычислительных мощностей, эти самые шифры канули в лету, ввиду их абсолютной уязвимости к анализу и перебору для выявления закономерностей, а соответственно разгадыванию секретного ключа т.е. самого шифра (этот процесс, кстати, принято называть криптоанализом) . Но кому-то очень умному пришло в голову использовать вычислительные мощности не только для разгадывания ключа, но и для самого шифрования. Именно так начали появляться алгоритмы шифрования в том понимании, в котором их знают сейчас.
Алгоритмы шифрования
И тут, человеки, как им свойственно, проявили немалую изобретательности и понавыдумывали столько, что если захочешь во всём этом разобраться, то пару институтов придется закончить. Но мы не в институте, да и нам не зачем в эти глубины вникать, а потому разберем основное.
В криптографии существует довольно много видов классификаций алгоритмов шифрования, но, что бы не забивать себе голову, наиболее приемлемо выделить три основных вида:
- симметричное
- асимметричное
- хеширование
Прежде чем говорить о них по отдельности давай определимся, что самое важное в алгоритмах шифрования. И, ты наверняка подумал, что это надежность защиты данных, и это почти правильный ответ, причем многие теоретики криптографии тоже отдают надежности первой место, а вот те кто на практике сталкиваются с шифрованием, знают, что надёжность конечно важна, но гораздо важнее соотношение надёжности и возможности использования шифра. Что бы было понятней почему, поясню подробней. То что в народе называют надёжностью, в криптографии принято называть криптостойкостью шифра, другими словами это свойство шифра противостоять криптоанализу т.е. дешифрованию. А самих способов дешифррования существует ровно два – простой перебор и расшифровка на основе перехваченных данных. И если с перебором всё более-менее понятно, т.е. нужно подставлять, по очереди все возможные варианты и соответственно чем больше вариантов существует тем более надёжен этот шифр, то с расшифровкой на основе перехваченных данных всё намного сложнее. При этом оба варианта вполне можно применять к одному и тому же шифру. Но как понять степень надёжности этого шифра. Для этого, в криптографии, существует такое понятие как взаимная информация – это числовое значение определяющее при перехвате какого количества криптотекста, станет возможна расшифровка всего зашифрованного сообщения, а высчитывается оно как разница между обычной и условной информационной неопределенностью, которую в криптографии принято называть энтропией. Это термины которыми обозначаются вероятности появления или не появления в тексте каких-либо символов. Но мы не будем углубляться в высшую математику и выводить формулы, потому что нам это просто не нужно. А нужно понимать что значение взаимной информации всегда больше либо равно нулю. И исходя из этого получается, что если это значение равно нулю, то алгоритм можно считать абсолютно стойкими, потому что сколько частей крептотекста не попало бы к злодею – расшифровать всё равно ничего не получиться, а если значение взаимной информации больше нуля, такие системы принято называть достаточно стойкими. И возникает логичный вопрос: если существуют абсолютно стойкие системы, то почему бы их не использовать и проблема защиты информации будет решена. Но не тут-то было, потому что абсолютно стойкие системы существуют только на бумаге, в виде теорем и прочей теоретической тошниловки, а использовать их на практике невозможно, в виду нереальной сложности и огромной стоимости шифрующего оборудования, чтобы было понятней, даже государства, которые, казалось бы, обладают огромными ресурсами, не смогли до сих пор внедрить использование абсолютно стойких систем. Из этого всего, вполне логичным, будет вывод, что чем надежнее шифр тем труднее и дороже его использование в практических целях, а соответственно наиболее важна не надежность шифра, а возможность его применения т. е. соотношение надежности и цены.
Симметричное шифрование
Теперь вернемся к тому из-за чего собрались, а именно к самим алгоритмам. Симметричное шифрование – это такой способ шифрования когда для шифрования и расшифровывания используется один и тот же ключ, соответственно у кого есть ключ тот и может расшифровывать сообщение.
В свою очередь, само симметричное шифрование можно разделить на два подвида – это блочные и поточные шифры.
Блочный шифр – информация шифруется блоками данных фиксированного размера, как правило это степени 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.
Ну, а на этом нашу ознакомительную экскурсию в мир криптографии можно считать оконченной. Не забывай возвращаться, нам нужно узнать ещё очень много.
Твой Pul$e.
Поделиться ссылкой:
Математические бэкдоры в алгоритмах шифрования / Хабр
Мы привыкли полагаться на современные алгоритмы шифрования. Однако, действительно ли они так безопасно защищают наши данные? Давайте разберёмся с таким понятием как математический бэкдор, что он из себя представляет и как работает.
Введение
На протяжении последних десятилетий мировое сообщество уверенно двигалось в направлении развития гражданских свобод. Право на конфиденциальную частную жизнь, приватность переписки — эти словосочетания давно у нас всех на слуху.
С другой стороны, в новостях периодически всплывают новости о том, что то или иное агенство безопасности требует ту или иную компанию, разрабатывающую продукты для нас, предоставить им бэкдор к алгоритмам шифрования, которые защищают наши данные.
Суд ФБР и Apple
История взаимодействия Роскомнадзора и Telegram
Зачастую, мотивацией таких запросов является борьба с терроризмом. Мол, хорошим людям скрывать нечего, так что давайте все дружно покажем нашу переписку товарищу в погонах.
А вообще, узнать больше про терроризм как феномен информационного общества можно тут.
Inspiration
Данная статья вдохновлена выступлением французских исследователей на конференции Black Hat в 2017 году. Для более детального изучения статья и книга.
Как работают алгоритмы шифрования?
Обобщённо можно сказать, что основой любого шифра является некоторая общая информация доступная только отправителю и получателю. В случае шифра Цезаря это было число, на которое производится сдвиг. Или, например, известна история когда во время Второй мировой войны морские пехотинцы США завербовали и обучили людей из племени индейцев навахо, свободно владеющих языком навахо. Это был привлекательный способ использования кодирования, мало людей не из племени знали этот язык, а также не было никаких опубликованных книг на языке навахо. В данном случае общей информацией было знание языка навахо.
С развитием полупроводниковой логики алгоритмы шифрования стали базироваться на взрослой и суровой математике.
Тут необходимо остановиться и сделать небольшой ликбез, разделить алгоритмы шифрования на две большие группы:
Симметричные
Ассиметричные
В симметричных алгоритмах для зашифровки и расшифровки сообщения используется один и тот же ключ. Такие алгоритмы используются для защищенного обмена сообщениями или для защиты данных на телефонах и компьютерах. Все наши банковские платежи, переводы и онлайн-оплата тоже шифруется симметричным методом. Единственный минус такого шифрования это сложность передачи секретного ключа в самом начале от одного участника к другому. Если ключ передать по открытому каналу связи, его могут подсмотреть и впоследствии прочитать всю переписку. Для организации закрытого канал связи необходим ключ шифрования, который тоже нужно как-то передать. Данная проблема решается использованием ассиметричного шифрования. Хороший разбор процесса инициации секретных ключей при начале общения в мессенджерах.
Асимметричные системы ещё часто называют криптосистемами с открытым ключом. В них используется два ключа: публичный ключ передаётся по открытому (то есть незащищённому) каналу связи и используется для зашифровки сообщения. А приватный ключ используется для расшифровки сообщения.
Также, ассиметричные системы используют для создания электронной подписи, где пользователь, обладающий приватным ключом может подписать сообщение, и любой другой пользователь, обладающий открытым (публичным) ключом может эту подпись проверить. По такому же принципу работает протокол SSH. Когда публичный ключ выступает в роли «замочной скважины», надежно охраняющей сервер от нежелательного проникновения. А приватный ключ выступает в роли «ключика», который эту «замочную скважину» открывает.
В данной статье будет рассмотрен возможный механизм создания уязвимости в системах с симметричным шифрованием.
Про создание уязвимостей в ассиметричных алгоритмах шифрования можно почитать, например, тут.
Современные алгоритмы симметричного шифрования
К симметричным алгоритмам шифрования можно отнести такие игрушечные алгоритмы шифрования, как:
Говоря же о серьёзных алгоритмах, симметричные алгоритмы шифрования можно разбить на две подгруппы: Потоковые, где каждый бит шифруется отдельно с помощью так называемого гаммирования, побитового сложения битов сообщения с битами, получаемыми от генератора псевдослучайных чисел. И блочные , которые оперируют группами бит фиксированной длины — блоками, характерный размер которых меняется в пределах 64‒256 бит.
Важным достоинством поточных шифров перед блочными является высокая скорость шифрования, информация обрабатывается сразу как поступает, поэтому, обеспечивается шифрование практически в реальном времени не зависимо от объёма поступающих данных. Однако, структура поточного ключа может иметь уязвимые места, которые дают возможность криптоаналитику получить дополнительную информацию о ключе.
Ещё немного занудстваПотоковые шифры в отличие от блочных шифров часто могут быть атакованы при помощи линейной алгебры (так как выходы отдельных регистров сдвига с обратной линейной связью могут иметь корреляцию с гаммой). Также для взлома поточных шифров весьма успешно применяется линейный и дифференциальный анализ.
Кроме того, блочные и потоковые фильтры по разному реализуются. Потоковые фильтры, шифрующие и дешифрирующие данные по одному биту, не очень подходят для программных реализаций. Блочные шифры легче реализовывать программно, потому что они часто позволяют избежать дорогостоящих манипуляций с битами и оперируют удобными для компьютера блоками данных. С другой стороны, потоковые фильтры больше подходят для аппаратной реализации, потому что они могут быть очень эффективно реализованы в кремнии.
Эта статья поможет вам детально разобраться с симметричными алгоритмами шифрования.
На данный момент времени, в основном используются блочные шифры. Например, широко известный AES, как раз симметричный блочный алгоритм шифрования. Ровно как и наш подозреваемый — симметричный блочный алгоритм шифрования, который незамысловато называется Backdoored Encryption Algorithm 1, BEA-1 сокращённо. Давайте разберёмся, где же там спрятан бэкдор.
Ещё немного про уязвимости
Для начала стоит обговорить, что уязвимости в алгоритмах шифрования бывают разными. Согласно статье французских исследователей , на данный момент основное внимание уделяется так называемым «implementation backdoors», уязвимостям связанные с тем как алгоритм был реализован. То есть сам алгоритм шифрования может быть и надёжен, но, например, его «обёртка» при каждом шифровании сливает ваши ключи товарищу в погонах.
ЦитатаRecent years have shown that more than ever governments and intelligence agencies try to control and bypass the cryptographic means used for the protection of data. Backdooring encryption algorithms is considered as the best way to enforce cryptographic control. Until now, only implementation backdoors (at the protocol, implementation or management level) are generally considered.
Куда более опасными являются уязвимости в самом алгоритме шифрования, которые были заложены в него на уровне математики. Как правило, доказать наличие таких уязвимостей практически невозможно.
ЦитатаIn this paper we propose to address the most critical issue of backdoors: mathematical backdoors or by-design backdoors, which are put directly at the mathematical design of the encryption algorithm. While the algorithm may be totally public, proving that there is a backdoor, identifying it and exploiting it, may be an intractable problem.
К слову, примерно так и должен выглядеть идеальный бэкдор:сложно обнаружить
можно использовать многократно
легко отрицать — выглядит, как ошибка, и в случае обнаружения, разработчик может сослаться на то, что допустил эту ошибку случайно и злого умысла не имел
эксплуатируем только при знании секрета — только тот, кто знает, как активируется бэкдор, может им воспользоваться
защищён от компрометации предыдущими использованиями — даже если бэкдор был обнаружен, то невозможно установить, кем он до этого эксплуатировался, и какой информацией завладел злоумышленник
сложно повторить — даже если бэкдор был кем-то найден, то его невозможно будет использовать в другом коде или в другом устройстве.
Согласно нынешним стандартам алгоритм должен быть устойчивым как к линейному так и к дифференциальному криптоанализу. BEA-1, по всем критериям текущих стандартов, как раз подходит под описание надёжного алгоритма, он устойчив как к линейному так и дифференциальному криптоанализу.
ЦитатаConsidering a particular family (among all the possible ones), we present BEA-1, a block cipher algorithm which is similar to the AES and which contains a mathematical backdoor enabling an operational and effective cryptanalysis. The BEA-1 algorithm (80-bit block size, 120-bit key, 11 rounds) is designed to resist to linear and differential cryptanalyses.
Если кратко, то линейный криптоанализ — особый род атаки на симметричные шифры, направленный на восстановление неизвестного ключа шифрования, по известным открытым сообщениям и соответствующим им шифртекстам.
В общем случае атака на основе линейного криптоанализа сводится к следующим условиям. Злоумышленник обладает большим количеством пар открытый/зашифрованный текст, полученных с использованием одного и того же ключа шифрования K. Цель атакующего восстановить частично или полностью ключ K. Подробнее.
В свою очередь, дифференциальный криптоанализ работает с парами зашифрованных текстов, открытые тексты которых содержат определенные отличия. Метод анализирует эволюцию этих отличий в процессе прохождения открытых текстов через этапы алгоритма шифрования при использовании одного тем же ключа.
Целью атакующего, применяющего ДК, также является получение некоторой информации о ключе, которая может как полностью скомпрометировать ключ (что бывает очень редко), так и просто дать некоторое преимущество при подборе ключа. Подробнее.
Интересно рассмотреть гипотетические примеры бэкдоров в современных алгоритмах. Стоит отметить, что DUAL_EC_DRBG — это уязвимость математического характера, а ошибка в реализации протокола проверки сертификатов TLS — уязвимость в реализации («implementation backdoos»).
Уязвимость псевдослучайного генератора DUAL_EC_DRBGDUAL_EC_DRBG — был разработан в АНБ и стандартизован в качестве криптографически стойкого генератора псевдослучайных чисел национальным институтом стандартов и технологий США NIST в 2006 году. Однако уже в 2007 году независимыми исследователями было высказано предположение, что в этот алгоритм мог быть встроен бэкдор. Раз и два.
Согласно статье о бэкдоре в DUAL_EC_DRBG также говорил Сноуден.
Ошибка в реализации протокола проверки сертификатов TLS AppleA concrete example is the pseudorandom number generator Dual_EC_DBRG designed by NSA, whose backdoor was revealed by Edward Snowden in 2013 and also in some research works.
Исследователями компании Яндекс была обнаружена уязвимость в реализации протокола TLS в одном из программных продуктов Apple. По их мнению, данная ошибка вполне может оказаться бэкдором, намеренно встроенным в алгоритм кем-то из разработчиков. Ниже участок кода с ошибкой
static DSStatus SSLVerifySignedServerKeyExchnge(....)
{
DSStatus err;
....
if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
goto fail;
goto fail;
if ((SSHashSHA1.final(&hashCtx, &hashOut)) != 0)
goto fail;
....
fail:
....
return err;
}
Как можно видеть, после первого оператора if стоят две строчки goto fail, и вторая строчка выполняется всегда, независимо от результата if. Таким образом процедура проверки сертификата проходит не полностью. Злоумышленник, знающий об этой уязвимости, может подделать сертификат и пройти проверку подлинности. Это позволит ему организовать атаку типа «Man-in-the-middle», тем самым вмешаться в защищённое соединение между клиентом и сервером. Исследователи, обнаружившие данную ошибку в реализации, не могут точно сказать, намеренно она была сделана или случайно. Вполне возможно, что это бэкдор, встроенный в алгоритм кем-то из разработчиков.
Таким образом, основной посыл французских исследователей в том, что современные стандарты шифрования не могут защитить нас от уязвимости созданной на уровне математики.
Ну так где же кроется уязвимость в BEA-1?
Для того чтобы разобраться в том, где кроется уязвимость, придётся погрузиться в дебри математики, на которых базируются современные блочные алгоритмы шифрования. Основа теории кодирования — поля Галуа. Очень качественно и детально про это написано вот тут. Облегчая математическую нагрузку, предлагаю для начала разобраться с тем, что такое Substitution-Permutation Networks, основа современных блочных алгоритмов шифрования.
SP сеть — это вычислительная сеть, которая состоит из S-блоков, P-блоков и операций побитового XOR с секретными ключами. Любая двоичная функция может быть сведена к S-блоку, некоторые функции к P-блоку. Например, к P-блоку сводится циклический сдвиг. Такие функции, как правило, легко реализуются в аппаратуре, обеспечивая при этом хорошую криптостойкость. С точки зрения реализации, S и P блоки представляют собой таблицы подстановки.
Substitution-Permutation NetworkШифр на основе SP-сети получает на вход блок и ключ и совершает несколько чередующихся раундов, состоящих из чередующихся стадий подстановки (англ. substitution stage) и стадий перестановки (англ. permutation stage). Стоит отметить, что S и P блоки одинаковы для всех раундов. В целях повышения безопасности на каждом раунде используются разные ключи (обозначены как на изображении). Можно обратить внимание, на то что в последнем раунде нет P блока и используется два раундовых ключа.
Для достижения безопасности достаточно одного S-блока, но такой блок будет требовать большого объёма памяти. Поэтому используются маленькие S-блоки, смешанные с P-блокам. S-блок замещает маленький блок входных бит на другой блок выходных бит. Эта замена должна быть взаимно однозначной, чтобы гарантировать обратимость. Назначение S-блока заключается в нелинейном преобразовании, что препятствует проведению линейного криптоанализа. Одним из свойств S-блока является лавинный эффект, то есть изменение одного бита на входе приводит к изменению всех бит на выходе. S-блок представляет из себя таблицу соответствия.
Так выглядит S-блок для алгоритма шифрования Rijndael, основы стандарта AESP-блок — перестановка всех бит: блок получает на вход вывод S-блоков, меняет местами все биты и подает результат S-блокам следующего раунда. Важным качеством P-блока является возможность распределить вывод одного S-блока между входами как можно большего количества S-блоков следующего раунда. То есть, P-блок — это линейное, или как его еще называют, аффинное преобразование.
Как было умно написано в ВикипедииНелинейная стадия подстановки перемешивает биты ключа с битами открытого текста, создавая конфузию Шеннона. Линейная стадия перестановки распределяет избыточность по всей структуре данных, порождая диффузию
Для каждого раунда используется свой, получаемый из первоначального, ключ. Подобный ключ называется раундовым. Он может быть получен как делением первоначального ключа на равные части, так и каким-либо преобразованием всего ключа. Первоначальный ключ еще называют «мастер ключ».
Расшифровка происходит с помощью обратного хода процесса, с использованием инвертированных S и P блоков (обратное преобразование) и раундовых ключей. Стоит отметить, что не зная секретный ключ расшифровать зашифрованное таким образом сообщение будет крайне трудно. Это займёт очень много времени.
То есть, подводя итог: алгоритм шифрования состоит из нескольких раундов, где каждый раунд состоит из:
Применения нелинейности в виде S-блоков
Линейного преобразования в виде P-блока
Побитового XOR с раундовым ключом
Последний раунд не содержит P-блока, но в нём используются два раундовых ключа.
Не знаю как вы, но я себя чувствую смотрящим на мастерскую игру напёрсточника. Давайте попробуем угадать, где же нас тут могли обмануть. Перестановка бит выглядит безобидно, суммирование с ключом тоже. Остаётся предположить, что S-блоки выглядят подозрительно.
Действительно, бекдор может скрываться в S-блоках, но всё не так просто. Попытаюсь объяснить максимально просто и не грузить вас сложной математикой полей Галуа. Но если вы чувствуете в себе силы разобраться с математикой сами, прошу сюда .
Чуть более подробно про BEA-1
Для наилучшего понимания того, как устроена уязвимость я приведу некоторую информацию касательно реализации шифра BEA-1, построенного на вычислительной SP сети.
Этот блочный шифр:
Оперирует с блоками данных в 80 бит
Мастер ключ имеет размер в 120 бит, на базе этого ключа происходит вычисление ключей для каждого раунда, по процедуре ExpandKey, описанной в статье
Состоит из 11 раундов, из которых 10 одинаковые, а последний требует два раундовых ключа. Таким образом, необходимо 12 раундовых 80-битных ключей
The encryption consists in applying eleven times a simple keyed operation called /round function/to the data block. A different 80-bit round key is used for each iteration of the round function. Since the last round is slightly different and uses two round keys, the encryption requires twelve 80-bit round keys. These round keys are derived from the 120-bit master key using an algorithm called key schedule
Больше деталей!Для вашего удобства привел реализацию алгоритмов из статьи
Алгоритм генерации раундов ключей на базе мастер ключаАлгоритм шифрованияАлгоритм расшифровкиПроцедура генерации раундовых ключей на базе мастер ключаТак выглядит один раунд алгоритма шифрованияНа Fig.100 known plaintext/ciphertext pairs.
Максимально подробное описание данного алгоритма можно найти в оригинальной статье, там приведены все данные.
Загадочные S-блоки и их секретные напарники
Математическая уязвимость в алгоритме BEA-1 кроется в так называемых «Secret S-boxes», секретных S-блоках. Их можно условно назвать напарниками обычных S-блоков и они многократно упрощают процесс перебора, необходимого для взлома алгоритма.
Говоря о реализации, секретные S-блоки незначительно отличаются от обычных S-блоков, в небольшом количестве параметров. Однако такое незначительное отличие параметров подобрано специальным образом. Если кратко, то почти для всех входных данных выходные данные секретного S-блока и обычного одинаковы, однако для некоторого заранее известного набора входных данных выходные данные секретного S-блока и обычного отличаются. Именно это знание позволяет значительно упростить процесс перебора, необходимого для взлома алгоритма.
Чтобы не быть голословным, для алгоритма BEA-1 для S0, S1, S2 количество входных данных для которых выходные данные секретного S-блока и обычного одинаковы есть 944 (из 1024, так как блоки работают с сегментами данных по 10 бит) для S3 это число 925 (также из 1024)
Сам процесс взлома заключается в том, что при расшифровке зашифрованного сообщения вместо блоков обратных публичным S-блокам используются блоки обратные секретным S-блокам, и параллельно с этим происходит подбор раундовых ключей.
Для процесса перебора необходимо некоторе количество известных пар (открытий текст, зашифрованный текст). Для взлома BEA-1 необходимо 30.000 таких пар, то есть (2 × 300 Kb) данных, сам процесс взлома занимает порядка 10 секунд на intel Core i7, 4 cores, 2.50GHz.
Стандарты алгоритмов шифрования
В статье несколько раз упоминалось про стандарты, распространяющиеся на современные алгоритмы шифрования, предлагаю уделить этому моменту больше внимания. Стандарт шифрования подразумевает полное описание алгоритма шифрования с S и P блоками. В рамках стандарта размер ключа и количество раундов может варироваться. Как правило такой стандарт создаётся в процессе конкурса, где разные компании предлагают свои реализации алгоритма шифрования, которые должны быть устойчивы ко всем известным видам криптоанализа. В частности, устаревший ныне стандарт DES был разработан на базе алгоритма шифрования «Люцифер» компании IBM.
Сейчас в основном используется стандарт AES, например шифрование данных на устройствах компании Apple соответсвует этому стандарту. Упомянутый французскими исследователями. Backdoored Encryption Algorithm 1 был создан по образу и подобию алгоритма Rijndael, который как раз таки лёг в основу стандарта AES. Если вам интересно, то вот тут можно посмотреть S-блоки и реализацию стандарта AES, а тут можно посмотреть хардверную реализацию алгоритма Rijandel.
Предшественником стандарта AES был упомянутый ранее DES, также блочный шифр. Интересна история, когда в конце 1970 к разработке S-блоков приложило руку АНБ. Агенство Национальной Безопасности обвиняли в сознательном снижении криптостойкости данного алгоритма.
Однако в 1990 году Эли Бихам и Ади Шамир провели независимые исследования по дифференциальному криптоанализу — основному методу взлома блочных алгоритмов симметричного шифрования. Эти исследования сняли часть подозрений в скрытой слабости S-перестановок. S-блоки алгоритма DES оказались намного более устойчивыми к атакам, чем если бы их выбрали случайно. Это означает, что такая техника анализа была известна АНБ ещё в 1970-х годах. Авторы статьи уделили этому моменту внимание. Они выразили опасение, что алгоритмы начала 1990 могли быть слабыми к дифференциальному криптоанализу.
ЦитатаThe best historic example is that of the differential cryptanalysis. Following Biham and Shamir’s seminal work in 1991, NSA acknowledged that it was aware of that cryptanalysis years ago Most of experts estimate that it was nearly 20 years ahead. However a number of non public, commercial block ciphers in the early 90s might have been be weak with respect to differential cryptanalysis.
Про отечественные стандарты шифрования хорошо написано вот тут. В частности, на блочные шифры распространяется ГОСТ 34.12-2018. Если что, S-блоки там обозначены как , это если вам вдруг захочется поискать бэкдоры в отечественных алгоритмах. Приведу ряд статей про странности S-блоков отечественных алгоритмов шифрования: раз, два и три.
Интересны размышления на тему создания математического бэкдора для уже существующего стандарта шифрования. В комментариях к статье @pelbylна похожую тему возник такой вопрос. Бесспорно, обладая сильной математической базой и хорошей смекалкой для уже существующего стандарта шифрования можно разработать «секретные S-блоки», которые бы могли незначительно ускорить процесс взлома зашифрованного сообщения. Однако на расшифровку сообщения, даже в таком случае, сообщения может потребоваться очень продолжительный промежуток времени. Разработка же «секретных S-блоков», которые могли бы значительно ускорить взлом алгоритма для существующих стандартов шифрования, до минут или хотя бы дней, является невероятно сложной вычислительной задачей. Хотя бы потому что эти стандарты разрабатывают самые умные люди планеты, которые могли сделать защиту от такой атаки. Но нельзя исключать возможность, что кому-то может повезти и он по счастливой случайности сможет вычислить идеальные секретные S-блоки для того же AES. Хочется добавить, что такое открытие может принести очень много денег.
Возвращаясь к новости про взлом айфона террориста, упомянутой в начале статьи, ФБР всё таки удалось его взломать, по разным оценкам они потратили на это около миллиона долларов (1.3M USD). Про сам процесс взлома известно немного.
Что известноВзято отсюда
В деле фигурирует iPhone 5C под iOS 9, в котором установлена система на кристалле A6. В нём тоже может быть включено уничтожение данных после 10 попыток. В телефоне нет аппаратного Secure Enclave. В этой модели многие функции безопасности обеспечиваются на уровне операционной системы. Поэтому для взлома может понадобиться всего лишь специальное обновление операционки. После этого единственным ограничением останется частота получения ключа шифрования — раз в 80 миллисекунд. Впрочем, всё это является мнением экспертов.
Суть далеко не в шифровании или технической возможности взломать его. Включённое по умолчанию шифрование в iOS появилось ещё в восьмой версии осенью 2014 года. Уже тогда американские спецслужбы начали проявлять беспокойство и недовольство новыми мерами безопасности. ФБР очень не понравилось, что получать доступ к данным будет невозможно. А доступ нужен, чтобы преследовать преступников и предотвращать терроризм, утверждает спецслужба. Директор ФБР Джеймс Коуми предложил ввести «прозрачную, понятную процедуру», которую он назвал front door. Также он высказался против бэкдоров. Эксперты по компьютерной безопасности назвали подобное подменой понятий. Позднее ФБР обратилось с предложением законодательно обязать производителей оставлять лазейки.
Скрытое противостояние переродилось в конфликт после дела о массовом убийстве в Сан-Бернандино. В ходе расследования потребовалось получить доступ к данным на служебном iPhone 5C одного из фигурантов дела. Apple в суде обязали создать инструмент для подбора пользовательского пароля. 16 февраля Тим Кук опубликовал открытое письмо, в котором он назвал подобное бэкдором.
Однако летом 2020 китайские хакеры из объединения Pangu сообщили о взломе чипа Secure Enclave. Эти ребята занимаются Jailbreak-ом.
Более подробно про взаимодействие Apple и ФБР касательно предоставления бэкдора (на английском).
А вообще, про безопасность телефонов компании Apple хорошо и и интересно написано в этой статье. Также интересно почитать про брутфорс пароля iPhone 5c c зеркалированием флэш-памяти. Подозреваю, что загрузил вас ссылками, но надеюсь, что они помогут вам полноценно разобраться с этой темой.
Так как теперь шифровать?
После изучения этой темы ко мне начала подкрадываться лёгкая паранойя: как быть, если нет никаких гарантий, что алгоритм, соответствующий всем современным стандартам безопасности, не содержит в себе бэкдора. Одно дело, когда такая уязвимость была создана непреднамеренно, о ней никто не знает, её сложно обнаружить и вряд ли кто-то сможет сделать это. И другое, когда она была заботливо разработана и расположена в недрах S-блоков.
Основным посылом французских исследователей был вопрос, «можем ли мы доверять иностранным алгоритмам шифрования». Бесспорно, для государственных структур, оперирующих потенциально стратегической информацией, важно не допустить внешние силы к этой информации. Понять их мотивацию в разработке своих, гарантировано безопасных для самих себя, алгоритмов шифрования можно.
Тут можно долго рассуждать на тему того, что наши данные могут быть кем-то расшифрованы и к каким последствиям в современном информационном обществе это может привести. В конечном счёте, последствия зависят от намерений людей, использующих этот бэкдор. Стоит всё таки признать факт, что зачастую в криптографии самым уязвимым элементом является человек, будь это человек решивший заложить уязвимость в алгоритм, или человек, использовавший эту уязвимость для достижения своей личной выгоды.
Не могу оставить вас наедине с нарастающей паранойей и тревожностью, поэтому, даже допуская ситуацию, что все доступные алгоритмы шифрования скомпрометированы возможность наладить защищенный обмен информацией всё же существует, этому даже посвящена целая научная статья. Если же вы хотите проникнуться атмосферой поиска уязвимостей в существующих алгоритмах шифрования, то советую почитать эту вдохновляющую статью.
Сравнение симметричного и асимметричного шифрований
Криптографические системы в настоящее время разделены на две основные области исследования: симметричная и асимметричная криптография. Симметричное шифрование часто используется как синоним симметричной криптографии, а асимметричная криптография охватывает два основных варианта использования, это асимметричное шифрование и цифровые подписи.
Поэтому мы можем представить их следующим образом:
Эта статья будет сфокусирована на симметричных и асимметричных алгоритмах шифрования.
Симметричное vs. асимметричное шифрование
Алгоритмы шифрования часто делятся на две категории, известные как симметричное и асимметричное шифрование. Принципиальное различие между этими двумя методами заключается в том, что алгоритмы симметричного шифрования используют один ключ, в то время как асимметричные используют два разных, но связанных между собой ключа. Такая разница хоть и кажется простой, но она представляет большие функциональные различия между двумя формами шифрования и способами их использования.
Взаимосвязанность ключей
В криптографии алгоритмы шифрования генерируют ключи в виде последовательных битов, которые используются для шифрования и дешифрования фрагмента информации. Способ использования этих ключей учитывает на разницу между симметричным и асимметричным методом.В то время как алгоритмы симметричного шифрования используют один и тот же ключ для выполнения этой функции, алгоритм асимметричного шифрования напротив, использует один ключ для шифрования данных и другой для его дешифрования. В асимметричных системах ключ используемый для шифрования также известный как открытый (публичный), может свободно передаваться другим пользователям. С другой стороны, ключ используемый для расшифровки является приватным и должен храниться в секрете.Например, если Алиса отправляет Бобу сообщение защищенное симметричным шифрованием, ей необходимо предоставить Бобу тот же ключ, который она использовала для шифрования, чтобы он смог прочитать сообщение. Это означает, что если злоумышленник перехватит его, он сможет получить доступ к зашифрованной информации.
Однако, если Алиса использует вместо этого асимметричный метод, она шифрует сообщение с помощью открытого ключа Боба, поэтому Боб сможет расшифровать его с помощью своего приватного ключа. Таким образом, асимметричное шифрование обеспечивает более высокий уровень безопасности, потому что даже если кто-то и перехватит ваши сообщения и найдет открытый ключ, он не сможет ничего с этим сделать.
Длина ключей
Другое функциональное различие между симметричным и асимметричным шифрованием связано с длиной ключей, которые измеряются в битах и напрямую связаны с уровнем безопасности каждого алгоритма.
В симметричных системах ключи подбираются случайным образом, а их общепринятая длина варьируется между 128 и 256 бит в зависимости от требуемого уровня безопасности. В асимметричном шифровании между открытым и приватным ключами должна существовать математическая связь, то есть их связывает определенная математическая формула. По этой причине злоумышленники могут использовать этот шаблон для взлома шифра, в свою очередь асимметричные ключи должны быть намного длиннее, чтобы обеспечить эквивалентный уровень безопасности. Разница в длине ключа настолько существенная, что 128-битный симметричный ключ и 2048-битный асимметричный ключ обеспечивают примерно одинаковый уровень безопасности.
Преимущества и недостатки
У этих двух видов шифрования присутствуют как преимущества так и недостатки относительно друг друга. Алгоритмы симметричного шифрования намного быстрее и требуют меньше вычислительной мощности, но их основным недостатком является распределение ключей. Поскольку один и тот же ключ используется для шифрования и дешифрования информации, этот ключ должен быть передан всем, кому потребуется доступ, что естественно создает определенные риски (как это было описано ранее).В свою очередь, асимметричное шифрование решает проблему распределения ключей, используя открытые ключи для шифрования, а приватные для дешифрования. Компромисс заключается в том, что асимметричные системы очень медленны по сравнению с симметричными и требуют гораздо большей вычислительной мощности из-за длины ключа.
Варианты применения
Симметричное шифрование
Благодаря своей скорости, симметричное шифрование широко используется для защиты информации во многих современных компьютерных системах. Например, Advanced Encryption Standard (AES) используется правительством США для шифрования секретной информации. AES заменил ранее принятый стандарт шифрования данных (DES), который был разработан в 1970-х годах в качестве стандарта симметричного шифрования.
Асимметричное шифрование
Асимметричное шифрование может применяться к системам, в которых многим пользователям может понадобиться зашифровать и расшифровать сообщения или пакет данных, особенно когда скорость и вычислительная мощность не является приоритетом. Простым примером такой системы является зашифрованная электронная почта, в которой открытый ключ может использоваться для шифрования сообщений, а приватный ключ для их расшифровки.
Гибридные системы
Во многих приложениях, симметричное и асимметричное шифрование используются вместе. Хорошим примером таких гибридных систем являются криптографические протоколы Security Sockets Layer (SSL) и Transport Layer Security (TLS), которые были разработаны для обеспечения безопасной связи в интернете. Протоколы SSL на данный момент считаются небезопасными и ими не рекомендуют пользоваться. В свою очередь, протоколы TLS считаются безопасными и широко используются всеми современными веб-браузерами.
Использование шифрования криптовалютами
Методы шифрования используются многими крипто-кошельках в качестве способа обеспечения повышенного уровня безопасности конечных пользователей. Алгоритмы шифрования применяются когда пользователь устанавливает пароль для файла своего кошелька, который используется для доступа к программному обеспечению.
Однако из-за того, что Биткойн и другие криптовалюты используют пару из открытого и приватного ключа, присутствует распространенное заблуждение, что блокчейн системы используют алгоритмы асимметричного шифрования. Однако, как отмечалось ранее, асимметричное шифрование и цифровые подписи являются двумя основными вариантами использования асимметричной криптографии (криптография с открытым ключом).Следовательно, не все системы с цифровой подписью используют шифрование, даже если они предоставляют публичный и приватный ключи. Фактически, сообщение может быть подписано цифровой подписью без использования шифра. RSA является одним из примеров алгоритма, который можно использовать для подписи зашифрованных сообщений, но у алгоритма цифровой подписи, который используется в Биткойн (называемый ECDSA) шифрование отсутствует.
Заключение
Как симметричное, так и асимметричное шифрование играет важную роль в обеспечении безопасности конфиденциальной информации и коммуникации в современном цифровом мире. Оба шифра могут быть полезны, ведь у каждого из них есть свои преимущества и недостатки, поэтому они применяются в разных случаях. Поскольку криптография как наука продолжает развиваться для защиты от более новых и более серьезных угроз, симметричные и асимметричные криптографические системы всегда будут иметь отношение к компьютерной безопасности.
Назначение и структура алгоритмов шифрования
Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними. Для начала рассмотрим основные методы криптографической защиты информации. Словом, криптография — наука о защите информации с использованием математических методов. Существует и наука, противоположная криптографии и посвященная методам вскрытия защищенной информации — криптоанализ. Совокупность криптографии и криптоанализа принято называть криптологией. Криптографические методы могут быть классифицированы различным образом, но наиболее часто они подразделяются в зависимости от количества ключей, используемых в соответствующих криптоалгоритмах (см. рис. 1):
- Бесключевые, в которых не используются какие-либо ключи.
- Одноключевые — в них используется некий дополнительный ключевой параметр — обычно это секретный ключ.
- Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.
Рис. 1. Криптоалгоритмы
Обзор криптографических методовШифрование является основным методом защиты; рассмотрим его подробно далее.
Стоит сказать несколько слов и об остальных криптографических методах:
- Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.
Алгоритмы электронной подписи используют два вида ключей:- секретный ключ используется для вычисления электронной подписи;
- открытый ключ используется для ее проверки.
- Аутентификация позволяет проверить, что пользователь (или удаленный компьютер) действительно является тем, за кого он себя выдает. Простейшей схемой аутентификации является парольная — в качестве секретного элемента в ней используется пароль, который предъявляется пользователем при его проверке. Такая схема доказано является слабой, если для ее усиления не применяются специальные административно-технические меры. А на основе шифрования или хэширования (см. ниже) можно построить действительно сильные схемы аутентификации пользователей.
- Существуют различные методы криптографического контрольного суммирования:
- ключевое и бесключевое хэширование;
- вычисление имитоприставок;
- использование кодов аутентификации сообщений.
Такое криптографическое контрольное суммирование широко используется в различных методах защиты информации, например:- для подтверждения целостности любых данных в тех случаях, когда использование электронной подписи невозможно (например, из-за большой ресурсоемкости) или является избыточным;
- в самих схемах электронной подписи — «подписывается» обычно хэш данных, а не все данные целиком;
- в различных схемах аутентификации пользователей.
- Генераторы случайных и псевдослучайных чисел позволяют создавать последовательности случайных чисел, которые широко используются в криптографии, в частности:
- случайные числа необходимы для генерации секретных ключей, которые, в идеале, должны быть абсолютно случайными;
- случайные числа применяются во многих алгоритмах электронной подписи;
- случайные числа используются во многих схемах аутентификации.
Шифрование информации — это преобразование открытой информации в зашифрованную (которая чаще всего называется шифртекстом или криптограммой), и наоборот. Первая часть этого процесса называется зашифрованием, вторая — расшифрованием.
Можно представить зашифрование в виде следующей формулы:
С = Ek1(M),
где:
M (message) — открытая информация,
С (cipher text) — полученный в результате зашифрования шифртекст,
E (encryption) — функция зашифрования, выполняющая криптографические преобразования над M,
k1 (key) — параметр функции E, называемый ключом зашифрования.
В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: «Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований».
Ключ может принадлежать определенному пользователю или группе пользователей и являться для них уникальным. Зашифрованная с использованием конкретного ключа информация может быть расшифрована только с использованием только этого же ключа или ключа, связанного с ним определенным соотношением.
Аналогичным образом можно представить и расшифрование:
M’ = Dk2(C),
где:
M’— сообщение, полученное в результате расшифрования,
D (decryption) — функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,
k2 — ключ расшифрования.
Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M’ = M), необходимо одновременное выполнение следующих условий:
- Функция расшифрования должна соответствовать функции зашифрования.
- Ключ расшифрования должен соответствовать ключу зашифрования.
При отсутствии верного ключа k2 получить исходное сообщение M’ = M с помощью правильной функции D невозможно. Под словом «невозможно» в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.
Алгоритмы шифрования можно разделить на две категории (см. рис. 1):
- Алгоритмы симметричного шифрования.
- Алгоритмы асимметричного шифрования.
В алгоритмах симметричного шифрования для расшифрования обычно используется тот же самый ключ, что и для зашифрования, или ключ, связанный с ним каким-либо простым соотношением. Последнее встречается существенно реже, особенно в современных алгоритмах шифрования. Такой ключ (общий для зашифрования и расшифрования) обычно называется просто ключом шифрования.
В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:
k1 = ak2 mod p,
где a и p — параметры алгоритма шифрования, имеющие достаточно большую размерность.
Такое соотношение ключей используется и в алгоритмах электронной подписи.
Основной характеристикой алгоритма шифрования является криптостойкость, которая определяет его стойкость к раскрытию методами криптоанализа. Обычно эта характеристика определяется интервалом времени, необходимым для раскрытия шифра.
Симметричное шифрование менее удобно из-за того, что при передаче зашифрованной информации кому-либо необходимо, чтобы адресат заранее получил ключ для расшифрования информации. У асимметричного шифрования такой проблемы нет (поскольку открытый ключ можно свободно передавать по сети), однако, есть свои проблемы, в частности, проблема подмены открытого ключа и медленная скорость шифрования. Наиболее часто асимметричное шифрование используется в паре с симметричным — для передачи ключа симметричного шифрования, на котором шифруется основной объем данных. Впрочем, схемы хранения и передачи ключей — это тема отдельной статьи. Здесь же позволю себе утверждать, что симметричное шифрование используется гораздо чаще асимметричного, поэтому остальная часть статьи будет посвящена только симметричному шифрованию.
Симметричное шифрование бывает двух видов:
- Блочное шифрование — информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или «со сцеплением» — когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.
- Поточное шифрование — необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки — скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование — это шифрование блоков единичной длины.
Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.Структура алгоритмов шифрования
Подавляющее большинство современных алгоритмов шифрования работают весьма схожим образом: над шифруемым текстом выполняется некое преобразование с участием ключа шифрования, которое повторяется определенное число раз (раундов). При этом, по виду повторяющегося преобразования алгоритмы шифрования принято делить на несколько категорий. Здесь также существуют различные классификации, приведу одну из них. Итак, по своей структуре алгоритмы шифрования классифицируются следующим образом:
- Алгоритмы на основе сети Фейстеля.
Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего — на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис. 2 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.
Рис. 2. Структура алгоритмов на основе сети Фейстеля.
Дополнительный аргумент функции f(), обозначенный на рис. 2 как Ki, называется ключом раунда. Ключ раунда является результатом обработки ключа шифрования процедурой расширения ключа, задача которой — получение необходимого количества ключей Ki из исходного ключа шифрования относительно небольшого размера (в настоящее время достаточным для ключа симметричного шифрования считается размер 128 бит). В простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования; существенно чаще процедура расширения ключа является достаточно сложной, а ключи Ki зависят от значений большинства бит исходного ключа шифрования.
Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции «исключающее или» — XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2n, где n — размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.
Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) — одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) — бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.
На сети Фейстеля основано большинство современных алгоритмов шифрования — благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:
- Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма — разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.
Алгоритмы на основе сети Фейстеля являются наиболее изученными — таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.
Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.
Рис. 3. Структура сети Фейстеля.
Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.
- Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть — Substitution-permutation network).
В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения ключа Ki) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).
Рис. 4. Подстановочно-перестановочная сеть.
Впрочем, такие операции характерны и для других видов алгоритмов шифрования, поэтому, на мой взгляд, название «подстановочно-перестановочная сеть» является достаточно условным.
SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.
- Алгоритмы со структурой «квадрат» (Square).
Для структуры «квадрат» характерно представление шифруемого блока данных в виде двумерного байтового массива. Криптографические преобразования могут выполняться над отдельными байтами массива, а также над его строками или столбцами.
Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) — будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой «квадрат» является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.
Рис. 5. Алгоритм Rijndael.
На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.
Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).
Рис. 6. Модификация двух байт шифруемых данных.
Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример — алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.
5 распространенных типов шифрования и почему вы не должны создавать свои собственные
Шифрование часто обсуждается в новостях, но обычно оно воспринимается как дезинформированная правительственная политика или как часть вины за террористические злодеяния.
Это игнорирует, насколько важно шифрование. Подавляющее большинство интернет-сервисов используют шифрование для обеспечения безопасности вашей информации.
Шифрование, однако, довольно сложно понять. Есть множество типов, и они имеют различное использование. Откуда вы знаете, что такое «лучший» тип шифрования?
Давайте посмотрим, как работают некоторые из основных типов шифрования, а также почему не стоит использовать собственное шифрование.
Типы шифрования против силы шифрования
Один из самых значительных ошибок в языке шифрования связан с различиями между типами шифрования, алгоритмами шифрования и их сильными сторонами. Давайте разберемся с этим:
- Тип шифрования: Тип шифрования касается того, как шифрование завершено. Например, асимметричная криптография является одним из наиболее распространенных типов шифрования в Интернете.
- Алгоритм шифрования: Когда мы обсуждаем силу шифрования, мы говорим о конкретном алгоритме шифрования. Алгоритмы — вот откуда берутся интересные имена, такие как Triple DES, RSA или AES. Имена алгоритмов шифрования часто сопровождаются числовыми значениями, например, AES-128. Число относится к размеру ключа шифрования и дополнительно определяет силу алгоритма.
Есть еще несколько терминов шифрования, с которыми вы должны ознакомиться
это облегчит понимание остальной части этой дискуссии.
5 самых распространенных алгоритмов шифрования
Типы шифрования формируют основу для алгоритма шифрования, а алгоритм шифрования отвечает за надежность шифрования. Мы говорим о силе шифрования в битах.
Более того, вы, вероятно, знаете больше алгоритмов шифрования, чем думаете. Вот некоторые из наиболее распространенных типов шифрования, с небольшой информацией о том, как они работают.
1. Стандарт шифрования данных (DES)
Стандарт шифрования данных является оригинальным стандартом шифрования правительства США. Первоначально считалось, что он нерушим, но увеличение вычислительной мощности и снижение стоимости оборудования сделали 56-битное шифрование по существу устаревшим. Это особенно верно в отношении конфиденциальных данных.
Джон Гилмор, соучредитель EFF, который возглавлял проект Deep Crack, сказал: «При проектировании безопасных систем и инфраструктуры для общества слушайте криптографов, а не политиков». Он предупредил, что рекордное время взлома DES должно послать «пробуждение». up call »любому, кто использует DES для обеспечения конфиденциальности данных.
Тем не менее, вы все равно найдете DES во многих продуктах. Низкоуровневое шифрование легко реализовать, не требуя огромных вычислительных ресурсов. Таким образом, это общая черта смарт-карт и устройств с ограниченными ресурсами.
2. TripleDES
TripleDES (иногда пишется 3DES или TDES) является более новой, более безопасной версией DES. Когда DES был взломан менее чем за 23 часа, правительство осознало, что возникла серьезная проблема. Таким образом, TripleDES родился. TripleDES выполняет процедуру шифрования, запустив DES три раза.
Данные шифруются, дешифруются, а затем снова шифруются, давая эффективную длину ключа 168 бит. Это достаточно сильно для большинства конфиденциальных данных. Однако, хотя TripleDES сильнее стандартного DES, у него есть свои недостатки.
TripleDES имеет три варианты ввода:
- Вариант ключа 1: Все три ключа независимы. Этот метод предлагает самый сильный ключ силы: 168 бит.
- Вариант ключа 2: Ключ 1 и Ключ 2 являются независимыми, в то время как Ключ 3 такой же, как Ключ 1. Этот метод предлагает эффективную силу ключа в 112 бит (2 × 56 = 112).
- Вариант 3 ключа: Все три ключа одинаковы. Этот метод предлагает 56-битный ключ.
Вариант 1 ключа является самым сильным. Вариант 2 с ключами не так силен, но все же обеспечивает большую защиту, чем простое двойное шифрование с помощью DES. TripleDES — это блочный шифр, что означает, что данные шифруются в одном фиксированном размере блока за другим. К сожалению, размер блока TripleDES мал и составляет 64 бита, что делает его несколько восприимчивым к определенным атакам (например, столкновению блоков).
3. RSA
RSA (названный в честь его создателей Рона Ривеста, Ади Шамира и Леонарда Адлемана) является одним из первых криптографических алгоритмов с открытым ключом. Он использует функцию одностороннего асимметричного шифрования, описанную в предыдущей статье.
Многие аспекты Интернета широко используют алгоритм RSA. Это основная функция многих протоколов, включая SSH, OpenPGP, S / MIME и SSL / TLS. Кроме того, браузеры используют RSA для установления безопасной связи по небезопасным сетям.
RSA остается невероятно популярным благодаря своей длине ключа. Ключ RSA обычно имеет длину 1024 или 2048 бит. Тем не менее, эксперты по безопасности полагают, что это не займет много времени, прежде чем 1024-битный RSA будет взломан, что побудит многочисленные правительственные и бизнес-организации перейти на более сильный 2048-битный ключ.
4. Расширенный стандарт шифрования (AES)
Расширенный стандарт шифрования (AES) теперь является надежным стандартом шифрования правительства США.
Он основан на алгоритме Rijndael, разработанном двумя бельгийскими криптографами, Joan Daemen и Vincent Rijmen. Бельгийские криптографы представили свой алгоритм в Национальный институт стандартов и технологий (NIST) вместе с 14 другими, претендующими на звание официального преемника DES. Рейндаэль «выиграл» и был выбран в качестве предложенного алгоритма AES в октябре 2000 года.
AES является алгоритмом симметричного ключа и использует симметричный блочный шифр. Он содержит три размера ключа: 128, 192 или 256 бит. Кроме того, существуют разные циклы шифрования для каждого размера ключа.
Раунд — это процесс превращения открытого текста в зашифрованный текст. Для 128-битного есть 10 раундов. 192-битный имеет 12 раундов, а 256-битный имеет 14 раундов.
Существуют теоретические атаки на алгоритм AES, но все они требуют такого уровня вычислительной мощности и хранения данных, который просто невозможен в нынешнюю эпоху. Например, для одной атаки требуется около 38 триллионов терабайт данных — больше, чем все данные, хранящиеся на всех компьютерах в мире в 2016 году. По другим оценкам, общее количество времени, необходимое для перебора ключа AES-128, составляет миллиарды. лет.
Таким образом, гуру шифрования Брюс Шнайер «не верит, что кто-либо когда-либо обнаружит атаку, которая позволит кому-то читать трафик Rijndael», вне теоретических теоретических нарушений шифрования. Алгоритм шифрования Twineish Шнайера (обсуждаемый ниже) был прямым претендентом на участие в конкурсе Рейндаэля во время конкурса, чтобы выбрать новый алгоритм национальной безопасности.
5. Twofish
Twofish был финалистом конкурса Национального института стандартов и технологий Advanced Encryption Standard, но проиграл Рейндаэлю. Алгоритм Twofish работает с размерами ключей 128, 196 и 256 бит и обладает сложной структурой ключей, которая затрудняет взлом.
Эксперты по безопасности считают Twofish одним из самых быстрых алгоритмов шифрования и превосходным выбором как для аппаратного, так и для программного обеспечения. Кроме того, шифр Twofish является бесплатным для всех.
Появляется в некоторых из лучших бесплатных программ шифрования
такие как VeraCrypt (шифрование диска), PeaZip (файловые архивы) и KeePass (управление паролями с открытым исходным кодом)
, а также стандарт OpenPGP.
Почему бы не сделать свой собственный алгоритм шифрования?
Вы видели некоторые из лучших (и ныне несуществующих) доступных алгоритмов шифрования. Эти алгоритмы являются лучшими, потому что их невозможно сломать (по крайней мере, пока).
Но как насчет создания алгоритма шифрования доморощенного? Обеспечивает ли создание защищенной частной системы ваши данные в безопасности? Короче говоря, нет! Или, может быть, лучше сказать нет, но…
Лучшие алгоритмы шифрования математически защищены, протестированы на комбинации самых мощных компьютеров и умных умов. Новые алгоритмы шифрования проходят строгую серию тестов, которые, как известно, нарушают другие алгоритмы, а также атаки, характерные для нового алгоритма.
Возьмем алгоритм AES, например:
- NIST сделал запрос на новые алгоритмы шифрования в сентябре 1997 года.
- NIST получил 15 потенциальных алгоритмов AES к августу 1998 года.
- На конференции в апреле 1999 года NIST выбрал пять финалистских алгоритмов: MARS, RC6, Rijndael, Serpent и Twofish.
- NIST продолжал тестировать и получать комментарии и инструкции от криптографического сообщества до мая 2000 года.
- В октябре 2000 года NIST утвердил Rijndael в качестве предполагаемого AES, после чего начался еще один период консультаций.
- Rijndael, как AES, был опубликован в качестве федерального стандарта обработки информации в ноябре 2001 года. Подтверждение начало проверочное тестирование в рамках Программы проверки криптографических алгоритмов.
- AES стал официальным стандартом шифрования федерального правительства в мае 2002 года.
У вас нет ресурсов для создания сильного алгоритма
Итак, вы видите, что для создания действительно безопасного, долговременного и мощного шифрования требуются время и глубокий анализ от некоторых из самых мощных организаций безопасности на планете. Или, как говорит Брюс Шнайер:
«Любой может изобрести алгоритм шифрования, который они сами не могут взломать; гораздо сложнее изобрести тот, который никто другой не сможет сломать ».
И вот где но Конечно, вы можете написать программу, которая берет ваш текст, умножает значение алфавита каждой буквы на 13, добавляет 61, а затем отправляет его получателю.
Вывод беспорядок, но если ваш получатель знает, как его расшифровать, система работает. Однако, если вы используете свое доморощенное шифрование в дикой природе, чтобы отправлять конфиденциальную или конфиденциальную информацию, у вас будут плохие времена.
Есть еще если, тоже. Если вы хотите узнать о шифровании и криптографии, настоятельно рекомендуем поэкспериментировать с разработкой и взломом разработанного лично алгоритма шифрования. Просто не просите никого использовать это!
Используйте шифрование и не изобретайте колесо
Шифрование важно. Понимание того, как это работает, полезно, но не обязательно использовать его. Есть много способов зашифровать вашу повседневную жизнь без особых усилий.
Необходимо понять, что нашему глобальному сообществу с гипер-сетями необходимо шифрование, чтобы оставаться в безопасности. К сожалению, существует большое количество правительств и правительственных учреждений, которые хотят более слабые стандарты шифрования.
, Этого никогда не должно случиться.
Симметричное и ассиметричное шифрование: просто о сложном
Криптографическая защита данных — важнейшая задача, которая сегодня актуальна, как никогда. Однако до сих пор некоторые спорят, что лучше — симметричное или ассиметричное шифрование? Что круче — AES или RSA? Однако все эти споры — бесполезное занятие и результат непонимания сути криптографии. Без упоминания конкретики (условий и задач использования) нельзя сказать, что однозначно лучше. В этой статье мы попробуем разобрать особенности ассиметричного и симметричного шифрования, увидим их разницу, приведём аргументы в пользу того либо иного подхода.
Мы расскажем базовый минимум, который должен знать каждый. Никаких математических обоснований и сложных формул не будет, поэтому готовьтесь к приятному и лёгкому чтению)).
Симметричное шифрование
Для работы применяется всего один пароль. Происходит всё следующим образом: 1. Существует некий математический алгоритм шифрования. 2. На его вход подаётся текст и пароль. 3. На выходе получаем зашифрованный текст. 4. Если хотим получить исходный текст, применяется тот же самый пароль, но с алгоритмом дешифрования.
Говоря простым языком, если кто-то узнает наш пароль, безопасность криптосистемы тут же нарушится. Именно поэтому, используя подходы симметричного шифрования, мы должны особое внимание уделять вопросам создания и сохранения конфиденциальности пароля. Он должен быть сложным, что исключит подбор программным перебором значений. И не должен передаваться кому-нибудь в открытом виде как в сети, так и на физических носителях информации. Очевидно, что листочек, прикреплённый к монитору — явно не лучший вариант)). Тем не менее если наша секретная комбинация используется командой, нужно обеспечить безопасность её распространения. Пригодится и система оповещения, которая сработает, если шифр узнают, произойдёт утечка данных.
Несмотря на свои ограничения и угрозу безопасности, подход до сих пор широко распространён в криптографии. Дело в том, что он очень прост в работе и понимании. И техническая нагрузка на железо невелика (как правило, всё работает очень быстро).
Ассиметричное шифрование
Здесь применяют 2 пароля — публичный (открытый) и секретный (закрытый). Первый отсылается всем людям, второй остаётся на стороне сервера. Эти названия достаточно условные, а зашифрованное одним из ключей сообщение можно расшифровать лишь с помощью другого. По сути и значимости они равноценны.
Данные алгоритмы шифрования дают возможность без проблем распространять пароли по сети, ведь не имея 2-го ключа, любое исходное сообщение останется для вас непонятным шифром. Кстати, на этом принципе работает и протокол SSL, позволяющий устанавливать безопасные соединения с пользователями, т. к. закрытый ключ есть только на стороне сервера.
Для ассиметричного шифрования хранение паролей проще, ведь секретный ключ не нужно передавать кому-либо. А в случае взлома сервер сменит пару ключей и разошлёт всем новые комбинации.
Считается, что ассиметричное шифрование «тяжелее» симметричного. Всё потому, что оно требует больше компьютерных ресурсов. Есть ограничения и на процесс генерации ключей.
Как правило, возможности ассиметричного шифрования используют для выполнения идентификации пользователей (например, при входе на сайт). Или с его помощью создают сессионный ключ для симметричного шифрования (речь идёт о временном пароле для обмена данными между сервером и пользователем). Или формируют зашифрованные цифровые подписи. В последнем случае проверить такую подпись может каждый, используя публичный ключ, находящийся в открытом доступе.
Что важно знать
Давайте перечислим основные моменты и сравним оба вида шифрования: 1. Симметричный алгоритм прекрасно подходит при передаче больших объёмов зашифрованных данных. Ассиметричный в этом случае будет работать медленнее. Кроме того, при организации обмена информацией по ассиметричному алгоритму оба ключа должны быть известны обеим сторонам либо пар должно быть две (по одной на каждую сторону). 2. Ассиметричное шифрование позволяет дать старт безопасному соединению без каких-либо усилий со стороны пользователя. Если говорить о симметричном шифровании, то пользователю нужно знать пароль. Однако не стоит думать, что ассиметричный подход безопасен на 100 %. К примеру, он подвержен атакам «человек посередине». Это когда между сервером и вами размещается компьютер, который вам отсылает свой открытый ключ, а при передаче информации с вашей стороны, использует открытый ключ сервера. В итоге происходит перехват конфиденциальных данных. 3. Продолжая тему взлома и компрометации пароля, давайте ещё раз отметим, что в случае с симметричным шифрованием возникает проблема конфиденциально передать следующий пароль. В этом плане ассиметричный алгоритм «легче». Серверу достаточно сменить пару и разослать вновь созданный публичный ключ. Однако и тут есть своя Ахиллесова пята. Дело в том, что генерация ключей постоянно происходит по одному и тому же алгоритму, стало быть, если его узнают, безопасность окажется под угрозой. 4. Симметричный шифр обычно строится на основании ряда блоков с математическими функциями преобразования, ассиметричный — на математических задачах. Тот же RSA создан на задаче возведения в степень с последующим вычислением модуля. В результате алгоритмы симметричного шифрования модифицировать просто, а ассиметричного — практически невозможно. 5. Лучший эффект достигается при комбинации обоих видов шифрования. Происходит это так: — посредством ассиметричного алгоритма серверу отсылается сессионный ключ для симметричного шифрования; — происходит обмен информацией по симметричному алгоритму. Тут возможны варианты, но общий смысл обычно не меняется. 6. В симметричном шифровании пароли генерируются по специальным правилам с учётом цифр, букв, регистра и т. д., создаются комбинации повышенной сложности. В ассиметричном пароли не так безопасны, однако их секретность обеспечивается тем, что их знает только сервер. 7. Вне зависимости от выбранного вида шифрования ни один из них не является гарантом стопроцентной безопасности. Помните, что любой подход нужно комбинировать с другими средствами информационной защиты.
Послесловие
Как видим, области применения у обоих типов шифрования разные, поэтому при выборе нужно соотносить возможности алгоритмов с поставленными задачами. Может быть, использовать гибридные решения.
Следует учитывать и практическую целесообразность. Допустим, если ваша программа предназначена только для персонального пользования, вряд ли будет рациональным использовать ассиметричный подход. Лучший вариант здесь — мощный симметричный алгоритм.
Как бы там ни было, получить более глубокие знания вы всегда сможете на нашем курсе «Криптографическая защита информации». Вы подробно узнаете про симметричное и ассиметричное шифрование, блочные шифры, строение криптосистем, режимы шифрования, прикладные аспекты криптографии и многое другое.
типов шифрования: 5 алгоритмов шифрования и как выбрать правильный
Мы разделим два основных типа шифрования — симметричное и асимметричное, прежде чем перейти к списку из 5 наиболее часто используемых алгоритмов шифрования, чтобы упростить их, как никогда раньше.
Шифрование, которое часто обвиняют в сокрытии террористической деятельности со стороны политических структур, является одной из тех тем кибербезопасности, которые всегда находятся в заголовках газет. Любой, кто хорошо разбирается в различных типах шифрования, может почувствовать несправедливость по отношению к этой замечательной технологии, которая лежит в основе безопасности и конфиденциальности в Интернете.Шифрование — это метод преобразования данных в не поддающийся расшифровке формат, так что только авторизованные стороны могут получить доступ к информации.
Криптографические ключи в сочетании с алгоритмами шифрования делают возможным процесс шифрования. И, в зависимости от способа применения этих ключей, в основном используются два типа методов шифрования: «симметричное шифрование» и «асимметричное шифрование». Оба эти метода используют разные математические алгоритмы (т.е., те алгоритмы шифрования, которые мы упомянули несколько минут назад) для шифрования данных. Этот список распространенных алгоритмов шифрования включает 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 был среди тех, что были включены в версии 1.0 и 1.1 TLS (безопасность транспортного уровня).
DES преобразует 64-битные блоки данных открытого текста в зашифрованный текст, разделяя блок на два отдельных 32-битных блока и применяя процесс шифрования к каждому независимо. Это включает в себя 16 раундов различных процессов, таких как расширение, перестановка, подстановка или операция XOR с ключом раунда, которые данные будут проходить в зашифрованном виде.В конечном итоге на выходе создаются 64-битные блоки зашифрованного текста.
Сегодня DES больше не используется, так как его взломали многие исследователи безопасности. В 2005 году DES был официально признан устаревшим и был заменен алгоритмом шифрования AES, о котором мы сейчас поговорим. Самым большим недостатком DES была его малая длина ключа шифрования, что облегчало его перебор. TLS 1.2, наиболее широко используемый на сегодняшний день протокол TLS, не использует метод шифрования DES.
2.Алгоритм симметричного шифрования 3DES
3DES (также известный как TDEA, что означает алгоритм тройного шифрования данных), как следует из названия, представляет собой обновленную версию выпущенного алгоритма DES. 3DES был разработан для преодоления недостатков алгоритма DES и начал применяться с конца 1990-х годов. Для этого он трижды применяет алгоритм DES к каждому блоку данных. В результате этот процесс сделал 3DES намного труднее взломать, чем его предшественник DES. Он также стал широко используемым алгоритмом шифрования в платежных системах, стандартах и технологиях в финансовой отрасли.Он также стал частью криптографических протоколов, таких как TLS, SSH, IPsec и OpenVPN.
Все алгоритмы шифрования в конечном итоге подчиняются силе времени, и 3DES не стал исключением. Уязвимость Sweet32, обнаруженная исследователями Картикеян Бхаргаван и Гаэтан Леурент, закрыла дыры в безопасности, существующие в алгоритме 3DES. Это открытие заставило индустрию безопасности рассмотреть вопрос об отказе от алгоритма, и Национальный институт стандартов и технологий (NIST) объявил об отказе в проекте руководства, опубликованном в 2019 году.
Согласно этому проекту, использование 3DES должно быть прекращено во всех новых приложениях после 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 лет вычислительного времени (распределенного по сотням компьютеров), чтобы взломать ключ RSA-768 бит, что намного ниже стандартного 2048-битного ключа RSA, который используется. Cегодня.
Преимущество использования алгоритма шифрования 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».«В этом процессе идентичность обеих сторон проверяется с использованием закрытого и открытого ключей. После того, как обе стороны подтвердили свою личность, шифрование данных происходит посредством симметричного шифрования с использованием эфемерного (сеансового) ключа. Это гарантирует быструю передачу тонны данных, которые мы отправляем и получаем в Интернете каждую минуту.
Типы методов шифрования: что мы хэшировали
Если вам интересно, какой тип шифрования лучше другого, то явного победителя не будет, поскольку и симметричное, и асимметричное шифрование раскрывают свои преимущества, и мы не можем выбрать только одно за счет другого. .
С точки зрения безопасности, асимметричное шифрование, несомненно, лучше, поскольку оно обеспечивает аутентификацию и предотвращение отказа от авторства. Однако производительность также является аспектом, который мы не можем позволить себе игнорировать, и поэтому всегда будет необходимо симметричное шифрование.
Вот краткое изложение того, что мы выяснили в отношении типов шифрования:
Симметричное шифрование | Асимметричное шифрование |
Для шифрования и дешифрования данных используется один ключ. | Пара ключей используется для шифрования и дешифрования. Эти ключи известны как открытый ключ и закрытый ключ. |
Поскольку используется только один ключ, это более простой метод шифрования. | Благодаря паре ключей это более сложный процесс. |
Симметричное шифрование в основном используется для шифрования. | Асимметричное шифрование обеспечивает шифрование, аутентификацию и защиту от авторства. |
Он обеспечивает более высокую производительность и требует меньшей вычислительной мощности по сравнению с асимметричным шифрованием. | Это медленнее, чем симметричное шифрование, и требует большей вычислительной мощности из-за своей сложности. |
Для шифрования данных используются ключи меньшей длины (например, длина 128–256 бит). | Обычно асимметричные методы шифрования используют более длинные ключи (например, 1024–4096 бит). |
Идеально подходит для приложений, в которых необходимо зашифровать большой объем данных. | Идеально подходит для приложений, в которых используется небольшой объем данных, обеспечивая аутентификацию. |
Стандартные алгоритмы симметричного шифрования включают RC4, AES, DES, 3DES и QUAD. | Стандартные алгоритмы асимметричного шифрования включают RSA, Diffie-Hellman, ECC, El Gamal и DSA. |
алгоритмов шифрования
алгоритмов шифрованияОписание:
Шифрование — это процесс преобразования открытого текста сообщения в зашифрованный текст, который может быть декодирован обратно в исходное сообщение.Алгоритм шифрования вместе с ключом используется при шифровании и дешифровании данных. Существует несколько типов шифрования данных, которые составляют основу сетевой безопасности. Схемы шифрования основаны на блочном или потоковом шифровании.
Тип и длина используемых ключей зависят от алгоритма шифрования и необходимого уровня безопасности. В обычном симметричном шифровании используется единственный ключ. С помощью этого ключа отправитель может зашифровать сообщение, а получатель может расшифровать сообщение, но безопасность ключа становится проблематичной.В асимметричном шифровании ключ шифрования и ключ дешифрования различаются. Один — это открытый ключ, с помощью которого отправитель может зашифровать сообщение, а другой — закрытый ключ, с помощью которого получатель может расшифровать сообщение.
Глоссарий:
Асимметричный алгоритм шифрования.
Современное направление криптографии. также известная как криптография с открытым ключом, в которой алгоритмы используют пару ключей (открытый ключ и закрытый ключ)
и использовать разные компоненты пары для разных шагов алгоритма.
Блочный шифр.
Эти алгоритмы работают с блоками данных определенного размера вместе с ключом, что приводит к блокам зашифрованного текста.
Национальный институт стандартов и технологий (NIST) — федеральное агентство.
который одобрил блочный шифр стандарта шифрования данных (DES) — ранний алгоритм шифрования, созданный в середине 1970-х годов.
Американский национальный институт стандартов (ANSI) также установил этот алгоритм безопасности в качестве стандарта алгоритма шифрования данных (DEA).Еще один стандарт, разработанный в 1980-х годах, — это стандарт тройного шифрования данных (3DES).
Некоторые часто используемые алгоритмы блочного шифрования: IDEA, RC2, RC5, CAST и Skipjack.
CBC, Cipher Block Chaining.
Режим шифрования.
CBD, режим цепочки блоков шифра.
Результаты ранее связанного блока используются при шифровании следующего связанного блока.
CCM, Счетчик с CBC-MAC.
Режим шифрования.
Общий режим блочного шифрования с аутентификацией.
Этот режим определен для использования со 128-битными блочными шифрами, такими как AES.
CFB, Cipher FeedBack.
Режим шифрования.
Китайская лотерея.
Криптографический подход к взлому алгоритмов шифрования с использованием большого количества машин в Интернете.
- [RFC 3607] Пересмотр криптоанализа китайской лотереи: Интернет как инструмент взлома кода.
Алгоритм шифрования.
Механизм, используемый для шифрования или дешифрования сообщения.
Шифрованный текст.
Результирующее зашифрованное сообщение, созданное алгоритмом шифрования.
CTR, счетчик.
Режим шифрования.
Расшифровка.
Процесс распознавания зашифрованного сообщения с помощью алгоритма шифрования.
ECB, Электронная кодовая книга.
Режим шифрования.
Шифрование.
Процесс создания нераспознаваемого сообщения с помощью алгоритма шифрования.
Ключ шифрования.
Последовательность значений, которые используются алгоритмом шифрования для шифрования сообщения.
Выбор случайных (или криптографически псевдослучайных) ключей,
безопасный механизм обмена ключами, частое обновление ключей и хорошая секретность
защита ключей — все это важные составляющие безопасности механизма проверки целостности.
OFB, выходная обратная связь.
Режим шифрования.
Обычный текст.
Незашифрованное сообщение.
Закрытый ключ.
(RFC 2828)
Секретный компонент пары криптографических ключей, используемых для асимметричной криптографии.
В криптосистеме с открытым ключом тот ключ пары ключей пользователя, который известен только этому пользователю.
Открытый ключ
Открытый ключ, которым шифруется сообщение.(RFC 2828)
Публично раскрываемый компонент пары криптографических ключей, используемых для асимметричной криптографии.
В криптосистеме с открытым ключом — тот ключ пары ключей пользователя, который является общеизвестным.
Шифрование с открытым ключом.
Механизм шифрования, в котором используются два ключа.
Открытый ключ используется для шифрования сообщения, а секретный закрытый ключ — для расшифровки сообщения.
Секретный ключ.
Единый секретный ключ, который используется в обычном симметричном шифровании, которое используется для шифрования и дешифрования сообщения.
SIV, синтетический вектор инициализации.
Режим работы блочного шифра.
(RFC 5297)
SIV принимает ключ, открытый текст и несколько байтовых строк переменной длины, которые будут аутентифицированы, но не зашифрованы.
Он создает зашифрованный текст, имеющий ту же длину, что и открытый текст, и синтетический вектор инициализации.
В зависимости от того, как он используется, SIV достигает
либо цель детерминированного аутентифицированного шифрования, либо цель аутентифицированного шифрования на основе nonce, устойчивого к неправомерному использованию.
Потоковый шифр.
Симметричный алгоритм шифрования, который обрабатывает данные бит или байт в
время с ключом, в результате чего получается случайный зашифрованный или открытый текст.
Некоторые часто используемые алгоритмы потокового шифрования — это RC4 и W7.
Симметричный алгоритм шифрования.
Ключ шифрования и ключ дешифрования взаимосвязаны и даже могут быть одинаковыми.
3DES.
Алгоритм блочного шифрования.
AES, расширенный стандарт шифрования.
Алгоритм блочного шифрования.
ARIA.
Алгоритм блочного шифрования.
Blowfish.
Алгоритм блочного шифрования.
Камелия.
Алгоритм блочного шифрования.
CAST.
Алгоритм блочного шифрования.
CLEFIA.
Алгоритм блочного шифрования.
CMAC.
Алгоритм блочного шифрования.
DES, Стандарт шифрования данных.
Алгоритм блочного шифрования.
ГОСТ 28147.
Алгоритм симметричного шифра.
[RFC 4357] Дополнительные криптографические алгоритмы для использования с ГОСТ 28147-89, ГОСТ Р 34.10-94, ГОСТ Р 34.10-2001 и ГОСТ Р 34.11-94 Алгоритмы.
[RFC 4490] Использование алгоритмов с криптографическим синтаксисом сообщений (CMS) по ГОСТ 28147-89, ГОСТ Р 34.11-94, ГОСТ Р 34.10-94 и ГОСТ Р 34.10-2001.
- Категория: Дорожка стандартов.
IDEA, Международный алгоритм шифрования данных.
Алгоритм блочного шифрования.
- [RFC 3058] Использование алгоритма шифрования IDEA в CMS.
Марс.
Алгоритм блочного шифрования.
MISTY1.
Алгоритм блочного шифрования.
Кролик.
Алгоритм потокового шифрования.
RC2.
Алгоритм блочного шифрования.
RC4.
Алгоритм потокового шифрования.
Запатентованный алгоритм шифрования доступен по лицензии RSA Data Security Inc.
RC5.
Алгоритм блочного шифрования.
RC6.
Rijndael.
Алгоритм блочного шифрования.
Алгоритм победы в конкурсе AES.
СЕМЕНА.
Алгоритм блочного шифрования.
СКИПДЖЕК.
Алгоритм блочного шифрования.
- [RFC 2876] Использование алгоритмов KEA и SKIPJACK в CMS.
SOBER.
Алгоритм потокового шифрования.
Twofish.
Алгоритм блочного шифрования.
W7.
Алгоритм потокового шифрования.
Шифр синхронного потока шириной в байт, оптимизированный для эффективной аппаратной реализации при очень высоких скоростях передачи данных.
Это алгоритм с симметричным ключом, поддерживающий длину ключа 128 бит.
RFC:
[RFC 3766] Определение сильных сторон открытых ключей, используемых для обмена симметричными ключами.
[RFC 4107] Рекомендации по управлению криптографическими ключами.
[RFC 4270] Атаки на криптографические хэши в интернет-протоколах.
Публикации:
Устаревшие RFC:
Определение алгоритма шифрования | PCMag
Формула, используемая для преобразования обычных данных или «открытого текста» в секретное закодированное сообщение, известное как «зашифрованный текст».«Зашифрованный текст может находиться в хранилище или перемещаться по незащищенным сетям без разглашения его содержимого неавторизованным лицам.Также известный как« шифр », каждый алгоритм для выполнения вычислений использует случайно сгенерированную строку битов, известную как« ключ ». Чем больше ключ (чем больше битов), тем большее количество потенциальных шаблонов может быть создано, что затрудняет взлом кода и расшифровку содержимого.
Большинство алгоритмов шифрования используют метод блочного шифрования, который кодирует фиксированные блоки Вход.Другие используют метод потока, который шифрует по одному биту за раз. См. Режим работы, криптографию, протокол безопасности, потоковый шифр, блочный шифр и алгоритм.
Выбор алгоритма
Выдержка из диалогового окна ScramDisk, которое представляло собой приложение, которое зашифровывало файлы на жестком диске, показывает выбор алгоритмов. «Энтропия мыши» — это количество случайности, внесенное в создание ключа. Чем больше покачивается мышь, тем больше случайности.Ниже приведены выдержки из документации программы, в которых дается краткое изложение алгоритмов секретного ключа.
3DES
Это намного лучше, чем DES; он использует три приложения шифра DES в режиме EDE (шифрование-дешифрование-шифрование) с полностью независимыми ключами. Используется Outer-CBC. Этот алгоритм считается очень безопасным (крупные банки используют его для защиты ценных транзакций), но он также очень и очень медленный.
Blowfish
Blowfish — это алгоритм шифрования с высокой степенью защиты, разработанный Брюсом Шнайером, автором книги «Прикладная криптография» и владельцем компании Counterpane.Это очень быстро, считается безопасным и устойчивым к линейному и дифференциальному анализу. Это мой личный выбор.
DES
Стандарт шифрования данных был разработан IBM в начале 1970-х годов при участии АНБ. Это нормально, но один-единственный ключ может быть взломан за три дня Electronic Frontier Foundation, плохо финансируемой организацией. Этот алгоритм был предоставлен для полноты картины.
IDEA
Международный алгоритм шифрования данных был разработан Сюэцзя Лай и Джеймсом Мэсси.Это довольно быстро, считается безопасным, а также устойчиво как к линейному, так и к дифференциальному анализу. Чтобы использовать его в каких-либо целях, кроме личного, необходимо выплатить лицензионный платеж компании Ascom-Systec Ltd.
Misty1
Misty1 был разработан М. Мацуи из Mitsubishi. Это достаточно быстрый шифр, устойчивый как к линейному, так и к дифференциальному анализу. Однако он довольно новый, поэтому используйте его с осторожностью.
Square
Square — это очень быстрый и достаточно безопасный блочный шифр, созданный Джоном Дэменом и Винсентом Рейменом.Он не подвергался такому экспертному обзору, как Blowfish, 3DES, IDEA и т. Д., Поэтому может быть уязвим для атак.
Summer
Это частный потоковый шифр, созданный автором и рассчитанный только на скорость. Он поставляется для обратной совместимости с версией 1 ScramDisk и не рекомендуется для использования на вновь созданных дисках. Вместо этого используйте TEA или Blowfish, которые работают достаточно быстро.
TEA
Tiny Encryption Algorithm — очень быстрый и умеренно безопасный шифр, созданный Дэвидом Уилером и Роджером Нидхэмом из Кембриджской компьютерной лаборатории.В расписании ключей есть известная слабость, поэтому его не рекомендуется использовать, если требуется максимальная безопасность. ЧАЙ выпускается в 16 и 32 круглых версиях. Чем больше раундов (итераций), тем безопаснее, но медленнее.
Блок-ключ Размер шифрования Тип Автор Биты Биты Время ** 3DES Диффи-Хеллмана 64 168 4:05 Blowfish Шнайер 64 256 0:55 DES IBM-NSA 64 56 1:42 ИДЕЯ Лай-Мэсси 64 128 1:07 Мисти1 Мацуи 64128 2:50 Площадь Демон-Реймен 128 128 0:39 Саммер Аман (стрим) 128 0:46 ЧАЙ 16 Уиллер-Нидхэм 64 128 0:46 ЧАЙ 32 Уиллер-Нидхэм 64128 1:03 ** Минуты / секунды для шифрования файла размером 50 МБ.Хотя времена основаны на более старых Pentium 166 МГц, список служит сравнение скорости алгоритма.
Обзор криптографических алгоритмов — согласно NIST
Криптографическая защита системы от атак и злонамеренного проникновения зависит от двух измерений: (1) сила ключей и эффективность механизмов и протоколов, связанных с ключами; и (2) защита ключей посредством управления ключами (безопасное создание, хранение, распространение, использование и уничтожение ключей).
Сильные алгоритмы в сочетании с плохим управлением ключами с такой же вероятностью потерпят неудачу, как и плохие алгоритмы, встроенные в надежный контекст управления ключами.
В этой статье делается попытка пролить свет на криптографические алгоритмы (механизмы и протоколы, связанные с ключами), а также предоставить краткое изложение того, что следует учитывать при выборе криптографических алгоритмов для защиты системы. Наша структура основана на специальной публикации NIST 800-57, часть 1, редакция 4 — «Рекомендации по управлению ключами, часть 1».Первоначально написанная как руководство для применения в государственных учреждениях США для защиты конфиденциальной несекретной информации, работа NIST представляет собой ценный синтез передовых практик.
Сужение пула алгоритмов
Согласно NIST, криптографические алгоритмы, одобренные FIPS или рекомендованные NIST, должны использоваться, если требуются криптографические услуги. Эти алгоритмы прошли тщательный анализ безопасности и постоянно тестируются, чтобы гарантировать адекватную безопасность.В криптографических алгоритмах обычно используются криптографические ключи, и когда эти алгоритмы необходимо усилить, это часто можно сделать с помощью ключей большего размера.
Классы криптографических алгоритмов
Существует три основных класса криптографических алгоритмов, одобренных NIST, которые определяются количеством или типами криптографических ключей, используемых с каждым из них.
Хэш-функции
Криптографическая хеш-функция не использует ключи для своей основной операции. Эта функция создает небольшой дайджест или «хеш-значение» из часто больших объемов данных посредством одностороннего процесса.Хеш-функции обычно используются для создания строительных блоков, которые используются в управлении ключами и предоставляют такие услуги безопасности, как:
- Предоставление услуг аутентификации источника и целостности путем генерации кодов аутентификации сообщений (MAC)
- Сжатие сообщений для генерации и проверки цифровых подписей
- Получение ключей в алгоритмах создания ключей
- Генерация детерминированных случайных чисел
Алгоритмы с симметричным ключом
Также называемый алгоритмом секретного ключа, алгоритм симметричного ключа преобразует данные, чтобы сделать их чрезвычайно трудными для просмотра без наличия секретного ключа.
Ключ считается симметричным, поскольку он используется как для шифрования, так и для дешифрования. Эти ключи обычно известны одному или нескольким уполномоченным лицам. Алгоритмы с симметричным ключом используются для:
- Обеспечение конфиденциальности данных за счет использования одного и того же ключа для шифрования и дешифрования данных.
- Предоставление кодов аутентификации сообщений (MAC) для служб аутентификации источника и целостности. Ключ используется для создания MAC, а затем для его проверки.
- Установление ключей в процессе создания ключей
- Генерация детерминированных случайных чисел
Алгоритмы с асимметричным ключом
Также называемые алгоритмами с открытым ключом, алгоритмы с асимметричным ключом используют парные ключи (открытый и закрытый ключ) при выполнении своей функции.Открытый ключ известен всем, но закрытый ключ контролируется исключительно владельцем этой пары ключей. Закрытый ключ нельзя вычислить математически с помощью открытого ключа, даже если они связаны криптографически. Асимметричные алгоритмы используются для:
- Вычисление цифровых подписей
- Создание материала для криптографического ключа
- Управление идентификацией
Услуги безопасности, предоставляемые криптографическими алгоритмами
Конкретные услуги безопасности могут быть достигнуты с помощью различных криптографических алгоритмов.Часто один алгоритм может использоваться для нескольких служб.
Хеш-функции
Хэш-функция часто является компонентом многих криптографических алгоритмов и схем, в том числе алгоритмов цифровой подписи, кодов аутентификации сообщений с хеш-кодом (HMAC), функций / методов получения ключей и генераторов случайных чисел. Хеш-функция работает, принимая произвольный, но ограниченный по длине вход и генерируя выход фиксированной длины. Этот вывод часто называют хеш-значением, хеш-значением, дайджестом сообщения или цифровым отпечатком.FIPS180 (стандарт безопасного хеширования) и FIPS202 (алгоритм безопасного хеширования-3) определяют утвержденные хеш-функции.
Алгоритмы симметричного ключа для шифрования и дешифрования
Encryption обеспечивает конфиденциальность данных путем преобразования «открытого текста» в «зашифрованный текст». Расшифровка преобразует зашифрованный текст обратно в открытый текст. AES и 3DES — это утвержденные алгоритмы с симметричным ключом, используемые для служб шифрования / дешифрования. Скорее всего, в ближайшее время 3DES будет выведена из эксплуатации.
Расширенный стандарт шифрования (AES)
AES основан на алгоритме Rijndael, который был изобретен предыдущим главным криптографом Cryptomathic Винсентом Рейменом вместе со своим коллегой-исследователем Джоан Дэемен.
AES шифрует и дешифрует данные с использованием 128/192/256-битных ключей в 128-битные блоки.
3DES / тройной DEA (TDEA)
3DES — это блочный шифр с симметричным ключом, который применяет алгоритм шифрования DES три раза к каждому блоку данных. Официальное название, используемое NIST, — это алгоритм тройного шифрования данных (TDEA).
TDEA шифрует и расшифровывает данные с помощью трех 56-битных ключей в 64-битные блоки. TDEA имеет два дополнительных варианта:
Двухклавишный TDEA (2TDEA) с использованием 3-х клавиш, однако клавиша 1 и клавиша 3 идентичны.Это приводит к 112 эффективным битам.
Трехключевой TDEA использует 3 разных ключа, что приводит к 168 битам. 2TDEA широко используется в индустрии платежных карт, поскольку обеспечивает хороший компромисс между безопасностью и временем вычислений.
Однако развивающиеся технологии сделали его непригодным для защиты от атак. С 21 декабря 2015 года 2TDEA можно использовать только для дешифрования.
Сравнительное исследование (Alanazi et al., 2010) показало, что даже 3DES (также называемый 3TDEA) уязвим для дифференциального криптоанализа.
Advanced Encryption Standard (AES) оказался намного безопаснее, так как он устойчив к дифференциальному криптоанализу, но также и к усеченному дифференциальному или линейному криптоанализу, а также к интерполяции и атакам с квадратами.
Режимы работы для приложений AES и TDEA
Криптографические режимы работы — это алгоритмы, которые криптографически преобразуют данные с использованием алгоритмов блочного шифрования с симметричным ключом, в данном случае AES и TDEA.Режимы работы решают проблемы, возникающие при шифровании блочного шифра: когда несколько блоков шифруются отдельно в сообщении, это может позволить злоумышленнику заменять отдельные блоки, часто без обнаружения. Чтобы облегчить это, NIST предписывает комбинацию применяемого алгоритма с
- переменные векторы инициализации (специальные блоки данных, используемые на начальном этапе шифрования и в последующем и соответствующем дешифровании сообщения) и / или
- — обратная связь с информацией, полученной в результате криптографической операции.
Коды аутентификации сообщений (MAC)
MAC-адресамогут использоваться для обеспечения аутентификации источника / источника и целостности сообщений. Этот криптографический механизм решает проблему изменения сообщений злоумышленниками путем создания ключа MAC, который используется как отправителем сообщения, так и получателем.
MACс использованием алгоритмов блочного шифрования
Этот алгоритм использует утвержденный алгоритм блочного шифрования, например AES или TDEA, для дополнительной защиты MAC.
MAC с использованием хеш-функций
Утвержденная хеш-функция также может использоваться для вычисления MAC.
Алгоритмы цифровой подписи
Цифровые подписи используются с хэш-функциями для обеспечения аутентификации источника, аутентификации целостности и поддержки неотказуемости. Алгоритм цифровой подписи (DSA), алгоритм RSA и алгоритм ECDSA одобрены FIPS 186 для использования при создании цифровых подписей.
Ключевые схемы создания
Транспортировка ключей и согласование ключей — это два типа схем автоматического создания ключей, которые используются для создания ключей, которые будут использоваться между взаимодействующими объектами.Отправляющий объект шифрует ключевой материал, который затем дешифруется принимающим объектом.
Схемы согласования ключей на основе дискретного логарифма
Алгоритмы с открытым ключом, основанные на дискретном логарифме, основываются на схемах, которые используют математику конечных полей или математику эллиптических кривых. Эфемерный, статический или оба ключа могут использоваться в одной транзакции согласования ключей.
Создание ключей с использованием схем целочисленной факторизации
Алгоритмы открытых ключей на основе целочисленной факторизации используются для схем установления ключей, в которых одна сторона всегда имеет и использует статическую пару ключей, а другая сторона может использовать или не использовать пару ключей.
Свойства безопасности схем установления ключа
Для обеих сторон не всегда практично использовать и статические, и временные ключи с определенными приложениями, даже несмотря на то, что использование обоих типов ключей в схемах создания ключей обеспечивает большую безопасность, чем схемы, использующие меньшее количество ключей.
Шифрование ключей и упаковка ключей
Key encryption дополнительно повышает конфиденциальность и защиту ключа за счет шифрования указанного ключа. Затем процесс разворачивания ключа расшифровывает ключ зашифрованного текста и обеспечивает проверку целостности.
Подтверждение ключа
Подтверждение ключа обеспечивает уверенность между двумя сторонами в процессе создания ключа, что были установлены общие материалы для ключей.
Ключевые протоколы установления
Протоколы для создания ключа определяют обработку, необходимую для создания ключа, а также его поток сообщений и формат.
ГСЧ (генераторы случайных чисел)
Для генерации ключевого материала необходимоГСЧ, которые подразделяются на две категории: детерминированные и недетерминированные.
Заключительные мысли
Понимание трех классов криптографических алгоритмов (хэш-функций, асимметричных алгоритмов, симметричных алгоритмов) в контексте их области применения поможет вам правильно структурировать запланированное решение в соответствии с вашими конкретными потребностями.
Не следует пренебрегать подходящим управлением ключами, чтобы избежать открытых флангов в вашей системе.
Хорошая новость заключается в том, что в большинстве стран мира описанные алгоритмы принимаются (если не принимать во внимание некоторые политически мотивированные отклонения, такие как алгоритм ГОСТ в России).Однако набор разрешенных алгоритмов может быть сужен, или окружающие структуры могут стать обязательными, например, если реализация должна соответствовать определенному европейскому регламенту или стандарту.
Международная перспектива дизайна становится важной, особенно когда компания или учреждение хотят вести безопасную связь в глобальном контексте.
Особая благодарность Асиму Мехмуду за его правки и предложения.
Ссылки и дополнительная литература
- Избранные статьи по управлению ключами (2012–2016 гг.), Ашик Дж. А., Чак Исттом, Дон М.Тернер, Гийом Форже, Джеймс Х. Рейнхольм, Мэтт Лэндрок, Питер Лэндрок, Стив Маршалл, Торбен Педерсен, Мария Стоукс, Джон Транкеншу и другие
- Специальная публикация NIST 800-57, часть 1, редакция 4, Рекомендация по управлению ключами, часть 1: Общие (2016 г.), Элейн Баркер, Лаборатория информационных технологий отдела компьютерной безопасности, Национальный институт стандартов и технологий
- Критерии оценки доверенных компьютерных систем («Оранжевая книга») (1985), The U.С. Министерство обороны
- Исследование глобальных тенденций в области шифрования, 2017 г. (апрель 2017 г.)
- Прогнозы на 2017 год: предприятия, одержимые клиентами, запускают второе десятилетие облачных технологий (ноябрь 2016 г.)
- «Что произошло инцидентов в области кибербезопасности». (2016), Управление персонала США.
Изображение: «Хэш-тег», любезно предоставлено Майклом Когланом, (CC BY-SA 2.0)
Типы шифрования: симметричное или асимметричное? RSA или AES?
Что такое шифрование данных?
Data Encryption — это процесс, который может быть таким же простым, как переключение переключателя, если вы знаете, чего хотите достичь.Давайте кратко рассмотрим основы этого актива защиты данных. Чтобы зашифровать данные, нужно взять часть информации и преобразовать ее в другую нераспознаваемую информацию. Этот конечный продукт называется зашифрованным текстом .
Чтобы получить зашифрованный текст, вы запускаете информацию, которая должна быть зашифрована с помощью алгоритма шифрования. Этот алгоритм берет исходную информацию и, основываясь на случайных правилах, преобразует информацию в новый, не поддающийся расшифровке фрагмент данных. Думайте об этом как о «переводе».Алгоритм шифрования создает новый язык, , и скрывает конфиденциальные данные, преобразовывая их в этот секретный код, который вы можете расшифровать и преобразовать в открытый текст, только если вы знаете правила или так называемый ключ .
Ключ представляет математические шаги, предпринятые алгоритмом для преобразования вашего текста из «Hello World» в «XJtg920kl # aJFJ»% * ¨ * FK ». Без него вы не сможете расшифровать данные, и, следовательно, они будут защищены от несанкционированного доступа, но существует множество различных типов алгоритмов и методов шифрования, из которых можно выбирать, так как же узнать, какой из них является наиболее безопасным для вашей кибербезопасности? потребности? Начнем с самого основного различия: симметричное шифрование и асимметричное шифрование .
Симметричный в сравнении с асимметричным Типы шифрованияможно легко разделить на эти две категории: симметричное шифрование или шифрование с одним ключом и асимметричное шифрование или шифрование с открытым ключом.
Симметричное шифрованиеВ симметричном шифровании есть только один ключ, и все участвующие стороны используют один и тот же ключ для шифрования и дешифрования информации. При использовании одного ключа процесс прост, как в следующем примере: вы шифруете электронное письмо с помощью уникального ключа, отправляете это электронное письмо своему другу Тому, и он будет использовать тот же симметричный ключ , чтобы разблокировать / расшифровать электронное письмо.
Преимуществами симметричного шифрования являются его более высокая производительность и низкое потребление ресурсов, но оно по своей сути старше и менее безопасно, чем его аналог. Причина проста: если вы масштабируете шифрование в масштабе всей компании, это означает, что вы вкладываете все свое доверие в единый ключ, которым придется много делиться.
По этой причине симметричное шифрование отлично подходит для работы с конфиденциальными данными в большом количестве или для задач шифрования, которые намереваются навсегда скрыть информацию без необходимости дешифрования.Например, при активации BitLocker на компьютере с Windows для шифрования всех жестких дисков. Разблокировав ПК своим паролем, пользователь расшифрует данные, не рискуя раскрыть свой секретный ключ шифрования. Другой пример — VPN, которые шифруют ваш сетевой трафик с помощью локального ключа и вам не нужно делиться им за пределами вашего собственного использования.
Асимметричное шифрование С другой стороны, асимметричное шифрованиебыло создано для решения неотъемлемой проблемы симметричного шифрования: необходимости совместного использования единого ключа шифрования, который используется как для шифрования, так и для дешифрования данных.
Этот более новый и безопасный метод использует два ключа для процесса шифрования, открытый ключ, используемый для шифрования, и закрытый ключ, используемый для дешифрования. Эти ключи связаны, связаны и работают следующим образом:
Открытый ключ доступен всем, кому нужно зашифровать часть информации. Этот ключ не подходит для процесса дешифрования. У пользователя должен быть вторичный ключ, закрытый ключ, чтобы расшифровать эту информацию. Таким образом, закрытый ключ принадлежит только субъекту, который расшифровывает информацию, без ущерба для безопасности при масштабировании безопасности.
Хороший пример — шифрование электронной почты. Благодаря асимметричному шифрованию любой может использовать ваш открытый ключ, чтобы отправить вам зашифрованное электронное письмо, которое вы можете расшифровать только с помощью своего закрытого ключа.
Естественно, асимметричный — это более продвинутый стандарт шифрования, поэтому он медленнее и требует больших ресурсов. Из-за этого он обычно используется в небольших транзакциях, обычно для установления безопасных каналов связи или аутентификации пользователей.
Общий Симметричные алгоритмы шифрования AES или усовершенствованная система шифрованияAES — один из наиболее распространенных алгоритмов симметричного шифрования, используемых сегодня, разработанный в качестве замены устаревшего DES (стандарт шифрования данных), взломанного исследователями безопасности еще в 2005 году.Этот новый алгоритм стремился устранить главную слабость своего предшественника — короткую длину ключа шифрования, уязвимую для грубой силы.
AES шифрует информацию одним блоком (блочный шифр) и делает это по одному блоку за раз, так называемые «раунды». Данные сначала преобразуются в блоки, а затем они шифруются с помощью ключа в разных раундах в зависимости от размера ключа: 14 раундов для 256-битных, 12 раундов для 192-битных и 10 раундов для 128-битных. Этот процесс включает в себя серию шагов по манипулированию данными и смешиванию, которые выполняются каждый раунд: подстановка, транспонирование, смешивание, смешение столбцов, суббайты.
Blowfish и TwoFishПочему AES является одним из наиболее часто используемых алгоритмов? AES работает быстро, с опцией переменной длины ключа, которая обеспечивает дополнительную безопасность. Он идеален при работе с большими объемами зашифрованных данных.
Blowfish был еще одним симметричным преемником DES, разработанным как блочный шифр наподобие AES, но с длиной ключа от 32 до 448 бит. Он был разработан как общедоступный инструмент, а не лицензионный и бесплатный.Эта первоначальная версия была обновлена до TwoFish , — расширенная версия последней, в которой используется размер блока 128 бит с возможностью расширения до 256 бит.
Основное отличие от других алгоритмов шифрования состоит в том, что он использует 16 раундов шифрования, независимо от ключа или размера данных. Основным преимуществом TwoFish является его гибкость в производительности, которая дает вам полный контроль над скоростью шифрования.
3DES или Triple Стандарт шифрования данныхОсновная причина, по которой TwoFish не считается лучшим симметричным алгоритмом, заключается в том, что AES получил признание и был быстро принят производителями в качестве стандарта, а это означает, что он имеет высшее техническое преимущество.
Наконец, прямым преемником DES является 3DES или Triple Des . Этот симметричный алгоритм является усовершенствованной формой устаревшего алгоритма DES, который использует 56-битный ключ для шифрования блоков данных. Его концепция проста: он применяет DES трижды к каждому блоку информации, утраивая 56-битный ключ до 168-битного.
Из-за того, что один и тот же процесс применяется трижды, 3DES работает медленнее, чем его более современные аналоги.Кроме того, при использовании небольших блоков данных повышается риск дешифрования с помощью грубой силы.
Несмотря на более низкую скорость и, как правило, устаревший статус по сравнению с AES, он по-прежнему широко используется в финансовых службах для шифрования PIN-кодов банкоматов и паролей UNIX.
Общий Асимметричные алгоритмы шифрования RSA или Rivest — Shamir — AdlemanСчитается основным элементом асимметричного шифрования.Разработанный инженерами, давшими ему название в 1977 году, RSA использует факторизацию произведения двух простых чисел для обеспечения шифрования 1024-битного ключа с длиной ключа до 2048-бит. Согласно исследованию, проведенному в 2010 году, вам потребуется 1500 лет вычислительной мощности, чтобы взломать его меньшую 768-битную версию!
Однако это означает, что это более медленный алгоритм шифрования. Поскольку для этого требуются два разных ключа невероятной длины, процесс шифрования и дешифрования выполняется медленно, но уровень безопасности, который он обеспечивает для конфиденциальной информации, несравним.
Криптография с ECC или эллиптическими кривымиПоскольку скорость RSA неудобна для обработки больших объемов данных, шифрование RSA в основном используется в цифровых подписях, шифровании электронной почты, сертификатах SSL / TLS и браузерах.
Этот метод был первоначально предложен в 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 также чрезвычайно привлекателен для мобильных устройств с низкой вычислительной мощностью и высокой скоростью передачи данных. Сочетание недорогой, малонадежной и надежной защиты делает его идеальным стандартом для защиты конфиденциальных мобильных телефонов и приложений.
На выносШифрование может быть устрашающим делом. Данные есть повсюду, и вы должны учитывать их на всех уровнях: данные в состоянии покоя, данные в движении, кому и где требуется доступ к этой информации, как она передается и какие типы взаимодействия вы осуществляете с использованием конфиденциальной информации, которая должна быть зашифрована.
Вы можете шифровать сообщения своего предприятия, информацию веб-браузера, транзакции электронной торговли, базу данных вашей компании, жесткие диски или данные клиентов и пользователей. Первый шаг может показаться трудным, но необходимо задокументировать все взаимодействия с данными и составить план. Таким образом, вы поймете, какие типы шифрования вам понадобятся.
К счастью, у есть много простых инструментов шифрования, которые уже есть в вашем распоряжении, и их можно быстро активировать, когда вы выясните степень защиты ваших протоколов.FileVault на macOS интегрирован и готов к шифрованию ваших компьютеров Mac с помощью AES; тогда как Microsoft может похвастаться собственным шифрованием BitLocker , способным к полному шифрованию диска с помощью AES и AES-XTS.
алгоритмов шифрования, объясненных на примерах
Криптография, по сути, это наука об использовании кодов и шифров для защиты сообщений.
Шифрование — это кодирование сообщений с целью позволить только предполагаемому получателю понять смысл сообщения.Это двухсторонняя функция (вы должны иметь возможность отменить скремблирование сообщения). Это сделано для защиты данных при передаче.
Если вы ищете общие сведения о разнице между симметричными и асимметричными алгоритмами и общий обзор того, что такое шифрование, начните здесь. В этой статье в первую очередь будут рассмотрены два наиболее часто используемых алгоритма шифрования.
В общем, при создании симметричных алгоритмов существовала серьезная проблема — они работали эффективно только в том случае, если обе стороны уже знали общий секрет.Если бы они этого не сделали, то безопасно обменять ключ без посторонней помощи было бы чрезвычайно сложно.
И если третье лицо получило ключ, им было очень легко взломать шифрование, нарушив цель безопасной связи.
Диффи-Хеллман решил эту проблему, позволив незнакомым людям обмениваться информацией по общедоступным каналам, которые можно использовать для формирования общего ключа. Общий ключ сложно взломать, даже если все коммуникации контролируются.
Как работает Диффи-Хеллман?
Протокол Диффи-Хеллмана — это так называемый протокол обмена ключами.Это основное применение Диффи-Хеллмана, хотя его можно использовать и для шифрования (обычно это не так, потому что более эффективно использовать DH для обмена ключами, а затем переключиться на (значительно более быстрое) симметричное шифрование для передачи данных. ).
Это работает следующим образом:
https://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange#/media/File:Diffie-Hellman_Key_Exchange.svgПо сути, есть две стороны, Алиса и Боб, которые согласовать начальный цвет (произвольный, но каждый раз должен быть другим).У них также есть секретный цвет, который они держат при себе. Затем они смешивают этот цвет с общим цветом, в результате чего получается два разных цвета. Затем они передают этот цвет другой стороне, которая смешивает его со своим секретным цветом, в результате чего получается тот же самый секретный цвет окончания. x% p.
Таким образом, при условии, что это было реализовано правильно, относительно легко выполнить вычисления, необходимые для создания ключа, но это чрезвычайно сложно и отнимает много времени, чтобы выполнить вычисления, необходимые для того, чтобы попытаться взломать ключ путем грубой силы.
Даже если злоумышленник может скомпрометировать этот ключ, Диффи-Хеллман обеспечивает идеальную прямую секретность.
Что такое совершенная прямая секретность?
Идея заключается в том, что если вы взломаете шифрование, которое сервер использует для связи сейчас, это не означает, что все коммуникации, которые сервер когда-либо выполнял, могут быть прочитаны.
Другими словами, он позволяет вам видеть только те коммуникации, которые используются сейчас (то есть с этим секретным ключом). Поскольку каждый набор коммуникаций имеет свой секретный ключ, вам придется взламывать их все по отдельности.
Это возможно, если каждый сеанс имеет свой временный ключ для каждого сеанса. Поскольку Диффи-Хеллман всегда использует новые случайные значения для каждого сеанса (поэтому генерирует новые ключи для каждого сеанса), он называется эфемерным Диффи-Хеллманом (EDH или DHE). Многие комплекты шифров используют это для достижения идеальной прямой секретности.
Поскольку Диффи-Хеллман позволяет вам обмениваться ключевыми материалами в виде открытого текста, не беспокоясь о компрометации общего секрета, а математика слишком сложна для злоумышленника для грубой силы, злоумышленник не может получить ключ сеанса (и даже если бы он мог (использование разных эфемерных ключей для каждого сеанса означает, что они могут отслеживать только этот сеанс, а не прошлый или будущий).
Прямая секретность включена с любым обменом ключами Диффи-Хеллмана, но только эфемерный обмен ключами (разные ключи для каждого сеанса) обеспечивает идеальную прямую секретность.
Вот сообщение Скотта Хелма, в котором более подробно рассказывается об этом и объясняется, как включить это на ваших серверах.
Каковы ограничения Диффи-Хеллмана?
Самым большим ограничением D-H является то, что он не проверяет личность. Другими словами, любой может утверждать, что он Алиса или Боб, и нет встроенного механизма для проверки того, что их утверждение истинно.
Кроме того, если реализация не выполняется безопасным способом, алгоритм может быть взломан с использованием достаточного количества выделенных ресурсов (маловероятно, но возможно для академических команд или субъектов национального государства).
Например, это может произойти, если генератор случайных чисел не снабжен достаточной энтропией для поддержки желаемой силы — другими словами, поскольку сгенерированные компьютером числа никогда не являются действительно случайными, степень, в которой вы искусственно вводите неопределенность, имеет значение сила вашей реализации.
Кроме того, в 2015 году была продемонстрирована атака, которая показала, что когда одни и те же простые числа использовались многими серверами в качестве начала обмена ключами, общая безопасность Диффи-Хеллмана была ниже, чем ожидалось.
По сути, злоумышленник может просто предварительно вычислить атаку против этого простого числа, что упростит взлом сеансов для любого сервера, который использовал это простое число.
Это произошло из-за того, что миллионы серверов использовали одни и те же простые числа для обмена ключами.Предварительное вычисление этого типа атаки по-прежнему требует ресурсов либо академического, либо национального уровня и вряд ли затронет подавляющее большинство людей.
Однако, к счастью для тех, кому приходится беспокоиться о злоумышленниках из национального государства, существует другой способ обмена ключами DH с использованием криптографии на эллиптических кривых (ECDHE). Это выходит за рамки данной статьи, но если вы хотите узнать больше о математике, лежащей в основе этого обмена, ознакомьтесь с этой статьей.
Для более подробного изучения слабых мест DH см. Этот технический документ и этот веб-сайт.
RSA
RSA названо в честь создателей — Ривеста, Шамира, Адлемана — и представляет собой способ генерации открытых и закрытых ключей.
Технически существует два алгоритма RSA (один используется для цифровых подписей, а другой — для асимметричного шифрования). В этой статье рассматривается алгоритм асимметричного шифрования.
Это позволяет осуществлять обмен ключами — сначала вы назначаете каждой стороне открытый / закрытый ключи транзакции, затем вы генерируете симметричный ключ и, наконец, вы используете пары открытого / закрытого ключей для безопасной передачи общего симметричного ключа.
Поскольку асимметричное шифрование обычно медленнее, чем симметричное шифрование, и также не масштабируется, использование асимметричного шифрования для безопасного обмена симметричными ключами очень распространено.
Итак, как это работает?
- Выберите 2 очень больших простых числа (не менее 512 бит или 155 десятичных цифр каждое), x и y (эти числа должны быть секретными и выбираться случайным образом)
- Найдите произведение, т.е. z = x * y
- Выберите нечетное общедоступное целое число e между 3 и n — 1 и не имеет общих множителей (кроме 1) с (x-1) (y-1) (поэтому оно взаимно простое с x — 1 и y — 1. ).d% z
Связь между d и e гарантирует, что функции шифрования и дешифрования являются обратными. Это означает, что функция дешифрования может успешно восстановить исходное сообщение, и что довольно сложно восстановить исходное сообщение без закрытого ключа (z, d) (или простых множителей x и y).
Это также означает, что вы можете сделать z и e общедоступными, не ставя под угрозу безопасность системы, что упрощает взаимодействие с другими пользователями, с которыми у вас еще нет общего секретного ключа.е% z.
Часто, когда это делается, открытый текст представляет собой хэш сообщения, что означает, что вы можете подписать сообщение (независимо от длины) только с одним возведением в степень.
Безопасность системы основана на нескольких вещах:
- (Факт) Относительно легко генерировать простые числа, даже большие простые числа (например, x и y).
- (Факт) Умножение — это просто. Найти z очень просто.
- (Предположение, основанное на современной математике) Факторинг сложен. Учитывая z, относительно сложно восстановить x и y.Это выполнимо, но требует времени и дорого.
Согласно одной оценке, восстановление простых множителей 1024-битного числа на машине стоимостью 10 миллионов долларов займет год. Удвоение размера приведет к экспоненциальному увеличению объема необходимой работы (в несколько миллиардов раз больше).
По мере развития технологий эти затраты (и объем необходимых работ) будут уменьшаться, но на данный момент этот тип шифрования, правильно реализованный, является маловероятным источником компрометации.e% z, особенно если a достаточно велико).
Хотите узнать больше о математике от более умных людей? Прочтите эту статью.
Отлично, что лучше?
Это зависит от вашего варианта использования. Между этими двумя алгоритмами есть несколько различий — во-первых, совершенная прямая секретность (PFS), о которой мы говорили ранее в контексте Диффи-Хеллмана. Хотя технически мог бы генерировать эфемерные пары ключей RSA и обеспечивать идеальную прямую секретность с помощью RSA, вычислительные затраты намного выше, чем для Diffie-Hellman, а это означает, что Diffie-Hellman — лучший выбор для реализаций SSL / TLS, где вы хотите идеального прямая секретность.
Хотя есть некоторые различия в производительности между двумя алгоритмами (с точки зрения работы, требуемой от сервера), различия в производительности обычно недостаточно велики, чтобы иметь значение при выборе одного из них.
Вместо этого, как правило, основное внимание при определении того, что лучше, зависит от того, какой из них больше поддерживается для вашего варианта использования (например, при реализации SSL вам понадобится Diffie Hellman из-за идеальной прямой секретности) или какой из них более популярен. или принят в качестве стандарта в отрасли.
Например, хотя протокол Диффи-Хеллмана был одобрен правительством США и поддерживался институциональным органом, стандарт не был выпущен — тогда как RSA (стандартизированный частной организацией) предоставил бесплатный стандарт, а это означает, что RSA стал очень популярным среди частных лиц. организации.
Если вам интересно узнать больше, здесь есть отличная ветка о различиях.
Хотите узнать, как хакеры используют криптографические атаки? Попробуйте этот набор задач от Cryptopals.
Расшифровка шифрованияЧем больше я узнаю о криптографии, тем больше я думаю, что Алисе и Бобу, вероятно, следует просто поговорить лично.
— Пол Рейнхеймер (@preinheimer) 13 марта 2017 г.AES и RSA
Вот как работает шифрование с помощью Boxcryptor
Мы шифруем файлы и тем самым обеспечиваем повышенную защиту от шпионажа и кражи данных. Для шифрования мы используем комбинацию шифрования AES-256 и шифрования RSA. Здесь мы объясняем два алгоритма.
AES-256 Encryption
Advanced Encryption Standard (AES) — один из наиболее часто используемых и наиболее безопасных алгоритмов шифрования, доступных сегодня. Он общедоступен, и это шифр, который АНБ использует для защиты документов с классификацией «совершенно секретно». Его история успеха началась в 1997 году, когда NIST (Национальный институт стандартов и технологий) начал официально искать преемника устаревшего стандарта шифрования DES. Алгоритм под названием «Rijndael», разработанный бельгийскими криптографами Дэеменом и Рейменом, отличался не только производительностью и гибкостью, но и безопасностью.
Он превзошел нескольких конкурентов и был официально объявлен о новом стандарте шифрования AES в 2001 году. Алгоритм основан на нескольких заменах, перестановках и линейных преобразованиях, каждое из которых выполняется на блоках данных по 16 байт — отсюда и термин «блочное шифрование». Эти операции повторяются несколько раз, называемые «раундами». Во время каждого раунда на основе ключа шифрования вычисляется уникальный ключ раунда, который используется в вычислениях. Основываясь на блочной структуре AES, изменение одного бита, либо в ключе, либо в блоке открытого текста, приводит к совершенно другому блоку зашифрованного текста — явное преимущество перед традиционными потоковыми шифрами.Разница между AES-128, AES-192 и AES-256, наконец, заключается в длине ключа: 128, 192 или 256 бит — все это радикальные улучшения по сравнению с 56-битным ключом DES. В качестве иллюстрации: взлом 128-битного ключа AES с помощью современного суперкомпьютера займет больше времени, чем предполагаемый возраст Вселенной. А Boxcryptor даже использует 256-битные ключи. На сегодняшний день практически не существует атак на AES. Таким образом, AES остается предпочтительным стандартом шифрования для правительств, банков и систем высокой безопасности по всему миру.
RSA Encryption
RSA — одна из самых успешных систем асимметричного шифрования на сегодняшний день. Первоначально обнаруженный в 1973 году британским разведывательным агентством GCHQ, он получил классификацию «совершенно секретно». Мы должны поблагодарить криптологов Ривеста, Шамира и Адлемана за его повторное открытие в 1977 году. Они наткнулись на него во время попытки решить другую криптографическую проблему.
В отличие от традиционных систем симметричного шифрования, RSA работает с двумя разными ключами: открытым и частным.Оба они дополняют друг друга, что означает, что сообщение, зашифрованное одним из них, может быть расшифровано только его копией. Поскольку закрытый ключ не может быть вычислен на основе открытого ключа, последний обычно доступен для общественности.
Эти свойства позволяют использовать асимметричные криптосистемы в широком спектре функций, таких как цифровые подписи. В процессе подписания документа к файлу прикрепляется отпечаток пальца, зашифрованный с помощью RSA, что позволяет получателю проверить как отправителя, так и целостность документа.Безопасность самого RSA в основном основана на математической проблеме целочисленной факторизации. Сообщение, которое будет зашифровано, рассматривается как одно большое число. При шифровании сообщения оно возводится в степень ключа и делится с остатком на фиксированное произведение двух простых чисел. Повторяя процесс с другим ключом, можно снова получить открытый текст. Самый лучший известный в настоящее время метод взлома шифрования требует факторизации продукта, используемого в подразделении.