TPM 2.0 中 DAA 相关 API 的再探讨
1. TPM2 Sign 操作流程
TPM2 Sign 以 ch、m 和计数器 ctr 作为输入,具体操作步骤如下:
1. 计算 c := H(ch, m)。
2. 根据计数器 ctr 找到对应的 r,计算 s := r + ck mod p,然后删除 r。
3. 输出 (c, s)。
由 TPM2 Commit 和 TPM2 Sign 生成的签名 (P1, P2, R1, R2, K2, c, s) 是知识签名 SPK{(k) : K1 = P1^k ∧ K2 = P2^k}(m)。给定 m 和 K1 = P1^k,对该签名的验证流程如下:
1. 验证 P1 ≠ 1。
2. 验证 H(R1, R2, m) = c。
3. 验证 R1 = P1^s · K1^(-c) 且 R2 = P2^s · K2^(-c)。
2. TPM 2.0 中的静态 DH 预言机
Tolga Acar 等人指出,这些 DAA 相关的 API 可被用作静态 DH 预言机。在 TPM2 Commit API 中,输入为循环群 G(素数阶为 p)中的一个群成员 P1 和表示基名的字符串 str ∈ {0, 1}*,TPM 计算 P2 = HG(str),输出为 R1 = P1^r、R2 = P2^r 和 K2 = P2^x(x 为 DAA 秘密密钥)。在 TPM2 Sign API 中,TPM 从主机获取输入 ch、m,计算 c = H(ch, m),并输出 (c, s),其中 s = r + cx。
由于对第一个输入 P1 没有限制,若主机被破坏,攻击
超级会员免费看
订阅专栏 解锁全文
1853

被折叠的 条评论
为什么被折叠?



