一直以来对公钥和私钥都理解得不是很透彻,感觉到模棱两可,心里直打鼓呢。公钥怎么会事?私钥怎么会事?工作原理是怎么的?今天在网上找了半天,通过查看大家对这个密钥对的理解,总算弄清楚了,咱就把我的心得写出来给大家对密钥对有疑问的同志们看看。
公钥和私钥就是俗称的不对称加密方式,是从以前的对称加密(使用用户名与密码)方式的提高。我用电子邮件的方式说明一下原理。
使用公钥与私钥的目的就是实现安全的电子邮件,必须实现如下目的:
1. 我发送给你的内容必须加密,在邮件的传输过程中不能被别人看到。
2. 必须保证是我发送的邮件,不是别人冒充我的。
要达到这样的目标必须发送邮件的两人都有公钥和私钥。
公钥,就是给大家用的,你可以通过电子邮件发布,可以通过网站让别人下载,公钥其实是用来加密/验章用的。私钥,就是自己的,必须非常小心保存,最好加上密码,私钥是用来解密/签章,首先就Key的所有权来说,私钥只有个人拥有。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。
比如说,我要给你发送一个加密的邮件。首先,我必须拥有你的公钥,你也必须拥有我的公钥。
首先,我用你的公钥给这个邮件加密,这样就保证这个邮件不被别人看到,而且保证这个邮件在传送过程中没有被修改。你收到邮件后,用你的私钥就可以解密,就能看到内容。
其次我用我的私钥给这个邮件加密,发送到你手里后,你可以用我的公钥解密。因为私钥只有我手里有,这样就保证了这个邮件是我发送的。
当A->B资料时,A会使用B的公钥加密,这样才能确保只有B能解开,否则普罗大众都能解开加密的讯息,就是去了资料的保密性。验证方面则是使用签验章的机制,A传资料给大家时,会以自己的私钥做签章,如此所有收到讯息的人都可以用A的公钥进行验章,便可确认讯息是由 A 发出来的了。
加密算法包括对称加密和非对称加密,对称加密就是加密和解密用一个秘钥,就像伪装者等电视剧里的电报加密一样,需要一个密码本,发送方通过它加密,接收方通过它解密,因此密码本非常重要,一旦泄露就会所有信息被窃取。也就有了特务护送密码本的桥段,缺点显而易见。
而非对称加密有两个秘钥,公钥和私钥。例如接收方先生成一对公钥私钥,公钥可以直接不加密发送给发送方,任何人都可以拿到。然后发送方用公钥加密,发送给接收方后,接收方用私钥可以解密,并且只有私钥能解密,公钥不能解密,只能加密。
著名的RSA算法就是非对称加密的一种,是基于大数难以进行质因数分解设计的。加密等级越高,RSA位数就越长,目前常用1024bits。
并且RSA算法除了加密以外还可以实现数字签名。就是证明A发送的信息确实是A发出的。公钥和私钥实际上地位平等,可以互相加密解密。即用公钥加密的密文可以用私钥解密,这就是加密过程,反过来用私钥加密的密文可以用公钥解密,也就是说大众可以用公钥对A发出的密文解密来验证信息确实是A发出的,这就是数字签名。
RSA速度很慢,一般只对少量信息进行加密。常用的做法是用RSA给对称加密密钥加密,发送给接收方。然后接收方解密知道了对称加密密钥,双方再通过对称加密方式通讯。