https://github.com/systemslibrarian/crypto-lab-mpcith-sign
Browser-based MPC-in-the-Head signature demo — additive secret sharing, SHA-256 commitments, Merkle proofs, Fiat-Shamir transform, N-party simulation with hidden-view challenge, toy PERK permutation witness. Post-quantum signatures from hash functions alone. NIST Round 2: Mirath, PERK, FAEST. No backends. No simulated math.
https://github.com/systemslibrarian/crypto-lab-mpcith-sign
crypto-lab cryptography digital-signatures fiat-shamir mirath mpc-in-the-head perk permuted-kernel-problem post-quantum secret-sharing zero-knowledge
Last synced: 23 days ago
JSON representation
Browser-based MPC-in-the-Head signature demo — additive secret sharing, SHA-256 commitments, Merkle proofs, Fiat-Shamir transform, N-party simulation with hidden-view challenge, toy PERK permutation witness. Post-quantum signatures from hash functions alone. NIST Round 2: Mirath, PERK, FAEST. No backends. No simulated math.
- Host: GitHub
- URL: https://github.com/systemslibrarian/crypto-lab-mpcith-sign
- Owner: systemslibrarian
- Created: 2026-04-18T11:08:45.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-18T11:29:09.000Z (2 months ago)
- Last Synced: 2026-04-18T13:23:16.329Z (2 months ago)
- Topics: crypto-lab, cryptography, digital-signatures, fiat-shamir, mirath, mpc-in-the-head, perk, permuted-kernel-problem, post-quantum, secret-sharing, zero-knowledge
- Language: TypeScript
- Homepage: https://systemslibrarian.github.io/crypto-lab-mpcith-sign/
- Size: 93.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# crypto-lab-mpcith-sign
## What It Is
This demo implements MPC-in-the-Head signatures using additive secret sharing,
SHA-256 commitments, Merkle proofs, and the Fiat-Shamir transform for
non-interactive signing. It demonstrates a toy linear relation proof for
knowledge of a witness x where A*x = b (mod q), plus a toy PERK-style
permutation witness flow. The algorithm family is post-quantum and
zero-knowledge oriented, with signature security tied to hash commitments and
the hardness of the underlying statement relation. It is an educational model,
not a production cryptographic implementation.
## When to Use It
- Teaching how interactive identification becomes signatures with Fiat-Shamir.
This demo exposes commit, challenge, and response artifacts directly.
- Explaining additive secret sharing and all-but-one view opening in MPCitH.
The party cards show shares, local outputs, commitments, and hidden-view flow.
- Comparing assumption diversity against lattice-based signatures.
The exhibits contrast MPCitH tradeoffs such as larger signatures.
- Prototyping UI-level understanding of toy PERK-style permutation witnesses.
It shows relation checks and verification outcomes in browser-only TypeScript.
- Not for production key management or compliance claims.
Toy parameters and educational code are not suitable for deployment security.
## Live Demo
https://systemslibrarian.github.io/crypto-lab-mpcith-sign/
The live app lets you split a secret into shares, run simulated party views,
issue a challenge, and verify revealed views in an MPCitH-style round. You can
also run Fiat-Shamir signing traces and a toy PERK sign/verify flow while
adjusting controls such as party count N and field prime q.
## How to Run Locally
```bash
git clone https://github.com/systemslibrarian/crypto-lab-mpcith-sign
cd crypto-lab-mpcith-sign
npm install
npm run dev
```
No environment variables are required.
## Part of the Crypto-Lab Suite
One of 60+ live browser demos at
[systemslibrarian.github.io/crypto-lab](https://systemslibrarian.github.io/crypto-lab/)
- spanning Atbash (600 BCE) through NIST FIPS 203/204/205 (2024).
---
*"Whether you eat or drink, or whatever you do, do all to the glory of God." — 1 Corinthians 10:31*