Процесс S-DECRYPTION в SCP03: алгоритм и режим генерации ICV - PullRequest
0 голосов
/ 10 мая 2018

Я пытаюсь выяснить алгоритм и режим генерации ICV для шифрования поля данных APDU с использованием SCP03.

Согласно «Протоколу безопасного канала '03' - публичный выпуск v1.1.1»,
6.2.6 Генерация и проверка команд C-MAC и C-DECRYPTION APDU раздел:

Этот раздел применяется, когда требуются как конфиденциальность команды (C-DECRYPTION), так и целостность (C-MAC). В зависимости от уровня безопасности, определенного при инициировании безопасного канала, все последующие команды APDU в безопасном канале могут требовать безопасного обмена сообщениями и, например, использования C-MAC (целостность) и шифрование (конфиденциальность).
Для каждой команды APDU, отправленной в сеансе безопасного канала, объект вне карты должен увеличивать счетчик шифрования:

  1. Начальное значение счетчика шифрования должно быть установлено на 1 для первого команда после успешной команды EXTERNAL AUTHENTICATE.
  2. Двоичное значение счетчика шифрования должно быть дополнено обнуляет, чтобы сформировать полный блок.
  3. Этот блок должен быть зашифрован с помощью S-ENC для создания ICV для шифрование команд.

ПРИМЕЧАНИЕ. Эта схема отвечает требованиям, описанным в [NIST 800-38A] для непредсказуемых ICV при использовании режима CBC.

У меня вопрос (пункт 3 в полужирный выше), какой алгоритм использовать, если у меня есть 16-байтовый ключ и 16-байтовый ввод (счетчик шифрования дополнен нулями, пример: счетчик 1 становится 00000000000000000000000000000001)

привет

1 Ответ

0 голосов
/ 10 мая 2018

Это просто простое блочное шифрование. Использование режима ECB без заполнения должно работать нормально, если блочное шифрование не доступно напрямую. Или с отступом, а затем использовать только первый блок. Режим CBC с нулевым IV будет работать аналогичным образом, или CTR с начальным счетчиком, установленным на ноль (и т. Д. И т. П.).

...