在网络模拟器NS-3中实现量子密钥分发网络仿真模块

摘要:

随着量子密钥分发(QKD)技术的研究变得越来越大,越来越复杂,对高度准确和可扩展的仿真技术的需求对评估实际可行性和预见理论成果的实际应用存在的困难变得非常重要。由于QKD链路的特殊性需要网络节点之间的光学和因特网连接,因此部署包含多个网络主机和链路的完整测试平台以验证和验证某个网络算法或协议将是非常昂贵的。

在这些情况下,网络模拟器节省了大量的金钱和时间来完成这样的任务。模拟环境提供复杂网络拓扑的创建,高度控制和可重复实验,这反过来允许研究人员进行实验并确认其结果。在本文中,我们描述了QKD网络仿真模块的设计,该模块是在版本3(NS-3)的网络仿真器中开发的。该模块支持在覆盖模式或单个TCP / IP模式下模拟QKD网络。因此,无论QKD如何,它都可以用于模拟其他网络技术。

一、引入介绍

在设计新的网络解决方案之后,研究人员通常有几种可能性来评估和验证所获得的结果。通过分析去量化甚至很简单的网络协议在集合中的性能和复杂行为的方法通常是不切实际的。

它使用数学模型来评估网络性能,其中排队论是网络性能研究中最常用的工具之一。不幸的是,对包含大量节点和链接的网络的理论分析是一个苛刻的过程,因为数学结构变得太复杂而不能用于实际考虑。模拟是计算机网络研究的重要工具。模拟环境提供复杂网络拓扑的创建,高度控制和可重复实验,这反过来允许研究人员进行实验并确认其结果。此外,模拟器提供了一种简单的方法来操作所需的参数,同时设置其他固定的参数,这提供了一种更简单和更舒适的方式来查看问题,并进一步降低了与实际测试台相关的成本。

量子密钥分配(QKD)基于物理定律而不是数学问题的计算复杂性,提供了在两个地理上遥远的用户之间建立对称二进制密钥的信息理论上安全(ITS)方式[1-3]密钥在传输过程中不会被窃听,QKD确保任何第三方对密钥的了解都降至最低[4,5]。近年来,量子设备的发展取得了显着进展,这已经通过QKD技术的一些成功示范反映出来[6-11]。虽然他们展示了QKD的巨大成就,但人们仍然需要解决实际困难。考虑到部署QKD网络测试平台的高成本,我们在此提出了QKD网络的第一个计算模拟环境。

本文是对我们以前的工作[12]的后续工作,它的目的是为了深入了解QKD网络的实际实现,即QKD与现有网络技术的集成。在本文中,我们描述了QKD网络模拟模块的设计,该模块在版本3.26 [13]的NS-3模拟器中实现。我们的模块允许使用各种网络应用程序模拟具有多个节点和链接的QKD网络。这篇文章的结构安排如下:

第2节概述了QKD的基本原理,包括最新技术水平。

第3节描述了QKD网络仿真模块,并提供了一个简单的使用示例。

第四节结束本研究并概述了未来的工作。

  1. 量子密钥分配的基本原理Fundamentals of quantum key distribution

QKD网络在几个方面不同于传统的通信网络。 其中一个主要差异体现在网络链接的实施上。 QKD链路在各方之间使用两个不同的通信信道:量子信道,其用于传输在某些光子特性(例如极化或相位)中编码的量子密钥材料,以及公共信道,其用于验证交换的密钥材料和加密数据的传输(图1)。 量子信道总是恰好两个节点之间的点对点连接[14],而公共信道可以实现为任何传统的连接,可以包括任意数量的中间设备[15,16]。 实际上,量子和公共信道可以在同一媒体上使用光学组件[17,18]。

