36928

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

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

Информатика, кибернетика и программирование

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

Русский

2013-09-23

2.77 MB

54 чел.

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

Тема: Блочные симметричные алгоритмы шифровании. Режимы работы блочных алгоритмов.

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

Задание:

  1.  Изучить основные теоретические положения касательно блочных криптоалгоритмов.
  2.  Реализовать программно блочный шифр, основанный на шифре Файстеля. Детали алгоритма:
    1.  Открытый текст извлекается из текстового файла «open.txt». Размер блока входных данных для шифрования равен бит.
    2.  Ключ задается в теле программы. Размер ключа равен N бит.
    3.  Число раундов обработки равно .
    4.  Вычисленный шифротекст выводится на экран.

Параметры , а также алгоритм высисления подключей и функция раунда выбираются из таблицы в приложении 1, согласно варианту, выданному преподавателем.

Структура отчета

  1.  Титульный лист.
  2.  Тема и цель работы.
  3.  Задание и, если есть, номер варианта.
  4.  Краткие теоретические сведения.
  5.  Ход работы с включением расчетов, программных кодов и результатов работы программ.
  6.  Выводы.

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

Общие сведения о симметричных криптоалгоритмах

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

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

Ключ - основной секретный параметр симметричного криптографического алгоритма, без знания которого невозможно или очень сложно расшифровать ранее зашифрованные данные. Надежность симметричной криптосистемы есть функция от надежности алгоритма и длины ключа. Предположим, что алгоритм идеален, то есть нет лучшего способа взлома криптосистемы, чем исчерпывающий перебор ключей. Если ключ длиной 8 бит, то потребуется 28 = 256 попыток, чтобы найти ключ. Если ключ длиной 56 бит, ключевое пространство составит 256 возможных ключей. Если предположить, что скорость перебора равна 1 млн. ключей в секунду, то потребуется примерно 2000 лет для нахождения правильного ключа. Если ключ длиной 64 бита, то на той же скорости потребуется около 600 000 лет.

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

Но это тоже не дает абсолютной гарантии того, что ключ не будет раскрыт. Дело в том, что машина, раскрывающая ключ за год, имеет 8% шанс раскрыть ключ за месяц. Если при этом ключ меняют 1 раз в месяц, то есть 8% вероятность раскрыть ключ еще во время его использования.

Более того, пусть есть машина, отыскивающая ключ за месяц, а ключ меняется каждый час. Несмотря на то, что вероятность найти данный ключ за час всего 0,14%, вероятность найти правильный ключ до его смены за месяц использования такой схемы равна 63%. Таким образом, частая смена ключей позволяет разве что минимизировать последствия взлома системы, но во многих системах это все равно недопустимый риск.

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

Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=E(X,K) и X=D(Z,K).

Ключ K является секретным параметром блочного криптоалгоритма и представляет собой некоторый блок двоичной информации фиксированного размера. Исходный (X) и зашифрованный (Z) блоки данных также имеют фиксированную разрядность, равную между собой, но необязательно равную длине ключа.

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

Таким образом, на функцию стойкого блочного шифра Z=E(X,K) накладываются следующие условия:

  1.  Функция E должна быть обратимой.
  2.  Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей K.
  3.  Не должно существовать иных методов определения, каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.

Все действия, производимые над данными блочным криптоалгоритмом, основаны на том факте, что преобразуемый блок может быть представлен в виде целого неотрицательного числа из диапазона, соответствующего его разрядности. Кроме того, блок, разрядность которого обычно является степенью двойки, можно трактовать как несколько независимых неотрицательных чисел из меньшего диапазона (32-битный блок можно также представить в виде 2 независимых чисел из диапазона 0..65535 или в виде 4 независимых чисел из диапазона 0..255).

Над этими числами блочным криптоалгоритмом и производятся по определенной схеме операции сложения и умножения по модулю, циклический сдвиг, побитовое «исключающее или» и т.д.  

Последовательность выполняемых над блоком операций составляют отличительные особенности каждого конкретного блочного криптоалгоритма.

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

Шифр Файстеля

Практически все алгоритмы симметричного блочного шифрования, используемые в наши дни, основаны на структуре, получившей название "блочный шифр Файстеля" (Feistel block cipher). В этой связи очень важно понять принципы, на которых построен шифр Файстеля. Мы начнем со сравнения поточных и блочных шифров, а затем выясним предпосылки создания шифра Файстеля.

Файстель предложил шифр, в котором попеременно используются и подстановки, и перестановки. Фактически данное предложение является практическим применением идеи Клода Шеннона (Claude Shannon) разработать продукционный шифр, в котором попеременно использовались бы функции диффузии и конфузии. Давайте сначала рассмотрим понятия диффузии и конфузии, а затем перейдем к обсуждению шифра Файстеля. Но прежде всего стоит упомянуть один весьма примечательный факт: структура шифра Файстеля, разработанная четверть века тому назад и, в свою очередь, опирающаяся на идею Шеннона, высказанную еще в 1945 г., сегодня является структурой, на основе которой построены все практически значимые симметричные схемы блочного шифрования.

Диффузия и конфузия

