Author: Cody Michael Allison
CVE Status: Pending MITRE assignment (RESERVED)
Embargo duration: 180 days from Day 0
Publication target: IACR Crypto 2027 (submission ~Feb 2027)
- Go to https://orcid.org/register
- Create profile: name, institution ("Independent Researcher"), email
- Make profile public
- Note your 16-digit ORCID:
XXXX-XXXX-XXXX-XXXX - Verify:
curl https://pub.orcid.org/v3.0/0009-0007-7239-6760/record -H "Accept: application/json"→ should return your public profile
export PTOL_RESEARCHER_ORCID="XXXX-XXXX-XXXX-XXXX"
export PTOL_RESEARCHER_NAME="Cody Michael Allison"
export PTOL_RESEARCHER_EMAIL="the.wandering.god@gmail.com"Add to ~/.bashrc or ~/.profile.
export PTOL_SMTP_HOST="smtp.gmail.com"
export PTOL_SMTP_PORT="587"
export PTOL_SMTP_USER="the.wandering.god@gmail.com"
export PTOL_SMTP_PASS="[Gmail app-specific password]"Gmail: Settings → Security → 2-Step Verification → App passwords → Mail. Use the 16-character app password, NOT your Gmail password.
- Go to https://nvd.nist.gov/developers/request-an-api-key
- Enter email, request key
- Key arrives by email within minutes
export PTOL_NIST_API_KEY="[key from email]"cd /media/rendier/0123-4567/Ainulindale/AddPapers/CryptoVulnerability
python3 -c "
from ptorrent_tools import * # or adjust path to PTorrent
from skills.disclosure import DisclosureNotifier
notifier = DisclosureNotifier()
result = notifier.pre_check('sedenion zero-divisor ECC elliptic curve')
print(result['note'])
print('Existing CVEs:', result['existing_cves'])
"If any existing CVEs match: reference them in your filing. Do NOT file a duplicate. Expected: no existing CVEs on sedenion zero-divisor ECC attacks.
/media/rendier/0123-4567/Ainulindale/AddPapers/CryptoVulnerability/paper.tex
Fill in:
- Your ORCID in author block
-
[FILE_HASH]in Appendix C — runpython3 secp256k1_locus.py --generator-onlyfirst -
[REPORT_HASH]— generated by PTorrent notifier -
[EMBARGO_DATE]— Day 0 + 180 days -
[CVE_ID]— fill after MITRE assigns (RESERVED initially)
Compile:
pdflatex paper.tex && bibtex paper && pdflatex paper.tex && pdflatex paper.texThe PDF is your primary attachment to all agency emails.
cd /media/rendier/0123-4567/PTorrent
python3 - <<'EOF'
import sys, os, time
sys.path.insert(0, 'android/PtolemySeeder/app/src/main/python')
from ptorrent_chain import PTorrentChain
chain = PTorrentChain(store_path='ptorrent_chain.json')
# Hash the secp256k1 locus code
file_hash = PTorrentChain.hash_file(
'/media/rendier/0123-4567/Ainulindale/AddPapers/CryptoVulnerability/secp256k1_locus.py'
)
print('File hash:', file_hash)
embargo_date = (time.gmtime(time.time() + 180*86400))
embargo_str = time.strftime('%Y-%m-%d', embargo_date)
print('Embargo date:', embargo_str)
chain.classify(
file_hash = file_hash,
classification = 'dual-use',
level = 3,
embargo_until = embargo_str,
contact_orcid = os.environ['PTOL_RESEARCHER_ORCID'],
peer_id = 'ORCID:' + os.environ['PTOL_RESEARCHER_ORCID'],
disclosure_ref = 'NIST-PRE-DISCLOSURE-2026-UDEO-SECP256K1',
)
chain.commit()
print('CLASSIFY transaction committed')
print('Tip hash:', chain._chain[-1].hash)
EOFRecord the file_hash and embargo_date. You will need them throughout.
# Run this and SAVE the output — it's your STIX attachment
import sys
sys.path.insert(0, '/media/rendier/0123-4567/PTorrent/android/PtolemySeeder/app/src/main/python')
from skills.disclosure.stix_builder import STIXBuilder
import os, json
builder = STIXBuilder(
researcher_orcid = os.environ['PTOL_RESEARCHER_ORCID'],
researcher_name = os.environ['PTOL_RESEARCHER_NAME'],
researcher_email = os.environ['PTOL_RESEARCHER_EMAIL'],
)
bundle = builder.build_disclosure_bundle(
vuln_name = 'UDEO: Universal Divisor Exploitation Operations — secp256k1 Zero-Divisor Locus',
vuln_description = '''
The T_n/GF(2) Frobenius Theorem (proved): for any n=2^k, every element x of the
Cayley-Dickson algebra T_n/GF(2) satisfies x^2 in {0, e_0}. Applied to secp256k1:
every element of the field Fp (secp256k1 prime) is either nilpotent (x^2=0) or
involutory (x^2=e_0) in T256/GF(2). The generator point satisfies Gx^2 = Gy^2 = e_0.
The modular reduction (carries mod p) is the sole algebraic barrier.
Attack class UDEO (Universal Divisor Exploitation Operations): inputs crafted to
drive ECC state toward the Cayley-Dickson zero-divisor locus. Demonstrated
retrospectively on SHAttered (SHA-1). ECC threat model for secp256k1 formalized.
Whether polynomial-time implementation exists: open problem.
'''.strip(),
file_hash = '[FILE_HASH_FROM_STEP_2]',
chain_ref = '[TIP_HASH_FROM_STEP_2]',
mitigation = '''
Immediate: Accelerate migration to NIST PQC standards (ML-KEM, ML-DSA, SLH-DSA).
Medium: Audit secp256k1 implementations for ZD-adjacent parameter inputs.
Long: Sedenion-aware security proofs for future ECC curve selection.
CRYSTALS-Kyber, Dilithium, FALCON, SPHINCS+ are not assessed as affected.
'''.strip(),
embargo_until = '[EMBARGO_DATE_FROM_STEP_2]',
cvss_score = 7.5,
affected_systems = [
'secp256k1 (Bitcoin, Ethereum)',
'OpenSSL ECDSA/ECDH',
'BoringSSL EC operations',
'libsodium Ed25519/X25519',
'NIST P-256, P-384, P-521 (under investigation)',
],
)
json_out = builder.to_json(bundle)
with open('stix_bundle_udeo.json', 'w') as f:
f.write(json_out)
import hashlib
report_hash = hashlib.sha256(json_out.encode()).hexdigest()
print('STIX bundle written to stix_bundle_udeo.json')
print('Report hash:', report_hash)Record the report_hash. Fill it into paper.tex [REPORT_HASH].
All four agencies on the same day. Same hour if possible.
import sys, os
sys.path.insert(0, '/media/rendier/0123-4567/PTorrent/android/PtolemySeeder/app/src/main/python')
from ptorrent_chain import PTorrentChain
chain = PTorrentChain(store_path='/media/rendier/0123-4567/PTorrent/ptorrent_chain.json')
file_hash = '[FILE_HASH_FROM_STEP_2]'
report_hash = '[REPORT_HASH_FROM_STEP_3]'
peer_id = 'ORCID:' + os.environ['PTOL_RESEARCHER_ORCID']
for agency, method in [
('CISA', 'email'),
('NIST', 'email'),
('MITRE', 'email'),
('CERTCC', 'email'),
]:
chain.notify(
file_hash = file_hash,
agency = agency,
report_hash = report_hash,
method = method,
peer_id = peer_id,
)
print(f'NOTIFY/{agency} staged')
chain.commit()
print('All NOTIFY transactions committed')
print('Chain is the authoritative Day 0 timestamp — regardless of email delivery')The chain timestamp is now your legal Day 0 record. Do not skip this step.
To: vuln@cisa.dhs.gov
CC: nvd@nist.gov
Subject: [COORDINATED VULNERABILITY DISCLOSURE] UDEO Sedenion ZD Attack on ECC | Embargo [DATE] | Pre-Publication
Attach:
stix_bundle_udeo.jsonpaper.pdf(compiled LaTeX, marked EMBARGO)- Export of PTorrent chain showing CLASSIFY + NOTIFY transactions
Body: Use the template in wiki/Agency-Interface.md in the PTorrent repo, filling in:
- Your name and ORCID
- File hash and report hash
- Embargo date
- The technical description from Section 2 of paper.tex (enough for assessment, not a working exploit)
To: cve@mitre.org
Subject: CVE Request — UDEO Sedenion Zero-Divisor ECC Attack | Pre-Publication | Embargo [DATE]
Body:
Dear MITRE CVE Team,
CVE ASSIGNMENT REQUEST
PRODUCT: secp256k1 ECC implementations (OpenSSL, BoringSSL, libsodium, et al.)
VULNERABILITY TYPE: CWE-327 (Broken Cryptographic Algorithm), CWE-310
CVE DESCRIPTION (for public record):
The T_n/GF(2) Frobenius Theorem establishes that every element of the secp256k1
prime field Fp is either nilpotent or involutory under natural embedding in the
256-dimensional Cayley-Dickson algebra T256/GF(2). The UDEO (Universal Divisor
Exploitation Operations) attack class uses this universal zero-divisor boundary
to attack ECC group law operations via adversarially-crafted field element pairs.
The modular reduction (carries mod p) is the sole algebraic barrier. Whether a
polynomial-time attack exists is an open problem. Discovered by Cody Michael
Allison (ORCID: 0009-0007-7239-6760), 2026. Coordinated disclosure via CISA.
EMBARGO REQUEST:
Please hold in RESERVED state until [DATE] or until I authorize publication.
CISA: Filed simultaneously with CISA (vuln@cisa.dhs.gov).
NIST: Filed simultaneously with NIST (nvd@nist.gov).
REFERENCE: "UDEO: Universal Divisor Exploitation Operations" — IACR Crypto 2027 (target)
Cody Michael Allison
ORCID: https://orcid.org/0009-0007-7239-6760
the.wandering.god@gmail.com
Attach: stix_bundle_udeo.json
To: vulnreport@cert.org
Subject: UDEO: Sedenion Zero-Divisor Attack on ECC | Coordinated Disclosure | Embargo [DATE]
Shorter version of the CISA email. Reference the CISA filing.
Attach: stix_bundle_udeo.json
CISA will handle vendor notification. But send courtesy heads-up to:
openssl-security@openssl.org — OpenSSL (secp256k1, EC operations)
security@mozilla.org — Mozilla NSS
g.co/vulnz — Google VRP (BoringSSL / Chrome / Android)
security@signal.org — Signal Protocol
security@bitcoin.org — Bitcoin Core
security@ethereum.org — Ethereum Foundation
Subject: [HEADS UP - COORDINATED DISCLOSURE IN PROGRESS] ECC Algebraic Vulnerability
Body: 2 sentences only. "A coordinated disclosure regarding an algebraic property of ECC implementations has been filed with CISA (ref: [CISA tracking #]). You will receive formal notification through CISA coordination. No further detail before embargo lifts."
Do NOT include technical details. Do NOT attach the STIX bundle or paper. This is a heads-up, not the disclosure itself.
| Agency | Expected response | Action if none |
|---|---|---|
| CISA | Acknowledgment + tracking # within 5 business days | Follow up at vuln@cisa.dhs.gov with chain tip hash |
| NIST | Routes to MITRE, may not respond directly | None required |
| MITRE | CVE-YYYY-NNNNN assigned (RESERVED) within 2 weeks | Follow up at cve@mitre.org |
| CERT/CC | Acknowledgment within 1 week | Follow up at vulnreport@cert.org |
When MITRE assigns CVE-YYYY-NNNNN:
- Fill
[CVE_ID]inpaper.tex - Update PTorrent chain:
chain.classify(
file_hash = file_hash,
classification = 'dual-use',
level = 3,
embargo_until = embargo_date,
contact_orcid = your_orcid,
peer_id = peer_id,
disclosure_ref = 'CVE-YYYY-NNNNN', # fill in real CVE
)
chain.commit()- Note CISA tracking number in your records.
If CISA or NIST refers specific researchers to you for verification:
For each researcher:
- Verify their ORCID at orcid.org
- Confirm institutional affiliation (NIST, university security lab, major vendor)
- Share the paper PDF under embargo terms
- Record on chain:
warning_text = "This is pre-disclosure material under 180-day NIST embargo..."
chain.acknowledge(
file_hash = file_hash,
orcid_id = researcher_orcid,
warning_text = warning_text,
peer_id = peer_id,
)
chain.commit()CISA manages vendor coordination. Your job:
- Respond to technical questions from CISA or vendors within 48 hours
- Do NOT share the paper publicly
- Do NOT post to arxiv, IACR ePrint, or any preprint server
- Do NOT present at any conference before Day 180
- Do NOT post on social media about the finding
- Do NOT discuss with colleagues not formally included in the disclosure
Around Day 90, ask CISA:
- Have major vendors (OpenSSL, BoringSSL, libsodium) been notified?
- Are patches in development?
- Is the Day 180 timeline still achievable?
If vendors need more time: you can negotiate an extension (maximum 90 additional days
is typical). Any extension goes on the PTorrent chain as a new CLASSIFY transaction
with updated embargo_until.
While waiting, prepare:
paper.tex — final version with CVE number filled in
paper.pdf — compiled
secp256k1_locus.py — supplement (code)
stix_bundle_udeo.json — supplementary material (disclosure record)
IACR Crypto 2027 submission system: https://submit.iacr.org
Deadline: typically first Tuesday of February (check IACR website for 2027 date)
Format: LNCS, PDF, max 30 pages + appendices
Email CISA 30 days before the planned disclosure date:
- "We are on track for disclosure on [DATE]. Please confirm patch availability."
- Get written confirmation that major vendors have patches deployed or scheduled.
Prepare in advance, DO NOT POST until Day 180:
- Final paper PDF
- IACR ePrint submission (ready to submit, not submitted)
- Disclosure blog post (if desired)
- Social media statement (2 sentences, factual)
- PTorrent DISCLOSE transaction (staged but not committed)
chain.disclose(
file_hash = file_hash,
prev_classification = 'dual-use',
new_classification = 'public',
peer_id = peer_id,
disclosure_ref = 'CVE-YYYY-NNNNN',
)
chain.commit()
print('Embargo lifted. Classification: public.')Email cve@mitre.org:
Subject: CVE-YYYY-NNNNN — Authorizing Publication
Dear MITRE CVE Team,
Please publish CVE-YYYY-NNNNN. The 180-day embargo period has elapsed.
The coordinated disclosure is complete.
Cody Michael Allison
ORCID: https://orcid.org/0009-0007-7239-6760
https://eprint.iacr.org/submit
Upload paper.pdf.
Category: Cryptanalysis or Public-key cryptography
https://submit.iacr.org
Submit according to conference requirements.
Reference the ePrint preprint.
Update the PTorrent README or wiki with a note: "The UDEO disclosure (CVE-YYYY-NNNNN) was the first use of the RDOP protocol. Chain record: [TIP_HASH]. Paper: [EPRINT_URL]."
Update Ainulindale TODO.md and paper status:
- Mark D15 (white hat paper) as published
- Add ePrint URL and CVE number
- Update
AddPapers/CryptoVulnerability/README.mdwith status
Add the paper to your ORCID works:
- Login to orcid.org
- Add Works → Search & Link
- Add the ePrint DOI (IACR ePrint assigns a DOI)
Open a PR to the PTorrent repo adding:
- The UDEO case study to
wiki/Responsible-Disclosure-Protocol.md - The NOTIFY/DISCLOSE transaction chain as an example
- The STIX bundle as a template (sanitized of personal details)
Day -7 Finalize paper draft, ORCID ready, SMTP configured
Day -3 Run secp256k1_locus.py, record hashes
Day -1 STIX bundle built, CLASSIFY chain transaction committed
Day 0 NOTIFY chain transactions committed
Email CISA, NIST, MITRE, CERT/CC — all same day
Courtesy heads-up to OpenSSL, BoringSSL, Signal, etc.
Day 1-5 CISA acknowledgment expected
Day 7-14 MITRE CVE assignment (RESERVED status)
Day 30 CISA vendor notification complete
Day 30-90 Vendor patch development
Day 90 Status check with CISA
Day 90-150 Patch testing and deployment
Day 150 30-day countdown confirmation with CISA
Day 180 DISCLOSE transaction
Authorize MITRE CVE publication
Submit to IACR ePrint
Submit to IACR Crypto 2027 (if deadline alignment permits)
Day 180+ NVD enriches CVE record
ORCID works entry
PTorrent documentation update
If at any point:
- You discover active exploitation in the wild → contact CISA immediately, negotiate immediate disclosure regardless of embargo
- A vendor refuses to patch → consult CISA; 90-day limit is standard; after 90 days unresponsive, disclosure can proceed without patch
- Another researcher independently discovers and discloses → notify CISA, coordinate simultaneous disclosure; the PTorrent chain establishes your Day 0 priority unambiguously
This checklist and the paper.tex, stix_bundle_udeo.json, and secp256k1_locus_results.md are committed to the Ainulindale repo. The PTorrent chain holds the disclosure timeline.
Neither document nor code should be modified after the Day 0 filing without recording the modification on the chain.
White Hat. Responsible Disclosure. Period. Full Stop.