GPU simulation of a SHA-256 hash engine inspired by Bitcoin mining ASICs, wired into a RAG pipeline. Pure software; no real ASIC hardware required.
Project description
ASIC-RAG-CHIMERA
GPU simulation of a SHA-256 hash engine inspired by Bitcoin mining ASICs, wired into a RAG pipeline. Pure software; no real ASIC hardware required.
What this is
ASIC-RAG-CHIMERA is a software research artifact. It consists of:
- A GPU-accelerated SHA-256 hash engine implemented in PyTorch that simulates the kind of bulk hashing a Bitcoin-style ASIC would do. It runs on a normal CUDA GPU (or CPU fallback). It is a software simulation, not an ASIC.
- A cryptographic RAG pipeline that indexes documents by SHA-256 tags instead of plaintext embeddings, encrypts blocks with AES-256-GCM, and verifies integrity with a Merkle tree.
- A demonstration workflow with synthetic patient records illustrating how the pipeline could be configured for privacy-sensitive data (see
ASIC-RAG-HEALTH_Validation/). The data is fabricated. This is not a clinical tool and must not be used for medical decision making.
What this is NOT
- Not real ASIC hardware. There is no silicon, no Verilog tape-out, no FPGA bitstream. The "ASIC" in the name refers to the architectural inspiration for the GPU simulator module (
asic_simulator/). - Not a medical device. The health demo uses synthetic records and is illustrative only.
- Not a Bitcoin miner. The SHA-256 engine is used for content-addressed indexing, not proof-of-work.
Installation
pip install asic-rag-chimera
Optional extras:
pip install "asic-rag-chimera[gpu]" # Ensure PyTorch with CUDA is available
pip install "asic-rag-chimera[wandb]" # Experiment tracking
pip install "asic-rag-chimera[dev]" # Tests, build, twine
From source:
git clone https://github.com/Agnuxo1/ASIC-RAG-CHIMERA.git
cd ASIC-RAG-CHIMERA
pip install -e ".[dev]"
Quick start
import os
from asic_simulator import GPUHashEngine, IndexManager, KeyGenerator
from rag_system import DocumentProcessor, QueryEngine
hash_engine = GPUHashEngine()
index_manager = IndexManager()
key_generator = KeyGenerator(master_key=os.urandom(32))
processor = DocumentProcessor()
blocks = processor.create_blocks("Your document content here")
query_engine = QueryEngine(index_manager, hash_engine)
results = query_engine.search("your query", max_results=5)
Or use the integrated facade:
from asic_rag_chimera import ASICRAGSystem
system = ASICRAGSystem(storage_path="./data", master_key=os.urandom(32))
system.ingest("document.txt")
result = system.query("What is the revenue?")
Architecture
┌──────────────┐ text ┌─────────────┐ tag hashes ┌────────────────────┐
│ User query │────────────▶│ LLM (GPU) │─────────────────▶│ GPU SHA-256 engine │
└──────────────┘ └─────────────┘ │ (asic_simulator) │
▲ └──────────┬─────────┘
│ decrypted blocks │ hash lookup
▼ ▼
┌────────────────────────────────────────────────────┐
│ Encrypted block storage (LMDB / AES-256-GCM) │
│ Merkle tree integrity proofs │
└────────────────────────────────────────────────────┘
Running tests and coverage
pytest tests/ -v # 53/53 tests pass
pytest tests/ --cov=asic_simulator --cov=rag_system --cov=asic_rag_chimera --cov-report=term --cov-report=xml
Measured line coverage on the core packages is 57% (1658 statements, 706 missed), written to coverage.xml. Previous READMEs claimed "100%" — that was never measured. The 53 tests all pass; they simply don't exercise every branch of keyword_extractor, query_engine, key_generator, etc.
Security model
| Attack vector | Traditional RAG | ASIC-RAG-CHIMERA |
|---|---|---|
| Disk theft | Plaintext exposure | Encrypted blocks |
| Embedding inversion | Partial recovery | N/A (no embeddings stored) |
| Index enumeration | Knowledge graph exposed | Opaque SHA-256 tags |
| Key capture | Permanent access | 30-second TTL session keys |
| Data tampering | Undetected | Merkle proof verification |
Claims above describe the design. This is a research prototype, not an audited product.
Repository layout
asic_simulator/ GPU SHA-256 engine + tag index + key generator
rag_system/ Document processor, block storage, query engine
asic_rag_chimera.py Integrated facade (ASICRAGSystem)
tests/ 53 pytest tests
benchmarks/ Microbenchmarks for hash and search latency
archive/ Historical artefacts (PDFs, HTML, duplicate dirs) — not shipped
huggingface_space/ HF Space demo app
Citation
@software{angulo_asic_rag_chimera_2026,
author = {Angulo de Lafuente, Francisco},
title = {ASIC-RAG-CHIMERA: GPU Simulation of a SHA-256 Hash Engine for Cryptographic RAG},
year = {2026},
version = {1.0.0},
doi = {10.5281/zenodo.17872052},
url = {https://github.com/Agnuxo1/ASIC-RAG-CHIMERA}
}
See CITATION.cff.
Author
Francisco Angulo de Lafuente — GitHub @Agnuxo1
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file asic_rag_chimera-1.0.0.tar.gz.
File metadata
- Download URL: asic_rag_chimera-1.0.0.tar.gz
- Upload date:
- Size: 46.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
199841c3c379788c2d25c50e356c114ae5313306f38cf6417d74b91b98e04a70
|
|
| MD5 |
3f7128444b87f59740ee47009a9ccb61
|
|
| BLAKE2b-256 |
8502825d217f788ea73a6cfa1e23a4644626ed2f17bc00063ffca464794376ca
|
File details
Details for the file asic_rag_chimera-1.0.0-py3-none-any.whl.
File metadata
- Download URL: asic_rag_chimera-1.0.0-py3-none-any.whl
- Upload date:
- Size: 45.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae5e3387437288b00f81084ec9722145df4b8637f52f1503c03372a016649e09
|
|
| MD5 |
a422714b86ddbd287749e008460975dc
|
|
| BLAKE2b-256 |
a156a77cf8031bd344b1833ee57bd8f62eb41c77ed584e4403ef50cad4357193
|