AEAD密码的优点是什么?为什么TLS工作组在推动他们?我认为现代密码套件需要SHA256来进行认证。包含Poly1305有什么好处?
附加问题: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256有GCM和SHA256。GCM用于什么,SHA256用于什么?似乎一个人所需要的就是GCM。
发布于 2015-07-31 13:18:22
AEAD密码实现通常在内部进行加密,然后进行身份验证(而OpenSSL中的CBC密码没有)。TLS确实需要摆脱身份验证-然后加密,这需要专门处理CBC代码块密码,如AES。无论内部结构如何,AEAD密码都应该不受认证-然后加密所引起的问题的影响。
AEAD算法通常都有一个安全证明。这些安全证明当然依赖于底层的原语,但是它给了我们更多的信心,而不是更少。
这些密码器通常是单程(OCB,不常使用)、1.5 pass (GCM、Poly1305)或2 pass (EAX)。这意味着与使用CBC + (H)MAC的两种pass方案相比,它们通常具有执行速度优势。即使是EAX这样的方案,如果使用更高级的语言(Java、Python等),也可以具有性能优势。用于实现TLS。这是因为为一个算法(EAX)创建一个完全优化的实现比在协议级别上创建两个算法(CBC + HMAC)更容易。内部EAX只是CTR + CMAC。
此外,AEAD方案通常可以(被迫)遵守RFC 5116。这意味着在处理IV和明文方面,所有的AEAD密码只需要一个接口。当然,允许CBC + HMAC也遵守此RFC也是可能的。
速度和安全性可能是谷歌在Chrome中已经支持ChaCha20 + Poly1305/AES的原因。由于房间里有一头大象,所以很难忽视丹尼尔·J·伯恩斯坦(DanielJ.Bernstein,et all)的这个计划。它是一个1.5PASEAD密码,在下面使用一个快速流密码,所以它的整体效率相当高。
发布于 2015-07-31 10:12:44
AEAD密码的优点是什么?
这取决于计划之一,但它通常意味着:
在嵌入式和IoT设置中,代码节省可能很重要。
为什么TLS工作组在推动他们?
我没有跟踪IETF本身,但是不正确地使用一个AEAD模式密码是相当困难的。一般来说,在密码学的通勤中,凯特可以犯的错误较少,涵盖的范围也更大。
我认为现代密码套件需要SHA256来进行认证。包含Poly1305有什么好处?
SHA256是一个坚实的散列,我想您的意思是在HMAC中使用它进行身份验证。例如,SuiteB (秘密)。它还需要信任SHA256和您的加密算法,以及SHA256的性能和内存需求,这可能不是很好。
来自poly1305部分的cr.yp.to:
Poly1305-AES有几个有用的特性:
https://crypto.stackexchange.com/questions/27243
复制相似问题