Commit Graph

40 Commits

Author SHA1 Message Date
Anjan Roy
8437420c9e Switch to using "RandomShake" as CSPRNG
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-11-18 20:41:59 +04:00
Anjan Roy
9cd25955c8 Split Makefile into multiple units
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-11-18 20:17:23 +04:00
Anjan Roy
0ab30f5200 Update in-code comments, referring to ML-KEM standard
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-09-02 20:41:18 +04:00
Anjan Roy
186b841633 Remove dudect -based constant-time tests
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-09-01 23:47:48 +04:00
Anjan Roy
5cb46afd16 Refactor KAT test runner functions, reducing lines of code
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-09-01 23:41:37 +04:00
Anjan Roy
cda537bb95 Trigger decapsulation failure by random bit-flipping cipher text - implicit rejection
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-20 11:05:12 +04:00
Anjan Roy
11655121cd Trigger encapsulation failure by providing with malformed (i.e. non-reduced) public key
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-20 11:05:10 +04:00
Anjan Roy
bf6a22a872 Split ML-KEM KAT and property-based tests into their own files, based on security level
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 18:29:42 +04:00
Anjan Roy
69d50e5fee Correctly name test-cases
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 14:38:36 +04:00
Anjan Roy
eef069f78b Refactor NTT and polynomial multiplication in NTT domain
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 13:03:27 +04:00
Anjan Roy
bf4863f1d8 Rename prime field arithmetic namespace to be more collision resistant
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 12:20:06 +04:00
Anjan Roy
a1f0ca56b5 Rename PRNG namespace to be more collision resistant
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 12:12:51 +04:00
Anjan Roy
cd0a3bd25b Rename public header files (along with namespaces) for ML-KEM
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 12:09:32 +04:00
Anjan Roy
0d0a151a64 Refactor PKE and KEM implementation
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 11:41:43 +04:00
Anjan Roy
df2139ba0f Refactor PRNG implementation to take bit_security_level as a template parameter
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-17 12:14:19 +04:00
Anjan Roy
f26d6e06ea Extract out functions for conversion between hex-string and byte-array, from core library logic
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-17 11:57:54 +04:00
Anjan Roy
bb8ef1e8d6 Rename constants, holding byte length information, to be more evident
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-17 11:10:53 +04:00
Anjan Roy
726b147dad Replace all links to round-3 Kyber specification with link of draft standard FIPS 203 from NIST
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-16 13:25:26 +04:00
Anjan Roy
0cd704b3d8 Change the directory structure of source tree
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-16 13:23:37 +04:00
Anjan Roy
d750b3cc83 Update tests, for now ignore return value of encaps function
We don't have sufficient tests to trigger this code-path.

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 21:21:48 +04:00
Anjan Roy
ac836bbc49 Update tests to conform to new encaps/ decaps API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-13 21:22:59 +04:00
Anjan Roy
10819b571f reduce number of measurements during each dudect sample collection iteration
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-24 20:00:53 +04:00
Anjan Roy
3376972acf use XOR operation (instead of AND) for mixing function return value well enough
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-24 19:59:42 +04:00
Anjan Roy
02bfcd5839 add console log message if dudect timing leakage is detected
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-13 13:26:13 +04:00
Anjan Roy
1bf3d6432d add dudect based timing leakage tests for kyber1024 KEM
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 09:14:39 +04:00
Anjan Roy
af36cb943c add timing leakage tests for kyber768 KEM
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 09:13:07 +04:00
Anjan Roy
28196dd689 update how dudect tests are executed
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 09:11:45 +04:00
Anjan Roy
9a621ff146 integrate dudect based all timing leakage tests under single test scenario
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-20 23:46:46 +04:00
Anjan Roy
2a7bbfd89c test whether internal functions of Kyber512 KEM are timing leakage free or not
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-20 22:52:02 +04:00
Anjan Roy
06fae52a49 test whether sampling of secret polynomial vector is timing leakage free or not
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-20 16:23:46 +04:00
Anjan Roy
b5c9a95543 add dudect based constant-timeness test for kyber512 KEM
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-17 21:13:43 +04:00
Anjan Roy
dde96f4e79 use function parameters, instead of template parameters for computing keypair and cipher text byte length
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-17 20:25:24 +04:00
Anjan Roy
e91593e7e3 adopt new API for Zq
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-11-10 22:34:38 +05:30
Anjan Roy
5930d75188 update all remaining function interfaces to use statically defined std::span
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-10-01 09:41:47 +05:30
Anjan Roy
8533a5103d use static extent std::span whenever possible
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-09-27 23:43:42 +04:00
Anjan Roy
3dab6c3622 refactor remaining API and all the tests to use new std::span based interface
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-09-27 23:15:44 +04:00
Anjan Roy
4342044317 move test-helper function to test suite translation unit
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-09-23 16:04:11 +04:00
Anjan Roy
b018b5125b remove some redundant const keywords
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-09-18 20:34:37 +04:00
Anjan Roy
a8512938f1 use google-test library for writing/ running tests
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-07-16 16:53:28 +04:00
Anjan Roy
253b9c4e10 prefer allocating memory on heap using std::vector, when benchmarking Kyber KEM routines
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-07-16 15:01:28 +04:00