PROJECT N° 06 · WEB · LONG-TERM ROADMAP
CryptoVis 密码学课程百科
不只是算法动画集,而是以交互可视化为核心媒介的密码学课程百科。13 个课程域、120 个核心知识点,每一层中间状态都可追踪、可验证、可治理。
定位与目标
§ 01 · PURPOSE不只回答"怎么算",还要回答"为什么安全"和"怎么用对"。
CryptoVis 把密码学中不可见的状态变化、数学关系、安全假设和协议交互,转化为可观察、可操纵、可质疑、可验证的学习体验。它不是算法计算器的集合,也不是把教科书框图做成动画。
每个主题同时回答四类问题:它如何计算 — 展示输入、状态、轮函数和中间不变量;它为什么安全或不安全 — 连接安全目标、攻击模型和已知失败;它如何被正确使用 — 展示密钥、随机数、IV、nonce、AAD 和参数选择;它在真实系统中位于哪里 — 连接 TLS、PKI、密码存储和密钥生命周期。
算法计算先产生确定性的语义执行轨迹,再由教学编排层把轨迹组织为步骤、解释和提问,最后交给渲染器。播放、暂停、前进、后退和无动画文本模式都基于同一份轨迹。动画不再是状态真相,轨迹才是。
演示与实验工作台采用单视口硬约束:桌面 1366×768 以上视口不出现页面级纵向滚动,主场景、核心控制、当前步骤和安全警告同时可达。3D/2.5D 一镜到底导演系统让摄影机沿数据流连续移动,不通过页面切换或硬切镜头连接步骤 — 减少动态效果时自动降级为静态正交视图,学习结果不丢失。
// 计算先产生轨迹,再由渲染器播放 student@cv:~$ trace aes-128 --round 1 [trace] 生成确定性语义执行轨迹... event#001 add_round_key round=0 event#002 sub_bytes row=0 col=0 0x2b→0xf1 event#003 sub_bytes row=0 col=1 0x7e→0x16 ... (14 more sub_bytes events) event#017 shift_rows row=1 offset=1 event#018 mix_columns col=0 GF(2⁸) event#019 add_round_key round=1 [trace] 19 events, 可序列化, 可重播 student@cv:~$ play --step --no-animation [step 2/19] SubBytes row=0 col=0 0x2b → 0xf1 (S-Box[43]) 不变量: 矩阵维度 4×4 不变 来源: FIPS 197 §5.1.1 student@cv:~$ verify --fips-197 [pass] 轨迹输出与官方向量一致 // 动画关闭后,键盘用户读到等价解释
课程知识体系
§ 02 · 13 DOMAINS · 120 POINTS先讲安全目标,再讲算法名称。
课程不以"算法条目数量"衡量完成度,而以"知识点、学习结果、证据和版本状态"为管理单位。核心知识点是可以独立映射学习结果、内容、练习和证据的最小受控单元。
每个核心知识点至少声明一个可观察学习结果,标注能力层级:识别、解释、执行、分析、判断。C03 安全定义、C09 协议、C10 密码分析和 C12 后量子至少有一半知识点要求达到"分析"或"判断"。
RECOMMENDED LEARNING PATHS
16 周本科路径
导论与数学 → 对称 → 哈希/MAC/KDF → 公钥与签名 → 协议 → 攻击与工程 → 零知识与后量子
8 周强化路径
安全目标 → AES/AEAD → SHA/HMAC/Argon2 → RSA/ECC → 签名/PKI → TLS → 失败案例 → PQC 迁移
CTF 速通路径
编码辨析 → 古典密码 → 块模式 → 哈希与长度扩展 → RSA 小参数 → nonce/随机数错误
教师专题路径
从任意课程域选取 45/90/120 分钟课包,注明先修要求与课后练习
| 编号 | 课程域 | 知识点 | 代表内容 | 最低深度 |
|---|---|---|---|---|
| C01 | 密码学导论与安全目标 | 6 | 机密性、完整性、认证、不可否认性、威胁模型、Kerckhoffs 原则 | 全部 D2+ |
| C02 | 数学与计算基础 | 14 | 模运算、扩展欧几里得、概率、熵、群/环/域、有限域 | D2+, 4 项 D3+ |
| C03 | 安全定义与证明直觉 | 10 | PRG/PRF/PRP、IND-CPA/CCA、EUF-CMA、随机预言机、归约 | D2+, 4 项 D3+ |
| C04 | 古典密码与密码分析 | 6 | Caesar、Vigenère、仿射、Playfair、置换、频率分析 | 全部 D2+ |
| C05 | 对称密码、流密码与模式 | 14 | Feistel、DES/3DES、AES、SM4、ChaCha20、ECB/CBC/CTR/GCM | D2+, 8 项 D3+ |
| C06 | 哈希、MAC、KDF 与密码存储 | 12 | SHA-2、SHA-3、MD5/SHA-1、HMAC、PBKDF2、scrypt、Argon2 | D2+, 6 项 D3+ |
| C07 | 公钥加密与密钥建立 | 12 | RSA、OAEP、DH、ElGamal、ECC/ECDH、X25519、KEM/DEM | D2+, 6 项 D3+ |
| C08 | 数字签名、证书与 PKI | 10 | RSA-PSS、DSA、ECDSA、EdDSA、证书链、撤销、时间戳 | D2+, 5 项 D3+ |
| C09 | 协议与系统应用 | 10 | TLS 1.3、HPKE、SSH、PGP、磁盘加密、端到端消息 | D2+, 4 项 D3+ |
| C10 | 密码分析与安全工程 | 10 | 生日攻击、填充预言机、nonce 重用、侧信道、降级 | D2+, 5 项 D3+ |
| C11 | 承诺、零知识与高级协议 | 6 | 承诺、Sigma 协议、Schnorr、三色图、Fiat-Shamir | D2+, 2 项 D3+ |
| C12 | 后量子密码与密码敏捷性 | 6 | 量子威胁、ML-KEM、ML-DSA、SLH-DSA、混合迁移 | D2+, 3 项 D3+ |
| C13 | 国密、遗留算法与合规语境 | 4 | SM2/SM3/SM4、标准体系、遗留评估、合规语境 | 全部 D2+ |
| 合计 | 120 | 120 D2+; 50 D3+; 18 D4 |
内容深度分级
§ 03 · D0 → D4深度是内容承诺,不是页面美术等级。同一主题可拆成 D1 概览页、D3 算法页和 D4 实验页,三者通过知识图谱关联。没有来源、没有审核人、没有测试证据的页面只能进入预览区,不能计入课程覆盖率。
索引
定义、同义词、所属课程域、状态、权威链接。不计入核心覆盖。
概念
一句话直觉、结构图、用途、误区、安全状态、2 道自测。仅扩展知识。
可操作理解
端到端流程、可调输入、关键参数、成功/失败对照、练习与来源。计入核心覆盖。
可追踪深讲
确定性执行轨迹、中间状态、官方测试向量、步进/回退、轨迹不变量。计入深讲指标。
课程级实验
D3 全部内容 + 攻击或误用实验、实验指导、评分量规、教师答案。计入实验指标。
五层核心架构
§ 04 · ARCHITECTURE算法状态独立于动画时间线。
计算先产生确定性的语义执行轨迹(TraceEvent),包含操作类型、输入输出、前后快照、轮次、解释键和不变量。轨迹可序列化、可比较、可重播。动画引擎只负责渲染时间,不拥有算法真相。
教学编排层把轨迹切分为讲解步骤,绑定学习目标、解释、提问和误区。渲染层是插件式的 — 矩阵、比特块、曲线、协议泳道和内存网格各自独立。关闭动画后,键盘用户仍可完成全部步骤并读到等价解释。
公开内容、实验和本地进度在无后端时可用。可选服务只承担账户同步、班级和作业收集,不可用时课程内核优雅降级。
课程与服务层
知识图谱、搜索、进度、题库、教师工作台、可选同步与版本锁定
场景、镜头与交互层
3D/2.5D 场景图、CameraDirector、单屏布局、矩阵/曲线/协议/内存插件和 DOM 讲解叠层
教学编排层
把轨迹切分为步骤,绑定学习目标、解释、提问、提示和误区
语义执行轨迹层
输出类型化 TraceEvent、快照、来源与不变量,可序列化可重播
计算与模型层
纯函数实现、参数校验、大整数/有限域工具、官方测试向量
旗舰可视化
§ 05 · 20 MANDATORY · 24 TOTAL全量版至少完成 24 个 D3/D4 旗舰模块,每个旗舰模块提供默认 3D/2.5D 一镜到底路径:摄影机沿数据流从总览进入细节,完成运算、分支和比较,再回到结构总览,不通过页面切换或硬切镜头连接。每个视觉步骤必须能回答"正在改变什么、为什么改变、改变后满足什么不变量"。纯装饰过渡不计入教学可视化完成度。
| 旗舰模块 | 深度 | 必须可见的教学对象 |
|---|---|---|
| AES-128 | D4 | 密钥扩展、10 轮状态矩阵、四种轮变换、雪崩效应 |
| DES / Feistel | D3 | L/R 交换、扩展、S-Box、置换及遗留风险 |
| SM4 | D3 | 轮结构、非线性/线性变换及与 AES 的结构差异 |
| ECB/CBC/CTR/GCM 对比 | D4 | IV/nonce、padding、并行性、错误传播、AAD、tag、GHASH |
| ChaCha20 | D4 | Quarter Round 的 ARX 操作、状态布局和计数器 |
| SHA-256 | D4 | 填充、消息调度、压缩、链式状态和雪崩实验 |
| SHA-3 / Keccak | D3 | sponge、absorb/squeeze、五个置换步骤 |
| HMAC | D4 | ipad/opad、内外层哈希、长度扩展关系 |
| Argon2 | D4 | lane、block、迭代、内存成本和参数权衡 |
| RSA 教材数学 | D3 | 素数、φ/n、逆元、平方-乘模幂 |
| RSA-OAEP 与 RSA-PSS | D4 | 随机化编码、掩码生成、验证和失败条件 |
| Diffie-Hellman | D3 | 群参数、双角色交换、中间人风险 |
| ECC 点运算 | D4 | 实数域直觉、有限域计算、点加/倍点/标量乘 |
| ECDH / X25519 | D3 | 密钥交换、共享秘密和公钥校验语境 |
| ECDSA nonce 失败 | D4 | 签名流程、nonce 重用导致私钥恢复 |
| EdDSA | D3 | 确定性 nonce 派生、签名与验证流程 |
| TLS 1.3 握手 | D4 | 协商、(EC)DHE、证书、HKDF、Finished 和密钥阶段 |
| Schnorr Sigma 协议 | D3 | 离散对数见证、承诺、挑战、响应和可靠性误差 |
| 三色图零知识 | D3 | 承诺、随机边挑战、打开颜色和重复实验 |
| ML-KEM / ML-DSA | D4 | KEM 与签名边界、标准参数、封装/解封装、迁移语境 |
正确性与内容治理
§ 06 · QUALITY"动画看起来正确"不能替代测试证据。
每个 D3/D4 模块必须通过五层验证:官方已知答案测试(FIPS/RFC/ISO/GB)、差分测试(与成熟独立实现对比)、性质测试(往返、域闭包、错误输入拒绝)、轨迹不变量测试(轮数、维度、快照一致性)和视觉关键帧测试。
教学实现先通过正确性门禁,后接可视化。作者不得独自批准自己的 D3/D4 页面;D3/D4 需要密码学技术审核和教学审核各一名。已发布页面每 12 个月复核一次;"标准化中"页面每 90 天检查状态。
-
✓
五层正确性验证 — 官方向量、差分测试、性质测试、轨迹不变量、视觉关键帧
-
✓
双重内容审核 — D3/D4 需密码学技术审核 + 教学审核,作者不可独自批准
-
✓
WCAG 2.2 AA — 键盘完整操作、颜色非唯一编码、减少动态模式、屏幕阅读器文本轨迹
-
✓
发布契约 — 每页显示类型、深度、安全状态、规范状态、复核日期和非生产提示
-
✓
版本锁定 — 教师可锁定课程版本,学期内不受标准更新影响
-
✗
教学实现用于生产 — 永久禁止。页面持续显示"教学实现/参数受限/非生产用途"
-
✗
以算法数量承诺覆盖率 — 不以条目数量或未定义的"大纲覆盖率"作为市场承诺
教学与教师功能
§ 07 · PEDAGOGY先修诊断
根据答题结果推荐数学补课和课程起点,避免学生从错误位置开始。
课程地图
显示已完成、待复习、前置依赖和下一推荐主题,知识图谱无孤立节点。
检索式百科
支持中文、英文、缩写、算法别名、标准号和错误概念搜索。
实验记录
保存参数、随机种子、观察、结论和版本号,可导出为本地文件。
演示模式
大字号、简化导航、逐步揭示、教师备注、计时器、黑屏和远程翻页。
参数化作业
为每位学生生成不同但可复现的输入和随机种子,题目映射学习结果。
题库与量规
至少 300 道审核题目,30% 为分析/判断题,可追溯到学习目标和内容版本。
答案隔离
教师答案与学生页面隔离,支持按课程包导出,版本锁定后保持一致。
离线内核
公开内容、实验和本地进度在无后端时可用,可选服务中断不影响阅读。
版本路线图
§ 08 · v0.1 → v2.0版本采用"能力门禁"而非固定日历承诺。每个版本只有满足退出条件才可发布,不得为了赶版本跳过测试、审核或状态标注。工作量标记按兼职核心团队估算:S = 2~4 周,M = 5~8 周,L = 9~12 周,XL = 13~20 周。
VERSION OVERVIEW · 能力门禁
| 版本 | 主题 | 主要课程能力 | 工作量 | 发布性质 |
|---|---|---|---|---|
| v0.1 | 可验证垂直切片 | 轨迹、单屏壳、3D 场景、镜头导演、测试贯通 | M | 内部技术预览 |
| v0.2 | 课程外壳与基础 | 阅读/单屏演示双模式、导论、数学、古典密码 | M | 公开 Alpha |
| v0.3 | 对称密码与模式 | AES 一镜到底、3D 景深模式对比、DES/SM4 | L | 公开 Alpha |
| v0.4 | 流密码与哈希 | ChaCha20、SHA-2/SHA-3、遗留碰撞案例 | L | 公开 Alpha |
| v0.5 | 认证、AEAD、KDF | HMAC/GCM/Argon2、密码存储 | L | 教学 Beta |
| v0.6 | 公钥与椭圆曲线 | RSA、DH、ECC/ECDH、KEM/DEM | L | 教学 Beta |
| v0.7 | 签名与 PKI | RSA-PSS、ECDSA/EdDSA、证书链 | L | 教学 Beta |
| v0.8 | 协议与失败实验 | TLS、协议组合、nonce/随机数/填充失败 | XL | 课程候选版 |
| v0.9 | 零知识、PQC、教师 Alpha | Schnorr、三色图、ML-KEM/ML-DSA、课程编排 | XL | 课程候选版 |
| v1.0 | 首个完整学期版 | 课程、题库、单屏 3D 演示和发布质量 | L | 首个稳定版 |
| v1.1 | 国密、遗留与标准中心 | SM 系列、历史条目、状态追踪 | L | 内容扩展版 |
| v1.2 | 密码分析与安全工程 | 攻击实验、侧信道直觉、密钥生命周期 | XL | 深度扩展版 |
| v1.3 | 教师平台与开放贡献 | 班级/作业可选服务、贡献与审稿体系 | XL | 平台版 |
| v1.5 | 全量覆盖与规模化 | 120 点覆盖、24 个一镜到底模块、离线与兼容迁移 | XL | 全量候选版 |
| v2.0 | 长期全量版 | 单屏、3D 连续镜头、课程深度与外部验证全部达标 | XL | 长期稳定版 |
最终成功标准:一名教师可以在不依赖开发者现场支持的情况下,使用 CryptoVis 完成一学期课程;一名学生可以从"编码不等于加密"进阶到理解安全定义、协议组合、实现风险与后量子迁移;每个技术结论都能追溯到规范、测试向量、内容审核和版本记录。