Криптография. Симметричная криптосистема

Симметричные криптосистемы

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

В настоящее время симметричные шифры - это:

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

2. Поточные шифры - в которых шифрование проводится над каждым битом либо байтом исходного (открытого) текста с использованием гаммирования. Поточный шифр может быть легко создан на основе блочного (например, ГОСТ 28147-89 в режиме гаммирования), запущенного в специальном режиме.

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

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

Рис. 7.

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

2. Отправитель с помощью открытого ключа шифрует сообщение.

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

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

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

Особенности системы

Преимущество асимметричных шифров перед симметричными шифрами состоит в отсутствии необходимости передачи секретного ключа. Сторона, желающая принимать зашифрованные тексты, в соответствии с используемым алгоритмом вырабатывает пару «открытый ключ -- закрытый ключ». Значения ключей связаны между собой, однако вычисление одного значения из другого должно быть невозможным с практической точки зрения. Открытый ключ публикуется в открытых справочниках и используется для шифрования информации контрагентом. Закрытый ключ держится в секрете и используется для расшифровывания сообщения, переданного владельцу пары ключей. Начало асимметричным шифрам было положено в 1976 году в работе Уитфилда Диффи и Мартина Хеллмана «Новые направления в современной криптографии». Они предложили систему обмена общим секретным ключом на основе проблемы дискретного логарифма. Вообще, в основу известных асимметричных криптосистем кладётся одна из сложных математических проблем, которая позволяет строить односторонние функции и функции-ловушки. Например, криптосистема Ривеста-Шамира-Адельмана использует проблему факторизации больших чисел, а криптосистемы Меркля-Хеллмана и Хора-Ривеста опираются на так называемую задачу об укладке рюкзака.

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

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

Принцип: Криптографические системы используют преимущества двух основных криптосистем: симметричной и асимметричной криптографии. На этом принципе построены такие программы, как PGP и GnuPG.

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

Шифрование: Большинство шифровальных систем работают следующим образом. Для симметричного алгоритма (3DES, IDEA, AES или любого другого) генерируется случайный ключ. Такой ключ, как правило, имеет размер от 128 до 512 бит (в зависимости от алгоритма). Затем используется симметричный алгоритм для шифрования сообщения. В случае блочного шифрования необходимо использовать режим шифрования (например, CBC), что позволит шифровать сообщение с длиной, превышающей длину блока. Что касается самого случайного ключа, он должен быть зашифрован с помощью открытого ключа получателя сообщения, и именно на этом этапе применяется криптосистема с открытым ключом (RSA или Алгоритм Диффи -- Хеллмана). Поскольку случайный ключ короткий, его шифрование занимает немного времени. Шифрование набора сообщений с помощью асимметричного алгоритма -- это задача вычислительно более сложная, поэтому здесь предпочтительнее использовать симметричное шифрование. Затем достаточно отправить сообщение, зашифрованное симметричным алгоритмом, а также соответствующий ключ в зашифрованном виде. Получатель сначала расшифровывает ключ с помощью своего секретного ключа, а затем с помощью полученного ключа получает и всё сообщение.

Цифровая подпись обеспечивает:

* Удостоверение источника документа. В зависимости от деталей определения документа могут быть подписаны такие поля, как «автор», «внесённые изменения», «метка времени» и т. д.

* Защиту от изменений документа. При любом случайном или преднамеренном изменении документа (или подписи) изменится шифр, следовательно, подпись станет недействительной.

Возможны следующие угрозы цифровой подписи:

*Злоумышленник может попытаться подделать подпись для выбранного им документа.

*Злоумышленник может попытаться подобрать документ к данной подписи, чтобы подпись к нему подходила.

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

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

*Злоумышленник может обманом заставить владельца подписать какой-либо документ, например используя протокол слепой подписи.

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

Понятие шифрования

Шифрование ¾ это способ преобразования информации, применяемый для хранения важной информации в ненадёжных источниках или передачи её по незащищённым каналам связи. Согласно ГОСТ 28147-89, шифрование - процесс зашифрования или расшифрования.

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

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

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

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

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

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

Симметричные шифры бывают следующих видов:

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

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

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

Примеры симметричных алгоритмов: DES (Data Encryption Standard, стандарт шифрования данных), ГОСТ 28147-89.

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



Достоинства:

· скорость (по данным Applied Cryptography - на 3 порядка выше);

· простота реализации (за счёт более простых операций);

· меньшая требуемая длина ключа для сопоставимой стойкости;

· изученность (за счёт большего возраста).

Недостатки:

· сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 - 499500 и т. д.;

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

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

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

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

Что собой представляет система шифрования данных?

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

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

