GnuPG的clearsign选项如何工作?

时间:2016-05-23 17:00:50

标签: cryptography digital-signature gnupg pgp

可以通过在CMD中执行以下命令,使用clearsign选项使用PGP签名文件

gpg --clearsign filename

GnuPG使用什么样的算法来清除选项,这样即使在执行签名后,输出签名仍然可以读取?

我阅读了一本说明如何使用clearsign选项的手册,但我无法理解它。 It is available here.

根据手册,盔甲适用于签名,使签名不可读。但问题是清晰度如何使签名可读。

但是,如何将由哈希算法和加密函数组成的签名输出控制为明文?

通过使用散列和加密功能,如何将输出保证为可读的ASCII字符范围?

1 个答案:

答案 0 :(得分:6)

签名总是二进制的。 clearsign仅表示签名不是通过压缩消息计算,而是通过原始消息计算,如果是文本格式。这意味着签名邮件仍然可以被收件人读取(在----BEGIN PGP SIGNED MESSAGE----标题之后),这意味着在邮件中收件人仍然可以在不通过PGP程序的情况下阅读邮件。收件人仍然需要这样的程序来验证签名。

由于签名总是二进制的,但有时需要以文本格式发送,这意味着签名被编码为base64,以确保它也是文本格式。如果您不clearsign,而是sign,则首先压缩整个邮件然后进行签名,并且总计为base64编码。任何人都可以读取该消息(在base64解码和解压缩之后)。因此标准的ASCII装甲编码用于保证可打印的ASCII输出。但是这个最终编码只是为了方便,底层二进制形式是经过验证的实际签名。