CN104579646A - 乱码本有限单向变换及其加解密应用 - Google Patents

乱码本有限单向变换及其加解密应用 Download PDF

Info

Publication number
CN104579646A
CN104579646A CN201510051186.8A CN201510051186A CN104579646A CN 104579646 A CN104579646 A CN 104579646A CN 201510051186 A CN201510051186 A CN 201510051186A CN 104579646 A CN104579646 A CN 104579646A
Authority
CN
China
Prior art keywords
book
clobber
initial
monotonic transformation
module
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.)
Granted
Application number
CN201510051186.8A
Other languages
English (en)
Other versions
CN104579646B (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.)
Nanjing Faweike Information Technology Co Ltd
Original Assignee
Nanjing Faweike Information Technology Co Ltd
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 Nanjing Faweike Information Technology Co Ltd filed Critical Nanjing Faweike Information Technology Co Ltd
Priority to CN201510051186.8A priority Critical patent/CN104579646B/zh
Publication of CN104579646A publication Critical patent/CN104579646A/zh
Application granted granted Critical
Publication of CN104579646B publication Critical patent/CN104579646B/zh
Priority to PCT/CN2016/071558 priority patent/WO2016119625A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了乱码有限单向变换及其加解密应用。其中,乱码有限单向变换的方法将初始乱码进行单向变换后与电文异或,并且初始乱码参与单向变换的次数受限。发明的乱码有限单向变换的方法实质上是一种以带宽换速度的加解密方法,即以花费少量带宽换取加解密速度。相比与传统的标准加解密方法,发明的方法需要消耗少量带宽,在保证数据的安全性的前提下,可提高十倍乃至百倍的加密解密速度。而且发明实现简单,因此可广泛应用于大容量数据的存储和传输中。

Description

乱码本有限单向变换及其加解密应用
技术领域
本发明涉及数据加密,特别涉及大流量通信中数据加解密以及大数据存储加解密。
背景技术
通信加密的目的在于保持明文的秘密不被窃听者知晓。与之对应的是密码分析,其目的在于恢复被加密的明文。根据现代应用密码学的理论,现有的加密方法一般分成两类:一类是以DES、AES为代表的对称加密算法,一类是以RSA和ECC为代表的非对称加密算法。通信中很多加密方法都依赖于这两种基本的算法,或者是这两种算法的优化变种,或者是依赖于这两种算法的原理。但这两类加密方法都存在一个共同的缺陷:速度太慢。首先,非对称加密方法加密的速度为毫秒级,基本上,无法直接应用于流数据的加密解密,通常只能用于交换密码或数字签名。用硬件DES、AES实现比较快,最快可以少于10时钟周期,但用软件实现同样加密算法就会慢很多,最少也需要1000个CPU周期,如果将其应用于流数据加密ECB、CBC、CFB、OFB加密时,开销更大,假如该加密方法应用于大文件的加密开销更是惊人。
发明内容
本发明所要解决的问题:
1.提高大流量数据通信加密解密的速度;
2.提高大数据存储加密解密的速度。
为解决上述问题,本发明所采用的方案如下:
根据本发明的乱码本有限单向变换的方法,该方法包括以下步骤:
GT1:获取初始乱码本;
GT2:乱码本单向变换后与电文异或;
GT3:重复执行步骤GT2并控制步骤GT2执行的轮次数限于变换限值;
其中,所述乱码本单向变换为采用单向函数对乱码本进行运算;所述变换限值大于1。
进一步,根据本发明的乱码本有限单向变换的方法,所述初始乱码本包含多个原子乱码本;所述原子乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤GT2的乱码本单向变换中各轮次之间或采用累进变换模式,或采用密文链变换模式,或采用明文链变换模式;所述累进变换模式中,上个轮次乱码本单向变换的输出作为下一轮次乱码本单向变换中的输入;所述密文链变换模式中,上个轮次乱码本单向变换与电文异或的结果与初始乱码本异或作为下一轮次乱码本单向变换中的输入;所述明文链变换模式中,上个轮次用于被变换的电文与初始乱码本异或作为下一轮次乱码本单向变换中的输入。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤GT2的乱码本单向变换中,轮次作为乱码本单向变换的参数输入。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤GT2的乱码本单向变换为缩变换;所述缩变换为乱码本单向变换中,输入的乱码本长度大于输出的乱码本长度。
进一步,根据本发明的乱码本有限单向变换的方法,所述的变换限值为非固定值。
进一步,根据本发明的乱码本有限单向变换的方法,所述的单向函数包含有下述运算之一或下述运算之组合:循环移动、多项式运算、非线性置换。
进一步,根据本发明的乱码本有限单向变换的方法,所述的单向函数包含环移小部哈希运算;所述的环移小部哈希运算包括如下步骤:
T1:将乱码本根据当前轮次数循环移动;
T2:从循环移动后的乱码本中选取lenHashi字节长度的字符串txtHashi;
T3:对字符串txtHashi进行杂凑运算得到杂凑值txtHasho;
T4:将txtHasho与循环移动后的乱码本进行线性组合运算;
其中,lenHashi取值为8~256。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤T3中进行杂凑运算的输入还包括当前轮次。
进一步,根据本发明的乱码本有限单向变换的方法,还包括以下步骤:
FBS:根据轮次数从单向函数库中选择单向函数;
所述单向函数库包括了各种不同的单向函数。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤GT2替换为乱码本单向变换后与电文相加或相减。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤GT3替换为:判断初始乱码本的生成时间,当初始乱码本的生成时间在限定时限内时执行步骤GT2。
进一步,根据本发明的乱码本有限单向变换的方法,所述步骤GT3替换成:判断电文是否完成变换异或,如果存在待变换异或的电文则重复执行步骤GT2。
根据本发明的一种基于乱码本有限单向变换的数据处理装置,包括处理器和存储器;所述处理器用于执行程序指令;所述存储器存储有程序指令集;当所述处理器执行所述程序指令集时,使得该数据处理装置可以执行上述的乱码本有限单向变换的方法。
根据本发明的乱码本有限单向变换的装置,该装置包括随机码本模块、变换异或模块和轮次控制模块;所述随机码本模块用于获取初始乱码本;所述变换异或模块包括单向函数模块和电文异或模块,用于对乱码本单向变换后与输入的电文异或;所述单向函数模块用于对乱码本执行单向变换,即采用单向函数对乱码本进行运算;所述电文异或模块用于单向变换后的乱码本与输入的电文异或;所述轮次控制模块用于控制乱码本执行单向变换的轮次数使其限于变换限值;其中,所述变换限值大于1。
进一步,根据本发明的乱码本有限单向变换的装置,所述初始乱码本包含多个原子乱码本;所述原子乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。
进一步,根据本发明的乱码本有限单向变换的装置,该装置还包括工作链接模块;所述工作链接模块为累进变换链接模块或密文链接模块或明文链接模块;所述累进变换链接模块用于使得上个轮次乱码本单向变换的输出成为下一轮次乱码本单向变换的输入;所述密文链接模块用于使得上个轮次乱码本单向变换与电文异或的结果与初始乱码本异或作为下一轮次乱码本单向变换中的输入;所述明文链接模块用于使得上个轮次输入的电文与初始乱码本异或作为下一轮次乱码本单向变换中的输入。
进一步,根据本发明的乱码本有限单向变换的装置,所述单向函数模块执行的乱码本单向变换时,轮次作为乱码本单向变换的参数输入。
进一步,根据本发明的乱码本有限单向变换的装置,所述变换异或模块中所述的乱码本单向变换为缩变换;所述缩变换为乱码本单向变换中,输入的乱码本长度大于输出的乱码本长度。
进一步,根据本发明的乱码本有限单向变换的装置,所述的变换限值为非固定值。
进一步,根据本发明的乱码本有限单向变换的装置,所述单向函数模块包含有下述运算之一或下述运算之组合:循环移动、多项式运算、非线性置换。
进一步,根据本发明的乱码本有限单向变换的装置,所述的单向函数模块包含环移小部哈希运算模块;所述环移小部哈希运算模块包括循环移动模块、小部选取模块、哈希函数模块和线性合并模块;所述循环移动模块用于将乱码本根据当前轮次数循环移动;所述小部选取模块用于从循环移动后的乱码本中选取lenHashi字节长度的字符串txtHashi;所述哈希函数模块用于对字符串txtHashi进行杂凑运算得到杂凑值txtHasho;所述线性合并模块用于将txtHasho与循环移动后的乱码本进行线性组合运算。
进一步,根据本发明的乱码本有限单向变换的装置,所述哈希函数模块中进行杂凑运算时的输入还包括当前轮次数。
进一步,根据本发明的乱码本有限单向变换的装置,该装置还包括单向函数库模块;所述单向函数库模块用于根据轮次数从单向函数库中选择单向函数。
进一步,根据本发明的乱码本有限单向变换的装置,所述电文异或模块替换成电文相加模块或电文相减模块;所述电文相加模块用于单向变换后的乱码本与输入的电文相加;所述电文相减模块用于单向变换后的乱码本与输入的电文相减。
进一步,根据本发明的乱码本有限单向变换的装置,所述轮次控制模块替换成时限控制模块;所述时限控制模块用于判断初始乱码本的生成时间,当初始乱码本的生成时间在限定时限内时所述单向函数模块执行乱码本单向变换。
进一步,根据本发明的乱码本有限单向变换的装置,所述轮次控制模块替换成电文检查模块;所述电文检查模块判断电文是否完成变换异或,如果存在待变换异或的电文则所述单向函数模块执行乱码本单向变换。
根据本发明的一种乱码本有限单向变换电路,该电路包括轮次控制器、单向函数单元、电文异或单元;所述单向函数单元包括初始乱码本输入接口、与电文异或单元输入相连的输出接口;所述电文异或单元包括与单向函数单元输出相连的输入接口、电文输入接口以及变换输出接口;其中,所述轮次控制器用于记录单向函数单元执行操作的轮次数,并控制单向函数单元对每个原子乱码本执行操作的轮次数限于变换限值;所述单向函数单元用于对通过初始乱码本输入接口输入的初始乱码本按原子乱码本执行单向函数运算的操作;所述电文异或单元用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行逻辑异或的操作,并通过所述变换输出接口输出。
进一步,根据本发明的乱码本有限单向变换电路,所述的单向函数单元包括按位为单位的非线性置换。
进一步,根据本发明的乱码本有限单向变换电路,该电路还包括参数配置单元;所述的参数配置单元通过非易失性存储器存储乱码本有限单向变换中的参数。
进一步,根据本发明的乱码本有限单向变换电路,在所述初始乱码本输入接口处设有初始异或单元,在所述变换输出接口处设有密文链接器;所述初始异或单元包括与所述密文链接器相连的输入接口、与所述单向函数单元相连的输出接口;所述密文链接器包括与所述变换输出接口相连的输入接口、与所述初始异或单元输入相连的输出接口;所述密文链接器用于缓冲存储经所述电文异或单元输出的电文,并将输出的电文等待一个轮次输入至所述初始异或单元;所述初始异或单元用于根据所述初始乱码本输入接口输入的原子乱码本与从所述密文链接器获得的上个轮次的输出的电文进行异或后输入至所述单向函数单元。
进一步,根据本发明的乱码本有限单向变换电路,在所述初始乱码本输入接口处设有初始异或单元,在所述电文输入接口处设有明文链接器;所述初始异或单元包括与所述明文链接器相连的输入接口、与所述单向函数单元相连的输出接口;所述明文链接器包括与所述电文输入接口相连的输入接口、与所述初始异或单元输入相连的输出接口;所述明文链接器用于缓冲存储经所述电文输入接口输入的电文,并将输入的电文等待一个轮次输入至所述初始异或单元;所述初始异或单元用于根据所述初始乱码本输入接口输入的原子乱码本与从所述明文链接器获得的上个轮次的输入的电文进行异或后输入至所述单向函数单元。
进一步,根据本发明的乱码本有限单向变换电路,该电路还包括随机序列生成单元、随机采样单元、采样寄存器;其中,所述随机采样单元连接一随机信号输入接口;所述随机采样单元用于根据对随机信号输入接口输入的随机信号量进行采样获得随机量,并将得到的随机量存入所述采样寄存器内;所述随机序列生成单元连接所述采样寄存器和所述单向函数单元,并连接有乱码本输出接口;所述随机序列生成单元用于从采样寄存器内读取随机量通过随机序列生成函数将随机量生成随机序列作为初始乱码本输出,输出的初始乱码本经所述初始乱码本输入接口传入所述单向函数单元,并经所述乱码本输出接口输出。
进一步,根据本发明的乱码本有限单向变换电路,在所述乱码本输出接口处还设有加密单元;所述加密单元用于通过采用标准加密方法实现对由随机序列生成单元生成的初始乱码本进行加密,然后将加密后的初始乱码本输出至所述乱码本输出接口。
进一步,根据本发明的乱码本有限单向变换电路,所述电文异或单元替换成电文相加单元或电文相减单元;所述电文相加单元用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行数学相加的操作,并通过所述变换输出接口输出;所述电文相减单元用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行数学相减的操作,并通过所述变换输出接口输出。
根据本发明的基于乱码本有限单向变换的数据加密存储的方法,包括如下步骤:
Sv1:获取初始乱码本;
Sv2:根据初始乱码本,采用上述的乱码本有限单向变换的方法对明文加密得到密文;
Sv3:将初始乱码本存入乱码区;
Sv4:将密文存入密文区;
其中,乱码区是用于存储初始乱码本的区域,密文区是用于存储密文数据的区域。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的方法,所述乱码区和密文区分别位于不同的存储空间内。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的方法,所述乱码区分成多个码本簇;所述码本簇是存储原子乱码本的区域;所述密文区分成多个与码本簇对应的密文辖区;所述密文辖区是存储所有由该密文辖区所对应的码本簇内的原子乱码本经基于乱码本有限单向变换加密获得的密文的区域;密文辖区包含有多个密文簇;所述密文簇是存储最小单位的密文的区域;所述最小单位的密文是由原子乱码本经一个轮次的单向变换后与明文异或后获得;所述原子乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的方法,所述码本簇对应有轮次区;所述轮次区用于存储每个密文簇对应的轮次的区域;所述密文辖区内密文簇的数量不超过变换限值的五分之一。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的方法,该方法采用了初始乱码本分级的方法;所述初始乱码本分级的方法为初始乱码本被分成N级;其中,第1级的初始乱码本用于采用乱码本有限单向变换的方法加密存储明文,第i级的初始乱码本采用乱码本有限单向变换的方法加密存储第i-1级的初始乱码本。
根据本发明的基于乱码本有限单向变换的数据加密存储的装置,该装置包括随机码本模块、码本存储模块、变换异或模块、轮次控制模块和密文存储模块;所述随机码本模块用于获取初始乱码本;所述码本存储模块用于将初始乱码本存入乱码区;所述变换异或模块用于对乱码本单向变换后与电文异或;所述轮次控制模块用于控制乱码本进行单向变换执行的轮次数使其限于变换限值;所述密文存储模块用于将对明文加密获得的密文存入密文区;所述乱码区是用于存储初始乱码本的区域;所述密文区是用于存储密文的区域。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的装置,所述乱码区和密文区分别位于不同的存储空间内。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的装置,该装置还包括:码簇构建模块、明文映射模块、码簇重置模块、码本读取模块、密文读取模块;所述明文映射模块用于将待存储的明文映射至码本簇的密文辖区;所述码簇构建模块用于当待存储明文所对应的码本簇的密文辖区不存在时,构建相应的码本簇和码本簇的密文辖区;所述码本读取模块用于读取码本簇内的原子乱码本;所述密文读取模块用于读取码本簇密文辖区内的密文;所述码簇重置模块用于读取码本簇内的原子乱码本和码本簇密文辖区内的密文,然后逐个解密码本簇密文辖区内各个密文簇内的密文成明文,再合并解密后的明文和待存储的明文;所述码本簇是所述乱码区内存储原子乱码本的区域;所述密文辖区是所述密文区内存储所有由密文辖区所对应的码本簇内的原子乱码本经基于乱码本有限单向变换加密获得的密文的区域;所述密文簇是密文辖区存储最小单位的密文的区域;所述最小单位的密文是由原子乱码本经一个轮次的单向变换后与明文异或后获得。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的装置,该装置还包括:轮次读取模块、轮次存储模块;所述轮次读取模块用于读取轮次区的轮次数据并计算当前轮次;所述轮次存储模块用于将密文簇对应的轮次存入轮次区;所述轮次区用于存储每个密文簇对应的轮次的区域;所述轮次区与所述码本簇相对应;所述密文辖区内密文簇的数量不超过变换限值的五分之一。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的装置,所述初始乱码本分成N级;其中,第1级的初始乱码本用于采用乱码本有限单向变换的方法加密存储明文,第i级的初始乱码本采用乱码本有限单向变换的方法加密存储第i-1级的初始乱码本。
进一步,根据本发明的基于乱码本有限单向变换的数据加密存储的装置,所述变换异或模块替换成变换相加模块或变换相减模块;所述变换相加模块用于对乱码本单向变换后与电文相加;所述变换相减模块用于对乱码本单向变换后与电文相减。
根据本发明的一种存储介质全数据加密存储的方法,在存储介质内设置有标识区;标识区存储有加密识别码;当存储或读取数据时,首先读取标识区内的加密识别码,假如该加密识别码为特定标识时,则通过上述的乱码本有限单向变换的方法或上述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。
进一步,根据本发明的存储介质全数据加密存储的方法,所述标识区还存储有GLOWT参数;当乱码本有限单向变换时,根据GLOWT参数进行。
根据本发明的一种存储介质全数据加密存储的装置,该装置包括GLOWT模块;在该装置的存储介质内设置有标识区;标识区存储有加密识别码;当该装置存储或读取数据时,首先读取标识区内的加密识别码,假如该加密识别码为特定标识时,该装置经GLOWT模块进行加密存储数据或读取数据后解密;所述GLOWT模块为上述的乱码本有限单向变换的装置或上述的基于乱码本有限单向变换的数据加密存储的装置。
进一步,根据本发明的存储介质全数据加密存储的装置,所述标识区还存储有GLOWT参数;当GLOWT模块根据GLOWT参数执行乱码本有限单向变换。
根据本发明的一种存储介质初始化装置,包括分区模块、初始乱码本生成模块和加密存储模块;所述分区模块用于将存储介质划分成乱码区和密文区;所述初始乱码本生成模块用于生成初始乱码本;所述加密存储模块用于将生成的初始乱码本通过标准加密方法加密后存入乱码区。
进一步,根据本发明的存储介质初始化装置,所述的分区模块还用于构建码本簇和码本簇密文辖区。
进一步,根据本发明的一种存储设备,该存储设备包括有存储介质和上述的乱码本有限单向变换电路。
进一步,根据本发明的一种存储设备,该存储设备包括CPU、RAM和存储介质;其中,CPU被用于执行:通过上述的乱码本有限单向变换的方法或如上述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。
进一步,根据本发明的存储设备,该存储设备还包括上述的乱码本有限单向变换电路。
根据本发明的一种带码本密卡的存储设备,包括存储设备本体和码本密卡;所述存储设备本体上设有密卡槽;所述码本密卡可插入所述密卡槽内;所述存储设备本体的内部设有CPU、RAM和存储介质;所述码本密卡用于作为码本区存储初始乱码本;所述存储设备本体的存储介质用于作为密文区存储加密了的数据;所述CPU被用于执行:当所述码本密卡插入所述密卡槽内后读取所述码本密卡内存储的初始乱码本,然后根据初始乱码本采用上述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。
进一步,根据本发明的带码本密卡的存储设备,该存储设备还包括有上述的乱码本有限单向变换电路。
根据本发明的GLOWT同步分路变换装置,包括N路单向函数模块、N路异或模块、初始乱码输入接口、N路信号输入接口和N路信号输出接口;所述N路单向函数模块用于对初始乱码本接口输入的初始乱码本进行单向变换;所述N路异或模块用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相异或,再由N路信号输出接口输出;在所述N路单向函数模块中,各路单向函数模块对初始乱码本进行单向变换后具有各不相同的输出。
进一步,根据本发明的GLOWT同步分路变换装置,该装置采用了扁平变换模式或累进变换模式;在所述扁平变换模式下,初始乱码输入接口同时连接各路单向函数模块的输入;在所述累进变换模式下,第i(1≤i≤N-1)路单向函数模块的输出与第i+1路单向函数模块的输入相连。
进一步,根据本发明的GLOWT同步分路变换装置,该装置采用了密文链变换模式或明文链变换模式;在所述密文链变换模式下,该装置还包括N-1路密文链异或模块;其中,第i(1≤i≤N-1)路密文链异或模块用于将第i路信号输出接口的输出与初始乱码本异或后作为第i+1路单向函数模块的输入;在所述明文链变换模式下,该装置还包括N-1路明文链异或模块;其中,第i(1≤i≤N-1)路明文链异或模块用于将第i路信号输入接口的输入与初始乱码本异或后作为第i+1路单向函数模块的输入。
进一步,根据本发明的GLOWT同步分路变换装置,所述N路异或模块替换成N路加法模块或N路减法模块;所述N路加法模块用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相加,再由N路信号输出接口输出;所述N路减法模块用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相减,再由N路信号输出接口输出。
根据本发明的基于乱码本有限单向变换的复用装置,包括上述的GLOWT同步分路变换装置、多路复用模块、随机同步序列模块、标准加密模块、以及N路信号输入接口和复用输出接口;所述随机同步序列模块用于产生初始乱码本序列;所述标准加密模块用于对所述随机同步序列模块生成的初始乱码本序列采用标准加密方法进行加密,加密后的初始乱码本序列送入至所述多路复用模块;所述GLOWT同步分路变换装置用于根据所述随机同步序列模块获得的初始乱码本对所述N路信号输入接口输入的N路信号进行分路加密,加密后的N路信号输入至所述多路复用模块;所述多路复用模块用于将加密后的初始乱码本序列和N路加密后的输入信号进行多路复用或进行多路映射复用,形成一路高速信号由所述复用输出接口输出。
进一步,根据本发明的基于乱码本有限单向变换的复用装置,所述多路复用模块是基于PDH、SDH、WDM、DWDM、TDMA或CDMA的复用模块。
根据本发明的基于乱码本有限单向变换的解复用装置,包括上述的GLOWT同步分路变换装置、解复用模块、标准解密模块、高速信号输入接口、N路信号输出接口;所述解复用模块用于将所述高速信号输入接口输入的高速信号解复用成N+1路低速信号,其中一路低速信号为加密了的初始乱码本接入至所述标准解密模块,其他N路低速信号为加密了的有效负荷接入至所述GLOWT同步分路变换装置;所述标准解密模块用于将加密了的初始乱码本采用标准加密方法解密成初始乱码本,解密后的初始乱码本接入至所述GLOWT同步分路变换装置;所述GLOWT同步分路变换装置根据解密后的初始乱码本对N路低速信号分路解密,解密后的N路低速信号由所述N路信号输出接口输出。
根据本发明的基于乱码本有限单向变换的传输系统,该传输系统包括上述的基于乱码本有限单向变换的复用装置和上述的基于乱码本有限单向变换的解复用装置。
进一步,根据本发明的基于乱码本有限单向变换的传输系统,该传输系统基于PDH、SDH、WDM、DWDM、TDMA或CDMA。
根据本发明的基于乱码本有限单向变换的传输接入装置,包括上述的GLOWT同步分路变换装置、等速同步分解模块、随机同步序列模块、高速信号接入接口、N路低速信号加密输出接口以及初始乱码本输出接口;所述等速同步分解模块用于将高速信号接入接口输入的高速信号分成N路等速的低速信号后输入至所述GLOWT同步分路变换装置;所述随机同步序列模块用于产生初始乱码本序列,并输入至所述初始乱码本输出接口;所述GLOWT同步分路变换装置用于根据所述随机同步序列模块产生的初始乱码本对所述等速同步分解模块分解得到的N路低速信号进行分路加密,加密后的N路低速信号经所述N路低速信号加密输出接口输出。
进一步,根据本发明的基于乱码本有限单向变换的传输接入装置,该传输接入装置的初始乱码本输出接口处设有标准加密模块;所述标准加密模块用于采用标准加密方法对所述随机同步序列模块产生的初始乱码本加密后经初始乱码本输出接口输出。
根据本发明的基于乱码本有限单向变换的传输接出装置,包括上述的GLOWT同步分路变换装置、同步信号合并模块、高速信号输出接口、N路低速信号输入接口以及初始乱码本接入接口;所述GLOWT同步分路变换装置用于根据所述初始乱码本接入接口输入的初始乱码本序列对所述N路低速信号输入接口输入的N路信号进行分路解密,解密后的N路低速信号输入至所述同步信号合并模块;所述同步信号合并模块用于将解密后的N路低速信号合并成高速信号,所述高速信号经所述高速信号输出接口输出。
进一步,根据本发明的基于乱码本有限单向变换的传输接出装置,所述初始乱码本接入接口处设有标准解密模块;所述标准解密模块用于对初始乱码本接入接口输入的初始乱码本解密后输入至所述的GLOWT同步分路变换装置。
根据本发明的基于乱码本有限单向变换的传输接入设备,包括上述的基于乱码本有限单向变换的传输接入装置和上述的基于乱码本有限单向变换的传输接出装置。
根据本发明的基于乱码本有限单向变换的通信方法,发送方采用上述的乱码本有限单向变换的方法将被传送的数据加密成密文后传送,接收方采用上述的乱码本有限单向变换的方法将接收到的密文进行解密还原成明文。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述的乱码本有限单向变换的方法中所用的初始乱码本由发送方生成,或者由通信双方中固定的一方生成,或者由通信双方共同生成,或者由第三方生成。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述的乱码本有限单向变换的方法中所用的初始乱码本和被传送的数据采用不同的通道进行传输。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,该方法包括以下步骤:
ST1:接收方载入初始乱码本,并获取GID;
ST2:接收方向发送方发送GID请求数据;
ST3:发送方接收GID;
ST4:发送方检查发送方所保存的初始乱码本是否有效;
ST5:发送方生成初始乱码本,并初始化当前轮次;
ST6:发送方保存初始乱码本和当前轮次;
ST7:发送方将初始乱码本发送至接收方;
ST8:接收方接收并保存初始乱码本;
ST9:发送方根据初始乱码本采用所述的乱码本有限单向变换的方法将待发送的数据加密成密文后发送至接收方,并对保存当前轮次;接收方接收密文后,根据初始乱码本采用所述的乱码本有限单向变换的方法将密文解密成明文;
其中,所述GID为初始乱码本的识别码;所述步骤ST4包括判断发送方所保存的初始乱码本与接收到的GID是否相对应的步骤。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述GID是由整型数表示的序号;所述步骤ST5还包括生成GID的步骤;所述步骤ST6还包括发送方保存GID的步骤;所述步骤ST7还包括发送方将GID发送至接收方的步骤;所述步骤ST8还包括接收方保存GID的步骤;所述步骤ST1中的获取GID为载入GID。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述GID是由初始乱码本经单向散列函数计算后得到的散列值。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述步骤ST4还包括检查当前轮次是否够用的步骤。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述步骤ST4还包括时效性检查的步骤;所述时效性检查为判断初始乱码本是否超过期限。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,该方法包括以下步骤:
Sk1:发送方获取用户特征信息码;
Sd1:发送方获取初始乱码本;
Sk2:发送方对初始乱码本和用户特征信息码进行线性组合运算得到个性化乱码本;
Sd2:发送方根据个性化乱码本采用所述的乱码本有限单向变换的方法将明文加密成密文;
Sd3:发送方将密文发送至接收方;
Sk3:接收方获取用户特征信息码;
Rv1:接收方获取初始乱码本;
Sk4:发送方对初始乱码本和用户特征信息码进行线性组合运算得到个性化乱码本;
Rv2:接收方接收密文;
Rv3:接收方根据个性化乱码本采用所述的乱码本有限单向变换的方法将密文解密成明文;
其中,所述用户特征信息码是发送方的特征信息码、或者是接收方的特征信息码、或者是由发送方的特征信息码和接收方的特征信息码经线性组合运算得到的结果;所述发送方的特征信息码是用于表征发送方特征的数据;所述接收方的特征信息码是用于表征接收方特征的数据。
进一步,根据本发明的基于乱码本有限单向变换的通信方法,所述发送方的特征信息码是发送方的公开密钥或发送方的用户头像图片或发送方的用户指纹;所述接收方的特征信息码是接收方的公开密钥或接收方的用户头像图片或接收方的用户指纹。
根据本发明的基于乱码本有限单向变换的服务端装置,其特征在于,包括指令接收装置、有效性检查装置、码本初始化装置、参数存储装置、码本发送装置、变换加密装置和密文发送装置;所述指令接收装置用于接收来自客户端的指令和GID;所述有效性检查装置用于检查初始乱码本的有效性,至少包括一致性比较装置;所述一致性比较装置用于判断所保存的初始乱码本与接收到的GID是否相对应;所述码本初始化装置用于生成初始乱码本并初始化当前轮次;所述参数存储装置用于保存初始乱码本和当前轮次;所述码本发送装置用于将初始乱码本发送至客户端;所述变换加密装置用于根据初始乱码本采用上述的乱码本有限单向变换的方法将被传输的数据加密成密文并保存当前轮次至用户数据库;所述密文发送装置用于将密文发送至客户端。
进一步,根据本发明的基于乱码本有限单向变换的服务端装置,所述有效性检查装置还包括时效性检查装置;所述时效性检查装置用于判断初始乱码本是否超过期限。
进一步,根据本发明的基于乱码本有限单向变换的服务端装置,所述有效性检查装置还包括轮次检查装置;所述轮次检查装置用于检查初始乱码本的当前轮次是否够用。
进一步,根据本发明的基于乱码本有限单向变换的服务端装置,所述GID是由整型数表示的序号;所述码本初始化装置还用于生成GID;所述参数存储装置还用于保存GID;所述码本发送装置还用于将GID发送至客户端。
进一步,根据本发明的基于乱码本有限单向变换的服务端装置,所述GID是由初始乱码本经单向散列函数计算后得到的散列值。
根据本发明的基于乱码本有限单向变换的客户端装置,包括码本接收装置、码本存储装置、码本载入装置、指令发送装置、密文接收装置和变换解密装置;所述码本接收装置用于接收服务器生成的初始乱码本;所述码本存储装置用于存储接收到的初始乱码本;所述码本载入装置用于读取存储的初始乱码本并获取GID;所述指令发送装置用于向服务器发送指令和GID;所述密文接收装置用于接收服务器发送的密文;所述变换解密装置用于根据初始乱码本采用上述乱码本有限单向变换的方法将将接收到的密文解密成明文。
根据本发明的基于乱码本有限单向变换的客户端和服务端系统,该系统包括上述的基于乱码本有限单向变换的服务端装置和上述的基于乱码本有限单向变换的客户端装置。
根据本发明的一种机器可读介质,该可读介质上存储有程序指令集,当所述程序指令集被机器执行时,该机器可执行上述的乱码本有限单向变换的方法或可执行上述的基于乱码本有限单向变换的数据加密存储的方法。
根据本发明的一种机器可读介质,该可读介质上存储有密文,所述密文经由上述的乱码本有限单向变换的方法加密得到或由上述的基于乱码本有限单向变换的数据加密存储的方法存储得到。
进一步,根据上述的机器可读介质,该机器可读介质内设置有标识区;标识区存储有加密识别码;当所述加密识别码为特定标识时,所述密文经由上述的乱码本有限单向变换的方法加密得到或由上述的基于乱码本有限单向变换的数据加密存储的方法存储得到。
进一步,根据上述的机器可读介质,所述标识区还存储有GLOWT参数;所述密文根据所述GLOWT参数经由上述的乱码本有限单向变换的方法加密得到或根据所述GLOWT参数经由上述的基于乱码本有限单向变换的数据加密存储的方法存储得到。
进一步,根据上述的机器可读介质,该机器可读介质为环形碟片;数据存储在该环形碟片的多个同心环结构内;每个同心环结构分成码本区和密文区;所述码本区用于存储初始乱码本;所述密文区用于存储密文。
根据本发明的一种硬盘,该硬盘的磁盘碟片为上述的机器可读介质。
本发明的技术效果如下:本发明的乱码本有限单向变换的方法是一种以带宽换速度的加解密方法。相比与传统的标准加解密方法,乱码本有限单向变换的方法需要消耗少量带宽,但可以大幅度提高吞吐速度且能够保证数据的安全性。因此可广泛应用于大容量数据的存储和传输中。
附图说明
图1为累进变换工作模式下的加密过程。
图2为扁平变换工作模式下的加密过程。
图3为密文链接变换工作模式下的加密过程。
图4为明文链接变换工作模式下的加密过程。
图5为本发明数据处理装置的结构示意图。
图6为乱码本有限单向变换的装置的结构示意图。
图7为环移小部哈希运算模块的结构示意图。
图8为实施例8中乱码本有限单向变换电路的结构示意图。
图9为实施例9中乱码本有限单向变换电路的结构示意图。
图10为实施例10中乱码本有限单向变换电路密文链工作模式下的结构示意图。
图11为实施例10中乱码本有限单向变换电路明文链工作模式下的结构示意图。
图12为实施例11中乱码本有限单向变换电路的结构示意图。
图13为实施例12的文件结构示意图。
图14为实施例12的数据加密存储的流程图。
图15为实施例13的文件结构示意图。
图16为实施例13的数据加密存储的流程图。
图17为实施例13中另一种实施方式下的文件结构示意图。
图18为实施例13中磁盘乱码区和密文区的分区结构示意图。
图19为实施例14的数据加密存储装置的结构示意图。
图20为实施例15的数据加密存储装置的结构示意图。
图21为实施例16的数据加密存储装置的结构示意图。
图22为通过操作系统的驱动层实现硬盘的全数据加密的结构示意图。
图23为通过虚拟光盘技术实现光盘的全数据加密的结构示意图。
图24为带码本密卡的存储设备的结构示意图。
图25为扁平变换模式下的GLOWT同步分路变换装置的结构示意图。
图26为累进变换模式下的GLOWT同步分路变换装置的结构示意图。
图27为密文链变换模式下的GLOWT同步分路变换装置的结构示意图。
图28为明文链变换模式下的GLOWT同步分路变换装置的结构示意图。
图29为基于乱码本有限单向变换的复用装置的结构示意图。
图30为基于乱码本有限单向变换的解复用装置的结构示意图。
图31为基于乱码本有限单向变换的传输接入装置的结构示意图。
图32为基于乱码本有限单向变换的传输接出装置的结构示意图。
图33是基于乱码本有限单向变换的通信方法在在线视频播放的应用中客户端和视频服务器的交互流程图。
图34是用于实现图33中服务器功能的基于乱码本有限单向变换的服务端装置。
图35是图34中服务端装置所对应的基于乱码本有限单向变换的客户端装置。
具体实施方式
下面结合说明书附图对本发明做进一步详细描述。
一、概述以及名词释义
本发明的乱码本有限单向变换,简称为GLOWT(the Garbled codebookLimited One-Way Transformation)。乱码本有限单向变换的方法,即GLOWT的方法包括三个步骤:
GT1:获取初始乱码本;
GT2:乱码本单向变换后与电文异或;
GT3:重复执行步骤GT2并控制步骤GT2执行的轮次数限于变换限值;
其中,所述乱码本单向变换为采用单向函数对乱码本进行运算;所述变换限值大于1。
步骤GT1、GT2和GT3涉及三个关键词:“乱码本”、“有限”、“单向变换”。即,“乱码本”经“单向变换”后与电文异或,而且这个过程的次数是“有限”的。“乱码本单向变换后与电文异或”的次数是“有限”的等同于“初始乱码本”的使用次数是有限的。也就是,对于某一特定的初始乱码本不会无限次的使用。假如上述变换限值为1,则上述过程即为即为本领域技术人员所熟知的“一次一密乱码加密”。因此,这里用以表示“有限”的变换限值不包括1。变换限值只能大于1,或者变换限值大于等于2。变换限值可以是固定值,也可以是非固定值。变换限值为非固定值时,变换限值可以随机生成,也可以根据初始乱码本的内容或初始乱码本的长度确定,甚至可以依据初始乱码本的存续时间确定。比如,假设规定初始乱码本生成时间的24小时内可以使用该初始乱码本,超过这24小时时限,则需要重新生成初始乱码本,显而易见地,这种情形下,初始乱码本不会无限次的使用。但在这种情形下,变换限值是非固定的,甚至是非确定值。
乱码本有限单向变换的方法可用于加密,也可以用于解密。显而易见地,上述方法的输入包括电文,输入的电文可以是明文或密文。假如上述步骤GT2中“电文”改成“明文”,乱码本有限单向变换的方法即成为乱码本有限单向变换加密的方法,密文为其输出。将上述步骤GT2中“电文”改成“密文”,乱码本有限单向变换的方法即成为乱码本有限单向变换解密的方法,明文为其输出。因此,乱码本有限单向变换加密和乱码本有限单向变换解密实质相同,统称为乱码本有限单向变换。当然,实际应用中,解密的实现要比加密的实现更为简单。因为解密的输入是被加密的明文,是处于一定状态下的数据,而加密的输入是处于完全自由状态下的明文数据。
乱码本。乱码本又称为“密码本”或“密乱码本”,等同于“一次一密乱码加密”中的“密乱码”,只不过本发明中,乱码本不仅仅使用一次,而且经单向变换后使用。“初始乱码本”中的“初始”表示了“原始”“第一次”等含义,为区别于“一般的”乱码本。由于乱码本有限单向变换加密存在工作模式的问题,因此单向函数对乱码本进行的单向变换操作时其被操作的对象未必一定是“初始乱码本”。有关工作模式的说明请参见本说明书下文介绍。此外,乱码本可以分组或分块,分组或分块后,每组初始乱码本或每块乱码本称为原子乱码本。原子乱码本是指初始乱码本或初始乱码本中的一段,是最小单位的初始乱码本。最小单位的初始乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。初始乱码本可能只包含一个原子乱码本,也可能包含多个原子乱码本。采用本发明加密方法加密的明文通常较大,假如只用一个原子乱码本,每次加密过程中对乱码本单向变换的时间会很大,因此,可以把初始乱码本划分成一个个原子单位的乱码本,每次乱码本单向变换时只对原子乱码本操作,这样可以大大减少乱码本进行单向变换的耗时。因此初始乱码本可以包含很多个原子乱码本。初始乱码本未分组的情形也即为初始乱码本为一原子乱码本,单向变换时,整体参与单向变换。当初始乱码本分成多个原子乱码本时,原子乱码本的长度一般不少于256字节的长度。当初始乱码本未分组时,初始乱码本的长度也一般不少于256字节。
步骤GT2可以拆分成两个步骤:
GT21:乱码本单向变换;
GT22:单向变换后的乱码本与电文异或。
单向变换。本发明单向变换是指由单向函数执行的运算操作。乱码本单向变换是指对乱码本执行单向函数运算的操作,或者采用单向函数对乱码本进行运算。乱码本单向变换后依然为乱码本。需要说明的是乱码本单向变换中,乱码本为单向函数的输入之一,并非唯一输入。由于步骤GT22中是简单的异或,因此,不同轮次间,单向变换后的乱码本应当不存在重复。由此,一般而言,乱码本单向变换时,轮次数也通常作为单向函数的输入。此外,乱码本单向变换存在工作模式,在不同的工作模式下存在不同的输入。此外,步骤GT22是步骤GT21的后续步骤,因此只要控制步骤GT21的轮次数即可控制整个步骤GT2的轮次数,因此,步骤GT3也还可以表示成:重复执行乱码本单向变换并控制乱码本单向变换执行的轮次数限于变换限值。
单向函数。单向函数计算起来相对容易,但求逆相对困难。也就是说,已知x很容易计算f(x),但已知f(x)却很难计算出x。容易和困难是相对的,比如x2容易计算,但逆函数x1/2则难得多,特别是函数x2的逆函数实际上有两个±x1/2,因此求逆时还要确定是哪个值的问题。在本发明中,对于函数f,y=f(x),当y已知时,x的值不唯一时,函数f即可作为单向函数。由于本发明所要解决的问题是加密的速度,单向函数可以非常简单,比如绝对值运算、循环移动、多项式运算、非线性置换等等,甚至还可以是他们的组合运算。本发明中单向函数范围广泛,事实上在有限域的线性运算也能成为单向函数。比如,有限域[0,255]的线性函数(一元一次多项式)f(x)=2x+31,当f(x)=63时,满足线性函数的x的解可能是16,也可能是144。因此,线性函数f(x)=2x+31也符合本发明单向函数的定义。因此,本发明的单向函数不同于单向散列函数。单向散列函数具有更强的单向性,单向散列函数的求逆运算基本上是不可行的。因此单向散列函数符合本发明中单向函数的定义,但由于单向散列函数通常太过复杂耗时太多,本发明一般不会直接使用单向散列函数作为单向函数。
特别地,在通过硬件方式实现单向函数时,单向函数还可以采用类似DES中的S-Box非线性置换。非线性置换分为三种类型:第一种是按位为单位的非线性置换,比如DES加密算法中S-Box置换。第二种是按字节为单位的非线性置换,比如RC4加密算法流密码生成过程;第三种是按以多字节组成的块为单位的非线性置换。第三种非线性置换只是理论上存在的,现实中基本不会用到,无需讨论。按位为单位的非线性置换适用于通过电路方式实现,不太适用于软件实现。而按字节为单位的非线性置换则适用于软件的实现。
异或。众所周知的逻辑运算。本说明书中,如未特别声明,函数memxor表示异或操作,在公式或附图中采用符号“⊕”表示异或。如未特别声明,本发明的异或加密是指乱码本单向变换后的乱码本与明文之间的异或操作;本发明的异或解密是指乱码本单向变换后的乱码本与密文之间的异或操作。异或函数memxor的C++示例代码定义如下:
轮次是步骤GT2的一次执行。轮次数是对步骤GT2执行的计数。由于初始乱码本的使用与步骤GT2的执行存在一一对应关系,因此,轮次也表示初始乱码本的一次使用,轮次数也表示初始乱码本的使用次数。多个轮次的乱码本单向变换后可获得乱码本序列。假如初始乱码本定义为Garbled(0),则N个轮次的乱码本单向变换生成的乱码本分别可以定义为Garbled(1)、Garbled(2)、Garbled(3)、...、Garbled(NR)。Garbled(1)、Garbled(2)、Garbled(3)、...、Garbled(N)构成乱码本序列。第i个轮次的乱码本单向变换生成的乱码本Garbled(i)成为这乱码本序列中的第i块或第i组。相应地,与之异或的电文也可以分成块或组。对比标准加密方法中的块加密分组的工作模式。本发明的乱码本有限单向变换的轮次间同样存在乱码本单向变换的工作模式的设计问题。
单向变换的工作模式。众所周知,AES、DES等加密均为块加密。块加密下存在多种工作模式,比如电子密码本(Electronic codebook,ECB)、密码块链接(Cipher-block chaining,CBC)、密文反馈(Cipher feedback,CFB)、输出反馈(Output feedback,OFB)、计数器模式(CTR,Counter mode)、填充密码块链接(Propagating cipher-block chaining,PCBC)。本发明中,单向变换的工作模式则表示了单向变换时轮次与轮次之间的输入输出之间的关联关系。单向变换的工作模式简称为单向变换模式。单向变换的工作模式的设计可以参考传统块加密的工作模式设计。需要指出的是,本发明设计单向变换的工作模式与标准加密方法中的设计块加密模式两者目的不相同。标准加密方法中的块加密模式设计的目的之一是为了解决或掩盖明文数据中的关联性或数据模式问题,而本发明中由于乱码本足够大,并且带有随机性质,不存在需要掩盖明文数据中的关联性或数据模式问题。因此本发明设计单向变换的工作模式了仅仅是为了增加单向变换的复杂性,增加安全性,也因此单向变换的设计有更多的选择,可以自定义出各种不同的单向变换,同时,也为了能够选择更大的变换限值,可以最大化的拓展变换限值的值,从而提高初始乱码本的利用率,减少初始乱码本生成的开销。在某些单向变换模式下,乱码本的单向变换是复合的单向变换。有关单向变换模式本说明书后续实施例将给出更为具体的说明。
一般地,步骤GT3可以分成以下两个步骤:
GT31:记录步骤GT2的轮次数;
GT32:轮次数和变换限值对比,如果轮次数在变换限值范围内,则执行步骤GT2。
也就是说,一般情形下,步骤GT3需要通过一个称之为轮次数的轮次计数器对步骤GT2的执行次数进行计数。每当步骤GT2执行一次,轮次数加1。但在某种情形下,特别是在应用于解密时,轮次数的计数和控制不需要显式存在。例如,本发明的乱码本有限单向变换解密的方法还可以表述成下述三个步骤:
De1:接收初始乱码本;
De2:乱码本单向变换后与密文异或;
De3:重复执行步骤De2直到所有密文都被解密成明文。
步骤De3和GT3均为循环控制,De3中重复执行De2步骤的次数必然限于变换限值。因为上述过程的密文是由乱码本单向有限单向变换加密方法获得。密文与初始乱码本之间存在着轮次对应关系。考虑到明文较短时,乱码本单向变换的执行次数可能小于变换限值。解密的时候,乱码本单向变换的执行次数也小于变换限值,因此不需要考虑变换限值的限值。虽然步骤De3的表述不同于步骤GT3的表述,但由于步骤De3隐含了“轮次数限于变换限值”的内容,因此步骤De3和步骤GT3是一致的。由于步骤De1和De2分别与步骤GT1和GT2一致。上述乱码本有限单向变换解密的方法与前述的乱码本有限单向变换的方法实质相同,但上述乱码本有限单向变换解密的方法的步骤中并没有显式提及轮次数的计数和控制。上述更为详细的说明可参考本发明后续实施例。
标准加密方法。标准加密方法是为区别于本发明的乱码本有限单向变换的其他加密方法,包括对称密钥加密和非对称密钥加密等,比如DES、AES、RC5、RC6、RSA、ECC等,以及基于上述几种加密方法下的块加密模式下的加密,比如:电子密码本(Electronic codebook,ECB)、密码块链接(Cipher-block chaining,CBC)、密文反馈(Cipher feedback,CFB)、输出反馈(Output feedback,OFB)、计数器模式(CTR,Counter mode)、填充密码块链接(Propagating cipher-blockchaining,PCBC),在本发明中,均视为标准加密方法。
步骤GT1“获取初始乱码本”中的“获取”表示的是初始乱码本是乱码本有限单向变换的方法的输入,实际有效的步骤只需要步骤GT2和GT3。显而易见地,乱码本有限单向变换的方法至少还有另一输入是被变换的电文,变换后的电文为输出。在具体的实施中,初始乱码本可以生成,或由外部模块传入,甚至可以从乱码本库中获取得到。在解密过程中,初始乱码本通常是接收的。有关初始乱码本的取得,本说明书下文会有更为详细说明。
当初始乱码本未分组,也即初始乱码本只包含一个原子乱码本时,初始乱码本的长度取决于电文长度、变换限值和单向函数。乱码本单向变换可以等长变换,也可以是缩变换,也可以是扩变换。所谓等长变换是指乱码本单向变换中,单向函数的输出的乱码本长度等于输入的乱码本长度。所谓缩变换是指乱码本单向变换中,单向函数的输出的乱码本长度小于输入的乱码本长度。所谓扩变换是指乱码本单向变换中,单向函数的输出的乱码本长度大于输入的乱码本长度。在变换限值和单向函数特定的情形下,显而易见地,电文长度越大,初始乱码本所需要的长度也越大。在电文长度和单向函数特定的情形下,显而易见地,变换限值越大,初始乱码本所需要的长度越小。在电文长度和变换限值特定的情形下,乱码本单向变换为扩变换时,初始乱码本所需要的长度较小;乱码本单向变换为缩变换时,初始乱码本所需要的长度较大;乱码本单向变换为等长变换时,则很容易计算出缩需要的初始乱码本长度,计算公式为:Lk=(Lp+NR-1)/NR,其中,Lp为明文长度,Lk为初始乱码本长度,NR为变换限值。这种初始乱码本不分组的实施方式一般只适用于对确定了的明文加密或密文解密。比如,应用于序列化数据的文件加密存储。
当乱码本有限单向变换处理的电文长度为不确定态时,初始乱码本一般需要进行分组,即将初始乱码本分成多个原子乱码本。比如在文件或存储介质中实现随机存储的加密中,明文长度为动态长度,经常变化,处于不确定态。这种方式下,可以设定原子乱码本具有特定的长度,初始乱码本中所有的原子乱码本都具有相同的长度。当通过原子乱码本对电文执行初始乱码本有限单向变换后,还未能处理完所有的电文(加密明文),则重新获取新的原子乱码本。每获取原子乱码本时,获取的原子乱码本较长且长度固定的情况下,假如电文较短,则存在步骤GT2执行的轮次数小于变换限值的情形。比如,每次获取的原子乱码本长度为4K字节长度,而待处理的电文长度仅仅为256字节,则只需要一个轮次的乱码本单向变换就能完成。因此,本发明“步骤GT2执行的轮次数限于变换限值”是指步骤GT2执行的轮次数最多为变换限值,而步骤GT2实际执行的轮次数可能少于变换限值。
从加密安全的角度考虑,变换限值的取值应依赖于单向函数的复杂性和原子乱码本的长度。一般来说,变换限值的取值不超过原子乱码本的长度。比如原子乱码本的长度为65536字节,则变换限值不应超过65536,也即原子乱码本执行单向变换最多65536次。但在某些应用中,比如涉及数字版权时,为保护数字版权而实现加密时,对安全性的要求不高,变换限值的取值可以超出原子乱码本长度的限制。
此外需要说明的是,本发明的乱码本有限单向变换的方法中的三个步骤还隐含了“乱码本每一轮次的单向变换后的输出各不相同”。因为,本领域技术人员理可以解,假如各个轮次的乱码本单向变换后的输出相同,上述过程等同于“乱码本有限次与明文异或”,从而失去了单向变换的效果。要使得“乱码本每一轮次的单向变换后的输出各不相同”可以采用以下三种方案实现:
第一,乱码本单向变换时,每一轮次的单向变换采用不同的单向函数实现。由于每个轮次所采用的单向函数不相同,自然地,不同的单向函数下,输入相同,输出必然不同。该方法可以通过单向函数库实现。
第二,乱码本单向变换时,各轮次所采用的单向函数相同,但该单向函数将轮次数作为输入。由于每个轮次的轮次数不相同,经过单向函数处理后,在输入相同的乱码本时,输出的乱码本不相同。
第三,乱码本单向变换时,采用迭代的方法。上一轮次输出的乱码本作为下一轮次单向函数的输入。比如密文链变换模式,或明文链变换模式,或累进变换模式等等。
上述三种实施方案,在本说明书后文中有更详细地说明,此处不再赘述。
本发明的乱码本有限单向变换的方法应用于数据加密传输或数据加密存储时,存在初始乱码本的加密传输和加密存储的问题。初始乱码本的加密传输和加密存储可以采用标准加密方法实现。初始乱码本通过标准加密方法实现加密的过程不在本发明保护的主题范围内,具体的细节不是本发明所讨论的范畴。更为甚者,在某些特定的应用场合下,初始乱码本可以不用加密。
二、以软件方式实现
实施例1
下述函数EncryptOfGLOWT是对已知明文和明文长度的GLOWT加密方法的C++示例代码实现。函数EncryptOfGLOWT定义如下:
本实施例的输入为:明文szPlain和明文长度lenPlain,以及用于输出初始乱码本的缓冲区szGarbled和初始乱码本的缓冲区大小lenGarbled、用于输出密文的缓冲区szCipher和密文缓冲区的大小lenCipher。函数执行完成后的输出为函数执行返回的失败成功结果,以及函数执行成功时存于初始乱码本的缓冲区szGarbled中的初始乱码本和初始乱码本的长度lenGarbled、存于密文的缓冲区szCipher中的密文和密文的长度lenCipher。本实施例输出的初始乱码本szGarbled经过了g_des的DES加密。g_des为全局对象实例,为DES加解密模块,事先已经初始化了加密的密钥。
本实施例中,初始乱码本由随机函数GenerateRandomBits生成。由于变换限值NR为固定值,且明文长度已知,因此可以首先根据明文长度和变换限值NR计算出初始乱码本的长度lenGarbled,然后由随机函数生成长度为lenGarbled的初始乱码本。该初始乱码本构成原子乱码本,即该初始乱码本作为一不可拆分的整体参与单向变换。
本实施例中,乱码本单向变换的变换限值,即变换限值NR为固定值:16。其中第一轮乱码本与明文进行异或加密时采用的是初始乱码本。后15轮与明文进行异或加密时采用的乱码本则进行了单向函数SHash的单向变换。定义零变换为F(x)=x,则初始乱码本的第一轮次的变换为初始乱码本的零变换。当然,初始乱码本的零变换不一定发生在第一轮次,也可以发生在其他轮次。零变换并非单向变换。本实施例也说明前述的步骤En2并不要求所有与明文异或的乱码本需要经过单向变换,甚至允许零变换的存在。
本实施例中,单向变换采用累进变换,即乱码本由所述初始乱码本经所述单向函数累进变换获得。具体用数学可以表示为:Gi=S(Gi-1),式中Gi为用于第i轮进行异或加密的乱码本,Gi-1为用于第i-1轮进行异或加密的乱码本,G0为初始乱码本;S为单向函数。这种轮次与轮次之间累进变换关系构成了一种单向变换的工作模式,在本发明中称为累进变换工作模式,简称为累进变换模式。累进变换模式下,下一轮次乱码本单向变换的输入是上个轮次乱码本单向变换的输出,也或者可以说上个轮次乱码本单向变换的输出作为下一轮次乱码本单向变换的输入。
累进变换模式的加密过程类似于块加密模式中的输出反馈(OFB)模式,加密过程如图1所示。用公式表示累进变换模式的加密过程如下:
Gi=S(Gi-1)
Ci=Pi⊕Gi
用公式表示累进变换模式的解密过程如下:
Gi=S(Gi-1)
Pi=Ci⊕Gi
上述公式中,Ci为第i轮变换加密后输出的密文,Pi为第i轮变换加密输入的明文,Gi为第i轮单向变换后得到的乱码本,G0为初始乱码本。上述公式中Gi也可以表示成:
Gi=Si(G0)=S(Si-1(G0))。
因此,第i轮的乱码本单向变换可视为对初始乱码本复合的单向变换,初始乱码本复合的单向变换中,轮次数作为其输入。只不过该轮次数的计数和控制并不显式存在。
本实施例中,G1=G0。16轮乱码本单向变换后过程可以表述为:G1=G0,G2=S(G1),G3=S(G2),G4=S(G3),...,G16=S(G15)。G1、G2、G3、…、G16构成了密钥流或流密码。因此本实施例也属于流密码加密的一种。
本实施例中,单向函数SHash的定义如下:
本实施例中,单向函数SHash由两个步骤的运算操作组合而成,首先是二次多项式运算:F(x)=a*x*x+b*x+c,其中二次多项式的系数a、b、c分别取值为:331、-487、859。二次多项式运算后,再执行一次按字节为单位的循环左移。其中二次多项式运算中采用以4字节长度的带符号的整型数为单位进行的运算,本领域技术人员理解,也可以采用无符号的整型数,或者也可个将乱码本视为一lenGarbled×8位长度的整型数进行变换。此外,上述的二次多项式运算还可以改成三次多项式运算或四次多项式运算。另外,本实施例的单向函数SHash中的两个步骤的运算操作可以前后改变顺序。本实施例的单向函数SHash为等长变换,即输入的乱码本长度等于输出的乱码本长度。
本实施例的上述过程主要如下:首先,通过输入的明文长度lenPlain和变换限值NR计算所需要的初始乱码本的长度lenGarbled。然后将根据lenGarbled通过随机函数GenerateRandomBits生成初始乱码本至szGarbled,并加密初始乱码本作为输出。最后循环执行乱码本单向变换后与明文异或直到所有的明文被加密。由于初始乱码本的长度lenGarbled和明文长度lenPlain存在关联关系,而单向变换为等长变换,每一轮次的乱码本单向变换后与明文异或步骤被加密的明文长度为lenGarbled,因此,乱码本单向变换后与明文异或步骤的轮次数必然限制在变换限制NR的次数内。也因此,在这种方式下,轮次数的计数和控制并不需要显式存在。
本实施例的加密耗时评估。假设DES加密耗时为140个单位,乱码本生成耗时为30个单位,乱码本单向变换过程耗时为10个单位,异或耗时为1个单位,则本实施例长度为lenPlain的明文加密耗时包括:
长度为lenPain/16的初始乱码本生成耗时为30×lenPain/16;
对长度为lenPain/16的初始乱码本进行DES加密耗时为140×lenPain/16;
15次对长度lenPain/16的乱码本单向变换耗时为:10×15×lenPain/16;
明文与乱码本异或耗时为lenPain。
因此总计加密耗时为:(30+140+150)×lenPain/16+lenPain=21×lenPain。而如果长度为lenPain的明文全部采用DES加密,则耗时为140×lenPain。相比于传统的加密方法而言,本实施例的加密速度仅为标准加密方法的15%。由此可见,本发明的加密速度效果显著。但本实施例应用时需要多出长度为lenPain/16的乱码本数据。由此可见,本发明实际为以带宽换取加密速度的方法,具体到本实施例为通过消耗lenPain/16的带宽,换取了将近7倍的加密速度,这种代价无论在存储还是传输中都是非常值得。根据上述计算可以得知,假如提高变换限值NR可以换取更快的加密速度,并消耗更少的带宽。
本实施例安全性评估。加密的密文由明文与初始乱码本通过简单的单向变换后异或获得,加密过程非常简单。这一过程中初始乱码本成为加密中的密钥。假如密钥(即初始乱码本)的简单单向变换与异或结合的加密过程轮次足够多,密码分析人员很容易通过频率、差分或线性分析获得密钥。但是,由于本发明的加密过程密钥仅仅使用了16次,密码分析人员无法得到足够多的密文建立频率、差分或线性分析所必须的数据,因此密码分析人员无法通过分析密文得到密钥(即初始乱码本)。此外,本实施例应用时,初始乱码本通常很长。比如1G字节对明文数据的加密时,初始乱码本的长度达64M。相比标准加密方法密钥最多只有128个字节或256个字节长度,本实施例如此长的初始乱码本的分析必然需要消耗大量的CPU时间。因此,本实施例的加密方法是安全的,也即本发明的加密方法是安全的。假如单向变换中的单向函数足够复杂,本发明的加密方法类似于“一次一密乱码本”加密为绝对安全的方法,即无法通过任何方法解密。在这种情形下,本发明的安全性完全依赖于对初始乱码本的加密以及初始乱码本的生成过程。因此,单向函数的设计对本发明来说至关重要。好的单向函数可以使得变换限值NR的取值更大,从而可以用更小的带宽换取更大的加解密速度,也使得加密的安全性更高。此外,本发明的实质是流密码加密的一种。乱码本单向变换用于生成流密码。为避免乱码本简单的单向变换导致流密码出现重复问题,每个乱码本给其设定使用的次数,以此达到加密的安全性。
根据克劳德·香农(Claude Shannon)的信息熵理论,对明文加密的过程是将明文打乱,提高明文混乱度的过程。也就是说,加密是为了使得密文的信息熵足够大。标准加密方法采用短密钥,一般不超过1024位。短密钥本身的信息熵比较小,比如DES加密,其加密用的密钥为56位,去除一些非常用字符,其密钥的信息熵H(x)大约为40左右,很容易通过暴力方式破解。用这么小信息熵的密钥加密大量的数据,只能将明文和密钥进行重复“混淆和扩散”处理,以此获得密文最大化的信息熵。理论上,假如“混淆和扩散”处理得足够好,密文的信息熵等同于其密钥的信息熵,那么,加密方法的安全性也就取决于密钥本身。标准加密方法下,由于密钥的信息熵小(一般不超过1024),要使得密文信息熵足够大,必然要进行很多“混淆和扩散”运算,从而减低了加密的速度。而本发明中,乱码本的长度够长,本身的信息熵足够大(64K字节长度的乱码本,其信息熵H(x)为512K),只需要与明文进行简单地运算就能使得密文的信息熵足够大。
实施例2
本实施例是实施例1中实现乱码本有限单向变换加密方法的函数EncryptOfGLOWT相对应的解密方法,该解密方法由C++代码的函数DecryptOfGLOWT实现,示例如下:
本实施例的输入为:密文szCipher和密文长度lenCipher,以及初始乱码本szGarbled和初始乱码本的大小lenGarbled以及用于输出明文的缓冲区szPlain和明文缓冲区的大小lenPlain。函数执行完成后的输出为函数执行返回的失败成功结果,以及函数执行成功时存于明文缓冲区szPlain中的明文和明文长度lenPlain。
本实施例的上述过程主要如下:首先解密初始乱码本,然后循环执行乱码本单向变换后与明文异或直到所有的明文被解密。本实施例循环解密的过程中,尽管轮次数的计数和控制并不显式存在,没有指出其乱码本的使用限制的次数,但由于该过程与实施例1中的EncryptOfGLOWT相对应,其参数来自EncryptOfGLOWT的处理结果,因此循环过程中参数的限制必然导致其循环次数有限并且限于变换限值NR。
此外,本实施例中单向函数SHash与实施例1中的单向函数SHash相同。结合本实施例的DecryptOfGLOWT函数与实施例EncryptOfGLOWT,本领域技术人员可以看出,解密过程其实与加密过程相同。因此,解密耗时与加密耗时相同。
实施例3
前述实施例1中的函数EncryptOfGLOWT实现的乱码本有限单向变换加密方法中,单向变换变换限值NR以及明文的长度lenPlain均为固定,因此可以直接计算出所需要的乱码本的长度。对于流数据加密中,明文的长度往往是动态的,因此无法根据明文长度计算出所需要的乱码本的长度。本实施例公开的函数StreamGLOWT::EncryptSend为本发明在流数据加密应用中的实施例。函数StreamGLOWT::EncryptSend采用C++代码实现,其中StreamGLOWT为C++类,EncryptSend为类StreamGLOWT的方法。类StreamGLOWT用于数据的加密通信,它构建了两个数据通信通道,分别为:m_sockGarbled和m_sockContent。其中,m_sockGarbled为乱码本通道,用来传输加密后的初始乱码本;m_sockContent为内容通道,用于传输经本发明乱码本有限单向变换加密后的密文。这两个通道采用了不同的IP端口。函数StreamGLOWT::EncryptSend的具体示例如下:
本实施例的StreamGLOWT::EncryptSend中引用了多个StreamGLOWT类的成员:
m_trsGarbled,乱码本变换的缓冲区,其空间大小为INITGARBLED_LEN;
m_iniGarbled,初始乱码本的缓冲区,其空间大小为INITGARBLED_LEN;
m_secGarbled,初始乱码本加密的缓冲区,其空间大小为INITGARBLED_LEN;
m_lenTrsGarbled,单向变换后的乱码本长度,初始为0;
m_curTrsGarbled,单向变换后乱码本用于异或加密的长度,初始为0;
m_textCipher,乱码本对明文进行异或加密后密文的缓冲区,其空间大小为INITGARBLED_LEN;
m_roundRep,用于记录初始乱码本使用的次数,或者单向变换的轮次;
m_NR,为变换限值NR,该变换限值为动态生成。
本实施例的StreamGLOWT::EncryptSend中还使用了常量:INITGARBLED_LEN,用于定义初始乱码本块长度,定义为4096。
需要指出的是,本实施例中变换限值为非固定值,与初始乱码本一道通过随机函数GenerateRandomBits生成,即由INITGARBLED_LEN长度的初始乱码本块的前四个字节异或后再除16求余后与16相加获得,这使得变换限值为一位于区间[16,31]的随机数。也就是说本实施例的变换限值由初始乱码本的内容确定。
由于初始乱码本块中的前4字节用于确定变换限值,因此本实施例中的初始乱码本为初始乱码本块中后INITGARBLED_LEN-4的内容。该长度为INITGARBLED_LEN-4的初始乱码本构成一个原子乱码本。本实施例用于数据通信时,可能需要生成多个原子乱码本。也就是说,初始乱码本包含了多个原子乱码本。
本实施例的StreamGLOWT::EncryptSend用于以太网TCP通信中,在调用EncryptSend方法之前还需要对两个通信通道m_sockGarbled和m_sockContent的初始化,分别建立TCP连接,在m_sockGarbled传输初始乱码本之前采用了m_des.Encrypt对初始乱码本实施了DES加密。m_des为StreamGLOWT的成员,为DES加解密对象实例,事先已经初始化了DES加密所需的密钥。
本实施例的StreamGLOWT::EncryptSend的输入为:明文textPlain和明文长度lenPlain,输出为:通过乱码本通道m_sockGarbled发送的经DES加密后的初始乱码本以及通过内容通道m_sockContent发送的本发明经乱码本有限单向变换加密后的密文。
本实施例单向函数SHash的定义如下:
本实施例的乱码本单向变换为缩变换。所谓缩变换是指乱码本单向变换中输入的乱码本长度大于输出的乱码本。具体到本实施例,单向函数SHash是缩变换。本实施例的单向函数SHash输入的乱码本长度为lenBuff,输出为lenBuff-8长度的乱码本。本实施例的单向变换也采用累进变换,也即是单向变换的工作模式采用了累进变换模式,而且为累进缩变换。本实施例中,假设前一轮的乱码本长度为lenBuff,则经过乱码本单向变换后的乱码本长度为lenBuff-8,即每一轮的长度缩小8个字节,被缩小的8个字节分别用于计算多项式运算的参数a、b、c。16轮乱码本的单向变换中,乱码本的长度以字节为单位分别为:4092、4084、4076、4068、4060、4052、4044、4036、4028、4020、4012、4004、3996、3988、3980、3972。因此本实施例中,4096字节长度的初始乱码本长度可以加密64512字节长度的明文。本领域技术人员理解,乱码本单向变换存在缩变换,当然也会存在扩变换。所谓扩变换是指乱码本单向变换中输入的乱码本长度小于输出的乱码本。相应地,扩变换累进后成为累进扩变换。
本实施例中,单向函数SHash采用了两个步骤的运算操作组合而成:以字节为单位循环右移,然后再执行二次多项式运算。需要说明的是,本实施例中的二次多项式运算的参数来自乱码本本身,因此本实施例中,二次多项式的参数也是动态的。
此外,本实施例中,单向变换的实际变换的轮次数与明文长度相关,假如明文长度小于4092字节,实际变换的轮次为1;假如明文长度小于8176字节,实际变换的轮次数为2,以此类推。因此本发明“限于变换限值”的表述表明乱码本的单向变换的轮次最多为变换限值,而实际变换的轮次可能少于变换限值。
需要指出的是,本实施例中,初始乱码本加密传输与密文的传输采用了不同的TCP连接通道,本领域技术人员理解,初始乱码本加密传输与密文的传输也可以采用相同的连接通道,或者同一通信端口。
本实施例具体实施过程可参考代码中的注释说明。参照实施例1和实施例2,根据本实施例构建与本实施例对应的解密方法,对于本领域技术人来说并不困难,因此本说明书不再描述与本实施例StreamGLOWT::EncryptSend对应的解密函数。
实施例4
本实施例是基于文件方式进行数据存储的函数FileGLOWT::EncryptWrite,数据存储时,采用了乱码本有限单向变换加密。函数FileGLOWT::EncryptWrite采用C++代码实现,其中FileGLOWT为C++类,EncryptWrite为类FileGLOWT的方法。函数FileGLOWT::EncryptWrite的具体示例定义如下:
本实施例的FileGLOWT::EncryptWrite中引用了多个FileGLOWT类的成员:
m_buffGarbled,乱码本变换的缓冲区,其空间大小根据lenGarbled确定;
m_buffCipher,加密后密文的缓冲区,其空间大小根据明文长度lenPlain确定;
m_file,文件操作对象实例。
本实施例的FileGLOWT::EncryptWrite的输入为:明文szPlain和明文长度lenPlain,输出为:保存加密参数和密文至文件。
本实施例中变换限值为非固定值,由随机因子ranx计算获得。而随机因子ranx由随机函数生成获得。
本实施例中的初始乱码本由乱码本库中提取获得,提取函数为GetRandomBits,其输入的参数为映射因子xGarbled和初始乱码本长度lenGarbled+12。其中,映射因子xGarbled由随机因子ranx计算获得;乱码本长度lenGarbled由变换限值NR和明文长度lenPlain计算获得。乱码本库为全局库,事先生成的随机乱码本,加密保存。因此在本实施例中,不需要生成初始乱码本,也不需要保存初始乱码本,只需要保存加密参数:变换限值NR、映射因子xGarbled、乱码本长度lenGarbled和明文长度lenPlain即可。本实施例说明,初始乱码本可以通过外部模块传入。
本实施例中,单向函数SHash定义如下:
本实施例中的单向函数SHash同样由位移和多项式运算组合而成。与前述实施例1和实施例3中不同的是,本实施例的单向函数SHash中多项式运算的参数取值方式不同。
本实施例的乱码本单向变换为缩变换。单向函数SHash输入的初始乱码本iniGarbled的长度为lenGarbled+12。也就是说lenGarbled+12长度的初始乱码本构成一个原子乱码本。其中,最后12个字节不参与多项式运算构成3个整型数用于作为多项式运算的3个参数。因此本实施例的单向函数SHash为输入lenGarbled+12长度的初始乱码本,输出为lenGarbled长度的乱码本,从而构成了缩变换。参照实施例3,实施例3中的乱码本单向变换也为缩变换。
需要特别说明的是,本实施例的单向变换为非累进变换。本实施例中,每一轮用于异或加密的乱码本均由初始乱码本单向变换获得。这种单向变换的工作模式在本发明中称为扁平变换工作模式,简称为扁平变换模式。扁平变换模式下,乱码本各个轮次的单向变换的输入输出之间保持相对独立。扁平变换模式是一种无需刻意构建的自然常态。其加密过程如图2所示。这种扁平变换模式的加密过程类似于块加密模式中的计数器模式(CTR)或电子密码本模式(ECB),即乱码本各个轮次的单向变换的输入输出之间保持相对独立,为使各个轮次的输出不同,单向函数执行乱码本单向变换时,轮次数作为乱码本单向变换的输入。用公式表示扁平变换模式的加密过程如下:
Gi=S(G0,i)
Ci=Pi⊕Gi
用公式表示扁平变换模式的解密过程如下:
Gi=S(G0,i)
Pi=Ci⊕Gi
上述公式中,Ci为第i轮变换加密后输出的密文,Pi为第i轮变换加密输入的明文,Gi为第i轮变换后得到的乱码本,G0为初始乱码本。
需要指出的是,本实施例中轮次数的计数通过计数器i显式存在。
本实施例具体实施过程可参考代码中的注释说明,本领域技术人员不难理解。参照实施例1和实施例2,根据构建与本实施例对应的解密方法,对于本领域技术人来说也不困难,因此本说明书不再描述与本实施例FileGLOWT::EncryptWrite对应的解密函数。
实施例5
本实施例是一个密文链变换模式下非线性置换。密文链变换模式,也即密文链变换工作模式,是一种乱码本单向变换的工作模式,加密过程如图3所示。密文链接变换工作模式下,上个轮次乱码本单向变换与电文异或的结果与初始乱码本异或作为下一轮次乱码本单向变换中的输入。用公式表示密文链接变换模式的加密过程如下:
Gi=S(G0⊕Ci-1)
Ci=Pi⊕Gi
用公式表示密文链接变换的解密过程如下:
Gi=S(G0⊕Ci-1)
Pi=Ci⊕Gi
上述公式中,Ci为第i轮变换加密后输出的密文,Pi为第i轮变换加密输入的明文,Gi为第i轮变换后得到的乱码本,G0为初始乱码本,C0为零向量,即G0⊕C0=G0。此外,Gi=S(G0⊕Ci-1)可以表示成Gi=CSF(G0,Ci-1)=S(G0⊕Ci-1),函数CSF是由异或操作和单向函数组成的复合单向函数。
密文链变换模式实现也非常简单,以实施例1中的函数EncryptOfGLOWT为蓝本,将函数EncryptOfGLOWT中的语句:
经上述修改后,函数EncryptOfGLOWT实现的乱码本有限单向变换加密即成为密文链变换模式。上述修改后的密文链变换模式中,也可以将初始乱码本与上个轮次密文的异或memxor(szBuff,pCipher-lenGarbled,lenGarbled)以及单向函数NLHash的组合视为一复合单向函数。
假如将上述语句中,将语句memxor(szBuff,pCipher-lenGarbled,lenGarbled)改成memxor(szBuff,pPlain-lenGarbled,lenGarbled),则函数EncryptOfGLOWT实现的乱码本有限单向变换加密即成为明文链变换工作模式,简称为明文链变换模式。明文链变换工作模式下,上个轮次用于被变换的电文与初始乱码本异或作为下一轮次乱码本单向变换中的输入。明文链接变换工作模式的加密过程如图4所示。明文链变换的工作模式与密文链变换的工作模式互为镜像,即明文链接变换工作模式下的加密过程即为密文链变换工作模式下的解密,明文链接变换工作模式下的解密过程即为密文链变换工作模式下的加密。或者也可以说,加密过程采用密文链变换模式,则对应的解密过程得使用明文链变换模式;加密过程采用明文链变换模式,则对应的加密过程得采用密文链变换模式。
需要指出的是,在密文链变换或明文链变换的工作模式下存在一定的误码扩散问题:在传输过程中,一个密文的误码,将导致两个明文的误码。而前述的累进变换模式或扁平变换模式中,不存在误码扩散问题,一个密文的误码,只会导致一个对应的明文的误码。在选择乱码本单向变换的工作模式时,误码扩散问题是一个很重要的需考虑的因素。
本实施例中,单向函数NLHash是一个非线性置换函数,其输入为长度为lenInt的整型数数组szBuff和当前轮次i,输出为经非线性变换后的长度为lenInt的整型数数组szBuff。单向函数SHash的定义如下:
本实施例的单向函数NLHash与RC4算法中的流密码生成过程原理相同,即数组的数据经线性运算后,用该线性运算的值作为数组取值的依据进行下一轮操作。这种变换具有很高的非线性性,属于非线性置换。依据这种原理,这种非线性置换还存在很多种类似的变换。而且有意思的是,轮次round在区间[0,lenInt-1]内时,不同的轮次round值,乱码本经过单向函数NLHash的变换后的乱码本也不相同,而且各轮次变换后的乱码本之间不存在线性、频次或差分的可供密码攻击者分析的规律。因此,在本实施例的单向函数NLHash之下,变换限值NR最大可取值为lenInt。也就是说对于长度为lenGarbled的初始乱码本,变换限值NR可定义为lenGarbled/4(以整型数4字节计算)。假如再在非线性置换之前再加一道按字节的循环移动的操作,变换限值NR取值可以更大,可以取值为初始乱码本的长度lenGarbled。
需要指出的是,本实施例的非线性置换函数NLHash是按以多字节组成的块(4字节整型数构成的块)为单位的非线性置换。参照上述过程,本领域人员也很容易将上述的NLHash改成按字节为单位的非线性置换。按字节为单位的非线性置换NLHash下,变换限值NR最大可取值为输入乱码本的长度。
实施例6
本发明的乱码本有限单向变换加解密不管应用在何种场合,设计合理的单向函数总是重中之重。好的单向函数不但可以加快加密速度,还可以提高初始乱码本的生存期限。也就是说变换限值NR可以取值更大,初始乱码本可以加密更多的明文,并减少带宽损耗。为此,本实施例提供了一种单向函数,该单向函数称为环移小部哈希运算。该单向函数主要包含了“环移”和“小部哈希”两个技术特征。环移是指循环移动,可以是循环左移也可以是循环右移动。小部哈希是指从乱码本中抽取一小部分内容对其进行哈希函数运算。哈希函数也称单向散列函数或杂凑函数。具体地,环移小部哈希运算包括如下步骤:
T1:将乱码本根据当前轮次数循环移动;
T2:从循环移动后的乱码本中选取lenHashi字节长度的字符串txtHashi;
T3:对字符串txtHashi进行杂凑运算得到杂凑值txtHasho;
T4:将txtHasho与循环移动后的乱码本进行线性组合运算。
步骤T1中循环移动是指循环左移或循环右移动,而且一般为以字节为单位的循环移动。步骤T2中的lenHashi一般为8~256之间。步骤T3的杂凑运算是指单向散列函数或者哈希函数的运算,比如SHA-3,MD5等算法,也可以是特定密钥下的标准加密方法的加密运算,比如DES、AES或者ECC、RSA等。lenHashi的取值与杂凑函数本身相关,比如SHA-3算法下,即Keccak1600算法,需要对200个字节的数据内容进行运算操作,那么lenHashi最好被能够被200整除,最好取值200。
步骤T4中采用线性组合运算的目的是为了尽量简单以避免产生过多的CPU时间。线性组合运算是指两个输入数组(或向量)经线性组合运算后得到一个输出数组(或向量)。其中输出数组的长度与两个输入数组之一相同。假如两个输入数组的长度相同,则将两个输入数组经线性运算后执行加法、减法或者异或运算后得到输出数组。假如两个输入数组中存在长度大于输出数组的长度,则将大于输出数组长度的输入数组经截断后与另外一个输入数组经线性运算后执行加法、减法或者异或运算后得到输出数组。假如两个输入数组中存在长度小于输出数组长度,则将小于输出数组长度的输入数组经重复扩充补齐后与另外一个输入数组经线性运算后执行加法、减法或者异或运算后得到输出数组。线性组合运算用函数表示为:lf1(trunc(expand(in1,k),len2))opl lf2(in2);其中,in1和in2分别为两个输入数组;lf1和lf2均为ax+b形式的线性函数;opl为加法、减法或异或的运算符;trunc为截断函数,用于将expand(in1,k)截断成长度为len2的数组;expand为扩展函数,用于将输入数组in1的长度扩展成k倍的长度;k=len2÷len1+1;len1和len2分别为输入数组in1和输入数组in2的长度。扩展函数expand可以表示成:expand(in1,k)=in1||in1||...||in1,即k个数组in1相连接,其中,||为连接操作符。
txtHashi可以选择循环移动后的乱码本的前lenHashi长度的字符串或者后lenHashi长度的字符串或者中间某一段长度为lenHashi长度的字符串,不论采用何种方法,应当确保单向函数运算过程中每个轮次的txtHashi字符串不相同,或者应当确保单向函数运算过程中各个轮次的txtHashi字符串能够覆盖到的初始乱码本的每个字节。分析上述过程可以发现,乱码本长度为lenGarbled的情形下,轮次数可以取值[0,lenGarbled-1]或[1,lenGarbled]使得每个轮次获得字符串txtHashi不同,从而得到不同的杂凑值txtHasho。也就是说,该单向函数下,变换限值NR取决于初始乱码本的长度。64K字节长度的乱码本,变换限值NR可以取值64K。假如忽略步骤T4的时间,则对64K字节长度明文的加密耗时等同于对长度为lenHashi的字符串的杂凑运算耗时,加密速度为标准加密方法的500-1000倍,而带宽损耗则仅为65536分之一几乎可以忽略。在这种情况下,变换限值为非固定值,变换限值由初始乱码本的长度确定。
需要说明的是,步骤T3中“对字符串txtHashi进行杂凑运算”表示的是“字符串txtHashi”是进行杂凑运算的输入之一,还可能存在其他输入。比如,“对当前轮次和字符串txtHashi进行杂凑运算得到杂凑值txtHasho”,此时,杂凑运算的输入还包括当前轮次。
下述RSSPHash函数为环移小部哈希运算的一具体的C++代码实例:
需要说明的是,上述单向函数RSSPHash中的txtHasho与分块后的乱码本线性运算,通过修改参数和算符还存在很多种变型。RSSPHash函数的具体过程可以参见代码注释。
本实施例的单向函数RSSPHash输入与实施例5中的单向函数NLHash相同,实现的功能相同。因此,实施例6中的NLHash直接可以用本实施例的单向函数RSSPHash替换。
需要说明的是,假如上述的中的杂凑运算采用非对称加密体制中的加密算法时,只能使用接收方的公开密钥进行加密,接收方解密时,使用己方的公开密钥加密作为杂凑函数。
实施例7
由前述实施例得知,本发明乱码本有限单向变换的方法中,单向函数的门槛要求不高,而且采用编程方式实现时,代码量不太大,因此可以考虑构建单向函数库的方法。单向函数库用于存储单向函数集FS={F1,F2,F3,…,Fn}。其中Fi表示的是某一单向函数。比如F1是由二次多项式构建的单向函数,F2是由三次多项式构建的单向函数,F3是由非线性置换构建的单向函数,F4是由环移小部哈希运算构建的单向函数等等。在执行单向函数对乱码本的单向变换前,根据当前轮次数从单向函数集FS中选择单向函数,然后根据选择的单向函数对乱码本进行单向变换。这种方式下,可以最大化的拓展变换限值,从而提高初始乱码本的利用率,减少初始乱码本生成的开销。
归纳上述说明,本实施例下的乱码本有限单向变换的方法还包括以下步骤:
FBS:根据轮次数从单向函数库中选择单向函数;
所述单向函数库包括了各种不同的单向函数。
三、软件方式实现的补充
本领域技术人员理解,上述实施例实现的GLOWT可以通过程序指令集和相关的硬件完成。上述程序指令集可以存储于一计算机可读的存储介质内,当计算机执行这些程序指令集时,使得该计算机可以执行上述实施例中的乱码本有限单向变换的方法。这里的存储介质可以是RAM、ROM、磁盘或光盘等各种可以存储程序指令的介质。
图5是本发明的一种基于乱码本有限单向变换的数据处理装置,包括处理器1和存储器2。其中处理器1用于执行程序指令,存储器2存储有程序指令集,当处理器1执行存储器2内的程序指令集时,使得该数据处理装置可以执行上述实施例中的乱码本有限单向变换的方法。特别地,这里的存储器2一般为非易失性存储器。非易失性存储器是指掉电后能够保持数据的存储器,比如ROM、磁盘或光盘等。
上述通过软件方式实现的乱码本有限单向变换的方法也可以通过虚装置或模块的方式表述,模块和方法中的步骤相对应。图6是本发明的乱码本有限单向变换的装置,包括随机码本模块11、变换异或模块12以及轮次控制模块13,分别对应前述GT1、GT2、GT3三个步骤。其中,虚线部分为可选模块。随机码本模块11用于获取初始乱码本。变换异或模块12包括单向函数模块14和电文异或模块15,用于对乱码本单向变换后与输入的电文异或。其中,单向函数模块14用于对乱码本进行单向变换,即采用单向函数对乱码本进行运算。电文异或模块15用于单向变换后的乱码本与输入的电文异或。轮次控制模块13用于控制乱码本执行单向变换的轮次数使其限于变换限值。
为显式地对乱码本单向变换轮次进行计数,进一步,本发明的乱码本有限单向变换的装置中轮次控制模块13还可以包括轮次计数模块16和轮次对比模块17。其中,轮次计数模块16用于记录乱码本单向变换执行的轮次数。轮次对比模块17用于轮次数和变换限值对比,如果轮次数在变换限值范围内,则执行乱码本单向变换的操作。
为实现乱码本单向变换的工作模式,进一步,上述乱码本有限单向变换的装置,还可以包括工作链接模块18。工作链接模块18可以是累进变换链接模块或密文链接模块或明文链接模块。累进变换链接模块用于使得上个轮次乱码本单向变换的输出成为下一轮次乱码本单向变换的输入。密文链接模块用于使得上个轮次乱码本单向变换与电文异或的结果与初始乱码本异或作为下一轮次乱码本单向变换中的输入。明文链接模块用于使得上个轮次输入的电文与初始乱码本异或作为下一轮次乱码本单向变换中的输入。
此外,还可以引入单向函数库。上述乱码本有限单向变换的装置,还可以包括单向函数库模块19。单向函数库模块19用于根据轮次数从单向函数库中选择单向函数。
单向函数模块14可以是下述运算之一或下述运算之组合:循环移动、多项式运算、非线性置换。单向函数模块14也还可以包括环移小部哈希运算模块。环移小部哈希运算模块,如图7所示,包括循环移动模块21、小部选取模块22、哈希函数模块23和线性合并模块24。循环移动模块21用于将乱码本根据当前轮次数循环移动。小部选取模块22用于从循环移动后的乱码本中选取lenHashi字节长度的字符串txtHashi。哈希函数模块23用于对字符串txtHashi进行杂凑运算得到杂凑值txtHasho。线性合并模块24用于将txtHasho与循环移动后的乱码本进行线性组合运算。进一步,哈希函数模块23中进行杂凑运算时,输入还可以包括当前轮次数。
需要说明的是,上述乱码本有限单向变换的装置中的模块虽然是指软件中的概念,但实际上,根据上述模块的逻辑关系,也可以通过硬件实现。下述为通过硬件方式实现上述模块逻辑关系的电路的实施例。
四、以硬件方式实现的电路
实施例8
如图8所示,一种乱码本有限单向变换电路,包括:轮次控制器100、单向函数单元101、电文异或单元102。轮次控制器100通过控制线连接单向函数单元101。单向函数单元101包括有初始乱码本输入接口111和与电文异或单元102输入相连的输出接口。电文异或单元102包括有与单向函数单元101输出相连的输入接口、电文输入接口112以及变换输出接口113。轮次控制器100用于记录单向函数单元101执行操作的轮次数,并控制单向函数单元101对每个原子乱码本执行操作的轮次数限于变换限值。单向函数单元101用于对通过初始乱码本输入接口111输入的初始乱码本按原子乱码本执行单向函数运算的操作。电文异或单元102用于实现由单向函数单元101变换后的乱码本与通过电文输入接口112输入的电文执行逻辑异或的操作,并通过变换输出接口113输出。
本实施例是实现乱码本有限单向变换的最简单的实施电路,包含有两个输入接口,分别是初始乱码本输入接口111和电文输入接口112。该电路包含一个输出接口,即变换输出接口113。该电路即可以作为加密使用,也可以作为解密使用。当该电路应用于加密时,电文输入接口112输入明文,变换输出接口113输出密文。当该电路应用解密时,电文输入接口112输入密文,变换输出接口113输出明文。
需要说明的是,本实施例电路实施方式下,初始乱码本分组或分块,分组或分块的每个单元构成原子乱码本。因此,单向函数单元101针对原子乱码本执行单向函数运算。轮次控制器100的轮次数计数是针对原子乱码本使用次数的计数。
实施例1至6中的单向函数均可通过硬件方式在本实施例的单向函数单元中实现。硬件方式实现的单向函数单元优先包含按位为单位的非线性置换。按位为单位的非线性置换,比如DES加密中的S置换和P置换均属于按位为单位的非线性置换。
此外,在上述电路结构的基础上,还可以进一步添加一参数配置单元。参数配置单元通过非易失性存储器存储乱码本有限单向变换中的参数。乱码本有限单向变换中的参数,比如,原子乱码本的大小、变换限值、单向函数中的参数等等。这里,非易失性存储器,是指掉电后数据内容不会立刻丢失的存储器。典型的非易失性存储器有EEPROM(电可擦除可编程ROM)、铁电存储器。乱码本优先单向变换中的参数量不大的情形下,也可以通过跳线的方式实现参数配置单元。
通常情形下原子乱码本长度有1K-64K字节。单向函数单元101必须等到1K-64K字节长度的原子乱码本输入完成后才能执行单向函数运算的操作,效率低下。为此,可以在初始乱码本输入接口111处设置一缓冲区以实现原子乱码本输入与原子乱码本变换的同时进行。
实施例9
在实施例8的基础上,如图9所示,初始乱码本输入接口111处设置有初始缓冲器121。初始缓冲器121用于缓冲存储输入的初始乱码本。初始缓冲器121设有初始乱码本存储器以及先进先出的指针。其中,初始乱码本存储器能够存储至少2个以上原子乱码本。也就是说初始缓冲器121存储了一个先进先出的原子乱码本的队列。单向函数单元101通过先进先出的指针可以直接访问初始乱码本存储器获得原子乱码本。由此,当单向函数单元101对原子乱码本执行单向函数运算时,初始缓冲器121可以同时接收输入的初始乱码本至初始乱码本存储器,从而大大提高效率。
基于同样的理由,在实施例8的基础上,如图9所示,电文输入接口112处还可以设置有输入缓冲器122。输入缓冲器122用于缓冲存储输入的电文。输入缓冲器122设有输入存储器和先进先出的指针。输入存储器的大小与单向函数以及原子乱码本大小相关。假如单向函数单元所执行的单向变换为等长变换,原子乱码本长度为lenGarbled,则输入存储器能够存储至少2×lenGarbled的电文。电文异或单元102通过先进先出的指针可以直接访问输入存储器获得待变换的电文。由此,当电文异或单元102执行异或操作时,输入缓冲器122可以同时接收输入的电文,从而提高效率。
此外,单向函数单元101处理数据的速度远小于电文异或单元102处理数据的速度。因此,在单向函数单元101与电文异或单元102之间也还可以设置一缓冲区。在实施例8的基础上,如图9所示,单向函数单元101与电文异或单元102之间设有变换缓冲器123。变换缓冲器123用于缓冲存储单向函数单元101输出的变换后的乱码本。变换缓冲器123设有变换存储器和先进先出的指针,电文异或单元102通过先进先出的指针可以直接访问变换存储器获得变换后的乱码本。变换缓冲器123的存在使得本实施例的电路在电文输入接口112输入电文之前就执行乱码本的单向变换。变换后的乱码本预先存入变换缓冲器123的变换存储器内。从而当电文输入接口112输入电文后,电文异或单元102直接从变换缓冲器123的变换存储器内读取变换后的乱码本与输入的电文异或。这样可以大大提高处理效率和速度。变换缓冲器123的变换存储器存储空间的大小应当能存入在变换限值范围内原子乱码本所有轮次的单向变换后的乱码本。假设原子乱码本的大小为32K字节,变换限值的大小为32K,变换缓冲器123的变换存储器存储空间则应当能存储1M字节的数据。此外,在变换输出接口113处也还可以设置一个输出缓冲器。
实施例10
单向变换工作模式也可以通过硬件方式实现。对于扁平变换工作模式和累进变换模式,可参照前述实施例8和9的电路结构。本实施例实现的是密文链变换工作模式与明文链变换工作模式。密文链变换工作模式与明文链变换工作模式是互为镜像的工作模式,密文链变换工作模式的加密需要通过明文链变换工作模式进行解密。明文链变换工作模式的加密需要通过密文链变换工作模式进行解密。
密文链变换工作模式的乱码本有限单向变换电路,在实施例8的基础上,如图10所示,在初始乱码本输入接口111处设有初始异或单元131,在变换输出接口113处设有密文链接器132。初始异或单元131包括有与密文链接器132相连的输入接口、与单向函数单元101相连的输出接口。密文链接器132包括有与变换输出接口113相连的输入接口、与初始异或单元131输入相连的输出接口。密文链接器132用于缓冲存储经电文异或单元102输出的电文,并将输出的电文等待一个轮次输入至初始异或单元131。初始异或单元131用于根据初始乱码本输入接口111输入的原子乱码本与从密文链接器132获得的上个轮次的输出的电文进行异或后输入单向函数单元101。
明文链变换工作模式的乱码本有限单向变换电路,在实施例8的基础上,如图11所示,在初始乱码本输入接口111处设有初始异或单元131,在电文输入接口112处设有明文链接器133。初始异或单元131包括有与明文链接器133相连的输入接口、与单向函数单元101相连的输出接口。明文链接器133包括有与电文输入接口112相连的输入接口、与初始异或单元131输入相连的输出接口。明文链接器133用于缓冲存储经电文输入接口112输入的电文,并将输入的电文等待一个轮次输入至初始异或单元131。初始异或单元131用于根据初始乱码本输入接口111输入的原子乱码本与从明文链接器133获得的上个轮次输入的电文进行异或后输入单向函数单元101。
需要指出的是,在原子乱码本第一轮次在单向函数单元101变换时,通过密文链接器132和明文链接器133输入至初始异或单元131的是一个初始向量。典型地,该初始向量为零向量,即初始向量内的值全为0,此时,初始异或单元131的输出与初始乱码本输入接口111输入的原子乱码本相同。也即,在密文链变换工作模式的乱码本有限单向变换电路中,当第一轮变换时,密文链接器132存储有初始向量,此时,初始异或单元131根据输入的原子乱码本与存储在密文链接器132内的初始向量进行异或。在明文链变换工作模式的乱码本有限单向变换电路中,当第一轮变换时,明文链接器133存储有初始向量,此时,初始异或单元131根据输入的原子乱码本与存储在明文链接器133内的初始向量进行异或。
实施例11
上述的乱码本有限单向变换电路在应用于加密时,还可以内置初始乱码本生成单元,也即初始乱码本输入接口111也可以连接一初始乱码本生成单元。如图12所示,在实施例8的基础上,还包括随机序列生成单元141、随机采样单元143、采样寄存器144。随机序列生成单元141、随机采样单元143和采样寄存器144组成初始乱码本生成单元。其中,随机采样单元143连接有随机信号输入接口114。随机采样单元143用于对随机信号输入接口114输入的信号量进行采样获得随机量,并将得到的随机量存入采样寄存器144内。随机序列生成单元141连接采样寄存器144、单向函数单元101,并连接乱码本输出接口115。随机序列生成单元141用于从采样寄存器144内读取随机量通过随机序列生成函数将随机量生成随机序列作为初始乱码本输出。输出的初始乱码本经初始乱码本输入接口111传入单向函数单元101,同时通过乱码本输出接口115向外输出初始乱码本。
本实施例的乱码本有限单向变换电路包括有两个输入接口和两个输出接口。两个输入接口分别是随机信号输入接口114和电文输入接口112。两个输出接口分别是乱码本输出接口115和变换输出接口113。本实施例的电路在使用时,随机信号输入接口114可以连接可以连接时钟或各种传感器,比如智能手机的摄像头、加速度传感器、电子罗盘传感器、光线传感器、重力感应传感器、陀螺仪传感器等等。甚至,随机信号输入接口114还可以连接计算机的数据总线,通过实时采集数据总线中的数据获得随机量。采样可以定时进行,也可以随机间隔进行。比如,随机信号输入接口114连接计算机主板的5V电压采样单元时,随机采样单元143可以定时获取5V电压采样单元中5V电压数据。当5V电压数据大于某一特定值时,生成一位数据为1,否则生成一位数据为0。该特定值可以是历史5V电压数据采样得到的平均值。经过8次采样后即可得到一个字节的随机数据。采样的时间间隔可以设为一秒一次,这样每8秒钟将得到一字节的随机数据。随机采样单元143得到随机数据后放入采样寄存器144。采样寄存器144存储有一个初始的随机数据,该初始的随机数据可以由时钟产生。随机数据放入采样寄存器144时,可以通过线性运算的方式进行,即存入的随机数据与采样寄存器144内存储的随机数据进行线性运算后再存入采样寄存器144内。这里的线性运算是指加法、减法、或者异或。
此外,进一步,在乱码本输出接口115处还可以连接一加密单元142,如图12所示。加密单元142的输入接口连接随机序列生成单元141,加密单元142的输出接口也就是乱码本输出接口115。加密单元142用于通过采用标准加密方法实现对由随机序列生成单元141生成的初始乱码本进行加密,然后将加密后的初始乱码本输出至乱码本输出接口115。由此,乱码本输出接口115输出的初始乱码本是经加密了的。加密单元142可以是基于DES、AES、SM1等对称加密算法的加密模块。这里,SM1是国家商用密码管理局规范的加密算法,尽管该加密算法并未公开,但国内市场上存在基于SM1的加密芯片。因此该加密单元142可以是这种基于SM1的加密芯片。
需要说明的是,上述电路结构可以通过不同的芯片组件组合而成,也可以通过设计专用集成电路(Application Specific Integrated Circuit简称ASIC)或者对现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)编程后集成在一个芯片中。
五、数据加密存储的应用
1、基本的加密存储
乱码本有限单向变换应用于数据存储时,需要存储初始乱码本和密文。基于乱码本有限单向变换的数据加密存储的方法,包括如下步骤:
Sv1:获取初始乱码本;
Sv2:根据初始乱码本,采用乱码本有限单向变换的方法对明文加密得到密文;
Sv3:将初始乱码本存入乱码区;
Sv4:将密文存入密文区。
显而易见地,在上述方法中,存储数据的区域被分成乱码区和密文区。乱码区是用于存储初始乱码本的区域,密文区是用于存储密文数据的区域。存储数据的区域可以是文件、数据库、或文件中的某个记录,还可以是内存(RAM),甚至还可以是磁盘,光盘,EEPROM等存储介质,极端的情形甚至还可以是非单一存储空间。
非单一存储空间是指乱码区和密文区分别位于不同的存储空间内。不同的存储空间是逻辑上的概念。比如,存储数据的区域可以是两个文件,其中一个文件作为乱码区,另一个文件作为密文区,作为乱码区的文件称为码本文件,而作为密文区的文件则称为密文文件。再比如,存储数据的区域可以是两张光盘,其中,一张光盘作为乱码区,另外一张光盘则是密文区,作为乱码区的光盘可以称为码本盘,而作为密文区的光盘则称为密文盘。再比如,存储数据的区域可以是光盘和远程服务器,其中远程服务器作为乱码区用于存储初始乱码本,而光盘则用作密文区用于存储密文。
实施例4给出了一种通过乱码本库实现对文件数据实现GLOWT的加密存储的实施方式。对于这种情形,可以做如下理解:乱码本库即为乱码区,加密后的文件则是密文区。乱码本库中的初始乱码本生成过程(即步骤Sv1)和存储过程(即步骤Sv3)在时间上早于步骤Sv2和Sv4。步骤Sv1、Sv3与步骤Sv2、Sv4保持相对独立。此外,实施例4中,乱码本和密文存于不同的文件,因此该实施例也是一种非单一存储空间存储初始乱码本和密文的方式。
采用非单一存储空间方式下,由于初始乱码本和密文分别位于不同的存储空间内,具有较高的安全性。但这种存储方式存在初始乱码本和密文之间一致性对应的问题。假如初始乱码本被一不小心给修改了,相应地,通过强加密方式加密的密文将丢失,且无法恢复。这里的强加密方式可以理解为单向函数设计足够好,且变换限值不超过16的乱码本有限单向变换。
与非单一存储空间相对的是单一存储空间。单一存储空间方式下,初始乱码本和密文位于一个连续的存储空间内。这里的“连续的存储空间”是逻辑上的概念,比如,由闪存和磁盘组成的混合硬盘中,混合硬盘的闪存和磁盘可以视为一连续的存储空间。
需要说明的是,步骤Sv3中将初始乱码本存入乱码区时,一般需要采用标准加密方法将初始乱码本加密后存入乱码区。在某些特殊的应用场合,也可以不需要加密存储,比如在某些非单一存储空间的情形下,初始乱码本甚至可以不需要加密存储。
2、随机存储的加密
一般地,数据分为序列化数据和记录型数据两种数据类型。序列化数据作为一个不可拆分的整体。记录型数据则可以拆分成多个记录数据,每个记录数据是单独的不可拆分的整体。在记录型数据存储中允许操作其中单独的某个记录数据,当对某个记录数据进行独立的存储或读取时要求允许随机存储。具体地,当随机存储时,除了待存储的数据作为输入外,还需要存储地址作为随机存储的输入,而序列化数据存储没有这方面的要求。
随机存储的加密存在加密效率的问题。举例来说,假如明文数据为128M字节,变换限值为16,单向函数为等长变换的情况下,初始乱码本的长度需要为8M字节。当修改其中某个记录数据时,需要重新生成8M字节的初始乱码本,并且重新对128M字节的明文数据进行加密存储,显而易见地,这样效率太低。需要说明的是,当被加密存储的明文发生变更时,与该明文相异或的单向变换后的乱码本需要变更,否则存在安全性问题。因此在随机存储中,初始乱码本一般分组或分块,由多个原子乱码本组成。
采用GLOWT实现对记录型数据的加密随机存储时,一般只适用扁平变换工作模式。否则由第N轮乱码本单向变换异或加密的数据存储时,需要进行前N-1轮的单向变换,导致加密随机存储的效率太低。此外,从处理复杂度的角度考虑,单向变换应优先采用等长变换。本发明中,如未特别声明,GLOWT应用于加密数据存储时,单向变换采用的是等长变换,单向变换的模式采用扁平变换工作模式。
为提高记录型数据的加密随机存储过程中乱码本有限单向变换的效率,参照前述的初始乱码本分成多个原子乱码本的方法,可以将上述的乱码区和密文区进一步分割成子区。乱码区可以分成多个乱码子区,乱码子区用于存储原子乱码本。相应地,密文区也可以相应地密文子区,密文子区内的密文由对应的乱码子区内的原子乱码本经GLOWT加密而成。本发明中,这样的乱码子区称为码本簇。码本簇是存储原子乱码本的区域。相应地,密文子区称为密文辖区。密文辖区又称初始乱码本的密文辖区,是存储所有由该初始乱码本经GLOWT加密获得的密文的区域。这里,密文子区所对应的密文辖区是指码本簇的密文辖区。码本簇的密文辖区是存储所有由码本簇内的原子乱码本经GLOWT加密获得的密文的区域。密文辖区与码本簇一一对应。在扁平变换的工作模式下,单向变换为等长变换时,密文与明文存在一一对应关系。因此,相应地可以定义明文辖区。明文辖区又称初始乱码本的明文辖区,是存储所有由该初始乱码本经GLOWT被加密的明文的区域。码本簇的明文辖区是存储所有由码本簇内的原子乱码本经GLOWT被加密的明文的区域。密文辖区包含有多个密文簇。密文簇是存储最小单位的密文的区域。最小单位的密文是由原子乱码本经一个轮次的单向变换后与明文异或后获得。相应地,明文辖区包含多个明文簇。明文簇是明文中密文簇对应的区域。明文簇是存储最小单位的明文的区域。最小单位的明文是由原子乱码本经一个轮次的单向变换后用于被异或的明文。在单向变换为等长变换时,密文簇、明文簇和码本簇的大小相同。本发明中,码本簇辖区是指码本簇的密文辖区。
实施例12
本实施例给出一种文件存储格式。该文件存储格式中,文件结构如图13所示包括文件头和内容块。其中内容块可以有多个,每个内容块分割成乱码区和密文区。文件头用于存储明文的长度或密文的长度,以及内容块的个数。乱码区用于存储用标准加密方法加密的初始乱码本。密文区用于存储由乱码区内的初始乱码本经GLOWT加密后的密文。每个内容块中的乱码区存储的初始乱码本与密文区存储的密文对应。相应地,明文也被分成多个明文块,明文块中的明文与密文区存储的密文相对应。其中,乱码区的大小为4K字节;密文区的大小为64K字节;变换限值为16。乱码区内的初始乱码本构成一原子乱码本,也即是,该乱码区构成一码本簇。相应地,密文区构成了码本簇对应的密文辖区,明文块构成了码本簇对应的明文辖区。密文区,即密文辖区又分成16个密文簇,每个密文簇4K字节。相应地,明文块的大小也为64K,明文块分成16个明文簇,每个明文簇4K字节。每个密文簇存储的密文为乱码本一个轮次变换的乱码本与明文簇中明文的异或结果,也即第1个密文簇存储的密文为乱码本第1次变换后与第1个明文簇中明文的异或值,第n个密文簇存储的密文为乱码本第n次变换后与第n个明文簇中明文的异或值。由此,明文内容可以分别映射至密文区的各个密文簇内密文。内容块的数量取决于被加密明文的长度(即文件内容的大小)。假设明文的长度为lenPlain,则内容块的数量为:(lenPlain+65535)/65536。假如密文区不能完全被密文填充时,密文区其他部分为空,可以用特定字符填充,特定字符比如0xFF或0xA5。比如假设明文内容的大小为102500K(100.1M)字节。则该文件有1602个内容块,其中前1601个内容块的密文区完全被密文填充,而最后一个内容块中密文区则只有36K字节的密文,剩余28K字节留空,可以用字符0xA5填充。
上述文件存储格式下,基于GLOWT的数据加密存储的方法步骤如下:
如图14所示,首先是步骤201,将待存储的明文映射至码本簇的密文辖区。由于明文与密文存在一一对应关系,将待存储的明文映射至码本簇的密文辖区也就是将对存储的明文进行分块的过程。明文分块按照存储的地址和明文长度进行,可能分成多个块,映射至多个码本簇的密文辖区,需要循环实现,因此有步骤210判断明文是否全部被加密的过程以及从步骤210返回至步骤201进行循环的过程。步骤201中的将待存储的明文映射至码本簇的密文辖区只执行一个明文分块映射操作,剩余的明文通过步骤210的判断循环实现。步骤201存在两个结果:一个是映射成功,即得到相应的码本簇(码本簇的索引)、码本簇的密文辖区以及明文在码本簇的密文辖区内存储的位置;另一个是映射失败,即相应的码本簇不存在。假如映射成功,则转步骤203,否则转步骤202。步骤202,构建相应的码本簇和码本簇密文辖区,即在存储区开辟码本簇和码本簇密文辖区的存储空间。步骤203、204、205是重置码本簇原子乱码本的过程,也就是在重新生成码本簇的原子乱码本进行加密前的预处理过程。在重新生成码本簇的原子乱码本之前,首先需要对经原码本簇内原子乱码本加密的密文解密。于是有:步骤203,读取码本簇内的原子乱码本和码本簇的密文辖区内的密文;步骤204,逐个解密码本簇密文辖区内各个密文簇内的密文成明文;步骤205,合并解密后的明文和待存储的明文。步骤203、204和205组成码本簇重置步骤。然后再步骤206,重新生成原子乱码本;步骤207,原子乱码本加密后存入码本簇;步骤208,原子乱码本变换后与明文异或得到密文;步骤209,密文按轮次存入轮次对应的密文簇。需要说明的是这里,步骤208中的明文是步骤205中合并解密后的明文和待存储的明文得到的明文。步骤202中构建相应的码本簇和码本簇密文辖区的具体操作就是在文件中构建相应的码本簇和码本簇密文辖区的存储空间,之后再执行步骤206、207、208和209。步骤206相当于前述的步骤Sv1;步骤208相当于前述的步骤Sv2;步骤207相当于步骤Sv3;步骤209相当于前述的步骤Sv4。本实施例下,变换限值取决于码本簇的密文辖区能够存储的密文簇,由于码本簇的密文辖区分成16个密文簇,原子乱码本总共只能使用16次,因此变换限值也为16。因此,本实施例属于隐式的轮次计数和控制。
本实施例的这种文件格式适用于序列化数据的文件保存和读取也适合于记录型数据的文件保存和读取。特别地,对于记录型数据的随机存储而言,这种初始乱码本与密文分块保存的方式可以大大提高记录型数据的存储效率。当某一记录变更时,只要找出该记录在文件中所处的内容块,然后更新内容块内的乱码区内的初始乱码本,以及对密文区内密文对应的明文重新进行加密生成密文保存即可,从而不需要更新整个文件内所有的初始乱码本,也不需要对所有的明文重新加密。
本实施例中,每个内容块划分的乱码区和密文区对应了码本簇和码本簇的密文辖区。本领域技术人员理解,这些码本簇也可以放置在一起集中存储构成一个大的乱码区,相应地,这些码本簇的密文辖区也可以放置在一起集中存储构成一个大的密文区。这意味着:基于GLOWT的文件存储中,文件分成乱码区和密文区;乱码区可以包含多个码本簇,相应地,密文区包含多个码本簇的密文辖区;这些码本簇可以连续集中存储,也可以分开存储;相应地,码本簇的密文辖区也可以连续集中存储,也可以分开存储。本实施例中,码本簇为分开存储,码本簇的密文辖区也分开存储。当码本簇分开存储时,可以视为乱码区是非连续的;当码本簇的密文辖区分开存储时,可以视为密文区是非连续的。
需要指出的是码本簇的密文辖区内包含的密文簇数量总是不超过变换限值。本实施例的这种文件格式在采用GLOWT加密的随机存储时,效率还是偏低。因为每当修改一记录时,需要重新对码本簇以及码本簇的整个密文辖区内的数据进行读取、加密、存储等操作。为此,可以采用变换限值冗余的手段,即选择一较大的变换限值,而码本簇的密文辖区内对应的密文簇数量相对较小,比如,码本簇的密文辖区内密文簇数量不超过变换限值的五分之一。这种方式下,每一次存储数据时,大部分情形下只需要修改相应的密文簇内容即可,无需修改码本簇内的原子乱码本和码本簇的整个密文辖区内的密文。当对码本簇内原始乱码本的变换轮次达到变换限值时,才更新码本簇内的原子乱码本以及码本簇的密文辖区内的密文。这种变换限值冗余的手段,需要较大的变换限值,因而也需要相应的单向函数的支持。幸运的是,前述实施例5中的非线性置换的单向函数NLHash和实施例6中的环移小部哈希运算的单向函数RSSPHash可以提供较大的变换限值。如实施例5、6中所述,这些单向函数的变换限值可以取值为原子乱码本的长度。比如,选择原子乱码本的长度为8K字节,则变换限值可以取值为8192,而码本簇的密文辖区内包含的密文簇数量为64。下述实施例13详细描述了这种变换限值冗余的技术手段。
实施例13
本实施例采用了实施例6中的单向函数RSSPHash作为GLOWT的单向函数,并采用了前述的变换限值冗余的手段,实现的基于GLOWT加密文件存储。文件格式如图15所示包括文件头和内容块。其中内容块可以有多个,每个内容块分割成码本簇、轮次区和密文辖区。码本簇用于存储加密后的原子乱码本。密文辖区用于存储对应的原子乱码本经GLOWT加密后的密文。密文辖区分成多个密文簇。轮次区用于存储每个密文簇对应的轮次。假设每个内容块内码本簇存储的原子乱码本大小为8K字节,密文辖区分成64个密文簇。轮次区的大小为256字节(每个密文簇对应的轮次用4个字节的整型数存储,总共64个密文簇),每个密文簇的大小为8K字节,因此每个密文辖区为512K字节,每个内容块为8K+512K+256字节。码本簇、轮次区和密文辖区的对应关系与明文之间的对应关系与前述实施例12相同,可参见图14。根据本实施例单向函数RSSPHash,8K字节大小的乱码本,变换限值可以最大取值为8192,也就是最多可以单向变换8192次。而密文辖区仅分成64个密文簇,仅存储64轮次单向变换加密的密文,因此轮次有很多富余。当某一记录变更时,只要找出该记录在文件中所处的内容块以及对应的密文簇,加密时,选择一未使用过的轮次对码本簇的原子乱码本进行单向函数RSSPHash的运算后再与明文异或后得到新的密文,新的密文存入其对应的密文簇,相应地,轮次存入对应的轮次区。假如不存在未使用过的轮次,则重新生成原子乱码本,并用该原子乱码本对该内容块内各个密文簇内的数据内容重新进行变换加密。此外,一般来说,轮次区内的轮次数据需要通过标准加密方法加密保存。
上述文件存储格式下,本实施例的基于GLOWT的数据加密存储的方法,相比于实施例12,如图16所示,多了四个步骤,分别是步骤211、212、213和214。其中,步骤211是读取轮次区的轮次数据并计算当前轮次;步骤212是根据当前轮次和变换限值判断轮次是否够用;步骤213是将密文簇对应的轮次存入轮次区。需要说明的是,本实施例的步骤212相当于前述的Sv3,即本实施例显式地判断原子乱码本使用的轮次是否限于变换限值。此外,步骤202也应当有所区别,本实施例下,步骤202构建相应的码本簇和码本簇密文辖区时同时还包括构建码本簇对应的轮次区,步骤205还包括初始化轮次区数据。
下述函数FileGLOWT::EncryptWrite以及相关C++代码为本实施例基于GLOWT加密的文件随机存储的具体实现,具体如下:
其中,函数WriteBlock是针对一个明文块的加密存储,其定义如下:
其中,函数SetCurrentBlock用于将指定块的原子乱码本和轮次数据载入内存缓冲,并计算当前已经使用的轮次。函数SetCurrentBlock定义如下:
其中,函数UpdateContent用于为内容块重新生成原子乱码本,并根据新生成的原子乱码本重新加密内容块中所有的密文簇内的密文。函数UpdateContent的定义如下:
这里,FileGLOWT为C++类,而EncryptWrite、WriteBlock、CreateContentBlock、SetCurrentBlock、UpdateContent均为FileGLOWT的方法。上述代码仅仅是采用乱码本有限单向变换实现文件加密随机存储中采用环移小部哈希运算作为其单向函数的实施的示例代码,如同前述实施例1、2、3、4、5、6中的代码也仅仅是示例代码,实际应用中必然存在其他实施方式,其具体的细节内容可以参考代码注释和前述说明,不再赘述。
需要说明的是,本实施例的文件格式下,轮次用一连续的轮次区保存,本领域技术人员理解,轮次也可以根据密文簇分别保存。如图17所示,内容块被分成码本簇和数据区,数据区又分成数据轮区,每个数据轮区被分成轮次区和密文簇。其中轮次区用于存储密文簇对应的加密轮次。轮次区的大小为8字节(用DES加密的最小块)。密文簇的大小为8K字节。由此,数据轮区的大小为8K+8字节,数据区的大小为512K+512字节。
需要说明的是,为保证上述数据加密随机存储的方法的效率,码本簇的密文辖区内的密文簇的数量至少不能超过变换限值的五分之一。特别地,在以闪存为存储介质的数据加密存储时,可以考虑闪存本身的寿命。比如TLC闪存的写入寿命只有500次,则可以考虑将码本簇的密文辖区内的密文簇的数量设为变换限值的500分之一。
本实施例中,采用的单向函数RSSPHash为环移小部哈希运算。显而易见地,实施例5中的非线性置换单向函数NLHash也可以应用于本实施例。这两种函数也非常适用于序列化数据的GLOWT加密文件存储。假设一个文件采用一个原子乱码本,该原子乱码本的长度为64K字节,则变换限值也为64K=65536,由此,该文件最多可以存储4G(64K×64K)字节的文件内容(明文)。4G字节可以支持目前绝大多数文件存储应用。
实施例12和实施例13中的方法也适用于数据库加密存储。以关系数据库为例,可以为每个关系表(Table)创建码本簇,关系表内的数据则构成该码本簇的辖区,即由码本簇内的初始乱码本有限单向变换后与明文数据异或后获得密文,关系表内的每条记录(Record)则成为密文簇。进一步,还可以为每个关系表创建一轮次区用以记录关系表内的每条记录的轮次。当轮次数达到变换限值时,重新创建原子乱码本并重新加密关系表的每条记录。
实施例12和实施例13中的方法还适用于存储介质内的数据加密存储。存储介质,也即机器可读介质,可分为很多种,在现有技术条件下,按介质材料可分为:ROM(只读存储器)、EPROM(可擦除可编程ROM)、EEPROM(电可擦除可编程ROM)、磁盘、光盘、磁带等。其中,EEPROM的存储设备包括:移动终端(包括智能手机和掌上电脑)、数码相机、音乐或视频播放终端、存储卡、U盘、固态硬盘、混合硬盘等。磁盘的存储设备包括:软盘、硬盘、混合硬盘、磁盘阵列等。这些存储介质按其是否能够随机存储可以归纳为两类:一类是非随机存储介质,另一类是随机存储介质。非随机存储介质包括:ROM、EPROM、光盘、磁带。对于ROM和光盘,数据烧录在ROM芯片或刻录至光盘后不能修改只能读取,不存在随机存储的问题,因此属于非随机存储介质。对于EPROM,由于数据写入后,只能通过紫外光线擦除,而这种擦除方式不可能对某个位或字节进行操作,EPROM的数据要么全部擦除要么不擦除,因此也不存在随机存储的问题,属于非随机存储介质。对于磁带,由于磁带盘绕在磁带盘上,磁带盘盘绕磁带的速度很慢,一般用户不太可能对其进行随机存储的操作,因此也归类为非随机存储介质。随机存储介质主要是指EEPROM和磁盘。参照上述实施例的方法,也可以将存储介质中存储数据的数据区域划分为乱码区和密文区。乱码区是存储介质内用于存储初始乱码本的区域。密文区是存储介质内用于存储密文的区域。由于存储介质存储容量一般较大,乱码区可以包括多个码本簇。相应地,密文区包括多个码本簇辖区,每个码本簇辖区包括多个密文簇。码本簇和密文簇的大小可以根据存储介质本身的特性设定。比如,在磁盘中,码本簇和密文簇的大小可以设为与磁盘簇的大小或扇区大小相同。现有技术下,磁盘簇的大小一般为2K~32K字节,扇区为512字节。相应地,码本簇和密文簇也可以设为2K~32K或512字节。
图18为磁盘划分乱码区和密文区的实施例。如图18所示,磁盘231包括众多同心圆的磁道232。其中,233表示磁道内扇区的起始位置。234为由磁道内扇区的起始位置233开始的连续多个扇区组成的乱码区。每个磁道对应一个乱码区234。紧接着乱码区234之后的是轮次区235,剩下的为密文区236。乱码区234内的每个四个扇区构成一个码本簇。每个扇区的大小为512字节,码本簇的大小为2048字节,变换限值为2048。密文区236内码本簇的密文辖区包含不超过32个密文簇。每个密文簇对应四个扇区,大小为2048字节。磁道内乱码区234的大小和轮次区235的大小取决于该磁道内的扇区数。一般来说,外圈磁道的扇区数多,内圈磁道的扇区数少,相应地,外圈磁道的乱码区大,内圈磁道的乱码区小。比如,某磁道的扇区数为1024,则乱码区234包含32个扇区组成8个码本簇,轮次区235包含2个扇区,剩余990个扇区分别属于8个码本簇的密文辖区,其中前7个码本簇的密文辖区内的扇区数为124(包含31个密文簇),最后一个码本簇的密文辖区内的扇区数为120(包含30个密文簇),还有最后2个扇区作为保留扇区。这种方式可以减少在乱码本有限单向变换加密存储时磁头的径向移动。需要说明的是,一般来说,上述存储介质的乱码区和密文区的划分在存储介质初始化时实现。假如磁道内扇区的数量较多时,可以将上述的磁盘结构作进一步改进,可以将每个磁道划分成多个乱码区、轮次区和密文区。比如,将每个磁道划分成三个乱码区、三个轮次区和三个密文区。
需要说明的是,图18中的磁盘作为一种机器可读介质,其乱码区、轮次区和密文区的布局也可以应用于同样环形结构的光盘中。因此这两种机器可读介质可以归纳为是一种环形碟片(相当于磁盘或光盘)。数据存储在该环形碟片的多个同心环结构(相当于磁盘的磁道或光盘的信息光道)内。每个同心环结构分成码本区和密文区。所述码本区用于存储初始乱码本。所述密文区用于存储密文。与磁盘的随机存取不同,光盘一次性写入后不能重复写入数据。因此,光盘内可以不需要图18中轮次区。
基于GLOWT的数据加密存储的方法对于大容量的存储介质而言,还存在初始乱码本加密需要消耗大量时间的问题。以1T(1T=1024G)字节容量的硬盘为例,假设码本簇为2048字节,变换限值为2048,码本簇的密文辖区包含不超过32个密文簇;则1T大小的明文大约需要32G字节的初始乱码本。而这32G大小的初始乱码本需要通过标准加密方法(比如AES、DES等算法)实现加解密,需要耗费大量的时间。为此,可以采用初始乱码本分级的方法。初始乱码本分级的方法将初始乱码本分成N级,其中第1级的初始乱码本用于基于GLOWT的数据加密存储的方法加密存储明文,第i级(i∈[2..N-1])的初始乱码本用于基于GLOWT的数据加密存储的方法加密存储第i-1级的初始乱码本,第N级的初始乱码本可以通过标准加密方法实现加密存储。比如在1T容量的硬盘中,将初始乱码本分成两级:第一级的初始乱码本大小为32G,第二级的初始乱码本大小为1G。如图18所示,磁盘231的最外圈的几个磁道构成辅助乱码区237。辅助乱码区237用于通过标准加密方法(比如AES、DES等算法)实现加密存储第二级的初始乱码本,辅助乱码区237内存储的第二级的初始乱码本用于通过基于GLOWT的数据加密存储的方法加密存储第一级的初始乱码本至乱码区233。而乱码区233内的初始乱码本用于通过基于GLOWT的数据加密存储的方法加密存储明文至密文区236。需要说明的是,在某些特殊的应用场合,第N级的初始乱码本可以不用加密存储。
3、数据加密存储的装置
实施例14
图19是本发明的基于乱码本有限单向变换的数据加密存储的装置,包括:包括随机码本模块241、码本存储模块242、变换异或模块243、轮次控制模块246、密文存储模块247。其中,随机码本模块241用于获取初始乱码本。码本存储模块242用于将初始乱码本存入乱码区。变换异或模块243包括单向函数模块244和电文异或模块245,用于对乱码本单向变换后与电文异或。其中,单向函数模块244用于对乱码本进行单向变换,即采用单向函数对乱码本进行运算。电文异或模块245用于单向变换后的乱码本与电文异或。轮次控制模块246用于控制乱码本进行单向变换执行的轮次数使其限于变换限值。密文存储模块247用于将对明文加密获得的密文存入密文区。
实施例15
如图20所示,一种基于乱码本有限单向变换的数据加密存储的装置,在实施例14的基础上,进一步还包括:码簇构建模块248、明文映射模块249、码簇重置模块250、码本读取模块252、密文读取模块251。其中,明文映射模块249用于将待存储的明文映射至码本簇的密文辖区。码簇构建模块248用于当待存储的明文映射至码本簇的密文辖区,码本簇的密文辖区不存在时,构建相应的码本簇和码本簇的密文辖区,也即当待存储的明文所对应的码本簇的密文辖区不存在时构建相应的码本簇和码本簇的密文辖区。码本读取模块252用于读取码本簇内的原子乱码本。密文读取模块251用于读取码本簇密文辖区内的密文。码簇重置模块250用于读取码本簇内的原子乱码本和码本簇密文辖区内的密文,然后逐个解密码本簇密文辖区内各个密文簇内的密文成明文,再合并解密后的明文和待存储的明文。码簇重置模块250中,“读取码本簇内的原子乱码本”由码本读取模块252实现;“读取码本簇密文辖区内的密文”由密文读取模块251实现;“逐个解密码本簇密文辖区内各个密文簇内的密文成明文”由变换异或模块243和轮次控制模块246实现。本实施例各模块之间的工作流程参见图14和实施例12。
实施例16
如图21所示,一种基于乱码本有限单向变换的数据加密存储的装置,在实施例14的基础上,进一步还包括:轮次读取模块253、轮次存储模块254。轮次读取模块253用于读取轮次区的轮次数据并计算当前轮次。轮次存储模块254用于将密文簇对应的轮次存入轮次区。
上述实施例14、15、16所述的基于乱码本有限单向变换的数据加密存储中的模块与前述实施例12、13的基于乱码本有限单向变换的数据加密存储的方法中步骤一一对应。更为详细的说明可参考前述实施例12和实施例13,不再赘述。
4、非单一存储空间的应用
实施例17
本实施例是用光盘存储初始乱码本和密文的实施例。
初始乱码本和密文分别用两张光盘存储。存储初始乱码本的光盘称为码本盘,存储密文的光盘称为密文盘。通过光盘驱动器读取密文盘内数据时,可以分两个步骤进行:步骤1:插入码本盘,由机器读取码本盘内的初始乱码本,存入内存;步骤2:插入密文盘,机器根据内存内的初始乱码本实现对密文盘内数据的GLOWT解密。
实施例18
本实施例是将初始乱码本存于远程服务器,而密文则被存入一密文文件内。在客户端,当用户需要读取密文文件内的数据时,执行以下步骤:
步骤1:客户端连接远程服务器,并从远程服务器获取初始乱码本;
步骤2:客户端根据获取的初始乱码本实现对密文文件内数据的GLOWT解密。
5、存储介质的全数据加密实现
一般来说,存储介质内数据的加密有两种方法:一种是全数据加密,一种是通过加密分区表或文件分配表的方式实现的伪加密。第二种方法之所谓称为“伪加密”是因为这种方法并未真正加密数据,分析人员很容易通过分析数据内容恢复数据。而这种“伪加密”的方法是目前最广泛应用的,这是因为加密速度的问题,是一种在无法实现全数据加密吞吐速度下的折衷方式。全数据加密是真正的加密,而存储介质内的数据是大容量数据。要实现大容量数据的加密,加密速度是巨大的瓶颈,大部分应用下只能期望通过加密芯片实现。本发明的乱码本有限单向变换加解密速度可以达到现有技术下加解密速度的100倍,使得存储介质内通过软件方式实现全数据加密成为可能。
如前所述,存储介质可分为非随机存储介质和随机存储介质。非随机存储介质在写入数据时,应用程序可直接访问I/O(输入输出)接口。因此在加密存储时,只需要通过软件方式实现于该应用程序即可,也即在应用程序中增加一数据加密模块。而且这类存储介质在数据写入时,一般不需要考虑数据加密算法的速度。这是因为这类存储器的数据只写入一次,而且写入速度本身较慢。因此,GLOWT加解密在应用于这类存储介质的加密存储时实现相对简单,参考前述的在文件中实现的GLOWT加密存储,其实现并不困难。
一般地,为实现存储介质的全数据加密可在操作系统的设备驱动层中构建基于GLOWT的存储介质加密驱动装置,也即,将现有的设备驱动改成基于GLOWT的存储介质加密驱动。基于GLOWT的存储介质加密驱动装置内置有GLOWT模块,当通过I/O接口存储或读取存储介质内的数据时,数据经由GLOWT模块进行加密或解密。GLOWT模块用于实现乱码本有限单向变换。以硬盘加密为例,如图22所示,操作系统的硬盘驱动模块改成了硬盘加密驱动模块。该硬盘加密驱动模块内置了GLOWT模块,并通过I/O接口操作硬盘。当应用程序通过操作系统的文件系统向硬盘存储数据时,硬盘加密驱动模块通过GLOWT模块将明文加密成密文,再通过I/O接口将乱码本和密文存入硬盘。当应用程序从硬盘读取数据时,硬盘加密驱动模块通过I/O接口从硬盘中读取乱码本和密文,再经GLOWT模块将密文解密成明文,最后通过操作系统的文件系统返回至应用程序。GLOWT模块即为前述的乱码本有限单向变换的装置或前述的基于乱码本有限单向变换的数据加密存储的装置。
为解决现有系统的兼容性问题,一种实施方法是在操作系统内构建虚拟存储设备。该虚拟存储设备内置有GLOWT模块,并独立于现有的设备驱动模块。虚拟存储设备当通过I/O接口存储或读取存储介质内的数据时,数据经由GLOWT模块进行加密或解密。以光盘为例,如图23所示,虚拟光盘为设备驱动模块,内置了GLOWT模块,并通过I/O接口操作光盘控制器实现对光盘数据的访问。光盘内的数据是经GLOWT加密存储的密文。当用户需要读取光盘内的密文时,虚拟光盘通过I/O接口操作光盘控制器读取光盘内的密文,然后经GLOWT模块解密后返回至应用程序。采用虚拟存储设备的好处是不改变原有的设备驱动模块,原有非加密数据能够照常访问。
为解决现有系统的兼容性问题,第二种实施方法是在存储介质内设置标识区。标识区存储有加密识别码。加密识别码用于表示存储介质内的数据是否经由乱码本有限单向变换加密。当存储介质驱动装置存储或读取数据时,首先读取标识区内的加密识别码,假如该加密识别码为特定标识时,存储介质驱动装置通过前述的乱码本有限单向变换的方法或前述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。这里,特定标识用于表示存储介质内的数据是经由GLOWT加密的密文,假如加密识别码不是该特定标识时,表示存储介质内的数据不是经由GLOWT加密的密文。其中,乱码本有限单向变换由GLOWT模块实现。此外,标识区还可以存储GLOWT参数。GLOWT参数包括单向函数标识、变换限值、码本簇的大小等等。当存储介质驱动装置读取标识区内的加密识别码,假如该加密识别码为用于表示存储介质内的数据是经GLOWT加密的密文的特定标识时,存储介质驱动装置读取标识区内GLOWT参数,并将GLOWT参数传递到GLOWT模块,GLOWT模块根据GLOWT参数进行乱码本有限单向变换。标识区内的加密识别码以及GLOWT参数通过存储介质初始化装置对存储介质进行初始化时写入。比如,通过磁盘的分区模块对磁盘进行逻辑分区时写入,或者通过磁盘格式化模块对磁盘进行格式化时写入。标识区可以设置于现有磁盘等存储介质的保留区。
此外,本发明乱码本有限单向变换加解密应用于随机存储介质加密存储时,还存在生成初始乱码本时产生大量耗时的问题。为解决这一问题,可以通过一随机存储介质的初始化装置实现。存储介质初始化装置,用于对存储介质初始化,比如磁盘分区模块或磁盘格式化模块。众所周知,磁盘必须经过分区或格式化后才能被操作系统正常使用。因此,实施例12或实施例13中的步骤202构建码本簇和码本簇密文辖区以及实施例15中的码簇构建模块248可以由存储介质的初始化装置实现。该随机存储介质的初始化装置包括分区模块、初始乱码本生成模块和加密存储模块。其中分区模块用于将存储介质划分成乱码区和密文区;初始乱码本生成模块用于生成初始乱码本;加密存储模块用于将生成的初始乱码本通过标准加密方法加密后存入乱码区。显而易见地,这里的密文区用于存储通过乱码本有限单向变换加密后的密文。具体来说,比如磁盘中,在磁盘使用前需要对其进行格式化。磁盘格式化程序可以内置上述的随机存储介质的初始化装置。执行该磁盘格式化程序时,磁盘格式化后将磁盘划分出乱码区和密文区,并生成初始乱码本,再将生成的初始乱码本通过标准加密方法加密存入乱码区。这样初始化的磁盘在使用时,只有当初始乱码本的变换轮次达到变换限值时,才需要重新生成初始乱码本。由于码本簇辖区内的密文簇数量有大量冗余,实际应用中,很少需要重新生成码本簇内的初始乱码本的操作,从而大大减少了数据存储耗时。
本发明乱码本有限单向变换加解密应用于大容量存储介质内数据加密时,还存在初始乱码本加密需要消耗大量时间的问题。此时,可以采用前述的初始乱码本分级的方法。
一般来说,应用程序对存储介质实现数据的存储和读取通过操作系统的文件系统、设备驱动,设备驱动通过输入输出接口(I/O接口)操作介质控制器实现。相应地,存储介质的数据加解密可以通过应用程序层实现,也可以通过操作系统的文件系统层或设备驱动层,还可以通过介质控制器实现。通过应用程序层或文件系统层实现加解密均属于文件加密存储的范畴,具体可以参考前述文件加密存储的实施例。因此,存储介质的全数据加密存储一般是指通过设备驱动层或介质控制器实现的加密存储。介质控制器和存储介质构成存储设备。需要说明的是,存储设备的介质控制器和存储介质不一定是一体化的,比如光盘作为存储介质独立于介质控制器。
通过介质控制器实现的加解密的设备称为自加密设备(Self-EncryptingDevice),比如自加密硬盘(Self-Encrypting Drive,SED)。目前,希捷、IBM、东芝等公司发布了自加密硬盘,这种自加密硬盘是通过在硬盘内嵌入加密芯片实现。本发明的乱码本有限单向变换加解密也可以实现在介质控制器内,从而使得存储设备成为自加密的存储设备。
通过介质控制器实现乱码本有限单向变换加密存储时,可以完全通过纯软件的方式实现:一种存储设备包括有CPU、RAM和存储介质。其中CPU被用于执行:通过前述的乱码本有限单向变换的方法或前述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。当然,自加密设备上的CPU和RAM还可以实现其他功能,从而使得该自加密设备成为智能外设。随着CPU和RAM价格的降低,智能外设将是未来电子领域的一个发展方向。前述的乱码本有限单向变换的方法或前述的基于乱码本有限单向变换的数据加密存储的方法中的乱码本有限单向变换的方法由于可以通过硬件实现。因此,这种存储设备也可以包括有前述的乱码本有限单向变换电路,此时,当CPU需要执行乱码本有限单向变换时,CPU将存取的数据提交至乱码本有限单向变换电路实现加密或解密。这是一种软硬结合的实施方式。除了纯软件的方式和软件结合的方式外,还可以通过纯硬件的方式实现。该存储设备包括前述的乱码本有限单向变换电路和存储介质。当然,乱码本有限单向变换电路也可以设计成芯片实现。
自加密设备除了存储介质内数据本身的加解密之外,还存在着主机与自加密设备之间通过I/O接口进行加密通信的问题。例如,现有的自加密硬盘都存在一缺陷,即硬盘与主机之间的通信是非加密的。在自加密硬盘未锁定的情形下,黑客们可以通过热插拔数据线或冷启动等方式绕过加密而读取自加密硬盘内的数据。此时,在自加密设备的I/O接口上增设GLOWT加密通信模块。该GLOWT加密通信模块用于对自加密设备与主机之间通信的数据采用乱码本有限单向变换的方法加密。
此外,本发明也非常适用于移动终端中的用户数据加密。本发明所指的移动终端为手机、掌上电脑或平板电脑等。移动终端是存储设备的一种,其存储数据的区域一般为ROM,具体实现时可以参照前述的存储设备,此时该移动终端的ROM为全数据加密存储。与纯粹的存储设备不同,移动终端中操作系统和应用程序占据存储数据的区域很大的空间。也因此可以采用其他的方案:第一种方案是将移动终端的存储数据的区域分成程序区和数据区。程序区用于存储操作系统以及安装的应用程序。数据区用于存储用户数据,比如,电话号码簿、短消息、照片、程序数据以及文档资料等等个人资料。数据区分成乱码区和密文区。乱码区用于存储初始乱码本,而密文区用于存储采用乱码本有限单向变换加密的用户数据。第二种方案是将移动终端的存储数据的区域分成系统区和用户区。系统区用于存储操作系统。用户区分成乱码区和密文区,乱码区用于存储初始乱码本,密文区用于存储采用乱码本有限单向变换加密的应用程序和用户数据。这是一种全加密的移动终端,这种移动终端在丢失时个人资料不会因此泄密。
此外,由于存储介质的容量较大,应用本发明的乱码本有限单向变换进行加密存储时,可以采用前述的初始乱码本分级的方法。
实施例19
本实施例是一种带码本密卡的存储设备,如图24所示,包括存储设备本体280和码本密卡281。存储设备本体280上设有密卡槽282。码本密卡281可插入密卡槽282内。存储设备本体280的内部设有CPU、RAM和存储介质。码本密卡281用于作为码本区存储初始乱码本。存储设备本体280上的存储介质作为密文区用于存储加密了的数据。存储设备本体280上的CPU被用于执行:当码本密卡281插入密卡槽282内后读取码本密卡281内存储的初始乱码本,然后根据初始乱码本采用前述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。具体来说,码本密卡281就是一张存储卡,只不过该存储卡内存储有初始乱码本。码本密卡281内的初始乱码本可以通过标准加密方法进行加密,也可以不加密。因为码本密卡281就相当于一个钥匙,只有当码本密卡281插入密卡槽282后,该存储设备上的存储的数据才能被读取,否则无法读取数据。码本密卡281作为一个数据钥匙,非常容易随身携带。显而易见地,该带码本密卡的存储设备可以是电脑(包括台式机、笔记本和服务器)、移动终端(包括手机、掌上电脑或平板电脑)、带存储功能的路由器,也可以是纯粹的存储设备,比如硬盘、移动硬盘或移动光驱等等。
需要说明的是,这种带码本密卡的存储设备也可以采用前述的初始乱码本分级的方法,此时,码本密卡281内存储初始乱码本的是第N级的初始乱码本。
显而易见地,该带码本密卡的存储设备实现基于乱码本有限单向变换的数据加密存储的方法中的乱码本有限单向变换变换时,可以采用纯软件的方式也可以采用软硬结合的方式。当采用软硬结合的方式时,该带码本密卡的存储设备内设有前述的乱码本有限单向变换电路。此时,当CPU需要执行乱码本有限单向变换时,CPU将存取的数据提交至乱码本有限单向变换电路实现加密或解密。
六、数据通信中的应用
前述实施例3给出了一种基于乱码本有限单向变换的实现数据加密通信的方法。实施例3中给出的是数据发送方的处理过程,依据实施例3,本领域技术人员很容易实现数据接收方的处理过程。概括实施例3,数据收发双方采用了如下步骤:
Sd01:发送方生成初始乱码本;
Sd02:发送方根据初始乱码本采用乱码本有限单向变换的方法将明文加密成密文;
Sd03:发送方采用标准加密方法加密初始乱码本;
Sd04:发送方将加密后的初始乱码本发送至接收方;
Sd05:发送方将密文发送至接收方;
Rv01:接收方接收加密后的初始乱码本;
Rv02:接收方接收密文;
Rv03:接收方采用标准加密方法解密加密后的初始乱码本得到初始乱码本;
Rv04:接收方根据初始乱码本采用乱码本有限单向变换将密文解密成明文。
上述过程中,初始乱码本由发送方生成。实际应用中,存在着初始乱码本由谁生成的问题。一般来说,可以通过以下四种实施方式实现:
第一种实施方式是初始乱码本由发送方生成。以通信双方A和B为例。在该实施方式下,当A向B发送数据时,加密用的初始乱码本由A生成;当B向A发送数据时,初始乱码本由B生成。上述实施例3中的交互过程就是该种实施方式。
第二种实施方式是初始乱码本由通信双方中固定的一方生成。以通信双方A和B为例。在该实施方式下,无论A向B发送数据还是B向A发送数据,加密用的初始乱码本都由A生成。这种实施方式适用于服务器和客户端之间通信,服务器和客户端之间的数据通信用的初始乱码本可以由服务器产生。
第三种实施方式是初始乱码本由通信双方共同生成。以通信双方A和B为例。在该实施方式下,无论A向B发送数据还是B向A发送数据,加密用的初始乱码本都由A和B共同生成。
第四种实施方式是初始乱码本由第三方生成。以通信双方A和B为例。在该实施方式下,存在第三方C生成初始乱码本发送给通信双方A和B,A和B之间的通信根据第三方C生成的初始乱码本进行乱码本有限单向变换加解密。需要说明的是,该第三方比如是可信的。
基于上述四种实施方式,上述Sd01-Sd05和Rv01-Rv04的步骤可以进一步归纳成:
Sd1:发送方获取初始乱码本;
Sd2:发送方根据初始乱码本采用乱码本有限单向变换的方法将明文加密成密文;
Sd3:发送方将密文发送至接收方;
Rv1:接收方获取初始乱码本;
Rv2:接收方接收密文;
Rv3:接收方根据初始乱码本采用乱码本有限单向变换将密文解密成明文。
也就是,发送方采用乱码本有限单向变换的方法将被传送的数据加密成密文后传送,接收方采用乱码本有限单向变换的方法将接收到的密文进行解密还原成明文。
第二个问题是初始乱码本如何传送的问题。前述实施例3中,初始乱码本和密文的传送采用了两个不同的TCP端口,这意味着,初始乱码本和被传送的数据可以采用不同的通道进行传输。比如,在手机的数据加密传输时,初始乱码本可以通过3G或4G经由无线基站传输,而密文则通过Wifi制式经由无线路由器通过以太网传输。再比如通过SDH(Synchronous Digital Hierarchy,同步数字体系)设备进行数据传输时,可以将密文装入多个虚容器,而初始乱码本装入一个独立的虚容器;再通过DXC(Digital Cross Connect)设备路径配置,将装载初始乱码本的虚容器分配一个与装载密文的虚容器不同的路径,此时,初始乱码本和密文通过两个不同的物理路径进行传输。比如某公司租用电信公司SDH设备的通道组建北京至深圳的内部局域网,此时,有效数据可以分配走深圳、长沙、武汉、郑州、石家庄至北京的路径,而初始乱码本则走福州、上海、济南、天津至北京的路径。
此外,乱码本有限单向变换的方法应用于数据通信时,还存在初始乱码本传输中的加密问题、初始乱码本在通信双方维护的问题以及轮次维护等问题。具体详见下述实施例。
实施例20
GLOWT同步分路变换装置是一种电路,如图25、26、27、28所示,包括N路单向函数模块301、N路异或模块302、初始乱码输入接口303、N路信号输入接口304和N路信号输出接口305。N路单向函数模块301用于对初始乱码本接口303输入的初始乱码本进行单向变换,输出N路变换后的乱码本。N路异或模块302用于将N路单向函数模块301变换后输出的N路乱码本分别与N路信号输入接口304输入的N路输入信号相异或,再由N路信号输出接口305输出。N路单向函数模块301中,各路单向函数模块中具有不同的单向函数,或具有相同的单向函数但有不同的参数配置,从而使得各路单向函数模块对初始乱码本进行单向变换后具有不同的输出。显而易见地,N路单向函数模块301中,一路单向函数模块对初始乱码本进行变换后与其中一路输入信号相异或等同于前述的乱码本有限单向变换中一个轮次的变换异或,总的轮次数即为输入信号的路数N。也就是,乱码本单向变换的变换限值固定为N,这里的N大于1。此外,N路单向函数模块301所执行单向变换一般为等长变换。因此,初始乱码输入接口303输入的初始乱码本、N路信号输入接口304输入的N路输入信号和N路信号输出接口305输出的N路输出信号一般具有相同的速率。另外,在通信中,信号处理一般以帧为单位,因此,N路单向函数模块301和N路异或模块302对信号的处理也是以帧为单位。
图25中的GLOWT同步分路变换装置的实施例采用了扁平变换模式,即初始乱码输入接口303同时连接各路单向函数模块301的输入。本领域技术人员理解,GLOWT同步分路变换装置也可以采用累进变换模式或密文链变换模式或明文链变换模式。
累进变换模式下的GLOWT同步分路变换装置,如图26所示,初始乱码输入接口303连接第1路单向函数模块301的输入。第i(1≤i≤N-1)路单向函数模块301的输出与第i+1路单向函数模块301的输入相连。这使得各路单向函数模块301构成串联结构。
密文链变换模式下的GLOWT同步分路变换装置,如图27所示,包括N-1路密文链异或模块306。第i(1≤i≤N-1)路密文链异或模块306用于将第i路信号输出接口305的输出与初始乱码本异或后作为第i+1路单向函数模块301的输入。
明文链变换模式下的GLOWT同步分路变换装置,如图28所示,包括N-1路明文链异或模块308。第i(1≤i≤N-1)路明文链异或模块308用于将第i路信号输入接口304的输入与初始乱码本异或后作为第i+1路单向函数模块301的输入。
本实施例应用于通信时,N路信号输出接口305输出的是加密了的信号,为传输这N路加密的信号需要一路加密了的初始乱码本通信作为辅助,因此,本实施例形象地说明了本发明的乱码本有限单向变换是一种以带宽换速度的加密方法。上述GLOWT同步分路变换装置中的包括N路信号输入接口、N路信号输出接口中的“N”一般取值为4~255。本实施例也是一种分路加密或解密的装置,即通过一路初始乱码本同时对多路输入的信号进行分别加密或解密。
实施例21
本实施例是GLOWT同步分路变换装置的一种应用。如图29所示,基于乱码本有限单向变换的复用装置,包括:GLOWT同步分路变换装置310、多路复用模块311、随机同步序列模块312、标准加密模块313、以及N路信号输入接口314和复用输出接口315。GLOWT同步分路变换装置310即为前述实施例20中的GLOWT同步分路变换装置,用于根据随机同步序列模块312产生的初始乱码本对N路信号输入接口314输入的N路信号采用乱码本有限单向变换的方法进行分路加密,其中每一路信号对应乱码本有限单向变换的一个轮次。GLOWT同步分路变换装置310输出的N路加密后的信号被送入至多路复用模块311。随机同步序列模块312用于产生初始乱码本序列。显而易见地,随机同步序列模块312的“产生初始乱码本序列”可以表示“生成初始乱码本序列”,也可以表示为“接收外部初始乱码本序列输入”。标准加密模块313用于对随机同步序列模块312产生的初始乱码本序列采用标准加密方法进行加密,加密后的初始乱码本序列送入多路复用模块311。多路复用模块311用于将由标准加密模块313加密后的初始乱码本序列以及N路由GLOWT同步分路变换装置310加密后的输入信号进行多路复用或进行多路映射复用,形成一路高速信号通过复用输出接口315输出。多路复用模块311可以是基于PDH、SDH、WDM或DWDM的复用模块,也可以是基于TDMA或CDMA的复用模块。因此,本实施例基于乱码本有限单向变换加密的复用装置可应用于基于PDH、SDH、WDM或DWDM的传输网络,也可以应用于基于TDMA或CDMA的无线网络传输。比如,传统的复用器可以将30路或32路64K的电话信号复用成一路2M的C12信号,而应用该复用装置后可以将29路或31路64K的电话信号复用成一路2M的C12信号,剩余一路的64K信号用于传输加密用的初始乱码本。再比如,传统的SDH设备可以将63路2M的C12信号复用成155M的STM-1信号,应用该复用装置后可以将62路2M的C12信号复用成155M的STM-1信号,剩余一路2M信号用于传输加密用的初始乱码本。
需要说明的是,当GLOWT同步分路变换装置310对各路信号加密时,只需要对各路输入信号中的净负荷加密即可,因此,随机同步序列模块312生成初始乱码本序列的速率只要等同于各路输入信号净负荷的信号即可。比如,63路STM-1信号复用成STM-64信号时,输入的STM-1信号首先需要剔除再生段和复用段的开销解映射成一路VC4信号或三路VC3信号,此时,随机同步序列模块312生成初始乱码本序列时,生成相当于VC4的140M速率,或生成相当于VC3的45M速率即可。此时,需要在N路信号输入接口314处设置解映射模块316。解映射模块316用于剔除N路信号输入接口314输入的信号帧中的帧开销。
前述PDH为Plesiochronous Digital Hierarchy的缩写,即为准同步数字体系。前述SDH为Synchronous Digital Hierarchy的缩写,即为同步数字体系。前述WDM为Wavelength Division Multiplexing的缩写,也即为波分复用。前述DWDM为Dense Wavelength Division Multiplexing的缩写,也即为密集型波分复用。前述TDMA为Time Division Multiple Access的缩写,即为时分多址。前述TDMA为Code Division Multiple Access的缩写,也即为码分多址。有关C12、VC12、VC3、VC4、STM-1、STM-16、STM-64、再生段、复用段等概念为SDH信息帧结构中的概念,为公知常识,本说明书无需赘述。
图30为上述基于乱码本有限单向变换的复用装置所对应的解复用装置。如图30所示,基于乱码本有限单向变换的解复用装置,包括GLOWT同步分路变换装置310、解复用模块321、标准解密模块322、高速信号输入接口323、N路信号输出接口324。解复用模块321用于将高速信号输入接口323输入的高速信号解复用成N+1路低速信号,其中一路低速信号为加密了的初始乱码本接入至标准解密模块322,其他N路低速信号为加密了的有效负荷接入至GLOWT同步分路变换装置310。标准解密模块322用于将加密了的初始乱码本采用标准加密方法解密成初始乱码本,输出解密了的初始乱码本接入至GLOWT同步分路变换装置310。GLOWT同步分路变换装置310根据解密了的初始乱码本对N路低速信号进行分路解密,然后由N路信号输出接口324输出。解复用模块321与前述的多路复用模块311相对应,可以是基于PDH、SDH、WDM或DWDM的解复用模块,也可以是基于TDMA或CDMA的解复用模块。
图29的基于乱码本有限单向变换的复用装置和图30的基于乱码本有限单向变换的解复用装置可组成基于乱码本有限单向变换的传输系统。该传输系统包括基于乱码本有限单向变换的复用装置和基于乱码本有限单向变换的解复用装置。此时,基于乱码本有限单向变换的复用装置放置在发送端,用于发送数据,基于乱码本有限单向变换的解复用装置放置在接收端,用于接收数据。该传输系统可以基于PDH、SDH、WDM或DWDM,也可以基于基于TDMA或CDMA。
此外,本领域技术人员理解,图29的基于乱码本有限单向变换的复用装置和图30的基于乱码本有限单向变换的解复用装置还可以组成一个完整的用于双向传输的设备。
实施例22
本实施例也是实施例20中GLOWT同步分路变换装置的一种应用。基于乱码本有限单向变换的传输接入装置,如图31所示,包括GLOWT同步分路变换装置330、等速同步分解模块331、随机同步序列模块332、标准加密模块333、高速信号接入接口334、N路低速信号加密输出接口335以及初始乱码本输出接口336。等速同步分解模块331用于将高速信号接入接口334输入的高速信号分成N路等速的低速信号后输入至GLOWT同步分路变换装置330。随机同步序列模块332用于产生初始乱码本序列。随机同步序列模块332产生的初始乱码本序列同时输入至GLOWT同步分路变换装置330和标准加密模块333。标准加密模块333用于对随机同步序列模块332产生的初始乱码本序列采用标准加密方法进行加密后通过初始乱码本输出接口336输出。GLOWT同步分路变换装置330即为前述实施例20中的GLOWT同步分路变换装置,用于根据随机同步序列模块332产生的初始乱码本对等速同步分解模块331分解得到的N路低速信号采用乱码本有限单向变换的方法进行分路加密,加密后的N路低速信号经N路低速信号加密输出接口335输出。显而易见地,当GLOWT同步分路变换装置330中的N路单向函数模块301所执行单向变换为等长变换的情形下,等速同步分解模块331分解得到的N路等速的低速信号与随机同步序列模块332产生的初始乱码本序列具有相同的速率。显而易见地,随机同步序列模块332的“产生初始乱码本序列”可以表示为“生成初始乱码本序列”,也可以表示为“接收外部初始乱码本序列输入”。
图32为基于乱码本有限单向变换的传输接入装置所对应的传输接出装置。基于乱码本有限单向变换的传输接出装置,如图32所示,包括GLOWT同步分路变换装置340、同步信号合并模块341、标准解密模块342、高速信号输出接口344、N路低速信号输入接口345以及初始乱码本接入接口346。标准解密模块342用于对初始乱码本接入接口346输入的初始乱码本解密后输入至GLOWT同步分路变换装置340。GLOWT同步分路变换装置340即为前述实施例20中的GLOWT同步分路变换装置,用于根据解密后的初始乱码本序列对N路低速信号输入接口345输入的N路信号进行分路解密,解密后的N路低速信号输入至同步信号合并模块341。同步信号合并模块341用于将解密后的N路低速信号合并成高速信号经高速信号输出接口344输出。
图31中的基于乱码本有限单向变换的传输接入装置和图32中的基于乱码本有限单向变换的传输接出装置可组成完整的基于乱码本有限单向变换的传输接入设备。应用场景举例:A公司两个异地的办公地点分别在北京和深圳,现欲租用电信公司C的传输设备构建公司的1G速率局域网。于是电信公司C向A公司提供了25个北京至甚至的45M速率(C3)的传输通道。这25个传输通道采用了各不相同的物理路径。A公司采用上述传输接入设备的传输接入装置将1G以太网信号等速分解成24路45M速率的信号经分路加密后,分别装入其中24个传输通道中,加密用的初始乱码本装入剩下的一个传输通道。24路传输通道传输的实际数据和1路传输通道传输的初始乱码本接入传输接入设备的传输接出装置后,使得24路45M速率的信号得到解密,而后合并成1G速率的以太网信号。由于以太网信号需要双向通信,该传输接入设备中的传输接入装置用于发送加密的数据,该传输接入设备中的传输接出装置用于接收数据和解密。
需要说明的是,当传输时,初始乱码本和有效数据采用不同的物理路径时,初始乱码本的传输可以无需加密。也即,前述的基于乱码本有限单向变换的传输接入装置中的标准加密模块333不是必需的。相应地,基于乱码本有限单向变换的传输接出装置中的标准解密模块342也不是必需的。
实施例23
本实施例是通信双方通过初始乱码本的识别码(GID)维护通信双方初始乱码本的例子,双方交互的步骤如下:
ST1:接收方载入初始乱码本,并获取GID;
ST2:接收方向发送方发送GID请求数据;
ST3:发送方接收GID;
ST4:发送方检查发送方所保存的初始乱码本是否有效;
ST5:发送方生成初始乱码本,并初始化当前轮次;
ST6:发送方保存初始乱码本和当前轮次;
ST7:发送方将初始乱码本发送至接收方;
ST8:接收方接收并保存初始乱码本;
ST9:发送方根据初始乱码本采用所述的乱码本有限单向变换的方法将待发送的数据加密成密文后发送至接收方,并对保存当前轮次;接收方接收密文后,根据初始乱码本采用所述的乱码本有限单向变换的方法将密文解密成明文。
上述步骤中,GID即为初始乱码本的识别码。
GID可以是由整型数表示的序号。此时,当步骤ST5中生成初始乱码本时,同时生成GID;当步骤ST6中保存初始乱码本和当前轮次时,同时保存GID;当步骤ST7中将初始乱码本发送至接收方时,同时将GID发送至接收方;当步骤ST8中接收方保存初始乱码本时,同时保存GID;步骤ST1中,获取GID即为载入GID。需要说明的是,步骤ST1中的“载入”表示的是“从本地读取”,与步骤ST8中的“保存”相对应。
GID也可以是由初始乱码本经单向散列函数计算后得到的散列值。此时,步骤ST1中的获取GID为根据载入的初始乱码本采用单向散列函数计算散列值作为GID。
步骤ST5初始化当前轮次时,可以将当前轮次设为0。当步骤ST9中密文发送至接收方时,可以同时将当前轮次发送给接收方。由此实现双方当前轮次的同步。
步骤ST4至少包括判断发送方所保存的初始乱码本与接收到的GID是否相对应。假如GID是由整型数表示的序号,那么发送方必然保存有与初始乱码本相对应的GID,此时,发送方只需要检查保存的GID和接收到的GID是否相同即可。假如GID是由初始乱码本经单向散列函数计算后得到的散列值,则发送方需要根据发送方所保存的初始乱码本计算其散列值,而后根据判断该散列值是否与接收到的GID是否相同即可。假如发送方所保存的初始乱码本与GID相对应,则表示发送方所保存的初始乱码本有效,否则无效。
上述步骤ST1至ST9的通信过程一般可应用于非对称的通信双方,特别是客户端和服务器之间的通信。所谓非对称的通信双方是指通信双方的数据流量相差比较大。比如在客户端和服务器之间通信时,客户端向服务器发送的数据量通常较小,而服务器向客户端发送的数据量较大。比如,用户通过浏览器访问新闻、杂志、论坛、视频等网站时,下载的数据量远远超过上行的数据量。
图33是上述过程在在线视频播放中的具体应用。视频数据存于远程服务器(视频服务器),用户通过客户端访问远程服务器中的视频数据实现视频播放。出于视频数据著作版权的考虑,视频服务器向客户端发送视频数据时采用了乱码本有限单向变换加密。图33是客户端(即视频播放器)和视频服务器的交互流程图。其中,左侧为客户端流程,右侧为服务器(即视频服务器)流程,左侧和右侧之间的箭头指向表示客户端与服务器之间交互往来。客户端相当于前述的步骤ST1-ST9中的接收方,服务器相当于前述步骤ST1-ST9中的发送方。服务器(相当于发送方)保存初始乱码本通过用户数据库实现。用户数据库是服务器用于保存用户个人信息的数据库。具体过程如下:
首先,用户通过客户端连接登录服务器。登录服务器后,服务器对用户进行身份论证,并通过密钥交换协议客户端和服务器交换密钥Key。密钥交换协议可以参考Diffie_Hellman密钥交换协议。最终交换后的密钥Key是对称加密的加密密钥。这里的对称加密属于前述的标准加密方法,用于初始乱码本的加密传输。该步骤的具体细节不是本发明所讨论的范畴,不再赘述。
然后,服务器向客户端发送视频列表,客户端向服务器请求播放视频。这是两个步骤。这两个步骤中还包含了客户端向用户展示视频列表,以及用户选择视频播放等步骤,这些细节不是本发明所讨论的范畴。关键在于,当客户端向服务器请求播放选定的视频时,客户端向服务器发送GID。GID是初始乱码本的识别码,也是初始乱码本的特征码,由客户端保存的初始乱码本中提取获得。客户端提取初始乱码本的特征码GID过程也就是采用单向散列函数对初始乱码本进行计算得到GID的过程。客户端载入初始乱码本和提取GID的过程即为前述的步骤ST1。客户端向服务器请求播放选定的视频,并提交GID的过程即为前述的步骤ST2。假如,客户端未保存有初始乱码本,则GID可以用无效的数据比如全0或全1填充。
当服务器收到客户端播放视频的请求后,首先检查初始乱码本的有效性。初始乱码本的有效性检查,相当于前述的步骤ST3。该实施例中检查初始乱码本是否有效分成三个子步骤:一致性比较、时效性检查以及轮次数检查。
一致性比较即为图33中的步骤ST41,用户数据库内保存的初始乱码本和GID进行一致性比较,相当于前述的“判断发送方所保存的初始乱码本与GID是否相对应”。由于GID是初始乱码本经单向散列函数运算获得的散列值,因此该步骤为计算用户数据库内保存的初始乱码本的单向散列函数的散列值后与服务器收到的GID进行比较,假如两者相同,则表示GID与服务器内的初始乱码本保持一致,一致性比较通过,否则不一致。本领域技术人员理解,假如GID为无效的数据(也即客户端未保存有初始乱码本)或者服务器的用户数据库内未保存有初始乱码本,则显而易见地两者不一致。
时效性检查,即图33中的步骤ST42,判断初始乱码本是否超过期限。也即步骤ST5至ST8中同步后的初始乱码本是具有期限限制的。假如超过指定期限表示时效性检查失败,否则时效性检查通过。显而易见地,检查初始乱码本是否超过期限需要在生成初始乱码本时记录初始乱码本的生成时间。因此在步骤ST6中保存初始乱码本时还需要保存初始乱码本生成的时间。这里,初始乱码本的时效期限为事先设定,比如一周或一个月等。
轮次数检查,即图33的步骤ST43,检查用户数据库内保存的初始乱码本轮次是否够用。轮次数检查通过表示当前轮次够用。在图33的实施例下,初始乱码本的一般较大,比如64K。在单向函数为“环移小部哈希运算”的情形下,变换限值也为64K,即65536。每个初始乱码本可以加密4G大小的数据。因此每个64K大小初始乱码本可以加密多部影片。假设当前的使用轮次为65000,未达到65536的变换限值,而视频数据大小为256M,则该视频数据需要4096个轮次的变换才能完成对该视频数据的加密。显然,从65000至65536只有536个轮次可变换。于是,在视频数据传输中间还需要生成初始乱码本加密传输等操作,可能导致视频播放中断,不连续。因此,可以在视频播放前根据视频数据大小判断当前的使用轮次是否够用,假如不够用则需重新生成初始乱码本。本实施例中,轮次数检查在时效性检查之后,本领域技术人员理解,轮次数检查也可以置于时效性检查之前。
假如一致性比较、时效性检查和轮次数检查均通过,则初始乱码本有效,否则初始乱码本无效。假如初始乱码本有效,则可以利用服务器和客户端现有的初始乱码本执行视频数据加密通信和客户端播放视频的步骤,也即执行前述步骤ST9。假如初始乱码本无效,则需执行生成初始乱码本并同步客户端和服务器的初始乱码本的步骤后,执行视频数据加密通信和客户端播放视频的步骤,也即转前述步骤ST5后经执行前述步骤ST6、ST7、ST8后再执行前述步骤ST9。
生成初始乱码本并同步客户端和服务器的初始乱码本的步骤可分成四个子步骤分别相当于前述的步骤ST5、ST6、ST7和ST8:首先,服务器生成初始乱码本并初始化使用轮次为0,该步骤相当于前述步骤ST5。然后服务器将生成的初始乱码本和使用轮次存入用户数据库,该步骤相当于前述步骤ST6。这里的使用轮次即为前述步骤ST4、ST5和ST6中的当前轮次。服务器执行步骤ST6的同时将生成的初始乱码本用密钥Key加密后发送至客户端,该步骤相当于前述步骤ST7。这里,密钥Key对初始乱码本的加密采用标准加密方法。客户端收到加密后的初始乱码本,用密钥Key解密初始乱码本并保存,该步骤相当于前述步骤ST8。该步骤完成后,服务器和客户端同时保存了一份相同的初始乱码本,分别用于视频数据通信的加密和解密。
最后是视频数据加密通信和客户端播放视频的步骤,相当于前述步骤ST9,包含三个步骤:首先是步骤ST91,服务器根据初始乱码本,采用前述的乱码本有限单向变换的方法将视频数据加密成视频密文,并保存使用轮次至用户数据库。步骤ST91中,使用轮次的计数,也即当前轮次的计数由乱码本有限单向变换的过程实现。然后是步骤ST92,将视频密文发送至客户端。最后是步骤ST93,客户端根据本地保存的初始乱码本采用乱码本有限单向变换的方法将视频密文解密成视频数据,然后播放视频。为保持客户端和服务器当前轮次的一致,当服务器将视频密文发送至客户端时,也可以同时将当前轮次发送给客户端,客户端则根据收到的当前轮次和本地的初始乱码本对视频密文进行解密,而后播放视频。
上述过程归纳起来即为通过GID使得服务器和客户端同步保存初始乱码本。该方法可以避免频繁生成、加密传输初始乱码本,减少不必要的带宽开销和CPU开销。以上述在线视频播放为例。假如不通过GID共同维护服务器和客户端的初始乱码本,则用户每一次请求播放视频时,服务器都需要生成初始乱码本并加密后传输至客户端。而很多用户的习惯是每部影片先看个片头,假如觉得好看会继续看下去,假如不好看就换一部影片。在这种情形下,服务器需要频繁生成、加密传输初始乱码本。而通过本实施例GID维护服务器和客户端保存的初始乱码本的前提下,则一次生成初始乱码本后可以使用很久。
本实施例的视频数据通信是为了解决视频数据的版权问题,因此安全性要求不高。在安全性要求不高的情形下,假如初始乱码本由发送方生成后发送至接收方(也即前述的初始乱码本由发送方生成的实施方式),为抗抵赖性,可以对初始乱码本进行数字签名,而无需对明文进行数字签名。显而易见地,由于初始乱码本长度远小于被传输的明文,发送方仅对初始乱码本执行数字签名的过程和接收方仅对初始乱码本进行签名验证的过程要比发送方对明文进行数字签名的过程和接收方对明文进行签名验证的过程开销要小得多。
当发送方发送初始乱码本时,发送方对初始乱码本执行数字签名,具体步骤如下:发送方采用单向散列函数对初始乱码本进行运算得到初始乱码本的报文摘要;然后发送方根据发送方私有密钥对初始乱码本的报文摘要加密得到签名报文;再将加密后的初始乱码本和签名报文发送至接收方。
接收方接收到初始乱码本后进行签名验证,具体步骤如下:接收方接收到加密后的初始乱码本和签名报文后,对加密后的初始乱码本进行解密;然后采用单向散列函数对初始乱码本进行运算得到初始乱码本的报文摘要并根据发送方公开密钥对签名报文解密得到摘要验证;接收方再根据初始乱码本的报文摘要和摘要验证进行比较,如果两者相同表示签名验证通过,否则签名验证失败。
显而易见地,上述对数字签名和签名验证的过程均为现有技术,只不过在这里被用在了对初始乱码本的通信加密上。本领域技术人员可以理解,上述的在初始乱码本加密通信时采用数字签名和签名验证的方法也可以用于其他三种实施方式中,即初始乱码本由通信双方中固定的一方生成的实施方式、初始乱码本由通信双方共同生成的实施方式和初始乱码本由第三方生成的实施方式。
实施例24
本实施例是个性化通信加密的实施例。该实施例包括以下步骤:
Sk1:发送方获取用户特征信息码;
Sd1:发送方获取初始乱码本;
Sk2:发送方对初始乱码本和用户特征信息码进行线性组合运算得到个性化乱码本;
Sd2:发送方根据个性化乱码本采用乱码本有限单向变换的方法将明文加密成密文;
Sd3:发送方将密文发送至接收方;
Sk3:接收方获取用户特征信息码;
Rv1:接收方获取初始乱码本;
Sk4:发送方对初始乱码本和用户特征信息码进行线性组合运算得到个性化乱码本;
Rv2:接收方接收密文;
Rv3:接收方根据个性化乱码本采用乱码本有限单向变换将密文解密成明文。
用户特征信息码可以是发送方的特征信息码、或者也可以是接收方的特征信息码、或者也可以是由发送方的特征信息码和接收方的特征信息码经线性组合运算得到的结果。发送方的特征信息码是用于表征发送方特征的数据,可以是发送方的公开密钥或发送方的用户头像图片或发送方的用户指纹或其他的特征信息等等;接收方的特征信息码是用于表征接收方特征的数据,可以是接收方的公开密钥或接收方的用户头像图片或接收方的用户指纹或其他的特征信息等等。
步骤Sk2和Sk4中的“线性组合运算”与前述“环移小部哈希运算”中的“线性组合运算”相同。前述已详细说明,本处不再赘述。
本实施例可用于客户端与服务器之间的通信,此时,用户特征信息码是客户端用户的特征信息码。本实施例也可以用于Client/Server系统中的两个客户端之间的通信,此时用户特征码则是两个客户端用户的特征信息码。本实施例具有以下技术效果:其一、由于用户特征信息码在发送方和接收方之间的同步和初始乱码本的同步和数据通信不在同一时间段,因此使得数据通信保密性得到加强;其二、用户特征信息码和初始乱码本进行线性组合运算后对被传输的数据进行加密,使得传输中的数据内容加上了用户的特征信息,这相当于传输中的数据内容被打上了水印或印签,带上有个性气息,在一定程度上具有抗抵赖性。
实施例25
图34是用于实现图33中服务器功能的基于乱码本有限单向变换的服务端装置,包括:指令接收装置510、有效性检查装置520、码本初始化装置531、参数存储装置532、码本发送装置533、变换加密装置541、密文发送装置542。指令接收装置510用于接收来自客户端的指令和GID,即用于完成前述步骤ST3。有效性检查装置520用于检查初始乱码本的有效性,即用于完成前述步骤ST4。有效性检查装置520至少包括一致性比较装置521。一致性比较装置521用于判断所保存的初始乱码本与接收到的GID是否相对应,即用于完成前述步骤ST41。码本初始化装置531用于生成初始乱码本并初始化当前轮次,即用于完成前述步骤ST5。参数存储装置532用于保存初始乱码本和当前轮次,即用于完成前述步骤ST6。码本发送装置533用于将初始乱码本发送至客户端,即用于完成前述步骤ST7。变换加密装置541用于根据初始乱码本采用前述的乱码本有限单向变换的方法将被传输的数据加密成密文并保存当前轮次至用户数据库,即用于完成前述步骤ST91。密文发送装置542用于将密文发送至客户端。
在上述结构的基础上,有效性检查装置520还可以进一步包括时效性检查装置522和/或轮次检查装置523。时效性检查装置522用于判断初始乱码本是否超过期限,即用于完成前述步骤ST42。轮次检查装置523用于检查初始乱码本的当前轮次是否够用,即用于完成前述步骤ST43。
图35是用于实现图33中服务器功能的基于乱码本有限单向变换的客户端装置,与图34中的服务端装置相对应。包括:码本接收装置610、码本存储装置620、码本载入装置630、指令发送装置640、密文接收装置650和变换解密装置660。码本接收装置610用于接收服务器生成的初始乱码本,与步骤ST7中的发送相对应。码本存储装置620用于存储接收到的初始乱码本。码本接收装置610和码本存储装置620组合后相当于前述步骤ST8。码本载入装置630用于读取存储的初始乱码本并获取GID,用于完成前述步骤ST1。指令发送装置640用于向服务器发送指令和GID,相当于前述步骤ST2。密文接收装置650用于接收服务器发送的密文,与前述步骤ST92相对应。变换解密装置660用于根据初始乱码本采用前述的乱码本有限单向变换的方法将将接收到的密文解密成明文。
本领域技术人员理解,图34中的服务端装置和图35中的客户端装置可构成服务端和客户端的系统。GID即为初始乱码本的识别码。根据前述方法中描述,GID可以是由整型数表示的序号。此时,码本初始化装置531还用于生成GID;参数存储装置532还用于保存GID;码本发送装置533还用于将GID发送至客户端。相应地,客户端装置中的码本载入装置630中的获取GID即为从本地读取GID;码本接收装置610还用于接收GID;码本存储装置620还用于存储GID。GID也可以是由初始乱码本经单向散列函数计算后得到的散列值。此时,客户端装置中的码本载入装置630中的获取GID为根据载入的初始乱码本采用单向散列函数计算散列值作为GID。
七、可替代的技术方案
需要说明的是,本说明书上述实施例仅仅是本发明实现或应用中的部分实施方式。凡是根据本发明采用等同替换或者等效变换而形成的所有技术方案均落在本发明权利要求保护的范围之内。
第一种可替代的技术方案为:前述的乱码本有限单向变换的方法中的步骤GT2可以改成乱码本单向变换后与电文相加或相减。于是有:当在加密时,步骤GT2为乱码本单向变换后与电文相加,则在解密时,步骤GT2为乱码本单向变换后与电文相减;当在加密时,步骤GT2为乱码本单向变换后与电文相减,则在解密时,步骤GT2为乱码本单向变换后与电文相加。显而易见地,这是一种很蹩脚的替代的技术方案。虽然这种替代的技术方案与前述所声明的技术方案有些区别,但它与本发明的精神相符,实质上与本发明相同。步骤GT2中的“异或”改成“相加”或“相减”,与之相等效的有:
1、前述乱码本有限单向变换的装置中,“电文异或模块”改成“电文相加模块”或“电文相减模块”。“电文相加模块”用于单向变换后的乱码本与输入的电文相加。“电文相减模块”用于单向变换后的乱码本与输入的电文相减。
2、前述乱码本有限单向变换电路中,“电文异或单元”替换成“电文相加单元”或“电文相减单元”。“电文相加单元”用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行数学相加的操作,并通过变换输出接口输出。“电文相减单元”用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行数学相减的操作,并通过变换输出接口输出。
3、前述基于乱码本有限单向变换的数据加密存储的装置中,“变换异或模块”替换成“变换相加模块”或“变换相减模块”。“变换相加模块”用于对乱码本单向变换后与电文相加。“变换相减模块”用于对乱码本单向变换后与电文相减。
4、前述GLOWT同步分路变换装置中,“N路异或模块”替换成“N路加法模块”或“N路减法模块”。“N路加法模块”用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相加,再由N路信号输出接口输出。“N路减法模块”用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相减,再由N路信号输出接口输出。
第二种可替代的技术方案是:在前述的乱码本有限单向变换的方法中,并未显式地表现步骤GT3。有关隐式地轮次计数和控制前述已有实施例说明。这里补充一种实施方式是将步骤GT3改成:判断初始乱码本的生成时间,当初始乱码本的生成时间在限定时限内重复执行步骤GT2。该实施方式实质上就是通过初始乱码本的存续时间确定变换限值。显而易见地,这种情形下,初始乱码本不会无限次的使用,符合本发明的精神。但在这种情形下,变换限值是非固定的,甚至是非确定值。在上述可替代的技术方案下,与之相匹配的是在前述的乱码本有限单向变换的装置中,“轮次控制模块”替换成“时限控制模块”。“时限控制模块”用于判断初始乱码本的生成时间,当初始乱码本的生成时间在限定时限内所述单向函数模块执行乱码本单向变换。前述的基于乱码本有限单向变换的服务端装置中,时效性检查装置522相当于此处的“时限控制模块”。
第三种可替代的技术方案是:在前述的乱码本有限单向变换的方法中,不存在步骤GT3。比如对一个文件进行加密时,不断地重复使用一个初始乱码本对文件内容进行单向变换加密。这同样是一种隐式地轮次计数和控制。这是因为文件内容大小有限,该初始乱码本不可能被无限制的使用。在这种情形下,前述步骤GT3可以表述成:重复步骤GT2直到所有电文完成变换异或;或者GT3也可以表述成:判断电文是否完成变换异或,如果存在待变换异或的电文则重复步骤GT2。在与该可替代的技术方案相匹配的是在前述的乱码本有限单向变换的装置中,“轮次控制模块”替换成“电文判断模块”。“电文判断模块”判断电文是否完成变换异或,如果存在待变换异或的电文则所述单向函数模块执行乱码本单向变换。
还有一种技术方案是这样的:在前述的乱码本有限单向变换的方法中,不存在步骤GT3,技术人员还声称,该技术方案下,由于单向函数设计的足够好,初始乱码本是无限使用的。本领域技术人员可以理解,任何软件产品或电子产品均有其生命周期,不可能无限使用。相应地,采用这种技术方案实现数据加密时,初始乱码本同样存在生命周期。在这初始乱码本的生命周期内,初始乱码本不可能被使用无限次,232已然是极限。因此这种技术方案符合本发明的精神,属于本发明的权利要求保护的范围内的技术方案。

Claims (94)

1.乱码本有限单向变换的方法,其特征在于,该方法包括以下步骤:
GT1:获取初始乱码本;
GT2:乱码本单向变换后与电文异或;
GT3:重复执行步骤GT2并控制步骤GT2执行的轮次数限于变换限值;
其中,所述乱码本单向变换为采用单向函数对乱码本进行运算;所述变换限值大于1。
2.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述初始乱码本包含多个原子乱码本;所述原子乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。
3.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述步骤GT2的乱码本单向变换中各轮次之间或采用累进变换模式,或采用密文链变换模式,或采用明文链变换模式;所述累进变换模式中,上个轮次乱码本单向变换的输出作为下一轮次乱码本单向变换中的输入;所述密文链变换模式中,上个轮次乱码本单向变换与电文异或的结果与初始乱码本异或作为下一轮次乱码本单向变换中的输入;所述明文链变换模式中,上个轮次用于被变换的电文与初始乱码本异或作为下一轮次乱码本单向变换中的输入。
4.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述步骤GT2的乱码本单向变换中,轮次作为乱码本单向变换的参数输入。
5.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述步骤GT2的乱码本单向变换为缩变换;所述缩变换为乱码本单向变换中,输入的乱码本长度大于输出的乱码本长度。
6.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述的变换限值为非固定值。
7.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述的单向函数包含有下述运算之一或下述运算之组合:循环移动、多项式运算、非线性置换。
8.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述的单向函数包含环移小部哈希运算;所述的环移小部哈希运算包括如下步骤:
T1:将乱码本根据当前轮次数循环移动;
T2:从循环移动后的乱码本中选取lenHashi字节长度的字符串txtHashi;
T3:对字符串txtHashi进行杂凑运算得到杂凑值txtHasho;
T4:将txtHasho与循环移动后的乱码本进行线性组合运算;
其中,lenHashi取值为8~256。
9.如权利要求8所述的乱码本有限单向变换的方法,其特征在于,所述步骤T3中进行杂凑运算的输入还包括当前轮次。
10.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,还包括以下步骤:
FBS:根据轮次数从单向函数库中选择单向函数;
所述单向函数库包括了各种不同的单向函数。
11.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述步骤GT2替换为乱码本单向变换后与电文相加或相减。
12.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述步骤GT3替换为:判断初始乱码本的生成时间,当初始乱码本的生成时间在限定时限内时执行步骤GT2。
13.如权利要求1所述的乱码本有限单向变换的方法,其特征在于,所述步骤GT3替换成:判断电文是否完成变换异或,如果存在待变换异或的电文则重复执行步骤GT2。
14.一种基于乱码本有限单向变换的数据处理装置,包括处理器和存储器;所述处理器用于执行程序指令;所述存储器存储有程序指令集;其特征在于,当所述处理器执行所述程序指令集时,使得该数据处理装置可以执行权利要求1至13中任一项所述的乱码本有限单向变换的方法。
15.乱码本有限单向变换的装置,其特征在于,该装置包括随机码本模块、变换异或模块和轮次控制模块;所述随机码本模块用于获取初始乱码本;所述变换异或模块包括单向函数模块和电文异或模块,用于对乱码本单向变换后与输入的电文异或;所述单向函数模块用于对乱码本执行单向变换,即采用单向函数对乱码本进行运算;所述电文异或模块用于单向变换后的乱码本与输入的电文异或;所述轮次控制模块用于控制乱码本执行单向变换的轮次数使其限于变换限值;其中,所述变换限值大于1。
16.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述初始乱码本包含多个原子乱码本;所述原子乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。
17.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,该装置还包括工作链接模块;所述工作链接模块为累进变换链接模块或密文链接模块或明文链接模块;所述累进变换链接模块用于使得上个轮次乱码本单向变换的输出成为下一轮次乱码本单向变换的输入;所述密文链接模块用于使得上个轮次乱码本单向变换与电文异或的结果与初始乱码本异或作为下一轮次乱码本单向变换中的输入;所述明文链接模块用于使得上个轮次输入的电文与初始乱码本异或作为下一轮次乱码本单向变换中的输入。
18.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述单向函数模块执行的乱码本单向变换时,轮次作为乱码本单向变换的参数输入。
19.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述变换异或模块中所述的乱码本单向变换为缩变换;所述缩变换为乱码本单向变换中,输入的乱码本长度大于输出的乱码本长度。
20.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述的变换限值为非固定值。
21.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述单向函数模块包含有下述运算之一或下述运算之组合:循环移动、多项式运算、非线性置换。
22.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述的单向函数模块包含环移小部哈希运算模块;所述环移小部哈希运算模块包括循环移动模块、小部选取模块、哈希函数模块和线性合并模块;所述循环移动模块用于将乱码本根据当前轮次数循环移动;所述小部选取模块用于从循环移动后的乱码本中选取lenHashi字节长度的字符串txtHashi;所述哈希函数模块用于对字符串txtHashi进行杂凑运算得到杂凑值txtHasho;所述线性合并模块用于将txtHasho与循环移动后的乱码本进行线性组合运算。
23.如权利要求22所述的乱码本有限单向变换的装置,其特征在于,所述哈希函数模块中进行杂凑运算时的输入还包括当前轮次数。
24.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,该装置还包括单向函数库模块;所述单向函数库模块用于根据轮次数从单向函数库中选择单向函数。
25.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述电文异或模块替换成电文相加模块或电文相减模块;所述电文相加模块用于单向变换后的乱码本与输入的电文相加;所述电文相减模块用于单向变换后的乱码本与输入的电文相减。
26.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述轮次控制模块替换成时限控制模块;所述时限控制模块用于判断初始乱码本的生成时间,当初始乱码本的生成时间在限定时限内时所述单向函数模块执行乱码本单向变换。
27.如权利要求15所述的乱码本有限单向变换的装置,其特征在于,所述轮次控制模块替换成电文检查模块;所述电文检查模块判断电文是否完成变换异或,如果存在待变换异或的电文则所述单向函数模块执行乱码本单向变换。
28.一种乱码本有限单向变换电路,其特征在于,该电路包括轮次控制器、单向函数单元、电文异或单元;所述单向函数单元包括初始乱码本输入接口、与电文异或单元输入相连的输出接口;所述电文异或单元包括与单向函数单元输出相连的输入接口、电文输入接口以及变换输出接口;其中,所述轮次控制器用于记录单向函数单元执行操作的轮次数,并控制单向函数单元对每个原子乱码本执行操作的轮次数限于变换限值;所述单向函数单元用于对通过初始乱码本输入接口输入的初始乱码本按原子乱码本执行单向函数运算的操作;所述电文异或单元用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行逻辑异或的操作,并通过所述变换输出接口输出。
29.如权利要求28所述的乱码本有限单向变换电路,其特征在于,所述的单向函数单元包括按位为单位的非线性置换。
30.如权利要求28所述的乱码本有限单向变换电路,其特征在于,该电路还包括参数配置单元;所述的参数配置单元通过非易失性存储器存储乱码本有限单向变换中的参数。
31.如权利要求28所述的乱码本有限单向变换电路,其特征在于,在所述初始乱码本输入接口处设有初始异或单元,在所述变换输出接口处设有密文链接器;所述初始异或单元包括与所述密文链接器相连的输入接口、与所述单向函数单元相连的输出接口;所述密文链接器包括与所述变换输出接口相连的输入接口、与所述初始异或单元输入相连的输出接口;所述密文链接器用于缓冲存储经所述电文异或单元输出的电文,并将输出的电文等待一个轮次输入至所述初始异或单元;所述初始异或单元用于根据所述初始乱码本输入接口输入的原子乱码本与从所述密文链接器获得的上个轮次的输出的电文进行异或后输入至所述单向函数单元。
32.如权利要求28所述的乱码本有限单向变换电路,其特征在于,在所述初始乱码本输入接口处设有初始异或单元,在所述电文输入接口处设有明文链接器;所述初始异或单元包括与所述明文链接器相连的输入接口、与所述单向函数单元相连的输出接口;所述明文链接器包括与所述电文输入接口相连的输入接口、与所述初始异或单元输入相连的输出接口;所述明文链接器用于缓冲存储经所述电文输入接口输入的电文,并将输入的电文等待一个轮次输入至所述初始异或单元;所述初始异或单元用于根据所述初始乱码本输入接口输入的原子乱码本与从所述明文链接器获得的上个轮次的输入的电文进行异或后输入至所述单向函数单元。
33.如权利要求28所述的乱码本有限单向变换电路,其特征在于,该电路还包括随机序列生成单元、随机采样单元、采样寄存器;其中,所述随机采样单元连接一随机信号输入接口;所述随机采样单元用于根据对随机信号输入接口输入的随机信号量进行采样获得随机量,并将得到的随机量存入所述采样寄存器内;所述随机序列生成单元连接所述采样寄存器和所述单向函数单元,并连接有乱码本输出接口;所述随机序列生成单元用于从采样寄存器内读取随机量通过随机序列生成函数将随机量生成随机序列作为初始乱码本输出,输出的初始乱码本经所述初始乱码本输入接口传入所述单向函数单元,并经所述乱码本输出接口输出。
34.如权利要求33所述的乱码本有限单向变换电路,其特征在于,在所述乱码本输出接口处还设有加密单元;所述加密单元用于通过采用标准加密方法实现对由随机序列生成单元生成的初始乱码本进行加密,然后将加密后的初始乱码本输出至所述乱码本输出接口。
35.如权利要求28所述的乱码本有限单向变换电路,其特征在于,所述电文异或单元替换成电文相加单元或电文相减单元;所述电文相加单元用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行数学相加的操作,并通过所述变换输出接口输出;所述电文相减单元用于实现由单向函数单元变换后的乱码本与通过电文输入接口输入的电文执行数学相减的操作,并通过所述变换输出接口输出。
36.基于乱码本有限单向变换的数据加密存储的方法,其特征在于,包括如下步骤:
Sv1:获取初始乱码本;
Sv2:根据初始乱码本,采用权利要求1-13中任一项所述的乱码本有限单向变换的方法对明文加密得到密文;
Sv3:将初始乱码本存入乱码区;
Sv4:将密文存入密文区;
其中,乱码区是用于存储初始乱码本的区域,密文区是用于存储密文数据的区域。
37.如权利要求36所述的基于乱码本有限单向变换的数据加密存储的方法,其特征在于,所述乱码区和密文区分别位于不同的存储空间内。
38.如权利要求36所述的基于乱码本有限单向变换的数据加密存储的方法,其特征在于,所述乱码区分成多个码本簇;所述码本簇是存储原子乱码本的区域;所述密文区分成多个与码本簇对应的密文辖区;所述密文辖区是存储所有由该密文辖区所对应的码本簇内的原子乱码本经基于乱码本有限单向变换加密获得的密文的区域;密文辖区包含有多个密文簇;所述密文簇是存储最小单位的密文的区域;所述最小单位的密文是由原子乱码本经一个轮次的单向变换后与明文异或后获得;所述原子乱码本是指乱码本单向变换时原子乱码本作为不可拆分的整体参与单向变换。
39.如权利要求38所述的基于乱码本有限单向变换的数据加密存储的方法,其特征在于,所述码本簇对应有轮次区;所述轮次区用于存储每个密文簇对应的轮次的区域;所述密文辖区内密文簇的数量不超过变换限值的五分之一。
40.如权利要求36所述的基于乱码本有限单向变换的数据加密存储的方法,其特征在于,该方法采用了初始乱码本分级的方法;所述初始乱码本分级的方法为初始乱码本被分成N级;其中,第1级的初始乱码本用于采用乱码本有限单向变换的方法加密存储明文,第i级的初始乱码本采用乱码本有限单向变换的方法加密存储第i-1级的初始乱码本。
41.基于乱码本有限单向变换的数据加密存储的装置,其特征在于,该装置包括随机码本模块、码本存储模块、变换异或模块、轮次控制模块和密文存储模块;所述随机码本模块用于获取初始乱码本;所述码本存储模块用于将初始乱码本存入乱码区;所述变换异或模块用于对乱码本单向变换后与电文异或;所述轮次控制模块用于控制乱码本进行单向变换执行的轮次数使其限于变换限值;所述密文存储模块用于将对明文加密获得的密文存入密文区;所述乱码区是用于存储初始乱码本的区域;所述密文区是用于存储密文的区域。
42.如权利要求41所述的基于乱码本有限单向变换的数据加密存储的装置,其特征在于,所述乱码区和密文区分别位于不同的存储空间内。
43.如权利要求41所述的基于乱码本有限单向变换的数据加密存储的装置,其特征在于,该装置还包括:码簇构建模块、明文映射模块、码簇重置模块、码本读取模块、密文读取模块;所述明文映射模块用于将待存储的明文映射至码本簇的密文辖区;所述码簇构建模块用于当待存储明文所对应的码本簇的密文辖区不存在时,构建相应的码本簇和码本簇的密文辖区;所述码本读取模块用于读取码本簇内的原子乱码本;所述密文读取模块用于读取码本簇密文辖区内的密文;所述码簇重置模块用于读取码本簇内的原子乱码本和码本簇密文辖区内的密文,然后逐个解密码本簇密文辖区内各个密文簇内的密文成明文,再合并解密后的明文和待存储的明文;所述码本簇是所述乱码区内存储原子乱码本的区域;所述密文辖区是所述密文区内存储所有由密文辖区所对应的码本簇内的原子乱码本经基于乱码本有限单向变换加密获得的密文的区域;所述密文簇是密文辖区存储最小单位的密文的区域;所述最小单位的密文是由原子乱码本经一个轮次的单向变换后与明文异或后获得。
44.如权利要求43所述的基于乱码本有限单向变换的数据加密存储的装置,其特征在于,该装置还包括:轮次读取模块、轮次存储模块;所述轮次读取模块用于读取轮次区的轮次数据并计算当前轮次;所述轮次存储模块用于将密文簇对应的轮次存入轮次区;所述轮次区用于存储每个密文簇对应的轮次的区域;所述轮次区与所述码本簇相对应;所述密文辖区内密文簇的数量不超过变换限值的五分之一。
45.如权利要求41所述的基于乱码本有限单向变换的数据加密存储的装置,其特征在于,所述初始乱码本分成N级;其中,第1级的初始乱码本用于采用乱码本有限单向变换的方法加密存储明文,第i级的初始乱码本采用乱码本有限单向变换的方法加密存储第i-1级的初始乱码本。
46.如权利要求41所述的基于乱码本有限单向变换的数据加密存储的装置,其特征在于,所述变换异或模块替换成变换相加模块或变换相减模块;所述变换相加模块用于对乱码本单向变换后与电文相加;所述变换相减模块用于对乱码本单向变换后与电文相减。
47.一种存储介质全数据加密存储的方法,其特征在于,在存储介质内设置有标识区;标识区存储有加密识别码;当存储或读取数据时,首先读取标识区内的加密识别码,假如该加密识别码为特定标识时,则通过如权利要求1至13中任一项所述的乱码本有限单向变换的方法或如权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。
48.如权利要求47所述的存储介质全数据加密存储的方法,其特征在于,所述标识区还存储有GLOWT参数;当乱码本有限单向变换时,根据GLOWT参数进行。
49.一种存储介质全数据加密存储的装置,其特征在于,该装置包括GLOWT模块;在该装置的存储介质内设置有标识区;标识区存储有加密识别码;当该装置存储或读取数据时,首先读取标识区内的加密识别码,假如该加密识别码为特定标识时,该装置经GLOWT模块进行加密存储数据或读取数据后解密;所述GLOWT模块为权利要求15至27中任一项所述的乱码本有限单向变换的装置或权利要求41至46中任一项所述的基于乱码本有限单向变换的数据加密存储的装置。
50.如权利要求49所述的存储介质全数据加密存储的装置,其特征在于,所述标识区还存储有GLOWT参数;当GLOWT模块根据GLOWT参数执行乱码本有限单向变换。
51.一种存储介质初始化装置,其特征在于,包括分区模块、初始乱码本生成模块和加密存储模块;所述分区模块用于将存储介质划分成乱码区和密文区;所述初始乱码本生成模块用于生成初始乱码本;所述加密存储模块用于将生成的初始乱码本通过标准加密方法加密后存入乱码区。
52.如权利要求51所述的存储介质初始化装置,其特征在于,所述的分区模块还用于构建码本簇和码本簇密文辖区。
53.一种存储设备,其特征在于,该存储设备包括有存储介质和如权利要求28至35中任一项所述的乱码本有限单向变换电路。
54.一种存储设备,其特征在于,该存储设备包括CPU、RAM和存储介质;其中,CPU被用于执行:通过如权利要求1至13中任一项所述的乱码本有限单向变换的方法或如权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。
55.如权利要求54所述的存储设备,其特征在于,该存储设备还包括有如权利要求28至35中任一项所述的乱码本有限单向变换电路。
56.一种带码本密卡的存储设备,其特征在于,包括存储设备本体和码本密卡;所述存储设备本体上设有密卡槽;所述码本密卡可插入所述密卡槽内;所述存储设备本体的内部设有CPU、RAM和存储介质;所述码本密卡用于作为码本区存储初始乱码本;所述存储设备本体的存储介质用于作为密文区存储加密了的数据;所述CPU被用于执行:当所述码本密卡插入所述密卡槽内后读取所述码本密卡内存储的初始乱码本,然后根据初始乱码本采用权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法实现数据的加密存储和/或数据的读取解密。
57.如权利要求56所述的带码本密卡的存储设备,其特征在于,该存储设备还包括有如权利要求28至35中任一项所述的乱码本有限单向变换电路。
58.GLOWT同步分路变换装置,其特征在于,包括N路单向函数模块、N路异或模块、初始乱码输入接口、N路信号输入接口和N路信号输出接口;所述N路单向函数模块用于对初始乱码本接口输入的初始乱码本进行单向变换;所述N路异或模块用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相异或,再由N路信号输出接口输出;在所述N路单向函数模块中,各路单向函数模块对初始乱码本进行单向变换后具有各不相同的输出。
59.如权利要求58所述的GLOWT同步分路变换装置,其特征在于,该装置采用了扁平变换模式或累进变换模式;在所述扁平变换模式下,初始乱码输入接口同时连接各路单向函数模块的输入;在所述累进变换模式下,第i(1≤i≤N-1)路单向函数模块的输出与第i+1路单向函数模块的输入相连。
60.如权利要求58所述的GLOWT同步分路变换装置,其特征在于,该装置采用了密文链变换模式或明文链变换模式;在所述密文链变换模式下,该装置还包括N-1路密文链异或模块;其中,第i(1≤i≤N-1)路密文链异或模块用于将第i路信号输出接口的输出与初始乱码本异或后作为第i+1路单向函数模块的输入;在所述明文链变换模式下,该装置还包括N-1路明文链异或模块;其中,第i(1≤i≤N-1)路明文链异或模块用于将第i路信号输入接口的输入与初始乱码本异或后作为第i+1路单向函数模块的输入。
61.如权利要求58所述的GLOWT同步分路变换装置,其特征在于,所述N路异或模块替换成N路加法模块或N路减法模块;所述N路加法模块用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相加,再由N路信号输出接口输出;所述N路减法模块用于将N路单向函数模块变换后输出的N路乱码本分别与N路信号输入接口输入的N路输入信号相减,再由N路信号输出接口输出。
62.基于乱码本有限单向变换的复用装置,其特征在于,包括如权利要求58或59或60或61所述的GLOWT同步分路变换装置、多路复用模块、随机同步序列模块、标准加密模块、以及N路信号输入接口和复用输出接口;所述随机同步序列模块用于产生初始乱码本序列;所述标准加密模块用于对所述随机同步序列模块生成的初始乱码本序列采用标准加密方法进行加密,加密后的初始乱码本序列送入至所述多路复用模块;所述GLOWT同步分路变换装置用于根据所述随机同步序列模块获得的初始乱码本对所述N路信号输入接口输入的N路信号进行分路加密,加密后的N路信号输入至所述多路复用模块;所述多路复用模块用于将加密后的初始乱码本序列和N路加密后的输入信号进行多路复用或进行多路映射复用,形成一路高速信号由所述复用输出接口输出。
63.如权利要求62所述的基于乱码本有限单向变换的复用装置,其特征在于,所述多路复用模块是基于PDH、SDH、WDM、DWDM、TDMA或CDMA的复用模块。
64.基于乱码本有限单向变换的解复用装置,其特征在于,包括如权利要求58或59或60或61所述的GLOWT同步分路变换装置、解复用模块、标准解密模块、高速信号输入接口、N路信号输出接口;所述解复用模块用于将所述高速信号输入接口输入的高速信号解复用成N+1路低速信号,其中一路低速信号为加密了的初始乱码本接入至所述标准解密模块,其他N路低速信号为加密了的有效负荷接入至所述GLOWT同步分路变换装置;所述标准解密模块用于将加密了的初始乱码本采用标准加密方法解密成初始乱码本,解密后的初始乱码本接入至所述GLOWT同步分路变换装置;所述GLOWT同步分路变换装置根据解密后的初始乱码本对N路低速信号分路解密,解密后的N路低速信号由所述N路信号输出接口输出。
65.基于乱码本有限单向变换的传输系统,其特征在于,该传输系统包括如权利要求62所述的基于乱码本有限单向变换的复用装置和如权利要求64所述的基于乱码本有限单向变换的解复用装置。
66.如权利要求65所述的基于乱码本有限单向变换的传输系统,其特征在于,该传输系统基于PDH、SDH、WDM、DWDM、TDMA或CDMA。
67.基于乱码本有限单向变换的传输接入装置,其特征在于,包括如权利要求58或59或60或61所述的GLOWT同步分路变换装置、等速同步分解模块、随机同步序列模块、高速信号接入接口、N路低速信号加密输出接口以及初始乱码本输出接口;所述等速同步分解模块用于将高速信号接入接口输入的高速信号分成N路等速的低速信号后输入至所述GLOWT同步分路变换装置;所述随机同步序列模块用于产生初始乱码本序列,并输入至所述初始乱码本输出接口;所述GLOWT同步分路变换装置用于根据所述随机同步序列模块产生的初始乱码本对所述等速同步分解模块分解得到的N路低速信号进行分路加密,加密后的N路低速信号经所述N路低速信号加密输出接口输出。
68.如权利要求67所述的基于乱码本有限单向变换的传输接入装置,其特征在于,该传输接入装置的初始乱码本输出接口处设有标准加密模块;所述标准加密模块用于采用标准加密方法对所述随机同步序列模块产生的初始乱码本加密后经初始乱码本输出接口输出。
69.基于乱码本有限单向变换的传输接出装置,其特征在于,包括如权利要求58或59或60或61所述的GLOWT同步分路变换装置、同步信号合并模块、高速信号输出接口、N路低速信号输入接口以及初始乱码本接入接口;所述GLOWT同步分路变换装置用于根据所述初始乱码本接入接口输入的初始乱码本序列对所述N路低速信号输入接口输入的N路信号进行分路解密,解密后的N路低速信号输入至所述同步信号合并模块;所述同步信号合并模块用于将解密后的N路低速信号合并成高速信号,所述高速信号经所述高速信号输出接口输出。
70.如权利要求69所述的基于乱码本有限单向变换的传输接出装置,其特征在于,所述初始乱码本接入接口处设有标准解密模块;所述标准解密模块用于对初始乱码本接入接口输入的初始乱码本解密后输入至所述的GLOWT同步分路变换装置。
71.基于乱码本有限单向变换的传输接入设备,其特征在于,包括如权利要求67或68所述的基于乱码本有限单向变换的传输接入装置和如权利要求69或70所述的基于乱码本有限单向变换的传输接出装置。
72.基于乱码本有限单向变换的通信方法,其特征在于,发送方采用如权利要求1至13中任一项所述的乱码本有限单向变换的方法将被传送的数据加密成密文后传送,接收方采用如权利要求1至13中任一项所述的乱码本有限单向变换的方法将接收到的密文进行解密还原成明文。
73.如权利要求72所述的基于乱码本有限单向变换的通信方法,其特征在于,所述的乱码本有限单向变换的方法中所用的初始乱码本由发送方生成,或者由通信双方中固定的一方生成,或者由通信双方共同生成,或者由第三方生成。
74.如权利要求72所述的基于乱码本有限单向变换的通信方法,其特征在于,所述的乱码本有限单向变换的方法中所用的初始乱码本和被传送的数据采用不同的通道进行传输。
75.如权利要求72所述的基于乱码本有限单向变换的通信方法,其特征在于,该方法包括以下步骤:
ST1:接收方载入初始乱码本,并获取GID;
ST2:接收方向发送方发送GID请求数据;
ST3:发送方接收GID;
ST4:发送方检查发送方所保存的初始乱码本是否有效;
ST5:发送方生成初始乱码本,并初始化当前轮次;
ST6:发送方保存初始乱码本和当前轮次;
ST7:发送方将初始乱码本发送至接收方;
ST8:接收方接收并保存初始乱码本;
ST9:发送方根据初始乱码本采用所述的乱码本有限单向变换的方法将待发送的数据加密成密文后发送至接收方,并对保存当前轮次;接收方接收密文后,根据初始乱码本采用所述的乱码本有限单向变换的方法将密文解密成明文;
其中,所述GID为初始乱码本的识别码;所述步骤ST4包括判断发送方所保存的初始乱码本与接收到的GID是否相对应的步骤。
76.如权利要求75所述的基于乱码本有限单向变换的通信方法,其特征在于,所述GID是由整型数表示的序号;所述步骤ST5还包括生成GID的步骤;所述步骤ST6还包括发送方保存GID的步骤;所述步骤ST7还包括发送方将GID发送至接收方的步骤;所述步骤ST8还包括接收方保存GID的步骤;所述步骤ST1中的获取GID为载入GID。
77.如权利要求75所述的基于乱码本有限单向变换的通信方法,其特征在于,所述GID是由初始乱码本经单向散列函数计算后得到的散列值。
78.如权利要求75所述的基于乱码本有限单向变换的通信方法,其特征在于,所述步骤ST4还包括检查当前轮次是否够用的步骤。
79.如权利要求75所述的基于乱码本有限单向变换的通信方法,其特征在于,所述步骤ST4还包括时效性检查的步骤;所述时效性检查为判断初始乱码本是否超过期限。
80.如权利要求72所述的基于乱码本有限单向变换的通信方法,其特征在于,该方法包括以下步骤:
Sk1:发送方获取用户特征信息码;
Sd1:发送方获取初始乱码本;
Sk2:发送方对初始乱码本和用户特征信息码进行线性组合运算得到个性化乱码本;
Sd2:发送方根据个性化乱码本采用所述的乱码本有限单向变换的方法将明文加密成密文;
Sd3:发送方将密文发送至接收方;
Sk3:接收方获取用户特征信息码;
Rv1:接收方获取初始乱码本;
Sk4:发送方对初始乱码本和用户特征信息码进行线性组合运算得到个性化乱码本;
Rv2:接收方接收密文;
Rv3:接收方根据个性化乱码本采用所述的乱码本有限单向变换的方法将密文解密成明文;
其中,所述用户特征信息码是发送方的特征信息码、或者是接收方的特征信息码、或者是由发送方的特征信息码和接收方的特征信息码经线性组合运算得到的结果;所述发送方的特征信息码是用于表征发送方特征的数据;所述接收方的特征信息码是用于表征接收方特征的数据。
81.如权利要求80所述的基于乱码本有限单向变换的通信方法,其特征在于,所述发送方的特征信息码是发送方的公开密钥或发送方的用户头像图片或发送方的用户指纹;所述接收方的特征信息码是接收方的公开密钥或接收方的用户头像图片或接收方的用户指纹。
82.基于乱码本有限单向变换的服务端装置,其特征在于,包括指令接收装置、有效性检查装置、码本初始化装置、参数存储装置、码本发送装置、变换加密装置和密文发送装置;所述指令接收装置用于接收来自客户端的指令和GID;所述有效性检查装置用于检查初始乱码本的有效性,至少包括一致性比较装置;所述一致性比较装置用于判断所保存的初始乱码本与接收到的GID是否相对应;所述码本初始化装置用于生成初始乱码本并初始化当前轮次;所述参数存储装置用于保存初始乱码本和当前轮次;所述码本发送装置用于将初始乱码本发送至客户端;所述变换加密装置用于根据初始乱码本采用如权利要求1-13中任一项所述的乱码本有限单向变换的方法将被传输的数据加密成密文并保存当前轮次至用户数据库;所述密文发送装置用于将密文发送至客户端。
83.如权利要求82所述的基于乱码本有限单向变换的服务端装置,其特征在于,所述有效性检查装置还包括时效性检查装置;所述时效性检查装置用于判断初始乱码本是否超过期限。
84.如权利要求82所述的基于乱码本有限单向变换的服务端装置,其特征在于,所述有效性检查装置还包括轮次检查装置;所述轮次检查装置用于检查初始乱码本的当前轮次是否够用。
85.如权利要求82所述的基于乱码本有限单向变换的服务端装置,其特征在于,所述GID是由整型数表示的序号;所述码本初始化装置还用于生成GID;所述参数存储装置还用于保存GID;所述码本发送装置还用于将GID发送至客户端。
86.如权利要求82所述的基于乱码本有限单向变换的服务端装置,其特征在于,所述GID是由初始乱码本经单向散列函数计算后得到的散列值。
87.基于乱码本有限单向变换的客户端装置,其特征在于,包括码本接收装置、码本存储装置、码本载入装置、指令发送装置、密文接收装置和变换解密装置;所述码本接收装置用于接收服务器生成的初始乱码本;所述码本存储装置用于存储接收到的初始乱码本;所述码本载入装置用于读取存储的初始乱码本并获取GID;所述指令发送装置用于向服务器发送指令和GID;所述密文接收装置用于接收服务器发送的密文;所述变换解密装置用于根据初始乱码本采用如权利要求1-13中任一项所述的乱码本有限单向变换的方法将将接收到的密文解密成明文。
88.基于乱码本有限单向变换的客户端和服务端系统,其特征在于,该系统包括如权利要求82至86中任一项所述的基于乱码本有限单向变换的服务端装置和如权利要求87所述的基于乱码本有限单向变换的客户端装置。
89.一种机器可读介质,该可读介质上存储有程序指令集,其特征在于,当所述程序指令集被机器执行时,该机器可执行如权利要求1至13中任一项所述的乱码本有限单向变换的方法或可执行如权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法。
90.一种机器可读介质,该可读介质上存储有密文,其特征在于,所述密文经由如权利要求1至13中任一项所述的乱码本有限单向变换的方法加密得到或由如权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法存储得到。
91.如权利要求90所述的机器可读介质,其特征在于,该机器可读介质内设置有标识区;标识区存储有加密识别码;当所述加密识别码为特定标识时,所述密文经由如权利要求1至13中任一项所述的乱码本有限单向变换的方法加密得到或由如权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法存储得到。
92.如权利要求91所述的机器可读介质,其特征在于,所述标识区还存储有GLOWT参数;所述密文根据所述GLOWT参数经由如权利要求1至13中任一项所述的乱码本有限单向变换的方法加密得到或根据所述GLOWT参数经由如权利要求36至40中任一项所述的基于乱码本有限单向变换的数据加密存储的方法存储得到。
93.如权利要求90所述的机器可读介质,其特征在于,该机器可读介质为环形碟片;数据存储在该环形碟片的多个同心环结构内;每个同心环结构分成码本区和密文区;所述码本区用于存储初始乱码本;所述密文区用于存储密文。
94.一种硬盘,其特征在于,该硬盘的磁盘碟片为如权利要求93所述的机器可读介质。
CN201510051186.8A 2015-01-30 2015-01-30 乱码本有限单向变换及其加解密应用的方法、装置和电路 Active CN104579646B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201510051186.8A CN104579646B (zh) 2015-01-30 2015-01-30 乱码本有限单向变换及其加解密应用的方法、装置和电路
PCT/CN2016/071558 WO2016119625A1 (zh) 2015-01-30 2016-01-21 乱码本有限单向变换及其加解密应用的方法、装置和电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510051186.8A CN104579646B (zh) 2015-01-30 2015-01-30 乱码本有限单向变换及其加解密应用的方法、装置和电路

Publications (2)

Publication Number Publication Date
CN104579646A true CN104579646A (zh) 2015-04-29
CN104579646B CN104579646B (zh) 2015-12-30

Family

ID=53094933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510051186.8A Active CN104579646B (zh) 2015-01-30 2015-01-30 乱码本有限单向变换及其加解密应用的方法、装置和电路

Country Status (2)

Country Link
CN (1) CN104579646B (zh)
WO (1) WO2016119625A1 (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016119625A1 (zh) * 2015-01-30 2016-08-04 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用的方法、装置和电路
CN106027553A (zh) * 2016-07-02 2016-10-12 刘兴丹 一种基于动态密码的加密、解密方法
CN106100826A (zh) * 2016-06-08 2016-11-09 大唐微电子技术有限公司 一种数据变换方法和装置
WO2017067038A1 (zh) * 2015-10-20 2017-04-27 中国科学院微电子研究所 半导体存储器操作方法
CN108234121A (zh) * 2018-04-04 2018-06-29 南京信安融慧网络技术有限公司 一种用于号码的无密钥加密、解密的方法
CN109067517A (zh) * 2018-06-22 2018-12-21 成都卫士通信息产业股份有限公司 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
CN109391465A (zh) * 2017-08-04 2019-02-26 财团法人资讯工业策进会 传输装置及其传输数据保护方法
CN109861944A (zh) * 2017-11-22 2019-06-07 浙江智贝信息科技有限公司 一种分布式信息安全处理及交互方法及其交互系统
CN112153752A (zh) * 2020-09-29 2020-12-29 王喻 一种基于5g固定群组的上下行解耦的随机接入方法
CN112286928A (zh) * 2019-09-16 2021-01-29 重庆傲雄在线信息技术有限公司 一种链式存储系统
CN114297679A (zh) * 2021-12-27 2022-04-08 武汉思普崚技术有限公司 一种镜像加密传输与升级的方法
CN117596073A (zh) * 2023-12-24 2024-02-23 中国人民解放军61660部队 一种带有噪音数据保护的信息跨域传递方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113382013B (zh) * 2021-06-21 2022-12-09 国网宁夏电力有限公司电力科学研究院 一种基于能源大数据的数据挖掘系统
CN114210280A (zh) * 2021-12-16 2022-03-22 南京名捷环保科技有限公司 一种厨余垃圾的处理系统和方法
CN114499978B (zh) * 2021-12-28 2023-07-21 安徽航天信息科技有限公司 一种基于密码学替换交换实现的加解密方法、装置及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001016196A (ja) * 1999-04-28 2001-01-19 Fuji Soft Abc Inc 多重アファイン鍵を用いる暗号化・復号化方法、認証方法、及びこれを用いる各装置
JP5032955B2 (ja) * 2007-11-27 2012-09-26 日本電信電話株式会社 暗号通信方法、暗号化装置、復号装置、及びそれらのプログラム
EP2197144A1 (en) * 2008-12-15 2010-06-16 Thomson Licensing Methods and devices for a chained encryption mode
CN102025484B (zh) * 2010-12-17 2012-07-04 北京航空航天大学 一种分组密码加解密方法
TWI480735B (zh) * 2012-02-14 2015-04-11 Nuvoton Technology Corp 具有防複製功能的微處理器晶片及其晶片燒錄系統與電子裝置
CN104579646B (zh) * 2015-01-30 2015-12-30 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用的方法、装置和电路

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016119625A1 (zh) * 2015-01-30 2016-08-04 南京法威克信息科技有限公司 乱码本有限单向变换及其加解密应用的方法、装置和电路
WO2017067038A1 (zh) * 2015-10-20 2017-04-27 中国科学院微电子研究所 半导体存储器操作方法
CN106100826A (zh) * 2016-06-08 2016-11-09 大唐微电子技术有限公司 一种数据变换方法和装置
CN106100826B (zh) * 2016-06-08 2019-06-07 大唐微电子技术有限公司 一种数据变换方法和装置
CN106027553A (zh) * 2016-07-02 2016-10-12 刘兴丹 一种基于动态密码的加密、解密方法
CN106027553B (zh) * 2016-07-02 2019-05-03 深圳市前海吉顺信科技发展有限公司 一种基于动态密码的加密、解密方法
CN109391465B (zh) * 2017-08-04 2022-01-21 财团法人资讯工业策进会 传输装置及其传输数据保护方法
CN109391465A (zh) * 2017-08-04 2019-02-26 财团法人资讯工业策进会 传输装置及其传输数据保护方法
CN109861944A (zh) * 2017-11-22 2019-06-07 浙江智贝信息科技有限公司 一种分布式信息安全处理及交互方法及其交互系统
CN108234121A (zh) * 2018-04-04 2018-06-29 南京信安融慧网络技术有限公司 一种用于号码的无密钥加密、解密的方法
CN109067517B (zh) * 2018-06-22 2021-07-09 成都卫士通信息产业股份有限公司 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
CN109067517A (zh) * 2018-06-22 2018-12-21 成都卫士通信息产业股份有限公司 加密、解密装置、加密、解密方法和隐藏密钥的通信方法
CN112286928A (zh) * 2019-09-16 2021-01-29 重庆傲雄在线信息技术有限公司 一种链式存储系统
CN112286928B (zh) * 2019-09-16 2023-11-28 重庆傲雄在线信息技术有限公司 一种链式存储系统
CN112153752A (zh) * 2020-09-29 2020-12-29 王喻 一种基于5g固定群组的上下行解耦的随机接入方法
CN114297679A (zh) * 2021-12-27 2022-04-08 武汉思普崚技术有限公司 一种镜像加密传输与升级的方法
CN114297679B (zh) * 2021-12-27 2023-03-24 武汉思普崚技术有限公司 一种镜像加密传输与升级的方法
CN117596073A (zh) * 2023-12-24 2024-02-23 中国人民解放军61660部队 一种带有噪音数据保护的信息跨域传递方法

Also Published As

Publication number Publication date
WO2016119625A1 (zh) 2016-08-04
CN104579646B (zh) 2015-12-30

Similar Documents

Publication Publication Date Title
CN104579646B (zh) 乱码本有限单向变换及其加解密应用的方法、装置和电路
JP3229148B2 (ja) 暗号化方法およびシステム
US8401186B2 (en) Cloud storage data access method, apparatus and system based on OTP
US7200226B2 (en) Cipher block chaining decryption
CN1959770B (zh) 加密方法、密文解码方法、加密器、密文解码器和通信系统
US20120269340A1 (en) Hierarchical encryption/decryption device and method thereof
US20120134491A1 (en) Cloud Storage Data Encryption Method, Apparatus and System
CN109840425B (zh) 一种文件加密的方法和装置
CN101447870B (zh) 一种基于分布式口令技术的私钥安全存储方法
CN107135062A (zh) 一种改进的大文件的加密方法
CN102611549B (zh) 数据加密设备和存储卡
CN100568320C (zh) 发送/接收系统和方法、发送/接收装置和方法
CN106685980A (zh) 一种大文件的加密方法
CN108667595A (zh) 一种大数据文件的压缩加密方法
CN101986663A (zh) 一种基于otp的云存储数据存储方法、装置及系统
EP4273843A1 (en) Data sharing system, data sharing method, and data sharing program
CN109635586A (zh) 媒体文件加密密钥管理方法、系统、设备及存储介质
CN105071927A (zh) 一种移动设备数据本地存储方法
CN107070649A (zh) 一种减少写入的大文件选择性加密方法
CN109842589A (zh) 一种云存储加密方法、装置、设备及存储介质
CN107222759A (zh) 媒体文件加解密的方法、系统、设备和介质
CN106936820A (zh) 数据变长修改方法及其在大数据加密中的应用
CN113312608A (zh) 一种基于时间戳的电力计量终端身份认证方法及系统
KR101899130B1 (ko) 데이터의 암호화, 복호화 방법 및 이를 이용하는 장치
WO2014197071A1 (en) Secured embedded data encryption systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant