Министерствообразования Российской Федерации
САМАРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ
УНИВЕРСИТЕТ
Кафедра прикладной математики и информатики
К У Р С О В А Я Р А Б О Т А
Современные криптографические методы
Студент IV-ИЭ-8 Альперт В. В.
Научный руководитель Пономарев В. П.
С а м а р а
2000
С О Д Е Р Ж А Н И Е
Стр.
Введение в криптографию______________________________________________ 3
Симметричные криптосистемы___________________________________________ 5
Стандарт шифрования данных ГОСТ 28147-89______________________________ 6
Международный алгоритм шифрования данных IDEA_______________________ 10
Алгоритм RSA_______________________________________________________ 12
Оценка надежности криптосистем_______________________________________ 14
ЗАКЛЮЧЕНИЕ_______________________________________________________ 19
ЛИТЕРАТУРА________________________________________________________ 20
Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день, появление вычислительных средств ускорило разработку и совершенствование криптографических методов.
Проблема использования криптографических методов в информационных системах стала в настоящий момент особо актуальна потому, что с одной стороны, расширилось использование компьютерных сетей, в частности глобальной сети Интернет, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц.
С другой стороны, появление новых мощных компьютеров, технологий сетевых и нейронных вычислений сделало возможным дискредитацию криптографических систем еще недавно считавшихся практически не раскрываемыми.
Проблемой защиты информации путем ее преобразования занимается криптология (kryptos - тайный, logos - наука). Криптология разделяется на два направления - криптографию и криптоанализ. Цели этих направлений прямо противоположны.
Криптография занимается поиском и исследованием математических методов преобразования информации.
Сфера интересов криптоанализа - исследование возможности расшифровывания информации без знания ключей.
Шифрование - преобразовательный процесс: исходный текст, который носит также название открытого текста, заменяется шифрованным текстом.
Дешифрование - обратный шифрованию процесс. На основе ключа шифрованный текст преобразуется в исходный.
Ключ - информация, необходимая для беспрепятственного шифрования и дешифрования текстов.
Криптосистемы разделяются на симметричные и системы с открытым ключом. В симметричных криптосистемах и для шифрования, и для дешифрования используется один и тот же ключ.
В системах с открытым ключом используются два ключа - открытый и закрытый, которые математически связаны друг с другом. Информация шифруется с помощью открытого ключа, который доступен всем желающим, а расшифровывается с помощью закрытого ключа, известного только получателю сообщения.
Электронной (цифровой) подписью называется присоединяемое к тексту его криптографическое преобразование, которое позволяет при получении текста другим пользователем проверить авторство и подлинность сообщения.
Криптостойкостью называется характеристика шифра, определяющая его стойкость к дешифрованию без знания ключа (т.е. криптоанализу). Имеется несколько показателей криптостойкости, среди которых:
· количество всех возможных ключей;
· среднее время, необходимое для криптоанализа.
Криптография в прошлом использовалась лишь в военных целях. Однако сейчас, с становлением информационного общества, она становится центральным инструментом для обеспечения конфиденциальности. По мере образования информационного общества, крупным государствам становятся доступны технологические средства тотального надзора за миллионами людей. Поэтому криптография становится одним из основных инструментов обеспечивающих конфиденциальность, доверие, авторизацию, электронные платежи, корпоративную безопасность и бесчисленное множество других важных вещей.
Все многообразие существующих криптографических методов можно свести к следующим классам преобразований:
Моно- и полиалфавитные подстановки.
Наиболее простой вид преобразований, заключающийся в замене символов исходного текста на другие (того же алфавита) по более или менее сложному правилу. Для обеспечения высокой криптостойкости требуется использование больших ключей.
Перестановки.
Также несложный метод криптографического преобразования. Используется, как правило, в сочетании с другими методами.
Гаммирование.
Этот метод заключается в наложении на исходный текст некоторой псевдослучайной последовательности, генерируемой на основе ключа.
Блочные шифры.
Представляют собой последовательность (с возможным повторением и чередованием) основных методов преобразования, применяемую к блоку (части) шифруемого текста. Блочные шифры на практике встречаются чаще, чем “чистые” преобразования того или иного класса в силу их более высокой криптостойкости. Российский и американский стандарты шифрования основаны именно на этом классе шифров.
Российский стандарт шифрования является блочным, т. е. преобразование ведется по блокам. Он включает в себя режим замены и два режима гаммирования. Стандарт ГОСТ 28147-89 формировался с учетом мирового опыта, и в частности, были приняты во внимание недостатки и нереализованные возможности алгоритма DES, поэтому использование стандарта ГОСТ предпочтительнее. Эффективность данного стандарта достаточно высока. Системы, основанные на ГОСТ 28147-89, позволяют зашифровать в секунду до нескольких десятков Кбайт данных. В него заложен метод, с помощью которого можно зафиксировать необнаруженную случайную или умышленную модификацию зашифрованной информации.
Введем ассоциативную операцию конкатенации. Если L и R – последовательность бит, то LR обозначает конкатенацию последовательностей, то есть LR - последовательность бит с размерностью равной сумме размерностей L и R, причем биты R следуют за битами L. Кроме того, будем использовать следующие операции сложения:
· A^B - побитовое сложение по модулю 2;
если A+B=>2, то A^B=А+B-2
если A+B<2 , то A^B=А+B, где A и B 1-битные числа.
· A[+]B - сложение по модулю 232;
если A+B=>232, то A[+]B=A+B-232
если A+B<232 , то A[+]B=A+В, где A и B 32-битные числа.
· A{+}B - сложение по модулю 232-1;
если A+B=>232-1, то A{+}B=A+B-232+1
если A+B<232-1 , то A{+}B=A+B, где A и B 32-битные числа.
Алгоритм криптографического преобразования предусматривает три режима работы. В стандарте ГОСТ используется ключ W длиной 256 бит, представляемый в виде восьми 32-разрядных чисел x(i).
W=X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)
Самый простой из возможных режимов - замена.
Пусть открытые блоки разбиты на блоки по 64 бит в каждом, которые обозначим как T(j).
Очередная последовательность бит T(j) разделяется на две последовательности B(0) и A(0) по 32 бита (правый и левый блоки). Далее выполняется итеративный процесс шифрования, описываемый следующими формулами, вид который зависит от i.
· Для i=1, 2, ..., 24, j=(i-1) (mod 8);
A(i) = f(A(i-1) [+]X(j)) ^ B(i-1)
B(i) = A(i-1)
· Для i=25, 26, ..., 31, j=32-i;
A(i) = f(A(i-1) [+]X(j)) ^ B(i-1)
B(i) = A(i-1)
· Для i=32
A(32) = A(31)
B(32) = f(A(31) [+]X(0)) ^ B(31).
Для дешифрования используется тот же ключ, но процесс дешифрования является инверсным по отношению к исходному.
· Для i=32
A(31) = A(32)
B(31) = f(A(32) [+]X(0)) ^ B(32).
· Для i=31, 30, ..., 25, j=32-i;
A(i-1) = B(i)
B(i-1) = f(B(i) [+]X(j)) ^ A(i)
· Для i=24, 23, ..., 1, j=(i-1) (mod 8);
A(i-1) = B(i)
B(i-1) = f(B(i) [+]X(j)) ^ A(i)
Полученные A(0), B(0) – расшифрованный текст.
Здесь i обозначает номер итерации. Функция f – функция шифрования.
Функция шифрования состоит из операции подстановки К применяемой к 32-разрядному аргументу. 64-разрядный аргумент разбивается на два 32-разрядных вектора. Блок подстановки K состоит из 8 узлов замены К(1).....К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 4-разрядный вектор разбивается на 8 последовательно идущих 4-разрядных векторов, каждый из которых преобразуется в 4-разрядный вектор соответствующим узлом замены, представляющим таблицу из 16 целых чисел в диапазоне 0...15. Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные векторы последовательно объединяются в 32-разрядный выходной.