MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Crypto:密码学算法简要汇总

2025-03-13 15:59 huorong 精选文章 2 ℃ 0 评论

密码学算法简要汇总


一、对称加密算法

1. 定义

对称加密算法是指加密和解密使用相同密钥的加密算法。这意味着发送方和接收方必须共享同一个密钥,并且要保证密钥的保密性。

2. 常见算法

DES(Data Encryption Standard)

背景:它是一种比较早期的对称加密算法,由美国国家标准局公布。在很长一段时间内被广泛应用。

原理:它使用56位密钥对64位的数据块进行加密。其加密过程包括初始置换、16轮的Feistel结构加密变换、逆初始置换等步骤。例如,将明文数据按照一定规则进行分组,通过密钥对每一组数据进行复杂的置换和替换操作,最后得到密文。不过,由于其密钥长度较短,在现代计算能力下安全性受到挑战。

3DES(Triple DES)

背景:为了增强DES的安全性而出现的改进算法。

原理:它实际上是对DES算法进行三次加密。使用两个或三个不同的密钥(如果是两个密钥,加密过程是先使用第一个密钥加密,再用第二个密钥解密,最后再用第一个密钥加密),通过这种方式来提高加密的安全性,其密钥长度可以达到112位或168位。

AES(Advanced Encryption Standard)

背景:它是为了替代DES成为新一代的标准对称加密算法而设计的。被广泛应用于各种安全领域,如网络通信加密、数据存储加密等。

原理:支持128位、192位和256位密钥长度。它以字节为单位对数据块进行操作,加密过程主要包括字节代换、行移位、列混合和轮密钥加等步骤。以128位密钥为例,数据块大小为128位,经过多轮加密变换后得到密文。例如,在字节代换步骤中,会根据一个固定的S -盒(一个查找表)对每个字节进行替换,从而实现混淆的效果。


二、非对称加密算法

1. 定义

非对称加密算法也称为公钥加密算法。它使用一对密钥,即公钥和私钥。公钥可以公开,用于加密数据;私钥则需要保密,用于解密用公钥加密的数据。

2. 常见算法

RSA(Rivest Shamir Adleman)

背景:是目前最常用的非对称加密算法之一,以其三位发明者的名字命名。它在数字签名、密钥交换等诸多领域都有广泛应用。

原理:其安全性基于大整数分解问题的困难性。首先生成两个大素数p和q,计算它们的乘积n = pq。然后通过一些数学运算得到公钥和私钥。例如,公钥一般包括两个参数(e,n),私钥包括(d,n)。当对消息m进行加密时,使用公钥计算密文c=m^e mod n,而解密时使用私钥计算明文m = c^d mod n。不过,随着计算能力的提升和量子计算的发展,RSA算法的安全性也面临一定的挑战。

ECC(Elliptic Curve Cryptography)

背景:是一种基于椭圆曲线离散对数问题的非对称加密算法。它在资源受限的设备(如移动设备)上有很好的应用前景,因为它可以用较短的密钥长度达到与RSA相当的安全性。

原理:椭圆曲线是由形如y^2=x^3+ax + b(a和b为常数)的方程定义的曲线。在椭圆曲线上定义点的加法运算,通过在椭圆曲线上选取一个基点G,利用私钥d与基点G进行多次加法运算得到公钥Q = dG。加密和解密过程涉及椭圆曲线点的运算。例如,加密时将消息映射到椭圆曲线上的点,通过公钥进行点的运算得到密文点,解密时则利用私钥和密文点进行反向运算得到原始消息对应的点。


三、哈希算法

1. 定义

哈希算法也叫散列算法,它是一种将任意长度的数据映射为固定长度的哈希值(也称为散列值或消息摘要)的算法。哈希算法主要用于验证数据的完整性,而不是用于加密数据(因为哈希值是不可逆的)。

2. 常见算法

MD5(Message Digest Algorithm 5)

背景:曾经是非常流行的哈希算法,广泛用于文件完整性验证等场景。

原理:它可以将任意长度的消息输入转换为128位的哈希值。其计算过程包括对消息进行填充、分组,然后经过一系列复杂的逻辑运算。例如,在分组处理阶段,对每一个512位的数据分组进行四轮运算,每一轮都包含多个非线性函数和位运算,最后将各个分组的运算结果组合起来得到最终的128位哈希值。不过,由于其安全性缺陷(存在碰撞问题,即可以找到两个不同的消息产生相同的哈希值),现在已经不建议用于安全敏感的场合。

SHA 1(Secure Hash Algorithm 1)

背景:是美国国家安全局设计的哈希算法,在数字签名等领域有广泛应用。

原理:它生成160位的哈希值。计算过程包括消息填充、分组、扩展和压缩等步骤。例如,在压缩步骤中,通过一系列复杂的逻辑函数和位运算对每个分组进行处理,将消息的多个分组逐步压缩成最终的160位哈希值。和MD5类似,由于发现了碰撞攻击的可能性,它也逐渐被安全性更高的算法替代。

SHA 2(Secure Hash Algorithm 2)

背景:包括SHA 224、SHA 256、SHA 384和SHA 512等多种变体,是目前应用较为广泛的哈希算法系列。

原理:以SHA 256为例,它将消息转换为256位的哈希值。计算过程首先对消息进行填充,使其长度符合要求,然后将消息分成多个512位的块,对每个块进行一系列复杂的逻辑运算,包括常数加载、消息字生成、压缩函数等步骤,最终得到256位的哈希值。这些算法在安全性上比MD5和SHA 1有了很大的提高,能够有效抵抗碰撞攻击等多种攻击方式。

SHA 3(Secure Hash Algorithm 3)

背景:是为了应对哈希函数潜在的安全威胁而开发的新一代哈希算法。它是通过公开竞赛的方式选出的优胜算法。

原理:SHA 3算法基于海绵结构。它能够吸收任意长度的输入数据,通过内部的置换和吸收/挤压操作,输出固定长度的哈希值。这种结构具有很好的灵活性和安全性,并且与SHA 2系列算法在设计理念上有所不同,为哈希算法提供了一种新的选择。

Tags:消息摘要算法

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言