Date
Dec. 22nd, 2024
 
2024年 11月 22日

Post: 公钥与私钥

公钥与私钥

Published 12:03 Mar 11, 2016.

Created by @ezra. Categorized in #Technology.

Source format: Markdown

Table of Content

公钥(yuè)和私钥的概念并不是什么新鲜事物,鉴于不少小伙伴还是不明白,简单写个说明的文章吧。

介绍

公钥和私钥属于不对称加密方式,在网络通讯中很十分常用。

公钥,顾名思义,就是可供公众使用的密钥,你甚至可以公开提供给别人下载,它被用来加密和验章。

私钥,就是仅供自己使用的密钥,必须谨慎保存,用来解密和签章。用公钥加密的内容只能用私钥解密,用私钥加密的内容也只能用公钥解密。

A 方向 B 方发送内容时:

  • A 使用 B 的公钥加密,这样确保只有 B 能解密。

  • A 以自己的私钥做签章,收取方使用 A 的公钥进行验章,确认内容由 A 发送。

数字证书就是采用公钥体制,利用一对相互匹配的密钥进行加解密,即:

  • 每个用户自己设定一把特定的仅为本人所知的私有密钥,即私钥,用来进行解密和签名。

  • 同时,还要设定一把公共密钥,即公钥,并公开给一组用户所共享,用于加密和验证签名。

  • 发送内容时,发送方使用接收方的公钥对数据加密,接收方则使用接收方自己的私钥解密。

这样就保证了加密过程不可逆,即只有用私有密钥才能解密。

在公开密钥密码体制中,常用的一种是 RSA 体制,于 1977 年由 Ron Rivest、Adi Shamirh 和 LenAdleman 发明,是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被 ISO 推荐为公钥数据加密标准,它的算法基于一个十分简单的数论事实,即将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

此外,用户也可以用自己的私钥对信息加以处理,由于密钥仅为本人所有,这样就产生了别人无法生成的文件,也就形成了数字签名。

采用数字签名,能够确认以下两点:

  • 保证信息是由签名者自己签名发送,签名者不能否认或难以否认。

  • 保证信息从签发后到接收到的过程中都未被修改,签发的内容是真实内容。

举例

接下来,举个例子可能会更容易理解:

假设,我最近新交了一个女朋友,正处于热恋中,我们在发给彼此的信息中总会有一些甜言蜜语。

为了保证我们两人的对话不被他人看到,我们设计了两个暗号,分别是:

  • "天王盖地虎"

  • "宝塔镇河妖"

这两句暗号都可以用来加密信息,但用某一句暗号加密的信息,只能用另一句解密。

因为我比较喜欢后者,即 "宝塔镇河妖",便留给自己使用没告诉任何人 (私钥),而把前者 "天王盖地虎" 贴在了我房间门口,即我、我的女朋友、其他家人朋友,都可以使用 (公钥)。

有一天我的女朋友要给我发送一句 "么么哒",女朋友很害羞怕被别人看到这句话,于是她用我告诉她的暗号 "天王盖地虎" (公钥) 进行加密得到内容是 "哒么么" 后才发送给我。结果我的手机在地铁站丢失,小偷打开手机看到了 "哒么么",但由于他不知道解密的暗号是我保留的那句 "宝塔镇河妖" (私钥),所以他完全不知道这是什么意思。这样我就保护了我发送的内容,这叫公钥加密。

后来为了表扬女朋友的机智行为,我要给她发送一句 "萌萌哒" 表示赞赏,大方的我不怕被人看到这句话,可是我担心那个小偷冒充我发送其它内容,于是我使用我保留的暗号 "宝塔镇河妖" (私钥) 进行加密得到 "哒萌萌" 后发给女朋友,女朋友收到后,用公开的暗号 "天王盖地虎" (公钥) 解密,得到了原来的内容并且很开心。小偷想冒充我诈骗我的女朋友,由于他不知道我的私有暗号 "宝塔镇河妖" (私钥),所以做不到。这样就可以保证发送者的身份,叫做私钥签名。

Pinned Message
HOTODOGO
The Founder and CEO of Infeca Technology.
Developer, Designer, Blogger.
Big fan of Apple, Love of colour.
Feel free to contact me.
反曲点科技创始人和首席执行官。
开发、设计与写作皆为所长。
热爱苹果、钟情色彩。
随时恭候 垂询