
Atomic Memory™
Este diretório contém os módulos RTL de referência, imagens FPGA pré-compiladas e scripts de teste TCL opcionais para a primitiva atômica de medição–colapso. Esta primitiva é um mecanismo de hardware de medição–colapso compatível com CMOS que impõe semântica de leitura única: a primeira leitura qualificada retorna o byte armazenado, e o ato de medição aciona deterministicamente um evento de colapso irreversível. Após o colapso, a célula produz apenas saídas ofuscadas ou derivadas de PRNG, garantindo que o valor original não possa ser recuperado. A implementação demonstra divulgação determinística na primeira leitura, controle de acesso condicionado por base e transições de estado atômicas unidirecionais em um banco de células de memória independentes.
Os arquivos .sof fornecidos permitem validação direta de hardware sem quaisquer módulos adicionais de interface de barramento.
Status: Lançamento de Artefato de Pesquisa
Licença: Uso apenas não comercial (veja a licença abaixo)
Patente Pendente: US 19/286,600
Hardware Alvo: Intel Cyclone V (5CSEBA6 / DE-SoC)
| Arquivo / Pasta | Descrição |
|---|---|
fpga/collapse_cell.sv | Célula primitiva central de leitura única usada no artigo |
fpga/collapse_bank.sv | Banco de 1024 células com barramento compartilhado de entropia/ofuscação |
fpga/Atomic1024Bank.sof | Bitstream limpo de 1024 células (sem SignalTap – caminho de gravação mais rápido) |
fpga/SignalTap.sof | Build instrumentado com demonstração automática sem intervenção |
fpga/SignalTap.stp | Arquivo SignalTap pré-configurado – abrir → Executar → observar a temporização do colapso |
fpga/program_clean.bat | Gravação em um clique para Windows (versão limpa) |
fpga/program_clean.sh | Gravação em um clique para Linux (versão limpa) |
fpga/program_signaltap.bat | Gravação em um clique para Windows (demonstração SignalTap) |
fpga/program_signaltap.sh | Gravação em um clique para Linux (demonstração SignalTap) |
tcl/ | Scripts TCL opcionais do System Console para testes automatizados |
images/ | Forma de onda de divulgação em um ciclo + destruição, do artigo associado |
ROADMAP.md | Roteiro do projeto e estágios planejados de desenvolvimento ASIC/FPGA |
LICENSE.md | Licença não comercial |
README.md | Este arquivo |
collapse_cell.svImplementa a primitiva de memória de leitura única (ROOM) por medição–colapso:
INIT carrega valor e basePrincipais estados internos:
basis_valid_qarmed_qcollapsed_qcollapse_bank.svImplementa o array completo de 1024 células. Este módulo fornece:
collapse_celldata_o, collapsed_q, status, etc.)O caminho de RO só fica ativo após o colapso e contribui para o fluxo de saída ofuscado pós-colapso quando habilitado. Ele não afeta a corretude da primeira leitura nem a semântica de colapso.
Atomic1024Bank.sofSignalTap.sofSinais sondados (veja SignalTap.stp):
read_pulsebasis_in[7:0]basis_valid_qarmed_qcollapsed_qdata_o[7:0]valid_out (se presente)tcl/)Esses scripts opcionais são fornecidos para usuários que desejam automatizar interações, conduzir sequências ou reproduzir o fluxo de teste interno.
Exemplos de capacidades incluem:
Esses scripts não dependem de nenhum HDL de interface de barramento incluído neste artefato. Os usuários podem adaptá-los para sua própria interface host, sequenciador GPIO ou fluxos de trabalho do System Console.
Atomic1024Bank.sof ou SignalTap.sofNenhum escravo Avalon-MM ou wrapper IP externo é necessário para usar essas imagens.
Consulte o arquivo completo LICENSE.md.
Aplica-se uma licença de pesquisa não comercial.
Este resumo é apenas informativo. O texto completo em LICENSE.md prevalece.
Se você usar este artefato em trabalhos acadêmicos, cite o artigo associado:
Cite como:
Francis X. Cunnane III. A CMOS Measurement–Collapse Primitive for Ephemeral Secrets in Post-Quantum Cryptography. TechRxiv. December 02, 2025.
https://doi.org/10.36227/techrxiv.176463742.23048082/v3
Exemplo BibTeX:
@misc{cunnane2025measurementcollapse,
author = {Cunnane III, Francis X.},
title = {A CMOS Measurement--Collapse Primitive for Ephemeral Secrets in Post-Quantum Cryptography},
year = {2025},
month = dec,
note = {TechRxiv},
doi = {10.36227/techrxiv.176463742.23048082/v1},
url = {https://doi.org/10.36227/techrxiv.176463742.23048082/v1}
}