QKD网络的第二个重要特征反映在链路的有限长度和最大传输速率上。即由于偏振光子的吸收和散射[19-22],量子通道只能实现一定的距离。该链接同样重要的特征是可以在单位时间内建立的密钥材料的数量,并且该数量可能因湿度,温度,设备的稳定性,全球辐射,压力,灰尘,日照持续时间或其他因素而变化。 [14,23]。但是,密钥率主要取决于链路的长度,通常称为密钥生成速率或简称密钥速率。虽然已达到高达1 Mbps的密钥速率结果[24-27],但此类解决方案仅限于非常短的距离。对于当前系统,QKD链路可能的距离在光纤中大致限制为100 km,而稳定的密钥率目前限制在几十或几百kbps,具体取决于距离[21,23]。

由于密钥速率有限,链路按以下方式组织:相应链路的两个端点都具有容量有限的密钥存储(缓冲区),逐渐填充新密钥材料,随后用于加密/解密数据流。 QKD设备始终以最大密钥率生成密钥,直到密钥存储空间被填满[28]。所使用的加密算法的类型和要加密的网络流量的数量决定了清空密钥存储的速度,通常称为密钥消耗率,而链路的密钥率决定了密钥充电率[7,14,29]。如果没有足够的存储密钥材料,则无法执行数据流的加密[30]并且链接可以被表征为“当前不可用”。为了提供ITS通信,密钥往往应用于一个OTP密码,在通过公共信道进行通信时使用ITS消息认证方案(例如Wegman-Carter)进行认证[31,32]。因此,ITS通信需要比安全消息的长度更多的密钥材料[33,34]。如果充电和消耗速率之间的比率不合适,则由于缺少密钥材料而无法使用OTP,并且{使用不需要太多材料(如高级加密标准(AES))的安全性较低的算法}变得不可避免[35] 。

在网络组织方面,QKD网络也与传统网络不同。尽管在量子中继器和量子继电器领域存在理论和开创性的成果[36-38],但在实践中它们仍然无法用现有技术[2,21]。因此,网络内的通信通常以逐跳[39]或以密钥中继方式[7,40]进行,其主要不同之处在于建立连接的方式。简单地说,使用对称加密密钥在链路的一侧加密分组,并使用相同的加密密钥在相应链路的另一侧解密。

对路径上的每个节点重复此过程,直到传输的消息到达其最终目的地。两种方法都依赖于假设发送方和接收方之间的路径上的所有节点都是完全可信的[30,41]。但是,当使用多路径通信量子网络编码[42,43]时,可以克服这种限制

为了便于实际实现绕过不可信节点的要求,实际上,QKD网络通常被部署为覆盖点对点网络[14,28,44]。覆盖网络利用现有底层网络的服务来尝试实现更好的服务,其最重要的特征之一是因特网服务提供商(ISP)提供的路径的独立性。这项技术的关键是找到一条替代路线,可以避免质量差的路线,通过这条路线快速切换通信,甚至可以同时使用多条路径。互连的自治系统通常使用外部路由协议(例如边界网关协议(BGP)[45])来交换路由信息,已知这种协议在响应和从网络事件中恢复时很慢。

以前的测量研究表明,BGP可能需要几十分钟才能在故障后达到网络拓扑的一致视图[46]。此外,由于BGP仅通告一条路由,因此阻止网络节点查看备用路径,包括它们可能更喜欢的路径。由于可以规避这些问题,覆盖网络通常在端点节点之间产生,端节点以对等(P2P)方式彼此共享资源,这意味着网络流量被封装到底层网络的流量中。覆盖网络表现得很自私,以优化其性能。然而,这可能会引起寻求支持某些其他网络服务的底层网络的反应[47,48]。争夺网络资源可能导致动态和不可预测的QKD链路性能变化[49]。

与传统网络不同,很少有软件应用程序处理QKD。使用C / C ++架构开发的量子密码协议模拟器[50]能够分析量子误码率(QBER)和窃听者在使用BB84或=协议时对量子信道性能的影响。 [51]报道了类似的应用。在[52]中报告了面向对象的QKD协议仿真,而在[53]中报告了一种事件仿真模型和偏振器作为QKD协议的模拟组件,其中存在窃听者和未对准测量的情景。在[54]中报告了使用OptiSystem的QKD协议的仿真框架,并且[55]报道了一种用于支持实际导向的QKD系统表示的开发和性能分析的建模框架。据我们所知,用于模拟具有多个节点和链路的QKD网络的应用程序不可用。

