面向于B5G系统的流密码可重构加速器及加速方法

文档序号:32949882发布日期:2023-01-14 12:59阅读:63来源:国知局
面向于B5G系统的流密码可重构加速器及加速方法
面向于b5g系统的流密码可重构加速器及加速方法
技术领域
1.本发明涉及一种面向于后5g(b5g)系统的256bit流密码可重构加速器,特别是涉及应用不同场景加密需求的硬件加速器的技术领域。


背景技术:

2.对称密码在各代3gpp(3rd generation partnership project)移动电话系统中对传输数据的安全起着重要作用。流密码snow 3g是umts(universal mobile telecommunications system)和lte(long term evolution)中用于完整性和机密性保护的核心算法之一。在当前被称为5g的新一代系统中,系统架构发生了根本性变化,对安全性提出了新的要求,这对现有的密码算法提出了一些挑战。
3.4g系统以snow 3g、aes和zuc(祖冲之算法)作为基础,为完整性(128-eiax)和机密性(128-eeax)定义了三种不同的可能算法。至于5g系统,第三代合作伙伴计划标准化组织希望使用256位密钥长度作为密钥安全等级,对于aes来说,这一变化相对简单,因为256位变体已经被熟知并使用了很长时间。对于zuc和snow 3g,情况有所不同,这两种密码最初都不是为256位密钥长度设计的;而且5g中的许多网络节点将被虚拟化,因此使用特殊硬件(如ip核)进行加密原语的能力受到限制,预期aes可以保持在5g。然而snow 3g和zuc,在纯软件环境中无法实现如此高的速率。
4.为了解决上述问题,我国于2018年初公布了使用256bit密钥,基于zuc-128算法设计的zuc-256序列密码算法。与128bit密钥的zuc-128算法相比。zuc-256算法对初始化进行了重新设计。增加了初始化向量iv长度以提供足够的安全冗余,能够支持多种长度的消息认证码,以应对5g潜在的多安全级别的需求。
5.ekdahl开发了snow流密码家族的一个新成员,称为snow-v,其设计目标是在虚拟化环境中速度更快,并提供256位安全性。该算法利用cpu中的aes指令以及向量化simd(single instruction multiple data)指令,实现高达58gbps的加密速率。另外,snow-v可以不断产生128位密钥流。
6.然而,在向量寄存器宽度或指令集有限的cpu上,snow-v可能表现不太好。例如,可能存在过渡网络部署场景,其中5g加密层(pdcp)尚未虚拟化,而是在基站上的软件中处理,我们被迫在具有有限向量寄存器宽度和更简单simd指令集的cpu上执行快速加密。
7.因此在snow-v的基础上,ekdahl再次提出了其变体snow-vi,可以在这些低级cpu中解决速度要求。与snow-v相比其在lfsr的更新方式上有所不同,还改变了抽头的选取位置实现更高的安全性,其他部分保持与snow-v相同。
8.当前的技术发展中,zuc-256算法,snow-v算法和snow-vi算法在软件中的加密应用已经进行了改进提高,但在软件上运行算法依然不能满足运算需求速度。目前,三种算法都未成为5g系统加密标准但都有潜力成为后5g(b5g)系统的标准,但是满足5g安全标准的最具前景的三种算法。目前的asic设计只针对一种算法,如果算法被排除在标准之外,则芯片也会面临淘汰。需考虑三种算法在不同情形下对于b5g系统的适配性。


技术实现要素:

9.发明目的:一种面向于b5g系统的流密码可重构加速器,以改正背景技术中算法运行的缺点,以较小的代价在单个芯片中支持三种算法,满足b5g系统在不同场景应用加密的加速需求。
10.技术方案:根据本技术的一个方面,一种面向于b5g系统的流密码可重构加速器,包括:
11.可重构线性反馈移位器模块,包括两组可重构的线性反馈移位寄存器lfsr-a、lfsr-b,在工作时,根据算法选择,所述两组线性反馈移位寄存器可拼接为一组移位寄存器,并可基于更新逻辑循环更新数据,所述更新逻辑根据外部输入的算法选择信号进行更换;
12.共模使用的有限状态机fsm,用于接收线性反馈移位寄存器lesr传输来的数据并进行计算;
13.所述线性反馈移位寄存器lfsr根据可重构控制器输入的算法选择信号进行更换,产生并传输不同的数据输入有限状态机fsm进行计算得出密文。
14.根据本技术的一个方面,可重构的线性反馈移位寄存器使用相同的两组移位寄存器,每个线性反馈移位寄存器的总长度为256位,各自包括16个单元,每个单元的数据为16位。
15.根据本技术的一个方面,两组线性反馈移位寄存器中对应的两个16位的单元可以拼接为31位的单元数据,舍弃一位重复的单元。
16.根据本技术的一个方面,所述可重构线性反馈移位寄存器的数据更新方式相同,其中最高位单元的数据通过反馈计算单元计算得出,
17.可重构线性反馈移位寄存器在选择不同的反馈计算单元后,所述可重构线性反馈移位寄存器再进行计算得到最高位单元数据;
18.其余单元的数据通过数据移动单元获得,即由相邻的高位单元移动得来,每次移动最低位单元的数据都会直接退出;不同的流密码算法数据移动单元相同,反馈计算单元不同。
19.根据本技术的一个方面,所述反馈计算单元不同根据算法选择单元选择不同的反馈计算单元:
20.zuc-256算法选取五个抽头数据进行计算得出最高位单元更新的数据;
21.snow-v算法选取三个抽头数据进行计算得出最高位单元更新的数据;
22.snow-vi算法选取两个抽头数据进行计算得出最高位单元更新的数据。
23.根据本技术的一个方面,所述多种流密码算法使用不同的逻辑组合电路进行数据传输,分别支持不同的有限域计算,并根据算法选择信号选择逻辑组合电路。
24.根据本技术的一个方面,在可重构的线性反馈移位寄存器lfsr取出对应位置的8个单元的数据传输至有限状态机fsm进行运算,所述根据算法选择信号使用不同组合逻辑传输数据;
25.选择zuc-256算法时,传输所述拼接好的寄存器中8个确定的拼接好的单元数据进入有限状态机模块进行比特重组;
26.选择snow-v算法时,传输所述线性反馈移位寄存器lfsr-a寄存器的8个低位寄存
器单元,所述线性反馈移位寄存器lfsr-b的8个高位寄存器单元至fsm模块;
27.选择snow-vi算法时,传输所述线性反馈移位寄存器lfsr-a的8个高位寄存器单元,取所述线性反馈移位寄存器lfsr-b寄存器的8个高位寄存器单元。
28.根据本技术的另一方面,基于上述任一项实施例所述的面向于b5g系统的流密码可重构器的加速方法,包括以下步骤:
29.步骤1、根据配置信息,选择需要使用的算法并输出算法选择信号至后续模块,初始化可重构线性移位寄存器以及有限状态机fsm的初始数据;
30.步骤2、根据算法选择信号更新线性反馈移位寄存器lfsr,即选定需要的流密码算法后,使用不同的反馈计算单元模块,算法选择不同的反馈计算单元更新线性反馈移位寄存器lfsr中的最高位数据,使用相同的移位单元更新其他位数据;
31.步骤3、根据算法选择信号更新有限状态机fsm,即选定需要的流密码算法后,在可重构的线性反馈移位寄存器lfsr数据中选择不同的抽头位置,传输不同的数据进入有限状态机fsm进行初始化计算和密钥产生;
32.步骤4、重复进行步骤2和步骤3,直至得出需要的密文。
33.有益效果:本发明提出了一种面向于b5g系统的流密码可重构加速器,通过提出的zuc-256,snow-v和snow-vi算法共模设计,以较小的资源代价,同时支持b5g系统中潜力最大的三种算法,可以满足不同情形下对加速算法的多样化选择,保证了三种算法中任何一种成为b5g系统标准,所产芯片都可以使用,无论采取哪种加密算法都可以快速得到密文流。此外另一方面,设计的三种算法共模使用的硬件电路,使用较少的复杂计算部分,以及硬件更易于实现,能够实现b5g系统中在不同场景加密的加速要求。
附图说明
34.图1是本发明流密码可重构加速器的整体架构示意图。
35.图2是本发明可重构反馈移位计算单元设计示意图。
36.图3是本发明snow-vi算法反馈计算单元硬件设计示意图。
37.图4是本发明zuc-256算法反馈计算单元硬件设计示意图。
38.图5是本发明三种算法lfsr模块选择不同位置抽头传输至fsm模块示意图。
具体实施方式
39.在下文的描述中,给出了大量具体的细节以便提供对本发明更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本发明可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本发明发生混淆,对于本领域公知的一些技术特征未进行描述。
40.为了解决现有技术的存在的问题,申请人进行了深入地研究,提出如下技术方案。在本文中,为了便于表述,在部分地方,有限状态机会称之为有限状态机模块或fsm模块,线性反馈移位寄存器称之为线性反馈移位寄存器模块或lfsr模块。
41.提出一种面向于b5g(后5g,下同)系统的256bit流密码可重构加速器,三种流密码算法使用相同的数据更新单元寄存器。该加速器具体包括:可重构的线性反馈移位寄存器模块(lfsr)和有限状态机模块(fsm),根据可重构控制层输出的选择信号选定算法共模使
用线性反馈移位寄存器lfsr模块寄存器和有限状态机fsm模块,通过初始化数据模块获取初始数据。线性反馈移位寄存器lfsr模块把产生的数据传递至有限状态机fsm模块,fsm模块接收数据,计算得到密文。
42.具体地,可重构lfsr模块是由两组移位寄存器构成,可以循环就算更新单元数据,两组移位寄存器lfsr-a和lfsr-b结构相同,均为256位长,其中都包括16组单元数据,每一组数据都为16位。在硬件设计上,两组寄存器可以拼接位一组寄存器,为512位长,其中包括16组单元数据,每一组数据为31位,舍弃一位重复的数据,共舍弃16位数据。
43.与现有专利不同的是,可重构控制层选择不同的反馈计算单元后,所述可重构lfsr模块再进行计算得到最高位单元数据。而低位单元的数据的产生不由算法选择信号调控,每个单元数据都使用数据移动单元得到,最低位单元每次更新都会直接退出。
44.其中,不同的流密码算法使用不同的反馈计算单元,所述三种算法不同的反馈计算单元均涉及有限域运算,但适用于不同的有限域,反馈计算单元的设计是简单组合逻辑电路,与现有专利相同,与门和异或门的组合实现了不同有限域的乘法。
45.在所述三种算法中,可重构lfsr模块在两个寄存器中分别传输不同位置的数据进入fsm模块运算。传输数据位置根据算法选择信号控制。
46.fsm模块需要lfsr模块中两个移位寄存器分别取各自8个单元数据输入,其中zuc-256算法传输的是拼接好的单元数据;根据外部输入的选择信号选定算法选择不同的抽头抽取对应单元数据,与现有设计不同的是,选定snow-vi算法时,线性反馈移位寄存器lfsr-a寄存器的传递8个高位的单元数据至有限状态机fsm模块,lfsr-b寄存器的传递8个高位的单元数据至fsm模块;选定zuc-256算法时,传输拼接好的寄存器中8个固定的拼接好的单元数据进入fsm模块。
47.在三种算法的情况下,fsm模块接受可重构移位寄存器的数据,进行计算得出密文。
48.在第一方面的一些可实现方式中,该共模算法的设计还需要进行数据初始化,即设计数据初始化模块,该模块用来提供可重构lfsr和fsm运行时需要的初始数据。
49.面向于b5g(后5g)系统的256bit流密码可重构加速器设计不仅可以实现流密码算法的在硬件上的高速运算,还能以较小的代价满足在b5g系统中在多种应用场景中加密的要求,避免芯片因为单一性而被淘汰,即可以支持最具潜力的三种256bit算法。
50.现有的技术中,256位流密码算法在软件进行运行,速度仍然不能满足实际需求,且目前三种算法都未成为5g系统的标准但都有潜力成为b5g系统的标准,提出一种面向于后5g(b5g)系统的256bit流密码可重构加速器,如图1所示,本实施例提出的256bit流密码可重构加速器包括两种算法共用的线性反馈移位寄存器模块和有限状态机模块。其中,图1左半部分为线性反馈移位寄存器模块,右半部分为有限状态机模块。可重构lfsr模块是由两个移位寄存器组成,分别命名为lfsr-a和lfsr-b,该模块可内部循环更新。zuc-256,snow-v和snow-vi算法共模使用lfsr模块的寄存器部分和单元数据传递设计以及fsm模块,三种算法的区别在于lfsr内部数据更新的计算反馈单元与以及lfsr模块抽取抽头传递fsm进行计算的数据组不同,该设计根据外部输入的选择信号选定算法已经对应的计算反馈单元与抽头位置。
51.如图2所示,具体描述可重构硬件设计反馈移位单元,其中线性反馈移位寄存器
lfsr-a由16个16位移位寄存器a
15
,a
14
,

