IBM的MARS加密算法实现(上)

一、背景知识

1977年颁布的数据加密标准DES算法。其56位长的密码空间在芯片技术和计算技术高速发展的今天,越来越不适应安全需求。1997年9月美国国家标准技术研究所(NIST)提出了征求新的加密标准---AES (Advanced Encryption Standard)的建议,作为一种取代DES的二十世纪加密标准技术。其目标是:(1)执行速度快;(2)易于设计;(3)从大型计算机到智能IC卡(CPU卡)都可实现。1998年8月第一次AES会议(AES1)上,宣布了来自12个国家的15种候选AES算法。于1999年8月第二次AES会议(ARD2)上,从中筛选出5个候选算法:

Algorithm Author(s)

(1) MARS IBM (US)

(2) RC6 RSA Laboratories(US)

(3) Rijndael John Danemen,Vincent Rijmen(Belgium)

(4) Serpent Ross Anderson(UK),Eli Bihan(Israel),Lars Knudsen(Nornay)

(5) Twofish Bruce Schneier,John Kelsey,Doug Whiting,David Wagner,Chris Hall,Nids Ferguson

经过大量的分析及评估后,NIST队伍最终选择了Rijndael。这是在考虑安全,性能,效率,易用和灵活等诸多方面做的一种权衡选择,正如NIST在其报告中称:"所有这五种算法对AES都很安全".本文将介绍一下由IBM公司提出的MARS算法的原理和部分笔者编写的算法实现代码.

二、算法原理

密钥增加作为预白化处理,经8轮无密钥的向前混合,8轮有密钥的向前变换,8轮有密钥的向后变换,8轮无密钥的向后混合,以及作为后白化处理的密钥减法。16轮有密钥的转换称为密码核(cryptographic core),无密钥的迭代使用两个8x32 bit S-boxes、加、异或操作。此外,有密钥的迭代使用32-bit密钥乘法、数据相倚旋转和密钥加法。混合与核心迭代都被修改为Feistel结构的迭代,其中,1/4的数据块用于标识其它3/4的数据块。

约定:

D[] :存放4个32位明文的容器,在加密操作完成后用于存放密文

K[]:存放40个32位密钥的容器

S[]:s-box,512个32位的不同数组成,其中前256个由S0指出,后256个由S1指出

所有的数组下标从0开始计数.

本文中提及的加法是模232加,减法是模232减,乘法是模232乘

<<<表示循环左移

^ 表示按位异或

%取模

时间: 2024-12-23 07:19:54

IBM的MARS加密算法实现(上)的相关文章

IBM的MARS加密算法实现(下)

2.3 密文解密 用于密文解密的40个子密钥的生成和明文加密时的40个子密钥的生成方法相同. 2.3.1 第一步前向混合 输入的128位密文分成四块D[0],D[1],D[2],D[3],选取生成的40个密钥的最后四个分别与上述四块数据进行加操作, D[0] += K[36]; D[1] += K[37]; D[2] += K[38]; D[3] += K[39]; 结果作为第一轮操作的输入数据. 第一轮: D[0] D[1] D[2] D[3] b0 b1 b2 b3 FirstTarget

使用IBM Java Toolbox for i 实现IBM i的作业管理(上)

通俗地讲,IBM i 作业管理的内容是负责处理用户或程序提交的系统请求,它是IBM i平台的基本功能之一 .不同于Windows与Unix,围绕IBM i作业管理的概念较多,如作业,作业描述符,作业队列,子系统,子系统 描述符,内存池,输出队列等.而本文的目标是:围绕IBM i作业管理的相关概念,指导读者如何使用IBM Java Toolbox for i实现对IBM i作业管理的编程支持.有关IBM Java Toolbox for i的基础知识,请参见另 一篇技术文档"Toolbox for

IBM超级计算机再获世界上最绿色节能殊荣

IBM的绿色IT又或殊荣,它的http://www.aliyun.com/zixun/aggregation/13840.html">超级计算机被Green500.org评为世界上最节能的计算机.Green500列表显示在全球前20个最节能的超级计 算机中,有17个是基于IBM的高性能计算技术制造的,另外三个是基于IBM PowerXCell 8i处理器制造的.每个系统每消耗1瓦特电,每秒可以处理超过7.33亿条浮点指令. 列表中的IBM系统包括Blue Gene,Power服务器,Sys

IBM WebSphere MQ在Windows上多版本的安装

本文从基本概念入手,并辅以详细的实现步骤,在 Windows 平台上同时安装 MQ7.0/MQ7.1/MQ7.5.通过阅读本文,读者能够快速理解 MQ V7.1 的多版本特性,并应用到实际工作中. WebSphere MQ 是非常流行的消息中间件,拥有众多的企业级用户.它提供了跨平台的,支持不同编程语言的安全可靠的消息传递,是用于部署企业级 IT 网络的强大通讯工具.本文介绍的 MQ V7.1 多版本特性,有助于加速客户的测试.部署,更好的适应快速发展的 IT 技术. 本系列第 1 部分主要介绍

世界上最小的磁体诞生!IBM 实现在单原子上存储位数据

不知道大家是否曾经幻想过这样的场景:有朝一日我们能够将 iTunes 曲库中的 3500 万首歌曲存储在一张只有信用卡大小的设备当中.尽管这样的理想很美好,然而目前的技术却尚无法实现.不过据雷锋网(公众号:雷锋网)了解,最近,IBM加利福利亚州圣荷西研究院的纳米科学家们在<自然>杂志上发表了最新研究成果,使得这个理想在将来成为了可能.在研究中,纳米科学家们证明了在单个原子上读取和写入1 bit数据的能力,而目前的硬盘驱动器为了存储这1 bit数据信息,则需要使用大概10万到100万个原子. &

数据保护与隐私无从下手?IBM Guardium在全面可靠上拔头筹!

数据,作为各个企业组织机构重要的资产,一旦丢失或泄露往往造成不可挽回的损失.事实上,知识产权.客户信息.销售信息等有价值的.敏感的数据,往往会成为攻击者的目标.就在上月,土耳其爆发重大数据泄露事件,近5000万土耳其公民的个人信息牵涉其中,除此以外还有越来越多的数据泄露事件发生,安全从业者意识到,是时候采取一些行动了. "内部威胁+数据泄露 "已经成为企业组织机构的网络安全大敌!在<IBM 2015 X-Force第一季度报告>中曾显示,去年泄露的电子邮件.信用卡号.密码及

IBM宣布成功在单个原子上存储数据 存储方式将迎大变革

北京时间3月11日消息,据<财富>杂志网络版报道,硅谷科技巨头IBM日前宣布,该公司已经成功在单个原子上存储数据.这是历史上首次有公司能够做到这一点. 这项研究是在硅谷的阿尔马登实验室完成的,本周三被首先发表在科技期刊<自然>杂志上.媒体Quartz称,IBM的这项成就意味着,人们存储数据的方式最终将迎来巨变,因为如今普通硬盘需要使用约10万个原子才能存储1比特数据. 这项成功能够实现部分是因为,IBM研究人员发现了一种方法,来磁化钬元素的单个原子.通过使用一种科学针状物,研究人员

菜鸟问题:访问ibm websphere 6.0服务器上的页面时,抛出版本JAR版本不能识别的提示

问题描述 请各位大侠帮忙看一下--使用ibmwebsphere6.0作为服务器,把项目打包发布到服务器上后,访问一个excel表单上传页面出错,提示信息为JSPG0091E:文件/modules/financialAffairs/importExcel/importOldResultTalbe.jsp中的行68发生错误JSPG0093E:从文件/modules/financialAffairs/importExcel/importOldResultTalbe.jsp生成servlet错误E:Pr

IBM造史上最强计算机 吞吐数据相当全球互联网2倍

IBM公司正在设计史上最强的计算机.这台计算机将与占地1 900平方英里(约合4920平方公里)的平方公里阵列相连,负责分析望远镜 获取的数据.平方公里阵列能够观测到130亿年前的宇宙景象,当时刚发生大爆炸不久,正是宇宙的黎明时期 平方公里阵列产生的数据相当于整个http://www.aliyun.com/zixun/aggregation/12838.html">互联网流量的两倍,大型强子 对撞机的100倍 在道格拉斯-亚当斯的<银河系漫游指南>中,一个外星文明制造了一台巨型