KASUMI算法的研究与VC实现
摘要
随着通信技术的高速发展,第三代移动通信系统(3G)将成为人们生活中重要的通信方式,3G系统中业务信息的安全性以及网络资源使用的安全性将越来越重要。为了对3G系统提供安全性,3G的国际组织3GPP(3rd Generation Partnership Project)在3G的安全结构中定义了两个标准化的核心算法f8和f9。f8算法是加密算法,f9是完整性算法,这两个算法都是基于KASUMI算法的。KASUMI算法是基于日本三菱公司的分组密码MISTY1算法,是它的改进版本,它是一种分组加密算法。 http://www.16sheji8.cn/
本文主要研究的是第三代移动通信技术中的一种核心加密算法:KASUMI算法;详尽介绍KASUMI算法的原理、组成部分以及怎样在VC中实现。
关键字:KASUMI算法;3G;安全性;Feistel
The Research and Implementation of Kasumi Algorithm
with VC
Abstract
As the development of communication technology is arriving at a bewildering rate, the third generation of mobile telecommunication system (3G) is doomed to dominate our way of that. Meanwhile, how to maintain the security of operating information and network resources will be playing an ever-increasing role. In order to provide 3G with steady security, its international organization 3GPP (3rd Generation Partnership Project)has defined two standardized key arithmetic: f8 and f9. The arithmetic f8 belongs to encrypted one, while f9 has kept its integrality. But they are both based on the arithmetic of KASUMI. http://www.16sheji8.cn/
The article is mainly focusing on the arithmetic of KASUMI, which is the key to the encrypted third generation of mobile telecommunication. And it sheds light on the theory, composition as well as how it can be carried out in VC in detail.
Key words:KASUMI;3G;Security;Feistel
目 录
论文总页数:26页
1 引言 1
2 KASUMI算法概述 1
2.1 KASUMI算法的总体结构 1
2.2 KASUMI算法的组成函数 2
2.2.1 f函数 2
2.2.2 FI函数 3
2.2.3 FO函数 3
2.2.4 FL函数 4
2.2.5 S-box 4
2.3 KAUSMI算法的密钥生成 5
2.4 KAUSMI算法的安全性 6http://www.16sheji8.cn/
3 KASUMI算法流程 7
3.1 密钥产生 8
3.2 FI函数 9
3.3 FO函数 10
3.4 FL函数 11
4 系统设计 12
4.1 KASUMI算法程序实现 12
4.1.1 KASUMI算法程序实现的加密解决方案 12
4.1.2 KASUMI算法程序实现的解密解决方案 13
4.2 人机界面设计 13
5 关键代码分析 15
5.1 FI函数的程序实现 15
5.2 FO函数的程序实现 16
5.3 FL函数的程序实现 17
5.4 密钥产生程序实现 17
5.5 f函数的程序实现(加密时的函数) 18
5.6 f函数的程序实现(解密时的函数) 19
6 软件整体测试与系统缺陷 20
6.1 软件测试环境配置 20
6.2 软件测试界面介绍 20
6.3 软件测试结果 21
6.3.1 软件的加密速度 22
6.3.2 KASUMI算法加密/解密案例 23
6.4 系统缺陷 23
结 论 24
参考文献 24
致 谢 25
声 明 26http://www.16sheji8.cn/
1 引言
随着通信技术的高速发展,第三代移动通信系统(3G)将成为人们生活中重要的通信方式,3G系统中业务信息的安全性以及网络资源使用的安全性将越来越重要。为了对3G系统提供安全性,3G的国际组织3GPP(3rd Generation Partnership Project)在3G的安全结构中定义了两个标准化的核心算法f8和f9。f8算法是加密算法,f9是完整性算法,这两个算法都是基于KASUMI算法的。KASUMI算法是基于日本三菱公司的分组密码MISY1算法,是它的改进版本,它是一种分组加密算法。http://www.16sheji8.cn/
本文主要目的是研究KASUMI算法,并在VC环境下实现它。
KASUMI算法的实现是在Microsoft Visual C++6.0环境下实现的,但是源代码确实利用C语言编写的,因为C语言编写的程序比C++编写的程序普遍效率要高。本系统最终完成后具有以下功能:
(1)满足算法的要求,明文只能输入64位二进制位,密钥只能输入128位二进制位;但在本软件中对输入做了相应的处理,输入的时候只能输入十六进制符号,其余报错。
(2)此软件只是为了验证KASUMI算法的正确性,所以在输入的时候可以随机输入,以方便快速验证。
(3)为了避免加密结果的偶然性,增加了解密功能;如果解密结果与原文不符,说明加密不正确。
2 KASUMI算法概述
2.1 KASUMI算法的总体结构http://www.16sheji8.cn/
KASUMI算法是一个Feistel结构的分组加密算法,密钥长度为128比特,对一个64比特的输入分组进行八轮的迭代运算,产生长度为64比特的输出。轮函数保括一个输入输出为32比特的非线性混合函数F0和一个输入输出为32比特的线性混合函数FL。函数F0由一个输入输出为16比特的非线性混合函数FI进行3轮重复运算而构成。而函数FI是由使用非线性的S-盒S7和S9构成的4轮结构。
KASUMI算法对64比特的分组应用128比特的密钥进行加密,生成64比特的输出,具体实现如下:输入数据Indata被分为32比特的左右两部分L0和R0,即Indata= 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轮的子密钥)http://www.16sheji8.cn/
经过8轮的迭代后,得到64比特的输出(L8||R8),如图:2.1所示。
2.2 KASUMI算法的组成函数
2.2.1 f函数
轮函数fi对32比特的输入Indata,在32比特的轮密钥RKi的控制下,得到32比特的输出。而轮密钥由三个子密钥(KLi,KOi,KIi)组成。轮函数自身由两个子 FL和FO构成,与之相关的子密钥分别为KLi(FL应用的密钥),KOi,KIi(FO应用的密钥),如图2-1所示。
轮函数fi在不同的奇偶轮有不同的表达形式:
对于1,3,5,7轮:http://www.16sheji8.cn/