加解密算法

article/2025/10/11 3:23:57

总结

推荐使用的算法:

  • 对称加密算法:AES-GCM-256,SM1 (硬件国密), SM4 (国密)
  • 非对称加密算法:RSA2048,SM2 (国密)
  • 信息摘要算法:SHA256,SM3 (国密散列算法)

对称加密算法/AES-GCM-256:

  • GCM=GMAC (数据完整性) + CTR (Counter mode,计数器并行加密)
  • 256密钥长度256bits
  • 密钥长度,推荐256bits
  • 分组长度,每个分组固定128bits,第1个分组需要使用初始向量加密,最后1块分组可能需要填充
  • 初始向量,防止相同明文,产生相同的加密结果。初始化变量参与第一个明文块的异或。相同初始向量+相同明文数据 加密后 产生 相同密文
  • 加密方式,每组的加密方式,CTR(Counter Mode,计数器模式)等
  • 填充方式,有PKCS5, PKCS7, NOPADDING
  • 附加消息,数据完整性,防止篡改,不涉密数据,GMAC (Galois message authentication code mode,伽罗华消息认证码)对不涉密的附加消息进行加密
  • 密文=AES(Conter Mode)密文+GMAC密文,数据保密和数据防篡改

非对称加密:

  • RSA原理,给出两个素数的乘积,分解乘积得到这两个素数十分困难
  • RSA常用PEM格式的PKCS#8报文头

信息摘要算法:

  • 使用高效散列算法(SHA256)加密“明文+盐值(长度够长+唯一性)”
  • 使用耗时散列算法(BCrypt或PBKDF2)加密“明文+盐值(长度够长+唯一性)”

简介

对称加密算法:需要秘钥,相同秘钥

  • 定义:用于加密和解密的秘钥相同。
  • 分类:分组密码算法(Block cipher), 流密码算法 (Stream cipher)
  • 常用分组密码算法:AES (常用), SM1 (硬件国密), SM4 (国密), DES (淘汰), 3DES (淘汰), IDEA, RC2等
  • 常用流密码算法:RC4等

对称加密算法/分组密码算法:

  • 加密过程:先将明文分组,再加密每个明文块,最后组合密文块

对称加密算法/流密码算法:

  • 加密过程:1个bit或1个byte的加密
  • 解密过程:1个bit或1个byte的解密

非对称加密算法:需要秘钥,一对秘钥

  • 作用:密文传输,HTTPS证书签发
  • 定义:使用两把完全不同但完全匹配的钥匙,即公钥和私钥。在使用不对称加密算法加密文件时,只有使用同一对公钥和私钥,才能完成对原来数据的加密和解密的过程。 使用公钥加密明文,使用私钥解密密文。公钥是众所周知的。私钥由秘钥生成者持有。
  • 常用:RSA, SM2 (国密), DH, DSA (Digital Signature Algorithm,数字签名算法), ECDSA (Elliptic Curve Digital Signature Algorithm,椭圆曲线数字签名算法), ECC等

信息摘要算法:不需要秘钥

  • 作用:加密用户密码
  • 定义:不需要秘钥而使用盐值加密不同长度的明文得到相同长度的不能被解密的密文,作为信息的摘要
  • 特点:只有输入相同的明文数据&&相同的信息摘要算法&&相同的盐值才能得到相同的密文。
  • 常用:MD (Message Digest, 消息摘要算法)不安全;SHA (Secure Hash Algorithm,安全散列算法);SM3 (国密散列算法);BCrypt (耗时散列算法);PBKDF2 (耗时散列算法);MAC (Message AuthenticationCode,消息认证码算法)

信息摘要算法/MD (Message Digest, 消息摘要算法):

  • MD2, MD4, MD5

信息摘要算法/SHA (Secure Hash Algorithm,安全散列算法):

  • SHA-1, SHA-2(SHA-224, SHA-256, SHA-384, SHA-512)

信息摘要算法/MAC(Message AuthenticationCode,消息认证码算法):

  • HMACMD5, HMACSHA1, HMACSHA256, HMACSHA384, HMACSHA512等

对称加密算法/AES-GCM-256

AES原理:XOR异或运算

AES算法分组长度密钥长度迭代轮数
AES 128128bits128bits10
AES 192128bits192bits12
AES 256128bits256bits14

