本文主要介绍生成数字信封和拆解数字信封流程。
数字信封功能类似于普通信封,采用对称密码算法对消息进行加密(消息类似于信纸上的内容),采用非对称密码算法对对称密钥加密(类似于信封),信封将信纸包装起来,保证了消息的安全性。
被公钥加密后的对称密钥被称为数字信封。
对称密码算法优点是加解密运算非常快,适合处理大批量数据。缺点是密钥分发与管理比较复杂。
非对称密码算法优点是公钥与私钥分开,适合密钥的分发与管理。缺点是运行速度不快,不适合处理大批量数据。
如果将对称密码算法和非对称密码算法的优点结合起来,则既能处理大批量数据,又能简化密钥的分发与管理,数字信封机制基于此应运而生。
数字信封不需要分发和管理对称密钥,而是随机产生对称密钥,采用对称密钥算法对大批量数据进行加密,并采用非对称密码算法对该对称密钥进行加密;解密时,先用非对称密码算法解密后获得对称密钥,然后使用对称密码算法解密后获得数据明文。
生成数字信封:
· 消息发送方预先获得接收方的公钥。
· 消息发送方随机产生对称密钥,并用该对称密钥和对称算法对消息进行加密。
· 消息发送方用消息接收方的公钥和非对称算法对上述对称密钥进行加密。
· 消息发送方将消息密文和对称密钥密文一起发送给消息接收方。
拆解数字信封:
· 消息接收方收到消息密文和对称密钥密文。
· 消息接收方使用自己的私钥和非对称密码算法对对称密钥密文进行解密后获得对称密钥明文。
· 消息接收方使用上述对称密钥和对称算法对消息密文解密后获得消息明文。