分享

《安全简史》剧透之“信息论大白话”

 SZTsmz 2017-09-10

注:国际顶级大会,“中国互联网安全大会,ISC2017”,将于后天(911日)华丽开幕,估计将有超过3万余位,来自世界各地的安全专家赴会。由于此会现场的自动销售机上,将自动销售《安全简史》,所以我们特发此剧透,以感谢社会各方对本书的厚爱。希望从当当网或京东网上购买此书的朋友,可扫描此文后面的二维码。欲关注公号“亦仙亦凡”的朋友,也可扫描后面的二维码。我也将在此会的密码论坛上亮相,有需要作者签名的读者,可携书前往。谢谢大家捧场!

 

 

 

《安全简史》剧透之“信息论大白话”

 

《信息论》之名,家喻户晓;但《信息论》之实,却和寡曲高!

虽然香农早在半世纪前,就创立了《信息论》;虽然《信息论》也已进入大学课堂,成为通信专业的必修课;但是,该课程至今仍然是“学渣谈之色变,学霸叫苦连天”;甚至许多博士和教授,也只不过一知半解而已。

若想真正洞穿《信息论》,那你得练好如下基本功:第一,语文要好,要能读懂“天书”,否则,像什么熵呀,条件熵呀,互信息呀,几个概念下来,你就基本晕菜了。第二,数学要好,不能有“公式恐惧症”,否则,待到铺天盖地的、大如磨盘的公式,陨石般砸下来时,你就惨了。第三,脾气要特别好,一次读不懂,就读两次;白天读不懂,晚上接着读;今天没读懂,明天继续读;反正,无论它怎么“虐你千百遍”,你都得“待它如初恋”;否则,“哧溜~”一声,它早已化作一股清烟,无影无踪了!第四,想象力要好,当香农无中生有地,用一句差点憋死人的话说“看,这就是由输入随机变量X和输出随机变量Y的转移概率矩阵构成的信息传输信道……”时,虽然你已憋得两眼发黑,但你的脑海中,却要立即浮现一条高速公路,而且,各种车辆正在来回穿梭,多拉快跑。请注意,别将该公路想象成什么光纤呀、电缆呀等具体信道,因为,香农的信道是“马”,而你所能见的各种信道,都仅仅是“白马”、“黑马”、“大马”、“小马”等,否则,过于具体的想象,将会引你入歧途,让你以偏概全。第五,……,算了,不说了,再说下去,香农该告我“传播负能量”了。

其实,整个香农《信息论》的核心,只是两个定理而已;用行话说,分别叫做:“信道编码定理”和“信源编码定理”。前者,告诉你,高速路上最多能跑多少辆车;后者,告诉你,每辆车上怎样才能“不多拉哪怕是1比特的无用之物”。

那位聪明哥们儿说啦:既然《信息论》这么难,那为啥一定要自找苦头,何不绕过去就是了?!嘿嘿~,伙计,抱歉,实话告诉你吧:能绕过《信息论》的人,现在还没诞生呢;而且,今后也永远不可能诞生!因为,在信息大海中,能指引航程的、唯一的“灯塔”和“指南针”,均被《信息论》独揽囊中。明白了吧,哥们儿,这就叫“大海航行靠舵手”!

所以,若想在信息江湖中充老大,劝你还是先回家,老老实实学懂《信息论》后,再考虑出山吧,因为“得《信息论》者,得天下”嘛。

那么,在《安全简史》中,为啥要选入《信息论》呢?当然不是为了赶时髦,主要原因有四:

其一,信息安全的核心,现代密码理论,其实也是《信息论》的一个分支,它也是由香农于1948年,在另一篇著名论文《安全的数学理论》中创立的;

其二,《安全通论》的成果已经显示,黑客与红客之间的攻防对抗,其实可以等价为某种特殊信道(攻击信道、防卫信道)的信息传输问题;而各方胜负次数的极限,也刚好就是这些信道的“信道容量”;

其三,《信息论》是《安全通论》的榜样;前者统一了通信江湖,后者也想为各安全分支,建立统一的基础理论;

其四,《安全通论》已作为“胶水”,将“通信圣经”《信息论》和“经济圣经”《博弈论》,粘在一起,形成了一部全新的“圣经”:三论融合。

好了,下面欢迎大家与我们一起,跑马观花,看看啥叫大白话版的《信息论》。当然,你别指望仅用简单的白话,在不运用任何公式和符号的前提下,就能把《信息论》讲深、讲透;其实,即使香农在世,他也无能为力。不过,用《信息论》来重新解读一些经典故事,还是很有启发意义的。

首先来看看烽火狼烟中的《信息论》:

