CN110113149B - 一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法 - Google Patents

一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法 Download PDF

Info

Publication number
CN110113149B
CN110113149B CN201910354131.2A CN201910354131A CN110113149B CN 110113149 B CN110113149 B CN 110113149B CN 201910354131 A CN201910354131 A CN 201910354131A CN 110113149 B CN110113149 B CN 110113149B
Authority
CN
China
Prior art keywords
quantum
bit
rcon
data
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910354131.2A
Other languages
English (en)
Other versions
CN110113149A (zh
Inventor
李跃华
汪诚诚
管致锦
陈加庆
孙佳浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nantong University
Original Assignee
Nantong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nantong University filed Critical Nantong University
Priority to CN201910354131.2A priority Critical patent/CN110113149B/zh
Publication of CN110113149A publication Critical patent/CN110113149A/zh
Application granted granted Critical
Publication of CN110113149B publication Critical patent/CN110113149B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • H04L9/0858Details about key distillation or coding, e.g. reconciliation, error correction, privacy amplification, polarisation coding or phase coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本发明提供了一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法,属于信息安全技术领域。其技术方案为:一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法,包括以下步骤:步骤A,g函数的实现;步骤B,秘钥扩展算法的实现。本发明的有益效果为:本发明的秘钥扩展模块由量子可逆线路构造实现,能够将秘钥扩展算法的复杂度增加(2n‑1)!倍,主要针对128位的种子秘钥进行操作,对16字节秘钥进行运算,扩展生成新的第一轮16字节的秘钥,然后对第一轮秘钥进行运算得到第二轮秘钥,以此方式得到十轮秘钥,为基于量子线路的AES硬件加密系统中的加解密过程提供秘钥,提高AES硬件加密系统的加密效果与复杂度。

Description

一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法
技术领域
本发明涉及信息安全技术领域,尤其涉及一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法。
背景技术
网络社会的发展使得每天都有大量的数据产生与传输,尤其是随着云计算、物联网等新兴信息技术的蓬勃兴起,各类信息数据正在迅速膨胀变大,大数据时代为企业和个人带来了新的服务和机遇。然而,各类新兴技术还处于发展的初始阶段,信息保护技术还不够成熟,大量敏感信息在网络上处理、传输和存储,必定会存在信息被窃取、篡改、泄露等安全问题,安全、可靠、高效的信息加密技术已然成为网络各界的研究热点。
基于量子可逆线路的AES加密系统,将量子可逆线路的可逆、高复杂度等特点用于加密技术领域,在加密速率提高的前提下又增加加密的复杂度、抗攻击能力。目前,将AES算法中秘钥扩展模块硬件化的方式都是通过FPGA等可编程器件用硬件描述语言实现的,这种方式实现的秘钥扩展模块不仅不适用于量子可逆逻辑加密系统,而且复杂度不高,易被破解。
发明内容
本发明的目的在于提供一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法。
本发明是通过如下措施实现的:一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法,其中,所述方法根据秘钥扩展算法,将若干量子逻辑门、量子逻辑线路通过量子加密的运算规则进行级联,构造出能实现秘钥扩展功能的量子线路,之后再转化为电子线路构成量子秘钥扩展模块;
所述量子秘钥扩展模块通过对128位的种子秘钥进行操作,将128位AES种子秘钥扩展成1408位秘钥,能够将秘钥扩展算法的复杂度增加(2n-1)!倍,为基于量子线路的AES硬件加密系统中的加解密过程提供秘钥。
其中,所述量子秘钥扩展模块的算法原理为:将128位种子秘钥排列成的4个32比特的字扩展成44个32比特的字的操作,得到44个字,记为W[j](0<=j<=43),若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];
其中g()代表一个函数,g函数的主要步骤包括循环左移、S盒置换、Rcon异或;种子秘钥为3e 19 3d 71 25 56 6a 49 4f 4b 3f 7c 2a 8c 62 23,经量子秘钥扩展模块操作后得到扩展之后的秘钥如下:
W[0]={3e 19 3d 71},W[1]={25 56 6a 49},W[2]={4f 4b 3f 7c},W[3]={2a8c 62 23}
W[4]={c8 b6 cc e9},W[5]={ed e0 a6 a0},W[6]={a2 ab 99 dc},W[7]={8827 fb ff}
W[8]={03 16 d0 72},W[9]={ee f6 76 d2},W[10]={4c 5d ef 0e},W[11]={c4 7a 14 f1}
W[12]={d7 8f f3a8},W[13]={39 79 85 7a},W[14]={75 24 6a 74},W[15]={b1 5e 7e 85}
W[16]={be 0e 80 48},W[17]={87 77 05 32},W[18]={f2 53 6f 46},W[19]={43 0d 11 c3}
W[20]={4f ba 23 2f},W[21]={c8 cd 26 1d},W[22]={3a 9e 49 5b},W[23]={79 93 58 98}
W[24]={02 a2 09 5f},W[25]={ca 6f 2f 42},W[26]={f0 f1 66 19},W[27]={89 62 3e 81}
W[28]={ed fb 77 c1},W[29]={27 94 58 83},W[30]={d7 65 3e 9a},W[31]={5e 07 00 1b}
W[32]={bc fb bb a0},W[33]={9b 6f e3 23},W[34]={4c 0a dd b9},W[35]={12 0d dd a2}
W[36]={46 03 95 0a},W[37]={dd 6c 76 29},W[38]={91 66ab 90},W[39]={83 6b 76 32}
W[40]={af b9 07 8a},W[41]={72 d5 71 a3},W[42]={e3 b3 da 33},W[43]={60 d8 ac 01}
所得结果符合秘钥扩展逻辑关系。
所述方法包括以下步骤:
步骤A,g函数的实现;
步骤B,秘钥扩展算法的实现。
其中,所述步骤A中具体包括以下步骤:
步骤A-1,W[j]循环左移8比特;
步骤A-2,分别对每个字节B1,B2,B3,B0做S盒置换;
步骤A-3,将W[j]与32比特的常量(Rcon[j/4],0,0,0)进行异或;
步骤A-4,g函数电路将步骤A-1、步骤A-2、步骤A-1三步用量子线路及硬件电路构造的g函数封装成G器件。
其中,所述步骤B中秘钥扩展算法为:种子秘钥为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函数为步骤A中的g函数,使用步骤A-4中所述封装成G器件表示,硬件线路实现整体算法使用异或门。
其中,所述步骤A-1具体为W[j]是由4个8比特字节B0,B1,B2,B3构成,将W循环左移8比特是将B0,B1,B2,B3循环左移一位得到B1,B2,B3,B0;量子线路构造左移操作用量子逻辑交换门实现;对于该步骤量子线路的硬件实现,8比特电子线路总线可表示8比特量子线路总线,移位操作,需在布线时将输入按照移位后的顺序输出。
其中,所述步骤A-2具体为:通过量子字节替换将有限域GF(28)上的数据B1,B2,B3,B0变换到其复合域GF((24)2)中,并在复合域上进行求逆后,将数据再变换回有限域上,最后再进行可逆的仿射变换,完成量子字节替换操作;
其中,所述量子字节替换方法包括以下步骤:
(1)将有限域上数据变换到复合域上,采用公式:
Figure BDA0002044845090000031
Figure BDA0002044845090000032
Figure BDA0002044845090000033
其中a0,a1,a2,a3,a4,a5,a6,a7表示有限域上的8位数据,al0,al1,al2,al3,ah0,ah1,ah2,ah3表示有限域上数据变换到复合域上的8位数据,该步骤对8位量子位进行操作,可用11个CNOT门实现,采用11个电子线路中的异或门级联构成,对其进行硬件化设置;
(2)对数据在复合域上进行求逆,该步骤针对所述步骤(1)输出的复合域上的8位数据进行操作,其变换公式为:
Figure BDA0002044845090000034
Figure BDA0002044845090000035
Figure BDA0002044845090000036
其中al0,al1,al2,al3,ah0,ah1,ah2,ah3表示复合域上求逆之前的8位数据,d0,d1,d2,d3的表达式为
Figure BDA0002044845090000037
a′h0,a′h1,a′h2,a′h3,a′l0,a′l1,a′l2,al3′表示对数据在复合域上求逆之后的8位数据,可用8个CNOT门和36个Toffi门实现,对其进行硬件化使用电子线路中的异或门和与门构成;
(3):将步骤(2)求逆后复合域上的数据变换回有限域上,其变换公式为:
Figure BDA0002044845090000038
Figure BDA0002044845090000039
Figure BDA00020448450900000310
其中a′h0,a′h1,a′h2,a′h3,a′l0,a′l1,a′l2,al3′表示步骤(2)中对数据在复合域上求逆之后的8位数据,a0,a1,a2,a3,a4,a5,a6,a7表示将步骤(2)在复合域上求逆之后的8位数据变换为有限域上的8位数据,该步骤针对步骤(2)求逆后复合域上的8位数据进行操作,可用12个CNOT门实现,对其进行硬件化可以使用12个电子线路中的异或门级联构成;
(4):对步骤(3)变换后有限域上的数据进行仿射变换,其变换公式为:
Figure BDA00020448450900000311
Figure BDA00020448450900000312
其中bi表示步骤(3)变换后有限域上的数据,bi′表示对步骤(3)变换后有限域上的数据进行仿射变换后的数据,mod8表示除8取余,该步骤针对步骤(3)变换之后的有限域上的8位数据进行操作,需要制备初始状态为|11000110>的辅助量子位,并使用40个CNOT门实现,对其进行硬件化可以使用电子线路中的高电平表示量子辅助位|1>,使用低电平来表示量子辅助位|0>,使用异或门来代替CNOT门,通过上面的公式(1)搭建硬件电路。
其中,所述步骤A-3具体为用量子线路构造Rcon数组的生成公式,完成Rcon数组所需值的计算,由于与不同Rcon值异或取决于(j/4)的值,构造除四运算的量子线路,并转化成电子线路;Rcon数组生成公式内容为:Rcon是一个一维数组,Rcon[1]=0x01;Rcon[i]=Rcon[i-1]*(02),128位的秘钥扩展10轮,4<=j<=43,则1<=j/4<=10,Rcon数组计算Rcon[1]至Rcon[10]的值。
其中,所述步骤A-2具体还包括以下步骤:
步骤A-3-1,Rcon数组的生成,用辅助比特|0>以及|1>表示出Rcon[1]的值,初始化第一个输入值In,ln表示Rcon[1]的值,构造9根量子线,第一根量子线的输入为ln,其余输入皆为8位辅助比特|0>,Rcon[i]=Rcon[i-1]*(02),在每条量子线路设置一个表示乘2运算量子线路的U器件,用控制非门将每条量子线级联,分别求得Rcon[1]至Rcon[10]的值;
步骤A-3-2,与不同Rcon值异或取决于(j/4)的值,8比特数据除4运算是将该数据右移两位得到,假如j的值为b7b6b5b4b3b2b1b0,则右移出的两位b1b0即为除4的余数,右移之后的值在高位补0即为除4取整的值,即为00b7b6b5b4b3b2,量子线路构造除4运算,用辅助比特|0>补高两位,右移操作可用SWAP门实现;硬件电路实现除4运算,可用低电平代替辅助比特|0>,移位操作,需在布线时将输入按照移位后的顺序输出。
其中,所述步骤A-3-1中辅助比特|0>以及|1>初始化已知的输入值In为Rcon[1]的值。
具体说,AES硬件加密系统的量子秘钥扩展模块的实现方法包括以下步骤:
所述量子秘钥扩展模块通过函数算法,将128位种子秘钥排列成的4个32比特的字扩展成44个32比特的字的操作,得到44个字记为W[j](0<=j<=43),若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];其中g()代表一个函数,g函数的主要步骤包括循环左移、S盒置换、Rcon异或;
步骤A,g函数的实现;
所述步骤A还包括如下步骤:
步骤A-1,W[j]循环左移8比特;
由于W[j]是由4个8比特字节B0,B1,B2,B3构成,将W循环左移8比特就是将B0,B1,B2,B3循环左移一位得到B1,B2,B3,B0,量子线路构造左移操作用量子逻辑交换门(SWAP门)就可以实现,对于该步骤量子线路的硬件实现,8比特电子线路总线可表示8比特量子线路总线,移位操作,需在布线时将输入按照移位后的顺序输出。
步骤A-2,分别对每个字节B1,B2,B3,B0做S盒置换;
所述步骤A-2可通过量子字节替换;
将有限域GF(28)上的数据B1,B2,B3,B0变换到其复合域GF((24)2)中,并在复合域上进行求逆操作之后,将数据再变换回有限域上,最后再进行可逆的仿射变换,便可完成量子字节替换操作;
步骤A-3,将W[j]与32比特的常量(Rcon[j/4],0,0,0)进行异或;种子秘钥为3e 193d 71 25 56 6a 49 4f 4b 3f 7c 2a 8c 62 23,经量子秘钥扩展模块操作后得到扩展之后的秘钥如下:
W[0]={3e 19 3d 71},W[1]={25 56 6a 49},W[2]={4f 4b 3f 7c},W[3]={2a8c 62 23}
W[4]={c8 b6 cc e9},W[5]={ed e0 a6 a0},W[6]={a2ab 99dc},W[7]={8827 fb ff}
W[8]={03 16 d0 72},W[9]={ee f6 76 d2},W[10]={4c 5d ef 0e},W[11]={c4 7a 14 f1}
W[12]={d7 8f f3 a8},W[13]={39 79 85 7a},W[14]={75 24 6a 74},W[15]={b1 5e 7e 85}
W[16]={be 0e 80 48},W[17]={87 77 05 32},W[18]={f2 53 6f 46},W[19]={43 0d 11 c3}
W[20]={4f ba 23 2f},W[21]={c8 cd 26 1d},W[22]={3a 9e 49 5b},W[23]={79 93 58 98}
W[24]={02 a2 09 5f},W[25]={ca 6f 2f 42},W[26]={f0f1 66 19},W[27]={89 62 3e 81}
W[28]={ed fb 77 c1},W[29]={27 94 58 83},W[30]={d7 65 3e 9a},W[31]={5e 07 00 1b}
W[32]={bc fb bb a0},W[33]={9b 6f e3 23},W[34]={4c 0a dd b9},W[35]={12 0d dd a2}
W[36]={46 03 95 0a},W[37]={dd 6c 76 29},W[38]={91 66 ab 90},W[39]={83 6b 76 32}
W[40]={af b9 07 8a},W[41]={72 d5 71a3},W[42]={e3 b3 da 33},W[43]={60 d8 ac 01}
所得结果符合秘钥扩展逻辑关系。
Rcon是一个一维数组,Rcon[1]=0x01;Rcon[i]=Rcon[i-1]*(02);由于128位的秘钥只需扩展10轮,所以4<=j<=43,则1<=j/4<=10,所以Rcon数组只需计算Rcon[1]至Rcon[10]的值;
所述步骤A-3还包括以下步骤;
步骤A-3-1,将Rcon[1]值带入乘2运算,构造八根量子线,用辅助比特|0>以及|1>初始化已知的输入值In,也就是Rcon[1]的值,输入值In初始化后,将8根量子线简化为一根总线,然后用9个U器件实现乘2运算的量子线路进行级联,分别求得Rcon[1]至Rcon[10]的值;
步骤A-3-2,与不同Rcon值异或取决于(j/4)的值,8比特数据除4运算可通过将该数据右移两位得到,假如j的值为b7b6b5b4b3b2b1b0,则右移出的两位b1b0即为除4的余数,右移之后的值在高位补0即为除4取整的值,也就是00b7b6b5b4b3b2,量子线路构造除4运算,用辅助比特|0>补高两位,右移操作可用交换门(SWAP门)实现。硬件电路实现除4运算,可用低电平代替辅助比特|0>,移位操作,需在布线时将输入按照移位后的顺序输出。
步骤A-4,简化g函数电路;
为了简化电路将步骤A-1、步骤A-2、步骤A-3三步用量子线路及硬件电路所综合构造的g函数,将g函数封装成G器件。
步骤B,秘钥扩展算法的实现;
由于种子秘钥表示为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函数处理之后得到的数据,量子线路实现该算法时,异或可用控制非门(CNOT门)实现,用G器件表示,硬件线路实现该算法时有异或门可直接使用。
本发明的有益效果为:本发明的秘钥扩展模块由若干量子逻辑门、量子可逆线路构造实现,能够将秘钥扩展算法的复杂度增加(2n-1)!倍,主要针对128位的种子秘钥进行操作,对16字节秘钥进行运算,扩展生成新的第一轮16字节的秘钥,然后对第一轮秘钥进行运算得到第二轮秘钥,以此方式得到十轮秘钥,为基于量子线路的AES硬件加密系统中的加解密过程提供秘钥,提高AES硬件加密系统的加密效果与复杂度。
附图说明
图1为本发明实施例中乘二运算量子线路封装成U器件示意图。
图2为本发明实施例中的Rcon数组值生成量子电路示意图。
图3为本发明实施例中Rcon数组值生成硬件实现电路示意图。
图4为本发明实施例中除4运算量子电路示意图。
图5为本发明实施例中除4运算硬件实现电路示意图。
图6为本发明实施例中g函数封装成的G器件示意图。
图7为本发明实施例中秘钥扩展模块量子线路示意图。
图8为本发明实施例中秘钥扩展模块硬件实现电路示意图。
图9为本发明实施例中秘钥扩展模块具体操作数据示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,对本方案进行阐述。
参见图1至图9,本发明是:一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法,其中,所述方法根据秘钥扩展算法,将若干量子逻辑门、量子逻辑线路通过量子加密的运算规则进行级联,构造出能实现秘钥扩展功能的量子线路,之后再转化为电子线路构成量子秘钥扩展模块;
所述量子秘钥扩展模块通过对128位的种子秘钥进行操作,将128位AES种子秘钥扩展成1408位秘钥,能够将秘钥扩展算法的复杂度增加(2n-1)!倍,为基于量子线路的AES硬件加密系统中的加解密过程提供秘钥。
其中,所述量子秘钥扩展模块的算法原理为:将128位种子秘钥排列成的4个32比特的字扩展成44个32比特的字的操作,得到44个字,记为W[j](0<=j<=43),若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];
其中g()代表一个函数,g函数的主要步骤包括循环左移、S盒置换、Rcon异或;如图9所示,种子秘钥为3e 19 3d 71 25 56 6a 49 4f 4b 3f 7c 2a 8c 62 23,经量子秘钥扩展模块操作后得到扩展之后的秘钥如下:
W[0]={3e 19 3d 71},W[1]={25 56 6a 49},W[2]={4f 4b 3f 7c},W[3]={2a8c 62 23}
W[4]={c8 b6 cc e9},W[5]={ed e0 a6 a0},W[6]={a2ab 99dc},W[7]={8827 fb ff}
W[8]={03 16 d0 72},W[9]={ee f6 76 d2},W[10]={4c 5d ef 0e},W[11]={c4 7a 14 f1}
W[12]={d7 8f f3a8},W[13]={39 79 85 7a},W[14]={75 24 6a 74},W[15]={b1 5e 7e 85}
W[16]={be 0e 80 48},W[17]={87 77 05 32},W[18]={f2 53 6f 46},W[19]={43 0d 11 c3}
W[20]={4f ba 23 2f},W[21]={c8 cd 26 1d},W[22]={3a 9e 49 5b},W[23]={79 93 58 98}
W[24]={02 a2 09 5f},W[25]={ca 6f 2f 42},W[26]={f0 f1 66 19},W[27]={89 62 3e 81}
W[28]={ed fb 77 c1},W[29]={27 94 58 83},W[30]={d7 65 3e 9a},W[31]={5e 07 00 1b}
W[32]={bc fb bb a0},W[33]={9b 6f e3 23},W[34]={4c 0a dd b9},W[35]={12 0d dd a2}
W[36]={46 03 95 0a},W[37]={dd 6c 76 29},W[38]={91 66 ab 90},W[39]={83 6b 76 32}
W[40]={af b9 07 8a},W[41]={72 d5 71 a3},W[42]={e3 b3 da 33},W[43]={60 d8 ac 01}
所得结果符合秘钥扩展逻辑关系。
所述方法包括以下步骤:
步骤A,g函数的实现;
步骤B,秘钥扩展算法的实现。
其中,所述步骤A中具体包括以下步骤:
步骤A-1,W[j]循环左移8比特;
步骤A-2,分别对每个字节B1,B2,B3,B0做S盒置换;
步骤A-3,将W[j]与32比特的常量(Rcon[j/4],0,0,0)进行异或;
步骤A-4,g函数电路将步骤A-1、步骤A-2、步骤A-1三步用量子线路及硬件电路构造的g函数封装成G器件。
其中,所述步骤B中秘钥扩展算法为:种子秘钥为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函数为步骤A中的g函数,使用步骤A-4中所述封装成G器件表示,硬件线路实现整体算法使用异或门。
其中,所述步骤A-1具体为W[j]是由4个8比特字节B0,B1,B2,B3构成,将W循环左移8比特是将B0,B1,B2,B3循环左移一位得到B1,B2,B3,B0;量子线路构造左移操作用量子逻辑交换门实现;对于该步骤量子线路的硬件实现,8比特电子线路总线可表示8比特量子线路总线,移位操作,需在布线时将输入按照移位后的顺序输出。
其中,所述步骤A-2具体为:通过量子字节替换将有限域GF(28)上的数据B1,B2,B3,B0变换到其复合域GF((24)2)中,并在复合域上进行求逆后,将数据再变换回有限域上,最后再进行可逆的仿射变换,完成量子字节替换操作;
其中,所述量子字节替换方法包括以下步骤:
(1)将有限域上数据变换到复合域上,采用公式:
Figure BDA0002044845090000081
Figure BDA0002044845090000082
Figure BDA0002044845090000083
其中a0,a1,a2,a3,a4,a5,a6,a7表示有限域上的8位数据,al0,al1,al2,al3,ah0,ah1,ah2,ah3表示有限域上数据变换到复合域上的8位数据,该步骤对8位量子位进行操作,可用11个CNOT门实现,采用11个电子线路中的异或门级联构成,对其进行硬件化设置;
(2)对数据在复合域上进行求逆,该步骤针对所述步骤(1)输出的复合域上的8位数据进行操作,其变换公式为:
Figure BDA0002044845090000084
Figure BDA0002044845090000085
Figure BDA0002044845090000086
其中al0,al1,al2,al3,ah0,ah1,ah2,ah3表示复合域上求逆之前的8位数据,d0,d1,d2,d3的表达式为
Figure BDA0002044845090000091
a′h0,a′h1,a′h2,a′h3,a′l0,a′l1,a′l2,al3′表示对数据在复合域上求逆之后的8位数据,可用8个CNOT门和36个Toffi门实现,对其进行硬件化使用电子线路中的异或门和与门构成;
(3):将步骤(2)求逆后复合域上的数据变换回有限域上,其变换公式为:
Figure BDA0002044845090000092
Figure BDA0002044845090000093
Figure BDA0002044845090000094
其中a′h0,a′h1,a′h2,a′h3,a′l0,a′l1,a′l2,al3′表示步骤(2)中对数据在复合域上求逆之后的8位数据,a0,a1,a2,a3,a4,a5,a6,a7表示将步骤(2)在复合域上求逆之后的8位数据变换为有限域上的8位数据,该步骤针对步骤(2)求逆后复合域上的8位数据进行操作,可用12个CNOT门实现,对其进行硬件化可以使用12个电子线路中的异或门级联构成;
(4):对步骤(3)变换后有限域上的数据进行仿射变换,其变换公式为:
Figure BDA0002044845090000095
Figure BDA0002044845090000096
其中bi表示步骤(3)变换后有限域上的数据,bi′表示对步骤(3)变换后有限域上的数据进行仿射变换后的数据,mod8表示除8取余,该步骤针对步骤(3)变换之后的有限域上的8位数据进行操作,需要制备初始状态为|11000110>的辅助量子位,并使用40个CNOT门实现,对其进行硬件化可以使用电子线路中的高电平表示量子辅助位|1>,使用低电平来表示量子辅助位|0>,使用异或门来代替CNOT门,通过上面的公式(1)搭建硬件电路。
其中,所述步骤A-3具体为用量子线路构造Rcon数组的生成公式,完成Rcon数组值计算;由于与不同Rcon值异或取决于(j/4)的值,构造除四运算的量子线路,并转化成电子线路;Rcon数组生成公式内容为:Rcon是一个一维数组,Rcon[1]=0x01;Rcon[i]=Rcon[i-1]*(02),128位的秘钥扩展10轮,4<=j<=43,则1<=j/4<=10,Rcon数组计算Rcon[1]至Rcon[10]的值。
其中,所述步骤A-2具体还包括以下步骤:
步骤A-3-1,Rcon数组的生成,用辅助比特|0>以及|1>表示出Rcon[1]的值,初始化第一个输入值In,ln表示Rcon[1]的值,构造9根量子线,第一根量子线的输入为ln,其余输入皆为8位辅助比特|0>,Rcon[i]=Rcon[i-1]*(02),在每条量子线路设置一个表示乘2运算量子线路的U器件,用控制非门将每条量子线级联,分别求得Rcon[1]至Rcon[10]的值;
步骤A-3-2,与不同Rcon值异或0001111111111取决于(j/4)的值,8比特数据除4运算是将该数据右移两位得到,假如j的值为b7b6b5b4b3b2b1b0,则右移出的两位b1b0即为除4的余数,右移之后的值在高位补0即为除4取整的值,即为00b7b6b5b4b3b2,量子线路构造除4运算,用辅助比特|0>补高两位,右移操作可用SWAP门实现;硬件电路实现除4运算,可用低电平代替辅助比特|0>,移位操作,需在布线时将输入按照移位后的顺序输出。
其中,所述步骤A-3-1中辅助比特|0>以及|1>初始化已知的输入值In为Rcon[1]的值。
具体说,AES硬件加密系统的量子秘钥扩展模块的实现方法包括以下步骤:
所述量子秘钥扩展模块通过函数算法,实现将128位种子秘钥排列成的4个32比特的字扩展成44个32比特的字的操作,该算法最终得到的44个字记为W[j](0<=j<=43),若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];其中g()代表一个函数,g函数的主要步骤包括循环左移、S盒置换、Rcon异或;
步骤A,g函数的实现;
所述步骤A还包括如下步骤:
步骤A-1,W[j]循环左移8比特;
由于W[j]是由4个8比特字节B0,B1,B2,B3构成,将W循环左移8比特就是将B0,B1,B2,B3循环左移一位得到B1,B2,B3,B0,量子线路构造左移操作用量子SWAP门可以实现,对于该步骤量子线路的硬件实现,8比特电子线路总线可表示8比特量子线路总线,移位操作,需在布线时将输入按照移位后的顺序输出。
步骤A-2,分别对每个字节B1,B2,B3,B0做S盒置换;
所述步骤A-2采用量子字节替换;将有限域GF(28)上的数据B1,B2,B3,B0变换到其复合域GF((24)2)中,并在复合域上进行求逆操作之后,将数据再变换回有限域上,最后再进行可逆的仿射变换,便可完成量子字节替换操作;
步骤A-3,将W[j]与32比特的常量(Rcon[j/4],0,0,0)进行异或;
Rcon是一个一维数组,Rcon[1]=0x01;Rcon[i]=Rcon[i-1]*(02)(乘2是基于有限域上的乘法);由于128位的秘钥只需扩展10轮,所以4<=j<=43,则1<=j/4<=10,所以Rcon数组只需计算Rcon[1]至Rcon[10]的值;
所述步骤A-3还包括以下步骤;
步骤A-3-1,将Rcon[1]值带入乘2运算,构造八根量子线,用辅助比特|0>以及|1>初始化已知的输入值In,也就是Rcon[1]的值,输入值In初始化后,将8根量子线简化为一根总线,然后用9个U器件实现乘2运算的量子线路进行级联,分别求得Rcon[1]至Rcon[10]的值;
步骤A-3-2,与不同Rcon值异或取决于(j/4)的值,8比特数据除4运算可通过将该数据右移两位得到,假如j的值为b7b6b5b4b3b2b1b0,则右移出的两位b1b0即为除4的余数,右移之后的值在高位补0即为除4取整的值,也就是00b7b6b5b4b3b2,量子线路构造除4运算,用辅助比特|0>补高两位,右移操作可用SWAP门实现,硬件电路实现除4运算,可用低电平代替辅助比特|0>,移位操作,需在布线时将输入按照移位后的顺序输出。
步骤A-4,简化g函数电路;
为了简化电路将步骤A-1、步骤A-2、步骤A-3三步用量子线路及硬件电路所综合构造的g函数,将g函数封装成G器件。
步骤B,秘钥扩展算法的整体实现;
由于种子秘钥表示为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函数处理之后得到的数据,量子线路实现该算法时,异或可用CNOT门实现,g函数上文已经实现,用G器件表示,硬件线路实现该整体算法时有异或门可直接使用。
本发明未经描述的技术特征可以通过或采用现有技术实现,在此不再赘述,当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

