3. Данные должны быть хэшированы путем применения хеш-функции, которая находится в списке применимых хеш-функций. Хэш-код можно рассматривать как контрольное значение данных, подлежащих подписанию. В зависимости от опции_2 хеширование будет выполнено либо
- полностью вне МУС,
- частично снаружи и частично внутри ICC, поэтому данные разбиваются на две части,
- полностью внутри ICC в зависимости от функциональности карты и организации программного обеспечения.
4. В зависимости от алгоритма подписи хэш-код должен быть отформатирован форматным механизмом Format_2. Обычно это механизм заполнения, как описано в разделе 12.4. Результатом этого форматирования является вход цифровой подписи (dsi). Определены несколько механизмов формата, некоторые из них оцениваются как «слабые» и не должны использоваться. Каталоги алгоритмов охватывают эти аспекты и предлагают схемы форматирования, которые утверждаются до указанной даты.
5. Окончательный dsi (Digital Signature Input) - это строка, которая должна быть преобразована сигнатурным алгоритмом. Результатом является цифровая подпись DS [<ключ>] (dsi).
7.5 Генерация подписи
7.5.1 Общие положения
На основе примера, представленного на рис. 5, могут быть использованы различные процессы для вычисления значения хэш-функции, которое должно быть подписано. Выбор процесса может основываться на соображениях безопасности, особенно в случае RSA. Если используется алгоритм ECDSA, типичным потоком будет «отсутствие хеширования в карточке».
7.5.2 Отсутствие хэширования карты
Данные, которые должны быть подписаны, полностью хэшируются вне ICC. В зависимости от алгоритма хэш-код передается и подписывается ICC с помощью команды PSO: ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ.
Выполнение потока 1 из 1
Таблица 18 - Вычисление подписи (без хеширования в ICC) - команда APDU
Command | Meaning |
CLA | согласно ISO / IEC 7816-4 |
INS | '2A' ВЫПОЛНИТЬ БЕЗОПАСНОСТЬ |
P1 | '9E' ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ |
P2 | '9A' 'данные, которые должны быть подписаны' |
Поле Lc | Длина поля данных команды |
Данные поля | данных должны быть подписаны |
Поле Le | '00' |
Структура и содержание APDU относятся к ISO/IEC 7816-8, 5.2.
Поле данных ответа содержит простую подпись без дальнейшего кодирования TLV.
Таблица 19 - Расчет подписи (без хеширования в ICC) - ответ APDU
Параметры отклика | Значение |
Поле данных | простая подпись без дальнейшего кодирования TLV |
SW1-SW2 | См. ISO / IEC 7816-4 |
7.5.3 Частичное хеширование
Первая часть данных, которые должны быть подписаны, хэшируется вне ICC. Промежуточный хеш-код передается в ICC командой PSO: HASH вместе с оставшейся частью данных. После этого подпись генерируется командой PSO: ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ.
Выполнение потока 1 из 2
Таблица 20 - Расчет подписи 1 из 2 (промежуточный хэш-код передачи) - команда APDU
Параметры команды | Значение |
CLA | Согласно ISO/IEC 7816‑4 |
INS | '2A' ВЫПОЛНЕНИЕ РАБОТЫ БЕЗОПАСНОСТИ |
P1 | '90' хэш |
P2 | 'A0' input template for hash computation |
Поле Lc | входной шаблон для вычисления хэша |
Поле данных | '90' L90 <промежуточный хеш-код, за которым следует счетчик бит-бит> '80' L80 <данные должны быть хэшированы> |
Структура и содержание APDU относятся к ISO / IEC 7816-8, 5.2.
Для содержимого поля данных команды или DO 'A0' см. 12.3 «Хэш-входные форматы».
Поле данных ответа отсутствует.
Таблица 21 - Ответ PSO-Hash
Параметры отклика | Значение |
Поле данных | отсутствует |
SW1-SW2 | См. ISO / IEC 7816-4 |
Выполнение потока 2 из 2
Вторая команда выполняет цифровую подпись на хешированном значении.
Таблица 22 - Расчет подписи 2 из 2 (подсчетная подпись) - команда APDU
Параметры команды | Значение |
CLA | Согласно ISO/IEC 7816‑4 |
INS | '2A' ВЫПОЛНЕНИЕ РАБОТЫ БЕЗОПАСНОСТИ |
P1 | '9E' ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ |
P2 | '9A' должны быть подписаны |
Поле Lе | входной шаблон для вычисления хэша |
Поле данных | 'xx' |
Структура и содержание APDU относятся к ISO / IEC 7816-8, 5.2.
Поле данных ответа содержит простую подпись без дальнейшего кодирования TLV.
Таблица 23 - Ответ PSO - ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ
Параметры отклика | Значение |
Поле данных | Чистая подпись |
SW1-SW2 | См. ISO / IEC 7816-4 |
7.5.4 Все хеширование в ICC
Данные, которые должны быть подписаны, хэшируются внутри ICC. Это выполняется командой PSO: HASH. Наконец, подпись генерируется командой PSO: ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ.
Выполнение потока 1 из 2
Таблица 24 - Вычисление подписи 1 из 2 (все хэширование в ICC) - команда APDU
Параметры команды | Значение |
CLA | Согласно ISO/IEC 7816‑4 |
INS | '2A' ПСО: HASH |
P1 | '90' Операция хеширования |
P2 | '80' равное значение |
Поле Lc | xx' |
Поле данных | Данные должны быть хэшированы |
Структура и содержание APDU относятся к ISO / IEC 7816-8, 5.2.
Поле данных ответа отсутствует.
Таблица 25 - Вычисление подписи 1 из 2 (все хэширование в ICC) - ответ APDU
Параметры отклика | Значение |
Поле данных | отсутствует |
SW1-SW2 | См. ISO / IEC 7816-4 |
Выполнение потока 2 из 2
Вторая команда вычисляет цифровую подпись.
Таблица 26 - Расчет подписи 2 из 2 (подсчетная подпись) - команда APDU
Параметры команды | Значение |
CLA | согласно ISO/IEC 7816‑4 |
INS | '2A' ВЫПОЛНЕНИЕ РАБОТЫ БЕЗОПАСНОСТИ |
P1 | '9E' '9E' ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ |
P2 | '9A' должны быть подписаны |
Поле Le | '00' |
Структура и содержание APDU относятся к ISO / IEC 7816 8, 5.2.
Поле данных ответа содержит простую подпись без дальнейшего кодирования TLV.
Таблица 27 - Ответ PSO - ВЫЧИСЛИТЕЛЬНАЯ ЦИФРОВАЯ ПОДПИСЬ
Параметры отклика | Значение |
Поле данных | простая подпись |
SW1-SW2 | См. ISO / IEC 7816-4 |
a В случае ECDSA цифровая подпись рассчитывается в соответствии с ISO / IEC 15946-5, для формата, указанного в [27], глава A.7.4.1 |
7.6 Выбор различных ключей, алгоритмов и форматов ввода
7.6.1 Общие положения
Если ICC поддерживает более одного ключа и неявный выбор недоступен, тогда необходимо выбрать ключ частной подписи.
Если ICC поддерживает несколько алгоритмов цифровой подписи или различные форматы ввода цифровой подписи (см. Раздел 12), тогда алгоритм или формат DSI должны быть выбраны. Однако возможно, что либо (например, алгоритм) неявно указан, если выбран ключ.
Кроме того, возможно, что алгоритм, ключ или формат ввода подписи неявно не известны и не определены однозначно.
Во всех вышеперечисленных случаях соответствующий параметр должен быть выбран явно с помощью команды УПРАВЛЕНИЕ БЕЗОПАСНОСТЬЮ ОКРУЖАЮЩЕЙ СРЕДЫ, как описано в ISO/IEC 7816-4, 11.5.11. Это может быть достигнуто
- восстановление существующего SE (см. 7.6.2)
- изменение KeyID / [AlgID] в шаблоне (см. 7.6.4)
7.6.2 Восстановление существующего SE
Выполнение потока 1 из 1
Таблица 28 - УПРАВЛЕНИЕ БЕЗОПАСНОСТЬЮ ОКРУЖАЮЩЕЙ СРЕДЫ - команда APDU
Параметры команды | Значение |
CLA | согласно ISO/IEC 7816‑4 |
INS | '22' УПРАВЛЯЕТСЯ БЕЗОПАСНОСТЬЮ ОКРУЖАЮЩЕЙ СРЕДЫ |
P1 | 'F3' ВОССТАНОВЛЕНИЕ |
P2 | SE # Номер среды безопасности |
Структура и содержание APDU относятся к ISO / IEC 7816-4, 11.5.11.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |


