【文档说明】【安全课件】第21讲--eigamal体制与.pptx,共(14)页,190.943 KB,由精品优选上传
转载请保留链接:https://www.ichengzhen.cn/view-287631.html
以下为本文档部分文字说明:
EIGamal体制与公钥密码体制小结量子密码研究室王滨2005.4.14数学基础◼本原元:设p为素数,若存在一个整数a,使得a,a2,a3,……,ap-1,,关于模p互不同余,则称模p的本原元。◼离散对数问题:Y=logaXX计算Y是容易的,至多
需要2×log2p次运算就可以。但是根据Y计算X就是困难的,利用目前最好的算法,对于小心选择的p将至少需要p1/2次以上的运算,只要p足够的大,求解离散对数就是相当困难的。EIGamal公钥密码体制◼设计过程:◼Step1选取大素数p,再选取的一个本原元
a,并将p和a公开.◼Step2随机选取整数,并计算出并将作为公开的加密密钥,将d作为保密的脱密密钥.21:−pdd*pZpdmod=加脱密变换◼加密变换:,秘密选择一个整数,则密文为其中◼脱密变换:对任意密文明文为*pZm21:−pkk**21),(
ppZZccc===pmcpckkmodmod21**21),(ppZZccc=pccmdmod)(112−=实例◼P=2597,取a=2,秘密密钥为765,可以计算出公开密钥为y=2765mod2597=949。◼取明文M=1299,随机数k
=853,则C1=2853mod2597=435,C2=1299×949853mod2597=2396所以密文为:(C1,C2)=(435,2396)解密时计算:M=2396×(435765)-1mod2597=1299特点(1)密文长度扩展1
倍;(2)只利用了有限域的乘法群的性质,即只使用了乘法运算和求乘法逆的运算为何密文需要扩展1倍?这涉及其设计思想问题.安全性分析◼因为该算法是基于离散对数问题的,所以p的选取必须足够的大,为150位以上的十进制数,且p-1有大素因子◼为了加密和签名的安全k必须是一次性的设计思想◼
(1)利用Diffie-Hellman密钥交换协议生成双方加密用的密钥.此时◼不同之处在于已将作为公开密钥公布,不需每次发送.◼(2)采取了一次一密的加密思想.◼将作为双方交换的密钥,利用它对明文进行加脱密.pppdkkdkm
odmod)(mod==pdmod=pkmod问题◼为什么要求?◼答案:因为的周期为p-1,即◼备注:◼(1)参数可以全网公用,也可一人一套;◼(2)加密不同的明文分组时选用独立的随机数,但秘密的脱密密钥需和其版本号一起长期不变.21:−pdd1
mod1=−pp实现方法◼(1)大素数的选择与构造◼将大素数p选为安全素数,即使p=2q+1且q为素数.◼实验表明,平均100个随机数中可选出1个素数,平均100素数中可选出1个安全素数.(2)安全素数条件下本原元的判断方法◼由Fermat定理知,即因而如果则有w整除p-1=2q,因而由q是素
数知,w只能是2或q.此时是本原元等价于且1mod1=−pp1mod2=pq}1mod:0min{==ptwt1mod2p1modpq安全素数条件下本原元的构造方法◼在(p=2q+1)中随机选择一个,若且,则判定是安全素数;否则再随机选择另一个进行检验.*pZ1
mod2p1modpq问题:容易找到本原元吗?◼答案:◼容易,至少在安全素数条件下容易.习题◼在用户a对用户b利用RSA公钥密码体制进行消息的加密+签名时,若二者使用的模数na>nb,为了使脱密正常进行,应该先加密还是先签名?