SCP03 C-DECRYPTION过程:ICV生成算法和模式

SCP03 C-DECRYPTION process : ICV generation algorithm and mode

我正在尝试找出使用 SCP03 为 APDU 数据字段加密生成 ICV 的算法和模式。

根据 "Secure Channel Protocol '03' – Public Release v1.1.1" ,
6.2.6 APDU 命令 C-MAC 和 C-DECRYPTION 生成和验证 部分:

当需要命令机密性 (C-DECRYPTION) 和完整性 (C-MAC) 时,本节适用。根据安全通道启动中定义的安全级别,安全通道内的所有后续 APDU 命令可能需要安全消息传递,例如使用 C-MAC (完整性)和加密(机密性)。
对于在安全通道会话中发送的每个 APDU 命令,卡外实体应增加一个加密计数器:

  1. 第一次加密计数器的起始值应设置为1 EXTERNAL AUTHENTICATE 命令成功后的命令。
  2. 加密计数器的二进制值应该用 零组成一个完整的块。
  3. 该块应使用 S-ENC 加密以生成 ICV 命令加密。

注意:此方案满足 [NIST 800-38A] 中针对使用 CBC 模式时不可预测的 ICV 所描述的要求。

我的问题是(上面粗体中的第3点)如果我有16字节的密钥和16字节的输入(加密计数器用零填充,例如: enc 计数器 1 变为 00000000000000000000000000000001)

问候

这只是一个简单的块加密。如果不能直接使用块加密,则使用无填充的 ECB 模式应该没问题。或者使用填充,然后只使用第一个块。 IV 为零的 CBC 模式将以类似的方式工作,或者 CTR 的起始计数器值设置为零(等等)。