3 QKD网络仿真模块The QKD network simulation module

与先前开发的关注量子信道和QKD协议的仿真工具相比,本文描述的QKD网络仿真模块(QKDNetSim)侧重于QKD网络的公共信道和仿真

因此,QKDNetSim寻求最大限度地简化QKD链路,并将重点放在网络性能测量和估计路由协议,数据包封装和流量管理上,包括密钥材料的生成和消费。 更具体地说,QKDNetSim旨在促进对现有网络解决方案的QKD技术的进一步理解。 它旨在成为进一步迈向这一研究方向的自然场所(甚至是后续项目或产品设计中的实际开发)。

3.1 要求Requirements

QKDNetSim项目的目的不是从头开始(from scratch)开发整个模拟器,而是在一些已经成熟的模拟器中开发QKD模拟模块。 因此,开发QKDNetSim是为了满足以下基本要求:

3.1.1准确度Accuracy

虽然模拟的主要目标是使用抽象来降低分析问题的复杂性,但非常重要的一个方面是获得结果的准确性和可信度。如果经过验证并且可靠的网络设计决策可以基于它,那么一个好的模拟器是可信的[56-58]。模拟器需要尽可能地反映真实场景。然而,由于现实的高度抽象,其具有显着的简化以及更快的模拟性能,因此模拟器通常不能模拟真实问题并且它们不能精确地适应真实世界的测量。为了降低抽象级别并使获得的结果更接近现实世界的测量,同时保留模拟环境的好处,引入了仿真器的概念。Simulator环境相对于emulator环境的一个重要优势是可以验证实际流量的可能性[59]。另一方面,仿真环境优于现实世界实验的优点是可以通过在诸如网络接口等物理资源上复用模拟元素来扩展到更大的拓扑。

因此,作为一个基本的仿真平台,我们寻求经过充分测试和验证的平台。 我们寻找一种可信的模拟器,该模拟器已经在科学和研究界得到广泛接受,允许可靠的模拟并具有仿真能力,能够在实际测试平台中使用开发的QKD模型。

3.1.2 可扩展性Extensibility

可扩展性体现在易于升级,即在QKD和其他技术领域实施新模型和解决方案[31,60-63]。 如果没有这个,解决方案的开发既不是模块化的,也不会为升级提供有用的基准,很快就会导致无用。 从软件工程的角度来看,这意味着开发了一个可以根据各种需求定制的通用可重用代码[64]。

3.1.3 可用性Usability

可用性反映在易用性和与现有解决方案的集成方面[59,64]。 一个非常重要的方面是软件支持,即开发人员的积极合作,需要讨论和最新更新,错误报告,简明扼要的说明和用户手册。

3.1.4 可获得性Availability

本文中描述的QKD网络仿真模块将作为开源免费软件发布,并应利用并允许包含其他免费和开源网络软件。 因此,我们寻找一个开源的模拟平台,可用于扩展。 其目的是通过尽可能降低模拟成本,为QKD技术与各种现有网络解决方案的集成和测试提供机会。

3.2网络仿真模拟器NS-3  The network simulator NS-3

版本3的网络模拟器(NS-3)是一个开源软件,在GNU GPLv2下获得许可,并欢迎开发人员使用来自学术界,工业界和政府的代码[13,59]。 在模拟器的开发之后,通过为用户和活跃的开发人员讨论提供开放邮件列表,错误报告的跟踪器和具有用户贡献指令的wiki,积极鼓励社区参与。 此外,NS-3附带详细的doxygen网络版[65]中所有模拟器元素的说明和描述。

NS-3是一个完全用C ++编写的离散事件模拟,带有可选的Python绑定,其架构类似于Linux计算机。 NS-3强调了仿真功能,允许NS-3用于测试平台以及真实的物理设备和应用程序。这是通过引入Emu NetDevice组件来实现的,该组件允许NS-3模拟在物理网络上发送数据。此外,Tap NetDevice允许来自物理网络的主机参与NS-3模拟,就像它是模拟节点之一一样。可以使用模拟,Emu或Tap设备的任何组合来构建NS-3模拟。 NS-3由几个已经开发的仿真模块组成,如Wifi,WiMAX,LTE,点对点,UAN等[59,66],可用于合理处理QKD网络中公共信道的问题。 NS-3在科学文献中有广泛使用,并且已被证明是以前流行的NS-2模拟器的质量继承者。考虑到这一点,我们选择NS-3作为基本模拟平台。

3.3 QKDNetSim设计QKDNetSim design

由于单光子传播的性质,QKD网络主要限于大城市规模[10,17,67],其中网络可以在地理上划分为多个域(自治系统),或者在最简单的情况下它可以是单个域中的简单网络。显然,网络的地理分布决定了节点之间的寻址和路由。假设这些网络不仅仅局限于QKD流量(即网络被用于可能导致动态和不可预测的链路性能的各种类型的应用),在多个域之间实现路由协议可能并不是一件容易的任务。在简化的场景中,网络在单个域中实现并且专门用于QKD流量,寻址和路由的问题大大简化。为了支持各种情况下的不同仿真场景,我们的网络仿真模型允许在两种情况下模拟QKD网络。

3.3.1 QKD key

QKD密钥是QKDNetSim的基本类。 它用于描述在QKD过程中建立的密钥。 QKD键的特点是有几个metakey参数,其中最重要的是以下内容:

– key identification (ID)

– key size

– key value in std::string or byte format

– key generation timestamp

3.3.2 QKD buffer

QKD密钥存储在QKD缓冲区中,其特征在于以下参数:

 -  QKD也被称为量子密钥增长[68,69],因为它需要用在各方之间预先存在的少量密钥材料来建立更大量的秘密密钥材料。 预共享密钥用于保证第一次交易中协议的完整性,除了建立新的密钥材料外,它不应用于任何其他目的[14,29]。 用于该目的的预共享密钥材料的数量用Mmin表示,

 - 密钥材料存储深度Mmax,用于表示可以存储在QKD缓冲区中的最大密钥数量,

 - 当前值Mcur(t),表示测量时QKD缓冲区中的密钥材料量t,其中Mcur(t)≤Mmax

 - 测量时的阈值Mthr(t)用于表示QKD缓冲器的状态,其中Mthr(t)≤Mmax。 在模拟期间,Mthr(t)可以是静态的或可变的,这取决于网络的状态。 但是,计算Mthr的算法超出了本文的范围。

如图2所示,QKD缓冲区可以处于以下状态之一:

 -  READY - 当Mcur(t)≥Mthr时,

 -  Warning - 当Mthr> Mcur(t)> Mmin并且之前的状态为READY时,

 -  Charging - 当Mthr> Mcur(t)且之前的状态为EMPTY时,

 -  EMTPY - 当Mmin≥Mcur(t)且之前的状态为WARNING或充电

默认情况下,QKD缓冲区的状态不会直接影响通信,但可以根据缓冲区的状态使用它来更轻松地确定流量的优先级。例如,在EMPTY状态下,用于建立新密钥材料的QKD后处理应用程序应该在流量处理中具有最高优先级。

QKD后处理应用程序将在第3.3.6节中讨论。

在不失一般性的情况下,QKDNetSim允许通过在QKD缓冲区中建立和存储对称密钥材料,将虚拟密钥材料存储在QKD缓冲区中,而不是实际占用内存。简而言之,密钥材料不会生成,也不会占用计算机内存,它只用一个数字表示,表示QKD缓冲区中的密钥材料数量在网络模拟器中,这种操作很常见,因为它们减少了模拟的持续时间并节省了计算资源。例如,网络模拟器通常不生成具有随机数据包有效负载的数据包,而是生成空数据包。但是,QKDNetSim允许用户以一种在QKD缓冲区中选择真实密钥材料生成和存储的方式关闭此抽象级别