,a0组成,线性反馈移位寄存器lfsr-b由16个16位移位寄存器b
15
,b
14
,

,b0组成。所以,每一组的移位寄存器总长度均为256位。
52.进一步的,如图2所示,zuc-256算法的线性反馈移位寄存器lfsr的31bit寄存器用2个snow算法使用的16bit寄存器拼接而成,(bi,ai)拼接成si,i∈[0,15],bi为si的高16bit,ai为si的低16bit。
[0053]
进一步的,图2显示的细实线部分为算法选择信号输入算法snow-v时的数据链路和反馈计算运算,图2显示的粗实线部分为算法选择信号输入算法snow-v时的数据链路和反馈计算运算,图2显示的虚线部分为算法选择信号输入算法snow-vi时的数据链路和反馈计算运算。
[0054]
进一步的,当线性反馈移位寄存器lfsr配置为snow算法逻辑运行时,所有的寄存器的所有比特位都参与运算;当lfsr配置为zuc-256逻辑运行时,在寄存器(bi,ai)之间会有1bit的重复位,zuc-256的lfsr更新逻辑会通过位拼接的方式舍弃1bit重复位,整个512bit lfsr仅有16bit被舍弃。
[0055]
在进一步的实施例中,三种算法的线性反馈移位寄存器lfsr反馈逻辑都包含有限域内的模运算,三者的有限域类型不同。zuc-256算法中的多级模运算共包含5次模乘运算和5次模加运算,其反馈计算运算结构如下:
[0056]s16
=(2
15
·s15
+2
17
·s13
+2
21
·s10
+2
20
·
s4+28·
s0+s0)mod(2
31-1)
[0057]
得到的结果s
16
更新给s
15
,而s
15
原本的值将更新给s
14
,依此类推,即(s
16
,s
15
,
···
,s2,s1)

