用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

一种新的实用安全加密标准算法——Camellia算法

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:49:32
4)上很少的操作。s1变换中所采用的f、h、g函数分别如(4)、(5)、(6)式所示。

javascript:window.open(this.src);" style="cursor:pointer;"/>

(b1,b2,b3,b4,b5,b6,b7,b8)=g(a1,a2,a3,a4,a5,a6,a7,a8)

其中,(b8+b7α+b6α2+b5α3)+(b4+b3α+b2α2+b1α3)β

=1/((a8+a7α+a6α2+a5α3)+(a4+a3α+a2α2+a1α3))(6)

规定(6)式中GF(2的8次方)上运算=1/0,β是GF(2的8次方)上方程x8+x6+x5+x3+1=0的根,a=β238=β6+β5+β3+β2是GF(2的4次方)上方程x4+x+1=0的根。当然根据性能要求,在具体实现加密算法时,S盒的实现电路也可以直接查表的方式进行。

·FL/FL-1变换

Camellia算法每六圈加入一次FL/FL-1变换,用来打乱整个算法的规律性。加入FL/FL-1变换的另一个好处是可以抵抗未知的密码攻击方法,而且加入FL/FL-1变换并不影响Feistel结构加、解密过程相同。
javascript:window.open(this.src);" style="cursor:pointer;"/>
    FL:L×L→L

(XL(32)||XR(32),klL(32)||klR(32)→(7)

(YR(32)∪klR(32),YL(32)||((XL(32)∩klL(32)<<<1)+YR(32)

FL-1:L×L→L

(YL(32)||YR(32),klL(32)||klR(32)→ (8)

(YR(32)∪klR(32),YL(32)||((XL(32)∩klL(32)<<<1)+YR(32)

2 Camellia算法的加、解密及密钥扩展实现过程

(1)加、解密过程

Camellia算法的整个加密过程有18轮Feistel结构,在第6轮和第12轮之后加入了FL/FL-1变换层,用来打乱算法的规律性,并且在第1轮之前和最后1轮之后使用了128比特的异或操作。解密过程与加密过程完全相同,只是圈密钥注入顺序与加密相反。128比特密钥Camellia算法的加密过程如图1所示。javascript:window.open(this.src);" style="cursor:pointer;"/>

(2)密钥扩展

Camellia算法的密钥扩展遵循了严格的设计准则,如实现简单且与加、解密过程共用部件,密钥配置时间小于加密时间,支持在线密钥生成,没有等效密钥,能够抵抗相关密钥攻击和滑动攻击等。整个过程只需通过三个中间变量,KL(128)=K(128),K(128)=0KA的简单移位即可得到子密钥kwt(64)(t=1,…,4),ku(64)(u=1,…,18)和klv(64)(v=1,…,4),且中间生成过程与加密过程共用了部件F(如图1、2所示)。

3 Camellia算法的安全性

设计者用差分扩散概率和线性相关概率的保守上界证明了任何含SPN网络的十六圈Camellia密码对差分密码分析和线性密码分析都是安全的;此外,通过对活动S盒的计数说明十二圈Camellia中没有概率大于2-128的差分特征和线性特征;带或不带FL层的十圈Camellia都具有伪随机置换特性,能够抵抗截断差分攻击和线性密码分析;设计者还声称Camellia能够抵抗不可能差分攻击、Boomerang攻击、高阶差分攻击、相关密钥攻击、插入攻击、Slide攻击、线性和攻击及Square攻击。在密钥的安全性上,一方面不存在等效密钥;另一方面,子密钥来自主密钥的加密结果KA和KB,改变主密钥并不能获得预想的KA和KB,反之亦然,因而无法控制和预测子密钥之间的关系,从而相关密钥攻击难以成功。由于密钥长度不少于128比特,以当前的计算能力还无法对Camellia成功实施诸如密钥穷举搜索攻击、时间存储权衡攻击、字典攻击和密钥匹配等类型的强力攻击。

4 Camellia算法在各种平台上的性能比较

评测一个分组密码的好坏,除了要求其具有高的安全性外,还要求算法在应用平台上实现简单。Camellia算法在设计时充分考虑到了这一点,下面给出其在各种平台上的性能参数。评测算法在软件平台上实现性能时,首要考虑其速度,其次还要看算法实现时所需的存储空间,表1前半部分给出了Camellia算法在常用的32位处理器上各种软件平台的实现性能。高的加密速度和低的存储需求,表明Camellia算法可以有效地应用于各种软件系统中。从表1后半部分可以看出Camellia算法在高端和低端的智能卡平台上同样有着良好的性能;由于Camellia算法的密钥扩展与加、解密过程有共用部分,所以其硬件平台所需的芯片面积大大减少,降低了硬件成本,便于推广应用,详细参数见表2。

表1 Camellia算法在软件和智能卡平台上的性能

环  境语  言速度加、解密RAM合计ROM合计
PIII700MHz128MB256 L2-cacheAssembly241.5Mbps64bytes11420bytes
PII300MHz160MB512 L2-cacheVC++666.6Mbps108bytes9461bytes
PIII 1GHz512MB256 L2-cacheJava161.4Mbps\\
Intel 8051 12MHzAssembly10217
10.22msec
32bytes990bytes
Z80 5MHzAssembly35951
7.19msec
106bytes1698bytes
MC68HC705 B16 2.1MHzAssembly9900
4.71msec
208bytes\

表2 Camellia算法在硬件平台上的性能

环    境设计Lab速度芯片面积
加、解密单元合计
ASICUnrolledMitsubishi0.18μm2785.00MbpsKgate244.90
LoopMitsubishi0.18μm1881.25MbpsKgate44.30
FPGAUnrolledXilinx VirtexE401.89MbpsSlice9426
LoopXilinx VirtexE227.42MbpsSlice1780

从本文可以看出,分组密码加密算法发展到今天,不论是从安全性还是从实用性的角度都越来越强。NESSIE标准中的Camellia加密算法充分考虑到了各种因素,既保证了算法的安全性又考虑到其在各种平台上的实现效率,尤其是针对小硬件的设计思想,使其有着广泛的应用前景。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:29,453.13000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号