一.公钥密码体制
(1)公钥(非对称)密码概述:
优点:免去密钥分发,密钥管理简单
(2)公钥加密的设计原则:
已知公私钥,进行加密解密是简单容易的
单向函数:一个函数f,对于定义域内的任意x,计算f(x)是简单的,然而对于f(x)求出x的值的大小是很困难的,即单向容易反向困难。
陷门单向函数:包含一组秘密信息(陷门)的特殊单向函数,若已知陷门信息时求逆时容易的。
(3)公钥加密的算法定义:
密钥生成算法KeyGen( · ) → (pk, sk):输出公私钥对
加密算法Enc(m, pk) → C:输入明文和公钥,输出密文
解密算法Dec(C, sk) → m:输入密文和私钥,输出明文
二.RSA公钥加密算法组成
1.算法概述:
RSA名字的由来:MIT三位年青学者Rivest,Shamir和Adleman在1978年发现的一种通过数论的方法构造双钥体制的方法,称作MIT体制,后来被称为RSA体制。
既可用于加密,又可用于数据签名
2.算法步骤:
(1)素性判断算法:选择两个大素数p,q。根据p和q的值的大小,n=pq,φ(n)=(p-1)(q-1)
(2)(伪)随机数产生算法:
公钥e的产生:随机选择e,e的范围为(1,φ(n)),gcd(e,φ(n))==1
私钥d的产生:ed=1modφ(n),d的范围为[0,n]
--------本步骤需要应用:互质判定(欧几里得算法),求乘法逆(扩展欧几里得算法)--------
(3)加密
(4)解密
流程图如下:
已知: Alice明文消息m=88,Bob私钥为23
解:
随机选取的值:e=7,n=187
加密过程:C=88^7 mod 187=11
解密过程:m=11^23 mod 187 =88
下篇:RSA解密正确性的分析,RSA公钥加密算法安全性的分析