S-DES加密算法

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

一、S-DES

S-DES 是一种简化版的数据加密标准。相对于 DES 来说,S-DES 更加简单、快速、高效,可以用于学习加密算法的入门课程。

二、加密和解密步骤

使用 S-DES 进行加密和解密的步骤如下:

  1. 初始置换(IP)
    • 将 8 位明文分为左右两部分,各 4 位,进行初始置换,得到置换后的左右两部分。
  2. 轮函数(F)
    • 对置换后的右半部分进行扩展置换(E-P),将其扩展为 8 位。
    • 将扩展后的结果与轮密钥 K1 进行异或运算,再将异或的结果拆分成 2 个 4 位的块。
    • 将这 2 个块分别通过 S 盒代替(S0 和 S1),然后再进行 P4 置换,最后将 P4 置换后的结果与左半部分进行异或,得到 F 函数输出的结果。

S盒运算规则(具体见案例):

  • 将第1和第4的输入比特做2—bit数,指示为S盒的一个行;

  • 将第2和第3的输入比特作为S盒的一个列;

  • 其中S0查表需要E-P和K的异或的结果的前4位,S1为后4位。

  • 如S1=1101 ,第1个数和第四个数代表要查的行,第2个数和第3个数代表要查的列,即11行(第3行),第10列(第2列),查询矩阵的结果是1,即01。

注意矩阵的起始行列都是第0行(列)

  1. 轮秘钥生成

    • 根据初始密钥生成 2 个 8 位的密钥(K1 和 K2)。
    • 首先对初始密钥进行 P10 置换,并将置换后的结果分为左右两部分,各 5 位。
    • 接下来对左右两部分进行循环左移,得到移位后的结果。
    • 最后将左右两部分合并,并进行 P8 置换,得到 K1。

    • 对 K1 进行循环左移,并进行 P8 置换,得到 K2。

s-des,密码学,python,算法,安全

  1. 加密和解密
    • 将明文通过初始置换(IP)得到左右两部分。
    • 然后进行 2 轮加密/解密操作,每轮操作包括以下步骤:
      • 将右半部分作为输入,通过 F 函数得到输出。
      • 将 F 函数的输出与左半部分进行异或运算,得到新的右半部分。
      • 将原来的右半部分作为新的左半部分。
      • 如果是加密操作,则使用 K1 进行第一轮加密,使用 K2 进行第二轮加密;如果是解密操作,则使用 K2 进行第一轮解密,使用 K1 进行第二轮解密。
      • 将左右两部分交换,再进行一次初始置换逆置换 I P − 1 IP^{-1} IP1),得到密文或明文。

s-des,密码学,python,算法,安全

三、案例

  1. 密钥生成

问题描述:S-DES加密, 密匙 K = ( 10100 , 00010 ) , P 10 = ( 3 , 5 , 2 , 7 , 4 , 10 , 1 , 9 , 8 , 6 ) , P 8 = ( 6 , 3 , 7 , 4 , 8 , 5 , 10 , 9 ) 则 K 1 , k 2 密匙K=(10100,00010),P10=(3,5,2,7,4,10,1,9,8,6),P8=(6,3,7,4,8,5,10,9)则K1,k2 密匙K=(10100,00010),P10=(3,5,2,7,4,10,1,9,8,6),P8=(6,3,7,4,8,5,10,9)K1,k2分别为?

  1. 计算P10后的密匙

K ( P 10 ) K(P10) K(P10):10100 00010 (3,5,2,7,4 10,1,9,8,6)=10000 01100

  1. 计算 K 1 K1 K1

左四位、右四位 L S − 1 LS-1 LS1后合并:00001 11000

K 1 ( P 8 ) K1(P8) K1(P8):00001 11000 (6,3,7,4, 8,5,10,9)=1010 0100

  1. 计算 K 2 K2 K2

在已经 L S − 1 LS-1 LS1的基础上 L S − 2 LS-2 LS2: 00100 00011

K 2 ( P 8 ) K2(P8) K2(P8):00100 00011(6,3,7,4, 8,5,10,9)=0100 0011

  1. 进行S-DES加密

