3GPP 内核算法KASUMI的IP设计与测试
密钥,而在算法中的每一轮所使用的子密钥都是由这个128比特的密钥衍生而来的。每轮的密钥都通过两组16比特的数组Kj和Kj‘(j=1…8),以如下的方法生成:
128比特的密钥被分为每组16比特的8组:
K = K1 || K2 || K3 || K4 || K5 || K6 || K7 ||K8
第二组密钥Kj‘由Kj 以如下方法生成:
Kj‘ = Kj Cj(j=1…8,Cj为表1所示的16进制的常量)
表1 密钥扩展时的常量
Tab.1 The constant used for the expander of the key
C1 | C2 | C3 | C4 | C5 | C6 | C7 | C8 |
0x0123 | 0x4567 | 0x89AB | 0xCDEF | 0xFEDC | 0xBA98 | 0x7654 | 0x3210 |
继而子密钥(KL、KO和KI)如表2所定义的那样,通过循环移位得到,其中有如下的定义:
D <<< n 数据D循环左移n位(特别指出D <<< 1 = ROL(D)。)
表2 子密钥的计算
Tab.2 The calculation of the subkey
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
KLi,1 | K1<<<1 | K2<<<1 | K3<<<1 | K4<<<1 | K5<<<1 | K6<<<1 | K7<<<1 | K8<<<1 |
KLi,2 | K3’ | K4’ | K5’ | K6’ | K7’ | K8’ | K1’ | K2’ |
KOi,1 | K2<<<5 | K3<<<5 | K4<<<5 | K5<<<5 | K6<<<5 | K7<<<5 | K8<<<5 | K1<<<5 |
KOi,2 | K6<<<8 | K7<<<8 | K8<<<8 | K1<<<8 | K2<<<8 | K3<<<8 | K4<<<8 | K5<<<8 |
KOi,3 | K7<<<13 | K8<<<13 | K1<<<13 | K2<<<13 | K3<<<13 | K4<<<13 | K5<<<13 | K6<<<13 |
KIi,1 | K5’ | K6’ | K7’ | K8’ | K1’ | K2’ | K3’ | K4’ |
KIi,2 | K4’ | K5’ | K6’ | K7’ | K8’ | K1’ | K2’ | K3’ |
KIi,3 | K8’ | K1’ | K2’ | K3’ | K4’ | K5’ | K6’ | K7’ |
2.2 f8流加密模式
保密性算法f8是用保密性密钥(CK)来加密和解密数据块的流加密算法,数据块的长度可以从1-20000位。该算法使用的是OFB模式下的KASUMI作为密钥流发生器。
基于块密码操作的标准流密码模式有计数器模式和OFB模式,而f8算法并不只是其中之一。计数器模式下的密钥流发生器用计数器作为它的一个输入,该计数器作用于每一个密钥流块时都需要更新。F8流加密模式可以看作是两种标准模式的结合,并且利用了反馈数据的预白化。输出反馈,计数器和预白化3个特征按如下方式共同作用:首先,新产生的密钥流块被计数器值和预白化数据块按位异或进行修正,然后在送回发生器函数作为其输入。如图5所示:
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)