.NET的AES不直接实现CTR。它只实现CBC,CFB,CTS,ECB和OFB。我可以在.NET的CTR模式下使用AES吗?
我可以使用这些模式中的任何一种,并在他们周围安全地实现点击率,或者我是否需要完全使用不同的图书馆?
.NET的AES不直接实现CTR。它只实现CBC,CFB,CTS,ECB和OFB。我可以在.NET的CTR模式下使用AES吗?
我可以使用这些模式中的任何一种,并在他们周围安全地实现点击率,或者我是否需要完全使用不同的图书馆?
是的,你可以在ECB模式和计数器使用.NET的AES建立一个点击率,是你自己初始化和增量,用于加密每个块。
一个例子是WinZipAes加密流,它是开源DotNetZip的一部分。
WinZip指定在加密ZIP文件中使用AES加密,在CTR模式下使用AES。 DotNetZip使用ECB和计数器实现CTR模式。
查看here的一些评论。
充气城堡的对称加密方法似乎支持CTR:
所有您需要做的就是在密钥(无填充,无IV)的情况下在ECB模式下使用AES加密128位计数器。然后纯文本与计数器的加密输出XOR。对于每个块,计数器递增。由于XOR运算符的属性,加密和解密是相同的。
你可以找到AES128 CTR模式在这里实现(我自己):
https://gist.github.com/hanswolff/8809275
应该很容易使用。
使用您的实现未解密最后的字节。会有什么问题? – 2016-03-15 06:26:54
为什么你必须使用点击率?它对CBC有什么优势? – 2011-06-16 17:24:54
我正在实施无填充的高速互联网流,并建议使用基于点击率的EAX。 – jnm2 2011-06-16 17:28:28
@Petey据我所知,CTR允许随机访问,CBC没有。 – CodesInChaos 2011-06-16 20:46:45