Современные алгоритмы симметричного шифрования
История появления симметричных алгоритмов шифрования. Роль симметричного ключа в обеспечении степени секретности сообщения. Диффузия и конфузия как способы преобразования бит данных. Алгоритмы шифрования DES и IDEA, их основные достоинства и недостатки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 18.03.2013 |
Размер файла | 335,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Лабораторная работа
Современные алгоритмы симметричного шифрования
Цели работы:
- Изучить алгоритмы симметричного шифрования.
- Ознакомиться с блочным шифрованием.
Теоретические сведения
Исторически первыми появились симметричные алгоритмы шифрования. Основой секретности этих алгоритмов является секретность симметричного ключа, который должен быть известен отправителю сообщения и получателю.
Среди современных алгоритмов шифрования с симметричным ключом известны и широко используются 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");
byte IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");
byte data[]=Binary.random(1000);
DES des=new DES();
des.setIV(IV);
des.setKey(key);
logDataMessage("Открытый текст",data);
TimeUtil t=new TimeUtil();
t.start();
byte code[]=idea.encodeData(data,des.MODE_CBC);
t.finish();
logDataMessage("Время шифрования ",t.millisec());
logDataMessage("Зашифрованный текст",code);
send("out",code);
Определение метода onRecieve:
byte key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");
byte IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");
DES des=new DES();
des.setIV(IV);
des.setKey(key);
byte code[]=(byte[])recv("in");
TimeUtil t=new TimeUtil();
t.start();
byte data[]=des.decodeData(code,des.MODE_CBC);
t.finish();
logDataMessage("Время расшифрования",t.millisec());
logDataMessage("Расшифрованный текст",data);
Рисунок 2.3 -- Окно клиента моделирования после запуска метода do_send.
Рисунок 2.4 -- Окно клиента моделирования после запуска метода OnReviece.
Алгоритм шифрования IDEA
Определение метода do_send: (Сцепление шифровальных блоков)
byte key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");
byte IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");
byte data[]=Binary.random(1000);
IDEA ide=new IDEA();
idea.setIV(IV);
idea.setKey(key);
logDataMessage("Открытый текст",data);
TimeUtil t=new TimeUtil();
t.start();
byte code[]=idea.encodeData(data,idea.MODE_CBC);
t.finish();
logDataMessage("Время шифрования ",t.millisec());
logDataMessage("Зашифрованный текст",code);
send("out",code);
Определение метода onRecieve:
byte key[]=Binary.setFromHex("9B58 086D 9BF9 CD96 C6EA 3381 B1B4 F637");
byte IV[]=Binary.setFromHex("7836 ECD6 C5F0 37B6");
IDEA idea=new IDEA();
idea.setIV(IV);
idea.setKey(key);
byte code[]=(byte[])recv("in");
TimeUtil t=new TimeUtil();
t.start();
byte data[]=des.decodeData(code,idea.MODE_CBC);
t.finish();
logDataMessage("Время расшифрования",t.millisec());
logDataMessage("Расшифрованный текст",data);
Рисунок 2.6 -- Окно клиента моделирования после запуска метода OnReviece.
Выводы
Выполняя работу, мы ознакомились с современными алгоритмами симметрического шифрования DES и IDEA. После выполнения работы мы пришли к выводу, что оба алгоритма шифрования достаточно быстрые, так как время шифрования и расшифровывание текста было минимальным.
Размещено на Allbest.ru
Подобные документы
Особенности шифрования данных, предназначение шифрования. Понятие криптографии как науки, основные задачи. Анализ метода гаммирования, подстановки и метода перестановки. Симметрические методы шифрования с закрытым ключом: достоинства и недостатки.
курсовая работа [564,3 K], добавлен 09.05.2012Комбинированное использование симметричного и асимметричного шифрования. Зависимость между открытым и закрытым ключами. Основные недостатки симметричного шифрования. Схема двухстороннего конфиденциального обмена. Концепция шифрования по алгоритму DES.
презентация [1,4 M], добавлен 20.12.2012История алгоритмов симметричного шифрования (шифрования с закрытым ключом). Стандарты на криптографические алгоритмы. Датчики случайных чисел, создание ключей. Сфера интересов криптоанализа. Системы электронной подписи. Обратное преобразование информации.
краткое изложение [26,3 K], добавлен 12.06.2013Автоматизация процесса шифрования на базе современных информационных технологий. Криптографические средства защиты. Управление криптографическими ключами. Сравнение симметричных и асимметричных алгоритмов шифрования. Программы шифрования информации.
курсовая работа [795,7 K], добавлен 02.12.2014Появление шифров, история эволюции криптографии. Способ приложения знаний особенностей естественного текста для нужд шифрования. Критерии определения естественности. Способ построения алгоритмов симметричного шифрования. Криптосистема с открытым ключом.
реферат [452,2 K], добавлен 31.05.2013Исследование симметричных алгоритмов блочного шифрования. Минусы и плюсы алгоритма IDEA. Разработка программы аутентификации пользователя и сообщений на основе алгоритма IDEA. Выбор языка программирования. Тестирование и реализация программного средства.
курсовая работа [314,2 K], добавлен 27.01.2015История возникновения алгоритма симметричного шифрования, условия и особенности его применения на современном этапе. Принципы и функции исследуемой технологии. Анализ главных преимуществ и недостатков использования алгоритма, оценка его уязвимости.
курсовая работа [301,9 K], добавлен 29.10.2017Симметричные криптосистемы как способ шифрования, в котором для шифрования и расшифровывания применяется один и тот же криптографический ключ. Разбор и реализация шифрования алгоритма: простая и двойная перестановка, перестановка "магический квадрат".
курсовая работа [3,3 M], добавлен 11.03.2013Реализация алгоритма DES и режимов шифрования для любой длины сообщения и любой длины ключа. Шифрование сообщений различной длины и ключа с замериванием времени и скорости шифрования. Реализация алгоритма RSA. Сохранение зашифрованного файла на диск.
курсовая работа [398,4 K], добавлен 26.01.2010Криптография и шифрование. Симметричные и асимметричные криптосистемы. Основные современные методы шифрования. Алгоритмы шифрования: замены (подстановки), перестановки, гаммирования. Комбинированные методы шифрования. Программные шифраторы.
реферат [57,7 K], добавлен 24.05.2005