<button id="u2w23"></button>

<tbody id="u2w23"><track id="u2w23"></track></tbody><dd id="u2w23"><track id="u2w23"></track></dd><button id="u2w23"><acronym id="u2w23"></acronym></button> <tbody id="u2w23"><noscript id="u2w23"></noscript></tbody>

  • <button id="u2w23"></button><li id="u2w23"><acronym id="u2w23"><cite id="u2w23"></cite></acronym></li>

  • 實現android的AES加密技術

    [來源] 達內    [編輯] 達內   [時間]2013-02-19

    SubBytes — 透過一個非線性的替換函數,用查找表的方式把每個字節替換成對應的字節。

      密碼學中的高級加密標準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標準由美國國家標準與技術研究院(NIST)于2001年11月26日發布于FIPS PUB 197,并在2002年5月26日成為有效的標準。2006年,高級加密標準已然成為對稱密鑰加密中最流行的算法之一。該算法為比利時密碼學家Joan Daemen和Vincent Rijmen所設計,結合兩位作者的名字,以Rijdael之命名之,投稿高級加密標準的甄選流程(Rijdael的發音近于 “Rhine doll”)。

      AES 加密過程是在一個4×4的字節矩陣上運作,這個矩陣又稱為“體(state)”,其初值就是一個明文區塊(矩陣中一個元素大小就是明文區塊中的一個 Byte)。(Rijndael加密法因支援更大的區塊,其矩陣行數可視情況增加)加密時,各輪AES加密循環(除最后一輪外)均包含4個步驟:

      1. AddRoundKey — 矩陣中的每一個字節都與該次循環的子密鑰(round key)做XOR運算;每個子密鑰由密鑰生成方案產生。

      2. SubBytes — 透過一個非線性的替換函數,用查找表的方式把每個字節替換成對應的字節。

      3. ShiftRows — 將矩陣中的每個橫列進行循環式移位。

      4. MixColumns — 為了充分混合矩陣中各個直行的操作。這個步驟使用線性轉換來混合每行內的四個字節。

      最后一個加密循環中省略MixColumns步驟,而以另一個AddRoundKey取代。

    資源下載

    ?