carpe-diem-innovations-inc/election-records-forensics-2026
GitHub: carpe-diem-innovations-inc/election-records-forensics-2026
一款可重现的文档数字取证工具包,以白宫选举诚信文档为案例,提供哈希锚定、元数据分析和涂黑完整性测试等全链路可验证的调查能力。
Stars: 0 | Forks: 0
# 2026年选举记录取证
**审查文件,交叉核对声明——然后亲自重现每一个步骤。**
[](https://github.com/carpe-diem-innovations-inc/election-records-forensics-2026/actions/workflows/verify.yml)
[](LICENSE)
[](LICENSE)
**[可视化仪表板](https://carpe-diem-innovations-inc.github.io/election-records-forensics-2026/dashboard.html)** ·
**[调查结果](FINDINGS.md)** · **[重现步骤](METHODOLOGY.md)** · **[数据字典](data/README.md)** ·
**[应用于其他发布版本](#apply-this-method-to-any-document-release)**
这是一款**可重现的验证工具包**,用于对 **2026年7月16日** 发布于 `whitehouse.gov/election-integrity` 的四个文档归档进行审查。
它审查*文件*——包括其元数据、结构、涂黑信息与文本——并将其*声明*与公开记录进行交叉核对。该方法具有普适性——可指向任何发布的文档;本次发布仅作为一个完整的操作示例。
## 这是什么(以及不是什么)
- **是:** 一种开放的文档取证方法与数据集,作为一个完整示例进行了一次应用。基调中立、无党派倾向、以溯源为核心。
- **不是:** 指控、曝光,或声称某次选举被篡改。在证据仅支持某种*解读*时,会明确标注为解读(参见 [FINDINGS.md](FINDINGS.md),第3级)。
## 60秒摘要
- **58 个 PDF 文件**(55 个独立文件),在 **macOS** 机器上组装并打包;归档文件中仍然残留了文件系统垃圾文件(`__MACOSX/`、`.DS_Store` 以及 `._` AppleDouble 附属文件)。
- macOS 的 `com.apple.quarantine` 属性为组装过程打上了时间戳:作为证据的文件是在 2026-07-16 当天**分为四次下载事件(每个部分一次),在一个约 38 秒的时间窗口内**送达的;两份标有“FINAL”字样的叙述性文档被单独处理(一份通过 Adobe Acrobat,另一份通过团队聊天应用)。
- **58 份文档中有 55 份**的作者元数据已被清除;未清除的 3 份文档包括:两份在 Microsoft Word / Acrobat 中编写的“FINAL”叙述性文档,以及一份在 2025 年使用 iText 处理的 FBI 文档。仅有 6 个文件(5 份独立文档——重复的 CIA Wire Memo 被计算了两次)保留了内部的 `/Info` 日期;四份扫描备忘录在 XMP 中仍然带有 **“Hewlett-Packard MFP”** 扫描仪指纹(以及扫描时间戳)。
- 在测试的向量下,**涂黑保持完好**——无法恢复任何有意义的隐藏文本。
- 阅读底层情报备忘录(包含 OCR 识别结果):它们描述了**数据收集和社交媒体影响**;没有任何一份文件声称选民名册、选票或计票结果被篡改。
- 密歇根州文档描述了一起真实的**有偿拉票员登记欺诈**案件,该案件**被县办事员识破**并被**联邦检察官拒绝起诉**——没有欺诈性选票,没有提出指控。
带有分级置信度的完整细节:**[FINDINGS.md](FINDINGS.md)**。如何自行重现:**[METHODOLOGY.md](METHODOLOGY.md)**。可能存在的错误:**[LIMITATIONS.md](LIMITATIONS.md)** 以及对抗性的 **[RED-TEAM.md](RED-TEAM.md)**。
## 信任,但需验证——只需一条命令
```
pip install -r requirements.txt
python scripts/trust_but_verify.py # fetch → hash-check → re-run pipeline → compare to data/
```
它会下载官方归档文件,将其 SHA-256 与 `manifest.json` 进行核对,在临时工作区中重新运行整个分析,并将每个输出与已发布的 `data/` 进行比较——然后打印出 PASS/FAIL 表格。`--fast` 参数会跳过 OCR 识别(耗时约 2 分钟,而不是约 15 分钟)。每周的 CI 运行会在公开环境中执行相同的操作,因此该仓库还充当着**金丝雀**的角色:如果官方源文件被修改或删除,上面的徽章就会变红。
## 欢迎独立验证
**尝试推翻这些发现。** 对这项工作最有力的检验,是由与结论无利益相关的人员进行对抗性技术审查。重新运行上面的一键重现命令,攻击该方法,并使用 [Finding issue 模板](.github/ISSUE_TEMPLATE/finding.yml) 提交你的发现——在这里,反驳和纠正至少与确认具有同等的分量。
即使不进行任何审查,以下操作也具有独立价值:**发布你自己的四个源归档文件的 SHA-256 证明。** 从 `manifest.json` 中的官方 URL 下载它们,计算哈希值,并将摘要发布到公开且带有日期戳的地方(这里的 issue、gist 或你自己的网站)。无关联方在不同时间进行的独立下载是源锚定最有力的形式——它们将一个项目的哈希清单转化为分布式的公开记录,证明发布的字节从未被更改。
## 逐步重现
```
pip install -r requirements.txt
python scripts/fetch_sources.py # downloads the 4 official ZIPs, verifies SHA-256
export EI_CORPUS=./corpus EI_WORKSPACE=./work # Windows: keep EI_WORKSPACE short (long archive
# filenames can exceed MAX_PATH on deep paths)
python scripts/inventory.py # inventory + hashes + duplicate detection
python scripts/macos_forensics.py # decode AppleDouble / quarantine timeline + .DS_Store
python scripts/pdf_forensics.py # /Info + XMP, software fingerprint, revisions
python scripts/redaction.py # redaction-integrity test
python scripts/revision_recovery.py # incremental-revision recovery test
# OCR(可选,较重):scripts/ocr.py、scripts/ocr_michigan_all.py
python scripts/consolidate.py # roll up
python scripts/correlation.py # named-states correlation
```
`manifest.json` 列出了每个官方源归档文件及其 URL 和 SHA-256,以及每个已发布文件的哈希值。如果你重新下载的文件哈希与清单匹配,说明你正在分析完全相同的字节。
源归档文件也**独立于本项目进行了存档**:`manifest.json` 中的 `external_archives` 块记录了所有四个 ZIP 文件(以及登录页面)在 Internet Archive 上的捕获记录,并且原始存档字节(即 `id_` 捕获 URL)的哈希值与 `source_archives` 中的 SHA-256 值相匹配。因此,这些锚点并非自引——如果官方 URL 被更改或删除,存档副本仍然可以重现此处分析的精确字节,任何人都可以通过自行对捕获内容进行哈希计算来重新检查该声明。
## 将此方法应用于任何文档发布
除了调查结果之外,这里没有任何内容是该语料库特有的。将 `EI_CORPUS` 指向任何文档归档,相同的流水线就会生成相同的制品:哈希清单、容器取证、元数据聚类、涂黑完整性测试、OCR 以及可供他人验证的清单。该工具包是一种能力;此次发布是具体的操作示例。尽情 Fork 它吧。
## 此处发布的内容
- `data/metadata/` — 清单、SHA-256、解码后的 macOS 属性、PDF 元数据、涂黑/修订结果(无个人数据)。
- `data/ocr_intelligence/` — 情报备忘录(中国/委内瑞拉/IC流程)的 OCR 文本,已进行脱敏处理。
- `docs/dashboard.html` — 可视化摘要。
- `scripts/` — 完整的方法。
**故意未发布的内容:** 原始源 PDF 文件(从 `manifest.json` 中的官方 URL 重新获取它们)以及密歇根州 FBI 证人访谈的逐字 OCR 文本——这些内容涉及**私权个体**,重新发布他们的细节对于可重复性来说既无必要也不负责任。参见 [data/README.md](data/README.md)。
## 来源与方法说明
本分析由 **AI 辅助**完成(元数据解析、OCR、起草),并且可以**由人类端到端进行验证**——这就是整个设计的核心。源文档属于美国政府作品(公共领域)。请参阅 [CITATION.cff](CITATION.cff) 来引用本作品。
## 验证发布版本
发布标签使用项目的发布密钥进行签名:
```
iridex-ai
ed25519, sign-only · fingerprint: BA44 9C4B 93EE 08C3 C8C6 BB66 19B8 C479 4FA5 E399
```
获取密钥(`gpg --keyserver hkps://keys.openpgp.org --recv-keys BA449C4B93EE08C3C8C6BB6619B8C4794FA5E399`),检查其指纹是否与上面打印的指纹匹配,然后运行 `git tag -v v1.0.0`。GitHub Web 界面可能会将已签名的标签标记为“Unverified”——该徽章仅反映上传到 GitHub 账户配置文件的密钥;签名本身可以使用上面的密钥和指纹进行验证,不依赖于 GitHub。
## 许可证
代码:MIT。衍生数据与文本:CC-BY-4.0。源文档:美国政府(公共领域)。参见 [LICENSE](LICENSE)。
标签:事实核查, 元数据分析, 数字取证, 文档分析, 自动化CI/CD, 自动化脚本, 逆向工具