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

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

  • 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. BZOJ1297 [SCOI2009]迷路 矩阵乘法

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1297 题意概括 有向图有 N 个节点,从节点 0 出发,他必须恰好在 T 时刻到达节点 N-1. ...

  2. 006 Spark中的wordcount以及TopK的程序编写

    1.启动 启动HDFS 启动spark的local模式./spark-shell 2.知识点 textFile: def textFile( path: String, minPartitions: ...

  3. 000 Python的运行

    1.在命令行中运行 2.使用shell(IDLE) 3.新建.py脚本 只要是编辑器都可以 4.然后脚本在IDLE中运行 首先,需要先打开IDLE,然后使用File下面的open打开所需要的py文件, ...

  4. 洛谷 P1135 奇怪的电梯 【基础BFS】

    题目链接:https://www.luogu.org/problemnew/show/P1135 题目描述 呵呵,有一天我做了一个梦,梦见了一种很奇怪的电梯.大楼的每一层楼都可以停电梯,而且第 i 层 ...

  5. 2-sat-总结+例题

    https://www.cnblogs.com/31415926535x/p/10644419.html 从寒假就开始准备学2sat,,然后当时了解了一下模板就溜了,,,一直到上个星期,,三月底才好好 ...

  6. NMAP为什么扫描不到端口

    NMAP为什么扫描不到端口   NMAP是知名的网络端口扫描工具.但很多新人发现,使用NMAP经常扫描不出来任何端口,尤其是手机之类.这实际存在一个理解上的误区.扫描端口是为了发现主机/设备上存在的对 ...

  7. Shiro笔记(一)基本概念

    Shiro笔记(一)基本概念 一.简介 Shiro是一个Java安全框架,可以帮助我们完成:认证.授权.加密.会话管理.与Web集成.缓存等. Authentication:身份认证/登录,验证用户是 ...

  8. curl的概念及相关工具下载

    https://baike.so.com/doc/6746112-6960657.html https://curl.haxx.se/download.html https://curl.haxx.s ...

  9. Monte Carlo计算Pi,python实现

    Monte Carlo import random import matplotlib.pyplot as plt import numpy as np 6 # 函数模拟点的随机掉落,并分为两组 de ...

  10. Java实现字符串倒序输出的几种方法

    1. 最容易想到的估计就是利用String类的toCharArray(),再倒序输出数组的方法了. import javax.swing.JOptionPane; public class Rever ...