首页 > 编程知识 正文

非对称加密算法(非对称加密算法的应用)

时间:2023-05-05 19:26:59 阅读:90630 作者:3916

通信风险

窃听风险(eavesdropping ) :第三方可以知道通信内容。 篡改风险(tampering )第三方可以修改通信内容。 冒充风险(pretending )第三方可以冒充他人参加通信。

风险防范

信息加密传输,第三者无法窃听。 增加检查机制,一旦被篡改,通信双方很快就会发现。 准备好身份证,防止身份冒用。

伶俐的火车(Hash)

智能列车也称为哈希,通过哈希算法将任意长度的输入转换为固定长度的输出。 该输出是散列值,也称为摘要(Digest )。

聪明的列车是压缩映射,通常是不可逆的

这个变换是压缩映射。 也就是说,由于哈希值的空间通常远远小于输入的空间,不同的输入可能散列到相同的输出中,所以不能根据哈希值确定唯一的输入值,但是,如果输出的位数足够,则不同的输入散列到相同输出中的概率就非常低

简单地说,散列是将任意长度的消息压缩为一定长度的消息摘要的过程。

哈希是不可逆的,无法从输出中恢复输入。 这个特性经常用于密码保存。

SHA-512、MD5等是有名的哈希函数,MD5生成的哈希代码为128位,是连MD5都聪明的列车的同名词。 网站: https://passwords generator.net/sha 512-hash-generator /可以在线计算聪明的列车

哈希有什么用?

散列可以用于保存密码。 用明文保存密码是很危险的。 通常,我们将加密的列车加密保存。 这样,即使密码泄露了,由于是散列值,也无法导出密码的明文(词典攻击很难破解)。 验证时,只需对密码(明文)执行相同的散列,然后将散列后的输出与存储的密码散列值进行比较,即可验证同一性。 可以用于验证下载文件的完整性和防篡改性。 例如,网站提供安装包时,通常同时提供md5值。 然后,用户可以在下载后重新计算安装软件包的md5值。 如果一致,则证明本地下载的安装包与网站提供的安装包一致,在网络传输中没有错误。

加密

加密是指将明码变为密文的过程,是指与解密相反的方向将密文变为明码。

例如,有名的凯撒密码是将各个单词与其他单词对应而成的。 这样,只要有密码本,就可以对照破译密码。 例如,最简单的是,对于26个英语字符,每个字符向右移动3个字符,abc变为def。 这也是加密。 当然,这个加密很简单,很容易被破解。

AES (高级加密标准)、3DES (三重数据加密算法)等被公认为难以破解,但山东大学的女教授王小云很厉害。 解密MD5和SHA-1,被迫升级加密标准,最终成为院士。

对称加密

对称加密和加入解密密钥一样,好处是快。 这也是传统的加密方式,像AES、3DES一样是对称加密。

不对称加密

不对称加密用于解密的密钥不同,有两个密钥、公钥和私钥,公钥可以公开,私钥妥善保管。 RSA、ECC (椭圆曲线加密算法)、DH )这些是不对称加密。

不对称加密慢,有多慢? 由于比对称加密慢1000倍、慢,所以在密钥协商(Handshake )中经常使用,协商会话密钥后,用对称密钥加密通信数据。

1976年,Whitfield Diffie和Martin Hellman首次提出了不对称加密的概念。 该算法被称为Diffie-Hellman密钥交换。 并且在1978年,麻省理工学院的Ron Rivest、Adi Shamir和Leonard Adleman发表了RSA算法。 这些可以被认为是不对称加密的基础。

不对称加密也称为公钥基础结构,也称为PKI。 不对称加密的提出是密码学上的革命,会产生巨大的影响。

非对称加密算法用私钥加密,用公钥解密,或者用公钥加密,再用私钥解密。

证书

证书是为了证明我是我。 例如,访问中国银行的网站,中行官网如何证明它是中行官网? 答案是数字证书。

CA是数字证书中心,服务器需要委托CA进行认证,CA需要自己颁发数字证书。 数字证书一般包含服务的部分信息和服务器的公钥,用CA的私钥加密后,生成的数字证书,由于CA的权威,其公钥天下皆知,所以只要能用CA的公钥解开证书,该证书就一定由CA

因此,由此可见,数字证书被用于不对称加密。

数字签名

在日常生活中也有标志。 笔迹因人而异。 用卡消费后,请在账单上签名大名,店员检查后保存。 不管你什么时候赖账,都有签名。 因为别人写的字和你的笔迹最终有差别。

数字签名是什么? 比如假设a发了邮件,收到的一方怎么证明这封信是a写的呢?

本质上,数字签名也利用了不对称加密。

如上所述,不对称加密有公钥和私钥。 如果发起方用私钥加密,而接收方可以用发送方的公钥解密,则可以证明它是由某个发送方发送的。 别人拿不到你的私钥,也不能用你的私钥加密,所以你无法抵赖。

