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

勒索病毒常用的加密算法
勒索病毒通常采用對(duì)稱(chēng)加密技術(shù)和非對(duì)稱(chēng)加密技術(shù)相結(jié)合的方式來(lái)實(shí)現(xiàn)對(duì)用戶(hù)文件加密和解密密鑰的保管,通常將AES與RSA算法相結(jié)合。
- 對(duì)稱(chēng)加密算法——AES
AES加密算法,也就是高級(jí)加密標(biāo)準(zhǔn),是對(duì)稱(chēng)加密算法中應(yīng)用較為廣泛、成熟的一種加密方式。它的加密過(guò)程主要包括“字節(jié)代換”“行位移”“列混合”“輪密鑰加”四步,通過(guò)使用密鑰輪對(duì)明文進(jìn)行逐輪加密實(shí)現(xiàn)密文的可靠性。
在勒索病毒的工作過(guò)程中, AES通常被用作對(duì)計(jì)算機(jī)文件進(jìn)行“綁架”加密,是加密過(guò)程中的第一把鎖。

- 非對(duì)稱(chēng)加密算法——RSA
RSA算法是非對(duì)稱(chēng)加密算法中應(yīng)用比較廣泛的一種,其通過(guò)生成兩個(gè)極大素?cái)?shù),通過(guò)使用歐拉函數(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算法生成的密鑰長(zhǎng)度為2048位。
部分勒索病毒加密方法
- Wannacry
Wannacry采取兩級(jí)基于2048位RSA算法的非對(duì)稱(chēng)加密方法,和一級(jí)基于128位AES的對(duì)稱(chēng)加密方法完成對(duì)受害者計(jì)算機(jī)文件的“綁架”過(guò)程。

- Petya
Petya勒索軟件的加密算法,可簡(jiǎn)述為ECDH算法和SALSA20算法。其中, ECDH算法采用secp192k1曲線(xiàn),用于加密SALSA20算法的密鑰;SALSA20算法用于加密主文件表,該算法運(yùn)行在操作系統(tǒng)引導(dǎo)之前的16位環(huán)境之中;當(dāng)完成上述加密步驟之后,程序會(huì)顯示出其勒索頁(yè)面并索要贖金。
- Unlock92
Unlock92勒索軟件采用的勒索軟件為兩次RSA算法,每個(gè)Unlock92勒索軟件都內(nèi)置一個(gè) RSA公鑰;該公鑰用于加密一個(gè)隨機(jī)生成的RSA私密。而這個(gè)隨機(jī)生成的RSA公私密鑰對(duì),用于加密用戶(hù)的全部個(gè)人文件。
由于RSA算法運(yùn)行速率較慢,Unlock92的作者并未對(duì)完整的用戶(hù)文件全部進(jìn)行加密,而是選擇每個(gè)用戶(hù)文件的前 0x300字節(jié)進(jìn)行加密。

通常來(lái)說(shuō),勒索病毒通過(guò)AES加密算法生成密鑰對(duì)計(jì)算機(jī)源文件進(jìn)行加密,并將AES密鑰保存在本地,正常情況下受害者找出該密鑰則可以完成對(duì)文件的解密。
而勒索病毒作者為了保障該密鑰不被用戶(hù)使用,選擇了雙層RSA加密算法完成對(duì)該密鑰的再次加密,并保留最后一層RSA算法的私鑰在病毒作者計(jì)算機(jī)內(nèi),最終使得解密密鑰與受害者完全隔離。
相關(guān)閱讀:










