RSA 非对称加密 数字签名 数字证书
什么是RSA加密算法
RSA加密算法是一种非对称加密算法,算法的数学基础是极大数分解难题。
RSA加密算法的强度也就是极大数分解的难度,目前700多位(二进制)的数字已经可以破解,1024位认为是比较安全的,2048则是非常安全的。
在RSA加密算法中,密钥由两部分组成,称之为公钥和私钥,私有由发送方自己保存,不能泄漏。公钥由发送方公布出去。发送方发送消息时,会用公钥对消息进行加码,接收方必须要使用对应的私钥才能将加密后的信息解开。因此,只要私钥不泄漏,通信内容就不会被破解。
如何保证消息不会被篡改
虽然使用RSA加密之后,只有持有密钥才可以解密,但是这并不能组织或者发现消息被篡改了。为了防止消息在传输过程中被篡改,引入类数字签名的概念。
数字签名
发送方在发送消息之前,会使用消息摘要算法对发送内容进行摘要,然后用私钥对摘要进行加密,加密后的内容作为数字签名随消息一起发送。接收方收到消息之后,会对消息进行解密,解密之后进行摘要计算,得到摘要。接着对数字签名进行解密,得到另一分摘要,将两份摘要进行对比,如果相同,则说明消息没有被篡改过。
数字证书
虽然RSA算法能保证消息不被破解,数字签名也能保证消息不被篡改,但是RSA算法中使用的公钥却很难有效的分发,因为公钥无法证明自己就是由发送方发出的,它也有可能是恶意的人冒名顶替分发出来的。
为了解决这种问题,需要引入第三方权威机构,发送方和接收方都应该要信任该机构,然后由该机构来给他们办法一个证书,证书包含有颁发机构信息,证书持有人信息,以及证书持有人的公钥,这些信息会使用私钥进行数字签名,这样就能够保证证书的安全。接收方收到这个证书,只要使用第三方权威机构的公钥对证书解密,即可知道证书的真伪。
RSA 非对称加密 数字签名 数字证书的更多相关文章
- https原理及其中所包含的对称加密、非对称加密、数字证书、数字签名
声明:本文章已授权公众号Hollis转载,如需转载请标明转载自https://www.cnblogs.com/wutianqi/p/10654245.html(安静的boy) 一.为什么要使用http ...
- RAS非对称加密与数字证书数字签名
它用图片通俗易懂地解释了,"数字签名"(digital signature)和"数字证书"(digital certificate)到底是什么. 我对这些问题的 ...
- [区块链|非对称加密] 对数字证书(CA认证)原理的回顾
摘要:文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的 ...
- HTTPS加密那点事-对称、非对称加密、数字证书
转自:[漫画]https 加密那点事 首先,HTTP协议的缺点:没有对数据进行加密,都是明文传输的.如果要改进这种明文传输的协议,该如何做呢? 对称加密: 在每次发送真实数据之前,服务器先生成一把密钥 ...
- 和安全有关的那些事(非对称加密、数字摘要、数字签名、数字证书、SSL、HTTPS及其他)
转自http://blog.csdn.net/bluishglc/article/details/7585965 对于一般的开发人员来说,很少需要对安全领域内的基础技术进行深入的研究,但是鉴于日常系统 ...
- Atitit RSA非对称加密原理与解决方案
Atitit RSA非对称加密原理与解决方案 1.1. 一.一点历史 1 1.2. 八.加密和解密 2 1.3. 二.基于RSA的消息传递机制 3 1.4. 基于rsa的授权验证机器码 4 1.5. ...
- CryptoAPI与openssl RSA非对称加密解密(PKCS1 PADDING)交互
(以下代码中都只做测试用,有些地方没有释放内存...这个自己解决下) 1.RSA非对称的,首先提供一个供测试用的证书和私钥的数据 1)pem格式的证书和私钥(公私钥是对应的)的base64编码 voi ...
- RSA非对称加密Java实现
原文 加密基础方法类 import java.security.MessageDigest; import sun.misc.BASE64Decoder; import sun.misc.BASE64 ...
- php RSA非对称加密 的实现
基本概念 加密的意义 加密的意义在于数据的传输过程中,即使被第三方获取到传输的数据,第三方也不能获取到数据的具体含义. 加密方式分为对称加密和非对称加密 什么是对称加密? 对称加密只使用一个秘钥,加密 ...
随机推荐
- Swift - 31 - 常量参数, 变量参数和inout参数
//: Playground - noun: a place where people can play import UIKit // swift中默认情况下, 传入的参数是不可以修改的, 也就是l ...
- Hibernate中分页
query.setFirstResult(4);query.setMaxResults(5); 这两个方法就是hibernate的分页
- StartCoroutine/StopCoroutineInvoke
本文由博主(YinaPan)原创,转载请注明出处:http://www.cnblogs.com/YinaPan/p/Unity_Coroutine.html using UnityEngine; us ...
- springmvc问题汇总
1. IncompatibleClassChangeError in spring mvc Failed to read candidate component class....... ...
- 09_linux下安装Nvidia显卡驱动
下载驱动 去官网找去,哈哈o(^▽^)o 安装kernel source [root@localhost ~]# yum install kernel-devel 如果还不行,试试下面的 [root@ ...
- wamp虚拟机配置
1.找到httpd.conf 里面:找到 # Virtual hosts 开启虚拟机Include conf/extra/httpd-vhosts.conf 2 编辑httpd-vhosts.con ...
- Python自动化运维之12、面向对象进阶
上一篇<面向对象基础>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公 ...
- IE6不完全支持!important
!important !important是CSS1中定义的语法,作用是提高指定样式规则的应用优先权.语法格式如:.demo{color:red !important;} IE6支持重定义的!impo ...
- LightOJ 1317 第六周比赛A题
A - A Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Description Y ...
- C:\WINDOWS\system32\config\systemprofile\Desktop引用了一个不可用的位置
使用迅雷下载压缩文件到桌面时,下载完毕后,如果直接点击"打开文件",则迅雷会报错: C:\WINDOWS\system32\config\systemprofile\Desktop ...