【密码学】三、分组密码概述

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


分组密码算法是将输入数据划分成固定长度的组进行加密和解密的一类对称密码算法。本章主要介绍分组密码概述、DES、AES,以及分组密码的工作模式和分组密码分析。

1.分组密码简介

分组密码是一种单钥或对称密码算法,通信双方使用相同的密钥加密和解密。
在分组密码中,要将明文分为长度为n的分组,用同样的密钥k对每一个组进行加密,解密的时候同样的。设加密之后的密文长度为m,则如果m>n,则是有数据扩展的分组密码;如果m<n,则是有数据压缩的分组密码。

2.分组密码的基本原理

2.1代换

为使加密运算可逆也就是让解密运算可行,明文的每个分组都应该产生唯一一个密文分组,这样的变换是可逆的,称明文分组到密文分组的可逆变换称为代换

2.2扩散

扩散和混淆的目的是抗击攻击者对密码系统的统计分析。
扩散是将明文的统计特性散步到密文中去,使明文的每位影响密文中的多位的值,等价于密文中每位都受到明文中多位的影响,也就是从密文中不能获得明文的统计特性。

2.3混淆

混淆是使密文和密钥之间的统计关系变得尽可能复杂,从而使得攻击者无法得到密钥。使用复杂的代数算法可以得到预期的混淆效果,而简单的线性代换函数得到的混淆结果不太理想。
扩散和混淆成功地实现了分组密码的本质属性,因而成为设计现代分组密码的基础。

3.分组密码的结构

现代密码学中的分组密码体制基本上都是基于乘积和迭代来构造的。乘积一般使通过一系列的置换和代换构成的。

3.1Feistel网络

分为平衡的和不平衡的两种。

3.1.1平衡Feistel网络

设x是需要加密的明文,长度为2m。
加密过程如下:
①将明文x一分为二,x=L0R0,L为左边m长度,R为右边m长度部分。

【密码学】三、分组密码概述,信息安全,密码学
其中F是一个加密函数,称为圈函数;Ki是由密钥k产生的长度为t的子密钥;密文y=RrLr,其中r是圈变换的迭代次数。解密过程就是加密过程的逆过程。
过程图如下:
【密码学】三、分组密码概述,信息安全,密码学

3.1.2不平衡Feistel网络

设x是需要加密的明文,长度为2m。
加密过程如下:
①将明文x一分为二,x=L0R0,L为左边n1长度,R为右边n2长度部分,且n1+n2=2m。
【密码学】三、分组密码概述,信息安全,密码学
其中F是圈变换;Ki是由密钥k产生的长度为t的子密钥;密文y=XrRXrL,其中r是圈变换的迭代次数。解密过程与加密过程类似。
【密码学】三、分组密码概述,信息安全,密码学
其中有限域的概念可以参考如下链接:有限域

3.2SP网络

SP型分组密码的加密思想为:设x是要加密的明文,长度为n。过程如下:
①令X0=x,1 ≤ i ≤ r;
②在子密钥Ki的控制下,对Xi-1进行代换S;
③对结果做置换或者可逆的线性变换P得到结果Xi
④重复2、3步直到达到迭代次数r,得到最后的密文结果y=Xr
过程如下图
【密码学】三、分组密码概述,信息安全,密码学
其中S一般称为混淆层,起混淆作用;
置换或者可逆的线性变换P称为扩散层,起扩散作用。

Fesistel网络的加解密过程类似,但是SP网络的加解密过程布雷斯,所以不能用同一个算法来实现加密和解密。

4.分组密码的设计

分组密码的设计在于找到一种算法,能在密钥控制下从一个足够大且足够好的置换子集中,简单而迅速地选出一个置换,用来对当前输入的明文组进行加密变换。
设计要求如下:
①分组长度n要足够大,使分组代换字母表中的元素个数2n足够大,防止明文穷举攻击奏效。
②密钥量要足够大,以防止密钥穷举攻击奏效。
③由密钥确定置换的算法要足够复杂。
④加密和解密运算简单,易于软件和硬件高速实现。
⑤数据扩展。一般无数据扩展,在采用同态置换和随机化加密技术时可以引入数据扩展。
⑥差错传播尽可能小。
其中1 2 3的安全性是必要条件。要在安全性和实用性之间找到平衡。文章来源地址https://www.toymoban.com/news/detail-601533.html

到了这里,关于【密码学】三、分组密码概述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【网络与信息安全学报】区块链密码学隐私保护技术综述——CCF T2

    区块链密码学隐私保护技术综述 Survey on blockchain privacy protection techniques in cryptography Abstract 近年来,数据隐私问题日益明显,如何在区块链中实现有效的隐私保护是研究热点。针对区块链在隐私保护上的研究现状与发展态势,阐述了区块链在交易地址、预言机以及智能合约上

    2024年02月03日
    浏览(66)
  • 《现代密码学》学习笔记——第三章 分组密码 [二] AES

    版本 密钥长度 分组长度 迭代轮数 AES-128 4 4 10 AES-192 6 4 12 AES-256 8 4 14 (1)字节代换(SubByte) (2)行移位(ShiftRow) (3)列混合(MixColumn) (4)密钥加(AddRoundKey) 1.字节代换   字节代换是非线性变换,独立地对状态的每个字节进行。代换表(S-Box)是可逆的。   将

    2024年02月05日
    浏览(97)
  • 【密码学】块加密(分组加密)的工作模式

    上一篇文章讨论了 DES 算法,现在我们有了“给定 64-bit 的明文、64-bit 的密钥,输出 64-bit 的密文”的加密手段。这离实际应用还有一点点距离,因为要传递的信息当然不止 64 位。 要用 DES 加密一条信息,一般先把信息填充到 64 的倍数,于是就可以分成许多组,每组 8 个字节

    2024年02月16日
    浏览(50)
  • 【北京航空航天大学】【信息网络安全实验】【实验一、密码学:DES+RSA+MD5编程实验】

    1. 通过对DES算法的代码编写,了解分组密码算法的设计思想和分组密码算法工作模式; 2. 掌握RSA算法的基本原理以及素数判定中的Rabin-Miller测试原理、Montgomery快速模乘(模幂)算法,了解公钥加密体制的优缺点及其常见应用方式; 3. 掌握MD5算法的基本原理,了解其主要应用

    2024年02月19日
    浏览(52)
  • 现代密码学第二次实验:分组加密算法DES及其工作模式

    为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正! 1、掌握DES算法的工作原理。 2、熟悉分组加密算法的4种工作模式(OFB模式可不做)。 3、了解DES的雪

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

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

    2024年02月11日
    浏览(64)
  • 密码学与密码安全:理论与实践

    title: 密码学与密码安全:理论与实践 date: 2024/4/10 21:22:31 updated: 2024/4/10 21:22:31 tags: 密码学 加密算法 安全协议 密码分析 密码安全 实际应用 未来发展 密码学是研究如何保护信息安全的学科,旨在确保信息在传输和存储过程中不被未授权的人所访问、修改或破坏。密码学涉及

    2024年04月11日
    浏览(45)
  • 网络安全密码学

    目录 一 古代密码学 1.替换法 2.移位法 3.古典密码学的破解方式 二 近代密码学 三 现代密码学 1.散列函数(哈希函数) 2.对称加密 3.非对称加密 四 如何设置密码才安全 1.密码不要太常见 2.各个应用软件里面的密码不要设置一样 3.在设置密码的时候,可以加一些特殊的标记 实

    2023年04月12日
    浏览(49)
  • 密码学:可证明安全

    观看浙江大学暑期crypto school讲座的可证明安全有感,总结如下: 目录 · 概述 · 公钥密码 · 单向函数 · 离散对数 · DH密钥协商协议 · 用可证明安全证明DH密钥协商协议的安全性 可证明安全主要分为三个步骤: 确定威胁模型; 其次构造方案; 给出一个正式的安全性证明。

    2024年02月02日
    浏览(98)
  • 38_安全密码学

    对于非对称加密,他区分公钥和私钥 我们可以用 KeyPairGenerator 来为我们生成秘钥对。我们根据一个算法名称得到该生成器,调用 generateKeyPair() 来生成秘钥对 现在我们来生成下RSA算法的秘钥对 得到 KeyPair 对象,里面就能拿到公钥和私钥啦~~ 对于对称加密,加密和解密都用的用

    2024年02月03日
    浏览(80)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包