Термины диффузия (diffusion) и конфузия (confusion) были введены в шифрование Клодом Шенноном для того, чтобы охарактеризовать два основных строительных блока криптографических систем. Основной задачей, которую ставил перед собой Шеннон, было воспрепятствовать попыткам криптоанализа, основанным на статистическом анализе сообщений. Шеннон использовал следующие аргументы. Предположим, противник обладает некоторыми сведениями о статистических характеристиках открытого текста. Например, для обычных текстовых сообщений могут быть известны данные о распределении частот использования букв соответствующего языка. Или могут быть известны отдельные слова или фразы, вероятность присутствия которых в сообщении достаточно высока (вероятные слова). Если подобные статистически выявляемые закономерности каким-либо образом проявятся в шифрованном тексте, у криптоаналитика появится возможность определить ключ шифрования, или его составляющие, или хотя бы сузить пространство вероятных ключей. Шеннон вводит понятие идеального шифра — шифра, который полностью скрывает в шифрованном тексте все статистические закономерности открытого текста.

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

когда для получения буквы  шифрованного текста складываются  последовательных букв открытого текста. Можно показать, что в этом случае статистические характеристики открытого текста "распределяются" по шифрованному тексту. Поэтому в шифрованном тексте частотные характеристики использования букв будут более близкими к равномерным. Точно так же более близкими к равномерным будут частоты использования биграмм, триграмм и т.д. В блочных шифрах, имеющих дело с двоичными данными, диффузии можно достичь путем нескольких последовательных перестановок данных с последующим применением к результату перестановки некоторой функции — в итоге в формировании каждого бита шифрованного текста будет участвовать множество битов открытого текста

В любом блочном шифре используется зависящее от ключа преобразование блока открытого текста в блок шифрованного текста. Механизм диффузии призван сделать статистическую взаимосвязь между открытым и шифрованным текстами как можно сложнее, чтобы в максимальной степени усложнить задачу определения ключа из такой взаимосвязи. Что касается конфузии, то перед ней ставится задача в максимальной степени усложнить статистическую взаимосвязь между шифрованным текстом и ключом опять же с целью противостояния попыткам определить ключ. Таким образом, даже если противник сумеет определить какие-либо статистические особенности шифрованного текста, сложность использования ключа для получения шифрованного текста должна оказаться достаточной для того, чтобы попытки определить ключ на основании этих статистических особенностей оказались безрезультатными. Это достигается использованием сложных подстановочных алгоритмов: простые линейные подстановочные функции увеличивают беспорядок лишь в незначительной степени.

Структура шифра Файстеля

На рис. 1 показана структура шифра, предложенного Файстелем. На вход алгоритма шифрования подается блок открытого текста длиной  битов и ключ . Блок открытого текста разделяется на две равные части,  и , которые последовательно проходят через  раундов обработки, а затем объединяются снова для получения блока шифрованного текста соответствующей длины. Для раунда  в качестве входных данных выступают  и , полученные на выходе предыдущего раунда, и подключ , вычисляемый по общему ключу . Как правило, все подключи отличаются как от общего ключа, так и друг от друга.

Все раунды обработки проходят по одной и той же схеме. Сначала для левой половины блока данных выполняется операция подстановки. Она заключается в применении к правой половине блока данных некоторой функции раунда  и последующем сложении полученного результата с левой половиной блока данных с помощью операции ХОR (исключающего "ИЛИ"). Для всех раундов функция раунда имеет одну и ту же структуру, но зависит от параметра — подключа раунда . После подстановки выполняется перестановка, представляющая собой обмен местами двух половин блока данных. Вся эта структура в целом является частным случаем так называемой подстановочно-перестановочной схемы (SPNsubstitution-permutation network), предложенной Шенноном.

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

Практическая реализация схемы Файстеля зависит от выбора значений следующих параметров и конструктивных особенностей.

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

Рис. 1. Классическая схема Файстеля

  •  Размер ключа. Чем длиннее ключ, тем выше надежность шифра, но большая длина ключа тоже может быть причиной слишком медленного выполнения операций шифрования и дешифрования. На сегодня ключи длиной 64 бита и меньше считаются недостаточно надежными — обычно используются 128-битовые ключи.
  •  Число раундов обработки. Суть идеи шифра Файстеля в том, что за один раунд обработки данных обеспечивается недостаточно высокая надежность, но уровень надежности шифра повышается с каждым новым раундом обработки. Как правило, число раундов выбирают равным 16.
  •  Алгоритм вычисления подключей. Чем сложнее этот алгоритм, тем в большей степени затрудняется криптоанализ шифра.
  •  Функция раунда. Здесь, опять же, усложнение, как правило, введет к повышению стойкости шифра с точки зрения криптоанализа.

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

  •  Скорость выполнения программ шифрования/дешифрования. Часто функции шифрования встраиваются в приложения или утилиты, чтобы избежать необходимости аппаратной реализации шифрования. В таких случаях важным фактором оказывается скорость программного выполнения алгоритма.
  •  Простота анализа. Хотя нашей задачей является создание такого алгоритма, который для криптоанализа был бы настолько сложным, насколько это возможно, все же весьма выгодно, чтобы сам такой алгоритм оставался простым для понимания. Иными словами, если алгоритм прост и понятен, его легче анализировать с точки зрения уязвимости для криптоанализа и, следовательно, легче совершенствовать с целью достижения более высокого уровня надежности. Алгоритм DES, например, нельзя отнести к алгоритмам, слишком простым для анализа.

Стандарт шифрования данных (DES)

Самая популярная современная схема шифрования базируется на стандарте DES (Data Encryption Standard — стандарт шифрования данных), принятом в 1977 году Национальным бюро стандартов (NBS) США, теперь называемым Национальным институтом стандартов и технологии (NIST). Этот стандарт получил официальное имя Federal Information Processing Standard 46 (FIPS PUB 46). В соответствии с этим стандартом данные шифруются 64-битовыми блоками с использованием 56-битового ключа. Многошаговый алгоритм преобразует поступающие на вход 64-битовые блоки в 64-битовые блоки шифрованного текста. Тот же алгоритм с тем же ключом служит для обратного преобразования шифрованного текста в открытый.

Стандарт DES завоевал широкую популярность, неоднократно становясь при этом объектом полемики на тему обеспечиваемой им степени безопасности. Чтобы понять суть этой полемики, давайте вкратце рассмотрим историю создания и становления DES.

В конце 60-х IBM начала научно-исследовательский проект в области компьютерной криптографии, который возглавил Хорст Файстель (Horst Feistel). В результате работы над проектом к 1971 году был создан алгоритм под кодовым названием LUCIFER, который был продан банку Ллойда (Lloyd's of London) для использования в системе управления оборотом наличных денег, тоже разработанной IBM. Шифр LUCIFER представлял собой блочный шифр Файстеля, оперировавший блоками размером 64 бита и использовавший ключ длиной 128 битов. Основываясь на многообещающих результатах проекта LUCIFER, IBM взяла курс на создание коммерческого варианта шифра, который в идеале можно было бы разместить в одной микросхеме. Это направление возглавили Уолтер Тачман (Walter Tuchman) и Карл Мейер (Carl Meyer), подключившие к исследованиям не только специалистов из IBM, но и консультантов и технических специалистов NSA (National Security Agency — Управления национальной безопасности США). В результате их усилий была создана усовершенствованная версия шифра LUCIFER, обладающая большей устойчивостью к криптоанализу, но уменьшенным до 56 битов ключом, чтобы алгоритм мог уместиться в одной микросхеме.

В 1973 году Национальное бюро стандартов объявило конкурс на лучший проект по созданию общегосударственного стандарта шифрования. Компания IBM представила на конкурс результаты проекта Тачмана-Мейера. Их алгоритм оказался безусловно лучшим из всех предложенных, и в 1977 году он был утвержден в качестве стандарта шифрования данных (DES).

Но прежде чем стать официальным стандартом, предложенный IBM алгоритм был подвергнут жесткой критике, которая не утихает и по сей день. Нападкам подвергаются в основном две особенности шифра. Во-первых, в исходном алгоритме LUCIFER фирмы IBM использовались ключи длиной 128 битов, а в предложенном стандарте длина ключа уменьшена до 56 битов. Критики опасались (и опасаются до сих пор), что такой размер ключа слишком мал для того, чтобы шифр мог гарантированно противостоять попыткам криптоанализа с простым перебором всех возможных вариантов. Второе серьезное возражение критиков было направлено против того факта, что внутренняя структура DES, а имение структура S-матриц, была засекречена. Поэтому пользователи не могли быт! уверены в том, что во внутренней структуре DES нет каких-либо скрытых дефектов, с помощью которых специалисты NSA могли бы расшифровать сообщение, не обладая ключом. Дальнейшие исследования, в частности последние работы по дифференциальному криптоанализу, позволяют с большей уверенностью утверждать, что DES обладает весьма надежной внутренней структурой. Более того, по утверждению участников проекта со стороны IBM, единственными изменениями, внесенными в представленный ими проект стандарта, были предложенные NSA изменения в структуре S-матриц, целью которых было укрепление вероятных слабых мест алгоритма, обнаруженных в ходе оценки проекта.

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

Шифрование DES

Общая схема процесса шифрования DES показана на рис. 2. Как и в случае любой схемы шифрования, здесь на вход функции шифрования подается два типа данных открытый текст, который требуется зашифровать, и ключ. В данном случае длина открытого текста предполагается равной 64 битам, а длина ключа — 56 битам.

Рис. 2. Общая схема алгоритма шифрования DES

Из левой части рис. 2 видно, что процесс преобразования открытого текста состоит из трех этапов. Сначала 64-битовый блок открытого текста поступает для обработки на вход начальной перестановки (IP), в результате чего получаются переставленные входные данные. Затем следует этап, состоящий из 16 раундов применения одной и той же функции, в которой используются как операции перестановки, так и подстановки. На выходе последнего (16-го) раунда получаются 64-битовая последовательность, являющаяся некоторой функцией открытого текста и ключа. Левая и правая половины полученной последовательности данных меняются местами, образуя предрезультат (preoutput). Наконец, этот предрезультат проходит через перестановку IP-1, обратную начальной, в результате чего получается 64-битовый блок шифрованного текста. Если исключить начальную и конечную перестановки, структура DES окажется идентичной структуре шифра Файстеля (см. рис. 1).

В правой части рис. 2 показано, каким образом используется 56-битовый ключ. Сначала к ключу тоже применяется функция перестановки. Затем с помощью циклического сдвига влево и некоторой перестановки из полученного результата для каждого из 16 раундов генерируется подключ (). Функция перестановки одна и та же для всех раундов, но генерируемые подключи оказываются разными из-за того, что в результате циклического сдвига на ее вход поступают разные биты ключа.

Начальная перестановка

И начальная перестановка, и обратная ей, задаются табличным способом, как показано в табл. 1(а) и 1(6) (см. приложение 3) соответственно. Чтобы убедиться в том, что представленные этими двумя таблицами функции являются взаимно обратными, рассмотрим следующую входную 64-битовую последовательность .

Здесь каждое , представляет одну двоичную цифру. После перестановки получим последовательность  следующего вида.

Применив обратную перестановку, получим и простой проверкой можно непосредственно убедиться в том, что на выходе биты будут следовать в порядке, в точности соответствующем исходному.

Детали алгоритма шифрования

На рис. 3 показана внутренняя структура алгоритма, используемого при итерациях. Как и прежде, начнем рассмотрение с левой части рисунка. Левая () и правая () половины каждого 64-битового значения рассматриваются как независимые 32-битовые величины. Как и в случае любого классического шифра Файстеля, операции, выполняемые на каждой итерации, можно записать в виде следующих формул:

Для любого раунда длина ключа , равна 48 битам, а длина элемента входных данных  — 32 битам. Сначала входное значение  расширяется до 48 битов с помощью таблицы, задающей перестановку с расширением (см. табл. 1(в), приложение 3), заключающемся в повторении 16 битов значения . Полученное 48-битовое значение складывается с , с помощью операции XOR (исключающее "ИЛИ"). Результат, длина которого тоже равна 48 битам, передается функции подстановки, которая генерирует 32-битовое значение, определяемое по табл. 1(г) (приложение 3).

Роль -матриц в функции  раскрывается иллюстрацией на рис. 4. Механизм подстановки определяется набором из восьми -матриц, каждая из которых получает на вход 6 битов данных и выдает 4-битовый результат. Преобразования определяются по табл. 2 (приложение 3) по следующему правилу. Первый и последний биты входного значения для матрицы в, представляют 2-битовое двоичное число, задающее одну из четырех подстановок, определяемых четырьмя строками таблицы для . Остальные четыре бита определяют столбец. Десятичное значение, находящееся на пересечении заданных таким образом столбца и строки, в 4-битовом представлении будет результатом. Например, если на вход поступает значение 011001, оно задает строку 01 (десятичное 1) и столбец 1100 (десятичное 12). На пересечении строки 1 и столбца 12 находится значение 9, поэтому результат в двоичном представлении будет иметь вид 1001.

Каждая строка -матрицы определяет некоторую обратимую подстановку.

Здесь следует сделать еще несколько замечаний о структуре S-матриц. На минутку забудем о том, что преобразование зависит от ключа . Из таблицы, задающей перестановку с расширением, видно, что поступающие на вход 32 бита данных разделяются на группы по 4 бита, которые затем превращаются в 6-битовые группы с помощью добавления к каждой группе внешних битов из соседних групп. Например, если частью поступившего на вход слова будет

...efgh ijkl mnop... ,

эта часть будет преобразована к виду

...defghi hijklm lmnopq...

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

Вычисление ключей

Возвращаясь к рис. 2 и 3, заметим, что 56-битовые ключи, используемые в качестве входных данных алгоритма, сначала преобразуются с помощью перестановки, задаваемой таблицей первой перестановки с выбором (РС-1), табл. 3(а). Полученное в результате 56-битовое значение рассматривается как комбинация двух 28-битовых значений, для которых используются обозначения  и . В каждом раунде шифрования к значениям  и  по отдельности применяются операции циклического сдвига влево (вращения) на 1 или 2 бита в соответствии с табл. 3(в) (приложение 3). Полученные после сдвига значения поступают на вход следующего раунда шифрования. Те же значения подаются на вход второй перестановки с выбором (РС-2) (см. табл. 3(6), приложение 3), с помощью которой получается 48-битовое выходное значение , требуемое для выполнения функции .

Рис. 3. Структура одного раунда шифрования

Рис. 4. Вычисление Р(R,К)

Надежность DES

После того как данный стандарт был утвержден в качестве федерального стандарта США, постоянно возникали дискуссии по поводу его надежности и того уровня безопасности, который им обеспечивается. Эта дискуссия касается в основном размера ключа.

При длине ключа 56 битов имеется 256 различных ключей, что приблизительно равно 7,2×1016. На первый взгляд этого вполне достаточно, чтобы простой перебор всех возможных значений показался практически неэффективным. Даже в предположении, что в среднем для успешного обнаружения ключа таким способом придется проверить около половины возможных комбинаций, компьютеру, выполняющему один цикл шифрования DES в микросекунду, потребуется более тысячи лет, чтобы обнаружить ключ.

Однако оценка скорости шифрования в один цикл в микросекунду слишком консервативна. Еще в 1977 году Диффи (Diffie) и Хеллман (Hellman) утверждали, что имеющаяся на то время технология позволяет создать компьютер, состоящий из 1 миллиона параллельно шифрующих устройств, каждое из которых может выполнять один цикл шифрования в микросекунду. При наличии такого компьютера время, необходимое для раскрытия шифра путем перебора всех вариантов, будет равняться уже всего 10 часам. По оценке авторов упомянутой книги, стоимость такой машины в 1977 году составила бы около 20 млн долл. США.

Более строгий анализ этой проблемы позже выполнил Винер (Wiener) для случая криптоанализа с известным открытым текстом, т.е. в предположении, что у противника имеется хотя бы одна пара соответствующих открытого и шифрованного текста. Винер не поленился подробно описать детали архитектуры, которая должна быть у машины, предназначенной для взлома DES. По его словам, "уже неоднократно высказывались ничем не подкрепленные заявления по поводу того, насколько быстро можно перебрать все ключи из пространства возможных ключей DES. Чтобы не добавлять к этим заявлениям точно таких же новых, в приложениях приводятся подробные описания архитектуры машины для подбора ключей. Такая работа была проделана исключительно для того, чтобы получить реальную оценку стоимости подобной машины и времени, которое ей потребуется на подбор ключа DES. Практических планов по созданию подобной машины у автора нет". Винер сообщает о разработке архитектуры микросхемы, которая с помощью конвейеризации позволяет достичь скорости перебора около 50 млн ключей в секунду. Разработанный им модуль, состоящий из 5760 таких микросхем, в ценах 1993 года мог иметь стоимость около 100 тыс. долл. США. Для модулей предложенной Винером архитектуры получаются следующие оценки.

Стоимость машины

Ожидаемое время поиска

$ 100 000

$ 1 000 000

$ 10 000 000

35 часов

3,5 часа

21 минута

По оценке Винера, проектно-конструкторские работы по созданию такой машины могут обойтись примерно в 500 тыс. долл. В обновленном издании 1997 года Винер примерно в шесть раз уменьшил отношение ожидаемоговремени поиска к стоимости машины (т.е. предполагается, что с использованием машины стоимостью 100 тыс. долл. ключ можно получить примерно через 6 часов после начала ее работы).

Хотя работы Винера имеют очень большое теоретическое значение, практически предложенная им архитектура не реализована. Более эффектно уязвимость DES была продемонстрирована в ходе объявленного RSA Laboratories конкурса на поиск секретного ключа. Суть конкурса, победителям которого полагалась премия в 10 тыс. долл. США, состояла в том, чтобы найти ключ DES, имея в распоряжении шифрованное сообщение для неизвестного открытого сообщения, начинающегося тремя известными блоками текста (24-символьной фразой "the unknown message is:"). Конкурс был объявлен RSA 29 января 1997 года. Решив принять участие в конкурсе, независимый консультант Рок Версер (Rocke Verser) разработал программу перебора вариантов ключа и распространил ее в Internet. В общей сложности в выполнение проекта было вовлечено более 70000 систем, на каждой из которой добровольцы подбирали ключ в выделенных им областях пространства возможных ключей DES. Проект начался 18 февраля 1997 года и успешно закончился спустя 96 дней, когда после перебора примерно четверти всех возможных комбинаций был найден правильный ключ. Этот конкурс показал возможность решения сложных криптографических задач с помощью распределенных систем персональных компьютеров.

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

Предложенная Винером архитектура и результаты описанного выше конкурса на поиск ключа явились кульминацией многолетних дискуссий о безопасности DES и, как уже можно утверждать с точки зрения сегодняшнего дня, стали поворотным моментом в истории этого стандарта. Очевидно, назрела необходимость разработки методов, альтернативных методам традиционного шифрования. Среди возможных кандидатов, достойных заменить DES, мы видим так называемый "тройной DES" (triple DES), а также некоторые из новейших алгоритмов традиционной схемы шифрования, которые будут подробно обсуждаться далее.

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

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

Режим электронной шифровальной книги

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

Если длина сообщения превышает 64 бита, оно разделяется на 64-битовые блоки с добавлением при необходимости заполнителей к последнему блоку. Дешифрование тоже выполняется поблочно на основе одного и того же ключа. На рис. 5 открытый текст (при необходимости дополненный), рассматриваемый как последовательность 64-битовых блоков, обозначен , а соответствующий шифрованный текст —

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

Самой важной особенностью режима ЕСВ является то, что одинаковые 64-битовые блоки открытого текста при условии, что таковые встречаются в исходном сообщении, в шифрованном тексте тоже будут представляться одинаковыми блоками.

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

Рис. 5. Режим электронной шифровальной книги (ЕСВ)

Режим сцепления шифрованных блоков

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

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

Тогда

Чтобы получить первый блок шифрованного текста, рассматривается ХОR-разность некоторого инициализационного вектора () и первого блока открытого текста. При дешифровании для восстановления первого блока открытого текста необходимо будет тоже выполнить операцию XOR по отношению к тому же вектору  и первому блоку на выходе алгоритма дешифрования.

Рис. 6. Режим сцепления шифрованных блоков (СВС)

Значение  должно быть известно и отправителю, и получателю сообщения. Для обеспечения максимальной безопасности значение  должно быть защищено точно так же, как и ключ. Можно, например, отправить значение , зашифровав его в режиме ЕСВ. Одной из причин, по которым необходимо защищать , является следующая: если противник имеет возможность обмануть адресата сообщения, предоставив подложный , то противник получает возможность инвертировать избранные биты в первом блоке открытого текста.

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

Помимо обеспечения конфиденциальности, режим СВС можно использовать для аутентификации.

Режим шифрованной обратной связи

Схема DES представляет собой блочный шифр с размером блока 64 бита. Но DES можно преобразовать и в потоковый шифр, используя либо режим шифрованной обратной связи (CFB), либо режим обратной связи по выходу (OFB). Использование поточного шифра избавляет от необходимости дополнять сообщение до целого числа блоков. Кроме того, с поточным шифром можно работать в режиме реального времени. Например, при передаче потока символов с помощью посимвольного поточного шифра каждый символ можно шифровать и сразу же передавать адресату, не дожидаясь окончания шифрования остальной части сообщения.

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

На рис. 7 показана схема шифрования в режиме CFB. Предполагается, что единицей передачи данных являются  битов (обычно = 8). Как и в режиме СВС, происходит сцепление элементов открытого текста, поэтому шифрованный текст, соответствующий любому элементу открытого текста, будет зависеть от всех предыдущих элементов открытого текста.

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

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

и поэтому

Те же самые выкладки имеют место и для последующих шагов дешифрования. Режим СРВ может использоваться как для обеспечения конфиденциальности, так и для аутентификации.

Рис. 7. Режим -битовой шифрованной обратной связи (СРВ)

Режим обратной связи по выходу

Режим обратной связи по выходу (ОFВ), как видно из рис. 8, во многом подобен режиму СFВ. В режиме ОFВ в регистр сдвига подается значение, получаемое на выходе функции шифрования, а в режиме СFВ в этот регистр подается порция шифрованного текста.

Режим ОFВ обладает тем преимуществом, что влияние возможных искажений битов при передаче данных не распространяется на последующие порции данных. Например, если искаженные биты появились при передаче , это повлияет только на восстановленное из   значение , а все последующие порции открытого текста из-за этой ошибки передачи данных повреждены не будут. В случае CFB значение  используется в качестве входного для регистра сдвига, вследствие чего искажение С\ выльется в дополнительные искажения для всего потока принимаемых данных.

Рис. 8. Режим -битовой шифрованной обратной связи по выходу (ОFВ)

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

Новый стандарт шифрования данных - AES.

Общие сведения о конкурсе AES

В США был принят стандарт симметричного криптоалгоритма для внутреннего применения DES (Data Encryption Standard), который получил достаточно широкое распространение в свое время. Однако на текущий момент этот стандарт полностью неприемлем для использования по двум причинам:

1. Длина его ключа составляет 56 бит, что чрезвычайно мало на современном этапе развития ЭВМ.

2. При разработке алгоритм был ориентирован на аппаратную реализацию, то есть содержал операции, выполняемые на микропроцессорах за неприемлемо большое время (например, такие как перестановка бит внутри машинного слова по определенной схеме).

Все это заставило Национальный институт стандартов и технологий США (NIST) объявить в 1997 году конкурс на новый стандарт симметричного криптоалгоритма. На этот раз уже были учтены основные недостатки шифра-предшественника, а к разработке были подключены самые крупные центры по криптологии со всего мира.

Требования, предъявленные к кандидатам на AES в 1998 году, были предельно просты:

  1.  алгоритм должен быть симметричным;
  2.  алгоритм должен быть блочным шифром;
  3.  алгоритм должен иметь длину блока 128 бит, и поддерживать три длины ключа: 128, 192 и 256 бит.

Дополнительно кандидатам рекомендовалось:

  1.  использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах);
  2.  ориентироваться на 32-разрядные процессоры;
  3.  не усложнять без необходимости структуру шифра для того, чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нем не заложено каких-либо недокументированных возможностей.

