【问题标题】:How does public key encryption work?公钥加密如何工作?
【发布时间】:2011-06-26 00:52:00
【问题描述】:

如何使用私钥和公钥/公钥解密/加密公钥加密?密钥为 256 位是什么意思?它是如何解密的?是否有编写加密程序的语言或任何语言都可以?

【问题讨论】:

标签: encryption public-key-encryption encryption-asymmetric


【解决方案1】:

简而言之:

使用对称算法和随机对称密钥对数据进行加密。然后使用公共非对称密钥对随机密钥进行加密。加密的随机密钥与加密的数据一起存储。解密数据时,使用非对称私钥对存储的随机密钥进行解密,然后使用解密后的随机密钥对数据进行解密。

256 位是密钥的长度。但是,它对于对称和非对称密钥的含义截然不同。对于对称密钥,256 位是一个非常强的密钥(您可以使用 AES 384 或 AES 512 拥有更长的密钥,其中数字指定算法使用的密钥长度)。对于非对称算法,256 位算不上什么,可比较的强度是 2048 位。

可以使用任何支持数学运算和数组的语言来实现公钥加密。然而,这样做是在重新发明轮子。有许多 PKI 的跨平台库:开源的 OpenSSL 用于 C++,BouncyCastle 用于 Java 等等。我们公司为 .NET、Windows 和 Linux(MacOS X 版本即将推出)提供受支持和维护的 SecureBlackbox 产品。

我们还向所有用户推荐了几个books about PKI。 RSA 的指南很容易阅读(但非常有用),第二本书更深入地介绍了细节。

【讨论】:

  • 从这个非常简短的描述来看,拥有这个随机密钥似乎不是多余的,因为最终,您所需要的只是解锁两者的私钥(解密后的随机密钥的数据)。
  • @Nick 随机对称密钥别无选择。您不能直接使用公钥/私钥,因为它会非常缓慢(比使用对称密码慢数千倍)。
【解决方案2】:

第一个问题见http://en.wikipedia.org/wiki/Public-key_cryptography 你可以谷歌了解更多细节。

256 位密钥意味着我们使用长度为 256 的密钥。在详细阅读第一个问题的答案后,您会明白这一点。

许多语言都有内置或第三方 api 来实现这些调用。

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 1970-01-01
    • 2013-04-05
    • 2018-11-25
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 2015-08-07
    相关资源
    最近更新 更多