首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

3GPP 内核算法KASUMI的IP设计与测试

3GPP 内核算法KASUMI的IP设计与测试

第三代移动通信系统是一个能在全球范围无线接入使用的网络系统,它提供了传统的语音业务和无线高速的数据业务。作为3G系统中信息安全的核心技术,相关的密码算法在第三代移动通信技术中占有重要的地位。

本文基于第三代伙伴关系计划标准化组织(3GPP)制定和实施的标准,介绍了第三代移动通信系统的安全算法KASUMI,分析了其应用背景和结构原理。本文同时详细描述了基于FPGA的KASUMI IP核的实现过程。设计出了对64位数据进行加密的KASUMI算法的IP核。在此基础上,进一步完成了f8算法的软核。其中KASUMI算法都通过串口完成了硬件数据的测试。

1  系统的功能和指标
  • 本系统主要完成了KASUMI 的IP核设计及测试,可在硬件上实现对数据的加密。并在此基础上设计出了f8算法的软核,通过了软件仿真测试。
  • 最大时钟频率:141.54MHZ
  • 吞   吐   量:3019.58Mbps
  • 密  钥 大 小:128比特

2  系统的理论基础
主要阐述KASUMI算法的结构原理,分析了其整体结构及各个组成部分。

2.1  KASUMI算法分析
KASUMI算法是基于日本三菱公司的分组密码MISTY1算法,是一个采用Feistel结构的分组加密算法,采用128比特的密钥输入和64比特的明文输入,产生64比特的密文输出,在此过程中要进行8轮迭代。KASUMI算法的设计遵循了三条原则:⑴安全性有足够的数学基础;⑵算法的软件实现在任何处理器上要足够的快,硬件实现也足够的快;⑶算法能够对抗差分和线性密码分析,流程图如图1所示。

图1 KASUMI算法

输入数据I被分为32比特的左右两部分L0和R0,即I= L0 || R0 ,对于整数i控制加密轮数,限定其值为1≤i≤8,定义:Ri = Li-1 ,Li = Ri-1 fi(Li-1 , RKi) 。即每轮KASUMI算法的操作: 将第i-1轮的输出的左半部Li-1作为第i轮的右半部Ri ; 而第i轮的左半部由第i-1轮输出的右半部Ri-1与第i轮的轮函数fi 的结果进行异或运算得到。(RKi为第i轮的子密钥)经过8轮迭代后得到64比特字符串的输出(L8 || R8)。

2.1.1  KASUMI算法中的函数2.1.1.1  第i轮的轮函数fi
轮函数fi对32比特的输入I,在32比特的轮密钥RK的控制下,得到32比特的输入。而轮密钥由三个一组的子密钥(KLi,KOi,KIi)组成。轮函数自身由两个子函数FL和FO构成,与之相关的子密钥分别为KLi和KOi ,KIi

轮函数在奇数轮与偶数轮有不同的表达式:
对于1,3,5,7轮:fi(I,RKi)= FO(FL(I,KLi),KOi,KIi
对于2,4,6,8轮:fi(I,Ki)= FL(FO(I,KOi,KIi),KLi
⑴ 函数FL:FL函数是一个线性函数,但是这并不意味着算法的安全性要依赖于它,也不能依赖于它。它的目的是通过一个简单的方式增加附加干扰,使得单个的比特位在传输过程中更难被追踪。FL函数还有一个特性,就是FL输入的微小变化在输出端也只引起微小的变化,这对FL函数正向或反向的计算都是有用的。流程图如图2:

图2 FL函数算法
支持
返回列表