伪随机性

本文探讨了伪随机性在密码学中的重要性,从单向函数存在的假设出发,详细介绍了如何构造伪随机发生器、伪随机函数和伪随机置换。通过Feistel网络展示了伪随机置换的构建,并讨论了DES和AES这两个著名的分组密码,强调了AES的安全性和设计优势。同时,指出对AES的攻击主要针对减少轮数的情况,目前AES仍被认为是安全的。
摘要由CSDN通过智能技术生成

本周完成了有关伪随机的内容。
在这之前了解了伪随机性的概念,也用伪随机发生器伪随机函数伪随机置换 3 3 3个原语构造过安全的加密方案,但是却对这些原语的构造没有什么了解。这次就从单向函数存在这个假设出发,构造这些原语。这样,安全的对称密钥加密方案就可以基于更弱的假设,也就更加的具有说服力,需要说明的是,这里没有考虑构造方案的执行效率,仅从假设方面出发。
虽然构造伪随机发生器等原语是可以用单向函数存在这一假设的,但是证明过程过于复杂,作者介绍的是基于任何单向置换构造出伪随机发生器、伪随机函数、伪随机置换和强伪随机置换。 X    f ( x ) X~~f(x) X  f(x)
伪随机发生器的构造:伪随机发生器可以用任意的单向置换和该函数的硬核谓词来构造。即 G ( s ) = ( f ( s ) , h c ( s ) ) G(s)=(f(s),hc(s)) G(s)=(f(s),hc(s))
伪随机函数的构造:伪随机函数其实就是一个带密钥的函数,它可以用伪随机发生器来构造。即 F k ( x ) = G x n ( … G x 2 ( G x 1 ( k ) ) … ) F_{k(x)}=G{x_n}(…G_{x_2}(G_{x_1}(k))…) Fk(x)=Gxn(Gx2(Gx1(k))) G G G就是伪随机发生器, x 1 . . x n x_1..x_n x1..xn分别是 x x x的单个比特, k k k是均匀随机选取的, G x 1 ( k ) G_{x_1}(k) Gx1(k)的意思就是将 1 1 1比特的字符扩展成n比特的字符串。 G x n ( … G x 2 ( G x 1 ( k ) ) … ) G_{x_n}(…G_{x_2}(G_{x_1}(k))…) Gxn(Gx2(Gx1(k)))就是由内而外重复迭代,伪随机发生器生成的字符串是伪随机的,因此最终得到的字符串也是伪随机的,所以 F k ( x ) F_k(x) Fk(x)得出的字符串是伪随机的。
伪随机置换的构造:伪随机置换是一个可以高效求逆的伪随机函数。作者通过使用 F e i s t e l Feistel Feistel网络来构造伪随机置换。在 F e i s t e l Feistel Feistel网络中,轮函数使用伪随机函数,通过三轮的 F e i s t e l Feistel Feistel网络是伪随机的。通过四轮的 F e i s t e l Feistel Feistel网络是强伪随机的。
最终可以得出结论:如果单向函数存在,那么就可以构造出伪随机发生器、伪随机函数和伪随机置换。那么,只要存在单向函数,就存在选择密文攻击安全的对称密钥加密方案,以及存在适应性选择消息攻击条件下的存在性不可伪造的消息认证码。
分组密码是效率更高的伪随机置换,常在实践中使用。最熟知的分组密码应该就是 D E S DES DES A E S AES AES D E S DES DES是一个拥有 16 16 16轮的 F e i s t e l 网 络 Feistel网络 Feistel,分块长度为 64 64 64比特,密钥长度为 56 56 56比特,它的轮函数是不可逆的唯一机密的是主密钥本身,其他都是公开的。它的原理大致是:
(1)将 64 64 64比特的明文进行初始置换。
(2)生成 48 48 48比特的子密钥
(3)生成 48 48 48比特的明文
(4)生成中间密文
(5) S S S盒的处理
(6)逆初始置换
其中, ( 2 ) (2) 2~ ( 5 ) (5) 5步骤需经过 16 16 16轮迭代运算。
D E S DES DES的基本形式已经不再安全,因为它的密钥太短,这跟他的内部结构和设计无关。他的变体 3 D E S 3DES 3DES被广泛认为是高度安全的。但是由于它需要三个完整的分组密码运算,导致速度上慢了很多,它的分块长度也相对较短。这也正是 A E S AES AES出现的原因, A E S AES AES就是为了解决短密钥和短分块长度问题而被设计出来的。
A E S AES AES拥有 128 128 128比特的分块长度,可以使用 128 128 128 192 192 192 256 256 256比特的密钥。 A E S AES AES本质上是一个 S P N SPN SPN,以 128 128 128比特为例,其原理大致是这样的:它需要经过一次 a d d R o u n d K e y addRoundKey addRoundKey(轮密钥加)和 9 9 9字节代换行移位列混合轮密钥加,最后经过字节代换行移位轮密钥加,得到的就是密文了。
A E S AES AES也有很多攻击,但都是针对轮数减少的 A E S AES AES,至今还没有发现更好的攻击来攻破它。所以 A E S AES AES是很安全的。

( 3 ) (3) 3总结
本周的内容不能说都看懂了,比如,在构造过程中使用的技术:混合参数( h y b r i d   a r g u m e n t hybrid~argument hybrid argument)就没有看的通透。之前只知道,在多项式时间里,如果一个字符串是伪随机的,那么它与相同长度的均匀分布的字符串是不可区分的。有了本周的学习,伪随机性的概念更加深刻了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值