3.3.3 QKD crypto

QKD加密是一个用于执行加密,解密,身份验证,身份验证检查操作以及重新组装先前分段的数据包

QKD加密使用来自Crypto ++开源C ++类加密库的加密算法和方案[70]。 目前,QKD加密支持几种加密图形算法和加密哈希,包括一次性密码(OTP)密码,高级加密标准(AES)分组密码,VMAC消息认证码(MAC)算法等。 此外,QKD加密实现了将数据包的串行化和反序列化为字节数组的功能,该字节数组用作加密算法和方案中的输入。

3.3.4 QKD virtual network device

为了便于路由操作,实际上,在数据链路ISO / OSI层执行加密和认证。如图3所示,使用包含认证标签的QKD报头封装分组。请注意,QKD标头已通过身份验证,但默认情况下未加密[14,71]。由于缺少QKD报头标准化,QKDNetSim实现了QKD报头,该报头在图4所示的AIT R10 QKD后处理软件[71]中实现,而表1提供了QKD报头字段的简短说明。

QKDNetSim允许实现覆盖网络,无论QKD网络如何,该覆盖网络都可用于各种目的。为了确保底层网络的独立性每个QKD节点实现具有独立覆盖路由协议覆盖TCP / IP堆栈,如图5所示。

在QKDNetSim的开发过程中,我们的目标是尽量减少对NS-3模拟器现有核心代码的更改

但是,为了确保独立的覆盖网络,QKDNetSim在NS-3模拟器的互联网模块中实现了附加类Classipv4-protocol保存与IPv4接口关联所有IPv4地址的列表。因此,为了区分底层和上层网络的IP地址,引入了virtual-ipv4-protocol类这意味着实现独立的覆盖TCP和UDP L4协议类,它们将数据包传递给virtual-ipv4协议而不是原始的ipv4协议。此外,独立TCP和UDP L4协议类的实现允许对上层L4通信进行简单修改,而不会影响底层TCP / IP堆栈。

3.3.5 QKD manager

QKD管理器安装在每个QKD节点上,它代表QKDNetSim的主干。 它包含来自上层网络的QKD虚拟NetDevices列表,底层网络中的活动套接字列表,上层和底层网络中接口的IP地址列表以及相关QKD缓冲区和QKD密码列表。 因此,QKD管理器充当上层NetDevices和底层网络中的套接字之间的绑定。 由于QKD链接总是在两个节点之间以点对点的方式实现[14],因此QKD管理器存储有关相应链路的NetDevices和相关QKD缓冲区的信息

使用NetDevice的MAC地址,QKD管理器明确区分用于数据包处理的QKD加密和QKD缓冲区。 最后,QKD管理器将处理后的数据包传递给底层网络。 接收和处理传入的数据包遵循相同的过程,但顺序相反。

图六:比较使用QKDNetSim后处理(充电)应用程序和AIT R10 QKD软件生成的流量,该软件用于2016年4月AIT量子实验室中密钥的后处理。此处显示的流量记录在本地网络中,也就是说,排除任何其他应用程序生成的流量。

3.3.6 QKD后处理应用程序QKD post-processing application

密钥材料建立过程是QKD网络不可避免的一部分。它使用QKD协议执行,以安全的方式为对称系统传输的参与者提供密钥。尽管存在几种类型的QKD方案,但它们在高的层次上由几乎相同的步骤组成,但是在量子通道上制备和传输量子粒子或光子的方式不同[29,72]经由公共信道的通信被称为后处理,并且用于从在量子信道上生成的原始密钥提取秘密密钥。尽管实现方式存在差异,但几乎每个后处理应用程序都需要实现以下步骤:原始密钥的提取(筛选),错误率估计,密钥协调,隐私放大和身份验证。鉴于QKDNetSim的重点放在网络流量上并考虑到后处理应用程序有不同的变化,QKDNetSim提供了一个简单的应用程序,它试图模仿现实世界后处理应用程序产生的流量。作为AIT R10 QKD软件[71]。我们的目标是构建一个可靠地模仿现有后续流量的应用程序

处理应用程序以减少模拟时间和计算资源。图6显示了使用QKDNetSim后处理应用程序和AIT R10 QKD软件生成的流量的比较。测量和建模结果之间的Pearson相关系数为0.732。

需要强调的是,后处理应用程序在QKD网络中的影响不容忽视。考虑到QKD网络中的节点不断以最大速率生成密钥,直到其密钥存储空间被填满[28],在某些情况下,后处理应用程序生成的流量会对公共信道上的通信产生重大影响, 特别是在涉及较弱网络性能的公共渠道时。

3.3.7 QKD helper

QKDNetSim附带了一个辅助类(QKD帮助程序),它可以在网络节点上更轻松地安装QKD管理器,设置QKD链接QKD缓冲区的参数,以及绘制QKD图形。鉴于从QKD管理器调用加密操作,QKD模块可以轻松地用于具有两个TCP / IP堆栈的覆盖网络或具有单个TCP / IP堆栈的简单网络中。当使用覆盖网络时,应用程序必须使用将数据包传递给virtual-ipv4-l3协议的virtual-TCP-L4或virtual-UDP-L4协议。数据包进一步传递给相应的NetDevice和QKD管理器。执行加密操作后,数据包最终传送到底层网络。对于使用单个TCP / IP堆栈的简单网络,使用标准ns3 :: tcp-l4,ns3 :: udp-l4和ns3 :: ipv4-l3协议,而QKD帮助程序设置发送和接收ns3 ::从NetDevice回调到QKD管理器以执行加密操作。实现QKD帮助程序以便于建立这种配置的过程。

3.4 Verification

尽管文献表明在先前部署的QKD网络中已经测试了各种应用[9,68,73-78],但公共信道性能的研究普遍被低估,并且大多数注意力都集中在量子信道性能上。 据我们所知,除[62]报道的工作外,没有其他关于公共频道网络流量分析的报告已经发布。 此外,虽然有几个软件应用程序处理QKD [50-55],但据我们所知,并没有模拟具有多个节点和链接的QKD网络的应用程序。

因此,QKDNetSim是一个独特的工具,旨在允许QKD链接的公共频道在通信中新结果和新发现的发布。 值得注意的是,QKDNetSim是QKD网络的仿真模块,它是在久经考验的现有NS-3仿真器中开发的[13,59]。 QKDNetSim使用着名的Crypto ++开源C ++类加密库[70]和经过良好测试的NS-3模拟器代码库,只需进行少量修改即可实现覆盖网络通信使用QKD头的数据包封装。 鉴于AIT R10 QKD软件在先前实施的项目中的普及和利用[9,14,71],QKDNetSim遵循先前部署的QKD测试平台的网络组织,这反映在QKD标头的设计和如第3.3.6节所述,使用AIT R10 QKD后处理应用程序1生成的网络流量的模仿中。

3.5 Example of use

QKDNetSim可用于QKD网络中路由协议的简单性能测试。 在我们的示例中,我们使用单个TCP / IP网络堆栈建立了具有7个固定节点的模拟,形成了图7所示的拓扑,以测试默认情况下嵌入在NS-3模拟器中的AODV,DSDV和OLSR路由协议。 表2给出了模型参数,包括密钥生成速率,充电密钥速率,数据包大小和数据流量参数。 此处未给出的参数是NS-3模拟器的默认参数,版本3.26。

