![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
文章平均质量分 81
ali48
望诸君不吝赐教!!!
展开
-
听说这玩意可以验证消息完整性 —— 消息认证码(MAC)
消息认证码 消息认证码(Message Authentication Code)是一种确认完整性并进行认证的一种技术,简称 MAC。验证过程消息认证码在输入任意长度的消息和一个发送者与接收者之间的共享密钥后,输出固定长度的数据,该数据称为 MAC 值。假设用户 A 和用户 B 使用共享密钥 K 进行通信。A 要发送一段消息 M 给 B,A 首先用消息认证码算法将 K 和 M 计算出消息认证码 MAC。然后将 MAC 和 M 一起发送给 B。B 收到 MAC 和 M 后利用 M 和 K 计原创 2021-11-15 19:50:52 · 5469 阅读 · 0 评论 -
听说这玩意可以防止否认 —— 数字签名
谁骗了谁? 小艾和小杨是好朋友,并且经常使用固定密钥进行通信。一天小艾收到一条诈骗消息,理所当然,单纯的小艾被骗钱了。小艾 kali 学的不好,找不到凶手,于是动起了坏心思。小艾将诈骗消息使用和小杨通信的密钥使用单向散列函数计算出 MAC 然后将消息和 MAC 封装后拿去警察局报警。小艾:小杨发给我的诈骗消息骗了我的钱。小杨:我没有发过这条消息。小艾:你怎么证明不是你发的。小杨:你怎么证明是我发的。警察:到底是谁骗了谁?数字签名 之前的文章提到 消息认证码(MAC) 的缺点就是无法防原创 2021-11-15 14:59:33 · 6238 阅读 · 2 评论 -
听说这玩意可以防篡改——单向散列函数
这是我要的文件吗? 由于某些原因,访问国外网站的速度较慢,所以我们常使用镜像网站下载文件。假设你正通过镜像网站从网络上下载一款软件,但是如何保证你下载的软件是正版,没有被恶意篡改过呢?怎么保证我的软件的完整性呢?单向散列函数 要解决上述问题就需要用到单向散列函数,单向散列函数相当于为数据增加一个数据指纹,我们使用一个函数计算出数据的指纹,这个指纹是独一无二的,相同数据生成指纹相同,不同数据生成指纹不同(即使一小点改动最终生成的指纹都完全不同),通过对比指纹验证数据是否被篡改过。如下图所示:原创 2021-11-14 21:09:15 · 2938 阅读 · 0 评论 -
听说这玩意可以安全交换密钥 —— Diffie-Hellman 算法
Diffie-Hellman 密钥配送的配送一直是一个难以解决的问题,我们始终无法保证在不安全的线路中安全传递密钥。直到 Diffie-Hellman 密钥交换算法出现:一种确保共享密钥安全穿越不安全网络的方法。 Diffie-Hellman 密钥交换算法,是由 Whitfield Diffie 和 Martin Hellman 在1976年共同提出了的一个奇妙的密钥交换协议。这个算法的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。(注意:Diffie-He原创 2021-11-14 18:37:13 · 2190 阅读 · 0 评论 -
混合密码系统也不过如此
两种加密方式对称加密:常用的对称加密算法有 DES 和 AES,对称加密算法可以保证传输数据的安全,并且运算速度较快,但是不能解决密钥配送的问题。非对称加密:常用的非对称加密算法有 RSA,非对称加密算法虽然可以解决密钥配送的问题,但是它的加密速度比较慢,并且无法抵御中间人攻击。混合密码系统 单独使用对称加密算法或者非对称加密算法都有缺陷,但是将对称加密算法和非对称加密算法结合起来互相取长补短,就得到了一种既不用配送密钥,加密速度又快的密码系统。著名的 SSL/TLS 协议就是这样的加密系统,原创 2021-11-12 14:23:04 · 1940 阅读 · 0 评论 -
聊聊 RSA 算法
RSA 简介 1977年,三位数学家 Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种非对称加密算法(公钥密码算法)用他们三个人的名字命名,叫做 RSA 算法。非对称加密非对称加密算法需要两个密钥来进行加密和解密,这两个密钥是公开密钥(公钥)和私有密钥(私钥)。公钥:可以被任何人知道,用于加密消息或者验证签名。私钥:只有接收者本人知道,用于解密消息或者签名。不对称性:用于加密消息的密钥不能用来解密消息。RSA 原理 根据数论,寻求两个大素数比较原创 2021-11-12 13:49:46 · 1623 阅读 · 0 评论 -
聊聊 A5/1 算法
A5/1 简介 A5 算法在 1989 年由法国人开发,先后开发了三个版本记作 A5/1、A5/2、A5/3,如果没有特别说明,通常所说的 A5 是指 A5/1,这是一种流密码加密算法。该算法用于 GSM 系统的序列密码算法,最初是保密的,但通过泄漏和逆向工程公开。A5/1 生成密钥1、三个线性反馈移位寄存器(X:19位,Y:22位, Z:23位)2、假设当前寄存器状态如下3、生成密钥找到 X8 = 1, Y10 = 0, Z10 = 1(算法规定)。选取数量最多的作为结果 m = m原创 2021-10-22 14:25:44 · 3470 阅读 · 2 评论 -
聊聊 AES 算法
AES简介 鉴于DES算法密钥空间小、容易被暴力破解、加密效率低等缺陷。美国的NIST(National Institute of Standards and Technology,国家标准技术研究所)经过五年的甄选流程,从多个候选算法中确认了Rijndael算法为最新的AES算法。 该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的名字,以Rijdael之名命之。AES加密解密 严格地说,AES和Rijndael加密法并不完全一样(虽然在实际应用原创 2021-05-18 15:18:47 · 1890 阅读 · 4 评论 -
聊聊 DES 算法
DES简介DES全称叫(Data Encryption Standard),是1972年美国IBM公司研制的对称密码体制加密算法。DES之前一直是世界上最常用的加密算法,在很长时间内,许多人心目中“密码生成”与DES一直是个同义词。但是随着计算机算力的进步,现在DES已经可以被暴力破解了,所以不再建议使用DES算法。DES工作原理DES密钥长64bit,密钥事实上只有56bit参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)。因为密钥长度是64bi原创 2021-05-16 23:37:32 · 1951 阅读 · 0 评论 -
一次性密码本(绝对无法破译)
一次性密码本一次性密码本即Vernam Cipher,是由Gilbert Vernam在1917年,开发的一种加密算法。是一种通过在文本的二进制级别上进行工作来对纯文本进行加密的密码技术。之所以叫做一次性密码本,是因为加密所用的密钥是一次性的,即密钥只会使用一次,不会出现因为密钥泄露导致之前的加密内容被解密。即使密钥不小心被泄露,也只会影响一次通信过程。加密众所周知,任何信息在计算机内部都是由0,1两个数字保存,在进行传输时需要将传输的信息转化为对应二进制码传输,例如,传输文本消息,就需要利用特定的编原创 2021-05-15 00:27:15 · 3347 阅读 · 2 评论