Современные алгоритмы симметричного шифрования

 















Лабораторная работа

Современные алгоритмы симметричного шифрования


Цели работы:

Изучить алгоритмы симметричного шифрования.

Ознакомиться с блочным шифрованием.

Теоретические сведения

Исторически первыми появились симметричные алгоритмы шифрования. Основой секретности этих алгоритмов является секретность симметричного ключа, который должен быть известен отправителю сообщения и получателю.

Среди современных алгоритмов шифрования с симметричным ключом известны и широко используются Data Encryption Standard, IDEA, ГОСТ 28147-89, Blowfish, RC5 и др.

Симметричные алгоритмы шифрования основаны на применении двух способов преобразования бит данных:

·диффузия;

·конфузия.

Диффузия выполняет роль рассеивания статистических особенностей открытого текста по широкому диапазону статистических характеристик шифрованного текста. Это достигается тем, что значение каждого элемента открытого текста влияет на значения многих элементов шифрованного текста или, что оказывается эквивалентным сказанному, любой из элементов шифрованного текста зависит от множества элементов открытого текста.

В результате применения диффузии частотные характеристики использования отдельных символов и последовательностей символов должны становиться близкими к равномерным. Конфузия представляет собой механизм сложных подстановок, которые затрудняют установление статистической взаимосвязи между шифрованным текстом и ключом. Целью применения конфузии является противостояние определению ключа при известных статистических характеристиках закрытого текста. Достоинством симметричных алгоритмов является высокое быстродействие и малая длина ключа по сравнению с ключами у алгоритмов с открытым ключом. Алгоритм DES использует комбинацию подстановок и перестановок. DES осуществляет шифрование 64-битовых блоков данных с помощью 64-битового ключа, в котором значащими являются 56 бит (остальные 8 бит - проверочные биты для контроля на четность). Дешифрование в DES является операцией, обратной шифрованию, и выполняется путем выполнения операции шифрования в обратной последовательности. Процесс шифрования заключается в начальной перестановке битов 64-битового блока, 16 циклов шифрования и, наконец, в конечной перестановке битов. Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа. Чтобы воспользоваться блочным алгоритмом для решения разнообразных криптографических задач, разработаны четыре рабочих режима:

·электронная кодовая книга ECB (Electronic Code Book);

·сцепление блоков шифра CBC (Cipher Block Chaining);

·обратная связь по шифротексту CFB (Cipher Feed Back);

·обратная связь по выходу OFB (Output Feed Back).

ЕСВ. Длинный файл разбивается на N-битовые отрезки (блоки) по n байтов. Каждый из этих блоков шифруют независимо с использованием одного и того же ключа шифрования (см. рисунок 2.1.4).

Основное достоинство - простота реализации. Недостаток - относительно слабая устойчивость против квалифицированных криптоаналиков. Из-за фиксированного характера шифрования при ограниченной длине блока N битов возможно проведение криптоанализа «со словарем». Блок такого размера может повториться в сообщении вследствие большой избыточности в тексте на естественном языке. Это приводит к тому, что идентичные блоки открытого текста в сообщении будут представлены идентичными блоками шифротекста, что дает криптоаналитику некоторую информацию о содержании сообщения.

СВС. В этом режиме исходный файл М разбивается на N-битовые блоки: М=М1М2…Мn. Первый блок М1 складывается по модулю 2 с N-битовым начальным вектором IV, который меняется ежедневно и держится в секрете. Полученная сумма затем шифруется с использование ключа блочного алгоритма, известного и отправителю, и получателю информации. Полученный N-битовый шифр С1 складывается по модулю 2 со вторым блоком текста, результат шифруется и получается второй N-битовый шифр С2, и т.д. Процедура повторяется до тех пор, пока не будут обработаны все блоки текста. алгоритм симметричный шифрование

CFB. Файл, подлежащий шифрованию (расшифрованию), считывается последовательными блоками длиной k-битов (k=1…N).

OFB. Этот режим тоже использует переменный размер блока и сдвиговый регистр, инициализируемый так же, как в режиме CFB, а именно - входной блок вначале содержит вектор инициализации IV, выровненный по правому краю. При этом для каждого сеанса шифрования данных необходимо использовать новое начальное состояние регистра, которое должно пересылаться по каналу открытым текстом.

