大学几天的新生,就说自己要发表论文,还拿出了专业性这么强的论文,不是什么学术垃圾,第一反应自然是不信。
“好,你在论文提到的对称加密算法AES和非对称加密算法RSA,你详细讲一讲,可以吗?”韩华虽然是数学系的教授,可是对于计算机也有不浅的了解,所以就问出了这个问题。
王东来没有丝毫的犹豫,张口便解释了起来。
“AES是AdvancedEncryptionStandard的缩写,是最常见的对称加密算法。AES在密码学中又称Rijndael加密法,是白头鹰联邦政府采用的一种区块加密标准。
“它的加密公式为C=E(K,P),其中K为密钥,P为明文,C为密文。
“加密过程是首先对明文进行分组,每组的长度都是128位,然后一组一组地加密,直到所有明文都已加密。密钥的长度可以是128、192或256位。
“在加密函数E中,会执行一个轮函数,除最后一次执行不同外,前面几轮的执行是相同的。以AES-128为例,推荐加密轮数为10轮,即前9轮执行的操作相同,第10轮执行的操作与前面不同。不同的密钥长度推荐的加密轮数是不一样的……
“加密时明文按照128位为单位进行分组,每组包含16个字节,按照从上到下、从左到右的顺序排列成一个4×4的矩阵,称为明文矩阵。AES的加密过程在一个大小同样为4×4的矩阵中进行,称为状态矩阵,状态矩阵的初始值为明文矩阵的值。每一轮加密结束后,状态矩阵的值变化一次。轮函数执行结束后,状态矩阵的值即为密文的值,从状态矩阵得到密文矩阵,依次提取密文矩阵的值得到128位的密文。
“以128位密钥为例,密钥长度为16个字节,也用4×4的矩阵表示,顺序也是从上到下、从左到右。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个轮操作都是可逆的,因此
请收藏:https://m.rmshu.cc
(温馨提示:请关闭畅读或阅读模式,否则内容无法正常显示)