Closed YLINR closed 2 years ago
参数主要用于优化BN256曲线计算的,生成方式可以参考genconst里面的代码,具体原理可以参考使用的地方,有一些写在注释里了,有一些也标出了论文出处,可以参考
参数主要用于优化BN256曲线计算的,生成方式可以参考genconst里面的代码,具体原理可以参考使用的地方,有一些写在注释里了,有一些也标出了论文出处,可以参考 谢谢。 请问这个b的值是怎么来的?
还有这里,上述值跟sm9文档中的G2是有什么关系? 麻烦您再解答一下,谢谢,辛苦了
参数主要用于优化BN256曲线计算的,生成方式可以参考genconst里面的代码,具体原理可以参考使用的地方,有一些写在注释里了,有一些也标出了论文出处,可以参考 谢谢。 请问这个b的值是怎么来的? b是-1/2的蒙哥马利表示方法,是sm9扩域的参数吧
上面的G2生成元也是sm9G2生成元的蒙哥马利表示方法
啊我没有表达清楚,我主要是想知道这串参数是从哪个文档获得的?我在国密9的标准文档中好像没有看到。 顺便祝您端午安康~
这个值是要选择一个Fp2里面的非平方根和非立方根,sm9确实没有给具体值,但是-1/2i是满足的
这个值是要选择一个Fp2里面的非平方根和非立方根,sm9确实没有给具体值,但是-1/2i是满足的
这个值是出自哪个文献?
好的谢谢 再问一下,这个变量的数据是怎么得来的?
pminusone是指p-1吗?为什么值与p-2相差那么大
好的谢谢 再问一下,这个变量的数据是怎么得来的?
根据G1和G2生成元计算一次pairing就可以了
pminusone是指p-1吗?为什么值与p-2相差那么大
pMinus1应该是蒙哥马利表示方法
好的谢谢!!
不好意思哈,再打扰一下。 用genconsts.go生成的结果跟您在constant.go里定义的数值不同是怎么回事?以哪个为准
s的定义中sqrt(-3),怎么用程序实现。依然使用math/big包吗
s的定义中sqrt(-3),怎么用程序实现。依然使用math/big包吗
我运行了您在bn256_test中写的genS的过程,但结果没有跟constant.go中s 的值对上。所以希望您详细的讲解一下sqrt(-3),怎么用程序实现
参考sm9c1.4里面的有限域求平方根:
bn256_test s应该是把ss从蒙哥马利表示方法decode一下,里面有些值测试临时使用的,ss值:
9daaaaaaae2f89472af8f15476909b18298c464234e93cfdc94cedfd9c1b1fc
表示成gfp形式:
gfP{0xdc94cedfd9c1b1fc, 0x8298c464234e93cf, 0x72af8f15476909b1, 0x9daaaaaaae2f8942
。
不好意思哈,再打扰一下。 用genconsts.go生成的结果跟您在constant.go里定义的数值不同是怎么回事?以哪个为准
以constant.go中的值为准,genconsts.go打印xi
的值的时候改变了原来的值,已经修改。
好的谢谢。 请问您知道hid 也就是签名函数中提到的签名私钥生成函数识别符是什么吗?为什么设置为0x01呢
这个其实没有确定值,sm9里给的说明是用一个字节表示的私钥生成函数识别符,由 KGC 选择并公开
。
但是sm9给的例子里,签名算法用的是1,密钥交换用的是2,密钥封装和公钥加密用的是3,所以测试用例里参考例子的值。
所以是不是hid的取值可以是任意数值,只要可以用一个字节表示。
按定义确实是这样
好的谢谢!
sm9curve包里更改了原bn256包中的多个参数,请问这些参数是怎么计算出来的? 我去比对了sm9的文档中指定的参数,只对上了order和p,那么其余参数是怎么得出的,能否提供些学习资料,谢谢!