Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Блочные шифры

Единицей кодирования при использовании блочных шифров является блок, состоящий из нескольких байтов (от 4 до 32). Результат кодирования зависит от всех исходных байтов этого блока. Схема применяется при пакетной передаче информации и кодировании файлов.

Преобразование шифра по К. Шеннону должно использовать ряд принципов. Выделяют два общих принципа построения шифров: рассеивание и перемешивание.

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

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

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

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

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

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

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

Криптоалгоритм считается идеально стойким, если прочесть зашифрованный блок данных вы имеете возможность, только перебрав все варианты ключей, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью ½ после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2 N -1 проверок. Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом. Даже предположив, что перебор ключей производится на специально созданной многопроцессорной системе, в которой благодаря диагональному параллелизму на проверку 1 ключа уходит только 1 такт, то на взлом 128 битного ключа современной технике потребуется не менее 1021 лет. Естественно, все сказанное относится только к идеально стойким шифрам. Угадать шифр также маловероятно (см. табл.).


Таблица

Вероятности различных редких событий

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

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

· функция Е должна быть обратимой;

· не должно существовать иных методов прочтения сообщения P по известному блоку C, кроме как полным перебором ключей K;

· не должно существовать иных методов определения, каким ключом K было произведено преобразование известного сообщения P в сообщение C, кроме как полным перебором ключей.

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

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

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

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

 

<== предыдущая лекция | следующая лекция ==>
Потоковые шифры | Сеть Фейстеля
Поделиться с друзьями:


Дата добавления: 2014-01-15; Просмотров: 641; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.