表2中的参数表明链路C-F,D-F和E-F具有最少量的初始密钥材料。由于测试的路由协议没有关于链路状态的信息,因此需要在三种可能的路由之一中进行选择:A-B-C-F-G,A-B-D-F-G或A-B-E -F-G。然而,在一段时间之后,使用任何这些路径都会导致通信中断,因为可用的密钥材料被快速消耗并且QKD链路变得不可用。然后,使用的路由协议需要在耗尽的链路被充电和恢复时选择备选路由(只有到达empty状态(密钥材料数量小于最小值时)后且密钥材料数量小于临界值时才可充电)。当使用的链路再次耗尽时,路由协议应切换到备用路径,依此类推。重要的是要强调,没有可用密钥材料的链接仅对于需要使用密钥材料的通信不可用,但IPv4接口对于任何未加密的通信保持活动状态。这意味着不测量QKD缓冲区状态的路由协议无法立即注册链路可用性更改另一方面,鉴于QKD的主要目标是提供ITS通信路由数据包需要加密和验证[14]。因此,在我们的模拟中,每个路由数据包都经过加密和验证,在这种情况下,当没有足够的密钥材料时,不会传输路由数据包。因此,路由协议检测链路不可用性的唯一方法是检测路由分组和路由信息的缺失。值得注意的是,当QKD缓冲区处于EMPTY状态时,也就是当密钥材料的数量低于最小阈值时,剩余密钥材料应该仅用于建立新的密钥材料[29]。为了实现这种行为,我们实现了优先级等待队列

它使用IP报头中的差分服务代码点(DSCP)/服务类型(ToS)比特来执行网络流量的分类。 QKDNetSim充电应用程序生成的流量具有最高优先级,而源自路由协议的流量以及用户流量具有较低优先级。表3比较了基于发送的路由数据分组传送比(PDR)的获得值,该分组传送比被计算为接收和发送的应用分组的比率。这两个值用于评估指定仿真环境中路由协议的有效性。

表3显示AODV发送最大数量的路由数据包。 AODV被称为反应式路由协议,其中仅在需要时通过泛滥网络来搜索路由路径[79,80]。 如果已经找到路线,或者在检查了所有路径排列后没有路线可用,则发现过程终止,这导致很多的密钥材料消耗,如图8所示。在我们的模拟中,AODV仅使用A-B -E-F-G路由,而忽略其他路由。 鉴于AODV默认没有测量链路状态的方法,它假设A-B-E-F-G是通往目的地的最佳路线。 当E-F链路上的密钥材料耗尽时,A-B-E-F-G路径是不可持续的,但没有找到到达目的地的替代路线(如图8所示,在220-250秒的时间段内)。

 

根据RFC 3561,AODV需要更新这条被用于数据包转发的路由的活跃路由生命周期到不少于当前时间加上被默认设为3秒的活跃路由超时间的时间。

 因此,转发节点负责将路由的有效性扩展到目的地,而不管该路由是否可行。 在我们的示例中,这意味着节点B假设到目的地G的路由在节点E上是有效的,即使在缺少通过E-F链路转发分组的密钥材料的情况下也是如此

