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

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

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

首先,你和小红之前认识,接触过,你们俩之间有一个别人不知道的的约定,当我想给小红写一串数字的时候,我自己先在草稿纸上写一遍,然后每个数字都加上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. 【USACO 2.4】The Tamworth Two

    题意:C代表cows,F代表farmer,一开始都向北,每分钟前进1步,如果前方不能走,则这分钟顺时针转90°,问多少步能相遇,或者是否不可能相遇,10*10的地图. 题解:dfs,记录状态,C和F的 ...

  2. Sphinx在windows上的安装使用

    Sphinx是一个基于SQL的全文检索引擎,可以结合MySQL,PostgreSQL做全文搜索, 它可以提供比数据库本身更专业的搜索功能,使得应用程序更容易实现专业化的全文检索. Sphinx特别为一 ...

  3. Java的多线程机制系列:(二)缓存一致性和CAS

    一.总线锁定和缓存一致性 这是两个操作系统层面的概念.随着多核时代的到来,并发操作已经成了很正常的现象,操作系统必须要有一些机制和原语,以保证某些基本操作的原子性.首先处理器需要保证读一个字节或写一个 ...

  4. 正则表达式解析url参数

    解析url参数正则:(?<=\?|&)[\w\={}\\\\,-:'\s'""]*(?=[^#\s]|) 意思是(?<=\?|&) 从?或&符号 ...

  5. ajax 的返回值类型

    ajax的dataType类型有三种:text,json,xml. text类型: 主页面: $.ajax({   url:"chuli.php",   dataType:&quo ...

  6. ubuntu下安装gedit插件

    因为gedit-plugins : 依赖: gir1.2-zeitgeist-2.0 所以首先 sudo apt-get install gir1.2-zeitgeist-2.0 如果报错可以先 su ...

  7. c语言求数组长度

    在定义数组的函数内 int arr[] = {12.12}; int length; length = ]; 在别的函数中作为引用数据类型引入时,以上方法失效: 解决方法1:再传一个int 类型的长度 ...

  8. panel的展开,关闭的一种应用。

    js: <script type="text/javascript"> $('#p2').panel({ title: 'panel1', closable: fals ...

  9. JSP内置对象之application对象

    虽然常把Web应用称为B/S架构的应用,但其实Web应用一样是C/S结构的应用,只是这种应用的服务器是Web服务器,而客户端是浏览器. 现在抛开Web应用直接看Web服务器和浏览器. Web服务器负责 ...

  10. Tools

    Database: Online Schema Tool: http://dbdsgnr.appspot.com/ Orcale --> SQL developer MySQL--> To ...