Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,8 @@ including retries.

## Quick start

Requires [uv](https://docs.astral.sh/uv/).
No install needed to try it: the [live demo](https://kpreisner.github.io/chip/) runs CHIP in
your browser. To run it locally, you need [uv](https://docs.astral.sh/uv/).

```sh
uv sync
Expand Down
16 changes: 11 additions & 5 deletions docs/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Karl Preisner

*Originally developed and written in 2018; revised in 2026.*

▶️ **Live demo:** [kpreisner.github.io/chip](https://kpreisner.github.io/chip/) runs CHIP in
your browser and shows each salt attempt and collision as it happens.

## Abstract

In 2013, a group of cryptographers launched a public
Expand Down Expand Up @@ -272,11 +275,14 @@ purpose-built designs like Argon2id remain the right choice in practice.

## Try it

From a clone of this repository: `HASH_NAME` is the hash function applied on every iteration, `BITS` is $b$, the number
of low bits compared, and `COLLISIONS` is $C$, the number of repeats that end the
chain. `MAX_ITERATIONS` is the upper bound: a salt whose chain runs longer is rejected,
and hashing restarts with a new salt. `chip verify` prints `match`, and `--verbose` logs
each salt attempt and collision as it happens.
The quickest way is the [live demo](https://kpreisner.github.io/chip/), which runs the
same library in your browser with no install.

From a clone of this repository: `HASH_NAME` is the hash function applied on every
iteration, `BITS` is $b$, the number of low bits compared, and `COLLISIONS` is $C$, the
number of repeats that end the chain. `MAX_ITERATIONS` is the upper bound: a salt whose
chain runs longer is rejected, and hashing restarts with a new salt. `chip verify`
prints `match`, and `--verbose` logs each salt attempt and collision as it happens.

```sh
uv sync
Expand Down
Loading