翻译:《PKCS#7 - SignedData》

2024-08-27 16:58
文章标签 翻译 pkcs signeddata

本文主要是介绍翻译:《PKCS#7 - SignedData》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文翻译于 PKI Globe的《PKCS#7 - SignedData》

(欢迎提出修改意见)

以下为翻译文


在开始PKCS#7 SignedData之前还是很有必要先了解下电子签名是如何产生和校验的。

签名和验签

以下是签名计算所需要的步骤:

  • 通过任何一种密钥对生成算法(如RSA)生成一对公钥和私钥。

  • 准备需要用于计算签名的数据。

  • 使用任何一种哈希算法(如SHA256)对数据做摘要。

  • 使用私钥对哈希后的数据进行加密,输出来的就是签名值。

为了验证签名,以下是所需的步骤

  • 为了验证签名,你需要知道已签的数据(译者注:这里应该指的是原文),签名,哈希算法和公钥。

  • 使用签名过程用到的同样的哈希算法对数据进行哈希。

  • 利用公钥解密签名,你会得到哈希值。

  • 现在比较上面两步得到的哈希,如果它们相等,就意味着数据没有被篡改或者说这个签名是认证的,否则就是被篡改了。

一般来说,一方是签名,另一方是验签。如果你已经注意到了签名验签过程中里的第一步,你会发现在验签之前我们是需要一些标准的方法来存放这些信息。那么PKCS# 7的SignedData就是其中一种存放这些信息的格式。当然还有其它的一些格式,像PDF签名,XML签名等等,但这些它们底层的生成和验签的原理是一样的。

SignedData

PKCS# 7 SignedData是一种针对任意数据生成电子签名的标准格式。像有些数据如果他自身的格式规范不能让它有自己的电子签名,那么你就可以使用这种格式。比如说:你想签署一份文本文件,但因为它没有自己的签名规范,那就能用PKCS# 7 SignedData;而PDF文件因为有它自己的签名规范,所以它就可以用PDF的签名规范进行签名。此外微软的Office文档也有自己的签名规范。你也可以说PKCS# 7 SignedData可以对源数据进行签名。

在PKCS# 7 SignedData里,支持带原文和不带原文两种格式。在带原文的格式里,已签名的数据是SignedData里的一部分,那么在验签的时候,就不需要携带源数据了。而在不带原文的格式里,已签名的数据没有被放在SignedData里,而是在其它外部的地方,所以验签的时候就需要携带原文。

PKCS# 7 SignedData里支持两种类型的签名:

  • 独立签名

  • 会签

在独立签名里,所有的签名者签的都是同一份数据;而在会签里,一个签名者签完后,下一个签名者是在上一个签名者的签名上进行签名。

结构

以下展示的是ASN.1格式下的PKCS# 7 SignedData。因此你需要有能力阅读ASN.1才能完全理解下图。

这里写图片描述

这里写图片描述

这里写图片描述

1)指定了SignedData的结构;
2)指定了生成签名的哈希算法。OID 2.16.840.1.101.3.4.2.1显示使用的是SHA256哈希算法;
3)指定了使用的是不带原文的格式,因为当前没有内容;如果是带原文,那么这里应该是有内容的。
4)包含用于验签时需要用到的公钥的签名证书。它也可以包含签名者的完整证书链。
5)指定了签名信息结构,如果是独立签名,那么应该包含多个签名者的信息。
6)指定了证书发行者和序列号的结构。
7)指定了生成签名用到的哈希算法,这应该跟2)提到的是一样的。
8)显示认证属性的信息,这些属性是签名计算里的部分,如果任何一部分的属性被修改了,那么签名就会失效。另外如果对于未认证属性被修改了,那它就还是能照样验签通过。未认证的属性不会显示在ASN.1结构里。
9)指定了加密算法。
10)指定了签名值。

以上PKCS# 7 结构是用BouncyCastle库生成的。

这篇关于翻译:《PKCS#7 - SignedData》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1112252

相关文章

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

excel翻译软件有哪些?如何高效提翻译?

你是否曾在面对满屏的英文Excel表格时感到头疼?项目报告、数据分析、财务报表... 当这些重要的信息被语言壁垒阻挡时,效率和理解度都会大打折扣。别担心,只需3分钟,我将带你轻松解锁excel翻译成中文的秘籍。 无论是职场新人还是老手,这一技巧都将是你的得力助手,让你在信息的海洋中畅游无阻。 方法一:使用同声传译王软件 同声传译王是一款专业的翻译软件,它支持多种语言翻译,可以excel

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

linux dlopen手册翻译

名称 dlclose, dlopen, dlmopen 打开和关闭一个共享对象 简介 #include <dlfcn.h>void *dlopen(const char*filename, int flags);int dlclose(void *handle);#define _GNU_SOURCE#include <dlfcn.h>void *dlmoopen(Lmid_t lm

从计组中从重温C中浮点数表示及C程序翻译过程

目录 移码​编辑  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 例子:   ​编辑 浮点数取的过程   C程序翻译过程 移码  传统浮点表示格式 浮点数的存储(ieee 754)->修炼内功 根据国际标准IEEE(电⽓和电⼦⼯程协会)  32位 例子:    64位    IEEE754对有效数字M和

HumanNeRF:Free-viewpoint Rendering of Moving People from Monocular Video 翻译

HumanNeRF:单目视频中运动人物的自由视点绘制 引言。我们介绍了一种自由视点渲染方法- HumanNeRF -它适用于一个给定的单眼视频ofa人类执行复杂的身体运动,例如,从YouTube的视频。我们的方法可以在任何帧暂停视频,并从任意新的摄像机视点或甚至针对该特定帧和身体姿势的完整360度摄像机路径渲染主体。这项任务特别具有挑战性,因为它需要合成身体的照片级真实感细节,如从输入视频中可能

深度评测热门翻译工具,携手你的翻译得力助手

随着互联网技术的飞速发展,全球化交流日益频繁,跨语言沟通的需求也随之激增。对于外语水平有限的朋友来说,翻译器是一个必不可少的工具。今天我就分享几款我用的翻译器吧。 1.福晰在线翻译  链接直达>>https://fanyi.pdf365.cn/doc  该网站以其高度的专业性著称,专为翻译需求而精心打造。它不仅支持用户粘贴部分文字进行即时翻译,更贴心地提供了整份PDF文档的导入翻译功能,极大

idea中配置Translation插件完成翻译功能

文章目录 idea下载插件配置有道云阿里云百度翻译开放平台 idea下载插件 idea中安装Translation插件 使用方法:右下角选择翻译引擎,鼠标选中想翻译的部分,右键翻译即可 之前一直用的微软的翻译,不需要配置,但是最近微软服务器总是抽风,无法使用,故打算配置一下国内的翻译服务。 配置 有道云 只有初始的一点额度,用完就要收费了,不推荐

Nodejs Serialport文档翻译

想象一个世界,你可以在那写javascript来控制搅拌机,灯,安全系统或者甚至是机器人。是的,我说的是机器人。那个世界就是这儿,现在使用node serialport。它提供一个非常简单的接口所需要的串口程序代码Arduino 单片机, X10 无线通信模块, 或者甚至是上升到 Z-Wave 和Zigbee . 在这个物理世界,你可以随心所欲(The physical world is yo