问题标签 [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 回答
13310 浏览

public-key-encryption - 使用公钥加密大文件

我需要使用公钥加密一个 100KB 的文件。我一直在阅读一些帖子,声称使用公钥直接加密大文件是不切实际的,首选方法是使用对称密钥加密文件,然后使用公钥加密此对称密钥。似乎一个天真的解决方案是将大文件分解成碎片并使用相同的公钥加密它们中的每一个。我的问题是这个解决方案是否以及为什么是错误的?

0 投票
4 回答
1805 浏览

python - rsa算法的python包是什么

希望对 python 中的短字符串进行 RSA 加密。这是针对我想要存储的一段用户数据,而员工(包括我自己)无法看到它。当我们被传唤时,私钥将在我的保险箱中的拇指驱动器上。

我的问题:是否有用于非对称密钥 RSA 的“可能正确”的 python 包?我会更安全地使用 C 库(如果是的话)。

0 投票
5 回答
3531 浏览

encryption - Asymmetric Encryption

I have an exam tomorrow in Advanced Development, but I am stuck on the topic of Encryption. I have read up on it at http://support.microsoft.com/kb/246071. However I am still confused.

If a message is encrypted using Asymmetric Encryption, using the public key, how is the decryptor going to know the private key with which to decrypt it? Surely the only way to do this is to make the private key public, but that defeats the object of Asymmetric Encryption.

Can someone please explain this in a way that a non-techie would be able to understand it? Its only Asymmetric Encryption I dont understand, not Symmetric Encryption. Thanks in advance.

Regards,

Richard

Edit: So to sum up all the answers in the case of a web application (the specific use for which I need to know about this):

  1. User visits a website;
  2. User is requested to provide a public key;
  3. User creates public and private key-pair, keep the private one private and sends back the public key to the server;
  4. Server uses the public key to encrypt anything which needs to be sent to the user and sends the information to the user;
  5. User uses his / her private key to decrypt the response from the server;
  6. User does what they need to and sends back a response to the server, using the private key to encrypt it;
  7. Server decrypts using the public key. Steps 4 - 7 may continue many times, or they may only happen once, or only 4 and 5 may occur.

Is this all correct? If so then it should be all I need to know for the exam. I shouldnt think I would need to know any more to get the maximum 40% should a question on this subject come up - will mention the existence of certificates and signatures though.

Thank you for all the help.

Regards,

Richard

Edit: Well I have just got back from my exam and it went fairly ok I think. But no question on cryptography came up, however... The help was appreciated anyway. Thanks all.

Regards,

Richard

0 投票
1 回答
1158 浏览

sql-server-2005 - 如何在 SQL Server 2005 中使用现有列的安全加密

我想加密 SQL Server 2005 中的现有列,使用 UPDATE 语句,将旧内容移动到新的加密列中。

所以我有两个选择:对称和不对称。

我遇到的问题是,使用对称密钥,我必须将密码嵌入到 SP 中才能读取如下列:

现在如果我想选择数据,我仍然需要重新打开密钥

这不是重点,因为我在存储过程中嵌入了纯文本密码。

一些问题

  1. 有没有办法解决这个问题 - 即使用此密码创建证书,然后引用证书?
  2. 是否必须购买此证书(如 SSL),或者我可以创建自己的证书吗?
  3. 这种方法是否可跨故障转移集群数据库进行扩展,即加密不基于机器,仅基于提供的密码。因此故障转移仍然可以读取密码

谢谢你的帮助

0 投票
2 回答
1811 浏览

python - Python 非对称加密:使用预先生成的 prv/pub 密钥

好的,首先是的,我已经搜索了 google 和 stackoverflow 并做了一些阅读(仅在本次会议中超过 4 小时)没有找到我需要的内容,原因如下:

  • 他们中的许多人建议只启动像 gpg.exe 这样的 exe (http://stackoverflow.com/questions/1020320)

  • 有些人建议使用 PyCrypto 或其他库并查看它们,要么 a) 我找不到如何使用他们的任何 API,b) 我找不到如何导入预先存在的 prv/pub 密钥或 c) 他们使用不安全的 RandomPool (我试图更新它只是自找麻烦)

  • 有些人顺便提到它,但我找不到他们链接到的内容(或者他们根本没有链接。

所以我知道问你们stackoverflow用户我该怎么做,取一个公钥字符串(或路径(我可以把它写到一个临时文件中,(我打算把它作为一个字符串pub_key =“.. ." ) ) ) 并使用它来签署和保护字符串(将发布在论坛上(用于更新我的应用程序的 JSON)?

这些也是使用 PuttyGen 生成的 RSA 密钥(Putty Gen 4096 位 SSH-2-RSA)(可以是任何格式(OpenSSH、ssh.com、ppk)

这就是公钥的样子

---- 开始 SSH2 公钥 ----

评论:“rsa-key-20101003”

AAAAB3NzaC1yc2EAAAABJQAAAgEAi + 91fFsxZ7k1UuudSe5gZoavwARUyZScCtdf WQ0ROoJC + XIqW5vVJfgmr + A1jLS5m4wNsrCqeyoX2B22T6iEwqVXrXt3QcbccKMu WkLKFK1h67q6Coc + 3eOTmKrOuZbWc19YQgybdkR / GxF7XAbq4NCGNaCDtMOqX8Q2 L / a9fAYqVdTwg9trpcz3whNmdLk / B0edOABKuVX51UdLV + ZggK503 + uAb1JiIIj0 mARwR / HNo4oRLMLf2PjuZsGVYYjJDdVJBU6AN4PUQSRRRPL4 + YmsrLJb / TpfJeXA vj4KZMNJv15YXz7 / iMZMKznDtr2RJX5wbSpuTUBNZveA7YiIHxvvvis38b / lX9SJ SYPfZ9CeQY6MvQgG2zwDTOOvKgOIB4sTGMXfcoxB8AF / QXOcxWFJkZoj36rvMd9n Po6szLjHXwcEUOUvvQfG4VvdQA0H5gGLHqYL1EehRsgi5qcCoFPaZW2K09ErKcS0 MbrLFjBkQ9KmqAM38bvM8UhCWAMA9VXOGHMxUHBV4Bir9alGS4VX0B8Y0b3dZ + 7I MKkHMCwdEUJf7QVdGxGuSQtVsq8RZbIpk3g7wtv8f6I / iEC58ekdrH35tq5 + 1ilW dkk9 + rrhUy4qrZ + HFi7AeemybpiumbSnebvnkMaIPAOo23V8C9BQ0iuxx4gIZf10 o+TPSK8=

---- 结束 SSH2 公钥 ----

不是这个 --> 密钥格式似乎是 PKCS1,所以 M2Crypto 将不起作用(它的加载密钥功能需要 PEM)

最新阅读我认为是 SSH 公钥文件格式(RFC:http ://www.ietf.org/rfc/rfc4716.txt )

我也认为下面是错误的,我认为它不能处理 SSH 公钥文件格式 :(

看起来 Twisted 可能是我应该看的地方

http://www.java2s.com/Open-Source/Python/Network/Twisted/Twisted-1.0.3/Twisted-1.0.3/twisted/conch/ssh/keys.py.htm

另外为什么不允许我立即发布赏金?

0 投票
3 回答
3377 浏览

brute-force - 重复加密给定文件有多实用?

我目前正在试验公钥和个人文件加密。我使用的程序分别具有 2048 位 RSA 和 256 位 AES 级加密。作为这个东西的新手(我现在只是一个密码朋克大约一个月 - 并且对信息系统有点陌生)我不熟悉 RSA 算法,但这与这里无关。

我知道,除非某个秘密实验室或 NSA 程序碰巧拥有一台量子计算机,否则目前不可能暴力破解这些程序提供的安全级别,但我想知道加密文件会更安全吗?再次。

简而言之,我想知道的是:

  1. 当我使用 256 位 AES 加密文件,然后再次加密已经加密的文件(再次使用 256)时,我现在是否拥有相当于 512 位 AES 的安全性?这几乎是一个问题,即蛮力方法可能必须测试的可能键的数量是2 x 2 的 256 次方还是 2 的 256次方。悲观的是,我认为是前者,但我想知道 512-AES 是否真的可以通过简单地用 256-AES 加密两次来实现?
  2. 一旦一个文件被多次加密,以至于您必须继续使用不同的密钥或在每一级加密时不断输入密码,有人**会认出他们是否已经通过了第一级加密吗?我在想也许——如果一个文件需要几个不同的密码进行多次加密——破解者将无法知道他们是否已经突破了第一级加密,因为他们所拥有的仍然是加密的文件。

这是一个例子:

  • 解密文件
  • DKE$jptid UiWe
  • oxfialehv u%uk

假装最后一个序列是破解者必须使用的 - 以暴力方式返回原始文件,他们必须得到的结果(在通过下一级加密破解之前)仍然会出现一旦他们突破了第一级加密,就成为一个完全无用的文件(第二行)。这是否意味着任何尝试使用暴力破解的人都无法返回原始文件,因为他们可能除了加密文件之外什么都看不到?

这些基本上是处理同一件事的两个问题:一遍又一遍地加密同一个文件的效果。我已经在网上搜索以了解重复加密对确保文件安全有什么影响,但除了在某处读到第一个问题的答案是否定的轶事之外,我没有发现任何与同一主题的第二次旋转有关的内容. 我对最后一个问题特别好奇。

**假设他们以某种方式暴力破解弱密码 - 因为如果您知道如何制作安全密码,这似乎是 256-AES 现在的技术可能性......

0 投票
1 回答
2330 浏览

c# - .NET 中的 RSA 加密 - JAVA 中的解密 -> Java 抛出“模数非正数”错误

我在与我们的第三方供应商实施 sso 时遇到问题。他们在验证我的签名时收到以下错误:

java.lang.ArithmeticException: BigInteger: 模数不是正数——在 java.math.BigInteger.modPow(BigInteger.java:1556)

我无法控制他们的 Java 代码。这是我现在正在做的事情:

我使用以下代码在 C# 中创建了一个密钥对:

这是签名的代码:

(是的,我知道私钥应该在密钥库中)。

这是他们用来转换 xml 键的代码(这是 Java)

0 投票
12 回答
98394 浏览

math - 破解短 RSA 密钥

给定以下 RSA 密钥,如何确定pq的值是多少?

0 投票
4 回答
802 浏览

c# - 两个客户端之间发送消息,如何验证发送者的身份?

因此,假设您有两个客户端,C1 和 C2,每个客户端都有一个与之关联的 GUID。

当您在 C2 上收到据称来自 C1 的消息时(通过检查 GUID 并查看它是否与 C1 的 GUID 匹配),但由于不能保证消息来自 C1(C3 可能刚刚发送消息,在消息头中发送 C1 的 GUID)必须验证消息实际上来自 C1。

我一直在研究使用非对称加密 (RSA) 让 C1 发送由 组成的消息,[C1.GUID; RSAEncrypt(C2.PUBLIC_KEY, C1.GUID); MESSAGE]然后让 C2 基本上进行这样的检查(python 伪代码):

这是一种可行的方法吗?还是有其他一些更聪明/更明显的方法来验证消息的发件人?

0 投票
1 回答
981 浏览

vb.net - 非对称算法的 x509 证书密钥

重新做这个问题,因为我不知道我是否正确地表达了我的观点。

我有一个signedXML 对象

我需要设置这个对象的 SigningKey 属性

我也有我的证书对象

如何使用我的证书设置signedXml 的SigningKey 属性。

在 .NET 2.0 中,每个 X509Certificate 都有一个“Key”属性,该属性返回一个 RSA 对象,但在 3.5 中,此属性被删除。