,
- дополнение до кратности 256 бит;
- нарезка по 256 бит;
- каждый блок сжимается с использованием шифрования ГОСТ Р 28147 (– шаговая функция хэширования);
- два этапа сжатия с учетом контрольной суммы и длинны сообщения.
Шаговая функция χ
;
.
Алгоритм вычисления шаговой функции:
1) генерация ключей Ki (i=1…4), зависят от H и M;
2) шифрующие преобразование строки H на ключах Ki;
3) перемешивающие преобразование: результат шифрования еще раз перемешивается в H.
Генерация ключей:
Опустим. Ki(H,M), i=1…4.
Шифрующее преобразование:
,;
| - конкатенация (склейка битовых строк);
;
.
Перемешивание:;
;
;
;
; s w:val="28"/><w:lang w:val="EN-US"/></w:rPr><m:t>О·</m:t></m:r></m:oMath></m:oMathPara></w:p><w:sectPr wsp:rsidR="00000000"><w:pgSz w:w="12240" w:h="15840"/><w:pgMar w:top="1134" w:right="850" w:bottom="1134" w:left="1701" w:header="720" w:footer="720" w:gutter="0"/><w:cols w:space="720"/></w:sectPr></wx:sect></w:body></w:wordDocument>">.
.
Процедура вычисления h(M):
M – входные данные;
IV – стартовое значение регистра H;
|
|
Mr ϵ V* – часть М, которая еще не прошла процедуру хеширования;
Мр ϵ V* – остаток очередной терации;
Мs ϵ V256 – текущая часть М, которая обрабатывается;
Н ϵ V256 – текущее значение хэш-функции;
Σ ϵ V256 – контрольная сумма;
L ϵ V256 – длина М.
Алгоритм:
1. Mr=M, H=IV, Σ=0, L=0;
2. Пока | Mr|>256 => выполняются шаги 3.-7.;
3. Мr=Mp|Ms;
4. H=χ(Ms,H);
5. L=L+256(mod2256);
6. Σ= Σ+Ms(mod 2256);
7. Mr=Mp;
8. Иначе выполняются 9.-14.;
9. Модификация длины L=L+|Mr|(mod 2256);
10. Дополняются нулевыми битами до 256 бит, M’=0…0|Mr: |M’|=256;
11. Σ= Σ+M(mod 2256) – изменение контрольной суммы;
12. H=χ(M’,H);
13. H=χ(L,H) – учет длины;
14. H=χ(Σ,H) – учет контрольной суммы.
15. h(М)=Н.
Применение хэш-функции без ключа:
1) ЭЦП (хэш-функция должна анализировать совместно с алгоритмом цифровой подписи).
2) Парольная защита:
пользователь инф. система
A B PA
PA
Для улучшения была придумана схема хеширования паролей:
A B
Pi
Сильная ХФ не обязательна. Противник может извлечь пароль из канала связи.
Система однократных паролей:
Пользователь А, выбирает пароль РA,
;
.
A B
Pi
h=n-1…0, H(Pi)=Pi+1 -? => запомнить Pi.
Недостатки:
- Решить как помнить Pi -?
- конечность цепочки Pi;
- синхронизм Pi пользователя сервера;
Наблюдение пароля в канале связи ничего не дает, но если противник владеет каналом связи, то ему все возможно сделать. В этом случае ХФ должна удовлетворять свойствам слабой ХФ.
3) Обеспечение целостности:
(М, Н(М)).
Вопрос: какая хэш-функция используется сильная/слабая.
ЭЦП:.
Для защиты подписываемого сообщения от подмены в канале связи достаточно использовать слабую хэш-функцию.
;
отказ от (m, S);
.
=> Для защиты от отказа следует использовать сильную хэш-функцию.
|
|
Парольная защита:
;
;
сервер.
Атака на сервере =>,
H – односторонняя хэш-функция.
Можно:;
=> Н должна быть слабой.
Обеспечение целостности информации:
(m; H(m))
(m’, h’) >
; =>
;
e – ошибка.
e2 = 0 => (m’,h’);
H(m’)=H(m);
=> хэш-функция должна быть односторонней и слабой.