На первом этапе в оргкомитет соревнования поступило 15 заявок из разных уголков мира. В течение 2 лет специалисты комитета, исследуя самостоятельно и изучая публикации других исследователей, выбрали 5 лучших представителей, прошедших в "финал" соревнования. Все эти алгоритмы были признаны достаточно стойкими и успешно противостоящими всем широко известным методам криптоанализа.

2 октября 2000 года NIST объявил о своем выборе – победителем конкурса стал бельгийский алгоритм RIJNDAEL.

Победитель AES – шифр Rijndael

Данный алгоритм разработан двумя специалистами по криптографии из Бельгии. Он является нетрадиционным блочным шифром, поскольку не использует сеть Фейcтеля для криптопреобразований. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт размером 4×4, 4×6 или 4×8 в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования производятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице.

Все преобразования в шифре имеют строгое математическое обоснование. Сама структура и последовательность операций позволяют выполнять данный алгоритм эффективно как на 8-битных, так и на 32-битных процессорах. В структуре алгоритма заложена возможность параллельного исполнения некоторых операций, что на многопроцессорных рабочих станциях может еще поднять скорость шифрования в 4 раза.

Вместо использования только замены и перестановки, как это было в DES, Rijndael состоит из нескольких циклов замены, сдвига, матричного умножения и операции сложения с ключом (Рис. 9).

