This application discloses a data encryption method, data authentication method and related equipment and systems, which include: determining the bit number N of data to be encrypted; determining the bit number m of data encrypted for encrypted data; selecting the m-order primitive polynomial of LFSR shift operation and obtaining the initial shift data of m-bit; and at least two bits belonging to the matrix to be encrypted. The encrypted sub-matrix and at least two random sub-matrices belonging to the random matrix are processed to obtain the matrix data multiplied by the encrypted matrix and the random matrix is a N-row-1 column matrix composed of N bits of the data to be encrypted, a Toeplitz matrix composed of m+N_1 bits of the mrow-N column, and m+N_1 bits of the data to be encrypted include m bits. The initial shift data of bits and the new N_1 bit data generated by N_1 shift based on m-order primitive polynomials. This application can improve the accuracy of data integrity authentication.
【技术实现步骤摘要】
一种数据加密方法、数据认证方法及相关设备和系统
本申请涉及量子密钥分发
,尤其涉及一种数据加密方法、数据认证方法及相关设备和系统。
技术介绍
量子密钥分发(QuantumKeyDistribution,简称QKD)与经典密钥体系的根本不同在于,其采用光子的不同量子态作为密钥的载体,由量子力学的基本原理保证了该过程的不可窃听、不可破译性,从而提供了一种更为安全的密钥体系。在QKD系统的具体实现中,要保证它的安全性需要考虑各种可能的攻击,一种可能的攻击就是中间人攻击,具体地,当窃听者Eve拥有整个可以完成QKD协议的设备时,对于合法通信双方,即QKD终端Alice和Bob,窃听者Eve可以截断Alice发给Bob的通讯信息,并且冒充自己是Bob,并在自己和Alice之间建立起一个共享密钥,同时,Eve也可以截断Bob发给Alice的通讯信息,在自己和Bob之间建立起另外一个共享密钥,这样,Alice与Bob之间的通讯信息,就可以被Eve窃取并篡改了。为了防止中间人攻击,现有的QKD数据认证算法有CRC32(32位循环冗余校验)校验算法,采用该算法对经典网络交互数据进行CRC计算,得到32bits校验值,Alice、Bob双方通过比对交互数据的CRC校验值来确定交互数据是否被篡改。但是,采用CRC算法进行校验的方法,CRC校验值的碰撞概率较高,因此,窃听者容易伪造交互数据使得CRC校验通过,不能起到很好的数据完整性验证功能。经实验验证,使用随机生成数据计算CRC校验值并统计,发现1820万个数据,冲突数量已达到38638,不能满足QKD终端数据认证的需求。 ...
【技术保护点】
1.一种数据加密方法,其特征在于,包括:确定待加密数据的比特位数N;确定对所述待加密数据进行加密后的数据的比特位数m,m小于N;选取实现线性反馈移位寄存器LFSR移位操作的m阶本原多项式,并获取m比特位的初始移位数据;对属于待加密矩阵的至少两个待加密子矩阵以及属于随机矩阵的至少两个随机子矩阵进行处理,以获取所述待加密矩阵与所述随机矩阵相乘后的矩阵数据,所述矩阵数据是对所述待加密数据进行加密后的数据;其中,所述待加密矩阵是由所述待加密数据的N比特位构成的N行1列矩阵;所述随机矩阵是由m+N‑1比特位数据构成的m行N列的Toeplitz矩阵,所述m+N‑1比特位数据包括所述m比特位的初始移位数据、以及基于所述m阶本原多项式实现N‑1次移位应新生成的N‑1比特位数据。
【技术特征摘要】
1.一种数据加密方法,其特征在于,包括:确定待加密数据的比特位数N;确定对所述待加密数据进行加密后的数据的比特位数m,m小于N;选取实现线性反馈移位寄存器LFSR移位操作的m阶本原多项式,并获取m比特位的初始移位数据;对属于待加密矩阵的至少两个待加密子矩阵以及属于随机矩阵的至少两个随机子矩阵进行处理,以获取所述待加密矩阵与所述随机矩阵相乘后的矩阵数据,所述矩阵数据是对所述待加密数据进行加密后的数据;其中,所述待加密矩阵是由所述待加密数据的N比特位构成的N行1列矩阵;所述随机矩阵是由m+N-1比特位数据构成的m行N列的Toeplitz矩阵,所述m+N-1比特位数据包括所述m比特位的初始移位数据、以及基于所述m阶本原多项式实现N-1次移位应新生成的N-1比特位数据。2.根据权利要求1所述的方法,其特征在于,所述对属于待加密矩阵的至少两个待加密子矩阵以及属于随机矩阵的至少两个随机子矩阵进行处理,包括:从所述待加密数据中未被读取过的数据中读取n比特位数据,构造n行1列的待加密子矩阵;根据LFSR移位原理以及所述m阶本原多项式,确定进行n次移位操作应新生成的n比特位数据,利用所述n次移位前LFSR中的m比特位数据以及所述n比特位数据中应在先新生成的n-1比特位数据,构造m行n列的随机子矩阵;将所述随机子矩阵与所述待加密子矩阵相乘,得到子矩阵相乘结果;当仅计算过一次子矩阵相乘结果时,再次执行以上步骤得到新的子矩阵相乘结果;当至少计算过两次子矩阵相乘结果时,将本次的子矩阵相乘结果与上一次的子矩阵相乘结果进行异或运算,得到包括m比特位数据的运算结果;循环执行所述从所述待加密数据中未被读取过的数据中读取n比特位数据及其后续步骤,直到所述待加密数据被全部读取完并得到包括m比特位数据的运算结果为止。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:将预设密钥数据作为所述待加密数据,循环执行所述从所述待加密数据中未被读取过的数据中读取n比特位数据及其后续步骤,直到所述待加密数据被全部读取完并得到包括m比特位数据的运算结果为止。4.根据权利要求3所述的方法,其特征在于,所述初始移位数据和所述预设密钥数据是从密钥缓存区中未被使用过的密钥数据中提取的,其中,所述密钥缓存区中存储了预先分配的密钥数据以及量子密钥分发QKD系统输出的量子密钥数据。5.根据权利要求2所述的方法,其特征在于,所述确定进行n次移位操作应新生成的n比特位数据,包括:采用现场可编程门阵列FPGA进行并行处理,以在预设数量的时钟周期内确定进行n次移位操作应新生成的n比特位数据。6.根据权利要求1至5任一项所述的方法,其特征在于,所述m阶本原多项式中存在系数均为0的连续高次项。7.一种数据认证方法,其特征在于,所述方法应用于一种QKD系统,所述QKD系统包括通过经典网络进行通信的第一QKD终端和第二QKD终端,所述方法包括:所述第一QKD终端采用权利要求1至6任一项所述的方法对第一待认证数据进行加密;其中,所述第一待认证数据包括预设时段内所述第一QKD终端向所述第二QKD终端发送的数据、以及所述预设时段内所述第一QKD终端从所述第二QKD终端接收的数据;所述第二QKD终端采用权利要求1至6任一项所述的方法对第二待认证数据进行加密;其中,所述第二待认证数据包括所述预设时段内所述第二QKD终端向所述第一QKD终端发送的数据、以及所述预设时段内所述第二QKD终端从所述第一QKD终端接收的数据;所述第一QKD终端根据本端的加密运算结果与所述第二QKD终端的加密运算结果,确定所述第一待认证数据是否被篡改;所述第二QKD终端根据本端的加密运算结果与所述第一QKD终端的加密运算结果,确定所述第二待认证数据是否被篡改。8.根据权利要求7所述的方法,其特征在于,将权利要求3或4所述方法中的预设密钥数据称为第一密钥、第二密钥或第三密钥,则:所述对第一待认证数据进行加密,包括:所述第一QKD终端基于所述第一密钥对所述第一待认证数据进行加密,得到第一哈希值;利用第二密钥对所述第一哈希值进行加密,将得到的第一密文发送至所述第二QKD终端;相应地,所述对第二待认证数据进行加密,包括:所述第二QKD终端基于所述第一密钥对所述第二待认证数据进行加密,得到第二哈希值;利用与所述第二密钥不同的第三密钥对所述第二哈希值进行加密,将得到的第二密文发送至所述第...
【专利技术属性】
技术研发人员:程节,汤艳琳,赵梅生,
申请(专利权)人:科大国盾量子技术股份有限公司,
类型:发明
国别省市:安徽,34
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。