Асимметричное шифрование. Как это работает?  Симметричное и асимметричное шифрование для новичков

Кафедра информационно-коммуникационных технологий

СОВРЕМЕННЫЕ СИММЕТРИЧНЫЕ И АССИМЕТРИЧНЫЕ КРИПТОСИСТЕМЫ

Методические указания к лабораторной работе по курсу

Москва 2009


ВВЕДЕНИЕ

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

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

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

Цель работы

Описание и программная реализация одного из предложенных алгоритмов.

Теоретические сведения

Методы и средства защиты информации

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

Рис. 1. Классификация методов и средств защиты информации

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

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

Маскировка представляет собой метод защиты данных путем их криптографического закрытия.

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

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

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

Формальные средства защиты

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

К техническим средствам (вам защиты относятся все устройства, которые предназначены для защиты защиты. Физическими называются средства защиты, которые создают физические препятствия на пути к защищаемым данным и не входят в состав аппаратуры ИВС, а аппаратными - средства защиты данных, непосредственно входящие в состав аппаратуры ИВС.

Программными называются средства защиты данных, функционирующие в составе программного обеспечения ИВС.

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

Неформальные средства защиты

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

Под организационными средствами защиты понимаются организационно-технические и организационно-правовые мероприятия, осуществляемые в процессе создания и эксплуатации ИВС для обеспечения безопасности данных.

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


1. ОСНОВНЫЕ ПОНЯТИЯ И ОПРЕДЕЛЕНИЯ

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

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

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

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

· достаточная криптостойкость (надежность закрытия данных);

· простота процедур шифрования и расшифрования;

· незначительная избыточность информации за счет шифрования;

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

В той или иной мере этим требованиям отвечают:

· шифры перестановок:

· шифры замены;

· шифры гаммирования;

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

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

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

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

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

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

Процессы шифрования и расшифрования осуществляются в рамках некоторой криптосистемы.


1.1 Традиционные симметричные криптосистемы. Принципы криптографической защиты информации

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

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

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

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

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

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

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

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

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

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

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

Где где М - открытый текст, К - секретный ключ, передаваемый по закрытому каналу, Е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.

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

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

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0

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

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

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

- обеспечивать производство достаточно длинных неповторяющихся последовательностей;

- обладать достаточной скоростью для работы в реальном времени.

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

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

Операция перестановки состоит в перестановки символов исходного текста по определенному правилу.

Шифры замены и перестановки относятся к самым древним из известных методов шифрования. Подобные методы известны еще с античных времен. С течением времени усложнялись правила перестановки и замены. Теоретическая база для построения стойких шифров была разработана в середине прошлого века известным американским ученым Клодом Элвудом Шенонном (Claude Elwood Shannon ) (1916-2001), знаменитого также своими основополагающими трудами в области теории информации. С появлением его работы “Теория связи в секретных системах” криптография превращается в строгую научную дисциплину. Был предложен математический аппарат для построения стойких шифров, а также сформулированы основные принципы рассеивания и перемешивания .


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

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

С использованием этих принципов во второй половине прошлого века была предложена архитектура для построения симметричных блочных шифров. Архитектура получила название сети Фейсталя (Feistal network), по имени Хорста Фейсталя, сотрудника компании IBM. Эта архитектура на долгое время определила основное направление развития стандартов в области шифрования данных.

В сети Фейсталя происходит преобразование исходного блока данных. На выходе сети получается преобразованный блок данных. Исходный блок разделяется на две части X1 и X2. Выходной блок данных также состоит из двух частей Y1 и Y2. Чаcть Y1 – это непосредственное значение X2. Значение Y2 является результатов сложения части X1 и результата функции шифрования F. Под функцией шифрования в данном понимается функция от двух аргументов: входного блока данных и секретного ключа. Сама функция представляет собой некоторое не специфицированное преобразование над данными. В сети Фейсталя в качестве аргументов функции шифрования F выступают, входной блок данных X2 и секретный ключ шифрования K.

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

Y1 = X2

Y2 = X1  F(X2, K)

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

X1 = Y2  F(Y1, K)

X2 = Y1

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

DES - старый федеральный стандарт шифрования США;

ГОСТ 28147-89 - отечественный стандарт шифрования данных;

AES - новый федеральный стандарт шифрования США.

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

Стандарт шифрования Digital Encryption Standard (DES) более 20 лет служил в качестве федерального стандарта шифрования в США. Алгоритм был Алгоритм, лежащий в основе стандарта, был разработан еще в 1974 году в компании IBM. В 1977 году стандарт был опубликован Национальным бюро стандартов (НБС) США. Затем в 1980 году он был одобрен Национальным институтом стандартов и технологий (НИСТ) США для защиты коммерческой и несекретной информации. С 1986 года становится международным стандартом, принятым ИСО под наименованием DEA-1.

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

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

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

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

Сама по себе функция шифрования является не сложной. В ее основе лежит правило преобразования входного блока данных. Это преобразование состоит из сложения входного блока данных с раундовым ключом и последующим преобразованием полученного результата в так называемом S-блоке. S-блок в DES представляет собой матрицу из 4-х строк и 16-и столбцов. В каждой ячейки матрицы содержится число от 0 до 15. Всего в стандарте опубликовано и используются 8 таких матриц.

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

Дата

Время взлома

Мощность

18.06.1997

96 дней

7 млрд. ключей/сек.

23.02.1998

39 дней

34 млрд. ключей/сек.

17.07.1998

3 дня

88 млрд. ключей/сек.

19.01.1999

22 часа 15 мин.

245 млрд. ключей/сек.

Как видно из приведенной таблицы, во время последнего конкурса взлом DES был осуществлен менее чем за один день. После этого компания RSA Security прекратила проведение конкурсов по взлому DES. Последний взлом был осуществлен совместными усилиями двух некоммерческих организаций: Electronic Frontier Foundation (www.eff.org) и Distributed Computing Technologies, Inc. (www.distributed.net) Подбор возможных вариантов ключа осуществлялся с помощью специального компьютера, названного Deep Cracker, стоимостью $250000. Кроме того в процессе обработки ключей использовались мощности компьютеров объединенных в сети Интернет.

Достигнутые результаты красноречиво свидетельствовали о необходимости принятия нового стандарта в области шифрования данных и смягчение существовавших в то время в США экспортных ограничений на криптографические продукты. Новый стандарт был принят в 2001 году и получил название Advanced Encryption Standard (AES). Этот стандарт и лежащий в его основе алгоритм рассмотрены ниже. С конца 90-х годов прошлого века, в качестве усиления существовавшего стандарта, применяется его модификация, получившая название “Тройной-DES” (Triple-DES).

Алгоритм ГОСТ 28147-89 является блочным симметричным шифром и основан на архитектуре сети Фейсталя. Длина ключа составляет 256 бит. Входной блок данных составляет 64 бита. В алгоритме используется 32 раунда шифрования. На каждом раунде шифрования используется раундевый ключ, значения которых получаются из первоначального секретного ключа шифрования.

Функций шифрования алгоритма ГОСТ 28147-89, использующаяся в каждом раунде шифрования имеет несложную структуру и состоит из простых операций замены и циклического сдвига. Замены осуществляются в S-блоке в специальной матрице. Для алгоритма ГОСТ 28147-89 не специфицирован конкретный вид матрицы замены. Каждый разработчик и производитель может сформировать собственную матрицу или сделать запрос в специальные службы, которые могут помочь в подготовке криптостойкой матрицы. При желании можно менять матрицу замены с течением некоторого времени. В силу того, что матрица не специфицирована ее иногда еще называют сменным ключевым элементом . В матрице восемь строк, шестнадцать столбцов и в каждой ячейке хранится четыре бита информации. Размер матрицы составляет 512 бит. Если добавить к этому размер ключа шифрования, то совокупный размер секретной информации составит 768 бит. Это дает гигантское число 2768 возможных вариантов для перебора всех значений секретной информации. Перебор подобного количества вариантов лежит далеко за пределами даже прогнозируемых мощностей вычислительной техники и совершенно недосягаем в сколько-нибудь обозримом будущем. Однако справедливости ради следует сказать, что по настоящему секретной информацией является все-таки только ключ шифрования размеров 256 бит. Структуру даже неопубликованных матриц теоретически можно определить путем анализа работы программного или аппаратного обеспечения. Также возможны попытки несанкционированного доступа к технической документации по реализации алгоритма ГОСТ 28147-89. Но даже в этом случае для полного перебора всех возможных ключей надо будет выполнить 2256 попыток. Это количество вариантов все равно остается гигантским и обеспечивает абсолютную стойкость алгоритма к атаке методом полного перебора ключей.

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

Для стандарта ГОСТ 28147-89 определены следующие четыре режима работы:

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

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

Гаммирование с обратной связью . Этот режим отличается от предыдущего способом получения гаммы. Очередной элемент гаммы вырабатывается в результате преобразования предыдущего блока зашифрованных данных. Данный режим иногда также называют режимом гаммирования с зацеплением блоков [Дом2000]. Каждый блок криптограммы зависит от всех предыдущих блоков открытого текста. В режимах гаммирования можно обрабатывать входные блоки данных размером меньше 8 байт. Это свойство используется для шифрования массивов данных с произвольным размером.

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

Стандарт шифрования Advanced Encryption Standard (AES) был выбран в результате открытого международного конкурса, проводимого НИСТ США. О начале конкурса было объявлено 2 января 1997 года. В результате первоначального отбора в августе 1998 года были выбраны пятнадцать алгоритмов – кандидатов. Затем еще через год, в августе 1999 года были определены пять алгоритмов - финалистов конкурса. Конкурс завершился в октябре 2000 года. Победителем в нем стал бельгийский алгоритм RIJNDAEL разработанный Винсентом Рюменом (Vincent Rijmen) и Йон Дэмен (Joan Daemen). Этот алгоритм был выбран в качестве стандарта AES. Окончательная версия стандарта была опубликована в ноябре 2001 года. Алгоритм утвержден в качестве нового федерального стандарта шифрования в США под кодом FIPS-197 и предназначен для обработки коммерческой информации и информации, не содержащей государственную тайну. Стандарт вступил в действие с 26 мая 2002 года [Зен2002].

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

В стандарте AES предусмотрено три режима работы в зависимости от длины используемого ключа. Возможные длины ключа составляют 128, 192 и 256 бит. Количество раундов шифрования зависит от используемой длины ключа, это соответственно 10, 12 или 14 раундов. Размер входного исходного блока данных и выходного блока шифротекста одинаковый и всегда составляет 128 бит.

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

К преимуществам стандарта AES относятся:

- высокая эффективность реализации на любых платформах;

- высокая стойкость;

- низкие требования к памяти;

- возможность реализации на smart-картах;

- быстрая процедура формирования ключа;

- возможность параллелизма операций.


Ниже дается сводная таблица с характеристиками рассмотренных стандартов шифрования данных [Вин2001].

DES

ГОСТ 28147-89

AES

Размер блока данных (бит)

Размер ключа
(бит)

128, 192, 256

Архитектура

Сеть Фейсталя

Сеть Фейсталя

“Квадрат”

Число раундов

10, 12, 14

Структура раунда

Простая

Простая

Сложная

Используемые операции

Аддитивные операции, замена, перестановки, сдвиги

Аддитивные операции, замена, сдвиги

Операции в конечных полях

Для того, чтобы перебрать все возможные ключи для алгоритма DES нужно выполнить около 7.2x1016 вариантов. Минимальный размер ключа в алгоритме AES составляет 128 бит. Для перебора всех возможных ключей в этом случае придется проверить уже около 3.4x1038 вариантов. Это примерно в 1021 раз больше чем в случае DES. Для перебора же всех ключей длинной в 256 бит потребуется проверить астрономическое число вариантов – около 1.1x1077 ключей. Стойкости нового стандарта шифрования AES по отношению к атакам методом полного перебора ключей, только сейчас сравнялась с отечественным стандартом ГОСТ 28147-89.

В алгоритме ГОСТ 28147-89 крайне простая выработка раундовых ключей шифрования. Они берутся как составные части начального секретного ключа шифрования. В то же время, в DES и в AES используются значительно более сложные алгоритмы вычисления раундевых ключей.

По сравнению с DES, алгоритм ГОСТ 28147-89 обладает большим быстродействием. Так, например, на процессорах Intel x86 реализация ГОСТ 28147-89 превосходит по быстродействию реализацию DES более чем в два раза. На процессоре Pention Pro-200 MHz предел быстродействия алгоритма ГОСТ 28147-89 составляет 8 Мбайт/сек. Ниже в таблице приведены сравнительные показатели быстродействия стандартов ГОСТ 28147-89 и AES

ГОСТ 28147-89

AES

Pentium 166 MHz

2.04 Мбайт/c

2.46 Мбайт/c

Pentium III 433 MHz

8.30 Мбайт/c

9.36 Мбайт/c

Алгоритм ГОСТ 28147-89 является более удобным для аппаратной и для программной реализации, чем DES, но менее удобным, чем AES. Стандарты ГОСТ 28147-89 и AES имеют сопоставимые значения основных характеристик.

Для блочных симметричных алгоритмов шифрования (АШ) определены несколько основных режимов их использования. Первоначально эти режимы относились к использованию алгоритма DES, но фактически могут быть применимы к любому блочному алгоритму. Например, некоторые из этих режимов являются аналогами режимов работы, определенных для алгоритма ГОСТ 28147-89. Выбранный режим определяет область применения блочного алгоритма шифрования. Каждый режим работы имеет свои преимущества и недостатки.

Режим электронной кодовой книги .

Electronic Code Book (ECB)

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

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

- простота реализации;

- возможность шифрования нескольких сообщений одним ключом без снижения стойкости;

- возможность параллельной.

Недостатки:

- однозначное соответствие между блоками открытого текста и криптограммами;

- возможность повтора блоков и замены блоков в информационном пакете;

- распространение ошибки шифротекста.


Область применения:

- шифрование других ключей и вообще случайной информации;

- шифрование хранилищ данных с произвольным доступом.

Режим сцепления блоков шифротекста .

Cipher Block Chaining (CBC)

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


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

- сложно манипулировать открытым текстом (подмена и замена);

- одним ключом можно шифровать несколько сообщений;

- расшифрование может выполнятся параллельно.

Недостатки:

- шифротекст на один блок длиннее открытого текста;

- ошибка в синхронизации является фатальной;

- распространение ошибки шифротекста;

- шифрование не может выполняться параллельно.

Область применения:

- шифрование файлов и сообщений.


Режим обратной связи по шифротексту.

Cipher Feed Back (CFB)

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


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

- размер блока данных может отличаться от стандартного размера;

- сложно манипулировать открытым текстом;

- возможность шифрования одним ключом нескольких сообщений.

Недостатки:

- обязательная уникальность (но не секретность) вектора инициализации;

- быстрое распространение ошибки шифротекста.

Область применения:

- посимвольное шифрование потока данных (передача данных между сервером и клиентом в процессе аутентификации).


Режим обратной связи по выходу .

Output Feed Back (OFB)

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


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

- ошибки шифротекста не распространяются;

- возможность предварительной подготовки гаммы;

- размер блока данных может отличаться от стандартного размера.

Недостатки:

- ошибка синхронизации является фатальной;

- легко манипулировать открытым текстом;

- обязательная уникальность (но не секретность) вектора инициализации.

Область применения:

- высокоскоростные синхронные системы (спутниковая связь);

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


Дополнительные режимы шифрования

Существует также ряд дополнительных режимов шифрования:

· Режим сцепления блоков с распространением ошибок (PCBC).

· Режим сцепления блоков шифротекста с контрольной суммой (CBCC).

· Режим нелинейной обратной связи по выходу (OFBNLF).

· Сцепление блоков открытого текста (PBC).

· Режим обратной связи по открытому тексту (PFB).

· Сцепления блоков текста по различиям открытого текста (CBCPD).

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

Все многообразие симметричных систем основывается на следующих базовых классах:

Моно- и многоалфавитные подстановки;

Перестановки;

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

Гаммирование.

Подстановки

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

c ≡ (a*e +s) mod K , (5.1)

где a – десятичный коэффициент; s – коэффициент сдвига; e – код буквы исходного текста; c – код зашифрованной буквы; K – длина алфавита; mod – операция вычисления остатка от деления выражения в скобках на модуль К.

Пример. Шифр Цезаря

Рассмотрим шифрование на алфавите, состоящим и 26 латинских букв и знака пробела (пробел будем изображать знаком #). Знаку # присвоим код 0, букве A – код 1, B – код 2,… букве Z – код 26.

Возьмем следующие параметры: a = 1 s = 2 K = 27

Формула для шифрования примет вид

c ≡ (e + 2) mod 27 (5.2)

Входной алфавит:

# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Выходной алфавит

B C D E F G H I J K L M N O P Q R S T U V W X Y Z # A

(Буквы сдвигаются на две позиции: A-C B-D и т.д.)

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

Для расшифровки (для случая, когда a=1) используется следующая формула

e ≡ (K+ c - s) mod K (5.3)

Простая многоалфавитная подстановка последовательно и циклически меняет используемые алфавиты (в предыдущем случае для шифрования использовался один алфавит). При m-алфавитной подстановке знак a 1 из исходного сообщения заменяется знаком из алфавита B 1 , знак a 2 - знаком из алфавита B 2 , … знак a m - знаком из алфавита B m , знак a m +1 - знаком из алфавита B 1 и т.д. Эффект использования многоалфавитной подстановки состоит в том, что обеспечивается маскировка частотной статистики исходного языка, так как конкретный знак из алфавита А преобразуется в несколько различных знаков шифровального алфавита В.

Пример

Исходное сообщение: WE#NEED#SNOW

Ключ: SECURITYSECU

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

Исходный ключ Шифр

(W + S) mod 27 = (23 + 19) mod 27 = 15→O

(E + E) mod 27 = (5 + 5) mod 27 = 10 → J

(# + C) mod 27 = (0 + 3) mod 27 = 3 → C

Задание

Предлагаем в качестве упражнения составить шифровку до конца.

Перестановки

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

Пример 1. Линейная перестановка

Пусть необходимо зашифровать следующий текст:

ГРУЗИТЕ#АПЕЛЬСИНЫ#БОЧКАХ

Разобьем текст на группы длиной, например по 4 символа:

ГРУЗ ИТЕ# АПЕЛ ЬСИН Ы#БО ЧКАХ

Зададим следующее правило перестановки: “переставить группировки из четырех букв, находящихся в порядке 1-2-3-4 в порядок 3-1-4-2”.

Получим следующий зашифрованный текст:

УГРЗ ЕИ#Т ЕАЛП ИЬНС БЫО# АЧХК

Замечание

Если длина сообщения не кратна длине группы, то последнюю группу дополняем символами (например, пробелами) до нужной длины.

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

Пример 2 . Решетка Кардано

Решетка Кардано – это прямоугольная карточка с отверстиями, чаще квадратная, которая при наложении на лист бумаги оставляет открытыми лишь некоторые его части. Число строк и столбцов четно. Карточка сделана так, что при ее последовательном повороте каждая клетка лежащего под ним листа будет занятой. Если решетка квадратная, то можно последовательно поворачивать ее вокруг центра квадрата на 90°.

Шифровка:

ВАВОЧС МУНОТИ МЫЖРОЕ ЬУХСОЙ МДОСТО ЯАСНТВ

Расшифровать сообщение, вращая решетку по часовой стрелке на 90°. Сообщение впишите в квадрат по строкам.

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

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

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

Под N-разрядным блоком будем понимать последовательность из нулей и единиц длины N:

x = (x 0 , x 1 , …x N -1) . (5.5)

x в Z 2, N можно интерпретировать как вектор и как двоичное представление целого числа

(5.6)

Под блочным шифром будем понимать элемент

Где x = (x 0 , x 1 , …x N -1), y = (y 0 , y 1 , …y N -1)

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

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

Потоковые шифры представляют собой разновидность гаммирования и преобразуют открытый текст в шифрованный последовательно по одному биту. Генератор ключевой последовательности, иногда называемой генератором бегущего ключа, выдает последовательность бит k 1 , k 2 , … k N . Эта ключевая последовательность складывается по модулю 2 (“исключающее или”) с последовательностью бит исходного текста e 1 , e 2 , …, e N:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

Недостатки:

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

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

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

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