对称/非对称/混合加密的冷知识

数据在互联网上传输,要考虑安全性. 讲到安全,要从三方面考虑:

  • 1、authentication 每一个IP包的认证,确保合法源的数据
  • 2、data integrity 验证数据完整性,保证在传输过程中没有被人为改动
  • 3、confidentiality (私密性)数据包的加密

下面谈谈如何对数据加密. 于是有了非对称加密

对称加密

对称加密算法---使用一把密匙来对信息提供安全的保护。只有一个密匙,即用来加密,也用来解密

特点:
- 1、速度快
- 2、密文紧凑
- 3、用于大量数据的传送 对称加密代表:DES、3DES、AES 3DES--有三个密匙,用第一个密匙加密,用第二个密匙解密,再用第三个密匙加密

他有个致命的缺点, 密钥传输问题.

非对称加密

绘图软件: 链接:https://pan.baidu.com/s/1hsKU560 密码:nm72

他有个好处, 公钥随便扔给对方,让对方去加密数据,发给我, 我用我的私钥来解密.

不得不说公钥和私钥是一对情侣,你在我在,你亡我亡,你系的铃世上只有我能解.


- 加解密如何操作? 非对称加密: 有一对密匙,一个叫公匙,一个叫私匙,如果用其中一个加密,必须用另一个解密。 - 非对称加密有什么特点? - 1、速度慢
- 2、密文不紧凑
- 3、通常只用于数字签名,或加密一些小文件。 - 非对称加密常见的算法有哪些? RSA、ECC - 非对称加密常见操作模式有?
非对称加密代表RSA--有一对密匙,一个公匙,一个私匙,私匙加密,公匙解密,或者公匙加密,私匙解密 非对称加密可以有两种应用:
- 1、公钥加密,私钥解密,叫加密
- 2、私钥加密,公钥解密,叫数字签名 他也有个致命的弱点. 加密速度超慢.

带加密的数字签名

混合加密- 理想的应用方法

- 用非对称加密法来传送对称加密的密匙。
- 用对称加密法来加密实际的数据。 数字签名不但证明了消息的内容,还证明了发送方的身份。
密钥化的HASH--使用密钥对生成的消息摘要进行加密时,被称为加密的消息摘要。

说到这里,或许还是云里雾里,到底是不是那回事呢,使用openssl实操下 体验下对称加密和非对称加密.

使用openssl实现对数据的对称/非对称加密实操

认证机制(可靠性)和散列机制(完整性)

认证机制(这里所指的是设备的认证,而不是用户的认证)

现代的基本加密技术要依赖于消息之目标接收者已知的一项秘密,关键的问题是如何保障密钥的安全。

- 1、用户名和密码
- 2、OTP(one time password)一次性密码
- 3、生物认证(指纹、眼膜)
- 4、预共享密钥
- 5、数字证书
- 6、加密临时值

散列机制--用来做完整性检验

散列函数(就是HASH)--把一大堆数据经过计算得到一个较小的、定长的值,散列是一种不可逆函数。这意味着一旦明文生成散列,就不可能或者说极端困难再将其由散列转换成明文。

HASH的特点:
- 1、不管输入什么数据,输出是定长的
- 2、只要输入有一点微小变化,输出就会发生很大的变化,也就是雪崩效应
- 3、不可逆 ## HASH的算法:
- 1、md5 提供128位的输出 md5是验证,不是加密技术,用来做哈希
- 2、SHA 提供160位的输出 HMAC--使用散列的消息认证编码,或者叫密钥化的HASH,是一种使用HASH来进行认证的机制。可以用来做预共享密钥的认证。

