工具/软件:
最近、我尝试在 AM2612上实现 AES-GCM 模式。 AM2612似乎仅支持96位的 IV 长度、我构建了 AES-GCM 模式的 GCM 测试演示、请参阅 CCM 模式示例。
GCM 测试演示有效! 但有一个小问题:
当我尝试 计算第一个格式的数据时、所有输出数据都符合我的 预期(包括密文和标签)。 但当我尝试运行另一组数据计算时、密文是正确的、但标记值是 意外的。
当时、我 意识到 AES 上下文产生了错误的 AAD。 AES 上下文寄存器中可能有一些残留数据。 因此、我 在每次计算后都会尝试对 AES 模块进行软复位(调用 dthe_AES_Close 和 dthe_AES_open 来重置 AES)、这 确实会发怒! 第二组输出标签正确! 上述所有测试仅 在 HSM 内且使用 AES 安全上下文运行。
时会遇到这种情况。 即使我对 AES 模块进行软复位、第二个组输出标签也不正确。
我的问题是:
1.是否有任何寄存器用于控制 GHASH 模块以进行复位?
2.为什么 CCM 模式不需要软复位 AES 模块?