AES (Advanced Encryption Standard):高级加密标准

AES安全保证:

  • 秘钥长度+迭代轮次
  • AES256密钥长度256bits

AES加密过程:先将明文分组,再加密每个明文块,最后组合密文块

  • 分组长度,每个分组固定128bits,第1个分组需要使用初始向量加密,最后1块分组可能需要填充
  • 初始向量,防止相同明文,产生相同的加密结果。初始化向量与明文块相异或
  • 加密方式,每组的加密方式,CTR(Counter Mode,计数器模式)等
  • 填充方式,有PKCS5, PKCS7, NOPADDING
  • 附加消息,数据完整性,防止篡改,不涉密数据,GMAC (Galois message authentication code mode,伽罗华消息认证码)对不涉密的附加消息进行加密
  • 密文=AES(Conter Mode)密文+GMAC密文,数据保密和数据防篡改

加密方式:

加密方式说明适用
CTR (Conter mode)明文分组与计数器(经过加密)相异或,计数器随分组编号增加而加1并行加密过程,加密速度快
ECB (Electronic code book)
CBC (Cipher block Chaining)
OFB (Output feedback)

加密方式,每组的加密方式,CTR(Counter Mode,计数器模式):

  • 并行加密:所有的块只依赖于Nonce(初始向量)与Counter,并不会依赖于前一个密文块,适合高速传输

加密方式,每组的加密方式,CTR(Counter Mode,计数器模式):
在这里插入图片描述
附件消息,数据完整性,防止篡改,GMAC (Galois message authentication code mode,伽罗华消息认证码):

  • MAC(Message Authentication Code, 消息认证码)防止数据在传输过程中被篡改
  • GMAC就是利用伽罗华域(Galois Field,GF,有限域)乘法运算来计算消息的MAC值
  • 详细内容见 信息摘要算法/MAC系列

GCM(Galois/Counter Mode):

  • GCM=GMAC+CTR
  • CTR是AES的一种加密方式用于保证数据的保密性,GMAC作用于附加消息起到保证数据完整性,防止篡改的作用

AES-GCM加密过程图:
在这里插入图片描述

  • IV(initialization vector):初始向量
  • E k E_k Ek:AES块加密器
  • Auth tag:附加消息,认证标签,用于验证数据完整性
  • 最终加密文本:包含初始向量IV、密文ciphertext和身份验证标记Auth tag

AES-GCM-256:

  • GCM=GMAC+CTR
  • 256密钥长度256bits

AES-GCM-256使用:msg(明文数据), iv(初始向量), tag(附加消息)

  • 密钥长度,推荐256bits
  • 分组长度,每个分组固定128bits,第1个分组需要使用初始向量加密,最后1块分组可能需要填充
  • 初始向量,防止相同明文,产生相同的加密结果。初始化变量参与第一个明文块的异或。相同初始向量+相同明文数据 加密后 产生 相同密文
  • 加密方式,每组的加密方式,CTR(Counter Mode,计数器模式)等
  • 填充方式,有PKCS5, PKCS7, NOPADDING
  • 附加消息,数据完整性,防止篡改,不涉密数据,GMAC (Galois message authentication code mode,伽罗华消息认证码)对不涉密的附加消息进行加密
  • 密文=AES(Conter Mode)密文+GMAC密文,数据保密和数据防篡改

非对称加密算法/RSA2048

RSA原理:给出两个素数的乘积,分解乘积得到这两个素数十分困难,分解几百位的乘积得到这两个素数几乎不可能

RSA作用:

  • 数字签名,HTTPS使用RSA颁发证书

RSA的不同格式:

  • 常用的是PEM格式,PEM格式有两种报文头PKCS#8和PKCS#1

PKCS#8

"-----BEGIN PUBLIC KEY-----": PKCS#8 格式公钥
"-----BEGIN PRIVATE KEY-----": PKCS#8 格式私钥"-----BEGIN RSA PUBLIC KEY-----": PKCS#1 格式公钥
"-----BEGIN RSA PRIVATE KEY-----": PKCS#1 格式私钥

PKCS#8/公钥

-----BEGIN PUBLIC KEY-----
public key
-----END PUBLIC KEY-----

PKCS#8/私钥