Зачем это нужно?

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

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

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

Криптография: точка отсчета

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

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

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

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

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

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

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

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

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

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

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

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

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

Шифрование RSA

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

Для шифрования берутся два достаточно больших числа X и Y, после чего вычисляется их произведение Z, называемое модулем. Далее выбирается некое постороннее число A, удовлетворяющее условию: 1< A < (X - 1) * (Y - 1). Оно обязательно должно быть простым, то есть не иметь общих делителей с произведением (X - 1) * (Y - 1), равным Z. Затем происходит вычисление числа B, но только так, что (A * B - 1) делится на (X - 1) * (Y - 1). В данном примере A - открытый показатель, B - секретный показатель, (Z; A) - открытый ключ, (Z; B) - секретный ключ.

Что происходит при пересылке? Отправитель создает зашифрованный текст, обозначенный как F, с начальным сообщением M, после чего следует A и умножение на модуль Z: F = M**A*(mod Z). Получателю остается вычислить несложный пример: M = F**B*(mod Z). Грубо говоря, все эти действия сводятся исключительно к возведению в степень. По тому же принципу работает и вариант с создание цифровой подписи, но уравнения тут несколько сложнее. Чтобы не забивать пользователю голову алгеброй, такой материал приводиться не будет.

Что же касается взлома, то алгоритм шифрования RSA ставит перед злоумышленником практически нерешаемую задачу: вычислить ключ B. Это теоретически можно было бы сделать с применением доступных средств факторинга (разложением на сомножители исходных чисел X и Y), однако на сегодняшний день таких средств нет, поэтому сама задача становится не то что трудной - она вообще невыполнима.

Шифрование DES

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

Суть его симметричного шифрования заключается в том, что для этого применяется некая последовательность из 48 бит. При этом для операций используется 16 циклов из выборки ключей в 48 бит. Но! Все циклы по принципу действия аналогичны, поэтому на данный момент вычислить искомый ключ труда не составляет. К примеру, один из самых мощных компьютеров в США стоимостью более миллиона долларов «ломает» шифрование в течение примерно трех с половиной часов. Для машин рангом ниже на то, чтобы вычислить даже последовательность в максимальном ее проявлении, требуется не более 20 часов.

Шифрование AES

Наконец, перед нами самая распространенная и, как считалось до недавнего времени, неуязвимая система - алгоритм шифрования AES. Он сегодня представлен в трех модификациях - AES128, AES192 и AES256. Первый вариант применяется больше для обеспечения информационной безопасности мобильных устройств, второй задействован на более высоком уровне. Как стандарт, эта система была официально внедрена в 2002 году, причем сразу же ее поддержка была заявлена со стороны корпорации Intel, производящей процессорные чипы.

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

Проблемы с вирусами и дешифровкой

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

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

А если исходить из заявления правительства США о сроке, отводимом для дешифрования ключа длиной 128 бит, то что можно сказать о времени, которое потребуется на поиск решения для случая с ключом и его вариантами длиной 1024 бита? Вот тут-то США и прокололись. Они ведь считали, что их система компьютерной криптографии совершенна. Увы, нашлись какие-то спецы (судя по всему, на постсоветском пространстве), которые превзошли «незыблемые» американские постулаты по всем параметрам.

При всем этом даже ведущие разработчики антивирусного ПО, в том числе «Лаборатория Касперского», специалисты, создавшие «Доктора Веба», корпорация ESET и многие другие мировые лидеры просто разводят руками, дескать, на расшифровку такого алгоритма попросту нет средств, умалчивая при этом о том, что и времени не хватит. Конечно, при обращении в службу поддержки предлагается отправить зашифрованный файл и, если есть, желательно его оригинал - в том виде, в каком он был до начала шифрования. Увы, даже сравнительный анализ пока не дал ощутимых результатов.

Мир, которого мы не знаем

Да что там говорить, если мы гонимся за будущим, не имея возможности расшифровать прошлое. Если посмотреть на мир нашего тысячелетия, можно заметить, что тот же римский император Гай Юлий Цезарь в некоторых своих посланиях использовал симметричные алгоритмы шифрования. Ну а если взглянуть на Леонардо да Винчи, так вообще становится как-то не по себе от одного осознания того, что в области криптографии этот человек, чья жизнь покрыта неким флером тайны, на века превзошел свою современность.

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

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

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

Вместо послесловия

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

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

Симметричные криптосистемы

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

Основные сведения

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

Классическим примером таких алгоритмов являются симметричные криптографические алгоритмы , перечисленные ниже:

  • Простая перестановка
  • Одиночная перестановка по ключу
  • Двойная перестановка
  • Перестановка "Магический квадрат"

Простая перестановка

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

