对称加密算法
理论上说对称加密算法,才是我们真正说的加密算法。所谓对称加密算法,通俗的讲,就是使用密钥加密,再使用密钥解密的加密算法的总称。也就是平时我们说到加密算法,脑子里第一个跳出来的加密方式一般都是对称加密算法。上面将的base64其实也是一种“对称加密算法”,只是其密钥公开了而已。
通讯模型
同样的场景:客户端要将数据data发给服务器端。
客户端对使用密钥key,对数据data加密,生成加密串C,通过网络将C传输为服务器端,服务器端,使用密钥key对C解密,获取数据data,做自己的业务逻辑。
简单直接的一种加密方式,与摘要算法不同的地方是,加密过程其是双向的,C由data加密而来,同样可以解密获得data,前提条件是加密解密时的key相同。而摘要算法无法从C解密得到data。
加密过程简单,那么其在对抗通信中面临的四种威胁的作用有怎么样呢:
- 截获:这么在网络中传输的内容为密文,即使攻击者截获了报文,由于没有密钥,也无法解析。所以,这次对称加密算法在防范截获威胁方面有这很大的优势。
- 中断:和摘要算法一样,无法防范。
- 篡改:由于数据是密文传输的,攻击者,无法解析,更无法伪造了。所以,可以防范。
- 伪造:对于数据的伪造,和摘要算法一样,可以防范,但对于伪造的发送方,对称加密算法和摘要算法一样,比较的无力。
截获 |
中断 |
篡改 |
伪造 |
O |
X |
O |
X |
算法优缺点
对称加密算法有着很多的好处,比较加密速度快,算法简单,安全模型的安全性较高等,但在正式中使用时,却不得不解决一个问题:密钥如何传递。如果将密钥在网络中传递,势必有被截获的风险。由于这个问题的存在,导致单纯的使用对称加密算法的通讯模型,并不是一个通用的模型,只在一些特殊的场合中使用,例如:客户端/服务器端为同一端点,或者线下合作的场景——双方将密钥写入合同中,线下传递。
不过对于密钥,还是建议经常的更换,密钥的破解是一个耗时的过程,长时间不变的密钥,无遗对攻击者创造了破解的机会,当有一天攻击者破解了密钥,灭顶之灾也就来到。
说了这么多的对称加密算法,还没有说对称加密算法有哪些,比较常用的对称加密算法有DES/3DES/AES/IDEA/RC4/RC2等。其加密强度,可以从其支持的密钥长度看出,密钥越长,加密强度越好;同时,加密过程越慢。
对称加密算法 |
密钥长度 |
DES |
56 |
3DES |
112/168 |
AES |
128/192/256 |
IDEA |
128 |
RC2 |
可变密钥长度,通过调整长度控制加密强度 |
可变密钥长度,通过调整长度控制加密强度 |
相关推荐
DES加密解密算法的C语言实现 DES(Data Encryption Standard)是一种对称密钥 BLOCK 加密算法,使用 56 ...DES 加密解密算法的 C 语言实现需要理解字节与二进制转换、密钥处理、加密和解密操作以及基本操作等知识点。
Java实现的RSA加密解密算法示例 本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron...
300多种加密解密算法(C++)源代码 300多种加密解密算法(C++)源代码
本文将深入探讨如何使用C语言实现加密解密算法,并基于提供的文件信息进行讲解。 首先,C语言是一种底层编程语言,它允许直接操作内存,因此非常适合实现复杂的数学运算,如加密算法。常见的加密算法有对称加密(如...
经典代码(带详解) 函数authcode($string, $operation, $key, ...第六种 函数encrypt($string,$operation,$key)中$string:需要加密解密的字符串;$operation:判断是加密还是解密,E表示加密,D表示解密;$key:密匙。
AES,全称Advanced ...总之,C语言实现的AES加密解密算法是一个实用的工具,对于理解加密原理、开发安全软件或进行系统级编程都有很大的价值。然而,使用时应确保正确性,并结合适当的模式和协议来增强整体安全性。
"java实现的RC4加密解密算法示例" RC4加密解密算法是Symmetric-key block cipher的一种,使用同一个密钥进行加密和解密。java实现的RC4加密解密算法可以通过以下步骤实现: 1. 初始化数组:创建一个大小为256的...
java实现MD5加密解密算法,java源代码~
总的来说,RSA加密解密算法在C语言中实现涉及到大整数运算、公钥私钥生成、加密解密过程等多个环节,结合适当的库可以构建出强大的安全工具。在Linux环境下,可以利用丰富的开源库来简化开发工作。通过深入理解这些...
本文还对基于Logistic系统的图像模块混沌加密解密算法的安全性进行了分析。结果表明,该算法存在安全 weakness,即生成的密钥流对每个图像块保持不变,从而使得攻击者可以使用chosen plaintext attack来恢复等效密钥...
这个" .net加密解密算法demo "提供了易于理解和使用的加密解密示例,特别适合初学者和开发者快速上手。源代码中包含了详尽的注释,使得自定义关键字成为可能,以满足不同场景下的安全需求。 首先,加密是将明文数据...
### 文件加密解密算法研究与实现 #### 一、引言 随着信息技术的快速发展和互联网的普及,信息安全问题变得越来越重要。特别是在企业环境中,保护重要信息免受非法访问和泄露至关重要。《文件加密解密算法研究与...
RSA加密解密算法,相当不错的例子,适合初学者参考
RSA加密解密算法是密码学中一种常用的加密算法,以 Ron Rivest、Adi Shamir 和 Leonard Adleman 三人命名。该算法基于大数分解问题的困难性,使用公钥加密和私钥解密的方式来保护数据的安全。 该算法的基本原理是:...
在这个"很强的Java加密解密算法源码.zip"中,我们可以深入学习如何在Java中实现3DES算法来加密和解密文件。 3DES算法是一种块加密算法,它通过三次应用DES密钥来增强安全性。基本流程如下: 1. **加密过程**:输入...
以下是关于3DES加密解密算法在Java中的实现细节: 首先,为了使用3DES,Java程序需要引入特定的JAR包,这些包通常位于`JAVA_HOME/jre/lib/`目录下,包括`jce.jar`、`US_export_policy.jar`、`local_policy.jar`以及...
实现的AES加密解密算法,高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法(微信小程序加密传输就是用这个加密算法的)。对称加密算法也就是加密和解密用相同的密钥
综上所述,VB6的这个加密解密程序是一个实用的工具,结合了DES和AES这两种强大的加密算法,支持用户自定义密钥,且具备文件级别的加密解密功能。它不仅提供了基本的数据安全措施,而且在VB6环境中易于理解和使用,...
总之,VB加密解密算法在保护软件、数据安全方面起着重要作用。开发者应熟悉不同类型的加密算法,了解其优缺点,并能在VB环境中熟练应用,以确保信息的安全。在实际开发过程中,结合安全策略,合理使用加密技术,可以...
此资源加密方式包括 MD2, MD5, SHA-1, HAVAL, Tiger, RIPE-MD160, MD5-MAC, HMAC, XOR-MAC, DES,IDEA, WAKE, 3-WAY, TEA, SAFER, Blowfish,SHARK, GOST, CAST-128, Square,Diamond2, Sapphire, RC2, RC5, RC6, MARS,...