|
1 | | -| Operation (time in ms) | NXP JCOP4 J3R200 P71 | NXP JCOP3 J3H145 P60 | Infineon SECORA ID S | GD Smartcafe 7.0 | |
2 | | -| --- | --- | --- | --- | --- | |
3 | | -| bigNatAddition/INS_BN_ADD | 27 | 38 | 26 | 18 | |
4 | | -| bigNatMod/INS_BN_MOD | 47 | 49 | 61 | 43 | |
5 | | -| bigNatModAdd/INS_BN_ADD_MOD | 45 | 57 | 54 | 32 | |
6 | | -| bigNatModExp/INS_BN_EXP_MOD | 55 | 67 | 1677 | 537 | |
7 | | -| bigNatModInv/INS_BN_INV_MOD | 58 | 72 | 1686 | 556 | |
8 | | -| bigNatModMult/INS_BN_MUL_MOD | 180 | 233 | 1064 | 660 | |
9 | | -| bigNatModSq/INS_BN_SQ_MOD | 65 | 75 | 1075 | 564 | |
10 | | -| bigNatModSqrt/INS_BN_SQRT_MOD | 328 | 445 | 4722 | 1438 | |
11 | | -| bigNatModSub/INS_BN_SUB_MOD | 45 | 75 | 55 | 45 | |
12 | | -| bigNatMultiplication/INS_BN_MUL | 145 | 199 | 517 | 164 | |
13 | | -| bigNatMultiplicationSlow/INS_BN_MUL_SCHOOL | 340 | 590 | 540 | 461 | |
14 | | -| bigNatSetValue/INS_BN_SET_VALUE | 19 | 21 | 31 | 17 | |
15 | | -| bigNatShiftRight/INS_BN_SHIFT_RIGHT | 21 | 29 | 22 | 14 | |
16 | | -| bigNatSq/INS_BN_SQ | 41 | 37 | 514 | 23 | |
17 | | -| bigNatStorage/INS_BN_STR | 20 | 21 | 22 | 10 | |
18 | | -| bigNatSubtraction/INS_BN_SUB | 40 | 51 | 51 | 30 | |
19 | | -| eccAdd/INS_EC_ADD | 86 | 250 | 5291 | 2723 | |
20 | | -| eccDoubleGenerator/INS_EC_DBL | 60 | 201 | 182 | 3113 | |
21 | | -| eccDoubleRandom/INS_EC_DBL | 64 | 202 | 179 | 3106 | |
22 | | -| eccEncode(compressed_in)/INS_EC_ENCODE | 576 | 797 | 6943 | 2718 | |
23 | | -| eccEncode(compressed_in_out)/INS_EC_ENCODE | 572 | 794 | 6944 | 2724 | |
24 | | -| eccEncode(compressed_out)/INS_EC_ENCODE | 25 | 25 | 32 | 14 | |
25 | | -| eccEncode(uncompressed_in_out)/INS_EC_ENCODE | 29 | 37 | 46 | 20 | |
26 | | -| eccFromX/INS_EC_FROM_X | 604 | 773 | 6989 | 2737 | |
27 | | -| eccGen/INS_EC_GEN | 45 | 226 | 127 | 201 | |
28 | | -| eccIsEqual/INS_EC_COMPARE | 47 | 75 | 158 | 57 | |
29 | | -| eccIsYEven/INS_EC_IS_Y_EVEN | 23 | 36 | 65 | 24 | |
30 | | -| eccMultRandomAndAdd/INS_EC_MUL_ADD | 91 | 255 | 5441 | 5823 | |
31 | | -| eccMultiplyGenerator/INS_EC_MUL | 73 | 209 | 211 | 3131 | |
32 | | -| eccMultiplyRandom/INS_EC_MUL | 71 | 206 | 207 | 3110 | |
33 | | -| eccNegation/INS_EC_NEG | 60 | 91 | 145 | 69 | |
34 | | -| integerAddition/INS_INT_ADD | 12 | 22 | 18 | 14 | |
35 | | -| integerDivision/INS_INT_DIV | 31 | 29 | 42 | 26 | |
36 | | -| integerModulo/INS_INT_MOD | 14 | 18 | 26 | 14 | |
37 | | -| integerMultiplication/INS_INT_MUL | 61 | 81 | 110 | 65 | |
38 | | -| integerStorage/INS_INT_STR | 9 | 11 | 13 | 7 | |
39 | | -| integerSubtraction/INS_INT_SUB | 20 | 41 | 61 | 20 | |
40 | | - |
| 1 | +## Performance results |
| 2 | +The results presented are extracted from the unit tests execution; values shown are in milliseconds (ms). If the operation is **unsupported**, the `--` value is shown. The time measured starts with APDU send (triggering the target operation) and ends when the response is received, thus containing also data transmission and on-card data preparation overhead (the operation itself is somewhat faster). Consult the source code in UnitTests.java for target instruction (INS) to see all steps included in measurement. |
| 3 | + |
| 4 | +### Notes |
| 5 | + * Taisys SIMoME Vault does not support all JCMathLib operations and we do not know how to make full support |
| 6 | + * Infineon SECORA ID S can be likely optimized for faster performance, working on it |
| 7 | + |
| 8 | + |
| 9 | +| Operation (time in ms) | NXP JCOP4 J3R200 P71 (16.7.2023) | NXP JCOP3 J3H145 P60 (16.7.2023) | Infineon SECORA ID S (16.7.2023) | GD Smartcafe 7.0 (16.7.2023) | Taisys SIMoME Vault (16.7.2023) | |
| 10 | +| --- | --- | --- | --- | --- | --- | |
| 11 | +| bigNatAddition/INS_BN_ADD | 27 | 38 | 26 | 18 | 55 | |
| 12 | +| bigNatMod/INS_BN_MOD | 47 | 49 | 61 | 43 | 67 | |
| 13 | +| bigNatModAdd/INS_BN_ADD_MOD | 45 | 57 | 54 | 32 | 66 | |
| 14 | +| bigNatModExp/INS_BN_EXP_MOD | 55 | 67 | 1677 | 537 | -- | |
| 15 | +| bigNatModInv/INS_BN_INV_MOD | 58 | 72 | 1686 | 556 | -- | |
| 16 | +| bigNatModMult/INS_BN_MUL_MOD | 180 | 233 | 1064 | 660 | 760 | |
| 17 | +| bigNatModSq/INS_BN_SQ_MOD | 65 | 75 | 1075 | 564 | -- | |
| 18 | +| bigNatModSqrt/INS_BN_SQRT_MOD | 328 | 445 | 4722 | 1438 | -- | |
| 19 | +| bigNatModSub/INS_BN_SUB_MOD | 45 | 75 | 55 | 45 | 54 | |
| 20 | +| bigNatMultiplication/INS_BN_MUL | 145 | 199 | 517 | 164 | 400 | |
| 21 | +| bigNatMultiplicationSlow/INS_BN_MUL_SCHOOL | 340 | 590 | 540 | 461 | 769 | |
| 22 | +| bigNatSetValue/INS_BN_SET_VALUE | 19 | 21 | 31 | 17 | 18 | |
| 23 | +| bigNatShiftRight/INS_BN_SHIFT_RIGHT | 21 | 29 | 22 | 14 | 46 | |
| 24 | +| bigNatSq/INS_BN_SQ | 41 | 37 | 514 | 23 | 47 | |
| 25 | +| bigNatStorage/INS_BN_STR | 20 | 21 | 22 | 10 | 23 | |
| 26 | +| bigNatSubtraction/INS_BN_SUB | 40 | 51 | 51 | 30 | 54 | |
| 27 | +| eccAdd/INS_EC_ADD | 86 | 250 | 5291 | 2723 | -- | |
| 28 | +| eccDoubleGenerator/INS_EC_DBL | 60 | 201 | 182 | 3113 | -- | |
| 29 | +| eccDoubleRandom/INS_EC_DBL | 64 | 202 | 179 | 3106 | -- | |
| 30 | +| eccEncode(compressed_in)/INS_EC_ENCODE | 576 | 797 | 6943 | 2718 | -- | |
| 31 | +| eccEncode(compressed_in_out)/INS_EC_ENCODE | 572 | 794 | 6944 | 2724 | -- | |
| 32 | +| eccEncode(compressed_out)/INS_EC_ENCODE | 25 | 25 | 32 | 14 | 60 | |
| 33 | +| eccEncode(uncompressed_in_out)/INS_EC_ENCODE | 29 | 37 | 46 | 20 | 51 | |
| 34 | +| eccFromX/INS_EC_FROM_X | 604 | 773 | 6989 | 2737 | -- | |
| 35 | +| eccGen/INS_EC_GEN | 45 | 226 | 127 | 201 | 1244 | |
| 36 | +| eccIsEqual/INS_EC_COMPARE | 47 | 75 | 158 | 57 | 134 | |
| 37 | +| eccIsYEven/INS_EC_IS_Y_EVEN | 23 | 36 | 65 | 24 | 69 | |
| 38 | +| eccMultRandomAndAdd/INS_EC_MUL_ADD | 91 | 255 | 5441 | 5823 | -- | |
| 39 | +| eccMultiplyGenerator/INS_EC_MUL | 73 | 209 | 211 | 3131 | -- | |
| 40 | +| eccMultiplyRandom/INS_EC_MUL | 71 | 206 | 207 | 3110 | -- | |
| 41 | +| eccNegation/INS_EC_NEG | 60 | 91 | 145 | 69 | 370 | |
| 42 | +| integerAddition/INS_INT_ADD | 12 | 22 | 18 | 14 | 28 | |
| 43 | +| integerDivision/INS_INT_DIV | 31 | 29 | 42 | 26 | 49 | |
| 44 | +| integerModulo/INS_INT_MOD | 14 | 18 | 26 | 14 | 27 | |
| 45 | +| integerMultiplication/INS_INT_MUL | 61 | 81 | 110 | 65 | 104 | |
| 46 | +| integerStorage/INS_INT_STR | 9 | 11 | 13 | 7 | 15 | |
| 47 | +| integerSubtraction/INS_INT_SUB | 20 | 41 | 61 | 20 | 31 | |
| 48 | + |
| 49 | + |
| 50 | + |
0 commit comments