AES算法中的S盒,求GF(2^8)上的乘法逆元怎么求啊?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/08 17:33:02
AES算法中的S盒,求GF(2^8)上的乘法逆元怎么求啊?
AES算法中的S盒,求GF(2^8)上的乘法逆元怎么求啊?
AES算法中的S盒,求GF(2^8)上的乘法逆元怎么求啊?
用欧几里得扩展算法
在这里说很难给你讲明白,因为伪代码我记得不是很清晰了,你自己查下书吧,既然有讲AES算法,那书上不可能不提到欧几里得扩展算法的
不行百度一下也可以,我看了一下百度百科的:
欧几里德算法的扩展
扩展欧几里德算法不但能计算(a,b)的最大公约数,而且能计算a模b及b模a的乘法逆元,用C语言描述如下
但是是代码实现的,没有伪代码,还是自己找一下吧
一般根据定义 A^-1==A^254,所以求A的254次方就可以了,254次又等于
128+64+32+16+8+4+2=2*( 2*(2*(2*(2*(2*(2+1)+1)+1)+1)+1)+1),所以只需要做7次平方和7次乘A。
当然在AES运算中,需要求出全部256个数的倒数,都用这种算法还是比较费的,可以用以下的方法
首先求3的全部255次幂,并做成两个查找表,即正...
全部展开
一般根据定义 A^-1==A^254,所以求A的254次方就可以了,254次又等于
128+64+32+16+8+4+2=2*( 2*(2*(2*(2*(2*(2+1)+1)+1)+1)+1)+1),所以只需要做7次平方和7次乘A。
当然在AES运算中,需要求出全部256个数的倒数,都用这种算法还是比较费的,可以用以下的方法
首先求3的全部255次幂,并做成两个查找表,即正向通过幂次查结果,和反向通过结果查幂次,这个过程可以,因为乘3是最简单的一个乘法操作 ,并且3的255次幂可以遍历整个GF(2,8)空间。
因为3^255=1,所以 当m+n=255时,3^m 和3^n互为倒数,即3^m的逆元就是3^n, n=255-m,那么求一个数A的逆元,可以先通过上面生成的反查表查出A对于3的幂次m,再用255-m=n,在正向表中查出3的n次幂,那个数就是A的逆元,这样求一个逆元就只是两次查表操作了。
收起