数据的加密和解密

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

 当前网络环境中,数据的来往是十分密切,面对着海量的信息集合,很少有人去考虑如何去保证,或者说数据是怎么被保证安全的到达目的地的,在默认情况下,数据的发送是明文发送的,也就是说,数据的发送可以被除发送方和接收方的第三方所截获,读取信息,或者通过长年累月的数据量分析得出发送方的某些重要信息,这对于用户来说都是不可接受的,所以随着网络数据的不断发展,人们不断对数据加密进行更新换代,由一开始的传统加密,通过替换的方式加密信息,到后来的块加密算法;

  现在的加密算法,如对称加密,公钥加密,作为一段时期的主要加密方式;对称加密,通过双方所拥有的相同的密钥,进行比对,若相同则确认对方身份,同时利用这对密钥进行加密解密,但这样容易被第三方截获这个密钥并且冒充接收方进行接收;而公钥加密,数据经过公钥加密后,只能由这个衍生出公钥的私钥进行解密,反之,数据经过私钥加密后,只能由其对应的公钥进行解密;由于加密长度比较大,所以其安全级别也比较高;其加密的时候消耗的资源和时间都比较高,所以很少用于加密大批量的数据;公钥加密常用于数字签名,密钥交换,数据加密等;在数据传输过程中,当发送方需要对数据加密,然后需要获取接收方的公钥,如果这时候获取的公钥不是接收方的,而是第三者的公钥,数据就会被第三者的私钥解密,那么,如何去保证这类型数据传输的安全,就是我们要说的一个重点;

  数字签名:发送方利用自己的私钥加密数据,发送给接收方,接收方只能使用发送方的公钥进行解密操作,这个时候,就能知道是否为该发送方发送,相当于一个标识;

  密钥交换:发送方将对称密钥用接收方的公钥加密,接受方就可以用它的私钥解密,获取对称密钥;

  数据加密:对小数据进行加密;

  单向加密算法:如md5,sha等,只能进行加密,不能解密,可以通过单向加密哈希算法,获取特征值,进行比对,查看数据是否有出入;

  密钥交换算法:

    公钥算法

    DH算法:

      发送方具有p g,发送方对应的具有一个x值,x随机,第三方无法获取x值,也就无法破译,因      为结果不唯一,无法确定x值;

      接收方具有p g,接收方对应的具有一个y值,原理如上;

      发送方发送p^x%g给接收方,接收方再对其进行p^xy%g操作

      接受方发送p^y%g给发送方,发送方再对其进行p^xy%g操作

  这几种加密方式就是目前比较常用的加密方式;在之前有讲到的无法确定公钥是否为接收方的问题,这个时候我们就需要有一个有公信力度的机构来为我们进行认证,这就是CA;

  有公信力度的CA,可以颁发证书,给接收方,发送方,当发送方或接受发需要检查公钥是否正确时,可以检查由CA颁发的证书;证书里面包含的内容有拥有者的名称,拥有者所提交的公钥,有效期,证书的版本号,证书的序列号,签发算法ID,签发CA的名称,主体名称,发证者的唯一标识,发证者的数字签名,扩展信息等;发送方可以根据所拥有的CA机构的公钥去解密证书的数字签名,判断其真假;而不论是哪一方,想要获取证书,就必须经过一段时间的等待,让CA收集信息进行判断,这样才能保证其公信力度;

  加密算法的联合应用:

  通信双方互换证书,并到信任的CA进行证书验证;验证正确后发送方将数据用对称密钥加密,使用单向加密的哈希算法加密出数据的特征值,特征值使用发送方的密钥进行加密,发送给接收方,接收方先用发送方的公钥对特征值进行解密,在使用单向加密哈希算法算出特征值,二者比对,若相同,则表示数据在发送过程中未被改动,则读取数据,若改动,则丢弃数据,接收方用自己的私钥解密对称密钥,再用对称密钥去解密数据,读取数据内容;

  CA如何发挥其作用的:

  1.通信双方交换证书;

  2.双方协商加密算法;

  3.双方验证证书的真伪;

  4.用CA的公钥解密证书中CA的签名,能解密说明证书来源可靠;

  5.用通用的加密算法加密证书,取得特征值;与解密出来的特征值比较,如果相同,说明证书完整性   可靠;

  6.检查证书的有效期是否在合法时间范围,如果过期则证书不被认可;

  7.检查证书的主体名称和此次通信的目标是否能够对应;


  客户端与服务器握手的四个阶段:

   1.第一阶段,获取服务器证书进行检验;客户端打招呼,Cliect Hello,发送客户端所支持的协议的版本,在hello阶段,以免客户端或服务器无法使用对方的加密的方式;如客户端只能使用md5,服务器只能使用AES,DES等,要判断是否能支持;服务器将自己的证书发给客户端,客户端进行验证,到CA核实证书信息,若核实错误,则没有后续操作;服务器检验客户端发送来的证书,使用客户端的公钥进行检验;

   2.第二阶段,证书合法后,双方协商生成会话密钥,如用DH算法生成;Sever Hello,服务器发送Hello,,确认加密算法版本号,生成一个随机数,用于生成会话密钥;

   3.第三阶段,利用已经生成的会话密钥进行安全加密的通信;验证服务证书后,取出公钥,以便下次服务器接收数据,能用自己的私钥解除;

   客户端发送一个信息给服务器;告诉服务器,编码是否变更,即加密方式,若无,则采用之前商量好的方式进行传输;生成一个随机数,用于服务器端的公钥加密;

   验证服务器证书需要验证下述内容:

      验证发证机构(CA); 

      验证证书的完整性;

      验证证书的持有者信息;

      验证证书的有效期;

      验证证书的吊销列表;

   4.第四阶段,双方互相通告握手结束,say goodbye;

       

    


