Таблица 62 - Поле данных для PSO: функция HASH без команды
T | L | V |
'90' | '00' | |
'80' | переменная | текст остается хэшированным без заполнения (длина текста до байтов B) |
ПРИМЕЧАНИЕ. Если параметр P2 команды PSO: HASH равен 0x80, данные также могут быть представлены как простое значение (без TLV-кодирования).
12.3.3 PSO: HASH с командой Chaining
Цепочка команд должна быть реализована в соответствии с 7816-4 [2]. В частности:
- первая команда «PSO Hash» цепи должна иметь CLA. Bit5 = 1
- последняя команда «PSO Hash» цепи должна иметь CLA. Bit5 = 0
- В цепочке допускаются только команды «PSO Hash»
В следующей таблице показано содержимое поля первой команды функции PSO: HASH с цепочкой команд.
Таблица 63 - Поле данных для PSO: функция HASH с цепочкой команд
T | L | V |
'90' | H' + C' | промежуточный хэш-код, за которым следует бит-бит большого байта бит байтов (количество бит уже хэшируется) |
'80' | B | текст хэшируется |
В следующей таблице показано содержимое второго поля (n-1) th первой команды функции PSO: HASH с цепочкой команд.
Таблица 64 - Поле данных от 2-й (n-1) - ой команды PSO: функция HASH с цепочкой команд
T | L | V |
'80' | B | текст хэшируется |
Таблица 65 - Поле данных последней команды PSO: функция HASH с цепочкой команд
T | L | V |
'80' | 'xx' | последний текстовый блок без заполнения (длина текста до байтов B) |
ПРИМЕЧАНИЕ. Если параметр P2 команды PSO: HASH равен 0x80, данные также могут быть представлены как простое значение (без TLV-кодирования).
12.4 Форматы входа цифровой подписи (DSI)
12.4.1 Общие положения
В следующем тексте для различных сигнатурных алгоритмов описаны соответствующие форматы DSI для цифровой подписи ESIGN-G [1]. Обязательно поддерживать, по меньшей мере, один из этих форматов, то есть, если в ICC доступен только алгоритм RSA, тогда ICC сможет вычислить подпись на основе форматов ESIGN-G для RSA. Возможно, ICC может поддерживать другие форматы подписей.
Данные форматы DSI описывают строку, которая непосредственно используется алгоритмом подписи для вычисления цифровой подписи.
12.4.2 DSI согласно ISO / IEC 14888 2 (схема 2)
Формат DSI, основанный на стандарте ISO / IEC 14888 2 (схема 2) и интегрировании случайного числа, имеет следующую структуру (этот пример предполагает модуль 2048 бит):
Таблица 66 - Пример: Вход цифровой подписи (DSI) - Формат в соотв. к ИСО / МЭК 14888 2 (схема 2)
T | L | V |
— | — | '60' = флаги согласно ISO / IEC 14888 2 (схема 2) RandomNo = случайное число, вставленное ICC (8 байтов) Hash field = 'XX... XX' «BC» = заполнение в соответствии с ISO / IEC 14888 2 (схема 2) Блок «60 .. BC» формирует DSI (ввод цифровой подписи) |
В отличие от исходного алгоритма ISO / IEC 14888 2 (схема 2) случайное число как внутреннее сообщение не интегрировано в вычисление хэш-кода. Также восстанавливаемая строка (см. ISO / IEC 14888 2) не создается, т. е. Промежуточная строка используется непосредственно как DSI.

Рисунок 27 - Пример для 2048 бит DSI в соответствии с ISO / IEC 14888 2 (схема 2) нет восстанавливаемой строки
Message (any number of bits) - Сообщение (любое количество бит)
Padding – Набивка
12.4.3 DSI согласно PKCS # 1 V 1.5
Формат DSI в соответствии с PKCS # 1 V 1.5 имеет следующую структуру:
Таблица 67 - Вход цифровой подписи (DSI) - Формат в соотв. к PKCS №1 V 2.1
(Глава 9.3 «EMSA-PKCS1-v1_5»)
T | L | V |
— | — | '00' = начальный байт '01' = Тип блока 'FF..FF' = Padding String PS (минимум 8 байт) '00' = разделитель Хэш-код = ASN.1-Последовательность OID и параметра) и дайджест (ASN.1-DO имеет значение) { Информация дайджеста относится к следующим таблицам } |

