
Implementación de referencia de autenticación post-cuántica LR+ sobre el contexto de CA WebPKI, con pipeline de corpus, reconstrucción, evaluación y manifiestos de procedencia para investigación reproducible.
Este paquete contiene la implementación de referencia finalizada de LR+, envoltorios de reconstrucción de producción, pruebas y resultados de evaluación generados para la autenticación post-cuántica de contexto cerrado sobre el contexto de CA WebPKI.
El paquete está escrito intencionalmente como un artefacto de presentación en lugar de una instantánea de registro de investigación: los nombres de objetivos, nombres de archivos, nombres de módulos e informes utilizan terminología de implementación estable.
src/lrplus/ Módulos de referencia LR+
scripts/ Descarga de corpus, compilación, reconstrucción, evaluación y comprobaciones
config/ Configuración fijada de reconstrucción y descarga
results/ Salidas de producción generadas utilizadas por el artículo
audit/ Informe de procedencia y manifiesto de hash de salidas
backups/ Manifiesto para la copia de seguridad del corpus de entrada realizada antes de la reconstrucción
data/ccadb_full/ Manifiesto de descarga CCADB y hashes de archivos
working_corpus/ Manifiesto de reconstrucción del corpus para el paquete compacto
tests/ Pruebas de protocolo y consistencia del artefacto
El paquete compacto contiene manifiestos y resultados generados. Una regeneración completamente nueva requiere acceso a internet y acceso al pipeline existente del corpus WebPKI que proporciona scripts/normalize_ccadb.py y scripts/build_graph.py.
Utilice Python 3.9 o superior. Una configuración típica es:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
El adaptador ML-DSA-44 utiliza pqcrypto==0.4.0. Si ese backend no está disponible, la prueba real de ML-DSA se omite mientras el resto de las pruebas de referencia siguen ejecutándose. Para la compuerta de verificación de producción, instale todas las dependencias desde pyproject.toml.
El envoltorio CCADB delega la normalización y construcción de grafos al pipeline existente del corpus WebPKI. Establezca uno de los siguientes antes de ejecutar una compilación completa:
export WEBPKI_PIPELINE_ROOT=/path/to/existing_webpki_pipeline
o pase la ruta a través de Make:
make verify PIPELINE_ROOT=/path/to/existing_webpki_pipeline
La raíz del pipeline debe contener:
scripts/normalize_ccadb.py
scripts/build_graph.py
El comando único es:
make verify PIPELINE_ROOT=/path/to/existing_webpki_pipeline
Realiza las siguientes etapas en orden.
make backup-corpus
Esto copia los subdirectorios actuales working_corpus/{raw,normalized,graph,outputs_scc_repaired}, cuando están presentes, en backups/input_corpus_<timestamp>/ y escribe manifest.json, file_inventory.csv y SHA256SUMS.
make download-ccadb
Esto utiliza config/ccadb_download.yaml y escribe:
data/ccadb_full/download_manifest.json
data/ccadb_full/SHA256SUMS
El manifiesto registra la etiqueta crtsh/ccadb_data seleccionada, el commit, el hash del registro de certificado V5, el rango anual de archivos PEM y el hash de entrada de confianza raíz.
make build-corpus PIPELINE_ROOT=/path/to/existing_webpki_pipeline
El envoltorio prepara los archivos CCADB descargados bajo working_corpus/raw/ y luego invoca el normalizador y el constructor de grafos del pipeline existente. Escribe:
working_corpus/rebuild_manifest.json
working_corpus/normalized/certificates.parquet
working_corpus/normalized/records.parquet
working_corpus/outputs_scc_repaired/graph.json
make test
La suite de pruebas cubre identificadores canónicos, análisis de cable caliente, vinculación de terminal actual, canonicalización de flujo tipado, negociación, deltas de actualización de rango, serialización de estado autenticado, esquema de salida de reconstrucción e integración ML-DSA cuando el backend está instalado.
make reconstruct
Esto lee config/reconstruction.yaml y emite una fila por contexto de ruta/vista seleccionado:
results/path_view_trace.csv
results/typed_dependency_records.csv
results/view_root_sets.csv
results/reconstruction_gate.json
Cada fila de ruta registra la vista, los IDs de certificado concretos, el linaje seleccionado, el ID de ruta, las referencias de dependencia tipadas, los tipos de dependencia, los bytes de cable caliente, los bytes de línea base y los resúmenes de vinculación de terminal.
make evaluate
Esto calcula:
results/global_summary.json
results/per_view_summary.csv
results/per_view_dependency_records.csv
results/catalog_summary.csv
results/lifecycle_per_view.csv
results/byte_accounting.json
Las fórmulas de contabilidad de bytes son:
LR+ warm profile-hint: 8 + 48*m
SPB: 2588 + 209*m
Profile S: 3569 + 904*m
Full per-dependency PQ: m*(2420 + 209)
Range catch-up delta: 2584 + 264*k_total
Consecutive deltas: r*(2584 + 264*k_per_epoch)
make check
Esto verifica las salidas requeridas, los manifiestos de fuentes fijadas, las fórmulas de bytes por fila, los IDs de ruta, los resúmenes de terminal, la cobertura de registros de dependencia, las vistas configuradas, la serialización de estado por vista y la disponibilidad del catálogo. Escribe:
results/check_results.json
El estado debe ser PASS.
make freeze
Esto escribe:
audit/implementation_manifest.json
El manifiesto registra información de plataforma, metadatos de fuentes fijadas, metadatos de compilación del corpus y hashes SHA-256 de todos los archivos de resultados generados.
Después de que el corpus ya se haya compilado, ejecute:
make verify-fast
Esto omite las etapas de copia de seguridad, descarga y compilación del corpus y vuelve a ejecutar pruebas, reconstrucción, evaluación, comprobaciones y congelación del manifiesto desde el corpus local actual.
Las salidas generadas incluidas informan:
contextos de ruta/vista: 44,912
linajes físicos de CA distintos: 16,858
registros de dependencia tipados: 72,020
m50 / m95 / mmax globales: 6 / 16 / 18
LR+ warm profile-hint: 296 / 776 / 872 bytes
SPB: 3,842 / 5,932 / 6,350 bytes
Profile S: 8,993 / 18,033 / 19,841 bytes
PQ completo por dependencia: 15,774 / 42,064 / 47,322 bytes
estado retenido: 16,150,580 bytes
punto de control firmado: 16,160,724 bytes
Los resúmenes por vista están en results/per_view_summary.csv.
La implementación utiliza nombres LR+ finalizados para archivos fuente, scripts, objetivos, configuración e informes. Las salidas criptográficas no se editan manualmente más allá de los metadatos textuales estables. Las huellas digitales hexadecimales de certificados, las referencias de registros y los resúmenes pueden contener naturalmente subcadenas arbitrarias; estos son datos, no terminología de proceso.