Claims (2)

1.一种用于AES硬件加密系统的量子秘钥扩展模块的实现方法,其特征在于,所述方法根据秘钥扩展算法,将若干量子逻辑门、量子逻辑线路通过量子加密的运算规则进行级联,构造出能实现秘钥扩展功能的量子线路,之后再转化为电子线路构成量子秘钥扩展模块;
所述量子秘钥扩展模块通过对128位的种子秘钥进行操作,将128位AES种子秘钥扩展成1408位秘钥,为基于量子线路的AES硬件加密系统中的加解密过程提供秘钥;
所述量子秘钥扩展模块的算法原理为:将128位种子秘钥排列成的4个32比特的字扩展成44个32比特的字的操作,得到44个字,记为W[j],0<=j<=43, 若j%4=0,则w[j]=w[j-4]⊕g(w[j-1]),否则w[j]=w[j-4]⊕w[j-1];
其中g()代表一个函数,g函数的步骤包括循环左移、S盒置换、Rcon异或;
所述AES硬件加密系统的量子秘钥扩展模块的实现方法包括以下步骤:
步骤A,g函数的实现;
步骤B,秘钥扩展算法的实现;
所述步骤A中具体包括以下步骤:
步骤A-1,W[j]循环左移8比特;
步骤A-2,分别对每个字节B1,B2,B3,B0做S盒置换;
步骤A-3,将W[j]与32比特的常量(Rcon[j/4],0,0,0)进行异或;
步骤A-4,g函数电路将步骤A-1、步骤A-2、步骤A-3三步用量子线路及硬件电路构造的g函数封装成G器件;
所述步骤B中秘钥扩展算法为:种子秘钥为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函数为步骤A中的g函数,使用步骤A-4中所述封装成G器件表示,硬件线路实现整体算法使用异或门及G器件完成;
所述步骤A-1具体为W[j]是由4个8比特字节B0,B1,B2,B3构成,将W循环左移8比特是将B0,B1,B2,B3循环左移一位得到B1,B2,B3,B0;量子线路构造左移操作用量子逻辑交换门实现;对于该步骤量子线路的硬件实现,8比特电子线路总线可表示8比特量子线路总线,移位操作,需在布线时将输入按照移位后的顺序输出;
所述步骤A-2具体为:通过量子字节替换将有限域
Figure DEST_PATH_IMAGE002
上的数据B1,B2,B3,B0变换到其复合域
Figure DEST_PATH_IMAGE004
中,并在复合域上进行求逆后,将数据再变换回有限域上,最后再进行可逆的仿射变换,完成量子字节替换操作;
所述步骤A-3具体为用量子线路构造Rcon数组的生成公式,完成Rcon数组所需值的计算,由于与不同Rcon值异或取决于(j/4)的值,构造除四运算的量子线路,并转化成电子线路;Rcon数组生成公式内容为:Rcon是一个一维数组,Rcon[1]=0x01;Rcon[i]= Rcon[i-1]*(02),128位的秘钥扩展10轮,4<=j<=43,则1<=j/4<=10, Rcon数组计算Rcon[1]至Rcon[10]的值;
所述步骤A-3具体还包括以下步骤:
步骤A-3-1,Rcon数组的生成,用辅助比特|0>以及|1>表示出Rcon[1]的值,初始化第一个输入值In,ln表示Rcon[1]的值,构造9根量子线,第一根量子线的输入为ln,其余输入皆为8位辅助比特|0>, Rcon[i]= Rcon[i-1]*(02),在每条量子线路设置一个表示乘2运算量子线路的U器件,用控制非门将每条量子线级联,分别求得Rcon[1]至Rcon[10]的值;
步骤A-3-2,与不同Rcon值异或取决于(j/4)的值,8比特数据除4运算是将该数据右移两位得到,假如j的值为b7b6b5b4b3b2b1b0,则右移出的两位b1b0即为除4的余数,右移之后的值在高位补0即为除4取整的值,即为00b7b6b5b4b3b2,量子线路构造除4运算,用辅助比特|0>补高两位,右移操作SWAP门实现;硬件电路实现除4运算,低电平代替辅助比特|0>,移位操作,需在布线时将输入按照移位后的顺序输出;
所述步骤A-3-1中辅助比特|0>以及 |1>初始化已知的输入值In为Rcon[1]的值。
2.根据权利要求1所述的AES硬件加密系统的量子秘钥扩展模块的实现方法,其特征在于,所述量子字节替换方法包括以下步骤:
(1)将有限域上数据变换到复合域上,采用公式:
Figure DEST_PATH_IMAGE006
,
Figure DEST_PATH_IMAGE008
,,
Figure DEST_PATH_IMAGE010
,
Figure DEST_PATH_IMAGE012
,
Figure DEST_PATH_IMAGE014
,
Figure DEST_PATH_IMAGE016
Figure DEST_PATH_IMAGE018
,其中
Figure DEST_PATH_IMAGE020
表示有限域上的8位数据,
Figure DEST_PATH_IMAGE022
表示有限域上数据变换到复合域上的8位数据,该步骤对8位量子位进行操作,用11个CNOT门实现,采用11个电子线路中的异或门级联构成,对其进行硬件化设置;
(2)对数据在复合域上进行求逆,该步骤针对所述步骤(1)输出的复合域上的8位数据进行操作,其变换公式为:
Figure DEST_PATH_IMAGE024
Figure DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE030
Figure DEST_PATH_IMAGE032
,
Figure DEST_PATH_IMAGE034
Figure DEST_PATH_IMAGE036
Figure DEST_PATH_IMAGE038
,其中
Figure 926022DEST_PATH_IMAGE022
表示复合域上求逆之前的8位数据,
Figure DEST_PATH_IMAGE040
的表达式为
Figure DEST_PATH_IMAGE042
Figure DEST_PATH_IMAGE044
表示对数据在复合域上求逆之后的8位数据,用8个CNOT门和36个Toffi门实现,对其进行硬件化使用电子线路中的异或门和与门构成;
(3):将步骤(2)求逆后复合域上的数据变换回有限域上,其变换公式为:
Figure DEST_PATH_IMAGE046
Figure DEST_PATH_IMAGE048
Figure DEST_PATH_IMAGE050
Figure DEST_PATH_IMAGE052
,,
Figure DEST_PATH_IMAGE054
Figure DEST_PATH_IMAGE056
Figure DEST_PATH_IMAGE058
其中
Figure 405281DEST_PATH_IMAGE044
表示步骤(2)中对数据在复合域上求逆之后的8位数据,
Figure 512914DEST_PATH_IMAGE020
表示将步骤(2)在复合域上求逆之后的8位数据变换为有限域上的8位数据,该步骤针对步骤(2)求逆后复合域上的8位数据进行操作,用12个CNOT门实现,对其进行硬件化使用12个电子线路中的异或门级联构成;
(4):对步骤(3)变换后有限域上的数据进行仿射变换,其变换公式为:
Figure DEST_PATH_IMAGE060
(1),其中
Figure DEST_PATH_IMAGE062
表示步骤(3)变换后有限域上的数据,
Figure DEST_PATH_IMAGE064
表示对步骤(3)变换后有限域上的数据进行仿射变换后的数据,
Figure DEST_PATH_IMAGE066
表示除8取余,该步骤针对步骤(3)变换之后的有限域上的8位数据进行操作,需要制备初始状态为|11000110>的辅助量子位,并使用40个CNOT门实现,对其进行硬件化使用电子线路中的高电平表示量子辅助位|1>,使用低电平来表示量子辅助位|0>,使用异或门来代替CNOT门,通过上面的公式(1)搭建硬件电路。
CN201910354131.2A 2019-04-29 2019-04-29 一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法 Active CN110113149B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910354131.2A CN110113149B (zh) 2019-04-29 2019-04-29 一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910354131.2A CN110113149B (zh) 2019-04-29 2019-04-29 一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法

