从零学习 CA 系列 (八) -- 数字信封

简介: 本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。对称密码优点是加解密运算非常快,适合处理大批量数据,但其密码的分发与管理比较复杂。

本文参考《PKI/CA 与数字证书技术大全》书籍,如有理解bug, 请大家指正。

对称密码优点是加解密运算非常快,适合处理大批量数据,但其密码的分发与管理比较复杂。而非对称密码算法的特点是公钥和私钥分离,非常适合密钥的分发和管理。如果将对称密码算法和非对称密码算法的优点结合起来,则既能处理大批量数据,又能简化密钥的分发与管理,于是数字信封机制应运而生。

数字信封并不需要分发和管理对称秘钥,而是随机产生对称密钥,采用对称密码算法对大批量数据进行加密,并采用非对称密码算法对该对称密钥进行加密;解密时,先用非对称密码算法解密后获得对称秘钥,然后使用对称密码算法解密后获得数据明文。

数字信封的功能类似于普通信封,采用对称密码算法对消息进行加密类似于信纸上的内容,采用非对称密码算法对对称密码算法对对称秘钥加密类似的信封,信封将信纸抱起来,保证了消息的安全性。

数字信封机制的具体流程如下图:

img_9102cea4d997c71640d17c1c2faa7cb4.jpe
数字信封使用示例图

PKCS #7 规范规定了数字信封消息的具体封装格式。数字信封消息封装格式用 ASN.1 描述如下:

img_2e785026e7a594d4fddbf3e67012d22c.jpe
PKCS#7 信封消息
目录
相关文章
|
存储 算法 安全
PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?
PKCS#1、PKCS#5、PKCS#7、PKCS#8到底是什么?
3035 0
|
监控 关系型数据库 MySQL
MySQL 5.7在高并发下性能劣化问题的详细剖析
TL;DR MySQL 5.7高并发读写混合场景下rt飙升,业务系统大量超时报错。本文总结了阿里业务场景下遇到的坑,剖析问题背后的原因,帮助读者更好的理解MySQL内核原理,降低升级MySQL 5.7的风险。
10297 0
|
12月前
|
安全 API 数据安全/隐私保护
12种API认证全场景解析:从Basic到OAuth2.0,哪个认证最适合你的业务?
在API认证领域,从简单的Key-Value到高级的OAuth2.0和JWT,共有12种主流认证方式。本文详解了每种方式的意义、适用场景及优劣,并通过认证方式矩阵对比常见工具(如Postman、Apifox)的支持情况。此外,还介绍了企业级安全功能,如密钥保险箱、动态令牌和合规审计。选择合适的认证方式不仅能提升安全性,还能大幅提高开发效率。未来,自动化认证矩阵或将成为API调试的核心趋势。
|
监控 架构师 安全
企业架构(EA)项目开发综合指南
企业架构(EA)是一种全面的方法,用于对齐企业的业务目标与其 IT 战略和资源。EA 涵盖了企业的各个层面,包括业务流程、信息流、应用系统和技术基础设施。本指南将详细探讨 EA 项目开发的关键步骤、[EA](https://www.visual-paradigm.com/features/enterprise-architecture-diagram-tool/) 与 TOGAF、ArchiMate 以及其他建模图(如 BPMN 和 UML)之间的关系,以及推荐 Visual Paradigm 作为 EA 团队的最佳解决方案。
727 3
|
存储 消息中间件 算法
深入解析OpenStack Cinder:块存储服务详解
本文介绍了OpenStack及其块存储服务Cinder。OpenStack是一个开源云计算管理平台,提供基础设施即服务(IaaS),核心服务包括计算、网络、存储等。Cinder主要用于为虚拟机提供持久性块存储,具备多种功能,如卷操作、备份、快照及与实例的交互等。此外,还详细介绍了Cinder的工作流程、命令行操作及不同存储插件的使用。
2071 8
|
算法 安全 网络安全
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
概念区分:对称加密、非对称加密、公钥、私钥、签名、证书
3406 0
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
396 2
|
人工智能 前端开发 API
借助chat-web前端开源项目搭建属于自己的ChatGPT镜像站
借助chat-web前端开源项目搭建属于自己的ChatGPT镜像站
1895 0
|
运维 Docker 微服务
深入浅出:使用Docker容器化部署微服务架构
在当今快速演进的软件开发领域,微服务架构因其灵活性和可扩展性而成为了企业级应用的首选。然而,部署和管理众多微服务的复杂性也随之增加。本文将探讨如何通过Docker容器技术简化微服务架构的部署和运维,实现服务的快速交付和高效管理。我们将从Docker的基本概念入手,逐步深入到如何构建、部署和管理容器化的微服务,最终展示一个简单的微服务应用部署案例,帮助读者理解并掌握使用Docker容器化部署微服务的全过程。
|
安全 前端开发 Java
springboot代码混淆及反混淆代码工具
虽然加壳器在降低代码的可读性方面做得很好,但我们仍然可以看到它的主要字符串以明文形式编写,这可能会揭示它的一些功能。这就是为什么我们可能想要寻找更好的方法来混淆我们的代码。