【技术实现步骤摘要】
本专利技术属于通信领域,具体涉及一种低复杂度AES一体化加解密器实现方法。
技术介绍
随着科技的进步,信息的交换在人们生活中越加频繁,保证信息的安全传输成为通信中至关重要的一环。美国国家标准与技术研究院(NIST)在2001年制定和公布了AES(AdvancedEncryptionStandard)加密算法,它已取代DES加密算法成为现今最流行的加密方式之一。AES加密算法具有安全性高,流程简单,编码紧凑等特点,能满足大多数情况下信息加密的需要。AES是一种对称密钥分组的加密算法。为满足不同的情景需要,AES加密算法可以分别使用128、192或256位密钥,其中128位密钥最为常用,以下对AES算法的描述均是以128位密钥模式为例。同时,作为一种迭代加密算法,AES根据密钥长度的不同分别包括10,12或14轮循环,每轮循环又称作轮变换,包括以下四种运算:密钥异或:数据与密钥或子密钥进行异或。盒变换:通过查表的方式,对输入的数据按照字节进行替换,加密时进行S盒变换,解密时进行逆S盒变换。S盒与逆S盒的大小均为256字节。行变换:包括行位移与逆行位移,行位移和逆行位移分别用于加密和解密过程中,将输入的16字节的数据按照先后顺序进行排列,为便于描述,将这16个字节的数据命名为S0至S15,这些数据每4个字节分成一组,排列成如图1左侧行位移前所示的4行乘4列的矩阵形式。进行行位移时,矩阵中第一行数据的顺序保持不变,第二行的数据循环左移一个字节,第三行的数据循环左移两个字节,第四行的数据循环左移三个字节。逆行位移过程中,则改为循环右移。行位移与逆行位移的过程分别如 ...
【技术保护点】
一种低复杂度的AES一体化加解密器,其特征在于:加解密器包括密钥生成模块、密钥异或模块、行变换模块、列变换模块、盒变换模块、数据缓存单元、第一数据选择单元、第二数据选择单元、第三数据选择单元、第四数据选择单元和控制单元,其中,密钥生成模块用于生成加密与解密时的密钥;密钥异或模块用于完成输入信息与密钥的异或;行变换模块用于对输入数据进行行位移与逆行位移运算;列变换模块用于对数据进行列混淆与逆列混淆运算;盒变换模块用于对数据进行S盒变换与逆S盒变换;数据缓存单元用于缓存行变换模块输出的数据;第一数据选择单元用于选择输入到密钥异或模块的数据来源;第二数据选择单元用于选择输入到盒变换模块的数据来源;第三数据选择单元用于选择输入到列变换模块的数据来源;第四数据选择单元用于选择输入到第一数据选择单元的数据来源;控制单元根据加解密器的工作模式与轮数,控制密钥生成模块、盒变换模块、行变换模块、数据缓存单元、列混淆单元以及四个数据选择单元,对加密或解密的流程进行控制。
【技术特征摘要】
1.一种低复杂度的AES一体化加解密器,其特征在于:加解密器包括密钥生成模块、密钥异或模块、行变换模块、列变换模块、盒变换模块、数据缓存单元、第一数据选择单元、第二数据选择单元、第三数据选择单元、第四数据选择单元和控制单元,其中,密钥生成模块用于生成加密与解密时的密钥;密钥异或模块用于完成输入信息与密钥的异或;行变换模块用于对输入数据进行行位移与逆行位移运算;列变换模块用于对数据进行列混淆与逆列混淆运算;盒变换模块用于对数据进行S盒变换与逆S盒变换;数据缓存单元用于缓存行变换模块输出的数据;第一数据选择单元用于选择输入到密钥异或模块的数据来源;第二数据选择单元用于选择输入到盒变换模块的数据来源;第三数据选择单元用于选择输入到列变换模块的数据来源;第四数据选择单元用于选择输入到第一数据选择单元的数据来源;控制单元根据加解密器的工作模式与轮数,控制密钥生成模块、盒变换模块、行变换模块、数据缓存单元、列混淆单元以及四个数据选择单元,对加密或解密的流程进行控制。2.根据权利要求1所述的一种低复杂度的AES一体化加解密器,其特征在于:所述的盒变换模块使用只读存储器(ROM)实现,此ROM包含两部分地址空间,前256个地址用于存储加密的S盒变换数据,后256个地址用于存储解密的逆S盒变换数据;更进一步,所述的盒变换模块使用双口ROM实现,该双口ROM的1个端口用于完成数据的盒变换,另一个端口用于完成密钥的盒变换。3.根据权利要求1所述的一种低复杂度的AES一体化加解密器,其特征在于:所述的数据缓存单元使用双口RAM实现,其一个口用于接收行变换模块的输出,另一个口用于将数据输出到第三数据选择器;数据缓存单元的大小为32个字节,分成两个区域A与B,每个区域为16个字节,在进行加解密操作时,数据缓存单元的两个区域采用乒乓操作方式,从而避免前后两轮加密或者解密操作的数据冲突,进而提高对数据进行加密或者解密的速度。4.根据权利要求1所述的一种低复杂度的AES一体化加解密器,其特征在于:所述的行变换模块包括计数器、加法器、第一寄存器、第二寄存器、数据选择器、异或器与移位器,其中,计数器为16进制计数器,共包含4个比特;第一寄存器包含两比特,数值分别与计数器的低两比特相同;第二寄存器包含两比特,高位为第一寄存器两比特的异或结果,低位与第一寄存器低位的值相同;数据选择器为二选一数据选择器,其一个输入端为第一寄存器,另一个输入端为第二寄存器,数据选择器的选通信号由控制模块提供;移位器,用于对数据选择器的输出向左移动两比特;加法器用于完成计数器与移位器的输出相加的功能;异或器用于完成对第一寄存器两比特进行异或运算的功能。5.根据权利要求1所述的一种低复杂度的AES一体化加解密器,其特征在于:所述的列变换模块包括伽罗华域乘法器单元、加法单元、数据选择器单元、异或器单元、寄存器组、数据缓存器单元、四选一数据选择器与计数器,其中,伽罗华域乘法器单元包含三个伽罗华域乘法器,分别完成对输入数据进行乘2、乘4与乘8的运算;加法单元包含六个加法器,配合乘法器完成对输入数据乘以3,乘以9,乘以11,乘以13与乘以14的功能;数据选择器单元包括4个二选一数据选择器,根据选通信号的设置,将输入信号乘以2的结果、输入信号、输入信号、输入信号乘以3的结果输出,或者将输入信号乘以14的结果、乘以9的结果、乘以13的结果、输入信号乘以11的结果输出;异或器单元包括4个异或器,分别用于完成4个数据选择器的输出与寄存器组中的A0、A1、A2与A3的异或运算;寄存器组包括4个8比特数据存储单元A0、A1、A2与A3,分别用于存储异或器单元的输出结果;数据缓存器单元包括4个8比特缓存器D0、D1、D2与D3,分别用于缓存寄存器组中A0、A1、A2与A3的数据;四选一数据选择器,在计数器的控制下,将数据缓存器单元中D0、D1、D2与D3的数据依次输出;计数器,为一个4进制计数器,共两个比特,控制四选一数据选择器进行数据选择以及控制数据缓存器单元对寄存器组的数据进行缓存。6.根据权利要求1所述的一种低复杂度的AES一体化加解密器,且假定在列变换模块中插入了一级流水线,对数据进行加密时,有以下步骤:步骤1:密钥异或运算分别地、顺序地,待加密的128比特数据(16字节)按照字节顺序依次输入到加解密器中的密钥异或模块,完成密钥异或运算,每个时钟输入一个字节的数据,16个时钟后,16字节的数据完成密钥异或运算;步骤2:S盒变换运算分别地、顺序地,完成密钥异或运算的数据按照字节顺序依次输入到盒变换模块,完成S盒变换运算,每个时钟输入一个字节的数据,16个时钟后,16字节的数据完成S盒变换运算;由于采用ROM完成S盒变换运算,...
【专利技术属性】
技术研发人员:赵岭,胡杨,王天娇,李勣,
申请(专利权)人:北京航空航天大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。