问题标签 [encryption-asymmetric]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
5336 浏览

security - RSA:使用多个密钥加密消息

是否可以通过使用 2 个或更多 RSA 密钥加密消息来获得额外的安全性?

编辑: 一些澄清:

我最感兴趣的上下文是加密随机生成的对称密钥。

我不想将问题限制为连续加密两次;目的是避免大型 RSA 密钥的高计算成本。应考虑使用不太直接的策略,例如将消息分成几部分并分别加密它们。

应该假设只获取部分消息是可以接受的。

如果您知道专家专门讨论此问题的任何出版物,或使用多个 RSA 密钥的算法,请提供帮助。

0 投票
4 回答
694 浏览

c# - 是否可以在非对称密码学中使用纯加密和解密密钥而不是私钥和公钥?

是否可以使用纯加密和解密密钥而不是私钥和公钥?正如我在 .Net 非对称 RSA 实现中所知道的,私钥RSAParameters parameters = (new RSACryptoServiceProvider()).ExportParameters(true)是公钥的超集。并且使用私钥我们可以加密和解密我们的数据。但我只需要密钥来解密数据。怎么做?

我尝试将 RSAParameters 字段归零,但 RSACryptoServiceProvider 对象无法导入此类参数。

0 投票
1 回答
2462 浏览

android - Android 上的非对称加密

我想问一下我是否可以在 android 手机上使用非对称加密(如 RSA 或 ECC),如何使用,以及我应该使用哪些最好的库。

0 投票
4 回答
8002 浏览

java - 在数据库或密钥库中存储公钥和私钥

我正在制作一个 Web 服务,它将为数据库表中的每条记录存储公钥和私钥。

密钥是使用 Java 制作的,但我不确定是否可以创建密钥库或直接将密钥放在数据库中的字段中。

您会推荐什么选项,每种方法的好处是什么?

0 投票
1 回答
200 浏览

encryption-asymmetric - 非对称密钥系统?

我了解公钥与私钥的基本系统,如果我想给一个人发送一些东西,我需要他们的公钥,然后他们用他们的私钥解密,但是什么样的逻辑机制在起作用,所以私钥可以解密什么公钥加密?例如,假设我想编写自己的非对称密钥系统。我将如何成对生成这些密钥以及如何实现它们?

我知道不只有一种方法可以做到这一点,但我只是想尝试任何一种方法。

0 投票
1 回答
4133 浏览

c# - BouncyCastle 创建 PKCS 7 加密文件?C#

我正在尝试使用 BouncyCastle 使用 PKCS 7 文件标准加密文件。这是我输出p7m文件的代码。当我去解密文件(使用 Entrust)时,系统会提示我输入我的密钥存储密码,因此它知道文件是使用 AES 128 为我加密的,但它无法解密文件的正文。加密一定有问题。

当我尝试使用 BouncyCastle 解密文件时,当我将文件内容传递给 CMSEnveloped 对象时出现此错误:

有什么想法吗?

0 投票
4 回答
5399 浏览

c# - RSA私钥加密

有没有办法在 C#中执行私钥加密?

我知道中的标准RSACryptoServiceProviderSystem.Security.Cryptography但这些类只提供公钥加密私钥解密。此外,它们还提供数字签名功能,该功能使用内部私钥加密,但没有任何可公开访问的功能来执行私钥加密公钥解密

在 codeproject 上找到了这篇文章,这是执行这种加密的一个很好的起点,但是,我正在寻找一些现成的代码,因为文章中的代码很难加密任意长字节包含随机值的数组(这意味着任何值,包括零)。

你知道一些很好的组件(最好是免费的)来执行私钥加密吗?
我用.NET 3.5.

注意: 我知道这通常被认为是使用非对称加密的不好方法(使用私钥加密并使用公钥解密),但我只需要那样使用它。

附加说明

考虑你有

并且您想使用它2048bit RSA来确保没有人更改此数组中的任何内容。

通常,您将使用数字签名(即。RIPEMD160),然后将其附加到原始字节并发送给接收者。

所以,你有30 字节的原始数据,以及额外的 256 字节的数字签名(因为它是 a 2048bit RSA),总共286 字节。然而,这256 个字节中只有160 位实际上是散列的,因此正好有1888 位236 个字节)未使用。

所以,我的想法是这样的:

30 字节的原始数据,附加哈希(20 字节),现在加密这50 字节。您会收到256 字节长的消息,比286 字节短得多,因为“您能够将实际数据推送到数字签名中”。

ECDSA 资源

MSDN
Eggheadcafe.com
c-plusplus.de
MSDN 博客
Wiki

DSA 资源

代码项目
MSDN 1
MSDN 2
MSDN 3

最终解决方案

如果有人对我如何解决这个问题感兴趣,我将使用1024bit DSAand SHA1,它在许多不同版本的 Windows(Windows 2000和更新版本)上得到广泛支持,安全性足够好(我没有签署订单,我只需要以确保某些孩子无法破解他 iPhone 上的签名 (:-D)),并且签名大小只有40 字节长。

0 投票
4 回答
4416 浏览

javascript - 客户端加密 - 任何建议/最佳实践 - 为我指明正确的方向?

我们需要对数据客户端进行加密,以确保我们客户的浏览器和供应商之间存在“安全”通道。

基本前提是:Vendor 生成公钥/私钥对:VendorPub 和 VendorPriv

我们的客户输入敏感数据。在提交表单上的 javascript 加密数据的敏感部分,提交到我们服务器的是 VendorPub(SensitiveData)。

我们将该包作为 VendorPub(SensitiveData) 提交给我们的供应商,只有他们可以使用该数据。

无论密钥长度和批准的算法(分别为 RSA 和 4096)如何,当然整个事情都将通过 SSL 连接......

它看起来可行,但我还没有模拟它......有什么建议吗?陷阱?

我们的开发环境是 Visual Studio 2k5/ 2k8 / ASP.net 2.0 或 3.0

谢谢

0 投票
1 回答
446 浏览

encryption - 哪个更好?预先生成非对称密钥还是实时生成它们?

假设密钥库是安全的并且需要服务大约一百万个密钥,是实时生成非对称密钥更好,还是生成一堆密钥并存储它们以在需要时使用更好?

编辑1:实时我的意思是在用户第一次注册时生成一个密钥对,从那时起,该密钥对用于与用户的所有通信。

0 投票
3 回答
17753 浏览

java - Java 非对称加密:存储公钥/私钥的首选方式

此代码生成一对公钥/私钥:

我想知道的是您通常如何存储公钥:

选项 1:存储字节

我不喜欢将代码与具体实现联系起来,例如PKCS8EncodedKeySpecX509EncodedKeySpec.

选项 2:存储模数和指数

第二个选项更容易实现,但我不知道它是否会降低性能。

有什么建议吗?