<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > STM8L探索套件學(xué)習(xí)筆記-AES硬件加密(十三)

          STM8L探索套件學(xué)習(xí)筆記-AES硬件加密(十三)

          作者: 時間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          密碼學(xué)中的高級加密標(biāo)準(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯(lián)邦政府采用的一種區(qū)塊加密標(biāo)準。

          對稱密碼體制的發(fā)展趨勢將以分組密碼為重點。分組密碼算法通常由密鑰擴展算法和加密(解密)算法兩部分組成。密鑰擴展算法將b字節(jié)用戶主密鑰擴展成r個子密鑰。加密算法由一個密碼學(xué)上的弱函數(shù)f與r個子密鑰迭代r次組成?;靵y和密鑰擴散是分組密碼算法設(shè)計的基本原則。抵御已知明文的差分和線性攻擊,可變長密鑰和分組是該體制的設(shè)計要點?! ?br />
          AES是美國國家標(biāo)準技術(shù)研究所NIST旨在取代DES的21世紀的加密標(biāo)準?! ?br />
          AES的基本要求是,采用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法應(yīng)易于各種硬件和軟件實現(xiàn)。1998年NIST開始AES第一輪分析、測試和征集,共產(chǎn)生了15個候選算法。1999年3月完成了第二輪AES2的分析、測試。2000年10月2日美國政府正式宣布選中比利時密碼學(xué)家Joan Daemen和Vincent Rijmen提出的一種密碼算法RIJNDAEL作為AES.  

          在應(yīng)用方面,盡管DES在安全上是脆弱的,但由于快速DES芯片的大量生產(chǎn),使得DES仍能暫時繼續(xù)使用,為提高安全強度,通常使用獨立密鑰的三級DES。但是DES遲早要被AES代替。流密碼體制較之分組密碼在理論上成熟且安全,但未被列入下一代加密標(biāo)準。  

          AES加密數(shù)據(jù)塊和密鑰長度可以是128比特、192比特、256比特中的任意一個。AES加密有很多輪的重復(fù)和變換。大致步驟如下:1、密鑰擴展(KeyExpansion),2、初始輪(Initial Round),3、重復(fù)輪(Rounds),每一輪又包括:SubBytes、ShiftRows、MixColumns、AddRoundKey,4、最終輪(Final Round),最終輪沒有MixColumns。

          STM8L采用的是128比特的AES加密數(shù)據(jù)塊和密鑰長度。
          今天我們測試下面加密與解密,使用板上兩個LED顯示是否成功。
          uint8_t PlainText[16] = "STM32L and STM8L";//需要加密的內(nèi)容

          /* encryption key used to encrypt PlainText */
          uint8_t EncryptionKey[16] = "ultra-low power.";//密鑰


          評論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();