flâneur

The Noise Protocol Framework

noiseprotocol.org · 9,794 words · saved by 1 readers

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