原文地址:http://www.ittenyear.com/414/rsa/

怎么理解RSA算法
能够把非对称加密算法里的公钥想象成一个带锁的箱子,把私钥想象成一把钥匙
能够把对称加密算法里的密钥想象成箱子和钥匙的组合

HTTPS使用了非对称加密和对称加密的组合:RSA和DES的组合就是,用DES把用户数据加密,然后把DES的密钥用RSA的公钥加密,这样用户数据和DES的密钥都是安全的,就像是把用户数据锁在了DES的箱子里,然后把DES的钥匙锁在了RSA的箱子里,而RSA的钥匙在server端保存着,所以在运送这两个箱子的途中,数据不会被窃取,是安全的

具体原理能够看一下阮一峰的博客文章,写的很具体:


摘抄一些文字:
1976年曾经,全部的加密方法都是对称加密算法。这样的加密模式有一个最大弱点:甲方必须把加密规则告诉乙方。否则无法解密。

保存和传递密钥,就成了最头疼的问题。

1976年。D和H两个人提出了非对称加密算法
1977年,R/S/A三个人设计了RSA算法,RSA算法一直是最广为使用的"非对称加密算法"。

密钥越长,它就越难破解。

依据已经披露的文献,眼下被破解的最长RSA密钥是768个二进制位。也就是说,长度超过768位的密钥,还无法破解(至少没人公开宣布)。因此能够觉得。1024位的RSA密钥基本安全,2048位的密钥极其安全

RSA算法的实现方式决定了公钥(n,e) 仅仅能加密小于n的整数m,那么假设要加密大于n的整数,该怎么办?有两种解决方法:一种是把长信息切割成若干段短消息,每段分别加密;还有一种是先选择一种"对称性加密算法"(比方DES)。用这样的算法的密钥加密信息,再用RSA公钥加密DES密钥

n的长度就是密钥长度。3233写成二进制是110010100001,一共同拥有12位,所以这个密钥就是12位。

实际应用中,RSA密钥通常是1024位,重要场合则为2048位



怎么理解RSA算法的更多相关文章

  1. 更多细节的理解RSA算法

    一.概述 RSA算法是1977年由Ron Rivest.Adi Shamir 和 Leonard Adleman三人组在论文A Method for Obtaining Digital Signatu ...

  2. [已解决] 快速理解RSA算法

    RSA算法基础详解 http://www.cnblogs.com/hykun/p/RSA.html RSA算法原理(一) http://www.ruanyifeng.com/blog/2013/06/ ...

  3. [转] 带你彻底理解RSA算法原理

    http://blog.csdn.net/dbs1215/article/details/48953589 1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法 ...

  4. 彻底理解RSA算法原理

    1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法.在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为对称密码和公钥密码 对称密码:加 ...

  5. 带你彻底理解RSA算法原理,很简单的

    1. 什么是RSA RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法. 在了解RSA算法之前,先熟悉下几个术语 根据密钥的使用方法,可以将密码分为 对称密码 和 公钥密码 对称 ...

  6. 信息安全-5:RSA算法详解(已编程实现)[原创]

    转发注明出处:http://www.cnblogs.com/0zcl/p/6120389.html 背景介绍 1976年以前,所有的加密方法都是同一种模式: (1)甲方选择某一种加密规则,对信息进行加 ...

  7. (转)RSA算法原理(二)

      作者: 阮一峰 日期: 2013年7月 4日 上一次,我介绍了一些数论知识. 有了这些知识,我们就可以看懂RSA算法.这是目前地球上最重要的加密算法. 六.密钥生成的步骤 我们通过一个例子,来理解 ...

  8. (转)RSA算法原理

    RSA算法原理(二)   作者: 阮一峰 日期: 2013年7月 4日 上一次,我介绍了一些数论知识. 有了这些知识,我们就可以看懂RSA算法.这是目前地球上最重要的加密算法. 六.密钥生成的步骤 我 ...

  9. RSA算法解析

    RSA算法原理(一) 如果你问我,哪一种算法最重要? 我可能会回答"公钥加密算法". 因为它是计算机通信安全的基石,保证了加密数据不会被破解.你可以想象一下,信用卡交易被破解的后果 ...

随机推荐

  1. python hashlib模块 logging模块 subprocess模块

    一 hashlib模块 import hashlib md5=hashlib.md5() #可以传参,加盐处理 print(md5) md5.update(b'alex') #update参数必须是b ...

  2. gulpfile.js备份

    var gulp = require('gulp'); var uglify = require('gulp-uglify'); // var rename = require('gulp-renam ...

  3. 聊聊 Spring Boot 2.0 的 WebFlux

    聊聊 Spring Boot 2.0 的 WebFlux## 前言 对照下 Spring Web MVC ,Spring Web MVC 是基于 Servlet API 和 Servlet 容器设计的 ...

  4. uva 11732 (trie树)

    题意:求N个字符串两两比较,共比较了多少次? #include<iostream> #include<cstring> #include<cstdio> using ...

  5. 【Visual Studio】MFC编辑框自动换行,垂直滚动条自动下移(转)

    原文转自 http://blog.csdn.net/wu_lai_314/article/details/8317395 1.新建一个编辑框控件(Edit Control),将其多行(Multilin ...

  6. How to debug Android Native Application with eclipse

    This blog is inspired by this tutorial http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-a ...

  7. 标准C程序设计七---101

    Linux应用             编程深入            语言编程 标准C程序设计七---经典C11程序设计    以下内容为阅读:    <标准C程序设计>(第7版) 作者 ...

  8. poj 1950(搜索)

    Dessert Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 5430   Accepted: 2029 Descripti ...

  9. RabbitMQ 延迟队列,消息延迟推送

    目录 应用场景 消息延迟推送的实现 测试结果 应用场景 目前常见的应用软件都有消息的延迟推送的影子,应用也极为广泛,例如: 淘宝七天自动确认收货.在我们签收商品后,物流系统会在七天后延时发送一个消息给 ...

  10. dll的使用

    2016-12-11   23:02:24 一:生成DLL 1:创建DLL工程 文件->新建->项目->visual c++->win32->win32控制台应用程序(w ...