本包包含最终版 LR+ 参考实现、生产重建包装器、测试以及针对 WebPKI CA 上下文中的上下文封闭后量子认证生成的评估输出。
该包有意作为提交工件而非研究日志快照编写:目标名称、文件名、模块名称和报告均使用稳定的实现术语。
src/lrplus/ LR+ 参考模块
scripts/ 语料库下载、构建、重建、评估和检查
config/ 固定的重建和下载配置
results/ 论文使用的生成生产输出
audit/ 来源报告和输出哈希清单
backups/ 重建前输入语料库备份的清单
data/ccadb_full/ CCADB 下载清单和文件哈希
working_corpus/ 紧凑包的语料库重建清单
tests/ 协议和工件一致性测试
紧凑包包含清单和生成的结果。完全重新生成需要互联网访问权限以及访问现有的 WebPKI 语料库流水线,该流水线提供 scripts/normalize_ccadb.py 和 scripts/build_graph.py。
使用 Python 3.9 或更高版本。典型设置如下:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
ML-DSA-44 适配器使用 pqcrypto==0.4.0。如果该后端不可用,则跳过真实的 ML-DSA 测试,而其余参考测试仍会运行。对于生产验证门禁,请从 pyproject.toml 安装所有依赖项。
CCADB 包装器将规范化和图构建委托给现有的 WebPKI 语料库流水线。在运行完整构建之前,请设置以下任一选项:
export WEBPKI_PIPELINE_ROOT=/path/to/existing_webpki_pipeline
或通过 Make 传递路径:
make verify PIPELINE_ROOT=/path/to/existing_webpki_pipeline
流水线根目录必须包含:
scripts/normalize_ccadb.py
scripts/build_graph.py
单条命令为:
make verify PIPELINE_ROOT=/path/to/existing_webpki_pipeline
它按顺序执行以下阶段。
make backup-corpus
此操作将当前 working_corpus/{raw,normalized,graph,outputs_scc_repaired} 子目录(如果存在)复制到 backups/input_corpus_<timestamp>/,并写入 manifest.json、file_inventory.csv 和 SHA256SUMS。
make download-ccadb
此操作使用 config/ccadb_download.yaml 并写入:
data/ccadb_full/download_manifest.json
data/ccadb_full/SHA256SUMS
该清单记录所选的 crtsh/ccadb_data 标签、提交、V5 证书记录哈希、年度 PEM 文件范围以及根信任输入哈希。
make build-corpus PIPELINE_ROOT=/path/to/existing_webpki_pipeline
包装器在 working_corpus/raw/ 下准备下载的 CCADB 文件,然后调用现有流水线的规范化器和图构建器。它写入:
working_corpus/rebuild_manifest.json
working_corpus/normalized/certificates.parquet
working_corpus/normalized/records.parquet
working_corpus/outputs_scc_repaired/graph.json
make test
测试套件涵盖规范标识符、热连线解析、当前终端绑定、类型化流规范化、协商、范围追赶增量、认证状态序列化、重建输出模式,以及在后端已安装时的 ML-DSA 集成。
make reconstruct
此操作读取 config/reconstruction.yaml,并为每个选定的路径/视图上下文输出一行:
results/path_view_trace.csv
results/typed_dependency_records.csv
results/view_root_sets.csv
results/reconstruction_gate.json
每个路径行记录视图、具体证书 ID、选定的谱系、路径 ID、类型化依赖引用、依赖类型、热字节、基线字节和终端绑定摘要。
make evaluate
此操作计算:
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
字节核算公式为:
LR+ 热配置文件提示: 8 + 48*m
SPB: 2588 + 209*m
配置文件 S: 3569 + 904*m
完整每依赖 PQ: m*(2420 + 209)
范围追赶增量: 2584 + 264*k_total
连续增量: r*(2584 + 264*k_per_epoch)
make check
此操作验证所需输出、固定来源清单、每行字节公式、路径 ID、终端摘要、依赖记录覆盖率、配置的视图、每视图状态序列化和目录可用性。它写入:
results/check_results.json
状态必须为 PASS。
make freeze
此操作写入:
audit/implementation_manifest.json
该清单记录平台信息、固定来源元数据、语料库构建元数据以及所有生成结果文件的 SHA-256 哈希。
在语料库已构建之后,运行:
make verify-fast
此操作跳过备份、下载和语料库构建阶段,并从当前本地语料库重新运行测试、重建、评估、检查和清单冻结。
捆绑的生成输出报告:
路径/视图上下文: 44,912
不同的物理 CA 谱系: 16,858
类型化依赖记录: 72,020
全局 m50 / m95 / mmax: 6 / 16 / 18
LR+ 热配置文件提示: 296 / 776 / 872 字节
SPB: 3,842 / 5,932 / 6,350 字节
配置文件 S: 8,993 / 18,033 / 19,841 字节
完整每依赖 PQ: 15,774 / 42,064 / 47,322 字节
保留状态: 16,150,580 字节
签名检查点: 16,160,724 字节
每视图摘要位于 results/per_view_summary.csv。
实现为源文件、脚本、目标、配置和报告使用最终版 LR+ 名称。除稳定的文本元数据外,加密输出不会被手动编辑。十六进制证书指纹、记录引用和摘要可能自然包含任意子字符串;这些是数据,而非流程术语。