首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

技术:GPG将隐私、诚信、信任整合到通信中

我们常常使用电子邮件来传递信息,它确实给我们带来了便利,但同时我们也需要知道电子邮件其实是一种很糟糕的沟通渠道,因为它的隐私,完整性和可信度至今还是无法确定。所以对于网络安全攻击载体来说,电子邮件仍然是最大的威胁。

如果你正在处理一些重要信息,就应该使用更加安全的方法。传统加密通信的方法中,Bob需要Alice的公钥,并将其添加到自己的数字密钥环中。这之后,Bob使用Alice的公钥加密他自己生成的随机对称密钥。唯一能揭示随机对称密钥的密钥是Alice的私钥:

这种方法的一大优势是Bob可以使用自己的私钥对消息的哈希进行签名,Alice可以使用公钥对其进行检查,这样我们就拥有了隐私、完整性和信任。

认识GPG

Phil Zimmerman创建了PGP (Pretty Good Privacy),并将其发展到GNU Privacy Guard (GPG)。总的来说,GPG是一个基于OpenPGP的程序,可以生成密钥对,加密和解密数据,对文件进行数字签名和验证数字签名。本文使用2.4.0版本。支持RSA、ELG、DSA、ECDH、ECDSA、EDDSA等公钥方法。还有IDEA、3DES、CAST5、BLOWFISH、AES、AES192、AES256、TWOFISH、CAMELLIA128、CAMELLIA192和CAMELLIA256的对称密钥密码,以及SHA1、RIPEMD160、SHA256、SHA384、SHA512和SHA224。支持的压缩方式有ZIP、ZLIB和BZIP2。

为此,我们可以安装GPG,如果可能的话,GPG版本2是最好的,因为它支持一系列椭圆曲线签名,包括ECDSA和EdDSA。接下来,我们可以用Python GnuPG链接到可执行文件。

要创建密钥对,我们需要:类型(RSA、ECDSA或EdDSA)、用户名、他们的电子邮件地址和密码。如果我们有一个RSA密钥对,我们可以定义密钥的大小,比如RSA-1024、RSA-2048和RSA-4096。如果我们有ECDSA,我们需要定义曲线,例如secp256k1或NIST P256。对于EdDSA,我们通常将曲线定义为曲线25519(并使用Ed25519作为密钥)。下面的代码生成了一些密钥类型:

如果现在尝试使用此公钥,会得到:

对于 RSA-2048,我们有更大的密钥,其中 RSA 模数为 2,048 位长:

同样,如果我们将公钥进行粘贴,将得到:

对于采用 NIST P-256 的 ECDSA,我们可以看到缩短的密钥,因为我们只需要一个 256 位私钥和一个 512 位公钥:

对于 NIST P-521,密钥大小更大(私钥为 521 位):

总体而言,ECDSA 和 EdDSA 用于数字签名,但 RSA 可用于加密和数字签名。不过,RSA 确实有更大的密钥大小。

结论

从许多方面而言,互联网自 1980 年代以来从未真正发展起来,我们使用的协议仍然与当时大同小异。但是,随着时代的更替,网络安全方面一定是可以做得更好的。

Source:https://medium.com/asecuritysite-when-bob-met-alice/privacy-integrity-and-trust-some-day-we-will-integrate-these-into-all-our-communications-the-71040f7e07e0

ChinaDeFi- ChinaDeFi.com 是一个研究驱动的DeFi创新组织,同时我们也是区块链开发团队。每天从全球超过500个优质信息源的近900篇内容中,寻找思考更具深度、梳理更为系统的内容,以最快的速度同步到中国市场提供决策辅助材料。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230215A039WF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券