iamknownasfesal/octra-hfhe-challenge-recovery — explained in plain English
Analysis updated 2026-05-18
Study a real world example of a cryptographic commitment scheme failing due to missing randomness.
Reproduce a documented ciphertext-only key recovery attack step by step.
Verify a recovered wallet phrase against a public blockchain address and checksum.
Learn how public commitment oracles can leak secret values.
| iamknownasfesal/octra-hfhe-challenge-recovery | allentdan/shape_based_matching | amu2mod/radeonmon | |
|---|---|---|---|
| Stars | 1 | 1 | 1 |
| Language | C++ | C++ | C++ |
| Last pushed | — | 2019-03-01 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | hard | moderate | moderate |
| Complexity | 5/5 | 3/5 | 3/5 |
| Audience | researcher | developer | vibe coder |
Figures from each repo's GitHub metadata at analysis time.
Requires a C++17 compiler with hardware AES and SHA support, plus Python with pynacl for verification.
This repository documents a successful attack against a public cryptography challenge. The challenge, called the Octra HFHE seed challenge, invited people to try to recover a hidden 12 word wallet recovery phrase using only publicly shared files, without access to the private key. This project shows that it can be done, and walks through exactly how. The author found a weakness in how the encryption scheme builds a piece of data called a commitment. A commitment is supposed to let you prove you know a secret value without revealing it, but in this case the commitment was built entirely from public information plus the secret value itself, with no additional hidden randomness added in. That mistake means anyone can guess a possible answer, recompute the commitment using only public data, and check if it matches. If it matches, the guess was correct. This turns something that should protect a secret into a tool for checking guesses about that secret. Because the hidden phrase is made up of common English recovery words from a fixed list of possibilities, and the text is broken into small chunks, the author was able to guess each chunk piece by piece rather than needing to search the entire space at once. Using some clever shortcuts to speed up the guessing, the entire 12 word phrase was recovered on an ordinary laptop in under five minutes. The repository includes the recovered phrase, proof that it matches the intended wallet address, and a signed message proving control of the wallet without ever exposing the recovered phrase publicly in a way that could be used maliciously beyond the challenge itself. It also provides full instructions and source code so others can reproduce the same recovery from scratch, along with technical details of exactly which part of the encryption code contained the flaw. The author includes a clear warning that anyone who runs these tools will recover the same wallet phrase and could move real funds, since this documents a public challenge that explicitly invited this kind of security research.
A writeup and toolkit demonstrating a full recovery of a public wallet challenge's secret phrase from a flawed cryptographic commitment.
Mainly C++. The stack also includes C++, Python, SHA-256.
No license information is stated in the provided README.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly researcher.
This repo across BitVibe Labs
Verify against the repo before relying on details.