本文思路概述本文主要讲解DES加密过程,逐渐抛出和解释DES加密的各个过程和名词,逐级进行概述和详解。 DES的加密过程,按照顺序是IP->16次迭代->FP,但具体讲解时会将FP与IP一同讲解,将16次迭代的详解放在后面 阅读本文后,不考虑效率,具备语言基础的读者应当能够较容易地自主实现DES加密 本文不会涉及原理(设计思路)和解密以及具体的实现,但会有一点点分析。 后续如果有更新将
转载 2023-07-21 14:51:00
333阅读
一、IP地址  1、IP地址就是给互联网上每一台主机 (或路由器)每一个接口分配一个在全世界范围内是唯一的32位二进制的地址标识符。现在由互联网名字和数字分配机构ICANN进行分配。  2、转换成十进制二、分类IP   分类IP就是将IP分成若干个固定类,每一类地址都是由两个固定长度的字段组成,其中第一个字段为网络号,必须是唯一的。第二个字段为主机号。    1、A类
现如今,互联网行业高速发展,在互联网产业中,lP已然成为了一种人手必备的資源,尤其在抓取、网站排名、舆情观察等多种互联网项目中发挥着重要的作用。动态lP和静态IP有什么不同呢?简略而言来说,在各位日常生活中,从企业机房分派到的网络ip被称作机房lP,而自身在家庭生活中根据营运商拉的网络宽带,所分派的网络ip被称作动态lP,由于这种网络ip并不是稳定的lP,因此 被称作动态lP。现如今,由于网络ip
转载 2024-04-07 10:08:44
48阅读
1.所需参数key:8个字节共64位的工作密钥data:8个字节共64位的需要被加密或被解密的数据  mode:DES工作方式,加密或者解密2.初始置换DES算法使用64位的密钥key将64位的明文输入块变为64位的密文输出块,并把输出块分为L0、R0两部分,每部分均为32位。初始置换规则如下:注意:这里的数字表示的是原数据的位置,不是数据 1 58,50,42,34,26,18,10,2, 2
转载 2024-04-13 12:35:13
683阅读
DES描述DES历史背景不再详细描述,我们直接开门见山1.明文分组长度:64bit 2.密钥长度:56bit (这个要注意)3.加密轮数:16轮4.输出密文分组长度:64bitDES加密有三个阶段:(1)初始置换IP:就是对原来的明文按照一定的规则打乱了顺序(2)16轮变换:就是用16个轮密钥,对明文不断的迭代加密,每一轮都有置换和代换计算(3)   逆初始置换:这个
## main.cpp ## #include #include #include"tables.h" //数据表 //置换函数 //参数: In:待置换数据指针 //Out:置换输出指针 // n:置换表长度 //P:置换表指针 //说明:将输入数据的指定位置作为输出数据的第i位。指定位置即置换表第i位的十进制数。得到的输出数据的长度 //即为置换表的长度。 void myPermutation
深入理解DES大致步骤将明文按bit为分组,每组64bit,最后一组不足的补0密钥:56bit的密钥用56bit的密钥对64bit的明文加密,每组都这样执行每一步详细步骤大家看的时候,把每一个步骤都对着这张图来看。对64bit明文进行初始置换根据IP置换表来置换可能很多人不理解IP置换的意思,这些表到底怎么置换,怎么压缩?下面解释第一个58:就是将第58bit放到第一位的意思第二个50:就是将第5
1、适用于使用NAT的各种情况:1.需要连接到因特网,但是主机没有公网IP地址2.更换了一个新的ISP,需要重新组织网络3.需要合并两个具有相同网络地址的内网网络地址类型转换2、静态NAT:静态NAT需要网络中每台主机都拥有一个真实的因特网IP地址,需要在路由器上静态映射内部到外部的地址3、动态NAT:实现映射一个未注册IP地址到注册IP地址池中的一个注册IP地址,必须保证每个在因特网中收发包的用
LTE网络全IP化,数据均在IP包内传输。当UE连接LTE网络,为了和PDN(Packet Data Network)建立连接,一个PDN地址会分配给UE,同时,会在UE和P-GW之间建立默认承载(default bearer),默认承载会保持连接直到UE分离(detach)LTE网络。 LTE网络为每一个用户APN建立默认承载,为每一个APN分配一个唯一的IP地址,这些IP地址可以是IPv4,
1、UVa 10294, First Love Part 2题意:项链和手镯都是由若干珠子穿成的环形饰物,两个手镯翻转之后若相同则视为相同手镯,而项链不会。换句话说,以下两个图,若是手镯则视为相同,项链则视为不同。当然,无论手镯还是项链,旋转之后相同的一定会被视为相同。给出珠子个数n和珠子颜色数t,求分别可以穿成多少个手镯,多少个项链。解法:(此题解直接抄的白书,自己不知道怎么叙述- -)等价类计
转载 2月前
377阅读
题目请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。 函数myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格 检查下一个字符(假设还未到字符末尾)为正还是负号,读取该字符(如果有)。 确定最终结果是负数还是正数。 如果两者都不存在,则假定结果为正。 读入下一个字符,直到到达下一个
深入理解并实现DES算法DES简介DES算法属于分组加密算法信息按照固定长度进行分组,分组长度为64位混淆和扩散是它采用的两个最重要的安全特性 混淆是指通过密码算法使明文和密文以及密钥的关系非常复杂,无法从数学上描述或者统计。扩散是指明文和密钥中的每一位信息的变动,都会影响到密文中许多位信息的变动,从而隐藏统计上的特性,增加密码的安全。需要注意的地方是掌握DES算法的16轮加、解密流程以及子密钥的
Java加密的常用的加密算法类型有三种1单向加密:也就是不可逆的加密,例如MD5,SHA,HMAC2对称加密:也就是加密方和解密方利用同一个秘钥对数据进行加密和解密,例如DES,PBE等等3非对称加密:非对称加密分为公钥和秘钥,二者是非对称的,例如用私钥加密的内容需要使用公钥来解密,使用公钥加密的内容需要用私钥来解密,DSA,RSA...而keyGenerator,KeyPairGenerator
实验一 置换密码一、实验目的: 通过编程实现置换密码算法,加深对古典密码体系的了解,为以后深入学习密码学奠定基础。二、实验内容:实验原理:不改变明文字符,但是把字符在明文中的排列顺序改变,来实现明文信息的加密。置换密码也被称为换位密码。本次实验使用的是矩阵换位法,是将明文中的字母按照给定的顺序安排在一个矩阵中,然后又根据密钥提供的顺序重新组合矩阵中的字母,从而形成密文。解密过程是根据密钥
    置换的概念还是比较好理解的,《组合数学》里面有讲。对于置换的幂运算大家可以参考一下潘震皓的那篇《置换群快速幂运算研究与探讨》,写的很好。结论一:一个长度为l的循环T,l是k的倍数,则T^k是k个循环的乘积,每个循环分别是循环T中下标i mod k=0,1,2…的元素按顺序的连接。结论二:一个长度为l的循环T,gcd(l,k)=1,则T^k是一个循环,与循环T不
