<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.1d3 20150301//EN" "http://jats.nlm.nih.gov/publishing/1.1d3/JATS-journalpublishing1.dtd">
<article article-type="research-article" dtd-version="1.1d3" xml:lang="en" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">PLoS ONE</journal-id>
<journal-id journal-id-type="publisher-id">plos</journal-id>
<journal-id journal-id-type="pmc">plosone</journal-id>
<journal-title-group>
<journal-title>PLOS ONE</journal-title>
</journal-title-group>
<issn pub-type="epub">1932-6203</issn>
<publisher>
<publisher-name>Public Library of Science</publisher-name>
<publisher-loc>San Francisco, CA USA</publisher-loc>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="publisher-id">PONE-D-18-27283</article-id>
<article-id pub-id-type="doi">10.1371/journal.pone.0214292</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Research Article</subject>
</subj-group>
<subj-group subj-group-type="Discipline-v3"><subject>Biology and life sciences</subject><subj-group><subject>Organisms</subject><subj-group><subject>Eukaryota</subject><subj-group><subject>Animals</subject><subj-group><subject>Invertebrates</subject><subj-group><subject>Arthropoda</subject><subj-group><subject>Insects</subject><subj-group><subject>Moths and butterflies</subject></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Computer and information sciences</subject><subj-group><subject>Network analysis</subject></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Engineering and technology</subject><subj-group><subject>Control engineering</subject><subj-group><subject>Fault tolerance</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Computer and information sciences</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Fault tolerance</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Engineering and technology</subject><subj-group><subject>Software engineering</subject><subj-group><subject>Fault tolerance</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Computer and information sciences</subject><subj-group><subject>Computer networks</subject><subj-group><subject>Internet</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Engineering and technology</subject><subj-group><subject>Electrical engineering</subject><subj-group><subject>Electrical faults</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Physical sciences</subject><subj-group><subject>Physics</subject><subj-group><subject>Classical mechanics</subject><subj-group><subject>Damage mechanics</subject></subj-group></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Computer and information sciences</subject><subj-group><subject>Cryptography</subject></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Cryptography</subject></subj-group></subj-group></subj-group><subj-group subj-group-type="Discipline-v3"><subject>Physical sciences</subject><subj-group><subject>Mathematics</subject><subj-group><subject>Topology</subject></subj-group></subj-group></subj-group></article-categories>
<title-group>
<article-title>Towards attack tolerant networks: Concurrent multipath routing and the butterfly network</article-title>
<alt-title alt-title-type="running-head">Concurrent multipath routing and the butterfly network</alt-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes" xlink:type="simple">
<contrib-id authenticated="true" contrib-id-type="orcid">http://orcid.org/0000-0003-2148-3841</contrib-id>
<name name-style="western">
<surname>Platt</surname> <given-names>Edward L.</given-names></name>
<role content-type="http://credit.casrai.org/">Conceptualization</role>
<role content-type="http://credit.casrai.org/">Formal analysis</role>
<role content-type="http://credit.casrai.org/">Investigation</role>
<role content-type="http://credit.casrai.org/">Methodology</role>
<role content-type="http://credit.casrai.org/">Validation</role>
<role content-type="http://credit.casrai.org/">Visualization</role>
<role content-type="http://credit.casrai.org/">Writing – original draft</role>
<role content-type="http://credit.casrai.org/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"/>
<xref ref-type="corresp" rid="cor001">*</xref>
</contrib>
<contrib contrib-type="author" xlink:type="simple">
<name name-style="western">
<surname>Romero</surname> <given-names>Daniel M.</given-names></name>
<role content-type="http://credit.casrai.org/">Conceptualization</role>
<role content-type="http://credit.casrai.org/">Funding acquisition</role>
<role content-type="http://credit.casrai.org/">Methodology</role>
<role content-type="http://credit.casrai.org/">Resources</role>
<role content-type="http://credit.casrai.org/">Supervision</role>
<role content-type="http://credit.casrai.org/">Writing – review &amp; editing</role>
<xref ref-type="aff" rid="aff001"/>
</contrib>
</contrib-group>
<aff id="aff001">
<addr-line>School of Information, University of Michigan, Ann Arbor, Michigan, United States of America</addr-line>
</aff>
<contrib-group>
<contrib contrib-type="editor" xlink:type="simple">
<name name-style="western">
<surname>Gallos</surname> <given-names>Lazaros K.</given-names></name>
<role>Editor</role>
<xref ref-type="aff" rid="edit1"/>
</contrib>
</contrib-group>
<aff id="edit1">
<addr-line>Rutgers The State University of New Jersey, UNITED STATES</addr-line>
</aff>
<author-notes>
<fn fn-type="conflict" id="coi001">
<p>The authors have declared that no competing interests exist.</p>
</fn>
<corresp id="cor001">* E-mail: <email xlink:type="simple">elplatt@umich.edu</email></corresp>
</author-notes>
<pub-date pub-type="collection">
<year>2019</year>
</pub-date>
<pub-date pub-type="epub">
<day>3</day>
<month>4</month>
<year>2019</year>
</pub-date>
<volume>14</volume>
<issue>4</issue>
<elocation-id>e0214292</elocation-id>
<history>
<date date-type="received">
<day>18</day>
<month>9</month>
<year>2018</year>
</date>
<date date-type="accepted">
<day>11</day>
<month>3</month>
<year>2019</year>
</date>
</history>
<permissions>
<copyright-year>2019</copyright-year>
<copyright-holder>Platt, Romero</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">
<license-p>This is an open access article distributed under the terms of the <ext-link ext-link-type="uri" xlink:href="http://creativecommons.org/licenses/by/4.0/" xlink:type="simple">Creative Commons Attribution License</ext-link>, which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited.</license-p>
</license>
</permissions>
<self-uri content-type="pdf" xlink:href="info:doi/10.1371/journal.pone.0214292"/>
<abstract>
<p>It is crucial for large-scale communication networks such as the internet to be resilient against attacks such as censorship and surveillance, which pose a threat to free expression and free association. Self-organized networks such as the internet’s router network typically have heavy-tailed degree distributions, making them highly vulnerable to targeted attacks against central nodes. While cryptographic solutions exist, they fail to address the underlying topological problem, and remain vulnerable to man-in-the-middle attacks and coercion. Coercion-resistant, topological approaches to attack tolerance are needed to address the current vulnerability of communications infrastructure to censorship and surveillance. We present a novel concurrent multipath routing (CMR) algorithm for the wraparound butterfly network topology, as well as a highly attack-tolerant Structured Multipath Fault Tolerance (SMFT) architecture which incorporates the butterfly CMR algorithm. We also identify a previously unexplored relationship between network topology, trust transitivity, and attack-tolerance, and provide a framework for further exploration of this relationship. Our work is the first theoretical demonstration of a point-to-point communication network architecture that can resist coercion and other non-technical attacks, without requiring infinitely transitive trust. To address cases where the network structure cannot be fully controlled, we demonstrate how a snapshot of the internet’s router network can be partially rewired for greater attack-tolerance. More broadly, we hope that this work will serve as a starting point for the evelopment of additional topology-based attack-tolerant communication architectures to guard against the dangers of censorship and surveillance.</p>
</abstract>
<funding-group>
<award-group id="award001">
<funding-source>
<institution-wrap>
<institution-id institution-id-type="funder-id">http://dx.doi.org/10.13039/100000001</institution-id>
<institution>National Science Foundation</institution>
</institution-wrap>
</funding-source>
<award-id>IIS-1617820</award-id>
<principal-award-recipient>
<name name-style="western">
<surname>Romero</surname> <given-names>Daniel M.</given-names></name>
</principal-award-recipient>
</award-group>
<funding-statement>This work was supported by the NSF under Grant No. IIS-1617820 to DMR. There was no additional external funding received for this study.</funding-statement>
</funding-group>
<counts>
<fig-count count="8"/>
<table-count count="2"/>
<page-count count="20"/>
</counts>
<custom-meta-group>
<custom-meta id="data-availability">
<meta-name>Data Availability</meta-name>
<meta-value>The data underlying the results presented in the study are available from the Stanford Network Analysis Project. <ext-link ext-link-type="uri" xlink:href="http://snap.stanford.edu/data/as-733.html" xlink:type="simple">http://snap.stanford.edu/data/as-733.html</ext-link>. The authors had no special access to this data. Others can access the data in the same manner as the authors.</meta-value>
</custom-meta>
</custom-meta-group>
</article-meta>
</front>
<body>
<sec id="sec001" sec-type="intro">
<title>Introduction</title>
<p>Is it possible for any large-scale communication network to resist targeted attacks? The internet was originally designed to withstand targeted (nuclear) attacks [<xref ref-type="bibr" rid="pone.0214292.ref001">1</xref>], and the resilience of the internet has long been part of common wisdom [<xref ref-type="bibr" rid="pone.0214292.ref002">2</xref>]. But 18 years after Albert et. al [<xref ref-type="bibr" rid="pone.0214292.ref003">3</xref>] showed that the topology of the internet’s router network makes it vulnerable to targeted attacks (vs. random faults), the fundamental problem of attack-tolerant network topology remains unsolved. Attack-tolerant topologies are desirable not only for the router network, but for any physical or virtual network where a compromised node puts communication at risk. For example, the network of verified keys in the public key infrastructure underlying secure http [<xref ref-type="bibr" rid="pone.0214292.ref004">4</xref>], or the network of DNS nameservers. The ongoing vulnerability of the internet is evidenced by a long history of censorship and surveillance incidents achieved by means of targeted attacks [<xref ref-type="bibr" rid="pone.0214292.ref005">5</xref>]. In this paper, we present the first theoretical network topology supporting attack-toloerant, point-to-point networked communication, without relying on infinitely transitive trust [<xref ref-type="bibr" rid="pone.0214292.ref006">6</xref>].</p>
<p>Methods for tolerating various kind of faults within networks are an important and ongoing area of research [<xref ref-type="bibr" rid="pone.0214292.ref003">3</xref>, <xref ref-type="bibr" rid="pone.0214292.ref007">7</xref>, <xref ref-type="bibr" rid="pone.0214292.ref008">8</xref>]. <italic>Adversarial faults</italic>, those in which an adversary can target attacks strategically, deserve special attention. Such attacks are both extremely difficult to guard against and often have important social implications. In particular, censorship and surveillance are often achieved by targeting central network locations and either blocking or capturing the information flowing through them. While cryptograpy can provide some protection against surveillance, it is vulnerable to <italic>man-in-the-middle</italic> attacks [<xref ref-type="bibr" rid="pone.0214292.ref009">9</xref>], and cannot overcome censorship when communication is blocked. In this paper, we instead consider a topological approach. The Internet’s decentralized design was motivated by the need to withstand targeted attacks, such as nuclear strikes [<xref ref-type="bibr" rid="pone.0214292.ref001">1</xref>]. But despite longstanding common wisdom [<xref ref-type="bibr" rid="pone.0214292.ref002">2</xref>], both theoretical results and recent events have demonstrated that the internet is surprisingly vulnerable to attack.</p>
<p>Analysis of the internet’s router network has shown that while it is remarkably resilient against random faults, it is highly susceptible to adversarial faults [<xref ref-type="bibr" rid="pone.0214292.ref003">3</xref>]. These results have been attributed to the heavy-tailed degree distribution of the Internet’s router network [<xref ref-type="bibr" rid="pone.0214292.ref010">10</xref>, <xref ref-type="bibr" rid="pone.0214292.ref011">11</xref>]. Random failures are highly likely to affect only low-degree nodes, thus having little effect. However, adversarial faults target the few high-degree nodes, and therefore remove a large number of edges with each fault. So while the <italic>protocols</italic> of the Internet are decentralized, the <italic>network structure</italic> is somewhat centralized. In other words, the protocols of the Internet do not <italic>require</italic> centralization, but centralization may still emerge from the sociotechnical processes that create its network structure.</p>
<p>The internet’s vulnerability to censorship and other targeted attacks has been demonstrated by several recent events. In 2008, YouTube suffered a worldwide outage for several hours when a service provider in Pakistan advertised false routing information [<xref ref-type="bibr" rid="pone.0214292.ref012">12</xref>]. The action (known as a <italic>black hole attack</italic>) was intended to censor YouTube within Pakistan only, but resulted in a worldwide cascading failure when a router misconfiguration allowed the false routing information to propagate outside of Pakistan. This incident exemplifies the type of attack requiring a topological approach. First, the attack was <italic>non-technological</italic> (a government order), allowing the attacker to bypass any cryptographic or technology-based defenses. Second, the attack originated at a <italic>single point of failure</italic> (a misconfigured router). Third, the behavior of the compromised component (the router) cascaded through a <italic>network</italic> (the network of internet routers) because the correct behavior of other components depended on the correct behavior of the single point of failure. And while the action was not an intentional attack against the global internet, the ability of an attacker to succeed without even trying only highlights the internet’s vulnerability to adversarial faults.</p>
<p>As another example, in 2013, the Texas-based email provider Lavabit was ordered to disclose their private SSL keys to the FBI [<xref ref-type="bibr" rid="pone.0214292.ref013">13</xref>]. Rather than complying, Lavabit ceased operations in order to protect their users from surveillance. Once again, the attack was non-technical. And again, the attack was on a single point of failure: Lavabit’s web server and that server’s TLS/SSL keys. In this case, the affected network was the internet’s public key infrastructure. With the private keys, an attacker would be able to intercept and surveil traffic because the issuing certificate authority (and any users trusting that authority) would incorrectly trust that they were communicating with Lavabit. While originally intended as surveillance, this action effectively became an act of censorship. So we see that such vulnerabilities are not limited to any one system or protocol, but result from centralized structure itself.</p>
<p>This paper addresses the need for a theoretial understanding of network and redundancy-based approaches to attack-tolerance. For the purpose of this paper, <italic>attack-tolerance</italic> refers to the ability of a pair of communicating nodes to detect, with high probability, when a message has been blocked or altered in the presence of adversarial faults. Our primary result is theoretical: an algorithm for constructing highly redundant paths in a particular network topology. While we motivate the need for such network topologies using examples such as the internet router network and webs of trust, we do not propose that our algorithm as a pracitcal solution for any of these examples. Rather, our result is a demonstration that such topological approaches to attack-tolerance are theoretically possible and suggest the importance of further theoretical and applied work.</p>
<p>We consider a setting in which a source node attempts to route a message to a target node, while an adversary attempts to block or intercept the message by compromising a number of intermediate nodes. We also assume that edges represent <italic>direct trust</italic>, i.e., the belief that an adversary is unlikely to compromise a neighbor, as in the web of trust approach [<xref ref-type="bibr" rid="pone.0214292.ref014">14</xref>, <xref ref-type="bibr" rid="pone.0214292.ref015">15</xref>]. The web of trust approach typically assumes infinite trust transitivity in that it is possible for one node to have some level of trust for another as long as they are connected by a path of directly trusted edges, regardless of the length of that path. The assumption of infinite transitivity is unrealistic [<xref ref-type="bibr" rid="pone.0214292.ref006">6</xref>], so we instead make a stricter assumption: <italic>bounded trust transitivity</italic>, that trust transitivity can only be extended over a finite number of edges. Even with this more restrictive assumption, we show how trust can be established between two nodes even when no path of directly trusted edges exists between them.</p>
<p>Under the above assumptions, we show how to evaluate the influence of network structure on attack-tolerance. We next present a structured multipath fault tolerance (SMFT) scheme to extend standard fault tolerance techniques to the case of adversarial faults in networks [<xref ref-type="bibr" rid="pone.0214292.ref016">16</xref>, <xref ref-type="bibr" rid="pone.0214292.ref017">17</xref>]. The SMFT scheme requires the existence of a concurrent multipath routing (CMR) algorithm [<xref ref-type="bibr" rid="pone.0214292.ref007">7</xref>, <xref ref-type="bibr" rid="pone.0214292.ref018">18</xref>, <xref ref-type="bibr" rid="pone.0214292.ref019">19</xref>], to takes advantage of the independence of faults along <italic>independent paths</italic>. We also present a novel CMR algorithm for the butterfly network topology. The butterfly topology is popular in parallel processing [<xref ref-type="bibr" rid="pone.0214292.ref020">20</xref>] and peer-to-peer [<xref ref-type="bibr" rid="pone.0214292.ref021">21</xref>, <xref ref-type="bibr" rid="pone.0214292.ref022">22</xref>] applications, due to its regular structure, low degree, and high connectivity.</p>
<p>It is important to note that the butterfly is a highly structured and constrained network topology, very different form those found in social networks and other self-organized networks. The reader may wonder whether it is realistic or useful to assume such control over the network structure. Regardless of implementation difficulty, we argue that attack-tolerance cannot be achieved without the ability to influence network structure. Targeted attacks, by definition, target single points of failure. Attack tolerance can thus be achieved in two ways: 1. preventing failure at those points, or 2. preventing the existence of central points. Because individual points are always vulnerable to coercive, non-technological attacks, the former method is insufficient. We must instead rely on some control over topology to prevent the existence of single points of failure. The difficulty of achieving control over network topology can be mitigated by a number of approaches. Attack-tolerant networks might be sub-components of larger, less-constrained systems. For example, a single centralized server might be replaced by a distributed network of servers, each with different ownership, physical location, and legal jurisdiction, without placing any unrealistic constraints on the clients connecting to those servers. When attack tolerant topologies are nested (as in the case of the butterfly topology), multiple independent sub-components could be merged into larger ones over time. Real-world examples of structured neworks include: overlay networks [<xref ref-type="bibr" rid="pone.0214292.ref021">21</xref>, <xref ref-type="bibr" rid="pone.0214292.ref022">22</xref>], formal organizations [<xref ref-type="bibr" rid="pone.0214292.ref023">23</xref>], government-regulated cellular networks [<xref ref-type="bibr" rid="pone.0214292.ref024">24</xref>], and call tree notification systems [<xref ref-type="bibr" rid="pone.0214292.ref025">25</xref>]. In general, when the need for attack-tolerance is high enough to warrant investment in infrastructure, topology can be engineered and maintained as infrastructure.</p>
<p>Our main contributions are:</p>
<list list-type="bullet">
<list-item>
<p>We propose a novel structured multipath fault tolerance (SMFT) scheme for extending standard fault tolerance techniques to <italic>adversarial</italic> faults in <italic>complex networks</italic>. Assuming <italic>h</italic>-degree <italic>bounded trust transitivity</italic>, We show that the probability of detecting adversarial faults <italic>h</italic>-internally vertex disjoint paths.</p>
</list-item>
<list-item>
<p>We prove that the number of <italic>h</italic>-internally vertex disjoint paths between two nodes in a directed wrap-around butterfly network is exactly 2<sup><italic>h</italic></sup>, and present a scalable and efficient concurrent multipath routing (CMR) algorithm to find these paths, which can be combined with SMFT to achieve a high level of attack-tolerance.</p>
</list-item>
<list-item>
<p>We show that rewiring a the edges of the internet’s router network to resemble a butterfly network allows it to tolerate a higher number of failures without fragmenting, and increases the effective redundancy in the presence of a large number of adversarial faults.</p>
</list-item>
</list>
<p>This paper is organized as follows. Section reviews background and related work. Section describes adversarial fault tolerance on structured networks. Section gives background on the butterfly network topology. Section presents our concurrent multipath routing algorithm for the butterfly network. Section discusses the results. And Section concludes.</p>
</sec>
<sec id="sec002">
<title>Background and related work</title>
<p>There has been considerable work on trust-based attack-tolerance techniques in network security, both centralized and decentralized. Centralized approaches such as <italic>public key infrastructure</italic> (PKI) suffer from a number of vulnerabilities [<xref ref-type="bibr" rid="pone.0214292.ref004">4</xref>], including vulnerability to coercion, which stems largely from the single points of failure inherent to centralization. The well-known and widely-used <italic>web of trust</italic> approach [<xref ref-type="bibr" rid="pone.0214292.ref014">14</xref>, <xref ref-type="bibr" rid="pone.0214292.ref015">15</xref>] is a decentralized alternative. In a web of trust, individuals can have <italic>direct trust</italic>, as well as <italic>indirect trust</italic> for those trusted by someone directly trusted. Typically, this transitivity is extended to any number of hops, sometimes reducing trust by a multiplicative factor at each hop. Infinite trust transitivity is helpful for establishing a large group of trusted nodes, but unfortunately unrealistic [<xref ref-type="bibr" rid="pone.0214292.ref006">6</xref>]. Our work addresses this limitation by assuming only bounded trust transitivity.</p>
<p>Previous work applying network topology to attack tolerance has focused on authentication, showing that independent paths can reduce an adversary’s ability to impersonate a target [<xref ref-type="bibr" rid="pone.0214292.ref026">26</xref>]. Other work has shown that identifying independent paths in arbitrary networks is NP-hard and provided approximation algorithms [<xref ref-type="bibr" rid="pone.0214292.ref027">27</xref>]. Our work complements these results by extending our focus beyond authentication, to communication. When network topology can be controlled, we sidestep the NP-hard problem of finding independent paths on arbitrary networks by using the mathematical structure of the butterfly topology to construct provably independent paths.</p>
<p>Many distributed consensus protocols (such as those used by cryptocurrencies) are designed to tolerate arbitrary or adversarial faults. Byzantine agreement protocols [<xref ref-type="bibr" rid="pone.0214292.ref028">28</xref>, <xref ref-type="bibr" rid="pone.0214292.ref029">29</xref>] provide tolerance against arbitrary faults (including attacks) under some circumstances, but are limited to small networks due to poor scalability. Proof-of-work [<xref ref-type="bibr" rid="pone.0214292.ref030">30</xref>, <xref ref-type="bibr" rid="pone.0214292.ref031">31</xref>] (blockchain) systems provide better scalability, but are wasteful of computational and energy resources, and do not take advantage of trusted relationships. Federated Byzantine Agreement (FBA) [<xref ref-type="bibr" rid="pone.0214292.ref032">32</xref>] is scalable, allows for flexible trust, and is highly fault-tolerant on networks meeting specific requirements. However, FBA does not provide a method for constructing networks to meet those requirements, or for calculating the failure probabilities within a particular network.</p>
<p>All existing attack-tolerant networks we are aware of are content-addressable networks (CANs) in which data is stored and retrieved based on key values, rather than point-to-point networks, in which data is communicated between two parties. Fiat and Saia described a scheme that combines the butterfly topology with expander graphs to create a highly censorship-resistant, content-addressable network [<xref ref-type="bibr" rid="pone.0214292.ref033">33</xref>], although this scheme requires high levels of data replication and indefinite storage. Perhaps the most mature structural solution is the Freenet collaboration [<xref ref-type="bibr" rid="pone.0214292.ref034">34</xref>]. Freenet uses secret sharing [<xref ref-type="bibr" rid="pone.0214292.ref035">35</xref>, <xref ref-type="bibr" rid="pone.0214292.ref036">36</xref>] and small-world routing [<xref ref-type="bibr" rid="pone.0214292.ref037">37</xref>, <xref ref-type="bibr" rid="pone.0214292.ref038">38</xref>] to create a content-addressable network with a high level of both confidentiality and censorship resistance. Freenet guarantees that data is stored redundantly, but still allows for centralized network structure, and thus single points of failure, as data travels from its origin to the redundant storage locations. Unlike the above content-addressable networks, our architecture is purely network based and does not require nodes to store data indefinitely. Our architecture also improves on the scalablity of the Fiat-Saia network, and makes requirements about network topology explicit.</p>
<p><italic>Multipath routing</italic> protocols identify multiple paths between source and destination in contrast to traditional <italic>unipath</italic> routing, which uses a single path. The special case of <italic>concurrent</italic> multipath routing uses multiple paths simultaneously. Multipath routing has many applications, including reduced congestion, increased throughput, and more reliability [<xref ref-type="bibr" rid="pone.0214292.ref018">18</xref>]. Many of these routing protocols offer increased confidentiality [<xref ref-type="bibr" rid="pone.0214292.ref007">7</xref>]. Some approaches utilize redundant paths as backups for increased fault tolerance [<xref ref-type="bibr" rid="pone.0214292.ref039">39</xref>], and some specifically protect against adversarial faults [<xref ref-type="bibr" rid="pone.0214292.ref040">40</xref>–<xref ref-type="bibr" rid="pone.0214292.ref042">42</xref>]. Most work on multipath routing has been motivated by applications related to wireless sensor networks (WSNs), and have thus focused on ad-hoc, unstructured networks, often having a central base station. The method of Liu et al. [<xref ref-type="bibr" rid="pone.0214292.ref043">43</xref>] routes multiple messages first to random peers and then to a central base station, with the network edges constrained by sensors’ physical location. We have found very few examples of CMR applied to <italic>adversarial</italic> fault tolerance in the existing literature, and all have focused on ad-hoc wireless sensor networks, without attention to the role of network structure.</p>
<p>Our proposed routing algorithm makes use of a <italic>structured network</italic>, in which link structure is predetermined. Structured networks have been a popular tool in parallel processing architectures [<xref ref-type="bibr" rid="pone.0214292.ref020">20</xref>]. More recently, peer-to-peer systems based on distributed hash tables have used structured <italic>overlay networks</italic> to map table keys to local TCP/IP routes [<xref ref-type="bibr" rid="pone.0214292.ref021">21</xref>, <xref ref-type="bibr" rid="pone.0214292.ref022">22</xref>]. Such networks can be designed to have favorable structural and routing properties, which can be used to to improve attack-tolerance.</p>
<p>Our proposed architecture is differentiated from existing systems by several properties (<xref ref-type="table" rid="pone.0214292.t001">Table 1</xref>). Decentralized architectures are more resistant to coercion [<xref ref-type="bibr" rid="pone.0214292.ref044">44</xref>] and man-in-the-middle attacks [<xref ref-type="bibr" rid="pone.0214292.ref009">9</xref>]. Trust-based systems are more sustainable than proof-of-work. Bounded-trust systems do not require the unrealistic assumption of infinite trust transitivity. Topological approaches address the root cause of vulnerability in heavy-tail networks, rather than relying on technology that can be side-stepped through coercion. Point-to-point communication allows two individuals to exchange messages without requiring large amounts of indefinite data storage on intermediate nodes.</p>
<table-wrap id="pone.0214292.t001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.t001</object-id>
<label>Table 1</label>
<caption>
<title>Comparison of attack-tolerant network communication architectures.</title>
</caption>
<alternatives>
<graphic id="pone.0214292.t001g" mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.t001" xlink:type="simple"/>
<table border="0" frame="box" rules="all">
<colgroup>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
</colgroup>
<thead>
<tr>
<th align="left"/>
<th align="left">Decentra-lized</th>
<th align="left">Trust-based</th>
<th align="left">Bounded-trust</th>
<th align="left">Topo-logical</th>
<th align="left">Point-to-point</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">PKI</td>
<td align="left"/>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left"/>
<td align="left">✔</td>
</tr>
<tr>
<td align="left">Web of Trust</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left"/>
<td align="left"/>
<td align="left">✔</td>
</tr>
<tr>
<td align="left">Freenet</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">FBA</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left"/>
<td align="left">✔</td>
</tr>
<tr>
<td align="left">Proof of Work</td>
<td align="left">✔</td>
<td align="left"/>
<td align="left">✔</td>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left">Fiat-Saia</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left"/>
</tr>
<tr>
<td align="left">SMFT</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
<td align="left">✔</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
</sec>
<sec id="sec003">
<title>Trust networks and fault tolerance</title>
<p>Within the field of <italic>fault tolerance</italic>, many techniques have been developed for building reliable systems out of unreliable components [<xref ref-type="bibr" rid="pone.0214292.ref016">16</xref>, <xref ref-type="bibr" rid="pone.0214292.ref017">17</xref>]. We will make use of standard fault tolerance terminology, summarized here. A <italic>fault</italic> is occurs when one component of a system behaves incorrectly (e.g., a routing node blocks or alters a message). The result of that fault (e.g., a recipient receiving conflicting messages) is an <italic>error</italic> state. If the error is undetected or corrected to the wrong value, the system has experienced a <italic>failure</italic> (e.g., an altered message is accepted as authentic). Note that when an error is detected but cannot be corrected, the system has still tolerated the fault because it has not accepted an error state. We are concerned in particular with <italic>adversarial faults</italic>, which are chosen strategically to maximize the likelihood of a failure.</p>
<sec id="sec004">
<title>Multipath fault tolerance</title>
<p>Standard fault tolerance methods use redundancy to detect and correct statistically independent faults. In complex networks however, faults can be correlated when, for example, two messages pass through the same faulty node. For now, let us assume our sender (Alice) and receiver (Bob) are connected by <italic>δ</italic> direct channels, with independent errors. We will return to the question of constructing these channels in subsequent sections. For now, we concern ourselves with the question: given that the network provides <italic>δ</italic> redundant channels between Alice and Bob, what is the probability that an adversary (Mal) causes an undetectable error after causing faults in a fixed number of channels?</p>
<p>Let us first consider the scenario in which Alice sends a message copy over each available channel. We can also assume that each message includes the number of messages sent, the full list of channels used, etc., making that information available to Bob. When Bob receives the messages, there are several possibilities. If some of the messages are missing or if some of the messages disagree, Bob knows that some of the messages were either blocked or altered, and he has successfully tolerated the fault(s). Bob can then take any of several actions: 1. request re-transmission; 2. send receipts so Alice knows which paths have been compromised; or 3. attempt error correction using majority voting. If instead, Bob finds that all the messages are present and agree, there are two possible cases. The first case is that Mal has not compromised any of the messages, and Bob has correctly accepted them, so no failure has occurred. The second case is that Mal has compromised <italic>all</italic> of the messages, so Bob has accepted an erroneous message and a failure has occurred. In the present scenario, whether a failure occurs depends only on whether Mal has the resources to compromise all of the channels. In a more realistic scenario, both Alice and Mal have limited resources and are not able to use or compromise all available channels.</p>
<p>In a more sophisticated multipath fault tolerance scheme, Alice randomly chooses <italic>k</italic> ≤ <italic>δ</italic> channels and sends a copy of her message on each. We assume that Mal is capable of compromising <italic>l</italic> ≤ <italic>δ</italic> channels. Since Alice chooses channels randomly, all channels are equally likely to contain a message, so Mal can do no better than also choosing randomly. If <italic>k</italic> &gt; <italic>l</italic>, at least one message will get through uncompromised and all errors are detectable. Otherwise, the probability of Mal producing an undetectable error is the probability that all of Alice’s chosen channels are compromised:
<disp-formula id="pone.0214292.e001"><alternatives><graphic id="pone.0214292.e001g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e001" xlink:type="simple"/><mml:math display="block" id="M1"><mml:msub><mml:mi>p</mml:mi> <mml:mi>f</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mi>l</mml:mi> <mml:mo>!</mml:mo> <mml:mo>(</mml:mo> <mml:mi>δ</mml:mi> <mml:mo>-</mml:mo> <mml:mi>k</mml:mi> <mml:mo>)</mml:mo> <mml:mo>!</mml:mo></mml:mrow> <mml:mrow><mml:mi>δ</mml:mi> <mml:mo>!</mml:mo> <mml:mo>(</mml:mo> <mml:mi>l</mml:mi> <mml:mo>-</mml:mo> <mml:mi>k</mml:mi> <mml:mo>)</mml:mo> <mml:mo>!</mml:mo></mml:mrow></mml:mfrac> <mml:mo>.</mml:mo></mml:mrow></mml:math></alternatives> <label>(1)</label></disp-formula>
Letting <italic>k</italic> = <italic>αδ</italic> and <italic>l</italic> = <italic>βδ</italic>, then applying Stirling’s approximation gives:
<disp-formula id="pone.0214292.e002"><alternatives><graphic id="pone.0214292.e002g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e002" xlink:type="simple"/><mml:math display="block" id="M2"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="right"><mml:msub><mml:mi>p</mml:mi> <mml:mi>f</mml:mi></mml:msub></mml:mtd> <mml:mtd><mml:mo>≈</mml:mo></mml:mtd> <mml:mtd columnalign="left"><mml:mrow><mml:mfrac><mml:msqrt><mml:mrow><mml:mi>β</mml:mi> <mml:mo>(</mml:mo> <mml:mn>1</mml:mn> <mml:mo>-</mml:mo> <mml:mi>α</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msqrt> <mml:msqrt><mml:mrow><mml:mi>β</mml:mi> <mml:mo>-</mml:mo> <mml:mi>α</mml:mi></mml:mrow></mml:msqrt></mml:mfrac> <mml:mo>[</mml:mo> <mml:mo>(</mml:mo> <mml:mfrac><mml:mrow><mml:mi>β</mml:mi> <mml:mo>-</mml:mo> <mml:mi>α</mml:mi></mml:mrow> <mml:mrow><mml:mn>1</mml:mn> <mml:mo>-</mml:mo> <mml:mi>α</mml:mi></mml:mrow></mml:mfrac> <mml:msup><mml:mo>)</mml:mo> <mml:mi>α</mml:mi></mml:msup> <mml:mo>(</mml:mo> <mml:mfrac><mml:mi>β</mml:mi> <mml:mrow><mml:mi>β</mml:mi> <mml:mo>-</mml:mo> <mml:mi>α</mml:mi></mml:mrow></mml:mfrac> <mml:msup><mml:mo>)</mml:mo> <mml:mi>β</mml:mi></mml:msup> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>1</mml:mn> <mml:mo>-</mml:mo> <mml:mi>α</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:msup><mml:mo>]</mml:mo> <mml:mi>δ</mml:mi></mml:msup> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(2)</label></disp-formula></p>
<p>
<xref ref-type="fig" rid="pone.0214292.g001">Fig 1</xref> shows the value of <italic>p</italic><sub><italic>f</italic></sub> as a function of <italic>k</italic> and <italic>l</italic>. <xref ref-type="disp-formula" rid="pone.0214292.e002">Eq (2)</xref> shows that while <italic>p</italic><sub><italic>f</italic></sub> depends on the fractions of channels actually utilized <italic>α</italic> and compromised <italic>β</italic>, it decreases exponentially with <italic>δ</italic>. This result is significant because, as we will soon show, <italic>δ</italic> depends only on the network structure and the strength of trust transitivity. <italic>Thus, the scheme can be effective, even when the number of channels used k is a small fraction of the channels available</italic>. In other words, this scheme exhibits a <italic>stabilizing asymmetry</italic>: senders can tolerate attacks from significantly more powerful adversaries. Furthermore, this scheme requires only a small increase in network traffic as long as the network provides a large number of independent paths <italic>δ</italic>.</p>
<fig id="pone.0214292.g001" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g001</object-id>
<label>Fig 1</label>
<caption>
<title>The probability of an undetectable error as a function of the number of redundant channels and the number of adversarial faults.</title>
<p>A small increase in the number of utilized paths (network traffic) can compensate for a large increase in attacker power.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g001" xlink:type="simple"/>
</fig>
</sec>
<sec id="sec005">
<title>Bounded trust model</title>
<p>So far, we have assumed that Alice and Bob have access to some number <italic>δ</italic> of channels with statistically independent faults. However, in real communication architectures, direct links between all pairs of individuals are not possible and messages must be routed through a number of intermediate nodes. In an adversarial setting, the existence of intermediate nodes introduces two problems: 1. intermediate nodes may be compromised by the adversary and 2. faults on paths are no longer statistically independent: two paths may pass through the same compromised node. We show how to how to resolve these problems using a combination of network structure and bounded trust transitivity.</p>
<p>Trust-based approaches to secure communication assume that some parties cannot be compromised. One common approach, the web of trust [<xref ref-type="bibr" rid="pone.0214292.ref014">14</xref>, <xref ref-type="bibr" rid="pone.0214292.ref015">15</xref>]. Alice has <italic>direct trust</italic> for some number of nodes. Alice has <italic>indirect trust</italic> for nodes separated by two or more hops of direct trust. Typically, this transitive trust is extended indefinitely, sometimes reduced by a multiplicative factor at each step. However, the assumption of infinitely transitive trust is unrealistic [<xref ref-type="bibr" rid="pone.0214292.ref006">6</xref>]. Furthermore, infinite trust transitivity obscures the importance of network structure, as it depends only on whether some path exists, not the number or quality of paths. We adopt a simpler, yet more realistic <italic>bounded trust</italic> assumption: that nodes up to some fixed number of hops cannot be compromised, and that those beyond can. This assumption will be convenient for proving our results, which we now proceed to define formally.</p>
<p>We define the <italic>bounded trust model</italic> (<xref ref-type="fig" rid="pone.0214292.g002">Fig 2</xref>) on an undirected graph <italic>G</italic> = (<italic>V</italic>, <italic>E</italic>), although the model can easily be extended to directed multigraphs. Vertices representing communicating parties, with edges representing mutually trusted communication links. We define a <italic>trust radius</italic> <italic>h</italic> such that nodes <italic>v</italic> and <italic>w</italic> trust each other if their distance is less than <italic>h</italic>. For a given node <italic>v</italic>, we call the set of trusted nodes its <italic>trusted neighborhood T</italic><sub><italic>h</italic></sub>(<italic>v</italic>), and all nodes at exactly distance <italic>h</italic> the <italic>trust boundary B</italic><sub><italic>h</italic></sub>(<italic>v</italic>):
<disp-formula id="pone.0214292.e003"><alternatives><graphic id="pone.0214292.e003g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e003" xlink:type="simple"/><mml:math display="block" id="M3"><mml:mrow><mml:msub><mml:mi>T</mml:mi> <mml:mi>h</mml:mi></mml:msub> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>v</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mo>{</mml:mo> <mml:mi>w</mml:mi> <mml:mo>∣</mml:mo> <mml:mi>d</mml:mi> <mml:mo>(</mml:mo> <mml:mi>v</mml:mi> <mml:mo>,</mml:mo> <mml:mi>w</mml:mi> <mml:mo>)</mml:mo> <mml:mo>&lt;</mml:mo> <mml:mi>h</mml:mi> <mml:mo>}</mml:mo></mml:math></alternatives> <label>(3)</label></disp-formula>
<disp-formula id="pone.0214292.e004"><alternatives><graphic id="pone.0214292.e004g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e004" xlink:type="simple"/><mml:math display="block" id="M4"><mml:mrow><mml:msub><mml:mi>B</mml:mi> <mml:mi>h</mml:mi></mml:msub> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>v</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo> <mml:mi>w</mml:mi> <mml:mo>∣</mml:mo> <mml:mi>d</mml:mi> <mml:mo>(</mml:mo> <mml:mi>v</mml:mi> <mml:mo>,</mml:mo> <mml:mi>w</mml:mi> <mml:mo>)</mml:mo> <mml:mo>=</mml:mo> <mml:mi>h</mml:mi> <mml:mo>}</mml:mo> <mml:mo>.</mml:mo></mml:mrow></mml:math></alternatives> <label>(4)</label></disp-formula>
The trust boundary <italic>B</italic><sub><italic>h</italic></sub> plays an important role because these nodes are not trusted by <italic>u</italic>, and if compromised can entirely isolate <italic>v</italic> from the rest of the network.</p>
<fig id="pone.0214292.g002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g002</object-id>
<label>Fig 2</label>
<caption>
<title>Illustration of a trusted communication network and the network properties used by the <italic>bounded trust model</italic>.</title>
<p>Edges represent mutually trusted communication links. The sender (Alice, <italic>s</italic>) and receiver (Bob, <italic>t</italic>) trust all nodes less than the <italic>trust radius</italic> <italic>h</italic> hops away. These nodes form their <italic>trusted neighborhoods T</italic><sub><italic>h</italic></sub>(<italic>v</italic>) and <italic>T</italic><sub><italic>h</italic></sub>(<italic>w</italic>). We assume that all faults occur in the remaining nodes: the <italic>untrusted region</italic>. The untrusted nodes in contact with the trusted neighborhoods for the <italic>trust boundaries B</italic><sub><italic>h</italic></sub>(<italic>v</italic>) and <italic>B</italic><sub><italic>h</italic></sub>(<italic>w</italic>), which (in the absence of central bottlenecks) determine the <italic>effective redundancy δ</italic><sub><italic>h</italic></sub> provided by the network. Alice and Bob can achieve the same level of attack-tolerance as if they were directly connected by <italic>δ</italic><sub><italic>h</italic></sub> redundant channels.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g002" xlink:type="simple"/>
</fig>
<p>Now let <italic>s</italic> ∈ <italic>V</italic> be an arbitrary sender and <italic>t</italic> ∈ <italic>V</italic> be an arbitrary receiver. We assume the presence of an adversary who knows the full structure of the network, and who can compromise a fixed number of nodes, gaining complete control of their behavior. We also assume that the adversary is specifically targeting communication between <italic>s</italic> and <italic>t</italic> and can compromise any node except for those trusted by <italic>s</italic> or <italic>t</italic>. Under these trust assumptions, adversarial faults can only occur outside the trusted neighborhoods of <italic>s</italic> and <italic>t</italic>: <italic>V</italic>\(<italic>T</italic><sub><italic>h</italic></sub>(<italic>v</italic>) ∪ <italic>T</italic><sub><italic>h</italic></sub>(<italic>w</italic>)). We refer to this set of nodes as the <italic>untrusted region</italic>. We now show how it is possible to communicate reliably, even when all available paths go through the untrusted region.</p>
</sec>
<sec id="sec006">
<title>Effective redundancy</title>
<p>Our approach is to achieve fault tolerance through redundancy. To do so, we must use only <italic>independent paths</italic> [<xref ref-type="bibr" rid="pone.0214292.ref027">27</xref>], which have no common points of failure. Typically, it is assumed that in order to be independent, paths must be internally vertex disjoint, i.e., have no nodes in common except the endpoints. However, under the bounded trust model, intersecting paths can still be independent if their intersection contains only trusted nodes. We define two paths with common endpoints to be <italic>h</italic>-<italic>internally vertex disjoint</italic> if all common vertices are less than distance <italic>h</italic> from one of the endpoints. This condition holds if and only if two paths are independent under the bounded trust model with radius <italic>h</italic>.</p>
<p>When trust radius <italic>h</italic> is assumed, the number of <italic>h</italic>-internally vertex disjoint paths between two nodes <italic>s</italic> and <italic>t</italic> represents the number of channels that can be constructed between them having statistically independent faults. We thus refer to this quantity as the <italic>effective redundancy δ</italic><sub><italic>s</italic>,<italic>t</italic>,<italic>h</italic></sub>. The effective redundancy can also be interpreted as the max-flow/min-cut of a graph after each trusted neighborhood has been collapsed into a single vertex. The trust boundaries form a cut of the network and place an upper bound on the min-cut:
<disp-formula id="pone.0214292.e005"><alternatives><graphic id="pone.0214292.e005g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e005" xlink:type="simple"/><mml:math display="block" id="M5"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="right"><mml:mrow><mml:msub><mml:mi>δ</mml:mi> <mml:mrow><mml:mi>v</mml:mi> <mml:mo>,</mml:mo> <mml:mi>w</mml:mi> <mml:mo>,</mml:mo> <mml:mi>h</mml:mi></mml:mrow></mml:msub> <mml:mo>≤</mml:mo> <mml:mo form="prefix" movablelimits="true">min</mml:mo> <mml:mo>(</mml:mo> <mml:mo>∣</mml:mo> <mml:msub><mml:mi>B</mml:mi> <mml:mi>h</mml:mi></mml:msub> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>s</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>∣</mml:mo> <mml:mo>,</mml:mo> <mml:mo>∣</mml:mo> <mml:msub><mml:mi>B</mml:mi> <mml:mi>h</mml:mi></mml:msub> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>∣</mml:mo> <mml:mo>)</mml:mo> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(5)</label></disp-formula>
Equality holds when there are no bottlenecks within the untrusted region, an indication that the network is decentralized. The effective redundancy of the entire graph can be characterized by the minimum over all vertex pairs:
<disp-formula id="pone.0214292.e006"><alternatives><graphic id="pone.0214292.e006g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e006" xlink:type="simple"/><mml:math display="block" id="M6"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="right"><mml:mrow><mml:msub><mml:mi>δ</mml:mi> <mml:mi>h</mml:mi></mml:msub> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>G</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>≡</mml:mo> <mml:munder><mml:mo form="prefix" movablelimits="true">min</mml:mo> <mml:mrow><mml:mi>s</mml:mi> <mml:mo>,</mml:mo> <mml:mi>t</mml:mi> <mml:mo>∈</mml:mo> <mml:mi>V</mml:mi></mml:mrow></mml:munder> <mml:msub><mml:mi>δ</mml:mi> <mml:mrow><mml:mi>s</mml:mi> <mml:mo>,</mml:mo> <mml:mi>t</mml:mi> <mml:mo>,</mml:mo> <mml:mi>h</mml:mi></mml:mrow></mml:msub> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(6)</label></disp-formula>
Thus, for any pair of nodes in the network, at least <italic>δ</italic><sub><italic>h</italic></sub> independent, redundant paths can be constructed between them. The more quickly <italic>δ</italic><sub><italic>h</italic></sub> grows with <italic>h</italic>, the better a network is at leveraging trust transitivity to create redundancy. Thus, the scaling of <italic>δ</italic><sub><italic>h</italic></sub> can be used to quantify a network’s ability to withstand targeted attacks, even when the exact trust radius <italic>h</italic> is unknown.</p>
</sec>
<sec id="sec007">
<title>Structured multipath fault tolerance</title>
<p>Finding a maximal set of independent paths for an arbitrary network is NP hard [<xref ref-type="bibr" rid="pone.0214292.ref027">27</xref>], posing a challenge for multipath fault tolerance. We propose side-stepping this problem by using structured networks, for which independent paths can be generated efficiently. We call this approach <italic>structured multipath fault tolerance</italic> (SMFT), and now proceed to show how it is implemented on the butterfly network topology.</p>
</sec>
</sec>
<sec id="sec008">
<title>The butterfly network topology</title>
<p>In order to implement structured multipath fault tolerance, we need a structured network topology with high effective redundancy. In this paper, we apply SMFT to the butterfly network topology [<xref ref-type="bibr" rid="pone.0214292.ref020">20</xref>]. The butterfly network is highly structured, making it most suitable for applications where portions of the network structure can be controlled or influenced. The butterfly network is also recursive, with larger versions composed out of multiple smaller versions, making it possible for independently organized attack-tolerant networks to merge into larger ones over time. More flexible architectures may be possible, but attack-tolerance will always require some level of influence over network structure in order to limit single points of failure. To address the case when the network cannot be fully controlled, we show how partially rewiring a snapshot of the internet’s router network can greatly increase it’s effective redundancy and attack-tolerance properties, without requiring additional edges.</p>
<sec id="sec009">
<title>Butterfly network topology</title>
<p>We choose the butterfly topology [<xref ref-type="bibr" rid="pone.0214292.ref020">20</xref>] because of several desirable properties (described below) and because its structure allows for relatively straightforward design and analysis of routing algorithms. While several variations on the butterfly network exist, we utilize the <italic>m</italic>-dimensional, directed wrap-around butterfly (<xref ref-type="fig" rid="pone.0214292.g003">Fig 3</xref>), denoted wBF(<italic>m</italic>):
<disp-formula id="pone.0214292.e007"><alternatives><graphic id="pone.0214292.e007g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e007" xlink:type="simple"/><mml:math display="block" id="M7"><mml:mrow><mml:mo form="prefix">wBF</mml:mo> <mml:mo>(</mml:mo> <mml:mi>m</mml:mi> <mml:mo>)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mrow><mml:mo>(</mml:mo> <mml:mi>V</mml:mi> <mml:mo>,</mml:mo> <mml:msub><mml:mi>E</mml:mi> <mml:mo>↓</mml:mo></mml:msub> <mml:mo>∪</mml:mo> <mml:msub><mml:mi>E</mml:mi> <mml:mo>→</mml:mo></mml:msub> <mml:mo>)</mml:mo></mml:mrow></mml:math></alternatives> <label>(7)</label></disp-formula>
<disp-formula id="pone.0214292.e008"><alternatives><graphic id="pone.0214292.e008g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e008" xlink:type="simple"/><mml:math display="block" id="M8"><mml:mi>V</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi mathvariant="double-struck">Z</mml:mi> <mml:mi>m</mml:mi></mml:msub> <mml:mo>×</mml:mo> <mml:msubsup><mml:mi mathvariant="double-struck">Z</mml:mi> <mml:mn>2</mml:mn> <mml:mi>m</mml:mi></mml:msubsup></mml:mrow></mml:math></alternatives> <label>(8)</label></disp-formula>
<disp-formula id="pone.0214292.e009"><alternatives><graphic id="pone.0214292.e009g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e009" xlink:type="simple"/><mml:math display="block" id="M9"><mml:msub><mml:mi>E</mml:mi> <mml:mo>↓</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo> <mml:mo>(</mml:mo> <mml:mo>(</mml:mo> <mml:mi>l</mml:mi> <mml:mo>,</mml:mo> <mml:mi>z</mml:mi> <mml:mo>)</mml:mo> <mml:mo>,</mml:mo> <mml:mo>(</mml:mo> <mml:mi>l</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mspace width="0.277778em"/><mml:mo>(</mml:mo> <mml:mtext>mod</mml:mtext> <mml:mspace width="4.pt"/><mml:mi>m</mml:mi> <mml:mo>)</mml:mo> <mml:mo>,</mml:mo> <mml:mi>z</mml:mi> <mml:mo>)</mml:mo> <mml:mo>}</mml:mo></mml:mrow></mml:math></alternatives> <label>(9)</label></disp-formula>
<disp-formula id="pone.0214292.e010"><alternatives><graphic id="pone.0214292.e010g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e010" xlink:type="simple"/><mml:math display="block" id="M10"><mml:msub><mml:mi>E</mml:mi> <mml:mo>→</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>l</mml:mi> <mml:mo>,</mml:mo> <mml:mi>z</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>,</mml:mo> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>l</mml:mi> <mml:mo>+</mml:mo> <mml:mn>1</mml:mn> <mml:mspace width="0.277778em"/><mml:mrow><mml:mo>(</mml:mo> <mml:mtext>mod</mml:mtext> <mml:mspace width="4.pt"/><mml:mi>m</mml:mi> <mml:mo>)</mml:mo></mml:mrow> <mml:mo>,</mml:mo> <mml:mi>z</mml:mi> <mml:mo>⊕</mml:mo> <mml:msub><mml:mn>1</mml:mn> <mml:mi>l</mml:mi></mml:msub> <mml:mo>}</mml:mo></mml:mrow> <mml:mo>,</mml:mo></mml:mrow></mml:math></alternatives> <label>(10)</label></disp-formula>
where <inline-formula id="pone.0214292.e011"><alternatives><graphic id="pone.0214292.e011g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e011" xlink:type="simple"/><mml:math display="inline" id="M11"><mml:msub><mml:mi mathvariant="double-struck">Z</mml:mi> <mml:mi>m</mml:mi></mml:msub></mml:math></alternatives></inline-formula> is the set of integers modulo <italic>m</italic>, ⊕ represents component-wise addition modulo 2, and 1<sub><italic>l</italic></sub> is a vector with a 1 in index <italic>l</italic> and 0 elsewhere. Each node is associated with a level <italic>l</italic> and an <italic>m</italic>-bit string <italic>z</italic> known as <italic>the place-within-level</italic>. There are two types of edges: down, and down-right (shown in <xref ref-type="fig" rid="pone.0214292.g004">Fig 4</xref>). Down edges (<italic>E</italic><sub>↓</sub>) connect nodes sharing the same <italic>z</italic> value in a cycle of increasing level <italic>l</italic>. Down-right edges (<italic>E</italic><sub>→</sub>) also link to a node of level <italic>l</italic> + 1, but one having the place-within-level equal to <italic>z</italic> with the <italic>l</italic>th bit inverted.</p>
<fig id="pone.0214292.g003" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g003</object-id>
<label>Fig 3</label>
<caption>
<title>A 3-dimensional wrap-around butterfly network.</title>
<p>Note that the rightmost nodes are the same nodes as the leftmost, drawn twice for visual clarity. The highlighted nodes and edges show the path from node (0,000) to node (1,101).</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g003" xlink:type="simple"/>
</fig>
<fig id="pone.0214292.g004" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g004</object-id>
<label>Fig 4</label>
<caption>
<title>Schematic illustration of the two types of edges in a directed butterfly network.</title>
<p>The node (<italic>l</italic>, <italic>z</italic>) is shown as the bit string <italic>z</italic> with a square around the <italic>l</italic>th bit. “Down” edges increment <italic>l</italic>, leaving <italic>z</italic> unchanged, while “down-right” edges increment <italic>l</italic> and invert the <italic>l</italic>th bit of <italic>z</italic>. In the wrap-around variant, the nodes with maximum <italic>l</italic> have down and down-right edges to the nodes with <italic>l</italic> = 0.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g004" xlink:type="simple"/>
</fig>
<p>The wrap-around butterfly network is known to have several of the properties we desire for scalable, decentralized communication networks:</p>
<list list-type="simple">
<list-item>
<p><bold>Vertex-transitivity</bold>: Because the wrap-around butterfly is vertex transitive, it is maximally decentralized;</p>
</list-item>
<list-item>
<p><bold>Small-diameter</bold>: For any two nodes, the length of the shortest path between them is <italic>O</italic>(log <italic>N</italic>), where N is the number of nodes in the network (corresponding to low-latency in real-world terms);</p>
</list-item>
<list-item>
<p><bold>Sparsity</bold>: With a constant degree of 4, the wrap-around butterfly is extremely sparse, and can scale indefinitely without node degree becoming a limitation;</p>
</list-item>
<list-item>
<p><bold>Redundancy</bold>: Multiple paths exist between any two nodes. Specifically, we will prove below that the number of <italic>h</italic>-internally vertex disjoint paths between two nodes increases exponentially with <italic>h</italic>.</p>
</list-item>
</list>
<p>The structure of the butterfly network lends itself to a well-known (unipath) routing algorithm (<xref ref-type="fig" rid="pone.0214292.g003">Fig 3</xref>), which we later extend to the multipath case. The unipath algorithm first follows a down or down-right edge at every step, increasing the level <italic>l</italic> by 1 and cycling through the indices of the place-within-level. If the current node’s place-within-level matches the destination node’s at index <italic>l</italic>, a down edge is chosen and the place-within-level does not change. Otherwise, a down-right edge is chosen and the <italic>l</italic>th component of the place-within-level is flipped, after which it matches the destination. After <italic>m</italic> iterations of this, all levels have been visited and the place-within-level matches that of the destination. Simply following down (or up) edges will then increment (decrement) the level until the destination node is reached.</p>
</sec>
<sec id="sec010">
<title>Butterfly rewiring</title>
<p>Even when a butterfly topology cannot be implemented perfectly, it can still increase the attack tolerance properties of a network. Here, we simulate targeted attacks against a snapshot of the internet’s router network on January 2, 2000 [<xref ref-type="bibr" rid="pone.0214292.ref045">45</xref>], having 6493 nodes and 13914 edges. At each step of the simulation, betweenness centrality is recalculated and the most central node is removed. We also simulate attack on several rewired networks. The rewiring process alters the network structure to resemble a butterfly topology, without adding any additional edges. We 1. generate edges corresponding to a 9-dimensional butterfly network between the 4608 highest-degree router nodes, 2. choose a fraction <italic>f</italic> of those edges at random, 3. add those edges to the router network, and 4. remove an equal number of the original edges at random.</p>
<p>Our simulations show improved resistance to fragmentation and higher effective redundancy when even a fraction of edges have been rewired to match the butterfly topology. While the original router network fragments when about 1% of the nodes have been removed (<xref ref-type="fig" rid="pone.0214292.g005">Fig 5</xref>), this number increases to 2% with only 10% of the butterfly edges present. With 90% of the butterfly edges present the network remains unfragmented beyond the failure of the 8% most central nodes. The effective redundancy for various values of trust transitivity <italic>h</italic> are shown in <xref ref-type="fig" rid="pone.0214292.g006">Fig 6</xref>. The effective redundancy is calculated by collapsing nodes and edges within <italic>h</italic> hops of source and destination into single nodes and finding the min-cut between them, averaging over 150 source-destination pairs. For <italic>h</italic> = 0, the rewired version has strictly higher redundancy. For <italic>h</italic> &gt; 0, the original network has higher redundancy when the number of failures is small, while the rewired network has higher redundancy beyond a crossover point. We interpret these results to suggest that even when a small number of highly central nodes have been removed from a heavy-tailed network, most nodes are still able to take advantage of the remaining hubs. As larger hubs continue to be removed, the connectivity of the network decreases until the crossover point, at which point the rewired network offers higher effective redundancy.</p>
<fig id="pone.0214292.g005" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g005</object-id>
<label>Fig 5</label>
<caption>
<title>Simulation of targeted attacks against a snapshot of the internet’s router network with a fraction of the edges rewired into a partial butterfly configuration.</title>
<p>The original network fragments when the top 1% of nodes are removed. With only 10% of the butterfly edges present, this value doubles to 2%. With 90% of the edges rewired, the network remains unfragmented beyond the failure of the 8% most central nodes. The rewiring scheme does not require adding any additional edges.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g005" xlink:type="simple"/>
</fig>
<fig id="pone.0214292.g006" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g006</object-id>
<label>Fig 6</label>
<caption>
<title>Simulation of targeted attacks against a snapshot of the internet’s router network with a fraction of the edges rewired into a partial butterfly configuration.</title>
<p>The effective redundancy is shown for several values of trust transitivity <italic>h</italic>. For <italic>h</italic> &gt; 0, the original network has higher effective redundancy up to a crossover point, after which the rewired network performs better.</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g006" xlink:type="simple"/>
</fig>
</sec>
</sec>
<sec id="sec011">
<title>Multipath butterfly routing</title>
<p>We now present a routing algorithm to construct 2<sup><italic>h</italic></sup> independent paths between two nodes in a butterfly network, where <italic>h</italic> is the trust radius under the partial trust model. Informally, Alice sends each message to a distinct node on her trust boundary, then to a distinct intermediate node in the untrusted region, then to a distinct node on Bob’s trust boundary, and finally to Bob. The intermediate nodes are in a sense “far” from each other and ensure that no two paths overlap in the untrusted region. Each path can be parameterized by a single integer <italic>s</italic>, which identifies the specific node on Alice’s trust boundary (or equivalently the node on Bob’s trust boundary, or the untrusted intermediate).</p>
<p>The algorithm guarantees paths are independent by ensuring that (outside the trusted neighborhoods) they only include nodes that match the path parameter <italic>s</italic> at certain indexes in their place-within-level. Since each path has a unique parameter <italic>s</italic>, its set of untrusted nodes is disjoint from all other paths. As with the unipath routing algorithm, each of the multiple paths proceed from a source <italic>v</italic> to a destination <italic>u</italic> using down and down-right edges, cycling through levels one at a time. However, we cycle through the levels twice, once to route from <italic>v</italic> to a particular path’s intermediary node, and again to route from the intermediary to <italic>w</italic>. Each cycle is divided into stages, with different properties used to prove independence at each stage (see <xref ref-type="fig" rid="pone.0214292.g007">Fig 7</xref>). In the first cycle (stages 1–4), path independence is guaranteed by ensuring that all nodes match the path parameter <italic>s</italic> in the first <italic>h</italic> bits of the place-within-level. Similarly, in the second cycle (stages 5–7), independence is guaranteed by ensuring that all paths match <italic>s</italic> in the <italic>h</italic> bits of the place-within-level preceding the destination index. A full example is illustrated in <xref ref-type="fig" rid="pone.0214292.g008">Fig 8</xref>.</p>
<fig id="pone.0214292.g007" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g007</object-id>
<label>Fig 7</label>
<caption>
<title>Progression of place-within-level <italic>z</italic> as the multipath routing algorithm cycles through the levels of the butterfly network.</title>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g007" xlink:type="simple"/>
</fig>
<fig id="pone.0214292.g008" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.g008</object-id>
<label>Fig 8</label>
<caption>
<title>An example of one path as constructed by the proposed multipath routing algorithm.</title>
<p>The path is shown for <italic>s</italic> = 10<sub>2</sub> and <italic>w</italic> = (6, 0110111<sub>2</sub>).</p>
</caption>
<graphic mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.g008" xlink:type="simple"/>
</fig>
<sec id="sec012">
<title>Algorithm specification</title>
<p>We now begin the formal specification of our multipath routing scheme for the wrap-around butterfly network. For convenience, the relevant variables are summarized in <xref ref-type="table" rid="pone.0214292.t002">Table 2</xref>. Utilizing vertex transitivity, we label the source node as (<italic>l</italic><sup>(0)</sup>, <italic>z</italic><sup>(0)</sup>) = (0, 0) and denote the destination node as <italic>w</italic> = (<italic>l</italic><sub><italic>w</italic></sub>, <italic>z</italic><sub><italic>w</italic></sub>), without loss of generality.</p>
<table-wrap id="pone.0214292.t002" position="float">
<object-id pub-id-type="doi">10.1371/journal.pone.0214292.t002</object-id>
<label>Table 2</label>
<caption>
<title>Butterfly multipath routing variables.</title>
</caption>
<alternatives>
<graphic id="pone.0214292.t002g" mimetype="image" position="float" xlink:href="info:doi/10.1371/journal.pone.0214292.t002" xlink:type="simple"/>
<table border="0" frame="box" rules="all">
<colgroup>
<col align="left" valign="middle"/>
<col align="left" valign="middle"/>
</colgroup>
<thead>
<tr>
<th align="left">Name</th>
<th align="left">Variable</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">butterfly dimension</td>
<td align="left">
<inline-formula id="pone.0214292.e012">
<alternatives>
<graphic id="pone.0214292.e012g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e012" xlink:type="simple"/>
<mml:math display="inline" id="M12">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mo>∈</mml:mo>
<mml:msub>
<mml:mi mathvariant="double-struck">Z</mml:mi>
<mml:mo>+</mml:mo>
</mml:msub>
</mml:mrow>
</mml:math>
</alternatives>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">node level</td>
<td align="left">
<inline-formula id="pone.0214292.e013">
<alternatives>
<graphic id="pone.0214292.e013g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e013" xlink:type="simple"/>
<mml:math display="inline" id="M13">
<mml:mrow>
<mml:mi>l</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="double-struck">Z</mml:mi>
<mml:mo>:</mml:mo>
<mml:mn>0</mml:mn>
<mml:mo>≤</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>&lt;</mml:mo>
<mml:mi>m</mml:mi>
</mml:mrow>
</mml:math>
</alternatives>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">node place within level</td>
<td align="left">
<inline-formula id="pone.0214292.e014">
<alternatives>
<graphic id="pone.0214292.e014g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e014" xlink:type="simple"/>
<mml:math display="inline" id="M14">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>∈</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="double-struck">Z</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>m</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</alternatives>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">trust radius</td>
<td align="left">
<inline-formula id="pone.0214292.e015">
<alternatives>
<graphic id="pone.0214292.e015g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e015" xlink:type="simple"/>
<mml:math display="inline" id="M15">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo>∈</mml:mo>
<mml:mi mathvariant="double-struck">Z</mml:mi>
<mml:mo>:</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>≤</mml:mo>
<mml:mi>h</mml:mi>
<mml:mo>≤</mml:mo>
<mml:mo>⌊</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo>/</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>⌋</mml:mo>
</mml:mrow>
</mml:math>
</alternatives>
</inline-formula>
</td>
</tr>
<tr>
<td align="left">path index</td>
<td align="left">
<inline-formula id="pone.0214292.e016">
<alternatives>
<graphic id="pone.0214292.e016g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e016" xlink:type="simple"/>
<mml:math display="inline" id="M16">
<mml:mrow>
<mml:mi>s</mml:mi>
<mml:mo>∈</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="double-struck">Z</mml:mi>
<mml:mn>2</mml:mn>
<mml:mi>h</mml:mi>
</mml:msubsup>
</mml:mrow>
</mml:math>
</alternatives>
</inline-formula>
</td>
</tr>
</tbody>
</table>
</alternatives>
</table-wrap>
<p>Let <italic>s</italic> be an <italic>h</italic>-bit binary string with <italic>s</italic><sub><italic>i</italic></sub> denoting the bit at index <italic>i</italic>. There are 2<sup><italic>h</italic></sup> such strings. Let <inline-formula id="pone.0214292.e017"><alternatives><graphic id="pone.0214292.e017g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e017" xlink:type="simple"/><mml:math display="inline" id="M17"><mml:mrow><mml:msubsup><mml:mi>v</mml:mi> <mml:mi>s</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msubsup> <mml:mo>=</mml:mo> <mml:mrow><mml:mo>(</mml:mo> <mml:msup><mml:mi>l</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msup> <mml:mo>,</mml:mo> <mml:msup><mml:mi>z</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msup> <mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></alternatives></inline-formula> be the node at position <italic>t</italic> in the path parameterized by <italic>s</italic>. For convenience, we will omit the subscript <italic>s</italic> when it is obvious from context. We define three distinct partitions of <italic>m</italic>-bit binary strings. Let <inline-formula id="pone.0214292.e018"><alternatives><graphic id="pone.0214292.e018g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e018" xlink:type="simple"/><mml:math display="inline" id="M18"><mml:msub><mml:mi>Q</mml:mi> <mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:math></alternatives></inline-formula> be the set of <italic>m</italic>-bit strings in which the bits at all indices <italic>h</italic> ≤ <italic>i</italic> &lt; <italic>l</italic><sub><italic>w</italic></sub> − <italic>h</italic> match those of <italic>z</italic><sup>(0)</sup>, and let <inline-formula id="pone.0214292.e019"><alternatives><graphic id="pone.0214292.e019g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e019" xlink:type="simple"/><mml:math display="inline" id="M19"><mml:mover><mml:msub><mml:mi>Q</mml:mi> <mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:msub> <mml:mo>¯</mml:mo></mml:mover></mml:math></alternatives></inline-formula> be its complement. Note that <inline-formula id="pone.0214292.e020"><alternatives><graphic id="pone.0214292.e020g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e020" xlink:type="simple"/><mml:math display="inline" id="M20"><mml:msub><mml:mi>Q</mml:mi> <mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:math></alternatives></inline-formula> is trivially all <italic>m</italic>-bit strings if <italic>l</italic><sub><italic>w</italic></sub> &lt; 2<italic>h</italic>. Let <italic>R</italic><sub><italic>s</italic></sub> be the set of <italic>m</italic>-bit strings with the lowest <italic>h</italic> bits all matching the bits of <italic>s</italic>, and let <inline-formula id="pone.0214292.e021"><alternatives><graphic id="pone.0214292.e021g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e021" xlink:type="simple"/><mml:math display="inline" id="M21"><mml:mover><mml:msub><mml:mi>R</mml:mi> <mml:mi>s</mml:mi></mml:msub> <mml:mo>¯</mml:mo></mml:mover></mml:math></alternatives></inline-formula> be its complement. Let <italic>S</italic><sub><italic>s</italic></sub> be the set of <italic>m</italic>-bit strings with the <italic>h</italic> bits preceding index <italic>l</italic><sub><italic>w</italic></sub> all matching the bits of <inline-formula id="pone.0214292.e022"><alternatives><graphic id="pone.0214292.e022g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e022" xlink:type="simple"/><mml:math display="inline" id="M22"><mml:mover accent="true"><mml:mi>s</mml:mi> <mml:mo>˜</mml:mo></mml:mover></mml:math></alternatives></inline-formula>, where <inline-formula id="pone.0214292.e023"><alternatives><graphic id="pone.0214292.e023g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e023" xlink:type="simple"/><mml:math display="inline" id="M23"><mml:mover accent="true"><mml:mi>s</mml:mi> <mml:mo>˜</mml:mo></mml:mover></mml:math></alternatives></inline-formula> is a cyclic permutation of <italic>s</italic>:
<disp-formula id="pone.0214292.e024"><alternatives><graphic id="pone.0214292.e024g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e024" xlink:type="simple"/><mml:math display="block" id="M24"><mml:msub><mml:mover accent="true"><mml:mi>s</mml:mi> <mml:mo>˜</mml:mo></mml:mover> <mml:mi>i</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mrow><mml:msub><mml:mi>s</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>i</mml:mi> <mml:mo>+</mml:mo> <mml:msub><mml:mi>l</mml:mi> <mml:mi>w</mml:mi></mml:msub> <mml:mo>)</mml:mo> <mml:mspace width="4.pt"/><mml:mtext>mod</mml:mtext> <mml:mspace width="4.pt"/><mml:mi>h</mml:mi></mml:mrow></mml:msub> <mml:mo>,</mml:mo></mml:mrow></mml:math></alternatives> <label>(11)</label></disp-formula>
and let <inline-formula id="pone.0214292.e025"><alternatives><graphic id="pone.0214292.e025g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e025" xlink:type="simple"/><mml:math display="inline" id="M25"><mml:mover><mml:msub><mml:mi>S</mml:mi> <mml:mi>s</mml:mi></mml:msub> <mml:mo>¯</mml:mo></mml:mover></mml:math></alternatives></inline-formula> be its complement. We will make use of the fact that:
<disp-formula id="pone.0214292.e026"><alternatives><graphic id="pone.0214292.e026g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e026" xlink:type="simple"/><mml:math display="block" id="M26"><mml:mtable displaystyle="true"><mml:mtr><mml:mtd columnalign="right"><mml:mrow><mml:mi>s</mml:mi> <mml:mo>≠</mml:mo> <mml:msup><mml:mi>s</mml:mi> <mml:mo>′</mml:mo></mml:msup></mml:mrow></mml:mtd> <mml:mtd><mml:mo>⇒</mml:mo></mml:mtd> <mml:mtd columnalign="left"><mml:mrow><mml:msub><mml:mi>S</mml:mi> <mml:mi>s</mml:mi></mml:msub> <mml:mo>∩</mml:mo> <mml:msub><mml:mi>S</mml:mi> <mml:msup><mml:mi>s</mml:mi> <mml:mo>′</mml:mo></mml:msup></mml:msub> <mml:mo>=</mml:mo> <mml:msub><mml:mi>R</mml:mi> <mml:mi>s</mml:mi></mml:msub> <mml:mo>∩</mml:mo> <mml:msub><mml:mi>R</mml:mi> <mml:msup><mml:mi>s</mml:mi> <mml:mo>′</mml:mo></mml:msup></mml:msub> <mml:mo>=</mml:mo> <mml:mi>∅</mml:mi> <mml:mo>.</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></alternatives> <label>(12)</label></disp-formula></p>
<p>Routes are constructed in 7 stages. The network topology dictates that <italic>l</italic><sup>(<italic>t</italic>+1)</sup> = <italic>l</italic><sup>(<italic>t</italic>)</sup> + 1 (mod <italic>m</italic>), so we let <italic>l</italic> = <italic>t</italic> (mod <italic>m</italic>). and that <italic>z</italic><sup>(<italic>t</italic>+1)</sup> is equal to <italic>z</italic><sup>(<italic>t</italic>)</sup> with or without the bit in index <italic>l</italic><sup>(<italic>t</italic>)</sup> inverted, depending on whether the down or down-right edge was taken at step <italic>t</italic>.</p>
<list list-type="simple">
<list-item>
<p><bold>Stage 1</bold>: (0 ≤ <italic>t</italic> &lt; <italic>h</italic>) Down or down-right edges are chosen such that the <italic>t</italic>th bit of <italic>z</italic><sup>(<italic>t</italic>+1)</sup> is equal to the <italic>t</italic>th bit of <italic>s</italic>. Throughout Stage 1, all nodes are within the sender’s trusted neighborhood. Throughout Stage 1, <inline-formula id="pone.0214292.e027"><alternatives><graphic id="pone.0214292.e027g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e027" xlink:type="simple"/><mml:math display="inline" id="M27"><mml:mrow><mml:msup><mml:mi>z</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msup> <mml:mo>∈</mml:mo> <mml:msub><mml:mi>Q</mml:mi> <mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:msub></mml:mrow></mml:math></alternatives></inline-formula>. At the end of Stage 1, <italic>z</italic><sup>(<italic>h</italic>)</sup> ∈ <italic>S</italic><sub><italic>s</italic></sub>, and <italic>z</italic><sup>(<italic>t</italic>)</sup> will remain so until the level cycles to 0 at <italic>t</italic> = <italic>m</italic>.</p>
</list-item>
<list-item>
<p><bold>Stage 2</bold>: (<italic>h</italic> ≤ <italic>t</italic> &lt; <italic>l</italic><sub><italic>w</italic></sub> − <italic>h</italic>) Edges are chosen to make the <italic>t</italic>th bit of <italic>z</italic><sup>(<italic>t</italic>+ 1)</sup> the inverse of the <italic>t</italic>th bit of <italic>z</italic><sup>(0)</sup>. Note that this stage does not occur when <italic>l</italic><sub><italic>w</italic></sub> &lt; 2<italic>h</italic>. If this stage occurs, then <inline-formula id="pone.0214292.e028"><alternatives><graphic id="pone.0214292.e028g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e028" xlink:type="simple"/><mml:math display="inline" id="M28"><mml:mrow><mml:msup><mml:mi>z</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msup> <mml:mo>∈</mml:mo> <mml:mover><mml:msub><mml:mi>Q</mml:mi> <mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:msub> <mml:mo>¯</mml:mo></mml:mover></mml:mrow></mml:math></alternatives></inline-formula> until these levels are reached again in stage 6.</p>
</list-item>
<list-item>
<p><bold>Stage 3</bold>: (<italic>l</italic><sub><italic>w</italic></sub> − <italic>h</italic> ≤ <italic>t</italic> &lt; <italic>l</italic><sub><italic>w</italic></sub>) The bits of <italic>z</italic><sup>(<italic>t</italic>)</sup> are chosen to match <inline-formula id="pone.0214292.e029"><alternatives><graphic id="pone.0214292.e029g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e029" xlink:type="simple"/><mml:math display="inline" id="M29"><mml:mover accent="true"><mml:mi>s</mml:mi> <mml:mo>˜</mml:mo></mml:mover></mml:math></alternatives></inline-formula>, such that after the stage is complete, <italic>z</italic><sup>(<italic>t</italic>)</sup> ∈ <italic>R</italic><sub><italic>s</italic></sub>.</p>
</list-item>
<list-item>
<p><bold>Stage 4</bold>: (<italic>l</italic><sub><italic>w</italic></sub> ≤ <italic>t</italic> &lt; <italic>m</italic>) Paths are chosen such that the <italic>t</italic>th bit of <italic>z</italic><sup>(<italic>t</italic>+1)</sup> matches that of the destination node <italic>z</italic><sub><italic>w</italic></sub>. This stage will not occur if <italic>l</italic><sub><italic>w</italic></sub> &gt; <italic>m</italic> − <italic>h</italic>.</p>
</list-item>
<list-item>
<p><bold>Stage 5</bold>: (<italic>m</italic> ≤ <italic>t</italic> &lt; <italic>m</italic> + <italic>h</italic>) There are two cases. If 2<italic>h</italic> &lt; <italic>l</italic><sub><italic>w</italic></sub> &lt; <italic>m</italic> − <italic>h</italic>, then there is no overlap between the indices defining <italic>R</italic><sub><italic>s</italic></sub> and <italic>S</italic><sub><italic>s</italic></sub>. In this case, the first <italic>h</italic> bits of <italic>z</italic><sup>(<italic>t</italic>)</sup> are set to match <italic>z</italic><sub><italic>w</italic></sub>. Otherwise there is some overlap between the indices defining <italic>R</italic><sub><italic>s</italic></sub> and <italic>S</italic><sub><italic>s</italic></sub>. In this case, the each of the first <italic>h</italic> bits of <italic>z</italic><sup>(<italic>t</italic>)</sup> is either kept the same if <italic>l</italic><sub><italic>w</italic></sub> − <italic>h</italic> ≤ <italic>l</italic> &lt; <italic>l</italic><sub><italic>w</italic></sub>, or set to the corresponding bit of <italic>z</italic><sub><italic>w</italic></sub> otherwise. In this stage and after, <italic>z</italic><sup>(<italic>t</italic>)</sup> is no longer guaranteed to be in <italic>R</italic><sub><italic>s</italic></sub>. However, <italic>z</italic><sup>(<italic>t</italic>)</sup> remains in <italic>S</italic><sub><italic>s</italic></sub> during and after this stage.</p>
</list-item>
<list-item>
<p><bold>Stage 6</bold>: (<italic>m</italic> + <italic>h</italic> ≤ <italic>t</italic> &lt; <italic>m</italic> + <italic>l</italic><sub><italic>w</italic></sub> − <italic>h</italic>) In this stage, edges are chosen to set the bits of <italic>z</italic><sup>(<italic>t</italic>)</sup> to their corresponding value in <italic>z</italic><sub><italic>w</italic></sub>. <inline-formula id="pone.0214292.e030"><alternatives><graphic id="pone.0214292.e030g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e030" xlink:type="simple"/><mml:math display="inline" id="M30"><mml:mrow><mml:msup><mml:mi>z</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msup> <mml:mo>∈</mml:mo> <mml:mover><mml:msub><mml:mi>Q</mml:mi> <mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mn>0</mml:mn> <mml:mo>)</mml:mo></mml:mrow></mml:msup></mml:msub> <mml:mo>¯</mml:mo></mml:mover></mml:mrow></mml:math></alternatives></inline-formula> throughout this stage, but not afterwards.</p>
</list-item>
<list-item>
<p><bold>Stage 7</bold>: (<italic>m</italic> + <italic>l</italic><sub><italic>w</italic></sub> − <italic>h</italic> ≤ <italic>t</italic> &lt; <italic>m</italic> + <italic>l</italic><sub><italic>w</italic></sub>) The <italic>h</italic> bits of <italic>z</italic><sup>(<italic>t</italic>)</sup> preceding index <italic>l</italic><sub><italic>w</italic></sub> are set to match <italic>z</italic><sub><italic>w</italic></sub>. All nodes in this stage are within <italic>h</italic> hops of <italic>w</italic> and thus in its trusted neighborhood. After this stage, <inline-formula id="pone.0214292.e034"><alternatives><graphic id="pone.0214292.e034g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e034" xlink:type="simple"/><mml:math display="inline" id="M34"><mml:mrow><mml:msup><mml:mi>v</mml:mi><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mi>w</mml:mi></mml:msub><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup><mml:mo>=</mml:mo><mml:mi>w</mml:mi></mml:mrow></mml:math></alternatives></inline-formula> and routing is complete.</p>
</list-item>
</list>
</sec>
<sec id="sec013">
<title>Running time</title>
<p>At each node, the choice of edge is made using <italic>O</italic>(1) lookups of the endpoint values at index <italic>t</italic> and possibly <italic>O</italic>(1) lookups of the value at a particular index of <italic>s</italic>. For an <italic>m</italic>-dimensional butterfly network, the algorithm chooses edges at most 2<italic>m</italic> = <italic>O</italic>(<italic>m</italic>) times. In an <italic>m</italic>-dimensional butterfly, there are <italic>N</italic> = <italic>m</italic>2<sup><italic>m</italic></sup> nodes; <italic>m</italic> = <italic>O</italic>(log <italic>N</italic>). The total running time to calculate a single path is thus <italic>O</italic>(<italic>klogN</italic>). Sending a message with redundancy <italic>k</italic> thus requires <italic>O</italic>(<italic>k</italic>log<italic>N</italic>) time.</p>
</sec>
<sec id="sec014">
<title>Proof of path independence</title>
<p><bold>Theorem 1</bold>. <italic>Given an m-bit wrap-around butterfly network</italic> (<italic>m</italic> &gt; 1), <italic>and an integer h</italic> (<inline-formula id="pone.0214292.e031"><alternatives><graphic id="pone.0214292.e031g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e031" xlink:type="simple"/><mml:math display="inline" id="M31"><mml:mrow><mml:mn>1</mml:mn> <mml:mo>≤</mml:mo> <mml:mi>h</mml:mi> <mml:mo>≤</mml:mo> <mml:mo>⌊</mml:mo> <mml:mfrac><mml:mi>m</mml:mi> <mml:mn>2</mml:mn></mml:mfrac> <mml:mo>⌋</mml:mo></mml:mrow></mml:math></alternatives></inline-formula>), <italic>for all node pairs</italic> (<italic>v</italic>, <italic>w</italic>) <italic>such that d</italic>(<italic>v</italic>, <italic>w</italic>) ≥ 2<italic>h, there exist at least</italic> 2<sup><italic>h</italic></sup> <italic>h-internally vertex disjoint paths v</italic><sub><italic>s</italic></sub> (0 ≤ <italic>s</italic> &lt; 2<sup><italic>h</italic></sup>) <italic>from v to w such that s</italic> ≠ <italic>s</italic>′ ⇒ <italic>v</italic><sub><italic>s</italic></sub> ∩ <italic>v</italic><sub><italic>s</italic>′</sub> ⊂ <italic>T</italic><sub><italic>h</italic></sub>(<italic>u</italic>) ∪ <italic>T</italic><sub><italic>h</italic></sub>(<italic>v</italic>).</p>
<p><italic>Proof</italic>. Nodes from two paths can only coincide if their levels are the same. Nodes which share a level must either be in the same stage, or 4 stages apart. Let (<italic>a</italic>,<italic>a</italic>′) denote a pair of sub-paths corresponding to stage <italic>a</italic> of one path and stage <italic>a</italic>′ of another. Excluding paths that intersect in their trusted neighborhoods, (1,1) and (7,7), we have reduced the list of possible intersections to the following cases: (2,2), (3,3), (4,4), (5,5), (6,6), (1,5), (2,6), and (3,7). Nodes in stages 2–4 belong to <italic>R</italic><sub><italic>s</italic></sub> so cannot overlap with any stage 2–4 nodes from another path, eliminating (2,2), (3,3), and (4,4). Similarly, nodes in stages 4–6 belong to a unique <italic>S</italic><sub><italic>s</italic></sub>, eliminating (5,5) and (6,6). Nodes in stage 1 belong to <inline-formula id="pone.0214292.e032"><alternatives><graphic id="pone.0214292.e032g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e032" xlink:type="simple"/><mml:math display="inline" id="M32"><mml:mrow><mml:msub><mml:mi>Q</mml:mi> <mml:mrow><mml:msup><mml:mi>v</mml:mi> <mml:mrow><mml:mo stretchy="false">(</mml:mo> <mml:mn>0</mml:mn> <mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:msup></mml:mrow></mml:msub></mml:mrow></mml:math></alternatives></inline-formula> while those in stage 5 belong in its complement, eliminating (1,5). Similarly, for all <italic>l</italic> in stage 2, <italic>z</italic><sup>(<italic>l</italic>)</sup> is equal to <italic>z</italic><sup>(0)</sup>, while in stage 6, <italic>z</italic><sup>(<italic>l</italic>)</sup> is the inverse, eliminating (2,6) This leaves only (3,7), a collision which can occur only for only one path (with <italic>s</italic> matching the first <italic>h</italic> bits of <italic>z</italic><sub><italic>w</italic></sub>), and which enters the trusted neighborhood in stage 3. For this single path, we can proceed directly from stage 2 to stage 7, eliminating the last possible collision.</p>
<p>Thus, assuming the partial trust model with trust transitive for <italic>h</italic> hops, we can construct 2<sup><italic>h</italic></sup> paths on a wrap-around butterfly topology which do not intersect outside the trusted neighborhoods of the source and destination. Note that the node sequence <inline-formula id="pone.0214292.e033"><alternatives><graphic id="pone.0214292.e033g" mimetype="image" position="anchor" xlink:href="info:doi/10.1371/journal.pone.0214292.e033" xlink:type="simple"/><mml:math display="inline" id="M33"><mml:msubsup><mml:mi>v</mml:mi> <mml:mi>s</mml:mi> <mml:mrow><mml:mo>(</mml:mo> <mml:mi>t</mml:mi> <mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:math></alternatives></inline-formula> can be calculated entirely from the source <italic>v</italic>, destination <italic>w</italic>, and path parameter <italic>s</italic>, meaning that with this information nodes are able to determine which neighbor to route a given message copy to. Each node in a directed wrap-around butterfly network has an out-degree of 2, placing an upper bound of 2<sup><italic>h</italic></sup> on the effective redundancy, which we have just shown the above algorithm achieves, so the bound is tight. Thus, decentralized, redundant, structured networks such as the butterfly can have a very low probability of failure when faced with adversarial faults, even from a very powerful attacker.</p>
</sec>
</sec>
<sec id="sec015" sec-type="conclusions">
<title>Discussion</title>
<p>Our work has been motivated by the vulnerability of current communications infrastructure to surveillance and censorship, which are often achieved by coercive targeted attacks against central nodes. We have already discussed two such cases: Pakistan’s inadvertant censorship of YouTube [<xref ref-type="bibr" rid="pone.0214292.ref012">12</xref>] and the FBI’s surveillance and censorship of Lavabit [<xref ref-type="bibr" rid="pone.0214292.ref013">13</xref>].</p>
<p>The reader may wonder how our methods could be employed in scenarios such as large-scale state-sponsored censorship [<xref ref-type="bibr" rid="pone.0214292.ref046">46</xref>]. Censorship-resistant infrastructure often replaces central servers (e.g., the router in the 2008 YouTube incident) with multiple servers across the world, synchronized through consensus protocols. The <italic>directory authorities</italic> used by the Tor project [<xref ref-type="bibr" rid="pone.0214292.ref047">47</xref>] are one example. However, the size of such networks is limited by the number of trusted relationships (degree) each node can maintain, and the inherent insecurity of extending transitive trust to an ever-larger network. Our work provides both a theoretical framework and a specific example of how network structure can be engineered to leverage trust for a high level of attack-tolerance, without sacrificing scalability.</p>
<p>We have focused primarily on adversarial faults that block or change messages (censorship) but our work is also relevant to surveillance. While cryptographic anti-surveillance techniques exist, they remain vulnerable to man-in-the-middle attacks, in which an intermediate node masquerades as the destination. Such attacks can be detected if the original message reaches the true destination unaltered, which SMFT can help to ensure.</p>
<p>In its current form, our work has several limitations. Most obviously, it requires complete control over the network structure. However, we have shown that even partially control over network structure can improve attack tolerance properties. Still a more flexible network structure is desirable. There is also the question of how to construct such a network without a central authority. This limitation may not be as severe as it seems, due to the nested structure of the butterfly network. We conjecture that smaller independently-formed networks could be merged into a single larger network without central coordination. When nodes and edges exist in geographic space (as in cables connecting internet routers) this scheme might require connections between very distant locations. Such connections are extremely expensive to construct and maintain, although many exist today in the form of redundant internet backbones and undersea cables. An alternative solution might involve satellite links, which connect distant geographic points much more easily. While turning our network theoretical results into practical applications will require considerable additional work, we believe that work is inevitably necessary in order to create attack-tolerant networks.</p>
<p>In addition to addressing the above limitations, we see several potential directions for future work. The development of new structured networks or multipath routing algorithms could achieve higher levels of redundancy and attack-tolerance. It is also desirable to examine how changes to social dynamics could shift self-organized networks towards a more decentralized structure. Finally, our results could be implemented to address specific applications, e.g., secure messaging, domain name resolution, or anonymous web browsing.</p>
</sec>
<sec id="sec016" sec-type="conclusions">
<title>Conclusion</title>
<p>Coercion-resistant, topological approaches to attack tolerance are needed to address the current vulnerability of communications infrastructure to censorship and surveillance. We have presented a novel concurrent multipath routing (CMR) algorithm for the butterfly network, as well as a structured multipath fault tolerance (SMFT) scheme, which can be combined to create a coercion-resistant, attack-tolerant point-to-point communication architecture. We have also shown how assuming bounded trust transitivity can enable a quantitative analysis of the relationships between network structure, trust, and attack-tolerance. In our architecture, the probability of an adversary causing an undetectable error decreases exponentially with the network’s effective redundancy. The effective redundancy, in the case of the butterfly topology, grows exponentially with the radius of trust transitivity. Furthermore, a small increase in the number of messages sent (traffic volume) can compensate for a large increase in the number of messages compromised by an adversary. These results require some control over the structure of a network, or some portion of the network. Even when network structure cannot be perfectly controlled, we have shown that partially rewiring a snapshot of the internet’s router network can greatly increase its attack-tolerance properties. We believe that this work provides a foundation for the development of additional topology-based communication architectures to guard against technical and coercive adversarial attacks, including censorship and surveillance.</p>
</sec>
</body>
<back>
<ack>
<p>The authors would like to thank Tony Garnock-Jones, A. Frederick Dudley, and Nathaniel Bezanson for helpful conversations. The authors would also like to thank the reviewers for their helpful comments.</p>
</ack>
<ref-list>
<title>References</title>
<ref id="pone.0214292.ref001">
<label>1</label>
<mixed-citation publication-type="other" xlink:type="simple">Baran P, others. On distributed communications. Volumes I-XI, RAND Corporation Research Documents, August. 1964; p. 637–648.</mixed-citation>
</ref>
<ref id="pone.0214292.ref002">
<label>2</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Elmer-Dewitt</surname> <given-names>P</given-names></name>, <name name-style="western"><surname>Jackson</surname> <given-names>D</given-names></name>. <article-title>First nation in cyberspace</article-title>. <source>Time</source>. <year>1993</year>;<volume>6</volume>:<fpage>62</fpage>–<lpage>64</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref003">
<label>3</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Albert</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Jeong</surname> <given-names>H</given-names></name>, <name name-style="western"><surname>Barabási</surname> <given-names>AL</given-names></name>. <article-title>Error and attack tolerance of complex networks</article-title>. <source>Nature</source>. <year>2000</year>;<volume>406</volume>(<issue>6794</issue>):<fpage>378</fpage>–<lpage>382</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1038/35019019" xlink:type="simple">10.1038/35019019</ext-link></comment> <object-id pub-id-type="pmid">10935628</object-id></mixed-citation>
</ref>
<ref id="pone.0214292.ref004">
<label>4</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Ellison</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Schneier</surname> <given-names>B</given-names></name>. <article-title>Ten risks of PKI: What you’re not being told about public key infrastructure</article-title>. <source>Comput Secur J</source>. <year>2000</year>;<volume>16</volume>(<issue>1</issue>):<fpage>1</fpage>–<lpage>7</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref005">
<label>5</label>
<mixed-citation publication-type="other" xlink:type="simple">Dainotti A, Squarcella C, Aben E, Claffy KC, Chiesa M, Russo M, et al. Analysis of country-wide internet outages caused by censorship. In: Proceedings of the 2011 ACM SIGCOMM conference on Internet measurement conference. ACM; 2011. p. 1–18.</mixed-citation>
</ref>
<ref id="pone.0214292.ref006">
<label>6</label>
<mixed-citation publication-type="other" xlink:type="simple">Christianson B, Harbison WS. Why isn’t trust transitive? In: Security protocols. Springer; 1997. p. 171–176.</mixed-citation>
</ref>
<ref id="pone.0214292.ref007">
<label>7</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Zin</surname> <given-names>SM</given-names></name>, <name name-style="western"><surname>Anuar</surname> <given-names>NB</given-names></name>, <name name-style="western"><surname>Kiah</surname> <given-names>MLMM</given-names></name>, <name name-style="western"><surname>Ahmedy</surname> <given-names>I</given-names></name>. <article-title>Survey of secure multipath routing protocols for WSNs</article-title>. <source>J Netw Comput Appl</source>. <year>2015</year>;<volume>55</volume>:<fpage>123</fpage>–<lpage>153</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.jnca.2015.04.018" xlink:type="simple">10.1016/j.jnca.2015.04.018</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref008">
<label>8</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Sterbenz</surname> <given-names>JP</given-names></name>, <name name-style="western"><surname>Hutchison</surname> <given-names>D</given-names></name>, <name name-style="western"><surname>Çetinkaya</surname> <given-names>EK</given-names></name>, <name name-style="western"><surname>Jabbar</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Rohrer</surname> <given-names>JP</given-names></name>, <name name-style="western"><surname>Schöller</surname> <given-names>M</given-names></name>, <etal>et al</etal>. <article-title>Resilience and survivability in communication networks: Strategies, principles, and survey of disciplines</article-title>. <source>Computer Networks</source>. <year>2010</year>;<volume>54</volume>(<issue>8</issue>):<fpage>1245</fpage>–<lpage>1265</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.comnet.2010.03.005" xlink:type="simple">10.1016/j.comnet.2010.03.005</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref009">
<label>9</label>
<mixed-citation publication-type="other" xlink:type="simple">Nayak GN, Samaddar SG. Different flavours of man-in-the-middle attack, consequences and feasible solutions. In: Computer Science and Information Technology (ICCSIT), 2010 3rd IEEE International Conference on. vol. 5. IEEE; 2010. p. 491–495.</mixed-citation>
</ref>
<ref id="pone.0214292.ref010">
<label>10</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Barabási</surname> <given-names>AL</given-names></name>, others. <article-title>Scale-free networks: a decade and beyond</article-title>. <source>Science</source>. <year>2009</year>;<volume>325</volume>(<issue>5939</issue>):<fpage>412</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1126/science.1173299" xlink:type="simple">10.1126/science.1173299</ext-link></comment> <object-id pub-id-type="pmid">19628854</object-id></mixed-citation>
</ref>
<ref id="pone.0214292.ref011">
<label>11</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Barabási</surname> <given-names>AL</given-names></name>, <name name-style="western"><surname>Albert</surname> <given-names>R</given-names></name>. <article-title>Emergence of scaling in random networks</article-title>. <source>Science</source>. <year>1999</year>;<volume>286</volume>(<issue>5439</issue>):<fpage>509</fpage>–<lpage>512</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1126/science.286.5439.509" xlink:type="simple">10.1126/science.286.5439.509</ext-link></comment> <object-id pub-id-type="pmid">10521342</object-id></mixed-citation>
</ref>
<ref id="pone.0214292.ref012">
<label>12</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Hunter</surname> <given-names>P</given-names></name>. <article-title>Pakistan YouTube block exposes fundamental internet security weakness: Concern that pakistani action affected youtube access elsewhere in world</article-title>. <source>Computer Fraud &amp; Security</source>. <year>2008</year>;<volume>2008</volume>(<issue>4</issue>):<fpage>10</fpage>–<lpage>11</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/S1361-3723(08)70065-4" xlink:type="simple">10.1016/S1361-3723(08)70065-4</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref013">
<label>13</label>
<mixed-citation publication-type="other" xlink:type="simple">Poulsen K. Edward Snowden’s e-mail provider defied FBI demands to turn over crypto keys, documents show. WIRED. 2013.</mixed-citation>
</ref>
<ref id="pone.0214292.ref014">
<label>14</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Zimmermann</surname> <given-names>PR</given-names></name>. <source>The official PGP user’s guide</source>. <publisher-name>MIT press</publisher-name>; <year>1995</year>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref015">
<label>15</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Richters</surname> <given-names>O</given-names></name>, <name name-style="western"><surname>Peixoto</surname> <given-names>TP</given-names></name>. <article-title>Trust transitivity in social networks</article-title>. <source>PloS one</source>. <year>2011</year>;<volume>6</volume>(<issue>4</issue>):<fpage>e18384</fpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1371/journal.pone.0018384" xlink:type="simple">10.1371/journal.pone.0018384</ext-link></comment> <object-id pub-id-type="pmid">21483683</object-id></mixed-citation>
</ref>
<ref id="pone.0214292.ref016">
<label>16</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Avizienis</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Laprie</surname> <given-names>JC</given-names></name>, <name name-style="western"><surname>Randell</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Landwehr</surname> <given-names>C</given-names></name>. <article-title>Basic concepts and taxonomy of dependable and secure computing</article-title>. <source>IEEE T Depend Secure</source>. <year>2004</year>;<volume>1</volume>(<issue>1</issue>):<fpage>11</fpage>–<lpage>33</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TDSC.2004.2" xlink:type="simple">10.1109/TDSC.2004.2</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref017">
<label>17</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Von Neumann</surname> <given-names>J</given-names></name>. <article-title>Probabilistic logics and the synthesis of reliable organisms from unreliable components</article-title>. <source>Automata studies</source>. <year>1956</year>;<volume>34</volume>:<fpage>43</fpage>–<lpage>98</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref018">
<label>18</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Qadir</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Ali</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Yau</surname> <given-names>KLA</given-names></name>, <name name-style="western"><surname>Sathiaseelan</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Crowcroft</surname> <given-names>J</given-names></name>. <article-title>Exploiting the power of multiplicity: a holistic survey of network-layer multipath</article-title>. <source>IEEE Comm Surv Tut</source>. <year>2015</year>;<volume>17</volume>(<issue>4</issue>):<fpage>2176</fpage>–<lpage>2213</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/COMST.2015.2453941" xlink:type="simple">10.1109/COMST.2015.2453941</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref019">
<label>19</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Khiani</surname> <given-names>SR</given-names></name>, <name name-style="western"><surname>Dethe</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Thakare</surname> <given-names>V</given-names></name>. <article-title>Comparative Analysis of Multipath Routing Techniques and Design of Secure Energy Aware Routing Algorithm for Wireless Sensor Network</article-title>. <source>IJACR</source>. <year>2013</year>;<volume>3</volume>(<issue>3</issue>):<fpage>374</fpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref020">
<label>20</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Kshemkalyani</surname> <given-names>AD</given-names></name>, <name name-style="western"><surname>Singhal</surname> <given-names>M</given-names></name>. <source>Distributed computing: principles, algorithms, and systems</source>. <publisher-name>Cambridge University Press</publisher-name>; <year>2008</year>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref021">
<label>21</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Lua</surname> <given-names>EK</given-names></name>, <name name-style="western"><surname>Crowcroft</surname> <given-names>J</given-names></name>, <name name-style="western"><surname>Pias</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Sharma</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Lim</surname> <given-names>S</given-names></name>. <article-title>A survey and comparison of peer-to-peer overlay network schemes</article-title>. <source>IEEE Commun Surv Tut</source>. <year>2005</year>;<volume>7</volume>(<issue>2</issue>):<fpage>72</fpage>–<lpage>93</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/COMST.2005.1610546" xlink:type="simple">10.1109/COMST.2005.1610546</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref022">
<label>22</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Korzun</surname> <given-names>D</given-names></name>, <name name-style="western"><surname>Gurtov</surname> <given-names>A</given-names></name>. <source>Structured peer-to-peer systems: fundamentals of hierarchical organization, routing, scaling, and security</source>. <publisher-loc>New York, NY</publisher-loc>: <publisher-name>Springer</publisher-name>; <year>2013</year>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref023">
<label>23</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Mohr</surname> <given-names>LB</given-names></name>. <source>Explaining organizational behavior</source>. <publisher-name>Jossey-Bass</publisher-name>; <year>1982</year>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref024">
<label>24</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Walker</surname> <given-names>DC</given-names></name>. <source>Mass notification and crisis communications: Planning, preparedness, and systems</source>. <publisher-name>CRC Press</publisher-name>; <year>2012</year>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref025">
<label>25</label>
<mixed-citation publication-type="other" xlink:type="simple">Nickerson JV, Tversky B, Corter JE, Yu L, Mason D. Thinking with networks. In: CogSci. vol. 36; 2010.</mixed-citation>
</ref>
<ref id="pone.0214292.ref026">
<label>26</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Levien</surname> <given-names>R</given-names></name>. <chapter-title>Attack-resistant trust metrics</chapter-title>. In: <source>Computing with Social Trust</source>. <publisher-name>Springer</publisher-name>; <year>2009</year>. p. <fpage>121</fpage>–<lpage>132</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref027">
<label>27</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Reiter</surname> <given-names>MK</given-names></name>, <name name-style="western"><surname>Stubblebine</surname> <given-names>SG</given-names></name>. <article-title>Resilient authentication using path independence</article-title>. <source>IEEE T Comput</source>. <year>1998</year>;<volume>47</volume>(<issue>12</issue>):<fpage>1351</fpage>–<lpage>1362</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/12.737682" xlink:type="simple">10.1109/12.737682</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref028">
<label>28</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Lamport</surname> <given-names>L</given-names></name>, <name name-style="western"><surname>Shostak</surname> <given-names>R</given-names></name>, <name name-style="western"><surname>Pease</surname> <given-names>M</given-names></name>. <article-title>The Byzantine generals problem</article-title>. <source>TOPLAS</source>. <year>1982</year>;<volume>4</volume>(<issue>3</issue>):<fpage>382</fpage>–<lpage>401</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/357172.357176" xlink:type="simple">10.1145/357172.357176</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref029">
<label>29</label>
<mixed-citation publication-type="other" xlink:type="simple">Castro M, Liskov B, others. Practical Byzantine fault tolerance. In: OSDI. vol. 99; 1999. p. 173–186.</mixed-citation>
</ref>
<ref id="pone.0214292.ref030">
<label>30</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Dwork</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Naor</surname> <given-names>M</given-names></name>. <chapter-title>Pricing via processing or combatting junk mail</chapter-title>. In: <source>Advances in Cryptology</source>. <publisher-name>Springer</publisher-name>; <year>1993</year>. p. <fpage>139</fpage>–<lpage>147</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref031">
<label>31</label>
<mixed-citation publication-type="other" xlink:type="simple">Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. bitcoinorg. 2008; p. 28.</mixed-citation>
</ref>
<ref id="pone.0214292.ref032">
<label>32</label>
<mixed-citation publication-type="other" xlink:type="simple">Mazières D. Stellar Consensus Protocol: A Federated Model for Internet-level Consensus; 2015.</mixed-citation>
</ref>
<ref id="pone.0214292.ref033">
<label>33</label>
<mixed-citation publication-type="other" xlink:type="simple">Fiat A, Saia J. Censorship resistant peer-to-peer content addressable networks. In: SIAM SODA. ACM; 2002. p. 94–103.</mixed-citation>
</ref>
<ref id="pone.0214292.ref034">
<label>34</label>
<mixed-citation publication-type="book" xlink:type="simple">
<name name-style="western"><surname>Clarke</surname> <given-names>I</given-names></name>, <name name-style="western"><surname>Sandberg</surname> <given-names>O</given-names></name>, <name name-style="western"><surname>Wiley</surname> <given-names>B</given-names></name>, <name name-style="western"><surname>Hong</surname> <given-names>TW</given-names></name>. <chapter-title>Freenet: A distributed anonymous information storage and retrieval system</chapter-title>. In: <source>Designing Privacy Enhancing Technologies</source>. <publisher-name>Springer</publisher-name>; <year>2001</year>. p. <fpage>46</fpage>–<lpage>66</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref035">
<label>35</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Shamir</surname> <given-names>A</given-names></name>. <article-title>How to share a secret</article-title>. <source>Communications of the ACM</source>. <year>1979</year>;<volume>22</volume>(<issue>11</issue>):<fpage>612</fpage>–<lpage>613</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1145/359168.359176" xlink:type="simple">10.1145/359168.359176</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref036">
<label>36</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Blakley</surname> <given-names>GR</given-names></name>. <article-title>Safeguarding cryptographic keys</article-title>. <source>P Natl Comp Conf</source>. <year>1979</year>;<volume>48</volume>:<fpage>313</fpage>–<lpage>317</lpage>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref037">
<label>37</label>
<mixed-citation publication-type="other" xlink:type="simple">Zhang H, Goel A, Govindan R. Using the small-world model to improve freenet performance. In: INFOCOM. vol. 3. IEEE; 2002. p. 1228–1237.</mixed-citation>
</ref>
<ref id="pone.0214292.ref038">
<label>38</label>
<mixed-citation publication-type="other" xlink:type="simple">Kleinberg J. The small-world phenomenon: An algorithmic perspective. In: STOC. ACM; 2000. p. 163–170.</mixed-citation>
</ref>
<ref id="pone.0214292.ref039">
<label>39</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Alrajeh</surname> <given-names>NA</given-names></name>, <name name-style="western"><surname>Alabed</surname> <given-names>MS</given-names></name>, <name name-style="western"><surname>Elwahiby</surname> <given-names>MS</given-names></name>. <article-title>Secure ant-based routing protocol for wireless sensor network</article-title>. <source>Int J Distrib Sens N</source>. <year>2013</year>;<volume>2013</volume>.</mixed-citation>
</ref>
<ref id="pone.0214292.ref040">
<label>40</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Kohno</surname> <given-names>E</given-names></name>, <name name-style="western"><surname>Okazaki</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Takeuchi</surname> <given-names>M</given-names></name>, <name name-style="western"><surname>Ohta</surname> <given-names>T</given-names></name>, <name name-style="western"><surname>Kakuda</surname> <given-names>Y</given-names></name>, <name name-style="western"><surname>Aida</surname> <given-names>M</given-names></name>. <article-title>Improvement of assurance including security for wireless sensor networks using dispersed data transmission</article-title>. <source>J Comp Sys Sci</source>. <year>2012</year>;<volume>78</volume>(<issue>6</issue>):<fpage>1703</fpage>–<lpage>1715</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.jcss.2011.10.018" xlink:type="simple">10.1016/j.jcss.2011.10.018</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref041">
<label>41</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Khalil</surname> <given-names>I</given-names></name>, <name name-style="western"><surname>Bagchi</surname> <given-names>S</given-names></name>, <name name-style="western"><surname>Rotaru</surname> <given-names>CN</given-names></name>, <name name-style="western"><surname>Shroff</surname> <given-names>NB</given-names></name>. <article-title>UnMask: Utilizing neighbor monitoring for attack mitigation in multihop wireless sensor networks</article-title>. <source>Ad Hoc Networks</source>. <year>2010</year>;<volume>8</volume>(<issue>2</issue>):<fpage>148</fpage>–<lpage>164</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1016/j.adhoc.2009.06.002" xlink:type="simple">10.1016/j.adhoc.2009.06.002</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref042">
<label>42</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Lou</surname> <given-names>W</given-names></name>, <name name-style="western"><surname>Kwon</surname> <given-names>Y</given-names></name>. <article-title>H-SPREAD: a hybrid multipath scheme for secure and reliable data collection in wireless sensor networks</article-title>. <source>IEEE T Veh Technol</source>. <year>2006</year>;<volume>55</volume>(<issue>4</issue>):<fpage>1320</fpage>–<lpage>1330</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TVT.2006.877707" xlink:type="simple">10.1109/TVT.2006.877707</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref043">
<label>43</label>
<mixed-citation publication-type="journal" xlink:type="simple">
<name name-style="western"><surname>Liu</surname> <given-names>A</given-names></name>, <name name-style="western"><surname>Zheng</surname> <given-names>Z</given-names></name>, <name name-style="western"><surname>Zhang</surname> <given-names>C</given-names></name>, <name name-style="western"><surname>Chen</surname> <given-names>Z</given-names></name>, <name name-style="western"><surname>Shen</surname> <given-names>X</given-names></name>. <article-title>Secure and energy-efficient disjoint multipath routing for WSNs</article-title>. <source>IEEE T Veh Technol</source>. <year>2012</year>;<volume>61</volume>(<issue>7</issue>):<fpage>3255</fpage>–<lpage>3265</lpage>. <comment>doi: <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/TVT.2012.2205284" xlink:type="simple">10.1109/TVT.2012.2205284</ext-link></comment></mixed-citation>
</ref>
<ref id="pone.0214292.ref044">
<label>44</label>
<mixed-citation publication-type="other" xlink:type="simple">Grewal GS, Ryan MD, Bursuc S, Ryan PY. Caveat coercitor: Coercion-evidence in electronic voting. In: Security and Privacy (SP), 2013 IEEE Symposium on. IEEE; 2013. p. 367–381.</mixed-citation>
</ref>
<ref id="pone.0214292.ref045">
<label>45</label>
<mixed-citation publication-type="other" xlink:type="simple">Leskovec J, Kleinberg J, Faloutsos C. Graphs over time: densification laws, shrinking diameters and possible explanations. In: Proceedings of the eleventh ACM SIGKDD international conference on Knowledge discovery in data mining. ACM; 2005. p. 177–187.</mixed-citation>
</ref>
<ref id="pone.0214292.ref046">
<label>46</label>
<mixed-citation publication-type="other" xlink:type="simple">Xu X, Mao ZM, Halderman JA. Internet censorship in China: Where does the filtering occur? In: International Conference on Passive and Active Network Measurement. Springer; 2011. p. 133–142.</mixed-citation>
</ref>
<ref id="pone.0214292.ref047">
<label>47</label>
<mixed-citation publication-type="other" xlink:type="simple">Dingledine R, Mathewson N, Syverson P. Tor: The second-generation onion router. DTIC Document; 2004.</mixed-citation>
</ref>
</ref-list>
</back>
</article>