1997年,为了替代DES的AES高级加密标准在全球海选,留到最后的有五个算法有MARS、Rc6、Serpent、Twofish和Rijndael,最终由Rijndael当选。我们已经简单了解了其他四个算法,今天我们就来了解一下MARS加密算法。

MARS

MARS加密算法简介

MARS加密算法是IBM公司参选AES评选的候选算法,是一种对称分组密码算法,它继承了DES的一些优点,并在运算指令,算法结构和分组长度以及密钥长度等方面较DES有明显的优势。

MARS加密算法的原理

MARS算法的分组长度128bits,密钥长度128~1248bits,MARS算法中使用的字长为32bits。其中使用了Sbox,Sbox是一个512个元素的数组,每个元素32bits。

MARS加密算法

MARS加密算法的三部分

  • 生成子密钥

MARS算法子密钥是由主密钥生成的,主密钥是由用户或应用给出的。主密钥不被直接用于加密或解密,以抵抗来自密钥方面的攻击,子密钥被用来加密和解密。

  • 加密

1、前向混合

前向混合的主要目的是保护加密内核,抵抗来自已知的明文攻击。

2、加密内核

      1.数据变换

数据变换是MARS算法的核心.它是基于Feistel一3型变换的,使用了移位,乘,异或,加和查表等运算保障安全性。

      2.E-function定义

E-function是外尔斯特拉斯E函数,它是表述强极值必要条件的一个函数。

3、向后混合

向后混合其实就是向前混合的逆过程。

4、密文输出

经过上述操作,即可输出密文。

MARS加密算法

  • 解密

解密过程大体上和加密类似,只是顺序上有所不同,分别为:前向混合——解密内核——向后混合——解密结果。

尽管MARS加密算法没能当选高级加密标准,但其安全性已达到达到AES标准,是一种较为优秀的加密算法。

免责声明:素材源于网络,如有侵权,请联系删稿。