勒索病毒常用的加密算法有哪些?

勒索病毒是目前常見的電腦病毒,這種病毒會(huì)利用一些加密算法對(duì)感染者電腦中的文件進(jìn)行加密,隨后向其索要贖金。那么我們今天就來了解一下,勒索病毒常用的那些加密算法。

勒索病毒

勒索病毒常用的加密算法

勒索病毒通常采用對(duì)稱加密技術(shù)和非對(duì)稱加密技術(shù)相結(jié)合的方式來實(shí)現(xiàn)對(duì)用戶文件加密和解密密鑰的保管,通常將AES與RSA算法相結(jié)合。

  • 對(duì)稱加密算法——AES

AES加密算法,也就是高級(jí)加密標(biāo)準(zhǔn),是對(duì)稱加密算法中應(yīng)用較為廣泛、成熟的一種加密方式。它的加密過程主要包括“字節(jié)代換”“行位移”“列混合”“輪密鑰加”四步,通過使用密鑰輪對(duì)明文進(jìn)行逐輪加密實(shí)現(xiàn)密文的可靠性。

在勒索病毒的工作過程中, AES通常被用作對(duì)計(jì)算機(jī)文件進(jìn)行“綁架”加密,是加密過程中的第一把鎖。

勒索病毒

  • 非對(duì)稱加密算法——RSA

RSA算法是非對(duì)稱加密算法中應(yīng)用比較廣泛的一種,其通過生成兩個(gè)極大素?cái)?shù),通過使用歐拉函數(shù)、歐幾里得算法分別獲取“公鑰”和“私鑰”所需相應(yīng)元素,對(duì)明文或密文使用“公鑰”或“私鑰”分塊進(jìn)行冪運(yùn)算和取模運(yùn)算,以完成加密或解密。同時(shí),對(duì)極大整數(shù)做因數(shù)分解的數(shù)學(xué)難題決定了RSA算法的可靠性。

在當(dāng)前普通計(jì)算機(jī)性能條件下,破解1024位RSA密鑰耗時(shí)約兩年,破解2048位(十進(jìn)制256位)密鑰耗時(shí)需80年,而大多數(shù)勒索病毒采用RSA算法生成的密鑰長度為2048位。

部分勒索病毒加密方法

  • Wannacry

Wannacry采取兩級(jí)基于2048位RSA算法的非對(duì)稱加密方法,和一級(jí)基于128位AES的對(duì)稱加密方法完成對(duì)受害者計(jì)算機(jī)文件的“綁架”過程。

勒索病毒

  • Petya

Petya勒索軟件的加密算法,可簡述為ECDH算法和SALSA20算法。其中, ECDH算法采用secp192k1曲線,用于加密SALSA20算法的密鑰;SALSA20算法用于加密主文件表,該算法運(yùn)行在操作系統(tǒng)引導(dǎo)之前的16位環(huán)境之中;當(dāng)完成上述加密步驟之后,程序會(huì)顯示出其勒索頁面并索要贖金。

  • Unlock92

Unlock92勒索軟件采用的勒索軟件為兩次RSA算法,每個(gè)Unlock92勒索軟件都內(nèi)置一個(gè) RSA公鑰;該公鑰用于加密一個(gè)隨機(jī)生成的RSA私密。而這個(gè)隨機(jī)生成的RSA公私密鑰對(duì),用于加密用戶的全部個(gè)人文件。

由于RSA算法運(yùn)行速率較慢,Unlock92的作者并未對(duì)完整的用戶文件全部進(jìn)行加密,而是選擇每個(gè)用戶文件的前 0x300字節(jié)進(jìn)行加密。

勒索病毒


通常來說,勒索病毒通過AES加密算法生成密鑰對(duì)計(jì)算機(jī)源文件進(jìn)行加密,并將AES密鑰保存在本地,正常情況下受害者找出該密鑰則可以完成對(duì)文件的解密。

而勒索病毒作者為了保障該密鑰不被用戶使用,選擇了雙層RSA加密算法完成對(duì)該密鑰的再次加密,并保留最后一層RSA算法的私鑰在病毒作者計(jì)算機(jī)內(nèi),最終使得解密密鑰與受害者完全隔離。

相關(guān)閱讀:

勒索病毒是怎么傳播的?該如何進(jìn)行預(yù)防?

如何有效預(yù)防手機(jī)勒索病毒