您当前的位置:   首页 > 新闻中心
NIST加密算法要求的摘要说明
发布时间:2019-11-14 12:24:55   阅读次数:

防止攻击和恶意渗透的系统密码保护取决于两个方面:(1)密钥的强度以及与密钥关联的机制和协议的有效性(2)通过密钥管理(安全的密钥生成,存储,分发,使用和销毁)来保护密钥

NIST加密算法要求的摘要说明(图1)

强大的算法与糟糕的密钥管理相结合,失败的可能性与嵌入在强大的密钥管理环境中的糟糕算法一样。


本文希望阐明密码算法(与密钥关联的机制和协议),并旨在提供执行摘要,以供选择安全系统的密码算法时要考虑的内容。我们的结构基于NIST的特殊出版物800-57第1部分,修订4 –“密钥管理建议,第1部分”。NIST的工作最初是作为美国政府机构中保护敏感,未分类信息的应用程序的指南而编写的-NIST的工作提供了最佳实践的宝贵总结。


缩小算法池

根据NIST,如果需要加密服务,则必须使用FIPS认可或NIST推荐的加密算法。这些算法已经过广泛的安全性分析,并经过不断测试以确保它们提供足够的安全性。加密算法通常将使用加密密钥,当需要加强这些算法时,通常可以使用较大的密钥来完成。


密码算法类

NIST批准的加密算法共有三类,分别由各自使用的加密密钥的数量或类型定义。


哈希函数

加密哈希函数不将密钥用于其基本操作。此功能通过单向过程从通常为大量数据创建小的摘要或“哈希值”。哈希函数通常用于创建用于密钥管理并提供安全服务的构造块,例如:

  • 通过生成消息认证码(MAC)提供源和完整性认证服务

  • 压缩消息以生成和验证数字签名

  • 在密钥建立算法中派生密钥

  • 生成确定性随机数


对称密钥算法

对称密钥算法也称为秘密密钥算法,它转换数据以使其在没有秘密密钥的情况下极难查看。


该密钥被认为是对称的,因为它既用于加密又用于解密。这些密钥通常由一个或多个授权实体知道。对称密钥算法用于:

  • 通过使用用于加密和解密数据的相同密钥来提供数据机密性。

  • 提供用于源和完整性身份验证服务的消息身份验证代码(MAC)。该密钥用于创建MAC,然后对其进行验证。

  • 在密钥建立过程中建立密钥

  • 生成确定性随机数


非对称密钥算法

非对称密钥算法也称为公钥算法,在执行其功能时会使用成对的密钥(公钥和私钥)。公钥是众所周知的,但私钥仅由该密钥对的所有者控制。即使私钥是密码相关的,也无法通过使用公钥进行数学计算。非对称算法用于:

  • 计算数字签名

  • 建立加密密钥材料

  • 身份管理


密码算法提供的安全服务

特定的安全服务可以通过使用不同的密码算法来实现。通常,单个算法可以用于多种服务。


散列函数

哈希函数通常是许多密码算法和方案的组成部分,包括数字签名算法,密钥哈希消息验证码(HMAC),密钥派生函数/方法和随机数生成器。哈希函数通过获取任意但有限制的长度输入并生成固定长度的输出来进行操作。此输出通常称为哈希,哈希值,消息摘要或数字指纹。FIPS180(安全哈希标准)和FIPS202(安全哈希算法3)定义了批准的哈希函数。


用于加密和解密的对称密钥算法

加密通过将“纯文本”转换为“密文”来提供数据的机密性。解密将密文转换回纯文本。AES和3DES是批准用于加密/解密服务的对称密钥算法。3DES可能会在不久的将来退休。


高级加密标准(AES)

AES基于Rijndael算法,该算法由Cryptomathic的前首席密码学家Vincent Rijmen和他的研究员Joan Daemen共同发明。  


AES使用128/192/256位密钥将数据加密和解密为128位块。


3DES /三重DEA(TDEA)


3DES是一种对称密钥块密码,它对每个数据块应用DES密码算法三次。NIST使用的正式名称是三重数据加密算法(TDEA)。


TDEA使用三个56位密钥将数据加密和解密为64位块。TDEA还有两个变体: 


