首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于使用GnuPG与Yubikey/Solokey/Nitrokey签署的概念问题

关于使用GnuPG与Yubikey/Solokey/Nitrokey签署的概念问题
EN

Security用户
提问于 2020-07-13 20:44:35
回答 1查看 342关注 0票数 1

命名的硬件软盘(或者至少有几种型号)允许我存储PGP密钥。

假设我使用这样一个秘密密钥来对数据进行签名(不管是什么)。据我所知,操作发生在硬件本身,而PGP密钥不会离开设备。

现在假设我正在签署几个数据的GiB,这是否意味着所有的数据都通过硬件压缩,因此硬件dongle成为一个瓶颈,或者签名实际上与签名数据的散列(散列在我的主机上被计算)相同?

概括地说:

  • 当签署大量的数据时,该数据是以某种方式通过硬件数据,还是它的散列被计算出来,而签名只是表示哈希的有效性?
  • gpg-agent的介入会改变什么吗?例如,假设我在host2上签名内容,host1连接到D6上,该D6具有插入PGP秘密密钥的硬件连接。
  • 假设我正在对某些公钥加密数据,并随后对其进行签名。这会改变什么或造成瓶颈吗?
EN

回答 1

Security用户

发布于 2020-07-14 00:53:54

GnuPG signatures 将签署文件摘要,而不是文件本身。.当您尝试对一个大型文件进行签名时,GnuPG将创建该文件的摘要(通常使用哈希),然后只对其签名。

我们还可以使用--detach-sig选项来显示(分离的)签名大小相同,而不考虑文件的初始大小:

代码语言:javascript
复制
$ gpg --sign --detach-sig testfile-2M.sig testfile-2M                                                                                                                                                                                                   
gpg: using "MYKEY" as default secret key for signing 
                                                                                                                                                                                                                              
$ gpg --sign --detach-sig testfile-512M.sig testfile-512M                                                                                                                                                                                               
gpg: using "MYKEY" as default secret key for signing

$ ls -lh .                                                                                                                                                                                                                                             
total 1052792
-rw-r--r--   1 kazwolfe  wheel   2.0M Jul 13 17:33 testfile-2M
-rw-r--r--   1 kazwolfe  wheel   566B Jul 13 17:41 testfile-2M.sig
-rw-r--r--   1 kazwolfe  wheel   512M Jul 13 17:33 testfile-512M
-rw-r--r--   1 kazwolfe  wheel   566B Jul 13 17:42 testfile-512M.sig

在验证文件时,GnuPG将执行类似的操作。它将独立计算摘要,然后根据该摘要验证签名。

加密工作以类似的方式。RSA或其他不对称算法的速度相当慢,特别是相对于其他(对称)算法,如AES。因此,GnuPG将选择生成一个会话密钥,该会话密钥实际上将对文件进行快速加密。然后使用公钥对此会话密钥进行加密。

您也可以尝试这样做:如果您用多个收件人加密一个(大型)文件,那么加密该文件的时间实际上不会发生多大变化,因为会话密钥只是在每个接收方之间被回收。

代码语言:javascript
复制
$ time gpg -r MYKEY --encrypt testfile-512M                                                                                                                                                                                                          
       11.58 real        10.43 user         1.08 sys

$ time gpg -r ... -r ... -r ... -r ... --encrypt testfile-512M                                                                                                                                                       
       11.83 real        10.55 user         1.17 sys
票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/234638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档