1997年,为了替代DES的AES高级加密标准在全球海选,留到最后的有五个算法有MARS、Rc6、Serpent、Twofish和Rijndael,最终由Rijndael当选。我们已经简单了解了其他四个算法,今天我们就来了解一下MARS加密算法。
MARS加密算法简介
MARS加密算法是IBM公司参选AES评选的候选算法,是一种对称分组密码算法,它继承了DES的一些优点,并在运算指令,算法结构和分组长度以及密钥长度等方面较DES有明显的优势。
MARS加密算法的原理
MARS算法的分组长度128bits,密钥长度128~1248bits,MARS算法中使用的字长为32bits。其中使用了Sbox,Sbox是一个512个元素的数组,每个元素32bits。
MARS加密算法的三部分
- 生成子密钥
MARS算法子密钥是由主密钥生成的,主密钥是由用户或应用给出的。主密钥不被直接用于加密或解密,以抵抗来自密钥方面的攻击,子密钥被用来加密和解密。
- 加密
1、前向混合
前向混合的主要目的是保护加密内核,抵抗来自已知的明文攻击。
2、加密内核
1.数据变换
数据变换是MARS算法的核心.它是基于Feistel一3型变换的,使用了移位,乘,异或,加和查表等运算保障安全性。
2.E-function定义
E-function是外尔斯特拉斯E函数,它是表述强极值必要条件的一个函数。
3、向后混合
向后混合其实就是向前混合的逆过程。
4、密文输出
经过上述操作,即可输出密文。
- 解密
解密过程大体上和加密类似,只是顺序上有所不同,分别为:前向混合——解密内核——向后混合——解密结果。
尽管MARS加密算法没能当选高级加密标准,但其安全性已达到达到AES标准,是一种较为优秀的加密算法。
免责声明:素材源于网络,如有侵权,请联系删稿。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。