具备撤销单一密钥功能的TPM动态密钥管理机制
发布时间:2021-12-12 06:11
可信平台模块(TPM)的内部存储空间很小,密钥大多以加密的形式存储在模块外部,因此需要一种可以单独撤销某一存储在模块外部密钥的方法。该文通过使用变色龙散列函数,提出了一种具备撤销单一外部密钥功能的动态密钥管理方法。该方法构建了一个动态密钥管理树,将密钥存储在叶节点中。基于TPM保存的私钥,可以在不影响其他密钥的情况下添加新密钥、更新和撤销旧密钥。动态密钥管理树中每一层最左侧的节点存储在TPM内部,其余节点存储在外部,更新和撤销密钥时,只需遍历从密钥叶节点到密钥子树根节点的路径,因此该方法的内部存储开销和时间开销和密钥总数量呈对数关系。动态密钥管理方法能很好地兼容现有的TPM应用程序,同时也可以应用在其他嵌入式密码模块中。
【文章来源】:清华大学学报(自然科学版). 2020,60(06)北大核心EICSCD
【文章页数】:10 页
【部分图文】:
动态密钥管理方法存储分布
由于TPM多数使用的是慢速总线设备, 因此总线上的通信决定了通信效率的高低。 对于TPM 1.2来说, 动态密钥管理方案带来的通信开销如表6所示。 对于TPM 2.0来说, 动态密钥管理方案带来的额外通信开销如表7所示。 size(newPath)由算法KtAppend计算得到, size(authPath)由算法KtGenAuthPath得到, size(updatePath)由算法KtUpdate得到。 当keyIndex从1变化到256时, 3种路径的存储开销如图10所示。表6 TPM1.2的额外通信开销 命令名称 命令方向 TPM_KEY TPM_KEY12 Enhanced TPM_TakeOwnership 请求 670 680 +2 TPM_MakeIdentity 响应 957 967 +8+size(newPath) TPM_CreateWrapKey 响应 656 666 +8+size(newPath) TPM_ConvertMigrationBlob 响应 660 670 +8+size(newPath) TPM_LoadKey2 请求 664 674 +8+size(newPath) TPM_ChangeAuth 请求 737 747 +8+size(newPath) TPM_ChangeAuth 响应 701 711 +size(updatePath)
表7 TPM 2.0的额外通信开销 命令名称 命令方向 Ori1 Ori2 Ori3 Ori4 Enhanced TPM2_CreatePrimary 请求 216 222 248 254 +2 TPM2_Create 响应 777 525 841 589 +8+size(newPath) TPM2_Import 响应 219 153 583 217 +8+size(newPath) TPM2_Load 请求 593 341 625 373 +8+size(authPath) TPM2_ ObjectChangeAuth 响应 219 153 283 217 +size(updatePath) 注: *Ori1表示命令使用RSA; *Ori2表示命令使用ECC; *Ori3表示命令使用带有RSA的HMAC; *Ori4表示命令使用带有ECC的HMAC。如果加载密钥时使用黑名单的方法[9], 除了需要调用TPM_LoadKey2(), 还需要调用一个新增的TPM指令TPM_ShowRevListElement()。 这条指令的调用次数和已撤销的密钥数量一样多, 记为nr。 对于TPM_KEY来说, 这条指令的请求数据有952字节, 响应有656字节; 对于TPM_KEY12来说, 分别是962字节和656字节。 因此黑名单方式的额外通信负载是1 608 nr/1 628 nr。 使用动态密钥管理方案时减小了TPM_LoadKey2()的通信开销为8+size(authPath)。 假设1 608 nr/1 628 nr=8+size(authPath), 这样就能计算出nr和keyIndex的关系, 如图11a所示。
本文编号:3536149
【文章来源】:清华大学学报(自然科学版). 2020,60(06)北大核心EICSCD
【文章页数】:10 页
【部分图文】:
动态密钥管理方法存储分布
由于TPM多数使用的是慢速总线设备, 因此总线上的通信决定了通信效率的高低。 对于TPM 1.2来说, 动态密钥管理方案带来的通信开销如表6所示。 对于TPM 2.0来说, 动态密钥管理方案带来的额外通信开销如表7所示。 size(newPath)由算法KtAppend计算得到, size(authPath)由算法KtGenAuthPath得到, size(updatePath)由算法KtUpdate得到。 当keyIndex从1变化到256时, 3种路径的存储开销如图10所示。表6 TPM1.2的额外通信开销 命令名称 命令方向 TPM_KEY TPM_KEY12 Enhanced TPM_TakeOwnership 请求 670 680 +2 TPM_MakeIdentity 响应 957 967 +8+size(newPath) TPM_CreateWrapKey 响应 656 666 +8+size(newPath) TPM_ConvertMigrationBlob 响应 660 670 +8+size(newPath) TPM_LoadKey2 请求 664 674 +8+size(newPath) TPM_ChangeAuth 请求 737 747 +8+size(newPath) TPM_ChangeAuth 响应 701 711 +size(updatePath)
表7 TPM 2.0的额外通信开销 命令名称 命令方向 Ori1 Ori2 Ori3 Ori4 Enhanced TPM2_CreatePrimary 请求 216 222 248 254 +2 TPM2_Create 响应 777 525 841 589 +8+size(newPath) TPM2_Import 响应 219 153 583 217 +8+size(newPath) TPM2_Load 请求 593 341 625 373 +8+size(authPath) TPM2_ ObjectChangeAuth 响应 219 153 283 217 +size(updatePath) 注: *Ori1表示命令使用RSA; *Ori2表示命令使用ECC; *Ori3表示命令使用带有RSA的HMAC; *Ori4表示命令使用带有ECC的HMAC。如果加载密钥时使用黑名单的方法[9], 除了需要调用TPM_LoadKey2(), 还需要调用一个新增的TPM指令TPM_ShowRevListElement()。 这条指令的调用次数和已撤销的密钥数量一样多, 记为nr。 对于TPM_KEY来说, 这条指令的请求数据有952字节, 响应有656字节; 对于TPM_KEY12来说, 分别是962字节和656字节。 因此黑名单方式的额外通信负载是1 608 nr/1 628 nr。 使用动态密钥管理方案时减小了TPM_LoadKey2()的通信开销为8+size(authPath)。 假设1 608 nr/1 628 nr=8+size(authPath), 这样就能计算出nr和keyIndex的关系, 如图11a所示。
本文编号:3536149
本文链接:https://www.wllwen.com/kejilunwen/wltx/3536149.html