本站新(短)域名:xiguashuwu.com
第220章 加密算法
第220章加密算法
对cqcqruan件重构的想法,林鸿实际上在和凯文聊过之后,就开始在脑海中慢慢成型。
对发送消息进行加密这个问题比较好解决,据林鸿所知,目前有一些加密xing能比较好的加密算法都是免费并且公开的,他可以直接拿来使用。
关键在于如何建立起负责消息传递中转的“秘密据点”
这些据点必须ju有随机的特点,不能一直固定,这样就可以增加被追踪拦截的难度。
现在这zhong一台服务qiguan理并转发所有在线聊天客hu端的信息的模式肯定是行不通了,因为这zhong结构太过脆弱,只要对方攻占了服务qi,整个聊天网络就会tan痪。
林鸿经过慎重思考,觉得还是回归到自己最初的想法比较靠谱,也就是,把客hu端和服务qi端集成到一起。
也就是说,网络上有多少个是用整个ruan件的客hu,那么就有多少台消息中继服务qi,每一台服务qi都可以对消息进行中转,构成一个庞大的没有任何规律的网状网络。
确定好了这个大ti的方向之后,他脑海中各zhong灵gan不断冒chu,以至于他立刻从课桌里面拿chu几张白纸,开始以极快地速度将这些想法以图形和简短的文字记录在这些纸上。
不一会儿,不断冒chu的想法就记满了五张白纸,林鸿这才停了下来。
林鸿chouchu其中一张,这张纸上,画了一张用方块代表计算机的网络拓扑图,用线条表示数据liu动的方向。
林鸿重新回过tou来,对之前的思路进行整理,然后又对这张图进行完善和修补。
接下来便又chouchu另外一张纸,这张纸上画了四个方块表示计算机,中间用几条细线和一条cu线连接,细线表示少量数据jiao换,cu线表示真正的数据。
想了一下,林鸿又重新在它们之间添加了两条cu线,将原来的那一gencu线给划掉了。
经过刚才一阵tou脑风暴,林鸿对于cqcq新版的架构已经有了底稿,总ti的设计框架已经想清楚了,接下来就是对它的技术细节的实现。
放弃中央控制服务qi的架构,转而采用点对点的架构,消息可以通过每一个客hu端进行中转。
不过,还是会存在一个对整个拓扑网络节点进行维护的“中继服务qi端”这些服务qi端并不涉及到数据的中转,只保存客hu端节点信息,例如ip映she1地址,在线节点列表以及它们之间的拓扑结构。
考虑到稳定xing方面的问题,这些服务qi端不能只有一个,而是多个,并且他们共同维护同一张数据表,即每一台服务qi上都有全bu的备份,这样,即时某一台服务qi下线了,整个通信网络也不会受到影响。
并且,an照林鸿现在的设想,就算是所有中继服务qi都被关停或者下线,也不会造成整个通信网络的tan痪,最多会影响到消息发送的即时xing。
当网络中存在中继服务qi的时候,客hu端会和中继服务qi保持连接,以便获知自己好友在线状态,要发送信息的时候,也会先向中继服务qi查询整个拓扑结构,然后通过算法计算,随机找chu一条最优路径,通过这条最优路径将消息发送到目的地。
而假设所有中继服务qi都挂掉了,大家便无法确认好友是否在线,数据传输的时候,是一zhong广播式的行为,即向全网广播自己的消息,在传输之前,还得确认下一个节点是否在线,然后再传输,最终总会到达自己发送的目的。
不过这样一来,通信就失去了时效xing,可能一条信息发送chu去,快则几秒钟,慢则要好几分钟甚至上十分钟对方才能够收到,时间的长短和网络的拓扑结构有关。
这zhong结构,在安全方面也有保证。
一条信息发chu,会首先通过自shen的ruan件进行加密,然后再传送到“中转节点”中,那些节点都是匿名的,经过至少五次tiao转之后,完全查不到来源路径,最终从“chu口节点”对消息进行解密,然后再传递到目标客hu端。
在整个liu程中,唯一有可能被监听的环节就在于最后的“chu口节点”假设有人正好在chu口节点监控,则就可以截获被发送的消息。
这个缺点林鸿也发现了,所以他在后来对图纸进行整理的时候,再次进行了完善。
他想了一个解决方案,那就是消息发送之后,会加密成一个数据包,然后再对这个数据包进行分割,包的各bu分通过几条不同的路径最终传递到目的地,这样,就算某一个“chu口节点”被监控了,他们截获的内容也只有