网站首页 > 技术文章 正文
我们知道网络中的数据如果是明文进行传输的话,在经过交换机、路由器等节点时可能会被不法者监听和篡改,从而带来一些风险或损失,所以通常我们需要对数据进行加密处理后再进行传输,以确保数据的安全性。加密是对明文数据按某种特殊的算法进行加工处理,使其成为不可被直接读取的数据,即密文数据,而密文数据可以通过特定的秘钥解密后还原出明文数据。加密方式主要有对称加密、非对称加密和单向加密。
对称加密
对称加密是应用较早的加密算法,技术成熟,是一种传统也是最常用的加密手段,适用于绝大多数需要加密的场合。所谓对称加密是指加密和解密使用的密钥是同一个密钥。在对称加密算法中,数据发送方将明文和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去,接收方收到密文后,若想解读原文,则需要使用加密使用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。
对称加密的特点是算法公开、计算量小、加密速度快、加密效率高,适合对大量数据进行加密。不足之处是,交易双方都使用同样的钥匙,安全性得不到保证。常用的对称加密算法有:
1.DES
DES(Data Encryption Standard)是一种将64比特的明文加密成64比特的密文的对称密码算法,它的密钥长度是56比特。尽管从规格上来说,DES的密钥长度是64比特,但由于每隔7比特会设置一个用于错误检查的比特,因此实质上其密钥长度是56比特。
2.三重DES
三重DES(Triple-DES,3DES)是为了增加DES的强度,将DES重复3次所得到的一种密码算法。明文经过三次DES处理才能变成最后的密,但是3DES并不是进行三次DES加密(加密–>加密–>加密,密钥长度为56×3=168比特),而是加密–>解密–>加密的过程。第一层和第三层中使用相同的密钥,产生一个有效长度为112位的密钥,其算法的步骤如下:
(1)用密钥K1进行DES加密。
(2)用K2对步骤(1)的结果进行DES解密。
(3)对步骤(2)的结果使用密钥K1进行DES加密。
这种方法的缺点时要花费原来三倍的时间,但从另一方面来看,三重DES的112位密钥长度是很强壮的加密方式。
3. IDEA
IDEA(International Data Encryption Algorithm)算法使用128位的密钥,把明文分成64位的块,进行8轮迭代加密,得到64位密文。
4.AES
AES(Advanced Encryption Standard)是取代其前任标准DES而成为新标准的一种对称密码算法,AES支持128、192和256位3种密钥长度。
5.RC4
RC4(Rivest Cipher 4)是一种流加密算法,密钥长度可变。RC4的实现是以字节流的方式依次加密明文中的每一个字节,解密的时候也是依次对密文中的每个字节解密。
非对称加密
非对称加密也称公钥加密,加密所用的密钥和解密所用的密钥是不相同的,通常有两个密钥,分别为“公钥”和“私钥”,其中公钥对外公布,私钥只有持有人知道。用公钥加密的信息必须用私钥才能打开,反之,用私钥加密的信息必须用公钥才能打开。
非对称加密技术通常用在信息安全传输,数字签名等场合。RSA是典型的非对称加密算法,其过程大致如下:
(1)随机选择两个不相同的素数 p和q;
(2)将p,q相乘,记为n=p×q;
(3)计算n的欧拉函数z=(p?1)(q?1);
(4)随机选择一个整数e,满足两个条件: 1<e<z并且z与e互为质数;
(5)计算e对于z的模反元素d ,也就是说找到一个 d满足ed=1 modz。
(6)最终把(e,n)封装成公钥,加密时计算C=P^e(modn);将(d,n)封装成私钥,解密时计算P=C^d(modn)。
我们通过一个例子来说明:
在RSA加密体制中,已知素数p = 7, q = 11, 公钥e = 13, 试计算私钥d并给出对明文m = 5的加密,求其密文,已知密文c = 15,求其明文。
解:n=p×q=7×11=77,z=(p?1)(q?1)=(7?1)(11?1)=60,依据ed=1 modz,即13d=1mod60,得到私钥d=37。公钥(e,n)=(13,77),密文C=P^e(modn)=5^13mod77=26;私钥(d,n)=(37,77),明文C^d(modn)=15^37mod77=71。
单向加密
单向散列加密算法常用于提取数据,验证数据的完整性。发送者将明文通过单向加密算法加密生成固定长度的密文串,然后将明文和密文串传递给接收方。接收方在收到报文后,将明文使用相同的单向加密算法进行加密,得出加密后的密文串。随后与发送者发送过来的密文串进行对比,若发送前和发送后的密文串相一致,则说明传输过程中数据没有损坏;若不一致,说明传输过程中数据丢失了。
通俗来说,单向加密就是通过对数据进行摘要计算生成密文,密文不可逆推还原。算法代表有:MD5、SHA、HMAC等。
1.MD5
消息摘要算法MD5,无论是多长的输入,MD5都会输出长度为128bits的摘要 (通常用16进制表示为32个字符)。需要注意的是摘要算法是不可以逆的。通过加密后的数据是不能得到原始数据的。
2.SHA-1
安全散列算法(Secure Hash Algorithm,SHA),和MD5一样,也是摘要算法,但是SHA1的安全性更强,同时还有SHA256,SHA512等,区别就是长度不一样,越长越安全但是速度越来越慢。对于长度小于2 ^ 64 位的消息,SHA1会产生一个160位的消息摘要。
3.HMAC
散列式报文认证码(Hash-based Message Authentication Code,HMAC),利用公开函数和密钥产生一个固定长度的值作为认证标识,即MAC,用这个标识鉴别消息的完整性,并将其加入到消息中,然后进行传输,接收方利用与发送方共享的密钥进行鉴别认证等。
- 上一篇: Java实现对称加密----AES和DES加密、解密
- 下一篇: 国密SM算法有哪些?
猜你喜欢
- 2025-01-20 如何给U盘加密?不用装任何工具
- 2025-01-20 软考网络工程师备考-13:网络安全与应用1
- 2025-01-20 等保2.0数据库测评 - Oracle 11g数据库
- 2025-01-20 securecrt中文版
- 2025-01-20 加密算法的分类和简析
- 2025-01-20 VPN协议大揭秘 PPTP与L2TP退场 SSTP与IKEv2成为安全新宠
- 2025-01-20 MiFare RFID的四个系列卡片
- 2025-01-20 C#常用的加密算法:MD5、Base64、SHA1、DES、AES、RSA
- 2025-01-20 常用的加解密技术有哪些?利用Java、Python实现AES、DES、3DES
- 2025-01-20 AES和DES算法的区别,分别有哪些优缺点
你 发表评论:
欢迎- 02-20利用神经网络模型检测摄像头上的可疑行为
- 02-20直击心灵:高频核心听力你了解吗?_高频听力的正常范围值是多少
- 02-20YOLOv8 POSE+XGBoost进行人体姿态检测
- 02-20100个篮球英文术语详细解释,从此听懂NBA解说
- 02-20最全紧固件中英文对照,外贸必备词典一
- 02-20带你开发一个视频动态手势识别模型
- 02-20详细介绍一下Java基础中HashMap如何进行扩容操作?
- 02-20GTX 1070 Ti显卡评测:你会购买哪一款?
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)