CN113886804A - 基于并行循环移位寄存器的轻量级流密码生成方法 - Google Patents

基于并行循环移位寄存器的轻量级流密码生成方法 Download PDF

Info

Publication number
CN113886804A
CN113886804A CN202111499101.4A CN202111499101A CN113886804A CN 113886804 A CN113886804 A CN 113886804A CN 202111499101 A CN202111499101 A CN 202111499101A CN 113886804 A CN113886804 A CN 113886804A
Authority
CN
China
Prior art keywords
shift register
parallel
cyclic shift
initial
mod
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
CN202111499101.4A
Other languages
English (en)
Other versions
CN113886804B (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.)
Jiangsu Jiaqing Information Technology Co ltd
Nanjing University of Aeronautics and Astronautics
Original Assignee
Jiangsu Jiaqing Information Technology Co ltd
Nanjing University of Aeronautics and Astronautics
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 Jiangsu Jiaqing Information Technology Co ltd, Nanjing University of Aeronautics and Astronautics filed Critical Jiangsu Jiaqing Information Technology Co ltd
Priority to CN202111499101.4A priority Critical patent/CN113886804B/zh
Publication of CN113886804A publication Critical patent/CN113886804A/zh
Application granted granted Critical
Publication of CN113886804B publication Critical patent/CN113886804B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • G06F21/46Structures or tools for the administration of authentication by designing passwords or checking the strength of passwords
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30134Register stacks; shift registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于并行循环移位寄存器的轻量级流密码生成方法,包括:将初始密钥K和初始向量IV导入第一并行循环移位寄存器,对初始密钥K进行编排,生成两个初始值;将两个初始值分别导入第二并行循环移位寄存器和第三并行循环移位寄存器,将第二并行循环移位寄存器和第三并行循环移位寄存器的输出值进行异或处理以产生密钥流KS。本发明具有实现简单,效率高等特点,主要用于网络通信与信息系统安全中的数据加解密,同时适用于资源受限设备与资源不受限设备。

Description