Publications (2)

Publication Number Publication Date
CN110113149A CN110113149A (zh) 2019-08-09
CN110113149B true CN110113149B (zh) 2022-02-22

Family

ID=67487457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910354131.2A Active CN110113149B (zh) 2019-04-29 2019-04-29 一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法

Country Status (1)

Country Link
CN (1) CN110113149B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113328849B (zh) * 2021-05-24 2022-07-22 清华大学 一种密钥获取方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3182638A1 (en) * 2015-12-18 2017-06-21 ID Quantique S.A. Apparatus and method for adding an entropy source to quantum key distribution systems
CN107453868A (zh) * 2017-09-01 2017-12-08 中国电子科技集团公司第三十研究所 一种安全高效的量子密钥服务方法
CN107483196A (zh) * 2017-09-08 2017-12-15 中南大学 基于连续变量量子密钥分发的数据流加密系统及其实现方法
CN108322305A (zh) * 2018-05-16 2018-07-24 南通大学 用于aes加密硬件系统的量子字节替换硬件模块的实现方法
CN108650076A (zh) * 2018-05-16 2018-10-12 南通大学 基于量子可逆逻辑的aes加密系统硬件模块的实现方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3182638A1 (en) * 2015-12-18 2017-06-21 ID Quantique S.A. Apparatus and method for adding an entropy source to quantum key distribution systems
CN107453868A (zh) * 2017-09-01 2017-12-08 中国电子科技集团公司第三十研究所 一种安全高效的量子密钥服务方法
CN107483196A (zh) * 2017-09-08 2017-12-15 中南大学 基于连续变量量子密钥分发的数据流加密系统及其实现方法
CN108322305A (zh) * 2018-05-16 2018-07-24 南通大学 用于aes加密硬件系统的量子字节替换硬件模块的实现方法
CN108650076A (zh) * 2018-05-16 2018-10-12 南通大学 基于量子可逆逻辑的aes加密系统硬件模块的实现方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于量子可逆逻辑加密算法设计与硬件实现;陈加庆等;《解放军理工大学学报(自然科学版)》;20180404;第1-4页 *
抗功耗攻击的AES密码算法硬件设计;苑志刚;《中国优秀硕士论文全文数据库》;20141130;第I136-312页 *

