Skip to content

AoEiuV020/BrainHash

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Brain Hash — 人脑心算密码生成方案

纯研究项目,探索"人脑能否心算出具有密码学品质的哈希值"。

核心思想

用户记住 8 个方位名词 + 1 个两位数(~9 项),通过九九乘法级的心算,从任意站点名生成不同的确定性密码,无需任何设备。

四层架构:秘密摘要 → 宫殿链 → SHA-256 种子 → 密码格式化。前两层心算,后两层计算机辅助。

研究结论

下限(设计质量):接近最优。 在人脑算力约束下,雪崩率 83.8%、零碰撞、峰值工作记忆仅 2 项。

上限(安全天花板):不足。 Carry 状态仅 100 种(2 位数),DP 攻击可将 2^80 暴力搜索降至 ~2^34。这是人脑乘法能力的物理极限,不是设计缺陷。

已知困境

困境 现状 根因 可改进性
carry 瓶颈 DP 攻击 ~2^34(远低于 2^80) carry 仅 100 状态,攻击者可逐词搜索 3 位 carry→2^41,4 位→2^47,但心算已不现实
输出瓶颈 15 位 base-20 = 64.8 bits 8 词 × 2 轮的输出位数不够 10 词 × 2 轮→82.1 bits,但加重记忆
熵税 理论 ~97 bits → 实际 ~65-79 bits 用户选词偏好、Q&A 漂移、公式结构偏差 系统选词可缓解,但降低易用性
部分泄露 2 名词已知→69.4 bits(❌ 低于 80) 每个名词贡献 ~11.5 bits 结构性问题,无解
无容错 算错一步→全部后续位错 carry 链单向传播 结构性问题,无解
Miller 极限 9 项 = 7+2 上限,无扩展余量 人脑工作记忆有限 结构性问题
vs BIP-39 128 bits vs ~34 bits(L2 独立) BIP-39 全词参与 vs carry 链逐步混入 不同问题域,无法直接对标

核心矛盾:能心算的运算 → carry 窄 → 状态空间小 → 安全性受限。在"人脑可计算"约束下,BrainHash 接近理论最优,但理论最优本身不够用。

设计质量指标

指标 当前值 安全下限 说明
零碰撞率 100% (1296/1296) 100% 2-char 输入 → 完全不同的输出
数字分布 χ² 10.40 <21.67 输出数字均匀(p>0.05)
跨站 Hamming 78.5% ≥70% 相似站点名 → 大不同输出
雪崩率(端到端) 87.8% ≥40% 改 1 字符 → 87.8% 输出变化
雪崩率(单名词) 83.8% ≥50% 换 1 名词 → 83.8% 输出变化
逆推路径(平均) ~2.6 亿 (~28 bits) ≥10,000 逆向工程难度
峰值工作记忆 2 项 ≤7 远低于 Miller 定律上限

所有指标在 pnpm test 中自动断言。

目录结构

brain-hash/
├── src/            源码(TypeScript, ESM, Vitest)
├── test/           测试(67 项:功能 + 安全性 + 雪崩 + 认知负载)
├── md/
│   ├── 架构/       管线设计、层接口、认知负载
│   ├── 算法/       各层算法实现细节
│   ├── 安全/       威胁模型、熵分析、已知限制
│   └── 研究/       前期调研(历史参考)
├── bin/            CLI 工具(待建)
└── examples/       使用示例(待建)

使用

pnpm install
pnpm test                # 全量测试(67 项,含安全性断言)
pnpm typecheck           # TypeScript 类型检查
pnpm check               # 类型检查 + 测试

文档

  • 架构设计 — 四层管线、层接口、认知负载
  • 算法细节 — 进位链公式、siteKey 分解、完整示例
  • 安全分析 — 威胁模型、熵预算、DP 攻击分析

About

研究人脑心算密码生成方案

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors