當前位置:編程學習大全網 - 編程語言 - Advanced Encryption Standard(AES) 加密算法簡介

Advanced Encryption Standard(AES) 加密算法簡介

AES(The Advanced Encryption Standard)是美國國家標準與技術研究所用於加密電子數據的規範。它被預期能成為人們公認的加密包括金融、電信和政府數字信息的方法。美國國家標準與技術研究所(NIST)在2002年5月26日建立了新的高級數據加密標準(AES)規範。AES是壹個新的可以用於保護電子數據的加密算法。

1998年National Institute of Standards and Technology(NIST)開始AES第壹輪分析、測試和征集,***產生了15個候選算法。其中包括CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS,RC6, Rijndael, SAFER+, Serpent, Twofish。 其中五個候選算法進入第二輪: MARS, RC6, Rijndael, Serpent, andTwofish. 1999年3月完成了第二輪AES2的分析、測試,最終確認Rijndael算法獲得勝利。NIST於2002年5月26日制定了新的高級加密標準(AES)規範。

AES是典型的對稱加密算法,應用廣泛。數據發信方將明文和加密密鑰壹起經過特殊加密算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同算法的逆算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密算法中,使用的密鑰只有壹個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。其優點是對稱加密算法的特點是算法公開、計算量小、加密速度快、加密效率高。不足之處是,雙方都使用同樣鑰匙,安全性得不到保證。

在此扯壹下題外話,不對稱加密算法,比如著名的RSA算法,使用兩把完全不同但又是完全匹配的壹對鑰匙----公鑰和私鑰。在使用不對稱加密算法加密文件時,只有使用匹配的壹對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時采用公鑰加密,解密密文時使用私鑰才能完成,而且加密者知道收信方的公鑰,只有解密者才是唯壹知道自己私鑰的人。

AES算法基於排列和置換運算。排列是對數據重新進行安排,置換是將壹個數據單元替換為另壹個。AES使用幾種不同的方法來執行排列和置換運算。AES是壹個叠代的、對稱密鑰分組的密碼,它可以使用128、192和256位密鑰,並且用128位(16字節)分組加密和解密數據。與公***密鑰加密使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數據。通過分組密碼返回的加密數據的位數與輸入數據相同。叠代加密使用壹個循環結構,在該循環中重復置換和替換輸入數據。密碼學簡介據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第壹個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用“恩尼格瑪”密碼機,密碼學在戰爭中起著非常重要的作用。

AES加密過程是在壹個4×4的字節矩陣上運作,這個矩陣又稱為“state”,其初值就是壹個明文區塊(矩陣中壹個元素大小就是明文區塊中的壹個Byte)。加密時,各輪AES加密循環(除最後壹輪外)均包含4個步驟:

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

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

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

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

  • 上一篇:機器人控制算法如何編寫
  • 下一篇:宿州學院專業有哪些?專業介紹
  • copyright 2024編程學習大全網