Министерство образования и науки Российской Федерации Лаборатория педагогического творчества Иркутского государственного университета Муниципальное общеобразовательное учреждение Лицей ИГУ г. Иркутска ХVIII общелицейская научно-практическая конференция «Криптография. Свойства и примеры шифров замены» Автор работы: Золотуева Анастасия Витальевна МБОУ г. Иркутска лицей ИГУ, г. Иркутск 10 класс Научный руководитель: Малакичев Артем Олегович, учитель математики МБОУ г. Иркутска лицея ИГУ 2013/2014 учебный год Содержание Введение …………………………………………………….................................... 2 Глава 1 Шифры простой замены…………………........................................... 4 1.1 Шифры простой замены…………………………………………… 5 1.2 Многоалфавитные и омофонные шифры…………………………. 9 1.3 Повышение криптостойкости шифров замены…………………………………………………………………… 11 1.4 Композиционные шифры…………………....................................... 11 Глава 2 Шифры перестановки………………………………………………… 11 2.1 Частотный анализ…………………................................................... 12 2.2 Шифры перестановки и их стойкость…………………................... 13 Глава 3 2.3 Примеры шифров перестановки…………………………………... 13 Комбинаторные задачи и их связь с криптографией. Будущее 15 криптографии………………………………………………………….. 3.1 Перестановки………………………………………………………... 15 3.2 Размещения………………………………………………………….. 16 3.3 Сочетания…………………………………………………………… 16 3.4 Примеры размещений, сочетаний и перестановок……………………………………………………………. 17 3.5 Квантовая вычислительная техника. Прошлое, настоящее и 18 будущее………………………………………………………………….. Заключение …………………………………………………………………………… 22 …………………………………………………………………………… 23 Список литературы 1 Приложение 1 Примеры шифровальных машин…………………………………… 24 Приложение 2 Собственный шифр………………….................................................... 25 Приложение 3 Таблица Виженера……………………………………………………. 26 Приложение 4 Листинг программы Myshifr………………….................................... 27 2 Введение Мы живем в век развивающихся информационных технологий, в связи с этим вопрос защиты информации при её хранении, обработке, передаче очень актуален. Криптография предоставляет незаменимый набор средств для обеспечения безопасности. История криптографии насчитывает около 4 тысяч лет. Вопрос защиты ценной информации путем ее видоизменения, исключающего ее прочтение незнакомым лицом тревожила лучшие человеческие умы еще с самых древних времен. История шифрования почти что ровесница истории человеческой речи. Более того, первоначально письменность сама по себе была криптографической системой, так как в древних обществах ею владели только избранные. Священные книги Древнего Египта, Древней Индии тому примеры. С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Так, Цезарь в своей переписке использовал уже более систематический шифр, получивший его имя. Периоды криптографии: Первый период (приблизительно с 3-го тысячелетия до н.э.) характеризуется господством моноалфавитных шифров. Второй период (хронологические рамки – с IX века на Ближнем Востоке (Ал-Кинди) и с XV века в Европе (Леон Баттиста Альберти) – до начала XX века) ознаменовался введением в обиход полиалфавитных шифров. Третий период (с начала и до середины XX века) характеризуется внедрением электромеханических устройств в работу шифровальщиков. При этом продолжалось использование полиалфавитных шифров. Четвёртый период – с середины до 70-х годов XX века – период перехода к математической криптографии. Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование криптографических методов. Проблемой защиты информации путем ее преобразования занимается криптология (kryptos - тайный, logos - наука). Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих направлений прямо противоположны. Криптография занимается поиском и исследованием математических методов преобразования информации. 3 Сфера интересов криптоанализа – исследование возможности дешифрования информации без знания ключей. Шифры появились на свет задолго до изобретения компьютера. Получившие широкое распространение криптографические алгоритмы выполняли либо замену одних букв на другие, либо переставляли буквы друг с другом. Самые стойкие шифры делали одновременно и то, и другое, причем многократно. Для дешифровки и зашифровки текста в XX веке применялись шифровальные машины. Такие как “KRYHA” (Приложение 1 рис. 1 механическое шифровальное устройство “KRYHA”, созданное в 1924 году, активно использовалось немецкими дипломатами в годы Второй мировой войны, не знавшими того, что этот шифр был раскрыт американцами), машина Хеберна (Приложение1.рис.2 шифровальные машины Хеберна предназначались для защиты секретной переписки между различными компаниями от возможного перехвата конкурентами. В 1915 году Э. Хеберн предложил конструкцию из двух пишущих машинок, соединенных проводами с центральным диском), “пурпурная” шифровальная машина (Приложение 1 рис. 3 в этом японском шифровальном устройстве две электрические пишущие машинки были соединены при помощи двух специальных переключающих устройств. В то время как исходный текст печатался на первой машинке, на второй появлялось зашифрованное сообщение. Переход от механического шифрования к электронному произошёл благодаря активному развитию вычислительной техники в конце XX века. Компьютер стал использоваться для большинства функций криптографической деятельности, такой как: реализация криптографических алгоритмов, проверка их качества, генерация ключей, автоматизация работы по раскрытию шифров и прочее. Также активно применялась система шифрования RSA (от фамилий Rivest, Shamir и Adleman). RSA использовалась в течение долгого времени и в действительности оказалась достаточно надежной. Лучшие ученые всего мира работают над созданием квантового компьютера, который способен дешифровать многие современные системы. С развитием квантового компьютера будет развиваться и квантовый криптоанализ, а значит, криптография выйдет на новый уровень. Цель: Проанализировать некоторые наиболее популярные виды шифров, понять принцип шифрования. Задачи: Разобраться в методах повышения криптостойкости шифров. 4 Попробовать изобрести собственный шифр и оценить его криптостойкость. Глава 1. Шифры замены Наиболее известными и часто используемыми шифрами являются шифры замены. Они характеризуются тем, что отдельные части сообщения (буквы, слова, ...) заменяются на какие-либо другие буквы, числа, символы и т.д. При этом замена осуществляется так, чтобы потом по шифрованному сообщению можно было однозначно восстановить передаваемое сообщение. Пусть, например, зашифровывается сообщение на русском языке и при этом замене подлежит каждая буква сообщения. Формально в этом случае шифр замены можно описать следующим образом. Для каждой буквы a исходного алфавита строится некоторое множество символов Ma так, что множества Ma и Mb попарно не пересекаются при a ≠ b , то есть любые два различные множества не содержат одинаковых элементов. Множество Ma называется множеством шифробозначений для буквы a. а б в … я Ма Мб Мв … Мя Таблица является ключом шифра замены. Зная ее, можно осуществить как зашифрование, так и дешифрование. При шифровании каждая буква a открытого сообщения, начиная с первой, заменяется любым символом из множества Ma. Если в сообщении содержится несколько букв a, то каждая из них заменяется на любой символ из Ma. За счет этого с помощью одного ключа можно получить различные варианты зашифрованного сообщения для одного и того же открытого сообщения. В классической криптографии различают 4 разновидности шифров замены: Простая замена, или одноалфавитный шифр. Каждая буква открытого текста заменяется на один и тот же символ шифртекста. Омофонная замена. Аналогично простой замене с единственным отличием: каждой букве открытого текста ставятся в соответствие несколько символов шифртекста. Например, буква "А" заменяется на цифру 5, 13, 25 или 57,а буква "Б" — на 7, 19, 31 или 43 и так далее. 5 Блочная замена. Шифрование открытого текста производится блоками. Например, блоку "АБА" может соответствовать "РТК", а блоку "АББ" — "СЛЛ". Многоалфавитная замена. Состоит из нескольких шифров простой замены. 1.1 Шифры простой замены Существует множество широкоизвестных шифров простой замены. Примером шифра простой замены может служить программа ROT13, которую обычно можно найти в операционной системе UNIX. С ее помощью буква "А" открытого текста на английском языке заменяется на букву "N", "В" — на "О" и так далее. Таким образом, ROT13 циклически сдвигает каждую букву английского алфавита на 13 позиций вправо. Этот шифр замены легко взламывается с использованием современных компьютеров, поскольку замена недостаточно хорошо маскирует стандартные частоты встречаемости букв в открытом тексте. Шифр простой замены не всегда подразумевает замену буквы на какую-то другую букву. Допускается использовать замену буквы на цифру. К примеру, представим некий шифралфавит: А - 33; Б - 17; В - 8; Г - 16; Д - 2; Е - 15; Ё - 14; Ж - 13; З - 12; И - 98; Й - 10; К - 97; Л - 96; М - 24; Н - 0; О - 11; П - 5; Р - 25; С - 7; Т - 3; У - 64; Ф - 26; Х - 66; Ц - 69; Ч - 4; Ш - 6; Щ 36; Ь - 21; Ъ - 22; Ы - 23; Э - 37; Ю - 39; Я - 18. В данном шифре применяются цифры заменяющие буквы. Никакой логики в этих цифрах нет. Такой простой шифр можно дешифровать только имея таблицу шифров. В следующем шифре простой замены – в коде Цезаря - буква заменяется на букву, отстоящую от нее в латинском алфавите на некоторое число позиций. Исходный алфавит: АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮ Подстановка: ГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮАБВ Шифр Цезаря является частным случаем шифра простой замены. Ключ в шифре Цезаря зафиксирован, и, кроме того, он определяется всего лишь одним числом – количеством символов, на которые необходимо сдвинуть исходный алфавит, чтобы получить алфавит подстановки. Это означает, что вместо буквы 'А' будет записана буква 'Г', вместо 'Б' – буква 'Д' и т. д. То есть смещение в данном шифре составило четыре буквы. А вместо мягкого знака в шифртексте появится буква 'А'. 6 Очевидно, что такой шифр взламывается совсем просто. Нужно подсчитать, как часто встречаются буквы в зашифрованном тексте, и сопоставить результат с известной для каждого языка частотой встречаемости букв. Шифр Атбаш Атбаш — традиционная форма шифра замены в иврите. Принцип зашифровывания здесь следующий: берется буква, определяется, какой она является по счету от начала алфавита, после чего заменяется буквой, которая стоит на том же самом месте, но только считая от конца алфавита. Для английского языка это означает, что а, стоящая в начале алфавита, заменяется буквой z, стоящей в конце алфавита, b заменяется на y и так далее. Название атбаш само намекает на замену, которая используется в этом шифре: слово атбаш состоит из первой буквы алфавита иврита; алеф, за которой следует последняя буква в алфавите тав, далее идет вторая буква, бет, а за ней — вторая буква от конца шин. Атбаш и другие подобные библейские шифры предназначались для придания таинственности, а не для того, чтобы скрыть смысл, но и этого оказалось достаточно, чтобы пробудить интерес к серьезному занятию криптографией. Шифр Атбаш для английского алфавита: Исходный алфавит: 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 Алфавит замены: ZYXWVUTSRQPONMLKJIHGFEDCBA Криптостойкость такого шифра невысокая, потому что дешифровать можно с помощью частотных таблиц. Великий Шифр Россиньоля «Великий шифр» был придуман Россиньолями, отцом и сыном, Антуаном и Бонавентуром. Выдающееся мастерство и накопленный опыт по взламыванию шифров позволило Россиньолям понять, как создать более стойкий шифр, и они придумали так называемый «великий шифр». «Великий шифр» оказался настолько надежен, что сумел противостоять усилиям всех криптоаналитиков той эпохи, пытающихся выведать французские секреты, и даже последующих поколений дешифровальщиков. После смерти отца и сына «великий шифр» перестал применяться, а его подробности были быстро утеряны. «Великий шифр» более сложен, чем обычный шифр замены. Первоначально Базери полагал, что числа являются омофонами и что некоторые числа представляют собой одну 7 и ту же букву. Проверка этого направления заняла месяцы кропотливого труда, но все оказалось напрасным. «Великий шифр» не был омофоническим шифром. Затем его осенила или диграф. Базери идея, что каждое число попытался провести может представлять дешифрование, ища пару букв, наиболее часто встречающиеся числа в зашифрованных письмах и предположив, что они, возможно, обозначают самые распространенные французские диграфы. Фактически он применил частотный анализ на уровне пар букв. Но, к сожалению, после нескольких месяцев труда и это предположение не дало никаких осмысленных результатов дешифрования. Базери, уже был готов отказаться от этой идеи, когда ему пришло в голову использовать новый подход. Он начал обдумывать возможность того, что каждое число представляет не пару букв, а скорее целый слог. Он попытался сопоставить каждое число со слогом: может быть, чаще всего встречающиеся числа обозначают самые распространенные французские слоги. Это предположение подтвердилось. Криптостойкость этого шифра высокая, так как каждое число замещало французский слог, а не одну букву. Книжный шифр Существует несколько вариантов книжного шифра. Первый вариант: Книжный шифр — шифр, в котором ключом является книга или небольшая часть текста. Основным требованием будет, чтобы оба корреспондента не только имели одну и ту же самую книгу, но и тот же самое издание и выпуск. Традиционно книжные шифры работают, заменяя слова в исходном тексте на местоположение этих же слов в книге. Это будет работать до тех пор, пока не встретится слово, которого не будет в книге, тогда сообщение не может быть закодировано. Альтернативный подход, который обходит эту проблему, состоит в том, чтобы заменять отдельные символы, а не слова. Однако, такой способ имеет побочный эффект: зашифрованный текст становится очень большого размера. (обычно используется от 4 до 6 цифр для шифрования каждого символа или слога). Криптостойкость данного шифра довольно высокая, потому что для дешифровки книжного шифра потребуется определенная книга. Второй вариант: Сначала криптограф последовательно присваивает номера каждому слову в ключевом тексте. 6 Например, предложение «1каждый 2из 3нас 4имеет 5свои секреты, 7у 8каждого 9человека 10свой 11собственный 12секрет 13и 14только 15он 16знает, 17в 8 18 чем 19заключается 20данная 21тайна». После этого каждое число заменяет начальную букву слова. Необходимо составить список, в котором каждое число сопоставляется с начальной буквой слова: 1 к 12 с 2 и 13 и 3 н 14 т 4 и 15 о 5 с 16 з 6 с 17 в 7 у 18 ч 8 к 19 з 9 ч 20 д 10 с 21 Т 11 с Теперь сообщение может быть зашифровано путем замены букв в открытом тексте на числа в соответствии с составленным списком. Таким образом, буква открытого текста к будет заменяться на 1,8, а буква открытого текста и может быть заменена любым из чисел: 2, 4, 13. Если у получателя есть копия ключевого текста, то дешифровка зашифрованного сообщения элементарна. Однако если злоумышленник перехватит один только зашифрованный текст, то криптоанализ будет заключаться в том, чтобы каким-то образом определить ключевой текст. Шифр Полибия Данный шифр был придуман в I веке до нашей эры и назван в честь греческого историка Полибия (203-120 гг. до н. э.). Работа шифра основана на выборе пяти букв алфавита, служащих заголовками строк и столбцов таблицы размером 5*5. Отправитель и получатель заранее договариваются о правиле заполнения таблицы. Шифр заменяет каждую букву алфавита парой букв, которые являются заголовками соответствующих столбца и строки. В качестве заголовков таблицы можно использовать как буквы, так и цифры. Рассмотрим следующую таблицу: 7 3 7 А Е-Ё 3 Б Ж 5 В З 8 Г И-Й 9 Д К 9 5 8 9 Л Р Х-Ц М С Ч Н Т Ш-Щ О У Ы-Э П Ф Ю-Я Буквы Е-Ё, И-Й, Х-Ц, Ш-Щ, Ы-Э, Ю-Я записываются в одну ячейку, так как первоначально использовался греческий алфавит из 24 букв. Буквы Ъ и Ь не записываются в таблицу. Зашифруем слово «система». С заменяется парой 83 (сначала указывается номер строки, затем номер столбца), И заменяется парой 38, С заменяется парой 83, Т заменяется парой 85, Е заменяется парой 37, М заменяется парой 53, А заменяется парой 77. Зашифрованное сообщение: «83388385375377». Криптостойкость такого шифра достаточно велика, так как каждая буква заменяется двумя разными цифрами, но существуют и недостатки, один из которых – длина зашифрованного сообщения (сообщение увеличивается вдвое, а это занимает много памяти, тем более нет определенного знака, кодирующего пробел, а значит, дешифровщику будет довольно просто распознать начало и конец слова, что во многом облегчает задачу дешифровщика). 1.2 Многоалфавитные и омофонные шифры В полиалфавитных (многоалфавитных) шифрах для замены некоторого символа исходного сообщения в каждом случае его появления последовательно используются различные символы из некоторого набора. Понятно, что этот набор не бесконечен, через какое-то количество символов его нужно использовать снова. В этом слабость чисто полиалфавитных шифров. Примерами многоалфавитных шифров служат шифр Виженера и шифр Вернама. Стойкость шифра Виженера состоит в том, что для зашифровывания сообщения в нем используется не один, а 26 различных шифралфавитов. Шифрование начинается с построения квадрата Виженера, показанного в приложении 3: алфавит открытого текста с последующими 26 шифралфавитами, каждый из которых сдвинут на одну букву относительно предыдущего алфавита. Здесь ряд 1 представляет собой алфавит шифра Цезаря со сдвигом на 1 позицию, то есть этот шифралфавит может использоваться в качестве алфавита шифра Цезаря, в котором каждая буква открытого текста заменяется буквой, расположенной в алфавите на одну позицию дальше. Точно так же ряд 2 представляет собой алфавит шифра Цезаря со сдвигом на 2 позиции и так далее. 10 Если отправитель, чтобы зашифровать сообщение, пользуется только одним из шифралфавитов, то это фактически будет простым шифром Цезаря, который является исключительно нестойким видом шифрования, так что сообщение может быть без труда дешифровано противником, перехватившим его. В шифре Виженера для зашифровывания различных букв сообщения применяются различные строки квадрата. Получателю сообщения, чтобы дешифровать его, следует знать, какая из строк квадрата Виженера использовалась для зашифровывания каждой из букв, поэтому должна быть задана система переходов между строками. Это обеспечивается с помощью ключевого слова. Прежде всего, ключевое слово буква за буквой записывается над сообщением, и его повторяют до тех пор, пока каждой букве в сообщении не будет сопоставлена буква ключевого слова. Неоспоримым достоинством шифра Виженера является то, что он неуязвим для частотного анализа. Например, криптоаналитик, применяющий частотный анализ к фрагменту шифртекста, обычно начинает с того, что определяет, какая буква чаще всего встречается в шифртексте, а затем делает предположение, что она является и наиболее часто встречающейся буквой в языке. На самом деле данная буква является несколькими различными буквами. Несомненно, что для криптоаналитика это создает сложности. Помимо того, что сам шифр Виженера неуязвим для частотного анализа, здесь может использоваться гигантское количество ключей. Отправитель и получатель могут договориться об использовании любого слова из словаря, любой комбинации слов или даже придумать свои слова. Для зашифровки необходимо воспользоваться таблицей (квадратом) Виженера. Текст для зашифровки: настя Ключ: дверь Шифр – текст: свцвщ Криптостойкость данного шифра достаточно высокая, если человек не знает о существовании таблицы Виженера, в противном случае сообщение будет легко разгаданным. 1.3 Повышение криптостойкости шифров замены 11 Главный недостаток этого вида шифров в том, что последние буквы алфавита (которые имеют низкие коэффициенты при частотном анализе) имеют тенденцию оставаться в конце. На практике, обычно достаточно около 50 символов для взлома, хотя некоторые шифротексты могут быть взломаны и с меньшим количеством символов, если найдены какие-либо нестандартные структуры. Но при равномерном распределении символов в тексте может потребоваться куда более длинные шифротексты для взлома. Чем больше шифрованное сообщение, тем легче дешифровать его с помощью частотных таблиц. Для того, чтобы осложнить успех дешифровальщика, применяющего частотные таблицы, можно использовать шифр множественной замены. Одна и та же буква в исходном сообщении не обязательно преобразуется в одну букву шифрованного текста. Один из возможных методов реализации шифра множественной замены состоит в добавлении второго перемешанного алфавита и переключении с одного алфавита на другой при встрече в тексте пробела. Более защищенный способ построить алфавит замены состоит в том, чтобы выполнить колоночное перемещение (перемещение столбцов) в алфавите, используя ключевое слово. Обзор шифров перестановки рассмотрен в главе 2 данной Работы. 1.4 Композиционные шифры С целью повышения надежности шифрования шифрованный текст, полученный применением некоторого шифра, может быть еще раз зашифрован с помощью другого шифра. Всевозможные такие композиции различных шифров приводят к третьему классу шифров, которые обычно называют композиционными шифрами. Заметим, что композиционный шифр может не входить ни в класс шифров замены, ни в класс шифров перестановки. Примером композиционного шифра предлагаю считать собственный шифр, приведенный в приложении 2 данной Работы. Глава 2. Шифры перестановки Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки, лабиринты, лозунговые и др. Частота появления заданной буквы 12 алфавита в достаточно длинных текстах одна и та же для разных текстов одного языка. Поэтому практически любой шифр можно дешифровать с помощью частотных таблиц и частотного криптоанализа. 2.1 Частотный анализ Частотный анализ, частотный криптоанализ — один из методов криптоанализа, основывающийся на предположении о существовании нетривиального статистического распределения отдельных символов и их последовательностей как в открытом тексте, так и в шифротексте, которое, с точностью до замены символов, будет сохраняться в процессе шифрования и дешифрования. Упрощённо, частотный анализ предполагает, что частота появления заданной буквы алфавита в достаточно длинных текстах одна и та же для разных текстов одного языка. При этом в случае моноалфавитного шифрования, если в шифротексте будет символ с аналогичной вероятностью появления, то можно предположить, что он и является указанной зашифрованной буквой. Аналогичные рассуждения применяются к биграммам (двубуквенным последовательностям), триграммам и т.д. в случае полиалфавитных шифров. Шифр простой замены легко вскрывается с помощью частотного анализа, так как не меняет частоты использования символов в сообщении. Метод частотного криптоанализа известен с IX-го века (Индия), хотя наиболее известным случаем его применения в реальной жизни, возможно, является дешифровка египетских иероглифов Ж.-Ф. Шампольоном в 1822 году. В художественной литературе наиболее известными упоминаниями применения частотного криптоанализа являются рассказы «Золотой жук» Эдгара По, «Пляшущие человечки» Конан Дойля, а также роман «Дети капитана Гранта» Жюля Верна. Начиная с середины XX века большинство используемых алгоритмов шифрования разрабатываются устойчивыми к частотному криптоанализу. Выявлено, что вероятность появления отдельных букв, а также их порядок в словах и фразах естественного языка подчиняются статистическим закономерностям: например, пара стоящих рядом букв «ся» в русском языке более вероятна, чем «цы», а «оь» в русском языке не встречается вовсе (зато часто встречается, например, в чеченском). Анализируя достаточно длинный текст, зашифрованный методом замены, можно по частотам появления символов произвести обратную замену и восстановить исходный текст. 13 В общем смысле, частоту букв в процентном выражении можно определить следующим образом: подсчитывается сколько раз она встречается в шифротексте, затем полученное число делится на общее число символов шифротекста; для выражения в процентном выражении, еще умножается на 100. Но существует некоторая разница значений частот, которая объясняется тем, что частоты существенно зависят не только от длины текста, но и от характера текста. Например, текст может быть технического содержания, где редкая буква Ф может стать довольно частой. Поэтому для надежного определения средней частоты букв желательно иметь набор различных текстов. 2.2 Шифры перестановки и их стойкость В шифре перестановки буквы открытого текста не замещаются на другие, а меняется сам порядок их следования. Например, в шифре простой колонной перестановки исходный открытый текст записывается построчно (число букв в строке фиксировано), а шифротекст получается считыванием букв по колонкам. Дешифрование производится аналогично: шифротекст записывается по колонкам, а открытый текст можно затем прочесть по горизонтали. Для повышения стойкости полученный шифротекст можно подать на вход второго шифра перестановки, т.е. применить метод двойного шифрования. Существуют еще более сложные шифры перестановки, однако почти все они легко взламываются с помощью компьютера. Перестановка используется во многих современных криптографических алгоритмах, но ее применение ограничено узкими рамками, поскольку в этом случае требуется память большого объема, а также накладываются ограничения на длину шифруемых сообщений. 2.3 Примеры шифров перестановки Лозунговый шифр Шифр с использованием кодового слова является одним из самых простых среди шифров перестановки как в реализации, так и в дешифровании. Идея заключается в том, что выбирается кодовое слово, которое пишется впереди, затем выписываются остальные неиспользованные буквы алфавита в своем порядке. Ниже приведен шифр с использованием кодового слова (лозунгом) S T O R Y: Исходный алфавит: 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 14 Алфавит замены: S T O R Y A B C D E F G H I J K L M N P Q U V W X Z Как мы видим, при использовании короткого кодового слова мы получаем очень простую замену. Так же мы не можем использовать в качестве кодового слово с повторяющимися буквами, так как это приведет к неоднозначности дешифровки, то есть двум различным буквам исходного алфавита будет соответствовать одна и та же буква шифрованного текста. Шифр вертикальной перестановки (ШВП) В нем используется прямоугольник, в который сообщение вписывается по строкам слева направо. Выписываются буквы по вертикали, столбцы при этом берутся в порядке, определяемом ключом. Пусть, например, этот ключ таков: (2376154), и с его помощью надо зашифровать сообщение: ЯЛЮБЛЮХОДИТЬВШКОЛУ. Сообщение вписывается в прямоугольник, столбцы которого пронумерованы в соответствии с ключом. Выбирая столбцы в порядке, заданном ключом, и выписывая последовательно буквы каждого из них сверху вниз, получится: ЛЬ-ЯОКЛДОХШ-ЮВ-БТУЮИЛ. 2 3 7 6 1 5 4 Я Л Ю Б Л Ю Х О Д И Т Ь В Ш К О Л У - - - Ключ ШВП можно извлекать из какого-то легко запоминающегося слова или предложения. Например, можно приписывать буквам числа в соответствии с обычным алфавитным порядком букв. Например, пусть ключевым словом будет ШИФРОВАНИЕ. Присутствующая в нем буква А получает номер 1. Поскольку буквы Б в этом слове нет, то буква В получает номер 2 и так далее. Если какая-то буква входит несколько раз, то ее появления нумеруются последовательно слева направо. Поэтому второе вхождение буквы И получает номер 5 (так как 3 номер получает Е, а четвертый первая И). Процесс продолжается до тех пор, пока все буквы не получат номера. Таким образом, получается следующий ключ: 15 Ш И Ф Р О В А Н И Е 10 5 9 8 7 2 1 6 4 3 Для обеспечения дополнительной скрытости можно повторно зашифровать сообщение, которое уже прошло шифрование. Такой метод шифрования называется двойной перестановкой. В этом случае перестановки определяются отдельно для столбцов и отдельно для строк. Сначала в таблицу записывается текст сообщения, а потом поочередно переставляются столбцы, а затем строки. При дешифровании порядок перестановок должен быть обратным. Глава 3. Комбинаторные задачи и их связь с криптографией. Будущее криптографии В наше время комбинаторные задачи занимают важное место в криптографии. Благодаря комбинаторике дешифровальщик может узнать количество ключей, количество шифров из одного ключа и количество ключей из данного шифра. Рассчитывается это путем решения задач на перестановки, размещения и сочетания, которые являются распространенными среди комбинаторных задач. Комбинаторные задачи относительно шифров простой замены делятся Перестановки Размещения Сочетания 3.1 Перестановки Перестановки – простейшие комбинации, которые можно составить из элементов конечного множества. Пусть имеются три кружки. Обозначим их буквами a, b и c. Эти кружки можно расставить на столе по-разному. Если первой поставить кружку a, то возможны такие расположения: abc, acb. Если первой поставить кружку b, то возможными являются такие расположения: bac, bca. Если первой поставить кружку c, то можно получить такие расположения: cab, cba. Каждое из расположений называют перестановкой из трех элементов. 16 Перестановкой из n элементов называется каждое расположение этих элементов в определенном порядке. 3.2 Размещения Рассмотрим размещение из четырех элементов по три – каждая упорядоченная тройка, которую можно составить из четырех элементов. Составим из элементов a, b, c, d все размещения по три элемента. Выпишем сначала те размещения, которые начинаются с элемента a, затем те, которые начинаются с элемента b, с элемента c, с элемента d. В результате получим: abc, abd, acb, acd, adb, adc, bac, bad, bca, bcd, bda, bdc, cab, cad, cba, cbd, cda, cdb, dab, dac, dba, dbc, dca, dcb. Таким образом, найдены все размещения из четырех элементов по три. Размещением из n элементов по k (k ≤n) называется любое множество, состоящее из k элементов, взятых в определенном порядке из данных n элементов. 3.3 Сочетания Сочетания- это наборы, отличающиеся только порядком следования элементов (но не составом, и этим отличаются от размещений) . Пусть имеются пять роз разного цвета. Обозначим их буквами a, b, c, d, e. Требуется составить букет из трех роз. Если в букет входит роза a, то можно составить такие букеты: abc, adb, abe, acd, ace, ade. Если в букет не входит роза a, но входит роза b, то можно получить такие букеты: bcd, bce, bde. Если в букет не входит ни роза a, ни роза b, то возможен только один вариант составления букета: 17 cde. Таким образом, указаны все возможные способы составления букетов, в которых поразному сочетаются три розы из данных пяти, то есть составлены все возможные сочетания из пяти элементов по три. Сочетанием из n элементов по k называется любое множество, составленное из k элементов, выбранных из данных n элементов. 3.4 Примеры размещений, сочетаний и перестановок Задачи: 1. Ключ состоит из 4, 5, 8, n чисел. Сколько различных шифров можно получить? Решение: При составлении шифров порядок символов важен => воспользуемся формулой перестановок. Воспользуемся следующей существующей формулой: Pn = n(n-1)(n-2)*…*3*2*1. Получим: P4=1*2*3*4=24 P5=1*2*3*4*5=120 P8=1*2*3*4*5*6*7*8=40 320 Ответ: если ключ состоит из 4 чисел, то мы получим 24 различных шифра; если ключ состоит из 5 чисел, то мы получим 120 различных шифров; а если ключ состоит из 8 чисел, то мы получим 40 320 различных шифров. 2. Ключ состоит из пяти цифр. Сколько ключей существует? Решение: При составлении ключа порядок символов важен => используем формулу количеств размещений. Воспользуемся следующей формулой: A = , т. е. A = n Получим: A = 5! A = 1*2*3*4*5 = 120 18 Ответ: если ключ состоит из пяти цифр, то существует 120 ключей. 3. Ключ из четырех цифр. Сколько существует шифров, если применить шифрование 2 раза; 3 раза? Решение: При составлении шифров порядок символов важен => воспользуемся формулой перестановок. Воспользуемся следующей формулой: Pn = n! Получим: P4=4! Воспользуемся комбинаторным правилом умножения. P4=24 (ключа) => если применить шифрование два раза, то получится - ; три раза . Ответ: если применить шифрование два раза, то получится ; три раза – . 3.5 Квантовая вычислительная техника. Прошлое, настоящее и будущее XXI век – век революционных открытий и изобретений в области квантовой физики. На сегодняшний день главным объектом исследования и создания является квантовый компьютер. Данный компьютер может обладать достаточной вычислительной мощностью, чтобы взломать большинство существующих алгоритмов таких, как RSA, DES, RC5 и другие. Несомненно, после создания квантового компьютера появится квантовый криптоанализ, а значит, криптография выйдет на новый уровень. Данная техническая революция основана на квантовой теории - разделе физики, изучающем поведение квантовых систем с бесконечно большим числом степеней свободы; являющемся теоретической основой описания микрочастиц, их взаимодействия и превращения. Суть этой теории наглядно иллюстрирует эксперимент с котом, который в 1958 году на семинаре по квантовой физике представил Шрёдингер. Шрёдингер предложил поместить живого кота в черный непроницаемый ящик. Внутри ящика находилась колба с ядовитым газом, связанная специальным устройством с радиоактивной частицей. Если частица распадается, то газ выходит из колбы и кот умирает. Вероятность того, что данная частица распадется в определенный промежуток времени, равна 50%. 19 Допустим, что прошел один час. Наблюдающие за экспериментом не знают, жив кот или мертв; как только профессор откроет ящик, станет известна судьба кота. Значит, до этого момента система находится в суперпозиции, то есть кот и жив, и мертв одновременно. Основа квантовой теории – суперпозиция, нахождение частицы в двух состояниях одновременно. Теорию квантовой физики пытаются применить к современным вычислительным машинам. В компьютере информация кодируется с помощью двоичной системы счисления: 0 и 1. Квантовый компьютер (по теории) может работать с частицей, находящейся в двух возможных состояниях. Допустим, спин электрона, направленный вниз – значение 0; спин электрона, направленный вверх – значение 1.По принципу суперпозиции частица может представлять оба значения одновременно. Эта новая единица получила название кубит – «квантовый бит». В 1989 году - Брассар и Беннет создали систему, состоящую из двух компьютеров, расположенных на расстоянии 32 сантиметров друг от друга. Первый компьютер выполнял роль отправителя, второй – получателя. Система основана на поляризации фотонов (вертикальная, горизонтальная, диагональная слева направо вниз и диагональная слева направо вверх). Поляризация может быть прямолинейная (горизонтальная и вертикальная) и диагональная. Данная система сработала успешно, были выполнены: 1. Выбор случайных фильтров (горизонтальных, вертикальных, диагональных); 2. Измерена поляризация полученных фотонов (прямолинейные или диагональные); 3. Обмен информацией между получателем и отправителем (объяснение, какой вид поляризации был использован, не называя фильтр); 4. Совершена проверка, доказывающая, что сообщение не было перехвачено и дешифровано. Эта система доказала возможность квантовой криптографии. В 1995 г. Ученые из Университета Женевы использовали оптоволокно для передачи сообщений на 23 километра. В 2006 г. Команда из лаборатории США повторила этот эксперимент на расстоянии 107 километров. В наши дни многие страны продолжают этот эксперимент. 20 В результате развития квантовых компьютеров и квантовой криптографии появится квантовый криптоанализ. Данный криптоанализ будет обладать неоспоримыми преимуществами. Рассмотрим известный и распространенный шифр RSA (Rivest, Shamir, Adleman, 1977). В основе системы RSA лежит предположение о том, что решение математической задачи о разложении больших чисел на простые множители на классических компьютерах невозможно - оно требует очень большого числа операций и астрономического времени. Для решения этой задачи был разработан квантовый алгоритм, который дает возможность вычислить простые множители больших чисел за практически небольшое время и взломать шифр RSА. Взлом системы RSA-129 (разложение на множители 129-разрядного числа) потребовал в 1994 г. восьмимесячной работы 1600 мощных компьютеров, расположенных по всему миру и объединенных посредством Интернета. Разгадывание шифра на классическом компьютере потребует уже 13 миллиардов лет непрерывной работы, а квантовый компьютер может справиться с такой задачей за несколько недель. Таким образом, для RSA квантовый компьютер и квантовый криптоанализ - плохая новость, так как этой системой пользовались многие годы, и она считалась одной из самых защищенных криптографических систем; после взлома RSA будут дешифрованы практически все системы, а то уже ведет к падению криптографии. Процедура квантового криптоанализа может быть применена почти ко всем классическим шифросистемам. Одна из самых мощных систем – RC5, стандарт, используемый в браузерах компании Microsoft. При возникновении квантового компьютера система RC5 будет взломана, а, следовательно, компания потеряет много денег, но самое главное, что у людей, которые пользовались RC5 не будет альтернативной системы, а значит на определенный период времени наступит кризис. В США, например, для шифрования используется стандарт DES (Data Encryption Standard), разработанный в 1977 году. Он основан на 56-битном ключе, при помощи которого можно закодировать 64 бита информации. На этом стандарте основывается защита банковских транзакций, паролей Unix-систем и других секретных данных. Поскольку длина ключа меньше, чем длина кодируемого сообщения, то механизм защиты не является абсолютно надежным. Если попытаться угадать ключ методом проб и ошибок, нужно перебрать 256 всевозможных значений. И хотя этот объем вычислений очень велик, с помощью квантового компьютера это станет возможным. Стандарт DES используется для защиты многих операций в банке; при взломе такой системы – банки 21 остановят свою работу, так как не могут рисковать средствами своих клиентов; а если банки «заморозят» счета, то мировая экономика возможно зайдет в тупик. Возможность взлома таких систем, как RC5, RSА, DES и других на сегодняшний день составляет довольно маленький процент, но после создания квантового компьютера и квантового криптоанализа – возможность взлома возрастет как минимум вдвое, из-за увеличения скорости работы компьютера. Интерес к квантовой криптографии со стороны коммерческих и военных организаций растет, так как эта технология существенно повысит безопасность. Создатели технологий квантовой криптографии вплотную приблизились к тому, чтобы выпустить их из лабораторий на рынок. Очень скоро квантовая криптография обеспечит еще один слой безопасности для нуждающихся в этом организаций. На данном этапе киптография опередила криптоанализ, но это два взаимосвязанных процесса. Если будет создан квантовый компьютер, то криптоанализ выйдет на «первую полосу», так как появится возможность дешифрования мировых криптосистем; может произойти и так, что криптография не сможет создать новые устойчивые криптосистемы… 22 Заключение В этой работе я изучила некоторые шифры простой замены, композиции и перестановки. Узнала, как дешифровали и зашифровывали сообщения в древности. Разобралась в программах и устройствах, которые позволяют дешифровать сообщение. Поняла, что для повышения криптостойкости шифра необходимо зашифровать его как минимум дважды и желательно, разными видами шифрования. На сегодняшний день криптография опередила криптоанализ, но после создания квантового компьютера ситуация может поменяться с точностью до наоборот. 23 Список литературы 1. Макарычев Ю.Н. Алгебра 9 класс / Н.Г. Миндюк, К.И. Нешков С.Б. Суворова. – М. : «Просвещение», 2011г. – 271 с. 2. Коутинхо C. «Введение в теорию чисел. Алгоритм RSA» / C. Коутинхо. – М.: «Просвещение», 2007 г. – 328 с. 3. А. Г. Ростовцев, «Теоретическая криптография» / Е. Б. Маховенко, – СанктПетербург: Н.П.О. «Профессионал»,2005 г. – 490 с. 4. Коробейников А. Г. «Математические основы криптографии» / А.Г. Коорбейников – Санкт-Петербург, 2002 г. – 351 с. 5. И. В. Ященко «Криптография и математика», видеоурок (дата обращения: 20 – 22 декабря 2012 г.). 6. Ященко И. В. «Введение в криптографию» / И.В. Ященко. – М. : «Просвещение», 2000г. – 271 с. 7. www.kriptografiya.ru (дата обращения: 15 – 22 марта 2012 г.) 8. Саймон Сингх «Книга шифров: тайная история шифров и их расшифровки» / пер. с англ. А. Галыгин. – М.: Мир энциклопедий Аванта + Астрель, 2009г. – 464 с. 9. www.rsasecurity.com/rsalabs/challenges/ (дата обращения: 15 -17 марта 2014 г.) 10. http://www.submarine.ru/ (дата обращения: 10-15 марта 2014 г.) 11. Жуан Гомес «Математики, шпионы и хакеры. Кодирование и криптография» / пер. с англ. – М: Де Агостини, 2014. – 144 с. 24 Приложение 1.Шифровальные машины Рис. 1 Шифровальная машина KRYHA Рис. 2 Шифровальная машина Хеберна Рис. 3 “Пурпурная” шифровальная машина 25 Приложение 2. Собственный шифр Я бы хотела представить собственный шифр – шифр простой замены. Суть моего шифра состоит в том, что все буквы русского алфавита (33) заменяются на первые (33) элемента периодической системы химических элементов Д. И. Менделеева. Исходный алфавит: А, Б, В, Г, Д, Е, Ё, Ж, З, И, Й, К, Л, М, Н, О, П, Р, С, Т, У, Ф, Х, Ц, Ч, Ш, Щ, Ь, Ы, Ъ, Э, Ю, Я. Алфавит замены: H, He, Li, Be, B, C, N, O, F, Ne, Na, Mg, Al, Si, P, S, Cl, Ar, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni, Cu, Zn, Ga, Ge, As. К примеру, зашифруем такую фразу: моя курсовая работа по криптографии. Нужно отметить, что вместо пробела я буду использовать русскую букву Ё, Ж или Й. Вместо точки я использую цифру 3. Итак, мы получим: SISASЁMGSCARKSLIHASЙARHHESCAHЁCLSЖMGARNECLCASBEARHTINENE3 Далее, для использования двойного шифрования, применим шифр вертикальной перестановки. Допустим, что ключ такой – 2, 8, 5, 1, 3, 7, 4, 6. В таблицу по порядку вписываем текст, полученный в результате первого шифрования. Получим: 2 8 5 1 3 7 4 6 SI S AS MG SC AR K S LI H AS AR H HE S CA H CL S MG AR NE CL CA S BE AR H NE NE – TI Выбирая столбцы в порядке, заданном ключом, и выписывая последовательно буквы каждого из них сверху вниз, получим: MGARMGHSILINSSCHARTIKSCLNEASASSARSCACA-ARHENENESHCLBE Для дешифрования моего шифра необходимо знать ключ, иначе на его разгадку потребуется много времени. Полученный шифр достаточно криптостойкий, т.к.: 1) я применила двойное шифрование, 2) цифры в ключе расположены в хаотичном порядке, 26 3) все буквы русского алфавита заменены на элементы таблицы Менделеева, 4) в шифре использована множественная замена. Приложение 3. Таблица Виженера А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ь Ы Ъ Э Ю Я АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ абвгдежзийклмнопрстуфхцчшщьыъэюя бвгдежзийклмнопрстуфхцчшщьыъэюяА вгдежзийклмнопрстуфхцчшщьыъэюяАБ гдежзийклмнопрстуфхцчшщьыъэюяАБВ дежзийклмнопрстуфхцчшщьыъэюяАБВГ ежзийклмнопрстуфхцчшщьыъэюяАБВГД жзийклмнопрстуфхцчшщьыъэюяАБВГДЕ зийклмнопрстуфхцчшщьыъэюяАБВГДЕЖ ийклмнопрстуфхцчшщьыъэюяАБВГДЕЖЗ йклмнопрстуфхцчшщьыъэюяАБВГДЕЖЗИ клмнопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙ лмнопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙК мнопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛ нопрстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМ опрстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМН прстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНО рстуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОП стуфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПР туфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРС уфхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТ фхцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУ хцчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФ цчшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХ чшщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦ шщьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧ щьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШ ьыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩ ыъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬ ъэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫ эюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪ юяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭ яАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ Приложение 4. Сравнительный анализ шифров Критерии Шифр Виженера Многоалфавитный (32 алфавита) Мой шифр Одноалфавитный (1 алфавит) Дополнительные данные для использования Квадрат Виженера Таблица Менделеева Процесс шифрования Сложный (создание кодового слова, Легкий (знамена одной буквы на другую с помощью Вид шифра 27 сопоставление букв из этого слова с алфавитами из Квадрата Виженера) Использование дополнительного метода шифрования Процесс дешифрования Срок использования шифра Актуальность Отсутствует Очень сложный (если дешифровщик не знает о существовании Квадрата Виженера) Средней сложности ( дешифровщик знает и умеет пользоваться Квадратом Виженера, но не исключено допущение ошибки) таблицы Менделеева) Метод вертикальной перестановки Легкий (с помощью частотного анализа) Средней сложности (при использовании шифровальщиком метода вертикальной перестановки) 1467 – 18 век 3 года Не актуальны (существуют различные шифровальные машины и компьютеры, которые создают более криптостойкие шифры; также Шифр Виженера уже давно известен) Все ключи: до бесконечности (т. к. зашифровщик может Все ключи: 1 814 000 Комбинаторный анализ выбрать слово или фразу Все замены: 5,4 * 10^64 любой длины) Мои ключи: 40 320 Все замены:1024!/992! Мои ключи: Вывод: криптостойкость шифра Виженера выше, чем криптостойкость моего шифра. При сравнении моего шифра и шифров простой замены – криптостойкость моего шифра выше, т. к. используется шифр вертикальной перестановки для двойного шифрования. При сравнении шифра Виженера и моего шифра с современными системами шифрования – оба вида шифров имеют низкую криптостойкость. Приложение 4. Листинг программы Myshifr program myshifr; var c: char; inp, out : text; begin Описание переменных: char символьный тип; text – текстовый тип assign(inp,'inp.txt'); assign – создание текстового файла 28 assign(out,'out.txt'); reset(inp); reset – открытие файла для чтения; rewrite – открытие файла для записи rewrite(out); while not eof(inp) do begin read(inp, c); if ((ord(c)>=ord('А')) and (ord(c)<=ord('Я'))) or ((ord(c)>=ord('а')) and (ord(c)<=ord('я'))) then case c of сase of – условный оператор множественного выбора 'А', 'а' :write(out, 'H'); 'Б', 'б': write(out,'HE'); 'В','в' :write(out,'Li'); 'Г','г' :write(out,'Be'); 'Д','д' :write(out,'B'); 'Е','е ':write(out,'C'); 'Ё','ё ':write(out,'N'); 'Ж','ж' :write(out,'O'); 'З','з' :write(out,'F'); 'И','и' :write(out,'Ne'); 'Й','й ':write(out,'Na'); 'К','к' :write(out,'Mg'); 'Л','л' :write(out,'Al'); 'М','м' :write(out,'Si'); 'Н','н' :write(out,'P'); 'О','о' :write(out,'S'); 'П','п ':write(out,'Cl'); 'Р','р' :write(out,'Ar'); 'С','с ':write(out,'K'); 'Т','т' :write(out,'Ca'); 'У','у' :write(out,'Sc'); 'Ф','ф': write(out,'Ti'); 'Х','х' :write(out,'V'); 'Ц','ц' :write(out,'Cr'); 'Ч','ч' :write(out,'Mn'); 'Ш','ш' :write(out,'Fe'); 'Щ','щ' :write(out,'Co'); 'Ь','ь' :write(out,'Ni'); 'Ъ','ъ' :write(out,'Cu'); 'Ы','ы' :write(out,'Zn'); 'Э','э' :write(out,'Ga'); 'Ю','ю' :write(out,'Ge'); 'Я','я' :write(out,'As') 29 end else if c=' ' then write(out, ' ') else {этого символа нет в русском алфавите} write(out, ' '); {write(' ')} end; close(inp); сlose – закрытие файлов close(out) end. 30