CMAC定义为AES以进行身份验证。我的问题很简单:是否可以为ChaCha扩展CMAC?这有意义吗?我找不到任何相关的东西,我想知道我是否错过了一些琐碎的东西。
与AES相比,在AES中,除了CMAC算法外,还存在着AEAD和AES算法。CMAC,如RFC 4493中所读,是一个与AES相结合的OMAC1函数。在图2.1中,我想知道AES块是否可以被一个ChaCha20块切换,或者这是一个明确的安全问题。
AEAD可以同时提供加密和数据完整性,但是AES-CMAC很好地提供数据完整性,就像签名一样。AES有AEAD变体和CMAC,但ChaCha20只有AEAD变体,比如ChaChaPoly,而没有ChaCha20-CMAC。
发布于 2022-11-08 14:16:57
在CMAC结构中使用ChaCha20是可能的。抽象地说,我们可以把CMAC看作是一种构造可变输入长度伪随机函数的通用结构.众所周知,安全的PRF也是安全的MAC..因此,从技术上讲,还可以直接使用Chacha20作为MAC,首先应用一个抗碰撞散列,产生的输出大小与ChaCha20输入的大小相等。
那么,让我们稍微仔细地看看CMAC的结构。它由(1)可变长度的无前缀安全伪随机函数和(2)随机无前缀编码(高概率)组成。条件(1)意味着我们有一个原语,它是一个安全的PRF,只要它的任何可能的输入都没有前缀。对于2),我只需要提到,这是通过子键和XORing实现的,这是CMAC中的最后一个块。我们如何建立这样的可变长度无前缀PRF?CMAC中也使用的一种可能性是CBC作业方式CBC作业方式。虽然通常用于分组密码进行解密,但CBC也可以与PRF一起使用(记住块密码可以使用作为一个安全的PRF)。
在安全性方面,由于ChaCha20被猜测为PRF,因此不存在任何问题。您可能会得到一个比在这个答案中更好的安全约束,因为基于AES的CMAC引入了一个由PRF交换引理引起的因素。Boneh&Shoup的书中给出了基于PRF的CMAC的一个完整的安全论证(第6.3节)。
上面的AES和ChaCha20之间的比较可能是不公平的,因为AES的输出大小较小,但是对于相同的输出大小,实际的PRF是可取的。
https://crypto.stackexchange.com/questions/102623
复制相似问题