(s
15
,s
14
,
···
,s1,s0)。在每次更新运算中,寄存器都是向前移一步。
[0058]
进一步的,区别于现有专利的snow-v算法设计,snow-vi算法中,其中lfsr-a和lfsr-b具有不同的本原多项式,并与现有专利中snow-v算法的设计有所差异。具体的,lfsr-a的本原多项式为:
[0059]
ga(x)=x
16
+x
14
+x
11
+x9+x6+x5+x3+x2+1,ga(x)∈f
2[x]
[0060]
lfsr-b的本原多项式为:
[0061]
gb(x)=x
16
+x
15
+x
14
+x
11
+x
10
+x7+x2+x+1,gb(x)∈f2[x]
[0062]
与现有专利中snow-v移位寄存器高位单元数据更新的反馈计算方式不同,snow-vi需要专属的反馈计算方式,且两个移位寄存器使用的反馈计算单元有所差异,具体的,线性反馈移位寄存器lfsr-a的反馈公式为式中,表示ga(x)的根;lfsr-b的反馈公式为式中,表示gb(x)的根。移位寄存器a,b通过以上不同的反馈计算单元进行高位单元数据的更新。
[0063]
得到的结果a
15
更新给a
15
,而a
15
原本的值将更新给a
14
,依此类推,即(a
15
,
···
,a2,a1)

(a
14
,
···
,a1,a0);得到的结果b
15
更新给b
15
,而b
15
原本的值将更新给b
14
,依此类推,即(b
15
,
···
,b2,b1)

(b
14
,
···
,b1,b0)。
[0064]
反馈公式是在有限域中进行运算的,本专利对上述反馈公式设计了专用计算单元,snow运算单元组成简单,仅需要一个mux和多级异或即可实现,snow-vi算法设计的lfsr-a反馈计算单元硬件如图3所示,线性反馈移位寄存器lfsr-b反馈计算单元硬件设计与其相同,只是输入数据不同,不再赘述。
[0065]
zuc-256算法的多级模运算是算法的关键路径,通过循环移位和模加运算实现模
乘后,共有6个数需要再进行模累加。考虑到初始化阶段fsm反馈的w,相加的数共有7个,其结果长度最长为34bit,那么7个31bit数的模2
31-1加法,即是将34bit结果的最高3bit,加上结果的低31bit。改良后,减少了原本多级模加的计算步骤,zuc-256算法设计的反馈单元硬件设计如图4所示。
[0066]
在进一步的运算中,如图1除了移位寄存器模块还有有限状态机模块,三种流密码算法还使用fsm模块,fsm模块用来接受lfsr的数据进行计算得出密文z。
[0067]
如图1除了移位寄存器和有限状态机模块外,还设计了数据初始化模块,三种流密码算法设计了使用数据初始化模块来对两种算法需要的运算数据进行初始化,当初始化信号有效时,移位寄存器模块和有限状态机模块接受初始化的数据,并进行数据的计算与流动。初始化完成之后,使初始化信号无效,退出初始化模式,共模加速器开始正常工作,输出计算好的密文z。
[0068]
进一步三种流密码算法的更新过程不同,即最高位单元数据使用每个算法独特的反馈计算单元进行更新,每一个时钟周期更新一次数据,设计为根据可重构控制层输出的算法选择信号不同选用不同的反馈计算单元,同时与算法选择信号无关,其他低位的单元数据由相邻的高位单元数据移动而来。
[0069]
即对于zuc-256算法,s
16
更新给s
15
,而s
15
原本的值将更新给s
14
,依此类推,即(s
16
,s
15
,
···
,s2,s1)

(s
15
,s
14
,
···
,s1,s0)。在每次更新运算中,寄存器都是向前移一步;对于snow-vi算法,a
15
更新给a
15
,而a
15
原本的值将更新给a
14
,依此类推,即(a
15
,
···
,a2,a1)

(a
14
,
···
,a1,a0);得到的结果b
15
更新给b
15
,而b
15
原本的值将更新给b
14
,依此类推,即(b
15
,
···
,b2,b1)

(b
14
,
···
,b1,b0)。即每八个时钟周期就可以更新一半的数据,此时数据变化之后,根据算法选择信号选择不同位置的抽头,具体的,snow-vi算法选取不同的抽头传输至fsm模块,即fsm选取t1=(b
15
,b
14
,

,b8)和t2=(a
15
,a
14
,

,a8)进行计算;zuc-256算法选择s
15
,s
14
,s
11
,s9,s7,s5,s2,s0等8个拼接好的31bit单元数据进入fsm模块进行比特重组。三种算法选择不同的抽头位置传选择示意图如图5所示,其中细实线代表选择zuc-256算法的数据流,粗实线代表选择snow-v算法的数据流,粗虚线代表选择snow-vi算法的数据流。
[0070]
在进一步的操作中,整个可重构算法加速器在开始运算时还包括进行初始化操作,具体的,根据算法选择信号选择任一算法运行,初始化开始时,赋不同的数据给两个寄存器的各16个模块,因此初始化过程需要进行16次来实现彻底的初始化,具体初始化步骤如下:
[0071]
步骤a、更新fsm模块的输入数据,根据输入选择信号选定流密码算法进而选择不同的抽头进行fsm模块的更新;
[0072]
步骤b、根据输入选择信号选定不同的流密码算法并选择不同反馈计算单元更新lfsr模块;
[0073]
步骤c、通过初始化数据模块以及fsm模块进行计算来初始化数据。
[0074]
初始化结束后,可重构加速器开始正常工作。
[0075]
在一个实施例中,提出一种面向于后5g(b5g)系统的256bit流密码可重构加速器,其特征在于,具体包括以下步骤:
[0076]
步骤1、可重构控制器根据配置信息,选择需要使用的算法并输出算法选择信号至
后续模块,初始化可重构线性移位寄存器以及fsm模块的初始数据;
[0077]
步骤2、根据算法选择信号更新lfsr模块,即选定需要的流密码算法后,使用不同的反馈计算单元模块,算法选择不同的反馈计算单元更新lfsr中的最高位数据,使用相同的移位单元更新其他位数据;
[0078]
步骤3、根据算法选择信号更新fsm模块,即选定需要的流密码算法后,在可重构lfsr模块数据中选择不同的抽头位置,传输不同的数据进入fsm模块进行初始化计算和密钥产生;
[0079]
步骤4、重复进行步骤2和步骤3,直至得出需要的密文。
[0080]
总之,在b5g系统尚未确定加密标准的情况下,本专利根据不同的流密码有着相同的密文产生结构这一特性,设计了可重构的线性反馈移位寄存器,尤其是两组反馈移位寄存器结合为一组的设计,实现了在低资源开销的情况下支持皆具有潜力的zuc-256,snow-v,snow-vi算法的设计,能够根据不同的有限域计算要求以及场景需求切换不同的流密码算法,增强了加速器功能的丰富性。
[0081]
如上所述,尽管参照特定的优选实施例已经表示和表述了本发明,但其不得解释为对本发明自身的限制。在不脱离所附权利要求定义的本发明的精神和范围前提下,可对其在形式上和细节上做出各种变化。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1