每次恢复E-F链路(QKD缓冲器用新密钥材料充电时,节点E上的AODV泛洪路由请求建立到目的地的路由,导致在仿真模拟时间0~220s内在图9中所示的周期性峰值。为了强调策略AODV转发策略的影响,我们修改了转发策略,以遵循在转发策略中指向目的地的路由更新。在这种情况下,每当路由到期并且请求与目的地的通信时,AODV发送路由分组刷新路由,但是它根本不转发策略中更新到目的地的路由(也就是说这回每次都刷新一遍,但是不在策略中更新路由,所以每次都是未知的,需要重新刷新一遍发现合适的路由(密钥材料必须足够)。而原来修改转发策略之前的AODV一直就是一个路由,即使链路效率很低也不会换,只有发现不好使了才会换,而这个对于密钥材料用完的状况是很糟糕的,因为如果链路密钥材料用完了,还在继续用这条链路,那么没有办法利用这个去进行QKD加密认证通信了)如图9所示,我们的修改导致了额外的路由流量,但它将PDR提高了一倍以上(这个时候就可以传播分组链路问题少了,自然接收到的比发送出去的分组的比率提高了)。此外,如图8所示,在没有朝向目的地的路线可行的情况下,我们的修改防止链路A-B和B-E上的密钥材料的无效消耗。在模拟时间的220-300秒期间,链路A-B,B-E和E-F上的密钥材料耗尽,每次生成新密钥材料时,AODV请求到达目的地G的路由,产生如图9所示的大峰值。重要的是注意,只要使用该路线,AODV就会维持获得的路线。由于QKD设备始终以其最大密钥速率生成密钥,直到密钥存储被填满[28],因此不断保持到相邻节点的路由

DSDV主动路由协议使用A-B-E-F-G 路由并且在E-F链接密钥材料消耗干净后切换到A-B-D-F-G路由。所以然后,DSDV使用A-B-C-F-G路由并且结合所有的三条朝向目的地的路由。已知DSDV只有在默认15秒交换路由表(没有触发更新因为IPv4接口保持活跃)过后才能探测到路由信息的缺少[81,82], 源节点假定到目的节点的路由是可得到的并且发送由于可用来进一步转发的密钥材料的缺少导致在中间节点默默被丢失的加密流量。在我们的仿真中,密钥材料的建立处理过程像在图6中显示的一样花费大约30s的时间,然而DSDV的周期性更新间隔是默认15秒。关于此点,在密钥材料建立的过程中,DSDV注意到来自于和密钥材料耗尽的链路相连的节点的周期性的更新的缺少。DSDV在路由表中中删除了朝向那个中断了密钥材料建立过程的节点的入口,并让链路处于锁定位置。因为路由的缺少生成新的密钥材料是不可能的,并且由于密钥材料的缺少交换路由包以更新路由表也是不可能的。这样的一个场景被注册为C-F链路,该链路在第二个160之后仍然保持锁定状态并且禁止 A–B–C–F–G 路由。

 

OLSR是基于使用hello和TC路由信息去通过网络传播广播链路状态信息发现主动的链路状态方法。OLSR通过使用多点中继(MPR)来减少控制流量开销,这是OLSR背后的关键思想。在我们的仿真中,OLSR使用了所有的三个可能的去往目的地的路由。默认情况下,OLSR每2秒交换Hello信息并且定义“holding time” 为hello信息周期的三倍长。因为新的hello消息的缺少,坚持时间(holding time)表示这个一个等待时间优先于删除路由。保持时间表示由于缺少新的Hello消息而在删除路由之前的等待时间[12]。  因此,OLSR能够在6秒后检测到链路故障,并且如果密钥材料建立过程花费更长时间,则具有QKD缓冲器的EMPTY状态的链路将被锁定的概率增加。

4 结论Conclusion

本文从网络的角度论述了QKD网络的实际实现。该工作总结了QKD网络的局限性和基本特征,并描述了实现QKD网络的方式,可以是覆盖模式,也可以是具有单个TCP / IP堆栈的网络。本文的主要部分涉及QKDNetSim仿真环境,主要用于测试现有解决方案以及QKD网络领域新解决方案的实施。本文档中描述的使用QKDNetSim的示例表明,源自路由协议的流量需要在网络资源的分配中具有更高的优先级,以避免将QKD链路置于锁定位置。此外,获得的结果证实了先前在[12]中公布的结果,该结果表明,与其他测试的路由协议相比,DSDV路由协议在PDR和传输的路由数据包的数量方面产生明显更好的性能。考虑到目前没有可用的QKD网络模拟器,QKDNetSim为QKD技术领域的研究界带来了显着的好处。我们假设QKDNetSim将有助于理解QKD技术的实际应用,这反过来又能够在QKD网络中使用各种应用。虽然主要是为QKD网络设计的,但QKDNetSim可以很容易地应用于模拟其他类型的网络。虚拟TCP / IP堆栈的实现允许简单地模拟覆盖网络,而QKD缓冲器和QKD密码简化了涉及使用对称加密密钥的模拟。QKDNetSim源代码可从git存储库“https:// bitbucket.org/liptel/qkdnetsim”免费下载。

本文的主要贡献是介绍了QKD网络的实际组织和模拟环境。 我们未来的工作将侧重于QKD网络的仿真。

//参考文件自己搜吧

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值