File tree 11 files changed +94
-4
lines changed
main/java/org/bouncycastle
test/java/org/bouncycastle/pqc/crypto/test
main/java/org/bouncycastle/pqc/jcajce
test/java/org/bouncycastle/pqc/jcajce/provider/test
11 files changed +94
-4
lines changed Original file line number Diff line number Diff line change @@ -376,6 +376,8 @@ public interface BCObjectIdentifiers
376
376
ASN1ObjectIdentifier ntruhps2048677 = pqc_kem_ntru .branch ("2" );
377
377
ASN1ObjectIdentifier ntruhps4096821 = pqc_kem_ntru .branch ("3" );
378
378
ASN1ObjectIdentifier ntruhrss701 = pqc_kem_ntru .branch ("4" );
379
+ ASN1ObjectIdentifier ntruhps40961229 = pqc_kem_ntru .branch ("5" );
380
+ ASN1ObjectIdentifier ntruhrss1373 = pqc_kem_ntru .branch ("6" );
379
381
380
382
/**
381
383
* Kyber
Original file line number Diff line number Diff line change 4
4
import org .bouncycastle .pqc .crypto .KEMParameters ;
5
5
import org .bouncycastle .pqc .math .ntru .parameters .NTRUHPS2048509 ;
6
6
import org .bouncycastle .pqc .math .ntru .parameters .NTRUHPS2048677 ;
7
+ import org .bouncycastle .pqc .math .ntru .parameters .NTRUHPS40961229 ;
7
8
import org .bouncycastle .pqc .math .ntru .parameters .NTRUHPS4096821 ;
9
+ import org .bouncycastle .pqc .math .ntru .parameters .NTRUHRSS1373 ;
8
10
import org .bouncycastle .pqc .math .ntru .parameters .NTRUHRSS701 ;
9
11
import org .bouncycastle .pqc .math .ntru .parameters .NTRUParameterSet ;
10
12
@@ -27,11 +29,22 @@ public class NTRUParameters
27
29
*/
28
30
public static final NTRUParameters ntruhps4096821 = new NTRUParameters ("ntruhps4096821" , new NTRUHPS4096821 ());
29
31
32
+ /**
33
+ * NTRU-HPS parameter set with n = 1229 and q = 4096.
34
+ */
35
+ public static final NTRUParameters ntruhps40961229 = new NTRUParameters ("ntruhps40961229" , new NTRUHPS40961229 ());
36
+
30
37
/**
31
38
* NTRU-HRSS parameter set with n = 701.
32
39
*/
33
40
public static final NTRUParameters ntruhrss701 = new NTRUParameters ("ntruhrss701" , new NTRUHRSS701 ());
34
41
42
+ /**
43
+ * NTRU-HRSS parameter set with n = 1373.
44
+ */
45
+ // TODO
46
+ // public static final NTRUParameters ntruhrss1373 = new NTRUParameters("ntruhrss1373", new NTRUHRSS1373());
47
+
35
48
private final String name ;
36
49
/**
37
50
* Currently selected parameter set
Original file line number Diff line number Diff line change @@ -188,7 +188,9 @@ public class PublicKeyFactory
188
188
converters .put (BCObjectIdentifiers .ntruhps2048509 , new NtruConverter ());
189
189
converters .put (BCObjectIdentifiers .ntruhps2048677 , new NtruConverter ());
190
190
converters .put (BCObjectIdentifiers .ntruhps4096821 , new NtruConverter ());
191
+ converters .put (BCObjectIdentifiers .ntruhps40961229 , new NtruConverter ());
191
192
converters .put (BCObjectIdentifiers .ntruhrss701 , new NtruConverter ());
193
+ converters .put (BCObjectIdentifiers .ntruhrss1373 , new NtruConverter ());
192
194
converters .put (BCObjectIdentifiers .falcon_512 , new FalconConverter ());
193
195
converters .put (BCObjectIdentifiers .falcon_1024 , new FalconConverter ());
194
196
converters .put (BCObjectIdentifiers .kyber512 , new KyberConverter ());
Original file line number Diff line number Diff line change @@ -203,12 +203,16 @@ class Utils
203
203
ntruOids .put (NTRUParameters .ntruhps2048509 , BCObjectIdentifiers .ntruhps2048509 );
204
204
ntruOids .put (NTRUParameters .ntruhps2048677 , BCObjectIdentifiers .ntruhps2048677 );
205
205
ntruOids .put (NTRUParameters .ntruhps4096821 , BCObjectIdentifiers .ntruhps4096821 );
206
+ ntruOids .put (NTRUParameters .ntruhps40961229 , BCObjectIdentifiers .ntruhps40961229 );
206
207
ntruOids .put (NTRUParameters .ntruhrss701 , BCObjectIdentifiers .ntruhrss701 );
208
+ // ntruOids.put(NTRUParameters.ntruhrss1373, BCObjectIdentifiers.ntruhrss1373);
207
209
208
210
ntruParams .put (BCObjectIdentifiers .ntruhps2048509 , NTRUParameters .ntruhps2048509 );
209
211
ntruParams .put (BCObjectIdentifiers .ntruhps2048677 , NTRUParameters .ntruhps2048677 );
210
212
ntruParams .put (BCObjectIdentifiers .ntruhps4096821 , NTRUParameters .ntruhps4096821 );
213
+ ntruParams .put (BCObjectIdentifiers .ntruhps40961229 , NTRUParameters .ntruhps40961229 );
211
214
ntruParams .put (BCObjectIdentifiers .ntruhrss701 , NTRUParameters .ntruhrss701 );
215
+ // ntruParams.put(BCObjectIdentifiers.ntruhrss1373, NTRUParameters.ntruhrss1373);
212
216
213
217
falconOids .put (FalconParameters .falcon_512 , BCObjectIdentifiers .falcon_512 );
214
218
falconOids .put (FalconParameters .falcon_1024 , BCObjectIdentifiers .falcon_1024 );
Original file line number Diff line number Diff line change
1
+ package org .bouncycastle .pqc .math .ntru .parameters ;
2
+
3
+ import org .bouncycastle .pqc .math .ntru .HPS4096Polynomial ;
4
+ import org .bouncycastle .pqc .math .ntru .Polynomial ;
5
+
6
+ /**
7
+ * NTRU-HPS parameter set with n = 1229 and q = 4096.
8
+ *
9
+ * @see NTRUHPSParameterSet
10
+ */
11
+ public class NTRUHPS40961229
12
+ extends NTRUHPSParameterSet
13
+ {
14
+ public NTRUHPS40961229 ()
15
+ {
16
+ super (
17
+ 1229 ,
18
+ 12 ,
19
+ 32 ,
20
+ 32 ,
21
+ 32 // Category 5 (local model)
22
+ );
23
+ }
24
+
25
+ @ Override
26
+ public Polynomial createPolynomial ()
27
+ {
28
+ return new HPS4096Polynomial (this );
29
+ }
30
+ }
Original file line number Diff line number Diff line change
1
+ package org .bouncycastle .pqc .math .ntru .parameters ;
2
+
3
+
4
+ /**
5
+ * NTRU-HRSS parameter set with n = 701.
6
+ *
7
+ * @see NTRUHRSSParameterSet
8
+ */
9
+ public class NTRUHRSS1373
10
+ extends NTRUHRSSParameterSet
11
+ {
12
+ public NTRUHRSS1373 ()
13
+ {
14
+ super (
15
+ 1373 ,
16
+ 14 ,
17
+ 32 ,
18
+ 32 ,
19
+ 32 // Category 5 (local model) - KATs based on 256 bit
20
+ );
21
+ }
22
+ }
Original file line number Diff line number Diff line change @@ -14,8 +14,10 @@ public void testParameters()
14
14
assertEquals (256 , NTRUParameters .ntruhps2048509 .getSessionKeySize ());
15
15
assertEquals (256 , NTRUParameters .ntruhps2048677 .getSessionKeySize ());
16
16
assertEquals (256 , NTRUParameters .ntruhps4096821 .getSessionKeySize ());
17
+ assertEquals (256 , NTRUParameters .ntruhps40961229 .getSessionKeySize ());
17
18
18
19
assertEquals (256 , NTRUParameters .ntruhrss701 .getSessionKeySize ());
20
+ // assertEquals(256, NTRUParameters.ntruhrss1373.getSessionKeySize());
19
21
}
20
22
21
23
public void testHpsParameters ()
Original file line number Diff line number Diff line change @@ -36,19 +36,27 @@ public class NTRUTest
36
36
NTRUParameters .ntruhps2048509 ,
37
37
NTRUParameters .ntruhps2048677 ,
38
38
NTRUParameters .ntruhps4096821 ,
39
- NTRUParameters .ntruhrss701
39
+ NTRUParameters .ntruhps40961229 ,
40
+ NTRUParameters .ntruhrss701 ,
41
+ // NTRUParameters.ntruhrss1373
40
42
};
43
+
41
44
private final String [] katBase = {
42
45
"ntruhps2048509" ,
43
46
"ntruhps2048677" ,
44
47
"ntruhps4096821" ,
45
- "ntruhrss701"
48
+ "ntruhps40961229" ,
49
+ "ntruhrss701" ,
50
+ // "ntruhrss1373"
46
51
};
52
+
47
53
private final String [] katFiles = {
48
54
"PQCkemKAT_935.rsp" ,
49
55
"PQCkemKAT_1234.rsp" ,
50
56
"PQCkemKAT_1590.rsp" ,
51
- "PQCkemKAT_1450.rsp"
57
+ "PQCkemKAT_2366.rsp" ,
58
+ "PQCkemKAT_1450.rsp" ,
59
+ "PQCkemKAT_2983.rsp"
52
60
};
53
61
54
62
public void testPrivInfoGeneration ()
@@ -76,6 +84,7 @@ public void testPQCgenKAT_kem()
76
84
for (int i = 0 ; i < this .params .length ; i ++)
77
85
{
78
86
NTRUParameters param = params [i ];
87
+
79
88
InputStream src = TestResourceFinder .findTestResource ("pqc/crypto/ntru/" + katBase [i ], katFiles [i ]);
80
89
List <NTRUKAT > kats = NTRUKAT .getKAT (src );
81
90
Original file line number Diff line number Diff line change @@ -28,7 +28,9 @@ public class NTRUKeyPairGeneratorSpi
28
28
parameters .put (NTRUParameterSpec .ntruhps2048509 .getName (), NTRUParameters .ntruhps2048509 );
29
29
parameters .put (NTRUParameterSpec .ntruhps2048677 .getName (), NTRUParameters .ntruhps2048677 );
30
30
parameters .put (NTRUParameterSpec .ntruhps4096821 .getName (), NTRUParameters .ntruhps4096821 );
31
+ parameters .put (NTRUParameterSpec .ntruhps40961229 .getName (), NTRUParameters .ntruhps40961229 );
31
32
parameters .put (NTRUParameterSpec .ntruhrss701 .getName (), NTRUParameters .ntruhrss701 );
33
+ // parameters.put(NTRUParameterSpec.ntruhrss1373.getName(), NTRUParameters.ntruhrss1373);
32
34
}
33
35
34
36
NTRUKeyGenerationParameters param ;
Original file line number Diff line number Diff line change @@ -13,7 +13,9 @@ public class NTRUParameterSpec
13
13
public static final NTRUParameterSpec ntruhps2048509 = new NTRUParameterSpec (NTRUParameters .ntruhps2048509 );
14
14
public static final NTRUParameterSpec ntruhps2048677 = new NTRUParameterSpec (NTRUParameters .ntruhps2048677 );
15
15
public static final NTRUParameterSpec ntruhps4096821 = new NTRUParameterSpec (NTRUParameters .ntruhps4096821 );
16
+ public static final NTRUParameterSpec ntruhps40961229 = new NTRUParameterSpec (NTRUParameters .ntruhps40961229 );
16
17
public static final NTRUParameterSpec ntruhrss701 = new NTRUParameterSpec (NTRUParameters .ntruhrss701 );
18
+ // public static final NTRUParameterSpec ntruhrss1373 = new NTRUParameterSpec(NTRUParameters.ntruhrss1373);
17
19
18
20
private static Map parameters = new HashMap ();
19
21
Original file line number Diff line number Diff line change @@ -40,7 +40,9 @@ public void testKeyPairEncoding()
40
40
NTRUParameterSpec .ntruhps2048509 ,
41
41
NTRUParameterSpec .ntruhps2048677 ,
42
42
NTRUParameterSpec .ntruhps4096821 ,
43
- NTRUParameterSpec .ntruhrss701
43
+ NTRUParameterSpec .ntruhps40961229 ,
44
+ NTRUParameterSpec .ntruhrss701 ,
45
+ // NTRUParameterSpec.ntruhrss1373
44
46
};
45
47
kf = KeyFactory .getInstance ("NTRU" , "BC" );
46
48
You can’t perform that action at this time.
0 commit comments