Commit Graph

312 Commits

Author SHA1 Message Date
Anjan Roy
85e3c4e495 rename test function to shorter name
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:46:57 +04:00
Anjan Roy
5589c97b69 given hex string, parse it as byte array
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:43:32 +04:00
Anjan Roy
fe5d1c74e8 don't compute min, max, mean and median exeuction time of benchmark, using multiple repeatitions
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:31:54 +04:00
Anjan Roy
2892144772 update kyber KEM benchmark routines, remove kyber PKE benchmark helper routines
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:22:51 +04:00
Anjan Roy
3f7a5fd932 rename compile-time executable functions, make them shorter
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:19:55 +04:00
Anjan Roy
b6516e95d3 capture kyber KAT tests (run using pytest) using pattern
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:12:26 +04:00
Anjan Roy
9b57030e86 update C wrapper interface to conform to new KEM API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 18:11:54 +04:00
Anjan Roy
e50e9b943c remove kyber PKE tests, update kyber KEM tests as per new API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:31:58 +04:00
Anjan Roy
c42da637ac remove kyber KEM wrapper function which used to take PRNG as input
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:31:25 +04:00
Anjan Roy
89c78e8705 remove compile-time executable functions for computing byte length of PKE keypair/ cipher text
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:26:13 +04:00
Anjan Roy
36617b1753 remove static keyword from function definition
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:25:33 +04:00
Anjan Roy
b906216e33 refactor kyber1024 KEM API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:21:02 +04:00
Anjan Roy
01bcfb8de4 mention row number of table from where parameters are taken
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:17:28 +04:00
Anjan Roy
e56ac042b5 refactor kyber768 KEM API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:16:11 +04:00
Anjan Roy
a12f409cbb updated kyber512 KEM API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 17:10:43 +04:00
Anjan Roy
672307da40 remove redundant files which used to hold parts of kyber KEM
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 16:52:16 +04:00
Anjan Roy
e863bb4633 move all kyber KEM related routines (i.e. keygen/ encaps/ decaps) under same file
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 16:51:22 +04:00
Anjan Roy
660d7c9b28 get rid of kyber PKE routines - don't expose them for public usage
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 16:43:24 +04:00
Anjan Roy
da67ac1732 keep PKE keygen/ encrypt/ decrypt routines in same file (under namespace pke::)
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 16:42:42 +04:00
Anjan Roy
1c20822c37 gitinore development time files, don't commit them to VCS
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-06-02 16:41:45 +04:00
Anjan Roy
7b10747031 Merge pull request #31 from itzmeanjan/update-benchmark
Update Benchmark
2023-04-02 19:47:14 +04:00
Anjan Roy
022cdd9f30 update benchmark numbers
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-04-02 19:44:33 +04:00
Anjan Roy
2f0446175b compute iterations per unit time when benchmarking
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-04-02 19:35:30 +04:00
Anjan Roy
f4f7a36846 Merge pull request #30 from itzmeanjan/update-sha3
Update `sha3` to Latest Commit
2023-04-02 19:15:02 +04:00
Anjan Roy
3879ee1343 update sha3 to latest commit
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-04-02 19:12:26 +04:00
Anjan Roy
34c6a4bc56 Merge pull request #29 from itzmeanjan/add-mont-arith
Montgomery Arithmetic over Zq | q = 3329
2023-03-10 11:24:14 +04:00
Anjan Roy
349e4f6e87 update benchmark results
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-10 11:22:15 +04:00
Anjan Roy
720ed9d2d5 update how to compile example showing usage of Kyber KEM API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 18:57:28 +04:00
Anjan Roy
48b2d1b882 update tests ensuring functional correctness of Kyber and its components
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 18:53:45 +04:00
Anjan Roy
5e54d6f615 correct modulo addition and negation over Zq implementation
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 18:53:22 +04:00
Anjan Roy
645772f0bc update kyber PKE
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 16:19:07 +04:00
Anjan Roy
15e423ceb5 update sampling of polynomoial vector/ matrix
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 16:16:37 +04:00
Anjan Roy
31233bcf29 update arithmetic with vectors of polynomials
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 16:07:26 +04:00
Anjan Roy
38f0f1839d polynomial coefficient compression and decompression
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 16:04:58 +04:00
Anjan Roy
8d29f90be0 update deserialization of bytearray to polynomial
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 15:54:51 +04:00
Anjan Roy
eec43d830b update serialization of polynomial to bytearrays
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 15:39:22 +04:00
Anjan Roy
191f0a7ceb remove unnecessary import
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 12:06:44 +04:00
Anjan Roy
1cf427220c start using new type Zq in NTT implementation header
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 12:03:50 +04:00
Anjan Roy
ea713c2fcf define compound modulo addition, subtraction and multiplication operators for Zq type
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 12:02:12 +04:00
Anjan Roy
be7b613b0b compile-time compute powers of ζ for (i)NTT
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-09 11:49:19 +04:00
Anjan Roy
c5c0ef29a6 use proper constructors
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-06 20:20:42 +04:00
Anjan Roy
dd510c89d9 update public interfaces of Zq_t type
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-06 19:56:07 +04:00
Anjan Roy
b23095abbd test functional correctness of Zq arithmetic operations
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-06 19:26:48 +04:00
Anjan Roy
ce909373ee constant-time montgomery multiplication (with modulo reduction)
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-06 19:24:41 +04:00
Anjan Roy
afe84540a3 update how random Zq elements are sampled
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-03 19:05:14 +04:00
Anjan Roy
7dfa8ec170 when converting to canonical form make sure that they ∈ [0..3329)
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-03 18:40:15 +04:00
Anjan Roy
1f894ac8bf compare two Zq elements
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-03 18:35:44 +04:00
Anjan Roy
48d91bf575 make functions ( defined in header file ) inline
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-03 18:17:52 +04:00
Anjan Roy
dac0ee5ebf test (existing) prime field arithmetic with more random data
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-03 18:16:06 +04:00
Anjan Roy
f700f03f54 generate random Zq element ( mostly useful for testing )
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-03-03 18:12:21 +04:00