
- •Минобрнауки россии
- •Кафедра комплексной защиты информационных систем курсовая работа
- •Введение
- •1. Теоретико-математические основы симметричных криптосистем
- •1. 1 Общие понятия симметричных шифров
- •1. 2 Преимущества и недостатки симметричных криптосистем
- •1.3 Блочные шифры
- •2. Алгоритм шифрования blowfish
- •2. 1 Описание алгоритма Blowfish
- •2.2 Процедура расширения ключа
- •2.3 Скорость работы и криптостойкость алгоритма Blowfish
- •3 Практическая реализация алгоритма blowfish
- •3.1 Блок-схема алгоритма шифрования/расшифрования
- •3. 2 Листинг программы
- •3. 3 Интерфейс программы и результаты ее работы
- •Заключение
- •Библиографическийсписок
1. 2 Преимущества и недостатки симметричных криптосистем
Преимущества симметричных криптографических систем:
скорость (по данным Applied Cryptography — на 3 порядка выше)
простота реализации (за счёт более простых операций)
меньшая требуемая длина ключа для сопоставимой стойкости
изученность (за счёт большего возраста).
Недостатки симметричных криптографических систем
сложность управления ключами в большой сети. Означает квадратичное возрастание числа пар ключей, которые надо генерировать, передавать, хранить и уничтожать в сети. Для сети в 10 абонентов требуется 45 ключей, для 100 уже 4950, для 1000 — 499500 и т. д.
сложность обмена ключами. Для применения необходимо решить проблему надёжной передачи ключей каждому абоненту, так как нужен секретный канал для передачи каждого ключа обеим сторонам.
Для компенсации недостатков симметричного шифрования в настоящее время широко применяется комбинированная (гибридная) криптографическая схема, где с помощью асимметричного шифрования передаётся сеансовый ключ, используемый сторонами, для обмена данными с помощью симметричного шифрования.
Важным свойством симметричных шифров является невозможность их использования для подтверждения авторства, так как ключ известен каждой стороне.
1.3 Блочные шифры
Блочный шифр — разновидность симметричного шифра. В отличие от поточного, в блочном шифре содержимое одного блока никак не влияет на результат шифрования других блоков и чаще всего блоковый шифр обрабатывает открытый текст блоками по несколько (как правило 8 или 16) байт за одну итерацию.
Так как размер шифруемого сообщения не всегда кратен размеру блока, возникает проблема дополнения, имеющая несколько решений. Можно, например, передавать в незашифрованном виде размер полезной части зашифрованных данных и после расшифровки лишние байты просто отбрасывать. На практике же часто применяют другой способ.
Если алгоритм оперирует 8-байтовыми блоками данных, а в последнем блоке, например, только 3 байта полезных данных, то все неиспользуемые байты, кроме самого последнего, можно заполнить любым значением, а в последнем байте записать число, равное количеству неиспользуемых байтов. Тогда, получив и расшифровав все блоки, необходимо отбросить с конца столько байт, сколько указано в последнем байте последнего блока. Правда, если исходное сообщение имело длину, кратную размеру блока, то возникает некоторая сложность, т. к. требуется добавить 0 байт, и последний байт должен содержать число байт дополнения. Для разрешения этой проблемы при зашифровании добавляется новый блок, последний байт которого содержит размер блока. Дополнительный блок будет целиком отброшен при расшифровании.
Блочные шифры быть использованы в нескольких режимах:
режим простой замены (Electronic CodeBook, ЕСВ);
с зацеплением блоков шифртекста (Cipher Block Chaining, СВС);
с обратной связью по шифртексту (Cipher FeedBack, CFB);
с обратной связью по выходу (Output FeedBack, OFB);
по счетчику (Counter);
с зацеплением блоков открытого текста (Plaintext Block Chaining, РВС);
с обратной связью по открытому тексту (Plaintext FeedBack, PFB);
с усиленным сцеплением блоков шифртекста (различные модификации режима СВС);
с обратной связью по выходу и нелинейной функцией (Output FeedBack with Nonlinear Function, OFBNLF);
по счетчику с нелинейной функцией (Counter with Nonlinear Function, CNLF).
Этот список далеко не полный и может быть расширен чуть ли не до бесконечности. Каждый режим имеет свои особенности: он может требовать те или иные дополнительные операции, быть устойчивым или, наоборот, неустойчивым к определенным атакам, лучше или хуже восстанавливаться при сбоях и т. д. Так, например, режим простой замены рекомендуется использовать только для шифрования коротких сообщений, содержащих данные, близкие к случайным (такие как ключи шифрования).