1、单击此处编辑母版标题样式单击此处编辑母版副标题样式EIGamal体制与公钥密码体制小结量子密码研究室王滨2005.4.14数学基础n 本原元: 设 p为素数,若存在一个整数 a,使得 a, a2, a3, , ap 1,关于模 p互不同余,则称模 p的本原元。n 离散对数问题: Y=logaXX计算 Y是容易的,至多需要 2log2p次运算就可以。但是根据 Y计算 X就是困难的,利用目前最好的算法,对于小心选择的 p将至少需要 p1/2次以上的运算,只要 p足够的大,求解离散对数就是相当困难的。EIGamal公钥密码体制n 设计过程 :n Step1 选取大素数 p,再选取 的一个本原元 a,
2、并将 p和 a公开 .n Step2 随机选取整数 ,并计算出 并将 作为公开的加密密钥 ,将 d作为保密的脱密密钥 .加脱密变换n 加密变换 : ,秘密选择一个整数 , 则密文为其中n 脱密变换 : 对任意密文明文为实例n P=2597,取 a 2,秘密密钥为 765,可以计算出公开密钥为 y 2765 mod 2597 949。n 取明文 M 1299,随机数 k 853,则C1 2853 mod 2597 435,C2 1299949853 mod 2597 2396所以密文为 :( C1, C2)( 435, 2396)解密时计算 :M 2396(435765)-1 mod 2597
3、1299特点(1) 密文长度扩展 1倍 ;(2) 只 利 用了有限域的乘法群的性质 ,即只使用了乘法运算和求乘法逆的运算为何密文需要扩展 1倍 ? 这涉及其设计思想问题 .安全性分析n 因为该算法是基于离散对数问题的,所以 p的选取必须足够的大,为 150位以上的十进制数,且 p 1有大素因子n 为了加密和签名的安全 k必须是一次性的设计思想n (1) 利用 Diffie-Hellman密钥交换协议生成双方加密用的密钥 .此时n 不同之处在于已将 作为公开密钥公布 ,不需每次发送 .n (2) 采取了一次一密的加密思想 .n 将 作为双方交换的密钥 ,利用它对明文进行加脱密 .问题n 为什么要
4、求 ?n 答案 : 因为 的周期为 p-1 ,即n 备注 :n (1) 参数可以全网公用 ,也可一人一套 ;n (2) 加密不同的明文分组时选用独立的随机数 ,但秘密的脱密密钥需和其版本号一起长期不变 .实现方法n (1) 大素数的选择与构造n 将大素数 p选为安全素数 ,即使 p=2q+1且 q为素数 .n 实验表明 ,平均 100个随机数中可选出 1个素数 , 平均 100素数中可选出 1个安全素数 .(2)安全素数条件下本原元的判断方法n 由 Fermat定理知 ,即因而如果则有 w 整除 p-1=2q,因而由 q是素数知 ,w只能是 2或 q. 此时是 本原元等价于且 安全素数条件下本原元的构造方法 n 在 ( p=2q+1)中随机选择一个 ,若且 ,则判定 是安全素数 ;否则再随机选择另一个进行检验 .问题 :容易找到本原元吗 ?n 答案 :n 容易 ,至少在安全素数条件下容易 .习题n 在用户 a对用户 b利用 RSA公钥密码体制进行消息的加密签名时,若二者使用的模数 nanb, 为了使脱密正常进行,应该先加密还是先签名?