CN109981249A - 基于拉链式动态散列和nlfsr的加密解密方法及装置 - Google Patents
基于拉链式动态散列和nlfsr的加密解密方法及装置 Download PDFInfo
- Publication number
- CN109981249A CN109981249A CN201910121128.6A CN201910121128A CN109981249A CN 109981249 A CN109981249 A CN 109981249A CN 201910121128 A CN201910121128 A CN 201910121128A CN 109981249 A CN109981249 A CN 109981249A
- Authority
- CN
- China
- Prior art keywords
- sequence
- plaintext
- key
- key stream
- pseudo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Nonlinear Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
一种基于拉链式动态散列和NLFSR的加密解密方法,加密过程包括以下步骤:利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;按照密钥流序列将伪明文序列划分为多路伪明文子序列;按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。本申请的有益效果为:密钥流生成器中除了使用非线性反馈移位寄存器,还引入位变换布尔函数,从而得到周期更长随机性更好的密钥流;通过明文的位变换规则和拉链式动态散列映射规则,提高了密文流序列的破译难度。
Description
技术领域
本申请涉及信息安全领域,尤其涉及一种基于拉链式动态散列和NLFSR(Nonlinear Feedback Shift Register,非线性反馈移位寄存器)的加密解密方法及装置。本申请一般可以用于网络通信信息加密、航天数字遥控指令与数据加密、无人机数字遥控通信数据加密、预警机数字通信指挥系统信息加密、GPS卫星数字通信数据加密、移动通信加密、大数据加密、图形影像加密和电子邮件加密等。加密后,军事、政治和外交文件可利用民用通信网络传输,以节省文件传送成本。
背景技术
流密码(stream cipher)通常是一种对称密钥技术。因为其实施简单、加密速度快,密文传输中的错误不会在明文中产生扩散等好处,所以它成为一类重要的密码体制。流密码是世界军事、外交等领域应用的主流密码体制。密钥流生成器的设计是流密码安全的关键,目前,比较著名的流密码算法如:欧洲数字蜂窝移动电话系统GSM中采用的A5算法和美国RSA数据安全公司开发的RC4算法。由于流密码具有许多其他密码不可比拟的优点,所以,它仍然是当今最为通用的密码体系之一。
流密码的密钥流生成器的设计是流密码技术的关键,其本质是通过给定算法产生由0、1数据流构成的密钥流,通常以能够产生伪随机序列的数学模型为基础,如:代数运算、线性反馈移位寄存器(LFSR,Linear Feedback Shift Register)、钟控序列、组合网络序列、元胞自动机和混沌理论等。发送者将明文序列用密钥流加密生成密文并发送给接收者;接收者用相同的密钥流对密文解密恢复出明文序列。目前,很多学者已经掌握了攻击和破译上述加密方法的手段。例如,Courtois和Meier在2003年的欧洲密码学年会上提出将代数攻击应用于基于线性反馈移位寄存器的流密码算法。“代数攻击”作为流密码领域研究的新热点,从新的角度来分析密码体制的安全性,将其转化到求解超定的多元方程组的问题上。这对传统的流密码体系的设计产生了巨大的冲击。
为了抵抗相关攻击和代数攻击,采用线性反馈移位寄存器的流密码算法需要使用较为复杂的前馈函数,而非线性反馈移位寄存器作为一种安全性较高的伪随机序列生成器能够有效抵抗相关攻击和代数攻击。2004年以后,基于非线性移位寄存器技术设计的密钥流生成器开始兴起。例如,eSTREAM项目最终推荐的算法Grain、Trivium和MICKEY等都采用非线性反馈移位寄存器作为密钥流生成器。
由于常规流密码技术的关键是构造各种各样的密钥流生成器,从而产生(伪)随机序列作为密钥流序列,因此对流密码的攻击也都集中在对密钥流生成器的攻击上。然而,常规的流密码加解密方法是基于二进制位异或运算的。换言之,加密时,明文序列与密钥流序列间的位异或运算随机地将明文序列中的1变成0、将0变成1,从而产生密文流序列;解密时,密文流序列与密钥流序列间相应位的位异或运算生成明文序列。因此,这种机制的一个缺陷是流密码的安全强度完全取决于密钥流序列的安全强度,然而目前已经出现了诸多对密钥流生成器的攻击技术。这种机制的另一个缺陷是加密解密方法单一,这就导致对于较短的密钥流序列,单纯依靠异或运算不能得到随机性和码分布均匀性较好的密文。
发明内容
本申请的目的是解决现有技术的不足,提供一种基于拉链式动态散列和非线性反馈移位寄存器的加密解密方法及相应的加密解密装置,使得密文具有很强的随机性和不可预测性,从而获得提高破译密文难度的技术效果。
为了实现上述目的,本申请采用以下的技术方案。
首先,本申请提出一种基于拉链式动态散列和NLFSR的加密解密方法。该方法可以包括以下步骤:
S100)利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;
S200)按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;
S300)按照密钥流序列将伪明文序列划分为多路伪明文子序列;
S400)按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。
因为密钥流生成器是基于非线性反馈移位寄存器和位变换规则构造,而非线性反馈移位寄存器作为一种安全性较高的伪随机序列生成器能够有效抵抗相关攻击和代数攻击;所以上述加密方法能有效提高破译密文的难度。
进一步地,在本申请的上述方法中,还包括以下用于解密的步骤:
S500)获取密文流序列,并利用相同的所述非线性反馈函数和所述位变换布尔函数预处理预先约定的种子密钥,以形成密钥流序列;
S600)按照依赖于密钥流序列的逆散列映射规则,计算每个密文序列的二进制位所对应散列地址,并将密文序列散列映射到明文存储空间中,以形成多路伪明文子序列;
S700)合并多路伪明文子序列,以形成伪明文序列;
S800)按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。
进一步地,在本申请的上述方法中,所述步骤S100还包括以下子步骤:
S101)输入种子密钥到非线性反馈函数以生成第一输出序列;
S102)循环第一输出序列以填充形成为密钥流序列空间的第二输出序列;
S103)输入第二输出序列到位变换布尔函数以形成密钥流序列。
再进一步地,在本申请的上述方法中,在所述步骤S102中,循环填充的起始位置是第一输出序列中的任意合法位置。
进一步地,在本申请的上述方法中,所述步骤S300还包括以下的子步骤:
S301)将伪明文序列按照密钥流序列的真值位和假值位分解为多路伪明文子序列;
S302)分别双向循环扫描所述多路伪明文子序列和密钥流序列,以将多路伪明文子序列拉链式动态散列到密文空间。
可替代地,在本申请的上述方法中,所述明文序列、所述密钥流序列和所述密文流序列都采用循环队列的数据结构,并且加密解密是从相应循环队列中的任意合法位置开始。
进一步地,在本申请的上述方法中,所述位变换布尔函数是根据密钥流序列的特定位按位取反函数。
可替代地,在本申请的上述方法中,所述非线性反馈函数是代数阶数为4以上的反馈函数。
其次,本申请还提出一种基于拉链式动态散列和NLFSR的加密解密装置。该装置可以包括以下模块:第一密钥流生成模块,用于利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;伪明文生成模块,用于按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;伪明文划分模块,用于按照密钥流序列将伪明文序列划分为多路伪明文子序列;第一动态散列模块,用于按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。
进一步地,在本申请的上述装置中,还包括以下用于解密的模块:第二密钥流生成模块获取密文流序列,并利用相同的所述非线性反馈函数和所述位变换布尔函数预处理预先约定的种子密钥,以形成密钥流序列;第二动态散列模块,用于按照依赖于密钥流序列的逆散列映射规则,计算每个密文序列的二进制位所对应散列地址,并将密文序列散列映射到明文存储空间中,以形成多路伪明文子序列;伪明文合并模块,用于合并多路伪明文子序列,以形成伪明文序列;伪明文还原模块,用于按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。
进一步地,在本申请的上述装置中,所述密钥流生成模块还包括以下子模块:第一输出模块,用于输入种子密钥到非线性反馈函数以生成第一输出序列;第二输出模块,用于循环第一输出序列以填充形成为密钥流序列空间的第二输出序列;变位模块,用于输入第二输出序列到位变换布尔函数以形成密钥流序列。
再进一步地,在本申请的上述装置中,在所述第二输出模块中,循环填充的起始位置是第一输出序列中的任意合法位置。
进一步地,在本申请的上述装置中,所述第一动态散列模块还包括以下的子模块:分解模块,用于将伪明文序列按照密钥流序列的真值位和假值位分解为多路伪明文子序列;散列模块,用于分别双向循环扫描所述多路伪明文子序列和密钥流序列,以将多路伪明文子序列拉链式动态散列到密文空间。
可替代地,在本申请的上述装置中,所述明文序列、所述密钥流序列和所述密文流序列都采用循环队列的数据结构,并且加密解密是从相应循环队列中的任意合法位置开始。
进一步地,在本申请的上述装置中,所述位变换布尔函数是根据密钥流序列的特定位按位取反函数。
可替代地,在本申请的上述装置中,所述非线性反馈函数是代数阶数为4以上的反馈函数。
最后,本申请还提出一种计算机可读存储介质,其上存储有计算机指令。上述指令被处理器执行时,执行如下步骤:
S100)利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;
S200)按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;
S300)按照密钥流序列将伪明文序列划分为多路伪明文子序列;
S400)按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。因为密钥流生成器是基于非线性反馈移位寄存器和位变换规则构造,而非线性反馈移位寄存器作为一种安全性较高的伪随机序列生成器能够有效抵抗相关攻击和代数攻击;所以上述加密方法能有效提高破译密文的难度。
进一步地,在本申请的上述指令被处理器执行的过程中,还包括以下用于解密的步骤:
S500)获取密文流序列,并利用相同的所述非线性反馈函数和所述位变换布尔函数预处理预先约定的种子密钥,以形成密钥流序列;
S600)按照依赖于密钥流序列的逆散列映射规则,计算每个密文序列的二进制位所对应散列地址,并将密文序列散列映射到明文存储空间中,以形成多路伪明文子序列;
S700)合并多路伪明文子序列,以形成伪明文序列;
S800)按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。
进一步地,在本申请的上述指令被处理器执行的过程中,所述步骤S100还包括以下子步骤:
S101)输入种子密钥到非线性反馈函数以生成第一输出序列;
S102)循环第一输出序列以填充形成为密钥流序列空间的第二输出序列;
S103)输入第二输出序列到位变换布尔函数以形成密钥流序列。
再进一步地,在本申请的上述指令被处理器执行的过程中,在所述步骤S102中,循环填充的起始位置是第一输出序列中的任意合法位置。
进一步地,在本申请的上述指令被处理器执行的过程中,所述步骤S300还包括以下的子步骤:
S301)将伪明文序列按照密钥流序列分解为多路伪明文子序列;
S302)分别双向循环扫描所述多路伪明文子序列和密钥流序列,以将多路伪明文子序列拉链式动态散列到密文空间。
可替代地,在本申请的上述指令被处理器执行的过程中,所述明文序列、所述密钥流序列和所述密文流序列都采用循环队列的数据结构,并且加密解密是从相应循环队列中的任意合法位置开始。
进一步地,在本申请的上述指令被处理器执行的过程中,所述位变换布尔函数是根据密钥流序列的特定位按位取反函数。
可替代地,在本申请的上述指令被处理器执行的过程中,所述非线性反馈函数是代数阶数为4以上的反馈函数。
本申请所公开的各技术方案与传统流密码加解密技术的主要不同点在于其不依赖于明文与密钥的异或运算,而是明文在二进制位上的一种依赖于密钥流的拉链式动态散列与位变换规则。这就克服了传统的流密码加解密方法单一,且流密码体制的安全强度完全取决于密钥流的安全性的缺陷。现有的对流密码的攻击技术将不再适用于本申请所公开的各个技术方案。因此,本申请的有益效果为:通过在密钥流生成器中引入位变换规则来改变非线性反馈移位寄存器的输出序列位值的方法,而得到周期更长且随机性更好的密钥流,使得密文的均匀度高于传统的流密码方法加密的密码均匀度,从而获得了提高密文流序列的破译难度的技术效果。
进一步地,本申请所公开的各个技术方案还具有以下特点:
1.加密和解密过程可以方便地编码实现,且相关算法的时间和空间复杂度不高于传统方法;
2.所生成的密文流序列具有很强的随机性和不可预测性,破译极难;
3.本加密方法中明文流序列与密文流序列间不是传统的一对一、一对多的关系,而是无序加密,即明文流序列与密文流序列间的关系是最复杂的多对多的关系;
4.密文流序列的均匀度高于传统的流密码方法加密后的密文流序列均匀度;
5.各个加密解密技术方案分别遵循了Shannon提出的一次一密的密码体制;
6.加密后的密文流序列可在现有的、公开的通信信道进行传输;
7.相应的保密系统可采用明文加密、发送、解密三分离原则,使通信过程更加安全。
附图说明
图1所示为本申请所公开的、基于拉链式动态散列和NLFSR的加密的方法流程图;
图2所示为实现图1所示方法的通信过程示意图;
图3所示为在本申请的一个实施例中,形成密钥流序列的子方法流程图;
图4所示为图3所示的密钥流序列形成过程的示意图;
图5所示为本申请的一个实施例中,非线性反馈寄存函数的逻辑结构图;
图6所示为生成的密钥流序列示意图;
图7所示为明文流序列的位变换过程示意图;
图8所示为在本申请的一个实施例中,形成密文流序列的子方法流程图;
图9所示为多路伪明文子序列拉链式动态散列到密文空间的示意图;
图10所示为明文流序列的拉链式动态散列示意图;
图11所示为密文流序列的解密方法流程图;
图12所示为密文流序列逆向散列为两路以存入明文空间的示意图;
图13所示为伪明文序列的位变换过程示意图;
图14所示为本申请所公开的、基于拉链式动态散列和NLFSR的加密解密的模块结构图。
具体实施方式
以下将结合实施例和附图对本申请的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本申请的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本申请中所使用的上、下、左、右等描述仅仅是相对于附图中本申请各组成部分的相互位置关系来说的。在本申请和所附权利要求书中所使用的单数形式的“一种”、“该”和“所述”也旨在包括多数形式,除非上下文清楚地表示其他含义。
此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本申请中可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本申请范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
此外,为方便讨论,本申请所提及加密解密方法及装置涉及到五元组(M,C,K,E,D)。在该五元组中,M为明文码元集合,C为密码码元集合,K为参照字节码元集合(也可称为密钥集合),E为加密算法集合,D为解密算法集合。这些集合具有如下特性:
1.M={M0,M1,…,Mlen(M)-1}={m0,m1,…,m8len(M)-2,m8×len(M)-1}。其中,len(M)为明文序列的字节数。8×len(M)为明文序列的二进制位数。Mi(i∈[0,len(M)-1])为明文序列的一个字节(byte)。mj∈{0,1},j∈[0,8×len(M)-1]为明文序列的一个二进制位(bit)。
2.K={K0,K1,…,Klen(K)-1}={key0,key1,…,key8len(K)-2,key8×len(K)-1}。其中,len(K)为密钥流序列的字节数。8×len(K)为密钥流序列的二进制位数。Ki(i∈[0,len(K)-1])为密钥流序列的一个字节(byte)。keyj∈{0,1},j∈[0,8×len(K)-1]为密钥流序列的一个二进制位(bit)。
3.C={C0,C1,…,Clen(C)-1}={c0,c1,…,c8len(C)-2,c8×len(C)-1}。其中,len(C)为密文流序列的字节数。len(C)=len(M),即明文序列的长度与密文流序列的长度相等。8×len(C)为密文流序列的二进制位数。Ci(i∈[0,len(C)-1])为密文流序列的一个字节(byte);cj∈{0,1},j∈[0,8×len(C)-1]为密文流序列的一个二进制位(bit)。
4.M,K和C集合内的信息是由二进制码元{0,1}组成的字节符集。其中,码元{1}在各集合中的数量分别记作sum(M),sum(K)和sum(C),且其中sum(M)未必等于sum(C)。
5.加密算法集合E的元素为用于加密运算的拉链式散列与位变换规则集合。
6.解密算法集合D的元素为用于解密运算的拉链式散列与位变换规则集合,其中集合E中的规则应在集合D中存在唯一的规则与之对应,并且加密规则与解密规则是互逆的。
传统流密码方法的一个明显缺陷是加解密方法单一,流密码体制的安全强度完全取决于密钥流的安全性,现在已经出现了诸多对密钥流生成器的攻击技术。另一个缺陷是对于较短的密钥流,单纯依靠异或运算并不能得到随机性和码分布均匀性较好的密文。
本方法与传统流密码加解密技术的不同点在于不依赖于明文与密钥的异或运算,而是明文在二进制位上的一种依赖于密钥流的“拉链式”散列与位变换规则,这就克服了传统的流密码加解密方法单一,且流密码体制的安全强度完全取决于密钥流的安全性的缺陷,现有的对流密码的攻击技术将不适用于本方法。另外,位变换布尔函数结合非线性反馈函数能够提高密钥流的周期与随机性。具体地,参照图1所示的方法流程图及图2所示的应用场景示意图,本申请所公开的基于拉链式动态散列和NLFSR的加密解密方法包括以下步骤:
S100)利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;
S200)按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;
S300)按照密钥流序列将伪明文序列划分为多路伪明文子序列;
S400)按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。
上述加密方法主要基于以下原理:
1、密钥流生成器基于非线性反馈移位寄存器和位变换布尔函数构造,其中非线性反馈移位寄存器作为一种安全性较高的伪随机序列生成器能够有效抵抗相关攻击和代数攻击,位变换布尔函数的引入用于改变密钥流的位值,从而得到周期更长随机性更好的密钥;另外,非线性反馈移位寄存器的复杂性较高,目前为止还没有普遍适用的针对它的代数攻击手段。
2、非线性反馈移位寄存器的输出序列是周期性的,对于长度为n的种子密钥,输出序列的周期最长能达到2n-1,我们引入位变换布尔函数改变密钥流的位值,从而得到周期更长随机性更好的密钥流,因此,本方法并不要求设计最优的非线性反馈移位寄存器,而达到较好的平均性能。
3、按照依赖于密钥流的位运算规则改变明文的位值;在已经得到的经过位变换的明文流的基础上,按照依赖于密钥流的拉链式散列映射规则,将其映射在密文空间中从而得到密文;拉链式动态散列采用n路归并的思想,随机归并满足条件的二进制位,从而扰乱经过位变换后的明文流的二进制码的排列顺序,散列映射规则的设计方法灵活多样,不同于以往流密码方法基于单一的异或运算。
4、使用本项技术得到的密文与明文之间没有特定的对应关系。明文字符与密文字符间存在最复杂的网状关系(多对多的关系),这将有效地提高破译密文的难度。本加密方法打破了传统加密方法中明文与密文存在一对一,一对多的对照关系,而是无序加密。
5、本方法还可以采用多密钥加密,初始密文作为参数进行多次加密得到最终的密文,进一步提高信息的安全性,以更好的满足日益高涨的信息加密需求。另外密钥可放在不同人手中,保证明文更加的安全。
因此,正如前面所讨论,本方法中不存在明文集合M和密文集合C之间的字节上的对应关系。要想破解使用本方法加密的文件,必须满足的四个充分必要条件是:
(1)已知由非线性反馈移位寄存器和位变换布尔函数产生的密钥;
(2)已知用于解密的位变换规则;
(3)已知用于解密的拉链式动态散列规则;
(4)已知密文文件。
而同时获得上述四个条件是很难的,实验结果证明我们的方法简单易行且具有很高的安全性。
参照图2所示的意图,首先,种子密钥经过由非线性反馈移位寄存器和位变换布尔函数预处理后得到的输出序列作为密钥流。然后,按照依赖于密钥流序列的位变换规则改变明文的位值。在已经得到的经过位变换的明文流的基础上,按照依赖于密钥流的拉链式散列映射规则,计算每个明文二进制位的散列地址,将其按照散列地址映射到密文空间中,从而得到密文流序列。还可以尝试以初始密文流序列C为参数进行多次分组散列,得到多次加密后的密文流序列Cn,进一步提高信息的随机性和不可预测性。应用本加解密系统若仅依靠散列规则加密,在传输特殊信号,如:全0值或全1值时容易被破译,对明文序列的位变换规则的引入可以避免这种情况的发生。使用该方法,不但能得到离散分布的密文流序列,而且散列函数和位变换布尔函数的使用使得密文流序列的码均匀度远远高于明文序列的码均匀度。
在本申请的上述一个或多个实施例中,参照图3所示的子方法流程图,所述步骤S100还包括以下子步骤:
S101)输入种子密钥到非线性反馈函数以生成第一输出序列;
S102)循环第一输出序列以填充形成为密钥流序列空间的第二输出序列;
S103)输入第二输出序列到位变换布尔函数以形成密钥流序列。
虽然非线性反馈移位寄存器(NLFSR)与线性反馈移位寄存器(LFSR)都是基于门电路的(从代数表达式角度来看,异或门表示为二进制加法,而与门表示为二进制乘法);但是,NLFSR与LFSR的差别在于NLFSR的反馈逻辑是由异或门和与门构成的,而LFSR的反馈逻辑仅由异或门构成。这就导致非线性反馈移位寄存器的复杂性更高,到目前还没有针对非线性反馈移位寄存器的普遍适用的代数攻击手段。此外,非线性反馈移位寄存器的输出序列是周期性的,对于长度为n的种子密钥,输出序列的周期最长能达到2n-1。上述方法通过引入位变换布尔函数改变密钥流的位值,从而得到周期更长随机性更好的密钥流。因此,上述方法并不需要设计最优的非线性反馈移位寄存器,而达到较好的平均性能。
具体地,参照图4所示的示意图,假设文件均采用扩展的ASCII码(IBM扩展字符集)作为编码方式,种子密钥Seed_Key={1000}2经过非线性反馈函数F1(x0,x1,x2,x3)生成第一输出序列S,第一输出序列S循环填充到密钥流流序列得到第二输出序列S’,第二输出序列S’经位变换布尔函数F2(j)处理后(该位变换布尔函数所对应的4阶非线性反馈寄存器如图5所示,其中表示异或运算,而“·”表示乘法运算种子),得到密钥流序列K。对明文序列M参照密钥流序列K进行位变换得到M’,再对变换后的明文序列M’按照密钥流序列K进行拉链式动态散列,最终求得密文流序列C。
Seed_Key={1000}2
F2(j)=((C1+X1×j)MOD Y1==Z1||(C2+X2×j)MOD Y2==Z2)
S={101111010011000}
S’="╜1zb"={0XBD,0X31,0X7A,0X62}16={10111101,00110001,01111010,01100010}2。
K="4╗÷Ω"={0X34,0XBB,0XF6,0XEA}16={00110100,10111011,11110110,11101010}2。
M="aaaa"={0X61,0X61,0X61,0X61}16={01100001,01100001,01100001,01100001}2。
参照图6所示的密钥流序列示意图、图7所示为明文流序列的位变换过程示意图以及图8所示的形成密文流序列的子方法流程图,种子密钥经F1函数处理后得到第一输出序列S。S={101111010011000}2是非线性反馈函数F1的第一输出序列,其周期长度为24-1=15。S’="╜1zb"是第一输出序列S循环填充到密钥流序列空间的中间结果,即第二输出序列S’,S’的扩展ASCII码(十六进制)为{0XBD,0X31,0X7A,0X62}16,将其转换为二进制得到{10111101,00110001,01111010,01100010}2。循环填充的起始位置可以选择第一输出序列S中的任意合法位置,在本例中循环填充的起始位置设为第一输出序列S的第一项。F2(j)是布尔函数,本例中F2(j)=((C1+X1×j)MOD Y1==Z1||(C2+X2×j)MOD Y2==Z2),其中“MOD”表示求余运算,“==”表示判断相等运算,“||”表示逻辑或运算。j称为“位序”,是密钥流二进制位的编号,在本例中从0开始。C1、X1、Y1、Z1、C2、X2、Y2、Z2为事先确定的整数,在本例中的取值为0,1,4,0,0,1,7,0。K="4╗÷Ω"表示密钥流序列,是第二输出序列S’经F2函数处理后得到输出序列。其扩展ASCII码(十六进制)为{0X34,0XBB,0XF6,0XEA}16,将其转换为二进制得到{00110100,10111011,11110110,11101010}2,如图6所示。M="aaaa"表示明文序列,为加密输入序列。{0X61,0X61,0X61,0X61}16是明文序列“aaaa”的扩展ASCII码(十六进制),将其转换为二进制得到{01100001,01100001,01100001,01100001}2,如图7所示。表示明文的部分二进制位根据密钥流序列的特定位(“假”值二进制位)按位取反后产生的伪明文序列。{0XAA,0X25,0X68,0X74}16是伪明文序列M’的扩展ASCII码(十六进制),将其转换为二进制得到{10101010,00100101,01101000,01110100}2,如图7所示。表示密文流序列,为加密输出序列。{0X94,0XD0,0XDB,0X0C}16是密文流序列的扩展ASCII码(十六进制),将其转换为二进制得到{10010100,11010000,11011011,00001100}2,如图10所示。
明文序列、密钥流序列和密文流序列均采用形如循环队列的逻辑结构,可在队列任意位置开始计算,现工作指针p1、p2指向明文二进制位M[0]、M[31],q1、q2指向密钥二进制位K[0]、K[31],road指向密文二进制位C[0]。本例中对明文应用的位变换规则为:根据密钥K的特定位按位取反,在本例中为“假”值二进制位。图7显示了按照密钥K的“假”位,对明文M的对应位取反得到伪明文序列M’。
拉链式散列采用n路归并的思想。随机归并满足条件的二进制位,从而扰乱伪明文序列的二进制码的排列顺序。为方便讨论和展示,在本例中n=2,将伪明文序列M’按照密钥流序列K分为二路,同时双向循环扫描伪明文序列M’、密钥流序列K’,设置工作指针p1、p2,其初始值可以取循环队列的任意合法位置,指针p1寻找密钥流序列中的“真”值位,由M’[p1]构成road1;指针p2寻找密钥流序列中的“假”值位,由M’[p2]构成road2,如图9所示。密文空间C即为图9所示的road。将图7中road1和road2的二进制码按照拉链式动态散列方式映射到密文空间C,最终得到的密文流序列如图10所示。
解密为加密过程的逆运算,通过扫描密钥流序列和密文流序列,计算每个密文流序列的二进制位所对应散列地址,并将密文流序列散列映射到明文存储空间中,以形成多路伪明文子序列;合并多路伪明文子序列,以形成伪明文序列;按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。参照图11所示的方法流程图,在本申请的上述一个或多个实施例中,还包括以下用于解密的步骤:
S500)获取密文流序列,并利用相同的所述非线性反馈函数和所述位变换布尔函数预处理预先约定的种子密钥,以形成密钥流序列;
S600)按照依赖于密钥流序列的逆散列映射规则,计算每个密文序列的二进制位所对应散列地址,并将密文序列散列映射到明文存储空间中,以形成多路伪明文子序列;
S700)合并多路伪明文子序列,以形成伪明文序列;
S800)按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。
具体地,参照图12和图13所示的示意图,种子密钥Seed_Key,非线性反馈函数F1(x0,x1,x2,x3),位变换布尔函数F2(j),以及各项初始值与加密时相同,得到的密钥流也相同,如图6所示。K="4╗÷Ω"表示密钥流,是序列S’经F2函数处理后得到输出序列。其扩展ASCII码(十六进制)为{0X34,0XBB,0XF6,0XEA}16,将其转换为二进制得到{00110100,10111011,11110110,11101010}2,如图12所示。表示密文,为解密输入序列。{0X94,0XD0,0XDB,0X0C}16是将密文的扩展ASCII码(十六进制),将其转换为二进制得到{10010100,11010000,11011011,00001100}2,如图12所示。是密文C按照位置换规则得到的伪明文序列。{0XAA,0X25,0X68,0X74}16是M’的扩展ASCII码(十六进制),将其转换为二进制得到{10101010,00100101,01101000,01110100}2。M="aaaa"表示明文序列,为解密输出序列。{0X61,0X61,0X61,0X61}16是明文“aaaa”的扩展ASCII码(十六进制),将其转换为二进制得到{01100001,01100001,01100001,01100001}2。明文序列、密钥流序列和密文流序列均采用形如循环队列的逻辑结构,可在队列任意位置开始计算,现工作指针p1、p2指向明文序列二进制位M[0]、M[31],q1、q2指向密钥二进制位K[0]、K[31],road指向密文二进制位C[0]。拉链式散列采用n路归并的思想。为方便讨论,在本例中n=2,将密文流序列C按照密钥流序列K分为二路存入明文空间。单向扫描密文空间C,设置工作指针road,双向循环扫描伪明文序列M’、密钥流序列K’设置工作指针p1、p2,各指针的初始值与加密时相同,指针p1寻找密钥流序列中的真值位,C[road]存入M’[p1],移动road指针和p1指针;指针p2寻找密钥流序列中的假值位,C[road]存入M’[p2],移动road指针和p2指针,最终求得的伪明文序列M’如图12所示。本例中对伪明文序列M’应用的位变换规则为:根据密钥流序列K的特定位按位取反,在本例中为“假”值二进制位。图13显示了按照密钥K的“假”值位,对伪明文序列M’的对应位按位取反后求得明文序列M。
参照图14所示模块结构图及图2所示的应用场景示意图,本申请所公开的基于拉链式动态散列和NLFSR的加密解密方法包括以下模块:密钥流生成模块,用于利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;伪明文生成模块,用于按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;伪明文划分模块,用于按照密钥流序列将伪明文序列划分为多路伪明文子序列;密文流生成模块,用于按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。
基于上述加解密方法,加密和解密方法的算法实现方式具体如下:
1加密系统的算法实施过程
(1)读入的明文文件并设置种子密钥
(2)建立字符指针
明文字符串数组动态指针:char*M;
密钥字符串数组动态指针:char*K;
密文字符串数组动态指针:char*C;
(3)打开明文文件M,统计明文文件M的字节数,并存放到M_bytes中
(4)分配存储空间
明文存储空间M=new char[M_bytes+1];
密钥存储空间K=new char[M_bytes+1];
密文存储空间C=new char[M_bytes+1];
(5)将明文文件的内容,读入到指针M所指存储空间
(6)实现向字符串的第n个二进制位写0的功能
建立函数:void write_bit_0(char*p_str,int n)
函数参数:p_str为指向字符串的指针,参数n表示下标为n的二进制位
函数功能:将p_str所指的字符串第n位(bit)写入0
函数返回值:空
(7)实现向字符串的第n个二进制位写1的功能
建立函数:void write_bit_1(char*p_str,int n)
函数参数:p_str为指向字符串的指针,参数n表示下标为n的二进制位
函数功能:将p_str所指的字符串第n位(bit)写入1
函数返回值:空
(8)实现读取字符串的第n个二进制位功能
建立函数:int read_bit(char*p_str,int n)
函数参数:p_str为指向字符串的指针,参数n表示下标为n的二进制位
函数功能:查找并返回p所指的字符串中第n位(bit)的值0或1
函数返回值:返回p所指的字符串第n位(bit)的值0或1
(9)计算种子密钥经过非线性反馈函数的第一输出序列
建立函数:void get_NLFSR_sequence(string str,int a,int b,int c,int d)
函数参数:str为种子密钥,a、b、c、d为非线性反馈函数 的系数
函数功能:计算种子密钥经过非线性反馈函数的第一输出序列,并存储于字符串NlfsrSequence中
函数返回值:无
关键语句序列:
(10)初始化密钥流K,循环第一输出序列以填充形成为密钥流序列空间的第二输出序列
建立函数:void get_key_stream(string Seq)
函数参数:Seq为种子密钥经过非线性反馈函数生成的第一输出序列字符串,由‘0’,‘1’两种字符构成;
函数功能:将非线性反馈函数的输出序列Seq转换为字符串,采用循环填充的方式将其存于密钥空间K
数返回值:无
关键语句序列:
(11)同时对第二输出序列明文流进行位变换,求得密钥流序列和伪明文序列
建立函数void en_bit_transfor()
函数参数:无
函数功能:同时完成对第二输出序列和明文流M的位变换,得到密钥流K和伪明文流M’。
密钥流的位变换布尔函数为:F2(j)=((C1+X1×j)MOD Y1==Z1||(C2+X2×j)MODY2==Z2)。明文的位变换规则为:根据密钥流K的假值位,对明文的对应二进制位取反
函数返回值:无
关键语句序列:
(12)一趟遍历伪明文和密钥流,将伪明文按照拉链式动态散列规则映射到密文空间
建立函数:void en_zipper_hash(int road1,int road1)
函数参数:road1和road1是工作指针的初值,也是开始拆分明文为2路的起始位置
函数功能:按照密钥流K将伪明文M’分为两路,然后将两路伪明文归并到密文空间C,从而得到密文
函数返回值:无
关键语句序列:
(13)完成加密,将密文数组C的内容写入密文文件并保存
2解密系统的算法实施过程
(1)读入密文文件和初始密钥文件
(2)建立字符指针
明文字符串数组动态指针:char*M_decrypt;
密钥字符串数组动态指针:char*K;
密文字符串数组动态指针:char*C;
(3)打开密文文件C,统计密文文件C的字节数,并存放到C_bytes中
(4)分配存储空间
解密的明文存储空间M_decrypt=new char[C_bytes+1];
密钥存储空间K=new char[C_bytes+1];
密文存储空间C=new char[C_bytes+1];
(5)将密文文件的内容,读入到指针C所指存储空间
(6)实现向字符串的第n个二进制位写0的功能
建立函数:void write_bit_0(char*p_str,int n)
函数参数:p_str为指向字符串的指针,参数n表示下标为n的二进制位
函数功能:将p_str所指的字符串第n位(bit)写入0
函数返回值:空
(7)实现向字符串的第n个二进制位写1的功能
建立函数:void write_bit_1(char*p_str,int n)
函数参数:p_str为指向字符串的指针,参数n表示下标为n的二进制位
函数功能:将p_str所指的字符串第n位(bit)写入1
函数返回值:空
(8)实现读取字符串的第n个二进制位功能
建立函数:int read_bit(char*p_str,int n)
函数参数:p_str为指向字符串的指针,参数n表示下标为n的二进制位
函数功能:查找并返回p所指的字符串中第n位(bit)的值0或1
函数返回值:返回p所指的字符串第n位(bit)的值0或1
(9)计算种子密钥经过非线性反馈函数的第一输出序列
建立函数:void get_NLFSR_sequence(string str,int a,int b,int c,int d)
函数参数:str为种子密钥,a、b、c、d为非线性反馈函数的系数;
函数功能:计算种子密钥经过非线性反馈函数的第一输出序列,并存储于字符串NlfsrSequence中
函数返回值:无。
关键语句序列:同加密过程的void get_NLFSR_sequence(string str,int a,intb,int c,int d)函数,不再赘述
(10)初始化密钥流K,循环第一输出序列以填充形成为密钥流序列空间的第二输出序列
建立函数:void get_key_stream(string Seq)
函数参数:Seq为种子密钥经过非线性反馈函数生成的第一输出序列字符串,由‘0’,‘1’两种字符构成;
函数功能:将非线性反馈函数的输出序列Seq转换为字符串,采用循环填充的方式将其存于密钥空间K。
数返回值:无。
关键语句序列:同加密过程的void get_key_stream(string Seq)函数,不再赘述
(11)一趟遍历密文和密钥流,将密文按照逆向拉链式动态散列映射到明文空间
建立函数:void de_zipper_hash(int road1,int road2)
函数参数:road1和road1是工作指针的初值,也是2路归并密文的起始位置
函数功能:按照密钥流K将密文C归并到明文空间M,从而得到伪明文序列M’
函数返回值:无
关键语句序列:
(12)对伪明文序列进行逆向位变换
建立函数void de_bit_transfor()
函数参数:无
函数功能:完成伪明文序列M’的位变换,得到明文序列M
明文的位变换规则为:根据密钥流K的假值位,对明文的对应二进制位取反
函数返回值:无
关键语句序列:
(13)完成解密,明文数组M_decrypt的内容写入明文文件并保存
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于拉链式动态散列和NLFSR的加密解密方法,其特征在于,包括以下步骤:
S100)利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;
S200)按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;
S300)按照密钥流序列将伪明文序列划分为多路伪明文子序列;
S400)按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。
2.根据权利要求1所述的加密解密方法,其特征在于,还包括以下用于解密的步骤:
S500)获取密文流序列,并利用相同的所述非线性反馈函数和所述位变换布尔函数预处理预先约定的种子密钥,以形成密钥流序列;
S600)按照依赖于密钥流序列的逆散列映射规则,计算每个密文序列的二进制位所对应散列地址,并将密文序列散列映射到明文存储空间中,以形成多路伪明文子序列;
S700)合并多路伪明文子序列,以形成伪明文序列;
S800)按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。
3.根据权利要求1或2所述的加密解密方法,其特征在于,所述步骤S100还包括以下子步骤:
S101)输入种子密钥到非线性反馈函数以生成第一输出序列;
S102)循环第一输出序列以填充形成为密钥流序列空间的第二输出序列;
S103)输入第二输出序列到位变换布尔函数以形成密钥流序列。
4.根据权利要求3所述的加密解密方法,其特征在于,在所述步骤S102中,循环填充的起始位置是第一输出序列中的任意合法位置。
5.根据权利要求4所述的加密解密方法,其特征在于,所述步骤S300还包括以下的子步骤:
S301)将伪明文序列按照密钥流序列的真值位和假值位分解为多路伪明文子序列;
S302)分别双向循环扫描所述多路伪明文子序列和密钥流序列,以将多路伪明文子序列拉链式动态散列到密文空间。
6.根据权利要求1或2所述的加密解密方法,其特征在于,所述明文序列、所述密钥流序列和所述密文流序列都采用循环队列的数据结构,并且加密解密是从相应循环队列中的任意合法位置开始。
7.根据权利要求1或2所述的加密解密方法,其特征在于,所述位变换布尔函数是根据密钥流序列的特定位按位取反函数。
8.根据权利要求1或2所述的加密解密方法,其特征在于,所述非线性反馈函数是代数阶数为4以上的反馈函数。
9.一种基于拉链式动态散列和NLFSR的加密解密装置,其特征在于,包括以下模块:
第一密钥流生成模块,用于利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;
伪明文生成模块,用于按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;
伪明文划分模块,用于按照密钥流序列将伪明文序列划分为多路伪明文子序列;
第一动态散列模块,用于按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。
10.一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现如权利要求1至8中任一项所述的方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910121128.6A CN109981249B (zh) | 2019-02-19 | 2019-02-19 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
PCT/CN2019/083404 WO2020168627A1 (zh) | 2019-02-19 | 2019-04-19 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910121128.6A CN109981249B (zh) | 2019-02-19 | 2019-02-19 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109981249A true CN109981249A (zh) | 2019-07-05 |
CN109981249B CN109981249B (zh) | 2020-09-08 |
Family
ID=67077032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910121128.6A Active CN109981249B (zh) | 2019-02-19 | 2019-02-19 | 基于拉链式动态散列和nlfsr的加密解密方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109981249B (zh) |
WO (1) | WO2020168627A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111258549A (zh) * | 2020-04-30 | 2020-06-09 | 江苏亨通问天量子信息研究院有限公司 | 基于非线性反馈移位寄存器的量子随机数后处理装置 |
CN111669269A (zh) * | 2020-06-08 | 2020-09-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
CN112260828A (zh) * | 2020-10-19 | 2021-01-22 | 黑龙江大学 | 基于混沌系统和fpga的轻量级密钥序列发生器 |
CN113271202A (zh) * | 2020-02-14 | 2021-08-17 | 中移(苏州)软件技术有限公司 | 一种数据加密方法及装置 |
CN117315808A (zh) * | 2023-11-28 | 2023-12-29 | 成都博瑞科传科技有限公司 | 基于数据完整性校验的水质便携式巡检仪及采集方法 |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
CN102983972A (zh) * | 2012-10-18 | 2013-03-20 | 郎六琪 | 基于流密码的动态加密解密方法 |
CN103095449A (zh) * | 2013-01-16 | 2013-05-08 | 司玉娟 | 一种基于流密码的动态加密解密方法 |
CN103338104A (zh) * | 2013-06-05 | 2013-10-02 | 中北大学 | 记录仪实时采集数据的加密方法 |
CN103546275A (zh) * | 2012-07-10 | 2014-01-29 | 英飞凌科技股份有限公司 | 具有增强后向保密的随机比特流生成器 |
DE102014203497A1 (de) * | 2013-03-06 | 2014-09-11 | Infineon Technologies Ag | Maskiertes nichtlinear rückgekoppeltes Schieberegister |
CN104486068A (zh) * | 2014-12-12 | 2015-04-01 | 苏州中科启慧软件技术有限公司 | 基于非线性循环移位寄存器的流密码算法snrr |
CN105141413A (zh) * | 2015-08-06 | 2015-12-09 | 吉林大学 | 基于流密码的循环链表异或加密方法及解密方法 |
WO2016096000A1 (en) * | 2014-12-17 | 2016-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Stream ciphering technique |
CN105897403A (zh) * | 2016-04-01 | 2016-08-24 | 苏州中科启慧软件技术有限公司 | 基于并行循环移位寄存器的流密码技术sprr |
CN105959118A (zh) * | 2016-04-28 | 2016-09-21 | 吉林大学 | 基于流密码的双位单向循环链表加密解密方法 |
CN106254062A (zh) * | 2016-10-12 | 2016-12-21 | 中国人民解放军信息工程大学 | 序列密码实现装置及其序列密码实现方法 |
CN106953875A (zh) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | 基于多密钥流密码的顺序加密方法 |
CN108777611A (zh) * | 2018-05-11 | 2018-11-09 | 吉林大学 | 基于双密钥流密码的双向链表顺序加密解密方法 |
CN108777622A (zh) * | 2018-05-11 | 2018-11-09 | 吉林大学 | 一种二进制流散列取模加密解密方法 |
CN108810891A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种实现访问网络的认证方法、认证设备及用户设备 |
CN109194461A (zh) * | 2018-05-11 | 2019-01-11 | 吉林大学 | 基于双密钥流密码的单向链表顺序加密解密方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1180351C (zh) * | 2001-12-10 | 2004-12-15 | 中国科学院软件研究所 | 强化错乱的分组密码加密方法 |
CN1852088B (zh) * | 2005-10-13 | 2011-07-27 | 华为技术有限公司 | 流媒体传输码流的加密解密方法及模块 |
-
2019
- 2019-02-19 CN CN201910121128.6A patent/CN109981249B/zh active Active
- 2019-04-19 WO PCT/CN2019/083404 patent/WO2020168627A1/zh active Application Filing
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
CN103546275A (zh) * | 2012-07-10 | 2014-01-29 | 英飞凌科技股份有限公司 | 具有增强后向保密的随机比特流生成器 |
CN102983972A (zh) * | 2012-10-18 | 2013-03-20 | 郎六琪 | 基于流密码的动态加密解密方法 |
CN103095449A (zh) * | 2013-01-16 | 2013-05-08 | 司玉娟 | 一种基于流密码的动态加密解密方法 |
DE102014203497A1 (de) * | 2013-03-06 | 2014-09-11 | Infineon Technologies Ag | Maskiertes nichtlinear rückgekoppeltes Schieberegister |
CN103338104A (zh) * | 2013-06-05 | 2013-10-02 | 中北大学 | 记录仪实时采集数据的加密方法 |
CN104486068A (zh) * | 2014-12-12 | 2015-04-01 | 苏州中科启慧软件技术有限公司 | 基于非线性循环移位寄存器的流密码算法snrr |
WO2016096000A1 (en) * | 2014-12-17 | 2016-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Stream ciphering technique |
CN105141413A (zh) * | 2015-08-06 | 2015-12-09 | 吉林大学 | 基于流密码的循环链表异或加密方法及解密方法 |
CN105897403A (zh) * | 2016-04-01 | 2016-08-24 | 苏州中科启慧软件技术有限公司 | 基于并行循环移位寄存器的流密码技术sprr |
CN105959118A (zh) * | 2016-04-28 | 2016-09-21 | 吉林大学 | 基于流密码的双位单向循环链表加密解密方法 |
CN106254062A (zh) * | 2016-10-12 | 2016-12-21 | 中国人民解放军信息工程大学 | 序列密码实现装置及其序列密码实现方法 |
CN106953875A (zh) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | 基于多密钥流密码的顺序加密方法 |
CN108810891A (zh) * | 2017-04-27 | 2018-11-13 | 华为技术有限公司 | 一种实现访问网络的认证方法、认证设备及用户设备 |
CN108777611A (zh) * | 2018-05-11 | 2018-11-09 | 吉林大学 | 基于双密钥流密码的双向链表顺序加密解密方法 |
CN108777622A (zh) * | 2018-05-11 | 2018-11-09 | 吉林大学 | 一种二进制流散列取模加密解密方法 |
CN109194461A (zh) * | 2018-05-11 | 2019-01-11 | 吉林大学 | 基于双密钥流密码的单向链表顺序加密解密方法 |
Non-Patent Citations (4)
Title |
---|
MEHREEN AFZAL ; ASHRAF MASOOD: "Algebraic Cryptanalysis of A NLFSR Based Stream Cipher", 《2008 3RD INTERNATIONAL CONFERENCE ON INFORMATION AND COMMUNICATION TECHNOLOGIES: FROM THEORY TO APPLICATIONS》 * |
O. MANNAI ; R. BECHEIKH ; R. RHOUMA: "A new Stream cipher based on Nonlinear dynamic system", 《2018 26TH EUROPEAN SIGNAL PROCESSING CONFERENCE (EUSIPCO)》 * |
刘国强: "替换移位模型中秘密变换的恢复方法研究", 《中国博士学位论文全文数据库》 * |
张雅; 冯登国: "换位密码及其前景展望", 《北京邮电大学学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271202A (zh) * | 2020-02-14 | 2021-08-17 | 中移(苏州)软件技术有限公司 | 一种数据加密方法及装置 |
CN113271202B (zh) * | 2020-02-14 | 2022-05-31 | 中移(苏州)软件技术有限公司 | 一种数据加密方法及装置 |
CN111258549A (zh) * | 2020-04-30 | 2020-06-09 | 江苏亨通问天量子信息研究院有限公司 | 基于非线性反馈移位寄存器的量子随机数后处理装置 |
CN111669269A (zh) * | 2020-06-08 | 2020-09-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
CN111669269B (zh) * | 2020-06-08 | 2023-08-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
CN112260828A (zh) * | 2020-10-19 | 2021-01-22 | 黑龙江大学 | 基于混沌系统和fpga的轻量级密钥序列发生器 |
CN117315808A (zh) * | 2023-11-28 | 2023-12-29 | 成都博瑞科传科技有限公司 | 基于数据完整性校验的水质便携式巡检仪及采集方法 |
CN117315808B (zh) * | 2023-11-28 | 2024-02-13 | 成都博瑞科传科技有限公司 | 基于数据完整性校验的水质便携式巡检仪及采集方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020168627A1 (zh) | 2020-08-27 |
CN109981249B (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kumar et al. | Development of modified AES algorithm for data security | |
CN109981249A (zh) | 基于拉链式动态散列和nlfsr的加密解密方法及装置 | |
Ali et al. | A novel improvement with an effective expansion to enhance the MD5 hash function for verification of a secure E-document | |
US20100202606A1 (en) | Two strings private key (symmetric) encryption and decryption method | |
Omolara et al. | Developing a modified hybrid caesar cipher and vigenere cipher for secure data communication | |
US20040101142A1 (en) | Method and system for an integrated protection system of data distributed processing in computer networks and system for carrying out said method | |
CN109245881A (zh) | 一种照片视频云端加密存储方法 | |
KR20200016365A (ko) | 아날로그 콤포넌트를 갖는 데이터 보안 장치 | |
CN105959118A (zh) | 基于流密码的双位单向循环链表加密解密方法 | |
CN109194461A (zh) | 基于双密钥流密码的单向链表顺序加密解密方法 | |
WO2020168629A1 (zh) | 基于位置换和位变换的加密解密方法和装置 | |
Joshy et al. | Text to image encryption technique using RGB substitution and AES | |
Saikumar | DES-Data Encryption Standard | |
Sen et al. | Bit level symmetric key cryptography using genetic algorithm | |
Sermeno et al. | Modified Vigenere cryptosystem: An integrated data encryption module for learning management system | |
Yang | [Retracted] Application of Hybrid Encryption Algorithm in Hardware Encryption Interface Card | |
Kasiran et al. | Time performance analysis of advanced encryption standard and data encryption standard in data security transaction | |
CN107317667B (zh) | 一种身份证件丢失的预警方法及预警装置 | |
Priyanka Brahmaiah et al. | Implementation of AES Algorithm | |
CN108777611A (zh) | 基于双密钥流密码的双向链表顺序加密解密方法 | |
Suresh et al. | VLSI implementation of text to image encryption algorithm based on private key encryption | |
Zhang et al. | A derivative matrix-based covert communication method in blockchain | |
Vijayan et al. | ASCII value based encryption system (AVB) | |
AL-Shakarchy et al. | Cryptographic system based on Unicode | |
CN108777622B (zh) | 一种二进制流散列取模加密解密方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |