国际密码算法选用及标准解读
2023-11-1 11:35:5 Author: www.freebuf.com(查看原文) 阅读量:5 收藏

一、背景

近期商密因为相关标准和政策上了一波热度,今天来点不一样的,聊一聊国际密码算法。

前段时间,开发跟我扯3DES还安全,可以用,RSA 1024大家都在用,为啥我们不能用,告诉他不安全,他不认,让我列出个123来。为此,我找了一下相关资料作为依据,把研发这边的国际密码算法要求给更新了一遍,在这里也给各位分享一下我找到的相关资料。

二、先说结论

1、RSA可保留2048位,逐步迁移至RSA 3072

非对称密码算法主要用于密钥加密,证书认证。旧系统迭代开发时,为保证密码算法兼容性,可遗留使用RSA 2048使用。

新系统立项开发前,可考虑使用RSA 3072级别以上算法。

2、弃用3DES,可使用AES 128位

TDEA(3DES)在NIST的计划里将于2023年底弃用,且目前已有被攻破的案例,在国际上使用存在合规和安全风险。

对称密码算法主要用于数据加密保护,数据生命周期一般比较长久。基于现实因素和长久考虑,3DES不建议用于数据保护中,至少使用AES 128位做数据保护。

三、一些名词

RSA:一种非对称加密算法

RSA 1024:使用1024位密钥的RSA算法

RSA 2048:使用2048位密钥的RSA算法

RSA 3072:使用3072位密钥的RSA算法

DES:数据加密标准(Data Encryption Standard),1977年被美国立为数据加密标准,后被国际广泛流传使用,它一种使用分组加密算法的标准,使用的密钥实际长度56位。

DEA:数据加密算法(Data Encryption Algorithm),数据加密标准(DES)使用的加密算法,通用描述中会将其称为DES(因为DES流传得更宽泛),但在大多数文献和论文中都将其称为DEA。

3DES:Triple DES,DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。

TDEA:Triple DEA,TDEA≈3DES。(FIPS)

2TDEA:TDEA,K1和K2是独立的,而K3=K1(NIST SP 800-57和SP 800-78-1)。

3TDEA:TDEA,3个密钥都是独立的,K1≠K2,K2≠K3,K1≠K3(NIST SP 800-57与SP 800-78-2)。

AES:高级加密标准(Advanced Encryption Standard),使用Rijndael加密算法,使用128位密钥。(FIPS)

FIPS:联邦信息处理标准,由(美国)国家标准和技术协会(NIST)负责草拟规范。

CA浏览器论坛(简称:CA/B论坛):是一个国际性电子认证机构(CA)与系统/浏览器厂商联合成立的公共组织。论坛成员有:微软,Mozilla,Google/安卓、苹果等国际知名系统/浏览器厂商。

四、NIST SP 800-57密钥管理建议

NIST.SP.800-57pt1r5于2020年5月发布,NIST发布的标准主要用于要求美国信息系统的最低安全要求,同时也作为国际安全标准的参考依据。

原文链接:https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-57pt1r5.pdf

1、密码算法分级

标准中5.6章节为密码算法和密码选用指南,指南中表2为对称分组密码和非对称密钥算法安全强度对比。

1697794422_65324976085ce04be4d8b.png!small?1697794422202

1697794428_6532497c38ff2907537ba.png!small?1697794429541

其中,RSA 2048被分类为112级别的密码算法。(3TDEA后面再说)

2、密码算法时间限制

标准中5.6章节为密码算法和密码选用指南,指南中表4为安全强度时间框架图。

1697794472_653249a86f9ae0ccd6b83.png!small?1697794472666

其中112级别(3TDEA,RSA 2048均属于112级别)的密码算法强度,可以使用至2030年,将于2031年后开始禁止使用于新系统中。

五、NIST 将撤回TDEA算法标准

虽然3TDEA目前仍属于112级别的密码算法,但基于现实因素和安全考虑(见下文),NIST于2023年6月29日发文,将于2024年1月1日收回《SP 800-67 3DES (TDEA)分组密码推荐方案》,这意味着在3DES的生命周期将在2023年结束。于此新闻中,NIST宣称TDEA在2023年停止申请,并于2023年12月31日后禁止使用(仅可用于历史的已加密数据进行解密)。

原文链接:https://csrc.nist.gov/news/2023/nist-to-withdraw-sp-800-67-rev-2

1697794507_653249cbe4f54a7b1ed0e.png!small?1697794508218

六、CA/B论坛证书要求

CA/B论坛对代码签名证书提出新要求:从2021年6月1日起,代码签名证书的最小密钥长度将从2048位增强至3072位。

原文链接:

https://cabforum.org/2020/10/07/ballot-csc-4-v1-move-deadline-for-transition-to-rsa-3072-and-sha-2-timestamp-tokens/

1697794571_65324a0ba30595edbc044.png!small?1697794572178

七、3DES 安全性

1、安全漏洞

法国国家信息与自动化研究所(INRIA)针对64位的分组密码进行研究后发现可以通过生日攻击进行密码分析获取加密信息,详见:

https://sweet32.info/

而通过该项研究,衍生出2个CVE漏洞:

CVE-2016-2183, https://nvd.nist.gov/vuln/detail/CVE-2016-2183;

CVE-2016-6329,https://nvd.nist.gov/vuln/detail/CVE-2016-6329。

1697794617_65324a39bfefba05d672c.png!small?1697794619316

1697794622_65324a3ebf8d5064b2a1a.png!small?1697794623054

2、NIST

NIST在2017年7月时发文,宣称TDEA(3DES)存在严重安全隐患,呼吁TDEA使用者及时迁移至AES。

链接:

https://csrc.nist.gov/news/2017/update-to-current-use-and-deprecation-of-tdea

1697794653_65324a5d8e30fad2900ce.png!small?1697794654897

NIST在分组算法描述中,声明已禁止3DES用于保护新信息系统的安全性。

1697794664_65324a686e25bb9d04bbc.png!small?1697794665823

八、微软SDL密码算法要求

1、分组密码算法

  • 优先选用AES
  • 3-Key 3DES仅可用于向下兼容
  • RC2、DES、2-Key 3DES、DESX及Skipjack仅可用于旧数据解密,不得用于数据加密中

1697794722_65324aa233076c56dd7ef.png!small?1697794723980

2、非对称密码算法

主要参考NIST标准,

  • RSA >= 2048;
  • ECDSA >= 256;
  • ECDH >= 256;
  • DH >= 2048。

1697794774_65324ad60895956020bb5.png!small?1697794774239

九、写在最后

本文主要还是分享一些国际算法的选用依据,如有问题可以留下指点意见。


文章来源: https://www.freebuf.com/articles/database/381425.html
如有侵权请联系:admin#unsafe.sh