В компьютерной системе реализованы следующие блоки симметричного шифрования:

·DES;

·IDEA.

Для описания алгоритмов работы процессом применяется язык Java.

Алгоритмы IDEA и DES реализованы в виде классов, предоставляющих следующие методы:

·конструктор - выполняет инициализацию объекта;

·void setIV(byte IV[]) - метод устанавливающий начальные вектор для режимов сцепления шифровальных блоков, обратной связи по шифротексту и по выходу;

·void resetFB() - выполняет сброс регистра сдвига для режимов обратной связи по шифротексту и по выходу в начальное состояние;

·boolean setKey(byte[] key) - метод для установки ключа;

·byte[] encode(byte[] key, byte[] data) - метод, выполняющий шифрование одного блока данных data с помощью ключа key;

·byte[] decode(byte[] key, byte[] data) - метод, выполняющий дешифрование одного блока данных data с помощью ключа key;

·byte[] encodeBlock(byte[] data) - метод выполняет шифрование одного блока данных data с помощью ключа, установленного функцией setKey;

·byte[] decodeBlock(byte[] data) - метод выполняет дешифрование одного блока данных data с помощью ключа, установленного функцией setKey;

·byte[] encodeData(byte data[], int mode) - выполняет шифрование данных data произвольной длины одним из режимов работы (см. таблицу 2.2.1);

·byte[] decodeData(byte data[], int mode) - выполняет дешифрование данных data произвольной длины одним из режимов работы (см. таблицу 2.2.1).

Для сохранения значений переменных в процессе моделирования существуют методы:

·void logMessage(String message) - выполняет сохранение сообщения message в списке сообщений моделирования;

·void logDataMessage(String message, data) - выполняет сохранение сообщения message и связанных с сообщением данных data в журнале сообщений моделирования.

Выполнение работы

Алгоритм шифрования DES


Рисунок 2.1 - Статическая модель информационной


Рисунок 2.2 - Динамическая модель информационной системы


Определение метода do_send: (Сцепление шифровальных блоков)


byte key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");data[]=Binary.random(1000);des=new DES();.setIV(IV);.setKey(key);("Открытый текст",data);t=new TimeUtil();.start();code[]=idea.encodeData(data,des.MODE_CBC);.finish();("Время шифрования ",t.millisec());("Зашифрованный текст",code);("out",code);


Определение метода onRecieve:

key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");des=new DES();.setIV(IV);.setKey(key);code[]=(byte[])recv("in");t=new TimeUtil();.start();data[]=des.decodeData(code,des.MODE_CBC);.finish();("Время расшифрования",t.millisec());("Расшифрованный текст",data);


Рисунок 2.3 - Окно клиента моделирования после запуска метода do_send.


Рисунок 2.4 - Окно клиента моделирования после запуска метода OnReviece.


Алгоритм шифрования IDEA

Определение метода do_send: (Сцепление шифровальных блоков)


byte key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");data[]=Binary.random(1000);ide=new IDEA();.setIV(IV);.setKey(key);("Открытый текст",data);t=new TimeUtil();.start();code[]=idea.encodeData(data,idea.MODE_CBC);.finish();("Время шифрования ",t.millisec());("Зашифрованный текст",code);("out",code);


Определение метода onRecieve:

key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");idea=new IDEA();.setIV(IV);.setKey(key);code[]=(byte[])recv("in");t=new TimeUtil();.start();data[]=des.decodeData(code,idea.MODE_CBC);.finish();("Время расшифрования",t.millisec());("Расшифрованный текст",data);


Рисунок 2.6 - Окно клиента моделирования после запуска метода OnReviece.


Выводы


Выполняя работу, мы ознакомились с современными алгоритмами симметрического шифрования DES и IDEA. После выполнения работы мы пришли к выводу, что оба алгоритма шифрования достаточно быстрые, так как время шифрования и расшифровывание текста было минимальным.


Лабораторная работа Современные алгоритмы симметричного шифрования Цели работы: Изучить алг

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