全大小金钥取代区块加密法.PPT

  1. 1、本文档共65页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
全大小金钥取代区块加密法

圖 5.20 具一個線性 S-box 的簡單加密法 線性破密分析 (續) 求解三個未知數,我們得到 這意味著三個已知明文攻擊能找出 k0、k1 和 k2。 線性相近 在一些現代區塊加密法中,可能發生的情況是某些 S-box 不是完全非線性,而是藉由一些線性函數機率式地近似於非線性。 其中,1 ≤ x ≤ m、1 ≤ y ≤ n 且 1 ≤ z ≤ n。 範例5.9 在一個具有 3 個輸入和 2 個輸出的 S-box 中,若輸入和輸出之間的關係是 其中,乘法和加法是在GF(2)裡的運算。此S-box是非線性的,因為輸入和輸出之間沒有線性關係。 範例5.10 下表定義一個 3×2 S-box 的輸入/輸出關係,其中列表示輸入的最左邊位元,欄表 示輸入的最右邊兩個位元,而列與欄交叉處的值則是兩個位元的輸出值。 依此表格,010 的輸入會產生 01 的輸出,101 的輸入會產生 00 的輸出。 S-box:可逆性 S-box 可以是可逆的或是不可逆的,可逆的 S-box 其輸入位元的數量必須與輸出位 元的數量相同。 範例5.11 圖 5.8 是一個可逆的 S-box 例子,如果左邊 S-box 的輸入是 001,則輸出是 101;而右邊表格的輸入是 101 時,將產生 001的輸出。這顯示了這兩個表格彼此互為反向。 互斥或 在大多數的區塊加密法中,互斥或運算是非常重要的組成元件。我們在第四章曾討論過,在GF(2n) 中的加法和減法運算是透過稱為互斥或(XOR)的單一運算來執行的。 互斥或運算在GF(2n)中的五種特性使得此運算是區塊加密法中非常有趣的組成元件:封閉性、結合性、交換性、存在單位元素、存在反元素。 互斥或:反向 在一個加密法中,如果某個組成元件是代表單元運算(一個輸入和一個輸出),那麼此組成元件的反向是有意義的。例如,一個無金鑰的 P-box 或者一個無金鑰的 S-box 可以是可逆的,因為有一個輸入和一個輸出。一個互斥或運算是一個單元運算,互斥或運算只有在輸入之一是固定的情況下(加密和解密時都一樣),其反向才會有意義。例如,如果輸入之一是金鑰,此金鑰通常在加密和解密時是一樣的,那麼互斥或運算是自我可逆的,如圖 5.9 所示。 圖 5.9 互斥或運算的可逆性 循環位移 一些現代區塊加密法也常使用循環位移運算(circular shift operation)。 圖 5.10 向左或向右循環位移一個 8 位元字組 交換 交換運算(swap operation)是循環位移運算的特殊情況,其中 k = n/2 。 圖 5.11 一個 8 位元字組的交換運算 分割與整合 一些現代區塊加密法中其他兩個常見的運算是分割與整合。 圖 5.12 一個 8 位元字組的分割與整合運算 5.1.4 乘積加密法 乘積加密法(product cipher)的概念是由 Shannon 提出。乘積加密法是一種結合了取 代、排列和前幾節所討論的其他運算之複雜加密法。 擴散與混淆 擴散隱藏密文和明文之間的關係。 注意 擴散 混淆 混淆隱藏密文和金鑰之間的關係。 注意 回合 擴散和混淆可以使用迭代的乘積加密法來達到,其中每一次的迭代是 S-box、P-box 和其他組成元件的結合。 圖5.13 一個兩回合的乘積加密法 圖 5.14 區塊加密法的擴散和混淆 5.1.5 兩種乘積加密法的類型 現代區塊加密法都是乘積加密法,但是可分成兩種: Feistel加密法 非Feistel加密法 Feistel加密法 Feistel 設計了一種非常聰明和有趣的加密法,已經使用數十年了。Feistel加密法(Feistel cipher)有三種組成元件︰自我可逆、可逆和不可逆的。 在Feistel設計裡的混合器是自我可逆的。 注意 圖 5.15 Feistel 加密法設計的最初想法 範例5.12 這是一個簡單的範例。明文和密文的長度各是 4 位元,金鑰長度是 3 位元,假設此 函數取金鑰的第一和第三位元,將此二位元解釋成十進位的數字,再將該數字平方,以二進位的 4 位元表示結果。如果原始的明文是 0111,而金鑰是 101,請顯示加密和解密的結果。 範例5.12 (續) 解法:此函數取出第一和第三位元,得到二進位的 11 或十進位的 3,平方的結果是 9,以二進位 表示則是 1001。 圖 5.16 先前 Feistel 設計的改進

文档评论(0)

2105194781 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档