随着电子邮件应用的快速发展,它在方便用户沟通的同时,其安全性也面临着挑战。如今很多邮件系统都会使用相应的加密算法来保护邮件安全。下面我们就来了解一下国密算法在邮件加密系统中的应用。

国密算法的介绍

  • SM4:是对称密码算法,分组长度和密钥长度都是128b,加密算法和密钥扩展都使用相同的32轮迭代结构,以字节(8bit)和字为单位对数据进行处理。SM4算法采用的是对合运算,只是在加解密过程中使用的轮密钥的顺序不同,解密密钥是加密密钥的逆序。
  • SM3:是一种杂凑算法,主要应用可以分为商业数字签名和验证、消息认证码的生成与认证等。SM3算法首先是要对长度为l(l<264)的消息进行填充,填充到合适的长度,然后对填充好的数据进行迭代压缩,最后生成杂凑值,杂凑值是固定长度,为256bit。

国密算法

国密算法在邮件加密系统中的应用

SM4密钥获取

首先获取SM4密钥,SM4密钥获取方式有2种,第1种方式是用户自己设置,输入16b的字符作为SM4加密的密钥。第2种方式是系统自己生成,系统随机产生16个随机数作为自身的密钥,将随机数以字符的形式存入密钥key中。

获取用户私钥

用户通过在邮件系统中注册获取用户唯一的身份标识ID,通过获取到的身份ID计算出该用户的私钥S,用安全的传输方式秘密发送给用户。

邮件加密

对SM4密钥进行签密

对第一步中获取到的SM4密钥进行签密,用接收者的身份标识ID和自己私钥S对SM4密钥进行签密,将签密结果∂保存。

用SM3对待加密信件进行压缩编码

首先要对待加密信体进行填充,若信体m的长度为l(l<264),首先将bit“1”增添在消息最后面,再添加k个“0”,k满足l+1+k=448 mod 512的最小非负数。再添加一个64b比特串用以表示消息长度,使得被填充后的消息m1的长度为512N。然后使用SM3算法对填充好的数据进行压缩编码,最终会得到512b的杂凑值V。

对压缩编码值进行加密编码

将压缩编码V用SM4算法以及发送者获取到的密钥对其进行加密,密文C1以字符串的形式存储。

邮件加密

用SM4对信件加密

将信件M按照16B分组,然后用获得的SM4密钥对其进行加密(Ek就是表示用密钥key进行SM4加密):C=Ek(Mi)。

将密文块级联起来就是密文C2,对密文进行编码以便在网络上传输。

待发送的文件

将各个信息按照接收者EMS名、发送者的EMS名、发送格式信息、签密信息、密文信息的顺序以规定的格式存入一个文本,加密过程结束。

邮件加密

解密过程

首先对接收到的密文进行分离,分离出消息格式类型、接收者MES名、发送者MES名、分离出签密密文∂,用发送的身份标识和接收者的私钥S进行解签密,若解密成功则同时进行签名验证,解出的明文为SM4密钥。接着通过用SM4密钥对密文C1和C2解密,得到信件的明文m以及杂凑值u.再对明文进行SM3压缩编码得到V',与解密的u进行一致性检验,检测是否信息被篡改,确保信息的完整性和真实性。

免责声明:素材源于网络,如有侵权,请联系删稿。