542 Commits

Author SHA1 Message Date
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
bb1a5ace51 Refactor utility functions
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-18 11:06:14 +04:00
Anjan Roy
61eaffbb2b Refactor arithmetic over Zq
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-17 12:28:35 +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
7266777e9f Update in-code comments for public headers of kyber{512, 768, 1024} KEM
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-17 11:49:44 +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
9f977086ca Update API usage example - conform to new API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 21:24:28 +04:00
Anjan Roy
53abc2b1de Explicitly ignore return value of encaps function in benchmarks
In benchmark we always consider "good" input case.

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 21:23:26 +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
17227c2cce Add modulus check for input public key of encaps function
Following section 6.2 of https://doi.org/10.6028/NIST.FIPS.203.ipd

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 21:19:57 +04:00
Anjan Roy
70b191277a Update Fujisaki-Okamoto transform as per draft standard
See point 2, 3 of https://doi.org/10.6028/NIST.FIPS.203.ipd

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 18:29:42 +04:00
Anjan Roy
80afb5d341 Explicitly specify which git submodule to activate in Makefil recipe
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 17:29:47 +04:00
Anjan Roy
a741db10c3 Update benchmaraks to conform to new encaps/ decaps API
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-14 17:27: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
2d1de9bd2e Don't allow requesting arbitrary length *shared secret* using SHAKE256 KDF
See section 1.3 of https://doi.org/10.6028/NIST.FIPS.203.ipd (draft standard of Kyber)

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-13 19:44:17 +04:00
Anjan Roy
803f7e1e89 Update KAT files to conform to standard branch of Kyber reference implementation repo
See https://gist.github.com/itzmeanjan/c8f5bc9640d0f0bdd2437dfe364d7710
KAT files were generated at d1321ce5ac

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-06-13 19:32:34 +04:00
Anjan Roy
8f2aae4636 Merge pull request #48 from itzmeanjan/update-ct-tests
Improve the State of Constant-Time Tests
2024-01-24 20:21:24 +04:00
Anjan Roy
7add490b4d update instructions for running constant-time tests
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-24 20:09:25 +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
2521d598c3 just build dudect -based constant-time tests, instead of running them using Make recipe
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-24 19:56:48 +04:00
Anjan Roy
d04f259455 Merge pull request #47 from itzmeanjan/bump-sha3-to-latest
Bump `sha3` to latest commit
2024-01-22 20:14:19 +04:00
Anjan Roy
9d9a07239c update Github Actions script to use latest version v4
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-22 19:38:08 +04:00
Anjan Roy
ecf5f7acb9 add/ update benchmark results
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-22 19:35:54 +04:00
Anjan Roy
f651e68253 ensure that submodule fetch commands are run while respecting dependency chain
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-22 19:28:17 +04:00
Anjan Roy
43d04c28f1 ensure that submodule based dependency is correctly downloaded always
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-22 19:20:03 +04:00
Anjan Roy
6f9f57a588 pin git submodule based dependency sha3 to latest commit
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-22 19:07:27 +04:00
Anjan Roy
caac4e2c41 use gtest-parallel to run tests in parallel
Collects inspiration from cb4527c8ed

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-22 19:03:30 +04:00
Anjan Roy
ebb86900ab Merge pull request #46 from itzmeanjan/update-dudect
Update `dudect` - timing leakage checker
2024-01-13 13:40:20 +04:00
Anjan Roy
6650298541 update dudect to latest commit
Why it is important ? Read https://github.com/oreparaz/dudect/pull/30

Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-13 13:28:41 +04:00
Anjan Roy
566011480f run multiple dudect binaries in parallel 🤩
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2024-01-13 13:26:58 +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
5be3dca6e7 Merge pull request #45 from itzmeanjan/collect-rdtsc-on-x86
Collect RDTSC on x64_64
2023-12-28 23:36:21 +04:00
Anjan Roy
ddd4171717 update benchmark results
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-28 23:30:36 +04:00
Anjan Roy
cba633265a collect cpu ticks on x86_64 targets, using RDTSC instruction
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-28 22:36:01 +04:00
Anjan Roy
caf3cd1174 fix *G*ithub *F*lavoured *M*arkdown not rendering issue
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 17:16:32 +04:00
Anjan Roy
17cd973d60 Merge pull request #43 from itzmeanjan/integrate-dudect
Make it Constant-Time
2023-12-21 17:14:54 +04:00
Anjan Roy
ace1a3c7e0 mention about availability of dudect based timing leakage test
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 17:04:06 +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
7e5f3a7603 explicitly declare common type
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 00:11:11 +04:00
Anjan Roy
a62ad394ad make it easy to run all dudect binaries
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-21 00:00:11 +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
3bda8f9ec8 rename functions for sake of better readability
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-20 23:45:37 +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
3551f37afd refactor constant-time {byte array comparison and conditional memcpy} into their own functions
Signed-off-by: Anjan Roy <hello@itzmeanjan.in>
2023-12-20 20:03:30 +04:00