Одиночная перестановка по ключу

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

Двойная перестановка

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

Перестановка «Магический квадрат»

Магическими квадратами называются квадратные таблицы со вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты широко применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее, их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим.

В квадрат размером 4 на 4 вписывались числа от 1 до 16. Его магия состояла в том, что сумма чисел по строкам, столбцам и полным диагоналям равнялась одному и тому же числу - 34. Впервые эти квадраты появились в Китае, где им и была приписана некоторая «магическая сила».

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

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

История

Требования

Полная утрата всех статистических закономерностей исходного сообщения является важным требованием к симметричному шифру. Для этого шифр должен иметь «эффект лавины » - должно происходить сильное изменение шифроблока при 1битном изменении входных данных (в идеале должны меняться значения 1/2 бит шифроблока).

Также важным требованием является отсутствие линейности (то есть условия f(a) xor f(b) == f(a xor b)), в противном случае облегчается применение дифференциального криптоанализа к шифру.

Общая схема

В настоящее время симметричные шифры - это:

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

Большинство симметричных шифров используют сложную комбинацию большого количества подстановок и перестановок. Многие такие шифры исполняются в несколько (иногда до 80) проходов, используя на каждом проходе «ключ прохода». Множество «ключей прохода» для всех проходов называется «расписанием ключей» (key schedule). Как правило, оно создается из ключа выполнением над ним неких операций, в том числе перестановок и подстановок.

Типичным способом построения алгоритмов симметричного шифрования является сеть Фейстеля . Алгоритм строит схему шифрования на основе функции F(D, K), где D - порция данных, размером вдвое меньше блока шифрования, а K - «ключ прохода» для данного прохода. От функции не требуется обратимость - обратная ей функция может быть неизвестна. Достоинства сети Фейстеля - почти полное совпадение дешифровки с шифрованием (единственное отличие - обратный порядок «ключей прохода» в расписании), что сильно облегчает аппаратную реализацию.

Операция перестановки перемешивает биты сообщения по некоему закону. В аппаратных реализациях она тривиально реализуется как перепутывание проводников. Именно операции перестановки дают возможность достижения «эффекта лавины». Операция перестановки линейна - f(a) xor f(b) == f(a xor b)

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

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

Параметры алгоритмов

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

  • длина ключа
  • число раундов
  • длина обрабатываемого блока
  • сложность аппаратной/программной реализации
  • сложность преобразования

Распространенные алгоритмы

  • AES (англ. Advanced Encryption Standard ) - американский стандарт шифрования
  • ГОСТ 28147-89 - отечественный стандарт шифрования данных
  • DES (англ. Data Encryption Standard ) - стандарт шифрования данных в США

Сравнение с асимметричными криптосистемами

Достоинства

  • скорость (по данным Applied Cryptography - на 3 порядка выше)
  • простота реализации (за счёт более простых операций)
  • меньшая требуемая длина ключа для сопоставимой стойкости
  • изученность (за счёт большего возраста)

Недостатки

  • сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 - 499500 и т. д.
  • сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.

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

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

Литература

  • Гатчин Ю.А., Коробейников А.Г. Основы криптографических алгоритмов. Учебное пособие. - СПб.: СПбГИТМО(ТУ), 2002.
  • Кон П. Универсальная алгебра. - М.: Мир. - 1968.
  • Коробейников А. Г. Математические основы криптографии. Учебное пособие. СПб: СПб ГИТМО (ТУ), 2002.

Ссылки

  • справочник, рассматривающий в том числе симметричное шифрование

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

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

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

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

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

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

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

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

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

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

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

Важные моменты о симметричном и асимметричном шифровании

Самое главное отличие симметричного и асимметричного шифрования заключается в их подходе. Поэтому когда вы слышите или читаете статью про их сравнение вида "этот алгоритм лучше" без упоминания конкретики (определенных условий и задач), то можете смело начинать заниматься другими делами, так как это весьма бесполезное занятие аналогичное спору "Что лучше? Танк или пароход?". Без конкретики, ни то и ни другое. Тем не менее, есть важные моменты, о которых стоит знать:

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

2. Асимметричное шифрование позволяет стартовать безопасное соединение без усилий со стороны пользователя. Симметричный же алгоритм предполагает, что пользователю необходимо "еще узнать каким-то образом пароль". Тем не менее, стоит понимать, что асимметричные алгоритмы так же не обеспечивают 100% безопасности. К примеру, они подвержены атакам "человек по середине". Суть последней заключается в том, что между вами и сервером устанавливается компьютер, который для вас отсылает свой открытый ключ, а для передачи данных от вас использует открытый ключ сервера.

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

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

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

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