|
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