热烈祝贺数学资料网建站十周年!
当前位置: 首页 > 数学资讯 >> 数学新闻 > 内容页

数学与互联网安全1

时间:2013年09月13日来源:shuxue2013.com作者:数学资源网点击:
数学与互联网安全

2005年12月离新年假期只有几天的时候,纽约的公交系统员工在纽约市区举行了大罢工。市民如果试图到商店去购物,可能需要在路上堵上好几个小时、再走上很久的路、并且也很难拦到出租车。因此很多纽约市民选择了在网上进行购物。不过还是有很多人因为担心交易的安全性而对网上购物退避三舍。

大家心里的疑问包括:

  • 网上金融交易是否安全?
  • 通过互联网发送电子邮件是否受到第三方的监控从而导致邮件内容泄露?
  • 网络病毒以及“流氓软件”正越来越猖狂,我们如何对付这些问题?

数学正在尽力解决上述这些问题,从而使得网络交易百分之百的安全,以及让电子邮件系统成为人们值得信赖的一种生活方式。实现这些目标的工具恰恰是一些以前被认为是毫无实用价值的数学知识!人们一直在发明新兴技术从而制造出更快更小的电脑芯片。一部分人正在致力于创造一个安全的互联网环境,而另一部分同时也在不停地试图通过互联网“提取”他人的财富(而不是在银行里排队取款!)。这是一场猫和老鼠的游戏,而这个游戏也受到电脑芯片技术的影响。

互联网技术涉及的数学知识十分广泛,从数据压缩和误差压缩技术,到信息传递的方法和安全设计都需要大量的数学。本文将着重讨论与互联网安全的几个数学问题。

密码学

一个战争指挥官总是希望他发给前线军官的命令不会落到敌方手中。因此,如果命令是通过书面来传递,那是十分不安全的。因为一旦命令书被敌方拦截,自己的计划就彻底暴露了。(当然要通讯员把命令背下来再进行传递也不现实,大家看看电视里的谍战片或反恐片就知道这种方式是多么不安全了。)Julius Caesar被认为是最早使用数学知识来对信息进行加密的人之一。据说他的加密方法是把一段文字(也就是原始信息)的每一个字母都用字母表里其对应的后一个字母来代替,而字母表的最后一个字母就用其第一个字母来代替。按照这种方法,Caesar Cipher这个短语就由Dbftbs Djqifs来代替。其实我们有很多种可能的加密方式来产生这样一段信息。因此,这样的加密方式足以迷惑“敌人”一段时间了。前面这个例子我们是把一段文字按照字母表往后移动1个位置。更一般的,我们可以按照字母表往后移动r个位置。比如r=5的话,Caesar Cipher这个短语经过加密以后就变成了hfjxfw hnumjw。今天我们把这种加密方式都叫做凯撒密码。

但是,如果解密员碰巧想到一段文字的加密方式是把每一个字母按照字母表顺移同样的位置,那就算把每种可能的方式都试一遍来解密,其工作量都不大,因为毕竟只有26个字母。这个简单的例子已经说明了无论是互联网密码学还是军事密码学,“复杂度”和安全性两者之间都存在着有趣的联系。有时候,我们的目的仅仅是拖延对手的行动。比如,我们可以把一段毫无意义的信息加密,然后让对手花上整整一个小时去解密。不过,一旦一条信息被对方成功解密,下次我们再有一条类似的信息被对方拦截的话,解密时间可能就会从一小时急剧减少为3分钟了。所以我们必须想办法永远比“敌人”快一步。接下来的讨论里,我有时候混用“代码”和“密码”,以及“解码”和“解密”。不过,“密码”一般是指把一段文字的每一个符号都用同一字母表或其它字母表里的另一个符号来代替。相反,“代码”是指把一段文字的每一组符号用另一组符号来代替。

自从Caesar密码提出后,密码学得到了极大的发展。其中一个很简单的想法是加密的信息不一定要与原始信息有相同的字数。如果字母“I”或者“a”作为一个单词单独出现在一段加密字符串里,那这段加密字符串就很容易被破解了。通常的做法是,把一段信息的每5个字母分成一组(不记字间的空格和标点符号),然后每组都用另外5个字母代替。这样加密的字符显得更难破解。如果原始信息的字符数不是5的倍数,那我们可以额外地将一些符号定义为这个“转换”里的空集,然后用这些符号来补齐缺少的字符数。

另外一个简单的想法是用多字码密码,也就是说给原始信息加密的字母表按照某个密钥随字母逐字变化。由于原始信息的每一个字母都对应到密钥里的一个字母,用以加密的字母表也会不断变化。这个想法的代表人物是Leone Alberti,他也是映射几何的先驱。最初人们都相信这样一个“复杂”的加密系统是不可攻破的。不过,如果密钥含有的字符数不多,并且由同一加密系统得到的密文样本足够多的话,我们可以用一些统计的方法来破解这样的密码。如果一个钥匙是随机产生并只使用过一次,也即一次性密钥,那这样的密码是无法破解的。如今当我们试图对一些信息进行安全保护时,面临的一个很重要的问题是如何交换密钥,特别是随机产生的大量钥匙。

在现代生活里,人们更是意识到数学在安全事物中的重要性,其中不得不提的人物是阿兰•图灵(1912-1954)。

