hybrid

package
v0.0.0-...-8e3605f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 9, 2022 License: BSD-3-Clause Imports: 7 Imported by: 0

Documentation

Overview

Package hybrid defines several hybrid classical/quantum KEMs.

KEMs are combined by simple concatenation of shared secrets, cipher texts, public keys, etc, see

https://datatracker.ietf.org/doc/draft-ietf-tls-hybrid-design/
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Cr2.pdf

Note that this is only fine if the shared secret is used in its entirety in a next step, such as being hashed or used as key.

For deriving a KEM keypair deterministically and encapsulating deterministically, we expand a single seed to both using SHAKE256, so that a non-uniform seed (such as a shared secret generated by a hybrid KEM where one of the KEMs is weak) doesn't impact just one of the KEMs.

Index

Constants

This section is empty.

Variables

View Source
var ErrUninitialized = errors.New("public or private key not initialized")

Functions

func Kyber1024X448

func Kyber1024X448() kem.Scheme

Returns the hybrid KEM of Kyber1024 and X448.

func Kyber512X25519

func Kyber512X25519() kem.Scheme

Returns the hybrid KEM of Kyber512 and X25519.

func Kyber768X448

func Kyber768X448() kem.Scheme

Returns the hybrid KEM of Kyber768 and X448.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL