“加密时明文按照128位为单位进行分组,每组包含16个字节,按照从上到下、从左到右的顺序排列成一个4x4的矩阵,称为明文矩阵。aes的加密过程在一个大小同样为4x4的矩阵中进行,称为状态矩阵,状态矩阵的初始值为明文矩阵的值。每一轮加密结束后,状态矩阵的值变化一次。轮函数执行结束后,状态矩阵的值即为密文的值,从状态矩阵得到密文矩阵,依次提取密文矩阵的值得到128位的密文。
“以128位密钥为例,密钥长度为16个字节,也用4x4的矩阵表示,顺序也是从上到下、从左到右。aes通过密钥编排函数把密钥矩阵扩展成一个包含44个字的密钥序列,其中的前4个字为原始密钥用于初始加密,后面的40个字用于10轮加密,每轮使用其中的4个字。密钥递归产生规则如下:
“如果i不是4的倍数,那么由等式w[i]=w[i-4]⊕w[i-1]确定;
“如果i是4的倍数,那么由等式w[i]=w[i-4]⊕t(w[i-1])确定;
“加密的第1轮到第9轮的轮函数一样,包括4个操作:字节代换、行位移、列混合和轮密钥加。最后一轮迭代不执行列混合。另外,在第一轮迭代之前,先将明文和原始密钥进行一次异或加密操作。
“解密过程仍为10轮,每一轮的操作是加密操作的逆操作。由于aes的4个轮操作都是可逆的,因此,解密操作的一轮就是顺序执行逆行移位、逆字节代换、轮密钥加和逆列混合。同加密操作类似,最后一轮不执行逆列混合,在第1轮解密之前,要执行1次密钥加操作。
aes加密的轮函数操作包括字节代换subbytes、行位移shiftrows、列混合mixcolumns、轮密钥加addroundkey等等,每一个的步骤都是紧密相连。”
“……”
“至于非对称加密算法rsa,则是1977年三位数学家rivest、shamir和adleman设计了一种算法,可以实现非对称加密,使用非对称加密算法需要生成公钥和私钥,使用公钥加密,使用私钥解密。”
“……”
王东来说的滔滔不绝,简单清楚又明了,一看就知道是真的了解这些内容。
韩华在心里其实也逐渐相信起这篇论文是王东来自己写出来的,不过还是挑了几个问题问了起来,“什么是互质关系?”
这个问题很简单,只要看过书都能知道,但是根据课程,王东来还没有学过。
“质数(primenumber)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数,如果两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系。互质关系不要求两个数都是质数,合数也可以和一个质数构成互质关系。”
王东来迅速地回答出来。
韩华紧接着问道:“那你再说说欧拉函数。”
“欧拉函数是指对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目,用φ(n)表示。”
“例如φ(8)=4,因为1357均和8互质。”
“若n是质数p的k次幂,除了p的倍数外,其他数都跟n互质,则数学公式为……”
“若m,n互质,则数学公式为……”
“当n为奇数时,则数学公式为……”
“当n为质数时,则数学公式为……”
对答如流,完全不像是一个刚入学的大一新生,其流利程度在韩华看来,已经不弱于一些大三学生了。
在办公室里面的三位学长,这个时候也停下了手上的动作,认真地听着王东来和鹅韩华的一问一答。
“模反元素。”
“如果两个正整数a和n互质,那么一定可以找到整数b,使得ab-1被n整除,或者说ab被n除的余数是1。这时,b就叫做a的‘模反元素’。”
“比如3和11互质,那么3的模反元素就是4,因为(3x4)-1可以被11整除。显然,模反元素不止一个,4加减11的整数倍都是3的模反元素{…,-18,-7,4,15,26,…},即如果b是a的模反元素,则b+kn都是a的模反元素。”
“那欧拉定理呢?”
“欧拉定理是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则有a^φ(n)≡1(modn)。”
“假设正整数a与质数p互质,因为φ(p)=p-1,则欧拉定理可以写成a^(p-1)≡1(modp)。”
等王东来说完之后,韩华下意识地鼓起掌来。
“好好好,我确实没想到你会给我这么大的惊喜。”
“先前,你的论文质量很高,我以为不是你写的,所以才这么问你,想看看你究竟懂不懂,倒是没想到你给了我这么大的一个惊喜。”
“你的论文没有问题,论证的过程也很完美,只不过就是有些排版上的小问题以及引用文献时的错误,这些都是小问题,稍微改一下就是了。”
“只不过,你知道你这篇论文真正的价值吗?”
韩华说完之后,便静静地看着王东来,等着他的回答。