S-DES

2023-11-06

S-DES即simplifed DES,S-DES算法的输入是一个8位的明文或者密文组和一个10位的密钥,输出是一个8位的密文或者明文组。

以下是S-DES所需的几个置换表

P10 {3,5,2,7,4,10,1,9,8,6}

P8 {6,3,7,4,8,5,10,9} 注意这个置换选择输入10位输出8位

P4 {2,4,3,1}

IP {2,6,3,1,4,8,5,7}

IPI {4,1,3,5,7,2,8,6}

EP {4,1,2,3,2,3,4,1} 注意这个是扩展置换,输入4位输出8位

以下是两个S盒

S0:

{1,0,3,2},

{3,2,1,0},

{0,2,1,3},

{3,1,3,2},

S1:

{0,1,2,3},

{2,0,1,3},

{3,0,1,0},

{2,1,0,3},

接下来就是加密和解密算法

首先讲子密钥的生成,子密钥在加密和解密算法中都有使用.

10位密钥 key = 01111 11101

对key做P10置换得到 11111 10011

记左半(高位)的为Lk=11111,右半(低位)为Rk=10011

Lk和Rk均循环左移1,得到Lk=11111,Rk=00111

对Lk和Rk组合得到的11111 00111做P8置换选择,得到子密钥K1=0101 1111

Lk和Rk均再次循环左移2,得到Lk=11111,Rk=11100

对Lk和Rk组合得到的11111 11100做P8置换选择,的到子密钥K2=1111 1100

以上,通过密钥得到了算法所需的子密钥.

 

下面是加密过程

首先是初始置换

对明文m=00010110做IP置换,得m’=0100 1001

接下来是标准的Feistel密码结构,共有两次循环

第一次循环

记左半(高位)为Lm=0100,右半(低位)为Rm=1001

对Rm做EP扩展置换,得Rm’=11000011

Rm’与子密钥K1按位异或,得Rm’=1001 1100

Rm’左半1001进入S0盒替代选择得11,右半1100进入S1盒替代选择的01,组合后得Rm’=1101

对Rm’做P4置换,得Rm’=1101

Rm’与Lm按位异或,得Lm’=1001

Lm’与Rm(最开始的那个Rm)组合得到输出 1001(Lm’) 1001(Rm)

至此完成第一次循环

然后交换高低位,作为第二次循环的输入,即1001(Rm) 1001(Lm’)作为输入

开始第二次循环

记左半为Ln=1001,右半为Rn=1001

对Rn做EP扩展置换,得Rn’=11000011

Rn’与子密钥K2按位异或,得Rn’=0011 1111

Rn’左半0011进入S0盒替代选择得10,右半1111进入S1盒替代选择的11,组合后得Rn’=1011

对Rn’做P4置换,得Rn’=0111

Rn’与Ln按位异或,得Ln’=1110

Ln’与Rn(最开始的那个Rn)组合得到输出 1111(Ln’) 1001(Rn)

至此完成第二次循环

最后进行逆初始置换对上面的输出m’=1111 1001做IPI置换得到密文m’=01110110

OK,到这里就完成了将明文加密为密文,S-DES加密结束.

下面开始解密,解密过程与加密基本一致,就是密钥使用顺序是相反的,第一次循环使用K2第二次循环使用K1

首先还是初始置换

对密文m=01110110做IP置换,得m’=1110 1001

Feistel密码结构

第一次循环

记左半(高位)为Lm=1110,右半(低位)为Rm=1001

对Rm做EP扩展置换,得Rm’=11000011

Rm’与子密钥K2按位异或,得Rm’=0011 1111

Rm’左半0011进入S0盒替代选择得10,右半1111进入S1盒替代选择的11,组合后得Rm’=1011

对Rm’做P4置换,得Rm’=0111

Rm’与Lm按位异或,得Lm’=1001

Lm’与Rm(最开始的那个Rm)组合得到输出 1001(Lm’) 1001(Rm)

至此完成第一次循环

然后交换高低位,作为第二次循环的输入,即1001(Rm) 1001(Lm’)作为输入

开始第二次循环

记左半为Ln=1001,右半为Rn=1001

对Rn做EP扩展置换,得Rn’=11000011

Rn’与子密钥K1按位异或,得Rn’=1001 1100

Rn’左半1001进入S0盒替代选择得11,右半1100进入S1盒替代选择的01,组合后得Rn’=1101

对Rn’做P4置换,得Rn’=1101

Rn’与Ln按位异或,得Ln’=0100

Ln’与Rn(最开始的那个Rn)组合得到输出0100(Ln’) 1001(Rn)

至此完成第二次循环

最后进行逆初始置换

对上面的输出m’=01001001做IPI置换得到明文m’=00010110

这样就完成的S-DES的解密。

其秘钥的生成过程如下图:


LS-1代表左移1位,LS-2代表左移2位。

下面是加密的过程:


IP即IP置换,EP为拓展置换,其实就是经过两个Feistel结构(即图中两个灰块),解密的过程跟加密过程极为相似,整个的流程如下图所示:



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

S-DES 的相关文章

  • SQL注入基础 sql注入详细解释 小白学习笔记

    sql注入作为安全攻防中最重要的一个部分 可以说是所有渗透测试注入中最为重要的一个注入 不管是预防还是测试 都需要扎实的基础才能明白sql注入 温馨提示 此文章仅限于学习记录与讨论 不得随意测试或者注入 互联网不是法外之地 任何除学习之外的
  • 密码学之哈希算法

    1 哈希算法 哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值 这个小的二进制值称为哈希值 哈希值是一段数据唯一且极其紧凑的数值表示形式 如果散列一段明文而且哪怕只更改该段落的一个字母 随后的哈希都将产生不同的值 要找到散列为同
  • Java 加解密技术系列之 SHA

    序 上一篇文章中介绍了基本的单向加密算法 MD5 也大致的说了说它实现的原理 这篇文章继续之前提到的单向加密 主要讲的是 SHA 同 MD5 一样 SHA 同样也是一个系列 它包括 SHA 1 SHA 224 SHA 256 SHA 384
  • 安全编码规范-小羊的记录本

    目录 安全编码规范 安全目标 数据校验 SQL注入 OS注入 目录遍历攻击 XML注入 正则注入 日志注入 敏感数据保护 异常暴露敏感信息 线程同步 IO操作 反序列化 平台安全 线程同步 IO操作 反序列化 平台安全 安全编码规范 安全目
  • 文件上传之.htaccess绕过黑名单——upload-labs靶场第四关

    今天继续给大家介绍渗透测试相关知识 本文主要内容是介绍 htaccess绕过黑名单的文件上传方法 并借助upload labs靶场的第四关进行了实战 免责声明 本文所介绍的内容仅做学习交流使用 严禁利用文中技术进行非法行为 否则造成一切严重
  • 网络安全实验室

    网络安全实验室 网络信息安全 基础关 一 key在哪里 分值 100 过关地址 答 在火狐中开启代理 打开burpsuite 点击过关地址进行抓包 抓到的包如下 右击发送给repiter 点击go就行了 二 再加密一次你就得到key啦 分值
  • 记录渗透靶场实战【网络安全】

    第一次写靶场实战的文章 有不足之处还请多多指教 本次实战的靶场是红日安全vulnstack系列的第二个靶场 靶场地址 http vulnstack qiyuanxuetang net vuln detail 3 环境搭建 网络环境 网卡配置
  • 全网最详细网络安全学习路线!手都给我码酸了!

    零基础小白 学完掌握可就业 入门到入土的网安学习路线 在各大平台搜的网安学习路线都太粗略了 看不下去了 我把自己报班的系统学习路线 整理拿出来跟大家分享了 本文为纯干货纯文字内容 需要详细学习路线图以及配套资料的同学可留言或者后台踢我免费分
  • shell脚本中嵌入二进制文件

    最近有人问我 一个集群监控软件的安装文件特别 诡异 说脚本里有 乱码 却能执行 是怎么回事 我看了才发现这个东西原来是典型的脚本嵌套代码的模式 这里就讲讲吧 反正好久没写东西了 某些比较 拽 的单位在发布Linux软件时以一种特殊的形式发布
  • 渗透测试常见漏洞说明资料

    一 文件上传漏洞 1 意义 用户上传的可执行脚本文件 木马 病毒 恶意脚本 webshell等 并通过此脚本获得执行服务器的能力 2 原因 前端和服务器端过滤不严格 黑白名单设置不完善导致 一些文件上传功能实现代码没有严格限制用户上传的文件
  • 如何破解PDF文件密码(在线破解PDF密码)

    如何破解PDF文件密码 在线破解PDF密码 fcwgw 5d6d com 整理 凌空飞度社区 每当毕业临近的时候 毕业生都会忙着写论文 每逢此时 Adobe Reader就是最忙的了 但是有时候遇到一些加密的PDF文档 Adobe Read
  • 反序列化漏洞原理详解

    Apache shiro简介 Apache Shiro是一个强大且易用的Java安全框架 执行身份验证 授权 密码和会话管理 使用Shiro的易于理解的API 您可以快速 轻松地获得任何应用程序 从最小的移动应用程序到最大的网络和企业应用程
  • Working mode of block password

    本文授权自 MagicBoy Working mode of block password Network security 1 电子密码本ECB electronic codebook mode 3 密码反馈CFB cipher feed
  • shadow文件中密码的加密方式

    shadow文件中密码的加密方式 1 查看shadow文件的内容 cat etc shadow 可以得到shadow文件的内容 限于篇幅 我们举例说明 root 1 Bg1H 4mz X89TqH7tpi9dX1B9j5YsF 14838
  • ISAKMP - 解释域(DOI)和初始向量(IV)

    Domain of Interpretation 解释域 DOI定义了负载的格式 交换的类型 以及对安全相关信息的命名约定 比如对安全策略或者加密算法和模式的命名 DOI标识用来说明payload通过哪一个DOI来解释 常用的DOI有两个
  • 信息安全中常用术语介绍

    转自 https www hi linux com posts 56503 html 我们在一些重大的安全事件发生后 经常会在相关新闻或文档中看到一些相关的安全术语 比如 VUL CVE Exp PoC 等 今天我们就来对这些常用术语的具体
  • 源码方式向openssl中添加新算法完整详细步骤(示例:摘要算法SM3)【非engine方式】

    openssl简介 openssl是一个功能丰富且自包含的开源安全工具箱 它提供的主要功能有 SSL协议实现 包括SSLv2 SSLv3和TLSv1 大量软算法 对称 非对称 摘要 大数运算 非对称算法密钥生成 ASN 1编解码库 证书请求
  • Android AES加密算法及其实现

    昨天老大叫我看看android加密算法 于是网上找了找 找到了AES加密算法 当然还有MD5 BASE64什么的http snowolf iteye com blog 379860这篇文章列举了很多 但是基本都是j2se平台的 androi
  • 使用burpsuite对web进行账号密码暴力破解

    一 打开环境 1 打开php 2 打开burp suite 3 打开小狐狸 进入127 0 0 1 pikachu 二 Repeater 重发器 1 访问pikachu 多次进行用户名和密码的登录 描述 2 burp suite 中抓包 3
  • 命令注入漏洞(1)

    命令注入漏洞原理 其实命令注入漏洞也叫命令行注入漏洞 此漏洞是指web应用程序中调用了系统可执行命令的函数 而且输入的参数是可控的 如果黑客拼接了注入命令 就可以进行非法操作了 靶机搭建 链接 https pan baidu com s 1

随机推荐

  • 4- OpenCV+TensorFlow 入门人工智能图像处理-灰度化处理

    图片特效及线段文字的绘制 特效1 灰度处理 mark 完成彩色图片灰度化 彩色图片有三个颜色通道RGB 灰度图片也是三通道的话 RGB值相等 单通道的灰度图片的值 需要经过RGB值进行计算 图中两个公式 一个是取均值 一个是根据公式 特效2
  • OD-求字符串中所有整数的最小和(Python)

    题目描述 说明 字符串s 只包含 a z A Z 合法的整数包括 1 正整数 一个或者多个0 9组成 如 0 2 3 002 102 2 负整数 负号 开头 数字部分由一个或者多个0 9组成 如 0 012 23 00023 输入描述 包含
  • 华为云DevCloud平台部署bootdo博客论坛实战【开发者专属集市】

    华为云DevCloud平台部署bootdo博客论坛实战 开发者专属集市 一 bootdo blog开源博客介绍 二 本次实践所用工具及平台 三 购买华为RDS数据库 1 购买RDS数据库 2 查看RDS数据库状态 四 创建项目 1 登录华为
  • sqli-labs通关记录

    sqli lab通关记录 docker搭建 运行 docker info 查看docker信息 确认docker正常 搜索sqli labs docker search sqli labs 建立镜像 docker pull acgpiano
  • sharding-jdbc 分库分表配置方案

    Java配置 Yaml配置 Spring Boot配置 Spring命名空间配置 http shardingsphere io document current cn manual sharding jdbc configuration c
  • 【送书活动】AI时代,程序员需要焦虑吗?

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 React从入门到精通 前端炫酷代码分享 从0到英雄 vue成神之路 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架
  • C++的std::is_same与std::decay

    一 背景 有一个模板函数 函数在处理int型和double型时需要进行特殊的处理 那么怎么在编译期知道传入的参数的数据类型是int型还是double型呢 include
  • 第五课 for循环(1)--循环次数控制

    第五课 for循环 1 循环次数控制 循环引入 例题5 1 画下面形状的5级梯形 分析 研究问题的方法之一是 从简单到复杂 步骤 说明 图形 步骤1 先分析简单的1级梯形基本问题 步骤2 代码为 pen fd 30 pen rt 90 pe
  • 为什么手机短信长度限制70个中文、160个英文???

    手机短信的长度是由编码决定的 根据国际标准 每条短信最多发送1120位 合 1120 8 140 一个字节占8位 140字节的内容 如果发送纯英文字符 由于英文ASCII采用 7位编码 所以1120位的限额可以传送1120 7 160个字符
  • VUE调用高德地图之热力图

    上次用VUE实现了高德地图的轨迹回放 现在来实现热力图功能 照例 第一步 加载JS AP 在public index html中加入 将官方demo转换为vue代码 放置地图 初始化map对象 生成热力图map 完整代码如下
  • latex表格中的字上下垂直居中

    单元格内容纵向靠上对齐 而是表线距单元格内容太近 调整表线和单元格内容之间的距离 可以通过重定义 arraystretch 来解决 renewcommand arrarstretch
  • Cannot apply to AuthenticationConfiguration already built object

    前言 Spring Security 在Spring Boot 2 7 0中升级已弃用的WebSecurityConfigrerAdapter 并且根据 EnableWebSecurity推荐自定义配置类后 还是错误的问题 失败的案例 首先
  • 多元线性回归模型的F检验

    F检验 对于多元线性回归模型 在对每个回归系数进行显著性检验之前 应该对回归模型的整体做显著性检验 这就是 F检验 当检验被解释变量 yt与一组解释变量 x 1 x 2 xk 1是否存在回归关系时 给出的零假设与备择假设分别是 H0 b1
  • vc++2010安装教程

    vc 2010是微软公司开发的一个专门用来编写C语言或C 的一个简化般的IDE 本章我们就来安装一下这个IDE 链接 https pan baidu com s 18TEvNMeUSFtSrysWNZ 4nw提取码 cnmk这个百度网盘里面
  • pipe和fork浅析

    pipe和fork浅析 fork pipe fork fork 是linux上创建子进程的系统调用 fork 函数一次调用两次返回 在父进程返回值是子进程的进程id 在子进程的返回值是0 fork 创建出来的子进程会从fork 函数后面开始
  • sqlserver 对表列的添加、修改、删除

    修改列 alter table 表名 alter column 列名 类型 alter table g contractLog alter column optContent nvarchar 50 添加列 alter table 表名 a
  • SPPNet详解(白话讲解——附图文)

    SPPNet是何凯明大神提出的 为了解决R CNN中速度慢问题 在神经网络中输入图片的尺寸必须是固定的 这是因为在设计的时候FC层中神经元的个数都是固定的 导致输入图片尺寸必须是固定的 CNN是可以适应不同尺寸的输入图片 说明在CNN后面加
  • C#使用FFMpeg.Autogen进行rtsp视频倍速播放

    1 在你的C 项目中 使用NuGet包管理器安装FFMpeg Autogen 可以在Visual Studio中打开NuGet包管理器控制台 并运行以下命令来安装它 Install Package FFMpeg Autogen 2 在代码引
  • 环形链表II

    环形链表II 给定一个链表的头节点 head 返回链表开始入环的第一个节点 如果链表无环 则返回 null 如果链表中有某个节点 可以通过连续跟踪 next 指针再次到达 则链表中存在环 为了表示给定链表中的环 评测系统内部使用整数 pos
  • S-DES

    S DES即simplifed DES S DES算法的输入是一个8位的明文或者密文组和一个10位的密钥 输出是一个8位的密文或者明文组 以下是S DES所需的几个置换表 P10 3 5 2 7 4 10 1 9 8 6 P8 6 3 7