145. Противодействие методам социальной инженерии



страница5/27
Дата29.11.2016
Размер1.54 Mb.
Просмотров3900
Скачиваний0
1   2   3   4   5   6   7   8   9   ...   27

Методы перестановки


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

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

Например, для d=6 в качестве ключа перестановки можно взять 436215. Это означает, что в каждом блоке из 6 символов четвертый символ становится на первое место, третий – на второе, шестой – на третье и т.д. Пусть необходимо зашифровать такой текст:

ЭТО_ТЕКСТ_ДЛЯ_ШИФРОВАНИЯ

Количество символов в исходном сообщении равно 24, следовательно, сообщение необходимо разбить на 4 блока. Результатом шифрования с помощью перестановки 436215 будет сообщение

_ОЕТЭТ_ТЛСКДИШР_ЯФНАЯВОИ

Теоретически, если блок состоит из d символов, то число возможных перестановок d!=1*2*...*(d-1)*d. В последнем примере d=6, следовательно, число перестановок равно 6!=1*2*3*4*5*6=720. Таким образом, если противник перехватил зашифрованное сообщение из рассмотренного примера, ему понадобится не более 720 попыток для раскрытия исходного сообщения (при условии, что размер блока известен противнику).

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

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

Рассмотрим пример. Пусть в таблице кодирования будет 4 столбца и 3 строки (размер блока равен 3*4=12 символов). Зашифруем такой текст:

ЭТО ТЕКСТ ДЛЯ ШИФРОВАНИЯ

Количество символов в исходном сообщении равно 24, следовательно, сообщение необходимо разбить на 2 блока. Запишем каждый блок в свою таблицу по строчкам (таблица 2.9).



Таблица 2.9. Шифрование методом перестановки по таблице




1 блок




Э

Т

О




Т

Е

К

С

Т




Д

Л

2 блок




Я




Ш

И

Ф

Р

О

В

А

Н

И

Я

Затем будем считывать из таблицы каждый блок последовательно по столбцам:

ЭТТТЕ ОКД СЛЯФА РНШОИИВЯ

Можно считывать столбцы не последовательно, а, например, так: третий, второй, первый, четвертый:

ОКДТЕ ЭТТ СЛШОИ РНЯФАИВЯ

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

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

Посмотрим, как зашифровать и расшифровать сообщение, имеющее длину, не кратной размеру таблицы перестановки. Зашифруем слово

ПЕРЕМЕНКА

Количество символов в исходном сообщении равно 9. Запишем сообщение в таблицу по строкам (таблица 2.10), а последние три ячейки оставим пустыми.

Таблица 2.10. Шифрование неполного блока методом перестановки по таблице




П

Е

Р

Е

М

Е

Н

К

А










Затем будем считывать из таблицы последовательно по столбцам:

ПМАЕЕРНЕК

Для расшифрования вначале определяют число полных столбцов, то есть количество символов в последней строке. Для этого делят размер сообщения (в нашем примере – 9) на количество столбцов или размер ключа (в примере – 4). Остаток от деления будет числом полных столбцов: 9 mod 4 = 1. Следовательно, в нашем примере был 1 полный столбец и три коротких. Теперь можно поставить буквы сообщения на свои места и расшифровать сообщение. Так как ключом при шифровании было число 1234 (столбцы считывались последовательно), то при расшифровании первые три символа (ПМА) записываются в первый столбец таблицы перестановки, следующие два (ЕЕ) – во второй столбец, следующие два (РН) – в третий, и последние два (ЕК) – в четвертый. После заполнения таблицы считываем строки и получаем исходное сообщение ПЕРЕМЕНКА.

Существуют и другие способы перестановки, которые можно реализовать программным и аппаратным путем. Например, при передаче данных, записанных в двоичном виде, удобно использовать аппаратный блок, который перемешивает определенным образом с помощью соответствующего электрического монтажа биты исходного n-разрядного сообщения. Так, если принять размер блока равным восьми битам, можно, к примеру, использовать такой блок перестановки, как нарис. 2.7.




Рис. 2.7.  Аппаратный блок перестановки

Для расшифрования на приемной стороне устанавливается другой блок, восстанавливающий порядок цепей.

Аппаратно реализуемая перестановка широко используется на практике как составная часть некоторых современных шифров.

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

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

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


148. Криптографические хеш-функции.

Итеративная хэш-функция


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

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




Рис. 2.1.  Схема Меркеля-Дамгарда

Схема использует следующие шаги:



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

  2. Сообщение тогда рассматривают как t блоков, размер каждого состоит из n бит. Мы обозначим каждый блок М1,..., Мt. Мы обозначаем дайджест, созданный при t итерациях, - H1, H2,...., Ht

  3. Перед стартом итерации дайджест H0 устанавливается на фиксированное значение, обычно называемое IV (начальное значение или начальный вектор).

  4. Функция сжатия при каждой итерации обрабатывает Hi-1 и М., создавая новый Hi. Другими словами, мы имеем Hi = .f (Hi-1, Мi), где f - функция сжатия.

  5. Ht - функция криптографического хэширования первоначального сообщения, то есть h(M).

