当前位置:首页 » 密码管理 » feistel加密

feistel加密

发布时间: 2023-04-11 17:07:47

❶ Feistel加密中最后一步交换左右分组有什么作用

Feistel加密中最后一步交换左右分组是为了提高安全性
Feistel结构就是交搏裤替使地使用替换和置换。替换和置基睁简换地定义如下:
替换:每个明文元素或元素组被唯一地替换为相应地密文元素或元素组。
置换:明文元素地序列被替换为该序列地一个置换,序列里没有添加新元素,但是元素出现的顺序变了。
分组密码,是将整个长明文分成若干组,以组为单位进行加密。分组越长意味着安全性越高,但是会降低加密解密的速度。为了简化加密过程,我们设定每个分组长早纤度都相等,不足则补上空格。
将明文分成若干等长分组,对于每个分组进行以下加密:
取分组后KSIZE位字符生成子密钥,将子密钥与前 (PSIZE - KSIZE)为进行异或加密,再将子密钥拼接到异或得到的密文后,得到与原分组长度相等的密文C1,再对问C1进行栅栏密码的加密,最终得到该分组加密的密文。

❷ 04.现代常见分组加密算法

1.Triple DES

2.IDEA

3.RC6

4.RC6

5.ASE

其实就是有3个密钥k1,k2,k3,如果m表示明文,C表示密文,他们是这样操作的:

DES1(m)=>C1

DES2(C1)=>C2

DES3(C3)=>C3

DES密钥太短是其短板,3DES密钥长度为k1+k2+k3 = 56*3 = 168bit

既然都Triple自然就有double,为什么不用Double DES呢?

我们先来看下double des:

首先根据DESC密钥太短的特点,的确是有了double desc,可用中间相遇攻击破解(老师坑爹没讲什么是中间相遇攻击,日后补上),经过加密有2^64个可能的密文,密钥长度为112bit(56+56),所以选择密钥的可能性达到2^112,于是对给定一个明文P加密成密文有2^112/2^64 = 2^48种可能,对于给定两个明文密文对,虚警率降为2^(46-64)=2^-16,用中间相遇攻击大概可用2^57 可暴力破解

那么如何解决中间相遇攻击呢?于是设计出了Triple des,它一共有四种模式:

1.DES-EEE3:3个不同的密钥,顺序用三次加密算法

2.DES-EDE3:3个不同的密钥, 加密-解密-加密

3.DES-EEE2:两个不同的密钥,k1,k2,k1,依次k1加密,k2加密,k1加密

4.DES-EDE2:两个不同的密钥,k1,k2,k1,依次k1加密,k2解密,k1加密

这里我们着重介绍第四种,DES-EDE2

同DES相比有如下特点:

1.3DES安全性高,密钥长度大于DES

2.3DES可抵抗中间相遇攻击

3.可向下兼容,我们设k2=k1,则密钥均为k1,上图中A过程加密后在B过程解密,最后在C过程又加密,相当于仅用k1加密一次,兼容了DES,解密同理

4.相比于DES效率低些

要求:1.效率比3DES高

            2.至少和3DES一样安全,数据分组长度128bit

它有如下特点:

1.不属于Feistel结构,属于SP网络

2.加密,解密相似但不对称

3.支持128/32=Nb数据块大小

4.支持128/192/256(/32=Nk)密钥长度

5.结构简单速度快

什么是Feistel结构?

    Feistel 的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传输的要求就减少了几乎一半

什么是SP网络结构?

    在这种密码的每一轮中,轮输入首先被一个由子密钥控制的可逆函数S作用,然后再对所得结果用置换(或可逆线性变换)P作用,S和P分别被称为混乱层和扩散层,主要起混乱和扩散作用

通过置换和替换迭代加密(最后一轮没有列混淆)

❸ 什么是Feistel密码结构,其有什么作用

