openssl aes加密结果是乱码_2019年密钥大小和加密算法指南

本文探讨了2019年密钥大小的重要性,指出过度关注密钥长度可能忽视了算法的其他关键属性,如AES与Blowfish的对比。建议在非对称加密中优先使用X25519和ECDH,对称加密推荐XChaCha20-Poly1305和AES-GCM-SIV。强调了理解算法和情境选择的重要性,以及在量子计算威胁下如何选择合适的密钥长度。
摘要由CSDN通过智能技术生成

多年来,关于密钥长度的研究已经有很多,其中包括学术界(例如Lenstra方程)和各种标准委员会(ECRYPT-CSA,德国BSI,美国NIST等)。

尽管在互联网上对这些材料进行了大量的报道,但这些资源在为软件开发人员和系统管理员起草建议时缺乏清晰度。

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

关于密钥大小在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族哈希函数一起使用,密钥大小等于哈希函数大小。

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

更重要的是,不要使用哈希函数设计自己的消息身份验证协议。去使用HMAC。

如果您的对称加密包括Poly1305身份验证,这是很好的,但它需要个专家小心使用它的安全性。除非你是专家,否则不要单独使用Poly1305。

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

●特定协议的建议HTTPS / TLS

简易模式:使用Mozilla的服务器端TLS配置生成器。

复杂模式:仔细构建您的密码套件,包括ECDHE,CHACHA20-POLY1305和AES-GCM,然后使用Qualys SSL Labs等工具验证您的配置。

更重要的是,如果您能提供帮助,请尝试仅支持TLS 1.2或更新版本。

SSH

简易模式:遵循Mozilla的OpenSSH服务器配置指南。

此外,请确保您使用的是Ed25519密钥。您可以通过将-t ed25519传递给ssh-keygen来完成此操作。

VPN

只需使用WireGuard。

如果您被迫使用OpenVPN,可以遵循一些步骤来强化您的OpenVPN配置。只要知道,一般来说,OpenVPN的默认设置对安全性来说太糟糕了。例如,默认加密方法是Blowfish。

WireGuard在2019年领先于任何其他VPN软件。

2019年密钥大小和加密算法指南​mp.weixin.qq.com

文章首发在微信公众号:btc201800知识星球ID:28018093

音频发布在喜马拉雅上“区块链杂谈 (第2季)” http://xima.tv/Bjq4se

解读区块链白皮书 http://xima.tv/RNU1Q8

宁波格密链网络科技有限公司,专注于区块链上的密码技术研发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值