首页 > 其他分享 >DES加密

DES加密

时间:2024-03-22 09:26:06浏览次数:41  
标签:加密 比特 置换 DES 数据 加密算法

DES加密

一. DES加密流程

image

1. 初始置换

根据初始置换表,对输入的64位的明文按照比特位数进行替换。

即加密和解密的时候应该是一张8*8的表来进行替换。

2. f运算

f运算的参数为每一轮的密钥k和上一轮的R。

image

对于32位的输入数据首先经过拓展变换得到48位的数据,然后与48位的密钥异或,所得到的结果按照6比特的依次分为8个分组。将8个6比特的数据分别作为8个S盒的输入,得到8个4比特共32比特的输出,最后对输出的结果做置换变换P,得到f函数的输出。

(1) S盒代替

  1. 我们前面扩展置换后得到的R0是48位的数据,我们的S盒有8个,那么我们就需要将得到的R0平均分为8组,每组对应一个S盒。
  2. 每一组的数据长度为6位,假设第一组的二进制数据为:“100110”
  3. 那么,我们取第一位与最后一位,组成十进制行数:“10”=2
  4. 然后取中间四位,组成十进制列数:“0011”=3
  5. 那么,在对应的S1盒中,取2行3列的数据(第3行第4列):8
  6. 再将取得的数字转换为2进制:“1000”
  7. 将这个得到的4位二进制数据,代替原来第一组的6位数据,这样一来,等8个S盒全部代替完毕,我们就得到32位的数据。

(2)P盒置换

image

P盒是一个代替的过程,当进行替换的时候基于P盒的下标进行替换,比如a对应16就是第16个即P.

3. 密钥生成算法

image

(1). 压缩置换1

image

(2). 循环左移

每一轮循环左移的位数是不同的:

image

(3). 压缩置换2

image

二. DES加密算法

DES加密算法实现: DES加密算法实现(C++) (gitee.com)

三. 参考文章

  1. DES加密算法解析与实现 - luogi - 博客园 (cnblogs.com)

标签:加密,比特,置换,DES,数据,加密算法
From: https://www.cnblogs.com/ONEZJ/p/18088678/desjia-mi-ui3kn

相关文章

  • RC4加密
    RC4加密一.介绍在密码学中,RC4(来自RivestCipher4的缩写)是一种流加密算法(基于bit进行加密),密钥长度可变。它加解密使用相同的密钥,因此也属于对称加密算法。所谓对称加密,就是加密和解密的过程是一样的。RC4是有线等效加密(WEP)中采用的加密算法,也曾经是TLS可采用的算法之一。RC4......
  • AES加密
    AES加密一.加密流程​​AES未使用Feistel结构。其前N-1轮由4个不同的变换组成:字节代替、行移位、列混淆和轮密钥加。最后一轮仅包含三个变换。而在第一轮前面有一个起始的单变换(轮密钥加),可以视为0轮。字节代替(SubBytes):用一个S盒完成分组的字节到字节的代替。行移位(ShiftRows):......
  • Medium Design
    思路一:见这篇题解,当然只用看step3之后的就好了思路二:我使用的是转换对象法。从线段的角度不好考虑,我们从元素的角度考虑如果我们已经确定了一个元素\(a_i\)为最大值,我们考虑所有线段如果一个线段不包含\(a_i\),那么肯定不选择,因为他不会让最大值增加,反而可能会让最小值增加如......
  • GUROBI案例实战(一)——Supply Network Design(网络流模型)
    GUROBI官方给出的案例,但本篇实现方式与其有些不一样,并且对一些函数给出了解释:ymodeling-examples/supply_network_design/supply_network_design_1.ipynbatmaster·Gurobi/modeling-examples(github.com)一、问题描述给定两个工厂、四个中转站、六个客户:FactorySupply......
  • 高速电路顶级会议Design Con历年精选电路设计文章分享
    DesignCon是一个年度的技术会议,专注于高速通信和电子设计领域。该会议旨在为电子工程师、系统设计师、IC设计师、测试和测量工程师等专业人士提供一个交流和学习的平台。DesignCon聚集了来自全球各地的行业专家和领导者,他们分享最新的技术趋势、挑战和解决方案。会议涵盖......
  • LeetCode 2265. Count Nodes Equal to Average of Subtree
    原题链接在这里:https://leetcode.com/problems/count-nodes-equal-to-average-of-subtree/description/题目:Giventhe root ofabinarytree,return thenumberofnodeswherethevalueofthenodeisequaltothe average ofthevaluesinits subtree.Note:Th......
  • AES加密
    AES算法加密(ECB模式),加密后进行base64编码异常Specifiedkeyisnotavalidsizeforthisalgorithm解决方法:AES加密中参数key应是32位,如果位数不对会报此错。///<summary>///AES算法加密(ECB模式)将明文加密,加密后进行base64编码,返回密文///</summary>///<p......
  • vite+vue3+vuex 加密
    1.安装JSEncrypt  npminstalljsencrypt2.加密方法//加密算法import{JSEncrypt}from'jsencrypt';//加密functionencryptText(text){ constpublicKey='MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCh5Nk2GLiyQFMIU+h3OEA4UeFbu3dCH5sjd/sLTxxvwjXq7JLqJbt2rC......
  • 提升Java编程安全性-代码加密混淆工具的重要性和应用
     在Java编程领域中,保护代码安全性和知识产权至关重要。本文旨在探讨代码加密混淆工具在提升代码安全性和保护知识产权方面的重要性。我们将介绍几款流行的Java代码加密混淆工具,如ProGuard、DexGuard、Jscrambler、DashO和ipaguard,并分析它们的功能和适用场景,旨在帮助开发者选择......
  • 密码加密|jsencrypt|md5|加密解密的两种方式
    一、md5npminstallmd5二、JSEncrypt2.1介绍JSEncrypt属于RSA加密,RSA加密算法是一种非对称加密算法;2.2使用安装:npminstalljsencrypt--dev封装工具:utils/jsencrypt.jsimportJSEncryptfrom'jsencrypt/bin/jsencrypt.min'//密钥对生成http://web.cha......