APP下载

高效Kasumi加密算法的软件设计与实现

2012-10-27翔,童,

通信技术 2012年3期
关键词:指令方法

李 翔, 徐 童, 熊 焰

(中国科学技术大学 计算机科学与技术学院,安徽 合肥 230027)

0 引言

为了保证移动通信的安全性并满足实时性的要求,加密算法往往采用硬件实现而非软件实现。但近年来,随着通用处理器工艺的提高,其性能也越来越接近移动通信芯片的要求。使用通用处理器,同时具有开发周期短、开发模式灵活等优点,这使得对通信算法软件实现的研究越发重要,并使软件无线电(SDR)的实际部署成为可能。

Kasumi算法作为第三代移动通信系统(3G)的核心加密算法,以 f 8和 f 92种模式使用[1],其中 f 8是加密算法,f 9是完整性算法,二者都是基于 Kasumi算法的输出反馈模式(OFB)形成的流密码。由于 Kasumi算法是基于 Feistel网络结构的分组密码,其 OFB模式无法并行实现,而且在移动通信中同时通信的不同用户需要使用不同的密钥,密钥分配也是十分耗时的计算模块,因此少有高效的软件实现方法提出。

在本文中,提出一种基于包并行的高效软件实现方法,并且对 FI子函数以查表的方式进行优化,同时引入新的SSE转置指令用于快速生成不同用户的密钥。实验表明我们的方法比协议中的实现快四倍,达到3GPP规定的实际部署的要求。

1 Kasumi算法

Kasumi算法是分组密码 MISTY1[2]的一个改进版本,64 bit的输入在128 bit密钥的加密下产生64比特的输出。该算法是一个八轮的 Feistel网络[3],包括FL,FO和FI 3个子函数,每个子函数使用对应的子密钥 KL,KO和 KI,分别由 128位密钥生成。其结构如图1所示。

具体加密过程如下:将 64 bit的输入 I分成32 bit的2部分,分别为L0和R0,即I = L0|| R0。对于第 i轮迭代(1 ≤ i ≤ 8),Ri= Li-1,Li= Ri-1⊕fi(Li-1, RKi)。……

登录APP查看全文

猜你喜欢

指令方法
听我指令:大催眠术
学习方法
ARINC661显控指令快速验证方法
LED照明产品欧盟ErP指令要求解读
杀毒软件中指令虚拟机的脆弱性分析
用对方法才能瘦
四大方法 教你不再“坐以待病”!
赚钱方法
捕鱼
一种基于滑窗的余度指令判别算法