日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

AES加密算法的詳細(xì)介紹與實(shí)現(xiàn)

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:互聯(lián)網(wǎng) ? 作者:丁德輝 ? 2017-10-26 14:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我們是有追求的程序員,不能知其然不知其所以然。這一次,我來給大家講一講AES算法底層原理。

上一期我們已經(jīng)對(duì)AES的總體加密流程進(jìn)行了介紹,在這里我們重新梳理一下:

1.把明文按照128bit拆分成若干個(gè)明文塊。

2.按照選擇的填充方式來填充最后一個(gè)明文塊。

3.每一個(gè)明文塊利用AES加密器和密鑰,加密成密文塊。

4.拼接所有的密文塊,成為最終的密文結(jié)果。

具體分成多少輪呢?

初始輪(Initial Round) 1次

普通輪Rounds) N次

最終輪(FinalRound)1次

上一期我們提到,AES的Key支持三種長度:AES128,AES192,AES256。Key的長度決定了AES加密的輪數(shù)。

除去初始輪,各種Key長度對(duì)應(yīng)的輪數(shù)如下:

AES128:10輪

AES192:12輪

AES256:14輪

不同階段的Round有不同的處理步驟。

初始輪只有一個(gè)步驟:

加輪密鑰(AddRoundKey)

普通輪有四個(gè)步驟:

字節(jié)代替(SubBytes)

行移位(ShiftRows

列混淆(MixColumns

加輪密鑰(AddRoundKey)

最終輪有三個(gè)步驟:

字節(jié)代替(SubBytes)

行移位(ShiftRows

加輪密鑰(AddRoundKey)

1.字節(jié)替代(SubBytes)

首先需要說明的是,16字節(jié)的明文塊在每一個(gè)處理步驟中都被排列成4X4的二維數(shù)組。

所謂字節(jié)替代,就是把明文塊的每一個(gè)字節(jié)都替代成另外一個(gè)字節(jié)。替代的依據(jù)是什么呢?依據(jù)一個(gè)被稱為S盒(Subtitution Box)的16X16大小的二維常量數(shù)組。

假設(shè)明文塊當(dāng)中a[2,2] = 5B(一個(gè)字節(jié)是兩位16進(jìn)制),那么輸出值b[2,2] = S[5][11]。

2.行移位(ShiftRows)

這一步很簡單,就像圖中所描述的:

第一行不變

第二行循環(huán)左移1個(gè)字節(jié)

第三行循環(huán)左移2個(gè)字節(jié)

第四行循環(huán)左移3個(gè)字節(jié)

3.列混淆(MixColumns)

這一步,輸入數(shù)組的每一列要和一個(gè)名為修補(bǔ)矩陣(fixed matrix)的二維常量數(shù)組做矩陣相乘,得到對(duì)應(yīng)的輸出列。

4.加輪密鑰(AddRoundKey)

這一步是唯一利用到密鑰的一步,128bit的密鑰也同樣被排列成4X4的矩陣。

讓輸入數(shù)組的每一個(gè)字節(jié)a[i,j]與密鑰對(duì)應(yīng)位置的字節(jié)k[i,j]異或一次,就生成了輸出值b[i,j]。

需要補(bǔ)充一點(diǎn),加密的每一輪所用到的密鑰并不是相同的。這里涉及到一個(gè)概念:擴(kuò)展密鑰(KeyExpansions)。

擴(kuò)展密鑰(KeyExpansions

AES源代碼中用長度 4 * 4 *(10+1) 字節(jié)的數(shù)組W來存儲(chǔ)所有輪的密鑰。W{0-15}的值等同于原始密鑰的值,用于為初始輪做處理。

后續(xù)每一個(gè)元素W[i]都是由W[i-4]和W[i-1]計(jì)算而來,直到數(shù)組W的所有元素都賦值完成。

W數(shù)組當(dāng)中,W{0-15}用于初始輪的處理,W{16-31}用于第1輪的處理,W{32-47}用于第2輪的處理 ......一直到W{160-175}用于最終輪(第10輪)的處理。

1.ECB模式

ECB模式(ElectronicCodebookBook)是最簡單的工作模式,在該模式下,每一個(gè)明文塊的加密都是完全獨(dú)立,互不干涉的。

這樣的好處是什么呢?

1.簡單

2.有利于并行計(jì)算

缺點(diǎn)同樣也很明顯:

相同的明文塊經(jīng)過加密會(huì)變成相同的密文塊,因此安全性較差。

2.CBC模式

CBC模式(Cipher Block Chaining)引入了一個(gè)新的概念:初始向量IV(Initialization Vector)。

IV是做什么用的呢?它的作用和MD5的“加鹽”有些類似,目的是防止同樣的明文塊始終加密成同樣的密文塊。

從圖中可以看出,CBC模式在每一個(gè)明文塊加密前會(huì)讓明文塊和一個(gè)值先做異或操作。IV作為初始化變量,參與第一個(gè)明文塊的異或,后續(xù)的每一個(gè)明文塊和它前一個(gè)明文塊所加密出的密文塊相異或。

這樣以來,相同的明文塊加密出的密文塊顯然是不一樣的。

CBC模式的好處是什么呢?

安全性更高

壞處也很明顯:

1.無法并行計(jì)算,性能上不如ECB

2.引入初始化向量IV,增加復(fù)雜度。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • AES加密算法
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    6098

原文標(biāo)題:漫畫:AES算法的底層原理

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    關(guān)于幾種常用加密算法比較

    AES加密算法是密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn),該加密算法采用對(duì)稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,算法應(yīng)
    的頭像 發(fā)表于 03-19 09:21 ?6638次閱讀
    關(guān)于幾種常用<b class='flag-5'>加密算法</b>比較

    加密算法的應(yīng)用

    加密是一種保護(hù)信息安全的重要手段,近年來隨著信息技術(shù)的發(fā)展,加密技術(shù)的應(yīng)用越來越廣泛。本文將介紹加密算法的發(fā)展、含義、分類及應(yīng)用場景。 1.
    發(fā)表于 10-24 08:03

    汽車遙控加密算法

    本人在公司主要做國內(nèi)整車廠的遙控器,主要是用keeloq,Hitag2 ,Hitag3 ,AES加密算法,想請(qǐng)教下論壇里的大牛,像奧迪,奔馳,寶馬等豪車的遙控器用什么加密算法?
    發(fā)表于 02-17 21:04

    最強(qiáng)加密算法?AES加密算法的Matlab和Verilog實(shí)現(xiàn) 精選資料推薦

    目錄背景AES加密的幾種模式基本運(yùn)算AES加密原理Matlab實(shí)現(xiàn)Verilog實(shí)現(xiàn)Testbe
    發(fā)表于 07-28 07:34

    XXTEA加密算法的KEIL C實(shí)現(xiàn)

    本內(nèi)容提供了XXTEA加密算法的KEIL C實(shí)現(xiàn),詳細(xì)列出了程序共大家學(xué)習(xí)
    發(fā)表于 08-25 17:57 ?3595次閱讀

    基于AES和ECC的混合加密系統(tǒng)的設(shè)計(jì)

    基于AES加密算法具有速度快、強(qiáng)度高、便于實(shí)現(xiàn)等優(yōu)點(diǎn)和ECC加密算法具有密鑰分配與管理簡單、安全強(qiáng)度高等優(yōu)點(diǎn),采用AES
    發(fā)表于 03-20 10:24 ?42次下載
    基于<b class='flag-5'>AES</b>和ECC的混合<b class='flag-5'>加密</b>系統(tǒng)的設(shè)計(jì)

    基于AES算法加密模塊設(shè)計(jì)

    文中介紹了高級(jí)加密算法AES)的基本原理,并給出了基于AES算法硬件加密模塊設(shè)計(jì)方案。通過Mo
    發(fā)表于 02-21 15:52 ?0次下載
    基于<b class='flag-5'>AES</b><b class='flag-5'>算法</b>的<b class='flag-5'>加密</b>模塊設(shè)計(jì)

    基于AES加密算法的S盒優(yōu)化設(shè)計(jì)_胡春燕

    基于AES加密算法的S盒優(yōu)化設(shè)計(jì)_胡春燕
    發(fā)表于 03-19 11:31 ?2次下載

    AES加密算法說明

    1 引 言 AES加密算法的一種優(yōu)化的FPGA實(shí)現(xiàn)方法 隨著密碼分析水平,芯片處理能力和計(jì)算技術(shù)的不斷進(jìn)步,des的安全強(qiáng)度已經(jīng)難以適應(yīng)新的安全需要,其實(shí)現(xiàn)速度、代碼大小和跨平臺(tái)性均難
    發(fā)表于 11-30 01:31 ?2864次閱讀

    用matlab實(shí)現(xiàn)AES加密算法

    AES加密算法是密碼學(xué)中的高級(jí)加密標(biāo)準(zhǔn)(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美
    發(fā)表于 05-25 15:18 ?11次下載
    用matlab<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>AES</b><b class='flag-5'>加密算法</b>

    最新的十六進(jìn)制AES加密算法驗(yàn)證工具應(yīng)用程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是最新的十六進(jìn)制AES加密算法驗(yàn)證工具應(yīng)用程序免費(fèi)下載。
    發(fā)表于 04-24 08:00 ?22次下載
    最新的十六進(jìn)制<b class='flag-5'>AES</b><b class='flag-5'>加密算法</b>驗(yàn)證工具應(yīng)用程序免費(fèi)下載

    如何實(shí)現(xiàn)AES加密算法IP核的設(shè)計(jì)與驗(yàn)證

    提高吞吐率,有的著力于低成本和低功耗的實(shí)現(xiàn)。本文針對(duì)手持設(shè)備和移動(dòng)終端場合下的應(yīng)用需求設(shè)計(jì)出一款完全遵循標(biāo)準(zhǔn)的AES加密算法IP核,在面積與性能之間取得良好折中。為了減小硬件的面積,本文提出一種等價(jià)
    發(fā)表于 04-20 17:59 ?11次下載
    如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>AES</b><b class='flag-5'>加密算法</b>IP核的設(shè)計(jì)與驗(yàn)證

    舉例幾種常見的加密算法

    今天主要總結(jié)下常用的對(duì)稱性加密算法DES和AES,非對(duì)稱性加密算法RSA。 01 ?DES加密算法 1.DES含義 DES全稱為Data Encrypt
    的頭像 發(fā)表于 04-28 13:52 ?2.2w次閱讀
    舉例幾種常見的<b class='flag-5'>加密算法</b>

    Go常用的加密算法詳細(xì)解讀

    【導(dǎo)讀】本文介紹了常用的加密算法,并對(duì)這些加密算法結(jié)合實(shí)際 golang 代碼段進(jìn)行了詳細(xì)解讀。 前言 加密解密在實(shí)際開發(fā)中應(yīng)用比較廣泛,常
    的頭像 發(fā)表于 09-01 14:47 ?4025次閱讀

    常見的加密算法有哪些?它們各自的優(yōu)勢是什么?

    常見的加密算法及其優(yōu)勢如下: AES(Advanced Encryption Standard): AES是一種對(duì)稱加密算法,采用分組密碼體制,支持128位、192位和256位密鑰長度
    的頭像 發(fā)表于 12-17 15:57 ?2173次閱讀
    安仁县| 府谷县| 左权县| 洪雅县| 睢宁县| 杭锦后旗| 安徽省| 修水县| 公主岭市| 齐齐哈尔市| 竹山县| 建昌县| 财经| 营山县| 东港市| 富宁县| 临朐县| 皮山县| 美姑县| 莲花县| 全州县| 刚察县| 沈阳市| 招远市| 昭平县| 华阴市| 德化县| 遂川县| 余江县| 肥西县| 绍兴县| 宁都县| 砀山县| 吉林省| 盐边县| 泰安市| 江华| 太保市| 西昌市| 扎赉特旗| 酒泉市|