Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rosenpass Protocol Version 2 #145

Open
wants to merge 22 commits into
base: main
Choose a base branch
from
Open

Rosenpass Protocol Version 2 #145

wants to merge 22 commits into from

Conversation

koraa
Copy link
Member

@koraa koraa commented Nov 5, 2023

TODOs (Karolin):


Blockers:


Todo Marei (please do not work on those yet):

  • Make sure the "References" section appears in the toc
  • "Version history" chapter should not get its own number
  • Move Fig1 to front page, page 2 shared between TOC and Fig 2?
  • The list in "Cryptographic building blocks" might need some work to look decent. Maybe the acronym on the left, name of the scheme right and flushed right ref to the spec, Version of the scheme, description?

Todo Mullana (please do not work on these yet):

  • Add a abort_initiator_handshake() call as ICR8 in the protocol steps graphic

  • Figure 2: Add a note to the bottom saying "All numeric values are in little-endian format"

  • Figure 3: Add short codes from Fig 4; IHI1/IHR1 etc

  • Figure 3: Add a note pointing people to fig 4 for details about security levels achieved and for the code to use this tree

  • Figure 3: Introduce a special symbol for the mix, then value sequence and maybe a "zoomed in" explanation.

  • Figure 4: Get rid of semicolons

  • Figure 4: ct1 with sctr in IHR5

  • Figure 4: Add a step RHI8 to erase the ephemeral secret keys

    Initiator line Initiator code Responder Line Responder code Comment
    RHI8 erase(eski) RHR8 Erase the ephemeral secret key to achieve forward secrecy. Implementations may defer execution of RHR8 until completion of the handshake (after ICI7) before transmission of InitConf.
  • Figure 4: Add a box with a table indicating when security properties are reached:

    Property Reached after Comment
    Secrecy IHI5/IHR5 Based on sskr/spkr (the responder's static key pair)
    Responder authentication RHI7 Responder authentication is reached after the initiator processes the complete RespHello message. The crucial step is proving that the responder was able to decapsulate the secret encrypted with their static public key (IHR5). This confirmation is produced by the responder in RHR7 and checked in RHI7.
    Initiator authentication ICR5 This works similar to responder authentication. In RHI5 the initiator decapsulates a secret with their static secret key; they provide a confirmation in ICI4, this confirmation is checked in ICI5. Final confirmation is achieved after biscuit replay detection in ICI5.
    Forward secrecy RHI8 The initiator generates a fresh ephemeral keypair before the handhshake; the responder encapsulates a random secret in RHR4 and the initiator decapsulates it in RHI4. Forward secrecy is achieved after the ephemeral secret key is securely erased in RHR8.

/cc @stv0g

Fixes: #68

…d secrecy

This is a minor security fix: Before this change the specification left erasing the secret key to the implementation. The reference implementation did erase `eski` but only after receiving the responder confirmation package (EmptyData at the time) instructing the initiator to stop retransmission of the InitConf package. With this change, `eski` is erased before transmission of the InitConf package.
 Fix a typo "key chaining extract" -> "chaining key extract"; "key chaining init" -> "chaining key init"
Issue: #68 (#68)

initiator handshake encryption -> initiator session encryption
responder handshake encryption -> responder session encryption
Issue: #91 (#91)

Add version info to whitepaper

This uses an release candidate of liboqs and a patched version of the
oqs-sys rust crate. We should wait until a proper release is done.
@koraa koraa force-pushed the dev/karo/protocol-version-2 branch from cb79849 to 87cbd1e Compare November 16, 2023 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Whitepaper proof read
1 participant