Replies: 1 comment 1 reply
-
Hi, Just a quick note: to be considered for the mentorship, you'll need to submit an application via the LFX platform: Looking forward to your application! |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Enhancing Constant-Time Analysis Tooling in liboqs
Name: Ritish Chandra Srivastava
GitHub: Ritish134
Email: ritishnew@gmail.com
Mentorship Period: 8 Weeks
Mentor: @bhess
Background and Motivation
In my exploration of the liboqs codebase, I focused on analyzing AVX2-optimized functions like
rej_uniform_avx2.c
. While the code used unfamiliar SIMD instructions and had a complex structure, I was determined to understand and compile it in isolation. This led me to investigate how functions like these are tested for constant-time behavior and whether timing vulnerabilities can be reliably detected.As I dug deeper, I realized there’s a lack of seamless automation around side-channel detection in such projects. The critical nature of post-quantum cryptography and the real-world impact of issues like Kyberslash make automated tooling a necessity.
This mentorship is a chance to contribute a robust solution: by integrating effective constant-time analysis tools into liboqs, improving their reliability, and streamlining them into CI.
Project Overview
The goal is to strengthen the detection of timing side-channel vulnerabilities in the liboqs library by building a maintainable, CI-ready testing framework using reliable constant-time analysis tools. This includes:
Deliverables
By the end of the mentorship, I will deliver:
🗓️ 8-Week Timeline for Timing Side-Channel Analysis Integration
Week 1 - Setup and Baseline Testing
rej_uniform_avx2
).Week 2 - Initial Tool Integration
Week 3 - Expand Test Coverage
Week 4 - CI Integration Prototype
Week 5 - Triage and Deep Inspection
objdump
)Week 6 - Refinement and Error Handling
Week 7 - Finalize Documentation and Developer Tools
Week 8 - Final Review and Reporting
Tools and Languages
Prior Work and Initiative
rej_uniform_avx2.c
in isolation.Example Test: Instruction Count Variability
To understand where timing variability might arise in liboqs, I started with direct observation of runtime characteristics using valgrind's cachegrind tool:
$ valgrind --tool=cachegrind --cachegrind-out-file=cache.out ./example_kem $ cg_annotate cache.out > cache_report.txt
Also created
liboqs_dudect_kyber.c
to use dudect on OQS_KEM_encaps for testing purposeOutput:
Beta Was this translation helpful? Give feedback.
All reactions