Рисунок 28 - Пример для 2048 бит DSI в соответствии с PKCS # 1 2.1 EMSA-PKCS-1v1_5., (20-байтовый хэш) функция
Message (any number of bits) - Сообщение (любое количество бит)
Padding – Набивка
Hash algorithm – Хэш-алгоритм
Salt –
Masked –
Zeroize leftmost – Нулевая левая
Информация дайджеста зависит от применяемого алгоритма хеширования. В таблице 68 - таблице 74 показано кодирование дайджеста, которое включает хэш-код финального раунда хеширования.
12.4.4 Информация о дайджесте для ХАШ SHA-X: дайджест Info SHA: дайджест
Таблица 68 - Информация для дайверов для SHA-1a
Метка | Длина | Значение | Описание |
'30' | '21' | Тег и длина SEQUENCE | |
'30' | '09 | Тег и длина SEQUENCE | |
'06' | '05' | '2B 0E 03 02 1A' | OID SHA-1 (1 3 14 3 2 26) |
'05' | '00' | — | TLV-кодирование NULL |
'04' | '14' | 'xx..xx' | Хэш-код |
a Что касается недавних нападений на SHA-1, кроме алгоритмов SHA-1, возможно, придется рассмотреть. Для любого нового продукта рекомендуется реализовать алгоритмы SHA-256, SHA-384 или SHA-512 соответственно. |
Таблица 69 - Информация для дайверов для SHA-224
Tag | Длина | Значение | Описание |
'30' | '2D' | Тег и длина SEQUENCE | |
'30' | '0D | Тег и длина SEQUENCE | |
'06' | '09' | '60 86 48 01 65 03 04 02 04' | OID SHA-224 (2 16 840 1 101 3 4 2 4) |
'05' | '00' | — | TLV кодирование ZERO |
'04' | '1C' | 'xx..xx' | Хэш-код |
Таблица 70 - Информация для дайверов для SHA-256
Tag | Длина | Значение | Описание |
'30' | '31' | Тег и длина SEQUENCE | |
'30' | '0D' | Тег и длина SEQUENCE | |
'06' | '09' | '60 86 48 01 65 03 04 02 01' | OID SHA-256 (2 16 840 1 101 3 4 2 1) |
'05' | '00' | — | TLV кодирование of ZERO |
'04' | '20' | 'xx..xx' | Хэш-код |
Таблица 71 - Информация для дайверов для SHA384
Метка | Длина | Значение | Описание |
'30' | '41' | Тег и длина SEQUENCE | |
'30' | '0D' | Тег и длина SEQUENCE | |
'06' | '09' | '60 86 48 01 65 03 04 02 02' | OID SHA-384 (2 16 840 1 101 3 4 2 2) |
'05' | '00' | — | TLV кодирование of ZERO |
'04' | '30' | 'xx..xx' | Хэш-код |
Таблица 72 - Информация для дайверов для SHA-512
Метка | Длина | Значение | Описание |
'30' | '51' | Тег и длина SEQUENCE | |
'30' | '0D' | Тег и длина SEQUENCE | |
'06' | '09' | '60 86 48 01 65 03 04 02 03' | OID SHA-512 (2 16 840 1 101 3 4 2 3) |
'05' | '00' | — | TLV кодирование ZERO |
'04' | '40' | 'xx..xx' | Хэш-код |
Таблица 73 - Информация для дайверов для RIPEMD-160
Метка | Длина | Значение | Описание |
'30' | '21' | Тег и длина SEQUENCE | |
'30' | '09 | Тег и длина SEQUENCE | |
'06' | '05' | '2B 24 03 02 01' | OID RIPEMD (1 3 36 3 2 1) |
'05' | '00' | — | TLV кодирование NULL |
'04' | '14 | 'xx..xx' | Хэш-код |
12.4.5 DSI согласно PKCS # 1 V 2.x Функция MGF
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |


