码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 什么是DES算法,详解DES算法的基本原理


    DES算法是应用最为广泛的对称加密算法。它主要应用在计算机网络通信、电子资金传送系统、保护用户文件,此外,DES还可用于计算机用户识别系统中。那么,具体什么是DES算法,DES算法的基本原理是什么,本文将给大家详细介绍一下。

    什么DES算法

    DES是一个分组加密算法,就是将明文分组进行加密,每次按顺序取明文一部分,一个典型的DES以64位为分组,加密解密用算法相同。它的密钥长度为56位,因为每组第8位是用来做奇偶校验,密钥可以是任意56位的数,保密性依赖于密钥。​ DES算法的核心主要包括两部分,第一部分是Feistel结构,第二部分是16个子密钥的生成。

    DES算法的基本原理

    DES算法为密码体制中的对称密码体制,⼜被称为美国数据加密标准。DES是⼀个分组加密算法,典型的DES以64位为分组对数据加密,加密和解密⽤的是同⼀个算法。

    密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明⽂组和56位的密钥按位替代或交换的⽅法形成密⽂组。

    步骤:

    IP置换

    IP置换⽬的是将输⼊的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位。

    密钥置换

    不考虑每个字节的第8位,DES的密钥由64位减⾄56位,每个字节的第8位作为奇偶校验位。产⽣的56位密钥由规则表⽣成;

    在DES的每⼀轮中,从56位密钥产⽣出不同的48位⼦密钥,确定这些⼦密钥的⽅式如下:

    1).将56位的密钥分成两部分,每部分28位。

    2).根据轮数,这两部分分别循环左移1位或2位。每轮移动的位数按规则表;

    移动后,从56位中选出48位。这个过程中,既置换了每位的顺序,⼜选择了⼦密钥,因此称为压缩置换。压缩置换规则按规则表;

    扩展置换

    扩展置换⽬标是IP置换后获得的右半部分R0,将32位输⼊扩展为48位(分为4位×8组)输出。

    S盒代替

    压缩后的密钥与扩展分组异或以后得到48位的数据,将这个数据送⼈S盒,进⾏替代运算。替代由8个不同的S盒完成,每个S盒有6位输⼊4位输出。48位输⼊分为8个6位的分组,⼀个分组对应⼀个S盒,对应的S盒对各组进⾏代替操作。

    P盒置换

    S盒代替运算的32位输出按照P盒进⾏置换。该置换把输⼊的每位映射到输出位,任何⼀位不能被映射两次,也不能被略去,映射规则按规则表;

    IP-1末置换

    末置换是初始置换的逆过程,DES最后⼀轮后,左、右两半部分并未进⾏交换,⽽是两部分合并形成⼀个分组做为末置换的输⼊。

    经过以上步骤,就可以得到密⽂了。

    整个流程可以用下面这个图表示:

     

    附上一个DES在线加密解密的网站:https://md5.cn/

     

    DES加密算法的优点和缺点

    优点:优点:简单,容易实现,运行效率高。

    缺点:分组比较短、密码生命周期短、容易被暴力解密,密钥难管理,不好分配(密钥交换问题--如何安全的将密钥传输给解密方),无签名认证功能。

    以上给大家介绍了什么是DES算法,以及DES算法的基本原理。总而言之,普通DES算法密钥长度较短,容易被暴力解密。但是,可通过增加DES的密钥长度来避免类似的攻击。

    相关文章:

    一文读懂md5,md5有什么用,什么是md5加盐_哈客部落的博客-CSDN博客md5是一种密码散列函数,在计算机安全领域得到广泛的应用。本文将带大家了解一些md5的知识点,什么是md5,md5有什么用,什么是md5加盐,为什么md5不可逆,为什么md5可能会被解密?帮助大家快速了解md5,感兴趣的朋友继续往下看吧。https://blog.csdn.net/m0_69916115/article/details/127249454DES算法是对称算法吗,能否通过在线工具进行DES解密?_哈客部落的博客-CSDN博客_des算法在线验证学过密码学的人对DES算法应该比较熟悉,DES算法是一种常见的分组加密算法。它是分组加密算法的典型代表,也是目前被广泛应用的对称加密算法。那么,DES算法的原理是什么,能够通过在线工具进行DES解密呢?下面本文对此进行相关介绍。https://blog.csdn.net/m0_69916115/article/details/126856806

  • 相关阅读:
    PIL Image格式转Tensor
    v4l2-ctl基本使用方法
    Python适合0基础菜鸟学吗
    Docker全解
    双重按位非运算符 ~~ 对数字取整
    计算机毕业设计Java城市湖泊信息管理系统(源码+系统+mysql数据库+lw文档)
    jquery 地址四级联级显示 不默认选择
    单元测试和集成测试的区别
    英特尔 SGX 技术概述
    命令模式(command)
  • 原文地址:https://blog.csdn.net/m0_69916115/article/details/127412563
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号