CN101826959A - 一种面向字节的密钥流生成方法及加密方法 - Google Patents

一种面向字节的密钥流生成方法及加密方法 Download PDF

Info

Publication number
CN101826959A
CN101826959A CN201010177963A CN201010177963A CN101826959A CN 101826959 A CN101826959 A CN 101826959A CN 201010177963 A CN201010177963 A CN 201010177963A CN 201010177963 A CN201010177963 A CN 201010177963A CN 101826959 A CN101826959 A CN 101826959A
Authority
CN
China
Prior art keywords
byte
mnemon
output
value
xor
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
CN201010177963A
Other languages
English (en)
Other versions
CN101826959B (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.)
Institute of Software of CAS
Original Assignee
Institute of Software of CAS
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 Institute of Software of CAS filed Critical Institute of Software of CAS
Priority to CN2010101779630A priority Critical patent/CN101826959B/zh
Publication of CN101826959A publication Critical patent/CN101826959A/zh
Application granted granted Critical
Publication of CN101826959B publication Critical patent/CN101826959B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种面向字节的密钥流生成方法及加密方法,密钥流生成方法包括:利用线性反馈移位寄存器生成一个源序列;采用非线性函数F将源序列中的若干字节进行非线性压缩变换,产生一个字节的输出,作为BOMM函数的输入;BOMM的输出和源序列的一个字节按位异或得到密钥流。本发明生成的密钥流序列,具有良好的随机性和非线性性,并且适合软硬件快速实现;利用本发明生成的密钥流进行加密的方法具有更好的安全性。

Description

