Closed rijswijk closed 10 years ago
Currently there also seems to be an internal issue which causes the card to return 0x6F00 as statusword.
OK, it is clear now that the issue is caused by randomness from the card. When I replace the RandomBytes function with one that just outputs 0102030405060708.... Then the card can run for 300 verifications without any failures. I'll try to hunt down the responsible random now.
Tracked it down to randomness of vPrime (in issuance) and vTilde, Ra (in verification). Options:
Will investigate further.
I've tracked down the problem. There is an error in computing A', more specifically, in the computation of S^r_A. This is possible since this is an exponentiation which is split in two, instead of a single operation. I'll see where
Hi,
Pim Vullers wrote:
I've tracked down the problem. There is an error in computing A', more specifically, in the computation of S^r_A. This is possible since this is an exponentiation which is split in two, instead of a single operation. I'll see where
That's great news! Hope you find it soon :-)
Cheers,
Roland
-- Roland M. van Rijswijk - Deij -- SURFnet bv -- w: http://www.surfnet.nl/en/ -- t: +31-30-2305388 -- e: roland.vanrijswijk@surfnet.nl
Reported upstream, waiting for a reply.
Fixed in the new card batches.
Added some basic debugging support for this in the irma_card refactor project. The added code returns an 0xE???) status word when an unprocessed carry is detected. I've done some quick tests, and I still get failures, without getting these statuswords.