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

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

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

首先,你和小红之前认识,接触过,你们俩之间有一个别人不知道的的约定,当我想给小红写一串数字的时候,我自己先在草稿纸上写一遍,然后每个数字都加上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. Select Top在七种数据库中的使用方法(包含mysql)

    1. Oracle数据库 SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. Infomix数据库 SELECT FIRST N * FROM TABLE1 3. D ...

  2. usr/include/dispatch - dispatch_source

    博文一部分摘自:Parse分析,以下简称博文1(LeanCloud工程师针对Parse使用GCD的分析) 博文一部分摘自:GCD入门,以下简称博文2 建议先了解一下:BSD基础知识 在Dispatch ...

  3. 【CityHunter】基于LBS的AR体感游戏设计理念

    本人目前还不是游戏行业的圈内人士,并不懂得,游戏行业的生态圈,也不懂得,所谓的什么“中国市场环境”.所以不敢发表关于这方面的见解,不过我在这里想要插一句话,就是我认为啊,行业内,人与人之间还是有分层次 ...

  4. Python Day8

    Socket Socket是网络编程的一个抽象概念.通常我们用一个Socket表示"打开了一个网络链接",而打开一个Socket需要知道目标计算机的IP地址和端口号,再指定协议类型 ...

  5. [Unity3d]游戏中子弹碰撞的处理

    如果使用Collider+Rigidbody的方式来处理,则它是每一帧进行判定碰撞:如果子弹过快导致碰撞发生在2帧之间,则会导致无法捕获这个碰撞效果 基于上述原因,我们要使用射线Raycast进行子弹 ...

  6. Twemproxy 缓存代理服务器

    Twemproxy 缓存代理服务器 Twemproxy 概述 Twemproxy(又称为nutcracker)是一个轻量级的Redis和Memcached代理,主要用来减少对后端缓存服务器的连接数.T ...

  7. 【译文】 GC 安全点 和安全区域

    原文链接 : here 根引用  Root references  一个实例死了,意味着它变得无用.只用程序员知道一个实例是否已经无用.为了让程序知道一个实例是否已经无用,我们可以使用编译器分析,引用 ...

  8. SQL SERVER 中 GO 的用法

    用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束.GO 不是 Transact-SQL 语句:而是可为 osql 和 isql 实用工具及 ...

  9. javascript的document中的动态添加标签

    document的高级篇中提供了节点操作的函数,具体包括:获取节点,改变节点,删除节点,替换节点,创建节点,添加节点,克隆节点等函数.我们可以利用这些函数动态改变html的节点. 1.JavaScri ...

  10. 【荐】如何正确理解PHP之include,include_once,require,require_once等包含作用域

    我们为大家总结的PHP include作用域的问题包括:PHP include 变量作用域和函数.类的作用域等方面的问题.希望对大家有所帮助. 很多程序员在使用PHP语言进行实际编程时,通常只会关注P ...