对称加密算法和非对称加密算法介绍

对称加密算法和非对称加密算法介绍本文主要介绍对称加密算法 symmetricenc 和非对称加密算法 asymmetriccr 的相关知识 1 对称加密算法 1 1 概述对称加密算法是应用较早的加密算法 技术成熟 在对称加密算法中 数据发送方利用加密密钥 通过指定的加密算法将明文 原始数据 加密处理后 使明文加密为密文 然后发送出去 数据接收方在收到密文后 需要使用加密时使用的密钥 以及加密算法的逆算法对该密文进行解密 才能对应的明文 在对称

本文主要介绍对称加密算法(symmetric encryption algorithm)和非对称加密算法(asymmetric cryptographic algorithm)的相关知识。

1 对称加密算法

1.1 概述

对称加密算法是应用较早的加密算法,技术成熟。

在对称加密算法中,数据发送方利用加密密钥、通过指定的加密算法将明文(原始数据)加密处理后,使明文加密为密文,然后发送出去。数据接收方在收到密文后,需要使用加密时使用的密钥、以及加密算法的逆算法对该密文进行解密,才能对应的明文。

在对称加密算法中,消息发送方和接收方都使用同一个密钥对数据进行加密和解密,所以,使用对称加密时,要求解密方必须事先知道消息的加密密钥。

1.2 示例及隐患

对称加密的一方(比如小红)用密钥 K 给文本 M 加密,另一方(比如小明)用同一个密钥 K 解密。

在此过程中,加解密的模型如下:

小红:C = E(M, K)

小明:M = D(C, K)

根据对称加密原理,通信一方(如小明)必须要事先知道密钥 K,才能够对通信另一方(如小红)发送过来的消息进行解密,双方的加解密过程,如下图所示:

对称加密算法和非对称加密算法介绍

不过,上图中存在这样一个问题:当一方(如小红)生成了密钥 K 之后,把 K 分享给另一方(小明)的过程中,有可能被人窃听到了密钥 K ,那么此时这个窃听者就可以假扮双方中的任何一方与另一方进行通信。这叫中间人攻击 mim(Man-in-the-middle_attack)。此过程如下图所示:

对称加密算法和非对称加密算法介绍

2 非对称加密算法

2.1 概述

非对称加密算法需要两个密钥(密钥对),即公钥(public key)和私钥(private key)。公钥和私钥是成对出现的,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种加密算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥,并将其中的一把作为公钥向其它方公开,得到该公钥的乙方使用该密钥(公钥)对机密信息进行加密后发送给甲方;甲方接收加密信息后,用自己保存的另一把专用密钥(私钥)对加密信息进行解密。

说明:非对称加密算法的一般应用场景是“公钥加密、私钥解密”。

2.2 示例及隐患

现有用于非对称加密的密钥对:K1 和 K2。小红用其中一个密钥加密文本,小明可以用另一个密钥解密文本。比如,小红用 K1 加密,小明用 K2 解密。

上述加解密过程的模型如下:

小红:C = E(M, K1)

小明:M = D(C, K2)

根据上述模型,双方中的一方(比如小红)可以生成 K1 和 K2,然后把其中一个密钥(比如 K1)私藏,称为私钥;另一个密钥(比如 K2)公开,称为公钥。当另一方(比如小明)得到小红公开的公钥之后,双方就可以通信了。双方的加解密过程,如下图所示:

对称加密算法和非对称加密算法介绍

不过,上图中依然存在一个问题:中间人 mim 还是可能截获小红公开的公钥 K2,然后自己弄一对密钥(K1, K2),然后欺骗小明说 K2 是小红的公钥,这样中间人 mim 每次都可以用截获的 K2 解密小红发给小明的文本(然后窃取甚至篡改文本),再用自己制造的 K1 加密了发给小明,小明收到消息后,用中间人 mim 制造的 K2 解密文本。此过程如下图所示:

对称加密算法和非对称加密算法介绍

为了避免上述问题的出现,帮助小明确定得到的公钥确实是小红公开的公钥 K2(而不是中间人 mim 伪造的 K2),数字签名(digital signature)技术应运而生。

关于数字签名技术的相关知识,请点击此处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222621.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午3:21
下一篇 2026年3月17日 下午3:22


相关推荐

  • 哨兵2号(Sentinel-2)介绍、下载、预处理及批处理

    哨兵2号是高分辨率多光谱成像卫星,携带一枚多光谱成像仪(MSI),用于陆地监测,可提供植被、土壤和水覆盖、内陆水路及海岸区域等图像,还可用于紧急救援服务。分为2A和2B两颗卫星。第一颗卫星哨兵2号A于2015年6月23日01:52UTC以“织女星”运载火箭发射升空。6月29日,在轨运行4天的哨兵-2A卫星,传回了第一景数据,幅宽290km,卫星第一次扫描的范围是从瑞典开始,经过中欧和地中…

    2022年4月9日
    743
  • Android SDK安装及配置模拟器[通俗易懂]

    Android SDK安装及配置模拟器[通俗易懂]1、下载官方下载地址2、解压

    2022年7月21日
    22
  • linux快捷键停止抓包命令,【linux命令】Linux抓包命令tcpdump以及常见抓包使用方法…[通俗易懂]

    linux快捷键停止抓包命令,【linux命令】Linux抓包命令tcpdump以及常见抓包使用方法…[通俗易懂]一个学友问下怎么没有抓包命令的教程,感谢热心反馈,特地这里简单补充下内容以便学友了解。系统运行过程中,难免发现服务器一些流量异常或访问异常,我们可以采用tcpdump命令进行抓包。下边简单介绍下该命令使用办法。1,安装tcpdump一些系统默认没有安装,我们需要yum安装下这个命令:yuminstalltcpdump-y2,tcpdump使用。一些使用我们可以tcpdump–help看下…

    2022年8月20日
    14
  • quotename函数的理解

    quotename函数的理解首先,sqlserver里的标识符有一定的规则,比如你createtableabc123(…)那么中间含有空格,它不是符合规则的。你会写做createtable[abc123](….)即以[]来定界标识符。quotename将字串成为有效的标识符。它有什么用呢?我举个例子。你有个表名字叫做aa[]bb当某些应用动

    2022年7月25日
    7
  • python官网下载步骤-windows下载并安装Python的具体步骤

    python官网下载步骤-windows下载并安装Python的具体步骤安装Python下载并安装PythonPython的官网是www.python.org,我们可以直接从官网下载Python。这里介绍在微软Windows和苹果MacOS两种系统中的安装方式。如果Python官网页面之后有所更新,那请大家用自己的思维能力和观察力,大胆地尝试,推测如何下载安装,解决问题。1.5.1Windows系统进入https://www.python.org/页面,选…

    2022年5月1日
    90
  • 范式 函数依赖 多值依赖

    范式 函数依赖 多值依赖第一范式 第二范式 第三范式 第四范式 第五范式 扩展第三范式 函数依赖 完全函数依赖 部分函数依赖 传递函数依赖 平凡函数依赖 多值依赖 定义 举例 图解 关系

    2025年10月7日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号