首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在TwoFish中填充明文块

在TwoFish中填充明文块
EN

Stack Overflow用户
提问于 2011-11-13 08:02:03
回答 1查看 395关注 0票数 2

在使用TwoFish加密时,不可避免地会遇到最后一个纯文本块小于128位的情况。在这种情况下如何处理填充?例如,假设最后一个块只有112比特(14字节)。您是否只需要用随机位填充字节15,并使用第16个字节来告诉块中包含了多少填充?在这种情况下,作为最后一个字节可以包含00010000,以指示块的16位是填充的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-13 08:33:06

目前有几种不同的padding mechanisms;选择哪一种主要取决于协议设计者选择哪一种,并说它是该协议的标准。(我不知道有什么令人信服的理由让我选择其中一个。)

据我所知,最常见的一种方法是添加一个1位,然后添加完成该块所需的任意多个0位,这种方法支持子字节(位级)填充。

我所知道的下一个最常见的方法是用零或随机数据填充,并使用块中的最后一个字节来表示有多少字节用于填充。

您还可以使用填充所需的字节数作为字节值;如果需要添加一个字节,则使用0x01填充;如果需要填充四个字节,则使用0x04 0x04 0x04 0x04填充,依此类推。

一个小技巧可能会让您明白,您几乎总是需要添加一个填充块--即使整个块都是填充的--这样您就有了一个可逆的转换。如果在消息是块大小的倍数时忽略添加填充块,则可以尝试将合法的消息内容作为填充进行剥离。您可以通过其他机制发出缺少填充的信号,也可以随时添加填充。(这通常更容易。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8108517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档