From 713a3bb2f997ad8e50e2d8c226cbb1e1abc8f858 Mon Sep 17 00:00:00 2001 From: J08nY Date: Sat, 1 Dec 2018 17:01:27 +0100 Subject: Add more cofactor curves. --- src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv | 1 + src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv | 1 + src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv | 1 + src/cz/crcs/ectester/data/cofactor/curves.xml | 12 ++++++++++++ 4 files changed, 15 insertions(+) create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv (limited to 'src/cz/crcs/ectester/data/cofactor') diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv b/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv new file mode 100644 index 0000000..4de7049 --- /dev/null +++ b/src/cz/crcs/ectester/data/cofactor/cofactor192p2.csv @@ -0,0 +1 @@ +0x79cb22319472d019a08f7ae4f99c3edea2f167773210eab7,0x2b1afa29b6e9f7e148f7eb306ae942a506546c7129d56a3f,0x704d348ecd838ed800911bab3298aeebbf1c03b5489bca5d,0x61fc509a9d967735e8f18b0a4ba323134989c7711f44c35b,0x4fe31f28e2ee2a41f6fd661e417d32832bee6f3e164b167e,0x3ce59118ca39680cd047bd72595564c3953a773f01833de3,0x02 \ No newline at end of file diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv b/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv new file mode 100644 index 0000000..645f031 --- /dev/null +++ b/src/cz/crcs/ectester/data/cofactor/cofactor192p4.csv @@ -0,0 +1 @@ +0x8cceb84c81521937bef0925a3aaf09195a59c3f99ae06135,0x6ad5a0b617af4ac05f668ae0236f0a485290c36ef609efb5,0x3289c9a3f4f0364147634d40c2f7604e4bc98773daefc954,0x314789e7e4e448b000d235cc51251e70cd8c92c11d1858f9,0x74459b81d5322dc2c631d3ba964e8b4c8f1e4196939a5579,0x2333ae132054864defbc24965da70e7dbdb87ba264315991,0x04 \ No newline at end of file diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv b/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv new file mode 100644 index 0000000..ee39445 --- /dev/null +++ b/src/cz/crcs/ectester/data/cofactor/cofactor192p8.csv @@ -0,0 +1 @@ +0xa9a93bb887865d349841624bd8281c589a8e0196ae724eed,0x1b8b108f729cc205fb0ec88825d7d696e3df62ed328bd535,0x81078fdf85b1ee56ea3e27f6dedcca6f5eb9b645f536dc68,0x37369946896227fce5bfe8f760ba827080caa6700d8d8aaa,0x7f54e11bf72549866571fb70b383b6d1451973c11e3fd082,0x1535277710f0cba693082c4985a9197e9e759aa3571eb787,0x08 \ No newline at end of file diff --git a/src/cz/crcs/ectester/data/cofactor/curves.xml b/src/cz/crcs/ectester/data/cofactor/curves.xml index 7cf2a9a..ddc8746 100644 --- a/src/cz/crcs/ectester/data/cofactor/curves.xml +++ b/src/cz/crcs/ectester/data/cofactor/curves.xml @@ -88,6 +88,18 @@ prime cofactor192p2.csv + + cofactor192p4 + 192 + prime + cofactor192p4.csv + + + cofactor192p8 + 192 + prime + cofactor192p8.csv + cofactor163t2 -- cgit v1.2.3-70-g09d2 From d9108d4a036363d26d8d83153e98d52e62d1be04 Mon Sep 17 00:00:00 2001 From: J08nY Date: Tue, 19 Feb 2019 22:24:53 +0100 Subject: Workaround for a Java bug... --- docs/TESTS.md | 10 +++++----- src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv | 1 + src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv | 1 + src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv | 1 + src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml | 6 +++--- src/cz/crcs/ectester/reader/command/Command.java | 15 ++++++++++----- 6 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv create mode 100644 src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv (limited to 'src/cz/crcs/ectester/data/cofactor') diff --git a/docs/TESTS.md b/docs/TESTS.md index a2d3642..5d32d9d 100644 --- a/docs/TESTS.md +++ b/docs/TESTS.md @@ -101,9 +101,9 @@ This test suite also does some additional tests with corrupting the parameters: - G = infinity - r = 0 - r = 1 - - r = some prime larger than original r (and \[r\]G != infinity) - - r = some prime smaller than original r (and \[r\]G != infninity) - - r = some composite number (and \[r\]G != infinity) + - r = some prime larger than original r (and [r]G != infinity) + - r = some prime smaller than original r (and [r]G != infninity) + - r = some composite number (and [r]G != infinity) - k = 0xff - k = 0 @@ -123,10 +123,10 @@ by the applet. Operations over such curves are susceptible to small-subgroup att This is performed over a 160 bit field size, in two passes: - First pass tests the full range from 2 bits to 152, with more frequent tests towards the beginning and end. - The second pass tests the range 140 - 158 bits with one bit steps. - + - r = p * q = \|G\| - r = G = Carmichael number = p * q * s - - \[r\]G = infinity but r != \|G\|, so \|G\| divides r + - [r]G = infinity but r != \|G\|, so \|G\| divides r ## Invalid diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv new file mode 100644 index 0000000..193f6a7 --- /dev/null +++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p56467.csv @@ -0,0 +1 @@ +0xe8e100a50b479105f40c312de4bc7127,0x854c8cdc7389dbb3da8a949ce4598ebe,0x4e592cbd1471bba6dec1106cfa99f969,0x7a6c7f7f8305853831d7c99dd23b03aa,0xa3ad04379cb4789bd64e7d99a7874e0b,0x00010e47ea4c399c7ddb49c9915c3b5d,0xdc93 \ No newline at end of file diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv new file mode 100644 index 0000000..80a1eb3 --- /dev/null +++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p65521.csv @@ -0,0 +1 @@ +0xdc068a34e30288e08b495798af63ebc7,0xdc068a34e3027b1ccb5209bee1c3ebc7,0xdc054fb5cb170758f9fe7d1b5f63ebc7,0xc0d6edec3ac87edf8499d1885fd03e7b,0x81cb302f36ecd3ff93cd6314ce059e14,0x0000dc136f586930b2b948e64bb6e653,0xfff1 \ No newline at end of file diff --git a/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv b/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv new file mode 100644 index 0000000..54da6cc --- /dev/null +++ b/src/cz/crcs/ectester/data/cofactor/cofactor128p65535.csv @@ -0,0 +1 @@ +0xdd94e89ef3fba74afc2a67cb91546a93,0x6cf4828ab4960df2b9fcab3990e3959a,0x80a5c32206c83f769c5ed3e4f5b2ea4e,0xd7a4bb4b7e9ad9e81895caeaeac8b739,0x45ebc51cf353974b02b36b9912de041b,0x0000dd95c634ba30617af48fd4eb321b,0xffff \ No newline at end of file diff --git a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml b/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml index 8903688..e010003 100644 --- a/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml +++ b/src/cz/crcs/ectester/data/invalid/secg/secp128r1.xml @@ -85,7 +85,7 @@ secp128r1/14 - 0x98b36c442de5c741c70fa80a31d72fa,0x251e9a04ffe799cf4776575be582f108 + 0x098b36c442de5c741c70fa80a31d72fa,0x251e9a04ffe799cf4776575be582f108 secg/secp128r1 invalid order = 47 @@ -109,7 +109,7 @@ secp128r1/18 - 0x9ce43ec4dcaf95993d8ab00efcc7199a,0x7fb6d895c27bc326a33cb8111e865a9 + 0x9ce43ec4dcaf95993d8ab00efcc7199a,0x07fb6d895c27bc326a33cb8111e865a9 secg/secp128r1 invalid order = 67 @@ -139,7 +139,7 @@ secp128r1/23 - 0x6803013e75597fb7f83f1f8681af11d,0x32490d391f8a2b1de83212dd218b3a5a + 0x06803013e75597fb7f83f1f8681af11d,0x32490d391f8a2b1de83212dd218b3a5a secg/secp128r1 invalid order = 89 diff --git a/src/cz/crcs/ectester/reader/command/Command.java b/src/cz/crcs/ectester/reader/command/Command.java index ce35fcc..1ebd8bb 100644 --- a/src/cz/crcs/ectester/reader/command/Command.java +++ b/src/cz/crcs/ectester/reader/command/Command.java @@ -29,6 +29,11 @@ import java.util.List; public abstract class Command implements Cloneable { CommandAPDU cmd; CardMngr cardManager; + // Workaround for a stupid Java bug that went unfixed for !12! years, + // and for the even more stupid module system, which cannot properly work + // with the fact that JCardSim has some java.* packages... + final byte[] GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM = new byte[]{0}; + Command(CardMngr cardManager) { this.cardManager = cardManager; @@ -336,7 +341,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.keyPair = keyPair; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEAR, keyPair, 0x00); + this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEAR, keyPair, 0x00, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -486,7 +491,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.keyPair = keyPair; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GENERATE, keyPair, 0); + this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GENERATE, keyPair, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -858,7 +863,7 @@ public abstract class Command implements Cloneable { public Cleanup(CardMngr cardManager) { super(cardManager); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEANUP, 0, 0); + this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_CLEANUP, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -886,7 +891,7 @@ public abstract class Command implements Cloneable { public GetInfo(CardMngr cardManager) { super(cardManager); - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GET_INFO, 0, 0); + this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_GET_INFO, 0, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override @@ -917,7 +922,7 @@ public abstract class Command implements Cloneable { super(cardManager); this.dryRunMode = dryRunMode; - this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_SET_DRY_RUN_MODE, dryRunMode, 0); + this.cmd = new CommandAPDU(ECTesterApplet.CLA_ECTESTERAPPLET, ECTesterApplet.INS_SET_DRY_RUN_MODE, dryRunMode, 0, GOD_DAMN_JAVA_BUG_6474858_AND_GOD_DAMN_JAVA_12_MODULE_SYSTEM); } @Override -- cgit v1.2.3-70-g09d2 From 3beace9c4aa21487b0bc43b483850acd5bf2320d Mon Sep 17 00:00:00 2001 From: J08nY Date: Thu, 21 Feb 2019 11:33:16 +0100 Subject: Add large cofactor curves to tests. --- src/cz/crcs/ectester/data/cofactor/curves.xml | 18 ++++++++++++++++++ src/cz/crcs/ectester/data/cofactor/keys.xml | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) (limited to 'src/cz/crcs/ectester/data/cofactor') diff --git a/src/cz/crcs/ectester/data/cofactor/curves.xml b/src/cz/crcs/ectester/data/cofactor/curves.xml index ddc8746..0b8c52e 100644 --- a/src/cz/crcs/ectester/data/cofactor/curves.xml +++ b/src/cz/crcs/ectester/data/cofactor/curves.xml @@ -44,6 +44,24 @@ prime cofactor128p128.csv + + large/cofactor128p56467 + 128 + prime + cofactor128p56467.csv + + + large/cofactor128p65521 + 128 + prime + cofactor128p65521.csv + + + large/cofactor128p65535 + 128 + prime + cofactor128p65535.csv + cofactor160p2 diff --git a/src/cz/crcs/ectester/data/cofactor/keys.xml b/src/cz/crcs/ectester/data/cofactor/keys.xml index b4c0c90..2be7238 100644 --- a/src/cz/crcs/ectester/data/cofactor/keys.xml +++ b/src/cz/crcs/ectester/data/cofactor/keys.xml @@ -702,4 +702,23 @@ composite/pq/composite256/2 cofactor order = 0x000000000000000000000000000000000000000000000000743bc7ea193d40db + + + large/cofactor128p56467/0 + 0x8afd6cc280e0be7163bb6f285a7c6391,0xae64e0f1afc7bd5c75e2f36a7d85f668 + cofactor/large/cofactor128p56467 + cofactor order = 0xdc93 + + + large/cofactor128p65521/0 + 0x70e43816ed51388caa54a68b6c500352,0xab05b43e2cde6086b12350abe79b9175 + cofactor/large/cofactor128p65521 + cofactor order = 0xfff1 + + + large/cofactor128p65535/0 + 0x39d6ea56c3eb6382d2d7a9d327a191fd,0x3ebb3f4626d05df38572af3ae5fa60f2 + cofactor/large/cofactor128p65535 + cofactor order = 0xffff + -- cgit v1.2.3-70-g09d2