From e2acea42a1bdf79c6ee5475ebe26c155a43937c4 Mon Sep 17 00:00:00 2001 From: Sun Yimin Date: Sun, 9 Jul 2023 13:10:26 +0800 Subject: [PATCH] =?UTF-8?q?Updated=20SM9=E5=AE=9E=E7=8E=B0=E5=8F=8A?= =?UTF-8?q?=E4=BC=98=E5=8C=96=20(markdown)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SM9实现及优化.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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代码改造的实现很难验证正确性(尤其对于初始实现者来说)。