[svc]对称加密/非对称加密细枝末节-如何做到数据传输的authentication/data integrity/confidentiality(私密)的更多相关文章

  1. 第十四章 调试及安全性(In .net4.5) 之 对称及非对称加密

    1. 概述 本章内容包括:对称及非对称加密算法..net中的加密类.使用哈希操作.创建和管理签名认证.代码访问权限 和 加密字符串. 2. 主要内容 2.1 使用对称和非对称加密 ① 对称加密:使用同 ...

  2. Java进阶(八)Java加密技术之对称加密 非对称加密 不可逆加密算法

    对称加密 非对称加密 不可逆加密算法 根据密钥类型不同可以将现代密码技术分为两类:对称加密算法(私钥密码体系)和非对称加密算法(公钥密码体系). 1 对称加密算法 原理 对称加密算法中,数据加密和解密 ...

  3. HTTPS加密那点事-对称、非对称加密、数字证书

    转自:[漫画]https 加密那点事 首先,HTTP协议的缺点:没有对数据进行加密,都是明文传输的.如果要改进这种明文传输的协议,该如何做呢? 对称加密: 在每次发送真实数据之前,服务器先生成一把密钥 ...

  4. C#.NET中对称和非对称加密、解密方法汇总--亲测可用

    C#.NET中对称和非对称加密.解密方法汇总--亲测可用   在安全性要求比较高的系统中都会涉及到数据的加密.解密..NET为我们封装了常用的加密算法,例如:MD5,DES,RSA等.有可逆加密,也有 ...

  5. 个人理解c#对称加密 非对称加密 散列算法的应用场景

    c#类库默认实现了一系列加密算法在System.Security.Cryptography; 命名空间下 对称加密 通过同一密匙进行加密和解密.往往应用在内部数据传输情况下.比如公司a程序 和B程序 ...

  6. 对称、非对称加密算,openssl生成证书(笔记)

    对称加密算法 1.密钥只有一个,加密和解密都需要同一个密钥2.DES,IDEA,AES3.明文+密钥=密文, 密文+密钥=明文4.加密速度快,系统开销小,适用大量数据的加密 非对称加密算法1.密钥由公 ...

  7. Android Keystore 对称-非对称加密

    Android数据加密: Anroid数据加密方式 Android 提供了 KeyStore 等可以长期存储和检索加密密钥的机制,Android KeyStore 系统特别适合于存储加密密钥. “An ...

  8. 对称与非对称加密;SSL;HTTPS;AJP

    1.对称加密就是加密与解密的时候都是用一个密码 2.非对称加密,有一对密码A,B:用A加密就得用B解密,相对的用B加密就得用A解密 3.公钥与私钥,这一对密码,随便拿一个公布出去,那个就是公钥,剩下一 ...

  9. Java对称与非对称加密解密,AES与RSA

    加密技术可以分为对称与非对称两种. 对称加密,解密,即加密与解密用的是同一把秘钥,常用的对称加密技术有DES,AES等 而非对称技术,加密与解密用的是不同的秘钥,常用的非对称加密技术有RSA等 为什么 ...

随机推荐

  1. bochs配置文件解释说明

    ############################################### # Configuration file for Bochs ##################### ...

  2. UVA 11624-Fire!【双BFS】

    <题目链接> 题目大意: 你的任务是帮助J走出一个大火蔓延的迷宫.J每分钟可以超上下左右四个方向移动,而所有着火的格子每一分钟都会往四个方向蔓延一格.迷宫中有一些障碍,J和火都无法进入.当 ...

  3. SAC#1 - 组合数

    P3414 SAC#1 - 组合数 组合数的性质,求(1<<(n-1))%mod即可.其实要快速幂. #include<bits/stdc++.h> #define MOD 6 ...

  4. 001.HAProxy简介

    一 HAProxy简介 HAProxy是可提供高可用性.负载均衡以及基于TCP(从而可以反向代理mysql等应用)和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProx ...

  5. Java中递归和循环的优劣

    介绍: 你用你手中的钥匙打开一扇门,结果去发现前方还有一扇门,紧接着你又用钥匙打开了这扇门,然后你又看到一扇门......但是当你开到一扇门时,发现前方是一堵墙无路可走了,你选择原路返回--这就是递归 ...

  6. js算法初窥06(算法模式03-函数式编程)

    在解释什么是函数式编程之前,我们先要说下什么是命令式编程,它们都属于编程范式的一种.命令式编程其实就是一块一块的代码,其中包括了我们要执行的逻辑或者判断或者一些运算.也就是按部就班的一步一步完成我们所 ...

  7. mfc调用cmd执行完保留黑框

    mfc调用cmd的方法有很多,本文采用 ShellExecute ShellExecute(AfxGetMainWnd()->m_hWnd,L"open",L"cm ...

  8. 系统windows版本修改

    系统基本信息修改 系统windows版本修改 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com ...

  9. Python3练习题系列(09)——物以类聚,人以群分

    目标: 用类管理同类事物 解析: 用到“class”的编程语言被称作“Object Oriented Programming(面向对象编程)”语言.首先你需要做出“东西”来,然后你“告诉”这些东西去完 ...

  10. JavaScript:谈谈let和const

    最近接触到ES6的一些相关新特性,想借let和const两个命令谈谈JavaScript在变量方面的改进. 由于let和const有很多相似之处,我们就先说一说let吧. 1. let添加了块级作用域 ...