我试图进入密码,相互认证等,并认为它可能是很好的看到什么是“在市场上”。现在,cipurse国家在其规格这样的词来生成会话密钥:为Cipurse(Java Card)创建AES会话密钥?
k0 = AES (key = PAD2 (kP) XOR PAD (rT), kID) XOR kID
,其中K0是会话密钥KP是一个卡上计算的关键,RT是来自终端的响应。 PAD表示填充(前导零),PAD 2表示双填充(前导零),kID表示卡的秘密密钥。
现在,据我所知,我创建了一个关键是这样的:
AESKey k0_pre = (AESKey) KeyBuilder.buildKey(KeyBuilder.TYPE_AES_TRANSIENT_DESELECT, KeyBuilder.LENGTH_AES_128, false);
k0_pre.clearKey();
k0_pre.setKey(key, (short) 0);
现在我有一个问题是关于一点点逗号nameingly
键= PAD2(KP) XOR PAD(RT), KID
setkey的需要byte[]
和偏移,小子是不是一个偏移克利 - 这个逗号应该是“AND”还是应该将这两个表达式连接起来或者完全不同?
在准则的例子小子
53 45 43 5f 4d 45 4d 4f 52 59 20 4b 45 59 20 31
结果后PAD2 (kP) XOR PAD (rT)
是
00 00 00 00 b7 a0 d2 cb 01 15 25 3f c4 0d 43 8f
和k0_pre然后是:
72 4b e3 3e 05 47 b5 99 9c 78 13 9d 8b 25 94 e6
我只是不”不知道如何从“2”输入键中生成AES密钥
该开放标准仅适用于会员。必须是我没有意识到的开放式新定义。然后,上面似乎是我还没有意识到的关键推导机制。 –
只有阅读规格的会员才是免费的,但我同意!我能以另一种方式向您发送密码术规范吗? – achiever