Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Общие сведения. Отличительной особенностью блочных шифров является обработка исходного текста по несколько (десятки





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

 

В принципе, блочный шифр – это шифр замены над очень большим алфавитом (из десятков и сотен бит). Количество бит в обрабатываемом блоке называется разрядностью блока, количество бит в ключе – размером ключа блока. Наиболее популярная разрядность блока на сегодняшний 64 и 128 бит. Размер ключа – это 128, 192 или 256 бит.

В общем виде процесс блочного шифрования описывается формулой:

 

Z=EnCript (X, Key),

 

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

Х=DeCript (Z, Key).

В тех случаях, когда и для шифрования и для дешифрования использeется одна и та же последовательность действий, т. е. EnCript = DeCript = Cript и, соответственно, Cript (Cript (X, Key), Key) = X блочный шифр называется абсолютно симметричным.

Основной идеей практически всех блочных шифров является тот факт, что последовательность бит любой длины Q можно представить в виде натурального числа из диапазона [0 … 2Q – 1]. Один и тот же объем данных, разбивая на блоки разными способами, можно представить как в виде большого набора небольших чисел, например от 0 до 15 или от 0до 255, так и в виде нескольких больших чисел, например, из диапазона [0 ….4294967295]. Здесь все зависит от от схемы разбиения потока данных на блоки бит. Вот над этими натуральными числами и производится множество простейших математических и алгоритмических преобразований, т. н. криптопримитивов – из числа тех, которые легко выполняются на современной архитектуре ЭВМ.

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

 

Таблица 2.1. Основные обратимые криптопримитивы

 

Операция Условные обозначения Математическая нотация Примечания
Сложение Х' = Х +V При переполнении резуль-татом разрядности операндов бит переноса отбрасывается – потери информации при этом не происходит
Исключающее "ИЛИ" (XOR) X' = X Å V или X' = X XOR V Операция обратима сама себе
Умножение по модулю 2N+1   X' = (X*V) mod (2N+1) Данное преобразование обратимо. Сомножитель по известному произведению и другому сомножителю находится по алгоритму Евклида.
Циклический битовый сдвиг влево X' = X ROL V Операция является обратной к "циклическому сдвигу вправо"
Циклический битовый сдвиг вправо X' = X ROR V Операция является обратной к "циклическому сдвигу влево"    
Произвольная перестановка бит   Данная операция рассчитана в основном на аппаратную реализацию, и поэтому сейчас в значительной степени устарела.
Табличная подстановка
S

X" = S – Box |X|  

 

С помощью табличных подстановок (англ. Substitute-boxS-box)) реализуются наиболее общие законы изменения данных, зачастую не описываемые ни аналитически, ни алгоритмически.

 

Таблица 2.2. Основные необратимые криптопримитивы

Операция Условные обозначения Математическая нотация Примечания
Умножение
*

Х' = (Х× V) mod(2N)   Х' = (Х´ V) mod(2N)
Остаток (модуль) от деления     X' = X mod V   X' = X mod V
Арифметический битовый сдвиг влево X' = X SHL V   X' = X SHL V
Арифметический битовый сдвиг вправо X' = X SHR V   X' = X SHR V  
  Логическое "И"
&

X' = X AND V   X' = X AND V
  Логическое "ИЛИ" X' = X OR V   X' = X OR V

 

В качестве параметра V в обратимых и необратимых операциях могут выступать, во-первых, фиксированные числовые константы.

 

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

Операции, в которых в качестве параметра V используется материал ключа, называются перемешивание с ключом или добавлением ключа (никакой связи с арифметическим сложением данный термин не несет). Подобных операций за время шифрования одного блока производится достаточно много. Таким образом, решается одно из главных требований к шифрам – невосстановимость ключа. Действительно, если к блоку данных добавить одну и ту же информацию, но неоднократно и разными способами, то подобная операция будет необратима относительно добавленной информации, хотя обратимость относительно первого операнда остается. Например, пусть Х и К – четырехбитные исходное число и ключ соответственно (диапазон возможных значений 0..15 каждого), тогда формула:

 

Х' = ((X + K) XOR (K + 7)) AND 11112

(нижний индекс показывает систему счисления)

 

является обратимой относительно X, но необратимой относительно K по известной паре Х и Х '. Не существует аналитической формулы, выражающей К через Х и Х '. Конечно, всегда можно составить табличную зависимость, перебрав при известном Х

все К и записав все получившиеся Х', но это легко сделать при нашем гипотетическом примере из 16 возможных значений К. На практике при же при длине ключа в 128 бит для решения главной задачи не хватит ни ресурсов памяти для хранения, ни, что главное, вычислительных возможностей ЭВМ. Таким образом, многократное добавление материала ключа по сложной схеме является надежным средством защиты блочных шифров от атаки по известным парам открытый/зашифрованный текст.

 

Третьим возможным значением параметра V является значение, вычисленное от независимой части шифруемого блока. Данный метод лежит в основе схемы блочного шифрования, называемой сетью Файстеля (Feistel network).

Сети являются одной из наиболее распространенных схем блочных шифров. Блочный шифр, построенный по такой схеме, состоит из многократных повторений, называемых циклами или раундами (англ. round), нескольких видов операций, называемых слоями. Разбиение всего процесса шифрования на несколько однотипных слоев позволяет:

- сократить размер программного кода использованием цикла;

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

- сделать шифр легко усложняемым при необходимости (путем увеличения числа раундов);

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

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

Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической сети их две Величины именуются параметрами сети, обычно их роль играет материал ключа. Функция F называется образующей. Оптимальное число раундов для сети Файстеля К – от 8 до 32. Данная

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

Более того не трудно заметить, что сеть Файстеля, в которой для наложения значения F используется операция XOR, симметрична. Исключающее ИЛИ обратимо своим же повтором, и потому инверсия последнего обмена ветвей делает возможным раскодирование блока той же сетью Файстеля, но только с обратным порядком параметров Vi. Следует отметить, что для обратимости сети Файстеля не имеет значение, является ли число раундов четным или нечетным числом. В большинстве реализаций сети Файстеля прямое и обратное преобразования производятся одним и тем же фрагментом программного кода, оформленного в виде процедуры, которому в качестве параметра передается вектор величин Vi либо в исходном, либо в инверсном (для дешифрирования) порядке.

Date: 2015-06-11; view: 702; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию