一 什么是公钥密码
公钥密码中,密钥分为加密密钥和解密密钥两种。发送者用加密密钥对消息进行加密,接收者用解密密钥进行解密。加密密钥是发送者加密时使用的,而解密密钥则是接收者解密时使用的。
加密密钥和解密密钥的区别:
-
发送者只需要加密密钥
-
接收者只需要解密密钥
-
解密密钥不可以被窃听者获取
-
加密密钥被窃听者获取也没问题
解密密钥从一开始就是由接收者自己保管的, 因此只要将加密密钥交给发送者就可以解决密钥配送问题了,而根本不需要配送解密密钥。
公钥密码中,加密密钥一般是公开的。正是由于加密密钥可以任意公开,因此该密钥被称为公钥。公钥可以通过邮件直接发送给接收者,也可以刊登在广告栏上,或者作出网页公开给世界上任何人,而完全不必担心被窃听者窃听。我们需要将公钥发送给需要使用公钥进行加密的通信对象。
相对地,解密密钥绝对不能公开的,这个密钥只能由自己来使用,因此称为私钥。私钥不能被别人知道,也不可以发给别人,甚至也不能发送自己的通信对象。
公钥和私钥匙一一对应的,一对公钥和私钥统称为密钥对。由公钥进行加密的密文,必须使用与该公钥配对的私钥才能解密。密钥对中的两个密钥之间具有非常密切的关系——数学上关系——公钥和私钥匙不能分布单独生成的。
公钥密码的使用者需要生成一个包括公钥和私钥的密钥对,其中公钥会被发送给别人,而私钥则供自己使用。
二 公钥密码的历史
1976:已经发表了关于公钥的设计思想, 尽管没有提出具体公钥密码算法,但提出了应该将加密密钥和解密密钥分开,而且还描述了公钥密码应该具有的性质。
1977:出现了具体的公钥密码算法——Knapsack。该算法申请了专利,但后来发现并不安全。
1978:出现了公钥密码算法——RSA。RSA可以说是现在公钥密码的事实标准。