图 SM3算法流程图
4. SM4对称算法
此算法是一个分组算法,用于无线局域网产品。该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
定义反序变换R为:
R(A0,A1,A2,A3)=(A3,A2,A1,A0),Ai∈Z322,i = 0,1,2,3。设明文输入为(X0,X1,X2,X3)∈(Z322)4,密文输出为(Y0,Y1,Y2,Y3)∈(Z322)4 ,轮密钥为rk i ∈Z322。则本算法的加密变换为:
Xi+4 = F(Xi,Xi+1,Xi+2, Xi+3,rki)= Xi⊕T(Xi+1⊕Xi+2⊕ Xi+3⊕rki),i= 0,1,2,3…,31.
(Y0,Y1,Y2,Y3)= R(X32,X33,X34,X35)=(X35,X34,X33,X32)。
本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。
加密时轮密钥的使用顺序为:(rk0, rk1, …, rk31)。 解密时轮密钥的使用顺序为:(rk31, rk30, …, rk0)。
SM4算法的优点是软件和硬件实现容易,运算速度快,但该算法的缺点是消息安全取决于对密钥的保护,泄漏密钥就意味着任何人都能对消息进行密码和解密。由于其加密过程和解密过程互逆,这两个过程均使用相同的保密密钥,使得对称密钥加密体制的适用范围受到了很大限制。
5. SM7对称密码
SM7算法是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7的算法文本目前没有公开发布。SM7适用于非接IC卡应用包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。
6. SM9非对称算法
SM9是基于对的标识密码算法,与SM2类似,包含四个部分:总则,数字签名算法,密钥交换协议以及密钥封装机制和公钥加密算法。在这些算法中使用了椭圆曲线上的对这一个工具,不同于传统意义上的SM2算法,可以实现基于身份的密码体制,也就是公钥与用
户的身份信息即标识相关,从而比传统意义上的公钥密码体制有许多优点,省去了证书管理等。
双线性对的双线性的性质是基于对的标识密码SM2中的总则部分同样适用于SM9,由于SM9总则中添加了适用于对的相关理论和实现基础。
SM9给出了数字签名算法(包括数字签名生成算法,数字签名验证算法),密钥交换协议,以及密钥封装机制和公钥加密算法(包括密钥封装算法,加密盒解密算法)。数字签名算法适用于接收者通过签名者的标识验证数据的完整性和数据发送者的身份,也适用于第三方确定签名及所签数据的真实性。密钥交换协议可以使用通信双方通过双方的标识和自身的私钥经过两次或者可选三次信息传递过程,计算获取一个由双方共同决定的共享秘密密钥。密钥封装机制和公钥加密算法中,利用密钥封装机制可以封装密钥给特定的实体。公钥加密和解密算法即基于标识的非对称秘密算法,该算法使消息发送者可以利用接收者的标识对消息进行加密,唯有接收者可以用相应的私钥对该密文进行解密,从而获取消息。基于对的算法中同样使用了国家密管理局批准的SM3密码杂凑算法和随机数发生器,密钥封装机制和公钥加密算法中使用了国家密码管理局批准的对称密码算法和消息认证码函数。
7. 祖冲之对称算法
祖冲之密码算法由中国科学院等单位研制,运用于下一代移动通
信4G网络LTE中的国际标准密码算法。祖冲之密码算法(ZUC)的名字源于我国古代数学家祖冲之,祖冲之算法集是由我国学者自主设计的加密和完整性算法,是一种流密码。它是两个新的LTE算法的核心,这两个LTE算法分别是加密算法128-EEA3和完整性算法128-EIA3。ZUC算法由3个基本部分组成,依次为:1、比特重组;2、非线性函数F;3、线性反馈移位寄存器(LFSR)。
二、 国密算法行业应用
2014年,中国银联发布了《中国银联IC卡技术规范》和《中国银联银行卡联网联合技术规范》,在兼容最新国际通用技术标准的基础上支持国产密码,丰富了安全算法体系,促进了信息安全,自主可控水平实现提高。
1. 长沙银行
长沙银行是首批开展国密算法金融IC卡试点银行之一,此次发行金融IC卡中采用了我国安全可控的国密算法芯片。应用在长沙银行金融IC卡上的大唐CE3D系列双界面金融安全芯片采用了32位CPU内核,拥有高达80KB的EEPROM数据存储空间,符合PBOC3.0中SM2/3/4算法升级要求,支持JAVA操作技术,具有高安全、高性能、低功耗的特点,实现国密算法的金融IC卡成功跨行交易。

