3GPP 内核算法KASUMI的IP设计与测试
图5 f8算法
2.3 f8算法的描述
f8算法利用KASUMI密钥相关函数,在128位密钥的控制下将输入的64位数据块转化为输出的64位数据块。
f8算法使用了两个64位寄存器:静态寄存器A和计数器BLKCNT寄存器。寄存器A用64位初始值IV进行初始化:
IV = COUNT || BEARER || DIRECTION ||0…0
IV由32位的COUNT,5位的BEARER,1位的DIRECTION和26位全0串连接而成,其中计数器BLKCNT设为0 。f8算法使用密钥修正值KM,KM是由8位字节0x55=01010101重复16次构成。首先,用修正过的CK值和KASUMI函数算出一个预白化值:
它被存入寄存器A 。当密钥流发生器以这种方式启动后,它就做好了产生密钥流的准备。被加密/解密的明文/密文中包含LENGTH位,LENGTH的值在1-20000之间,粒度为1,而密钥流发生器按64位的整数倍产生密钥流位。最后一个密钥流块中,从0-63之间最低有效的若干位将根据LENGTH的值所要求的总比特数而舍掉。
所需要的密钥流位的数量由BLOCKS表示。BLOCKS的值由LENGTH的值决定,方式如下:LENGTH的值被64除后向上取整作为BLOCKS的值。密钥流块用来表示。设KSB0 = 0 ,n为整数且1≤n≤BLOCKS,则n=BLKCNT+1,且:
密钥流中的个别位KS[0],KS[1],……,KS[LENGTH-1]是从左到右依次从密钥流块KSB1到KSBn中提取的,具体方法如下:对于n=1,……,BLOCKS和任意的整数i(0≤i≤64),可得:
加密和解密的操作相同,都是用输入数据和产生的密钥流按位异或得到的。
2.4 f8算法的输入定义
密钥索引(CK)
CK的长度是128位。如果产生的密钥长度k小于128位,CK的最大有效位携带额定密钥信息,而剩余位重复密钥信息,具体如下:
CK=CK[0],CK[1] ,……,CK[127]
其中,CK[0],……CK[k-1]携带密钥信息,对于所有的n(k≤n≤128),CK[n]=CK[n mod k]。
基于时间的输入(COUNT)
count参数的长度是32比特。密钥流同步是基于物理层帧计数器和超帧计数器结合的使用,这样可以避免密码流的重复使用。计数器(count)在建立连接时初始化。
无线承载标识(BEARER)
BEARER的长度是5位。相同密钥可能被一个用户的多个无线承载同时使用,为了避免使用相同的密钥流加密多个承载,算法根据无线承载标识来产生不同的密钥流。
传输方向(DERECTION)
上行时(信息从UE到RNC)DIRECTION的数值是0,下行为1 。由于上行和下行的信道有可能使用相同的密钥,DIRECTION位的目的就是避免上下行传输时使用相同的密钥流。
密钥流长度(LENGTH)
LENGTH是一个1-20000之间的整数,共16位。
密钥流
密钥流块的长度等于输入参数LENGTH的值。
明文
明文块的长度等于输入参数LENGTH的值。这里设计中一次输入的明文长度为256位。
密文
密文块的长度等于输入参数LENGTH的值。
3 KASUMI IP核的实现方案
主要阐述整个系统的原理和设计过程。
3.1 IP核及其优点
IP(知识产权intellectual property rights)核将一些在电路中常用,但比较复杂的功能块设计成可修改参数的模块。IP核的重用是设计人员赢得迅速上市时间的主要策略。随着CPLD/FPGA的规模越来越大,设计越来越复杂,设计者的主要任务是在规定的时间周期内完成复杂的设计。调用IP核能避免重复劳动,大大减轻工程师的负担,因此使用IP核是一个发展趋势。
IP核包括硬IP与软IP。可配置IP是参数化后的可重定目标IP,其优点是可以对功能加以裁剪,以符合特定的应用。这些参数包括总线宽度、存储器容量、使能或禁止功能块。
硬IP最大的优点是确保性能,如速度、功耗等。然而,硬IP难以转移到新工艺或集成到新结构中,是不可重配置的。
软IP是以综合形式交付的,因而必须在目标工艺中实现,并由系统设计者验证。其优点是源代码灵活,可重定目标于多种制作工艺,在新功能级中重新配置。
3.2 KASUMI IP核设计方案论证
3.2.1 方案一
KASUMI算法的加密过程共经过8轮迭代,所以首先想到的方案是设计一个状态机,通过8个状态来实现8轮迭代加密。定义如下:
type d_state is (s0,s1,s2,s3,s4,s5,s6,s7,s8);
通过这种方法可以很方便的实现KASUMI的加密过程,经测试能够得到正确的结果。但是,由于状态机用到了8个状态,而且每个状态的过程都很复杂,所以使用8个状态的状态机占用了很大的资源,编译速度很慢。
3.2.2 方案二
由于KASUMI的加密过程有真严格的要求,必须顺序执行。所以,此次设计的状态机只分3个状态:空闲状态,加密状态,输出
3GPP 内核算法 FPGA KASUMI IP设计 相关文章:
- 全球WiMAX论坛主席Ronald Resnick演讲(08-23)
- NGN之路:十字路口的思考(01-10)
- 下一代网络中的SIP-I协议(01-27)
- NGN SIP 域内的标准化(01-27)
- 朗讯IMS:NGN融合的引擎(01-01)
- 亚太将成IPv6下个热点地区?(01-01)