本文转自 wujunqi1996 51CTO博客,原文链接:http://blog.51cto.com/12480612/1953696

相关文章
|
4月前
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
2794 3
|
4月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:从漏洞到加密,保护数据的关键步骤
【10月更文挑战第24天】在数字化时代,网络安全和信息安全是维护个人隐私和企业资产的前线防线。本文将探讨网络安全中的常见漏洞、加密技术的重要性以及如何通过提高安全意识来防范潜在的网络威胁。我们将深入理解网络安全的基本概念,学习如何识别和应对安全威胁,并掌握保护信息不被非法访问的策略。无论你是IT专业人士还是日常互联网用户,这篇文章都将为你提供宝贵的知识和技能,帮助你在网络世界中更安全地航行。
|
5月前
|
算法 安全 数据安全/隐私保护
加密和解密数据
【10月更文挑战第6天】加密和解密数据
114 2
|
5月前
|
安全 数据安全/隐私保护 开发者
保护敏感数据:使用Python加密数据的实用方法
保护敏感数据是一项基本的安全实践,Python通过上述库提供了强大的加密工具来实现这一目标。选择哪种方法取决于具体的应用场景和安全需求:对称加密(如AES)适合快速处理大量数据,而非对称加密(如RSA)更适合安全地交换密钥或进行身份验证。哈希函数则用于验证数据的完整性和一致性。通过合理使用这些技术,开发者可以大大增强其应用程序的安全性。
140 0
|
5月前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在 Uno Platform 中实现安全的数据存储需要选择合适的数据存储方式,并对存储的数据进行加密。通过加密数据,可以保护用户的敏感信息,防止数据泄露。同时,在读取和使用数据时,需要进行解密操作,确保数据的可用性。希望本文对你在 Uno Platform 中实现安全的数据存储有所帮助。
61 0
|
5月前
|
存储 SQL 安全
加密后的数据如何进行模糊查询?
在数据安全和隐私保护日益重要的今天,加密技术成为保护敏感数据的重要手段。然而,加密后的数据在存储和传输过程中虽然安全性得到了提升,但如何对这些数据进行高效查询,尤其是模糊查询,成为了一个挑战。本文将深入探讨如何在保证数据安全的前提下,实现加密数据的模糊查询功能。
515 0
|
6月前
|
数据安全/隐私保护
vuex数据持久化、加密(vuex-persistedstate、secure-ls)
本文介绍了如何在Vuex中使用`vuex-persistedstate`和`secure-ls`库进行数据的持久化和加密,确保在Vite打包上线后,Vuex中的数据安全。
213 1
|
6月前
|
JavaScript 前端开发 安全
js逆向实战之烯牛数据请求参数加密和返回数据解密
【9月更文挑战第20天】在JavaScript逆向工程中,处理烯牛数据的请求参数加密和返回数据解密颇具挑战。本文详细分析了这一过程,包括网络请求监测、代码分析、加密算法推测及解密逻辑研究,并提供了实战步骤,如确定加密入口点、逆向分析算法及模拟加密解密过程。此外,还强调了法律合规性和安全性的重要性,帮助读者合法且安全地进行逆向工程。
152 11
|
6月前
|
存储 安全 数据库
Uno Platform 安全数据存储秘籍大公开!加密、存储、读取全攻略,让你的数据固若金汤!
在软件开发中,安全的数据存储至关重要。本文介绍如何在跨平台开发框架 Uno Platform 中实现安全数据存储,包括选择合适的数据存储方式(如本地文件或 SQLite 数据库)和使用 Bouncy Castle 加密库对数据进行 AES 加密。通过示例代码展示了数据的加密、存储及解密过程,帮助开发者保护用户敏感信息,防止数据泄露。
75 3
|
6月前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
190 5

热门文章

最新文章