卡支持的算法列表?

时间:2014-05-22 07:44:12

标签: java algorithm encryption smartcard javacard

我有一张java卡。我怎样才能找到卡支持并用于加密的算法?当我点击jcmanager中的authenticate按钮(例如)时会发生什么?我如何使用APDU进行身份验证?

当我点击Authenticate:

时,这是jcmanager的输出
Open terminal ...
EstablishContext(): ...
Wait for card in a certain reader ...
Pick reader ...
**********************
Selecting Card Manager
***********************
-> 00 A4 04 00 08 A0 00 00 00 03 00 00 00
<- 6F 10 84 08 A0 00 00 00 03 00 00 00 A5 04 9F 65 01 FF 90 00
************
Init Update
*************
-> 80 50 00 00 08 D3 90 22 B2 C5 7C D4 DD
<- 00 00 11 60 01 00 7F 8B 0A F9 02 02 00 99 3E 01 33 1B 3F 8E 33 BA E4 AD 82 6E 3C C1 90 00
HostChallenge: D3 90 22 B2 C5 7C D4 DD
CardChallenge: 3E 01 33 1B 3F 8E
Card Calculated Card Cryptogram: 33 BA E4 AD 82 6E 3C C1
Derivation Data is 01 82 00 99 00 00 00 00 00 00 00 00 00 00 00 00
Host Cryptogram Data (to encrypt) 00 99 3E 01 33 1B 3F 8E D3 90 22 B2 C5 7C D4 DD 80 00 00 00 00 00 00 00
Card Cryptogram Data (to encrypt for verification) D3 90 22 B2 C5 7C D4 DD 00 99 3E 01 33 1B 3F 8E 80 00 00 00 00 00 00 00
S_ENC: CE 69 1B 1E C8 EC DB B0 0A 9B 18 4A 53 58 04 BB CE 69 1B 1E C8 EC DB B0
The Current session MAC key is F8 85 4D 94 19 BC 83 4C 99 BA E9 94 15 00 A6 B8
The Current session DEK key is 6D 72 48 D4 23 BF 3B 1C 7C 2F 1F BC 7C 04 E9 F6
Encrypted CardCryptoGram is 58 20 23 4E 14 8B FE AA F8 6D 14 20 3D 41 18 E4 33 BA E4 AD 82 6E 3C C1
Encrypted HostCryptoGram is 07 D0 B3 EB 0F 1B 7E 54 84 34 08 6C 5F D9 E5 55 4B 5F 0D F6 87 52 99 2E
-> 84 82 03 00 10 4B 5F 0D F6 87 52 99 2E 17 29 AA 68 12 98 CE 2D
<- 90 00
Authenticated

这是对的吗?

我向卡片发送一个随机的8字节数字:      - &GT; 80 50 00 00 08 D3 90 22 B2 C5 7C D4 DD

在我的命令的答案中,卡给我一个随机数字+我发送到卡上的加密随机数。接下来发生什么?我的卡和我的读卡器使用哪种算法加密和解密随机数(卡挑战和主机挑战)?

2 个答案:

答案 0 :(得分:1)

你完全混淆了事情 首先是全球平台。 Global Platform指定如何与卡管理器/安全域进行交互:例如如何通过卡片管理器进行身份验证,如何上传文件夹文件,如何安装文件夹文件,锁定卡片以解锁卡片以更改您上面提到的按键等... 第二个是Java Card小程序,您可以按照希望智能卡在后面运行的方式进行编码。

你的问题很不清楚 你的意思是关于全球平台或jor java卡代码的加密算法? 为了首先识别您的卡并阅读相应的全球平台规范,有各种身份验证模式称为scp01 scp02 ... 如果你的意思是javacard:JC规范不是强制性的,所以它的制造商选择加密来实现。找出你可以试用和错误,或者你与制造商交谈
对于卡管理器的身份验证,您应始终使用工具(GPJ GPshell或JCOP工具&lt; - 最后一个不可免费提供)生成APDU并在其后面加密,而不是手动发送APDU。 但是,如果您想了解详细信息,请阅读全球平台规范,而不是在论坛上提问

答案 1 :(得分:1)

您的特定卡支持的算法可以通过JCAlgTest project获得。 JCAlgTest project page还为其他用户收集的63张卡提供结果。使用卡片的ATR在JCAlgTest database中搜索类似的卡片。或者,使用ATR parsing tool并按名称查找您的卡片。 JCAlgTest项目还为选定的卡提供performance comparison