一种面向字节的密钥流生成方法及加密方法
技术领域
本发明主要应用于信息安全传输领域,具体涉及一种用于产生加密用密钥流序列的密钥流生成方法及加密方法。
背景技术
密码技术历史悠久,最初用于保护军事和外交通信安全。但是,随着通信网络和计算机网络的普及,现代密码学的应用不再局限于政治、军事和外交,其商业价值和社会价值得到了广泛的认同。保密是密码学的核心,而加密是获得信息保密的实用工具。现代加密技术就是一些数学变换(算法),在加密者拥有的秘密信息(加密密钥)控制下,将要加密的信息(明文)变换成难于理解和与随机信息难于区分的信息(密文),通过不安全的信道传送给接收者。而解密操作,就是在接收者拥有的秘密信息(解密密钥)的控制下,将密文恢复成明文。根据加、解密者拥有的密钥是否相同,可以把加密算法分为公钥密码算法和私钥密码算法。公钥密码算法的加、解密密钥不同,加密密钥一般是公开的,解密密钥为消息接收者私有。私钥密码算法的加、解密密钥一般是相同的,均是保密的。而且加、解密的变换一般也是相同或相似的。
私钥密码算法又分为分组密码算法和流密码算法。分组密码算法一般对消息进行分块加密,算法运行一次加密一个较大的消息块。流密码算法一般用一个短的密钥,用特定的密钥流生成算法,生成与要加密的消息长度相当的密钥流序列,将密钥流序列与明文按位异或达到加密的目的。而解密方生成同样的密钥流序列,与密文异或,即可得到明文。所以,流密码算法的关键是设计安全快速的密钥流生成算法。
流密码一直是各国争相研究的热门课题。因为它具有实现简单,加密速度快(比分组密码快5到10倍)、无或只有有限的错误传播等特点。随着通信网络和计算机网络的高速发展,传统的运行一次生成一个比特的密钥流生成方法已经不能满足实现速度上的需要,尤其是软件实现方面,一些面向字的密钥流生成方法逐渐被设计出来,即运行一次生成若干比特的密钥字,由密钥字组成密钥流序列。例如SNOW 3G算法、Rabbit算法。
在此背景下,需要一种面向字,尤其是面向字节的密钥流生成方法及加密的方法,适合软硬件实现并且安全性高。
本发明的目的在于提供一种面向单字节(8比特)的密钥流生成方法,以初始密钥和初始向量作为输入,产生一定长度的密钥流序列。本方法能够在软、硬件上快速实现,生成的密钥流序列有良好的随机性和非线性性。本发明的另一目的在于提供一种加密方法,利用本发明提供的密钥流生成方法产生的密钥流序列对消息进行加密。
为了达到上述发明目的,本发明的技术方案概述如下:
一种面向字节的密钥流生成方法,包括以下步骤,
1)生成步骤,利用线性反馈移位寄存器生成一个源序列;
2)混淆步骤,采用非线性函数F和BOMM函数两部分顺序构成,所述非线性函数F将源序列中的若干字节进行非线性压缩变换,产生一个字节的输出,所述BOMM函数接收非线性函数F的输出作为输入;
3)输出步骤,BOMM的输出和源序列的一个字节按位异或得到密钥流。
所述非线性函数F部分,输入为源序列的4个字节,输出为一个字节,包含一个32比特的记忆单元,具体步骤为:
A、计算F函数输出:取32比特记忆单元的8位作为F函数的输出;
B、更新记忆单元:将源序列的4个字节并置成一个32比特的字,与记忆单元的值异或,异或后的32比特输入4个并列的8进8出的S盒,4个S盒的输出进入一个线性变换,线性变换的输出更新寄存器的值;
BOMM函数部分,输入、输出均为一个8比特字节。此处将F函数的输出作为BOMM的输入。BOMM函数结构包含16个记忆单元,每个记忆单元存放一个字节,还包含2个8进8出的S盒,具体步骤为:
A、计算BOMM输出:取输入字节的高4比特的值作为h,用第h个(从零开始计数)记忆单元的内容与输入字节异或后作为BOMM的输出;
B、更新记忆单元:取输入字节的低4比特值作为1,将输入字节经过S盒运算后的结果与第1个记忆单元的值异或,用于更新第1个记忆单元的值;
将已更新过的第1个记忆单元的值经过S盒的变换后与第h个记忆单元的值异或,用于更新第h个记忆单元的值;
所述生成步骤采用有限域上的本原多项式作为线性反馈移位寄存器的反馈多项式。
为了达到上述另一发明目的,本发明的技术方案概述如下:
一种加密方法,其步骤包括:
1)将加密密钥和初始向量利用密钥扩展算法装入线性反馈移位寄存器,并进行初始化操作;
2)生成一个字节的密钥流,方法如下:
2-1)运行非线性函数F,具体包括:
A、取32比特记忆单元的8比特作为F函数的输出;
B、将源序列的4个字节并置成一个32比特的字,与记忆单元的值异或;
C、异或后的32比特输入4个并列的8进8出的S盒;
D、4个S盒的输出进入一个线性变换,线性变换的输出更新记忆单元的值;
2-2)运行BOMM函数,以F函数的输出作为输入,具体包括:
A、取输入字节的高4比特的值作为h,用第h个记忆单元的的内容与输入字节异或后作为BOMM的输出;
B、取输入字节的低4比特值作为1,将输入一经过S盒运算后的结果与第1个记忆单元的值异或,用于更新第1个记忆单元的值;
C、将已更新过的第1个记忆单元的值经过S盒的变换后与第h个记忆单元的值异或后用于更新第h个记忆单元的值;
2-3)输出步骤,BOMM的输出和源序列的一个字节按位异或得到密钥流。
2-4)对线性反馈移位寄存器状态进行更新。
3)产生的密钥流字节与要加密的消息的一个字节按位异或,实现对这个消息字节的加密;
4)重复步骤2)、3)实现对所有原始消息的加密,并将加密消息发送到消息接收方;
5)消息接收方拥有与加密密钥相同的解密密钥和初始向量,利用步骤1)对所有寄存器赋初值。
6)利用步骤2)生成密钥流的方法,得到一个字节的密钥流;
7)产生的密钥流与加密消息的一个字节按位异或,实现对这个加密消息字节的解密;
8)重复步骤6)、7)实现对加密消息的解密,得到原始消息。
所述步骤1)利用密钥扩展算法将加密密钥和初始向量装入线性反馈移位寄存器。
生成密钥流之前:
初始化操作为重复执行以下步骤若干次:
步骤2-1),步骤2-2),步骤2-4)并将BOMM的输出参与寄存器更新;
本发明的有益效果:本发明生成的密钥流序列,具有良好的随机性和非线性性,并且适合软硬件快速实现。利用本发明生成的密钥流进行加密的方法具有更好的安全性。
附图说明
图1为本发明密钥流生成方法基本步骤示意图。
图2为本发明密钥流生成方法F函数结构图。
图3为本发明密钥流生成方法BOMM函数结构图。
图4为本发明密钥流生成方法具体实施例整体结构图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细描述:
图1是本发明密钥流生成方法的基本步骤示意图,包括各个步骤及各步骤间的输入输出关系。其中,生成步骤产生随机性好、周期长的源序列。混淆步骤分为非线性函数F和BOMM函数两部分。F将源序列中的一些字节进行非线性压缩变换,产生一个字节的输出。BOMM接收F函数的输出字节作为输入,根据16个记忆单元的值产生输出并更新记忆单元的值。输出步骤将混淆步骤的输出和源序列一个字节异或得到密钥字。
图2是本发明密钥流生成方法的F函数结构图。
F函数包括一个32比特的记忆单元,4个并置的8进8出S盒,一个线性变换,具体运行步骤为:
A、取32比特记忆单元的8比特作为F函数的输出;
B、将源序列的4个字节并置成一个32比特的字,与记忆单元的值异或;
C、异或后的32比特输入4个并列的8进8出的S盒;
D、4个S盒的输出进入一个线性变换,线性变换的输出更新记忆单元的值;
图3是本发明密钥流生成方法的BOMM函数结构图。
BOMM结构,输入、输出均为一个8比特字节。BOMM结构包含16个记忆单元,每个记忆单元存放一个字节。包含2个8进8出的S盒。具体步骤为:
A、取输入字节的高4比特的值作为h,用第h个记忆单元的的内容与输入字节异或后作为BOMM的输出;
B、取输入字节的低4比特值作为l,将第1个记忆单元的值与输入字节经过S盒运算后的结果异或,用于更新第l个记忆单元的值;
C、将已更新过的第l个记忆单元的值经过S盒的变换后与第h个记忆单元的值异或后用于更新第h个记忆单元的值;
本发明密钥流生成方法的实施由密钥流生成器完成,密钥流生成器主要由以下三个模块构成:
(1)生成模块,密钥流生成器的驱动部分。
(2)混淆模块,即非线性压缩运算。
(3)输出模块,组合变换输出密钥流。
为了更好的理解本发明,下面结合具体实施方式对本发明进行更为详细的描述。图4为本发明密钥流生成方法具体实施框图。此实施方式即为一个密钥流生成器。
首先,对本发明中出现的符号做如下约定:
=整数的赋值
Figure GSA00000123098200051
按位异或运算
a||b子串a和b的连接运算
a<<<c将a循环左移c位
a→b赋值,表示将a的值赋给b
下面,依次介绍密钥流生成器的3个模块与密钥流序列生成流程。如图4所示:
(1)生成模块执行生成步骤,此模块是密钥流生成器的驱动部分。目的是提供周期长、随机性质良好的源序列。一般由线性反馈移位寄存器实现。本实施例线性反馈移位寄存器(LFSR)定义在有限域
Figure GSA00000123098200052
上,共包含32个字节寄存器单元si,0≤i≤31。其特征多项式为
f ( x ) = x 32 + x 2 9 + αx 24 + α - 1 x 17 + x 15 + x 11 αx 5 + x 2 + α - 1 ∈ F 2 8 [ x ]
其中α为二元域F2上多项式x8+x7+x5+x3+1的根。
设s={st}t≥0为f(x)生成的有限域
Figure GSA00000123098200054
上的序列。则对任意t≥0,有
st+32=st+29+αst+24-1st+17+st+15+st+11+αst+5+st+2-1st
(2)混淆模块对源序列进行非线性压缩运算,分为F函数和BOMM函数两部分。
A、非线性函数F
非线性函数F是一个从32比特到8比特的压缩函数,其内部包含一个32比特的记忆单元R。非线性函数F的32比特的输入为LFSR的4个寄存器单元s31,s26,s20,s7的取值,输出一个字节w。参见附图2。
其中S1是一个8×8的S盒置换,见表1;γ是由4个S1并置而成;θ是一个线性变换,其与分组密码算法SMS4的扩散层变换相同,定义如下:
C = &theta; ( B ) = B &CirclePlus; ( B < < < 2 ) &CirclePlus; ( B < < < 10 ) &CirclePlus; ( B < < < 18 ) &CirclePlus; ( B < < < 24 ) ,
其中B和C均是32比特的串,<<<为32比特循环移位运算;T是一个截取函数,表示从当前输入中截取最左边8比特的组成的字节。
表1S盒S1
  55   C2   63   71   3B   C8   47   86   9F   3C   DA   5B   29   AA   FD   77
  8C   C5   94   0C   A6   1A   13   00   E3   A8   16   72   40   F9   F8   42
  44   26   68   96   81   D9   45   3E   10   76   C6   A7   8B   39   43   E1
  3A   B5   56   2A   C0   6D   B3   05   22   66   BF   DC   0B   FA   62   48
  DD   20   11   06   36   C9   C1   CF   F6   27   52   BB   69   F5   D4   87
  7F   84   4C   D2   9C   57   A4   BC   4F   9A   DF   FE   D6   8D   7A   EB
  2B   53   D8   5C   A1   14   17   FB   23   D5   7D   30   67   73   08   09
  EE   B7   70   3F   61   B2   19   8E   4E   E5   4B   93   8F   5D   DB   A9
  AD   F1   AE   2E   CB   0D   FC   F4   2D   46   6E   1D   97   E8   D1   E9
  4D   37   A5   75   5E   83   9E   AB   82   9D   B9   1C   E0   CD   49   89
  01   B6   BD   58   24   A2   5F   38   78   99   15   90   50   B8   95   E4
  D0   91   C7   CE   ED   0F   B4   6F   A0   CC   F0   02   4A   79   C3   DE
  A3   EF   EA   51   E6   6B   18   EC   1B   2C   80   F7   74   E7   FF   21
  5A   6A   54   1E   41   31   92   35   C4   33   07   0A   BA   7E   0E   34
  88   B1   98   7C   F3   3D   60   6C   7B   CA   D3   1F   32   65   04   28
  64   BE   85   9B   2F   59   8A   D7   B0   25   AC   AF   12   03   E2   F2
