Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
quantum-zk-proof-poc — Proof-of-Concept-Code zum Überwinden von Googles ZK-Beweis der Quantenkryptoanalyse | Kitploit
Tools/GitHubGitHub/trailofbits/quantum-zk-proof-poc
SchwachstellenanalyseExploitationReverse EngineeringKryptographiePapers & ForschungLernen & Bildung
GitHubtrailofbits/quantum-zk-proof-poc

quantum-zk-proof-poc

Proof-of-Concept-Code zum Überwinden von Googles ZK-Beweis der Quantenkryptoanalyse

Repository anzeigen
15vor 4 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

PoC zum Brechen von Googles Zero-Knowledge-Beweis der Quantenkryptanalyse

Dieses Repository enthält Ressourcen für den Trail of Bits Blogbeitrag, der beschreibt, wie wir Googles Zero-Knowledge-Beweis widerlegt haben, dass sie einen hocheffizienten Quantenschaltkreis für die Elliptische-Kurven-Kryptanalyse besitzen. Es enthält unseren gefälschten Beweis, Anweisungen zur Verifikation und Code zur Erzeugung des Quantenschaltkreises, der Schwachstellen im ungepatchten zkVM-Simulatorcode ausnutzt.

Das vollständige Proof-Binär befindet sich hier, und die Ergebnisse im Vergleich zwischen Googles Beweisen und unserem finden Sie unten.

RessourcentypGoogles Low-GateGoogles Low-QubitUnser Beweis
Gesamtoperationen17,000,00017,000,0008,300,000
Anzahl Qubits1,4251,1751,164
Toffoli-Anzahl2,100,0002,700,0000

Eine Zusammenfassung des Beweises ist wie folgt.

Schaltkreis-SHA-256-Hash: 0x7efe1f62bb14a978322ab9ed41d670fc0fe0f211331032615c910df5a540e999

Groth16-Beweis-Bytes: 0x0e78f4db0000000000000000000000000000000000000000000000000000000000000000008cd56e10c2fe24795cff1e1d1f40d3a324528d315674da45d26afb376e8670000000000000000000000000000000000000000000000000000000000000000024ac7f8dd6b1de6279bcce54e8840d8eb20d522bf27dedd776046f6590f33add217db465201c63724e6b460641985543d2b79c3c54daeea688581676a786aafc1dba8604a361acdd9809e268b6d8bc73943a713bb0ed0d96221f73d26def6ea4041d05b077523d9351a48b2ecd984c686b6473df69d20a24296d0a1cba3cdbe92eb13a7cc0ecd92f27f7bf23f9ac859d4293e17216dcbd85d1c7f60a52f65a9d02faef077336acd39e845d534200b575b029d6e3f0afb4f90815557233eab70b0fe88919834dd9beb90d47241f1490dc202e0dce44e4894982b07073c8d4426513732d79e9af9913b254aa29471e1a98fa1b43a1886afb5dbd36988153217aa2

Verifikationsschlüssel: 0x00ca4af6cb15dbd83ec3eaab3a0664023828d90a98e650d2d340712f5f3eb0d4

Verifikationsschritte

Google stellte Skripte zur Verifikation ihrer ZK-Beweise in einem Zenodo-Datensatz zur Verfügung. Unser Angriff zielt auf Version 1 ab, und Version 2 enthält Patches. Anweisungen zur Installation der Abhängigkeiten finden Sie in docs/getting_started.md. Die Umgebung erfordert Rust, Go und optional Docker. Befehle zur Verifikation finden Sie am Ende von run_proofs.sh. Googles Beweis-Artefakte befinden sich im Verzeichnis proofs/, und unser Beweis-Artefakt befindet sich in proof_trailofbits.bin.

root@kitploit:~
# Verify Google's proofs
cargo run --release -p verifier -- \
    --vkey proofs/vkey.bin --proof proofs/low_toffoli/proof_9024.bin
cargo run --release -p verifier -- \
    --vkey proofs/vkey.bin --proof proofs/low_qubits/proof_9024.bin
# Verify our proof
cargo run --release -p verifier -- \
    --vkey proofs/vkey.bin --proof proof_trailofbits.bin

Die Ausgabe des letzten Befehls umfasst Folgendes.

root@kitploit:~
Successfully verified Groth16 SNARK proof.
Circuit hash commitment: 0x7efe1f62bb14a978322ab9ed41d670fc0fe0f211331032615c910df5a540e999
Demanded Number of tests: 9024
Demanded Qubit count: 1164
Demanded Average non-Clifford count: 0
Demanded Total ops: 8300000

Die Verifikationsbefehle prüfen die ZK-Beweise gegen den Verifikationsschlüssel, der eine kompakte kryptografische Darstellung des zkVM-Gastprogramms ist. Alternativ können Sie --elf proofs/zkp_ecc-program verwenden, um dem Verifier das ELF-Binär des Gastprogramms bereitzustellen. Wenn Sie dieses Flag vollständig weglassen, verwendet der Verifier einen Docker-Container, um das Gastprogramm-Binär aus dem Quellcode in program/ neu zu erstellen.

Exploit-Schritte

Das Ausführen von gen_secp256k1_tob.py erzeugt ein 142 MB großes Kickmix-Skript mit dem Namen ec_secp256k1_add_into.kmx. Um den 0-Toffoli-Beweis zu erreichen, verwenden Sie prove.rs.diff, um prover/prove.rs im Zenodo-Repository zu patchen. Dies modifiziert nicht vertrauenswürdigen Code, der außerhalb der zkVM läuft, um die Serialisierung des Kickmix-Schaltkreises zu manipulieren.

Anweisungen zur Beweiserzeugung befinden sich im Zenodo-Repository. Wir folgten den Anweisungen in docs/sp1_cluster_deployment_guide.md auf einer Cloud-Maschine mit 4 NVIDIA H100 GPUs und führten den folgenden Befehl aus, um den Beweis zu erzeugen.

root@kitploit:~
./run_proofs.sh --num-tests 9024 --kmx "ec_secp256k1_add_into.kmx" --qubit-counts 1164 --toffoli-counts 0 --total-ops 8300000 --proving-mode "multi-gpu" > proofs/ec_secp256k1_add/log_run.out 2>&1 &

Die Erzeugung des gefälschten Beweises dauerte etwa 4 Stunden.

Tool herunterladen