Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 26 - КРИПТОГРАФИЧЕСКИЕ И СТЕГАНОГРАФИЧЕС....doc
Скачиваний:
66
Добавлен:
23.12.2018
Размер:
802.82 Кб
Скачать

Стойкость шифра определяется только стойкостью ключа!

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

Со стороны противника можно ожидать таких угроз:

  • разглашение информации, если она будет вскрыта;

  • подмены информации;

  • имитации сообщений;

  • модификации сообщений;

  • уничтожение сообщений и др.

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

По условиям проведения атаки противника делятся на следующие виды:

  1. Атаку, исходящую только из шифртекста. Противник знает лишь шифртекст С=ЕK(М). В худшем случае (лучшем для противника), кроме ЕK(М) известно еще определенное количество шифртекстов ЕK(М1), ..., ЕK(МL), зашифрованных с использованием одного и того же ключа К.

  2. Атаку с известным открытым текстом. Кроме ЕK(М), противник знает как дополнительные шифртексты ЕK(М1), ..., ЕK(МL), так и соответствующие им открытые тексты М1, ..., МL.

  3. Атаку с выбранным открытым текстом. Противник имеет доступ к «шифровальному оборудованию» и способен получить шифртексты ЕK(М1), ..., ЕK(МL) для выбранных по собственному желанию открытых текстов М1, ..., МL.

  4. Атаку с выбранным шифртекстом. Противник имеет доступ к «дешифровальному оборудованию» и способен получить открытые тексты DK(М1), ..., DK(МL) для выбранных по собственному желанию шифртекстов С1, ..., СL.

В любой из этих атак предполагается, что ключ криптоаналитику противника неизвестен.

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

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

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

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

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

  • выполнение процедур прямого и обратного преобразований должно быть формальным; эти процедуры не должны зависеть от длины сообщений;

  • ошибки, возникающие в процессе выполнения преобразования, не должны распространяться по системе;

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

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

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

По принципам построения (использования ключей) криптосистемы подразделяются на:

  • криптосистемы с секретным ключом (классические криптосистемы);

  • криптосистемы с открытым ключом;

  • комбинированные криптосистемы.

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

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

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

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

Криптосистемы с секретным ключом могут быть построены одним из следующих способов:

  • потоковая схема – для шифрпреобразования используется гамма, не зависящая от шифруемой информации;

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

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

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

Гаммирование – это наложение на открытые данные гаммы шифра (случайной или псевдослучайной последовательности единиц и нулей) по определенному правилу. Обычно используется операция «исключающее ИЛИ» (называемое также сложением по модулю 2 и реализуемое командой XOR). Для расшифровывания та же гамма накладывается на зашифрованные данные.

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

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

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

При использовании генератора ПСЧ возможны несколько вариантов:

  • побитовое шифрование потока данных – цифровой ключ используется в качестве начального значения генератора ПСЧ, а выходной поток битов суммируется по модулю 2 с исходной информацией. В таких системах отсутствует свойство распространения ошибок;

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

  • побитовое шифрование потока данных с ОС по исходному тексту – базой генератора ПСЧ является исходная информация. Характерно свойство неограниченного распространения ошибки;

  • побитовое шифрование потока данных с ОС по шифртексту и по исходному тексту.

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

  • шифры перестановки (P-блоки);

  • шифры замены (подстановки, S-блоки);

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

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

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

  • моноалфавитные (например, шифр Цезаря);

  • полиалфавитные (например, шифр Виженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma).

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

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

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

Блочное шифрование можно осуществлять двояко:

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

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

Генератор ПСЧ может применяться и при блочном шифровании:

  • поблочное шифрование потока данных – шифрование последовательных блоков (подстановки и перестановки) зависит от генератора ПСЧ, управляемого ключом;

  • поблочное шифрование потока данных с обратной связью – генератор ПСЧ управляется шифрованным или исходным текстом или обоими вместе.

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

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

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

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

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

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

  • RSA – разработан в 1977 г. в Массачусетском технологическом институте (США). Получил название по первым буквам фамилий авторов Райвест-Шамир-Адлeман (Rivest, Shamir, Adleman). Криптостойкость основана на вычислительной сложности задачи разложения большого числа на простые множители;

  • ElGamal – разработан в 1985 г. и назван по фамилии автора - Эль-Гамаль. Используется в стандарте США на цифровую подпись DSS (Digital Signature Standard). Криптостойкость основана на вычислительной сложности задачи логарифмирования целых чисел в конечных полях;

  • DH – разработан в 1976 г. американскими математиками Диффи и Хеллманом (Diffie, Hellman). Криптостойкость основана на вычислительной сложности задачи логарифмирования целых чисел в конечных полях;

  • система Рабина;

  • вероятностные криптосистемы и др.

Р ис. 1.2 иллюстрирует основные виды криптосистем. Более подробно особенности их построения рассматриваются ниже.