RustCrypto / RustCrypto/KEMs

Evaluate whether compilation introduces a secret-dependent branch

Open
#25 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
111
Forks
53
Avg merge
5d 29m
Merged PRs (30d)
2

Description

The Kyber reference implementation has a vulnerability resulting from clang introducing a secret-dependent branch. The affected function there is poly_frommsg. The analogous function in our ML-KEM implementation is Encode::<U1>::decode. We should make sure that Rust compilation does not introduce secret-dependent branches.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the ML-KEM Encode::::decode implementation and use the linked Kyber report as context for examining Rust's compiled output. Check whether compilation introduces branches dependent on secret data; done means the relevant compilation path has been evaluated and any such branch is identified or ruled out.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cryptography, security
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.