公钥密码学
1 非对称加密
1.1 从对称到非对称
- 几千年来,几乎所有的密码体制都是基于替换和置换这些初等方法。
- 这些方法在 电子机械转轮机(恩尼格玛) 和电子计算机(DES) 中发展到了巅峰。
- 公钥(非对称)密码学的出现和发展是密码学史上最大(唯一)的一次革命。
- 公钥密码学的概念是为了解决传统密码中最困难的一个问题而提出的:密钥的安全分配问题
- 1976年Diffie和Hellman针对上面的问题提出了单向函数加密方法,这种方法和之前数千年来密码学中的所有方法有根本的区别,即公钥密码体制。
- 非对称加密算法使用完全不同但又是完全匹配的一对钥匙:公钥和私钥
- **公钥:**公开的,任何人都知道
- **私钥:**只有自己知道
- 算法:一对密钥中用公钥加密的结果可以用私钥解密,反过来用私钥加密的结果也可以用公钥解密。
1.2 公钥加密的使用方法
- Alice和Bob互发(公布)各自的公钥,私钥只有自己知道
- Alice用对称密钥加密信件,再用Bob的公钥加密对称密钥
- Bob用自己的私钥解密对称密钥,再用对称密钥解密信件
1.3 两种密码体制的比较
公钥密码学和以前的密码学完全不同:
- 对称密码学基于替换和置换(混淆和扩散),运算速度快
- 公钥密码学基于数学理论(单向函数),运算速度慢
- 对称密码学使用单密钥,需要额外秘密信道协商密钥
- 公钥密码学使用两个独立的密钥,不需要秘密信道协商密钥
1.4 单向函数
- 两个集合X、Y,F是两个集合之间的映射,有Y= F(X),则:
1)已知×求丫容易
2)已知Y反推×困难 - 例如: y =f(x)= a*
1)求常数a的x次方,简单来说做x次乘法即可得到y,如果采用二分法,计算的复杂度会更低。
2)反过来,如果已知y求x,难度要比做x次乘法大很多。 - 如果由x计算a用时1秒,那么从a反推x需要的时间约10"秒
1.5 RSA
- RSA算法1977年由MIT三位密码学家Rivest、Shamirh和Adleman发明,是迄今为止最为成熟完善的公钥密码体制。
- RSA算法