-----BEGIN PRIVATE KEY-----
private key
-----END PRIVATE KEY-----

PKCS#1/公钥

-----BEGIN RSA PUBLIC KEY-----
public key
-----END RSA PUBLIC KEY-----

PKCS#1/私钥

-----BEGIN RSA PRIVATE KEY-----
private key
-----END RSA PRIVATE KEY-----

RSA算法流程:

  • 随机选择两个大素数 p , q p, q p,q
  • 计算乘积 n = p ∗ q n=p*q n=pq
  • 计算乘积 ϕ ( n ) = ( p − 1 ) ∗ ( q − 1 ) , ϕ ( n ) 关于 n 的欧拉函数 \phi(n)=(p-1)*(q-1), \phi(n)关于n的欧拉函数 ϕ(n)=(p1)(q1),ϕ(n)关于n的欧拉函数
  • 选择整数 e e e,使得 g c d ( ϕ ( n ) , e ) = 1 , e ∈ ( 1 , ϕ ( n ) ) , e 和 ϕ ( n ) 互为素数 , g c d ( ) 是最大公约数函数 gcd(\phi(n),e)=1, e\in(1,\phi(n)), e和\phi(n)互为素数, gcd()是最大公约数函数 gcd(ϕ(n),e)=1,e(1,ϕ(n)),eϕ(n)互为素数,gcd()是最大公约数函数
  • 计算乘法逆元 d d d d = e − 1 m o d ϕ ( n ) d=e^{-1} mod \phi(n) d=e1modϕ(n)
  • 得到公钥:{e,n}
  • 得到私钥:{d,n}
  • 加密: B = A e m o d n , A 明文 , B 密文 B=A^e mod n, A明文, B密文 B=Aemodn,A明文,B密文
  • 解密: A = B d m o d n , A 明文 , B 密文 A=B^d mod n, A明文, B密文 A=Bdmodn,A明文,B密文

信息摘要算法/SHA256

SHA作用:是一种从任意长度数据中创建固定长度的数字指纹(信息摘要)的算法
SHA-2:包括SHA-224, SHA-256, SHA-384, SHA-512

信息摘要算法/MAC系列

在这里插入图片描述

MAC(Message Authentication Code, 消息认证码):

  • 作用:防止数据在传输过程中被篡改
  • 发送者:
    与发送者商议秘钥,相同秘钥
    明文消息》MAC算法+秘钥》MAC值1
    发送明文消息+MAC值1
  • 接收者:
    与接收者商议秘钥,相同秘钥
    接收到明文消息+MAC值1
    接收到的明文消息》MAC算法+秘钥》MAC值2
    对比:MAC值1和MAC值2是否相等

信息摘要算法/问题

问题:黑客事先准备一个密码明文的各种散列算法结果(彩虹表)进行暴力破解

问题解决/使用高效散列算法+盐值(长度够长+唯一性):

  • 高效散列算法执行一次耗时时间短,仍然可以通过穷举 盐值+明文内容 进行破解

问题解决/使用耗时散列算法+盐值(长度够长+唯一性):

  • 使用耗时散列算法BCrypt和PBKDF2算法,他们可以通过参数设置重复计算的次数,重复计算的次数越多耗时越长

总结:

  • 使用高效散列算法(SHA256)加密“明文+盐值(长度够长+唯一性)”
  • 使用耗时散列算法(BCrypt或PBKDF2)加密“明文+盐值(长度够长+唯一性)”

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

相关文章

加密解密及算法详解

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设置 修改网络设置 桥接的网卡必须是具…

使用虚拟机镜像文件导入部署openGauss

实验项目名称 实验1 使用虚拟机镜像文件导入部署openGauss 一、实验目的: 将现有的VirtualboxcentosopenGauss镜像文件导入虚拟机,并启动使用openGauss数据库。本实验中使用的镜像文件名为:centos_openGauss.ova。 二、实验内容及过程、结…

制作虚拟机镜像文件

1. Linux(Ubuntu14.04)虚拟机镜像的制作过程 (1)准备ISO文件 准备Ubuntu14.04版本操作系统的ISO文件,文件名为ubuntu-14.04-server-amd64.iso(已提供)。 (2) 将ISO文件上传至宿主机 将Ubuntu14.04的ISO文件通过Xftp上…