使用3个键的两键TDEA(2TDEA),但是键1和键3是相同的。这导致112个有效位。


三键TDEA使用3个不同的键,导致168位。2TDEA被广泛用于支付卡行业,因为它提供了安全性和计算时间的良好折衷。


但是,不断发展的技术使其不适合抵御攻击。自2015年12月21日起,2TDEA仅可用于解密目的。


一项比较研究(Alanazi等人,2010年)指出,即使3DES(也称为3TDEA)也容易受到差分密码分析的影响。


先进的加密标准(AES)证明自己更加安全,不仅可以抵抗差分密码分析,而且还可以抵抗截断的差分或线性密码分析以及插值和平方攻击。


AES和TDEA应用的操作模式

加密操作模式是对具有对称密钥块密码算法(在此情况下为AES和TDEA)特征的数据进行密码转换的算法。操作模式解决了块密码加密中出现的问题:当在一条消息中分别对多个块进行加密时,这可能使对手可以替换单个块,而通常无需检测。为了缓解这种情况,NIST规定了所应用算法

  • 变量初始化向量(在加密的初始步骤以及消息的后续和相应解密中使用的特殊数据块)和/或

  • 反馈从加密操作中获得的信息。


消息验证码(MAC)

MAC可用于为消息的源/源和完整性提供身份验证。这种加密机制通过创建由消息始发者和接收者共享的MAC密钥来解决对手更改消息的问题。


使用块密码算法的MAC

此算法使用批准的分组密码算法(例如AES或TDEA)来进一步保护MAC。


使用哈希函数的MAC

批准的哈希函数也可以用于计算MAC。


数字签名算法

数字签名与哈希函数一起使用,以提供源身份验证,完整性身份验证以及对不可否认性的支持。FIPS 186批准了数字签名算法(DSA),RSA算法和ECDSA算法,可用于生成数字签名。


重点建立方案

密钥传输和密钥协商是两种类型的自动密钥建立方案,用于创建将在通信实体之间使用的密钥。发送实体加密密钥资料,然后由接收实体解密。


基于离散对数的密钥协商方案

基于离散对数的公钥算法依赖于使用有限域数学或椭圆曲线数学的方案。临时密钥,静态密钥或两个密钥都可以用于单个密钥协议事务中。


使用整数分解方案建立密钥

基于整数分解的公共密钥算法用于密钥建立方案,其中一方始终拥有并使用静态密钥对,而另一方可能会或可能不会使用密钥对。


密钥建立方案的安全性

尽管在密钥建立方案中同时使用两种类型的密钥都比使用较少密钥的方案提供了更高的安全性,但对于某些应用程序来说,双方都不能同时使用静态密钥和临时密钥。


密钥加密和密钥包装

密钥加密通过加密所述密钥进一步增强了密钥的机密性和保护。然后,密钥解包的过程将解密密文密钥并提供完整性验证。


密钥确认

密钥确认可在密钥建立过程中确保双方之间已建立通用密钥材料。


密钥建立协议

密钥建立协议指定了建立密钥所需的处理及其消息流和格式。


RNG(随机数生成器)

RNG是生成密钥材料所必需的,分为两类:确定性和非确定性。


结论

了解其应用范围内的三类密码算法(哈希函数,非对称算法,对称算法)将有助于您针对特定需求正确构造计划的解决方案。


您不应忽略适当的密钥管理,以避免系统中出现侧翼。


好消息是,在世界上大多数地区,所描述的算法已被接受(如果我们忽略某些政治上的偏差,例如俄罗斯的GOST算法)。但是,例如,如果实现应符合特定的欧洲法规或标准,则允许的算法范围可能会缩小,或者周围的框架可能会变得强制性。


国际设计的观点非常重要,尤其是当公司或机构希望在全球范围内进行安全的沟通时。



揽阁信息可提供的部分安全产品和解决方案信息

联系揽阁信息,您可以获取到更多满足全球合规性要求的信息安全产品资料,以及相关的整体解决方案的相关资料。如:


您还可以得到揽阁信息所提供的优质服务。

揽阁信息 · 值得您信赖的信息安全顾问!


相关阅读

购买咨询电话
021-54410609