Рис. 9. Общая схема шифра

Процесс шифрования начинается с группирования битов открытого текста в столбцы массива побайтно.  

  •  Первые 4 байта формируют первый столбец; следующие 4 байта формируют второй столбец и так далее.
    •  Если размер блока равен 128 битам, то он превращается в массив 4x4.  Для большего размера блока массив имеет дополнительные столбцы.
    •  Ключ также группируется в массив тем же способом.

Алгоритм состоит из некоторого количества раундов (от 10 до 14 – это зависит от размера блока и длины ключа), в которых последовательно выполняются следующие операции:

  1.  ByteSub – табличная подстановка или операция замены 8×8 бит (рис. 10).

При выполнении операции замены алгоритм использует одну таблицу замен (S-box) вместо 8 таблиц замен в DES.  Таблица замен представляет собой массив:

  •  Каждый элемент в массиве данных служит адресом элемента в таблице замен, где первые 4 бита указывают строку, а последние 4 бита – столбец в таблице замен.  
    •  Элемент таблицы замен, определяемый таким способом, заменяет элемент массива исходных данных.


Рис.10.
 Табличная подстановка

  1.  ShiftRow – сдвиг строк в двумерном массиве на различные смещения (рис.11);

Операция сдвига строк (Row Shift) применяется после замены и циклически сдвигает влево 4 строки массива данных. Первая строка сдвигается на 0 элементов, вторая – на 1, третья – на 2 и четвертая – на 3.

Рис.11. Сдвиг строк

  1.  MixColumn – математическое преобразование, перемешивающее данные внутри столбца. При этом массив данных после сдвига умножается на фиксированную матрицу-циркулянт M:

При выполнении матричного умножения операции сложения и умножения элементов обеих матриц выполняются в конечном поле GF(28). Матрица M является циркулянтом: каждая ее строка получается циклическим сдвигом предыдущей строки вправо на один элемент. Элементы матрицы выбраны таким образом, чтобы свести к минимуму трудоемкость операции умножения: в ней присутствуют лишь небольшие по значению числа 01, 02 и 03. Этим самым обеспечивается высокая эффективность возможных реализаций этой операции.

Следует добавить, что операция умножения в конечном поле GF(28) является достаточно трудоемкой в программной реализации и никаким образом не сводится к обычному арифметическому умножению. Если умножение двоичных чисел реализуется сдвигами и обычным арифметическим суммированием, то умножение полиномов над полем GF(2) - теми же сдвигами и побитовым суммированием по модулю 2. Однако в шифре Rijndael одним из множителей всегда является константа и размер операндов невелик - один байт. Это позволяет реализовать умножение на константу в поле GF(28) как замену, что существенно повышает эффективность программной реализации. Для каждого множителя-константы при этом требуется свой отдельный узел замен. Напротив, наиболее эффективной аппаратной реализацией этой операции является реализация в виде серии сдвигов и побитовых сложений по модулю два в соответствие с ее непосредственным определением.

  1.  AddRoundKey – добавление материала ключа операцией XOR.

