使用HSM命令A0(生成密钥),我得到以下响应.
HEADA100U7D4213E0422F4E08E9455D9837E09FDDRA0072B1TX00S000073C35FF96F7A8C7D35D440CCBDA06FFED3AC7017F27B0A0E8896FFC971F0B9
HEAD (Message Header)
A1 (Response Code)
00 (Error Code)
U7D4213E0422F4E08E9455D9837E09FDD (Key under LMK)
RA0072B1TX00S000073C35FF96F7A8C7D35D440CCBDA06FFED3AC7017F27B0A0E8896FFC9 (Key under TMK - export tr31 key block)
71F0B9 (Key Check Value)
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如何从tr31键块中提取密钥(在tmk下)?
有谁知道如何解码tr31键块?
看看 TR31 标准(该标准在法律上不是免费的,因为 ANSI 想让你的生活变得痛苦)。
R似乎不是 TR31 模块的一部分,我只能假设是泰雷兹特定的东西A是密钥块版本 ID(标头的第一个字段)并描述正在使用的密钥绑定方法。A已弃用并使用关键变体绑定方法。0072是以十进制数字表示的整个 TR31 密钥块的长度,如果我们忽略前导,则恰好适合RB1是密钥用法,这是一个初始 DUKPT 密钥T是密钥的算法,是 Triple-DES(或 TR31 表示法中的 Triple-DEA)X是使用模式,即“用于派生其他密钥的密钥”00是密钥版本号,这意味着该密钥没有使用密钥版本控制S是密钥的可导出性,即“敏感”00是十进制可选块的数量。00保留供将来使用,并且始终必须是两个 ASCII 零。由于没有可选块,因此该字段是标头的最后一个字段。73C35FF96F7A8C7D35D440CCBDA06FFED3AC7017F27B0A0E是十六进制编码的加密密钥(标头之后的所有内容,最后 8 个字符除外)。它的长度为 24 字节,适合 16 字节长的密钥(2 字节密钥长度、16 字节密钥、6 字节填充以达到完整的 8 字节块大小)。8896FFC9是 MAC(最后 8 个字符(对于密钥块版本 id A)是 Triple-DES CBC-MAC 的最左边的 32 位)为了更进一步(解密加密密钥),我需要密钥块保护密钥(可能是 TMK?)。
| 归档时间: |
|
| 查看次数: |
2323 次 |
| 最近记录: |