国密算法是指我国定制的商用加密算法,主要应用于金融行业,其中包括SM1、SM2、SM3、SM4等算法。SM1通常用于硬件实现,我们将主要讨论SM2、SM3和SM4这些可以使用软件实现的算法。国际上常用的加密算法包括RSA、SHA/MD5和DES等,其中RSA是非对称算法,用于签名和验签;SHA/MD5是摘要算法,用于生成HASH值;DES是对称加密算法,用于数据加密。国密算法的SM2对应于RSA,SM3对应于SHA,SM4对应于DES。

非对称算法RSA的密钥建议使用2048位(公钥明文256字节,私钥明文512字节),生成的加密数据长度为密钥长度的整数倍,签名数据长度与密钥长度一致。而SM2的密钥长度为32字节(公钥明文64字节,私钥明文32字节),生成的加密数据长度为32的整数倍加上明文长度,签名数据长度与私钥长度一致,为64字节。

对称加密算法DES要求密钥长度必须是8、16或32的整数倍,对应于DES和3DES加密,输入数据长度必须是密钥长度的整数倍。而SM4的密钥长度为16字节,输入数据必须是16字节的整数倍。摘要算法SM3计算结果为32字节的HASH值。

关键参数包括SM2的椭圆曲线参数(规范推荐值)、userID(推荐值:12345678)、私钥、公钥(可以通过私钥生成)。