"什麽叫你只会加密128位元?"
---
花了不少篇幅介绍两中区块加密方式,DES 跟 AES。
来稍微复习一下,
DES 的加密区块是64位元,
AES 的加密区块是128位元。
复习完了,
谢谢大家,我们明天见。
还没啦,还没完啊。
那如果我要用 AES 加密150位元怎麽办。
我是要先加密前面128位元,然後剩下22位元再加密还是怎麽样。
这时候就要搬出操作模式(modes of operation)了。
操作模式要解决如何处理多个区块的加密。
第一个介绍的操作模式是 ECB ,也是你最不该使用的一种。
ECB 的想法也是最直观解决常讯息的方法。
它的操作方法就是直接将讯息切成小块,再一一直接加密,
区块间互不相关,不会互相影响。
这样的好处是每个区块可以同时加密,所以速度很快。
缺点是一样的明文会加密成一样的密文,所以在加密点阵图时可以看到圆图的大致样貌。
也因为每个区块之间不会互相影响,所以如果有一个 Oscar 要搞你的话,他可以将区块的顺序移来移去。
注意到CBC里面有个 block chain,里面有区块链(开玩笑的)
cipher block chain 的意思是我们会把每个区块串在一起,
上一个区块的加密结果会影响下一个区块。
来看这张图,P 代表 plaintext
第一个区块要先和初始向量(IV, initial vector)做 XOR,
接着进行加密,加密後的密文和下一个区块做XOR,加密,成为第二块密文。
依此类推直到结束。
和 IV 做 XOR 的效果是,即使密钥和明文都一样,也不会像 ECB 一样转换成一样的密文。
所以 IV 只要注意只能使用一次,不必保密。
OFB和以下要讲的CFB类似,都是将 IV 做加密,而不是讯息。
OFB的操作方式是,
将 IV 做 n 次加密後和第 n 块明文 XOR 成为密文。
这有点像是将 IV 经由加密函数产生无限多个子IV的概念。
CFB 较 OFB 多一个步骤,他有点像 CBC 跟 OFB 的集合体。
意思是说他有串联起来的概念。
跟OFB一样,先将 IV 加密後和第一块明文XOR成为密文。
接着这块密文要进入下一轮加密後和下一块XOR成为下一块密文。
依此类推直到结束。
顾名思义他有一个计数器,也就是加密每一个区块的时候他会产生一个不重复的计数。
而我们仍然使用一个 IV 後面接着这个计数。
将这整坨数字丢进家密函数里加密後和明文XOR後即为密文。
因此每一个区块是可以独立操作的,运行速度快。
区块密码的操作模式除了提供机密性之外,
另一个想要达到的目的是可靠性和完整性。
可靠性(authenticity)让接收者可以确认讯息是否是从原始传送者传来。
完整性(integrity)则可确定在传送过程中讯息没有经过更动。
为了达到这个目的,就需要衍伸出讯息监别码(MAC)。
而讯息监别码的其中一种方式是由操作模式达成,如GCM、CBC-MAC等等。
详细的部分我们之後讲 MAC 的部分再介绍。
当然还有百百种不同的操作模式没办发一一介绍,
有兴趣的话可以看看XTS、OCB。
只要记得
参考资料:
https://www.youtube.com/watch?v=9IFhlnGp2Mc
https://www.geeksforgeeks.org/block-cipher-modes-of-operation/
图片来源:
https://mobile.twitter.com/veorq/status/369453385440694272
https://software.intel.com/content/www/cn/zh/develop/articles/performance-of-multibuffer-aes-cbc-on-intel-xeon-processors-e5-v3.html
https://zh.wikipedia.org/wiki/分组密码工作模式
https://www.reddit.com/r/ProgrammerHumor/comments/6m6bvv/all_block_cipher_modes_are_beautiful/
>>: Day-23 你没想到的Excel average知识
此篇接续 第12届-iT邦帮忙铁人赛-谁温暖了资安部-8(现况) 气死我了,那个Allen 竟然不...
也学过 OPEN WINDOW了,可是为什麽 T 产品可以有TOOLBAR和 TOPMENU 我这...
前言 今天要完成帖子页的元件设计。 帖子页的元件 帖子 基本上可以用回主页的帖子元件, 这里只是少了...
(好的我知道标题没押韵很虚,我尽力了) 昨天我们终於处理完Database的东东,并且成功用Djan...
接下来讲讲Entity Framework 如何建立... 首先先开启visual studio.....