- •Криптография с открытом ключом
- •2.0 Элементы теории сложности
- •2.1 Односторонние функции
- •2.2 Схема шифрования с открытым ключом
- •2.2.2 Схема шифрования rsa
- •2.3 Схема цифроврй подписи
- •2.3.1 Конструкция цп на основе односторонней функции с секретом
- •2.3.2 Цп на основе схемы шифрования с о.К.
- •2.3.4 Гост р 34.10-94
- •2.3.5 Гост р 34.10-2001
- •2.4.1 Слабые и сильные хф
- •2.4.2 Конструкция хф
- •2.4.3 Хф гост р 34.10-94
- •2.4.4 Применение хф
- •2.5 Хф с ключом
- •2.5.1 Определение
- •2.5.2 Конструкция хф с ключом
- •2.5.3 Имитовставка гост 28147
- •Криптографические протоколы
- •3.1 Определение
- •3.2 Классификация кп
- •3.3 Правила построения кп
- •3.4 Прием защиты от атак повтора
- •3.5 Протоколы обеспечения к, ц, н
- •3.5.1 Протокол пс с обеспечением ц
- •3.6 Протоколы аутентификации
- •3.6.1 Протокол простой защищенной аутентификации
- •3.6.2 Протоколы сильной аутентификации
- •3.7 Протоколы управления ключами
- •3.7.1 Протокол диффи-хэлмана
- •3.7.3 Протокол явного ключевого обмена
- •Управление ключами
- •4.1 Общие
- •4.2 Угрозы управления ключами
- •4.3 Защита ключей
- •4.4.1 По типу алгоритма
- •4.4.2 По уровням
- •4.4.3 По криптопериоду
- •4.5 Состояние ключей
- •4.6 Концепция распределения ключей
- •4.6.1 Распределение ключей «точка – точка»
- •4.6.2 Распределение внутри домена безопасности
- •4.6.3 Распределение ключей между доменами безопасности
2.4.2 Конструкция хф
ИСО/МЭК 10118-1 задается общая конструкция ХФ. |m|=Lm, |H(m)|=Lh.
1) дополнить структуру m до длины, кратной длине L1(длина блока n) для того, чтобы после «резать» равными частями;
2) Разбить дополненную последовательность на блоки m=m1||m2||…||mq;
3) определяем стартовой значение H0=IV – строка длины L2, H1…Hq:|Hi|=L2, Hi=φ(mi; Hi-1);
4) H(m)=T(Hq), T:
Для определения ХФ, определенной стандартом, необходимы условия:
выбрать L1, L2, Lh;
метод дополнения L1;
стартовый вектор IV;
определение φ-шаговая функция;
Финальные преобразования T;
Padding – методы дополнения
L1 и L2 выбираются равными, и часто это значение равно Lh.
IV выбирается либо нулевой, либо заранее оговоренное значение.
Методы дополнения описаны в 10118-1, самый простой «Метод нуля».
Дополнение нулями при отсутствии финального преобразования приводит к тому, что значение ХФ без дополнения равно ХФ с дополнением до кратности.
Для того, чтобы противостоять этой атаки необходимо подать на вход длину сообщения.
Финальное преобразование часто опускаются, что приводит к атаке добавления сообщения.
ISO/IEC 10118-2 посвящен использованию построения алгоритма шифрования φ.
ki зависит от Hi-1, mi добавляется для того, чтобы избежать атаки на ХФ.
Этот вариант применим, когда уже есть реализация схемы шифрования.
В ISO/IEC 10118-3 сформулировано изготовление φ, т.е. специально для этой цели. «Заказные» ХФ. Приведены ХФ для следующих стандартов: SHA – 1(160бит), SHA – 256, SHA – 512, SHA – 384, RIPEMD – 128, RIPEMD – 160.
В ISO/IEC 10118-4 предлагается использовать в значениях ХФ модулярную арифметику. Предлагает вычислять φ следующим образом
(1), где A=const.
- mi расшифровывается в два раза – Bi;
- каждый полубайт mi дополняется полубайтом, состоящим из единиц (1111)2;
- N произведение 2-х больших;
- е рекомендуется выбирать е или 257
Единственное достойинство модулярной арифметики в том, что она может быть удобной.
Идея: - отказались и перешли к (1) из-за того, что для «идеи» нашли много атак.
(1) – окончательный вариант.
2.4.3 Хф гост р 34.10-94
Lk=256, L1=L2=256; .
Шаговая функция хэширования χ(М,Н):
- генерация ключей, которые зависят от М и Н;
- перемешивание.
Шифрование: (М, Н, Кi(i=1,…,4)). H=h1||h2||h3||h4, |hi|=64
- шифруется в режиме простой замены, блочным шифром ГОСТ 28147.
S=s1||s2||s3||s4, || - конотенация.
Перемешивание: . , где , . 16 битовых регистров сдвига
, где 12 и 61 показывают сколько раз повторить каждую операцию.
Описание самой ХФ
М – сообщение;
Mr – остаток - оставшаяся необраотанная часть сообщения М;
Мр – префикс – остаток на очередном этапе;
Мs – суффикс – буфер, который обрабатывается на очередном этапе;
Н – текущее значение ХФ(накопитель результата);
- контрольная сумма;
L – длина сообщения.
|Н|=256, | |=256, |L|=256.
На каждом шаге алгоритм работает с Mr от предыдущего. В Н записывается некоторое стартовое значение, заранее неоговоренное.
Mr=M, H=IV, =0, L=0;
Пока Mr>256 => выполняются 3)-7);
Мr=Mp||Ms;
H=χ(Ms,H);
L=L+256(mod2256);
;
Mr=Mp;
Иначе выполняются 9)-14);
Модификация длины L=L+|Mr|;
Дополняются нулевыми битами до 256 бит, M’=0…0||Mr, |M’|=256;
- изменение контрольной суммы;
H=χ(M’,H);
H=χ(L,H) – учет длины;
H=χ( ,H) – учет контрольной суммы.
Н(М)=Н