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

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

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

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

  • Симметричные алгоритмы
  • Ассиметричные алгоритмы
  • Алгоритмы хэш-функций

Симметричные алгоритмы

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

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

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

Где где М - открытый текст, К - секретный ключ, передаваемый по закрытому каналу, Еn(М) - операция зашифрования, а Dk(M) - операция расшифрования

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

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

Симметричные системы имеют как свои преимущества, так и недостатки перед асимметричными.

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

Примеры симметричных шифров

  • ГОСТ 28147-89 - отечественный стандарт шифрования
  • 3DES (Triple-DES, тройной DES)
  • RC6 (Шифр Ривеста)
  • Twofish
  • SEED - корейский стандарт шифрования
  • Camellia – японский стандарт шифрования
  • CAST (по инициалам разработчиков Carlisle Adams и Stafford Tavares)
  • XTEA - наиболее простой в реализации алгоритм
  • AES – американский стандарт шифрования
  • DES – стандарт шифрования данных в США до AES

Асимметричные алгоритмы

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

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

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

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

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

Примеры асимметричных шрифтов

  • RSA (Rivest-Shamir-Adleman, Ривест - Шамир - Адлеман)
  • DSA (Digital Signature Algorithm)
  • Elgamal (Шифросистема Эль-Гамаля)
  • Diffie-Hellman (Обмен ключами Диффи - Хелмана)
  • ECC (Elliptic Curve Cryptography, криптография эллиптической кривой)

Хеш-функции

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

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

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

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

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

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

  • Adler-32
  • SHA-1
  • SHA-2 (SHA-224, SHA-256, SHA-384, SHA-512)
  • HAVAL
  • N-Hash
    • RIPEMD-160
  • RIPEMD-256
  • RIPEMD-320
  • Skein
  • Snefru
  • Tiger (TTH)
  • Whirlpool
  • ГОСТ Р34.11-94 (ГОСТ 34.311-95)
  • IP Internet Checksum (RFC 1071)

Криптографические примитивы

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

Квантовая криптография

Криптография в цифровых технологиях

История

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

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

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

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

С развитием математики стали появляться математические алгоритмы шифрования, но все эти виды криптографической защиты информации сохраняли в разной объемной степени статистические данные и оставались уязвимыми. Уязвимость стала особенно ощутима с изобретением частотного анализа, который был разработан в IX веке нашей эры предположительно арабским энциклопедистом ал-Кинди. И только в XV веке, после изобретения полиалфавитных шрифтов Леоном Баттистой Альберти (предположительно), защита перешла на качественно новый уровень. Однако в середине XVII века Чарлз Бэббидж представил убедительные доказательства частичной уязвимости полиалфавитных шрифтов перед частотным анализом.

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

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

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

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

Литература

  • Баричев С.Г., Гончаров В.В., Серов Р.Е. Основы современной криптографии. - М.: *Варфоломеев А. А., Жуков А. Е., Пудовкина М. А. Поточные криптосистемы. Основные свойства и методы анализа стойкости. М.: ПАИМС, 2000.
  • Ященко В. В. Введение в криптографию. СПб.: Питер, 2001. .
  • ГОСТ 28147-89. Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования. М.: ГК СССР по стандартам, 1989.
  • ГОСТ Р 34.10-94.Информационная технология. Криптографическая защита информации. *ГОСТ Р 34.11-94. Информационная технология. Криптографическая защита информации. Функция хэширования. М., 1995.
  • ГОСТ Р 34.10-2001 Информационная технология. Криптографическая защита информации. Процессы формирования и проверки электронной цифровой подписи. М., 2001.
  • Нечаев В. И. Элементы криптографии (Основы теории защиты информации). М.: Высшая школа, 1999.
  • Жельников В. Криптография от папируса до компьютера. М.: АВР,1996.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Криптографическая защита информации

Александра Прохорова

Фрагмент из книги Александра Прохорова "Интернет: Как это работает", информацию о книге можно найти по адресу .

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

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

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

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

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

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

Шифрование с помощью ключа

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

Предположим, что мы хотим зашифровать открытый текст "Привет Вася" с помощью простейшего алгоритма - замены букв их номерами в алфавите. В результате мы получим зашифрованный текст вида: 17 18 10 3 6 20 3 1 19 33. Очевидно, что если посторонний узнает алгоритм шифрования, то использовать его в дальнейшем невозможно.

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

Выпишем буквы текста и под ними запишем их номера в алфавите. Третей строчкой запишем буквы ключа, повторяя это слово на всю строку. Под буквами ключа запишем их номера в алфавите, а в четвертой строчке запишем сумму, которая и будет зашифрованным сообщением: 20 19 29 36 и т.д.