数字签名通常首先对内容聪明的列车,生成内容摘录

要,再用私钥加密,得到签名。

密钥协商

下面举一个例子来说明这几个问题:

清新的百褶裙2把钥匙,一把公钥,公告天下,一把私钥,妥善保管,只有自己知道,很明显,非对称加密。

xhdbq给pddxbc写信,写完之后,用pddxbc的公钥加密,通过邮局寄给pddxbc,即使邮递员拆开信封看,他也看不懂,因为内容是密文,只有pddxbc的密钥才能解密。

pddxbc收到信后,用私钥解密,可以正常阅读。

现在pddxbc要给xhdbq回信,写完后,用hash函数生成摘要digest。

然后pddxbc,再用私钥对摘要加密,生成数字签名signature。

然后把签名附在信的下面,一起发给xhdbq。

过程是:信明文 -> hash -> digist -> 私钥加密 -> signature。

xhdbq收到回信后,用pddxbc的公钥对数字签名解密,得到摘要,由此证明,信确实是pddxbc发出的,为什么?因为如果不是pddxbc发的,那写信的人就没有pddxbc私钥,用别的私钥加密得到的签名,是无法用pddxbc的公钥解开的。

xhdbq,再对信的内容做hash,得到摘要,与上一步得到的摘要对比,如果一致,则证明信的内容没有被修改过,信的内容是完整的。

复杂的情况出现了。

tldkf,用自己的公钥替换xhdbq保存的pddxbc的公钥,也就是tldkf欺骗了xhdbq,xhdbq误把tldkf的公钥当pddxbc的公钥,这样一来,tldkf就能冒充pddxbc给xhdbq写信(tldkf用自己的私钥加密)。

问题是什么?问题是xhdbq不能确信自己保存的公钥真的是pddxbc的公钥。如果客户端电脑上存的工商银行官网的公钥,实际上是骗子公司的公钥,那就麻烦大了。

怎么破?让pddxbc去认证中心CA(Certificate Authority),为公钥做认证,怎么做呢?CA中心用自己的私钥,对pddxbc的公钥和其他相关信息一起加密,生成数字证书(Digital Certificate)。

pddxbc拿到数字证书后,以后给xhdbq回信,在签名的同时,附带上数字证书。

xhdbq收到信之后,从CA的公钥解开数字证书,取出pddxbc的公钥(一定是真的),然后就能放心的愉快的按之前的流程解开签名了。

数字证书加入后,核心区别就是pddxbc的公钥不再保存在xhdbq处,而是通过数字证书下发。

为什么数字证书里的pddxbc的公钥一定是真的呢?因为CA是权威机构,假设全世界就一家(其实不止,但也不多),它的公钥天下尽知,就是固定的串,所以能用CA公钥解开的证书,一定是CA颁布的,因为CA用它的私钥加密产生的证书。很明显,非对称加密能用于证明我是我。

密钥交换算法

著名的DH密钥交换算法,这个算法很有意思,也很巧妙,简而言之,就是通信双方交换一点信息(不怕被偷看到),然后就在两端,分布产生出一个相同的密钥,神奇啊。

有一个很有意思的例子。

xqdhmgsjx和Bob要协商出一个公共的颜色,他们可以交换信息,但交换的信息,可以被偷看到,怎么办?既能协商出公共颜色,又不能让别人知道呢。

首先,他们有公共的颜色,都是1毫升黄色。然后xqdhmgsjx挑选一个私密的红色,Bob选绿色,都是1毫升。只有自己知道,不会告诉别人。然后xqdhmgsjx把黄色和红色混合在一起,Bob把黄色和绿色混合在一起,各为2毫升。然后,他们把自己混合后的2毫升颜色液体,发给对方。然后,用自己的一毫升私密颜色液体,跟从对方那里收到的2毫升液体,混合,下面就是见证奇迹的颜色的时刻,他们得到了相同的颜色,而第三方并不能通过偷看他们传递的数据知道他们最终得到的颜色(基于一个假设,图里有说明)。

密钥交换算法的原理跟这个差不多,网上有大量的资料讲述这个问题,我觉得理解了上面的例子,再看ECDH便也不难了。

众所周知http是互联网协议,但是它不够安全,所以后面有改进版的https,其实就是多了一个TLS,这个是传输层加密,本质上,就是通过handshake,协商出一个会话密钥,后面的数据传递,都用这个密钥做对称加解密。

我们经常讲安全通道,其实也就是协商出一个会话密钥,他并不神秘。胡乱放几张图片吧。

为了减少这几个RTT,又想了各种办法,然后复用连接的话,就可以做到0RTT,1RTT了。

就说这些吧,最后抛几个名词,有兴趣自行百度学习:DTLS,HMAC,AEAD,重放攻击,放大攻击,是不是很高端?

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。