在因特网中最常用的一些通讯协议——用于Web浏览的HTTP协议、用于文件传输的FTP协议、用于电子邮件的SMTP和POP3协议等,都是使用明文进行信息通讯的网络协议,因此恶意的网络黑客可以使用网络监听手段窃取通讯过程中的一些敏感资料。

如何应对这种信息泄密威胁呢?答案是:加密技术!

信息加密有许多方法,下面将简单介绍一种特别的信息加密手段——运用噪声干扰技术的信息加密。

一、噪声干扰 —另类的通讯加密手段

其实,除了普通的加密技术,还有另一种对通讯信息进行安全保护的方法,那就是噪声干扰。回想一下二十世纪七十年代的战争题材老电影中,中国共产党地下工作者在室内秘密交换侦察信息时,常常将收音机或唱片播放机开到最大音量,面对面低声交谈的地下工作者可以相互听清楚对方的谈话,但是大音量的音乐与他们谈话的声音混合在一起却可以严重干扰国民党特务的窃听活动。这里的大音量的音乐,实际上就是一种起到干扰作用的噪声。

在信息论中,“噪声”这个专业术语是指在信息传递过程中与有效信息相伴随的无效信息。这些“无效信息”是不可避免地自然出现在信息通道中的,其最大特征是其彻底的随机性。所谓彻底随机是指噪声信号均匀地覆盖了全部信号频段,我们称之为“白噪声”。自然产生的噪声干扰是“白噪声”与有效信号“均匀”混合而造成的,这种混合本质上是不可逆的,从有效信号中去除白噪声是非常困难的,因此,高强度的噪声将造成有效信号完全不可读。 “信噪比”就是一个用来描述通讯过程中噪声含量多少的参量,它定义为有效信息的强度与噪声强度的比值(通常还对这个比值进行一次对数运算操作),信噪比越高则通讯的质量越好,但是绝对没有噪声是不可能的。

换一个角度思考,如果可以“有控制地加入噪声”,即将白噪声以某种特定的模式与有效信号“交织”混合在一起,这种交织混合干扰与前面提到的均匀混合干扰不同,“交织”式的加扰操作是可逆的,当加扰信号传送到目的地后,通过实施加扰操作的逆操作——解扰,即可将加扰信号中的噪声完全地滤除掉,只剩下清晰的有效信号。

在这种通讯方式中,即使信息在传送途中被窃听,由于窃听者不知道噪声与有效信号的交织模式,因此无法滤除其中的干扰噪声,而加扰时与有效信号交织混合的噪声使有效信息呈现严重失真的状态,窃听者得到的只能是类同于噪声的无用信息。

二、噪声干扰技术的实现方式

注意上面关于噪声干扰技术的的原理描述,噪声与原始信息是以某种模式“交织”在一起的,并非简单的均匀混合,这种“交织”式的加扰是可逆的操作,通过逆操作——“解扰”可以完全滤除噪声,还原出原始信息。基于这个原理的加密技术实际上应该称为“伪噪声编码加密技术”。

下面通过一个在数字通讯中运用噪声干扰技术的简单实现实例,进一步说明这项技术的原理:

例:基于二进制数据的交织模式范例

现在要传送单词“Windows”,在数字通讯中我们使用ASCII码对其进行编码为7字节的数据,以十进制数表示为:87105110100111119115

用随机数发生器产生7个0~255之间的随机数,例如在Visual Basic中,可以使用伪随机函数RND 构造表达式:INT(RND*256) ;

假设产生的噪声干扰数据为:31987774148136180

将两组数据交织在一起,交织混合模式如下:

将87与3交织,方法是:

把两数写成8位二进制数,然后以原始数据取奇数位、噪声干扰数据取偶数位的交错方式交织

87 3 _0101011100000011

_0010001000101111

_0010001000101111_3447

同理,105198_0110100111000110_0111100010010110_120150

后面5组数据的交织变换省略…

可以看到,交织变换得到的数据是混合了随机噪声的加扰数据,必定会具有很强的随机性;

接收到这些表面上随机的数据后,以二进制形式查看,每16位一组,去除其中的偶数位,仅保留奇数位,就可以得到原理数据,比如:120150 _ 0111100010010110 _ 01101001 _ 87

基于十进制和其它进制的字符串变换的交织模式以引类推。

上面这个例子只是固定算法的噪声加扰操作,并没有类似于密钥的加扰控制参数,而且上面两个范例算法可以说是非常简单的,只要得到了能实现加扰算法的程序代码或程序功能模块,就可以很容易地推导出解扰算法,从而得到全部的加密方案,所以这个例子明显地属于对称加密的方式。

