The Noise Protocol Framework
Noise is a framework for crypto protocols based on Diffie-Hellman key agreement. Noise can describe protocols that consist of a single message as well as interactive protocols. A Noise protocol begins with two parties exchanging handshake messages. During this handshake phase the parties exchange DH public keys and perform a sequence of DH operations, hashing the DH results into a shared secret key. After the handshake phase each party can use this shared key to send encrypted transport messages. The Noise framework supports handshakes where each party has a long-term static key pair and/or an ephemeral key pair. A Noise handshake is described by a simple language. This language consists of tokens which are arranged into message patterns. Message patterns are arranged into handshake patterns. A message pattern is a sequence of tokens that specifies the DH public keys that comprise a handshake message, and the DH operations that are performed when sending or receiving that message. A ha
Table of Contents 1. Introduction 2. Overview 2.1. Terminology 2.2. Overview of handshake state machine 3. Message format 4. Crypto functions 4.1. DH functions 4.2. Cipher functions 4.3. Hash functions 5. Processing rules 5.1. The CipherState object 5.2. The SymmetricState object 5.3. The HandshakeState object 6. Prologue 7. Handshake patterns 7.1. Handshake pattern basics 7.2. Alice and Bob 7.3. Handshake pattern validity 7.4. One-way handshake patterns 7.5. Interactive handshake patterns (fundamental) 7.6. Interactive handshake patterns (deferred) 7.7. Payload…
saved by
related reading
- Cryptographic right answers | Latacoralatacora.com
- WireGuard: Next Generation Kernel Network Tunnelwireguard.com
- Diffie–Hellman key exchange - Wikipediaen.wikipedia.org
- The Illustrated TLS 1.3 Connection: Every Byte Explainedtls13.xargs.org
- Zero Knowledge Proofs: An illustrated primer – A Few Thoughts on Cryptographic Engineeringblog.cryptographyengineering.com
- Elliptic-curve Diffie–Hellman - Wikipediaen.wikipedia.org
- ZK-Friendly Hash Functions | Zellic — Researchzellic.io
- Zero-knowledge proof - Wikipediaen.wikipedia.org
- Diffie-Hellman Key Exchange | Computer Securitytextbook.cs161.org
- ProofsArgsAndZK.pdfpeople.cs.georgetown.edu
- Networking layer | ethereum.orgethereum.org
- Collaborative zkSNARKseprint.iacr.org