news 2026/4/17 2:47:19

关于对称加密和非对称加密,看这一篇就够了

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于对称加密和非对称加密,看这一篇就够了

计算机网络在给我们带来便利的同时,也存在很多安全隐患,比如信息伪造,病毒入侵,端点监听,SQL 注入等,给我们日常生活造成很严重的影响。

那么这篇文章我就跟大家聊聊常见的网络安全隐患,只作为科普,不能作为网安系列文章。

网络安全性威胁的种类

在网络通信中可能会受到各种各样的潜在的安全性威胁,这些威胁总的来讲可以大致分为下面几类:

在上面四种网络安全类型中,截获是属于被动攻击的,因为截获主要为了窃听信息,它并没有攻击行为;而中断、篡改和伪造都是主动攻击,他们会产生攻击行为。

这里先来认识一个新的概念叫 PDU ,PDU 的官方解释是协议数据单元,但是它其实指的就是计算机网络这几层模型里面所描述的数据单元,比如应用层交换的就是应用数据,TCP 层的 PDU 交换的就是段。

在被动攻击中,攻击者只是观察和分析 PDU ,并没有对通信内容造成干扰。通过观察和分析 PDU,进而了解通信双方的通信类型,通信双方的地址和身份,这种被动攻击又叫做流量分析(traffic analysis)

主动攻击是指攻击者对通信内容中的 PDU 进行各种处理。比如有选择的更改、替换 PDU 中的记录,甚至还可以伪造 PDU ,记录之前截获的 PDU ,在其他连接中释放此 PDU ,造成通信干扰和破坏。

主动攻击还可以细分为下面三种类型:

那么我们该如何知道计算机被攻击了呢?

对于被动攻击,通常是无法检测出来的,对于主动攻击,我们通常会以下面这几个大前提进行防范:

对于被动攻击,可以采用各种数据的加密技术;对于主动攻击,可以采用防范措施与加密技术结合防范。

还有一种威胁比较大的是恶意程序,会对互联网造成比较大的影响,据史料记载,互联网编年体到现在出现比较大规模影响的病毒有:计算机病毒、计算机蠕虫、特洛伊木马、逻辑炸弹、勒索软件等。

数据加密的模型

由于通信存在不安全性,所以出现了加密技术,使用加密技术对报文进行加密后,再传到目标服务器后再进行解密,一般的加密和解密模型如下图所示:

上图所示的加密密钥和解密密钥所使用的密钥 K 通常是一串字符串,一般来说会有下面这种公式

Y = Ek(X)

通过加密算法使用加密密钥对明文 X 进行加密。

解密算法是加密算法的逆运算,再进行解密时如果不使用事先约定好的密钥 K 就无法完成解密工作。

Dk(Y) = Dk(Ek(x)) = X

这里我们假设了加密密钥和解密密钥是相同的,但真实情况未必一定是相同的,只不过加密密钥和解密密钥存在着某种关联性,这个密钥通常由密钥中心提供。当密钥进行传输时,一定要经过安全信道,否则会有安全风险。

这里延伸出来了两个新的概念,密码编码学(cryptography)密码分析学(cryptanalysis)。密码编码学着重对密码进行设计的学科,密码分析学着重对报文进行分析,提炼出加密所使用明文或者密钥的学科。这两个学科合起来就是密码学。其实密码学归根结底就是做好加密和解密的这个过程

对称加密和非对称加密

从很早以前人类就有了对通话内容进行加密的思想,进入 20 世纪以来,随着电子信息、线性代数以及计算复杂性理论等学科的研究深入,密码学进入了一个新的发展阶段,一共出现了两种密码机制:对称加密和非对称加密。

对称加密

所谓的对称加密,起归根结底在于加密和解密的密钥是相同的

数据加密标准DES(Data Encryption Standard)就是一种对称加密的标准,DES 可以说是用途最广泛的对称加密算法。

DES 是一种分组密码,在加密前首先先对整个报文进行分组,每一组都是 64 位的二进制数据。然后对每一个 64 位的二进制数据进行加密,产生一组 64 位的密文数据,最后将各组密文串起来,就是整个加密密文。使用的密钥是 64 位(实际使用 56 位,最后 8 位于奇偶校验)。

在 DES 分组加密机制中,进行保密的只是加密密钥,而加密算法是公开的。

不过 DES 的这种加密机制是存在弊端的:由于 DES 会把报文拆开成为一组一组的 64 位数据,64 位二进制数据有 56 位可用,所以数据总量是 2 ^ 56 次方,它的密码生命周期非常段,这个数据总量在现在的计算机世界非常容易被破解!在 1999 年当时价值 100 万和 1000 万美元的超级计算机暴力破解 DES 的密码分别用了 3.5 小时和 21 分钟。

在 DES 之后出现了IDEA(International Data Encryption Algorithm)算法,IDEA 使用的是 128 位密钥进行加密,这个长度很难被破解了。

