Анализ стойкости криптосистем




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

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

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

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

² количество всех возможных ключей;

² среднее время, необходимое для кpиптоанализа.

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

Для этого рекомендуется использовать один из двух простейших мето­дов вскрытия шифра

1. Статистическую атаку.

2. Силовую атаку.

Рассмотрим в чем они состоят.

Криптоаналитическая статистическая атака

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

² определяется число появлений каждой буквы в шифртексте.

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

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

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

Силовая атака

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

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

² Дешифрование известного шифртекста на этом ключе;

² Анализ «осмысленности» полученного предполагаемого открытого текста, например путем поиска соответствующих слов в словаре возможных сообщений;

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

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

Задания

3.1. Лабораторная работа №1

Тема: симметричные криптосистемы.

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

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

2. Определить алфавит криптосистемы (открытого текста и шифртекста). Если алфавит не задан в варианте, выбрать его самостоятельно, так, чтобы он включал в себя символы используемого в примере открытого текста. Например, русский, английский, ASCII. Поставить символам исходного алфавита в соответствие символы из алфавита Z n (n – основание алфавита).

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

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

5. Написать програму для реализации алгоритма дешифрования полученного файла шифртекста при известном ключе.

6. Провести тестирование программ

- на коротких тестовых примерах.

- на текстах в несколько страниц

 

3.2. Лабораторная работа №2

Тема: криптоанализ симметричных криптосистем.

Провести эксперимент по определению практической стойкости, алгоритма, разработанного в лабораторной работе №1.

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

² анализа статистических свойств шифртекста (частот появления букв).

² силовую атаку (полный перебор ключей).

² другие (если есть более эффективные)

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

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

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

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

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

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


3.3. Лабораторная работа №3

Тема: Криптографические протоколы на основе асимметричных криптосис­тем..

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

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

Для проверки чисел на простоту использовать комбинированный алгоритм на основе тестов Леманна или Рабина-Миллера

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

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

Продемонстрировать выполнение протокола для нормальных значений параметров криптосистемы.


 

Варианты

К лабораторным работам № 1-2

Основные варианты:

Вариант 1. Шифрующие таблицы с числовым ключом

Вариант 2. Шифр Гронсфельда с ключевым словом

Вариант 3. Алгоритм, реализующий идею «диска Альберти» для русского алфавита

Вариант 4. Шифр Цезаря с ключевым словом

Вариант 5. Шифрующие таблицы с перестановкой по ключу –размеру таблицы.

Вариант 6. Полибианский квадрат для русского алфавита.

Вариант 7. Шифр Гронсфельда с числовым ключом

Вариант 8. Шифр Кардано без поворотов.

Вариант 9. Шифр Плейфера

Вариант 10. Шифрующие таблицы с ключевым словом

Вариант 11. Шифр Цезаря многоалфавитный

Вариант 12. Шифр гаммирования с линейным конгруэнтным генератором ключей

Вариант 13. Аффинная система подстановок Цезаря

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

Вариант 15. Шифр Хилла для 3-грамм

Вариант 16. Шифрующие таблицы Трисемуса

Вариант 17. Шифр Вернама.

Вариант 18. Алгоритм, реализующий идею «диска Альберти» для английского алфавита

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

Вариант 20. Шифр гаммирования с генератором ключей на основе датчика случайных чисел

Вариант 21. Полибианский квадрат для английского алфавита.

Вариант 22. Шифрующие таблицы с двойной перестановкой по ключевому слову.

Вариант 23. Шифр Уинстона

Вариант 24. Шифрующие таблицы с двойной перестановкой по числовому ключу.

Дополнительные варианты ( повышенной сложности ):

Вариант 25. Магические квадраты

Вариант 26. Шифр Кардано с поворотами.

 

К лабораторной работе № 3

1. Протокол обмена секретным документом комби­нирован­ным методом шифрования на основе криптосис­темы RSA.

2. Протокол двустороннего подписания контракта на основе алгоритма цифровой подписи ГОСТ Р 34.10-94.

3. Протокол обмена несекретным документом с цифровой подписью на основе алгоритма RSA.

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

5. Протокол идентификации абонента с помощью алгоритма цифровой подписи DSA.

6. Протокол обмена несекретным документом с невидимой цифровой подписью на основе алгоритма RSA.

7. Протокол византийского соглашения для трех участников на основе схемы Шамира проверяемого разделения секрета.

8. Протокол генерации сеансового секретного ключа на основе криптосистемы RSA.

9. Протокол обмена несекретным документом с цифровой подписью на основе алгоритма Эль Гамаля.

10. Протокол обмена несекретным документом со слепой цифровой подписью на основе алгоритма RSA.

11. Протокол аутентификации Шнорра.

12. Протокол идентификации абонента с помощью алгоритма цифровой подписи RSA.

13. Протокол двустороннего подписания контракта на основе алгоритма цифровой подписи Эль Гамаля.

14. Протокол вычисления ключа доступа при разделении секре­та между тремя участниками по схеме Шамира проверяемо­го разделения се­крета.

15. Протокол обмена несекретным документом с цифровой подписью DSA.

16. Протокол двустороннего подписания контракта на основе алгоритма цифровой подписи RSA.

17. Протокол обмена несекретным документом с цифровой подписью на основе алгоритма ГОСТ Р 34.10-94.

18. Протокол обмена секретным документом с цифровой подписью на основе алгоритма RSA.

19. Протокол идентификации абонента с помощью алгоритма цифровой подписи ГОСТ Р 34.10-94.

20. Протокол «подбрасывания монеты по телефону».

21. Протокол экпоненциального ключевого обмена по методу Диффи-Хеллмана.

22. Протокол вычисления дискретного логарифма со скрытием информации от оракула.

23. Протокол обмена секретным документом комби­нирован­ным методом шифрования на основе экпонен­циального ключевого обмена по методу Диффи-Хеллмана.

24. Протокол двустороннего подписания контракта на основе алгоритма цифровой подписи DSA.

25. Протокол идентификации абонента с помощью алгоритма цифровой подписи Эль Гамаля.

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

 

Приложение.

Приложение 1: Таблица вероятностей букв в русских текстах.

буква пробел о еилиё а и н т с р в л
вер-ть 0,175 0,090 0,072 0,062 0,062 0,053 0,053 0,045 0,040 0,038 0,035
буква к м д п     у я з ы б
вер-ть 0,028 0,026 0,025 0,023 0,021 0,018 0,016 0,016 0,014 0,014 0,013
буква ъили ь г х ж ш ю ц щ э ф  
вер-ть 0,012 0,010 0,009 0,007 0,006 0,006 0,004 0,003 0,003 0,002  

Приложение 2. Таблица вероятностей букв в английских текстах.

буква пр-л е t а о n i s r
вер-ть 0,185 0,097 0,076 0,064 0,062 0,057 0,056 0,052 0,047
буква h l d с u p f м w
вер-ть 0,04 0,031 0,028 0,025 0,018 0,018 0,018 0,017 0,016
буква y в g v к q x j z
вер-ть 0,015 0,013 0,013 0,007 0,039 0,002 0,002 0,001 0,001

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: