CN101848078A - 一种密钥流序列扰动方法及加密方法 - Google Patents
一种密钥流序列扰动方法及加密方法 Download PDFInfo
- Publication number
- CN101848078A CN101848078A CN201010164463A CN201010164463A CN101848078A CN 101848078 A CN101848078 A CN 101848078A CN 201010164463 A CN201010164463 A CN 201010164463A CN 201010164463 A CN201010164463 A CN 201010164463A CN 101848078 A CN101848078 A CN 101848078A
- Authority
- CN
- China
- Prior art keywords
- word
- value
- mnemon
- key stream
- message
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明涉及一种密钥流序列扰动方法及加密方法,属于信息处理与传输领域。其扰动方法为:1)预置2m个记忆单元并赋初值;2)对于输入的每个字xi依次进行:a)取xi高m比特的值h;用第h单元的内容输出字zi;b)取xi低m比特的值t;将xi经S盒变换值与第t单元的内容yt异或输出yt′;将yt经S盒变换值与yh异或输出yh′;c)依次将第t、h个记忆单元中的值分别更新为yt′、yh′;3)将依次输出的字zi作为扰乱后的密钥流序列。本加密方法为:1)消息发送方生成密钥流;然后将其与原始消息按位异或,加密原始消息并将其发送到消息接收方;2)消息接收方生成密钥流;然后其与接收到的加密消息按位异或,解密加密消息,得到原始消息。本发明提高了加密软件实现速度,且安全性更强。
Description
技术领域
本发明涉及一种信息传输与处理的方法,更确切地说是涉及一种密钥流序列扰动方法及加密方法。采用基于整字操作的混合型带记忆逻辑,以增强序列密码算法的抗分析强度。
背景技术
密码技术历史悠久,在最初用于保护军事和外交通信安全,但是,随着通信网络和计算机网络的普及,现代密码学的应用不再局限于政治、军事和外交,其商业价值和社会价值得到了广泛的认同。保密是密码学的核心,而加密是获得信息保密的实用工具。
密码算法分为公钥密码算法和私钥密码算法。私钥密码算法又分为分组密码算法和序列密码算法。分组密码算法一般对消息进行分块加密,算法运行一次加密一个较大的消息块。序列密码算法一般用一个短的密钥,用特定的密钥流生成算法,生成与要加密的消息长度相当的密钥流序列,将密钥流序列与明文按位异或达到加密的目的。而解密方生成同样的密钥流序列,与密文异或,即可得到明文。所以,序列密码算法的关键是设计安全快速的密钥流生成算法。传统的密钥流生成算法每运行一次,只产生一个比特的密钥流。
目前对序列密码算法的攻击,主要是寻找密钥流序列的安全缺陷,达到恢复加密密钥,或将密钥流序列与真随机序列进行区分,或尝试生成密钥流序列的目的。主要的攻击方法有代数攻击、区分攻击、猜测确定攻击、相关攻击、差分攻击等。从设计角度来看,最难以抵御的是区分攻击,对序列密码算法的这种基于统计的分析,其成败在很大程度上依赖于密钥流序列生成逻辑的设计。
本技术领域普遍认为,加密算法中采用带记忆逻辑是强化密钥流生成逻辑的一种基本措施,它可以增强算法抵抗线性区分攻击和差分分析的性能,因此带记忆逻辑的合理运用很可能是抵抗区分攻击的最佳选择。
随着通信网络和计算机网络的高速发展,传统的运行一次生成一个比特的密钥流生成方法已经不能满足实现速度上的需要,尤其是软件实现方面。一些面向字的密钥流生成方法逐渐被设计出来。即运行一次生成若干比特的密钥字,由密钥字组成密钥流序列。例如SNOW3G算法、Rabbit算法。
在序列密码算法设计中,将整字带记忆逻辑作为非线性变换组件已经成为近年来的主流设计思想。纵观目前已公开的序列密码算法,整字带记忆逻辑的应用已经初具规模,而且表现出很多种整字记忆形式。例如:RC4算法其实是一种以搅拌器型整字带记忆逻辑为核心的算法。SNOW中所采用的所谓有限自动机实质上是一种复杂的累加器型整字带记忆逻辑。
专利CN1829142A发明了一种新的“基于字节操作、以带记忆为特征的序列扰乱方法”。该方法让密钥流序列以字节为单位,通过一个扰乱器后再以字节为单位输出。该扰乱器是一个强化字符序列的整字带记忆非线性逻辑,兼具搅拌器型和累加器型带记忆逻辑的特征。其特征在于包括:
步骤A,预置2m个记忆单元,0,1,2,……,2m-1,每个记忆单元中存放一个字节内容;
步骤B,对输入的字节序列x=(x0,x1,…)中的每个字节xi,做如下操作:
a)取xi的高m比特的值h,h是小于2m的值;
c)更新记忆单元,取出第h个记忆单元中的内容yh的低m比特的值t,t也是小于2m的值。在已知t后,将第h个记忆单元中的内容yh更新为 将第t个记忆单元中的内容yt更新为即其中S表示一个非线性函数变换,是一个从字节到字节的置换。
所述m的值为3或4或5或6。
该发明的序列扰乱方法,在设计基于单字节输入输出、整字运算的带记忆逻辑时,合理的加大了记忆单元规模,增强了该记忆逻辑在抗线性和差分分析方面的性能。
但是,上述序列扰动方法生成的序列,平衡性不好,即随机序列经扰动后生成的序列中的每一个元素取值在元素取值空间中分布不均匀。这将使得输出的序列有很大的安全缺陷。
发明内容
本发明的目的在于克服现有技术的不足,提供一种密钥流序列扰动方法及加密方法。该密钥流序列扰动方法基于整字操作、以带记忆为特征,也就是说让密钥流序列以字为单位输入,通过一个带记忆的扰乱器后再以字为单位输出。在序列密码设计中,通过增设该扰乱器,提高密钥流序列的随机性和抗分析能力。
如无特别说明,本发明中提到的字均为n比特字。
为了达到上述发明目的,本方法包括2m个记忆单元,一个S盒。输入字序列,输出经扰乱后的字序列,其特征在于包括:
步骤B,对输入的字序列x=(x0,x1,…)中的每个字xi,做如下操作:
a)取xi的高m比特的值h;
c)更新记忆单元,取xi的低m比特的值t。在已知t后,先计算再计算然后将第t个,第h个记忆单元中的值分别替换为yt′,yh′。其中S表示一个从字到字的正形置换。S(xi)、S(yt)分别是以xi、yt为输入,计算S的函数值,该非线性函数的输入输出均为一个n比特字。
所述步骤A、B中,n通常取8,也可以为6、4。
所述步骤A中,用密码算法的初始密钥或初始向量或随机值或某组常数初始预置所述的2m个记忆单元中每个记忆单元的内容。
所述步骤a中,取xi的高m比特的值h,是对xi做右移n-m位的操作,即h=xi>>(n-m);
所述步骤c中,取xi的低m比特的值t,是对xi做模2m操作,即t=xi mod 2m;
所述步骤c中,用xi经过S盒变换的值与yt异或用于更新第t个记忆单元的内容;
所述步骤c中,用未经更新的第t个记忆单元的内容经过S盒变换的值与yh异或用于更新第h个记忆单元的内容;
所述步骤c中,除第t、h记忆单元的内容被更新,其余记忆单元内容不变。每输出一个字后,一般要更新2m个记忆单元中的两个,但有时也会出现对同一个记忆单元更新两次的情况。
所述m的值为1到n-1之间的整数;
所述S盒要求是正形置换,即函数S(x)和都是置换。
本发明的另一目的在于提供一种加密方法,利用本发明提供的密钥流序列,对明文数据流进行逐字加密,本发明的流密码算法结构示意图如图2所示。
一种加密方法,其步骤包括:
1)消息发送方根据加密密钥和初始向量,生成密钥流,生成密钥流的方法如下:
1-1)利用线性反馈移位寄存器生成源序列;
1-2)从源序列选取若干字,输入一个非线性变换单元,输出一个字;
1-3)用本发明的强化乱源序列方法对步骤1-2)生成的字进行变换;
1-4)将步骤1-3)的输出与移位寄存器的一个字异或生成密钥流字。
重复上述4步,可以得到密钥流字序列。
2)得到的密钥流与原始消息按位异或,实现对原始消息加密,并将加密消息发送到消息接收方;
3)消息接收方拥有与加密密钥相同的解密密钥和初始向量,利用步骤1)生成密钥流的方法,得到密钥流;
4)得到的密钥流与加密消息按位异或,实现对加密消息的解密,得到原始消息。
所述步骤1-2)中的非线性变换单元通常选用有限状态机或不带记忆的非线性函数实现。
记忆单元的规模对算法安全性具有重要影响,本发明的序列扰乱方法,改进了原有技术扰动后的序列平衡性不好的缺陷。该方法在设计基于整字输入、输出整字运算的带记忆逻辑时,合理的加大了记忆单元的规模,增强了该记忆逻辑在抗代数和差分分析方面的性能,并且输出的序列具有良好的平衡性。与单比特带记忆逻辑相比,基于字的带记忆逻辑不但易于加大记忆单元的规模,而且在应用效率上会成倍提高。本发明的基于整字操作的混合型带记忆逻辑的序列扰乱方法,包括变换函数及S盒,它对输入的每一个字利用变换函数及S盒进行扰乱后再按字输出。一条抗分析能力比较脆弱的密钥流序列,经过它的扰乱,序列复杂度会得到增强。之所以说这类带记忆逻辑是混合型的,是因为它兼有累加器型带记忆逻辑盒搅拌器型带记忆逻辑的双重特性。该方案可以方便的用于序列密码算法和Hash函数的设计。
与现有技术相比,本发明具有的积极效果为:
本发明的序列扰动方法,改进了原有技术扰动后序列不平衡的问题。本发明的加密方法,对明文消息逐字加密,提高了加密的软件实现速度。密钥流序列经扰乱,具有更强的安全性。
附图说明
图1为n=8,m=4时序列扰乱示意图;
图2为流密码算法结构示意图。
具体实施方式
在实施本发明的技术方案时,首先,要选择适当的n、m。一般,n为偶数,m取n/2。其次,要选择代数、差分、线性性质良好的正形置换作为S盒。S盒可以看作是系统密钥,也可以不保密。
实施可分为两个基本步骤:
步骤B,对输入字序列x=(x0,x1,…)中的每个字xi,做如下操作:
a)h=xi>>(n-m);
下面,结合附图1,对n取8,m取值为4时的具体实施方式进行举例说明。此时输入、输出及记忆单元均为8比特的字节。设输入序列x,输出序列z。
S盒选取如下:
cc | 8f | 4d | 55 | e9 | 61 | 15 | 9e | 17 | 62 | 2f | e8 | 4f | a9 | 0a | 06 |
04 | 1e | c7 | 6f | 21 | 8d | 9f | d9 | fa | eb | bd | f7 | a2 | 5d | 98 | 64 |
d3 | 26 | 09 | ff | 65 | 7e | 9a | da | 3e | a5 | b4 | c5 | ad | 80 | 02 | 9d |
1a | cb | 6b | 50 | d1 | 93 | 85 | 75 | ef | 6d | f3 | 72 | 01 | 48 | 38 | 2a |
69 | ca | 2e | d6 | 4c | 59 | 76 | 60 | 97 | 3f | 54 | 4e | cf | 89 | 71 | dd |
a1 | 66 | 99 | ec | 84 | 88 | c1 | 27 | 7a | 8b | fb | 51 | 22 | 40 | de | bf |
ce | a6 | d2 | b9 | 05 | fe | 3c | 9c | 3b | 00 | 4a | 9b | d5 | 25 | 81 | c3 |
3a | 4b | b0 | 2b | 8c | 13 | 23 | 0e | d7 | c8 | 0d | 11 | 44 | ed | bb | 49 |
37 | 0c | ac | 7d | 12 | e2 | f4 | b6 | 45 | c4 | b3 | 31 | 1d | 0f | 96 | df |
cc | 8f | 4d | 55 | e9 | 61 | 15 | 9e | 17 | 62 | 2f | e8 | 4f | a9 | 0a | 06 |
c2 | 34 | f2 | 07 | e7 | a7 | aa | b1 | 95 | e4 | f5 | 6e | cd | 52 | d0 | fd |
08 | a0 | 79 | 63 | be | f8 | ea | 46 | c0 | 8a | 35 | 24 | 53 | af | 83 | 7c |
68 | 70 | 5b | 18 | a3 | 28 | b5 | 3d | b8 | 7f | 32 | 47 | 56 | 5a | f9 | 1f |
7b | e0 | 1b | 6a | 5e | 73 | 43 | dc | 2c | 30 | 1c | 03 | 74 | 86 | 39 | 90 |
8e | e5 | 78 | 10 | ab | 0b | 20 | db | fc | 2d | 67 | 5c | a4 | e6 | 42 | b2 |
bc | c9 | 36 | f1 | 77 | 91 | d8 | d4 | 6c | c6 | 5f | ae | 82 | e3 | 94 | f6 |
e1 | 19 | 14 | b7 | 57 | 41 | 87 | 92 | 29 | 33 | 58 | f0 | ba | 16 | ee | a8 |
注:表格中数字均为16进制表示。
在m=4时共有16个记忆单元,设16个记忆单元被随机初始化为:
(0xea,0x63,0xe6,0x57,0xa8,0xd6,0x54,0x2e,0x17,0x4f,0x98,0x40,0x2b,0xfd,0xc1,0x9a)。
如x=(0x4a,0x77,……)。
(0xea,0x63,0xe6,0x57,0x3d,0xd6,0x54,0x2e,0x17,0x4f,0xcc,0x40,0x2b,0xfd,0xc1,0x9a)。
每输出一个字节后,一般要更新16个记忆单元中的两个,但有时也会出现对同一个记忆单元更新两次的情况。此时第一次的更新会被第二次更新覆盖。
则第7个记忆单元被更新为0x2c,此时,16个记忆单元被更新为:
(0xea,0x63,0xe6,0x57,0x3d,0xd6,0x54,0x2c,0x17,0x4f,0xcc,0x40,0x2b,0xfd,0xc1,0x9a)。
Claims (10)
1.一种密钥流序列扰动方法,其步骤为:
2)对于输入的密钥流序列中的每个字xi依次进行如下步骤:
a)取当前字xi的高m比特的值h;其中每个字均为n比特字;
b)利用第h个记忆单元的内容yh与输入字xi进行异或操作,输出经扰乱后的字zi;
c)取当前字xi的低m比特的值t;
d)将当前字xi经S盒变换的值与第t个记忆单元的内容yt进行异或输出yt′;将该yt经S盒变换的值与所述yh异或输出yh′;
e)依次将第t个记忆单元中的值更新为yt′、第h个记忆单元中的值更新为yh′;
3)将依次输出的字zi作为扰乱后的密钥流序列。
2.如权利要求1所述的方法,其特征在于根据加密算法的初始密钥或初始向量对每个记忆单元的内容赋初值。
3.如权利要求1所述的方法,其特征在于利用随机数对每个记忆单元的内容赋初值。
4.如权利要求1所述的方法,其特征在于所述m的值为:1到n-1之间的整数。
5.如权利要求4所述的方法,其特征在于所述步骤a)中,取当前字xi的高m比特的值h的方法为:对xi做右移n-m位的操作。
6.如权利要求4所述的方法,其特征在于所述步骤c)中,取当前字xi的低m比特的值t的方法为:对xi做模2m运算。
7.如权利要求1所述的方法,其特征在于所述S盒为正形置换。
8.一种加密方法,其步骤为:
1)消息发送方根据初始密钥和初始向量,生成密钥流;
2)消息发送方将得到的密钥流与原始消息按位异或,实现对原始消息加密,并将加密消息发送到消息接收方;
3)消息接收方利用初始密钥和初始向量,生成密钥流;
4)消息接收方将生成的密钥流与接收到的加密消息按位异或,实现对加密消息的解密,得到原始消息;
其中,所述生成密钥流的方法为:预置2m个记忆单元对每个记忆单元的内容赋初值,存储一n比特字,m、n为自然数;利用线性反馈移位寄存器生成源序列,并从每次生成的源序列中选取若干字输入一个非线性变换单元,输出一个字xi;然后对每次输出的字xi依次进行如下步骤:a)取当前字xi的高m比特的值h;b)利用第h个记忆单元的内容yh与输入xi进行异或操作,输出经扰乱后的字zi;c)取当前字xi的低m比特的值t;d)将当前字xi经S盒变换的值与第t个记忆单元的内容yt进行异或输出yt′;将该yt经S盒变换的值与所述yh异或输出yh′;e)依次将第t个记忆单元中的值更新为yt′、第h个记忆单元中的值更新为yh′;f)将输出的zi与移位寄存器的一个字异或生成密钥流字;最后,根据依次输出的密钥流字得到密钥流序列。
9.如权利要求8所述的方法,其特征在于所述非线性变换单元为有限状态机或不带记忆的非线性函数。
10.如权利要求8所述的方法,其特征在于所述S盒为正形置换;所述m的值为:1到n-1之间的整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010164463A CN101848078A (zh) | 2010-04-30 | 2010-04-30 | 一种密钥流序列扰动方法及加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010164463A CN101848078A (zh) | 2010-04-30 | 2010-04-30 | 一种密钥流序列扰动方法及加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101848078A true CN101848078A (zh) | 2010-09-29 |
Family
ID=42772546
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010164463A Pending CN101848078A (zh) | 2010-04-30 | 2010-04-30 | 一种密钥流序列扰动方法及加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101848078A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848079A (zh) * | 2010-05-28 | 2010-09-29 | 中国科学院软件研究所 | 一种面向字、带记忆的序列扰动方法及加密方法 |
CN104871476A (zh) * | 2013-01-11 | 2015-08-26 | 高通股份有限公司 | 用于可计算、大型、可变及安全的替换盒的方法及设备 |
CN106254062A (zh) * | 2016-10-12 | 2016-12-21 | 中国人民解放军信息工程大学 | 序列密码实现装置及其序列密码实现方法 |
CN110532763A (zh) * | 2019-09-03 | 2019-12-03 | 华中农业大学 | 一种基于高阶正形置换的密码构造方法及系统 |
CN111669269A (zh) * | 2020-06-08 | 2020-09-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829142A (zh) * | 2005-03-02 | 2006-09-06 | 中国科学院软件研究所 | 基于单字节操作、以带记忆为特征的序列扰乱方法 |
CN1925681A (zh) * | 2006-09-20 | 2007-03-07 | 北京太极联合实验室科技有限公司 | 基于移动通信网络的端到端加密方法和加密系统 |
WO2009093601A1 (ja) * | 2008-01-21 | 2009-07-30 | Sony Corporation | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
-
2010
- 2010-04-30 CN CN201010164463A patent/CN101848078A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1829142A (zh) * | 2005-03-02 | 2006-09-06 | 中国科学院软件研究所 | 基于单字节操作、以带记忆为特征的序列扰乱方法 |
CN1925681A (zh) * | 2006-09-20 | 2007-03-07 | 北京太极联合实验室科技有限公司 | 基于移动通信网络的端到端加密方法和加密系统 |
WO2009093601A1 (ja) * | 2008-01-21 | 2009-07-30 | Sony Corporation | データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101848079A (zh) * | 2010-05-28 | 2010-09-29 | 中国科学院软件研究所 | 一种面向字、带记忆的序列扰动方法及加密方法 |
CN101848079B (zh) * | 2010-05-28 | 2013-02-06 | 中国科学院软件研究所 | 一种面向字、带记忆的序列扰动方法及加密方法 |
CN104871476A (zh) * | 2013-01-11 | 2015-08-26 | 高通股份有限公司 | 用于可计算、大型、可变及安全的替换盒的方法及设备 |
US10142099B2 (en) | 2013-01-11 | 2018-11-27 | Qualcomm Incorporated | Method and apparatus for a computable, large, variable and secure substitution box |
CN106254062A (zh) * | 2016-10-12 | 2016-12-21 | 中国人民解放军信息工程大学 | 序列密码实现装置及其序列密码实现方法 |
CN106254062B (zh) * | 2016-10-12 | 2019-03-26 | 中国人民解放军信息工程大学 | 序列密码实现装置及其序列密码实现方法 |
CN110532763A (zh) * | 2019-09-03 | 2019-12-03 | 华中农业大学 | 一种基于高阶正形置换的密码构造方法及系统 |
CN110532763B (zh) * | 2019-09-03 | 2022-11-18 | 华中农业大学 | 一种基于高阶正形置换的密码构造方法及系统 |
CN111669269A (zh) * | 2020-06-08 | 2020-09-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
CN111669269B (zh) * | 2020-06-08 | 2023-08-15 | 晋商博创(北京)科技有限公司 | Blk数据加密方法、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aljawarneh et al. | A resource-efficient encryption algorithm for multimedia big data | |
CN101764686B (zh) | 一种用于网络与信息安全的加密方法 | |
CN105049401B (zh) | 一种基于智能车的安全通信方法 | |
CN107707343B (zh) | 加解密一致的sp网络结构轻量级分组密码实现方法 | |
CN107147487B (zh) | 对称密钥随机分组密码 | |
CN109660555A (zh) | 基于代理重加密的内容安全分享方法和系统 | |
CN106663387A (zh) | 加密函数和解密函数生成方法、加密和解密方法以及相关装置 | |
CN104333446B (zh) | 一种新型超轻量级qtl分组密码实现方法 | |
CN108809626A (zh) | 一种白盒sm4密码算法方案与系统 | |
CN104065474B (zh) | 一种轻量级Surge分组密码实现方法 | |
CN102356597A (zh) | 用于在网络中安全通信的方法、及其通信设备、网络和计算机程序 | |
CN101383703A (zh) | 基于广义信息域的动态加密系统及方法 | |
CN101848081A (zh) | 一种s盒构造方法及s盒 | |
CN101394268A (zh) | 基于广义信息域的高级加密系统及方法 | |
CN101848078A (zh) | 一种密钥流序列扰动方法及加密方法 | |
CN109768854A (zh) | 一种轻量级分组密码算法Wheel的实现方法 | |
CN104410490B (zh) | 非线性挤压保护密码s盒的方法 | |
Zhao et al. | Block cipher design: generalized single-use-algorithm based on chaos | |
CN101841415A (zh) | 一种面向字的密钥流生成方法及加密方法 | |
Fadhil et al. | A new lightweight AES using a combination of chaotic systems | |
CN101826959B (zh) | 一种面向字节的密钥流生成方法及加密方法 | |
CN101848079B (zh) | 一种面向字、带记忆的序列扰动方法及加密方法 | |
Salman et al. | Creation of S-Box based One-Dimensional Chaotic Logistic Map: Colour Image Encryption Approach | |
CN109714154A (zh) | 代码体积困难白盒安全模型下的白盒密码算法 | |
CN111614457B (zh) | 基于p置换改进的轻量级分组加解密方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20100929 |