下载此文档

SEA加密算法.doc


文档分类: | 页数:约4页 举报非法文档有奖
1/4
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/4 下载此文档
文档列表 文档介绍
SEA加密算法
我们今天给大家介绍一种新的分组对称加密算法- SEA(Smart Encryption Algorithm,即灵巧型加密算法)。其核心是一种基于Markov转移的具有较强非线性的圈函数,其中还蕴含了两种不相容的群运算,使得算法能达到必要的混乱和扩散。该加密算法全部运算基于字节,占有的存储量低,故易于软硬件实现,特别适合于智能卡上的运用。
一、 SEA加密算法描述
SEA加密算法主体结构为多轮Feistel网络结构。该密码算法全部运算基于子节,仅有模256加和异或两种运算。算法的核心部件是B函数,它使得算法具有强非线性特性。以下“+”表示按字节加(即模256加),“⊕”表示异或。
B函数的输入输出均为8字节,64比特。B函数的描述为:将输入的64比特看作是位矩阵,位矩阵的每一行依次对应一个字节。先根据输入的64比特的前3比特(确定行位置)和最后3比特(确定列位置)确定在位矩阵中的一个初始转换点。然后将输入的64比特分组,每4比特为一组,称这些分组为转移方向控制组。接下来则从初始转换点开始,按照每组(即转移方向控制组)的值确定的转移方向转移控制规律见图1。
从当前比特位转移到新比特位上去,对被历经的比特位取反。每个转移方向控制组对应一次转移操作。转移操作越界时在位矩阵的边界处反射。反复进行上述操作直到转移操作次数达到给定要求。本加密算法中要求转移次数最少为16次,推荐使用32次。达到给定的转移次数后,当前的位矩阵即为B函数的输出。B函数的数学描述式为:
其中Dci=a4i-4a4i-3a4i-2 a4i-1为第i次转移时的转移方向控制组,C为取反操作,t(t≥16)为转移的总次数。操作过程中,若i> 16,则i=i- 16 。
例如:设当前的转移方向控制组Dci=1 001,则在图1中,本次转移将从中心点跳转到标注为“11″的比特位上,且该比特位取反。接着下一次的转移将以“11”点为中心向它周围的16个方向之一跳转。
从B函数的描述可以看出,输入的64bit中若有一个比特位发生变化,则受该比特位所在的转移控制分组的影响,之后的所有转移操作所历经的比特位将发生变化,这就使得输入的一个比特位变化将对输出的多个比特位产生影响,轮迭代时就能更快的产生雪崩效应。
设X,Y,分别为8字节的二进制数据块。令Y=(X0,X1,…,X7),Y=(Yo,Y1,∧,Y7)定义圈函数f为:
由B函数的定义可知,B函数的实质即是产生一个随机数并与输入相异或,即B(X)=X⊕Rnd( X)。那么f函数可等价描述为:
可见f函数中包含了按字节加(即模256加)和异或(即模2加)两种不相容的群运算。这使得算法具有较强的置乱效果。
加密过程:
SEA的加密为r轮Feistel网络结构加密。
在加密的第i轮中,令输人为Li,Ri(各8字节),轮子密钥为Rk。,轮子密钥长度为64bit。注意,r轮后输出的左右两半部分不交换。有:
解密过程:解密过程是加密过程的逆。由Feistel网络结构可知,解密时颠倒白化子密钥和轮子密钥顺序,加密即变成解密。具体过程不再详述。
密钥的扩展方案:本加密算法可选的种子密钥长度分别为128bit,192bit和256bit。
进行密钥编排时,令LengthOfKey为种子密钥长度,取l= LengthOfKey/

SEA加密算法 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数4
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xunlai783
  • 文件大小310 KB
  • 时间2018-04-03