Команда PERFORM SECURITY OPERATION запускает следующие операции защиты в соответствии с объектами данных, определенных в Р1-Р2 (см. таблицу 4):
- вычисление криптографической контрольной суммы;
- вычисление цифровой подписи;
- вычисление хэш-кода;
- верификация криптографической контрольной суммы;
- верификация цифровой подписи;
- верификация хэш-кода;
- шифровка;
- расшифровка.
Если операция защиты требует выполнить несколько команд, то необходимо применять цепочку команд (см. ИСО/МЭК 7816-4).
Команда PERFORM SECURITY OPERATION может предшествовать команде MANAGE SECURITY ENVIRONMENT.
Например, ссылочный ключ, а также ссылочный алгоритм должны быть либо неявно известны, либо заданы в шаблоне CRT в команде MANAGE SECURITY ENVIRONMENT.
Такая команда может быть выполнена, только если защитный статус удовлетворяет атрибутам секретности операции. Успешное выполнение команды может зависеть от успешного завершения предыдущей команды (например, VERIFY (ПРОВЕРИТЬ) перед вычислением цифровой подписи).
Список заголовков или расширенный список заголовков определяет порядок и пункты данных, которые формируют вход для операций защиты.
Таблица 4 - Пара команда-ответ PERFORM SECURITY OPERATION
CLA | Как определено в ИСО/МЭК 7816-4 |
INS | "2А" |
P1 | Тег (поле данных ответа в элементе данных, если присутствует) или "00" (поле данных ответа всегда отсутствует); "FF" = PFU (зарезервировано для будущего использования) |
P2 | Тег (поле данных команды в элементе данных, если присутствует) или "00" (поле данных команды всегда отсутствует); "FF" = PFU (зарезервировано для будущего использования) для ISO/IEC JTC1/SC17 |
Поле | Отсутствует для кодирования Nc=0, присутствует для кодирования Nc>0 |
Поле данных | Отсутствует или имеет значение объектов данных, заданных в Р2 |
Поле | Отсутствует для кодирования Ne=0, присутствует для кодирования Ne>0 |
Поле данных | Отсутствует или имеет значение объектов данных, заданных в P1 |
SW1-SW2 | См. ИСО/МЭК 7816-4, таблицы 5 и 6, где соответствие, например 6985 |
Команда PERFORM SECURITY OPERATION использует шаблоны входа, перечисленные в таблице 5. Эти шаблоны являются основными объектами данных для безопасного обмена сообщениями (см. ИСО/МЭК 7816-4).
Таблица 5 - Входные шаблоны
Тег | Значение |
"А0" | Входной шаблон для вычисления хэш-кода (шаблон хэширован) |
"А2" | Входной шаблон для проверки криптографической контрольной суммы (шаблон интегрирован) |
"А8" | Входной шаблон для проверки цифровой подписи (шаблон подписан) |
"АС" | Входной шаблон для вычисления цифровой подписи (связанные поля значений подписаны) |
"АЕ" | Входной шаблон для проверки сертификата (связанные поля значений сертифицированы) |
"ВС" | Входной шаблон для вычисления цифровой подписи (шаблон подписан) |
"BE" | Входной шаблон для проверки сертификата (шаблон сертифицирован) |
Входные шаблоны, контекстно-зависимый класс (первый байт в диапазоне от "80" до "BF") зарезервированы для входных объектов данных. В таблице 6 перечислены объекты данных во входных шаблонах.
Таблица 6 - Входные объекты данных
Тег | Значение | "А0" | "А2" | "А8" | "АС", "ВС" | "АЕ", "BE" |
"80" | Явное значение | x | x | x | x | x |
"8Е" | Криптографическая контрольная сумма | x | x | |||
"90" | Хэш-код | x | x | x | x | |
"92" | Сертификат | x | ||||
"9С" | Открытый ключ | x | x | |||
"9Е" | Цифровая подпись | x | x |