2017-02-04 36 views
0

我大概花了大约一周的时间为我的java卡编写2048 RSA Sign算法。如何RSA登录java卡?

有太多的问题,如发送和接收大量的字节等等...

任何人可以帮助到:

1)发送和接收大于256个字节达卡

2)如何正确使用SignVerify使用java卡?

由于提前,

+0

我认为这是有用的警告你[我的过去与RSA加密填充](http://stackoverflow.com/questions/38059175/rsa-encrytion-throws-an-exception-intermittently-on- Java卡)。 – Abraham

+0

@Abraham谢谢你的警告。你有任何想法发送/接收2048字节和更多,也如何实现RSA 2048登录Java卡?我找到了一些pdf样本,但他们wew没有用。 – MJay

回答

2

对于签名,你可以简单地使用update method of the Signature class。只要您使用包含散列算法(如ALG_RSA_SHA_256_PKCS1_PSS)的签名算法,您应该能够发送尽可能多的数据。对于较旧的卡片实现,请使用ALG_RSA_SHA_256_PKCS1。要发送数据,您可以使用多个命令而不是一个命令,或者您可以使用IS7816-4中指定的命令链接

或者,您应该能够离线计算散列值(的一部分),并使用this method,如果存在并且实施(从3.0.4开始相对较新)。

对于99%的实现,256字节的输出大小应该精确地适合一个响应APDU,因此您不应该在发送响应时遇到任何问题。