关于数据传输中加密解密那点事儿(一)

随着互联网的兴起,越来越多的信息和资源要通过网络传输完成;然而在这些数据传输中总有一些“无关人员”做一些窃听、盗取、篡改等危害数据安全的行为,所以我们要对数据进行加密处理,以保证数据的安全传输;

所以有了一下几种加密方式:

一、对称加密:

这种算法简单来说就是 数据的发送方和接收方都必须要有同一种密钥(加密数据所用到的密钥),在数据的传输中 数据与密钥都通过加密的方式传送;

特性:在数据加密中,数据被分成固定大的块,逐个加密;加密和解密速度也快;

缺陷:因为加密和解密使用同一种密钥,所以需要发送方和传送方都要保留密钥,导致对于保存密钥的数量也会越来越多;密钥的分发的保密性也过于困难;

二、单向加密:

这种加密方式就是单纯的加密过程,无法自己进行解密;所以不能用作直接进行加密数据信息。常用的算法有两种:MD5和SHA算法,用这种方法对数据中的某一段进行加密处理,获得一个叫“特征码”的东西。 这种“特征码”可以用来确定原数据真伪性和数据的完整性;

特性:定长输出;雪崩效应(更改原数据中任意一个字节,都会使得特征码有截然不同的变化)

三、公钥加密算法:

这种算法中所用到的密钥有两种:私钥和公钥(由私钥抽取生成的)

私钥的大小:512bit、1024bit、2048bit、4096bit、8192bit、16384bit;

这种加密方式对数据的加密安全等级较高;简单来说就是使用私钥加密数据,解密则必须用公钥来解密;若使用公钥加密,则必须使用私钥来解密;

由于私钥的大小过大,对于数据的加密所消耗的系统资源和时间也会过多;所以就产生了缺陷;

通常这种加密方式很少用来加密大批量的数据,所以它可以用来加密以下几种:

⑴数字签名的加密

数字签名是用来让数据的接收方确认发送方的身份的;

⑵密钥加密

在对称加密中的密钥交换时,可以用公钥加密法来加密密钥;

⑶小段数据的加密

当所需要传送的数据是少量的情况下,可以使用公钥加密;

常用的公钥加密算法:

RSA:加密数字签名

DSA:数字签名算法;只能实现数字签名的功能;有时该算法被称为DSS;

ELgamal

有了以上几种加密方式,在数据传输中的联合应用,就可以达到安全传输数据的目的;

     

从公钥加密方式可知,传输数据双方都要有对方的公钥才可以对数据进行解密;那么问题来了,这个公钥如何获得?所以这里产生了第三方机构,也就是CA(Certification Authority)。

CA是认证身份的中心,是用来确认公钥拥有者的真实身份的;类似于我们生活中的身份证;

CA机构的工作:

1.通信双方交换证书;

2.双方协商加密算法;

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

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

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

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

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

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

证书里面主要包括:

拥有者的名称:

拥有者所提交的公钥

有效期

证书的版本号

证书的序列号

签发算法ID

签发CA的名称

主体名称

发证者的唯一标识

发证者的数字签名;

扩展信息;

有了这个机构我们就能安心的在网络中传输数据了;简单的总结下数据是如何传输的:

1.通信双方互相交换证书,并到信任的CA进行证书验证;

2.发送方使用某种对称加密算法对数据进行加密;对加密后的数据使用单向加密计算其特征值;发送方再用自己的私钥加密此特征值,以证明数据来源的可靠;发送方使用接收方的证书加密对称密钥;

3.接收方在收到数据之后,先使用自己的私钥解密对称密钥;然后使用发送方的公钥解密特征值,再利用相同的单向加密算法,重新结算加密数据的特征值;比较两个特征值;如果特征值一致,则表明数据完整;再用解密出来的对称密钥解密出原始数据

时间: 2024-08-03 23:49:17

关于数据传输中加密解密那点事儿(一)的相关文章

关于数据传输中加密解密那点事儿(二)

基于上一篇,知道了数据加密中所用到的加密方式及算法,还有某些认证机构:              那么这一篇就用来实际操作,如何使用命令来完成数据的加密及解密: 首先,在操作之前,要了解到两个关于安全传输的协议即:SSL与TLS SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层.SSL通过互相认证.使用数字签名确保完整性.使用加密确保私密性,以实现客户端和服务器之间的安全通讯.该协议由两层组成: TLS:(Transpo

linux中加密解密以及Opensll建立CA

现在如今个人以及公司对自己的数据以及隐私越来越关注,之前美国斯诺登事件的爆出,又将通讯安全话题引发激烈的讨论.下面我们就来说下linux中的加密解密,以及通讯过程中如何确保通讯的安全. 常见的加密方法有三种:对称加密.单向加密.非对称加密,下面简单说下这三种加密方式. 对称加密:加密和解密使用同一个密钥:依赖于算法和密钥:安全性依赖于密钥,而非算法常见算法有DES:Data Encryption Standard, 56bits.3DES.AES: Advanced Encrpytion Sta

.Net中的加密解密

返回博客列表 转 .Net中的加密解密 李朝强 发布时间: 2015/11/23 12:55 阅读: 33 收藏: 3 点赞: 0 评论: 0 在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全.本文将简单地介绍了加密解密的一些概念,以及相关的数字签名.证书,最后介绍了如何在.NET中对数据进行对称加密和解密. 加密和解密 说 到加密,可能大家最熟悉的就是MD5了,记得几年前我刚开始接触Web编程的时候,研究的一个ASP论坛程序,它的用户密码就是采用的MD5进行加密. MD5实际

加密解密五种算法的实现

1.  实验目的 通过五种加密解密算法的分析与设计,用高级语言实现加密解密过程.通过实验过程理解系统中加密解密的基本思想和实现方法. 2.  实验基本原理与方法 ①单字母替换加密方法——恺撒密码 加密方法是把英文字母按字母表的顺序编号作为明文,将密钥定为m,加密算法为将明文加上密钥m,得到密码表,通过相反的过程由密文得到明文. ②单字母替换加密方法——字母倒排序 在加密.解密的过程中明文和密文按照字母表的顺序倒排对应,即A对应Z,B对应Y. ③单字母替换加密方法——单表置换密码       由密

Aes 加密解密 java加密解密

使用AES加密解密代码详解 首先,如果是使用nodejs + vue 写的前端, 那么你需要npm 加载一个js文件 npm i crypto-js --save --save-exact npm install crypto-js java代码加密解密类 package com.telling.util.crypto; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import org.apache.co

.Net AES、RSA 加密解密

2019就这样过完了,好像还有很多事情没来得及做,然后就过去了,整的还有很多遗憾,把握住2020的每一天时间吧,望你们的2020年不要浑浑噩噩,要忙忙碌碌.基础.学习.创新.记录.总结.生活都要前进向前看.过程重要结果更重要,不希望N年之后想想之前怎么不努力,薪水怎么不加,这些都是有原因的, 机遇都是给准备着的人的,总感觉这句话有问题,我时刻都准备着呢,机遇咋就是不给我,证明我还是不够努力不够上进呗.加油吧 小姑娘你的人生还很长,驾照还没考,更好的美食还没吃,薪水还没加,钱包还没满,世界各地去的

Linux中加密和解密技术及CA认证

网络安全通信: 为了不让自己的隐私,信息等随随便便就能让获取,所以需要对数据进行加密处理,保证数据在传输的过程中不被别人获取,网络通信安全需要达到以下三个目的: 1.数据的保密性 2.数据的完整性 3.来源的合法性 解决网络安全通信的方案: SSL:Secure Sockets Layer  安全的套接层,位于应用层和传输层之间,为数据通信提供安全支持,可在服务端和客户端同时支持一种加密算法.目前版本SSLV2,SSLV3(常用). HTTP调用SSL协议就变成HTTPS,多了层加密解密功能.

网络通信中的加密解密及openssl和创建私有CA详解

1.为什么网络通信要进行数据加密? 我们在网络进行通信时候,如果数据以明文的方式传输,在传输过程中,数据可以被篡改.窃听.伪装等,如图: 当A向B通信时,C可以在数据传输的过程,将数据进行抓包,例如应用wireshark抓包软件,就可以抓取通信的数据包,进行对抓到的内容进行分析,得出传输数据的内容. 2.数据加密方式有哪些? 从分类上划分,加密技术有四种: 1)对称加密 ◆ 对称加密:加密和解密使用同一个密钥 ·DES:Data Encryption Standard,56bits ·3DES:

iOS中使用RSA对数据进行加密解密

RSA算法是一种非对称加密算法,常被用于加密数据传输.如果配合上数字摘要算法, 也可以用于文件签名. 本文将讨论如何在iOS中使用RSA传输加密数据. 本文环境 mac os openssl-1.0.1j, openssl需要使用1.x版本, 推荐使用[homebrew](http://brew.sh/)安装. Java 8 RSA基本原理 RSA使用"秘匙对"对数据进行加密解密.在加密解密数据前,需要先生成公钥(public key)和私钥(private key). 公钥(publ