预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共60页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

30六月2024攻击者类型1.AES的起源Rijndael(Raindoll)加密算法是分组长度可变、密钥长度也可变的分组密码。分组长度、密钥长度彼此独立地确定为128、192、256比特。AES的要求是比三重DES快而且至少和三重DES一样安全,分组长度为128比特,密钥长度为128/192/256比特。所以,AES和Rijndael是有差别的。分组长度(bit)设G为非空集合,在G内定义了一种代数运算,若满足下述公理:(1)有封闭性。对任意a、b∈G,恒有aοb∈G.(2)结合律成立。对任意a、b、c∈G,有(aοb)οc=aο(bοc)(3)G中有幺元e存在,对任意a∈G,有e∈G,使aοe=eοa=a(4)对任意a∈G,存在有a的逆元a-1∈G,使aοa-1=a-1οa=e则G构成一个群。若群G满足交换律,则称群G为交换群或阿贝尔群判定一个非空集合是不是群,就用群的定义去衡量例:整数全体,按加法构成群,但对乘法不构成群例:偶数全体,按加法构成群,但对乘法不构成群例:实数全体,按加法构成群,对除0以外的乘法构成群非空集合元素F,若在F中定义了加和乘两种运算,且满足下述公理:(1)F关于加法构成阿贝尔群。(2)F中非零元素全体对乘法构成阿贝尔群。其乘法幺元(单位元)记为1。(3)加法和乘法间有如下分配律:a(b+c)=ab+ac(b+c)a=ba+ca则称F为一个域若F中的元素为有限个,称F为有限域(FiniteField)。思考题:实数全体对加法、乘法是否构成域?将b7b6b5b4b3b2b1b0构成的字节b看成系数在{0,1}中的多项式:b7x7+b6x6+b5x5+b4x4+b3x3+b2x2+b1x+b0系数模2,即只可0或1例如:十六进制数‘57’对应的二进制为01010111,看成一个字节,对应的多项式为x6+x4+x2+x+1。在多项式表示中,GF(28)上两个元素的和仍然是一个次数不超过7的多项式,其系数等于两个元素对应系数的模2加(比特异或)。例如:‘57’+‘83’=‘D4’,用多项式表示为:(x6+x4+x2+x+1)+(x7+x+1)=x7+x6+x4+x2用二进制表示为:01010111+10000011=11010100由于每个元素的加法逆元等于自己,所以减法和加法相同。要计算GF(28)上的乘法,必须先确定一个GF(2)上的8次不可约多项式;GF(28)上两个元素的乘积就是这两个多项式的模乘(以这个8次不可约多项式为模)。在Rijndael密码中,这个8次不可约多项式确定为:m(x)=x8+x4+x3+x+1它的十六进制表示为‘11B’。例如,‘57’·‘83’=‘C1’可表示为以下的多项式乘法:(x6+x4+x2+x+1)·(x7+x+1)=x7+x6+1(modm(x))以上定义的乘法满足交换律,且有单位元‘01’。另外,对任何次数小于8的多项式b(x),可用推广的欧几里得算法得b(x)a(x)+m(x)c(x)=1即a(x)·b(x)=1modm(x),因此a(x)是b(x)的乘法逆元。再者,乘法还满足分配律:a(x)·(b(x)+c(x))=a(x)·b(x)+a(x)·c(x)GF(28)上x乘法:x·b(x)=b7x8+b6x7+b5x6+b4x5+b3x4+b2x3+b1x2+b0x(modm(x))如果b7=0,求模结果不变,否则为乘积结果减去m(x),即求乘积结果与m(x)的异或。另法:可以先对b(x)在字节内左移一位(最后一位补0),若b7=1,则再与‘1B’(其二进制为00011011)做逐比特异或来实现,该运算记为b=xtime(a)。b7=0举例02·54=(00000010)·(01010100)=(x)·(x6+x4+x2)=x7+x5+x3=x7+x5+x3≡x7+x5+x3(modp(x))=(10101000)由上面的规则:把(01010100)在字节内左移一位即得(10101000)(最后一位补0)02·D4=(00000010)·(11010100)=(x)·(x7+x6+x4+x2)=x8+x7+x5+x3≡(x4+x3+x+1)+x7+x5+x3(modp(x))//***相当(00011011)与(10101000)异或****//≡x7+x5+x4+x+1(modp(x))=(10110011)由上面的规则:先把(11010100)在字节内左移一位即得(10101000)(最后一位补0),因为b7=1,故(10101000)再与(00011011)异或得(10110011)例如,57·13可按如下方式实现:57·02=xtime(57)=AE;57·04=xtime(AE)=47;57·08=xtime(47)=8E;57·10=xtime(8E