我已经使用pgpdump
了一个加密文件(通过 BouncyCastle)来获取有关它的更多信息,并找到了几行关于部分开始、部分继续和部分结束的信息。所以我想知道这到底是在描述什么。它是纯文本的某种碎片吗?
此外,在 RSA 算法之后,位计数代表什么?在这种情况下,它是 1022 位,但我见过 1023 和 1024 位的文件。
我已经使用pgpdump
了一个加密文件(通过 BouncyCastle)来获取有关它的更多信息,并找到了几行关于部分开始、部分继续和部分结束的信息。所以我想知道这到底是在描述什么。它是纯文本的某种碎片吗?
此外,在 RSA 算法之后,位计数代表什么?在这种情况下,它是 1022 位,但我见过 1023 和 1024 位的文件。
这篇 tumblr 帖子很好地解释了部分身体长度。OpenPGP 消息由给定长度的数据包组成。有时对于大型输出(或者对于来自 GnuPG 的数据包,短消息),会有部分正文长度指定另一个标头将显示,告诉读者继续阅读来自帖子:
部分正文长度告诉解析器: “我知道这个数据包中至少还有 N 个字节。在多 N 个字节之后,将有另一个标头告诉您是否还要读取多少字节。” 我猜这个想法是,您可以在数据流进入时对其进行加密,而不必知道它何时结束。也许您正在对语音进行 PGP 加密,或者正在对一些未播出的电视进行加密。我不知道。它可以是无限长的——你可以继续在其中扔更多的部分正文长度标头,每个标头可以处理高达 1 GB 的长度。每千兆字节它都会通知解析器:“是的,还有更多!”</p>
因此,在您的屏幕截图中,pgpdump 读取 8192 字节,然后遇到另一个标头,说要读取另外 2048 字节。在 2k 字节之后,它到达另一个 1037 字节的标头,依此类推,直到最后一个 continue 标头。489 字节之后是消息的结尾
1022 位是公共模数的长度。它总是接近 1024(如果您有 1024 位密钥),但最终可能会比最初选择的 RSA 参数略短。尽管它们比这略短,但它们仍被称为“1024 位密钥”。