资源描述:
《密码学课件6new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、=============================================================应用密码学(6)卿斯汉主讲(qsihan@ss.pku.edu.cn)2011年1月4日—1月14日=============================================================SHACAL-21概述SHACAL-2是Gemplus公司的DavidNaccache和HelenaHandschuh设计的一个NESSIE候选分组密码算法,
2、并最终入选,其分组长度为256比特,密钥长度为512比特,是最终采用的4个欧洲分组密码标准中分组长度和密钥长度最长的。SHACAL-2没有采用通常的Feistel结构和SP结构,而是基于标准Hash算法SHA-2设计的分组密码,开辟了一种分组密码设计的新途径。(待压缩消息密钥分组)加密函数明文分组(初始向量)(SHA-2压缩函数)密文输出Hash值图1SHACAL-2的整体结构在SHACAL-2分组密码中,SHA-2的压缩函数相当于SHACAL-2的加密函数;SHA-2的初始向量相当于SHACAL
3、-2的明文分组;SHA-2的待压缩消息相当于SHACAL-2的密钥分组;SHA-2的压缩函数输出相当于SHACAL-2中的密文(加密函数的输出),如图1所示。1本节将使用下述记法与符号。32⊕逐比特异或运算;∧逻辑与运算;+模2加法运算;¬取补运算;ab>>>a循环右移b个比特;ab>>a右移b个比特2SHACAL-2的加密算法SHACAL-2的加密算法基于SHA-2的压缩函数,共64轮,如图2所示。加密过程如下。首先,将256-比特明文P表示为8个32-比特字,即(256)PA=CCCCCCCB
4、CDEFGH(256)00000000然后,对i=0,1,?,63,执行下面的轮函数:THf=+()(,,)Eg+EFGK++Wiiii+1,110iiiiTf=+()(,,)AgABCii+1,201iiiHG=ii+1GF=ii+1FE=ii+1E=+DTii++11i,1DC=ii+1CB=ii+1B=Aii+1A=+TTiii+++11,11,2其中,fX()=(X>>>2)⊕(X>>>13)⊕(X>>>22)0fX()=(X>>>6)⊕(X>>>11)⊕(X>>>25)1gXYZ(,,)
5、(=∧⊕XY)(¬∧XZ)02gXYZ(,,)(=∧⊕∧⊕∧XY)(XZ)(YZ)164个常数Wi(0=,1,,?63)如下所示:i428A2F9871374491B5C0FBCFE9B5DBA53956C25B59F111F1923F82A4AB1C5ED5D807AA9812835B01243185BE550C7DC372BE5D7480DEB1FE9BDC06A7C19BF174E49B69C1EFBE47860FC19DC6240CA1CC2DE92C6F4A7484AA5CB0A9DC7
6、6F988DA983E5152A831C66DB00327C8BF597FC7C6E00BF3D5A7914706CA63511429296727B70A852E1B21384D2C6DFC53380D13650A7354766A0ABB81C2C92E92722C85A2BFE8A1A81A664BC24B8B70C76C51A3D192E819D6990624F40E3585106AA07019A4C1161E376C082748774C34B0BCB5391C0CB34ED8AA4A5B9C
7、CA4F682E6FF3748F82EE78A5636F84C878148CC7020890BEFFFAA4506CEBBEF9A3F7C67178F23图2SHACAL-2的加密结构3SHACAL-2的解密算法加密是解密的逆过程,如图3所示。首先,将256-比特密文C表示为8个(256)32-比特字,即CA=CCCCCCCBCDEFGH(256)6464646464646464然后,对i=63,62,?,1,0,执行下面的解密操作。32设X=X为32-比特字,注意到在模2加法运算下:XX+()1
8、0¬+=,故(32)4有−=¬+XX()1,由此易由下面的加密公式THf=+()(,,)Eg+EFGK++Wiiii+1,110iiiiTf=+()(,,)AgABCii+1,201iiiHG=;GF=;FE=ii+1ii+1ii+1E=+DTii++11i,1DC=;CB=;B=Aii+1ii+1ii+1A=+TTiii+++11,11,2推导出解密公式如下:TATAf=−=−()(,,)Bg−BCDii++1,11ii++1,210i+11i+1i+1i+1=+Af(¬(Bg)