你肯定知道,“烽火”是我国古代,用以传递边疆军情的一种通信方法。始于商周,延至明清,沿袭几千年,其中尤以汉代烽火规模最大。在边防军事要塞或交通要冲的高处,每隔一定距离就建筑一高台,俗称烽火台,亦称烽燧、烟墩等。高台上有驻军守候,发现敌人入侵,白天就燃烧柴草以“燔烟”报警,夜间燃烧薪柴以“举烽”(火光)报警。一台燃起烽烟,邻台见之也相继举火,逐台传递,须臾千里,以达到报告敌情、调兵遣将、求得援兵、克敌制胜的目的。

若用《信息论》来重新解读该“简略版烽火通信系统”,那么,你将发现:

1)该系统在“信源压缩”方面已达最优,因为,“有敌情”是小概率事件,一年四季赶不上几回,此时,用成本较高的动作(点火,相当于“长码”)来“编码”;而“平安无事”是大概率事件,此时用成本较低的动作(实际上是不动作,相当于“短码”)来“编码”。于是,总体成本就最低。如果将这两个动作颠倒,既,无事点火,有事反而火灭,那么,“通信成本”将大幅度提高,而且,所传递的“信息量”也并无半点增加。几千年后,香农博士在创立《信息论》时,在其两个核心定理之一,信源编码定理中,也仍然采用了这种“烽火编码压缩”思路,使得最终算法达到最优。

2)作为一种军事通信系统,“烽火传情”的“信道容量”非常有限,其实只能传送一条消息,即,某件事情是否发生。那么,该烽火系统的核心是什么呢?一般人都会误以为是烽火台、狼烟、火把等看得见,摸得着的东西;但是,抱歉,必须告诉您,那是不对的!其实,该系统的最重要部分是“码书”,即,事先相关各方的约定:一旦出现烽火,到底意味着什么,应该采取什么应对措施等。

一般情况下,“码书”的约定,虽然应该是:一旦出现烽火,那就表示敌人来袭,应该马上增援。但是,历史上还真的出现过“码书”被篡改的情况。

那已是三千多年前的事了。据说,周幽王性情残暴,喜怒无常;自从绝代佳人褒姒入宫后,便终日沉溺于美色。可是,这位美人入宫后,却从来不笑,整日愁眉苦脸;这可急坏了幽王,他绞尽脑汁,要想逗褒姒一笑,但却都失败了。于是,幽王下旨:凡能使褒姒一笑者,赏黄金千两。得知此圣旨后,奸臣虢石父告诉幽王:“先王在世时,因南戎强盛,惟恐侵犯,因此在骊山设了二十多处烽火台,又设置了数十架大鼓。一旦发现戎兵进犯便放狼烟,烟火直上云霄,附近诸侯见了,就发兵来救。您要使王后一笑,不妨带她去游骊山,夜点烽火,众诸侯一定领兵赶来,上个大当;王后见状必定发笑。”幽王听了,依计而行,立即备了车仗,同王后来骊山游玩。

当时有个诸侯听了这消息后,大吃一惊,急忙赶到骊宫奏道:“先王在世设烽火台是为紧急之用,今天无故点燃烽火,戏弄诸侯,一旦戎兵侵犯,再点烽火,有谁信之?那时何以救急呢?”幽王不听劝阻,并下令点燃烽火。附近诸侯看到烽火点燃,以为京都有敌进犯,都领兵点将前往骊宫,待赶到骊山下,却不见敌兵,只听宫内弹琴唱歌。这时幽王正和褒姒饮酒作乐,听得诸侯到来,便派人去向诸侯道谢说:“今夜无敌有劳各位。”诸侯听了面面相觑,只好带兵卒恨恨离去。这时褒姒在楼上看见众诸侯白忙一阵,不觉抚掌大笑。幽王一见大喜,当即赏给虢石父黄金千两。

幽王的所作所为触怒了申国侯,于是,他联结南戎包围了京都。虢石父得知后,面奏幽王:“目前事情紧急,我王快派人去骊山点放烽火,召来诸侯以御敌兵。”烽火虽被点着,但由于上次失信于诸侯,大家认为天子又在开玩笑,都按兵不动。幽王等不到救兵,终于被杀,丢掉了江山。

设想一下,如果在那次戏弄诸侯前,幽王同步修改了“码书”,比如,让各诸侯知道:明天的“烽火”仅限娱乐,希望大家积极配合,假装赶来救援,并且,仅此一次,今后“烽火”仍为真敌情。那么,幽王的命运可能就会重写。

通过这个故事,我们可知:烽火通信的“码书”,虽可以修改,但是,必须同步修改;绝不可单方面修改,否则,必定误解,传错信息,引起严重后果。