Ключ группируется в массив и затем расширяется добавлением 40 новых столбцов.

Если первые четыре столбца (заданные ключом) - , то новые столбцы генерируются рекурсивным способом.

1. Если  не делится без остатка на 4, то столбец  определяется так:

                    

2. Если  делится без остатка на 4, то столбец  определяется так:

                    

где – преобразование, реализованное так:

а. Элементы циклически сдвигаются на один байт.

б. Каждый из этих 4 байт подается на вход таблицы замен для создания четырех новых байт .

в. Вычисляется константа для данного цикла r(i) = 2(i-4)/4

г. Формируется преобразованный столбец как: .

3. Ключ цикла для цикла  состоит из столбцов .

В последнем раунде операция перемешивания столбцов отсутствует, что делает всю последовательность операций симметричной.

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

  1.  Какие принципы блочного шифрования вы знаете?
    1.  В чем различие между блочными и потоковыми шифрами?
    2.  Какие требования выдвигаются к функции шифрования для блочных шифров?
    3.  На чем основана криптостойкость блочных шифров?
    4.  Какие алгоритмы блочного шифрования вам известны?
    5.  Опишите структуру шифра Файстеля.
    6.  Дайте определение понятиям диффузия и конфузия.
    7.  Какие параметры шифра Файстеля вам известны?
    8.  Какова размерность ключа и блока данных для алгоритма шифрования DES?
    9.  Опишите структуру раунда шифрования DES.
    10.  Опишите алгоритм формирования подключей DES.
    11.  Охарактеризуйте надежность DES.
    12.  Перечислите принципы, положенные в основу IDEA.
    13.  Каковы основные параметры алгоритма шифрования IDEA?
    14.  Опишите алгоритм развертывания ключей для RC5.
    15.  С какой целью был учрежден конкурс AES? Какие требования выдвигались к алгоритмам-участникам?
    16.  Опишите структуру алгоритма шифрования Rijndael.
    17.  какие режимы блочного шифрования вам известны? Кратко охарактеризуйте каждый.

Приложение 1.

Номер

варианта

Функция раунда

Алгоритм вычисления подключа

1

32

10

56

  1.  к блоку  применяется перестановка, заданная матрицей М1 (см. приложение 2);
  2.  полученный блок побитно складывается по модулю 2 с матрицей подключа .
  1.  ключ разбивается на две части по 28 бит;
  2.  к каждой части применяется подстановка с расширением, заданная матрицей К1 (см. приложение 2);
  3.  на вход функции раунда подается правая часть ключа, если раунд номер раунда – четное число, иначе подается левая часть ключа;
  4.  на завершающей стадии алгоритма от правой и левой части ключа откидывется расширение.

2

32

12

64

1. блок  побитно складывается по модулю 2 с матрицей подключа .

2. к блоку применяется перестановка, заданная матрицей М1 (см. приложение 2);

1. ключ разбивается на две части по 32 бит, каждая из которых организуется в матрицу 4×8;

2. в каждой части ключа -я строка сдвигается циклически влево на 2бит, ;

3. на вход функции раунда подается правая часть ключа, если раунд номер раунда – нечетное число, иначе подается левая часть ключа;

3

32

10

32

  1.  к блоку  применяется перестановка, заданная матрицей М2 (см. приложение 2);

2. полученный блок побитно складывается по модулю 2 с матрицей подключа .

1. к матрице ключа применяется подстановка, заданная матрицей К2 (см. приложение 2);

2. каждая -я строка матрицы циклически сдвигается вправо на 2 бит, .

4

32

12

64

1. блок  побитно складывается по модулю 2 с матрицей подключа .

2. к блоку применяется перестановка, заданная матрицей М2 (см. приложение 2);

1. ключ разбивается на две части по 32 бит, каждая из которых организуется в матрицу 4×8;

2. к содержимому правой части ключа прибавляется содержимое левой части ключа с использованием операции XOR;

3. к левой части ключа применяется перестановка, заданная матрицей К2 (см. приложение 2);

4. на вход функции раунда подается правая часть ключа, если раунд номер раунда – нечетное число, иначе подается левая часть ключа;

Приложение 2.

Матрицы перестановок для блоков данных

М1

1

19

13

18

5

27

7

23

29

24

2

14

10

26

21

15

16

9

30

28

4

6

31

32

25

20

3

17

12

11

8

22

М2

24

5

20

2

12

17

8

16

29

10

31

26

30

3

13

23

9

32

1

11

19

22

28

4

27

18

25

21

6

14

7

15

Матрицы перестановок для ключей

К1

1

13

5

26

9

18

2

17

2

25

19

14

1

23

27

8

4

20

6

24

3

10

16

22

8

12

28

7

15

21

4

11

К2

4

10

29

22

8

14

26

6

24

15

2

18

20

31

5

17

1

30

23

3

28

11

21

12

19

9

16

27

13

25

7

32

Приложение 3.

Таблица 1. Таблицы перестановок, используемых в DES

 

 


Таблица 2. Определение
S-матриц алгоритма DES


Таблица 3. Вычисление ключей DES  

Таблица 4. Режимы работы DES


 

А также другие работы, которые могут Вас заинтересовать

23540. ГРАММАТИКА ИСПАНСКОГО ЯЗЫКА 1.02 MB
  1 Имя существительное – Nombre sustantivo В испанском языке существительные бывают: собственные Rosa Роза Carmen Кармен нарицательные la mesa стол el árbol дерево одушевленные el hombre мужчина el gato кот неодушевленные el bosque лес la silla стул конкретные la cara лицо el techo потолок абстрактные el tiempo время el aire воздух собирательные la biblioteca библиотека la muchedumbre толпа 1. Существительные которые оканчиваются в единственном числе на согласные z и x меняют их во множественном числе на c:...
23541. НЕМЕЦКИЙ ЯЗЫК. УНИВЕРСАЛЬНЫЙ СПРАВОЧНИК 3.34 MB
  2] К ЧИТАТЕЛЮ [1] Язык DIE SPRACHE [1. Die Anwendung des Zeitwortes [2.2] Префиксы die Vorsilben er ent ver.3] Никаких сложносоставных существительных die Substantivkopellungen.
23542. Генетическая классификация языков мира: необходимый минимум для студентов I курса 47.5 KB
  Для перечисленных ниже языков полезно знать не только то к какой группе и семье они относятся но и где на них говорят с точностью до страны или хотя бы континента A. Языки Евразии включая циркумполярную область Индоевропейская семья более 400 языков Албанский Армянский Греческий древне и новогреческий Кельтские: бретонский корнский валлийский ирландский шотландский и др. Тохарские мертвые: тохарский А и тохарский Б Уральская семья более 30 языков Прибалтийскофинские: финский эстонский ливский водский карельский...
23543. МЕТОДЫ КОМПАРАТИВИСТИКИ 103 KB
  Многообразие методов изучения языков III. Трактовка и апробация методов изучения языков разными ученымилингвистами: сравнительноисторический метод; сравнительный метод; сопоставительный метод; сопоставительнотипологический метод; метод индексирования; описательный метод; метод контрастивного анализа и его типы; IV. Настоящая работа посвящена тем аспектам языкознания или лингвистики которые занимаются сравнительным изучением внутренних законов развития и функционирования языка и ставит своей целью выявление принципов...
23544. ЖИВОЕ СЛОВО 222 KB
  Под оратором мы разумеем не только лиц произносящих речи в больших собраниях на митингах и т. Рудин владел едва ли не высшей тайной музыкой красноречия. Самый звук его голоса увеличивал обаяние; казалось что устами говорило чтото высшее для него самого неожиданное Дар воодушевленной проникнутой живым чувством речи – драгоценнейший дар для агитатора. Художественная картинка воздействия на толпу воодушевленной речи дана Горьким в его превосходной сказочке О чиже который лгал.
23545. ОРАТОРСКОЕ ИСКУССТВО И РИТОРИКА 231.5 KB
  А именно: умение убедительно излагать свою речь остроумно отвечать на вопросы говорить без подготовки используя пункты выступления предыдущего оппонента спорить против очевидности сбивать и путать противника в споре и т. Поэтому чувствуя свою уязвимость перед уловками более опытных в публичном красноречии оппонентов Демосфен выработал у себя такую манеру выступления при которой практически не оставалось места для импровизации а выкрики и замечания противников игнорировались или парировались заранее подготовленным текстом. В...
23546. Речевые ошибки в электронных СМИ 45.5 KB
  Новикова Морфологические ошибки Ошибки такого рода объясняются нарушениями правил образования различных форм слова. В приведенных далее примерах ошибки объясняются именно незнанием особенностей склонения слов этой части речи. Нередки ошибки и в выборе падежной формы составного числительного оканчивающегося на два три четыре в сочетании с одушевленным существительным.
23547. Культура речи 164.43 KB
  Русский язык. Язык и культура. Русский язык.
23548. Стилистика – культура речи 1.38 MB
  2] ОРАТОРСКОЕ ИСКУССТВО В РОССИИ [2] НОРМА КАК ОСНОВНАЯ КАТЕГОРИЯ ТЕОРИИ КУЛЬТУРЫ РЕЧИ [2.3] ОСОБЕННОСТИ СОВРЕМЕННЫХ НОРМ РАЗГОВОРНОЙ РЕЧИ [3] АКТИВНЫЕ ПРОЦЕССЫ В СОВРЕМЕННОМ РУССКОМ ЯЗЫКЕ И СОЦИАЛЬНЫЕ ПРИОРИТЕТЫ В ФОРМИРОВАНИИ СОВРЕМЕННОЙ КУЛЬТУРЫ РЕЧИ [3.2] СОЦИАЛЬНЫЕ ПРИОРИТЕТЫ В ФОРМИРОВАНИИ СОВРЕМЕННОЙ КУЛЬТУРЫ РЕЧИ [4] КУЛЬТУРА РЕЧИ СОВРЕМЕННОЙ МОЛОДЕЖИ [4.