Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Топ:
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Принципы управления денежными потоками: одним из методов контроля за состоянием денежной наличности является...
Дисциплины:
2022-09-12 | 34 |
5.00
из
|
Заказать работу |
|
|
Описание: Выбираем для шифрования сообщение небольшого размера (рис. 3.1).
Рис.3.1. Условия теста 1
Информация в сообщении:
Hello, world! How are you?
Информация после прохождения цикла шифрования/расшифрования:
Hello, world! How are you?
Результат: Полученное дешифрованное сообщение совпадает с исходным.
Тестирование подмены ключей
Описание: Выбираем для шифрования текстовое сообщение небольшого размера. Задаем исходный ключ.
Информация в файле:
Hello, world! How are you?
Шифр-текст:
¼³_ÑR*M£^éCSlñý×ÁG©^¶_ý Ø3
На этапе расшифрования меняем ключ. Результат цикла расшифрования:
'�No<���}*!?J9�n�e!���?�
Результат: Полученное дешифрованное сообщение не совпадает с исходным.
Тестирование подмены символа шифр-текста
Описание: Выбираем для шифрования сообщение небольшого размера. Задаем исходный ключ.
Информация в сообщении:
Hello, world! How are you?
Шифр-текст:
Ó} RÂùÔøL:ð5þÖÒ¶ ýLþ
На этапе расшифрования подменяем один символ шифр-текста:
A} RÂùÔøL:ð5þÖÒ¶ ýLþ
Результат цикла расшифрования:
¼§Ú£OüÃ^>,wH!L©Nþ;úr
Результат: Полученное дешифрованное сообщение не совпадает с исходным.
Тестирование на сообщении с повторяющимися блоками
Описание: Выбираем для шифрования сообщение небольшого размера. Задаем исходный ключ: kskfje1384jsw.
Информация в сообщении:
HELLO!!!HELLO!!!HELLO!!!HELLO!!!HELLO!!!HELLO!!!HELLO!!!
Шифр-текст:
¼ú¼-
|
×xÜ7p¤ä=]Iy4²wÝÛS%´·D)°L6! JªÒ¦;}sf°Ò[Ô²Ú¼
Результат цикла расшифрования:
HELLO!!!HELLO!!!HELLO!!!HELLO!!!HELLO!!!HELLO!!!HELLO!!!
Результат: Мы видим, что результат зашифрования даже двух одинаковых блоков в одном массиве данных будет различным.
Тестирование различия шифр-текстов
Описание: Выбираем для шифрования сообщение небольшого размера. Задаем поочерёдно два различных ключа. Сравнение шифр-текстов на этапах шифрования/дешифрования приведено в таблице 3.1.
Таблица 3.1
Сравнение шифр-текстов
Первый ключ | Второй ключ |
ÜuÅGoæÕü§2§_Z_4É_»óVK¦ë³___Í1 | Åj_Ç/bÊY¸\Z¨ÂzvD.áðà 9Pæ |
Hello, World! How are you? | Hello, World! How are you? |
Результат: Шифр-тексты не совпадают, но результирующие значения совпадают с начальным и друг с другом.
заключение
В данной курсовой работе были рассмотрены различные методы шифрования, их особенности. Особое внимание было уделено алгоритму ГОСТ 28147-89.
На практике был реализован алгоритм ГОСТ 28147-89 в режиме гаммирования. Результатом работы является программа, осуществляющая шифрование/расшифрование текстовых файлов указанным методом.
Список литературы
1. Собственный конспект лекций по дисциплине «Основы криптографии», 2017.
2. Санников В.Г. Введение в теорию и методы криптографической защиты информации: Учебное пособие. — М.: МТУСИ, 2009.
3. Рябко Б.Я., Фионов А.Н. Криптографические методы защиты информации: Учебное пособие. М.: Горячая линия — Телеком, 2005.
4. Потемкин В.Г., MATLAB: Справочное пособие. М.: Диалог-МИФИ., 1997;
5. Дьяконов В.П. Справочник по применению системы PC MatLAB. М.: Наука, Физматлит., 1993.
6. IT портал [http://habrahabr.ru].
7. A blog covering security and security technology [www.schneier.com].
8. М. Масленников, Практическая криптография / Масленников М. - Спб.: БХВ-Петербург, 2003. - 458 с.
9. С. Панасенко, Алгоритмы шифрования / Панасенко С. - СПб.: БХВ-Петербург, 2009. - 576 с.
10. И. Ященко, Основные математические понятия криптографии / Ященко И.В. - М.: Москва, 2003.
ПРИЛОЖЕНИЕ
|
namespace GOST
{
public class GOST2814789
{
private byte[] key = new byte[8];
private BitArray baKey;
ulong SyncMessage = 6413657231357313579; // синхропосылка
/// <summary>
/// Ключ
/// </summary>
public string Key
{
get
{
return this.ToStringFromByteArray(this.key);
}
}
public byte[] KeyByte
{
get
{
return this.key;
}
}
private List<byte> cryptMessage;
/// <summary>
/// Таблица замен 8 на 16 состоящая из 4битовых чисел, то есть от 0 до 15.
/// </summary>
private byte[,] matrixH = new byte[8, 16] {
{4,10,9,2,13,8,0,14,6,11,1,12,7,15,5,3},
{14,11,4,12,6,13,15,10,2,3,8,1,0,5,7,9},
{5,8,1,13,10,3,4,2,14,15,12,7,6,0,9,11},
{7,13,10,1,0,8,9,15,14,4,6,12,11,2,5,3},
{6,12,7,1,5,15,13,8,4,10,9,14,0,3,11,2},
{4,11,10,0,7,2,1,13,3,6,8,5,9,12,15,14},
{13,11,4,1,3,15,5,9,0,10,14,7,6,8,2,12},
{1,15,13,0,5,7,10,4,9,2,3,14,6,11,8,12} };
public GOST2814789(byte[] key)
{
this.key = key;
this.baKey = new BitArray(key);
}
public GOST2814789()
{
// Генерируем Ключ
GenerateKey();
}
/// <summary>
/// Шифровать строку
/// </summary>
/// <param name="source">Строка для зашифровки</param>
/// <returns>Шифр</returns>
public byte[] Crypt(string source)
{
Encoding enc = System.Text.Encoding.GetEncoding("utf-8");
return DoCrypt(enc.GetBytes(source));
}
/// <summary>
/// Шифрует файл
/// </summary>
/// <param name="fs">Files strem</param>
/// <returns>В той же папке создаётся файл с расширением crypt</returns>
public void Crypt(FileStream fs)
{
BinaryWriter bw;
BinaryReader br = new BinaryReader(fs);
byte[] crypt = DoCrypt(br.ReadBytes((int)fs.Length));
// save crypt file
FileStream fsc = new FileStream(fs.Name+".crypt", FileMode.CreateNew);
bw = new BinaryWriter(fsc);
bw.Write(crypt);
bw.Close();
fsc.Close();
fs.Close();
// save key
FileStream fsk = new FileStream(fs.Name + ".key", FileMode.CreateNew);
bw = new BinaryWriter(fsk);
bw.Write(this.key);
bw.Close();
fsk.Close();
}
/// <summary>
/// Расшифровывает строку
/// </summary>
/// <param name="source">Строка для расшифровки</param>
/// <returns>Расшифрованная строка</returns>
public string Decrypt(byte[] source)
{
return System.Text.UTF8Encoding.UTF8.GetString(DoDecrypt(source));
}
/// <summary>
/// Расшифровывает файл
/// </summary>
/// <param name="fs">Files strem</param>
/// <returns>В той же папке создаётся файл с расширением decrypt</returns>
public void Decrypt(FileStream fs)
{
BinaryReader br;
FileStream fsk = new FileStream(fs.Name.Replace(".crypt","") + ".key", FileMode.Open);
br = new BinaryReader(fsk);
byte[] key = br.ReadBytes((int)fs.Length);
br.Close();
fsk.Close();
br = new BinaryReader(fs);
byte[] dcrypt = DoDecrypt(br.ReadBytes((int)fs.Length));
FileStream fsc = new FileStream(fs.Name + ".decrypt", FileMode.CreateNew);
BinaryWriter bw = new BinaryWriter(fsc);
bw.Write(dcrypt);
bw.Close();
fsc.Close();
fs.Close();
}
Размещено на Allbest.ru
|
|
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!