Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Алгоритм шифрования данных S-DES в режиме OFB - файл Отчёт_лабораторная работа.doc


Алгоритм шифрования данных S-DES в режиме OFB
скачать (225.3 kb.)

Доступные файлы (24):

Отчёт_лабораторная работа.doc245kb.01.08.2011 17:10скачать
Отчёт_лабораторная работа_S_DES.doc159kb.01.08.2011 17:14скачать
SDES.exe
SDES.pdb
SDES.vshost.exe
SDES.vshost.exe.manifest
Form1.cs
Form1.Designer.cs
Form1.resx
SDES.csproj.FileListAbsolute.txt3kb.09.11.2010 20:06скачать
SDES.csproj.GenerateResource.Cache
SDES.exe
SDES.Form1.resources
SDES.pdb
SDES.Properties.Resources.resources
Program.cs
AssemblyInfo.cs
Resources.Designer.cs
Resources.resx
Settings.Designer.cs
Settings.settings
SDES.csproj
SDES.sln
SDES.suo

содержание
Загрузка...

Отчёт_лабораторная работа.doc

Реклама MarketGid:
Загрузка...
Лабораторная работа

РЕЖИМЫ РАБОТЫ БЛОЧНЫХ ШИФРОВ
Цель работы

Изучить режимы работы блочных шифров.

Задания на лабораторную работу


Преобразуйте программу из предыдущей лабораторной работы таким образом, чтобы она выполняла шифрование и расшифрование открытого текста, состоящего из произвольного количества символов, в режиме обратной связи по выходу алгоритма шифрования OFB (Output Feed Back).


Текст программы

private void button1_Click(object sender, EventArgs e)

{

char []key=new char[10];

char[] k1 = new char[8];

char[] k2 = new char[8];

char[] V={'1','1','1','0','0','1','1','0'};//вектор инициализации

char[] O = new char[8];

System.Text.Encoding a = Encoding.GetEncoding("cp866");

textBox1.Clear();

textBox2.Clear();

textBox3.Clear();

textBox4.Clear();

textBox5.Clear();

richTextBox3.Clear();

richTextBox4.Clear();

richTextBox2.Clear();

key = tBKey.Text.ToCharArray();

Subkeys(key,k1,k2);

byte[] code = a.GetBytes(richTextBox1.Text);

char[,] Plaintext = new char[8, code.Length];

char[,] Crypttext = new char[8, code.Length];

char[] middle = new char[8];

for (int i = 0; i < code.Length; i++)

{

middle = DecToBin(code[i]);

for (int j = 0; j < 8; j++)

{

Plaintext[j, i] = middle[j];

richTextBox2.Text += middle[j];

}

richTextBox2.Text += '\n';

}

for (int i = 0; i < code.Length; i++)

{

O = CryptChar(V, k1, k2);

for (int j = 0; j < 8; j++)

{

if (((O[j] == '1') && (Plaintext[j, i] == '1')) || ((O[j] == '0') && (Plaintext[j, i] == '0')))

Crypttext[j, i] = '0';

else

Crypttext[j, i] = '1';

richTextBox4.Text += Crypttext[j, i];

}

richTextBox4.Text += '\n';

code[i] = 0;

for (int j = 0; j < 8; j++)

if (Crypttext[j, i] == '1')

code[i] += Convert.ToByte(Math.Pow(2, 7 - j));

byte[] bits = { (byte)code[i] };

richTextBox3.Text += a.GetString(bits);

V = O;

}

}
Результаты работы программы

Шифрование



Расшифрование



Контрольные вопросы

  1. Приведите схему и уравнения процессов шифрования и расшифрования для своего варианта задания.



OFB зашифрование:



OFB расшифрование:



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

    1. ECB (Electronic Code Book) – электронная кодовая книга. Каждый 64-битовый блок открытого текста шифруется независимо от других с одним и тем же ключом.

Достоинства:

  • Блоки шифруются отдельно и независимо друг от друга, что позволяет делать это параллельно;

  • простота;

  • возможность за- и расшифрования любого блока независимо от других;

Недостатки:

  • длина сообщения должна быть кратна длине блока входных данных блочного шифра, то есть всё сообщение либо можно разбить на целое число таких блоков, либо необходимо каким-то образом дополнять последний блок не несущими информацию данными;

  • одинаковые блоки открытого текста преобразовываются в этом режиме в одинаковые блоки шифротекста;

    1. CBC (Cipher Block Chaining) – сцепление шифрованных блоков. Входной блок данных для алгоритма шифрования вычисляется как XOR-разность текущего 64-битового блока открытого текста и предшествующего 64-битового блока шифрованного текста.

Достоинства:

  • последний блок шифротекста, который получается на выходе алгоритма режима CBC зависит как от ключа блочного шифра и вектора инициализации, так и (что важнее в данном случае) от всех бит отрытого текста сообщения. Поэтому повторяющиеся 64-битовые последовательности в шифрованном тексте не проявляются.

  • в процессе шифрования все блоки открытого текста оказываются связанными;

  • последний блок шифртекста можно использовать для аутентификации сообщений.

Недостатки:

  • при зашифровании каждая итерация алгоритма зависит от результата предыдущей итерации, то зашифрование сообщения не поддаётся расспараллеливанию

    1. CFB (Cipher Feed Back) – шифрованная обратная связь.

Входные данные обрабатываются порциями по J битов. Полученный на предыдущем шаге шифрованный текст используется как входные данные для алгоритма шифрования с целью получения псевдослучайной последовательности, XOR-разность которой и блока открытого текста определяет очередную порцию шифрованного текста.

Достоинства:

  • при условии наличия полного шифротекста все порции открытого текста можно получить одновременно;

  • Использование поточного шифра избавляет от необходимости дополнять сообщение до целого числа блоков;

  • с поточным шифром можно работать в режиме реального времени;

  • используется только функция зашифрования;

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

Недостатки:

  • В режиме CFB при зашифровании входные данные для функции формируются на основании шифротекста с предыдущей итерации алгоритма, поэтому параллельное выполнение итераций алгоритма невозможно.

    1. OFB (Output Feed Back) – обратная связь по выходу алгоритма шифрования. Подобна CFB, но в качестве входных данных для алгоритма шифрования используются ранее полученные выходные данные DES.

Преимущество:

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

  • длина сообщения остается неизменной.

Недостаток:

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



    1. CTR (Counter) – шифрование со счётчиком. В потоковом режиме шифрования со счётчиком на каждой итерации алгоритма шифрования на вход функции подаётся некое случайное значение Т. Шифротекст в алгоритме режима CTR получается суммированием (XOR) очередного блока открытого текста с выходными данными функции. На вход функции подаётся очередное значение Tj счётчика блоков сообщения.

Достоинства:

  • операции за- и расшифрования в режиме CTR можно производить параллельно и независимо для всех блоков;

  • одинаковые блоки открытого текста не преобразуются в одинаковые блоки шифротекста;

  • используется только функция зашифрования;

Недостатки:

  • требуется уникальность входных данных функции




  1. В каких случаях применяется тот или иной режим работы?

  • ECB. Защищенная передача отдельных значений (например, ключа шифрования).

  • CBC. Поблочная передача данных общего назначения, аутентификация.

  • CFB. Потоковая передача данных общего назначения, аутентификация.

  • OFB. Потоковая передача данных по каналам с помехами (например, по спутниковой связи).

  • CTR. Потоковая передача данных.




  1. Каким образом может дополняться последний блок открытого текста?

  • может заполняться нулями;

  • единичным битом и далее нулями;

  • заполнение недостающих битов значением, которое является инверсией значения последнего бита данных;

  • заполнение недостающих битов в конце блока битами хеш-кода. Это наиболее криптостойкий вариант, но медленный;

  • заполнение случайными значениями, а в последние биты записывается реальная длина данных;

  • дополнение к стандарту PKCS#5, если m-число байт, которыми нужно дополнить последний блок, то значение каждого заполняющего байта устанавливается равным m. Если не требуется дополнений, то добавляется 8ми байтами блок со значением байтов, равным 8.

  1. В каких режимах шифрования используется вектор инициализации? Какие требования предъявляются к вектору инициализации в разных режимах? Должно ли его значение быть секретным?

В таких режимах шифрования, как CBC, CFB и OFB на вход функций подаётся вектор инициализации (IV). Причём как отправитель, так и получатель в начале сеанса связи должны иметь один и тот же IV. Значение IV вовсе не обязано быть секретным и вполне может быть передано вместе с первым блоком шифротектса. Что действительно важно, так это то, что в режимах CBC и CFB это значение должно быть непредсказуемым, а в режиме OFB – уникальным.


  1. ^ Как ошибка в бите шифртекста или ошибка в векторе инициализации может повлиять на результат в различных режимах шифрования?

В режимах ECB, OFB и CTR ошибка в бите отдельного блока шифротекста на повлияет на другие блоки при расшифровании. В режиме CBC такая ошибка приведёт к ошибке в том же бите при расшифровании следующего блока сообщения. Остальных блоков эта ошибка не коснётся. Другое дело режим CFB: здесь ошибка в одном бите порции шифротекста распространится на b/s следующих порций шифротекста (b – длина блока входных данных функции ; s – длина порции шифротекста). К тому же при расшифровании измениться с вероятностью 1/2 теперь может любой бит этих b/s порций.

В режиме CTR ошибка в бите счётчика Tj приведёт к возможности изменения любого бита соответствующего блока шифротекста с вероятностью 1/2 .

Ошибка в бите вектора инициализации также повлияет на результаты расшифрования. Так, в режиме OFB ошибка в одном бите вектора инициализации при расшифровании приведёт к полностью неверным результатам. В режиме же CFB эта ошибка при расшифровании заденет как минимум первую порцию сообщения, а как максимум b-i/s (где b,s – то же, что раньше, а i – номер ошибочного бита слева) порций сообщения. В режиме CBC ошибка в бите вектора инициализации приведёт к неправильному расшифрованию лишь первого блока, да и то ошибочным окажется только один бит – остальные останутся неповреждёнными.


Скачать файл (225.3 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru