当前位置:首页 > 系统运维

浅谈加密算法

Part 01 什么是浅谈加密算法

加密算法是一种密码学算法,就是加密指将信息变成密文的加密技术  ,加密算法可以实现对数据所属方的算法隐私保护 ,并在保护隐私的浅谈前提下 ,实现数据的加密匿踪共享。通过加密算法可以达到:数据保密性,算法防止用户数据被窃取或泄露; 数据完整性,防止用户传输的数据被篡改;通信双方身份确认,确保数据来源合法的功能 。

常见加密算法分为不可逆算法和可逆算法,浅谈其中可逆算法分为对称加密和非对称加密算法,高防服务器加密整体加密算法分类如图1所示 。算法

Part 02 不可逆算法 

不可逆算法的浅谈加密是不可逆的 ,加密后的加密密文是无法被还原成原文  。其中散列算法,算法就是浅谈一种不可逆算法。

散列算法是加密指明文通过散列算法生成散列值 ,散列值是算法长度固定的数据,免费模板和明文长度无关,算法过程如图2所示 。常见散列算法的具体实现有很多种 ,例如MD5 、SHA1 、SHA-224、SHA-256等等。散列算法是不需要密钥的,当然也存在一些其他不可逆算法是需要密钥的,例如HMAC算法。

图 2

1 、MD5 ,云计算全称为“Message-Digest Algorithm 5”,翻译过来叫“信息摘要算法”。它可以将任意长度的数据通过散列算法 ,生成一个固定长度的散列值  。MD5算法的输出长度为128位 ,通常用32个16进制数表示 。MD5有一些优点,比如计算速度快、输出长度固定  、应用广泛等等。但是作为一个加密算法,它有一个天大的建站模板缺点,那就是不安全。目前MD5算法已经被攻破,而且MD5算法的输出长度有限,攻击者可以通过暴力破解或彩虹表攻击等方式  ,找到与原始数据相同的散列值 ,从而破解数据  。虽然可以通过加盐,也就是对在原文里再加上一些不固定的字符串来缓解 ,但是完全可以用更安全的服务器租用SHA系列算法替代。

2  、SHA(Secure Hash Algorithm)系列算法是一组密码散列函数 ,用于将任意长度的数据映射为固定长度的散列值。SHA系列算法由美国国家安全局(NSA)于1993年设计,目前共有SHA-1、SHA-2 、SHA-3三种版本 。其中SHA-1系列存在缺陷 ,已经不再被推荐使用。SHA-2算法包括SHA-224、SHA-256、SHA-384和SHA-512四种散列函数,模板下载分别将任意长度的数据映射为224位  、256位 、384位和512位的散列值 。

3、上述两种算法 ,SHA-2算法比MD5强 ,主要有两个原因:

(1)散列值长度更长 :例如SHA-256算法的散列值长度为256位  ,而MD5算法的散列值长度为128位,这就提高了攻击者暴力破解或者彩虹表攻击的难度。

(2)更强的碰撞抗性:SHA算法采用了更复杂的运算过程和更多的轮次 ,使得攻击者更难以通过预计算或巧合找到碰撞 。

Part 03 可逆算法 

可逆算法分为对称加密算法非对称加密算法两种。

对称加密算法

对称加密算法的加密和解密过程使用的是相同的密钥,因此密钥的安全性至关重要。如果密钥泄露 ,攻击者可以轻易地破解加密数据。

对称加密的原理如图3所示,通信的双方约定好使用统一的加密解密算法,以及一个salt盐作为唯一标识 ,发送数据前先试用加密算法和salt经过加密函数处理得到密文  ,接受方收到密文后使用解密算法+salt对密文解密得到明文再处理 。

 

常见的对称加密算法包括DES、3DES 、AES等 。其中,AES算法是目前使用最广泛的对称加密算法之一,具有比较高的安全性和加密效率。

(1)AES(Advanced Encryption Standard)即高级加密标准 ,是一种对称加密算法 ,被广泛应用于数据加密和保护领域 。AES算法使用的密钥长度为128位、192位或256位 ,比DES算法的密钥长度更长,安全性更高 。AES算法采用的密钥长度更长,密钥空间更大 ,安全性更高,能够有效地抵抗暴力破解攻击 。当然,因为密钥长度较长 ,需要的存储也更多。

(2)DES(Data Encryption Standard)算法是最早的一种广泛应用的对称加密算法之一 。DES算法使用56位密钥对数据进行加密,加密过程中使用了置换、替换 、异或等运算 ,具有较高的安全性 。速度较快,但是在安全性上面并不是最优选择,因为DES算法的密钥长度比较短 ,被暴力破解和差分攻击的风险比较高 ,一般推荐用一些更安全的对称加密算法 ,比如3DES 、AES等。

非对称加密算法

非对称加密算法需要两个密钥,这两个密钥互不相同 ,但是相互匹配 ,一个称为公钥 ,另一个称为私钥  。使用其中的一个加密,则使用另一个进行解密。具有如下特点:

(1)使用公钥加密的数据只有私钥才能解密,公钥自己是解密不了的 。

(2)使用私钥加密的数据只有公钥才能解密,私钥自己是解密不了的。

(3)服务端同时持有公钥和私钥(不会给任何人) 。

(4)服务端要跟谁通信就把自己的公钥给它 。

RSA算法是是目前应用最广泛的非对称加密算法 ,该算法的优点是安全性高 ,公钥可以公开 ,私钥必须保密,保证了数据的安全性;可用于数字签名、密钥协商等多种应用场景 。缺点是加密 、解密速度较慢,密钥长度越长,加密  、解密时间越长;密钥长度过短容易被暴力破解 ,密钥长度过长则会增加计算量和存储空间的开销 。

分享到:

滇ICP备2023006006号-31