首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >我的AES-128-CTR实现安全到足以加密私钥和助记符种子吗?

我的AES-128-CTR实现安全到足以加密私钥和助记符种子吗?
EN

Cryptography用户
提问于 2018-01-24 09:29:49
回答 1查看 556关注 0票数 0

我正在网上构建一个加密货币钱包,所有东西都存储在浏览器中(没有服务器)。

此时,我正在存储使用AES-128-CTR加密的所有私钥,我选择了这种方法,因为文件格式是标准的。

这个算法是否可以加密任何其他私钥,比如比特币(它不是十六进制)?

加密12个单词、助记符或任何其他字符串也是安全的吗?

以下是我的实现:https://github.com/elevenyellow/coinfy/blob/master/miscellaneous/experiments/aes-ctr-128.js

编辑:@ same在他的回应中说,我的实现完全不安全,这让我认为,myetherwallet.com也是一样的吗?因为我的代码只是一个重构:https://github.com/kvhnuke/etherwallet/blob/44074daeef3f98ca15410158b5a5403ac734a08a/app/scripts/myetherwallet.js#L196

Edit2:研究geth (Ethereum )客户端实现,除了参数kdf.n (它们的值为262144,而我的值为1024)之外,没有任何不同:

https://github.com/ethereum/go-ethereum/blob/bedf6f40aff0dd14bfab533a37c329ddc9a4bdd5/accounts/keystore/keystore_passphrase.go#L118

EN

回答 1

Cryptography用户

发布于 2018-01-24 10:36:28

这根本不安全。从技术上讲,这是一个非主题的主题,因为这是一个编码问题,但这个实现包含许多基本错误。一个例子是使用不安全的随机数生成器,它完全破坏了加密的安全性。另一种是使用AES-128-CTR而不进行身份验证.不要尝试实现您自己的加密原语,它需要大量的工作,并且容易导致完全失败的模糊错误。使用现有的库,该库提供基于安全原语的构造,这些原语可以满足您的需要。这在很大程度上意味着锂钠,锂氢,tweetnacl,或类似的图书馆。

如果使用there,就会有一个编译成JS:https://github.com/jedisct1/libsodium.js的版本

这里的文档:https://download.libsodium.org/doc/

您正在寻找经过身份验证的加密函数(crypto_secretbox_easy及其助手)。

利伯钠可以加密你想要的任何东西。此外,比特币私钥只是位字符串,就像Ethereum私钥一样。它们可以像任何其他编码一样容易地用十六进制表示。

票数 2
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/54994

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文