国密

为了保障商用密码的安全性,国家密码局制定了一系列密码标准,包括:SM1(SCB2)SM2SM3SM4SM7SM9 、祖冲之密码算法(ZUC) 等。

SM1SM4SM7、祖冲之密码(ZUC)是对称算法。 SM2SM9是非对称算法。 SM3是哈希算法。 SM1SM7算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。

基本上能接触和使用的就是SM2SM3SM4,其他的就比较少。

相关的实现可以查看:SM2、3、4

SM1对称密码

SM1算法是分组密码算法,分组长度为128位,密钥长度都为128比特,算法安全保密强度及相关软硬件实现性能与AES 相当,算法不公开,仅以IP核的形式存在于芯片中。

采用该算法已经研制了系列芯片、智能IC卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。

在调用SM1的功能时,需要接入支持相应算法的硬件密码设备。 软件需要按照 《智能IC卡及智能密码钥匙密码应用接口规范》 的接口规范调用算法,原则上可以支持所有提供该接口的国密硬件。

SM2椭圆曲线公钥密码算法

SM2算法就是ECC椭圆曲线密码机制,但在签名、密钥交换方面不同于ECDSAECDH等国际标准,而是采取了更为安全的机制。 另外,SM2推荐了一条256位的曲线作为标准曲线。

SM2算法主要是有限域上椭圆曲线的参数生成以及验证,椭圆曲线的参数包括有限域的选取,椭圆曲线方程参数,椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。 最后给椭圆曲线上密钥对的生成以及公钥的验证,用户的密钥对为(s,sP),其中s为用户的私钥,sP为用户的公钥,由于离散对数问题从sP难以得到s,并针对素域和二元扩域给出了密钥对生成细节和验证方式。

SM2算法在很多方面都优于RSA算法,RSA和SM2的大体对比:

对比 RSA SM2
计算结构 基于特殊的可逆模幂运算 基于有限域上的椭圆曲线
计算复杂度 亚指数级 完全指数级
相同安全性能所需公钥位数 较多 较少(160位的SM2等于1024位的RSA)
密钥生成速度 快(据说快百倍以上)
加解密速度 中等 较快
安全性难度 基于大整数分解难题(IFP) 基于椭圆曲线上的离散对数难题(ECDLP)

SM3杂凑算法

SM3杂凑函数算法,此算法适用于商用密码应用中的数字签名和验证,消息认证码的生成与验证以及随机数的生成,可满足多种密码应用的安全需求。

此算法对输入长度小于264次方的比特消息,经过填充和迭代压缩,生成长度为256 比特的杂凑值,其中使用了异或,模,模加,移位,与,或,非运算,由填充,迭代过程,消息扩展和压缩函数所构成。

SM4对称算法

SM4对称算法是一个分组算法,广泛应用于无线局域网、有线局域网以及移动通信系统中的数据加密。

该算法的分组长度为128比特,密钥长度为128比特。加密算法与密钥扩展算法都采用32轮非线性迭代结构。

解密算法与加密算法的结构相同,只是轮密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。


results matching ""

    No results matching ""