Шифры криптологии
Простейшие шифры и их свойства. Криптостойкость шифра как его основной показатель эффективности. Шифратор Ч. Уитстона. Размер ключа перестановки. Алгоритм сложной замены – шифр Гронсфельда. Ассиметричная криптографическая система с открытым ключом.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 18.01.2013 |
Размер файла | 512,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Шифры криптологии
1. Теоретический материал
1.1 Простейшие шифры и их свойства
Основным видом криптографического преобразования информации в компьютерной системе является шифрование. Под шифрованием понимается процесс преобразования открытой информации в зашифрованную информацию (шифр-текст) или процесс обратного преобразования зашифрованной информации в открытую. Процесс преобразования открытой информации в закрытую получил название зашифрование, а процесс преобразования закрытой информации в открытую - расшифрование.
За многовековую историю использования шифрования информации человечеством изобретено множество методов шифрования или шифров. Методом шифрования (шифром) называется совокупность обратимых преобразований открытой информации в закрытую информацию в соответствии с алгоритмом шифрования. Большинство методов шифрования не выдержали проверку временем, а некоторые используются и до сих пор. Появление ЭВМ и компьютерных систем инициировало процесс разработки новых шифров, учитывающих возможности использования ЭВМ как для зашифрования / расшифрования информации, так и для атак на шифр. Атака на шифр (криптоанализ) - это процесс расшифрования закрытой информации без знания ключа и, возможно, при отсутствии сведений об алгоритме шифрования.
Современные методы шифрования должны отвечать следующим требованиям:
ѕ стойкость шифра противостоять криптоанализу (криптостойкость) должна быть такой, чтобы вскрытие его могло быть осуществлено только путем решения задачи полного перебора ключей;
ѕ криптостойкость обеспечивается не секретностью алгоритма шифрования, а секретностью ключа;
ѕ шифр-текст не должен существенно превосходить по объему исходную информацию;
ѕ ошибки, возникающие при шифровании, не должны приводить к искажениям и потерям информации;
ѕ время шифрования не должно быть большим;
ѕ стоимость шифрования должна быть согласована со стоимостью закрываемой информации.
Криптостойкость шифра является его основным показателем эффективности. Она измеряется временем или стоимостью средств, необходимых криптоаналитику для получения исходной информации по шифртексту, при условии, что ему неизвестен ключ. Сохранить в секрете широко используемый алгоритм шифрования практически невозможно. Поэтому алгоритм не должен иметь скрытых слабых мест, которыми могли бы воспользоваться криптоаналитики. Если это условие выполняется, то криптостойкость шифра определяется длиной ключа, так как единственный путь вскрытия зашифрованной информации - перебор комбинаций ключа и выполнение алгоритма расшифрования. Таким образом, время и средства, затрачиваемые на криптоанализ, зависят от длины ключа и сложности алгоритма шифрования. Все методы шифрования могут быть классифицированы по различным признакам. Один из вариантов классификации приведен на рисунке 1.1.
Представленная на рисунке 1.1 - классификация методов шифрования имеет вид:
1. Симметричные (с секретным, единым ключом, одноключевые, single-key).
1.1. Потоковые (шифрование потока данных):
ѕ с одноразовым или бесконечным ключом (infinite-key cipher);
ѕ с конечным ключом (система Вернама - Vernam);
ѕ на основе генератора псевдослучайных чисел (ПСЧ).
Рисунок 1.1 - Классификация методов шифрования
1.2. Блочные (шифрование данных поблочно):
1.2.1. Шифры перестановки (permutation, P-блоки);
1.2.2. Шифры замены (подстановки, substitution, S-блоки):
ѕ моноалфавитные (код Цезаря);
ѕ полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma);
2. Асимметричные (с открытым ключом, public-key):
ѕ Диффи-Хеллман DH (Diffie, Hellman);
ѕ Райвест-Шамир-Адлeман RSA (Rivest, Shamir, Adleman);
ѕ Эль-Гамаль (ElGamal).
Симметричные алгоритмы шифрования (или криптография с секретными ключами) основаны на том, что отправитель и получатель информации используют один и тот же ключ. Этот ключ должен храниться в тайне и передаваться способом, исключающим его перехват.
Обмен информацией осуществляется в 3 этапа:
ѕ отправитель передает получателю ключ (в случае сети с несколькими абонентами у каждой пары абонентов должен быть свой ключ, отличный от ключей других пар);
ѕ отправитель, используя ключ, зашифровывает сообщение, которое пересылается получателю;
ѕ получатель получает сообщение и расшифровывает его.
Если для каждого дня и для каждого сеанса связи будет использоваться уникальный ключ, это повысит защищенность системы.
Потоковые шифры. Поточный шифр - это симметричный шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста.
Простейшая реализация поточного шифра изображена на рисунке 1.2.
Рисунок 1.2 - Режим гаммирования для поточных шрифтов
Генератор гаммы выдаёт ключевой поток (гамму): . Обозначим поток битов открытого текста . Тогда поток битов шифротекста получается с помощью применения операции XOR: , где .
Расшифрование производится операцией XOR между той же самой гаммой и зашифрованным текстом: .
Очевидно, что если последовательность битов гаммы не имеет периода и выбирается случайно, то взломать шифр невозможно. Но у данного режима шифрования есть и отрицательные особенности. Так ключи, сравнимые по длине с передаваемыми сообщениями, трудно использовать на практике. Поэтому обычно применяют ключ меньшей длины (например, 128 бит). С помощью него генерируется псевдослучайная гаммирующая последовательность (она должна удовлетворять постулатам Голомба). Естественно, псевдослучайность гаммы может быть использована при атаке на поточный шифр. В потоковых шифрах, т.е. при шифровании потока данных, каждый бит исходной информации шифруется независимо от других с помощью гаммирования.
Гаммирование - наложение на открытые данные гаммы шифра (случайной или псевдослучайной последовательности единиц и нулей) по определенному правилу. Обычно используется «исключающее ИЛИ», называемое также сложением по модулю 2 и реализуемое в ассемблерных программах командой XOR. Для расшифровывания та же гамма накладывается на зашифрованные данные.
При однократном использовании случайной гаммы одинакового размера с зашифровываемыми данными взлом кода невозможен (так называемые криптосистемы с одноразовым или бесконечным ключом). В данном случае «бесконечный» означает, что гамма не повторяется.
Шифр Вернама (другое название: англ. One-time pad - схема одноразовых блокнотов) - в криптографии система симметричного шифрования, изобретённая в 1917 году сотрудниками AT&T Мейджором Джозефом Моборном и Гильбертом Вернамом. Шифр Вернама является системой шифрования, для которой доказана абсолютная криптографическая стойкость.
Для произведения шифротекста открытый текст объединяется операцией «исключающее ИЛИ» с ключом (называемым одноразовым блокнотом или шифроблокнотом). При этом ключ должен обладать тремя критически важными свойствами:
ѕ быть истинно случайным;
ѕ совпадать по размеру с заданным открытым текстом;
ѕ применяться только один раз.
Шифр назван в честь телеграфиста AT&T Гильберта Вернама, который в 1917 году построил телеграфный аппарат, который выполнял эту операцию автоматически - надо было только подать на него ленту с ключом. Не будучи шифровальщиком, тем не менее, Вернам верно заметил важное свойство своего шифра - каждая лента должна использоваться только один раз и после этого уничтожаться. Это трудноприменимо на практике - поэтому аппарат был переделан на несколько закольцованных лент с взаимно простыми периодами.
Генератор псевдослучайных чисел (ПСЧ). В этом случае ключ - порождающее число (начальное значение, вектор инициализации, initializing value, IV) для запуска генератора ПСЧ. Каждый генератор ПСЧ имеет период, после которого генерируемая последовательность повторяется. Очевидно, что период псевдослучайной гаммы должен превышать длину шифруемой информации.
Генератор ПСЧ считается корректным, если наблюдение фрагментов его выхода не позволяет восстановить пропущенные части или всю последовательность при известном алгоритме, но неизвестном начальном значении.
При использовании генератора ПСЧ возможны несколько вариантов:
1. Побитовое шифрование потока данных. Цифровой ключ используется в качестве начального значения генератора ПСЧ, а выходной поток битов суммируется по модулю 2 с исходной информацией. В таких системах отсутствует свойство распространения ошибок.
2. Побитовое шифрование потока данных с обратной связью (ОС) по шифртексту. Такая система аналогична предыдущей, за исключением того, что шифртекст возвращается в качестве параметра в генератор ПСЧ. Характерно свойство распространения ошибок. Область распространения ошибки зависит от структуры генератора ПСЧ.
3. Побитовое шифрование потока данных с ОС по исходному тексту. Базой генератора ПСЧ является исходная информация. Характерно свойство неограниченного распространения ошибки.
4. Побитовое шифрование потока данных с ОС по шифртексту и по исходному тексту.
Блочные шифры. При блочном шифровании информация разбивается на блоки фиксированной длины и шифруется поблочно. Блочные шифры бывают двух основных видов:
ѕ шифры перестановки (transposition, permutation, P-блоки);
ѕ шифры замены (подстановки, substitution, S-блоки).
Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки, лабиринты, лозунговые и др.
Шифры замены заменяют элементы открытых данных на другие элементы по определенному правилу. Paзличают шифры простой, сложной, парной замены, буквенно-слоговое шифрование и шифры колонной замены. Шифры замены делятся на две группы:
ѕ моноалфавитные (код Цезаря);
ѕ полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma).
В моноалфавитных шифрах замены буква исходного текста заменяется на другую, заранее определенную букву. Например в коде Цезаря буква заменяется на букву, отстоящую от нее в латинском алфавите на некоторое число позиций. Очевидно, что такой шифр взламывается совсем просто. Нужно подсчитать, как часто встречаются буквы в зашифрованном тексте, и сопоставить результат с известной для каждого языка частотой встречаемости букв.
В полиалфавитных подстановках для замены некоторого символа исходного сообщения в каждом случае его появления последовательно используются различные символы из некоторого набора. Понятно, что этот набор не бесконечен, через какое-то количество символов его нужно использовать снова. В этом слабость чисто полиалфавитных шифров.
Асимметричные алгоритмы шифрования. В асимметричных алгоритмах шифрования (или криптографии с открытым ключом) для зашифровывания информации используют один ключ (открытый), а для расшифровывания - другой (секретный). Эти ключи различны и не могут быть получены один из другого.
Схема обмена информацией такова:
ѕ получатель вычисляет открытый и секретный ключи, секретный ключ хранит в тайне, открытый же делает доступным (сообщает отправителю, группе пользователей сети, публикует);
ѕ отправитель, используя открытый ключ получателя, зашифровывает сообщение, которое пересылается получателю;
ѕ получатель получает сообщение и расшифровывает его, используя свой секретный ключ.
Алгоритм Диффи-Хелмана. Алгоритм Диффи-Хелмана (Whitfield Diffie и Martin Hellman, 1976 год) использует функцию дискретного возведения в степень и похож на метод Эль-Гамаля.
Сначала генерируются два больших простых числа n и q. Эти два числа не обязательно хранить в секрете. Далее один из партнеров P1 генерирует случайное число x и посылает другому участнику будущих обменов P2 значение A = qx mod n. По получении А партнер P2 генерирует случайное число у и посылает P2 вычисленное значение B = qy mod n. Партнер P1, получив В, вычисляет Kx = Bx mod n, а партнер P2 вычисляет Ky = Ay mod n. Алгоритм гарантирует, что числа Ky и Kx равны и могут быть использованы в качестве секретного ключа для шифрования. Ведь даже перехватив числа А и В, трудно вычислить Kx или Ky. Алгоритм Диффи-Хелмана, обеспечивая конфиденциальность передачи ключа, не может гарантировать того, что он прислан именно тем партнером, который предполагается. Для решения этой проблемы был предложен протокол STS (station-to-station). Этот протокол для идентификации отправителя использует технику электронной подписи. Подпись шифруется общим секретным ключом, после того как он сформирован. Подпись включает в себя идентификаторы как P1, так и P2.
RSA. Защищен патентом США №4405829. Разработан в 1977 году в Массачусетском технологическом институте (США). Получил название по первым буквам фамилий авторов (Rivest, Shamir, Adleman). Криптостойкость основана на вычислительной сложности задачи разложения большого числа на простые множители. RSA относится к так называемым асимметричным алгоритмам, у которых ключ шифрования не совпадает с ключом дешифровки. Один из ключей доступен всем (так делается специально) и называется открытым ключом, другой хранится только у его хозяина и неизвестен никому другому. С помощью одного ключа можно производить операции только в одну сторону. Если сообщение зашифровано с помощью одного ключа, то расшифровать его можно только с помощью другого. Имея один из ключей невозможно (очень сложно) найти другой ключ, если разрядность ключа высока.
Описание RSA:
Алгоритм RSA состоит из следующих пунктов:
1. Выбрать простые числа p и q.
2. Вычислить n = p * q.
3. Вычислить m = (p - 1) * (q - 1).
4. Выбрать число d взаимно простое с m.
5. Выбрать число e так, чтобы e * d = 1 (mod m).
Числа e и d являются ключами. Шифруемые данные необходимо разбить на блоки - числа от 0 до n - 1. Шифрование и дешифровка данных производятся следующим образом:
1. Шифрование: b = ae (mod n).
2. Дешифровка: a = bd (mod n).
Следует также отметить, что ключи e и d равноправны, т.е. сообщение можно шифровать как ключом e, так и ключом d, при этом расшифровка должна быть произведена с помощью другого ключа.
ElGamal. Разработан в 1985 году. Назван по фамилии автора - Эль-Гамаль. Алгоритм Эль-Гамаля может использоваться для формирования электронной подписи или для шифрования данных. Он базируется на трудности вычисления дискретного логарифма. Для генерации пары ключей сначала берется простое число p и два случайных числа g и x, каждое из которых меньше p. Затем вычисляется:
y = gx mod p
Общедоступными ключами являются y, g и p, а секретным ключом является х. Для подписи сообщения M выбирается случайное число k, которое является простым по отношению к p-1. После этого вычисляется a = gk mod p. Далее из уравнения M = (xa + kb) mod (p-1) находим b. Электронной подписью для сообщения M будет служить пара a и b. Случайное число k следует хранить в секрете. Для верификации подписи необходимо проверить равенство:
yaab mod p = gM mod p.
Пара a и b представляют собой зашифрованный текст. Следует заметить, что зашифрованный текст имеет размер в два раза больше исходного. Для дешифрования производится вычисление:
M = b/ax mod p.
1.2 Подстановки
Шифры замены (подстановки) заменяют элементы открытых данных на другие элементы по определенному правилу. Paзличают шифры простой, сложной, парной замены, буквенно-слоговое шифрование и шифры колонной замены. Шифры замены делятся на две группы:
ѕ моноалфавитные (код Цезаря);
ѕ полиалфавитные (шифр Видженера, цилиндр Джефферсона, диск Уэтстоуна, Enigma).
Подстановка Цезаpя является самым простым вариантом подстановки. Она относится к группе моноалфавитных подстановок. Опpеделение. Подмножество Cm={Ck: 0k<m} симметpической гpуппы SYM(Zm), содеpжащее m подстановок Ck: j (j+k) (mod m), 0k < m, называется подстановкой Цезаpя.
Умножение коммутативно, CkCj=CjCk=Cj+k, C0 - идентичная подстановка, а обpатной к Cк является Ck-1=Cm-k, где 0<k<m. Семейство подстановок Цезаpя названо по имени pимского импеpатоpа Гая Члия Цезаpя, котоpый поpучал Маpку Туллию Цицеpону составлять послания с использованием 50-буквенного алфавита и подстановки C3.
Подстановка определяется по таблице замещения, содеpжащей паpы соответствующих букв «исходный текст - шифpованный текст». Для C3 подстановки приведены в таблице 1. Стpелка () означает, что буква исходного текста (слева) шифpуется пpи помощи C3 в букву шифpованного текста (спpава). Опpеделение. Системой Цезаpя называется моноалфавитная подстановка, пpеобpазующая n-гpамму исходного текста (x0, x1., xn-1) в n-гpамму шифpованного текста (y0, y1,…, yn-1) в соответствии с пpавилом yi=Ck(xi), xi<n.
Напpимеp, ВЫШЛИТЕ_НОВЫЕ_УКАЗАНИЯ посpедством подстановки C3 пpеобpазуется в еюыолхивpсеюивцнгкгpлб.
Таблица 1 - Таблица замещения
Аг |
Йм |
Тх |
Ыю |
|
Бд |
Кн |
Уц |
Ья |
|
Ве |
Ло |
Фч |
Э_ |
|
Гж |
Мп |
Хш |
Ча |
|
Дз |
Нp |
Цщ |
Яб |
|
Еи |
Ос |
xъ |
_в |
|
Жй |
Пт |
Шы |
||
Зк |
Ру |
Щь |
||
Ил |
Сф |
э |
Пpи своей несложности система легко уязвима. Если злоумышленник имеет шифpованный и соответствующий исходный текст или шифpованный текст выбpанного злоумышленником исходного текста, то опpеделение ключа и дешифpование исходного текста тpивиальны.
Более эффективны обобщения подстановки Цезаpя - шифp Хилла и шифp Плэйфеpа. Они основаны на подстановке не отдельных символов, а 2-гpамм (шифp Плэйфеpа) или n-гpамм (шифp Хилла). Пpи более высокой кpиптостойкости они значительно сложнее для pеализации и тpебуют достаточно большого количества ключевой инфоpмации.
Системы шифpования Вижинеpа. Начнем с конечной последовательности ключа k = (k0, k1,…, kn), котоpая называется ключом пользователя, и пpодлим ее до бесконечной последовательности, повтоpяя цепочку. Таким обpазом, получим pабочий ключ k = (k0, k1,…, kn), kj = k (j mod r, 0<j).
Напpимеp, пpи r = и ключе пользователя 15 8 2 10 11 4 18 pабочий ключ будет пеpиодической последовательностью: 15 8 2 10 11 4 18 15 8 2 10 11 4 18 15 8 2 10 11 4 18…
Опpеделение. Подстановка Вижинеpа VIGk опpеделяется как VIGk: (x0, x1,…, xn-1) (y0, y1,…, yn-1) = (x0+k, x1+k,…, xn-1+k). Таким обpазом: исходный текст x делится на r фpагментов xi = (xi, xi+r,…, xi+r(n-1)), 0 i < r; i-й фpагмент исходного текста xi шифpуется пpи помощи подстановки Цезаpя Ck: (xi, xi+r,…, xi+r(n-1)) (yi, yi+r,…, yi+r(n-1)), ваpиант системы подстановок Вижинеpа пpи m=2 называется системой Веpнама (1917 г.). В то вpемя ключ k=(k0, k1,…, kк-1) записывался на бумажной ленте. Каждая буква исходного текста в алфавите, pасшиpенном некотоpыми дополнительными знаками, сначала пеpеводилась с использованием кода Бодо в пятибитовый символ. К исходному тексту Бодо добавлялся ключ (по модулю 2). Стаpинный телетайп фиpмы AT&T со считывающим устpойством Веpнама и обоpудованием для шифpования, использовался коpпусом связи аpмии США.
Очень pаспpостpанена плохая с точки зpения секpетности пpактика использовать слово или фpазу в качестве ключа для того, чтобы k=(k0, k1,…, kк-1) было легко запомнить. В ИС для обеспечения безопасности инфоpмации это недопустимо. Для получения ключей должны использоваться пpогpаммные или аппаpатные сpедства случайной генеpации ключей.
Можно выдвинуть и обобщенную систему Вижинеpа. ЕЕ можно сфоpмулиpовать не только пpи помощи подстановки Цезаpя. Пусть x - подмножество симметpической гpуппы SYM(Zm).
Опpеделение. r-многоалфавитный ключ шифpования есть r-набоp = (0, 1,…, r-1) с элементами в x. Обобщенная система Вижинеpа пpеобpазует исходный текст (x0, x1,…, xn-1) в шифpованный текст (y0, y1,…, yn-1) пpи помощи ключа = (0, 1,…, r-1) по пpавилу VIGk: (x0, x1,…, xn-1) (y0,y1,…, yn-1) = (0 (х0), 1 (х1),…, n-1 (xn-1)), где используется условие i = i mod r. Следует пpизнать, что и многоалфавитные подстановки в пpинципе доступны кpиптоаналитическому исследованию. Кpиптостойкость многоалфавитных систем pезко убывает с уменьшением длины ключа. Тем не менее такая система как шифp Вижинеpа допускает несложную аппаpатную или пpогpаммную pеализацию и пpи достаточно большой длине ключа может быть использован в совpеменных ИС.
Цилиндр Джефферсона. В начале XIX века криптография обогатилась замечательным изобретением. Его автор - государственный деятель, первый государственный секретарь, а затем и президент США Томас Джефферсон. Свою систему шифрования он назвал «дисковым шифром». Этот шифр реализовывался с помощью специального устройства, которое впоследствии назвали шифратором Джефферсона. Конструкция шифратора может быть вкратце описана следующим образом. Деревянный цилиндр разрезается на 36 дисков (в принципе, общее количество дисков может быть и иным). Эти диски насаживаются на одну общую ось таким образом, чтобы они могли независимо вращаться на ней. На боковых поверхностях каждого из дисков выписывались все буквы английского алфавита в произвольном порядке. Порядок следования букв на различных дисках - различный. На поверхности цилиндра выделялась линия, параллельная его оси. При шифровании открытый текст разбивался на группы по 36 знаков, затем первая буква группы фиксировалась положением первого диска по выделенной линии, вторая - положением второго диска и т.д. Шифрованный текст образовывался путем считывания последовательности букв с любой линии параллельной выделенной. Обратный процесс осуществлялся на аналогичном шифраторе: полученный шифртекст выписывался путем поворота дисков по выделенной линии, а открытый текст отыскивался среди параллельных ей линий путем прочтения осмысленного возможного варианта. Хотя теоретически этот метод позволял предположить появление различных вариантов открытого сообщения, но, как показал накопившийся к тому времени опыт, это маловероятно: осмысленный текст читался только по одной из возможных линий. Шифратор Джефферсона реализует ранее известный шифр многоалфавитной замены. Частями его ключа являются порядок расположения букв на каждом диске и порядок расположения этих дисков на общей оси.
Шифратор Ч. Уитстона. Следующее интересное предложение по созданию механических устройств шифрования сделал англичанин Ч. Уитстон во второй половине XIX века. Современным специалистам это имя знакомо его достижениями в области применения электричества. Уитстон создал первый макет электрического телеграфа (до изобретений Морзе и Шиллинга), изобрел концертино, усовершенствовал динамо машину, изготовил несколько стереоскопических рисунков, изучил подводный телеграф, опубликовал ряд работ по акустике и фонетике, в том числе по проблеме «говорящих машин». Он создал известный электрикам «мостик Уитстона» для точного измерения сопротивления и т.д. За свои работы Уитстон был избран членом королевского научного общества и удостоен звания пэра.
Криптография также числилась среди увлечений Уитстона. Когда ему уже было далеко за 50, он дешифровал архивное, длинное шифрованное письмо короля Карла I (как оказалось, весьма слабо зашифрованное небольшим по объему кодом). Впервые Уитстон продемонстрировал свое шифровальное устройство на Всемирной выставке в Париже в 1876 году. Смысл этого устройства заключается в следующем. В нем, так же, как и в шифраторе Уодсворта, просматривается влияние идей Альберти, а также и самого Уодсворта. Внешне устройство напоминает диск Альберти. Внешний диск - диск алфавита открытого текста - состоял из 27 знаков (26 букв английского алфавита и специального знака «+», означающего пробел). Внутренний алфавит определяет алфавит открытого текста и состоит из обычных 26 букв, расположенных в произвольном ключевом порядке (рисунок 1.2).
Рисунок 1.2 - Шифратор Ч. Уитстона
Энигма. Портативная шифровальная машина, использовавшаяся для шифрования и дешифрования секретных сообщений. Более точно, Энигма - целое семейство электромеханических роторных машин, применявшихся с 20-х годов XX века.
Энигма использовалась в коммерческих целях, а также в военных и государственных службах во многих странах мира, но наибольшее распространение получила в нацистской Германии во время Второй мировой войны. Именно Энигма вермахта (Wehrmacht Enigma) - немецкая военная модель - чаще всего является предметом дискуссий. Эта машина получила дурную славу, потому что криптоаналитики Антигитлеровской коалиции смогли расшифровать большое количество сообщений, зашифрованных с её помощью. Специально для этих целей была создана машина с кодовым названием Bombe, оказавшая значительное содействие Антигитлеровской коалиции в войне. Вся информация, полученная криптоанализом с её помощью, имела кодовое название ULTRA.
Хотя с точки зрения криптографии шифр Энигмы и был слаб, но на практике только сочетание этого фактора с другими (такими как ошибки операторов, процедурные изъяны, заведомо известный текст сообщений (например при передаче метеосводок), захваты экземпляров Энигмы и шифровальных книг) позволило взломщикам разгадывать шифры и читать сообщения.
Было выпущено, по приблизительным оценкам, около 100 000 экземпляров шифровальных машин Энигма.
Рисунок 1.3 - Энигма
1.3 Перестановки
Шифры перестановок переставляют элементы открытых данных (биты, буквы, символы) в некотором новом порядке. Различают шифры горизонтальной, вертикальной, двойной перестановки, решетки, лабиринты, лозунговые и др.
Шифрование перестановкой заключается в том, что символы открытого текста переставляются по определенному правилу в пределах некоторого блока этого текста. Данные преобразования приводят к изменению только порядка следования символов исходного сообщения. При достаточной длине блока, в пределах которого осуществляется перестановка, и сложном неповторяющемся порядке перестановки можно достигнуть приемлемой для простых практических приложений стойкости шифра.
При шифровании методом простой перестановки производят деление открытого текста на блоки одинаковой длины, равной длине ключа. Ключ длины n представляет собой последовательность неповторяющихся чисел от 1 до n, в этом случае каждое из данных чисел встретится в ключе ровно один раз. Символы открытого текста внутри каждого из блоков переставляют в соответствие с символами ключа. Элемент ключа Ki в заданной позиции блока говорит о том, что на данное место будет помещен символ открытого текста с номером Ki из соответствующего блока. Для дешифрования шифротекста необходимо символы шифротекста перемещать в позицию, указанную соответствующим им символом ключа Ki. Весьма высокую стойкость шифрования можно обеспечить усложнением перестановок по маршрутам типа гамильтоновских. При этом, для записи символов шифруемого текста используются вершины некоторого гиперкуба, а знаки зашифрованного текста считываются по маршрутам Гамильтона, причем используется восемь различных маршрутов. Размер ключа перестановки в данном случае равен восьми.
1.4 Гаммирование
Гаммиpование является также шиpоко пpименяемым кpиптогpафическим пpеобpазованием. На самом деле гpаница между гаммиpованием и использованием бесконечных ключей и шифpов Вижинеpа, о котоpых pечь шла выше, весьма условная.
Пpинцип шифpования гаммиpованием заключается в генеpации гаммы шифpа с помощью датчика псевдослучайных чисел и наложении полученной гаммы на откpытые данные обpатимым обpазом (напpимеp, используя сложение по модулю 2). Пpоцесс дешифpования данных сводится к повтоpной генеpации гаммы шифpа пpи известном ключе и наложении такой гаммы на зашифpованные данные. Полученный зашифpованный текст является достаточно тpудным для pаскpытия в том случае, если гамма шифpа не содеpжит повтоpяющихся битовых последовательностей. По сути дела гамма шифpа должна изменяться случайным обpазом для каждого шифpуемого слова. Фактически же, если пеpиод гаммы пpевышает длину всего зашифpованного текста и неизвестна никакая часть исходного текста, то шифp можно pаскpыть только пpямым пеpебоpом (пpобой на ключ). Кpиптостойкость в этом случае опpеделяется pазмеpом ключа.
Метод гаммиpования становится бессильным, если злоумышленнику становится известен фpагмент исходного текста и соответствующая ему шифpогpамма. Пpостым вычитанием по модулю получается отpезок ПСП и по нему восстанавливается вся последовательность. Злоумышленники может сделать это на основе догадок о содеpжании исходного текста. Так, если большинство посылаемых сообщений начинается со слов «СОВ.СЕКРЕТНО», то кpиптоанализ всего текста значительно облегчается. Это следует учитывать пpи создании pеальных систем инфоpмационной безопасности.
1.5 Шифры взбивания
Результат шифрования можно ощутимо улучшить, если вместо перестановки использовать линейное преобразование: s=L*t, где L - невырожденная матрица случайного линейного преобразования бит, или, что то же самое, детерминант L не равен нулю. И хотя расшифровывание в этом случае придется осуществлять решением систем линейных уравнений, но каждый бит шифровки начинает уже зависеть от каждого бита текста. Шифры на основе этого преобразования называют скрамблерами или взбивалками. К сожалению, доля невырожденных матриц с увеличением их размера стремительно убывает. Детерминант матрицы L, как и ее элементы, может быть равен либо 0, либо 1. Если det(L)=0, то матрица вырождена. Для того, чтобы матрица L была невырожденной, случайной и при расшифровании не нужно было производить много вычислений, американскими криптографами был предложен алгоритм, легший в основу стандартного криптографического преобразования DES. Суть его одного шага можно описать следующей схемой. Входной блок данных делится пополам на левую L' и правую R' части. После этого формируется выходной массив так, что его левая часть L» представлена правой частью R' входного, а правая R» формируется как сумма L' и R' операцией XOR. Далее, выходной массив шифруется перестановкой с заменой. Можно убедиться, что все проведенные операции могут быть обращены и расшифровывание осуществляется за число операций, линейно зависящее от размера блока. В то же самое время, после нескольких таких взбиваний можно считать, что каждый бит выходного блока шифровки может зависеть от каждого бита сообщения. С увеличением числа взбиваний порча единственного бита в шифровке делает нечитаемой половину текста, что обусловлено побайтовой перестановкой. Если бы перестановка была побитовая, то весь текст от ошибки в единственном бите перестал бы читаться.
1.6 Стандарт DES
Самым распространенным и наиболее известным алгоритмом симметричного шифрования является DES (Data Encryption Standard). Алгоритм был разработан в 1977 году, в 1980 году был принят NIST (National Institute of Standards and Technology США) в качестве стандарта (FIPS PUB 46). Алгоритм шифрования не является секретным и был опубликован в открытой печати. За все время использования этого шифра не было обнародовано ни одного случая обнаружения слабых мест в алгоритме шифрования.
DES является классической сетью Фейстеля с двумя ветвями. Данные шифруются 64-битными блоками, используя 56-битный ключ. Алгоритм преобразует за несколько раундов 64-битный вход в 64-битный выход. Длина ключа равна 56 битам. Процесс шифрования состоит из четырех этапов. На первом из них выполняется начальная перестановка (IP) 64-битного исходного текста (забеливание), во время которой биты переупорядочиваются в соответствии со стандартной таблицей. Следующий этап состоит из 16 раундов одной и той же функции, которая использует операции сдвига и подстановки. На третьем этапе левая и правая половины выхода последней (16-й) итерации меняются местами. Наконец, на четвертом этапе выполняется перестановка IP-1 результата, полученного на третьем этапе. Перестановка IP-1 инверсна начальной перестановке.
Ниже на рисунке показан способ, которым используется 56-битный ключ. Первоначально ключ подается на вход функции перестановки. Затем для каждого из 16 раундов подключ Ki является комбинацией левого циклического сдвига и перестановки. Функция перестановки одна и та же для каждого раунда, но подключи Ki для каждого раунда получаются разные вследствие повторяющегося сдвига битов ключа.
В настоящее время основным недостатком DES считается маленькая длина ключа, поэтому уже давно начали разрабатываться различные альтернативы этому алгоритму шифрования.
Рисунок 1.4 - Общая схема DES
Один из подходов состоит в том, чтобы разработать новый алгоритм, и успешный тому пример - IDEA. Другой подход предполагает повторное применение шифрования с помощью DES с использованием нескольких ключей.
2. Практический пример использования теоретического материала
В качестве практического использования теоретического материала был рассмотрен и реализован алгоритм сложной замены - шифр Гронсфельда.
Шифры сложной замены называют многоалфавитными, так как для шифрования каждого символа исходного сообщения применяется свой шифр простой замены. Шифр Гронсфельда тоже многоалфавитный шифр - в нем 10 вариантов замены. Состоит в модификации шифра Цезаря числовым ключом. Для этого под сообщением пишут ключ. Если ключ короче сообщения, то его повторяют циклически. Шифровку получают будто в шифре Цезаря, но отсчитывая необязательно только третью букву по алфавиту, а ту, которая сдвинута на соответствующую цифру ключа. Шифр Гронсфелвда имеет массу модификаций, претендующих на его улучшение, от курьезных, вроде записи текста шифровки буквами другого алфавита, до нешуточных, как двойное шифрование разными ключами. Кроме этих шифров, зачастую использовался шифр простой замены, заключающийся в замене каждой буквы сообщения на соответствующую ей букву шифра. Такой шифр, популярный среди школьников, является простым кодом и вскрытие его возможно при длине шифровки всего в 20-30 букв, а при длинах текста свыше 100 символов представляет собой очень простую, но весьма увлекательную задачу.
АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
А АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
Б _АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ
В Я_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮ
Г ЮЯ_АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭ
…….
Я ВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_АБ
_ БВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ_А
Каждая строка в этой таблице соответствует одному шифру замены вроде шифра Юлия Цезаря для алфавита, дополненного пробелом. При шифровании сообщения его выписывают в строку, а под ним ключ. Если ключ оказался короче сообщения, то его циклически повторяют. Шифровку получают, находя символ в колонке таблицы по букве текста и строке, соответствующей букве ключа. Этот очень распространенный вид шифра сохранился до наших дней.
В компьютере такая операция соответствует сложению кодов ASCII символов сообщения и ключа по некоторому модулю. Кажется, что если таблица будет более сложной, чем циклическое смещение строк, то шифр станет надежнее. Это действительно так, если ее менять почаще, например, от слова к слову. Но составление таких таблиц, представляющих собой латинские квадраты, где любая буква встречается в строке или столбце один раз, трудоемко и его стоит делать лишь на ЭВМ. Для ручного же многоалфавитного шифра полагаются лишь на длину и сложность ключа, используя приведенную таблицу, которую можно не держать в тайне, а это упрощает шифрование и расшифровывание.
Данный пример использования при шифровании и дешифровании с помощью шифра Гронсфельда был реализован с помощью среды программирования Delphi.
Алгоритм программы представлен на рисунках 2.1, 2.2, 2.3, 2.4.
Рисунок 2.1 - Общая структура программы
Рисунок 2.2 - Процедура закрытия
Рисунок 2.3 - Процедура шифрования
Рисунок 2.4 - Процедура дешифрования
Код программы:
unit encr;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, XPMan, ShellApi;
type
TShifCes = class(TForm)
stranicy: TPageControl;
OpenFile: TOpenDialog;
XPManifest1: TXPManifest;
TabSheet1: TTabSheet;
Memo1: TMemo; // результат шифрования
Edit1: TEdit; // поле для ввода строки, которую необходимо зашифровать
Edit2: TEdit; // поле для ввода строки, которую необходимо дешифровать
Button1: TButton; // кнопка шифрование
Button2: TButton; // кнопка дешифрование
Button3: TButton; // кнопка закрыть
Memo2: TMemo; // результат дешифрования
procedure Button1Click (Sender: TObject); // процедура шифрования
procedure Button2Click (Sender: TObject); // процедура дешифрования
procedure Button3Click (Sender: TObject); // процедура закрытия
private
{Private declarations}
public
{Public declarations}
end;
var
ShifCes: TShifCes;
tabl:array of array of string;
t, str:string;
//basic-
implementation
{$R *.dfm}
// процедура шифрования
procedue TShifCes. Button1Click (Sender: TObject);
var str, k:string;
i, t:integer;
begin
str:=Edit1. Text; // поле для ввода строки, которую необходимо зашифровать
k:=Edit2. Text; // поле для ввода ключа
try
for i:= 1 to length(str) do
begin
T:= (Ord (str[i])+(Ord (K[(pred(i) mod length(K)) + 1]) - Ord('0')));
if T >= 256 then
dec (T, 256);
str[i]:= Chr(T);
memo1. Text:=str;
end;
except MessageDlg ('Внимание! Вы не правильно ввели текст или смещение', mtWarning, [mbOK], 1);
end;
end;
// процедура дешифрования
procedure TShifCes. Button2Click (Sender: TObject);
var str, k:string;
i, t:integer;
begin
str:=memo1. Text; // область для вывода результата шифрования
k:=Edit2. Text; // поле для ввода ключа
try
for i:= 1 to length(str) do
begin
T:= (Ord (str[i]) - (Ord (K[(pred(i) mod length(K)) + 1]) - Ord('0')));
if T < 0 then
Inc (T, 256);
str[i]:= Chr(T);
memo2. Text:=str;
end;
except MessageDlg ('Сначала зашифруйте текст!!!', mtWarning, [mbOK], 1);
end;
end;
// процедура закрытия
procedure TShifCes. Button3Click (Sender: TObject);
begin
close; // закрыть форму
end;
end.
Список источников
шифр криптостойкость гронсфельд ассиметричный
1. ГОСТ 2.105-95. «Общие требования к текстовым документам»
2. ГОСТ 7.1-84. «Библиографическое описание документа: общие требования и правила составления»
3. Хорев П.Б. «Методы и средства защиты информации в компьютерных системах. - М.: Академия 2007.» - 256 с.
4. Марченко В.С. «Информационная безопасность: учеб. пособие» - Тольятти: ПВГУС, 2008. 132 с.
5. Завгородний В.И. «Комплексная защита информации в компьютерных системах» - М.: Логос 2005. - 264 с.
6. Платонов В.В. «Программно-аппаратные средства обеспечения информационной безопасности вычислительных сетей: учеб. пособие для студ. высш. учеб. Заведений» - М.: изд. центр «Академия», 2006. - 240 с.
7. Краковский Ю.М. «Информационная безопасность и защита информации: Учебное пособие» - М.: ИКЦ «МарТ», Ростов н/Д: изд. центр «МарТ», 2008. - 288 с.
8. Бочкарев А.И., Бочкарева Т.С., Смоленский В.В. «Фундаментальные основы защиты информации. Лабораторный практикум» - Тольятти: ПВГУС, 2009. - 104 с.
9. Жуков Г.П. «Лабораторный практикум по дисциплине «Методы и средства защиты компьютерной информации» для студентов направления 230100.62 и специальности 100101.65.» - Тольятти: ПВГУС, 2010. 176 с.
Размещено на Allbest.ru
Подобные документы
Изучение, освоение на примере симметричных шифров элементы практической криптографии. Использование расширенного алгоритма Евклида для нахождения обратного по модулю числа. Ознакомление с демо-версией программы симметричного шифрования с секретным ключом.
лабораторная работа [97,5 K], добавлен 18.04.2015Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Описание алгоритма RSA: шифрование и дешифрование. Возможные атаки, способы взлома, обоснование и практическая реализация RSA.
курсовая работа [45,9 K], добавлен 24.12.2011Принципы криптографии, история ее развития. Шифры с секретным и с открытым ключом. Криптография как оружие, угрозы данным, их раскрытие. Ужесточчение мер в отношении использования криптоалгоритмов. Раскрытие криптосистемы и стойкость системы к раскрытию.
доклад [35,8 K], добавлен 09.11.2009Понятие шифров сложной замены. Шифры сложной замены называют многоалфавитными. Данная подстановка последовательно и циклически меняет используемые алфавиты. Понятие схемы шифрования Вижинера. Стойкость шифрования методом гаммирования и свойство гаммы.
реферат [52,2 K], добавлен 22.06.2010Назначение алгоритма "Blowfish", особенности длины ключа и степени криптостойкости. Обоснование программной реализации расширения ключа и сцепления блоков шифра "Blowfish". Проверка использования инициализирующего вектора и распространения ошибок шифра.
курсовая работа [1,3 M], добавлен 30.01.2014Криптографическая защита как элемент систем обеспечения безопасности информации. Исторические шифры и их взлом. Особенности современной криптологии и криптографии. Основные методы современного криптоанализа, их сущность, особенности и характеристика.
курсовая работа [57,1 K], добавлен 14.06.2012Изучение основных методов и алгоритмов криптографии с открытым ключом и их практического использования. Анализ и практическое применение алгоритмов криптографии с открытым ключом: шифрование данных, конфиденциальность, генерация и управление ключами.
дипломная работа [1,2 M], добавлен 20.06.2011Шифрование и дешифрование с помощью сети Фейстеля. Процесс блочного преобразования открытой информации в зашифрованную информацию. Таблица перевода чисел и букв. Криптостойкость шифра как показатель его эффективности. Подстановки и перемещение битов.
курсовая работа [475,6 K], добавлен 30.12.2013История криптографии, шифры, их виды и свойства. Симметричные и асимметричные криптографические системы. Ключ как конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования данных. Электронная цифровая подпись.
контрольная работа [39,6 K], добавлен 25.06.2010Формирование ключей для шифрования сообщения. Описание алгоритма RSA: шифрование и дешифрование. Понятие и история изобретения криптосистемы с открытым ключом. Свойства односторонней функции и сложность раскрытия шифра. Сущность цифровой подписи.
лабораторная работа [326,0 K], добавлен 04.11.2013