密码学 - 加解密算法 - 填充规则

这篇具有很好参考价值的文章主要介绍了密码学 - 加解密算法 - 填充规则。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

说明

  • 对称加解密算法是分组运算,运算时需要将数据按固定长度分组,由于明文不一定是指定大小的整数倍,因此需要将明文的最后一个分组填充至加密算法所要求的分组大小后进行运算。
  • 随着加解密算法的发展,出现了多种填充规则。
  • 填充规则是对称加密分组加密算法的通用机制,一种算法可能支持多种填充规则,例如:AES算法。

填充规则

PKCS5/PKCS5Padding

  • 将原始数据长度(字节数)填充到8的倍数,填充字节数据是 8 - (x % 8),x是原始数据长度。
原始数据:FF FF FF FF  
填充后数据:FF FF FF FF 04 04 04 04

PKCS7/PKCS7Padding

  • 假设数据长度需要填充n(n>0)个字节才对齐,那么填充n个字节,每个字节都是n;如果数据本身就已经对齐了,则填充一块长度为块大小的数据,每个字节都是块大小。
  • PKCS5以8字节为单元,而PKCS7支持1-255之间任意字节长度为单元,PKCS7是兼容PKCS5的,PKCS5是PKCS7的一个子集。
  • SM4,AES等大部分算法 分组长度固定为128 Bits,因此采用的是该填充规则。
block size为16字节时:
原始数据: FF FF FF FF FF FF FF FF FF FF
填充后数据: FF FF FF FF FF FF FF FF FF FF 06 06 06 06 06 06

ZeroBytePadding/ZeroPadding

  • 使用数据0进行填充,填充至符合块大小的整数倍。
原始数据:FF FF FF FF FF FF FF FF FF 
填充后数据:FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00

ISO10126PADDING

  • 填充至符合块大小的整数倍,填充的最后一个字节为填充的数量数,其他字节随机处理。
原始数据:FF FF FF FF FF FF FF FF FF 
填充后数据:FF FF FF FF FF FF FF FF FF xx xx xx xx xx xx 07
xx 表示任意数据

ISO7816-4PADDING

  • 填充至符合块大小的整数倍,填充的第一个字节为 0x80,其他字节填 0。
原始数据:FF FF FF FF FF FF FF FF FF
填充后数据:FF FF FF FF FF FF FF FF FF 80 00 00 00 00 00 00

X923PADDING

  • 填充至符合块大小的整数倍,填充值最后一个字节为填充的数量数,其他字节填 0。
原始数据:FF FF FF FF FF FF FF FF FF
填充后数据:FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 07

注意

  1. 明文size是单组size的倍数的情况,也需要对明文进行填充。
  • 目的是方便统一处理,算法处理的数据一定是填充后的。
  • 避免一些特殊情况,例如明文恰好是:FF FF FF FF FF FF FF FF FF FF 06 06 06 06 06 06,
    加密算法无法区分后面的6个06是明文,还是填充的数据。
  1. 解密时,需要根据加密时使用的填充规则,将填充数据剔除。

文章来源地址https://www.toymoban.com/news/detail-490896.html

到了这里,关于密码学 - 加解密算法 - 填充规则的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 对称密钥【密码学】(四)

    在使用单向散列函数校验数据完整性时,需要保证原始的散列值不能被更改。 因此,在很多场景下,我们并不能仅仅通过单向散列函数来解决完整性问题,还需要其他技术来解决这个问题,如加密技术。 本篇博客就来介绍一下第一类加密技术------对称加密技术 加密数据的安

    2024年02月10日
    浏览(66)
  • 密码学【第三节:对称密码-DES\AES】

    对称加密     对称加密算法中,数据发送方将明文和密钥一起经过特殊加密算法处理成密文后,将它发送出去。接收方收到密文后,若想解读原文,则需要使用加密用到的相同密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原文。     它的最大优势是加

    2024年02月07日
    浏览(65)
  • 密码学【java】初探究加密方式之非对称加密

    非对称加密算法又称现代加密算法。非对称加密是计算机通信安全的基石,保证了加密数据不会被破解。 与对称加密算法不同,非对称加密算法需要两个密钥:公开密钥(publickey) 和私有密(privatekey) 公开密钥和私有密钥是一对。如果用公开密钥对数据进行加密,只有用对应的

    2024年02月03日
    浏览(52)
  • ctf密码学之四方密码解密

    前几日刷题遇到一道密码学的四方解密题: 题目如下:四方门主东方青木看着四面八方涌过来的极客,非常震惊,转头便进入了祖祠中的地下室,发现这丫传自唐朝的密室还设计了英文密码。旁边的石头上(附件中有拓本)刻着密码和密文,大家快帮助门主解出密码(答案为

    2024年02月14日
    浏览(80)
  • 【密码学】为什么不推荐在对称加密中使用CBC工作模式

    这篇文章是我在公司内部分享中一部分内容的详细版本,如标题所言,我会通过文字、代码示例、带你完整的搞懂为什么我们不建议你使用cbc加密模式,用了会导致什么安全问题,即使一定要用需要注意哪些方面的内容。 注:本文仅从安全角度出发,未考虑性能与兼容性等因

    2024年02月06日
    浏览(72)
  • DES的加密与解密(C语言实现)——大三密码学实验

    目录 DES的描述 Feistel体制 密钥扩展函数 F函数 总流程  代码 get函数的构建 yihuo函数的构建 fuck函数的构建 left_move函数的构建 exchange函数的构建 erzhuanshi函数的构建 shizhuaner函数的构建 s_box函数的构建 主函数的构建 总函数 运行结果示例 DES: 16 轮, Feistel 型结构 明文长度:

    2024年02月07日
    浏览(48)
  • NCCoE发布“向后量子密码学迁移”项目进展情况说明书

    近日,NIST下属的国家网络安全中心(NCCoE)发布了一份向后量子密码学迁移(Migration to Post-Quantum Cryptography)项目情况说明书。该文档简要概述了向后量子密码学迁移项目的背景、目标、挑战、好处和工作流程,此外NCCoE还列出了参与该项目的最新28家技术供应商名单。 NCCoE成

    2024年02月10日
    浏览(33)
  • 【密码学】量子安全的密码学算法以及原理介绍

    (1)“代数格密码套件”(CRYSTALS)包含两个密码原语Kyber和Dilithium。Kyber是一种抗适应性选择密文攻击(IND-CCA2)安全密钥封装机制,Dilithium是一种高度不可伪造性(EUF-CMA)安全数字签名算法。两种密码都是为了应对量子计算机的攻击,并且在操作过程中只需更改几个参数即

    2024年02月11日
    浏览(64)
  • DES的加密解密在ECB上的使用(C语言实现)——大三密码学实验

    目录 实验内容 实验原理 DES加密解密 ECB(电码本模式) 代码 DES函数的构建 RE_DES函数的构建 ECB函数的构建 RE_ECB的函数的构建 主函数的构建 总代码 测试结果 输入一个文本文件,通过ECB和DES进行加密,再将内容储存在新的文本文件中,再通过ECB和DES解密,将内容储存在新的文本

    2024年02月04日
    浏览(59)
  • 公钥密码学算法类型综述

    作者:网安新生研讨课第一小组 采用协议 CC BY-NC,原文链接 :https://www.cnblogs.com/Multya/p/18072514 公开密钥密码学 (英语: Public-key cryptography )也称 非对称式密码学 (英语: Asymmetric cryptography )是密码学的一种算法,它需要两个密钥,一个是 公开密钥 ,另一个是 私有密钥

    2024年03月14日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包