IDEA資料加密演算法_idea

來源:互聯網
上載者:User

 

1、 簡介

IDEA是International Data Encryption Algorithm 的縮寫,是1990年由瑞士聯邦技術學院來學嘉X.J.Lai 和Massey提出的建議標準演算法稱作PES( Proposed Encryption Standard) 。Lai 和Massey 在1992 年進行了改進強化了抗差分分析的能力改稱為IDEA 它也是對64bit大小的資料區塊加密的區塊編碼器演算法密鑰長度為128位它基於"相異代數群上的混合運算"設計思想演算法用硬體和軟體實現都很容易且比DES在實現上快的多。IDEA自問世以來,已經經曆了大量的詳細審查,對密碼分析具有很強的抵抗能力,在多種商業產品中被使用。

這種演算法是在DES演算法的基礎上發展出來的,類似於三重DES。發展IDEA也是因為感到DES具有密鑰太短等缺點,已經過時。IDEA的密鑰為128位,這麼長的密鑰在今後若干年內應該是安全的。

類似於DES,IDEA演算法也是一種資料區塊密碼編譯演算法,它設計了一系列加密輪次,每輪加密都使用從完整的加密金鑰中產生的一個子密鑰。與DES的不同處在於,它採用軟體實現和採用硬體實現同樣快速。

由於IDEA是在美國之外提出並發展起來的,避開了美國法律上對加密技術的諸多限制,因此,有關IDEA演算法和實現技術的書籍都可以自由出版和交流,可極大地促進IDEA的發展和完善。

2、 演算法詳解:

2.1產生密鑰

演算法用了52個子密鑰(8輪中的每一輪需要6個,其他4個用與輸出變換)。首先,將128-位密鑰分成8個16-位子密鑰。這些是演算法的第一批8個子密鑰(第一輪六個,第二輪的頭兩個)。然後,密鑰向左環移x位後再分成8個子密鑰。開始4個用在第二輪,後面4個用在第三輪。密鑰再次向左環移25位產生另外8個子密鑰,如此進行直到演算法結束。具體是:

IDEA總共進行8輪迭代操作,每輪需要6個子密鑰,另外還需要4個額外子密鑰,所以總共需要52個子密鑰,這個52個子密鑰都是從128位密鑰中擴充出來的。

首先把輸入的Key分成8個16位的子密鑰, 1~6號子密鑰供第一輪加密使用,7~8號子密鑰供第二輪使用,然後把這個128位密鑰迴圈左移25位,這樣Key = k26k27k28.k24k25。

把新產生的Key在分成8個16位的子密鑰,1~4號子密鑰供第二輪加密使用(前面已經提供了兩個)5~8號子密鑰供第三輪加密使用。到此我們已經得到了16個子密鑰,如此繼續,當迴圈左移了5次之後已經產生了48個子密鑰,還有四個額外的子密鑰需要產生,再次把Key迴圈左移25位,選取劃分出來的8個16位子密鑰的前4個作為那4個額外的加密金鑰.供加密使用的52個子密鑰產生完畢。

輸入的64-位元據分組被分成4個16-位子分組:xl,X2,x3和x4。這4個子分組成為演算法的第一輪的輸入,總共有8輪。在每一輪中,這4個子分組相互相異或,相加,相乘,且與6個16-位子密鑰相異或,相加,相乘。在輪與輪間,第二和第三個子封包交換。最後在輸出變換中4個子分組與4個子密鑰進行運算。

2.2加、解密過程

  在每一輪中,執行的順序如下:

  (1)X1和第一個子密鑰相乘。

  (2)x2和第二個子密鑰相加。

  (3)X3和第三個子密鑰相加。

  (4)x4和第四個子密鑰相乘。

  (5)將第(1)步和第(3)步的結果相異或。 .

  (6)將第(2)步和第(4)步的結果相異或。

  (7)將第(5)步的結果與第五個子密鑰相乘。

  (8)將第(6)步和第(7)步的結果相加。

  (9)將第(8)步的結果與第六個子密鑰相乘。

  (10)將第(7)步和第(9)步的結果相加。

  (11)將第(1)步和第(9)步的結果相異或。

  (12)將第(3)步和第(9)步的結果相異或。

  (13)將第(2)步和第(10)步的結果相異或。

  (14)將第(4)步和第(10)步的結果相異或。

  每一輪的輸出是第(11)、(12)、(13)和(14) 步的結果形成的4個子分組。將中間兩個分組封包交換(最後一輪除外)後,即為下一輪的輸入。

  經過8輪運算之後,有一個最終的輸出變換:

  (1) X1和第一個子密鑰相乘。

  (2) x2和第二個子密鑰相加。

  (3) x3和第三個子密鑰相加。

  (4) x4和第四個子密鑰相乘。

最後,這4個子分組重新串連到一起產生密文。

2.3金鑰組應圖

2.4加密過程圖

2.5解密過程圖

3、 評價:

IDEA演算法的密鑰長度為128位。設計者盡最大努力使該演算法不受差分密碼分析的影響,數學家已證明IDEA演算法在其8圈迭代的第4圈之後便不受差分密碼分析的影響了。假定窮舉法攻擊有效話,那麼即使設計一種每秒種可以實驗10億個密鑰的專用晶片,並將10億片這樣的晶片用於此項工作,仍需1013年才能解決問題;另一方面,若用1024片這樣的晶片,有可能在一天內找到密鑰,不過人們還無法找到足夠的矽原子來製造這樣一台機器。目前,尚無一片公開發表的試圖對IDEA進行密碼分析的文章。因此,就現在來看應當說IDEA是非常安全的。

並且,IDEA資料比較RSA演算法加、解決速度快得多,又比DES演算法要相對安全得多。

4、 參考文獻:

《應用密碼學(協議演算法與C來源程式)》:機械工業出版社

5、 源碼:


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1109279

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.