Giter Site home page Giter Site logo

kemeleon's Introduction

Kemeleon

Build Status License: MIT/Apache 2.0

Algorithms for Obfuscating ML-KEM handshake materials.

Why?

This library implements obfuscating encoding schemes for ML-KEM encapsulation keys and ciphertext messages such that they are computationally indistinguishable from random by a passive observer.

Why aren't the NTT encodings from the FIPS spec (ByteEncode_d(F), ByteDecode_d(B), etc.) sufficient?

The wire format of the encapsulation key is trivially distinguishable from uniform random becuase they values are 12 bit values where all are computed mod Q. Thus all values are 12 bits, but always less than 3329.


Kemeleon Spec

Combine Kemeleon protocol


Roadmap

Core features

  • Public interface first pass
  • Interface with ml_kem
  • Implement complete Encapsulation Key encoding / decoding
  • Implement and test ciphertext encoding / decoding
  • Nist vectors Integration tests
  • Ciphertext encoding determinism using hkdf, hmac-drbg, or something similar
  • Pass on public docs

Cleanup

  • GH actions for testing, building, linting, etc.
  • Modify implementation to be no-std compatible
  • Move const generics (#![feature(generics_const_exprs)]) to its own branch
    • const generics are an unstable feature, even though this is a very simple application of the feature it is bad practice to ask people use it in its current state.
  • Use generic_array for all type based generics requiring sized arrays
  • Polish interface and docs for first release
  • Github actions release workflow

kemeleon's People

Contributors

jmwample avatar

Stargazers

(╯°□°)╯︵ ┻━┻ avatar afrizaloky avatar Jack Lloyd avatar Coda Hale avatar

Watchers

Coda Hale avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.