Зная ключ и алгоритм, легко расшифровать сообщение: 20 - 3 = 17, а семнадцатая буква алфавита это "П" и т.д. Даже если злоумышленнику известен алгоритм, но не известен ключ, сообщение прочитать без длительной процедуры подбора ключа невозможно. Таким образом, один алгоритм можно использовать со многими ключами для разных каналов связи, закрепив за каждым корреспондентом отдельный ключ.

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

Принцип шифрования с секретным ключом

Шифрование с симметричным ключом

Рассмотрим конкретный пример: пусть корреспонденты А и В пишут друг другу письмо (рис. 4). Каждый имеет свой секретный ключ (определенный секретный код), который можно использовать для шифрования данных, перед отправкой в Сеть. Для того, чтобы нагляднее изобразить схему шифрования, будем пользоваться пиктограммами (рис. 2), то есть изображать ключ в виде обычного ключа, а зашифрованное сообщение в виде документа заклеенного в конверт. Тогда процесс шифрования и расшифровки можно представить в виде рис. 3.

Схема шифрования с секретным (симметричным) ключом

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

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

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

Шифрование с публичным ключом

Шифрование с помощью публичного ключа основано на использовании пары ключей: закрытого (частного) и открытого (публичного) ключей.

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

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

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

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

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

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

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

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

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

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

2Обмен информацией осуществляется в три этапа:

1) отправитель передает получателю ключ (в сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);

2) отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;

3) получатель получает сообщение и расшифровывает его.

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

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

Схема обмена информацией следующая:

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

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

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

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

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

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

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

6 В данной же таблице приведены основные Характеристики составных алгоритмов шифрования

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

8 IDEA (International Data Encryption Algorithm) является блочным симметричным алгоритмом шифрования, разработанным Сюдзя Лай (Xuejia Lai) и Джеймсом Массей (James Massey) из швейцарского федерального института технологий.IDEA является одним из нескольких симметричных криптографических алгоритмов, которыми первоначально предполагалось заменить DES. IDEA является блочным алгоритмом, который использует 128-битовый ключ для шифрования данных блоками по 64 бита. Целью разработки IDEA было создание относительно стойкого криптографического алгоритма с достаточно простой реализацией.

9. В нашей стране в качестве стандарта используется технология, описанная в ГОСТе 28147-89 "Системы обработки информации. Защита криптографическая. Алгоритм криптографического преобразования". Этот ГОСТ был принят в 1989 году и с тех пор не изменялся. Алгоритм шифрования был разработан в КГБ в конце 70-х годов, однако, он создавался с достаточно большим "запасом прочности". По этому параметру он на порядок превосходил американский DES, который сначала заменили на тройной, а потом на AES. Таким образом, и на сегодняшний день криптостойкость российского стандарта вполне удовлетворяет всем современным требованиям.

10 Перейдем к понятию Криптографическая стойкость (или криптостойкость) - способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, который для успешной атаки требует от противника недостижимых вычислительных ресурсов, недостижимого объёма перехваченных открытых и зашифрованных сообщений или же такого времени раскрытия, что по его истечении защищенная информация будет уже не актуальна, и т. д. В большинстве случаев криптостойкость нельзя математически доказать, можно только доказать уязвимости криптографического алгоритма. Существуют достаточно и абсолютно стойкие криптосистемы. Шифр Вернама (англ. Verrnam Cipher, другое название One-time pad - схема одноразовых блокнотов) - система симметричного шифрования, впервые предложенная в 1882 году Ф. Миллеро и заново изобретённая в 1917 году сотрудником AT&T Гилбертом Вернамом

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

Энциклопедичный YouTube

    1 / 3

    Информатика. Защита информации: Симметричное шифрование. Центр онлайн-обучения «Фоксфорд»

    PGP.01 Понимание асимметричного шифрования

    Шифр Цезаря. Симметричное шифрование

    Субтитры

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

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

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

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

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

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

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

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

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

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

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

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

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

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1

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

16. 3 и 2 р 13 д
5 з 10 е 11 г 8 ю
9 С 6 ж 7 а 12 о
4 е 15 я 14 н 1 П

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

При расшифровывании текст вписывается в квадрат, и открытый текст читается в последовательности чисел «магического квадрата». Программа должна генерировать «магические квадраты» и по ключу выбирать необходимый. Размер квадрата больше чем 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 ) - американский стандарт шифрования



Top