非对称加密

非对称加密其实还有一个叫法是公钥密码加密,非对称加密使用的是不同的加密密钥和解密密钥

非对称加密出现的原因大概是基于两个方面:一是由于对称加密的密钥分配问题,二是由于对数字签名的要求。在对称加密中,加密解密双方用的是同一种密钥,这是如何做到的呢?一种是事先约定,另外一种是使用互联网信使来传送。在大规模互联网中,用信使来传输密钥显然是不太合适的,但是如果采用事先约定的方式,那么对于后续的更新和迭代来说又比较困难。还有一种方式是使用安全系数比较高的密钥分配中心(Key Distribution Center),也会使网络的成本增加。

同时,一些需要对信息内容进行保密的机构越来越需要数字签名,根据数字签名,对方才知道某项内容是由特定的人或者公司产生的。根据这两项原因导致了非对称加密的出现。

非对称加密主要的算法有三种:RSA、DSA、ECDSA,目前使用最广泛、最普遍的非对称加密算法就是 RSA。RSA 采用的是数论中的大数分解方式。

非对称加密的特点是这样的:

某些能够生产公钥和私钥的密钥生成器会生产出一对公钥和私钥给接受者 B :即加密密钥 PKB 和 解密密钥 SKB。发送者所使用的加密密钥也是 PKB,这个密钥是公开的,而接受者的解密密钥 SKB 是非公开的,接受者 B 特有的。

发送者利用接受者的密钥 PKB 通过加密算法 E 对密钥进行加密,得出了密文 Y 再发送给接受者 B:

Y = E(PKB(X))

接受者 B 用自己的私钥通过解密算法 D 对密文 Y 进行解密,得出密文 X :

D(SKB(Y))= D(SKB)( E(PKB(X))) = X

下图是这个加密解密过程:

这里需要注意一点的是,任何加密方法的安全性都取决于密钥的长度,以及攻破密文所需要的计算量,而不是简单的取决于加密本身。

数字签名

我们在日常写信、上交某些材料的时候都需要亲笔签名或者使用手印、印章的方式来验证真实性,那么在互联网中如何验证其真实性呢?在网络通信中,使用数字签名的方式来验证,数字签名必须实现下面三点功能:

  1. 接受者能够核实发送者对报文的签名,确定报文是由发送者发出的,别人无法进行伪造,这叫做报文鉴别
  2. 接受者确信所收到数据和发送者发送的数据是一致的,没有被篡改过,这叫做报文完整性
  3. 发送者事后不能抵赖自己发送的报文,这叫做不可否认

下面来讨论一下数字签名的鉴别过程:

首先,发送者 A 用自己的私钥 SKA 对报文 A 经过算法 D 后得出密文 D(SKA(X)),算法 D 不是解密运算,它只是一个能得到不可读的密文的算法。A 把经过算法 D 运算后得出来的密文传给 B,B 对其进行验签。B 会用 A 的公钥进行 E 运算,还原出报文 X 。

这里需要注意一点:任何人用 A 的公钥 PKA 进行 E 运算后都会得出 A 发送的明文 X ,所以下图中的 D 和 E 算法并不是加密解密算法。

除了 A 之外没有人持有 A 的私钥 SKA ,所以除 A 外没有人能产生密文 D(SKA(X))。这样,B 就相信报文 X 是签名 A 发送的,这就叫做报文鉴别。如果其他人篡改过报文,但是却无法使用私钥 A 的签名 SKA,那么 B 使用公钥解密后就知道报文被篡改过,这样就保证了报文的完整性。如果 A 想要抵赖自己层发给过报文 B ,那么 B 就可以把 X 以及密文 D(SKA(X))拿给公证的第三者,很容易证明。这就是不可否认。

但是上述过程仅仅对报文进行了签名,却并没有对报文本身进行任何加密操作,如果传输的过程中被攻击者截获到了 D(SKA(X))并且知道发送者身份的人,就可以通过查阅相关手册知道 A 的公钥,从而得知 A 的明文,这显然是不安全的,如何解决呢?

需要使用上面的非对称加密算法再对明文 X 进行加密一波,示意图如下。

示意图画出来,估计大家也好理解,无非就是增加了一步用 B 的公钥加密,在用 B 的私钥解密的过程。

学习资源

如果你是也准备转行学习网络安全(黑客)或者正在学习,这里开源一份360智榜样学习中心独家出品《网络攻防知识库》,希望能够帮助到你

知识库由360智榜样学习中心独家打造出品,旨在帮助网络安全从业者或兴趣爱好者零基础快速入门提升实战能力,熟练掌握基础攻防到深度对抗。

1、知识库价值

深度: 本知识库超越常规工具手册,深入剖析攻击技术的底层原理与高级防御策略,并对业内挑战巨大的APT攻击链分析、隐蔽信道建立等,提供了独到的技术视角和实战验证过的对抗方案。

广度: 面向企业安全建设的核心场景(渗透测试、红蓝对抗、威胁狩猎、应急响应、安全运营),本知识库覆盖了从攻击发起、路径突破、权限维持、横向移动到防御检测、响应处置、溯源反制的全生命周期关键节点,是应对复杂攻防挑战的实用指南。

实战性: 知识库内容源于真实攻防对抗和大型演练实践,通过详尽的攻击复现案例、防御配置实例、自动化脚本代码来传递核心思路与落地方法。

2、 部分核心内容展示

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

360智榜样学习中心独家《网络攻防知识库》采用由浅入深、攻防结合的讲述方式,既夯实基础技能,更深入高阶对抗技术。

内容组织紧密结合攻防场景,辅以大量真实环境复现案例、自动化工具脚本及配置解析。通过策略讲解、原理剖析、实战演示相结合,是你学习过程中好帮手。

1、网络安全意识

2、Linux操作系统

3、WEB架构基础与HTTP协议

4、Web渗透测试

5、渗透测试案例分享

6、渗透测试实战技巧

7、攻防对战实战

8、CTF之MISC实战讲解

3、适合学习的人群

一、基础适配人群

  1. 零基础转型者‌:适合计算机零基础但愿意系统学习的人群,资料覆盖从网络协议、操作系统到渗透测试的完整知识链‌;
  2. 开发/运维人员‌:具备编程或运维基础者可通过资料快速掌握安全防护与漏洞修复技能,实现职业方向拓展‌或者转行就业;
  3. 应届毕业生‌:计算机相关专业学生可通过资料构建完整的网络安全知识体系,缩短企业用人适应期‌;

二、能力提升适配

1、‌技术爱好者‌:适合对攻防技术有强烈兴趣,希望掌握漏洞挖掘、渗透测试等实战技能的学习者‌;

2、安全从业者‌:帮助初级安全工程师系统化提升Web安全、逆向工程等专项能力‌;

3、‌合规需求者‌:包含等保规范、安全策略制定等内容,适合需要应对合规审计的企业人员‌;

因篇幅有限,仅展示部分资料,完整版的网络安全学习资料已经上传CSDN,朋友们如果需要可以在下方CSDN官方认证二维码免费领取【保证100%免费】

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 18:12:31

武汉GEO优化打开AI搜索流量新入口

在武汉光谷做软件开发的王总最近很焦虑。以前,只要在百度投够了钱,或者SEO做得好,客户就能找上门。但最近几个月,他发现流量逻辑变了。 客户不再只是单纯地搜关键词,而是开始习惯问文心一言、豆包、Kimi,甚…

作者头像 李华
网站建设 2026/4/9 10:05:09

一个集群的zk节点挂掉之后影响kafka的运行吗

ZooKeeper(ZK)在Kafka集群中扮演元数据管理和协调的核心角色,其节点挂掉是否影响Kafka运行,需分情况讨论:1. 单节点挂掉(非Leader)影响有限:ZK集群通常由奇数个节点组成(…

作者头像 李华
网站建设 2026/4/13 5:05:36

如何用沉浸式双语翻译工具告别阅读效率低下的困扰?

如何用沉浸式双语翻译工具告别阅读效率低下的困扰? 【免费下载链接】immersive-translate 沉浸式双语网页翻译扩展 , 支持输入框翻译, 鼠标悬停翻译, PDF, Epub, 字幕文件, TXT 文件翻译 - Immersive Dual Web Page Translation Extension …

作者头像 李华
网站建设 2026/4/14 17:22:50

基于微信小程序的家乡扶贫助农系统设计与实现毕业设计项目源码

基于微信小程序的家乡扶贫助农系统,直击农村“优质农产卖难、销路狭窄”与城市消费者“寻源难、购优难”的核心矛盾,依托微信小程序“低门槛、广覆盖、强社交”的特性,构建“农产直连、精准帮扶、数据赋能”的家乡扶贫助农生态。传统模式下&a…

作者头像 李华
网站建设 2026/4/16 16:04:09

比传统调试快10倍:AI处理文件结束错误的新方法

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 构建一个效率对比工具,模拟传统调试和AI辅助调试处理Unexpected End of File错误的全过程。传统方式包括手动日志分析、断点调试等步骤;AI方式展示自动错误检…

作者头像 李华
网站建设 2026/3/30 17:18:05

Daz到Blender资产迁移终极指南:5分钟快速上手完整教程

你是否曾为Daz Studio中精心制作的角色无法在Blender中完美呈现而烦恼?🤔 今天我们就来分享一个简单高效的Daz到Blender资产迁移方法,让你在短短5分钟内掌握完整的转换流程。Daz到Blender转换是3D创作中连接两大软件生态的重要桥梁&#xff0…

作者头像 李华