什么是短块加密算法?对于短块的处理方法有哪些?

2023年2月27日10:58:36什么是短块加密算法?对于短块的处理方法有哪些?已关闭评论

分组加密算法又称块加密算法,就是一组一组进行加解密。它将明文分成多个等长的块(block,或称分组),使用确定的算法和对称密钥对每组分别进行加解密。通俗地讲,就是一组一组地进行加解密,而且每组数据长度相同。

分组密码一次只能对一个固定长度的明文(密文)块进行加(解)密。当最后一次要处理的数据小于分组长度时,就要进行特殊处理。这里把长度小于分组长度的数据称为短块。短块因为不足一个分组,所以不能直接进行加解密,必须采用合适的技术手段解决短块加解密问题。比如,要加密33个字节,前面32个字节是16的整数倍,可以直接加密,剩下的1个字节就不能直接加密了,因为不足一个分组长度了。

对于短块的处理,通常有3种技术方法:

(1)填充技术

填充技术就是用无用的数据填充短块,使之成为标准块(长度为一个分组的数据块)。填充的方式可以自定义,比如填0、填充的数据长度值、随机数等。严格来讲,为了确保加密强度,填充的数据应是随机数。但是收信者如何知道哪些数字是填充的呢?这就需要增加指示信息了,通常是用最后8位作为填充指示符,比如最后一个字节存放填充的数据的长度。

值得注意的是,填充可能引起存储器溢出,因而可能不适合文件和数据块加密。填充加密后,密文长度就跟明文长度不一样了。

(2)密文挪用技术

这种技术不需要引入新数据,只需把短块和前面分组的部分密文组成一个分组后进行加密。密文挪用法也需要指示挪用位数的指示符,否则收信者不知道挪用了多少位,从而不能正确解密。密文挪用法的优点是不引起数据扩展,也就是密文长度同明文长度是一致的;缺点是控制稍复杂。

(3)序列加密

对于最后一块短块数据,直接使用密钥K与短块数据模2相加。序列加密技术的优点是简单,但是如果短块太短,则加密强度不高。

  • A+
所属分类:JAVA
  • 版权声明:本篇文章(包括图片)来自网络,由程序自动采集,著作权(版权)归原作者所有,如有侵权联系我们删除,联系方式(QQ:452038415)。