加解密算法概述

article/2025/10/11 3:17:38

文章目录

  • 加解密算法概述
    • 前言
    • 概述
      • 加解密算法
      • 国密算法
    • 应用
      • 总体
      • 对称加解密
      • 非对称加解密
    • 实现

加解密算法概述

前言

密码由来已久,相传公元前405年,雅典和斯巴达之间的伯罗奔尼撒战争最早出现密码,通过杂乱无章的字母拼接成一段话就是要传递的情报。近代战争中敌我双方总会拦截对方的电报,进行破译来获取情报。密码的传输就涉及到对数据内容的加密和解密,双方商量好加解密的方式,一方通过规定对传输的内容加密,另一方获取到密文以后根据规则进行解密,就能获取到对方要传输的真实内容,而其他人并不知道他们双方的约定,所以中途即使拦截拿到了密文也不知道真正要表达的意思,这样保证传输内容的安全。现在有了专门的学科——密码学,研究编制密码和破译密码的技术。

如今是互联网信息时代,每时每刻都有非常庞大的数据在网络中传输,有些敏感的数据需要进行加密来保证安全,比如:用户名密码,必须要进行加密处理,否则被其他人获取了会对造成不可估量的损失。


概述

加解密算法

加解密算法一般分为:对称加密算法非对称加密算法

对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,所以也称这种加密算法为秘密密钥算法或单密钥算法。它要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信的安全性至关重要。

在这里插入图片描述

非对称加解密需要两个密钥,分别为:公钥 (publicKey) 和 私钥 (privateKey)。公钥和私钥是成对的,可以使用其中一个密钥进行加密,另外一个进行解密。

在这里插入图片描述

国密算法

上面提到的几种算法属于国际算法,是美国安全局NSA制定的一系列商用算法,用于加密不涉及国家秘密内容,但是也具有一定价值的数据加密算法,例如政务信息、公司内部资料等。我们国内也有自己的算法,称为国密算法,国密算法是国家密码管理局制定的标准的一系列的算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位,按照分类也分为对称加密算法、非对称加密算法、摘要加密算法等。

  • SM1 为对称加密。其加密强度与 AES 相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。采用该算法已经研制了系列芯片、智能 IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

  • SM2 为非对称加密,基于 ECC。该算法已公开。由于该算法基于 ECC,故其签名速度与秘钥生成速度都快于 RSA。ECC 256位( SM2采用的就是 ECC 256位的一种)安全强度比 RSA 2048位高,但运算速度快于 RSA。

  • SM3 消息摘要。可以用 MD5 作为对比理解。该算法已公开。校验结果为256位。

  • SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。

应用

总体

对称加解密,顾名思义就是通过已知密钥对数据进行加密,再用同一个密钥对数据解密即可,适合任意数据加解密,例如:字符串,文件等。实现比较简单,加解密计算量小,运算速度比较快,但是因为加密和解密使用同一个密钥,如果此密钥泄露,那么其他人就可以轻松破译密文,对密钥的存储安全性要求高,避免密钥泄露。

非对称加解密,就是加密和解密使用不同的密钥,分别为公钥和私钥。与对称加解密相比,实现更复杂,安全性更高,但是加解密计算复杂,速度相应的也就比较慢,特别是大文件加密传输。而且非对称加解密算法可以应用与信息加解密,登录认证,数字签名,数字证书等方面。

对称加解密和非对称加解密各有优缺点,各应用可以根据自身合理选择,也可以组合使用,比如大文件传输可以通过非对称加解密对对称加解密的密钥进行加密,文件数据通过对称加解密完成,其中需要考虑的是对称加解密密钥的存储,传输方式。

对称加解密

对称加解密常用的有 SM4、AES、3DES、DES

DES 加解密算法是最古老的算法之一,使用56位密钥,适合简单应用,安全要求不高的应用使用,由于其密钥长度短,现代计算机已经可以暴力破解了。

3DES 加解密算法是 DES 的加强版,它将 DES 算法三次应用于每个数据块,比 DES 密钥相对更长,采用128位密钥,安全性更高,但是计算速度相对比较慢,之前广泛应用于金融行业支付系统,但是目前研究人员也发现 3DES 存在安全漏洞,美国国家标准技术研究院在2019年发布的指南草案中宣布弃用该算法。

