基于量子真随机数的移动终端保密系统及方法
技术领域
本发明涉及的是一种无线加密通信领域的技术,具体是一种基于量子真随机数的移动终端保密系统及方法。
背景技术
无线的移动通讯设备比起传统的有线通讯方式面临着更大的被窃听的危险,然而很多信息都还是通过明文发送的。即使使用了传统的加密方法,其中分为对称加密算法比如DES,AES,RC5等和非对称加密算法比如RSA,Elgamal等,这些在理论上都是可以被破解的。只有一次一密的加密方法才能保证绝对的安全性,一次一密的方法很早就被军方与政府使用来保证最高机加密文件的安全。这种保证绝对安全性的方法之所以没有被广泛应用于商用和民用,是因为一次一密要求密钥文件的不可重复利用性和密钥的真随机性,而计算机系统是具有确定性的系统因此无法产生真正的随机数,利用其他方式产生真随机数密钥文件本身的产生是需要硬件技术支持和经济成本的。随着现代量子技术的发展,我们可以从量子力学所固有的不确定性中获取这种真随机数并且可以快速生成大量随机数据,现在量子随机数产生器已经商品化了,为一次一密应用于商用带来了很大的前景。
经过对现有技术的检索发现,中国专利文献号CN202121593U,公开(公告)日2012.01.18,公开了一种基于量子密钥分配网络的移动加密系统,它包括量子密钥分配网络,量子密钥分配网络包括若干个量子集控站,每个量子集控站与至少一个量子终端通信,量子终端通过密钥更新接口与移动终端或非移动用户通信。采用量子密钥分配网络分配共享密钥,可以分配大容量随机密钥,使得加密算法不需要进行多重矩阵乘法运算,大大减轻了加密的运算量。另外,利用量子密钥分配提供的大数据量随机密钥,可以对数据流进行高度安全的数字签名。但该技术并没有包括移动终端的应用实现方式的说明,也不包括在移动终端使用量子随机数实现单机一次一密的加密和解密的部分。我们的移动终端主要可以用来保护国家,公司,或者一个组织之间的内部通讯的绝对安全,而其使用的却可以是广域的网络。
中国专利文献号CN103973439A,公开(公告)日2014.08.06,公开了一种多变量公钥加密方法。在密钥生成过程中,采用迭代方法构造矩阵,大大缩短了密钥的长度,便于密钥管理;采用概率加密,在加密中引入随机参数,解密方必须通过解密过程求解出该随机参数,并参与明文的解密,只有知道随机参数的大小才能正确解密明文,增加了攻击者破已解密文件的难度,即使在公钥相同的情况下加密文件也是不同的,公钥能以类似电话号码的形式公布,提高了加密安全性;基于组合优化困难问题和多变量二次多项式问题,能抵抗量子计算机的攻击,加解密速度快,能够运用于移动终端,如手机等;基于有限域上的运算,简化了运算过程;具有加法同态和减法同态,在特殊条件下具有乘法同态,能应用于云计算等新兴领域。但该技术属于基于困难问题的算法,无法快速生成大量的真随机数,难以满足移动通信的高速需求。
现有技术中公开了量子随机数产生的技术,如A.Stefanov,N.Gisin,O.Guinnard,L.Guinnard,and H.Zbinben,Optical quantum random number Generator,光量子随机数产生器,Journal of Modern Optics 47,595(2000),以及Y.-Q.Nie,H.-F.Zhang,Z.Zhang,J.Wang,X.Ma,J.Zhang,and J.-W.Pan,Practical and fast quantum random numbergeneration based on photon arrival time relative to external reference,基于相对外部参考系的光子到达时间的具有实用性且快速的量子随机数生成器,AppliedPhysics Letters 104,051110(2014).和B.Sanguinetti,A.Martin,H.Zbinden,andN.Gisin,Quantum Random Number Generation on a Mobile Phone,移动电话上的量子随机数生成器,Phys.Rev.X 4,031056(2014),但现有的中继服务安全领域并没有类似技术的具体应用。
发明内容
本发明针对现有技术存在的上述不足,提出一种基于量子真随机数的移动终端保密系统及方法,通过量子随机数产生模块,以4Mps的速度生成随机数,通过一次一密的方式实现了在移动设备上方便而快捷得保证数据的绝对安全性,同时可行性好,易于实现与应用,成本低。
本发明是通过以下技术方案实现的:
本发明涉及一种基于量子真随机数的移动终端保密系统,包括:量子随机数产生模块、密钥文件存储模块、加密模块、解密模块、密钥信息存储模块和外部文件存储模块,其中:量子随机数产生模块与密钥文件存储模块相连并传输随机数密钥信息,密钥文件存储模块分别与加密模块和解密模块相连并传输用于加密和解密的密钥信息,解密模块与外部文件存储模块相连并传输待解密文件及已解密文件,加密模块和外部文件存储模块相连并传输待加密文件及已加密文件,加密模块与密钥信息存放模块相连并传输密钥使用情况信息。
所述的量子随机数产生模块,为移动设备之外的外部设备,是基于量子力学固有的性质来产生量子真随机数的,其实现包括但不限于以下所列几种:1)最典型的量子随机数产生模块包括:单光子发生器、50/50分束器以及单光子探测器,该量子随机数产生模块可以通过测量光子的输出路径来获得随机数据;2)通过测量单光子的到达时间来获得量子随机数据;3)通过激光器的相位噪声获得量子随机数;4)从真空涨落中也可以获取量子随机数5)移动手机的相机也可以产生量子随机数;量子随机数产生模块利用量子效应可以得到真正的随机数据,ID Quantique公司的量子随机数产生模块速率可以达到4Mbps,可以根据具体情况设置量子随机数产生模块的个数,所述的随机数据是利用量子力学固有的不确定性所得到,因此是不可预测,前后事件间也没有关联的,不能通过密钥的一部分来推得密钥的另外一部分;每个注册用户都有其独有的密钥。
所述待加密文件包括但不限于文本文件、图片、音频、视频或其组合。
所述密钥文件存储模块将密钥文件存放于数据库保证密钥的安全性。
本发明涉及上述系统的移动终端保密方法,以密钥文件的读取位置作为明钥,在每次加密操作后进行更新并作为已加密文件的一部分;当解密时通过读取已加密文件中的明钥得到解密所需要的密钥文件的读取位置并实现解密。
所述的密钥文件是指:通过量子随机数产生模块产生的0/1随机数据文件,其每位数据只能被加密使用一次,加密过文件后的数据位文件以后不会再被用来加密,密钥文件定期更新以保证新鲜度。
所述的加密/解密操作是通过按位异或操作完成的,而所有涉及文件读取保存的操作均以字节流的方式操作。
所述的更新基于原密钥文件的读取位置和待加密文件的大小生成更新后的密钥文件的读取位置。
技术效果
与现有技术相比,本发明基于上述系统开发的移动终端应用只需下载一定容量的密钥文件就可直接装于移动终端上使用。
附图说明
图1为本发明系统示意图。
图2为本发明流程示意图。
具体实施方式
下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
实施例1
如图2所示,本实施例通过在移动终端预先安装本发明所述系统,其保密方法具体包括以下步骤:
步骤1、检测移动终端中是否保留有随机数密钥信息,当没有时,通过量子随机数产生模块生成随机数密钥信息并存于移动终端密钥文件存储模块,当移动终端中已有足够的密钥文件则跳过步骤1直接进行步骤2;
所述的随机数密钥信息在每次生成随机数后根据已加密的次数和每次的使用量来消耗密钥,具体为:由密钥每次加密后将存储已加密的次数和每次的使用量存储为密钥使用情况信息,该信息决定下次加密开始的位置,从而使得使用过的密钥下次将不再被使用。
步骤2、当用户从外部文件存储模块中选择待加密文件,检测该文件是否已被加密(如文件后缀名为“*.quantum”类型),当未被加密则执行步骤3,否则结束操作。
步骤3、以字节流形式读取待加密文件,并以字节数组形式保存于缓冲区;计算该字节数组的长度L,其中L为大于等于0的整数。
步骤4、加密模块从密钥信息存储模块中读取密钥使用情况信息,根据其中的映射得到密钥文件存储模块中密钥起始读取的位置X,并读取密钥文件中长度为L的字节数组并保存于缓冲区。
步骤5、加密模块根据步骤3中待加密文件与步骤4中的缓冲区内字节数组进行按位异或操作,将密钥起始位置X,加密文件长度L,以及异或操作所得结果存储于一长度为2N+L的加密文件数组缓冲区。
所述的加密文件数组缓冲区中前N个字节为更新后的密钥使用情况信息内容,从8*2*N+1位开始为异或操作后的结果,其中:N为大于等于1的整数,为了保证数据不溢出,一般N大于等于4,同时为了不造成空间的浪费N也不宜过大。
所述的密钥使用情况信息中包括一长度为N的字节数组,用于存放用户过去使用密钥的信息,这个信息只包含密钥的使用的相对信息,而不包含具体的密钥,即这个文件的不会影响到本发明的安全性,但是可以用来控制密钥的使用部分。
所述的系统在初次运行时密钥使用情况信息的内容为0,每次加密前先从密钥信息存储模块中读取该密钥使用情况信息,并将其映射到一个用于控制密钥读取的位置的变量X,将X与待加密文件的字节数组的长度L相加得的数值,作为更新后的密钥使用情况信息内容并存入密钥信息存储模块。
步骤6、将加密文件数组缓冲区保存至外部文件存储模块,即得到了所要的加密文件;只有在每次加密时需要对密钥使用情况信息进行更新。
所述的加密文件后缀名为“*.quantum”,“*.quantum”文件的数据结构如表1所示,
表1
其中:C1为存储解密密钥开始位置,长度为N字节,N的大小由存储器决定,C2为存储加密文件正文长度,长度为N字节,N的大小由存储器决定,C3为存储加密文件正文部分,长度由加密文件的长度决定。
实施例2
本实施例针对上述加密后的文件进行解密,具体包括以下步骤:
步骤a、用户通过量子随机数产生模块生成一定容量的随机数密钥信息并存于密钥文件存储模块,如果移动终端中已有足够的密钥文件则跳过步骤a直接进行步骤b。
步骤b、用户从外部文件存储模块中选择待解密文件,如果所选文件的不为“*.quantum”类型,则提示所选文件不需解密,结束操作,否则进行步骤b。
步骤c、将待解密文件以字节流的形式从外部文件存储模块中读取并保存存于一个字节数组缓冲区,根据这个字节数组的前N字节获得密钥文件开始读取的位置Xd(即所述更新后的密钥使用情况信息内容),第N+1到2N字节的内容为要已解密文件的长度Ld。
步骤d、根据步骤c得到的Xd与Ld分别作为起始位置和读取长度从密钥存储模块中读取密钥文件,并存储于一长度为Ld的字节数组缓冲区内。
步骤e、将待解密文件的字节数组中的第8*2*N+1位开始与密钥文件的字节数组的第一位开始进行按位异或操作,得到一个长度为Ld的字节数组,将其保存于外部文件存储模块文件即得到解密后文件。
与现有技术相比,本实施例使用的是由量子随机数产生模块产生的真随机数,并具有较快的随机数生成速度,每个密钥只使用一次,实现了真正的一次一密;本方法使用的加密/解密算法都是按位操作,处理器执行速度快,可以实现实时传输;基于本发明的移动终端应用程序可方便的装到移动终端上实现即装即用。