Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Режимы работы блочных шифров

Автор:   •  Май 17, 2023  •  Лабораторная работа  •  2,041 Слов (9 Страниц)  •  125 Просмотры

Страница 1 из 9

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

РЕЖИМЫ РАБОТЫ БЛОЧНЫХ ШИФРОВ

Цель работы

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

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

Преобразуйте программу из предыдущей лабораторной работы таким образом, чтобы она выполняла шифрование и расшифрование открытого текста, состоящего из произвольного количества символов, в режиме обратной связи по выходу алгоритма шифрования 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;

            }              

        }

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

Шифрование

[pic 1]

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

[pic 2]


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

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

[pic 3]

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

[pic 4]

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

[pic 5]

  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.

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

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

Недостаток:

...

Скачать:   txt (16.7 Kb)   pdf (225.6 Kb)   docx (287.9 Kb)  
Продолжить читать еще 8 страниц(ы) »
Доступно только на Essays.club