AES 加解密算法即高级加密标准,采用分组加密体制,相比 DES,3DES 加解密算法,安全性更高,速度更快,而且密钥长度可采用128位,192位以及256位,但是一般使用128位,若使用256位密钥会受到 jdk 的限制。目前 AES 是广泛应用的对称加解密算法,包括:无线网络安全、处理安全性和文件加密、SSL 和 TLS 协议、Wi-Fi 安全性、移动应用加密、VPN (虚拟专用网) 等。

SM4 是在2021年已经被我国国家商用密码管理局确定为管家密码行业标准,在国内广泛使用在 WAP 无线网络标准中,还有政府系统的数据传输加密。

非对称加解密

非对称加解密常用的有 SM2、RSA

RSA 加解密算法是迄今为止,最广泛的非对称加解密算法,它的效力在于它依赖的 “素数分解” 方法。基本上,此方法涉及两个巨大的随机质数,并将这些数字相乘以创建另一个巨数。这里的难题是从这个巨大的乘法数确定原始素数。事实证明,对于当今的超级计算机,这个难题实际上是不可能的。2010年,一组研究人员进行了研究,他们花费了超过1500年的计算时间(分布在数百台计算机上)来破解 RSA-768 位密钥,远低于使用的标准2048位 RSA 密钥今天。足见 RSA 加解密算法安全性之高,但是它同样具有非对称加解密算法的缺点,计算复杂,速度较低。

SM2 是一种基于椭圆曲线的密码(ECC),用来替换RSA加密算法的。相比 RSA,复杂度更高,同等安全强度下,密钥长度较短,运算效率都要更优,但是国密算法尚未实现广泛的兼容性,在主流浏览器,操作系统的终端环境中不受信任,面向互联网的产品引用中采用国密算法将无法满足可用性、易用性和全球通用性的需求。

实现

加解密具体实现方式,在项目中的使用方式后面分为两篇文章介绍

对于算法的使用最简单的当然是使用现成的,不用重复造轮子,当然若是想要详细了解加解密原理,可以尝试研究源码,现成的有Hutool 提供的工具类,使用简单,但是有些示例有误😅,而且不一定适用实际开发,后面会根据时间开发的使用列举一些示例仅供参考。

非对称加解密

对称加解密


http://chatgpt.dhexx.cn/article/Zp71jSe2.shtml

相关文章

AES加密解密算法设计(C++)

目 录 1. 背景与意义 4 2. 系统设计 5 2.1系统主要目标 5 2.2主要软件需求(运行环境) 5 2.3功能模块与系统结构 6 3 系统功能程序设计 8 3.1基本要求部分 8 3.1.1 字节替换 8 3.1.2行移位 9 3.1.3列混合 11 3.1.4密钥加 13 3.1.5密钥扩展 14 …

加解密算法

总结 推荐使用的算法: 对称加密算法:AES-GCM-256,SM1 (硬件国密), SM4 (国密)非对称加密算法:RSA2048,SM2 (国密)信息摘要算法:SHA256,SM3 (国密散列算法) 对称加密算法/AES-GCM-256: GCMGM…

加密解密及算法详解

1、简介 今天我要给大家分享的是互联网通信中用到的各种加密解密算法,在我们介绍加解密知识前,首先我们了解一下密码学、密码、加密、数字签名、密钥交换等相关术语的含义。 1.1 密码学 密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规…

常见的加密解密算法

文章目录 一、概述二、区别 一、概述 加密分为单向加密和双向加密: 单向加密 又称为不可逆加密,即生成密文无法反解的一种加密方式;eg:MD5和SHA系列、HMAC。 双向加密 又称为可逆加密,即生成密文后,在需要的时候可以反…

RSA 加密解密算法实现(简单,易懂)!!!

目录 一、什么是RSA算法 1.对称加密 2.非对称加密 3.非对称加密的应用 二、RSA算法的基础操作步骤 1.生成公钥和私钥 2.用公钥加密信息 3.用私钥解密信息 三、AC代码 六、RSA算法的测试 七、共勉 一、什么是RSA算法 在计算机中常用的加密算法分为两类:对称…

13种加密与解密算法【一】

这15种加密解密算法分别是:散列哈希[MD5、SHA1、CRC32],对称[DES,3DES(TDEA、Triple DES),AES、,Blowfish,RC4、RC5,IDEA],Base64、Rabbit、Escape。【三种分…

【2021最新版】Linux面试题总结(48道题含答案解析)

文章目录 1、绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?2、怎么查看当前进程?怎么执行退出?怎么查看当前路径?3、怎么清屏?怎么退出当前命令…

linux操作系统期末考试题库

别光看点个赞呗 文档完整下载链接: w​​​​​​​w​​​​​​​https://download.csdn.net/download/weixin_59241300/87299684 1. cal命令 2.cat命令 3.cd命令 4.date命令 5.echo命令 6.grep命令 7.head 命令 8.ls 命令 9.touch 命令 10.more命令 …

Linux上机考试试题

Linux基础机考测试题 1、如果忘记登录密码,如何破解超级用户root的密码,并将密码改为redhat。(操作过程抓图体现) 开机在出现grub画面,按e键 用上下键选中第二项(类似于kernel /boot/vmlinuz-2.4.18-14 ro rootLABEL…

linux考试题库

(Linux)是一个自由、免费、开放的系统软件,支持多种硬件平台,多用户、多任务特点。 Linux操作系统是(Linus Torvalds)第一个开发的。 下列中(单用户)不是Linux的特点。 Linux一般…

Linux期末考试题库(超全)

文章目录 Linux期末考试题库选择题填空题简答题操作题 Linux期末考试题库 选择题 在创建Linux分区时,一定要创建( D )两个分区 A. FAT/NTFS  B. FAT/SWAP  C. NTFS/SWAP  D.SWAP/根分区 在Red Hat Linux 9 中,系统默…

虚拟机镜像文件高速下载方法之一

虚拟机镜像文件高速下载方法之一(外加镜像文件合集打包) 1.打开网址网易开源镜像站 2.打开对应文件夹(比如下载kali镜像文件) (1)点击 kali-images/ (2)点击自己需要的版本(此处我…

添加虚拟机镜像centso 8的步骤

此篇文章仅介绍添加虚拟机镜像的步骤,特别说明这里以centso 8为例 如有需要安装VMware虚拟机,可以通过以下链接跳转至对应文章 VMware虚拟机安装配置及虚拟机网络模式说明https://blog.csdn.net/weixin_55883492/article/details/123790174?spm1001.2…

vmware 虚拟机恢复ghost镜像文件

一、下载winPE.iso、软碟通 链接:https://pan.baidu.com/s/1Ty2td8_9-3Dr7Qc5XHhyNw 提取码:wtuk 二、恢复: 1、配置基础Vmware系统模板,如何配置可百度搜索 注意:内存必须为2G以上,否则无法使用PE 2、CD/DVD — …

macOS Monterey 12.3 (21E230) 虚拟机 IOS 镜像

macOS Monterey 12.3(内部版本号 21E230),这是一个重大更新,引入了通用控制,这项功能可以支持一个键盘或者鼠标同时控制多台 Mac 电脑或者 iPad。另外根据用户反馈,此次更新也对 AMD 6000 系显卡进行了优化…

虚拟机的镜像安装

虚拟机镜像的安装 (1)下载好虚拟机iso镜像安装包 (2)命令virt-manager 打开虚拟机管理器 点击左上角创建新虚拟机按钮 (3)选择"Local install media"这个选项 --> Forward (4)点击Browse…按钮 (5)Browse Local–>找到rhel-server-7.3-x86_64-dvd.iso 镜像…

KVM详解(五)——KVM虚拟机镜像格式

今天继续给大家介绍Linux运维相关知识,本文主要内容是KVM虚拟机镜像格式。 一、虚拟机常用镜像格式介绍 目前,虚拟机的主流镜像格式有raw、cow、qcow、qcow2以及vmdk,下面,我就详细介绍一下这些主流的虚拟机镜像格式。 &#x…

虚拟机下载-下载windows镜像

虚拟机—官方镜像下载—windows镜像 访问微软官网: win10: https://www.microsoft.com/zh-cn/software-download/windows10 win7: https://www.microsoft.com/zh-cn/software-download/windows11 点击立即下载工具进行下载[windows] 下载 以后-双击—安装程序 点击 [下一步] 协…

如何下载虚拟机和下载kali虚拟机镜像

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 官网下载(Player版本免费)kali虚拟机镜像下载 官网下载(Player版本免费) VMware Workstation Player是免费版本 1.进入官网 2.选择大版本 3.下载 kali虚拟机镜…

Virtualbox加载虚拟机镜像

启动虚拟机 打开这个文件夹 双击蓝色图标 会自动开启virtualbox虚拟机,并加载当前镜像 必须保证当前镜像文件所在全部路径都没有中文 建议启动Virtualbox时使用单击右键->管理员方式运行 配置镜像参数 选中镜像,点击设置 修改usb设置 修改网络设置 桥接的网卡必须是具…