Комплексный метод защиты информации
Функции хеширования
В качестве исходного значения для вычисления ЭЦП берется не сам электронный документ, а его хэш. Хэш представляет собой последовательность (большое число) фиксированной длины, однозначно соответствующую исходному тексту. Функции вычисления хэша (хэш-функции) являются однонаправленными, то есть, зная хэш некоего сообщения M, невозможно вычислить другое сообщение M', отвечающее условию: h(M') = h(M), где где h() – хэш-функция.
При этом любое изменение документа влечет за собой изменение его хэша.
Отечественный стандарт хэш-функции – ГОСТ Р 34.11-94. Алгоритм ГОСТ:
1. Инициализация регистра хэш-значения. Если длина сообщения не превышает 256 бит, переход к шагу 3, иначе – переход к шагу 2.
2. Итеративное вычисление хэш-значения блоков исходного текста по 256 бит с использованием хранящегося в регистре хэш-значения предыдущего блока. Вычисление включает в себя следующие действия:
- генерация ключей шифрования на основе блока исходного текста,
- шифрование хранящегося в регистре хэш-значения,
- перемешивание результата.
Вычисление производится до тех пор, пока длина необработанных входных данных не станет меньше или равной 256 бит. В этом случае – переход к шагу 3.
3. Дополнение битовыми нулями необработанной части сообщения до 256 бит. Вычисление хэш-значения аналогично шагу 2. В результате в регистре оказывается хэш исходного текста.
Хэш-функции широко используются также в целях аутентификации пользователей. Существует большое множество криптографических протоколов, основанных на применении хэш-функций.
Для одновременной защиты целостности и конфиденциальности данных рекомендуется использовать ЭЦП и шифрование в комплексе. Существует алгоритм Диффи-Хеллмана, позволяющий, кроме того, использовать одни и те же ключи для ЭЦП и симметричного шифрования. Суть алгоритма Диффи-Хеллмана заключается в следующем:
Согласно отечественному ГОСТ Р 34.10-94 открытый ключ Kp вычисляется из секретного ключа Ks так:
Kp = a*Ks mod p, где где a и p – константные значения, не являющиеся секретными.
Пусть пользователи i и j генерируют свои пары ключей ЭЦП, то есть секретные ключи Ksi и Ksj и открытые ключи
Kpi = a*Ksi mod p
Kpj = a*Ksj mod p
Пользователи i и j обмениваются своими открытыми ключами.
Из имеющихся собственных секретных ключей и чужих открытых можно вычислить парно-связной ключ абонентов i и j, который в дальнейшем может использоваться для симметричного шифрования данных:
K = (Kpi)Ksj = (a*Ksi)Ksj mod p = (a*Ksj)Ksi mod p = (Kpj)Ksi
Приведенная формула доказывает, что данный ключ парной связи могут вычислить только пользователи i и j, поскольку именно они, и только они, обладают необходимыми для данного вычисления секретными ключами.
Комплексный метод защиты информации может работать по следующей схеме:
На подготовительном этапе распределяются ключи ЭЦП.
На этапе использования производится обмен информацией между абонентами i и j:
1. Абонент i подписывает сообщение с помощью своего секретного ключа Ksi по алгоритму ГОСТ Р 34.10-94.
2. Абонент i вычисляет ключ парной связи K по алгоритму Диффи-Хеллмана из своего секретного ключа Ksi и открытого ключа абонента j Kpj.
3. Абонент i зашифровывает сообщение на полученном ключе парной связи K по алгоритму ГОСТ 28147-89.
4. Абонент j по получении сообщения вычисляет ключ парной связи K по алгоритму Диффи-Хеллмана из своего секретного ключа Ksj и открытого ключа абонента i Kpi.
5. Абонент j расшифровывает сообщение на ключе K.
6. Абонент j проверяет подпись расшифрованного сообщения с помощью открытого ключа абонента i Kpi.