{"id":29599452,"url":"https://github.com/codenlighten/bitcoin_steganography_findings_2025","last_synced_at":"2025-08-22T03:21:23.203Z","repository":{"id":282924054,"uuid":"950112878","full_name":"codenlighten/bitcoin_steganography_findings_2025","owner":"codenlighten","description":"bitcoin_steganography_findings_2025","archived":false,"fork":false,"pushed_at":"2025-03-17T16:49:52.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-17T17:45:11.127Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codenlighten.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-17T16:44:36.000Z","updated_at":"2025-03-17T16:49:55.000Z","dependencies_parsed_at":"2025-03-18T22:15:17.974Z","dependency_job_id":null,"html_url":"https://github.com/codenlighten/bitcoin_steganography_findings_2025","commit_stats":null,"previous_names":["codenlighten/bitcoin_steganography_findings_2025"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codenlighten/bitcoin_steganography_findings_2025","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenlighten%2Fbitcoin_steganography_findings_2025","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenlighten%2Fbitcoin_steganography_findings_2025/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenlighten%2Fbitcoin_steganography_findings_2025/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenlighten%2Fbitcoin_steganography_findings_2025/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codenlighten","download_url":"https://codeload.github.com/codenlighten/bitcoin_steganography_findings_2025/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codenlighten%2Fbitcoin_steganography_findings_2025/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266112314,"owners_count":23878022,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-20T11:07:01.246Z","updated_at":"2025-07-20T11:07:01.870Z","avatar_url":"https://github.com/codenlighten.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PDF Font Stream Steganography: Technical Reproduction Study\n\nBy Gregory J. Ward  \nSmartLedger Research (smartledger.solutions)  \nMarch 17, 2025\n\n## Disclaimers and Legal Notices\n\n### Research Purpose\nThis research is conducted for academic and educational purposes only. The techniques described herein are intended to demonstrate technical feasibility and advance the understanding of PDF document analysis. This research does not encourage or endorse any unauthorized modification of existing documents.\n\n### No Investment Advice\nNothing in this repository constitutes investment, legal, or tax advice. The information provided is purely technical in nature and should not be interpreted as commentary on any digital asset's value or potential future performance.\n\n### Bitcoin Whitepaper Analysis\nThis research analyzes technical aspects of the Bitcoin whitepaper's PDF structure. It does not make claims about the document's authenticity, authorship, or implications for the Bitcoin protocol or network.\n\n### Limitation of Liability\nSmartLedger Research provides this information \"as is\" without warranty of any kind. We make no representations about the accuracy, reliability, completeness, or timeliness of the information provided.\n\n### Usage Restrictions\nWhile this repository is open source under the MIT License, any commercial use or implementation of these techniques should be conducted with appropriate legal consultation.\n\n## Overview\n\nThis repository contains tools and documentation for reproducing and verifying the font stream steganography technique discovered in the Bitcoin whitepaper. Our research demonstrates the technical feasibility of embedding identifiers within PDF font streams while maintaining document functionality and surviving format conversions.\n\n## Key Findings\n\n1. **Pattern Structure**: We identified and reproduced the specific byte sequence structure:\n   ```\n   Offset   00  01  02  03  04  05  06  07    ASCII\n   ------   6b  XX  7d  e8  XX  b4  17  XX    k.}.X..X\n   ```\n   where:\n   - `0x6b` serves as a marker byte\n   - `XX` positions contain identifier letters\n   - `0x7d`, `0xe8`, `0xb4`, `0x17` are consistent separator bytes\n\n2. **Technical Feasibility**: Successfully demonstrated:\n   - Pattern injection into PDF font streams\n   - Document functionality preservation\n   - Pattern survival through OpenOffice conversion\n   - Metadata manipulation\n\n## Repository Contents\n\n- `analysis.md`: Detailed technical analysis of the steganographic technique\n- `create_steg.py`: Pattern creation and injection tool\n- `convert_through_oo.py`: OpenOffice conversion utility\n- `demo.tex`: LaTeX demonstration document\n- `requirements.txt`: Python dependencies\n\n## Reproduction Steps\n\n### Prerequisites\n```bash\n# Install required packages\nsudo apt-get install texlive-xetex unoconv\npip install -r requirements.txt\n```\n\n### Steps to Reproduce\n\n1. **Generate Base PDF**\n   ```bash\n   xelatex demo.tex\n   ```\n\n2. **Create Steganographic Pattern**\n   ```bash\n   python3 create_steg.py\n   ```\n\n3. **Convert Through OpenOffice**\n   ```bash\n   python3 convert_through_oo.py\n   ```\n\n### Verification\n\nThe process generates three PDFs:\n1. `demo.pdf`: Original LaTeX-generated PDF\n2. `demo_steg.pdf`: PDF with injected pattern\n3. `demo_final.pdf`: OpenOffice-processed PDF with re-injected pattern\n\nVerify pattern presence using:\n```bash\npython3 create_steg.py --verify demo_final.pdf\n```\n\n## Technical Details\n\n### Pattern Injection\nThe steganographic pattern is injected into the PDF's font stream using a carefully structured byte sequence that preserves font metrics and document functionality. The pattern consists of:\n\n1. Marker byte (`0x6b`)\n2. Three identifier bytes (e.g., 'G', 'J', 'W')\n3. Four separator bytes (`0x7d`, `0xe8`, `0xb4`, `0x17`)\n\n### OpenOffice Processing\nTo ensure document authenticity, we process the PDF through OpenOffice, which:\n1. Strips the original font streams\n2. Adds OpenOffice metadata\n3. Requires pattern re-injection\n\n## Tools and Dependencies\n\n- Python 3.10+\n- XeLaTeX\n- OpenOffice/LibreOffice\n- unoconv\n- Required Python packages:\n  - pikepdf\n  - PyPDF2\n  - numpy\n  - matplotlib\n\n## Research Applications\n\nThis research demonstrates:\n1. Technical feasibility of PDF steganography\n2. Pattern survival through document processing\n3. Metadata manipulation techniques\n4. Font stream integrity preservation\n\n## Citation\n\nWhen referencing this work, please cite:\n```\nWard, G.J. (2025). \"PDF Font Stream Steganography: Technical Reproduction Study\"\nSmartLedger Research, March 2025.\n```\n\n## License\n\nThis research is provided for academic and verification purposes only. All rights reserved.\n\n---\nGregory J. Ward  \nPrincipal Researcher  \nSmartLedger Research  \nhttps://smartledger.solutions\n# bitcoin_steganography_findings_2025\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodenlighten%2Fbitcoin_steganography_findings_2025","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodenlighten%2Fbitcoin_steganography_findings_2025","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodenlighten%2Fbitcoin_steganography_findings_2025/lists"}