Gnupg 是开源的(是的!),因此可以查看发生了什么。当您为密钥创建撤销证书时,即通过“gpg --gen-revoke name”
它在内部通过以下功能/关键步骤
main()在gpg.c(gpg 命令行工具)中被调用,然后 
- 解析参数然后
gen_revoce( const char *uname)在revoce.c中调用, 
- 然后在里面检索 uname 的密钥和公钥 
 
make_keysig_packet然后它像这样调用sign.c    rc = make_keysig_packet(&sig, pk, NULL, NULL, sk, 0x20, 0,
                              opt.force_v4_certs?4:0, 0, 0,
                              revocation_reason_build_cb,原因);
使用密钥对(publicpk和 secret sk)并另外提供一个函数指针revocation_reason_build_cb和一个带有撤销的字符串reason)。 
- 然后在内部
make_keysig_packet使用 hash_algo 创建消息摘要 md,最终提供给complete_sig( sig, sk, md );内部调用do_sign并在md. 
- 创建创建的撤销证书(这是一种使用秘密/私钥消息签名的类型)。
 
然后在提供给密钥服务器的此证书中将允许此(如@WayToDoor 所说)它对服务器上的密钥的注释。 
只有拥有秘密私钥的人才能签署要使用公钥验证的消息,因此,撤销是“发送私钥签名消息、生成的消息哈希和非对称加密”之类的事情。
我对另一件事的看法是,一旦撤销,密钥对就会被烧毁(信任毫无价值)。 
因此,将子密钥用于更安全(气隙)的主加密密钥将是明智的,允许重新发布新的工作子密钥来替换被撤销的密钥,而无需安全通道明智地验证新子密钥的公钥-密钥对。