站长杂谈

关于服务器安全的AES加密算法实现

时间:2017-04-30 11:31 点击:

  关于服务器安全的AES加密算法实现

  对于服务器当中DES密码算法实现,小编在前面已经描述过,但是现在大多数加密服务器使用对称分组加密算法的是AES算法,新世界主机的香港服务器的使用对称分组加密算法应该也是AES加密算法。为什么目前对称分组加密算法的应用是AES密码算法呢?由于DES数据加密标准算法是在19世纪80年代提出与使用,算法输入密钥长度太短,导致在1997年6月,被美国科学家们所攻破,从而导致DES密码算法褪去了历史舞台;但这个DES密码算法是一个划时代的产物,对于密码学者与信息安全方面从业人员是非常值得怀念的一种加密算法。在1977年,美国标准技术研究所(NIST)对DES进行再次评测并宣布:DES算法的安全强度已经不足以保证联邦政府信息数据的安全性,所以NIST建议撤销相关标准。同时,NIST开始征集新的数据加密标准AES(Advanced Encryption Standard)。在2000年4月13日至14日,召开了第三届AES候选会议,对最后的5个候选算法进行讨论。NIST宣布Rijndael作为新的AES,从而高级加密标准AES成为有效的标准。

  下面介绍服务器数据安全的DES密码算法加密原理。

  AES作为新一代的数据加密标准汇聚了强安全性、高性能、高效率、易用灵活等优点,被普遍接受并使用。AES设计有三种密钥长度:128位,192位,256位。相对而言,AES的128位密钥比DES的56位密钥,其安全性强1021倍。AES算法主要包括三个方面:轮迭代变换、轮函数函数变换和密钥扩展变换。

  AES是一个迭代、对称密钥分组的密码,密钥长度可以使用128、192和256位,加解密数据分组长度为128位。该算法输入分组、输出分组和状态长度均为128位。现在以128位密钥作为AES算法介绍:输入密钥长度为128比特,需要进行十轮变换,前九轮的变换过程相同,依次:字节替换、行移位、列混合和轮密钥加,第十轮变换跳过列混合变换。

  (1)字节替换

  对输入矩阵的任一元素A作如下变换S[A]:将A看作一个8位的二进制数,算出前四位代表的十六进制数X和后四位代表的十六进制数Y。如A=11010100时,X=c,Y=4。从AES算法给定的S-Box(16行16列的矩阵) 中找出S[A]=S[X,Y]=S[c,4]的值进行替换。

  (2)行移位变换

  在ShiftRows移位变换中,给定一个4*4矩阵状态的行对应移不同的位移量。第1行不移位,第2行循环左移1个字节,第3行循环左移2字节,第4行循环左移3字节。

  (3)列混淆变换

  列混淆变换对于4*4矩阵状态数据实现逐列混淆,也就是说数据矩阵与AES设定的固定矩阵进行有限域乘法运算。

  (4)轮密钥加变换

  明文或者中间状态与原始密钥或者子密钥之间的异或运算,对于这个异或运算,是二进制比特之间操作。

  密钥扩展生成算法:AES每一轮进行轮密钥加操作当中,谈到子密钥与加密数据中间状态进行加密操作,而轮密钥是从用户的128位原始密钥通过密钥扩展生成算法运算得到的。

  AES解密算法是加密算法的逆过程,但AES算法加解算法不是同一个算法,其实原理基本是一样的。经过逆轮函数当中4个步骤:(1)字节替换逆变换,(2)行移位逆变换,(3)列混淆逆变换,(4)轮密钥加变换。在应用当中,由于需要加密和解密一起实现,从而需要两个不同的软件或固件模块。

  AES算法的伪代码描述如下:

  Rijndael(State,CipherKey)//State 表示输入明消息,CipherKey表示输出密数据

  {

  KeyExpansion(CipherKey,ExpandedKey);

  AddRoundKey(State,ExpandedKey);

  For(i=1;i

  Round(State,ExpandedKey+Nb×i)

  FinalRound(State,ExpandedKey+Nb×Nr);

  }

  基于服务器安全的AES加密算法实现已经给大家讲清楚了。如果您还有什么不明确或不懂的地方,欢迎咨询新世界主机了解,详细请咨询Skpey咨询:vpssj.net@hotmail.com, ;我们将竭诚为您服务。