希特勒在攻占荷兰、法国等国家后,试图进一步攻占英国。当时,英国全力以赴试图通过使用通讯和信号智能技术以及解密信息技术来阻止德军侵占不列颠群岛。英军在Bletchley公园成立了一个由语言学家和数学家组成的特别行动组,尽量从拦截到的敌军信息里获得有用的信息。包括Marian Rejewski在内的波兰数学家首先获得了成功,他们将破解的德军代码交给英军。

图灵及团队根据波兰提供的信息,成功地破解了德军“神秘机器”(Enigma machine,见下图)以及其它密码系统发出的密码。毫无疑问,图灵等人的成功改变了这场战争的结果,也改变了历史。

图灵与数学家Gordon Welchman还发明了一种特殊的“计算机”来破解德军“神秘机器”产生的密码。

同样,在美国也有不少语言学家和数学家在战争中发挥了作用。其中最著名的可能是William Friedman(他是业余数学家)以及他的妻子、语言学家Elizabeth。二战期间,美军破获了日本军队大量的密码,也因此成功取得了战争的胜利。

如今,密码学不再仅仅是为军事与外交服务了,它越来越多地用在资本财富的建设上,例如通讯与互联网。对于电子转账、电子邮件或者网上购物等系统的用户而言,他们总是担心自己的交易是否按照计划进行而没有被“劫持”。当然,这涉及到的问题也是十分得复杂多样。当我们给别人发送一条信息时,我们自然要考虑这些问题:第一,对方收到的信息是否就是我们发出的原始信息,而不是被人更改过的;第二,现在发出的信息是否会危害到将来发出的信息的安全;第三,别人会不会通过我们发送信息的方式而盗用我们资料,然后以我们的名义再给别人发送邮件。“阴谋”这个人们常常与间谍或者间谍行为联系在一起的词,一样会在互联网安全领域里大肆横行。

散列法

散列法即按照某种方法,用一串短很多的字符替代一串长字符。例如,我们可以用一个仅仅用一首诗包含的字母个数来表示这首诗。乍看上去,散列法似乎是关乎数据压缩,而不是数据安全的。显然在散列系统里我们可以设法隐藏原始字符,使之很难破解。因此很容易理解为什么一串被打散的字符可以起到加密的作用。使用散列法需要注意的是避免两组不同的字符串最后被散列成同一字符串。这种情况叫做冲突。在这样定义的散列系统里,如果两首诗歌有相同的字符个数,那么就会产生冲突。因此,我们在设计散列系统时,必须要说明怎么处理冲突情况。散列法的另外一个好处就是,两列相似的字符串经过散列后,可能会大不一样。因此,即使有人试图对一个加密过的文档进行微小的修改,也会很容易地被发现。因为原始的和伪造过的两个文档的散列字符串大相径庭。同样我们可以理解为什么散列法与用户登录密码和数字签名密切相关。数字签名是一个电子确认系统,其功能与我们书信或支票中常用的手写签名类似。我们当然希望一个数字签名系统可以尽可能地减低伪造的风险。在1990年代中期,麻省理工学院的Ronald Rivest设计的MD-5(Message-Digest Algorithm 5)散列系统被广泛的使用。不过,数学家和计算机学家在1996年在这方面做出了一系列的研究,使得人们意识到MD-5有着安全性能方面的缺陷。于是MD-5被SHA-1取代。

散列法在用户密码管理系统里十分常用,因此它与互联网安全也早已密不可分。除了登录电子邮件账户,人们还常常需要使用用户密码来登录一些互联网提供的商业服务(例如报纸或金融网站的账户)。你可以很快根据一些简单的规则来改进自己的用户密码,从而使得自己的密码比大多数人的更安全。不幸地是,只要计算设备足够好,好几个有关散列系统的标准都被证明是有安全性能隐患的。最近,被认为是有关散列系统的安全性能通用标准的SHA-1也被证实是不安全的。这是由中国数学家王小云和她的团队发现的。当然,人们对王小云的成果短期内是否会影响业界意见并不一致。尽管我们暂时还没有可破解SHA-1的计算设备,王小云取得的成果足以让我们相信她的尖端成果有可能攻击现有的安全系统。比SHA-1更安全的散列系统确实已经出现了,不过这方面的进展并不快。

有这么多的加密办法,好像要从一段加密信息恢复出原始信息实在是太困难了。一般有两种破解办法。第一种方法是用统计技术。如果我们拿到大量的加密数据,那么我们可以试图寻找其中的一些特定模式(例如分析一些符号的出现频率的分布情况)来进行破解。另一种方法是注意到加密的人经常会有些特定的语言习惯,而我们可以利用这一点作为解密的切入点。比如有些人在一段信息的开始总是用同样的问候语。再比如有些信息都是以天气报告为开头,这也使得解密者可以试图猜测一些相同的字符是如何编码的。还有一点就是,一个被广泛使用的系统通常都有不少人参与管理与维护。这时候,很难确保该系统的信息不被流传出来。因此,用来解决替代密码的方法与基于母体技术的方法不同。从现实角度来看,很多人都接受以下观点,即只有在假设攻击安全系统的人已经完全知道该系统的设计方案的前提之下,才能真正解决安全问题。因此,“敌人”或许已经知道你正在使用RSA(下面会解释)还是Hill密码(基于矩阵的系统)。

相关文章:
分享到:
已有 人参与所有评论