笔记:对称性加密和非对称性加密
仅供个人记录和复习
对称性加密
在加密和解密过程中都使用同一密钥Key的加密办法。然而,如何保证这个密钥被安全告诉对方而不被第三方获取非常困难。
非对称性加密
1976年,Diffie和Hellman提出非对称性加密。在加密开始时,生成一对密钥:公钥Public Key和私钥Private Key,它们有以下特性:
1. 公钥和私钥总是成对被生成,并且其中的一个值不能推出另一个值;
2. 被公钥加密的信息能且仅能被私钥解密,反之,被私钥加密的信息也能且仅能被公钥解密;
3. 被生成的公钥和私钥总是不同的,在数学上生成出重复的一对密钥的概率是0。
其中公钥可以公开,私钥则自己保存。
非对称性加密的过程
甲和乙进行非对称性加密通信的过程如下:
1. 甲与乙先建立连接,例如TCP连接;
2. 甲生成一对公私密钥,保留甲的私钥,将甲的公钥不加密发送给乙;
3. 乙获得甲发来的公钥后,将信息用公钥加密,发送给甲;
4. 甲收到被公钥加密的信息,用私钥解密,完成通信。
在以上过程中,由于私钥是不可知的,乙的信息将无法被第三方读取。注意,由于公钥是公开的,第三方依然可以冒充乙,用公钥加密后给甲发送冒名信息。
非对称性加密安全性好,但加密、解密的运算速度慢。在实践中,为了提高效率,常常通过非对称性加密通信来传递对称性密钥,之后的通信全部使用对称性加密,这样既能保证安全,又能保证效率。