数据的加密和解密初识

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

加密是让数据从明文变成密文,传输过程中是密文,传送过去之后对方接收到的也是密文。

可以理解为密文就是乱码,看不出内在的任何意义,通常也都是逐位对应的。

在接收方接收到密文之后只有把它还原为原来的样子才可以理解对方说的具体是什么,此过程就叫做解密。


1.不同主机之间的进程间通信:Socket-pair,套接字对

  套接字Socket的三种类型:

    流套接字(Socket_Stream):基于TCP协议通信的套接字

    数据报套接字(Socket_Dgram):基于UDP协议通信的套接字

    裸套接字,原始套接字(Socket_Ram):基于底层协议通信的套接字


2.威胁安全的行为:

威胁机密性的攻击行为:

  窃听、嗅探、扫描、通信量分析

威胁完整性的攻击:

  更改、伪装、重放、否认

威胁可用性的攻击:

  拒绝服务(DoS)


3.安全实现的目标:

  机密性:confidentiality,保证信息不泄露

  完整性:integrity,保证信息不被篡改

  可用性:availability,保证信息内在价值


4.安全解决方案:

  技术:加密和解密

    传统的加密方法:替代加密算法

    现代的加密方法:块加密方法:

  服务:安全服务

    身份认证、访问控制机制


5.加密方案:

  加密算法和密钥


  加密算法


  四种加密算法:

    对称加密算法

    公钥加密算法(非对称加密)

    单向加密算法

    密钥交换算法


    1)对称加密算法:

    加密和解密使用同一密钥

    特性:

      1.每对通信主机都需要保有一个相同的密钥,用于加密和解密

      2.将原始的数据分隔成固定大小的块,逐个加密

      3.加密和解密的速度比较快    

    缺陷:

      1.加密解密所需要保有的密钥数量过多

      2.密钥分发过于困难 


    主流加密算法:

      DES:Data Encryption Standard,数据加密标准

        56bit密钥,64bit块

        3DES:triple DES

      AES:Advanced Encryption Standard高级加密标准

        AES128bit,AES192bit,AES256bit

      Blowfish

      Twofish

      IDEA

      RC

      RC4,RC6


  2)公钥加密算法:

    密钥分为私钥和私钥抽取生成的公钥组成

    私钥:512bit,1024bit,2048bit,4096bit,8192bit,16384bit

    特点:

      1.使用密钥对来加密和解密,使用私钥加密的数据必须用从中抽取出的公钥解密,同样如果使用公钥加密必须使用与之相对的私钥进行解密

        私钥:通过特定的工具创建生成,由使用者自己留存,务必保证其私密性,secret key,或者private key

        公钥:从私钥中提取产生,公钥可以公开给所有人使用public key

      2.密钥长度比较长,加密后的数据安全等级较高

    缺陷:

      加密数据的时候,消耗的系统资源和时间都较多,很少用来加密大批量数据

    用途:

      数字签名:主要用于让接收方确认发送方的身份,使用发送方的私钥发送数据,到了接收方之后,使用发送方的公钥解密数据

      密钥交换:发送数据的一方使用接受方的公钥加密对称密钥,将加密后的对称密钥发送给对方 

      数据加密:通常用于加密小数据


    常用的公钥加密算法:

      RSA:加密,数字签名

      DSA:数字签名算法,Digital signature Algorithm,数字签名算法,只能实现数字签名的功能,有时候该算法被称为DSS,Digital Signature Standard

      Elgamal:


  3)单项加密:

    只能进行加密,不能进行解密,从已知数据中提取密码指纹

    特性:

      1.定长输出

      2.雪崩效应

    功能:

      保证数据的完整性

    常用的算法:

      md5:massage digest version 5 ,信息摘要算法的第五版

        128bit定长输出

      sha系列:

        sha-1:secure hash algorithm,安全哈希算法,160bit定长输出

        sha224

        ssh256

        ssh384

        ssh512


  4)密钥交换算法:IKE(Internet key exchange)

    公钥加密

    DH算法:deffie-hellman


  密钥


国际标准化组织(ISO)定义了证书的结构和认证标准:X.509协议标准

证书里面包括的:

  拥有者的名称

  拥有者所提交的公钥信息

  有效期

  证书的版本号

  证书的序列号

  签发算法ID

  签发CA的名称

  主体名称

  签发机构的唯一标识

  签发机构的数字签名

  扩展信息


PKI:public key infrastructure,公钥基础设施

  证书的签证机构:CA

  注册机构:RA

  证书吊销列表:CRL,certification Revoke List

  证书存取库:CAB,certification Access Base


CA如何发挥其作用:

  1.通信双方互相交换证书,

  2.双方协商加密算法

  3.双方验证证书的真伪

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

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

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

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


  SSL:Secure Socket Layer,安全的套接字层


TLS:Transport Layer Security,传输层安全

  IETF:Internet Engineering Task Force,互联网工程项目小组

  分层设计:

    1.最底层:实现基础算法的原语的实现,AES,md5,sha...

    2.向上一层:各种算法的基本实现

    3.再向上一层:各种算法组合实现的半成品

    4.最高层:各种组件拼装而成的各种成品密码学协议软件


SSL/TLS的handshake(握手)的四个阶段:

  1.客户端向服务器索要证书,并验证证书是否合法

    Client Hello发送的信息内容

      支持的协议版本,如:TLS V1.2

      客户端生成一个随机数,稍后用户生成会话密钥

      支持的加密算法,如:AES,DES,RSA等

      支持的压缩算法


  2.双方协商生成会话密钥

    Server Hello发送的信息内容

      确认使用的加密协议的版本号,如 TLS V1.2

      服务器生成一个随机数,稍后用于生成会话密钥

      确认加密算法及压缩算法


  3.双方采用已经生成的会话密钥进行安全加密的通信

    客户端验证服务器证书,在确认无误后取出其公钥


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

      验证发证机构(CA)

      验证证书的完整性

      验证证书的持有者信息

      验证证书的有效期

      验证证书的吊销列表


    客户端发送信息给服务器端

      一个随机数,用于服务器上的公钥加密

      编码格式变更的通知,表示随后的信息都将用双方已经协商好的加密算法和秘钥进行加密发送 


    客户端握手结束


  4.双方互相通告握手结束的信息

    服务器收到客户端发送来的此次握手阶段的第三个随机数Pre-Master-key,计算生成本次会话所用到的会话密钥,向客户端发送相关信息

      编码变更通知,表示随后的信息都将用双方已经协商好的加密算法和密钥进行加密发送,


    服务器端握手结束

  


本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1953488,如需转载请自行联系原作者

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