已知: 明文 P = ( 1011 , 0101 ) , I P = ( 2 , 6 , 3 , 1 , 4 , 8 , 5 , 7 ) , E − P = ( 4 , 1 , 2 , 3 , 2 , 3 , 4 , 1 ) , P 4 = ( 2 , 4 , 3 , 1 ) , I P − 1 = ( 4 , 1 , 3 , 5 , 7 , 2 文章来源地址https://www.toymoban.com/news/detail-718774.html

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

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

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

相关文章

  • [密码学]DES

    先声明两个基本概念 代换 或  替换(substitution),用别的元素代替当前元素。des的s-box遵循这一设计。 abc--def 置换(permutation),只改变元素的排列顺序。des的p-box遵循这一设计。 abc--bac **本文并未介绍初始置换(Initial Permutation)和初始置换的逆置换。这两个置换并不提供任

    2024年02月04日
    浏览(37)
  • 密码学之DES,3DES与Python实现AES

    最近项目中需要用到DES,3DES解密算法,所以了解一下。正好CSDN上有关于DES,3DES的资料。边看边写一下总结。 密码学之DES,3DES详解与Python实现 DES(Data Encryption Standard-数据加密标准)属于对称加密,即使用相同的密钥来完成加密和解密。分组长度为8个字节64bit(密钥每个字节的最

    2024年02月08日
    浏览(37)
  • 【密码学】AES和DES的区别

    标准定义不同 数据加密标准(也称为 DES)是一种对称密钥块密码,由 IBM 于 1977 年引入。 在 DES 加密中,纯文本分为两半,然后 DES 将输入作为 64 位纯文本和 56 位密钥作为输入,以生成 64 位 CipherText,它是数据的加密形式。另一方面,高级加密标准(也称为 AES)也是对称键

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

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

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

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

    2024年02月19日
    浏览(47)
  • 【密码算法 之一】对称加密算法 DES \ 3DES 浅析

      DES(Data Encryption Standard)是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS 46-3)。DES一直以来被美国以及其它国家的政府和银行等广泛使用。   然而,随着计算机的进步,现在DES已经能够被暴力破解,强度大不如从前了。20世纪末,RSA公司举办过破

    2024年02月09日
    浏览(53)
  • 【密码学基础】RSA加密算法

    RSA是一种非对称加密算法,即加密和解密时用到的密钥不同。 加密密钥是公钥,可以公开;解密密钥是私钥,必须保密保存。 基于一个简单的数论事实:两个大质数相乘很容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥;而两个

    2024年02月01日
    浏览(65)
  • 【密码学基础】半/全同态加密算法基础学习笔记

    定义:只支持乘法或加法中的一种的同态加密。同态加密指的是允许直接对密文进行计算,密文计算结果解密后与明文直接计算结果相同。 Paillier加解密过程 Paillier的同态性 明文加法 = 密文乘法 明文乘法 = 密文指数幂 Paillier的安全性 基于大整数分解困难问题 相比Paillier,

    2024年02月13日
    浏览(47)
  • 【网络安全】数据加密标准(DES算法)详细介绍( 分组密码、Feistel密码结构、轮函数、子密钥生成算法)

    将被加密明文划分成一个一个的分组,输入n比特明文分组,输出n比特密文分组。 若映射可逆,具有 x n ! x^n! x n ! 种替换可能性。 如以下示例,每个4比特输入唯一映射为另一个4比特输出。 2.1 什么是Feistel密码结构 1973年由 IBM的Horst Feistel首次提出 ,通过将明文分组分成 左右

    2023年04月08日
    浏览(42)
  • 密码学概念科普(加密算法、数字签名、散列函数、HMAC)

    密码散列函数 (Cryptographic hash function),是一个单向函数,输入消息,输出摘要。主要特点是: 只能根据消息计算摘要,很难根据摘要反推消息 改变消息,摘要一定会跟着改变 对于不同的消息,计算出的摘要几乎不可能相同 根据散列函数的上述特点,可以应用在保存密码、数

    2024年02月10日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包