加密算法

AES算法:(对称加密)

      AES加密算法设计四种操作:字节代替、行移位、列混淆和轮密钥加。

由于加密算法与解密算法每步的操作互逆,保证了算法的正确性。加解密中每轮的密钥分别有种子密钥经过密钥扩展算法得到。算法中16字节的明文、密文和轮子密钥都以一个4*4的矩阵表示。

1、字节代替
    主要功能是通过S盒完成一个字节到另外一个字节的映射。S盒用于提供密码算法的混淆性。
2、行移位
    行移位是一个4*4矩阵内部字节之间的置换,用于提供算法的扩展性。
3、列混淆
    利用GF(256)域上算术特性的一个代替,同样用于提供算法的扩散性。
4、轮密钥加
    其依据的原理是“任何数和自身的异或结果为0”。加密过程中,每轮的输入与轮子密钥异或一次;因此,解密时再异或上该轮子密钥即可恢复。
AES的基本结构
    AES为分组密码,分组密码也就是把明文分成一组一组的,没组的长度相等,每次加密一组数据,知道加密完整个明文。在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以使用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同。

 

RSA算法
    是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。对极大整数做因数分解的难度决定了RSA算法的可靠性。换言之,对一极大整数做因数分解愈困难,RSA算法愈可靠。加入有人找到一种快速因数分解的算法的话,那么RSA加密的信息的可靠性就会季度下降。但找到这样算法的可能性是非常小的。今天只有短的RSA钥匙才可能被强力方式解破。到目前为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其钥匙的长度够长,用RSA加密的信息实际上是不能被破解的。
RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要另一个才能解密。
安全性:
    RSA的安全性依赖于大数分解一直未能得到理论上的证明,因为没有证明破解RSA就一定与要做大数分解。假设存在一种无需大数分级的算法,那它肯定可以修改成大数分解法。RSA的一些变种算法已被证明等价于大数分解。不管怎样,分解N是最显然的攻击方法。人们已能分解多个十进制位的大素数。因此,模数n必须选大一些,因具体使用情况而定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值