设想一下,这种场景,你处在一个狭小的房间里,房间之中有一共有三个人,你是其中一个,你们之间被玻璃隔开,两两对视,现在给另外两个人起个名字叫小红、小明。你和他们通讯只能用写字板来展示给对方(简单起见,只能写数字),也就是说每个人在写字板上所写的信息,另外两个人都会完完全全的看到,这是前提。

  现在问题来了:如果你有些话只想写给小红,而不想让小明知道,可不可能?

  这个问题看起来是不可能的!因为你所写的每一个字都他们都可以看到,但是现在有一个办法,可以完成貌似完不成的任务,办法如下:

首先,你和小红之前认识,接触过,你们俩之间有一个别人不知道的的约定,当我想给小红写一串数字的时候,我自己先在草稿纸上写一遍,然后每个数字都加上4,构成“密文”,再把密文传给小红。比如我想给小红传“”,那我就先在草稿纸上写上“”,然后把每一位数字加4,就变成“”,然后我就把567发给小红,小红收到后,再把每一位数字减去4,就会得出我想要给她发的真实信息,这样,即使别人偷窥到了我们之间传输的“”,也不会明白什么意思。回到小屋里来,虽然我写给小红的信息,小明也会看到,但是我对我所写的信息进行了“加密”,而且只有小红会“解密”,这样,我就完成了和小红之间的单独对话,很巧妙,不是么?

  但是!这个方法有很大的局限性,比如说小红跟你之前不认识呢?既然不认识,你们之间压根就没有什么别人不知道的约定,你再想传给小红就“密文”,她就看不懂了,你看,事情没那么简单了吧?当然你也可以再次和小红在小屋里通过写字板商量另一个约定,但是你们商量的任何约定,小明也会同样看到,现在你就陷入了一个窘迫的处境,你无法完成和小红的单独对话了!但是,神奇的是,你仍然有办法实现与小红的单独对话,神奇的办法如下,强烈建议读者到此自己想一想有何办法,再往下看:

 首先,先给大家介绍一样东西——锁!明白了吧?(什么?不明白?那就继续往下看)。我现在有一把锁和钥匙,我把自己的锁发送出去,这样小明和小红都能收到,然后我让小红自己规定一下我们之间的加密协议,写在纸上,用锁锁起来,再给我发出来,虽然小红发出的加锁的信息小明同样能收到,但是小明没有锁的钥匙,就算得到小红的信息,也无法打开锁偷看小红的真实信息,但是我收到后我有钥匙啊,我就能打开,查看小红的加密规则,然后,我就可以光明正大的和小红的用我们的加密规则进行通信,小明只能咬牙切齿干瞪眼了~~,但是我们之前说只能通过屏幕传递信息,通过锁算是作弊,所以此法还是不通(小明暗喜)。可是还是有方法...

  以上提供一个看起来很巧妙的方法来解决这种场景下的加密通话方案,但别高兴太早,这要放在现实中,还好理解,可是我们是在用计算机,谁家的计算机可以传送大铁锁啊!所以,还是得想个办法,让计算机间接实现这种方法,以便我们和小红可以愉快的通话啊(--小明:为什么要针对我!!),下面就引入计算机中的"锁"和"钥匙"——算法,(--啥算法? --不知道么?自己先想想怎么做!反正是算法。)

  18世纪,有个牛(bian)人(tai),叫欧拉,发现了一个定理,名叫欧拉定理(是不是很熟悉?没错,你们在高数中有过邂逅),而我们今天说的算法,就是以它为核心(看,就算是欧兄去了天堂,但他的研究依然造福几百年后的人们,可见之伟大啊)。

