用途:该模式不解决某个具体安全问题,而是为正确应用密码学方案提供基础指导,是加密、数字签名、消息认证码(MAC)等具体模式的基础。密码学操作实现不当会使全部安全保证失效。
主要能力:定义核心角色与数据元素。Entity(实体)希望执行一个或多个密码学操作;Cryptographer(密码学原语)是提供密码学操作的库。数据元素包括 input(明文数据)、output(操作结果,如密文、数字签名)、keyInfo(密钥标识或密钥材料,取决于密钥管理方式)、config(Cryptographer 配置,如密码模式,可选)。流程为:Entity 请求操作并提供 input、keyInfo 与可选 config,Cryptographer 执行并返回 output。
关键考量:始终使用现有知名库,不要自定义密码算法、自行实现已有算法或创建自定义密码协议;选库前查阅文档、验证假设与依赖兼容性,避免不再维护或偏离最佳实践的库。密钥应单一用途,不得同一密钥既加密又签名或用于不同数据类型。为变化而设计,应支持配置变更(如更长密钥)、算法替换与库替换,推荐在密码库外提供 API 抽象层。若 Entity 提供配置,需防篡改并检测未授权更改;必要时考虑配置机密性。
实现与相关模式:该模式由加密、数字签名、MAC 等模式特化。相关模式包括密码学密钥管理、密码学即服务(如 KMS)、自管理密码学。库资源可参考各实现模式、密钥管理模式及 awesome-cryptography。
检查清单:使用成熟知名库;无自定义密码实现;每密钥单一用途;提供 API 抽象层;配置防篡改;按需处理配置机密性;库处于活跃维护;库遵循当前最佳实践;为算法与密钥长度过渡而设计。
限制:资料未提供具体代码示例、安装命令、收费或平台信息。