Телекоммуникационные технологии



         

SET и другие системы осуществления платежей - часть 37


Компонент же authenticateAttributes всегда присутствует и включается в процесс вычисления дайджеста. Процедура цифровой подписи представлена в таблице 4.6.2.12.

Таблица 4.6.2.12. Процедура формирования цифровой подписи

Шаг Действие
1 Инициализировать тип SignedData, введя код версии, идентификатор алгоритма и тип содержимого, подлежащего подписанию
2 Преобразовать информацию, подлежащую подписанию в формат DER
3 Использовать результат шага 2 для инициализации компонента content из ContentInfo.
4 Инициализировать тип SignerInfo, введя код версии, идентификаторы алгоритмов вычисления и шифрования дайджеста
5 Вычислить дайджест сообщения, используя SHA-1 для результата шага 3
6 Инициализировать структуру authenticatedAttributes и занести в структуру атрибуты contentType и messageDigest. Установить компоненты type атрибутов равными идентификаторам этих атрибутов
7 Инициализировать компонент values первого атрибута типа кодом содержимого, подлежащего подписанию, а второго атрибута - значением дайджеста, вычисленного на этапе 5
8 Закодировать аутентифицированные атрибуты и зашифровать результат, используя секретный ключ отправителя. Поместить результат в SignedData
9 Выбрать соответствующие сертификаты Х.509 и CRL, необходимые для верификации подписи, и включить их в SignedData
10 Если тип сообщения требует двух подписей, повторить шаги с 4 по 9

Оператор ключевого хэширования HMAC(t,k) соответствует 160-битовому хэшу HMAC-SHA-1 для группы t при использовании секретного ключа k. Эта функция нужна для сокрытия номера счета в сертификате владельца карты. Секретный ключ известен только владельцу карты и эмитенту. Процедура ключевого хэширования представлена в таблице 4.6.2.13.

Таблица 4.6.2.13. Процедура ключевого хэширования

Шаг Действие
1 Установить ipad соответствующим буферу, который содержит 64 байта с кодами 0х36
2 Установить opad равным буферу, содержащему 64 байта с кодами 0х5С
3 Добавить нули в конец k, чтобы размер строки стал равным 64 байтам. Например, если длина k равна 20 байт, то следует добавить 44 нуля.
4 Осуществить операцию побитового исключающего ИЛИ для результата шага 3 и ipad
5 Добавить данные группы t в 64-байтовый буфер, сформированный на этапе 4
6 Вычислить хэш SHA-1 для результата шага 5 с привлечением Hash-оператора
7 Осуществить операцию побитового исключающего ИЛИ для результата шага 3 и opad
8 Добавить результат SHA-1 шага 6 к 64-байтовому буферу, заполненному в результате шага 7
9 Вычислить хэш SHA-1 для результата шага 8 с привлечением Hash-оператора
10 Прислать результат работы шага 9
<


Содержание  Назад  Вперед