智能卡非对称密钥生成

时间:2013-06-26 17:17:02

标签: c# smartcard apdu cac

我在研究如何从PIV卡生成非对称密钥方面走到了尽头。我查看了NIST sp800-73-3标准,但我无法做到这一点。在该文档的第3部分中概述了它使用INS 47来执行此操作但我得到6D00错误。在获得此命令之前是否需要发送另一个命令?

另外,如果我错了,请纠正我,但根据我的理解,当生成密钥时,私钥会在返回公钥时存储在卡上。为了使用私钥加密数据,必须将数据发送到卡并返回加密信息。这准确吗?一次可以存储多少张钥匙?

1 个答案:

答案 0 :(得分:2)

标准是一件好事,但大多数情况下还不足以用于智能卡。您需要一张特定卡片的手册,说明它支持的标准部分。 对于密钥生成,最好查看ISO 7816第8部分(除卡片手册外)。有一些命令变量返回公钥,其他命令变量将其静静地留在卡中以供以后检索。对于您的错误:您的卡可能处于生命周期阶段,密钥生成不再可用,但偶数指令代码46也值得一试。

加密命令是执行安全操作,也在7816-8中描述。注意,使用非对称密钥进行加密对于大量明文来说是不寻常的。通常,文本使用对称密码进行加密,而出于性能原因,只使用非对称加密传输对称密钥。