Организация криптозащищенного обмена информацией на основе протокола PGP
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ВВЕДЕНИЕ
Проблема защиты информации путем ее преобразования, исключающего ее прочтение посторонним лицом, волновала человеческий ум с давних времен. С широким распространением письменности криптография стала формироваться как самостоятельная наука. Первые криптосистемы встречаются уже в начале нашей эры. Бурное развитие криптографические системы получили в годы первой и второй мировых войн. Начиная с послевоенного времени и по нынешний день появление вычислительных средств ускорило разработку и совершенствование криптографических методов [1].
Проблема использования криптографических методов в информационных системах (ИС) стала в настоящий момент особо актуальна, т.к. расширилось использование компьютерных сетей, в частности глобальной сети Internet, по которым передаются большие объемы информации государственного, военного, коммерческого и частного характера, не допускающего возможность доступа к ней посторонних лиц.
В первой главе рассмотрены два алгоритма шифрования - асимметричный (РЮКЗАЧНЫЙ) и симметричный (ANUBIS). Эти алгоритмы были разработаны в конце прошлого века. Первый из них широко используется в настоящий момент. Второй разрабатывался специально для участия в конкурсе NESSIE, и является аналогом нового стандарта шифрования США под названием AES.
Во второй главе подробно описаны и методы, используемые для получения зашифрованных сообщений и их расшифрования.
В третьей главе описывается программное средство, выполняющее шифрование сообщения и ключа и передачу их абоненту.
1. ПОДРОБНЫЙ ОБЗОР РЮЗКАЧНОГО АЛГОРИТМА И АЛГОРИТМА ANUBIS
1.1 Рюкзачный алгоритм
криптографический метод информационная система
Наиболее наглядным способом рассмотрения работы алгоритма является разбор примера его работы:
Этап вычисления ключей
b = (1, 4, 6, 14, 30) - супервозрастающая последовательность;
m = 60 - случайное число, большее, чем сумма bi, i = 1..6;
w = 11 - случайное число, взаимно простое с m;
? = (2, 1, 5, 3, 4) - массив перестановок, выбирается произвольно (в данном случае элемент b2 - будет идти первым, b1 - вторым и т.д.). Введен для повышения криптостойкости алгоритма;
Открытый ключ вычисляется по формуле:
ai = w * b?(i) mod (m)
Получим:
a1 = 11 * 4 = 44;2 = 11 * 1 = 11;3 = 11 * 30 = 330 mod (60) = 30;4 = 11 * 6 = 66 mod (60) = 6;5 = 11 * 14 = 154 mod (60) = 34;
Открытый ключ:
a = (44, 11, 30, 6 34);
Закрытый ключ является совокупностью (?, w, m, b).
Пусть необходимо зашифровать последовательность
M = 01011
С = ? Mi ai = 11 + 6 + 34 = 51 - число, которое передается в канал.
Получатель, приняв сообщение, расшифровывает его:
H = w-1 * C mod (m);= 11; w -1 = 11;= 11 * 51 mod 60 = 21; = ? zi bi ;
H = _ * 1 + _ * 4 + _ * 6 + _ * 14 + _ * 30 = 21
Коэффициенты(0 или 1) восстанавливаются справа налево в соответствие с тем, входит ли число, для которого необходимо вычислить коэффициент в результат.
Вычислим коэффициенты:
Для 21:
коэффициент 0:
H = _ * 1 + _ * 4 + _ * 6 + _ * 14 + 0 * 30 = 21
Для 14:
коэффициент 1
Если число меньше результата (коэффициент равен 1) , его необходимо вычесть из результата:
21- 14 = 7
H = _ * 1 + _ * 4 + _ * 6 + 1 * 14 + 0 * 30 = 7
Для 6:
7 > 6 => коэффициент 1;
- 6 = 1
H = _ * 1 + _ * 4 + 1 * 6 + 1 * 14 + 0 * 30 = 1
Для 4:
1 коэффициент 0;
H = 1 * 1 + 0 * 4 + 1 * 6 + 1 * 14 + 0 * 30 = 1
Соответственно, для 1 коэффициент равен 1.
H = 1* 1 + 0 * 4 + 1 * 6 + 1 * 14 + 0 * 30 = 0
М = 01011
Переставив восстановленные коэффициенты в соответствие с массивом перестановок, получим последовательность M = 01011, которую необходимо было передать.
1.2 Алгоритм ANUBIS
Блочный шифр Anubis разработан специально для участия в конкурсе NESSIE интернациональным дуэтом авторов: бельгийцем Винсентом Рид-жменом и бразильцем Пауло Баррето (Paulo S. L. М. Barreto).
Алгоритм назван в честь древнеегипетского бога Анубиса- бога бальзамирования (embalming) и погребения (entombment); к его ведению авторы алгоритма решили отнести и криптографию. шифрует данные блоками по 128 битов с использованием ключа размером от 128 до 320 битов; размер ключа должен быть кратен 16 битам.
Данный алгоритм продолжает серию алгоритмов, соавтором которых является Винсент Риджмен: Square, SHARK и Rijndael. Все эти алгоритмы объединяет их относительно редко встречающаяся (напротив, частая среди алгоритмов- участников конкурса NESSIE) структура типа квадрат и весьма схожий набор выполняемых преобразований.
Структура алгоритма
Алгоритм представляет блок шифруемых данных в виде 16-байтового массива, который для удобства описания представлен в виде квадрата размером 44 байта. В каждом раунде алгоритма выполняются следующие действия.
Рисунок 1. Операция ? алгоритма Anubis
Табличная замена ? (рисунок 1), выполняемая согласно таблице S (таблица 1, указаны шестнадцатеричные значения).
Таблица 1
Таблица шестнадцатеричных значений
А7D3Е671DOАС4 D79ЗАС991FCIE4754BDЗСА57АFB63ВЗDDD4Е5ВЗ05BEА933ОСА239DF29DA2ВA3СВ404В22АА244170А 6F95АЕ 2ВО367DЕ433FF602003ЗВ5ЕАВ7 F737С2С57-D2DC6D7 Е0D5394032327065 FAD67505543ОЕ52ЕА425В5 D30535159ЗС4Е33ЗА7214Е706DE50ЗЕ92D17793459 АСЕ2D0362В6В9BF966В3F0712АЕ403446ЗЕDBOFЕСОСС1А1СОD61DF461ЗВ10D363АОВ1OA696049FA76049Е9 В6Е9902В793ВС3F35IFВ4F31 12 Е00251 С2А3D054F7 ВВ23290AF19A3F7739D1574EEOA9FOF1 В7536349C4 A971A65F6ED09BB2633EB6 F31046 A430117El37F53DE3233044166621FED531D935130264F2F 156CD32C3BAFOFED531D935130264F2F 156CD32C3BAFO
Значения таблицы выбраны псевдослучайным образом с учетом необходимости ее со