非对称加密算法称为公钥加密算法,按照密码学原则:所有算法都是公开的,只有密钥是保密的。安全系统设计者不能指望使用某种秘密的无人知晓的算法来保密。
应当使用一种公开的被验证过的算法——只要密钥是安全的,已知算法的攻击者实际上无法破解秘文的算法才是好的算法
RSA算法:长度可变,既能用于数据加密也能用于数字签名
1. 大质数 p,q ,p 不等于q N = pq
2. 选择一个自然数e 1<e<N , e必须与(p-1)(q-1)互素
3. 用公式计算出 d de = 1(mod(p-1)(q-1))
4. 销毁p q
N e 就是公钥 d 就是私钥,发送方使得N去加密数据,接收方只有使用d才能解开数据内容。
非对称加密算法实现加密信息交换基本过程:
甲方:生成一对密钥并将其中一把作为公用密钥向其他方公开
乙方:得到该密钥的公钥,使用该密钥对加密信息加密发送给甲方
甲方:用与公钥相匹配的私钥来进行解密
证书实际上是对于非对称加密算法来说的,一般证书包括公钥、姓名、数字签名三个部分。证书好像身份证,证书机构(CA)好比公安局,负责管理用户的证书
公钥
姓名
CA登记 HASH(公钥+姓名) 标识唯一性,这个值就是身份证号码,也就是证书里的数字签名。
甲方——》乙方
去CA查找乙方的身份证书,上面有乙方的信息,可以保证公钥就是乙方的。
然后把要加密的信息进行加密 给乙方。
加密不一定要证书