9

我使用斯坦福 Javascript 加密库 (SJCL)进行对称 AES 加密(基于他们演示页面上的示例)。但是,我还有一个额外的要求是生成一个密钥对,用公钥加密数据,用私钥解密数据。一些类名表明这在 SJCL 中可能是可能的,但我想知道是否有人可以提供一个示例来说明它是如何完成的。在这个阶段我不关心私钥存储,只关心内存中的生成和公钥/私钥对的使用。

如果不可能,我会对涵盖 AES 和公钥密码学的替代库的建议感兴趣 - 但我知道这是我可以自己研究的东西!所以主要是我很想知道我开始使用的库是否可以满足我的所有需求,或者我是否需要寻找替代方案。

4

3 回答 3

8

事实上,可以使用 ECC 模块实现私有/公共加密。如果您是专业人士,您可以在http://bitwiseshiftleft.github.io/sjcl/doc/查看 api 文档。

如果你想要一个如何完成的例子,你可以通过

http://justinthomas.pro/crypto/test.html http://justinthomas.pro/crypto/存储库网址

您可以在此处查看 SJCL ECC 实施(包括密钥生成)

这也可能有帮助 https://github.com/bitwiseshiftleft/sjcl/issues/134

PS 椭圆曲线密码学 (ECC) 是一种基于有限域上椭圆曲线代数结构的公钥密码学方法。256 位 ECC 公钥应提供与 3072 位 RSA 公钥相当的安全性 http://en.wikipedia.org/wiki/Elliptic_curve_cryptography

于 2014-05-23T11:35:46.463 回答
3

看起来他们最近发布了这个(大约在您最初发布后一年),但它提供了如何进行不对称加密的教程

https://github.com/bitwiseshiftleft/sjcl/wiki/Asymmetric-Crypto

于 2015-06-11T22:09:44.227 回答
-4

根据Javascript中的对称密码学,没有提到公钥密码学。所以好像不支持。

可能有一些破碎的解决方案可用,但我不知道有任何问题。Github 似乎有一些选择:javascript public key crypto site:github.com

WebCrypto工作组现在正在解决这个问题。它将具有配置、密钥生成、密钥存储和一些公钥操作,例如sealsign. 第一个修订版不会提供丰富的 Diffie-Hellman 或 BigIntger 之类的原语。例如,参见关于 BigInteger 操作的问题。

于 2014-02-12T15:02:01.703 回答