在实践运用中,如果将噪声干扰数据与原始数据交织混合后,用传统的密钥式加密手段对加扰数据进行变换,这时可以把密钥看成加扰解扰算法中的控制参数,不同的加密密钥将产生不同的噪声干扰模式,而相应的解密密钥则用来作为解扰算法的控制参数,用于正确地滤除噪声。

三、噪声干扰技术的应用实例

笔者在一项网络编程的实践中设想用Visual Basic快速开发出一个简单且安全的网上文件共享工具,它基于FTP技术,但增加了基础ASP网站的加密式用户认证,不仅解决了FTP服务的安全隐患,还实现了动态用户管理。

产生这个构想的原因,是因为在使用SERV-U(一种流行的FTP服务器)时,意外地发现了一个有趣的特性:当网络用户用一个有效帐号登录SERV-U服务器后,将产生一个持续维持的Session会话连接,如果这时将服务器上的这个帐号更改成无效属性(注意,并没有删除这个账号,只是禁用这个帐号),那么已发生的Session会话连接不会受到影响,在禁用该帐号前登录的用户仍然可以正常活动,不过,不允许新的用户再使用该帐号登录。

网上搜索发现有许多基于ASP技术的SERV-U用户管理插件,可以让ASP网页管理SERV-U的帐号,实现添加、删除、禁用、设置FTP帐号等各种管理操作。

于是,在噪声干扰技术的指导思想下,提出了以下的方案(已通过VB编程实现):

第一步:安装SERV-U服务器;

第二步:安装ASP服务器,这可以使用微软Windows操作系统自带的IIS服务器,或者使用NetBox这个迷你型ASP服务器,并在ASP服务端上安装用户管理ASP插件;

第三步:编写ASP网站,基于Access数据库或其他SQL网络数据库构建一个帐号管理系统,可以注册新帐号,可以设置帐号的FTP根路径和控制权限等,同时提供对SERV-U服务器帐号的同步管理功能;

第四步:用VB编写一个专用客户端,通过XmlHttp技术调用ASP网页,用来实施ASP网站的登录认证,这里我使用噪声干扰技术对计算机的时钟信息进行加密,把加密结果作为认证信息传递到ASP网站,ASP网站解密出时钟信息并核对发现时间误差在允许范围内时,即可认定是从专用客户端发来的认证信息;

第五步:专用客户端将使用传统的MD5摘要编码,接合噪声干扰技术进行高强度的安全的用户认证,向ASP传递用户帐号信息;

第六步:ASP网站通过SERV-U用户管理插件,在SERV-U服务器上新建一个FTP帐号(帐号名称和密码都是随机的),这个临时的FTP帐号被指定ASP帐号设定的根路径和相就权限,FTP帐号和密码通过网络反馈给客户端使用;

第七步:客户端收到临时FTP帐号和密码后,在第一时间立刻调用FTP客户端软件(如FlashFXP)登录服务器;

第八步:ASP网站在很短的延时之后(延时量必须保证客户端调用的FTP客户端软件可以正常登录到服务器),禁用这个FTP帐号,防止非法用户通过窃听临时FTP帐号和密码也来用此帐号登录;

第九步:客户端在结束FTP访问后,应主动向ASP网站发出登录注销操作;

第十步:ASP网站将临时FTP帐号删除;

第十一步:ASP网站还将定期清理因为没有发出登录注销操作(比如客户端死机)而长时间处于登录状态的用户。

上面的构想已经完成了编程实现!

四、总结

如果系统对安全的要求不是很高,则完全可以使用类似前面的噪声干扰式加密范例给出的固定式的加密算法,不过要注意,一但客户端软件被反编译破解,破解者(Cracker)就能很容易地得到加扰算法的代码,也就可以推导出解拢算法,使系统失去安全保证。为此可以采用如下应对方案:

(1)加扰算法设置为客户端软件内部的功能模块,而不使用ActiveX控件或DLL插件的外挂式功能模块方式,同时对客户端软件实施代码加密。

(2)服务端不使用ASP脚本编写解扰功能模块,而是使用VB的DLL组件技术编写,然后在ASP脚本中调用DLL组件,由于DLL组件可以放置在ASP网站之外,避免了ASP网站被黑客技术攻破之后,导致解扰算法失窃的问题。

从使用效果上看,这个网络安全方案基本达到了安全、方便、高效、简单的设计目标,而这一切的核心,就是噪声干扰技术!

小知识之二进制介绍:二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统。