主页 > imtoken怎么下载到手机 > 2019 年密钥大小和加密算法指南

2019 年密钥大小和加密算法指南

imtoken怎么下载到手机 2023-10-15 05:09:12

怎么生成比特币地址_比特币公私钥生成_比特币密钥生成器

多年来,学术界(例如 Lenstra 方程)和各种标准委员会(ECRYPT-CSA、德国 BSI、美国 NIST 等)都对密钥长度进行了大量研究。

尽管这些材料在 Internet 上有广泛的覆盖面,但这些资源在为软件开发人员和系统管理员起草建议方面不够清晰。

● 关于密钥大小的重要说明

2019 年关于密钥大小最重要的事情是它们并不像公众认为的那么重要。

安全行业的许多人完全专注于最大限度地提高暴力攻击的难度,前提是他们仍然可以实现他们的性能目标。 他们选择满足目标基准并感觉更安全的最大密钥。 同时,他们实际上并没有做出最佳的安全选择,实际上可能会损害他们自己的安全。

实际上,超过某个阈值(例如对称加密的 96 位安全级别),更长的密钥几乎不会给您带来任何好处。

● 当密钥大小实际上危及安全时

考虑这两组密码; 哪个更安全?

比特币密钥生成器_比特币公私钥生成_怎么生成比特币地址

怎么生成比特币地址_比特币公私钥生成_比特币密钥生成器

Blowfish,最多支持 448 位密钥

AES,最多支持 256 位密钥。

如果你选择 Blowfish,你就落入了陷阱。

Blowfish 的块大小为 64 位,而 AES 的块大小为 128 位。

Blowfish 因其块大小而易受攻击,而 AES 则不然。

在现实世界中,AES 具有硬件加速 (AES-NI),使其速度非常快,同时不受缓存时序攻击。 Blowfish 没有可用的硬件加速。

只关注密钥大小,而忽略这些算法的其他重要属性,可能会导致做出次优的安全决策。

但是,如果您有其他类似的情况,您总是使用 AES 但决定在您的应用程序中使用 128 位和 256 位密钥。 您应该总是选择更长的密钥吗?

比特币公私钥生成_比特币密钥生成器_怎么生成比特币地址

AES-128 和 AES-256 的安全性之间唯一有意义的区别是量子计算机的威胁。

如果开发出实用的量子计算机,Grover 算法将破解 128 位 AES 而不是 256 位 AES。 但是在大多数协议中,您的非对称加密下降得更快(2048 位 RSA 和 256 位 ECC 下降 2^32 倍,而 AES 下降 2^64 倍)。

由于大多数 AES 密钥是使用非对称加密交换的密钥,因此选择 256 位密钥可能不足以保护您的消息机密性免受量子攻击者的侵害。

● 密钥大小和算法建议

如果您团队中的加密专家不同意这些建议,请听取专家的意见。 他们可能了解您的特定需求,而这篇博文并不知道。

● 非对称(“公钥”)加密

按优先顺序使用:

X25519(密钥大小永远不会改变)

怎么生成比特币地址_比特币密钥生成器_比特币公私钥生成

对称加密:带有 secp256r1 的 ECDH(密钥大小永远不会改变)

对称加密:使用 2048 位密钥的 RSA

即使使用 3072 位 RSA,256 位椭圆曲线加密密钥也同样安全。

虽然许多组织建议在未来几年内从 2048 位 RSA 迁移到 3072 位 RSA(甚至 4096 位 RSA),但不要遵循该建议。 相反,从 RSA 迁移到椭圆曲线密码学,然后在听取后量子密码学建议的同时放松一下。

此外比特币密钥生成器,要保证RSA加密的安全性,还有很多复杂的问题需要考虑,但这是一个难题,不值得在本文中重述。 如果可以,最好不要使用 RSA。

ECDH:256 位密钥

RSA:2048 位密钥

● 对称密钥加密

比特币密钥生成器_比特币公私钥生成_怎么生成比特币地址

按优先顺序使用:

XChaCha20-Poly1305 或 XSalsa20-Poly1305(始终使用 256 位密钥)

AES-GCM-SIV(不考虑密钥大小)

ChaCha20-Poly1305(始终有一个 256 位密钥)

AES-GCM(不考虑密钥大小)

如果您使用的是信誉良好的 TLS 库(OpenSSL 是最常见的),那么这些选项中的任何一个都可以。 您可以自由使用 256 位密钥,但如果您必须使用 128 位密钥,也不要太担心。

对于应用层对称密钥加密,应考虑另外两个选项。

AES-CTR(不考虑密钥大小)+ HMAC-SHA2(加密然后 MAC)

比特币密钥生成器_比特币公私钥生成_怎么生成比特币地址

AES-CBC(不考虑密钥大小)+ HMAC-SHA2(先加密再 MAC)

如果您想使用其他东西,请咨询密码学家。 如果您没有密码学家比特币密钥生成器,请雇用一个。 除非您的团队中有加密专家,否则不要尝试加密太多。

尽管如此,请谨慎行事。

只要您使用此列表中的选项之一,128 位或 256 位都可以。

●对称密钥认证

将 HMAC 与 SHA2 散列函数系列一起使用,密钥大小等于散列函数大小。

这里有很多不错的选择。 只需确保为 SHA-224 使用至少 224 位密钥。

更重要的是,不要使用散列函数设计自己的消息认证协议。 去使用 HMAC。

如果您的对称加密包括 Poly1305 身份验证,那很好,但需要专家注意其安全性。 除非您是专家,否则不要单独使用 Poly1305。

如果算法合理,224 位、256 位、384 位、512 位都是很好的密钥大小。