書上講的DES和AES對稱加密演算法,都是只有一個秘鑰key,沒有提到iv。我學序列密碼的時候里面才有這個初始向量。
但是在c#程式中,des加密演算法都存在著IV。請問這個iv是什么作用呢?具體如何參與運算的呢?
uj5u.com熱心網友回復:
使用亂數產生的初始化向量才能達到語意安全(散列函式與訊息驗證碼也有相同要求),并讓攻擊者難以對同一把密鑰的密文進行破解初始化向量的值依密碼演算法而不同。最基本的要求是“唯一性”,也就是說同一把密鑰不重復使用同一個初始化向量。這個特性無論在區塊加密或流加密中都非常重要。
示例: 對明文P做流加密,轉換成密文C。所使用的是流密鑰K,它來自密鑰與初始化向量。我們可以得到等式:C = P xor K。假如攻擊者得知密文C1與C2來自同一把密鑰與初使向量。那么攻擊者就能通過底下公式得到明文P1與P2:
C1 xor C2 = (P1 xor K) xor (P2 xor K) = P1 xor P2.
https://zh.wikipedia.org/wiki/%E5%88%9D%E5%A7%8B%E5%90%91%E9%87%8F
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/119507.html
標籤:網絡通信
