Windows下读取TPM 2.0存储根密钥(SRK)公钥的正确方法?
Windows下TPM SRK算法与公钥读取方法
Windows默认情况下确实会采用ECC(椭圆曲线密码学)作为SRK(存储根密钥)的算法,这也是你在注册表中看到的密钥长度不符合RSA 2048位要求的原因——ECC公钥的长度远短于同安全强度的RSA密钥。
以下是验证SRK算法及读取公钥的实用方法:
验证SRK算法类型
- 使用系统自带命令行工具:
打开管理员命令提示符,执行:
在输出结果中查找tpmtool getdeviceinformationStorage Root Key Algorithm字段,即可确认当前SRK是ECC还是RSA类型。 - 通过图形化控制台:
按下Win+R输入tpm.msc打开TPM管理控制台,在“详细信息”面板中可查看SRK的算法参数。
读取SRK公钥的方法
方法1:PowerShell模块(原生支持)
以管理员身份运行PowerShell,执行以下命令:
Import-Module Tpm Get-TpmEndorsementKeyInfo -StorageRootKey
输出结果会包含ECC公钥的完整参数(如曲线类型、X/Y坐标),可直接提取使用。
方法2:Windows版tpm2-tools
如果你习惯Linux下的tpm2_readpublic命令,可以安装Windows版的tpm2-tools(可通过Chocolatey包管理器或官方源码编译安装),之后直接执行:
tpm2_readpublic -c 0x81010001
即可输出SRK公钥的格式化信息,无论算法是ECC还是RSA都能兼容读取。
内容的提问来源于stack exchange,提问作者user22227706
相关产品推荐
相关产品推荐