web安全学了些密码系统,还讲了具体算法,emmm感觉还是比较感兴趣 目前主要讲了DES密码,貌似是一个不是特别优秀但是比较大众化的密码系统。 也是记录在这里,给以后的自己当个备忘录。 目前只写了伪代码,打算有空的时候真正实现一下。不过感觉很少有有空的时间呢hhhhh(其实是想把有空的时间留给算法)算法原理概述– 设信息空间由 {0, 1} 组成的字符串构成,明文信息和经过 DES 加密的密
今天学习了一下上次集训讲的置换,当时没懂,这个东西确实难理解。。。我看了《算法竞赛入门经典训练指南》,才勉强明白一点基础。。。学习置换之前先要理解群论: 给定一个集合G={a,b,c…}和集合G上的一个二元计算*,满足以下四个条件: (1)封闭性 若a,b∈G,则存在唯一确定的c∈G,使得a*b=c; (2)结合律成立 任意a,b,c∈G,有(a*b)* c=a* (b*c); (3)单位元存在
一、DES加密和解密package com.itjh.javaUtil; import java.io.UnsupportedEncodingException; import java.security.In
第章 第章1.1节 置换群的一般性质1.置换1)定义:n个客体排列次序的变换称为置换(背);n个客体共有n!个不同的置换2)矩阵表示:设原来排在第j位置的客体,经过置换R后排到了第rj位置(背,非常重要,用这句话才能理解置换矩阵),用2×n矩阵来描写这一置换R:3)置换的性质:2.n个客体置换群Sn1)定义:n个客体的n!个置换的集合满足群的四个条件,构成群,称为n个客体置换群,记作Sn2)子群:
常见的对称密钥算法中,S盒置换是核心环节之一,提高S盒置换的效率,会对整体密码运算效率产生巨大影响。说到这里,也许会有人质疑我这个提法,S盒置换不就是给定数组下标从字符数组取出一个字节替换对应字节嘛,这么简单的事情有什么好优化的?确实,如果是在8位CPU上进行S盒置换,没有比字节数组寻址更有效的实现了,但是在x64平台上,这个问题就不那么简单了。首先贴最基础的SMS4算法中的S盒置换部分:(文件
  • 1
  • 2
  • 3
  • 4
  • 5