Skip to content

Commit 0757c18

Browse files
committed
update perfomance measurements with explanation + Taisys card
1 parent 5cff25b commit 0757c18

File tree

1 file changed

+50
-40
lines changed

1 file changed

+50
-40
lines changed

PERFORMANCE.md

Lines changed: 50 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,50 @@
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

Comments
 (0)