1.一种基于量子可逆线路的AES硬件加密系统的实现方法,其特征在于,包括量子可逆线路加解密模块、量子秘钥扩展模块以及多接口选择模块,其中所述量子可逆线路加解密模块和量子秘钥扩展模块是基于量子可逆线路构造并完成硬件化设置,所述多接口选择模块由电子电路设置而成;
所述实现方法包括以下步骤:
步骤A:实现量子可逆线路加解密模块的硬件化设置;
所述步骤A具体为量子可逆线路加解密模块分为加密部分和解密部分,所述解密部分与所述加密部分是互逆的,所述加密部分包含十轮加密函数,除末轮外,每轮加密函数由量子轮秘钥加硬件模块、量子字节替换硬件模块、量子行位移硬件模块、量子列混合硬件模块四个部分组成;
步骤B:实现量子秘钥扩展模块的硬件化设置;
所述步骤B具体是针对128位的种子秘钥进行操作,由若干量子逻辑门、量子逻辑线路通过量子加密的运算规则级联而成,达到将128位AES种子秘钥扩展成1408位加解密秘钥的作用,并转化成电子线路,为步骤A中量子可逆线路加解密模块中的所述量子轮秘钥加硬件模块提供所需的秘钥;
步骤C:采用电子电路设置多接口选择模块;
所述步骤C具体为,所述多接口选择模块具有多种类型的接口电路,接口电路与步骤A中的量子线路加解密模块能够完全契合,用户可使用该接口电路与步骤A中的量子线路加解密模块进行信息交互,完成所需信息的加解密任务;不同的接口可满足用户不同的需求,在接口电路的实现中,熟悉不同接口的功能、角色类型,在仔细分析接口协议之后,用硬件描述语言实现协议中的规则,并转化成相应的接口电路。
2.根据权利要求1所述的基于量子可逆线路的AES硬件加密系统的实现方法,其特征在于,所述步骤A具体还包括如下步骤:步骤A-1:量子轮秘钥加硬件模块的设置,
所述量子轮秘钥加硬件模块将128位状态矩阵与128位由量子秘钥扩展模块生成的对应128位秘钥进行异或,该运算通过128个CNOT门实现,对其进行硬件化设置可以使用128个电子线路中的异或门级联构成;
步骤A-2:量子字节替换硬件模块的设置,
所述量子字节替换硬件模块对128位状态矩阵进行整体操作,通过伽罗华域上的变换,实现对状态矩阵的非线性变换;它将有限域GF(28)上的数据变换到其复合域GF((24)2)中,并在复合域上进行求逆操作之后,将数据再变换回有限域上,最后再进行可逆的仿射变换;
步骤A-3:量子行位移硬件模块的设置,
所述量子行位移硬件模块对128位的状态矩阵进行操作,实现矩阵中不同行左移不同位数的功能,该运算只是字节顺序的变动,用量子交换门实现,或者不进行任何量子操作,在电路输出时改变顺序即可;
步骤A-4:量子列混合硬件模块的设置,
该模块通过矩阵乘法,对128位的状态矩阵进行加密操作,该运算可以通过矩阵乘法的方式实现,将其写成多项式相乘的形式:s′(x)=w(x)⊙s(x),其中w(x)是伽罗华域上的多项式,记为:w(x)={03}x3+{01}x2+{01}x+{02}
将w(x)写成矩阵形式,通过矩阵乘法计算之后,每一列中的每一个字节都可以用一个多项式来表示:此处的Si,c,i∈[0,3]表示状态矩阵中的第i行,第c列个字节,S′i,c,i∈[0,3]表示通过列混合变换后状态矩阵中的第i行,第c列个字节,{03}·A可以表示为 可用乘2运算与加法实现,该模块的硬件实现过程中使用低电平表示量子线路中始状态为|0>的辅助比特,使用32位的异或门来对应量子线路中的CNOT门,并使用4个乘2器件,实现乘2运算的量子线路硬件模块级联构成。
3.根据权利要求2所述的基于量子可逆线路的AES硬件加密系统的实现方法,其特征在于,所述步骤A-2具体包括如下步骤:步骤A-2-1:将有限域上数据变换到复合域上,公式为:
其中a0,a1,a2,a3,
a4,a5,a6,a7表示有限域上的8位数据,al0,al1,al2,al3,ah0,ah1,ah2,ah3表示有限域上数据变换到复合域上的8位数据,该步骤对8位量子位进行操作,可用11个CNOT门实现,采用11个电子线路中的异或门级联构成,对其进行硬件化设置;
步骤A-2-2:对数据在复合域上进行求逆,该步骤针对所述步骤A-2-1输出的复合域上的8位数据进行操作,其变换公式为:其中al0,al1,al2,al3,ah0,ah1,
ah2 ,ah3表示复合域上求逆之前的8位数据,d0 ,d1 ,d2 ,d3的表达式为a′h0,a′h1,a′h2,a′h3,a′l0,a′l1,a′l2,al3′表示对数据在复合域上求逆之后的8位数据,可用8个CNOT门和36个Toffi门实现,对其进行硬件化使用电子线路中的异或门和与门构成;
步骤A-2-3:将步骤A-2-2求逆后复合域上的数据变换回有限域上,其变换公式为:其中a′h0,a′h1,
a′h2,a′h3,a′l0,a′l1,a′l2,al3′表示步骤A-2-2中对数据在复合域上求逆之后的8位数据,a0,a1,a2,a3,a4,a5,a6,a7表示将步骤A-2-2在复合域上求逆之后的8位数据变换为有限域上的8位数据,该步骤针对步骤A-2-2求逆后复合域上的8位数据进行操作,可用12个CNOT门实现,对其进行硬件化可以使用12个电子线路中的异或门级联构成;
步骤A-2-4:对步骤A-2-3变换后有限域上的数据进行仿射变换,其变换公式为:(1)其中bi表示步骤A-2-3变
换后有限域上的数据,bi′表示对步骤A-2-3变换后有限域上的数据进行仿射变换后的数据,mod8表示除8取余,该步骤针对步骤A-2-3变换之后的有限域上的8位数据进行操作,需要制备初始状态为|11000110>的辅助量子位,并使用40个CNOT门实现,对其进行硬件化可以使用电子线路中的高电平表示量子辅助位|1>,使用低电平来表示量子辅助位|0>,使用异或门来代替CNOT门,通过上述公式(1)搭建硬件电路。
4.根据权利要求1所述的基于量子可逆线路的AES硬件加密系统的实现方法,其特征在于,所述步骤B具体还包括如下步骤:步骤B-1:g函数的实现,
所述g函数涉及循环左移、字节替换、Rcon异或,循环左移与字节替换分别用步骤A-3量子行位移硬件模块和步骤A-2中量子字节替换硬件模块的实现方式设置而成,Rcon是一个一维数组,Rcon[1]=0x01;Rcon[i]=Rcon[i-1]*(02);由于128位的秘钥需扩展10轮,所以Rcon数组需计算Rcon[1]至Rcon[10]的值;
步骤B-2:秘钥扩展算法的整体实现,
将步骤B-1实现的g函数封装成G器件,秘钥扩展算法为:种子秘钥表示为W[0]至W[3],扩展求得的是W[4]至W[43],若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];其中g(w[j-1])表示将w[j-1]经g函数处理之后得到的数据,量子线路实现该算法时,异或可用控制非门实现,g函数为步骤B-1的实现的用G器件表示,硬件线路实现该整体算法时有异或门可直接使用;将步骤A中实现的量子线路加解密模块与步骤B实现的量子秘钥扩展模块根据加密算法规则结合,构成加密系统的完整加解密部分。
5.根据权利要求4所述的基于量子可逆线路的AES硬件加密系统的实现方法,其特征在于,所述步骤B-1中,Rcon异或具体实现过程包括如下步骤:步骤B-1-1:生成Rcon数组,需要制备初始状态为|00000001>的辅助量子位初始化Rcon[1]的值,并使用9个乘二器件和控制非门进行级联,计算输出每个Rcon的值,对其进行硬件化可以使用电子线路中的高电平表示量子辅助位|1>,使用低电平来表示量子辅助位|0>,使用9个乘二器件级联,根据公式Rcon[i]=Rcon[i-1]*(02)搭建硬件电路;
步骤B-1-2:与不同Rcon值异或取决于(j/4)的值,8比特数据除4运算是将该数据右移两位得到,量子线路构造8比特数据除4运算,用辅助比特|0>补高两位,右移两位操作可用交换门实现,硬件电路实现除4运算,可用低电平代替辅助比特|0>,移位操作,需在布线时将输入按照移位后的顺序输出。
6.根据权利要求1所述的基于量子可逆线路的AES硬件加密系统的实现方法,其特征在于,所述步骤C中多接口选择模块中的SPI接口实现具体包括以下步骤:步骤C-1,判断用户是否要发送数据进行加解密,这一步需确定片选信号CS是否为1即可实现;
步骤C-2,默认接口的相位与极性为0,时钟高电平有效,数据采样发生在时钟(CLK)奇数边沿,硬件实现就是判断CLK的值是否为1,若为1,则接收一个比特的数据并放入缓存中;
步骤C-3,将缓存中数据经量子可逆线路加解密模块加解密,是对缓存中的比特进行计数,当计数值达到128时,将这128位的数据放到加解密系统的接收总线上;
步骤C-4,数据加解密完成后输出处理后的数据,将处理后的数据放入缓冲区并计数,每当计数值达到128时,将这128位的数据放入输出接口模块的数据接收总线上,输出接口模块根据自己的时钟频率输出处理后的数据。