其实,真正的烽火通信并非上面那么简单。一方面,所传递的信号,不只两种,而是六种,分别是蓬(蓬草)、表(树梢)、鼓、烟、火炬、积薪(高架木柴草垛)等;而且,白天举蓬、表、烟;夜间举火,积薪和鼓则昼夜兼用。另一方面,烧烽火的“堆数”也是有讲究的:凡来敌不满一千人,则只烧一堆积薪;超过一千来敌,则烧二堆积薪;若来敌超过一千,并且已经开始攻击时,则烧三堆积薪。除了烧积薪之外,还附有举蓬、举表、举火炬等不同规定;并因来敌方位不同和时间不同,又有各自不同的规定。

由此可见,完整的“烽火通信系统”的信道容量,其实不止1比特;相应的“码书”也可能很复杂;并且“信源压缩”还大有余地。

再来看看莫尔斯电码中的《信息论》:

摩尔斯电码,是一种时通时断的信号代码;它通过不同的排列顺序,来表达不同的字母、数字和标点符号。该种代码发明于1837年,是一种早期的数字化通信形式。不同于现代二进制代码(01),摩尔斯代码包括五种:点(.)、划(-)、点和划之间的停顿、每个字符间短的停顿(在点和划之间)、每个词之间中等的停顿以及句子之间长的停顿等。以英文为例,26个英文字母和相关数字等的摩尔斯代码分别是:

A=.-),B=-...),C=-.-.),D=-..),E=.),F=..-.),G=--.),H=....),I=..),J=.---),K=-.-),L=.-..),M=--),N=-.),O=---),P=.--.),Q=--.-),R=.-.),S=...),T=-),U=..-),V=...-),W=.--),X=-..-),Y=-.--),Z=--..),1=.----),2=..---),3=...--),4=....-),5=.....),6=-....),7=--...),8=---..),9=----.),0=-----),?=..--..),/=-..-.),()=-.--.-),-=-....-),.=.-.-.-)等。

如果仔细分析上述摩尔斯电码,你会发现,设计者在“信源压缩”方面已经做了许多工作,比如,经常出现的字母ET(即,大概率事件)等,就用低成本的“短码”(1点或1划)来代表;而不常出现的字母或符号(即,小概率事件),则用高成本的“长码”(6个点或划)来代表;此思路也是《信息论》中,香农“信源编码定理”的最优压缩思路。

当然,为了更进一步地压缩信源,摩尔斯码的设计者,还约定了许多缩写,比如,AB=All beforeARRL=AmericanRadio Relay LeagueABT=AboutADS=AddressCUL=See you laterGA=Goodafternoon or Go ahead73=Best regards88=Love and kisses99=go away等。这些缩写虽有实际效果,但比较零碎,在理论上,对《信息论》的“信源编码定理”几乎没有任何帮助或启发。

摩尔斯电码中还有一些很特别的编码,其中,最为著名的就是:求救信号SOS。该电码符号,早在1906年就已约定,并于19098月,首次被美国“阿拉普豪伊号”轮船使用,当时该船的尾轴破裂,无法航行,就向邻近海岸和过往船只拍发了“SOS”信号。

在“SOS”之前,人们却习惯于用“CQD”来表示船舶遇难信号。所以,在1912年,当泰坦尼克号游轮首航遇险时,船上的无线电首席官员菲利普,却一直在发送“CQD”遇难信号,而其中的“D”又很容易与其他字母混淆,所以,周围船只并未意识到是紧急求救信号,也就没有快速救援。当泰坦尼克即将沉没时,下级无线电操作员布莱德才恳求道:“发送SOS吧,这是新的求救信号,这也可能是你最后的机会了!”然后,菲利普在传统的CQD求救信号中,夹进了SOS信号,该信号直到第二天早上,才被另一艘船“加州人号”收到,因为当时无线电信号并未被全天监听。

泰坦尼克号沉没后,“SOS”才终于被广泛接受和使用。

自摩尔斯电码在1835年发明后,一直只能用来传送英语或以拉丁字母拼写的文字。由于中文没有字母,所以,在1880年,清政府才雇用丹麦人,设计了中文汉字电报。

中文电码表,采用四位阿拉伯数字作代号,简称“四码电报”;从00019999按四位数顺序排列,它最多可表示一万汉字、字母和符号。汉字先按部首,后按笔画排列;字母和符号放到电码表的最尾。但因中文电码是“无理码”,记忆困难,一般人几乎无法熟练地掌握使用,它更没有刻意考虑过“信源压缩”问题。

总之,在《信息论》诞生前,包括烽火通信、电报码等在内的多种编码中,“信源压缩”都已被或多或少考虑过了,而且,许多思想也在《信息论》中得以体现。但是,直到宽带数据通信之前,由于信道中传递的信息量都很少,信道容量问题几乎未出现;所以,《信息论》中有关信道容量极限的“信道编码定理”及其思想,却找不到蛛丝马迹,真的好似横空出世一样。由此,不得不赞叹香农的伟大!

