簡述PBE加密算法

在很多加密算法中,都會(huì)有“密鑰”這一說法,那么今天我們來了解一個(gè)使用口令替代了密鑰的加密算法——PBE加密算法。

PBE加密算法

PBE加密算法全稱為Password Based Encryption,是一種基于口令的加密算法,其特點(diǎn)在于口令是由用戶自己掌握的,采用隨機(jī)數(shù)雜湊多重加密等方法保證數(shù)據(jù)的安全性。

PBE加密算法的加密過程

PBE算法在加密過程中并不是直接使用口令來加密,而是加密的密鑰由口令生成,這個(gè)功能由PBE算法中的KDF函數(shù)完成。

KDF函數(shù)的實(shí)現(xiàn)過程為:將用戶輸入的口令首先通過“鹽”(salt)的擾亂產(chǎn)生準(zhǔn)密鑰,再將準(zhǔn)密鑰經(jīng)過散列函數(shù)多次迭代后生成最終加密密鑰,密鑰生成后,PBE算法再選用對稱加密算法對數(shù)據(jù)進(jìn)行加密,可以選擇DES、3DES、RC5等對稱加密算法。

PBE加密算法

口令和密鑰的區(qū)別

口令:一般與用戶名對應(yīng),是某個(gè)用戶自己編織的便于 記憶的一串單詞、數(shù)字、漢字字符,口令的特點(diǎn)容易被記憶, 也容易泄露和被盜取,容易被社會(huì)工程學(xué)、暴力破解、撞庫等方式獲取。

密鑰:是經(jīng)過加密算法計(jì)算出來的,密鑰一般不容易記憶,不容易被破解,而且很多時(shí)候密鑰是作為算法的參數(shù)出現(xiàn)的,算法對于密鑰長度也是有要求的,因?yàn)榧用芩惴ǖ淖饔镁褪抢妹荑€來擾亂明文順序。

PBE加密算法

注意:口令不能代替密鑰,但是可以用信息摘要算法將口令轉(zhuǎn)換為密鑰。

PBE加密算法消息傳遞過程

  1. 由消息傳遞雙方約定口令,這里由甲方構(gòu)建口令。
  2. 由口令構(gòu)建者發(fā)布口令,即本系統(tǒng)的服務(wù)器將口令發(fā)送給系統(tǒng)的客戶端使用者。
  3. 由口令構(gòu)建者構(gòu)建本次消息傳遞使用的鹽,這里由甲方構(gòu)建鹽。
  4. 由消息發(fā)送方使用口令、鹽對數(shù)據(jù)加密,這里由甲方對數(shù)據(jù)加密。
  5. 由消息發(fā)送者將鹽、加密數(shù)據(jù)放松給消息接收者,這里由甲方將鹽、加密數(shù)據(jù)發(fā)送給乙方。
  6. 由消息接收方使用鹽、口令對加密數(shù)據(jù)解密,這里由乙方完成數(shù)據(jù)解密。

PBE加密算法

PBE加密算法的特點(diǎn)

PBE算法沒有密鑰的概念,而是使用口令替代了密鑰。

在傳統(tǒng)密鑰算法中,密鑰的長短直接影響了算法的安全性,但過長的密鑰并不方便記憶。但是口令則不然,非常便于人們記憶。

但是單純的口令很容易通過窮舉攻擊方式破譯,于是就引入了“鹽”。鹽能阻止字典攻擊或預(yù)先計(jì)算的攻擊,它本身是一個(gè)隨機(jī)信息,相同的隨機(jī)信息極不可能使用兩次。

將鹽附加在口令上,通過消息摘要算法經(jīng)過迭代計(jì)算獲得構(gòu)建密鑰/初始化向量的基本材料,使得破譯的難度加大。

PBE加密算法并沒有真正構(gòu)建新的加密/解密算法,當(dāng)使用PBE算法對數(shù)據(jù)做加密/解密操作的時(shí)候,其實(shí)是使用了DES或者是AES等其它對稱加密算法做了相應(yīng)的操作。

免責(zé)聲明:素材源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪稿。