衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

科普:簡述DES與AES的區別

ruikundianzi ? 來源:IP與SoC設計 ? 2023-05-11 11:40 ? 次閱讀

安全加密在IC領域也是相當重要的部分了,這次我們簡單了解下經典加密算法,DES和AES。

DES簡介

DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法。DES加密算法出自IBM的研究,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),并授權在非密級政府通信中使用,之后開始廣泛流傳,但是近些年使用越來越少,因為DES使用56位密鑰(密鑰長度越長越安全),隨著現代計算能力的提升,破解難度越來越低。對于加密算法而言,這意味著它將慢慢淡出主流。

DES安全性

(1)如果DES密鑰太短經不起窮盡攻擊。

(2)DES存在弱密鑰和半弱密鑰。

不過,在某些簡單應用中,DES加密算法還是有使用空間的。

DES算法的入口參數有三個:Key、Data、Mode。

·其中Key為8個字節共64位,是DES算法的工作密鑰;

·Data也為8個字節64位,是要被加密或被解密的數據;

·Mode為DES的工作方式,有兩種:加密或解密。

DES算法是這樣工作的:

如Mode為加密,則用Key 去把數據Data進行加密, 生成Data的密碼形式(64位)作為DES的輸出結果;

如Mode為解密,則用Key去把密碼形式的數據Data解密,還原為Data的明碼形式(64位)作為DES的輸出結果。

DES算法為密碼體制中的對稱密碼體制,又被稱為美國數據加密標準。

DES是一個分組加密算法,典型的DES以64位為分組對數據加密,加密和解密用的是同一個算法。

密鑰長64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個密鑰都有奇數個1),分組后的明文組和56位的密鑰按位替代或交換的方法形成密文組。

ec80c3b0-e5b2-11ed-ab56-dac502259ad0.png

DES加密

初始置換IP

將64 bit明文的位置進行置換,得到一個亂序的64 bit明文組,而后分成左右兩段,每段為32bit,以L0和R0表示,IP中各列元素位置號數相差為8,相當于將原明文各字節按列寫出,各列比特經過偶采樣和奇采樣置換后,再對各行進行逆序。

1. 初始置換IP作用是:將64位明文打亂重新排列。如,初始置換IP就是將原名來64位明文數據的第58位換到第1位,原來的50位換到第2位,…,依次類推。

2.初始置換結果分為兩組:左L0(32位)、右R0(32位)

eca2375c-e5b2-11ed-ab56-dac502259ad0.png

初始置換表

乘積變換

乘積變換是DES算法的核心部分,此步驟需要經歷16輪,而且每一輪變換都需要一個48bit子密鑰,共需要16個48bit密鑰。將經過IP置換后的數據分成32 bit的左右兩組,在迭代過程中彼此左右交換位置。每次迭代時只對右邊的32 bit進行一系列的加密變換,在此輪迭代即將結束時,把左邊的32 bit與右邊得到的32bit做異或運算,作為下一輪迭代時右邊的段,并將原來右邊未經變換的段直接送到左邊的寄存器中作為下一輪迭代時左邊的段。

在每一輪迭代時,右邊的段要經過選擇擴展運算E、密鑰加密運算、選擇壓縮運算S、置換運算P和左右數據段的異或運算。

eccae648-e5b2-11ed-ab56-dac502259ad0.png

乘積變換中的加密變換

(1)選擇擴展運算E

ed17fc8a-e5b2-11ed-ab56-dac502259ad0.png

選擇擴展運算E

ed2ec8b6-e5b2-11ed-ab56-dac502259ad0.jpg

選擇擴展運算效果圖

(2)獲取子密鑰進行加密運算

ed40ca3e-e5b2-11ed-ab56-dac502259ad0.png

子密鑰產生算法

1) 置換1

ed57c388-e5b2-11ed-ab56-dac502259ad0.png

置換1后的效果

2) 循環左移

ed63d2fe-e5b2-11ed-ab56-dac502259ad0.png

每個寄存器所需移動的數據位數

3) 壓縮置換

ed7bece0-e5b2-11ed-ab56-dac502259ad0.png

壓縮置換表

(3)選擇壓縮算法S

ed9724d8-e5b2-11ed-ab56-dac502259ad0.png

S盒信息

(4)置換運算P

eda4836c-e5b2-11ed-ab56-dac502259ad0.png

P盒置換表

逆初始置換

逆初始置換是DES加密過程的最后一步,它的作用打亂重排第十六次加密迭代的結果然后形成64位密文。

1. 把64位中間密文打亂重排。初始置換IP與逆初始置換是互逆的。如,在IP中把輸入的第2位置換到第8位,而在逆初始置換中,把輸入的第8位置換到第2位。

2. 形成最終的64位密文。

3DES簡介

3DES是DES加密算法的一種模式,它使用3條64位的密鑰對數據進行三次加密。數據加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱密鑰加密法。

另起一段對它進行簡單介紹的原因,是因為它特殊的價值:承上啟下。

3DES(Triple DES)是DES向AES過渡的加密算法,是DES的一個更安全的變形。它以DES為基本模塊,通過組合分組方法設計出分組加密算法。

3DES有兩種加密方式:

1. 第一、三次加密使用同一種密鑰,這種方式密鑰長度128位(112位有效)

2. 三次加密使用不同密鑰,這種方式密鑰長度192位(168位有效)

3DES的密鑰長度為24個字節,而 DES 的密鑰長度為8的倍數,比如8,16,24都可以。

AES簡介

AES,Advanced Encryption Standard,高級加密標準,在密碼學中又稱Rijndael加密法,是美國聯邦政府采用的一種區塊加密標準。它的出現主要是為了取代DES加密算法。

雖然出現了3DES的加密方法,但由于它的加密時間是DES算法的3倍多,64Bit的分組大小相對較小,所以還是不能滿足人們對安全性的要求。

1997年,美國國家標準技術研究所宣布希望征集高級加密標準,最終5個候選算法進入最后一輪:Rijndael,Serpent,Twofish,RC6和MARS。而Rijndael算法笑到了最后。

AES原本指的是一套標準FIPS 197,而AES算法一般指分組大小為128bits的Rijndeal算法。這也是AES與Rijndeal的一個區別。

edc9494a-e5b2-11ed-ab56-dac502259ad0.png

AES與R的區別

edf6a9c6-e5b2-11ed-ab56-dac502259ad0.png

下面簡單介紹下各個部分的作用與意義:

明文P

沒有經過加密的數據。

密鑰K

用來加密明文的密碼,在對稱加密算法中,加密與解密的密鑰是相同的。密鑰為接收方與發送方協商產生,但不可以直接在網絡上傳輸,否則會導致密鑰泄漏,通常是通過非對稱加密算法加密密鑰,然后再通過網絡傳輸給對方,或者直接面對面商量密鑰。密鑰是絕對不可以泄漏的,否則會被攻擊者還原密文,竊取機密數據。

AES加密函數

設AES加密函數為E,則 C = E(K, P),其中P為明文,K為密鑰,C為密文。也就是說,把明文P和密鑰K作為加密函數的參數輸入,則加密函數E會輸出密文C。

密文C

經加密函數處理后的數據

AES解密函數

設AES解密函數為D,則 P = D(K, C),其中C為密文,K為密鑰,P為明文。也就是說,把密文C和密鑰K作為解密函數的參數輸入,則解密函數會輸出明文P。

ee022aee-e5b2-11ed-ab56-dac502259ad0.png

在這里簡單介紹下對稱加密算法與非對稱加密算法的區別。

對稱加密算法

加密和解密用到的密鑰是相同的,這種加密方式加密速度非常快,適合經常發送數據的場合。缺點是密鑰的傳輸比較麻煩。

非對稱加密算法

加密和解密用的密鑰是不同的,這種加密方式是用數學上的難解問題構造的,通常加密解密的速度比較慢,適合偶爾發送數據的場合。優點是密鑰傳輸方便。常見的非對稱加密算法為RSA、ECC和EIGamal。

ee022aee-e5b2-11ed-ab56-dac502259ad0.png

AES的基本結構

AES為分組密碼,分組密碼也就是把明文分成一組一組的,每組長度相等,每次加密一組數據,直到加密完整個明文。在AES標準規范中,分組長度只能是128位,也就是說,每個分組為16個字節(每個字節8位)。密鑰的長度可以使用128位、192位或256位。密鑰的長度不同,推薦加密輪數也不同,如下表所示:

ee259d3a-e5b2-11ed-ab56-dac502259ad0.png

AES加密有AES-128、AES-192、AES-256三種,分別對應三種密鑰長度128bits(16字節)、192bits(24字節)、256bits(32字節)。當然,密鑰越長,安全性越高,加解密花費時間也越長。

默認的是 AES-128,其安全性完全夠用。

這里實現的是AES-128,也就是密鑰的長度為128位,加密輪數為10輪。

AES的加密公式為C = E(K,P),在加密函數E中,會執行一個輪函數,并且執行10次這個輪函數,這個輪函數的前9次執行的操作是一樣的,只有第10次有所不同。也就是說,一個明文分組會被加密10輪。AES的核心就是實現一輪中的所有操作。

AES的處理單位是字節,128位的輸入明文分組P和輸入密鑰K都被分成16個字節,分別記為P = P0 P1 … P15 和 K = K0 K1 … K15。如,明文分組為P = abcdefghijklmnop,其中的字符a對應P0,p對應P15。一般地,明文分組用字節為單位的正方形矩陣描述,稱為狀態矩陣。在算法的每一輪中,狀態矩陣的內容不斷發生變化,最后的結果作為密文輸出。該矩陣中字節的排列順序為從上到下、從左至右依次排列,如下圖所示:

ee335eb6-e5b2-11ed-ab56-dac502259ad0.png

分組密碼體制

所謂分組密碼體制就是指將明文切成一段一段的來加密,然后再把一段一段的密文拼起來形成最終密文的加密方式。AES 采用分組密碼體制,即 AES 加密會首先把明文切成一段一段的,而且每段數據的長度要求必須是128位16個字節,如果最后一段不夠16個字節了,就需要用 Padding 來把這段數據填滿16個字節,然后分別對每段數據進行加密,最后再把每段加密數據拼起來形成最終的密文。

初始向量IV

初始向量 IV 的作用是使加密更加安全可靠,我們使用 AES 加密時需要主動提供初始向量,而且只需要提供一個初始向量就夠了,后面每段數據的加密向量都是前面一段的密文。初始向量 IV 的長度規定為128位16個字節,初始向量的來源為隨機生成。

AES加密模式

AES只是個基本算法,實現AES有幾種加密模式。分組密碼有五種工作體制:1.電碼本模式(Electronic Codebook Book (ECB));2.密碼分組鏈接模式(Cipher Block Chaining (CBC));3.計算器模式(Counter (CTR));4.密碼反饋模式(Cipher FeedBack (CFB));5.輸出反饋模式(Output FeedBack (OFB))。

ECB模式(電子密碼本模式:Electronic codebook)

ee3ee272-e5b2-11ed-ab56-dac502259ad0.png

ECB是最簡單的塊密碼加密模式,加密前根據加密塊大小(如AES為128位)分成若干塊,之后將每塊使用相同的密鑰單獨加密,解密同理。

CBC模式(密碼分組鏈接:Cipher-block chaining)

ee600f10-e5b2-11ed-ab56-dac502259ad0.png

CBC模式對于每個待加密的密碼塊在加密前會先與前一個密碼塊的密文異或然后再用加密器加密。第一個明文塊與一個叫初始化向量的數據塊異或。

CFB模式(密文反饋:Cipher feedback)

ee711eb8-e5b2-11ed-ab56-dac502259ad0.png

與ECB和CBC模式只能夠加密塊數據不同,CFB能夠將塊密文(Block Cipher)轉換為流密文(Stream Cipher)。

OFB模式(輸出反饋:Output feedback)

ee8e7e40-e5b2-11ed-ab56-dac502259ad0.png

OFB是先用塊加密器生成密鑰流(Keystream),然后再將密鑰流與明文流異或得到密文流,解密是先用塊加密器生成密鑰流,再將密鑰流與密文流異或得到明文,由于異或操作的對稱性所以加密和解密的流程是完全一樣的。

CTR模式(計數器:Counter)

eeb402f0-e5b2-11ed-ab56-dac502259ad0.png

計數器模式不常見,在CTR模式中, 有一個自增的算子,這個算子用密鑰加密之后的輸出和明文異或的結果得到密文,相當于一次一密。這種加密方式簡單快速,安全可靠,而且可以并行加密,但是在計數器不能維持很長的情況下,密鑰只能使用一次。

eebce488-e5b2-11ed-ab56-dac502259ad0.gif

AES有五種加密模式,我們一般使用的是CBC模式,而ECB則相對不安全。ECB 模式是最基本的加密模式,僅僅使用明文和密鑰來加密數據,相同的明文塊會被加密成相同的密文塊,這樣明文和密文的結構將是完全一樣的,就會更容易被破解,相對來說不是那么安全,因此很少使用。

而CBC模式則比 ECB模式多了一個初始向量 IV,加密的時候,第一個明文塊會首先和初始向量 IV 做異或操作,然后再經過密鑰加密,然后第一個密文塊又會作為第二個明文塊的加密向量來異或,依次類推下去,這樣相同的明文塊加密出的密文塊就是不同的,明文的結構和密文的結構也將是不同的,因此更加安全,因而我們常用的就是CBC加密模式。

AES加密

eec7880c-e5b2-11ed-ab56-dac502259ad0.jpg

開始加密,進入4個輪函數:

1、AddRoundKey:輪密鑰加運算

2、ByteSub:字節變換 (S盒變換)

3、ShiftRows:行變換

4、MixColumns:列變換

輪密鑰加 / AddRoundKey

eef47e70-e5b2-11ed-ab56-dac502259ad0.jpg

簡單的把當前狀態 (state) 與擴展密鑰進行按位異或

字節變換 / ByteSub

ef0e79f6-e5b2-11ed-ab56-dac502259ad0.jpg

這一步就是將state中每一個字節替換為S_box中的對應字節。S_box是一個有256個元素的一維數組,直接查找當前字節所對應的新的字節并替換即可。

行變換 / ShiftRow

ef25787c-e5b2-11ed-ab56-dac502259ad0.jpg

這個就比較好理解了,就是把每行左環移,第一行不變,第二行環移1位,第三行環移2位,第三行環移3位。

列混合 / MixColumn

ef4883ee-e5b2-11ed-ab56-dac502259ad0.jpg

這是整個AES加密流程中最復雜的一步,同時要應用到之前在S盒變換里提到過的GF(256)域,如果真的想要理解這一步的話建議先去仔細了解一下GF(256)再來繼續閱讀,此處不多加闡述。

密鑰擴展 / KeyExpansion

萬事俱備,只欠東風。4個輪函數已經全部齊了,現在只差一步——密鑰擴展。

ef537920-e5b2-11ed-ab56-dac502259ad0.jpg

簡述DES與AES的區別

AES中的S盒運用了GF(28)的數學基礎,DES中的S盒主要是為了確保非線性。與DES相比,AES用到了非常深的數學基礎。

與AES算法相比,DES在參數特性方面主要區別體現在以下幾個方面:

1、DES的數據塊大小為8個字節,而AES的數據塊大小為16個字節。

2、DES的密鑰長度是64位(其中8位用于校驗),而AES的密鑰長度是128位(AES算法比DES算法更安全)。

3、這兩種算法在加/解方面的具體原理是不一樣的,但DES加密算法的塊大小及密鑰長度都不能滿足現在的安全需求了,就像最開始提到的那樣,所以現在比較少使用這種加密算法,而是使用像AES或者3DES之類更高級的加密算法。

關于AES和DES的知識,在這里只做出一個簡單的概述,小編對該領域的了解有限,參考網上眾多博文,集合多家長處,僅供讀者參考。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IC
    IC
    +關注

    關注

    36

    文章

    5979

    瀏覽量

    176216
  • 密鑰
    +關注

    關注

    1

    文章

    141

    瀏覽量

    19851
  • AES
    AES
    +關注

    關注

    0

    文章

    104

    瀏覽量

    33271
  • DES
    DES
    +關注

    關注

    0

    文章

    64

    瀏覽量

    48284
  • 加密算法
    +關注

    關注

    0

    文章

    216

    瀏覽量

    25580

原文標題:科普:簡述DES與AES的區別

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何優化AES算法中S-box和列混合單元?

    AES)。由于其較高的保密級別,AES算法被用來替代DES和3-DES,那么我們該如何優化才能讓其適應更為嚴苛的數據加密需要呢?
    發表于 08-06 06:19

    加密算法(DES,AES,RSA,MD5,SHA1,Base64)

    加密算法(DES,AES,RSA,MD5,SHA1,Base64)比較和項目應用加密技術通常分為兩大類:"對稱式"和"非對稱式"。對稱性加密算法:對稱式加密
    發表于 07-19 08:44

    3DES算法密鑰長度說明

    3DES算法之前,我們先簡述DES算法。3DESDES算法均屬于分組加密算法,即加密前將明文按照8字節長度進行順序分組(若最后一組數據長度
    發表于 07-22 09:37

    TN404_ELF2 AES加密使用指南

    加密標準。這個標準用來替代原先的 DES,已經為全世界所廣泛使用。根據使用的密碼長度,AES 最常見的有 3 種方案,用以適應不同的場景要求,分別是 AES-128、AES-192 和
    發表于 10-28 08:06

    des算法原理

    des算法原理 DES算法全稱為Data Encryption Standard,即數據加密算法,它是IBM公司于1975年研究成功并公開發表的。DES算法的入口參數有三個:Key、Data、Mode。其中Key
    發表于 01-16 10:07 ?2637次閱讀

    AES算法中S-box和列混合單元的優化及FPGA技術實現

    AES算法中S-box和列混合單元的優化及FPGA技術實現 由于其較高的保密級別,AES算法被用來替代DES和3-DES,以適應更為嚴苛的數
    發表于 04-23 09:34 ?3103次閱讀
    <b class='flag-5'>AES</b>算法中S-box和列混合單元的優化及FPGA技術實現

    DESAES、TEA加密算法的比較

    DES 算法具有對稱性, 既可以用于加密又可以用于解密。對稱性帶來的一個很大的好處在于硬件實現, DES 的加密和解密可以用完全相同的硬件來實現。DES 算法的明文分組是64 位, 輸出密文
    發表于 08-26 10:48 ?2.1w次閱讀

    一文詳解AES最常見的3種方案_AES-128、AES-192和AES-256

    AES是一種區塊加密標準算法,它的提出是為了升級替換原有的DES加密算法。因此它的安全強度高于DES算法。但不應片面理解,系統和數據的安全不僅與應用的加密算法有關,更與加密應用方案有關。和DE
    的頭像 發表于 06-29 12:06 ?16.1w次閱讀

    AES加密算法說明

    1 引 言 AES加密算法的一種優化的FPGA實現方法 隨著密碼分析水平,芯片處理能力和計算技術的不斷進步,des的安全強度已經難以適應新的安全需要,其實現速度、代碼大小和跨平臺性均難以繼續滿足
    發表于 11-30 01:31 ?2212次閱讀

    des算法與rsa算法有什么區別_比較

    DES算法為密碼體制中的對稱密碼體制,又被稱為美國數據加密標準,是1972年美國IBM公司研制的對稱密碼體制加密算法。 DES算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES算法進行攻擊外,還沒有發現更有效的辦法。
    發表于 12-09 09:27 ?2w次閱讀
    <b class='flag-5'>des</b>算法與rsa算法有什么<b class='flag-5'>區別</b>_比較

    用matlab實現AES加密算法

    DES,已經被多方分析且廣為全世界所使用。本壓縮文件中對于AES的各個步驟分別打包為FUNCTION,便于查找。實現語言為matlab。
    發表于 05-25 15:18 ?11次下載
    用matlab實現<b class='flag-5'>AES</b>加密算法

    簡述Labview使用隊列與棧的區別

    簡述Labview使用隊列與棧的區別
    發表于 01-19 09:50 ?9次下載

    Free自由協議質押挖礦系統技術概述 AESDES算法的主要區別

    DES是對稱性加密里常見的一種,是一種使用密鑰加密的塊算法。那么AESDES算法的區別在哪里,這兩者有哪些優缺點呢? 什么是AES
    的頭像 發表于 06-29 14:04 ?9353次閱讀

    簡單了解下經典加密算法DESAES

    DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法。DES加密算法出自IBM的研究,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS)
    的頭像 發表于 03-07 11:39 ?7085次閱讀

    AES加密協議是什么?AES加密協議的應用

    AES(Advanced Encryption Standard,高級加密標準)是一種廣泛使用的對稱密鑰加密協議,它被設計用于保護電子數據的安全。以下是對AES加密協議的詳細概述: 歷史與標準化
    的頭像 發表于 04-15 15:34 ?969次閱讀
    有钱人百家乐的玩法技巧和规则| 澳门百家乐官网赌场娱乐网规则 | 百家乐官网胜率在哪| 老虎机 | 六合彩官方网| 面对面棋牌游戏| bet365进不去| 盈得利| 宝山区| 百家乐官网高档筹码| 足球百家乐官网投注| 百家乐官网那里玩| 凤凰百家乐官网的玩法技巧和规则 | 国际娱乐中心| 巨鹿县| 澳门百家乐官网娱乐开户| 百家乐官网平台在线| 龍城百家乐官网的玩法技巧和规则 | 巴特百家乐官网的玩法技巧和规则| 中国百家乐官网技巧软件| 百家乐官网送钱平台| E乐博百家乐娱乐城| 真人百家乐最高赌注| 大发888.comwf| 汝南县| 狮威百家乐官网娱乐场| 百家乐有哪些注| 状元百家乐的玩法技巧和规则 | 千亿娱百家乐官网的玩法技巧和规则 | 可以玩百家乐的博彩网站| 娱乐网百家乐的玩法技巧和规则 | 36棋牌的深海捕鱼| 安平县| 百家乐官网赌博筹码大不大| 百家乐佛泰阁| 大发888娱乐场下载制度| 吴旗县| 皇冠百家乐官网的玩法技巧和规则| 真人百家乐开户优惠| 娱乐城送| 云赢百家乐官网分析|