Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
4.2.1. Симметричные криптосистемы (единого ключа)В классической криптографии имеется два основных преобразования открытого текста сообщений вместе с их комбинациями: 1. Транспозиции, или перестановки, переупорядочивают группу символов в соответствии с некоторым правилом, не меняя их, т.е. если сообщение М составлено из m блоков, 2. Подстановки замещают символы открытого текста соответствующими символами из алфавита шифрованного текста (ключ задает отображение), т.е. если сообщение — это 3. Разумеется, комбинируя (1) и (2), мы получаем шифр подстановки/перестановки Пример (транспозиция). Предположим, что мы хотим зашифровать сообщение «computer algebra». Первый пример транспозиции - — записать текст задом наперед, традиционным способом группируя его по пять символов. Так, мы имеем
Другой пример транспозиционного шифра — шифр изгороди, где мы расписываем текст побуквенно в две строки, а затем читаем его построчно, т.е. мы получаем
и шифрованный текст имеет вид «cmuea gbaop trier». Способы взлома транспозиционных шифров можно найти в книгах (Kahn, 1967, pp. 225-226) и (Sinkov, 1968, ch. 5). Если используется только один алфавит для шифрованных сообщений, то криптосистема называется одноалфавитной. Криптосистемы, в которых буква шифрованного текста может представлять более одной буквы открытого текста, называется многоалфавитными. Мы различаем также потоковые и блочные шифры. Потоковые шифры рассматривают открытый текст как последовательность символов, подлежащих шифровке, в то время как блочные шифры делят сообщения на блоки равной длины и производят шифрование, действуя на блоках символов открытого текста. В потоковом шифре основная допустимая операция на сообщении — подстановка одного символа вместо другого, в то время как в блочном шифре помимо подстановки мы имеем перестановку. Хотя потоковые шифры сохраняют свое значение для многих приложений, блочные шифры последнее время оказывают наибольшее воздействие на криптографию. Рассмотрим сначала потоковые шифры. Определение Фиксированный ключ элементов кольца Определение 4.2.2. Отображение а При Пример. Отождествим
Используя шифр Цезаря, Одноалфавитные подстановки используют только один ключ, и их можно легко взломать, наблюдал частоту распределения символов в шифрованном тексте. Это — легкая задача, потому что имеются таблицы различных частот букв, например частоты первых букв в слове, частоты последних букв в слове, частоты диграфов (т.е. частоты сочетания: буква а, за которой следует b) и т.д. Таблица, приведенная на рис. 4.2.2, была получена Синковым из выборки из 1000 букв [см. приложения в книге (Sinkov, 1968)]. Одноалфавитный шифр может быть усилен, если мы используем многоалфавитный шифр подстановки, скрывающий частоты букв за счет кратных подстановок. Здесь при шифровании сообщения используется более одного алфавита, и ключ включает указание, какал подстановка должна использоваться для каждого
Рис. 4.2.2. Относительные частоты букв в английском языке. символа. Эти шифры известны также как шифры Виженера, по фамилии французского криптографа шестнадцатого столетия Блеза де Виженера. Более точно, многоалфавитный шифр подстановки с периодом
Процедура шифрования может быть упрощена, если мы примем во внимание, что можно использовать не все строки (алфавиты) квадрата Виженера. Например, предположим, что ключ — «alkis», в этом случае период простой таблицей, где ключ появляется в левом столбце.
В этом случае сообщение «computer algebra» шифруется как «czwxm tpbid gplzs», где i-я буква открытого текста отображается в символ, находящийся в соответствующем столбце в i-м mod 5 алфавите шифра; например, буква Из последнего примера видно, что ключ «alkis» соответствует последовательности чисел 0, 11, 10, 8, 18, и, следовательно, шифрование может быть осуществлено последовательной записью под открытым текстом чисел Процедура дешифровки выглядит следующим образом: число, соответствующее i-й букве открытого текста, получается прибавлением по модулю 26 числа, соответствующего i-й букве шифрованного текста, к Шифры Виженера считались в те дни невзламываемыми, но в 1863 г. прусский офицер по фамилии Ф.В. Касисский соответствующих повторениям в ключевой последовательности. Если нам удастся определить длину периода ключа, мы смажем определить буквы с помощью частотного анализа. Период ключа может быть обнаружен поиском повторяющихся блоков в шифрованном тексте. Часть из них носит случайный характер, но основная масса получается из соответствия между повторяемыми словами или подсловами в открытом тексте и повторами в последовательности ключа. Когда это имеет место, расстояние между повторами будет кратным периоду ключа. Например, открытый текст «send more men and more arms» при использовании шифровального ключа «bhenf» даст шифрованный текст «tlrqr pyizj ohrqr pyinw nz» (если мы оставим последний блок неполным). В этом случае расстояние между двумя вхождениями равно 10, что означает, что длина ключа равна 10 или 5. Другим вариантом многоалфавитных подстановочных шифров являются шифры с автоматическим выбором ключа, когда само сообщение (открытый текст или шифрованный текст) используется в качестве ключа. Для запуска шифра используется короткий «затравочный» ключ, обычно одна буква. Эти варианты были предложены в 1550 г. Кардано и развиты Виженером. Если мы работаем в Пример. Если мы перенумеруем буквы от а до z, как в предыдущем примере (т.е. 1. Используя преобразование а 2. Используя преобразование Другой вариант — шифр бегущего ключа Виженера, использующий в качестве ключа неповторяющийся текст. Первоначально эти шифры также считались невзламываемыми, но в 1883 г. Керчофс нашел общее решение для многоалфавитных подстановок без ограничений на тип или длину ключа [детали можно найти в книге (Kahn, 1967, pp. 236-237)]; более общее решение проблемы было дано Фридманом в 1918 г. Интересное изложение его идей мажет быть найдено в статье Гасса (Gass, 1986). Наиболее значительный вариант шифра Виженера был предложен в 1918 г. американским инженером Вернамом (G.S. Vernam), работавшим в системе телетайпной сети AT&T (American Telephone к. Telegraph). Сообщения передавались тогда с использованием двоичного кода, и Вернам предложил прибавлять по модулю 2 случайные последовательности точек и пробелов так, чтобы вся частотная информация, корреляция между символами, периодичность и тому подобное терялись. Главный недостаток этой процедуры состоит в том, что она требует обмена огромным количеством ключей заблаговременно (т.е. один символ ключа на каждый символ сообщения). Вернам первоначально предполагал использовать или короткий ключ, или линейную комбинацию коротких ключей, но оба подхода оказались уязвимыми. С одной стороны, использование короткого ключа уязвимо по результатам типа Касисского, с другой стороны, как было доказано майором американских войск связи Мауборном, использование линейных комбинаций коротких ключей может быть успешно проанализировано по существу той же техникой, которая используется против систем бегущего ключа. И Фридман, и Мауборн пришли к выводу, что для безоговорочно надежной криптосистемы ключ должен быть таким же длинным, как сообщение, и непоследовательным (т.е. нерегулярность каждого символа ключа должна быть по крайней мере так же велика, как среднее информационное содержание на символ открытого текста). Если мы предположим, что М — верхняя граница длин всех возможных сообщений, то мы выбираем ключевую последовательность по крайней мере такой же длины, как М; все ключевые последовательности тогда равновероятны. Если работа ведется по модулю 26, открытый текст имеет вид случайных чисел («листы блокнота») для получения ключевых последовательностей, и каждая ключевая последовательность используется только один раз. Как уже упоминалось, главный недостаток этой схемы состоит в том, что она требует обмена огромным количеством ключей до начала связи. Однако шифр одноразового блокнота, очевидно, невзламываем. Случайность ключа означает, что любые две последовательности сообщений одинаковой длины с равной вероятностью могут превратиться в данный шифрованный текст. В результате одноразовые блокноты используются для передачи в высшей степени доверительной информации, например, в прямой связи между Вашингтоном и Москвой. В итоге мы видим, что сохранность возрастает при движении от шифра Пезаря к шифру одноразового блокнота и одновременно До сих пор мы имели дело главным образом с потоковыми шифрами, где каждый символ сообщения обрабатывался индивидуально. Рассмотрим теперь полиграфовые системы. Это — блочные шифры, рассматривающие одновременно группы символов открытого текста. Блочные шифры разрабатывались с целью помешать простому криптоанализу с помощью статистики частот вхождений; обычно они действуют на парах, диграфах, тройках, триграфах, и в общем случае на полиграфах. Системы, обрабатываемые вручную, ограничивались диграфами. Лучшая из известных систем ручного диграфового шифрования принадлежит английскому ученому Плейферу. По этой схеме перемешанная алфавитная последовательность записывается в квадрате 5x5. (Буква «j» опускается, поскольку она встречается довольно редко и может быть потом восстановлена в контексте.) Так, например, мы может взять
и сообщение «computer algebra» шифруется как «ghwvc qzglk osrda», при этом пара «со» отображается в пару «gh», где g находится в той же строке, что и с (обратите внимание на параллелограмм, задаваемый буквами Краеугольный камень современной математической криптографии был заложен Хиллом (Hill, 1929, 1931). Хилл выяснил, что почти все существующие криптосистемы могут быть сформулированы в единой модели линейных преобразований пространства сообщений. Он отождествил Определение 4.2.4. Пусть К есть Для шифровки мы подразделяем открытый текст на блоки по Пример. Рассмотрим сообщение «computer algebra», где буквам инволюции
вектор d полагается нулевым. Шифрованный текст принимает вид «ymzcr yxuze oirza», причем последний символ открытого текста остается без изменения. Пара «со», эквивалентная вектору (2,14), отображается на вектор Заменяя постоянную матрицу К матрицей с переменными элементами, мы получаем разновидность предложенной выше схемы. Детали этого подхода могут быть найдены в книге Лидла и Пилца (Lidl, Pilz, 1984), другие интересные схемы описаны также Криш-намурти и Рамахандраном (Krishnamurthy, Ramachandran, 1980). Прежде чем приступить к обсуждению современных криптосистем, нам понадобятся некоторые понятия, связанные с надежностью таких систем. В оценках надежности любой системы необходимо предполагать худший случай, т.е. противник может иметь доступ к другой информации, кроме шифра. Соответственно мы рассматриваем такие случаи: Анализ только шифрованного текста. При такой атаке на систему противник имеет доступ только к перехваченному шифрованному тексту. Анализ известного открытого текста. Теперь противниклмеет несколько пар открытый текст-шифрованный текст, с которыми он может работать. Анализ выбранного открытого текста. Противник может передавать системе неограниченные порции открытого текста и мажет наблюдать соответствующий шифрованный текст (это самая серьезная атака на системы). Из предыдущего обсуждения видно, что только система одноразового блокнота безоговорочно надежна; это означает, что независимо от того, какие вычислительные мощности использует противник, он не может взломать систему. Однако чтобы избежать недостатков одноразового блокнота, достигается компромисс, а именно на практике рассматривается не безоговорочно надежная система в предположении, что перехватчик может успешно анализировать шифрованный текст с использованием невероятно мощного компьютера. Основная идея здесь — ограничить мощность противника осуществимыми вычислениями. Для понимания смысла этого утверждения нам понадобятся некоторые основные факты теории сложности вычислений (Lewis, Papadimitriou, 1978). Математические проблемы могут быть первично разделены на две основные категории: разрешимые и неразрешимые проблемы. Пример неразрешимой проблемы — проблема «останова» машины Тьюринга, которая эквивалентна следующей: «Пирюльник бреет всех тех, кто не бреется сам; бреет ли он себя?». (Ответ: Если бреет, то не бреет, а если не бреет, то бреет, т.е. у задачи нет ответа.) Разрешимые проблемы могут быть далее подразделены на следующие общие категории: Доказуемо трудные проблемы, имеющие лищь экспоненциальное, т.е. вида P-проблемы, которые имеют полиномиальное, т.е. вида NP-проблемы (недетерминистические полиномиальные), для которых известны только экспоненциальные алгоритмы, но не доказано, что алгоритмов с полиномиальным временем не существует. Очевидно, что множество NP-полные проблемы, которые образуют маленькое подмножество Воспользуемся теперь упомянутыми выше идеями современной криптографии (Feistel, 1973; Lempel, 1979). Нас интересуют блочные шифры, действующие на группах битов. Чтобы продемонстрировать, как такие операции выполняются электронным устройством, рассмотрим случай, когда мы имеем только три бита (с помощью трех битов мы может представлять всего восемь объектов). Устройство называется ящиком подстановки или
Рис. 4.2.3. Ящик подстановки ( На рис. 4.2.3 мы видим, что устройство подстановки состоит из двух переключателей. Первый преобразует последовательность трех битов в соответствующее ей значение по основанию восемь, подавая, таким образом, энергию на любую из восьми выходных линий. Эти восемь линий могут быть соединены с вторым переключателем любым из Предположим теперь, что мы увеличили число входных битов для конфигураций соединения, имеется только 32 возможных входа и выхода. Таким образом, нам необходимо большое количество входов и выходов, настолько большое, что для любого противника практически невозможно разобрать все конфигурации. Например, если мы имеем ящик с 128 входами и выходами, анализатор должен иметь дело с 2128 возможными блоками ввода/вывода, т.е. с настолько большим их числом, что частотный анализ больше уже не осуществим. Конечно, недостаток этой схемы в том, что она требует 2128 соединений между переключателями (в Р-ящике), что технологически невозможно (в настоящее время). Так что должен быть достигнут компромисс. Ясно, что одно устройство с многими входами и выходами само является P-ящиком; на рис. 4.2.3 он имеет восемь входов и выходов. Несмотря на то что имеется 40320 возможных соединений, истинное найти очень легко, просто подавая на вход устройства только один бит, равный 1, а остальные равные 0 и наблюдая, где 1 появляется на выходе. В нашем примере мы можем определить соединения после семи проб. Отметим, что S-ящик — это нелинейное устройство, а Р-ящик — линейное. Чтобы улучшить эту схему, мы должны ввести так называемые системы шифров-произведений, комбинирующие Р- и S-ящики. Впервые системы шифров-произведений были предложены Шенноном (Shannon, 1948, 1949), они состоят из слоев Р- и S-ящиков. Предположим, что P-ящики имеют по 15 входов и выходов и что S-ящики имеют их только по 3; тогда за каждым P-ящиком следует пять S-ящиков, и операция в системе шифров-произведений выполняется при условии, что вход состоит из 14 нулей и одной 1, следующим образом: первый ящик, Р, передает единственную 1 некоторому ящику S, который, являясь нелинейным устройством, может из одной 1 получить до трех 1. Эти единицы подаются затем на следующий P-ящик, который перетасовывает их и подает на следующие S-ящики, и процесс повторяется. В конце выход содержит сбалансированное число нулей и единиц. Эти идеи проиллюстрированы на рис. 4.2.4. Рис. 4.2.4 иллюстрирует принцип, на котором основана IBM-система LUCIFER. P-ящики в системе LUCIFER имеют или 64, или 128 входов и выходов, а S-ящики — только 4. Конечно, цель разработчика состоит в том, чтобы сделать для противника как можно более сложной задачу проследить обратный путь и таким образом восстановить ключи перестановок на S и Р. Система
Рис. 4.2.4. Система шифров-произведений, где P-ящики имеют 15 входов и выходов, а S-ящики имеют их только по 3. LUCIFER является блочным шифром высокой пробы, однако, в настоящее время она не считается надежной системой. В 1977 г. Национальное бюро стандартов выпустило Стандарт шифрования данных (DES) с намерением создать криптографический стандарт, используемый для надежной передачи всяких данных, кроме данных, связанных с национальной безопасностью. DES-алгоритм— это блочный шифр, разработанный фирмой IBM, на основе S/P-схемы типа описанной выше системы LUCIFER. DES шифрует 64-битовые блоки открытого текста, используя 64-битовые ключи (56 битов ключа и 8 проверочных битов). Шифрование осуществляется за 16 отдельных этапов, причем на каждом этапе используется шифр-произведение под управлением 48-битового ключа. То есть на всех этапах используются различные 48-битовые ключи Хотя с точки зрения теории сложности DES выглядит надежным, размер ключа этого стандарта подвергается критике [см. (Diffie, Heilman, 1977)]. Проблема состоит в том, что 56-битовый ключ взламывается путем «анализа известного открытого текста» противником с использованием больших, но реальных, вычислительных ресурсов. Это делается методом грубой силы. Предположим, например, что известное сообщение М зашифровано при помощи DES с ключом К и что криптоаналитик декодирует С с каждым из 256 возможных ключей. Определив М, криптоаналитик прекращает работу и объявляет К. Хотя этот исчерпывающий поиск выглядит невозможным, решительный противник может построить компьютер специального назначения, который выполняет параллельно миллион проверок за сравнительно короткое время (< 10 часов). Однако, вероятно, увеличение размера ключа с 56 до 128 исключит исчерпывающий поиск из употребления. Неудовлетворение стандартом DES дало импульс дальнейшим исследованиям (Diffie, Heilman, 1976) и привело к открытию асимметричных систем кодирования, также известных как криптосистемы открытого ключа. Отметим, что до сих пор все рассматриваемые системы были симметричными в том смысле, что как отправитель, так и получатель обладали одним и тем же ключом, который должен быть надежным.
|
1 |
Оглавление
|