对称加密与非对称加密,以及RSA的原理
一 , 概述
在现代密码学诞生以前,就已经有很多的加密方法了。例如,最古老的斯巴达加密棒,广泛应用于公元前7世纪的古希腊。16世纪意大利数学家卡尔达诺发明的栅格密码,基于单表代换的凯撒密码、猪圈密码,基于多表代换的维吉尼亚密码,二战中德军广泛使用的恩格玛加密机….但最终都找到了有效的破解算法。
现代密码学的诞生标志是1977年1月由美国国家标准局公布的数据加密标准(Data Encryption Standard,DES)。
在经过20多年之后,为适应现代的安全要求,2000年美国国家和标准技术协会筛选和评测出了被称为AES(Advanced Encryption Standard)的加密算法作为新的加密标准。目前,AES已被广泛使用,且未发现致命缺陷。到目前为止,AES是一个安全的加密算法。
然而,在加密算法之外,面临一个问题,那就是:秘钥的分发。就是说,解密方如何获得加密方的秘钥呢? 从而出现了:对称加密和非对称加密。
二,对称加密和非对称加密
1. 对称加密
对称加密指的就是加密和解密使用同一个秘钥,所以叫做对称加密。对称加密只有一个秘钥,作为私钥。
常见的对称加密算法:DES,AES,3DES等等。
2. 非对称加密
非对称加密指的是:加密和解密使用不同的秘钥,一把作为公开的公钥,另一把作为私钥。公钥加密的信息,只有私钥才能解密。私钥加密的信息,只有公钥才能解密。
常见的非对称加密算法:RSA,ECC
3. 区别
对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.
例如针对C/S模型,
1. 服务端计算出一对秘钥pub/pri。将私钥保密,将公钥公开。
2. 客户端请求服务端时,拿到服务端的公钥pub。
3. 客户端通过AES计算出一个对称加密的秘钥X。 然后使用pub将X进行加密。
4. 客户端将加密后的密文发送给服务端。服务端通过pri解密获得X。
5. 然后两边的通讯内容就通过对称密钥X以对称加密算法来加解密。
对称加密与非对称加密,以及RSA的原理的更多相关文章
- 数字签名中公钥和私钥是什么?对称加密与非对称加密,以及RSA的原理
http://baijiahao.baidu.com/s?id=1581684919791448393&wfr=spider&for=pc https://blog.csdn.net/ ...
- (转)对称加密与非对称加密,以及RSA的原理
一 概述 二对称加密和非对称加密 对称加密 非对称加密 区别 三RSA原理 整数运算 同余运算 当模数为合数n时 当模数为质数p的时候 离散对数问题 RSA原理 一 , 概述 在现代密码学诞生以前,就 ...
- Java安全之对称加密、非对称加密、数字签名
原文地址: http://blog.csdn.net/furongkang/article/details/6882039 Java中加密分为两种方式一个是对称加密,另一个是非对称加密.对称加密是因为 ...
- https处理的一个过程,对称加密和非对称加密
一,对称加密 所谓对称加密,就是它们在编码时使用的密钥e和解码时一样d(e=d),我们就将其统称为密钥k. 对称加解密的过程如下: 发送端和接收端首先要共享相同的密钥k(即通信前双方都需要知道对应的密 ...
- 理解SSL、HTTPS原理中的对称加密与非对称加密
1.对称性加密 双方使用的同一个密钥,既可以加密又可以解密,这种加密方法称为对称加密,也称为单密钥加密. 简单来说就是:加密与解密都是同一个秘钥. 优点:通常在消息发送方需要加密大量数据时使用,算 ...
- android 对称加密,非对称加密 android 常见的加密
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha android 常见的加密 ======== 不可逆加密:md5,sha1 可逆的加密中 ...
- 【上】安全HTTPS-全面具体解释对称加密,非对称加密,数字签名,数字证书和HTTPS
一,对称加密 所谓对称加密.就是它们在编码时使用的密钥e和解码时一样d(e=d),我们就将其统称为密钥k. 对称加解密的步骤例如以下: 发送端和接收端首先要共享同样的密钥k(即通信前两方都须要知道相应 ...
- openssl 下的对称加密和非对称加密
对称加密: 在加密和解密过程中使用相同的密钥, 或是两个可以简单地相互推算的密钥的加密算法. 非对称加密: 也称为公开加密, 它需要一个密钥对, 一个是公钥, 一个是私钥, 一个负责加密, 一个负责解 ...
- 对称加密与非对称加密,及Hash算法
一 , 概述 在现代密码学诞生以前,就已经有很多的加密方法了.例如,最古老的斯巴达加密棒,广泛应用于公元前7世纪的古希腊.16世纪意大利数学家卡尔达诺发明的栅格密码,基于单表代换的凯撒密码.猪圈密码, ...
随机推荐
- RF内建的变量
${CURDIR} 提供当前测试文件存放的绝对路径.该变量是大小写敏感的.${TEMPDIR} 获取操作系统临时文件夹的绝对路径. 在UNIX系统是在/tmp, 在windows系统是在c:\Docu ...
- PMP十大知识领域整理
2018-7-28至2018-12-8历时4个多月,学写了PMP(拍马屁),感觉自己经历了,哇-唉-哦-嗯这四个阶段 刚开始觉得如遇圣经,被PMP的知识体系和老师的精彩课程深深震撼! 后来觉得很多东西 ...
- Opengl编程指南第二章:状态管理、几何绘图
//http://blog.csdn.net/longhuihu/article/details/7701874 1.绘图基础 清除窗口 glClearColor(0.0, 0.0, 0.0, 0.0 ...
- Java操作文件转码
package downloadTest; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...
- 【Python Programe】WSGI (Web Server Gateway Interface)
Part1: What is a Web server? 一个位于物理服务器上的网络服务器(服务器里的服务器),等待客户端去发送request,当服务器接收到request,就会生成一个respons ...
- Unable to locate parent package [json-default]
Unable to load configuration. - [unknown location] Caused by: Unable to locate parent package [json- ...
- Appium+python移动端自动化测试-环境搭建(一)
搭建所在系统环境:Windows7版本64位系统 一.环境准备 jdk8.0.151 android-sdk_r20.3.4-windows python3.5 appium1.4.16.1 Node ...
- 如何查看java class文件的jdk版本
方法1: 用二进制的查看方式打开该class文件,参考如下: 只看第一行数据,前面8个字节CA FE BA BE 是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节(00 33) ...
- python学习笔记(五)os、sys模块
一.os模块 print(os.name) #输出字符串指示正在使用的平台.如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'. print(os.getcwd( ...
- centos 解决error: rpmdbNextIterator问题 (转)
昨天重装RedHat4以后出现了下面这个问题 [root@RedHat4 ~]# rpm -qa |grep vimerror: rpmdbNextIterator: skipping h# ...