常見加密算法DES、AES和RSA的原理和特點

2021-01-07 酷扯兒

本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫

主要總結下常用的對稱性加密算法DES和AES,非對稱性加密算法RSA。

1

DES加密算法

1.DES含義

DES全稱為Data Encryption Standard,即數據加密標準,是一種使用密鑰加密的塊算法,1977年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),並授權在非密級政府通信中使用,隨後該算法在國際上廣泛流傳開來。

DES是對稱性加密裡常見的一種,是一種使用秘鑰加密的塊算法。秘鑰長度是64位(bit), 超過位數秘鑰被忽略。所謂對稱性加密,加密和解密秘鑰相同。對稱性加密一般會按照固定長度,把待加密字符串分成塊。不足一整塊或者剛好最後有特殊填充字符。

常見的填充模式有:'pkcs5'、'pkcs7'、'iso10126'、'ansix923'、'zero' 類型,包括DES-ECB、DES-CBC、DES-CTR、DES-OFB、DES-CFB。

2. DES算法原理

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

Key為8個字節共64位,是DES算法的工作秘鑰;

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

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

3.DES加密原理

DES 使用一個 56 位的密鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。這是一個迭代的分組密碼,使用稱為 Feistel 的技術,其中將加密的文本塊分成兩半。

使用子密鑰對其中一半應用循環功能,然後將輸出與另一半進行「異或」運算;接著交換這兩半,這一過程會繼續下去,但最後一個循環不交換。DES 使用 16 個循環,使用異或,置換,代換,移位操作四種基本運算。

4.DES算法特點

分組比較短、秘鑰太短、密碼生命周期短、運算速度較慢。

2

AES加密算法

1.AES含義

AES,高級加密標準,在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標準。這個標準用來替代原先的DES,已經被多方分析且廣為全世界所使用。

嚴格地說,AES和Rijndael加密法並不完全一樣(雖然在實際應用中二者可以互換),因為Rijndael加密法可以支持更大範圍的區塊和密鑰長度:AES的區塊長度固定為128 比特,密鑰長度則可以是128,192或256比特;

而Rijndael使用的密鑰和區塊長度可以是32位的整數倍,以128位為下限,256比特為上限。包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。

2.AES加密原理

AES加密過程涉及到4種操作,分別是字節替代、行移位、列混淆和輪密鑰加。解密過程分別為對應的逆操作。由於每一步操作都是可逆的,按照相反的順序進行解密即可恢復明文。加解密中每輪的密鑰分別由初始密鑰擴展得到。算法中16個字節的明文、密文和輪密鑰都以一個4x4的矩陣表示。

3.AES算法特點

運算速度快,安全性高,資源消耗少

3

RSA加密算法

1.RSA含義

RSA加密算法是一種非對稱加密算法,這種算法非常可靠,密鑰越長,它就越難破解。根據已經披露的文獻,目前被破解的最長RSA密鑰是768個二進位位。

也就是說,長度超過768位的密鑰,還無法破解(至少沒人公開宣布)。因此可以認為,1024位的RSA密鑰基本安全,2048位的密鑰極其安全。

2.RSA算法原理

在了解RSA算法原理之前,先了解一下非對稱加密的過程:

非對稱加密是通過兩個密鑰(公鑰-私鑰)來實現對數據的加密和解密的。公鑰用於加密,私鑰用於解密。對於非對稱的加密和解密為什麼可以使用不同的密鑰來進行,這些都是數學上的問題了。不同的非對稱加密算法也會應用到不同的數學知識。接下來就來看看RSA算法是怎麼來對數據進行加密的。

下面是RSA算法的加密算法流程圖:

3.RSA算法特點

不需要進行密鑰傳遞,提高了安全性可以進行數字籤名認證加密解密效率不高,一般只適用於處理小量數據(如:密鑰)容易遭受小指數攻擊

常見的幾種加密算法先總結到這,如果大家對加密的具體過程感興趣的話,可以自己上網了解更多算法知識~

免責聲明:本文部分素材來源網絡,版權歸原作者所有。如涉及作品版權問題,請與我聯繫刪除。

-- END--

相關焦點

  • 最安全的加密算法RSA
    前幾天朋友讓我贈送她魔遊紀系列電影,於是贈送了,每部還剩四個名額不能浪費了,這裡送給大家,回復公眾號"魔遊紀N"得到對應的贈送連結,N代表第幾部,目前只有3、4、5。零、背景之前介紹了AES加密算法,這個算法的缺點是加密鑰匙和解密鑰匙一樣,缺少安全性。
  • DES、RC4、AES等加密算法優勢及應用
    程式設計師捍衛自己珍貴的代碼,全靠花式的加密算法。代碼加密有多重要?程式設計師半年做出的產品,盜版者可能半天就能完全破解。  加密算法的本質,首先是為了對數據進行保密並防止篡改,其次更具有了身份驗證的功能。像是你跟女友約定好的話術,這句話一說出來,她就知道是什麼意思,並且知道說話的人是你,但任何其他人根本不知道你們在說什麼。  根據密鑰類型的不同,加密算法分為對稱和非對稱兩種。
  • 加密算法科普:des、aes加密、對稱、非對稱加密、Hash算法都是啥
    加密算法導讀加密一般分為對稱加密(Symmetric Key Encryption)和非對稱加密(Asymmetric Key Encryption)常見的對稱加密算法:DES、3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6 和 AES常見的非對稱加密算法:RSA、ECC (行動裝置用)、Diffie-Hellman、El Gamal、
  • 數據加密中的DES加密算法詳解
    [摘要] 本文詳細介紹了DES數據加密算法的原理,並給出了一個例子演示了如何使用c#中的加密包進行DES算法加密,最後對DES進行了評價。信息加密技術是一門涉及數學、密碼學和計算機的交叉學科。現代密碼學的發展,使信息加密技術已經不再依賴於對加密算法本身的保密,而是通過在統計學意義上提高破解的成本來提供高加密算法的安全性。密碼學是一門古老而又年輕的科學,它用於保護軍事和外交通信,可追溯到幾千年前。1976年Diffie和Hellman的「密碼學的新方向」一文引發的密碼學的一場革命,開創了公鑰密碼學的新紀元。
  • 用OpenSSL加密文件
    / 怎樣用對稱密碼加密文件?Openssl的子命令,用於用對稱密碼加密或解密一個文件.-des3the algorithm is des3.使用des3算法.-eencrypt a file.It's counterpart is '-d',decrypt.加密文件.與之相對的是-d,表示解密.
  • des算法原理
    DES算法全稱為Data Encryption Standard,即數據加密算法,它是IBM公司於1975年研究成功並公開發表的。DES算法的入口參數有三個:Key、Data、Mode。其中Key為8個字節共64位,是DES算法的工作密鑰;Data也為8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。
  • 漫畫:AES 算法的底層原理
    ,沒看過的小夥伴可以點擊下面的連結:《漫畫:什麼是 AES 算法?》這一次,我來給大家講一講AES算法的底層原理。3.每一個明文塊利用AES加密器和密鑰,加密成密文塊。4.拼接所有的密文塊,成為最終的密文結果。
  • RJMU401的DES和SM4分組密碼算法原理
    今天就介紹一下RJMU401中的分組密碼算法——DES和SM4。2分組密碼算法介紹分組密碼就是將明文數據按固定長度進行分組,然後在同一密鑰控制下逐組進行加密,從而將各個明文分組變換成一個等長的密文分組的密碼。其中二進位明文分組的長度稱為該分組密碼的分組規模。
  • 到底什麼是DES加密算法?這樣理解試試!
    在說DES加密算法之前,我們首先了解幾個基本概念:明文:明文是指沒有經過加密的數據。一般而言,明文都是等待傳輸的數據。由於沒有經過加密,明文很容易被識別與破解,因此在傳輸明文之前必須進行加密處理。密文:密文只是明文經過某種加密算法而得到的數據,通常密文的形式複雜難以識別及理解。
  • 利用彙編語言實現DES加密算法
    DES算法是一種數據加密算法。自從1977年公布以來,一直是國際上的商用保密通信和計算機通信的最常用的加密標準。DES算法的實現一般用高級語言。
  • 圖解|什麼是RSA算法
    數學之美和密碼學前陣子閒來無事看了會兒《數學之美》,其中第17章講述了由電視劇《暗算》展開的密碼學背後的一些數學原理。書中從凱撒密碼到二戰盟軍和日軍,講到密碼學中均勻分布&統計獨立的基礎理論,看得我津津有味,但是其中一些細節沒有整明白,於是決定搞篇文章。
  • 什麼是加密算法?
    Java的加密知識也是Java常見的領域之一,加密技術的底層確實很複雜,運用了大量的數學知識,要弄明白非常複雜。但是Java語言中運用密碼加密工具卻是非常簡單。我們在Java裡面運用這些加密技術,只需要把原理和使用場景等搞明白就可以了,具體底層實現不用研究。
  • 目前已知的最強加密算法RSA
    RSARSA是一種非對稱加密算法,1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的,因此以三人姓氏的首字母命名了該非對稱加密算法,RSA算法。
  • 一種基於DES加密算法的加密方法
    摘要:本發明公開了一種基於DES加密算法的加密方法,其加密方法採用服務端與客戶端共享密鑰集文件,實現通信過程中使用動態密鑰的對稱加密方法,建立密鑰集文件,密鑰集文件由三個互相垂直方向的X、Y、Z組成的長方體形的三維模型;伺服器端在X、Y有效值範圍內隨機一個坐標,確定一組密鑰,進行DES加密;將選取的X、Y分別值轉換為4位16進位數
  • 加密類型:5種加密算法以及如何選擇正確的算法
    加密是一種將數據轉換為無法解密的格式,以便只有授權方才能訪問信息的方法。加密密鑰與加密算法一起使加密過程成為可能。並且,基於這些密鑰的應用方式,主要主要使用兩種類型的加密方法:「對稱加密」和「非對稱加密」。這兩種方法都使用不同的數學算法(即我們剛才提到的那些加密算法)對數據進行加密。常見的加密算法列表包括RSA,ECC,3DES,AES等。
  • RSA加密與破解
    這樣一種加密算法叫做非對稱加密(asymmetric encryption)。非對稱加密的經典算法是RSA算法。它來自於數論與計算機計數的奇妙結合。 為了了解RSA加密,請聽一個臥底的自白: RSA加密我是潛伏在龍鳳大酒樓的臥底。
  • 利用帕斯卡三角和謝爾賓斯基三角的加密算法
    本文中,我們開發出了一款新的加密算法,它利用了帕斯卡三角和謝爾賓斯基三角相關的概念。要論述的做法是利用帕斯卡三角做替換和利用謝爾賓斯基三角做置換。這個方法在現實生活中簡單、易行。而且攻擊者很難從密文中破譯。但此方法在暴力破解和詞頻攻擊中依然很脆弱。
  • 小叮噹Python進階(二):爬蟲與加密算法Part2之DES
    DESDES算法為密碼體制中的對稱密碼體制,又被稱為數據加密標準。DES是一個分組加密算法,典型的DES以64位為分組對數據加密,加密和解密用的是同一個算法。在DES算法中,Key為7個字節共56位,是DES算法的工作密鑰;Data為8個字節64位,是要被加密或被解密的數據;Mode為DES的工作方式。有兩種工作方式,加密或解密。密鑰長64位,密鑰事實上是56位參與DES運算(第8、16、24、32、40、48、56、64位是校驗位,使得每個密鑰都有奇數個1),分組後的明文組和56位的密鑰按位替代或交換的方法形成密文組。
  • 密碼學 RSA加密與破解
    如果一對一的話,那麼兩人需要交換一個密鑰。一對多的話,比如總部和多個特工的通信,依然可以使用同一套密鑰。這樣一種加密算法叫做非對稱加密(asymmetric encryption)。非對稱加密的經典算法是RSA算法。它來自於數論與計算機計數的奇妙結合。 為了了解RSA加密,請聽一個臥底的自白: RSA加密我是潛伏在龍鳳大酒樓的臥底。
  • 區塊鏈丨非對稱加密算法,區塊鏈的加密秘訣!
    前面講到了對稱加密算法,今天講講非對稱加密算法。可以說非對稱算法是對稱算法的升級,因為非對稱算法是基於對稱算法而被研究出來的。非對稱算法與對稱算法的不同之處在於非對稱算法省去了對稱加密算法時要分發密鑰的麻煩,所以說是對稱加密算法的升級。在非對稱加密算法中同樣具有兩種密鑰:私鑰(private key)和公鑰(public key)。