基于并行循环移位寄存器的轻量级流密码生成方法
技术领域
本发明涉及轻量级流密码技术领域,具体而言涉及一种基于并行循环移位寄存器的轻量级流密码生成方法(LSPRR)。
背景技术
密码体制分为对称密码和非对称密码。非对称密码的加密密钥公开,常用于网络与信息系统安全中的密钥交换与数字签名等;对称密码加密速度快、效率高,常用于网络与信息系统安全中的数据加解密。对称密码又分为流密码和分组密码,两种对称密码各有优缺点。常规密码在设计上侧重于提供高度的安全性,没有考虑算法在资源受限设备上的应用;而轻量级密码在设计上则侧重于为资源受限设备提供适度的安全性,并且注重算法实现时的性能。当前流密码的设计主要基于线性反馈移位寄存器LFSR和非线性反馈移位寄存器NLFSR等,以下合称(N)LFSR。例如,第2代移动通信系统GSM的加密标准A5算法、蓝牙加密标准E0算法和流密码国际标准SNOW2算法都采用了LFSR;Hash函数标准SHA1和SHA2的消息扩展算法以及第3代标准SHA3的多个候选算法采用了(N)LFSR或其它发生器。轻量级流密码的设计也大多采用(N)LFSR,例如,Grain系列算法,WG-7算法以及LIZARD算法等。
对于n级(N)LFSR,其当前输出比特都是前n比特的逻辑函数,这样的逻辑函数共有
Figure 936276DEST_PATH_IMAGE001
个,其中线性函数有
Figure 681114DEST_PATH_IMAGE002
个,非线性函数有
Figure 460851DEST_PATH_IMAGE001
-
Figure 918377DEST_PATH_IMAGE002
个。n级NLFSR的最大周期为
Figure 732749DEST_PATH_IMAGE002
,n级LFSR 的最大周期为
Figure 368261DEST_PATH_IMAGE002
-1。对于n级LFSR,其反馈模式为:
Figure 635294DEST_PATH_IMAGE003
=
Figure 896512DEST_PATH_IMAGE004
Figure 378440DEST_PATH_IMAGE005
⊕ … ⊕
Figure 434120DEST_PATH_IMAGE006
其中,常数
Figure 188450DEST_PATH_IMAGE007
∈{0,1},1 ≤ k ≤ n-1,⊕是异或即模2加法。当初始输入的n比特
Figure 925462DEST_PATH_IMAGE008
Figure 448847DEST_PATH_IMAGE009
全为0时,LFSR的输出恒为0,因此,n级LFSR的最大周期为
Figure 691740DEST_PATH_IMAGE002
-1。当且仅当LFSR的 反馈多项式为本原多项式时,LFSR的周期才能达到最大。但产生一个本原多项式并不容易, 需借助数学软件包。SHA1的消息扩展算法采用以下模式由前16个字
Figure 933366DEST_PATH_IMAGE010
Figure 208489DEST_PATH_IMAGE011
递推下一 个字
Figure 914277DEST_PATH_IMAGE012
Figure 249444DEST_PATH_IMAGE012
= (
Figure 978365DEST_PATH_IMAGE013
Figure 867299DEST_PATH_IMAGE014
Figure 427594DEST_PATH_IMAGE015
Figure 199241DEST_PATH_IMAGE010
) <<< 1
其中,<<<1表示循环左移1位,字长m为32b(比特)。这相当于字长m为32 bits的 16级发生器,如果输入的初始16个字
Figure 149879DEST_PATH_IMAGE016
Figure 907751DEST_PATH_IMAGE017
全为0,则输出恒为0,因此,其最大周期小于 等于
Figure 260235DEST_PATH_IMAGE018
-1。而并行循环移位寄存器PRR作为一种新型反馈移位寄存器,当字长为m比特 时,n级PRR的周期大于
Figure 202783DEST_PATH_IMAGE019
(N)LFSR可采用并行m个(N)LFSR的方式来提高软件实现效率,相当于字长为m比 特,但最大周期还是小于等于
Figure 453767DEST_PATH_IMAGE002
,除非采用像SNOW2一样模
Figure 874384DEST_PATH_IMAGE020
的本原多项式,最大周期才小 于等于
Figure 346953DEST_PATH_IMAGE019
。也就是说,对于不同的字长m和不同的级数n,(N)LFSR要寻找不同的反馈模 式,周期才能达到最大。对于PRR而言,不管字长m和级数n为多大,PRR存在统一的反馈模式, 无须寻找达到最大周期的反馈模式,可以直接适应各种平台,包括将来128位以上的平台。 在32位平台下(2.4GHz双核CPU、2GB内存、Windows XP、C语言),SNOW2的LFSR速度为630MB/ s;SHA1和SHA256的消息扩展算法速度都小于400MB/s;而PRR的速度达1GB/s。对于周期达到 最大的(N)LFSR,其输出是绝对均匀的,遍历了所有状态才会重复。测试表明,PRR产生的输 出是伪随机均匀的,又能遍历所有状态。
公开号为CN105553647A的中国专利(公开日2016年5月4日)中公开了一种基于非线性循环移位寄存器的轻量级流密码技术LSNR2,采用三个NRR来产生密钥流。公开号为CN105897403A的中国专利(公开日2016年8月24日)中公开了一种基于并行循环移位寄存器的流密码技术SPRR,采用1个PRR和4个NRR来产生密钥流。然而,虽然SPRR和LSNR2的效率高于常见流密码,但相对于日益增加的物联网数据传输速率要求来说,仍显不足。
发明内容
本发明针对现有技术中的不足,提供一种基于并行循环移位寄存器的轻量级流密码生成方法,具有实现简单,效率高等特点,主要用于网络通信与信息系统安全中的数据加解密,且同时适用于资源受限设备与资源不受限设备。
为实现上述目的,本发明采用以下技术方案:
本发明实施例提出了一种基于并行循环移位寄存器的轻量级流密码生成方法,所述生成方法包括以下步骤:
将初始密钥K和初始向量IV导入第一并行循环移位寄存器,对初始密钥K进行编 排,生成两个初始值
Figure 460403DEST_PATH_IMAGE021
Figure 447950DEST_PATH_IMAGE022
;初始密钥K和初始向量IV等长;
将两个初始值分别导入第二并行循环移位寄存器和第三并行循环移位寄存器,将第二并行循环移位寄存器和第三并行循环移位寄存器的输出值进行异或处理以产生密钥流KS;
Figure 672258DEST_PATH_IMAGE023
Figure 546805DEST_PATH_IMAGE024
其中,第一并行循环移位寄存器、第二并行循环移位寄存器和第三并行循环移位 寄存器的级数n分别为4、5和4;第一并行循环移位寄存器、第二并行循环移位寄存器和第三 并行循环移位寄存器的字长m均为32比特;
Figure 831155DEST_PATH_IMAGE025
为第二并行循环移位寄存器第k次输出的 第i个字;
Figure 243682DEST_PATH_IMAGE026
为第三并行循环移位寄存器第k次输出的第i个字,
Figure 333998DEST_PATH_IMAGE027
Figure 331560DEST_PATH_IMAGE028
Figure 521232DEST_PATH_IMAGE029
均为32位字;k ≥ 1,0≤i≤3;⊕表示异或。
进一步地,所述初始密钥K的长度Lk ≥ 16B。
进一步地,当初始密钥K长度为16B、字长m为32b时,将初始密钥K和初始向量IV表示成4个32位字级联:
K=(
Figure 483372DEST_PATH_IMAGE030
||
Figure 49483DEST_PATH_IMAGE031
||
Figure 164200DEST_PATH_IMAGE032
||
Figure 587092DEST_PATH_IMAGE033
);IV =(
Figure 974211DEST_PATH_IMAGE034
||
Figure 157061DEST_PATH_IMAGE035
||
Figure 47657DEST_PATH_IMAGE036
||
Figure 720078DEST_PATH_IMAGE037
);
第一并行循环移位寄存器的初值为
Figure 328914DEST_PATH_IMAGE038
=(
Figure 502406DEST_PATH_IMAGE039
||
Figure 385524DEST_PATH_IMAGE040
||
Figure 353480DEST_PATH_IMAGE041
||
Figure 511929DEST_PATH_IMAGE042
) =K⊕ IV,其反 馈模式为:
For k=1 to 16
{
Figure 36582DEST_PATH_IMAGE043
=(
Figure 901770DEST_PATH_IMAGE044
+...+
Figure 102944DEST_PATH_IMAGE045
) mod
Figure 686372DEST_PATH_IMAGE046
;其中k ≥ 1,n=4,m=32;
For i= 1 to n-1 {jkn + i
Figure 936088DEST_PATH_IMAGE047
= [
Figure 734411DEST_PATH_IMAGE043
<<< (j mod m)] +
Figure 44170DEST_PATH_IMAGE048
+ i mod
Figure 990260DEST_PATH_IMAGE046
}}。
进一步地,所述第二并行循环移位寄存器的初值为:
Figure 43667DEST_PATH_IMAGE049
=(
Figure 883447DEST_PATH_IMAGE050
||
Figure 426423DEST_PATH_IMAGE051
||
Figure 718865DEST_PATH_IMAGE052
||
Figure 575962DEST_PATH_IMAGE053
) =(
Figure 270249DEST_PATH_IMAGE054
Figure 726070DEST_PATH_IMAGE055
) || (
Figure 771386DEST_PATH_IMAGE056
Figure 166596DEST_PATH_IMAGE057
) || (
Figure 777706DEST_PATH_IMAGE058
Figure 678797DEST_PATH_IMAGE059
) || (
Figure 945830DEST_PATH_IMAGE060
Figure 207047DEST_PATH_IMAGE061
) ||
Figure 423396DEST_PATH_IMAGE062
对于k ≥ 1,第二并行循环移位寄存器的反馈模式为:
Figure 682339DEST_PATH_IMAGE063
=(
Figure 436668DEST_PATH_IMAGE064
+...+
Figure 173680DEST_PATH_IMAGE065
) mod
Figure 759382DEST_PATH_IMAGE046
;其中k ≥ 1,n=5,m=32;
For i=1 to n-1 {jkn +i
Figure 189227DEST_PATH_IMAGE066
=[
Figure 165273DEST_PATH_IMAGE063
<<<(j mod m)]+
Figure 519025DEST_PATH_IMAGE067
+ i mod
Figure 224813DEST_PATH_IMAGE046
}。
进一步地,所述第三并行循环移位寄存器的初值为:
Figure 559979DEST_PATH_IMAGE068
=(
Figure 99020DEST_PATH_IMAGE069
||
Figure 177835DEST_PATH_IMAGE070
||
Figure 738129DEST_PATH_IMAGE071
||
Figure 244197DEST_PATH_IMAGE072
) =(
Figure 460414DEST_PATH_IMAGE073
||
Figure 155969DEST_PATH_IMAGE074
||
Figure 508453DEST_PATH_IMAGE075
||
Figure 451001DEST_PATH_IMAGE076
);
对于k ≥ 1,第三并行循环移位寄存器的反馈模式为:
Figure 951253DEST_PATH_IMAGE077
=(
Figure 371870DEST_PATH_IMAGE078
+...+
Figure 844439DEST_PATH_IMAGE079
) mod
Figure 692310DEST_PATH_IMAGE046
;其中k ≥ 1,n=4,m=32;
For i=1 to n-1 {jkn +i
Figure 430590DEST_PATH_IMAGE080
=[
Figure 654898DEST_PATH_IMAGE077
<<<(j mod m)]+
Figure 981974DEST_PATH_IMAGE081
+ i mod
Figure 328642DEST_PATH_IMAGE046
}。
进一步地,所述生成方法还包括:
基于密钥流KS,加密方式为:密文C=P⊕KS;解密方式为:明文P=C⊕KS。
本发明的有益效果是:
本发明的基于并行循环移位寄存器的轻量级流密码生成方法属于一种轻量级流密码,具有实现简单,效率高等特点,主要用于网络通信与信息系统安全中的数据加解密,LSPRR同时适用于资源受限设备与资源不受限设备。较之以前采用PRR结合NRR设计的流密码,本发明只采用PRR设计的流密码得到了进一步的轻量化,同时提升了软硬件效率。。SPRR、LSNR2、LSPRR单/双核的效率分别为:62/119、80/130、130/169MB/s。NRR是串行的,而PRR是并行的,硬件实现时,LSPRR更有优势。
本发明公开的基于并行循环移位寄存器的轻量级流密码生成方法,在5级PRR的初值前4个字在前面密钥编排的基础上再与初始密钥K相异或,还可以消除前面初始密钥K与初始向量IV相异或的线性。
附图说明
图1是本发明实施例的轻量级流密码的生成方法流程图。
图中:⊕表示异或;PRR表示并行循环移位寄存器。
具体实施方式
现在结合附图对本发明作进一步详细的说明。
需要注意的是,发明中所引用的如“上”、“下”、“左”、“右”、“前”、“后”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
图1是本发明实施例的轻量级流密码的生成方法流程图。参见图1,该生成方法包括以下步骤:
将初始密钥K和初始向量IV导入第一并行循环移位寄存器,对初始密钥K进行编 排,生成两个初始值
Figure 741168DEST_PATH_IMAGE049
Figure 503588DEST_PATH_IMAGE068
;初始密钥K和初始向量IV等长。
将两个初始值分别导入第二并行循环移位寄存器和第三并行循环移位寄存器,将第二并行循环移位寄存器和第三并行循环移位寄存器的输出值进行异或处理以产生密钥流KS:
Figure 685171DEST_PATH_IMAGE082
Figure 953472DEST_PATH_IMAGE083
其中,第一并行循环移位寄存器、第二并行循环移位寄存器和第三并行循环移位 寄存器的级数n分别为4、5和4;第一并行循环移位寄存器、第二并行循环移位寄存器和第三 并行循环移位寄存器的字长m均为32比特;
Figure 915612DEST_PATH_IMAGE084
为第二并行循环移位寄存器第k次输出的 第i个字;
Figure 481722DEST_PATH_IMAGE085
为第三并行循环移位寄存器第k次输出的第i个字,
Figure 517811DEST_PATH_IMAGE086
Figure 143965DEST_PATH_IMAGE084
Figure 347063DEST_PATH_IMAGE085
均为32位字;k ≥ 1,0≤i≤3;⊕表示异或。
当字长为m比特、n级 PRR 的初始值为
Figure 451285DEST_PATH_IMAGE039
Figure 669777DEST_PATH_IMAGE087
时,PRR 采用以下模式由前n个字 递推后n个字。
(1) 先对前n个字求和:
Figure 466832DEST_PATH_IMAGE043
= (
Figure 888717DEST_PATH_IMAGE044
+...+
Figure 62209DEST_PATH_IMAGE045
) mod
Figure 72890DEST_PATH_IMAGE046
;其中k ≥1,模运算 mod表示求余数。
(2) 并行计算后n-1个字:
For i= 1 to n-1 {jkn +i
Figure 916213DEST_PATH_IMAGE047
=[
Figure 12345DEST_PATH_IMAGE043
<<<(j mod m)] +
Figure 520686DEST_PATH_IMAGE088
+ i mod
Figure 651453DEST_PATH_IMAGE046
}
其中,n ≥ 2;字长m取平台的位数;<<<j表示循环左移j位;
Figure 790311DEST_PATH_IMAGE039
Figure 186788DEST_PATH_IMAGE087
均为m 比特长的字,初始值不受限。
流密码的加解密方式为:
CP⊕ KS;PC⊕ KS。
其中,C为密文,P为明文,KS为密钥流,流密码的关键就是如何产生密钥流。本实施例的LSPRR采用了3个PRR:2个4级和1个5级PRR;其中一个4级PRR0用于密钥编排,生成另2个PRR(PRR1和PRR2)的初始值;2个PRR的输出值进行异或来产生密钥流。LSPRR产生密钥流的过程用KS= LSPRR(K,IV)表示。其中输入参数K为长度Lk≥16B(字节)的初始密钥;参数IV是保密通信中用于抗重放攻击的初始向量,与初始密钥K等长。当初始密钥K长度为16B,字长m为32位时,将初始密钥K和初始IV表示成4个32位字级联:
K=(
Figure 436504DEST_PATH_IMAGE055
||
Figure 421777DEST_PATH_IMAGE057
||
Figure 731536DEST_PATH_IMAGE059
||
Figure 864577DEST_PATH_IMAGE061
);IV =(
Figure 917984DEST_PATH_IMAGE034
||
Figure 757764DEST_PATH_IMAGE035
||
Figure 238424DEST_PATH_IMAGE036
||
Figure 340984DEST_PATH_IMAGE037
)。
LSPRR中用于密钥编排的PRR0初值为
Figure 198082DEST_PATH_IMAGE038
=(
Figure 892368DEST_PATH_IMAGE039
||
Figure 543930DEST_PATH_IMAGE040
||
Figure 651563DEST_PATH_IMAGE041
||
Figure 46772DEST_PATH_IMAGE042
)=K⊕IV。其反馈 模式为:
Fork=1to16
{
Figure 595565DEST_PATH_IMAGE043
=(
Figure 496656DEST_PATH_IMAGE044
+...+
Figure 763690DEST_PATH_IMAGE045
) mod
Figure 697011DEST_PATH_IMAGE046
;其中k≥ 1,n=4,m=32;
For i= 1to n-1{jkn+i
Figure 365889DEST_PATH_IMAGE047
=[
Figure 687149DEST_PATH_IMAGE043
<<<(j mod m)]+
Figure 175899DEST_PATH_IMAGE048
+ i mod
Figure 178490DEST_PATH_IMAGE046
}}。
用于产生密钥流的两个PRR(PRR1和PRR2)的初值分别为:
Figure 514925DEST_PATH_IMAGE049
=(
Figure 679190DEST_PATH_IMAGE050
||
Figure 920816DEST_PATH_IMAGE051
||
Figure 461518DEST_PATH_IMAGE052
||
Figure 901727DEST_PATH_IMAGE053
) =(
Figure 502473DEST_PATH_IMAGE054
Figure 965815DEST_PATH_IMAGE055
) || (
Figure 123258DEST_PATH_IMAGE056
Figure 621235DEST_PATH_IMAGE057
) || (
Figure 127303DEST_PATH_IMAGE058
Figure 343521DEST_PATH_IMAGE059
) || (
Figure 288343DEST_PATH_IMAGE060
Figure 640827DEST_PATH_IMAGE061
) ||
Figure 317796DEST_PATH_IMAGE062
Figure 755730DEST_PATH_IMAGE068
=(
Figure 269624DEST_PATH_IMAGE069
||
Figure 476615DEST_PATH_IMAGE070
||
Figure 590064DEST_PATH_IMAGE071
||
Figure 515295DEST_PATH_IMAGE072
) =(
Figure 801920DEST_PATH_IMAGE073
||
Figure 942045DEST_PATH_IMAGE074
||
Figure 226396DEST_PATH_IMAGE075
||
Figure 373344DEST_PATH_IMAGE076
)。
对于k ≥ 1,用于产生密钥流的两个PRR(PRR1和PRR2)的反馈模式分别为:
Figure 401343DEST_PATH_IMAGE063
=(
Figure 645242DEST_PATH_IMAGE064
+...+
Figure 100494DEST_PATH_IMAGE065
) mod
Figure 317DEST_PATH_IMAGE046
;其中k≥ 1,n=5,m=32;
For i= 1to n-1{jkn+ i
Figure 379477DEST_PATH_IMAGE066
= [
Figure 415566DEST_PATH_IMAGE063
<<< (j mod m)]+
Figure 41720DEST_PATH_IMAGE067
+ i mod
Figure 163259DEST_PATH_IMAGE046
}
Figure 595378DEST_PATH_IMAGE077
=(
Figure 751553DEST_PATH_IMAGE078
+...+
Figure 548607DEST_PATH_IMAGE079
) mod
Figure 970492DEST_PATH_IMAGE046
;其中k≥ 1,n=4,m=32;
For i= 1to n-1{jkn+i
Figure 878406DEST_PATH_IMAGE080
=[
Figure 889087DEST_PATH_IMAGE077
<<<(j mod m)]+
Figure 857043DEST_PATH_IMAGE081
+i mod
Figure 15492DEST_PATH_IMAGE046
}。
LSPRR的输出密钥流KS由2个PRR(PRR1和PRR2)的输出进行异或来产生:
Figure 727096DEST_PATH_IMAGE089
Figure 857863DEST_PATH_IMAGE090
;其中k ≥ 1,0≤i≤3。
相比常用流密码而言,本实施例的轻量级流密码LSPRR优点如下:
(1)良好的伪随机性。统计分析是评估密码算法伪随机性的常用方法,本发明采用依赖性测试和NIST测试套件来评估LSPRR生成密钥流的伪随机性,测试结果如表1和表2所示。
对于依赖性测试,令初始密钥 key 为 0,利用PRR产生10000个密钥样本。对于每 个密钥,改变密钥的每一位,将输出的比特流与原密钥产生的比特流进行比较统计,测试结 果如表1所示,其中
Figure 806840DEST_PATH_IMAGE091
表示严格雪崩准则度,
Figure 124689DEST_PATH_IMAGE092
表示雪崩效应度,
Figure 639984DEST_PATH_IMAGE093
表示完备度,参考值 由常用算法的测试结果得到。测试表明,LSPRR密钥编排时仅需9次迭代便能达到参考标准, 因此LSPRR采用16次迭代的依赖性检测是成功的。
表1 LSPRR的依赖性测试结果
Figure 625257DEST_PATH_IMAGE094
对于NIST测试来说,如果计算结果为接受水平Pv< 0.01,则认为流密码是非随机的;如果Pv≥ 0.01,则认为流密码是随机的。测试结果如表2所示,LSPPR生成的密钥流通过全部15项测试,因此LSPRR生成的密钥流具有良好的伪随机性。
表2 LSPRR输出的伪随机性测试结果
Figure 997333DEST_PATH_IMAGE095
(2)安全性更高。由于循环移位数j不固定,因此字长为m比特时,n级PRR的周期大 于
Figure 802478DEST_PATH_IMAGE096
。经测试,当字长为 8比特时,对于不同的反馈模式以及不同的级数,PRR的周期如 表3所示。在第一种反馈模式下, 2 级 PRR 的周期为
Figure 855884DEST_PATH_IMAGE097
B(字节);3 级 PRR 的周期为 331,573248 >
Figure 508714DEST_PATH_IMAGE098
B。在第二种反馈模式下,测试得 2 级 PRR 的周期为 8569856 >
Figure 989374DEST_PATH_IMAGE099
B ;3 级 PRR 的周期为 2639,364096 >
Figure 547394DEST_PATH_IMAGE098
B。测试表明,字长为m比特 时,n级PRR的周期大于
Figure 138912DEST_PATH_IMAGE096
,且周期与寄存器的初值、循环移位数j的初值无关。
表3 2级和3级PRR的周期
Figure 161095DEST_PATH_IMAGE100
对于周期达到最大的 LFSR,其输出状态 1~
Figure 625705DEST_PATH_IMAGE101
-1 是绝对均匀的;对于周期达到 最大的NLFSR,其输出状态0~
Figure 405443DEST_PATH_IMAGE101
-1是绝对均匀的,遍历了所有状态才会重复。测试表明,PRR 产生的输出是伪随机均匀的,没有遍历所有状态也可能出现重复。寄存器状态重复不一定 是周期重复,当寄存器的状态和循环移位数j的状态同时重复才是周期重复。因此,PRR 的 不可预测性和安全性优于 (N)LFSR。
LSPRR的密钥流生成使用两个不同级数的PRR,可以通过自反馈迭代更新不断提高密码算法的非线性度,增加了攻击者建立和求解非线性方程的难度,使得代数攻击难以破解。同时,因为PRR具有较高的非线性,LSPRR可以抵抗一些线性逼近攻击以及错误攻击。
(3) 软件效率更高。单核时,常用对称密码的速度不超过50MB/s;双核时不超过100MB/s。2GHz单核时,RC6-ECB的加密速度,即RC6-CTR和RC6-OFB产生密钥流的速度约为45MB/s;RC4、AES-CTR和AES-OFB产生密钥流的速度约为30MB/s。2.4GHz双核时,AES-CTR和AES-OFB产生密钥流的速度约为75MB/s。2GHz单核时,LSPRR产生密钥流的速度约为130 MB/s;2.4GHz双核时,LSPRR产生密钥流的速度约为170 MB/s。LSPRR用于产生密钥流的2个PRR能并行处理,双核时效率达到最佳,适合目前普遍使用的多核平台。在在Intel(R)、Core(TM)、CPU为i5-6300HQ、主频2.3GHz、内存8GB、C++语言编程环境下测得LSPRR与其它流密码产生密钥流的速度如表4所示。
表4 LSPRR与其它流密码的速度对比
流密码算法 LSPRR RC4 SVHF WG-7
加密速度(MB/s) 169.09 76.65 53.31 13.43
(4) 多平台适应性更灵活。对于字长为m的平台,(N)LFSR 软件实现时,可以并行m 个 (N)LFSR,但最大周期还是小于等于
Figure 862969DEST_PATH_IMAGE101
,除非对于不同的字长m和不同的级数n,(N)LFSR 采用不同的反馈模式,最大周期才小于等于
Figure 490390DEST_PATH_IMAGE102
。不管字长m和级数n为多大,PRR存在固 定的反馈模式
Figure 375170DEST_PATH_IMAGE047
= [
Figure 642203DEST_PATH_IMAGE043
<<< (j mod m)]+
Figure 841103DEST_PATH_IMAGE048
+ i mod
Figure 509982DEST_PATH_IMAGE046
Figure 319325DEST_PATH_IMAGE047
= [
Figure 135971DEST_PATH_IMAGE043
<<< (j mod m)]+
Figure 138562DEST_PATH_IMAGE088
+ j mod
Figure 661947DEST_PATH_IMAGE046
,无须寻找达到最大周期的反馈模式,可以直接适应各种平台, 包括将来 128 位以上的平台。
(5)同时适用于资源受限设备以及资源不受限设备。对于资源受限设备来讲,一般具有严格限制功耗、处理器性能较弱以及内存容量有限等共同特点,这使得传统的加密强度高、安全性好,但是软硬件实现要消耗大量资源的加密算法无法在资源受限设备中得到更好的使用。同时常见的轻量级密码用于资源不受限的终端与资源受限终端互通,发挥不了资源不受限终端的资源优势,效率低。本发明的最大优势是设计了一种能充分利用资源不受限终端的资源优势、又适合资源受限终端的、效率高于常规对称密码的轻量级密码。当采用0.18μm的UMC标准元件库,字长为32比特时,LSPRR算法硬件实现需要的逻辑门电路(GE)数约为3098GE,符合轻量级密码的需求。

Claims (4)

1.一种基于并行循环移位寄存器的轻量级流密码生成方法,其特征在于,所述生成方法包括以下步骤:
将初始密钥K和初始向量IV导入第一并行循环移位寄存器,对初始密钥K进行编排,生成两个初始值
Figure DEST_PATH_IMAGE002
Figure DEST_PATH_IMAGE004
;初始密钥K和初始向量IV等长;
将两个初始值分别导入第二并行循环移位寄存器和第三并行循环移位寄存器,将第二并行循环移位寄存器和第三并行循环移位寄存器的输出值进行异或处理以产生密钥流KS;
Figure DEST_PATH_IMAGE006
Figure DEST_PATH_IMAGE008
其中,第一并行循环移位寄存器、第二并行循环移位寄存器和第三并行循环移位寄存器的级数n分别为4、5和4;第一并行循环移位寄存器、第二并行循环移位寄存器和第三并行循环移位寄存器的字长m均为32比特;
Figure DEST_PATH_IMAGE010
为第二并行循环移位寄存器第k次输出的第i个字;
Figure DEST_PATH_IMAGE012
为第三并行循环移位寄存器第k次输出的第i个字,
Figure DEST_PATH_IMAGE014
Figure 628445DEST_PATH_IMAGE010
Figure 483268DEST_PATH_IMAGE012
均为32位字;k ≥ 1,0≤i≤3;⊕表示异或。
2.根据权利要求1所述的基于并行循环移位寄存器的轻量级流密码生成方法,其特征在于,当初始密钥K长度为16B、字长m为32b时,将初始密钥K和初始向量IV表示成4个32位字级联:
K=(
Figure DEST_PATH_IMAGE016
||
Figure DEST_PATH_IMAGE018
||
Figure DEST_PATH_IMAGE020
||
Figure DEST_PATH_IMAGE022
);IV =(
Figure DEST_PATH_IMAGE024
||
Figure DEST_PATH_IMAGE026
||
Figure DEST_PATH_IMAGE028
||
Figure DEST_PATH_IMAGE030
);
第一并行循环移位寄存器的初值为
Figure DEST_PATH_IMAGE032
=(
Figure DEST_PATH_IMAGE034
||
Figure DEST_PATH_IMAGE036
||
Figure DEST_PATH_IMAGE038
||
Figure DEST_PATH_IMAGE040
) =K⊕ IV,其反馈模式为:
For k=1 to 16
{
Figure DEST_PATH_IMAGE042
=(
Figure DEST_PATH_IMAGE044
+...+
Figure DEST_PATH_IMAGE046
) mod
Figure DEST_PATH_IMAGE048
;其中k ≥ 1,n=4,m=32;
For i= 1 to n-1 {jkn + i
Figure DEST_PATH_IMAGE050
= [
Figure 755681DEST_PATH_IMAGE042
<<< (j mod m)] +
Figure DEST_PATH_IMAGE052
+ i mod
Figure 839306DEST_PATH_IMAGE048
}}。
3.根据权利要求1所述的基于并行循环移位寄存器的轻量级流密码生成方法,其特征在于,所述第二并行循环移位寄存器的初值为:
Figure DEST_PATH_IMAGE054
=(
Figure DEST_PATH_IMAGE056
||
Figure DEST_PATH_IMAGE058
||
Figure DEST_PATH_IMAGE060
||
Figure DEST_PATH_IMAGE062
) =(
Figure DEST_PATH_IMAGE064
Figure 715995DEST_PATH_IMAGE016
) || (
Figure DEST_PATH_IMAGE066
Figure 223944DEST_PATH_IMAGE018
) || (
Figure DEST_PATH_IMAGE068
Figure 428660DEST_PATH_IMAGE020
) ||(
Figure DEST_PATH_IMAGE070
Figure 814511DEST_PATH_IMAGE022
) ||
Figure DEST_PATH_IMAGE072
对于k ≥ 1,第二并行循环移位寄存器的反馈模式为:
Figure DEST_PATH_IMAGE074
=(
Figure DEST_PATH_IMAGE076
+...+
Figure DEST_PATH_IMAGE078
) mod
Figure 109488DEST_PATH_IMAGE048
;其中k ≥ 1,n=5,m=32;
For i= 1 to n-1 {jkn + i
Figure DEST_PATH_IMAGE080
= [
Figure 40535DEST_PATH_IMAGE074
<<< (j mod m)] +
Figure DEST_PATH_IMAGE082
+ i mod
Figure 981815DEST_PATH_IMAGE048
}。
4.根据权利要求1所述的基于并行循环移位寄存器的轻量级流密码生成方法,其特征在于,所述第三并行循环移位寄存器的初值为:
Figure DEST_PATH_IMAGE084
=(
Figure DEST_PATH_IMAGE086
||
Figure DEST_PATH_IMAGE088
||
Figure DEST_PATH_IMAGE090
||
Figure DEST_PATH_IMAGE092
) =(
Figure DEST_PATH_IMAGE094
||
Figure DEST_PATH_IMAGE096
||
Figure DEST_PATH_IMAGE098
||
Figure DEST_PATH_IMAGE100
);
对于k ≥ 1,第三并行循环移位寄存器的反馈模式为:
Figure DEST_PATH_IMAGE102
=(
Figure DEST_PATH_IMAGE104
+...+
Figure DEST_PATH_IMAGE106
) mod
Figure 410172DEST_PATH_IMAGE048
;其中k ≥ 1,n=4,m=32;
For i= 1 to n-1 {jkn + i
Figure DEST_PATH_IMAGE108
= [
Figure 621973DEST_PATH_IMAGE102
<<< (j mod m)] +
Figure DEST_PATH_IMAGE110
+ i mod
Figure 989500DEST_PATH_IMAGE048
}。
CN202111499101.4A 2021-12-09 2021-12-09 基于并行循环移位寄存器的轻量级流密码生成方法 Active CN113886804B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111499101.4A CN113886804B (zh) 2021-12-09 2021-12-09 基于并行循环移位寄存器的轻量级流密码生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111499101.4A CN113886804B (zh) 2021-12-09 2021-12-09 基于并行循环移位寄存器的轻量级流密码生成方法

Publications (2)

Publication Number Publication Date
CN113886804A true CN113886804A (zh) 2022-01-04
CN113886804B CN113886804B (zh) 2022-04-29

Family

ID=79016670

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111499101.4A Active CN113886804B (zh) 2021-12-09 2021-12-09 基于并行循环移位寄存器的轻量级流密码生成方法

Country Status (1)

Country Link
CN (1) CN113886804B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162579A (zh) * 2015-06-18 2015-12-16 南京航空航天大学 基于非线性循环移位寄存器的轻量级流密码技术lsnrr
CN105553647A (zh) * 2016-02-26 2016-05-04 南京航空航天大学 基于非线性循环移位寄存器的轻量级流密码技术lsnr2
CN108270548A (zh) * 2017-12-08 2018-07-10 中国电子科技集团公司第三十研究所 一种Grain型流密码的判别方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105162579A (zh) * 2015-06-18 2015-12-16 南京航空航天大学 基于非线性循环移位寄存器的轻量级流密码技术lsnrr
CN105553647A (zh) * 2016-02-26 2016-05-04 南京航空航天大学 基于非线性循环移位寄存器的轻量级流密码技术lsnr2
CN108270548A (zh) * 2017-12-08 2018-07-10 中国电子科技集团公司第三十研究所 一种Grain型流密码的判别方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
时阳阳等: "一种基于 Feistel 结构和 WTS 的分组密码", 《计算机技术与发展》 *

Also Published As

Publication number Publication date
CN113886804B (zh) 2022-04-29

Similar Documents

Publication Publication Date Title
EP1583278B1 (en) Stream Cipher Design with Revolving Buffers
Noura et al. Lightweight stream cipher scheme for resource-constrained IoT devices
CN107147487B (zh) 对称密钥随机分组密码
CN110572255B (zh) 基于轻量级分组密码算法Shadow的加密方法、装置及计算机可读介质
Naif et al. Secure IOT system based on chaos-modified lightweight AES
El Hennawy et al. LEA: link encryption algorithm proposed stream cipher algorithm
Achkoun et al. SPF-CA: A new cellular automata based block cipher using key-dependent S-boxes
Xu et al. A Strong Key Expansion Algorithm Based on Nondegenerate 2D Chaotic Map Over GF (2 n)
Garcia-Bosque et al. Secure communication system based on a logistic map and a linear feedback shift register
Lustro et al. Performance analysis of enhanced SPECK algorithm
CN113886804B (zh) 基于并行循环移位寄存器的轻量级流密码生成方法
Diedrich et al. Comparison of Lightweight Stream Ciphers: MICKEY 2.0, WG-8, Grain and Trivium
Alamari et al. Parallel Message Authentication Algorithm Implemented Over Multicore CPU.
Barrieta et al. Modified Hill Cipher Algorithm using Myszkowski Transposition to address Known-Plaintext attack
Sosa-Gómez et al. Using Hadamard transform for cryptanalysis of pseudo-random generators in stream ciphers
Stoyanov et al. Design of a new self-shrinking 2-adic cryptographic system with application to image encryption
Younes et al. CeTrivium: A Stream Cipher Based on Cellular Automata for Securing Real-TimeMultimedia Transmission.
Yerukala et al. LFL-A New Stream Cipher for Secure Communications
de Dieu Nkapkop A secure and fast chaotic encryption algorithm using the true accuracy of the computer
Abumuala et al. A new method for generating cryptographically strong sequences of pseudo random bits for stream cipher
Abubaker et al. DAFA-A Lightweight DES Augmented Finite Automaton Cryptosystem
Prathima et al. ASIC Implementation of Rabbit Stream Cipher Encryption for Data
US20240187213A1 (en) Galois extension field-based block cipher
Feng et al. A new construction of pseudorandom number generator
Sönmez Turan On statistical analysis of synchronous stream ciphers

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