Skip to content

Internet draft specifying a new ECDH-1PU JWE algorithm for public key authenticated encryption

License

Notifications You must be signed in to change notification settings

NeilMadden/jose-ecdh-1pu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ECDH-1PU

Internet Draft describing the ECDH-1PU JWE encryption algorithm.

ECDH-1PU is a variant on the existing ECDH-ES algorithm, which performs an additional ECDH key agreement between the static private key of the sender and the static public key of the recipient. The resulting shared secret is concatenated with the ephemeral-static shared secret from the normal ECDH-ES method and both are fed into the ConcatKDF to derive the AES/HMAC keys.

This additional key agreement step provides sender authentication, achieving the security goal of public key authenticated encryption. The recipient can be assured of the authenticity and integrity of a received JWE without needing a separate signature to be applied (and resulting bloating of size due to the need for nested JOSE structures).

The security assurances of this encryption mode closely relate to those of the NIST "one-pass unified model" of SP 800-56A (rev. 3) - section 6.2.1.2 and the Noise Protocol Framework's "K" one-way pattern.

Two-way handshake

While most JOSE encryption modes only consider one-shot messages sent from a sender to one or more recipients, the ECDH-1PU mode can also support two-way interactive handshakes. If Alice sends a message encrypted with ECDH-1PU to Bob's long-term public key, and then Bob responds to Alice's ephemeral public key also using ECDH-1PU, then the result is a handshake similar in principle (but not in detail) to the Noise KK handshake pattern.

About

Internet draft specifying a new ECDH-1PU JWE algorithm for public key authenticated encryption

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published