勒索病毒是目前常见的电脑病毒,这种病毒会利用一些加密算法对感染者电脑中的文件进行加密,随后向其索要赎金。那么我们今天就来了解一下,勒索病毒常用的那些加密算法。
勒索病毒常用的加密算法
勒索病毒通常采用对称加密技术和非对称加密技术相结合的方式来实现对用户文件加密和解密密钥的保管,通常将AES与RSA算法相结合。
- 对称加密算法——AES
AES加密算法,也就是高级加密标准,是对称加密算法中应用较为广泛、成熟的一种加密方式。它的加密过程主要包括“字节代换”“行位移”“列混合”“轮密钥加”四步,通过使用密钥轮对明文进行逐轮加密实现密文的可靠性。
在勒索病毒的工作过程中, AES通常被用作对计算机文件进行“绑架”加密,是加密过程中的第一把锁。
- 非对称加密算法——RSA
RSA算法是非对称加密算法中应用比较广泛的一种,其通过生成两个极大素数,通过使用欧拉函数、欧几里得算法分別获取“公钥”和“私钥”所需相应元素,对明文或密文使用“公钥”或“私钥”分块进行幂运算和取模运算,以完成加密或解密。同时,对极大整数做因数分解的数学难题决定了RSA算法的可靠性。
在当前普通计算机性能条件下,破解1024位RSA密钥耗时约两年,破解2048位(十进制256位)密钥耗时需80年,而大多数勒索病毒采用RSA算法生成的密钥长度为2048位。
部分勒索病毒加密方法
- Wannacry
Wannacry采取两级基于2048位RSA算法的非对称加密方法,和一级基于128位AES的对称加密方法完成对受害者计算机文件的“绑架”过程。
- Petya
Petya勒索软件的加密算法,可简述为ECDH算法和SALSA20算法。其中, ECDH算法采用secp192k1曲线,用于加密SALSA20算法的密钥;SALSA20算法用于加密主文件表,该算法运行在操作系统引导之前的16位环境之中;当完成上述加密步骤之后,程序会显示出其勒索页面并索要赎金。
- Unlock92
Unlock92勒索软件采用的勒索软件为两次RSA算法,每个Unlock92勒索软件都内置一个 RSA公钥;该公钥用于加密一个随机生成的RSA私密。而这个随机生成的RSA公私密钥对,用于加密用户的全部个人文件。
由于RSA算法运行速率较慢,Unlock92的作者并未对完整的用户文件全部进行加密,而是选择每个用户文件的前 0x300字节进行加密。
通常来说,勒索病毒通过AES加密算法生成密钥对计算机源文件进行加密,并将AES密钥保存在本地,正常情况下受害者找出该密钥则可以完成对文件的解密。
而勒索病毒作者为了保障该密钥不被用户使用,选择了双层RSA加密算法完成对该密钥的再次加密,并保留最后一层RSA算法的私钥在病毒作者计算机内,最终使得解密密钥与受害者完全隔离。
相关阅读: