前段时间看的《王牌特工》帅气的科林叔一把绅士伞在手,天下我有的气势征服了所有观众,凡是特工就没有不和加密解密打交道的,我们经常看到侦探电影的桥段,勇敢又机智的主角,拿着一长串毫无意义的数字苦恼,忽然灵光一闪,翻出一本厚书,将第一个数字对应页码数,第二个数字对应行数,第三个数字对应那一行的某个词。数字变成了一串非常有意义的话:
Eat the beancurd with the peanut. Taste like the ham. |
主角喜极而泣……
这种加密方法是将原来的某种信息按照某个规律打乱。某种打乱的方式就叫做密钥(cipher code)。发出信息的人根据密钥来给信息加密,而接收信息的人利用相同的密钥,来给信息解密。就好像一个带锁的盒子。发送信息的人将信息放到盒子里,用钥匙锁上。而接受信息的人则用相同的钥匙打开。加密和解密用的是同一个密钥,这种加密称为对称加密(symmetric encryption)。
如果一对一的话,那么两人需要交换一个密钥。一对多的话,比如总部和多个特工的通信,依然可以使用同一套密钥。但这种情况下,对手偷到一个密钥的话,就知道所有交流的信息了。二战中盟军的情报战成果,很多都来自于破获这种对称加密的密钥。
二战中德军的传奇加密机:Enigma
为了更安全,总部需要给每个特工都设计一个不同的密钥。如果是FBI这样庞大的机构,恐怕很难维护这么多的密钥。在现代社会,每个人的信用卡信息都需要加密。一一设计密钥的话,银行怕是要跪了。
对称加密的薄弱之处在于给了太多人的钥匙。如果只给特工锁,而总部保有钥匙,那就容易了。特工将信息用锁锁到盒子里,谁也打不开,除非到总部用唯一的一把钥匙打开。只是这样的话,特工每次出门都要带上许多锁,太容易被识破身份了。总部老大想了想,干脆就把造锁的技术公开了。特工,或者任何其它人,可以就地取材,按照图纸造锁,但无法根据图纸造出钥匙。钥匙只有总部的那一把。
上面的关键是锁和钥匙工艺不同。知道了锁,并不能知道钥匙。这样,银行可以将“造锁”的方法公布给所有用户。每个用户可以用锁来加密自己的信用卡信息。即使被别人窃听到,也不用担心:只有银行才有钥匙呢!这样一种加密算法叫做非对称加密(asymmetric encryption)。非对称加密的经典算法是RSA算法。它来自于数论与计算机计数的奇妙结合。
为了了解RSA加密,请听一个卧底的自白:
RSA加密
我是潜伏在龙凤大酒楼的卧底。想让下面信息以加密的方式发送到总部:
A CHEF HIDE A BED
厨子藏起来了一张床!这是如此的重要,需要立即通知总部。千万重要的是,不能让反革命的厨子知道。
第一步是转码,也就是将英文转换成某个对应的数字。这个对应很容易建立,比如:
A | B | C | D | E | F | G | H | I |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
将上面的信息转码,获得下面的数字序列:
A CHEF HIDE A BED
1 3856 8945 1 254
这串数字完全没有什么秘密可言。厨子发现了这串数字之后,很容易根据数字顺序,对应字母表猜出来。
为了和狡猾的厨子斗智斗勇,我们需要对这串数字进一步加密。使用总部发给我们的锁,两个数字:3和10。我们分为两步处理。
第一步是求乘方。第一个数字是3,也就是说,总部指示我们,求上面数字串的3次方:
原字符串: 1 3 8 5 6 8 9 4 5 1 2 5 4
三次乘方: 1 27 512 125 216 512 729 64 125 1 8 125 64
第二步是求余数。第二个上锁的数字是10,将上面每个三次乘方除以10,获得其余数:
余数: 1 7 2 5 6 2 9 4 5 1 8 5 4
将这串数字发回总部。中途被厨子偷看到,但一时不能了解其中的意思。如果还是像刚才一样对应字母表的话,信息是:
AGBEFBIDEAHED
这串字母完全不包含正常的单词。
信息到了总部。总部开始用神奇的钥匙来解读。这个钥匙是3。(偷偷告诉你的,别告诉厨子。)
(这里钥匙不小心和之前锁中的一个数字相同。这只是巧合。)
解锁过程也是两步。第一步求钥匙次的乘方,即3次方。第二步求它们除以10(锁之一)的余数。
加密信息:1 7 2 5 6 2 9 4 5 1 8 5 4
三次乘方:1 343 8 125 216 8 729 64 125 1 512 125 64 (这里用的是钥匙的“3”)
除十得余:1 3 8 5 6 8 9 4 5 1 2 5 4
正是我们发送的信息。对应字母表,总部可以立即知道原来的信息。
总结
正如我在“数学与编程”中提到的,数学可以是程序员军火库中有力的武器。加密、解密这一事关IT安全的大课题,却和数论这一纯粹数学学科发生奇妙的关系。RSA算法的数学基础在于欧拉定理。这一诞生了几百年没有什么实用性的数学理论,却在网络时代,找到自己的栖身之处。
加密算法有很多,这次我们只讲RSA算法。公开的加密方式,私有的解密方式。RSA安全的关键在于很难对一个大的整数进行因子分解。相信这次你应该对于RSA加密不再恐惧了吧。
好用的桌面管理软件,让桌面管理变得无比简单
你们肯定有过这种经历:一打开电脑,桌面满满当当全是图标,文件、文件夹还有快捷方式乱成一团,找个文件得翻来覆去好几遍。或者工作、学习的资料混在一块儿,找啥都得费老大劲。今天给大伙介绍一款特牛的桌面管理软件,能让你的桌面管理无比轻松,工作效率直线上升!一、一键整理,跟乱糟糟彻底告别咱们平常使电脑的时候,最烦的就是桌面图标多...
让隐私更安全:U盘加密的五种实用方法
在如今信息爆棚的阶段,U 硬盘已成为大家存储和传送数据的关键工具。可是,这小小的 U 盘子里蕴藏着巨大的风险。一旦意外丢失或失窃,里边的数据可能掉入不法分子手中,对我们的个人信息和财产安全构成严重威胁。那么,究竟怎样才能让 U 盘里的隐私更安全呢?今日,我们将介绍五种实用的U盘加密方式。一、软件加密:轻松上手,安稳可靠...
颠覆传统办公模式:远程桌面管理工具实用指南
在如今这快节奏的工作大环境里,传统的办公模式慢慢暴露出它的短板。您是不是早就受够了每天早晚高峰的奔波通勤?是不是特别渴望能在舒适自在的环境里照样高效办公?远程桌面管理工具呀,它不但能让您随时随地访问公司的电脑,实现工作的无缝衔接,还能大大提高团队协作的效率。今天,咱们就来唠唠怎么靠着远程桌面管理工具,颠覆传统办公模式。...
如何通过上网行为管理系统提升网络管理效率?
企业网络就像一条热热闹闹的高速公路,承载着形形色色的信息来来往往。可这条 “高速公路” 上的 “车辆”(也就是网络流量),老是出现一些状况,比如拥堵啦、违规行驶啦(像访问那些不安全的网站、下载恶意软件)。那到底咋能有效地管管这些 “车辆”,让网络顺顺溜溜的,还能把网络管理的效率提上去呢?上网行为管理系统,那就是打开高效...
企业局域网安全准入:五大关键要素解析
企业局域网就是把各个部门、各位员工紧密相连的 “神经中枢”。不过呢,随着网络边界变得越来越模糊,还有攻击手段不停地花样翻新,局域网安全准入一下子成了企业必须硬着头皮应对的大难题。到底怎样才能保证只有合法的设备和用户能够享用网络资源?今天,咱们就好好聊聊企业局域网安全准入的五大关键要素。一、身份验证:死死守住的头道关卡身...