Feistel 密码结构,在密码学研究中,Feistel 密码结构是用于分组密码中的一种对称结构。以它的发明者 Horst Feistel 为名,而Horst Feistel 本人是一位物理学家兼密码学家,在他为 IBM 工作的时候,为Feistel 密码结构的研究毕销谨奠定了基础。很多密码标准都采用了Feistel 结构,其中包括DES。Feistel 的优点在于:由于它是对称的密码结构,所以对信息的加密和解密的过程就手基极为相似,甚至完全一样。这就使得在实施的过程中,对编码量和线路传斗乱输的要求就减少了几乎一半。

❹ Feistel结构为什么是加解密互逆

密码的意思。
在密码学中,一个密码是一旦改种分组密码的结构对称的结构,命名为德国IBM Horst Feistel密码;它通常也被称为Feistel网络。一个大的块密码的使用方案,包括数据加密标准(DES)。
Feistel结构的优点是加密和解激逗密操作是非常相似的,在某些情况下,即使是相同的,只需要一个反转的关键时间表。因此需要实现这样一个密码的代码或电路尺寸的一半。
性质使得硬件更容易实现明迟卖密码Feistel结构迭代。
,- -

❺ feistel密码解密相当于对密文进行加密运算,但秘钥编排方案要逆序使用

搜一下:feistel密码解密相当于对密文进行加密运算,但秘钥编排方案要逆序使用

❻ 为什么说研究Feistel密码很重要

事实上,现在使用的大多颂余数对宽如称分组加密算法都是基于Feistel分组密码结构的。因为这个原慎樱启因,研究Feistel密码的设计原理就很重要了.

❼ 密码技术(三、二)之对称密码(DES)

——用相同的密钥进行加密和解密
此次主要介绍比特序列运算和XOR(异或)运算。这两种运算在计算机数据处理中经常出现,因此大家应该在此属性他们。

  DES(Data Encryption)是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS46-3)。DES一直以来被美国及其他国家的政府和银行等广泛使用。
 随着计算机的进步,现在DES已经能够被暴力破解,强度大不如前了。20世纪末,RSA公司举办过破译DES密钥的比赛,我们可以看一看RSA公司官方公布的比赛结果:1997年的DES Challenge I 中用了96天破译密钥,1998年的DES Challenge II-1中用了41天,1998年的DES Challenge II-2中用了56小时,1999年的DES Challenge III 中只用了22小时15分钟。
 由于DES的密文可以在短时间内被破译,因此除了用它来解密一起的密文以外,现在我们不应该再使用DES了。

 DES是一种将64比特的明文加密成64比特的密文的对称密码算法,它的密钥的长度是56比特。尽管从规格上来说,DES的密钥长度是64比特,但由于每隔7比特会设置一个用于错误检查的比特,因此实质上其密钥长度是56比特。
 DES 是以64比特的明文(比特序列)为一个单位来进行加密的,这个64比特的单位称为 分组 ,一般来说,以分组为单位进行处理的密码算法称为 分组密码 ,DES就是分组密码的一种。
 DES每次只能加密64比特的数据,如果要加密的明文比较长,就需要对DES加密进行迭代(反复),而迭代的具体方式就称为 模式

 DES的基本结构是由Horst Feistel设计的,因此也称为 Feistel网络(Feistel network) 、Feistel结构(Feistel structure)或者Feistel密码(Feistel cipher)。这一结构不仅被用于DES,在其他很多密码算法中也有应用。
 Feistel网络中,加密的各个步骤称为轮,整个加密过程就是进行若干次轮的循环,下图,展现的是Feistel网络中一轮的计算流程。DES是一种16轮循环的Feistel网络。

 但是,这样看来,“右侧”根本没有加密,因此我们需要用不同的子密钥对一轮的处理重复若干次,并在没两轮处理指间将左侧和有责的数据对调。

上图展现了一个3轮的Feistel网络,3轮加密计算需要进行两次左右对调。对调只在两轮指间进行,租后一轮结束不需要对调。

那么,Feistel网络如何解密呢?

如上图所示,通过上述操作都能够将密文正确的还原明文。