注:上述S1盒表数据采用十六进制算法。
设t时刻非线性函数的输入为st+31,st+26,st+20,st+7,其分别对应着LFSR寄存器单元s31,s26,s20,s7在t时刻的取值。设记忆单元R的取值为Rt,更新为Rt+1,输出为wt
记Xt=st+31||st+26||st+20||st+7。则有:
R t + 1 = &theta; ( &gamma; ( R t &CirclePlus; X t ) ) ,
wt=T(Rt)。
B、BOMM函数
BOMM是一个8进8出的有限状态机,输入一个8比特的字节x,为非线性函数F的输出,输出为一个8比特的字节y。此外BOMM还包含16个8比特的字节记忆单元yi,0≤i≤15。
BOMM计算过程如下:
BOMM(x)
{
1.x=h||l,h为x的高4比特,l为x的低4比特;
2. y = y h &CirclePlus; x ;
3. y l = y l &CirclePlus; X 2 ( x ) ;
4. y h = y h &CirclePlus; S 2 ( y l ) ;
}
其中,S2为8×8的S盒置换,定义见表2。
表2S盒S2
  61   97   FF   E9   66   56   F1   F3   54   72   CC   4D   85   52   7A   70
  D0   2E   4C   58   BE   88   7F   5A   2F   1B   47   AF   9B   D5   BF   81
  C3   4E   86   2D   6A   9C   CE   20   2B   53   6D   FD   3C   BC   33   22
  F7   59   C9   63   6E   8D   DD   F2   E3   1A   75   DA   13   1D   68   42
  A4   3F   B7   46   90   12   73   EB   FA   F6   09   40   A5   E0   B4   B1
  51   8E   06   34   7D   DF   99   6F   AA   0B   80   95   25   EA   87   CD
  DC   0C   43   FB   A7   BD   9E   FC   EE   9F   74   B6   CF   EF   16   0F
  78   D1   92   64   D6   84   48   41   08   60   5D   2A   B8   4F   E2   69
  01   C1   31   5F   62   49   B2   93   00   CB   04   18   07   71   17   E4
  AC   8B   B0   7E   F8   44   5B   AD   98   A0   27   4B   3A   B5   F0   83
  F9   14   E7   23   77   D2   10   AE   B3   36   30   3B   1C   03   82   38
  0E   7B   50   A6   1F   7C   CA   C2   02   2C   A9   8A   39   15   F4   D9
  A3   55   32   96   C8   8C   C0   05   67   1E   EC   19   29   89   F5   21
  37   BB   E1   57   A2   C7   E6   8F   AB   91   35   28   D3   D7   79   BA
  A1   6C   B9   DE   A8   5E   FE   6B   C5   ED   65   9A   45   C6   C4   9D
  94   24   0D   0A   E5   76   3D   E8   26   5C   D4   4A   D8   11   DB   3E
