Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
HannahMarsh committed Aug 20, 2024
1 parent 1e24188 commit 44ab985
Showing 1 changed file with 1 addition and 14 deletions.
15 changes: 1 addition & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,19 +100,10 @@ view when Alice sends a message to Carol instead.
- Ephemeral session keys ($epk_{i,j}$, $esk_{i,j}$) are generated by a client for each $P_i$ in the $j$-th position in an onion's routing path. They are short-term, meaning a processing party $P_i$ can only compute the shared secret during round $j$.
- **Onion formation**: The client uses $esk_{i,j}$ and $P_i$'s public key $pk_i$ to generate a shared secret $s_{i,j}$.
- The client includes $epk_{i,j}$ in the $j$-th layer's header.
- **Peeling**: The processing party $P_i$ uses $epk_{i,j}$ and its own private key $sk_i$ to compute the shared secret $s_{i,j}$.
- **Peeling**: The processing party $P_i$ uses the [ ephemeral public key $`epk_{i,j}`$ ](#epk) and its own private key $sk_i$ to compute the shared secret $s_{i,j}$.
- $s_{i,j}$ is then used by the processing party to decrypt the header's [ ciphertext $`E_i`$ ](#Ei)
- See [internal/pi_t/keys/ecdh.go](internal/pi_t/tools/keys/ecdh.go) for this project's ECDH usage.

<div style="color: red;">TODO: update this:</div>

- These shared keys are used (by the client during onion formation, and by a node when it processes the onion at layer $j$)
for each hop $j$ in the path with pseudorandom functions $F1(sk_{i,k}, j)$ and $F2(sk_{i,k}, j)$.
- **$F1(sk_{i,k}, j)$**: If the result is 1, then a checkpoint onion is expected to be received by $P_i$
at hop $j$ and $y$ = $F2(sk_{i,k}, j)$ is used to calculate the expected nonce of that checkpoint onion.
- See [internal/pi_t/prf/prf.go](/internal/pi_t/tools/prf/prf.go) for `PRF_F1` and `PRF_F2` implementations.
- **Checkpoints ($Y_k$)**: The set of expected nonces (calculated by _F2_) for the $k$-th layer checkpoint onions.


### Tulip Bulb Structure:

Expand Down Expand Up @@ -372,9 +363,6 @@ view when Alice sends a message to Carol instead.

### 3. Mixing and Bruising:

<div style="color: red;">TODO: update this:</div>

```markdown
- When a Mixer receives an onion and decrypts its outer layer (header), it reveals the following data:
- Multiple key slots that contain copies of the decryption key. If an onion is bruised, one of these key slots is invalidated.
- The nonce (decrypted using the session key shared with the original sender).
Expand All @@ -390,7 +378,6 @@ view when Alice sends a message to Carol instead.
- The onion is then forwarded to the next node in the path.
- The number of protection layers is managed in a way that does not reveal any positional information. For instance,
additional dummy layers might be used to mask the actual number of active layers.
```

### 4. Intermediate Nodes:

Expand Down

0 comments on commit 44ab985

Please sign in to comment.