RSA的傻瓜原理的更多相关文章

  1. Atitit RSA非对称加密原理与解决方案

    Atitit RSA非对称加密原理与解决方案 1.1. 一.一点历史 1 1.2. 八.加密和解密 2 1.3. 二.基于RSA的消息传递机制  3 1.4. 基于rsa的授权验证机器码 4 1.5. ...

  2. RSA加密数学原理

    RSA加密数学原理 */--> *///--> *///--> UP | HOME RSA加密数学原理 Table of Contents 1 引言 2 RSA加密解密过程 2.1 ...

  3. 非对称加密技术- RSA算法数学原理分析

    非对称加密技术,在现在网络中,有非常广泛应用.加密技术更是数字货币的基础. 所谓非对称,就是指该算法需要一对密钥,使用其中一个(公钥)加密,则需要用另一个(私钥)才能解密. 但是对于其原理大部分同学应 ...

  4. RSA 非对称加密原理(小白也能看懂哦~)

    来源. https://blog.csdn.net/jijianshuai/article/details/80582187 RSA 加密原理 步骤 说明 描述 备注 1 找出质数 P .Q - 2 ...

  5. RSA公钥私钥原理及作用

    RSA算法广泛应用与加密与认证两个领域 1.加密(保证数据安全性) 使用公钥加密,需使用私钥解密. 这种广泛应用在保证数据的安全性的方面,用户将自己的公钥广播出去,所有人给该用户发数据时使用该公钥加密 ...

  6. RSA算法原理

    一直以来对linux中的ssh认证.SSL.TLS这些安全认证似懂非懂的.看到阮一峰博客中对RSA算法的原理做了非常详细的解释,看完之后茅塞顿开,关于RSA的相关文章如下 RSA算法原理(一) RSA ...

  7. RSA原理及生成步骤

    摘自:http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html(可到原网址查看秘钥生成原理) RSA算法原理(一) 因为它是 ...

  8. (转) RSA算法原理(一)

    最近用到了RSA加密算法,虽然有现成的,但是想看看它的原理,翻到此文,感觉写得很好,通俗易懂,转了.   作者: 阮一峰 日期: 2013年6月27日 如果你问我,哪一种算法最重要? 我可能会回答&q ...

  9. 阮一峰:RSA算法原理(一)

    今天看到一篇好文章,关于加密算法,收藏了觉得不过瘾,还是自己贴一遍,也能加深一下印象. 原文链接:http://www.ruanyifeng.com/blog/2013/06/rsa_algorith ...

随机推荐

  1. 由Memcached升级到 Couchbase的 Java 客户端的过程记录(三)

    采用之前的源码运行后,我们发现 只有一个配置信息 即servers=127.0.0.1:11211,即 Couchbase Server的服务所在ip 和端口,此时数据直接存在 default 中 根 ...

  2. cocos2d-x打飞机实例总结(一):程序入口分析和AppDelegate,Application,ApplicationProtocol三个类的分析

    首先,是个敲代码的,基本上都知道程序的入口是main函数,显然,就算在cocos2d-x框架中也一样 我们看看main函数做了什么 #include "main.h" #inclu ...

  3. ResourceManager里面Trackingui需要手动该ip

    C:\Windows\System32\drivers\etc 这个路径下配置了ip和主机名,不过是大小写,ping不同,不论ping大小写还是全部小写都不行,我看地址栏是小写所以想着把hosts里C ...

  4. 前端模块化工具-webpack

    详解前端模块化工具-webpack webpack是一个module bundler,抛开博大精深的汉字问题,我们暂且管他叫'模块管理工具'.随着js能做的事情越来越多,浏览器.服务器,js似乎无处不 ...

  5. JS中匿名函数$(function(){ })和(function(){})()的区别

    “$(function(){ });” Jquery语法的匿名函数,用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在: (通过这样就可以在页面加载完成时通过ajax再异步加载一些数据) “ ...

  6. awk删除文件第一列

    awk删除文件第一列 1.采用awk awk '{$1="";print $0}' file 2.采用sed sed -e 's/[^]* //' file sort -R fil ...

  7. Emgu.CV 播放视频

    using Emgu.CV; using System; using System.Drawing; using System.Threading; using System.Windows.Form ...

  8. MYSQL提权方法

    cve-2016-6662 MYSQL提权分析 MySQL <= 5.7.15 远程代码执行/ 提权 (0day) 5.6.33 5.5.52 Mysql分支的版本也受影响,包括: MariaD ...

  9. 安装yii2时出错 Invalid Parameter – yii\base\InvalidParamException

    最近composer安装yii2的时候页面报了这个错,应该是bower的前端资源位置改变的缘故! Invalid Parameter – yii\base\InvalidParamException ...

  10. win7提示“User Profile Service服务未能登录”

    注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 最近,有个同事打电话告诉我说他的用户名无法登陆到系统,提示“User Profile Service服务未能登录,无法加载用户配置文 ...