我在维基百科上见过(维基百科)在最近版本的TLS中,没有使用反模式。但使用了伽罗瓦-反模式?
使用GCM而不是使用反模式有什么好处?
发布于 2022-12-13 11:00:04
基本上,TLS总是使用一种经过身份验证的加密形式。为此,它使用HMAC计算身份验证标记,然后使用CBC加密。不幸的是,这样做的缺点是,在验证身份验证标记之前,填充oracle攻击是可能的。
TLS 1.2后来增加了对GCM的支持,GCM是一种经过身份验证的密码。它是加密的AEAD模式,具有关联数据的身份验证加密。这意味着它将验证身份验证标记作为解密过程的一部分。这提供了消息完整性和身份验证,就像HMAC + CBC之前所做的那样。
然而,一个好的认证密码比这样的构造有优势。首先,它提供了一个标准化的运作模式。GCM和CCM是NIST的标准化密码。als意味着安全、加速的实现通常可以在密码库中找到。这也意味着避免错误,如填充甲骨文攻击或忘记包括IV。
最后,GCM对于支持特定指令的CPU是非常有效的。对于Intel/AMD,这将是PCLMULQDQ指令(ARM在大多数用于移动设备的芯片上具有类似的加速)。如果丢失了一个认证密码,在一般硬件(如ChaCha20/Poly1305 )上以速度为目标的密码可能是首选的。
CTR提供了与CBC相似的性能;对于这两种模式,您对每个明文块执行一个块密码操作(即每16个字节执行一个AES块操作)。例如,CTR相对于并行/多线程操作的额外好处不足以创建特殊的CTR+HMAC模式。
最后,由于CTR是CCM / GCM的底层密码模式,所以CTR仍被用于TLS中。因此,它被使用,但它是隐藏在平淡的视线。
发布于 2022-12-13 10:45:01
计数器模式是一种提供机密性的模式,它描述了分组密码算法在一组被称为计数器的输入数据中的应用,以便生成一组密钥流,这些密钥流与明文一起生成密文,反之亦然。它的简单性和成熟性使这一运作模式成为一种有吸引力的选择。但是,计数器模式根本不保护消息完整性。
在GCM中保护明文隐私的机制是计数器模式的一个变体,具有特定的增量功能,以产生必要的计数器块序列。用于明文加密的第一计数器块是从IV生成的增长块产生的。
GCM由两个函数组成:认证加密和认证解密(认证解密)。认证加密对机密数据进行加密,并计算用于机密数据和AADs的通用身份验证标记(T)。认证解密对机密数据进行解密,并通过认证标签验证其真实性。实现可以将输入数据限制为完全没有机密数据的非机密数据。生成的GCM版本称为GMAC。因此,在只有AAD的情况下,GMAC操作的结果分别是对非机密数据的标签的计算和确认。
GCM使用在二进制Galois字段中定义的通用哈希函数提供数据身份验证保证(每次调用最多64 to )。GCM还可以为未加密的附加数据(每次调用的无限长记录)提供认证保证。如果GCM的输入仅限于非加密数据,则GCM专门化产生的输出称为GMAC,它只是输入数据的身份验证模式。今后,GCM的所有声明也将适用于GMAC。GCM比一个(非加密)校验和或代码错误检测提供了更强的认证保证,更具体地说,它可以检测数据的随机修改以及故意的未经授权的修改。
最后,很明显,该算法被应用于高吞吐量要求的应用中。当性能指标不是面积和消耗,而是速度时,这是一种合适的算法。同样重要的是,除了数据加密之外,它还提供认证,这对于存储网络或磁带至关重要。这是一个灵活但同时强大的算法。提出了一种适用于无线和移动应用的低面积和低功耗的算法。
https://crypto.stackexchange.com/questions/103242
复制相似问题