Если функция сжатия в схеме Меркеля-Дамгарда устойчива к коллизии, хэш-функция также устойчива к коллизии.

Две группы функций сжатия


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

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

Дайджест сообщения (MD)

Несколько алгоритмов хэширования были разработаны Роном Ривестом. Они известны в литературе как MD2MD4 и MD5, где MD обозначает Дайджест Сообщения. Последняя версия, MD5, является усиленной версией MD4, которая делит сообщение на блоки по 512 битов и создает дайджест на 128 битов. Оказалось, что дайджест сообщения размером 128 битов - слишком маленький, чтобы быть устойчивым к атаке коллизии.



Алгоритм безопасного хэширования (SHA - Secure Hash Algorithm)

Алгоритм безопасного хэширования (SHA) - стандарт, который был разработан национальным Институтом Стандартов и Технологии (NIST - National Institute of Standards and Technology) и издан как Федеральный Стандарт Обработки Информации (FIP 180). Он упоминается в литературе как Стандарт Безопасного хэширования ( SHS - Secure Hash Standard ). Стандарт главным образом базируется на MD5. В 1995 г. он был пересмотрен под названием FIP 180-1, который включает SHA-1. Позже он снова был пересмотрен под названием FIP 180-2, который определяет четыре новых версии: SHA-224SHA-256SHA-384 и SHA-512табл. 2.1 дает список некоторых из характеристик этих версий.

Таблица 2.1. Характеристики алгоритмов безопасного хэширования (SHAs)




Характеристики

SHA-1

SHA-224

SHA-256

SHA-384

SHA-512

Максимальный размер сообщения

264 - 1

264 - 1

264 - 1

2128 - 1

2128 - 1

Размер блока

512

512

512

1024

1024

Размер дайджеста сообщения

160

224

256

384

512

Число раундов

80

64

64

80

80

Размер слова

32

32

32

64

64

Все эти версии имеют одну и ту же структуру. SHA-512 будет рассмотрен подробно позже в этой лекции.

Другие Алгоритмы сохранения целостности (RIPMD - RACE Integrity Primitives Evaluation Message Digest).Группа алгоритмов криптографического хэширования( RIPMD ) имеет несколько версий. RIPEMD-160 - алгоритм хэширования с дайджестом сообщения на 160 битов. RIPEMD-160 использует ту же структуру, что и MD5, но применяет два варианта выполнения.

HAVAL - алгоритм хэширования переменной длины с дайджестом сообщения размера 128, 160, 192, 224 и 256. Размер блока - 1024 бита.
Хэш-функции, основанные на блочных шифрах

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

Схема Рабина. Итеративная хэш-функция, предложенная Рабиным, очень проста. Схема Рабина базируется на схеме Меркеля-Дамгарда. Функция сжатия заменяется любым алгоритмом шифрования. Блок сообщения используется как ключ; предварительно созданный дайджест используется как исходный текст. Зашифрованный текст - новый дайджест сообщения. Обратите внимание, что размер дайджеста - это размер блочного шифра данных в основной криптографической системе. Например, если DES используется как блочный шифр, размер дайджеста - только 64 бита. Хотя схема очень проста, она может быть раскрыта с помощью атаки "сведения к середине", рассмотренной в лекции 6, поскольку противник может применить алгоритм дешифрования криптографической системы. Рис. 2.2 показывает схему Рабина.




Рис. 2.2.  Схема Рабина

Схема Девиса-Мейера (Davies-Mayer). В основном она повторяет схему Рабина, за исключением того, что использует прямую связь для защиты от атаки "сведения в середину".




Рис. 2.3.  Схема Девиса-Мейера

Схема Матиса-Мейера-Осеаса (Metyas-Mayer-Oseas). Это версия схемы Девиса-Мейера: блоки сообщения применяются как ключи криптосистемы. Схема может быть использована, если блоки данных и ключ шифрования имеют один и тот же размер. Например, AES хорошо подходит для этой цели.




Рис. 2.4.  Схема Матиса-Мейера-Осеаса

Схема Миагучи-Пренеля - расширенная версия схемы Матиса-Мейера-Осеаса. Чтобы сделать алгоритм более устойчивым к атаке, исходный текст, ключ шифра и зашифрованный текст складываются с помощью ИСКЛЮЧАЮЩЕГО ИЛИ и создают новый дайджест. Эта схема используется в Whirlpool для создания хэш-функции. На рис. 2.5 показана схема Миагучи-Пренеля.




Рис. 2.5.  Схема Миагучи-Пренеля




Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7   8   9   ...   27


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал