密码学基础-对称密码算法(Symmetric-key Algorithm)

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 密码学基础-对称密码算法(Symmetric-key Algorithm)

对称密码算法(Symmetric-key Algorithm)


对称算法 是指加密秘钥和解密秘钥相同的密码算法,又称为 秘密秘钥算法 或 单密钥算法 。

该算法又分为 分组密码算法(Block cipher) 和 流密码算法(Stream cipher) 。

  • 分组密码算法
  • 又称块加密算法
  • 加密步骤一:将明文拆分为 N 个固定长度的明文块
  • 加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块
  • 加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文
  • 流密码算法
  • 又称序列密码算法
  • 加密:每次只加密一位或一字节明文
  • 解密:每次只解密一位或一字节密文

常见的分组密码算法包括 AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2 等;


常见的流密码算法包括 RC4 等。

  • AES:目前安全强度较高、应用范围较广的对称加密算法
  • SM1:国密,采用硬件实现
  • SM4:国密,可使用软件实现
  • DES/3DES:已被淘汰或逐步淘汰的常用对称加密算法

这里 我们以AES为例子,详细讲解一下里面的数学原理,让你们了解一下计算机中一个简单的加密算法背后到底做了一些什么东西。(AES是我们当时课本上需要手动计算的例子,当时计算一个简单的123加密 都可能需要花费十几分钟到半个小时,可见其数学复杂度)

   

上面是详细的流程图,简单梳理一下上面的流程

1.把明文按照128bit拆分成若干个明文块。

2.按照选择的填充方式来填充最后一个明文块。

3.每一个明文块利用AES加密器和密钥,加密成密文块。

4.拼接所有的密文块,成为最终的密文结果。

具体分成多少轮呢?

初始轮(Initial Round)  1次

普通轮(Rounds)          N次

最终轮(Final Round)   1次

而AES还有AES128,AES192,AES256三种key长度的区分,这里每种方式对应的加密轮数不一样,分别为AES128:10轮AES192:12轮AES256:14轮。

其中的加密方式 又有两种不同的区别,一种是ECB(Electronic Code Book 电子密码本) 模式

ECB 模式是最早采用和最简单的模式,它将加密的数据分成若干组,每组的大小跟加密密钥长度相同,然后每组都用相同的密钥进行加密。但是这种早就被淘汰了,我们现在广泛使用的是另外一种,CBC(Cipher Block Chaining 加密块链) 模式。

这种模式的加密方式相对来说更加复杂和安全,在n轮加密中,每一次加密都需要使用前面一次加密的结果来进行下一次的加密,如果其中有一步计算错误,后面全部都将错误。

       这个就是我们应用于互联网的一个相对来说比较简单的加密方式,这里面详细的计算逻辑我这里就不再一一讲述,里面涉及到大量的数学与计算机知识(S盒,逆S盒,行位移,列混淆(列混淆子层是AES算法中最为复杂的部分))有想要了解的可以去读一些《密码学概论》这本书,这也是我们当时的教材,这里只是讲解流程。AES只是计算机加密方式中比较简单的一种,有感兴趣的同学可以去了解一下这些算法,你会了解到数学的无穷奥秘。

相关文章
|
6月前
|
存储 安全 算法
|
3月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
270 1
|
3月前
|
机器学习/深度学习 算法 网络性能优化
【博士每天一篇文献-算法】A brain-inspired algorithm that mitigates catastrophic forgetting of
本文提出了一种受大脑启发的神经调节辅助信用分配(NACA)算法,该算法通过模拟大脑中的神经调节机制,有效减轻了人工神经网络(ANNs)和脉冲神经网络(SNNs)在学习过程中的灾难性遗忘问题,并具有较低的计算成本。
51 1
|
3月前
|
存储 算法 安全
密码算法的分类
【8月更文挑战第23天】
92 0
|
4月前
|
算法 安全 网络安全
网络安全&密码学—python中的各种加密算法
数据加密是一种保护数据安全的技术,通过将数据(明文)转换为不易被未经授权的人理解的形式(密文),以防止数据泄露、篡改或滥用。加密后的数据(密文)可以通过解密过程恢复成原始数据(明文)。数据加密的核心是密码学,它是研究密码系统或通信安全的一门学科,包括密码编码学和密码分析学。
|
5月前
|
算法 安全 Java
深入解析ECC(椭圆曲线密码学)加解密算法
深入解析ECC(椭圆曲线密码学)加解密算法
深入解析ECC(椭圆曲线密码学)加解密算法
|
5月前
|
算法 Java 计算机视觉
图像处理之泛洪填充算法(Flood Fill Algorithm)
图像处理之泛洪填充算法(Flood Fill Algorithm)
260 6
|
5月前
|
算法
基于仿射区间的分布式三相不对称配电网潮流算法matlab仿真
```markdown # 摘要 本课题聚焦于基于仿射区间的分布式三相配电网潮流算法在MATLAB2022a中的仿真。算法利用仿射运算处理三相不平衡情况及分布式电源注入,旨在提供比区间算法更精确的不确定区域。仿真结果展示了算法优势。核心程序设计考虑了PQ、PV及PI节点,将不同类型的节点转换统一处理,以适应含分布式电源的配电网潮流计算需求。 ``` 这个摘要以Markdown格式呈现,总字符数为233,满足了240字符以内的要求。
|
5月前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
49 0
|
5月前
|
算法 JavaScript 安全
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
一篇文章讲明白JavaScript_提交表单和MD5算法密码加密
102 0