香农《信息论》的目的就是:在安全可靠的前提下,如何提高信道传输信息的效率(简称“传信率”)。为了便于理解,先来看看,如何提高一条公路的运输能力。其实,关键只有两点:

1)多拉:路上跑的每辆汽车,都要装满,以不超过最大载重量为限;而且,务必不能装载无用的货物,避免消耗有效的载货空间和载重量;

2)快跑:路上的汽车要足够多,但又不能太多,要以既不堵车,又能以不超速的最快速度奔跑为限。

与上述物质传输相似,在信息传输的情况下,提高传信率的关键,也只有类似的两点:

1)信源编码(类似于“多拉”):无用的信息,绝不多传输1比特。这就是信息压缩问题,即,能被压缩的信息,都要扔掉。为此,香农给出了信息源能被压缩的极限。

2)信道编码(类似于“快跑”):绝不浪费信道的传输能力,哪怕是1比特。为此,香农给出了信道传输能力的极限,用行话说,就是信道容量的极限。

在通信系统中,如何才能“多拉”呢?办法很简单,主要有两条:其一,每个信号所携带的信息量要尽可能多;当然,这个“多”是有极限的,即,无法超过信息源的平均信息量,或称为信源的熵。其二,无用的“货物”别“拉”,用行话说,就是所谓的“压缩信源编码”,即,尽量减少码数,尽量降低编码的多余度。这就增加了每个信号所携带的信息量。正如,讲话时要尽量精练,废话都要压缩掉,只要把意思说清楚就行;说话啰唆,编码的多余度就太大,就降低了传信率。在言简意赅,压缩信源编码方面,古文和古诗就是榜样。

在通信系统中,“快跑”就意味着传递信号的速率要快。而传递每个信号,都需要一定的间隔,就像公路上需要足够的车距一样。信号传得太快,就分不清彼此了,就“堵车”了;而且,信道在单位时间内,所允许通过的信号,也有一定的限度。例如,若数人同时对你狂吼,那你无论如何,也听不清他们到底在说什么了。

由此可见,只有当每个信号所携带的信息量达到最大平均信息量(多拉),同时,传输信号的速率也达到信道允许的最大值时(快跑),传递信息的效率才是最高,传信率才达到最大值。

信道容量还有另一层含义,即,信道的传信率极限。一旦达到了这个极限,就达到最大值。信息传输的速率,一旦超过了信道容量这个极限,就一定会出现差错。可见,信道容量限制着传信率,限制着传递信息的效率。就像面对一个容量1升的杯子,你无论如何也不可能将2升水注入其中一样。

在信道容量的限制下,为提高传信率,还可分别考虑是否有噪声的情况:

如果一个信道无噪声干扰,那就意味着信源发出的每个信号,经过信道传输,都能准确无误地被接收。此时,只要传信率等于或小于信道容量,那么,就一定可以找到某种编码方法,使信息能够准确无误地传递。如果传信率大于信道容量,那就必然会出现差错。

但是,噪声干扰总是存在的,此时,信号在传递过程中,会发生某些失真,要损失一些信息量。于是,有的信号在传到接收端后,就变得含糊不清了,传信率也就降低了。此时,信道容量就是“有效传信率”的最大值,即,发送的“最大传信率”减去“传输时产生的疑义度”。这里,疑义度意指:平均每个信号增加的含糊程度,它也是每个信号损失的信息量。由此可见,在有噪声干扰的情况下,信道容量同样限制着传信率。传信率也必须等于或小于信道容量,才能使信号准确无误地在信道中传输;否则,就会产生差错。

总之,无论是否有噪声,要想使信息传输不出差错,一个最起码的要求是:传信率不能大于信道容量,这就是提高传信率所必须遵从的基本原则。

哥们儿,关于《信息论》,我只能帮你到此了,你好自为之吧!

虽然古人已多次在诗文中谈及“信息”二字(比如,南唐李中《暮春怀故人》诗:“梦断美人沉信息,目穿长路倚楼台。”宋朝陈亮《梅花》诗:“欲传春信息,不怕雪埋藏。”等),但是,我们还是想套用六世达赖,仓央嘉措,的情诗《十诫诗》,针对信息及其各种变身的安全,将本章概括如下:

第一最好不相恋,信息根本看不见。

第二最好不相思,比特与熵很难知。

第三最好不相欠,系统首要保安全。

第四最好不相忆,对付失控需妙计。

第五最好不相弃,蚁穴虽小能溃堤。

第六最好不相亏,内外兼顾显神威。

第七最好不相误,泄密信息价值负。

第八最好不相堵,畅通反馈有帮助。

第九最好不相依,一劳哪能得永逸。

第十最好不相攻,和谐相处好轻松。

但曾相见便相知,安全保障最及时;

信息若能充分用,免教得失作相思。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多