国密化可能用到的密码算法:
(1)对称密码算法SMS4,即SM4
(2)椭圆曲线密码算法SM2
1)椭圆曲线数字签名算法SM2-1
2)椭圆曲线密钥交换协议SM2-2
3)椭圆曲线公钥加密算法SM2-3
(3)密码杂凑算法SM3
(4)消息认证码算法MAC(带密钥的Hash函数)有两种计算方式:
1)用DES等直接加密消息摘要
2)使用专门的MAC算法,如HMAC,基于MD5或SHA-1将密钥和数据同时作为输入计算散列值,经过二次散列迭代,公式为:
参考国家密码管理局2017年末发布的标准规范《可信计算密码支撑平台功能和接口规范》中对于密码算法的要求Chapter4.2 (https://wenku.baidu.com/view/e1201c8771fe910ef12df84b.html),初步确定国密化用到的SM2,SM3,SMS4,HMAC和随机数发生器必须符合国家密码管理局要求。
总结如下:
1.对称密码算法SMS4
《可信计算密码支撑平台功能和接口规范》对其自身项目的要求是采用SMS4de CBC模式,ZV自行定义,数组最后一个分组需要填充。国家密码管理2012年发布《SM4分组密码算法》标准规范GM/T 0002,规定了SM4分组密码算法的结构描述和运算示例。我们的GIS项目采用的是ECB模式,最后一个不足16Byte的分组是不填充不加密的,拟通过分析项目中使用的SM4接口符合该标准给出的计算步骤,以此作为实现国密化的依据之一。
2.非对称国产密码算法SM2
通过数字信封实现数据的安全保护,采用对称加密算法SMS4加密数据,采用椭圆曲线算法SM2加密之前SMS4加密时用到的密钥。
国家密码管理局发布《SM2密码算法使用规范》(http://www.open-open.com/doc/view/cb196735e895490298823134d3dbec41), 若GIS项目中日后使用到SM2接口,需符合该规范。
SM2算法推荐使用256位素域GF(P)上的椭圆曲线:,参数h=1。密钥长度为256比特,采用ECB电码本模式,私钥key需满足,公钥是椭圆曲线上的一个点,SM2有规定好的密钥分配协议page33(https://wenku.baidu.com/view/465916275ef7ba0d4b733b97.html),SM2算法使用到的HASH值均由SM3算法计算得到。
3.密码杂凑算法SM3
国家密码管理局于2012年发布了《SM3密码杂凑算法》标准规范GM/T 0004(http://www.oscca.gov.cn/sca/xxgk/2010-12/17/content_1002389.shtml),规定了SM3密码杂凑算法的计算方法和计算步骤,并给出了运算示例。在商用密码应用中的数字签名和验证、消息认证码的生成与验证以及随机数的生成,都需要符合该标准。我们的GIS项目在生成消息摘要环节正式用到了SM3算法,拟通过分析GIS项目使用到的SM3接口符合该标准给出的计算步骤,以此作为实现国密化的依据之一。
4.消息认证码HMAC
利用国产杂凑密码算法SM3,将给定的消息和双方共享的密码一起作为输入,产生固定长度的消息认证码,计算公式为:。
5.随机数发生器
随机数生成算法不做具体规定,可自行设计,但所生成的随机数必须是真随机数,满足国产商用密码随机数检测要求,根据国家密码管理局2012年发布的GM/T 0005《随机性检测规范》(http://www.doc88.com/p-695152985827.html), 包含15种随机数检测算法,国产商用密码应用中随机数生成器产生的二元序列需通过随机性检测。随机性检测方法包括的几个概念:
(1)源假设:又称零假设,假定该序列是随机的
(2)备择假设:假定该序列不是随机的
(3)显著性水平α:将某一随机序列错判成非随机序列的概率
(4)单比特频数检测:检测该序列中0、1的个数是否相近
广电新闻出版总局也给出了部分国密改造方向,童刚听取2016年总局科技司关于广播电视领域推广国产密码应用的汇报指出国密在广电领域的研究和推广部署方向有:(1) 国产数字内容版权保护(China-DRM)
(2) 数字条件接收DCAS
(3) 国密在广播电视融合传输覆盖网的应用推广
(4) 基于国产密码的应急广播应用系统