← 时间戳存证总览

📜 TSR lg-058 SM2 ECC v1.3 + SM3 v2.0 性能补丁

✅ FreeTSA Granted 2026-07-09
Serial: 0x060E31C9 · Precision: seconds · Algorithm: SHA-256
Time: 2026-07-08 21:35:58 GMT · TSA: FreeTSA (www.freetsa.org, Wuerzburg, Germany)
Certificate: CN=Free TSA, OU=http://www.freetsa.org, O=Uwe Rohlicek厉

存证内容

文件版本SHA256
sm2-bigint-ec.js v1.3 (wNAF w=4 + Comb G-table) 1351a55e6534f0d570ba09cacbc92bba3379ee85e3ad89509ea71b27f248e7d7
www/js/crypto/sm3.js v2.0 (inline compression) 7bbd4e8d5fe2817e62515a6f9ec6357f63af14b27a4200a0ef7ce6e68f0d3785
www/index.html perf update (2026-07-09) 35699f7498206ed9251d34f930961f1bf5a0d8b3633d5c08085e07fa18ae4758
Manifest SHA-256: c029469c372d279f7d519884c4e8351c9416cd4d38633e851da12b8af889a765

级联哈希构建

TSR 申请使用 级联 SHA-256(Chain Hash)防止重放攻击:

H₁ = SHA256(sm2-bigint-ec.js)
H₂ = SHA256(H₁ ‖ sm3.js)
H₃ = SHA256(H₂ ‖ index.html)
TSA_hash = H₃

任一文件变动 → H₁ 改变 → H₂ 改变 → H₃ 改变 → TSR 失效,无法伪造。

技术变更摘要

SM2 ECC v1.3

维度变更
标量乘算法二进制 double-and-add → wNAF(w=4),非零位 128→~51(↓60%)
固定基点 G新增 Comb 窗口表全局缓存,首次构建后零成本复用
模逆优化4 条目 Montgomery 批量求逆(1 次模逆替代 4 次)
sign 加速≥3×(相对 jsbn 基线)
verify 加速≥2×(G 侧命中缓存,一般点侧 wNAF 生效)
TVLA 防护scalar masking + 射影随机化全部保留,v1.2 20/20 结论延续
代码量357 行 → 441 行

SM3 v2.0

维度变更
压缩函数64 轮完全内联(leftRotate/FF/GG/P0 展开为表达式)
T_j 常量预计算表,消除每轮 j%32 运行时移位
W' 流式W1[64] 分配
布尔函数两段循环分离(XOR vs 与或)
性能~0.2ms/1KB(纯 JS,无 WASM)
KATSM3('abc') = 66c7f0f4...f4ba8e0 ✅
代码量210 行 → 226 行

验证方法

Step 1:下载 TSR 文件

wget https://fibemate.net/docs/tsa/2026-07-09/lg-058.tsr

Step 2:验证 TSR 完整性(OpenSSL)

openssl ts -verify -in lg-058.tsr -CAfile /path/to/FreeTSA.crt -query /dev/null
# 期望输出:Verification: OK

Step 3:下载源码并核对 SHA-256

sha256sum sm2-bigint-ec.js www/js/crypto/sm3.js www/index.html
# 期望:
# 1351a55e...  sm2-bigint-ec.js
# 7bbd4e8d...  www/js/crypto/sm3.js
# 35699f74...  www/index.html

关联 TSR

TSR日期内容
lg-0532026-07-06路径 C-2 SM2+ML-KEM-768 混合密钥交换
lg-0562026-07-07FPGA v5.3 比特流(pipe2 INTT 256/256)
lg-0572026-07-07LG v2.1 三重混淆 WASM
lg-0582026-07-09SM2 ECC v1.3 + SM3 v2.0 性能补丁