des算法密钥长度
❶ 3des的秘钥长度
是3x56bit长的密钥,DES是一个经典的对称加密算法,但也缺陷明显,即56位的密钥安全性不足,已被证实可以在短时间内破解。为解决此问题,出现了3DES,也称Triple DES,3DES为DES向AES过渡的加密算法,它使用3条56位的密钥对数据进行三次加密。为了兼容普通的DES,3DES并没有直接使用 加密->加密->加密 的方式,而是采用了加密->解密->加密 的方式。
❷ des密钥长度是多少位
56位
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。
❸ 现代常见的对位进行加密的算法有
现代常见的对位进行加密的算法有DES算法、AES算法、LEA算法。
1、DES算法:一种对称加密算法搏雹,采用分组密码,密钥长度为112位或168位。
2、AES算法:一种对称加密算法,采用分组密码,昌银州密钥长度可选128位、192位、256位。
3、LEA算法:一种对称加密算法,是中国耐蔽自主研发的加密算法,密钥长度可选128位、192位、256位。
❹ 对称加密算法之DES介绍
DES (Data Encryption Standard)是分组对称密码算法。
DES算法利用 多次组合替代算法 和 换位算法 ,分散和错乱的相互作用,把明文编制成密码强度很高的密文,它的加密和解密用的是同一算法。
DES算法,是一种 乘积密码 ,其在算法结构上主要采用了 置换 、 代替 、 模二相加 等函数,通过 轮函数 迭代的方式来进行计算和工作。
DES算法也会使用到数据置换技术,主要有初始置换 IP 和逆初始置换 IP^-1 两种类型。DES算法使用置换运算的目的是将原始明文的所有格式及所有数据全部打乱重排。而在轮加密函数中,即将数据全部打乱重排,同时在数据格式方面,将原有的32位数据格式,扩展成为48位数据格式,目的是为了满足S盒组对数据长度和数据格式规范的要求。
一组数据信息经过一系列的非线性变换以后,很难从中推导出其计算的过程和使用的非线性组合;但是如果这组数据信息使用的是线性变换,计算就容易的多。在DES算法中,属于非线性变换的计算过程只有S盒,其余的数据计算和变换都是属于线性变换,所以DES算法安全的关键在于S盒的安全强度。此外,S盒和置换IP相互配合,形成了很强的抗差分攻击和抗线性攻击能力,其中抗差分攻击能力更强一些。
DES算法是一种分组加密机制,将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。
DES加密是对每个分组进行加密,所以输入的参数为分组明文和密钥,明文分组需要置换和迭代,密钥也需要置换和循环移位。在初始置换IP中,根据一张8*8的置换表,将64位的明文打乱、打杂,从而提高加密的强度;再经过16次的迭代运算,在这些迭代运算中,要运用到子密钥;每组形成的初始密文,再次经过初始逆置换 IP^-1 ,它是初始置换的逆运算,最后得到分组的最终密文。
图2右半部分,给出了作用56比特密钥的过程。DES算法的加密密钥是64比特,但是由于密钥的第n*8(n=1,2…8)是校验(保证含有奇数个1),因此实际参与加密的的密钥只有 56比特 。开始时,密钥经过一个置换,然后经过循环左移和另一个置换分别得到子密钥ki,供每一轮的迭代加密使用。每轮的置换函数都一样,但是由于密钥位的重复迭代使得子密钥互不相同。
DES算法 利用多次组合替代算法和换位算法,分散和错乱的相互作用,把明文编制成密码强度很高的密文,它的加密和解密用的是同一算法。
DES算法详述:DES对64位明文分组(密钥56bit)进行操作。
1、 初始置换函数IP:64位明文分组x经过一个初始置换函数IP,产生64位的输出x0,再将分组x0分成左半部分L0和右半部分R0:即将输入的第58位换到第一位,第50位换到第2位,…,依次类推,最后一位是原来的第7位。L0、R0则是换位输出后的两部分,L0是输出的左32位,R0是右32位。例,设置换前的输入值为D1D2D3…D64,则经过初始置换后的结果为:L0=D58D50…D8;R0=D57D49…D7.其置换规则如表1所示。
DES加密过程最后的逆置换 IP^-1 ,是表1的 逆过程 。就是把原来的每一位都恢复过去,即把第1位的数据,放回到第58位,把第2位的数据,放回到第50位。
2、 获取子密钥 Ki :DES加密算法的密钥长度为56位,一般表示为64位(每个第8位用于奇偶校验),将用户提供的64位初始密钥经过一系列的处理得到K1,K2,…,K16,分别作为 1~16 轮运算的 16个子密钥 。
(1). 将64位密钥去掉8个校验位,用密钥置换 PC-1 (表2)置换剩下的56位密钥;
(2). 将56位分成前28位C0和后28位D0,即 PC-1(K56)=C0D0 ;
(3). 根据轮数,这两部分分别循环左移1位或2位,表3:
(4). 移动后,将两部分合并成56位后通过压缩置换PC-2(表4)后得到48位子密钥,即Ki=PC-2(CiDi).
子密钥产生如图2所示:
3、 密码函数F(非线性的)
(1). 函数F的操作步骤:密码函数F 的输入是32比特数据和48比特的子密钥:
A.扩展置换(E):将数据的右半部分Ri从32位扩展为48位。位选择函数(也称E盒),如表5所示:
B.异或:扩展后的48位输出E(Ri)与压缩后的48位密钥Ki作异或运算;
C.S盒替代:将异或得到的48位结果分成八个6位的块,每一块通过对应的一个S盒产生一个4位的输出。
(2)、D、P盒置换:将八个S盒的输出连在一起生成一个32位的输出,输出结果再通过置换P产生一个32位的输出即:F(Ri,Ki),F(Ri,Ki)算法描述如图3,最后,将P盒置换的结果与最初的64位分组的左半部分异或,然后,左、右半部分交换,开始下一轮计算。
4、密文输出:经过16次迭代运算后,得到L16、R16,将此作为输入,进行逆置换,即得到密文输出。逆置换正好是初始置的逆运算。例如,第1位经过初始置换后,处于第40位,而通过逆置换,又将第40位换回到第1位,其逆置换规则如表8所示:
图4为DES算法加密原理图:
DES算法加密和解密过程采用相同的算法,并采用相同的加密密钥和解密密钥,两者的区别是:(1)、DES加密是从L0、R0到L15、R15进行变换,而解密时是从L15、R15到L0、R0进行变换的;(2)、加密时各轮的加密密钥为K0K1…K15,而解密时各轮的解密密钥为K15K14…K0;(3)、加密时密钥循环左移,解密时密钥循环右移。
DES加密过程分析:
(1)、首先要生成64位密钥,这64位的密钥经过“子密钥算法”换转后,将得到总共16个子密钥。将这些子密钥标识为Kn(n=1,2,…,16)。这些子密钥主要用于总共十六次的加密迭代过程中的加密工具。
(2)、其次要将明文信息按64位数据格式为一组,对所有明文信息进行分组处理。每一段的64位明文都要经过初试置换IP,置换的目的是将数据信息全部打乱重排。然后将打乱的数据分为左右两块,左边一块共32位为一组,标识为L0;右边一块也是32位为一组,标识为R0.
(3)、置换后的数据块总共要进行总共十六次的加密迭代过程。加密迭代主要由加密函数f来实现。首先使用子密钥K1对右边32位的R0进行加密处理,得到的结果也是32位的;然后再将这个32位的结果数据与左边32位的L0进行模2处理,从而再次得到一个32位的数据组。我们将最终得到的这个32位组数据,作为第二次加密迭代的L1,往后的每一次迭代过程都与上述过程相同。
(4)、在结束了最后一轮加密迭代之后,会产生一个64位的数据信息组,然后我们将这个64位数据信息组按原有的数据排列顺序平均分为左右两等分,然后将左右两等分的部分进行位置调换,即原来左等分的数据整体位移至右侧,而原来右等分的数据则整体位移至左侧,这样经过合并后的数据将再次经过逆初始置换IP^-1的计算,我们最终将得到一组64位的密文。
DES解密过程分析:DES的解密过程与它的加密过程是一样的,这是由于DES算法本身属于对称密码体制算法,其加密和解密的过程可以共用同一个过程和运算。
DES加密函数f:在DES算法中,要将64位的明文顺利加密输出成64位的密文,而完成这项任务的核心部分就是加密函数f。加密函数f的主要作用是在第m次的加密迭代中使用子密钥Km对Km-1进行加密操作。加密函数f在加密过程中总共需要运行16轮。
十六轮迭代算法:它先将经过置换后的明文分成两组,每组32位;同时密钥也被分成了两组,每组28位,两组密钥经过运算,再联合成一个48位的密钥,参与到明文加密的运算当中。S盒子,它由8个4*16的矩阵构成,每一行放着0到15的数据,顺序各个不同,是由IBM公司设计好的。经过异或运算的明文,是一个48位的数据,在送入到S盒子的时候,被分成了8份,每份6位,每一份经过一个S盒子,经过运算后输出为4位,即是一个0到15的数字的二进制表示形式。具体运算过程为,将输入的6位中的第1位为第6位合并成一个二进制数,表示行号,其余4位也合并成一个二进制数,表示列号。在当前S盒子中,以这个行号和列号为准,取出相应的数,并以二进制的形式表示,输出,即得到4位的输出,8个S盒子共计32位。
DES算法优缺点:
(1)、产生密钥简单,但密钥必须高度保密,因而难以做到一次一密;
(2)、DES的安全性依赖于密钥的保密。攻击破解DES算法的一个主要方法是通过密钥搜索,使用运算速度非常高的计算机通过排列组合枚举的方式不断尝试各种可能的密钥,直到破解为止。一般,DES算法使用56位长的密钥,通过简单计算可知所有可能的密钥数量最多是2^56个。随着巨型计算机运算速度的不断提高,DES算法的安全性也将随之下降,然而在一般的民用商业场合,DES的安全性仍是足够可信赖的。
(3)、DES算法加密解密速度比较快,密钥比较短,加密效率很高但通信双方都要保持密钥的秘密性,为了安全还需要经常更换DES密钥。
参考链接 : https://blog.csdn.net/fengbingchun/article/details/42273257
❺ 72位密钥是什么密码
加密体系归属
DES属于分组加密法,WC3属于流加密法。
DES分组为64位,即每次加密需要8个字节。
WC3内核采用CRC8算法,故分组为8位,即每次加密只需要1个字节。
DES为固定分组,WC3可根据内核的变化得到不同的分组数据位数。
例WC3采用CRC64时,分组也随之变为64位. 故WC3的分组位数由CRCn(n=4,8,12,16,32,64,128,...)决定。
2.密钥长度
DES的密钥长度为56位(64-8),WC3的密钥长度与CRCn算法有关。
内核为CRC8的WC3密钥长度为112位。以下所有对比将全部采用CRC8的WC3或WC38。
3.子密钥的产生
DES主密钥为56位,产生16轮每轮48位的子密钥。用以和半组32位明文每轮的混淆。
WC3主密钥为112位,产生结构对称的8对密钥流,其中1对各为32位密钥流,其他都为8位密钥流。
由于流密码的原因,WC3的“轮”即为每次的加密和解密过程。每轮8对密钥流以不同方式和方向环移不同的位数。
每轮参与直接作用的密钥即为本轮的子密钥。WC3每轮的子密钥为72位。
4.算法的f函数
f函数是DES加密法中最重要的部分,其重点就是S盒。其次是扩展及压缩置换。
CRC8正运算函数和CRC8逆运算函数是WC3密码不可缺少的部分,它同时具备了S盒和扩展作用。
DES右半部分明文数据为32位,每轮子密钥的长度为48位,且每个S盒位6入4出,8个S盒共需48位输入,故必须将明型昌慎文
扩展到48位才能与子密钥混淆,进入S盒进行非线性置换。
DES的32位明文经过扩展置换后为48位,原明文的一半即16位与密钥中的16位作用,原明文的另一半16位要同32位
密钥作用。
DES的S盒实际类同CRC4,它与CRC4同属于0~15全排列表即16!=20922789888000个表。
用矩阵的行列表示为15!行16列,即DES和CRC4的S盒“祖宗”是个1307674368000行16列的矩阵。迅消
每个S盒为4行16列,8个S盒也不过32行16列。
CRC4每个CRC权对应1个S盒,共16个S盒,每个S盒为16*16的矩阵,共256行16列,是DES的S盒的8倍。
WC3的S盒就是CRC8,每个CRC权对应1个S盒,共256个S盒,每个S盒为256*256的矩阵,共65536行256列。
DES的扩展置换实际是明文1个字节扩展半字节即扩展0.5倍,WC3采用明文与初值组合扩展256倍的方法。
DES的压缩置换实际所有S盒4*8=32位出口的32位置换即交换,所谓压缩是指S盒的48位入32位出的结果。
同理WC3在CRC8出入的关系是(8位明文+8位初值+8位权)24入8出(8位密文),实际也是所谓的压缩。
DES的S盒和CRC的S盒的根本区别在于前者是所谓的“非线性”即不好用函数表述及实现,后者可用函数表述和实现。
5.算法的实现过程
DES和WC3都是对称密码体系,即加密和解密共用同一密钥。
DES的加密和解密算法相同,不同的是子密钥每轮次序的不同。
WC3的加密和解密算法不同,子密钥流每轮次序相同。
WC3的加密过程为CRC8的卜敬正运算函数即CRC8编码矩阵的查表过程。(对称矩阵)
WC3的解密过程为CRC8的逆运算函数即CRC8解码矩阵的查表过程。(非对称矩阵)
6.安全性
DES设计寿命为10年,但至今还在沿用,说明它设计的合理,虽然S盒之谜留有遗憾。
❻ java des加密,密钥的长度是多少
3des算法是指使用双长度(16字节)密钥k=(kl||kr)将8字节明文数据块进行3次des加密/解密。如下所示:
y
=
des(kl)[des-1(kr)[des(kl[x])]]
解密方式为:
x
=
des-1
(kl)[des
(kr)[
des-1
(kl[y])]]
其中,des(kl[x])表示用密钥k对数据x进行des加密,des-1
(kl[y])表示用密钥k对数据y进行解密。
sessionkey的计算采用3des算法,计算出单倍长度的密钥。表示法为:sk
=
session(dk,data)
3des加密算法为:
void
3des(byte
doublekeystr[16],
byte
data[8],
byte
out[8])
{
byte
buf1[8],
buf2[8];
des
(&doublekeystr[0],
data,
buf1);
udes(&doublekeystr[8],
buf1,
buf2);
des
(&doublekeystr[0],
buf2,
out);
}
❼ 什么是DES
解释:FIPS46规定了一种数据加密算法,由于FIPS46的名称即为数据加密标准(Data Encryption Standard,DES),所以人们就将该标准中所定义的算法称为DES算法。DES算法是IBM公司于1975年研究成功并公开发表的,并于1977 年成为联邦信息处理标准。DES的密钥长度为64位,但由于每字节由1比特校验位,所以有效密钥长度为56位。当前,DES算法被认为是不安全的,通常使 用3-DES来实现对数据的加密。来源: 中国SSL证书
❽ DES是一种什么加密算法,其密钥长度为56 bit,3DES是基于DES的加密方式,对明文
des是一直对称加密算法,就是加密的密钥和解密的密钥是一样的。DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,来生成最大64bit的分组大小。
DES 的常见变体是3 DES,使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。
❾ des加密算法
des加密算法如下:
一、DES加密算法简介
DES(Data Encryption Standard)是目前最为流行的加密算法之一。DES是对称的,也就是说它使用同一个密钥来加密和解密数据。
DES还是一种分组加密算法,该算法每次处理固定长度的数据段,称之为分组。DES分组的大小是64位,如果加密的数据长度不是64位的倍数,可以按照某种具体的规则来填充位。
从本质上来说,DES的安全性依赖于虚假表象,从密码学的术语来讲就是依赖于“混乱和扩散”的原则。混乱的目的是为隐藏任何明文同密文、或者密钥之间的关系,而扩散的目的是使明文中的有效位和密钥一起组成尽可能多的密文。两者结合到一起就使得安全性变得相对较高。
DES算法具体通过对明文进行一系列的排列和替换操作来将其加密。过程的关键就是从给定的初始密钥中得到16个子密钥的函数。要加密一组明文,每个子密钥按照顺序(1-16)以一系列的位操作施加于数据上,每个子密钥一次,一共重复16次。每一次迭代称之为一轮。要对密文进行解密可以采用同样的步骤,只是子密钥是按照逆向的顺序(16-1)对密文进行处理。
❿ des的密钥长度是多少bit
DES使用56位密钥对64位的数据块进行加密,并对64位的数据块进行16轮编码。
与每轮编码时,一个48位的“每轮”密钥值由56位的完整密钥得出来。
DES用软件进行解码需要用很长时间,而用硬件解码速度非常快。
但幸运的是当时大多数黑客并没有足够的设备制造出这种硬件设备。
在1977年,人们估计要耗资两千万美元才能建成一个专门计算机用于DES的解密。
而且需要12个小时的破解才能得到结果。
所以,当时DES被认为是一种十分强壮的加密方法。
1. 用密钥K1进行DEA加密。
2. 用K2对步骤1的结果进行DES解密。
3. 用步骤2的结果使用密钥K1进行DES加密。
这种方法的缺点,是要花费原来三倍时间,从另一方面来看,三重DES的112位密钥长度是很“强壮”的加密方式了