注:上述S2盒表数据采用十六进制算法。
(3)输出模块,设t时刻生成的密钥字为zt,其是一个8比特的字节。则有
z t = u t &CirclePlus; s t
其中ut和st分别为BOMM和LFSR在t时刻的输出。
在生成密钥流序列之前,首先要将加密密钥和初始向量装入寄存器。设128比特的初始密钥IK和128比特的初始向量IV分别为
IK=IK[0]||IK[1]||IK[2]||...||IK[15]
IV=IV[0]||IV[1]||IV[2]||...||IV[15]
其中IK[i]和IV[i]分别为字节,0≤i≤15。
设LFSR和BOMM的内部初始状态分别为(s0,s1,s2,…,s31)和(y0,y1,y2,…,y15)。则有
si=IK[i]
s i + 16 = IK [ i ] &CirclePlus; IV [ i ]
yi=IV[i]
这里0≤i≤15。
算法的运行过程分为2步:初始化过程和密钥产生过程。
首先将128比特的初始密钥IK和128比特的初始向量IV按上述方法,填充到LFSR和BOMM相应的内部记忆单元,并将非线性函数F的32比特记忆单元R置全0。
然后重复执行下列过程64次:
1)执行非线性函数F一次,并同时更新F的记忆单元R。记F的输出为x,即x=F()。
2)将非线性函数F的输出x作为BOMM的输入,执行BOMM操作一次,并同时更新BOMM的内部状态。记BOMM的输出为y,即y=BOMM(x)。
3)运行LFSR一拍,将BOMM的输出为y参入到LFSR的反馈输出,即
Figure GSA00000123098200083
并用(s1,s2,…,s31,s32)更新LFSR的内部状态。
算法经过初始化过程后将进入密钥产生过程。在该过程中,算法每执行下列过程一次,输出一个密钥字节z。
1)执行非线性函数F一次,并同时更新F的记忆单元R。记F的输出为x,即x=F()。
2)将非线性函数F的输出x作为BOMM的输入,执行BOMM操作一次,并同时更新BOMM的内部状态。记BOMM的输出为y,即y=BOMM(x)。
3)输出密钥字节这里st是LFSR在t时刻的输出。
4)运行LFSR一次,并更新LFSR的内部状态。
算法每个节拍生成一个8比特的密钥字,运行若干节拍,可以得到密钥流序列。
利用本发明的密钥流生成方法对消息进行加密,消息发送方根据加密密钥和初始向量,运用本发明的密钥流生成方法,将所得的密钥流序列与消息序列按位异或,即可实现对原始消息进行加密的目的。消息接收方拥有与加密密钥相同的解密密钥和初始向量,运用本发明的密钥流生成方法,将所得的密钥流序列与接收到的加密消息按位异或,即可实现对消息进行解密的目的,得到原始消息。具体的方法如下:
1、密钥装入:将密钥和初始向量按照实施例中的方法装入LFSR和记忆单元。
2、初始化:初始化方式运行算法若干轮。所谓的初始化方式,即在密钥流生成方法中,不进行输出步骤,把混淆步骤的输出参与到线性反馈移位寄存器的反馈。
3、加密阶段:
1)运行密钥流生成方法一次,产生一个字节的密钥流。
2)将步骤1)产生的密钥流与要加密的消息的一个字节按位异或,实现对这个消息字节的加密。
3)重复步骤1)2)实现对所有消息的加密。
4、解密阶段:消息接收方拥有与加密密钥相同的解密密钥和初始向量,
1)运行密钥流生成方法一次,产生一个字节的密钥流。
2)产生的密钥流与要加密消息的一个字节按位异或,实现对这个加密消息字节的解密;
3)重复步骤1)2)实现对加密消息的解密,得到原始消息。

Claims (7)

1.一种面向字节的密钥流生成方法,包括以下步骤,
1)生成步骤,利用线性反馈移位寄存器生成一个源序列;
2)混淆步骤,采用非线性函数F和BOMM函数两部分顺序构成,所述非线性函数F将源序列中的若干字节进行非线性压缩变换,产生一个字节的输出,所述BOMM函数接收非线性函数F的输出作为输入;
3)输出步骤,BOMM的输出和源序列的一个字节按位异或得到密钥流。
2.如权利要求1所述的方法,其特征在于,所述步骤1)采用有限域
Figure FSA00000123098100011
上的本原多项式作为线性反馈移位寄存器的反馈多项式。
3.如权利要求1所述的方法,其特征在于,所述步骤2)中非线性函数F部分包含一个32比特的记忆单元,输入为源序列的4个字节,输出为一个字节,具体运行步骤为:
A、计算F函数输出:取32比特记忆单元的8位作为F函数的输出;
B、更新记忆单元:将源序列的4个字节并置成一个32比特的字,与记忆单元的值异或,异或后的32比特输入4个并列的8进8出的S盒,4个S盒的输出进入一个线性变换,线性变换的输出更新记忆单元的值。
4.如权利要求1所述的方法,其特征在于,所述步骤2)中BOMM函数部分,包含16个记忆单元,每个记忆单元存放一个字节,具体运行步骤为:
A、计算BOMM输出:取输入字节的高4比特的值作为h,用第h个记忆单元的内容与输入字节异或后作为BOMM的输出;
B、更新记忆单元:取输入字节的低4比特值作为l,将输入字节经过S盒运算后的结果与第l个记忆单元的值异或,用于更新第l个记忆单元的值;
C、将已更新过的第l个记忆单元的值经过S盒的变换后与第h个记忆单元的值异或,用于更新第h个记忆单元的值;
所述记忆单元从零开始计数。
5.一种加密方法,其步骤包括:
1)将密钥和初始向量利用密钥扩展算法装入线性反馈移位寄存器,并进行初始化操作;
2)生成一个字节的密钥流,方法如下:
2-1)运行非线性函数F,具体包括:
A、取32比特记忆单元的8比特作为F函数的输出;
B、将源序列的4个字节并置成一个32比特的字,与记忆单元的值异或;
C、异或后的32比特输入4个并列的8进8出的S盒;
D、4个S盒的输出进入一个线性变换,线性变换的输出更新记忆单元的值;
2-2)运行BOMM函数,以F函数的输出作为输入,具体包括:
A、取输入字节的高4比特的值作为h,用第h个记忆单元的的内容与输入字节异或后作为BOMM的输出;
B、取输入字节的低4比特值作为l,将输入字节经过S盒运算后的结果与第l个记忆单元的值异或,用于更新第l个记忆单元的值;
C、将已更新过的第l个记忆单元的值经过S盒的变换后与第h个记忆单元的值异或后用于更新第h个记忆单元的值;
2-3)输出步骤,BOMM的输出和源序列的一个字节按位异或得到密钥流;
2-4)对线性反馈移位寄存器状态进行更新;
3)产生的密钥流字节与要加密的消息的一个字节按位异或,实现对这个消息字节的加密;
4)重复步骤2)、3)实现对所有原始消息的加密,并将加密消息发送到消息接收方;
5)消息接收方拥有与加密密钥相同的解密密钥和初始向量,利用步骤1)对所有寄存器赋初值;
6)利用步骤2)生成密钥流的方法,得到一个字节的密钥流;
7)产生的密钥流与加密消息的一个字节按位异或,实现对这个加密消息字节的解密;
8)重复步骤6)、7)实现对加密消息的解密,得到原始消息。
6.如权利要求5所述的方法,其特征在于,所述步骤1)利用密钥扩展算法将加密密钥和初始向量装入线性反馈移位寄存器。
7.如权利要求5所述的方法,其特征在于,生成密钥流之前:初始化操作为重复执行以下步骤若干次:步骤2-1),步骤2-2),步骤2-4)并将BOMM的输出参与寄存器更新。
CN2010101779630A 2010-05-14 2010-05-14 一种面向字节的密钥流生成方法及加密方法 Expired - Fee Related CN101826959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010101779630A CN101826959B (zh) 2010-05-14 2010-05-14 一种面向字节的密钥流生成方法及加密方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010101779630A CN101826959B (zh) 2010-05-14 2010-05-14 一种面向字节的密钥流生成方法及加密方法

Publications (2)

Publication Number Publication Date
CN101826959A true CN101826959A (zh) 2010-09-08
CN101826959B CN101826959B (zh) 2012-05-23

Family

ID=42690681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010101779630A Expired - Fee Related CN101826959B (zh) 2010-05-14 2010-05-14 一种面向字节的密钥流生成方法及加密方法

Country Status (1)

Country Link
CN (1) CN101826959B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104753662A (zh) * 2013-12-27 2015-07-01 重庆重邮信科通信技术有限公司 基于aes算法的加密密钥流产生方法
CN104871476A (zh) * 2013-01-11 2015-08-26 高通股份有限公司 用于可计算、大型、可变及安全的替换盒的方法及设备
CN106452778A (zh) * 2011-02-03 2017-02-22 华为技术有限公司 一种用于执行散列函数的设备以及方法
CN111740816A (zh) * 2019-03-25 2020-10-02 山东文斌信息安全技术有限公司 Bwgcf分组密码算法实现方法
CN112134691A (zh) * 2020-10-27 2020-12-25 衡阳师范学院 一种部件可重复的nlcs分组密码实现方法、装置及介质
CN114553424A (zh) * 2022-02-21 2022-05-27 南京航空航天大学 Zuc-256流密码轻量级硬件系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106452778A (zh) * 2011-02-03 2017-02-22 华为技术有限公司 一种用于执行散列函数的设备以及方法
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
CN104753662A (zh) * 2013-12-27 2015-07-01 重庆重邮信科通信技术有限公司 基于aes算法的加密密钥流产生方法
CN104753662B (zh) * 2013-12-27 2019-09-20 锐迪科(重庆)微电子科技有限公司 基于aes算法的加密密钥流产生方法
CN111740816A (zh) * 2019-03-25 2020-10-02 山东文斌信息安全技术有限公司 Bwgcf分组密码算法实现方法
CN111740816B (zh) * 2019-03-25 2023-03-31 山东文斌信息安全技术有限公司 Bwgcf分组密码算法实现方法
CN112134691A (zh) * 2020-10-27 2020-12-25 衡阳师范学院 一种部件可重复的nlcs分组密码实现方法、装置及介质
CN114553424A (zh) * 2022-02-21 2022-05-27 南京航空航天大学 Zuc-256流密码轻量级硬件系统
CN114553424B (zh) * 2022-02-21 2024-03-15 南京航空航天大学 Zuc-256流密码轻量级硬件系统

Also Published As

Publication number Publication date
CN101826959B (zh) 2012-05-23

Similar Documents

Publication Publication Date Title
CN101764686B (zh) 一种用于网络与信息安全的加密方法
CN102185692B (zh) 基于aes加密算法的多模式可重构加密方法
CN101826959B (zh) 一种面向字节的密钥流生成方法及加密方法
CN101841415A (zh) 一种面向字的密钥流生成方法及加密方法
CN101262341A (zh) 一种会务系统中混合加密方法
CN101394268B (zh) 基于广义信息域的高级加密系统及方法
CN101938351B (zh) 一种实现分组密码加密的密钥扩展方法
CN106533656B (zh) 一种基于wsn的密钥多层混合加/解密方法
CN101383703A (zh) 基于广义信息域的动态加密系统及方法
CN104184579A (zh) 基于双伪随机变换的轻量级分组密码vh算法
CN102469173A (zh) 基于组合公钥算法的IPv6网络层可信传输的方法和系统
CN109861809A (zh) 一种实用化的分组随机加解密方法
CN103346875A (zh) 混沌保密通信系统中数字混沌密码的产生方法
CN103458296A (zh) 智能机顶盒安全密钥生成方法
Wu et al. Dynamic and implicit latin square doubly stochastic s-boxes with reversibility
CN103812645A (zh) 基于光通信的会客密钥共享系统及方法
CN103269272A (zh) 一种基于短期证书的密钥封装方法
CN104954136A (zh) 一种云计算环境下网络安全加密装置
CN102013974A (zh) 基于随机变化的非线性步骤的加密方法
CN104320420A (zh) 一种基于aes算法的scada文件加密方法
CN101848078A (zh) 一种密钥流序列扰动方法及加密方法
CN104902471B (zh) 无线传感器网络中基于身份的密钥交换设计方法
CN106921486A (zh) 数据加密的方法和装置
Zhao DES-Co-RSA: a hybrid encryption algorithm based on DES and RSA
CN113852466B (zh) 基于国密sm9的用户撤销方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120523