有多轮的情况也是一样的,也就是说,Feistel网络的解密操作,只要按照相反的顺序来使用子密钥就可以完成了,而Feistel网络本身的结构,在加密和解密都是完全相同的。

该系列的主要内容来自《图解密码技术第三版》
我只是知识的搬运工
文章中的插图来源于原着

❽ 什么是feistal cipher

feistal cipher是一种密码Feistel密码用于构造的对称结构。分组密码,以德国-出生猛历物没知岁理学家和cryptographer霍斯特·Feistel在为的工作的同时,谁做了开拓性的研究ibm(美国);它也通常被称为Feistel网络.密码使用该方案,包括数据加密标准(Des)。在结构具有以下优点:加密和解密操作非常相似,甚至在某些情况下是枯睁相同的,只需要反转关键进度表因此,实现这种密码所需的代码或线路的大小几乎减半。
一种网络是一种迭代密码,其内部函数称为圆函数。

❾ 【密码学笔记】第3部分 对称密码

跟诸位大牛相比,笔者阅历尚浅、经验不足,笔记中若有错误,还需继续修正与增删。欢迎大家的批评与指正。

查看上一篇请点击以下链接: 【密码学笔记】第2部分 历史上的密码

1. XOR运算

2. 一次性密码本

3. 对称密码算法

    3.1 DES

    3.2 三重DES

    3.3 AES

    3.4 Rijndael

4. 对称密码的选择

5. 对称密码的评价

参考书目

XOR运算,又称为 异或 运算,运算结果是 同0异1 。

对同一个比特序列进行两次XOR之后就会回到最初的状态,因此XOR运算可用于对称密码的加密和解密。

一次性密码本(又称为 维纳密码 )是一种非常简单的密码,它的原理是“ 将明文与一串随机的比特序列进行XOR运算 ”。

一次性密码本是无法破译的。 这是因为在对它尝试解密的过程中,所有的排列组合都会出现,既会包含规则字符串,也会包含英文单词,还会包含乱码。由于明文中所有可能的排列组合都会出现,因此 我们无法判断其中哪一个才是正确的明文 。

一次性密码本是一种非常不实用的密码。 原因如下:

a. 密钥的配送 。( 最大的问题 )如果能够有一种方法将密钥安全地发送出去,那么就可以用同样的方法安全地发送明文。

b. 密钥的保存 。 密钥的长度必须和明文的长度相等。 如果能够有办法安全保存与明文一样长的密钥,那就有办法安全保存明文本身。

c. 密钥的重用 。在一次性密码本中绝对不能重用过去用过的随机比特序列,因为作为密钥的比特序列一旦泄露,过去所有的机密通信内容将全部被解密。

d. 密钥的同步 。在通信过程中,发送者和接收者的密钥的比特序列不允许有任何错位,否则错位的比特后的所有信息都将无法解密。

e. 密钥的生成 。一次性密码本需要生成大量的随机数,这里的随机数并不是通过计算机程序生成的伪随机数,而必须是无重现性的真正随机数。

DES是一种将64比特的明文加密成64比特的密文的对称密码算法,它的密钥长度是56比特。

DES是以64比特的明文(比特序列)为一个单位来进行加密的,这个64比特的单位称为 分组 。以分组为单位进行处理的密码算法称为 分组密码 。

DES每次只能加密64比特的数据,如果要加密的明文比较长,就需要对DES加密进行迭代,而迭代的具体方式就称为 模式(mode) 。

DES的基本结构又称为 Feistel网络 ,这一结构不仅被用于DES,在其他很多密码算法中也有应用。在Feistel网络中,加密的各个步骤称为 轮(round) ,整个加密过程就是进行若干次轮的循环。下图展现的是Feistel网络中一轮的计算流程。DES是一种16轮循环的Feistel网络。

一轮的具体计算步骤 如下:

a. 将输入的数据等分为左右两部分;

b. 将输入的右侧直接发送到输出的右侧;

c. 将输入的右侧发送到轮函数;

d. 轮函数根据右侧数据和子密钥,计算出一串看上去是随机的比特序列;

e. 将上一步得到的比特序列与左侧数据进行XOR运算,并将结果作为加密后的左侧。

我们需要用不同的子密钥对一轮的处理重复若干次,并在每两轮处理之间将左侧和右侧的数据对调。

Feistel网络的解密操作只要按照相反的顺序来使用子密钥就可以完成了。

Feistel网络的性质 :

a. 轮数可以任意增加;

b. 加密时无论使用任何函数作为轮函数都可以正确解密(即使该函数不存在反函数);

c. 加密和解密可以用完全相同的结构来实现。

综上所述,无论是任何轮数、任何轮函数,Feistel网络都可以 用相同的结构实现加密和解密 ,且加密的结果必定能够正确解密。

三重DES是为了增加DES的强度,将DES重复3次所得到的一种密码算法,也称为 TDEA ,通常缩写为 3DES 。

明文经过三次DES处理才能变成最后的密文,由于DES密钥的长度实质上是56比特,因此三重DES的密钥长度就是168比特。

三重DES并不是进行三次DES加密,而是 加密→解密→加密 的过程,目的是 让三重DES能够兼容普通的DES ,当所有密钥都相同时,三重DES也就等同于普通的DES。

尽管三重DES目前还被银行等机构使用,但其处理速度不高,除了特别重视向下兼容性的情况以外,很少被用于新的用途。

AES是取代其前任标准(DES)而成为新标准的一种对称密码算法。全世界的企业和密码学家提交了多个对称密码算法作为AES的候选,最终选出了一种名为 Rijndael 的对称密码算法,并将其确定为AES。

AES的选拔并不仅仅考虑一种算法是否存在弱点,算法的速度、实现的容易性等也都在考虑范围内。此外,这种算法还必须能够在各种平台上有效工作。

Rijndael是由比利时密码学家设计的 分组密码算法 ,被选为新一代的标准密码算法——AES。

和DES一样,Rijndael算法也是由多个 轮 构成的,其中每一轮分为 SubBytes 、 ShiftRows 、 MixColumns 和 AddRoundKey 共4个步骤。DES使用Feistel网络作为其基本结构,而Rijndael使用的是 SPN结构 。

加密过程 :

a. 首先,需要 逐个字节 地对16字节的输入数据进行SubBytes处理,即以每个字节的值(0~255)为索引,从一张拥有256个值的 替换表 (S-Box)中查找出对应值( 类似于简单替换密码 )。

b. 进行ShiftRows处理,即以4字节为单位的 行(row) 按照一定的规则向左平移,且每一行平移的字节数是不同的。

c. 进行MixColumns处理,即对一个4字节的值进行比特运算,将其变为另外一个4字节值。

d. 最后,将MixColumns的输出与轮密钥进行 XOR ,即进行AddRoundKey处理。至此,Rijndael的一轮就结束了。实际上,在Rijndael中需要重复进行10~14轮计算。

在SPN结构中, 输入的所有比特在一轮中都会被加密 。和每一轮都只加密一半输入的比特的Feistel网络相比,这种方式的优势在于 加密所需要的轮数更少 。此外,这种方式还有一个优势,即 SubBytes、ShiftRows和MixColumns可以分别以字节、行和列为单位进行并行计算 。

在Rijndael的 加密 过程中,每一轮所进行的处理为:

SubBytes→ShiftRows→MixColumns→AddRoundKey

而在 解密 时,则是按照相反的顺序来进行的,即:

AddRoundKey→InvMixColumns→InvShiftRows→InvSubBytes

解密过程 :

Rijndael算法背后有着 严谨的数学结构 ,即从明文到密文的计算过程可以全部用公式来表达,这是以前任何密码算法都不具备的性质。如果Rijndael的公式能够通过数学运算来求解,那也就意味着Rijndael能够通过数学方法进行破译,这也为新的攻击方式的产生提供了可能。

(1) 因为现在用暴力破解法已经能够在现实的时间内完成对DES的破译, DES不应再用于任何新的用途 。但是也需要保持与旧版本软件的兼容性。

(2) 尽管在一些重视兼容性的环境中会使用三重DES,但 我们也没有理由将三重DES用于新的用途 ,它会逐渐被AES所取代。

(3) 现在应该使用的算法是AES(Rijndael) ,因为它安全、快速,而且能够在各种平台上工作。

(4) AES最终候选算法应该可以作为AES的备份 ,因为这些密码算法也都经过了严格的测试,且没有发现任何弱点。

(5) 一般来说, 我们不应该使用任何自制的密码算法 ,而是应该使用AES。

优点 :

使用一种密钥空间巨大,且在算法上没有弱点的对称密码,就可以通过密文来确保明文的机密性。 巨大的密钥空间能够抵御暴力破解,算法上没有弱点可以抵御其他类型的攻击。

不足 :

a. 用对称密码进行通信时,还会出现 密钥的配送问题 ,即如何将密钥安全地发送给接受者。为了解决密钥配送问题,需要 公钥密码技术 。

b. 尽管使用对称密码可以确保机密性,但仅凭这一点还并不能完全放心。 例如发送者可能发送伪造的密文,并利用解密时返回的错误来盗取信息。

衷心感谢您的阅读。

查看下一篇请点击以下链接: 【密码学笔记】第4部分 分组密码的模式

❿ 证明DES解密过程是加密过程的逆过程

问题:证明DES解密过程是加密过程的逆运算

证明:

对于DES算法来说,其基本结构和Feistel密码的结构相同,只不过多了个S盒子。

结论①:Feistel密码的解密过程是加密过程的逆过程。

说明如下:

在DES算法中,其用到了Feistel密码的经典结构,如下:

Li=Ri-1

Ri=Li-I(XOR)F(Ri-1,Ki)

下面是具体的图说明:

在Feistel加密的最后一轮,也就是i=16时,输入为LE15||RE15,而输出为:

LE16=RE15

RE16=LE15(XOR)F(RE15,K16)

而后交换R和L作为密文输出

即:LE17=RE16,RE17=LE16

而在Feistel解密的第一轮,即i=1时,先将输出的密文交换回来作为输入,即LD0=LE17=RE16,RD0=RE17=LE16

之后再按上图进行运算,

即LD1=RD0=LE16=RE15;

RD1=LD0 (XOR) F(RD0,K16)=RE16 (XOR) F(RD0,K16)=LE15 (XOR) F(RE15,K16) (XOR) F(RD0,K16)=LE15,所以解密的第一轮输出为RE15||LE15,这正是加密过程第16轮输入左右敏局败部分互换的值。

结论:所以对于Feistel密码来说,其解密过程正是加密过程的逆过程。

故而我们有第二个结论:

结论②:对于采用了Feistel密码为基础结构的DES密码来桥颤说,其解密过程正是加密过程的逆运算。

只不过在DES密码中,在进行(XOR)运算后会通过S盒子进行代替和腊铅选择,不过这个不是证明要点,故而证明到此结束。

热点内容
ohem算法 发布:2025-02-13 15:40:10 浏览:930
java编程课程 发布:2025-02-13 15:36:08 浏览:475
cs编译 发布:2025-02-13 15:36:07 浏览:55
高级语言都要编译解析型语言 发布:2025-02-13 15:06:32 浏览:304
openwrt源码下载 发布:2025-02-13 15:01:59 浏览:644
linux删除一个目录 发布:2025-02-13 15:00:29 浏览:539
蚂蚁存储 发布:2025-02-13 15:00:25 浏览:918
脚本师传奇 发布:2025-02-13 14:45:48 浏览:481
我的世界lce服务器剪辑 发布:2025-02-13 14:40:50 浏览:625
phpsftp上传 发布:2025-02-13 14:35:43 浏览:274