Я пытаюсь выяснить алгоритм и режим генерации ICV для шифрования поля данных APDU с использованием SCP03.
Согласно «Протоколу безопасного канала '03' - публичный выпуск v1.1.1»,
6.2.6 Генерация и проверка команд C-MAC и C-DECRYPTION APDU раздел:
Этот раздел применяется, когда требуются как конфиденциальность команды (C-DECRYPTION), так и целостность (C-MAC). В зависимости от уровня безопасности, определенного при инициировании безопасного канала, все последующие команды APDU в безопасном канале могут требовать безопасного обмена сообщениями и, например, использования C-MAC
(целостность) и шифрование (конфиденциальность).
Для каждой команды APDU, отправленной в сеансе безопасного канала, объект вне карты должен увеличивать счетчик шифрования:
- Начальное значение счетчика шифрования должно быть установлено на 1 для первого
команда после успешной команды EXTERNAL AUTHENTICATE.
- Двоичное значение счетчика шифрования должно быть дополнено
обнуляет, чтобы сформировать полный блок.
- Этот блок должен быть зашифрован с помощью S-ENC для создания ICV для
шифрование команд.
ПРИМЕЧАНИЕ. Эта схема отвечает требованиям, описанным в [NIST 800-38A] для непредсказуемых ICV при использовании режима CBC.
У меня вопрос (пункт 3 в полужирный выше), какой алгоритм использовать, если у меня есть 16-байтовый ключ и 16-байтовый ввод (счетчик шифрования дополнен нулями, пример: счетчик 1 становится 00000000000000000000000000000001)
привет