Also Published As

Publication number Publication date
CN110113149A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
JP2005215688A (ja) S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法
CN112199696B (zh) 基于白盒分组密码的加解密方法
JP2000252751A (ja) スペクトル拡散信号発生方法、スペクトル拡散信号発生器、ストリーム暗号化方法、及びストリーム暗号通信方法
CA2414261A1 (en) Method of encryption using multi-key process to create a variable-length key
WO2020168627A1 (zh) 基于拉链式动态散列和nlfsr的加密解密方法及装置
Pisarchik et al. Chaotic map cryptography and security
CN110120867B (zh) 一种基于量子可逆线路的aes硬件加密系统的实现方法
CN110113149B (zh) 一种用于aes硬件加密系统的量子秘钥扩展模块的实现方法
Liu et al. Constructing strong S-Box by 2D chaotic map with application to irreversible parallel key expansion
JP2004258667A (ja) N個のデジットを含むワードの擬似ランダム置換の生成方法
CN110058842A (zh) 一种结构可变的伪随机数生成方法及装置
Hashim et al. Design and implementation of proposed 320 bit RC6-cascaded encryption/decryption cores on altera FPGA
Anusha et al. Symmetric key algorithm in computer security: a review
CN107733634A (zh) 一种基于置换耦合的轻量化混沌认证加密方法
JP2002217898A (ja) 擬似乱数生成システム
Singh et al. Study & analysis of cryptography algorithms: RSA, AES, DES, T-DES, blowfish
CN110086619B (zh) 密钥流生成方法及装置
Qasim et al. Encrypt medical image using Csalsa20 stream algorithm
KR20010034058A (ko) 이진 데이터 블록의 암호 변환 방법
KR101076747B1 (ko) 스트림 모듈의 계층적 트리 구조를 통한 무작위 접근이 가능한 암호화/복호화 방법 및 장치
JP2000075785A (ja) 高速暗号処理回路および処理方法
CN101335741A (zh) 认证加密的迦罗瓦计数模式中赫序运算的加速方法与装置
Pal et al. Composite transposition substitution chaining based cipher technique
CN105897396B (zh) 针对snow 3g加密算法的密码分析方法
RU2140716C1 (ru) Способ криптографического преобразования блоков цифровых данных

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant