基于ofb模式和分组密码vh的轻量级流密码技术vho的制作方法
【专利说明】基于OFB模式和分组密码VH的轻量级流密码技术VHO 一、技术领域
[0001] 本发明是保密通信领域的一种轻量级流密码技术,主要用于无线通信中低成本嵌 入式移动终端的安全保密。 二、
【背景技术】
[0002] 随着无线网络技术的发展,信息深入到我们生活的各个方面。对于资源受限的 无线终端,由于计算能力差,存储空间小,能量供应弱,普通密码技术难以适用这种资源受 限的环境需求,这就需要轻量级密码,以满足软硬件、计算能力和能耗等资源受限终端的需 求。
[0003] 轻量级流密码主要有Grain-128、WG-7和A2U2等。Grain-128无法抵抗相关密 钥攻击,且易受线性攻击。对于WG-7,构造线性区分器能区分密钥流和随机序列,且代数攻 击对其有效。A2U2硬件实现代价很小,但有个大的缺点,软件效率很低,且密钥短,易受猜 测-确定攻击。
[0004] 对于本发明中的轻量级流密码VH0,其软硬件效率都高于Grain-128和WG-7。 三、
【发明内容】
[0005] 【发明目的】
[0006] 为了弥补现有轻量级流密码的不足,本发明提供了一种轻量级流密码VH0,以解决 现有轻量级流密码的综合效率问题,提高无线通信安全中低成本嵌入式移动终端的效用, 并提高了安仝性。
[0007] 【技术方案】
[0008] 本发明所述的轻量级流密码VHO基于OFB(输出反馈)模式和分组密码VH。
[0009] I.VH加密方案
[0010] VH采用SP结构,分组长度为64bit,支持长度为64、80、96、112、128bit的密钥,相 应的迭代轮数分别为r= 10、11、12、13、14轮。¥11有3个参数:6413^明文?。,密钥1(,641^七 密文Y。VH的加密过程用Y=VHk (P。)表示,包括以下步骤。
[0011] (1)加密变换表S[256]产生。
[0012] 加密S盒采用伪随机变换的方式产生。先计算T(i) =「|256sin(i) |」,其中「」表 示向下取整运算;为了产生不重复的256个字节,i的取值由1到30000,遇到重复的排除, 直到产生全部不重复的256个字节为止。加密变换表S[256]是256个字节的一个伪随机 排列,由T中字节轮换得到:S[T(j)] =T(j+l),S[T(255)] =T(O);其中0彡j彡254。
[0013] (2)密钥扩展。
[0014] 通过递推进行密钥扩展,将L字节的密钥K扩展成8 (r+1)字节:扩展密钥Key= 匕|1(1|...|1(1=!^|!^|...|1^ +7;其中"|',为连接运算。每个1(1为8字节,其中0<1^^; 每个kj为1字节,0 <j< 8r+7。对于8、10、12、14、16字节的密钥1(,相应的迭代轮数分 别为r= 10、11、12、13、14轮。扩展密钥Key的前L字节就是密钥K:K=I^lk11... |kt1<3 L彡j彡8r+7时,扩展密钥Key中的Icj由ku和kji两个字节递推得到:< =MV1] ? 其中?为异或运算。
[0015] (3)数据加密过程:先进行初始加密,再进行r轮迭代加密,得到密文y,如图1所 不。
[0016] (a)初始加密:初始密文& = 。其中P。为64bit初始明文,K。为密钥K的前8 由一K- 字Tl。
[0017] (b)r轮迭代加密。i从1到r,每轮迭代包括以下三步。
[0018] 首先对数据进行"行伪随机变换",即对数据的每个字节用加密S盒进行伪随机变 换:
[0019] M1U) =SEY1山-)];其中i从1至IJnXjj)表示X1的第j个字节,0彡j彡7。
[0020] 再把64bit数据M1排成8*8的方阵,对M 每个斜对角线用加密S盒进行伪随机 变换:
[0029] 最后再将上述输出P1与该轮的子密钥Ki进行异或得到该轮的密文:K=P,e/:,;其 中I<i<r〇
[0030] 最后一轮的输出结果Yr即为最终的密文Y。
[0031] II.VHO加解密方案
[0032] 保密通信时,VHO的加解密过程有4个参数:明文P,密钥K,初值KS。,密文C。KS。 长度为64bit,是不重复的伪随机数,功能是抗重放攻击。对于长度为Ien比特的明文P,VHO 基于分组密码VH,采用OFB模式产生n=「(Ien-I)/64」+1组密钥流KSi,其中1彡i彡n, 每组密钥流的长度为64bit,如图2所示,即
[0033] Fori=Iton(KSi=VHK (KSi:) ;}
[0034] 其中,VHk (X)表示分组密码VH采用密钥K对数据X进行加密。
[0035] 则VHO的加密方案为:密文OP?MSBlen(KS),如图2所示;其中MSBlen(KS)表示截 取全部密钥流KS的前Ien比特。VHO的解密方案为:明文尸=C?MSBlen(KS)。
[0036] 【有益效果】
[0037] 本发明所述轻量级流密码VHO基于OFB模式和分组密码VH,支持64bit、80bit、 96bit、112bit、128bit的密钥。与现有技术相比,VHO的有益效果表现在以下几方面。
[0038] (1)软件效率:在Intel(R)、Core(TM)、CPU为i5-430M、主频 2. 27GHz、内存 2GB、C 语言编程环境下测试,密钥长度为80bit的VH0、Grain-128、密钥长度为80bit的WG-7和密 钥长度为61bit的A2U2的效率如表1所示。由此可见,VH0-80的软件效率优于其它轻量级 流密码。VH0-128的软件效率为11. 303Mb/s,远高于密钥长度同为128bit的Grain-128。
[0039] 表 1
[0040]
[0041] (2)硬件代价与效率:VHO、Grain-128、WG-7和A2U2的硬件实现所需要的门电路 数如表1所示。因此,VHO的软硬件效率都高于Grain-128和WG-7。虽然VHO的硬件实现 代价高于A2U2,但A2U2有个大的缺点,软件效率很低,且密钥短,只有61bit,易受猜测-确 定攻击。特别地,VHO采用的分组密码VH的每轮迭代能八核并行,适合硬件和多核软件实 现,软硬件执行效率高。
[0042] (3)安全性:通过差分分析、线性分析和不可能差分分析对VHO进行了安全性验 证。
[0043] 通过计算可得VH的S盒的最大差分概率是2 3'415,通过程序计算密钥长度为64bit 的VH算法前10轮的活动S盒的个数DS,如表2所示。由此可得VH的4轮最大差分概率为 DCP4彡221x(i415)=2 7h715< 2 64。当迭代轮数大于4轮时,找不到一个有效的差分特征进 行分析,所以完整轮数的VH可以抵抗差分分析。
[0044] 表 2
[0045]
[0046] 对于线性分析,利用计算加密过程中线性活动S盒的个数来分析VH的线性特征。 通过计算可得VH的S盒的最大线性概率是2 2'83,通过程序计算出密钥长度为64bit的VH 前10轮的线性活动S盒的个数LS,如表3所示。由此可得VH的4轮最大线性偏差概率为 LCP4彡224X(2^3)=2 %92< 264。因此根据线性分析复杂度,难以找到一个4轮的线性可把 加密密文从一个随机置换中区分出来,所以完整轮数的VH足够安全,可以抵抗线性分析。
[0047] 表 3
[0048]
[0049] 通过编程实现不可能差分分析(IDC),得到最大轮数M= 6。通过进一步的理论分 析,找到8条6轮IDC路径:
[0050]
[0051] 其中aGGF(2s)表示非零差分。由此可知,IDC攻击对VH无效。
[0052] 因此,基于OFB模式和分组密码VH的轻量级流密码VHO满足轻量级密码的安全需 求。 四、
【附图说明】
[0053] 附图1分组密码VH的数据加密过程
[0054] 附图2轻量级流密码VHO的数据加密过程
[0055] 说明:II为连接运算为异或运算。 五、
【具体实施方式】
[0056] 下面结合附图对本发明进一步说明。
[0057] I .VH加密方式
[0058] VH采用SP结构,分组长度为64bit,支持长度为64、80、96、112、128bit的密钥,相 应的迭代轮数分别为r= 10、11、12、13、14轮。¥11有3个参数:6413^明文?。,密钥1(,641^七 密文Y。VH的加密过程用Y=VHk (P。)表示,按以下步骤实施。
[0059] (1)加密变换表S[256]产生。
[0060] 加密S盒采用伪随机变换的方式产生。先计算T(i) =「|256sin(i) |」,其中「」表 示向下取整运算;为了产生不重复的256个字节,i的取值由1到30000,遇到重复的排除, 直到产生全部不重复的256个字节为止。加密变换表S[256]是256个字节的一个伪随机 排列,由T中字节轮换得到:S[T(j)] =T(j+l),S[T(255)] =T(O);其中0彡j彡254。
[0061] (2)密钥扩展。
[0062] 通过递推进行密钥扩展,将L字节的密钥K扩展成8 (r+1)字节:扩展密钥Key= 匕|1(1|...|1(1=!^|!^|...|1^ +7;其中"|',为连接运算。