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

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

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

首先,你和小红之前认识,接触过,你们俩之间有一个别人不知道的的约定,当我想给小红写一串数字的时候,我自己先在草稿纸上写一遍,然后每个数字都加上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. Python 从零学起(纯基础) 笔记 之 迭代器、生成器和修饰器

    Python的迭代器. 生成器和修饰器 1. 迭代器是访问集合元素的一种方式,从第一个到最后,只许前进不许后退. 优点:不要求事先准备好整个迭代过程中的所有元素,仅仅在迭代到某个元素时才计算该元素,而 ...

  2. ETL基础1(概念)

    抽取(Extract): 一般抽取过程需要连接到不同的数据源,以便为随后的步骤提供数据.这一部分看上去简单而琐碎,实际上它是 ETL 解决方案的成功实施的一个主要障碍. 转换(Transform): ...

  3. MySQL基本命令

    1.修改root用户登录密码: [root@17track bin]# /usr/local/mysql/bin/mysqladmin -u root password 'MyPassword' my ...

  4. <<< Js中实现对字符串的截取

    1.函数split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例:var Data = "1/234/5678/9"; var str = shuju.split( ...

  5. 【原创】风讯DotNetCMS V1.0~V2.0 SQL注入漏洞

      文章作者:rebeyond 注:文章首发I.S.T.O信息安全团队,后由原创作者友情提交到乌云-漏洞报告平台.I.S.T.O版权所有,转载需注明作者. 受影响版本:貌似都受影响. 漏洞文件:use ...

  6. 深入理解javascript原型和闭包(7)——原型的灵活性

    在Java和C#中,你可以简单的理解class是一个模子,对象就是被这个模子压出来的一批一批月饼(中秋节刚过完).压个啥样,就得是个啥样,不能随便动,动一动就坏了. 而在javascript中,就没有 ...

  7. [Nhibernate]sqlite数据库基本使用

    目录 写在前面 操作步骤 总结 写在前面 昨天有朋友问我在nhibernate中如何使用sqlite数据库,当时实在忙的不可开交,下周要去山西出差,实在没空,按我的说法使用sqlite跟使用sqlse ...

  8. zend studio汉化

    在help菜单中选择Install New Software,在 work with栏中添加上这样的地址 http://archive.eclipse.org/technology/babel/upd ...

  9. 浅谈 jQuery 事件源码定位问题

    该方法已过期,chrome 48还是49开始,自带各种流行框架的事件绑定解析. 勾上这个选项即可. 昨天群里有人问了个事件源码定位的问题,简单描述下是这样的. 在一个不是自己写的页面上,如何快速定位到 ...

  10. Fragment应用总结

    1.FrameLayout 常用于作为Android自带组件的父节点 2.Fragment就是一个普通的Java类,用Android.app这个包         Fragment也是一个ListVi ...