第120部分(第1/4 页)
并且,按照林鸿现在的设想,就算是所有中继服务器都被关停或者下线,也不会造成整个通信网络的瘫痪,最多会影响到消息发送的即时性。
当网络中存在中继服务器的时候,客户端会和中继服务器保持连接,以便获知自己好友在线状态,要发送信息的时候,也会先向中继服务器查询整个拓扑结构,然后通过算法计算,随机找出一条最优路径,通过这条最优路径将消息发送到目的地。
而假设所有中继服务器都挂掉了,大家便无法确认好友是否在线,数据传输的时候,是一种广播式的行为,即向全网广播自己的消息,在传输之前,还得确认下一个节点是否在线,然后再传输,最终总会到达自己发送的目的。…;
不过这样一来,通信就失去了时效性,可能一条信息发送出去,快则几秒钟,慢则要好几分钟甚至上十分钟对方才能够收到,时间的长短和网络的拓扑结构有关。
这种结构,在安全方面也有保证。
一条信息发出,会首先通过自身的软件进行加密,然后再传送到“中转节点”中,那些节点都是匿名的,经过至少五次跳转之后,完全查不到来源路径,最终从“出口节点”对消息进行解密,然后再传递到目标客户端。
在整个流程中,唯一有可能被监听的环节就在于最后的“出口节点”,假设有人正好在出口节点监控,则就可以截获被发送的消息。
这个缺点林鸿也发现了,所以他在后来对图纸进行整理的时候,再次进行了完善。
他想了一个解决方案,那就是消息发送之后,会加密成一个数据包,然后再对这个数据包进行分割,包的各部分通过几条不同的路径最终传递到目的地,这样,就算某一个“出口节点”被监控了,他们截获的内容也只有一部分,没有截获其他包的话,根本无法对整个包进行解密。
理论上,同时将所有包都截获的可能性是趋近于零的,所以这样一来,通讯安全得到了最大限度的保障。
林鸿设计的整个新的架构,不但实现了信息传递的匿名性,而且消除了中心化的服务器端,极大地提升了软件的保密性和稳定性。
经过反复完善和优化,林鸿觉得最终没有问题之后,便开始着手进行代码编写。
由于他对加密解密方面还不是很了解,所先将其他基本功能暂时实现,将加密解密放到了最后。
到天亮的时候,新版cqcq的原型便被编写出来了,首先实现的功能非常简单,只能传递文字版,并且还没有对其进行加密。
今天是周一,林鸿的课不多,上午在十点多的时候就已经没课,他便立刻奔向了学校图书馆。
今天来这里有两个问题需要解决。
一个是查找一下,看看有没有posix标准的书籍,另外就是学习一下加密解密算法方面的内容。
由于林鸿是图书馆的常客,另外又是最近风头正盛的sam小组成员,图书馆中的不少工作人员都对他非常熟悉了,见到他之后,纷纷和他打着招呼。
林鸿微笑着一一回应,这几个月来,他算是彻底融入了拉丁学校的这个大集体当中。虽然这里也存在着一些瑕疵,但是总体上还是让人觉得比较舒服的,大家相互之间都比较友好,别人遇到什么困难,也会热心帮忙。
有一点林鸿感触最深:这里的学生和老师之间的关系完全是对等的,相互间说话,完全没有国内的那种一个聆听,另外一个不是训话就是大讲道理的那种常见情况。
林鸿来到计算机科学类区域,开始慢慢寻找自己所需要的内容。
“posix……加密算法……”
林鸿口中念叨着这两个词汇,在书架间一格格看过去。
走过几个格子之后,林鸿停了下来,一本书籍吸引住了他的目光——《md5算法应用》。
他将这本书拿到手中,翻看了一下前言和目录,于是将其拿在了手里,继续查架上其他书籍。
在书架走廊上转了几圈之后,林鸿手中已经多了好几本大部头:《rsa加密算法》、《加密算法导论》、《公钥密码学》、《对称和非对称加密算法》………;
在选择这几本书的时候,林鸿都会大致看一下前沿和目录,他原本只是想研究其中的一本,可是这几本书他实在是难以选择,觉得都非常不错,于是决定干脆都进行阅读,反正他的速度很快。
让林鸿有点遗憾的是,这个图书管里面并没有关于posix标准的书籍。