1.素数群
群定义:一个集合G,满足以下6个条件,则称为群。
1.非空集:集合中至少有一个元素·
2.二元运算:集合中的元素能够进行一种运算,例如加法或乘法。
3.封闭性:集合中元素运算后结果仍在集合中。
4.结合律:任意a,b,c属于G,则(a+b)+c=a+(b+c)。
5.单位元e:加法有a+e=e+a=a,乘法:a*e=e*a=a。
6.每个元素a都有逆元,记:
且a和有以下运算:加a+=+a=e,乘a*=*a=e.
这样的集合G称为群,简单理解为:具有封闭运算的集合称为群。
相关概念:
概念1:如果一个群元素g 能够通过有限次本身运算,表达群内其他所有元素,则称为群的生成元。
概念2:群内元素个数称为群的阶。
思考:已知群元素1,生成元为3,生成元3通过n次运算得到群元素1,求n?
解决方案:需要暴力搜索,遍历群元素。因此,需要指数时间。这里的1是公开的,记为公钥PK;私钥就是n=sk。(本例中由3的生成元判断过程可知需要在最后一次才能算出1)。 已知公钥PK和生成元g,计算私钥需要指数时间,暴力搜索sk。如果私钥sk的空间是256bit,则暴力搜索时间是,不可行。
已知私钥sk和生成元g,则能够快速计算PK。计算方法:PK=(上述中对1加密后即为,解密为mod7=1).。
进而引出相关困难问题:
1.离散对数困难问题(DL):己知生成元g和公钥PK,不能在多项式时间内求私钥sk 。
2.计算性Diffie-Hellman困难问题(CDH):己知g,,∈G,求是困难的。(1的变形)
3.q 阶强 Diffie-Hellman 困难问题:己知g,.... ∈G和随机数s,求是困难的。
4.q阶强Diffie-Hellman求逆困难问题: 己知g,.... ∈G,求是困难的。
2.椭圆曲线群
椭圆曲线群和素数群类似,在相同的安全等级下,椭圆曲线群所需密钥长度更小。
上图(2)(3)(4)记住,计算时用到,椭圆曲线上P(x,y)的逆元-P计算为(x,p-y),p为mod后模的数。
引出问题:已知P和n,能在多项式是时间内计算。(.椭圆曲线上的一种运算,做切线)。
只需要在椭圆曲线上做切线进行运算,找对称点。如果n=,则需要a次切线运算,如果 n=++...+,则需要 a+b+…+x 次切线计算和少量点加计算。
反过来:已知P和,需要指数时间计算n。(因为是点乘运算,不是简单的乘法)
由此引出一些椭圆曲线上的困难问题:
9.判决线性问题: