密钥管理及其他公钥体制.ppt
Copyrightby?王鲲鹏Copyrightby?王鲲鹏*原版“CryptographyandNetworkSecurity”,4/e,byWilliamStallings中译本密码编码学与网络安全第四版孟庆树等PPT制作林丰波电子工业出版社2006-2007addon10/pkcs-3.doc关键是b^k=(g^k)^a,而m被b^k掩盖,要去掉b^k得用到a;(其实也可以使用xor)/research/ec33_example.html2012年3月18日计算机安全技术与实践
密钥管理和其他公钥密码体制离散对数问题 y=gxmodp,其中g是生成元 求x的困难性 目前没有有效的方法 实际使用时常用Zp*和ECC上的点加法群Pohlig-Hellmanalgorithm如果p-1是小素数的乘积,则易求因此,p-1应含有大素因子10.1Diffie-Hellman密钥交换DH76,Diffie-Hellman步骤选取大素数q和它的一个生成元g,这些参数公开A选择随机数Xa,B选择随机数XbA计算Ya=g^Xamodq,B计算Yb=g^Xbmodq交换Ya,YbA计算K=Yb^Xamodq,B计算K=Ya^Xbmodq事实上,K=KDiffie-Hellman密钥交换协议证明K=K’ K=Yb^Xamodq K’=Ya^Xb modq =(g^Xb)^Xamodq =(g^Xa)^Xbmodq =g^(XbXa)modq =g^(XaXb)modq举例q=97,g=5 A选Xa=36,B选Xb=58,则 Ya=5^36%97=50,Yb=5^58%97=44 交换50,44 A算K=44^36%97=75,B算K’=50^58%97=75分析(别人怎么计算K?)别人看到了Ya和Yb,但需要计算Xa或Xb,即要算离散对数 Ya=g^Xamodq,或Yb=g^Xbmodq证明、分析和例子交换Y的过程中,Y有可能被替换假冒,而且不能发现形式上,可以理解为一个中间人在跟双方同时通信,当然通信内容在中间人那里是可见的* 一个现实的例子就是:可以同时开两盘QQx棋,一个后手,一个先手,…中间人攻击PART1A E BXa Xb’Xa’ XbYa Yb’Ya’ YbK=Yb’^Xa K’=Y’a^XbMan-in-the-middlemaurer94towardsTowardstheEquivalenceofBreakingtheDiffie-HellmanProtocolandComputingDiscreteLogarithms结论破译D-H密钥协商协议等价于计算离散对数RSA算法的安全性是否等价于大数的因子分解?相关结论PART1PKCS#3Diffie-HellmanKey-AgreementStandard进一步参阅pkcs#310.1aPKCS#3准备素数p,Zp*中本原元g,公开参数私钥a,公钥b=gamodp加密对明文1=m=p-1,选随机数k密文(c1,c2) c1=gkmodp,c2=mbkmodp解密m=c2(c1a)-1=mbk((gk)a)-1 =m(ga)k(g-ka) =mmodp10.2ElGamal密码体制基于离散对数难题缺点需要随机数密文长度加倍ElGamal可以迁移到ECDLP上ElGamal签名和DSSElGamaletc背景RSA中用到了因子分解的困难性,而为了增加困难得加大数的位数,从而导致计算速度变慢。ECC可以用较小的密钥长度达到较高的计算难度EllipticCurve y2+axy+by=x3+cx2+dx+e其中a、b、c、d、e是满足某个简单条件的实数另有O点被定义为无穷点/零点点加法P+Q=R定义为过P、Q和椭圆曲线相交的第三点的X轴对称点R10.3椭圆曲线EC:P+Q=R在有限域Zp上的简化EC y2≡x3+ax+bmodp其中4a3+27b2modp≠0(这是一个离散点的集合)举例 y2≡x3+18x+15mod23 y2≡x3+17x+15mod23素域上的ECPART1EC(1)EC(2)