加密算法简单介绍

加密算法类型

加密算法类型可以分为非对称加密对称加密,以及不需要密钥的散列算法

对称加密算法加密和解密所用的密钥相同,所以要求加密方和解密方事先先知道密钥。

非对称加密算法加密和解密的密钥不同,非对称加密算法需要两个密钥,一个是公钥、一个是私钥。如果使用公钥进行加密,那么只能使用私钥进行解密,反之要用公钥解密。

对称加密算法有:DES、3DES、AES

非对称加密算法有 :RSA、DSA

散列算法:SHA-1、MD5

加密算法详解

DES算法

DES算法是一种分组算法,以64位为分组对数据加密,密钥长度为56位。想要破解DES算法只能通过穷举密钥,需要2的56次方运算次数。

DES加密过程比较复杂,大致可以分为以下几步:

IP置换:明文数据按照初始置换表(IP表)进行置换,得到一个乱序的64位数据,并分成两部分

16轮迭代加密:每一轮进行密钥置换、扩展置换(E扩展置换)、S盒代替、P盒置换、异或运算、左右交换

逆置换:将16轮迭代后的64位数据按照逆初始置换表进行置换,得到最终的64位密文

3DES算法

加密算法与DES算法一致,不过在加密每一块数据块时,会使用3个不同的密钥进行三次加密,安全性比DES算法更高。

AES算法

美国联邦政府采用的区块加密标准,密钥长度支持 128 位、 192 位、256 位,分组长度为 128 位。

算法机密过程:

密钥扩展:根据输入的密钥长度(128位、192位或256位)进行密钥扩展,生成多个轮密钥

初始轮密钥加:将明文(或上一轮的密文,在首轮时)与初始轮密钥进行异或运算,作为加密轮次的初始输入

多轮加密:字节替换、行移位、列混合(除最后一轮外)和轮密钥加。

AES算法通过轮函数和轮密钥的组合,实现了高效且安全的数据加密和解密过程。

RSA加密算法

RSA 加密算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

密钥生成
  • 随机选择两个大的不相等的质数p和q。
  • 计算乘积n = p * q,n的长度就是密钥的长度。
  • 计算欧拉函数φ(n) = (p - 1) * (q - 1),其中φ是欧拉函数,表示小于n且与n互质的正整数的个数。
  • 随机选取一个小于φ(n)的整数e,使得e与φ(n)互质(即它们的最大公约数为1)。
  • 计算e关于φ(n)的模逆元d,即找到一个整数d,使得e * d ≡ 1 (mod φ(n))。
  • 公钥为(e, n),私钥为(d, n)。
加密
  • 假设m是要加密的明文消息(在实际应用中,通常需要将明文转换为正整数)。
  • 计算密文c = m^e mod n。
  • 将密文c发送给接收方。
解密
  • 使用私钥(d, n)对密文c进行解密,计算m = c^d mod n。
  • 将解密后的m转换回原始的明文消息格式(如果之前进行了转换)。

国密算法

  1. SM1:一种分组对称加密算法,其分组长度和密钥长度均为128位。该算法的安全保密强度与AES相当,但算法本身不公开,仅以IP核的形式存在于芯片中。
  2. SM2:基于椭圆曲线密码的公钥密码算法,是一种非对称加密算法。其安全强度高于RSA算法,且在签名速度和密钥生成速度上具有优势。SM2算法包含数字签名、密钥交换和公钥加密等功能,可满足电子认证服务系统等应用需求。
  3. SM3:一种密码杂凑算法,用于替代MD5/SHA-1/SHA-2等国际算法。SM3算法的安全性及效率要高于MD5算法和SHA-1算法,与SHA-256相当。它主要用于数字签名及验证、消息认证码生成及验证、随机数生成等场景。
  4. SM4:一种分组对称加密算法,用于替代DES/AES等国际算法。SM4算法与AES算法具有相同的密钥长度和分组长度,均为128位。该算法在加密过程中使用的算法与解密过程中使用的算法完全相同,唯一不同点在于解密密钥是由加密密钥进行逆序变换后得到的。
  5. SM7:一种分组加密算法,其分组长度和密钥长度均为128位,但算法本身未公开。该算法适用于非接IC卡应用,包括身份识别类应用(如门禁卡、工作证、参赛证)、票务类应用(如大型赛事门票、展会门票)以及支付与通卡类应用(如积分消费卡、校园一卡通、企业一卡通、公交一卡通)。
  6. SM9:基于标识的非对称加密算法,用椭圆曲线对实现的基于标识的数字签名算法、密钥交换协议、密钥封装机制和公钥加密与解密算法。该算法包括数字签名生成算法和验证算法,并给出了相应的流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值