为了保障通信系统的安全,3GPP定义了数据加密算法F8和完整性认证算法F9,这两个算法都是以同一个分组密码作为内核算法的。从安全性角度考虑,我国需要自主设计一个分组密码作为F8和F9的内核算法。

SMS4加密算法在通信系统中的应用

本文从以下几个方面研究了国产SMS4加密算法作为F8和F9内核算法的可行性:

1. 安全性方面,分析了SMS4抵抗线性攻击和差分攻击的能力。对非平衡Feistel结构的SMS4,采用类似于平衡Feistel结构下的分析方法,从理论上建立了SMS4线性偏差概率和SMS4轮函数F线性偏差概率之间的关系式,再进一步根据轮函数F的一轮SP结构特点,建立与S盒线性偏差概率之间的关系式。通过这个关系式求出32轮SMS4线性偏差概率的一个上界。采用类似的分析方法,求出32轮SMS4差分特征概率的一个上界。按照Knudsen的安全标准,根据求出的两个概率上界对SMS4作安全评估。结果表明32轮SMS4具有很强的抗线性攻击和差分攻击能力,满足3GPP对内核算法的线性安全性和差分安全性要求。

2. 随机性方面,对内核为SMS4的F8所产生的密钥流随机性进行测试。首先将内核为SMS4的F8用C语言实现,采用不同的主密钥产生100组20000比特密钥流,按照FIPS140-2测试标准对100组密钥流进行了随机性测试。测试结果表明,内核为SMS4的F8产生的密钥流表现出极好的随机性,满足3GPP对内核算法随机性要求。

3. 实现效率方面,测试了内核为SMS4的F8用软件实现时的加密速度。采用不同的主密钥产生6组密钥流,记录对同一明文循环加密1000次所用的时间。根据明文大小,将6组时间换算成加密速度。结果表明,内核为SMS4的F8用软件实现时平均加密速度为1.924Mbps,接近达到3GPP对内核算法的实现效率要求。

为了成功推荐SMS4加密算法作为F8和F9的标准内核算法,还需要进行:

1. 除线性攻击和差分攻击外,SMS4抵抗其它攻击的理论分析。

2. SMS4算法在手机硬件平台下的实现研究。

3. 内核为SMS4的F8在手机硬件实现下的加密速度测试。

4. 对内核为SMS4的F9产生的消息认证码的随机性的测试以及在软件实现、手机硬件实现下的效率测试。

5. 根据3GPP对内核算法的要求对SMS4的其它方面进行研究。

此外,根据本文中分析SMS4线性特征特性和差分特性的方法,从理论上分析其他国产分组密码算法的安全性,进一步探索国产分组密码充当内核算法的可能性,争取早日解决中国通信系统的数据加密的完整性认证问题。