Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samuelschlesinger/graph-iso-nizkp
NIZKPs of Graph Isomorphism.
https://github.com/samuelschlesinger/graph-iso-nizkp
Last synced: 20 days ago
JSON representation
NIZKPs of Graph Isomorphism.
- Host: GitHub
- URL: https://github.com/samuelschlesinger/graph-iso-nizkp
- Owner: SamuelSchlesinger
- Created: 2023-11-04T15:51:23.000Z (about 1 year ago)
- Default Branch: dev
- Last Pushed: 2023-11-04T17:26:01.000Z (about 1 year ago)
- Last Synced: 2024-10-27T19:10:17.929Z (2 months ago)
- Language: Rust
- Size: 3.91 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Non-Interactive Proof of Graph Isomorphism
To create a non-interactive proof of graph isomorphism, we can use
the Fiat-Shamir transform.## Prover
Given graphs A and B, we begin by generating M random isomorphic graphs to A, a
vector C of graphs. We create a binary string S consisting of the binary
representation of A, B, and all of the Cs. We use a one-way function to map
this into a bit-vector V such that if V[i] then we reveal an isomorphism from
C[i] to A, else we reveal an isomorphism from C[i] to B. In the proof, we
include A, B, all of the Cs, and the array of isomorphisms in question, I.## Verifier
The verifier generates V, then confirms that if V[i], then I[i] maps C[i] to A,
else I[i] maps C[i] to B.## Correctness
If the prover does know the isomorphism between A and B, then the resulting
proof is correct with probability 1. If the prover does not know the isomorphism,
then they will need to choose their Cs such that the string V allows them to show
an isomorphism.