密码学入门——超级通俗易懂的解释

本文介绍了密码学的基本原理,包括加密通信的两个主要功能(加密和数字签名)、对称与非对称加密的区别,以及数字签名如何利用散列算法确保身份验证。以凯撒密码和MD5散列为例,详细解释了其工作原理和实际应用中的安全性措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.定义

密码学是对安全通信技术的研究——维基百科

(通俗易懂的来说:两个人在互联网上讲话,但不让第三个人知道)

2.密码学的两个功能:

(1).加密通信(所有人都能看懂的信息转换为密文,实现加密,这个比较好理解)

(2).数字签名(用于确认身份,使其不能冒充对方)

3.应用领域:军事,银行支付,区块链...

4.密码学几个基础概念:加密和解密,密文,密钥

(1)加密:把信息通过加密算法转换成密文(就是一堆看不懂的内容)

           过程:把“加密算法”封装为一个函数,把“信息和密钥(就是一小段数据)输入”到函数,输出结果就是"密文"

(2)解密:把密文通过解密算法转换成信息

          过程: 同理,把“解密算法”封装为函数,把“密文和密钥输入”到函数,输出结果就是"信息"

举例:凯撒密码

结合图来看,凯撒想给将军传递的信息是:A DOG,通过加密算法(使字母往后移3位)密钥为3,得到密文“D GRM”;发给将军,密文“D GRM”通过解密算法(使字母往前移3位)密钥为3,得到信息是:A DOG”

5.加密通信分类:对称与非对称

(1)对称:发出者和接收者“密钥相同”

算法举例:AES

(2)非对称:发出者和接收者“密钥不同”(分别是公钥和私钥)

算法举例:RSA,ECC

!!!重点理解:Alice给Bob发一句话,Bob(接收方)生成公钥(可以公开)和私钥(严格保密),Alice用Bob的公钥加密,发送给Bob,Bob收到后用自己的私钥解密

思考:为什么要发明非对称加密???

非对称加密只需传递公钥,公钥本身就是可公开的,也可以实现数字签名

6.数字签名:证明身份

简单来说:用私钥生成一串数字签名,公布出去给其他人,其他人用公钥去验证数字签名是否有效,如果通过就可以确认身份啦~

7.数字签名使用——散列算法

(接下来会有一点复杂,但是会特别有意思,我会尽量说的通俗易懂,如果你看懂了,就会突然顿悟生活中的很多密码小细节哟~~~)

(1)定义

散列(哈希,Hash)算法:单向加密技术,即输入信息,进行计算,输出摘要。主要是用来验证原始数据是否发生变化。

(2)特点:

  • 很难反推出信息
  • 一旦改变信息,摘要会跟着改变
  • 对于不同的消息,对应的摘要几乎不可能相同

(3)应用:

保存密码、数据防篡改和完整性保护、数字签名等

理解(基于不同的应用场景):

(1).有时候下载网上各种文件和软件,真的安全吗?有人会在这个文件中加入病毒,那怎么办?

在网上下载文件时,经常会提供 MD5 值供校验。因为文件实际可能是从世界各地的镜像站下载的,有可能会被篡改,然后加入病毒什么的,就很危险。所以下载完成之后计算一下 MD5 看是否和网站本身MDS值一致,就知道是否被篡改了。

(2).平时我们登陆不同地方,输入密码,会直接被后台看见吗?那岂不是很危险?

一般系统在设计时,都不会直接保存密码原文,如果你的密码直接被看到了,就很危险,使用为了防止密码泄漏,可以用散列函数保存原始密码的摘要,而不是直接保存密码本身。根据散列函数的特点,即便摘要泄漏了,也很难反推出密码是什么,就安全了很多。

(3).为什么有时候注册新用户,系统老是会提醒我们密码不要太短,不要连续,不能是生日等?

虽然散列函数是单向的,但可以使用彩虹表(就是把常见的组合的摘要都计算出来,得到一个摘要表),去比对一下就很容易就能知道原文是什么。

(4).为什么注册新用户,系统老是会提示我们加入几个符号,为了把密码变长?

为了避免被彩虹表攻击,可以在计算摘要时,随机添加一点东西进去再计算摘要,这个东西叫盐值 (salt)。由于盐值足够长且是随机的,这样想通过事先计算的彩虹表去碰撞就会更困难了。例如上面那个字符串很容易能搜到是 admin 的 MD5 值。而如果我们给 admin 后面拼接上 P6R8ERaZ,再计算出 adminP6R8ERaZ 的 MD5 值 70a1a6831709d7e7cb6cc35ccdfdbd39,再去搜索这个值就很难找到他的原文了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值