- UID
- 863084
|
第三代移动通信系统是一个能在全球范围无线接入使用的网络系统,它提供了传统的语音业务和无线高速的数据业务。作为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函数算法 |
|