diff --git a/SM9实现及优化.md b/SM9实现及优化.md index 8e32846..6b0ae13 100644 --- a/SM9实现及优化.md +++ b/SM9实现及优化.md @@ -1,2 +1,4 @@ # SM9的实现 -一个算法实现的最基本要求是正确性,和SM2不同,SM9规范中的示例都是用最终选定参数来做的,这是SM9规范比SM2规范好的一面,但这并没有减少其实现的复杂度。 \ No newline at end of file +一个算法实现的最基本要求是正确性,和SM2不同,SM9规范中的示例都是用最终选定参数来做的,这是SM9规范比SM2规范好的一面,但这并没有减少其实现的复杂度。 + +第一步自然是寻找参考实现,找了一下,[bn256](https://github.com/cloudflare/bn256),优点是:基域通过汇编实现了乘法、加法、减法等;完整的1-2-6-12塔式扩域;优化的pairing实现;完善的代码注释,可以容易找到参考文档。缺点是:SM9以1-2-4-12塔式扩域为准,基于bn256代码改造的实现很难验证正确性(尤其对于初始实现者来说)。