EK2 - ecc sm2模板

10 篇文章 0 订阅

Backwards Compatibility
 

EK Credential Profile [5] 的 2.0 版为 RSA 2048 定义了一个 EK 模板,为 ECC NIST P256 定义了一个。 这些模板在该版本的 EK 凭证配置文件中保留不变,并命名为 L-1(参见 B.3.3)和 L-2(参见 B.3.4)。 此外,还定义了用于 RSA 2048 和 ECC NIST P256 的第二个 EK 模板,它们使用不同的授权。 如果特定于平台的 TPM 配置文件需要来自制造商的 RSA 2048 和/或 ECC NIST P256 的 EK 证书,则平台规范应该指定要使用哪个 EK 模板来创建关联的 EK。 为了向后兼容,建议 TPM 在低范围内使用模板 L-1 和 L-2,而不是在高范围内使用 H-1 和 H-2。

B.3.2 Satisfying PolicyA
 

满足 PolicyA

当使用使用模板 L-1 或 L-2 创建的 EK 时,用户必须满足 PolicyA。 这是通过执行 TPM2_PolicySecret() 命令,将句柄传递给认可层次结构,然后证明知道认可层次结构密码来完成的。 调用者使用授权会话证明知道认可层次结构密码。 包含 TPM2_PolicyAuthValue() 或 TPM2_PolicyPassword() 的密码会话、HMAC 会话或策略会话将满足此要求。

EK Templates in the Low Range
 

与本节中定义的默认 EK 模板关联的 EK 证书存储在低范围内(请参阅第 2.2.1.4 节)。 默认 EK 模板 L-1 和 L-2(参见附录 B.3.3 和 B.3.4)指定 RSA 2048 位和 ECC NIST P256 位限制解密(存储)密钥,其授权仅允许使用 authPolicy。 模板 L-1 和 L-2 中的策略需要 endorsementAuth 来授权使用 EK。 此策略是使用 TPM2_PolicySecret() 创建的,其中命令的 authHandle 参数指示提供授权值的实体,引用认可层次结构。 在下文中,该策略被称为 PolicyA。 对称密钥用于保护 EK 的子密钥,并定义为使用 CFB 模式的 AES 128 位密钥。 SHA256 用于计算 EK 的名称。 为 EK 的公钥保留的缓冲区设置为全零。 敏感数据的设置见2.1.1节。 使用 PolicyA 而不是使用 EK 授权 (userWithAuth SET) 的策略可以实现以下用例:实体希望在持久存储中预先提供 EK; 由于无法更改持久对象的密码,因此实体必须: • 将密码传达给最终用户,并且 • 安全地删除实体持有的密码副本 该策略(PolicyA)在 Low 中的 EK 模板中使用 Range 允许预先提供 EK,同时让最终用户设置其密码(通过背书授权)。 PolicyA 的缺点是它会降低隐私管理员在委托 EK 的控制时的灵活性。 如果管理员希望授予最终用户使用 EK 的能力,则管理员必须向最终用户提供认可层次结构密码。 除其他事项外,了解 EH 密码允许最终用户更改 EH 密码和策略,可能会阻止管理员使用 EK。

 CryptEccGenerateKey :

This function generates an ECC key pair based on the input parameters. This routine uses KDFa()
   to produce candidate numbers. The method is according to FIPS 186-3, section B.1.2 "Key Pair
   Generation by Testing Candidates." According to the method in FIPS 186-3, the resulting private
   value d should be 1 <= d < n where n is the order of the base point. */

 

TPM2_CreatePrimary---> 

CryptCreateObject---> 

   CryptEccGenerateKey---> 

       BnEccGenerateKeyPair---> 

           BnEccGetPrivate ---> 

               BnGetRandomBits---> 

                      DRBG_Generate---> 

                            state->kdf.magic == KDF_MAGIC ---> 

                                      -----> CryptKDFa 

                            state->drbg.magic == DRBG_MAGIC   IBM开源实现走的这个逻辑

                             

10.2.16.3.6 DRBG_InstantiateSeeded()
  此函数用于从种子值实例化随机数生成器。 此生成器的名义用途是从种子值创建伪随机数序列。

     // 命令输出
     // 使用 out->name 作为暂存区计算名称(这不是最终返回的值,然后实例化对象创建期间将用作随机数生成器的状态。
     // 调用者不知道种子值,因此实际名称不必位于输入之上,它可以位于未编组的结构之上。

第二个参数为输入的 种子,比如 EPS

label取值:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值