#国密课堂#
第二期
商用密码应用
安全性评估
Part 2. 商用密码算法
在第一期国密课堂 中,杨博士带大家简单了解了密码算法的概念。第二期杨博士带我们继续走近商用密码应用安全性评估领域,进一步了解在商用密码领域,有哪些常用的密码算法
对称密码算法
(1)分组密码算法及工作模式
(1.1)分组密码算法
SM1密码算法:SM1算法是国家密码管理局认可的一种分组密码算法,分组长度、密钥长度都是128bit,但是算法不公开,仅以IP核的形式存在于芯片中,需要通过加密芯片的接口进行调用。
采用该算法的密码产品包括安全芯片、智能IC卡、智能密码钥匙、加密卡、加密机等,该算法广泛应用于电子政务、电子商务及国民经济的各个领域。
SM4密码算法:算法采用32轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
SM4密码算法于2012年3月21日发布,相关的标准包括:《GM/T 0002-2012 SM4分组密码算法》、《GB/T 32907-2016 信息安全技术 SM4分组密码算法》。该算法的基本原理如下图所示(图1):
(图1)
算法采用了典型的Feistel密码结构,采用32轮非线性迭代结构,以字(32位)为单位进行加密运算,每一次迭代运算均为一轮变换函数F。
算法原理如下图所示(图2):
(图2)
SM7对称密码:SM7算法是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7的算法目前没有公开发布。SM7适用于非接IC卡应用,包括身份识别类应用(门禁卡、工作证、参赛证),票务类应用(大型赛事门票、展会门票),支付与通卡类应用(积分消费卡、校园一卡通、企业一卡通、公交一卡通)。
(1.2)分组密码工作模式
即使有了安全的分组密码算法,也需要采用适当的工作模式来隐蔽明文的统计特性、数据的格式等,以提高整体的安全性,降低删除、重放、插入和伪造成功的机会。因此,分组密码有不同的工作模式,包括电码本(ECB)模式、分组链