<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xml:lang="en" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="nlm-ta">Sensors</journal-id>
<journal-title>Sensors</journal-title>
<issn pub-type="epub">1424-8220</issn>
<publisher>
<publisher-name>Molecular Diversity Preservation International (MDPI)</publisher-name></publisher></journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3390/s100403911</article-id>
<article-id pub-id-type="publisher-id">sensors-10-03911-v2</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>BARI+: A Biometric Based Distributed Key Management Approach for Wireless Body Area Networks</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Muhammad</surname><given-names>Khaliq-ur-Rahman Raazi Syed</given-names></name><xref ref-type="aff" rid="af1-sensors-10-03911-v2"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Lee</surname><given-names>Heejo</given-names></name><xref ref-type="aff" rid="af2-sensors-10-03911-v2"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Lee</surname><given-names>Sungyoung</given-names></name><xref ref-type="aff" rid="af1-sensors-10-03911-v2"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-10-03911-v2"><sup>★</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Lee</surname><given-names>Young-Koo</given-names></name><xref ref-type="aff" rid="af1-sensors-10-03911-v2"><sup>1</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-10-03911-v2">
<label>1</label> Ubiquitous Computing Lab, Department of Computer Engineering, Kyung Hee University (Global Campus), Yongin, Korea; E-Mails: <email>raazi@khu.ac.kr</email> (K.-R.R.S.M.); <email>yklee@khu.ac.kr</email> (Y.-K.L.)</aff>
<aff id="af2-sensors-10-03911-v2">
<label>2</label> Division of Computer &amp; Communication Engineering, Korea University, Seoul 136-713, Korea; E-Mail: <email>heejo@korea.ac.kr</email></aff>
<author-notes>
<corresp id="c1-sensors-10-03911-v2">
<label>★</label>Author to whom correspondence should be addressed; E-Mail: <email>sylee@oslab.khu.ac.kr</email>; Tel.: +82-31-201-2514; Fax: +82-31-202-2520.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2010</year></pub-date>
<pub-date pub-type="epub">
<day>16</day>
<month>4</month>
<year>2010</year></pub-date>
<volume>10</volume>
<issue>4</issue>
<fpage>3911</fpage>
<lpage>3933</lpage>
<history>
<date date-type="received">
<day>6</day>
<month>2</month>
<year>2010</year></date>
<date date-type="rev-recd">
<day>6</day>
<month>3</month>
<year>2010</year></date>
<date date-type="accepted">
<day>7</day>
<month>4</month>
<year>2010</year></date></history>
<permissions>
<copyright-statement>© 2010 by the authors; licensee Molecular Diversity Preservation International, Basel, Switzerland.</copyright-statement>
<copyright-year>2010</copyright-year>
<license>
<p>This article is an open-access article distributed under the terms and conditions of the Creative Commons Attribution license <ext-link xlink:href="http://creativecommons.org/licenses/by/3.0/" ext-link-type="uri">http://creativecommons.org/licenses/by/3.0/</ext-link>.</p></license></permissions>
<abstract>
<p>Wireless body area networks (WBAN) consist of resource constrained sensing devices just like other wireless sensor networks (WSN). However, they differ from WSN in topology, scale and security requirements. Due to these differences, key management schemes designed for WSN are inefficient and unnecessarily complex when applied to WBAN. Considering the key management issue, WBAN are also different from WPAN because WBAN can use random biometric measurements as keys. We highlight the differences between WSN and WBAN and propose an efficient key management scheme, which makes use of biometrics and is specifically designed for WBAN domain.</p></abstract>
<kwd-group>
<kwd>humanware</kwd>
<kwd>healthcare</kwd>
<kwd>security</kwd>
<kwd>key management</kwd>
<kwd>body area networks</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<sec>
<label>1.1.</label>
<title>Background</title>
<p>Sensor networks are used to monitor chemical, biological, physical, environmental or any other kind of phenomena in real-time environments. Sensor networks consist of resource constrained sensor devices, which relay their sensed data to a central server through the network using wireless communications [<xref ref-type="bibr" rid="b1-sensors-10-03911-v2">1</xref>]. This data is processed or used at the central server according to the application requirements. In order to increase efficiency, information is also filtered in the intermediate nodes.</p>
<p>A wireless body area network (WBAN) is formed when sensor nodes are tactfully placed on human body to collect its biometrics or activities. Applications of WBAN include healthcare, lifecare and athlete examination. Healthcare includes care for inpatients especially those who are seriously ill, unconscious or under intensive care. Lifecare includes patients who live their lives normally but may require medical care at any time. For example, lifecare facilities are useful in monitoring health of elderly people and pregnant women in real-time. Lack of timely medical care may cost some people their lives, e.g., heart patients or high risk pregnant women. Also, WBANs are very useful in examining and monitoring an athlete’s body.</p>
<p>The use of WBAN in applications, which are crucial for human life, highlights importance of its security. Apart from making sure that a person’s biometric information is not tampered with, it is important to ensure confidentiality of the person’s information. Key management plays a pivotal role in ensuring data integrity and protecting patient’s private data from eavesdroppers and unauthorized users.</p>
<p>In order to ensure confidentiality and integrity, highly secure state-of-the-art mechanisms such as TLS [<xref ref-type="bibr" rid="b2-sensors-10-03911-v2">2</xref>] and Kerberos [<xref ref-type="bibr" rid="b3-sensors-10-03911-v2">3</xref>] exist but they are too heavy to run on resource constrained sensor nodes. Mechanisms such as LEAP+ [<xref ref-type="bibr" rid="b4-sensors-10-03911-v2">4</xref>], SHELL [<xref ref-type="bibr" rid="b5-sensors-10-03911-v2">5</xref>] and MUQAMI+ [<xref ref-type="bibr" rid="b6-sensors-10-03911-v2">6</xref>] are resource efficient for sensor nodes but they are designed keeping in mind unattended large scale Wireless Sensor Networks (WSN), in which all nodes may not be in communication range of each other. Apart from being small scale wireless network that can have human intervention, WBAN have all nodes in communication range of each other. Also, application characteristics of WBAN can be exploited to further reduce key management overhead as discussed in [<xref ref-type="bibr" rid="b7-sensors-10-03911-v2">7</xref>]. Differences between WSN and WBAN are discussed in detail in the following section (Section 1.2.).</p></sec>
<sec>
<label>1.2.</label>
<title>Motivation and Problem Statement</title>
<p>WBAN are adhoc networks formed by sensor nodes placed on different parts of a human body. Sensor nodes have less memory, computation and communication capabilities. Also, they have limited energy resources. Based on above properties, WBAN are classified into same category as WSN and treated in the same way when designing key management schemes. However, we find that WBAN are different from usual WSN in many ways.</p>
<p>Firstly, WBAN and WSN differ in scale. For WSN, number of nodes may be in thousands while WBAN consists of very few nodes, which may not exceed twenty. Obvious reason for this difference is usability. In humanware applications, sensor devices can be placed in watches, lockets or other wearable things. People may not agree to wear a lot of devices. If they do, it hampers their daily routine.</p>
<p>Secondly, nodes in WBAN are very close to each other as opposed to WSN. Nodes in WSN are scattered in large area like battlefield while nodes in WBAN are placed in small area, <italic>i.e.</italic>, a human body. Placing sensor nodes on a human body brings many of them in communication range of each other. Communication protocols have been designed keeping in mind such topology [<xref ref-type="bibr" rid="b8-sensors-10-03911-v2">8</xref>].</p>
<p>Thirdly, a compromised node can be physically removed in WBAN, which may not be the case in WSN because human intervention is not always possible in WSN. In WBAN applications, which are crucial for human life, it is essential to physically replace compromised nodes. For example, if there is only one node measuring a serious patient’s heart rate, it must be replaced immediately. Since it is possible to physically remove a compromised node in WBAN, it is not efficient to use node eviction strategies in key management scheme.</p>
<p>Lastly, WBAN are used to measure biometrics from human body. Biometric values exhibit sufficient randomness properties and can be used to generate random numbers for cryptographic keys [<xref ref-type="bibr" rid="b9-sensors-10-03911-v2">9</xref>]. [<xref ref-type="bibr" rid="b9-sensors-10-03911-v2">9</xref>] uses “the last digit fluctuation method” to generate random sequence from biometric data and extracts the least significant bit from every reading. Also, [<xref ref-type="bibr" rid="b9-sensors-10-03911-v2">9</xref>] proves that the least significant bit from every reading have sufficient randomness. According to [<xref ref-type="bibr" rid="b9-sensors-10-03911-v2">9</xref>], about <italic>n</italic> readings are required to generate an <italic>n</italic> bit key, which is viable because sensor nodes sense biometrics a lot more often than they relay its values to the central server. There are two reasons for preferring physiological value based keying over pseudo-random number generators: Firstly, pseudo-random number generators require heavy computations as compared to physiological value based keying. Secondly, all random numbers are independent of each other in physiological value based keying as opposed to pseudo-random number generators. In pseudo-random number generators, a mathematical algorithm and a seed value are used to generate random numbers. If the algorithm and the seed value are exposed, the sequence of random numbers becomes deterministic. Also, obtaining truly random seed value is also a challenge. Phenomena that are measured in WSN applications may not have such randomness properties. WBAN can not be treated as a Wireless Personal Area Network (WPAN) because of the same reason. Some researchers use biometrics for key generation [<xref ref-type="bibr" rid="b10-sensors-10-03911-v2">10</xref>, <xref ref-type="bibr" rid="b11-sensors-10-03911-v2">11</xref>]. Some of them argue that sensor nodes do not even need to exchange keys [<xref ref-type="bibr" rid="b12-sensors-10-03911-v2">12</xref>–<xref ref-type="bibr" rid="b14-sensors-10-03911-v2">14</xref>]. They rely on the assumption that two nodes can sense a biometric at the same time. After that, they apply error-correcting codes at both the communicating nodes. Apart from extra computations and time synchronization issues, this assumption imposes another constraint on the network, <italic>i.e.</italic>, some nodes should be able to sense more than one biometric, which may not be practically possible. Also, such schemes do not take into account those nodes, which are not used for sensing biometrics. For more detail, refer to the system model of WBANs described in Section 3.</p>
<p>Differences between WBAN and WSN are summarized in <xref ref-type="table" rid="t1-sensors-10-03911-v2">Table 1</xref>. The only difference in security requirement of WBAN and WSN evident from <xref ref-type="table" rid="t1-sensors-10-03911-v2">Table 1</xref> is that a compromised node in WBAN scenario need not be evicted through software because human intervention is always possible. However, there is also difference between types of attack that can take place through compromised nodes in WBAN and WSN scenarios. In WBAN, we do not need to take care of routing attacks such as selective forwarding, wormhole and sinkhole attacks because many nodes have the cluster head node in their communication range. Nodes, which have very limited communication range, can communicate through one intermediate node. Moreover, due to the fact that WBAN are small scale networks, in which many nodes are in communication range of each other, we do not need to employ strategies to prevent attack propagation in WBAN. <xref ref-type="table" rid="t2-sensors-10-03911-v2">Table 2</xref> outlines the differences between security requirements of WBAN and WSN.</p>
<p>From <xref ref-type="table" rid="t2-sensors-10-03911-v2">Table 2</xref>, it is clear that the security requirements of WBAN are less complex than that of WSN. Also, from <xref ref-type="table" rid="t1-sensors-10-03911-v2">Table 1</xref> we learn that we can achieve more efficiency in key management solutions if we exploit the characteristics of WBAN applications while designing key management scheme for WBANs.</p></sec>
<sec>
<label>1.3.</label>
<title>Main Contributions</title>
<p>Key management schemes of WSN prove to be overly complex for WBAN because security requirements of WSN are more complex than that of WBAN. Also, key management schemes designed for WSN can not take advantage of the characteristics of WBAN applications in order to achieve more efficiency. Therefore, we present BARI+ (In the conference version, we named this protocol BARI [<xref ref-type="bibr" rid="b15-sensors-10-03911-v2">15</xref>]. Since it is improved and described more elaborately in this journal version, we have named it BARI+), which is a distributed key management scheme that fulfills the security requirements (as stated in <xref ref-type="table" rid="t2-sensors-10-03911-v2">Table 2</xref>) of WBAN. Apart from fulfilling security requirements of WBANs, BARI+ also exploits application characteristics of WBAN to achieve more efficiency.</p>
<p>BARI+ is a distributed key management scheme, which makes use of key refreshment schedules to distribute key management responsibility among all nodes in a WBAN in a fair manner. All nodes in WBAN are able to take part in key management because nodes need not generate keys themselves. After presenting our scheme, its overhead is analyzed and compared with other state-of-the-art schemes. Apart from analyzing storage and communication overhead, security of our scheme is also analyzed.</p>
<p>Rest of this paper is organized as follows: Section 2. outlines the related work followed by section 3., which states the system model and assumptions. Section 4. presents our scheme. Section 5. analyzes our scheme and compares it with other state-of-the-art key management schemes. Section 6. presents simulation results and then Section 7. concludes the paper. In this paper we use many abbreviations and notations like WBAN for wireless body area networks. Refer to <xref ref-type="table" rid="t3-sensors-10-03911-v2">Table 3</xref> for complete list of notations used in this paper.</p></sec></sec>
<sec>
<label>2.</label>
<title>Related Work</title>
<p>Due to the fact that WBAN consist of sensor nodes, they have been considered similar to WSNs. Therefore, most of the related work is from WSN paradigm. The most simple key management solutions is to distribute keys to each pair of communicating nodes before the deployment and then use them throughout the network lifetime. Extreme care must be taken during key assignments otherwise it may result in inefficient security. For example, same key should not be assigned to multiple pair of nodes within a certain area. Likewise, there are many other issues in key pre-distribution. Efficient mechanisms, which take care of those issues, also exist [<xref ref-type="bibr" rid="b16-sensors-10-03911-v2">16</xref>–<xref ref-type="bibr" rid="b20-sensors-10-03911-v2">20</xref>].</p>
<p>Main problem with key pre-distribution is that if we keep on using same keys for longer periods of time, they may come under cryptanalytic attacks. When considering network lifetime, Mica2, which is real world example of a sensor node, is a very good example. At full power, its lifetime is expected to be two weeks [<xref ref-type="bibr" rid="b21-sensors-10-03911-v2">21</xref>]. In WBAN, network lifetime may be indefinite because nodes’ batteries can be replaced or recharged. Under such circumstances, periodic key refreshment becomes necessary.</p>
<p>Many schemes, which support key refreshment, have been proposed for WSN. Key management scheme of Riaz <italic>et al.</italic> [<xref ref-type="bibr" rid="b22-sensors-10-03911-v2">22</xref>] requires the base station to provide public keys to the communicating nodes. Drawback of Riaz’s scheme is that frequent communication with the cluster head node incurs significant communication overhead. Paek <italic>et al.</italic> [<xref ref-type="bibr" rid="b23-sensors-10-03911-v2">23</xref>] base their scheme on regional and virtual groups. LEAP+ [<xref ref-type="bibr" rid="b4-sensors-10-03911-v2">4</xref>] is a localized scheme and one of the state-of-the-art solutions for WSN. Common drawback of Paek’s scheme and LEAP+ is their assumption that the network is safe during some initial time period. Also, both these schemes are not designed for a scenario, in which all nodes are in communication range of each other.</p>
<p>[<xref ref-type="bibr" rid="b24-sensors-10-03911-v2">24</xref>] and [<xref ref-type="bibr" rid="b25-sensors-10-03911-v2">25</xref>] use asymmetric cryptography in WSN using Elliptic Curve Cryptography. Apart from being designed for large scale sensor networks, both of these schemes move the additional burden of public key cryptography to the cluster head node. We argue that such strategies should be avoided because the cluster head nodes also have limited battery and they become a single point of failure in case they are compromised. Another drawback of [<xref ref-type="bibr" rid="b25-sensors-10-03911-v2">25</xref>] is that it assumes network safety in some initial time period.</p>
<p>SHELL [<xref ref-type="bibr" rid="b5-sensors-10-03911-v2">5</xref>] and MUQAMI+ [<xref ref-type="bibr" rid="b6-sensors-10-03911-v2">6</xref>] are lightweight solutions and suit the resource constrained sensor nodes well. They also avoid single points of failure in sensor networks. Both these schemes are based on combinatorics and Exclusion Basis System (EBS) matrix [<xref ref-type="bibr" rid="b26-sensors-10-03911-v2">26</xref>]. MUQAMI+ improves performance by distributing the key management responsibilities locally. Also, it makes use of key-chains [<xref ref-type="bibr" rid="b27-sensors-10-03911-v2">27</xref>], which are based on Lamport’s one-time passwords [<xref ref-type="bibr" rid="b28-sensors-10-03911-v2">28</xref>]. However, both these schemes are designed keeping in mind large scale nature of WSN. When applied to small scale networks, their performances drop considerably. Also, EBS based key management schemes are prone to collusion attacks [<xref ref-type="bibr" rid="b29-sensors-10-03911-v2">29</xref>].</p>
<p>All of the above schemes are generally efficient in WSN scenarios but none of them makes use of the characteristics of WBAN applications. Also, their designs are overly complex for WBAN scenarios. Previously, researchers have focused on application characteristics of WBANs but their research has been limited to the usage of biometrics values as keys and authentication codes [<xref ref-type="bibr" rid="b10-sensors-10-03911-v2">10</xref>, <xref ref-type="bibr" rid="b11-sensors-10-03911-v2">11</xref>] as already discussed in Subsection 1.2. Importance of the research of [<xref ref-type="bibr" rid="b10-sensors-10-03911-v2">10</xref>] and [<xref ref-type="bibr" rid="b11-sensors-10-03911-v2">11</xref>] is that they have substantially reduced the computation costs involved in generating keys. Also, some researchers have focused on eradicating the need for key exchange [<xref ref-type="bibr" rid="b12-sensors-10-03911-v2">12</xref>–<xref ref-type="bibr" rid="b14-sensors-10-03911-v2">14</xref>] assuming that two communicating nodes can sense same biometric at the same time and then apply error-correcting codes to agree on a secret key. Eradicating the need for key exchange eradicates communication costs involved in key management. Apart from time synchronization issues, these schemes add another constraint to the network: they require some sensor nodes to sense more than one biometric. Having multiple sensors in a sensor node increases the cost of sensor node and may not be practical in many WBAN scenarios. Authors in [<xref ref-type="bibr" rid="b30-sensors-10-03911-v2">30</xref>] have eradicated time synchronization issues by using photoplethysmogram (PPG) signals for key exchange. To study its efficiency, they have also implemented their scheme in hardware [<xref ref-type="bibr" rid="b31-sensors-10-03911-v2">31</xref>]. However, issue of multiple sensing still remains a challenge. We propose a complete key management architecture, keeping in mind application characteristics and security requirements of WBAN. Also, our scheme does not have time synchronization and multiple sensing issues. To our knowledge, this is the first key management scheme, which is designed for WBAN and does not have time synchronization and multiple sensing issues.</p></sec>
<sec>
<label>3.</label>
<title>System Model and Assumptions</title>
<p>Scenario of WBAN is such that there are few sensor devices, which are capable of measuring biometrics related to human body. These devices are tactically placed on a human body in such a way that they do not hamper daily routine of the human being. Also, there is a Personal Server (PS), which can be a laptop or a hand held device. The PS and all the sensor nodes form a wireless body area network (WBAN). We assume that the PS is pre-loaded with node identities and the sensor nodes are pre-loaded with relevant keys before deployment. For critical scenarios, sensors that are targeted for the same WBAN and the associated PS can be grouped together in advance. Sensor nodes measure biometrics and forward them to the PS. In turn, the PS relays this information to a central server, which we call Medical Server (MS), through the internet.</p>
<p>Each WBAN is associated with only one body. Multiple WBANs are associated with one central MS. The MS stores and processes information of all the WBANs that are associated with it. An application software running on the MS generates alerts based on the information stored on the server. Also, authorized people can access the required information from the MS. System architecture, as per our assumptions, of WBAN is shown in <xref ref-type="fig" rid="f1-sensors-10-03911-v2">Figure 1</xref>.</p>
<p>We assume that the PS and all sensor devices are constrained in energy because they use rechargeable batteries. Also, we assume that a number of nodes in the network have internal clocks. Unlike other WSN, physical node capture is unlikely to happen in WBAN because all nodes are under human observation. However, node compromise can not be ruled out completely.</p></sec>
<sec>
<label>4.</label>
<title>BARI+</title>
<p>Our scheme supports use of biometric measurements as symmetric keys because they posses randomness properties and can be used to generate symmetric keys in WBAN scenarios. This has already been discussed in previous sections. Our scheme makes use of key refreshment schedule, which depicts the turn of each node for key refreshment. The personal server (PS) issues new key refreshment schedule periodically. Each node refreshes the key in the slot allotted to it. The PS can exempt some nodes from their key management responsibilities depending upon their energy level and transmission capabilities. Example of a key refreshment schedule is shown in <xref ref-type="fig" rid="f2-sensors-10-03911-v2">Figure 2</xref>.</p>
<p>Our scheme uses four types of keys to manage a WBAN: communication key, administrative key, basic key and a secret key shared between sensor node and the medical server. Communication key <italic>K<sub>comm</sub></italic> is a network wide key and is used to transfer data through the network in a secure manner. In our scheme, <italic>K<sub>comm</sub></italic> is managed by the PS itself. Since <italic>K<sub>comm</sub></italic> is used very frequently, it may come under cryptanalytic attacks and must be refreshed regularly.</p>
<p>Administrative key <italic>K<sub>admin</sub></italic> is used to refresh <italic>K<sub>comm</sub></italic>. <italic>K<sub>admin</sub></italic> is also a group key but it is not used as frequently as <italic>K<sub>comm</sub></italic>. Naturally, <italic>K<sub>admin</sub></italic> is less exposed as compared to <italic>K<sub>comm</sub></italic>. Although PS is more capable than a sensor node, PS is also a battery powered device. Also, sensor nodes need not generate keys in order to refresh them. Therefore, we use refreshment schedules to distribute the responsibility of key management evenly throughout the network. In order to increase resilience in a WBAN, we can increase the number of administrative keys being used. <xref ref-type="fig" rid="f3-sensors-10-03911-v2">Figure 3</xref> shows the manner, in which our scheme manages the keys of a WBAN.</p>
<p>In WBAN applications, it is almost impossible for an adversary to compromise a node physically because of human presence. Although it is possible, it is less likely that an adversary can place a malicious node nearby to hack into a node’s system software. Even if such an event occurs, it is a lot easier to detect as compared to WSN because the PS can directly monitor the activity of a compromised node and the compromised can be removed through human intervention. Despite the fact that there are lesser chances of malicious activities in WBAN, it is important to cover all possibilities. Also, <italic>K<sub>admin</sub></italic> needs to be refreshed through some other key at some point in time. Therefore, we employ basic keys <italic>K<sub>bsc</sub></italic> in our key management framework. Every node has its own <italic>K<sub>bsc</sub></italic>, which it shares only with the PS. Key <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> is a rarely used backup key shared between sensor node and the medical server. <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> is important and is essential to recover from the compromise of PS or <italic>K<sub>bsc</sub></italic>.</p>
<sec>
<label>4.1.</label>
<title>Initial Deployment</title>
<p>PS is deployed in the beginning. Throughout network lifetime, PS is connected with the medical server through an external secure communication channel, which may be the internet. PS comes pre-loaded with <italic>K<sub>admin</sub></italic>, <italic>K<sub>comm</sub></italic> and basic keys of all nodes that are to be deployed in the network. Also, identities and authentication codes of all nodes are pre-loaded in the PS. These codes are used to authenticate the sensor nodes. After the PS is deployed, sensor devices are deployed on various parts of the body. Sensor nodes come pre-loaded with authentication codes of all nodes in the network, <italic>K<sub>admin</sub></italic> and their respective <italic>K<sub>bsc</sub></italic> and <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic>. Soon after deployment, every node sends discovery message to the PS as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mo>∀</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo>∃</mml:mo>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>→</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">ID</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>In WBAN, some sensor nodes may have very little communication range. MS informs the PS about deployment of such nodes in advance. If such nodes are to be deployed, the PS commands other nodes to forward discovery messages of such nodes to the PS. After all the sensor nodes are deployed, the PS generates a key refreshment schedule for <italic>K<sub>admin</sub></italic>. It then broadcasts the refreshment schedule and initial value of <italic>K<sub>comm</sub></italic> in the network as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">comm</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Key</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Ref</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Schedule</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi mathvariant="italic">PS</mml:mi></mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Timestamp</mml:mi>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>In order to prevent the PS from waiting forever, there is a timer. As soon as the last expected node’s discovery message is received or the timer expires, the PS calculates the refreshment schedule and broadcasts its initial message <italic>m</italic>2. All subsequent nodes are treated as added nodes and deployed through the procedure explained in Subsection 4.3.</p></sec>
<sec>
<label>4.2.</label>
<title>Re-keying</title>
<p>In order to refresh <italic>K<sub>comm</sub></italic>, PS computes a value from biometrics as the value of new <italic>K<sub>comm</sub></italic>. It then encrypts the new value of <italic>K<sub>comm</sub></italic> with <italic>K<sub>admin</sub></italic> and broadcasts it into the network as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">comm</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi mathvariant="italic">PS</mml:mi></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>Administrative key is refreshed periodically. When the turn of sensor node <italic>i</italic> arrives, sensor node <italic>i</italic> waits for a certain period of time, computes a new value for <italic>K<sub>admin</sub></italic> from biometrics and broadcasts it in the network as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msubsup>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi>
<mml:mi mathvariant="italic">old</mml:mi></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msubsup>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi>
<mml:mi mathvariant="italic">new</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>When the key refreshment schedule expires, the PS calculates the new schedule, encrypts it in the current value of <italic>K<sub>admin</sub></italic> and broadcasts it into the network as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">Key</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Ref</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Schedule</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi mathvariant="italic">PS</mml:mi></mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Timestamp</mml:mi>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>When a network is deployed, key refreshment timeout of every sensor node is decided according to pre-defined criteria. However, PS can decide to refresh <italic>K<sub>admin</sub></italic> at any point in time if it detects malicious activities. In such scenario, the PS sends key refresh message to the node, which is supposed to refresh <italic>K<sub>admin</sub></italic> next time. For example, if it is the turn of sensor node <italic>i</italic> to refresh the administrative key, following messages will be exchanged to refresh <italic>K<sub>admin</sub></italic>:
<disp-formula>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">Key</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Refersh</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi mathvariant="italic">PS</mml:mi></mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Timestamp</mml:mi>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msubsup>
<mml:mi>K</mml:mi>
<mml:mi mathvariant="italic">admin</mml:mi>
<mml:mi mathvariant="italic">old</mml:mi></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">new</mml:mi></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>In order to maintain forward secrecy, <italic>K<sub>admin</sub></italic> needs to be refreshed through <italic>K<sub>bsc</sub></italic> regularly. Also, <italic>K<sub>admin</sub></italic> needs to be refreshed through <italic>K<sub>bsc</sub></italic> in case of sensor node compromise. In order to refresh <italic>K<sub>admin</sub></italic> through <italic>K<sub>bsc</sub></italic>, the PS computes new values of basic keys and refreshes <italic>K<sub>admin</sub></italic> using <italic>K<sub>bsc</sub></italic> of the sensor nodes:
<disp-formula>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mo>∀</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo>∃</mml:mo>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mi>E</mml:mi>
<mml:mrow>
<mml:msubsup>
<mml:mi>K</mml:mi>
<mml:mrow>
<mml:mi mathvariant="italic">bsc</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">old</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">bsc</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">new</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi mathvariant="italic">new</mml:mi>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mi mathvariant="italic">Code</mml:mi>
<mml:mi mathvariant="italic">PS</mml:mi></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">comm</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>Although basic keys are used only once and refreshed after every use, it is possible that they need to be refreshed using some other key. For example, if the PS is compromised. Therefore, we think it is important to have a procedure to recover from such catastrophic failures. In such scenario, authentication code of the PS is also refreshed. If a new PS is deployed, it comes pre-loaded with <italic>K<sub>admin</sub></italic> and <italic>K<sub>comm</sub></italic>. MS sends identities, authentication codes and basic keys of the sensor nodes to the newly deployed PS. If the PS is not replaced, MS sends new values of <italic>K<sub>bsc</sub></italic> to the PS. Also, MS encrypts new values of <italic>K<sub>bsc</sub></italic>, along with the new authentication code of PS, in <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> of all sensor nodes and sends them to the PS through an external secure communication channel, which may be the internet. After receiving messages encrypted in <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> of the sensor nodes, PS just forwards them to the respective sensor nodes. Whenever <italic>K<sub>bsc</sub></italic> is refreshed, <italic>K<sub>admin</sub></italic> and <italic>K<sub>comm</sub></italic> are also refreshed. Following message exchanges take place between the PS and sensor nodes when <italic>K<sub>bsc</sub></italic> is refreshed using <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic>:
<disp-formula>
<mml:math display="block">
<mml:mtable columnalign="left">
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mo>∀</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo>∃</mml:mo>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">MS</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">old</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">bsc</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">new</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">MS</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">new</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MS</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>:</mml:mo>
<mml:mo>∀</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mo> </mml:mo>
<mml:mi mathvariant="italic">if</mml:mi>
<mml:mo> </mml:mo>
<mml:mo>∃</mml:mo>
<mml:mo> </mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">bsc</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">old</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">bsc</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">new</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">new</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mi>m</mml:mi>
<mml:mn>3</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">comm</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>Note that <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> is refreshed whenever it is used. Also, the PS does not get to know key <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> of any sensor node. Remaining key refreshment schedule is followed after the refreshment of <italic>K<sub>admin</sub></italic> irrespective of the way <italic>K<sub>admin</sub></italic> is refreshed.</p></sec>
<sec>
<label>4.3.</label>
<title>Node Addition</title>
<p>In some cases, new nodes are added to the network or the existing nodes are replaced. One possible scenario of node addition can be the deployment of a new device to monitor some biometric. Similarly, one possible scenario of node replacement is malfunction of a device. Under such circumstances new nodes are added to the network.</p>
<p>If new nodes are to be added in the network, MS informs PS about new deployments by sending identities, basic keys and authentication codes of new nodes to the PS. Also, MS informs the PS about initial value of <italic>K<sub>admin</sub></italic> that is preloaded into the new nodes. All this communication is done through an external secure communication channel. Under normal circumstances, if the PS receives messages from stranger nodes, it ignores them and indicates malicious activity on its own output. If informed by the MS, the PS expects discovery messages from new nodes. This is important because otherwise malicious nodes can drain its energy by sending fake discovery messages. New nodes send their respective discovery messages encrypted in the pre-loaded value of <italic>K<sub>admin</sub></italic> as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>1</mml:mn>
<mml:mo>:</mml:mo>
<mml:mo>∀</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msup>
<mml:mo>∈</mml:mo>
<mml:mo stretchy="false">{</mml:mo>
<mml:mi mathvariant="italic">New</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Nodes</mml:mi>
<mml:mo stretchy="false">}</mml:mo>
<mml:mo>:</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msup>
<mml:mo>→</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pre</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">load</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">ID</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msup>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>If nodes, which have very limited communication range, are deployed, then the PS commands other sensor nodes to forward their discovery messages to the PS. PS waits for all expected nodes for a certain period of time. After that, it broadcasts the remaining key refreshment schedule and current values of <italic>K<sub>comm</sub></italic> and <italic>K<sub>admin</sub></italic> to newly deployed nodes as follows:
<disp-formula>
<mml:math display="block">
<mml:mrow>
<mml:mi>m</mml:mi>
<mml:mn>2</mml:mn>
<mml:mo>:</mml:mo>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>→</mml:mo>
<mml:mo>*</mml:mo>
<mml:mo>:</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>E</mml:mi></mml:mrow>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">pre</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi mathvariant="italic">load</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:msub>
<mml:mo stretchy="false">{</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">comm</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Remaining</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Sched</mml:mi>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Auth</mml:mi>
<mml:mo>_</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi mathvariant="italic">Code</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">|</mml:mo>
<mml:mi mathvariant="italic">Timestamp</mml:mi>
<mml:mo stretchy="false">}</mml:mo></mml:mrow></mml:math></disp-formula>All nodes, except the newly deployed ones, ignore such message from the PS. Newly deployed nodes can participate in key refreshment procedure after the next key refreshment schedule is issued by the PS.</p></sec></sec>
<sec sec-type="methods">
<label>5.</label>
<title>Analysis and Comparison</title>
<p>In this section, we establish our claims regarding efficiency of our scheme BARI+ by analyzing its storage and communication overheads and comparing it with other key management schemes. Also, security analysis of our scheme is presented at the end of this section. According to our knowledge, this is the first key management scheme that is proposed for WBAN and does not require multiple sensing. Therefore, we compare our scheme with two other state-of-the-art key management schemes, which are designed for WSN, LEAP+ [<xref ref-type="bibr" rid="b4-sensors-10-03911-v2">4</xref>] and MUQAMI+ [<xref ref-type="bibr" rid="b6-sensors-10-03911-v2">6</xref>]. SHELL [<xref ref-type="bibr" rid="b5-sensors-10-03911-v2">5</xref>] is also a state-of-the-art key management scheme for WSN but it is not applicable to WBAN because it requires services of neighbouring cluster head nodes, which may not be present in WBAN scenario. When applying LEAP+ and MUQAMI+ in WBAN scenario, we assume that the PS acts as cluster head node and all nodes on one body are part of the same cluster. Also, cluster can not span multiple bodies.</p>
<sec>
<label>5.1.</label>
<title>Storage Overhead</title>
<p>Storage and exchange of authentication codes is common in all key management schemes. Also, storage requirements of authentication codes do not make much difference when key management schemes are compared with respect to their storage overhead. For simplicity, storage requirements of authentication codes is not included in storage analysis. Considering storage overhead of sensor nodes, only four keys are stored: <italic>K<sub>comm</sub></italic>, <italic>K<sub>admin</sub></italic>, <italic>K<sub>bsc</sub></italic> and <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic>. Apart from that, key refreshment schedule is stored on sensor nodes. A sensor node keeps track of its turn with the help of two short integers. One integer contains a counter to keep track of its turn. The other one indicates timeout after which it refreshes <italic>K<sub>admin</sub></italic>. If we consider that a short integer requires 2 bytes and key length is <italic>z</italic> bytes, Then the storage requirement of a sensor nodes becomes:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">BARI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn></mml:mrow></mml:math></disp-formula>PS stores <italic>K<sub>bsc</sub></italic> of all sensor nodes, <italic>K<sub>admin</sub></italic> and <italic>K<sub>comm</sub></italic>. Also, it stores complete key refreshment schedule for <italic>K<sub>admin</sub></italic>. Storing a sensor node’s identity requires 2 bytes. Another 2 bytes are required to specify timeout after which sensor node refreshes <italic>K<sub>admin</sub></italic>. So, the storage requirements of PS becomes:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">BARI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>r</italic> is the number of nodes in WBAN formed on a body. Note that key <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> is not stored on the PS.</p>
<p>Storage requirements of a node (sensor node or personal server) in LEAP+ is fairly straightforward. Apart from pairwise keys shared with each node in its cluster, every node stores its cluster key and the communication key. So, the storage requirement of a node in LEAP+ becomes:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi>
<mml:mo>∨</mml:mo>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">LEAP</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>In MUQAMI+, each PS node has to store <italic>K<sub>comm</sub></italic> and <italic>K<sub>cn</sub></italic><sub>,</sub><italic><sub>ch</sub></italic>. Also, PS has to store <italic>K<sub>ch</sub></italic><sub>,</sub><italic><sub>sn</sub></italic> of all SN nodes and key-chains of key <italic>K<sub>ch</sub></italic><sub>,</sub><italic><sub>kg</sub></italic> of all KG nodes in its cluster. In addition to that, PS has to store EBS matrix. If EBS data for each node takes 4 bytes (2 bytes for storing node identity and 2 bytes for storing key pattern), it takes 4 × <italic>r</italic> bytes to store EBS matrix. So, the average storage requirement of a PS node (in bytes) of MUQAMI+ becomes:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>−</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where <italic>l</italic> is the length of key-chains [<xref ref-type="bibr" rid="b27-sensors-10-03911-v2">27</xref>], which are used by MUQAMI+ for key management and <italic>k</italic> and <italic>m</italic> are EBS [<xref ref-type="bibr" rid="b26-sensors-10-03911-v2">26</xref>] parameters. In MUQAMI+, SN nodes have to store <italic>k</italic> admin keys apart from four other keys: <italic>K<sub>ch</sub></italic><sub>,</sub><italic><sub>sn</sub></italic>, <italic>K<sub>comm</sub></italic>, <italic>K<sub>bsc</sub></italic> and <italic>K<sub>disc</sub></italic>. So, the average storage requirement of a sensor node in MUQAMI+ can be expressed as:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>Among sensor nodes, MUQAMI+ also has key generating (KG) nodes, which store two key-chains: one for the admin key, which it generates and one for <italic>K<sub>ch</sub></italic><sub>,</sub><italic><sub>kg</sub></italic>. Also, KG nodes store <italic>k</italic> − 1 EBS keys along with three other keys: <italic>K<sub>comm</sub></italic>, <italic>K<sub>bsc</sub></italic> and <italic>K<sub>disc</sub></italic>. So, the average storage requirement of a KG node can be expressed as:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math display="block">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">KG</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>3</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>In MUQAMI+, we have <italic>k</italic> + <italic>m</italic> KG nodes out of a total of <italic>r</italic> nodes in a cluster. Therefore, average storage requirement of each node within a cluster comes out to be:
<disp-formula id="FD7">
<label>(7)</label>
<mml:math display="block">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">SR</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mo>∪</mml:mo>
<mml:mi mathvariant="italic">KG</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>−</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>r</mml:mi></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>r</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>−</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>r</mml:mi></mml:mfrac></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi>z</mml:mi>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>4</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>r</mml:mi></mml:mfrac>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>Note that (<italic>k</italic> + <italic>m</italic>) &lt;&lt; <italic>r</italic> only for large scale networks. For small scale networks like WBAN, <italic>k</italic> and <italic>m</italic> are comparable to <italic>r</italic>, which degrades the performance of MUQAMI+ considerably.</p>
<p><xref ref-type="table" rid="t4-sensors-10-03911-v2">Table 4</xref> compares the storage requirements of BARI+ with MUQAMI+ and LEAP+. It is clear from <xref ref-type="table" rid="t4-sensors-10-03911-v2">Table 4</xref> that storage overhead of our scheme is less as compared to other schemes especially on sensor nodes.</p></sec>
<sec>
<label>5.2.</label>
<title>Communication Overhead</title>
<p>Communication is the most energy consuming activity in WBAN. Since all nodes are in communication range of each other, we only need to analyze average number of messages transmitted by each type of node in every phase. Initial deployment phase of BARI+ is very lightweight and simple because every node has to send one message each.</p>
<p>Initial deployment phase of MUQAMI+ is also simple. Every sensor node has to send one discovery message each. In return, the PS has to send one message to each node in the network, which makes the total number of messages transmitted by the PS equal to <italic>r</italic>. In LEAP+’s initial deployment phase, the PS has to send one broadcast message to all nodes in the network. All nodes reply and pair-wise keys are established. After that, it sends its cluster key to each of the <italic>r</italic> nodes one by one and then broadcasts its group key in the network. Also, it replies to the initial messages sent by other nodes. So, the average number of messages transmitted by PS in the initial deployment phase of LEAP+ becomes:
<disp-formula id="FD8">
<label>(8)</label>
<mml:math display="block">
<mml:mrow>
<mml:mtable columnalign="left">
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mi mathvariant="italic">Avg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Count</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Init</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">LEAP</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>2</mml:mn></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr columnalign="left">
<mml:mtd columnalign="left">
<mml:mrow/></mml:mtd>
<mml:mtd columnalign="left">
<mml:mo>=</mml:mo></mml:mtd>
<mml:mtd columnalign="left">
<mml:mrow>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>The sensor nodes does not have to broadcast the communication key. Therefore, average number of messages transmitted by sensor nodes in the initial deployment phase of LEAP+ becomes:
<disp-formula id="FD9">
<label>(9)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">Avg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Count</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Init</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">LEAP</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>r</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:math></disp-formula>Comparison of our scheme with MUQAMI+ and LEAP+ is given in <xref ref-type="table" rid="t5-sensors-10-03911-v2">Table 5</xref>, which indicates that our scheme BARI+ is more efficient as compared to other schemes. Nodes are added in the same way as they are initially deployed.</p>
<p>In BARI+, PS broadcasts one message to refresh communication key. Similarly, PS broadcasts one message in the network to refresh communication keyin LEAP+ too. Both in BARI+ and LEAP+, sensor nodes need not send any message to refresh communication key. In MUQAMI+, PS sends <italic>k</italic> + <italic>m</italic> messages to the key generating nodes, which in turn broadcast one message each. So, average number of messages transmitted by a sensor node for communication key refreshment is expressed as:
<disp-formula id="FD10">
<label>(10)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">Avg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Count</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Rekey</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Comm</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi></mml:mrow>
<mml:mi>r</mml:mi></mml:mfrac></mml:mrow></mml:math></disp-formula>Comparison of communication overhead for refreshment of communication keyis given in <xref ref-type="table" rid="t6-sensors-10-03911-v2">Table 6</xref>.</p>
<p>Refreshment of administrative key is also lightweight in our scheme. In order to refresh administrative key, each node sends one message in every schedule. If all nodes participate in administrative key refreshment, average number of messages sent by each node to refresh <italic>K<sub>admin</sub></italic> one time comes out to be 1/<italic>r</italic>. However, <italic>K<sub>admin</sub></italic> is also refreshed by <italic>K<sub>bsc</sub></italic>. If refreshed through <italic>K<sub>bsc</sub></italic>, PS sends two messages for the purpose. If <italic>K<sub>admin</sub></italic> is refreshed by <italic>K<sub>bsc</sub> y</italic> times in every key refreshment schedule, then average number of messages transmitted by PS for administrative key refreshment becomes:
<disp-formula id="FD11">
<label>(11)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">Avg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Count</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Rekey</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Admin</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">BARI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>2</mml:mn>
<mml:mo>×</mml:mo>
<mml:mi>y</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>r</mml:mi></mml:mfrac></mml:mrow></mml:math></disp-formula>In LEAP+, every node has to send one message to each of <italic>r</italic> other nodes in the network. In MUQAMI+, PS has to send <italic>k</italic> + <italic>m</italic> messages to key generating nodes and one message after every <italic>l</italic> key refreshments to get new seed values for key-chains. So, average number of messages transmitted by PS for refreshment of administrative key in MUQAMI+ becomes:
<disp-formula id="FD12">
<label>(12)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi mathvariant="italic">Avg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Count</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Rekey</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Admin</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">PS</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>Similarly, average number of messages transmitted by a sensor node for refreshment of administrative key in MUQAMI+ comes out to be:
<disp-formula id="FD13">
<label>(13)</label>
<mml:math id="mm21" display="block">
<mml:mrow>
<mml:mi mathvariant="italic">Avg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Msg</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Count</mml:mi>
<mml:mo>_</mml:mo>
<mml:mi mathvariant="italic">Rekey</mml:mi>
<mml:mo>_</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi mathvariant="italic">Admin</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">MUQAMI</mml:mi>
<mml:mo>+</mml:mo></mml:mrow></mml:msubsup>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mrow>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>k</mml:mi>
<mml:mo>+</mml:mo>
<mml:mi>m</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mi>r</mml:mi></mml:mfrac>
<mml:mo>×</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>+</mml:mo>
<mml:mo stretchy="false">(</mml:mo>
<mml:mn>1</mml:mn>
<mml:mo>/</mml:mo>
<mml:mi>l</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p><xref ref-type="table" rid="t7-sensors-10-03911-v2">Table 7</xref> compares our scheme BARI+ with MUQAMI+ and LEAP+ in administrative key refreshment phase.</p></sec>
<sec sec-type="methods">
<label>5.3.</label>
<title>Security Analysis</title>
<p>Establishing efficacy of a key management scheme for WBAN in different attack scenarios is as important as establishing its energy efficiency. In fact, a key management scheme is useless if it does not fulfill security requirements of the target network. This section analyzes security of our scheme from different perspectives. Also, analysis of protection against various attacks, applicable to WBAN domain, is included in this section. We refer to [<xref ref-type="bibr" rid="b32-sensors-10-03911-v2">32</xref>] for the list of attacks that can take place is WSN.</p>
<sec>
<label>5.3.1.</label>
<title>Authentication</title>
<p>In order to provide authentication, our scheme uses authentication codes in all communications. Also, it provides mechanisms to refresh them. In this way, all receiving nodes know origins of a message. If a message does not have a valid authentication code, it is discarded and malicious activity is indicated. If an illegitimate node sends a message, containing authentication code of a legitimate node, the legitimate node indicates this malicious activity.</p></sec>
<sec>
<label>5.3.2.</label>
<title>Confidentiality</title>
<p>All message exchanges are secured using secret keys. A passive adversary, listening to communications, can not comprehend messages unless it obtains secret keys. However, a passive adversary can carry out cryptanalytic attacks on secret keys. To avoid cryptanalytic attacks, keys are refreshed at regular intervals.</p></sec>
<sec sec-type="intro">
<label>5.3.3.</label>
<title>Forward Secrecy</title>
<p>It is important to maintain forward secrecy during key refreshment. In our scheme, <italic>K<sub>comm</sub></italic> is used for all data communication whereas only purpose of <italic>K<sub>admin</sub></italic> is to refresh <italic>K<sub>comm</sub></italic>. Therefore, we use <italic>K<sub>admin</sub></italic> to refresh itself for certain time period, which depends on required security level. After that, we use <italic>K<sub>bsc</sub></italic> to refresh <italic>K<sub>admin</sub></italic>. <italic>K<sub>bsc</sub></italic> is refreshed whenever it is used. Although, this does not provide complete forward secrecy, it does mitigate the problem to an acceptable level. Also, same level of forward secrecy is achieved by those key management schemes, with which our scheme is compared in this section.</p></sec>
<sec>
<label>5.3.4.</label>
<title>Replay Attacks</title>
<p>In replay attack, an adversary listens to communication, stores messages in its memory and transmits them again at a later time. For messages that are vulnerable to replay attack, our scheme makes use of timestamps. If a packet is replayed, it is ignored and malicious activity is in indicated. Timestamps are not used in all messages. For example, timestamps are not required for key refresh messages. If refresh message for <italic>K<sub>comm</sub></italic> is replayed, it only results in indication of malicious activity. If refresh message of <italic>K<sub>admin</sub></italic> is replayed, it does not have any meaning because <italic>K<sub>admin</sub></italic> has already been refreshed. It also results in indication of malicious activity.</p></sec>
<sec>
<label>5.3.5.</label>
<title>Node Compromise</title>
<p>Probability of node compromise is less in WBAN scenario as compared to WSN scenario. Despite that, key management scheme for WBAN must be able to guard against node compromise. In our scheme, PS uses <italic>K<sub>bsc</sub></italic> to send new values of <italic>K<sub>admin</sub></italic> to all sensor nodes except the compromised ones. After that, <italic>K<sub>admin</sub></italic> is used to refresh <italic>K<sub>comm</sub></italic>. If PS is compromised, new PS is deployed and <italic>K<sub>SN</sub></italic><sub>,</sub><italic><sub>MS</sub></italic> is used to verify the new PS and refresh <italic>K<sub>bsc</sub></italic>. After that, <italic>K<sub>admin</sub></italic> and <italic>K<sub>comm</sub></italic> are refreshed subsequently.</p></sec>
<sec>
<label>5.3.6.</label>
<title>Routing Attacks</title>
<p>In WBAN, PS is in direct communication range of many nodes. Nodes, which have very limited communication range, normally select one nearby node to relay their information to the PS. Therefore, WBAN is not much vulnerable to routing attacks such as <italic>selective forwarding</italic>, <italic>sinkhole</italic>, <italic>sybil</italic>, <italic>wormhole</italic> and attacks, in which routing information is spoofed, altered or replayed.</p></sec>
<sec>
<label>5.3.7.</label>
<title>Other Attacks</title>
<p>Other attacks include <italic>flooding</italic>, <italic>desynchronization</italic>, <italic>hello flood</italic> and <italic>acknowledgement spoofing</italic>. In <italic>flooding</italic>, an outsider node tries to carry out denial-of-service by establishing excessive useless connections with a node. In <italic>desynchronization</italic>, adversary tries to disrupt normal communication by repeated spoofing. In <italic>hello flood</italic> attack, adversary uses a high power radio transmitter to make every node believe that the adversary is its neighbour. It then floods the network with hello packets. In <italic>acknowledgement spoofing</italic>, adversary tries to spoof acknowledgement of a packet, which it overhears. Our scheme provides adequate protection against all these attacks because nodes in our scheme ignore all communication from stranger nodes except during initial deployment phase and node addition phase. Reliable authentication mechanism prevents outsider attacks in these two phases too.</p></sec></sec></sec>
<sec sec-type="results">
<label>6.</label>
<title>Simulation Results</title>
<p>In our simulations, assumed network architecture was similar to the one shown in <xref ref-type="fig" rid="f1-sensors-10-03911-v2">Figure 1</xref>. Our scheme BARI+ is compared with two other schemes MUQAMI+ [<xref ref-type="bibr" rid="b6-sensors-10-03911-v2">6</xref>] and LEAP+[<xref ref-type="bibr" rid="b4-sensors-10-03911-v2">4</xref>], which are state-of-the-art key management schemes for WSNs. MUQAMI+ uses EBS matrices and key-chains. EBS parameters <italic>k</italic> and <italic>m</italic> were assumed to be <italic>k</italic> = <italic>m</italic> = 4, so that ample key combinations are left for addition and replacement of nodes in the network. Also, key-chain length in MUQAMI+ was assumed to be 32 so that both storage and communication costs can be kept within practical limits. Number of sensor nodes was assumed to be 15 and key size was assumed to be 16 bytes in our simulations. Moreover, it was assumed that in BARI+, <italic>K<sub>admin</sub></italic> is refreshed through <italic>K<sub>bsc</sub></italic> every time a key refreshment schedule expires. Simulations were programmed in “Tools Command Language (tcl8.0)”, which is used to program ns-2 simulations.</p>
<p>Our scheme uses biometrics as keys and need not generate them but other schemes were not designed to take advantage of this property of WBANs. Therefore, cost of key generation is also included in our simulations. [<xref ref-type="bibr" rid="b33-sensors-10-03911-v2">33</xref>] states that an 8 MHz processor like ATMEGA128L CPU can generate 50,000 random bytes per minute. According to [<xref ref-type="bibr" rid="b33-sensors-10-03911-v2">33</xref>], generating a key or a seed value takes 19.2 ms on 8 MHz processor.</p>
<p>According to G. Xing <italic>et al</italic>. [<xref ref-type="bibr" rid="b34-sensors-10-03911-v2">34</xref>], range of data transmission of a sensor node is between −20 dBm and 10 dBm. In WBAN scenario, all nodes are nearby and the ones, participating in key management, are in communication range of each other. Therefore, only one power level was assumed for message transmission. In our simulations, transmission power level was assumed to be 0 dBm (1 mW). Power level during reception and computation phases was assumed to be −10 dBm (0.1 mW). Power level for computation phase was included because computation costs were included considered in our simulations. Usage of MICA2 motes, which have ATMEGA128L CPU as mentioned in [<xref ref-type="bibr" rid="b21-sensors-10-03911-v2">21</xref>], was assumed. Moreover, usage of SHA1 hashing scheme and RC5 cipher algorithm was assumed. According to [<xref ref-type="bibr" rid="b35-sensors-10-03911-v2">35</xref>], hashing for 16 bytes using SHA1 algorithm takes approximately 3.7 ms; both encryption and decryption for the same length of data using RC5 algorithm takes approximately 3.25 ms on ATMEGA128L CPU.</p>
<p>Apart from power levels, bandwidth of transmission link needs to be consideration. [<xref ref-type="bibr" rid="b21-sensors-10-03911-v2">21</xref>] suggests that the application level bandwidth in WSN is around 19.2 kbps whereas [<xref ref-type="bibr" rid="b34-sensors-10-03911-v2">34</xref>] suggests that it is around 6 kbps. In our simulations, application level bandwidth was assumed to be 19.2 kbps. Similar results were found when simulations, assuming application level bandwidth to be 6 kbps, were performed.</p>
<p>With the above set of simulation parameters, average energy consumed by PS and SN nodes during initial deployment phase, administrative key refreshment phase and communication key refreshment phase was recorded. For each phase, our simulations had more than 70 iterations. For MUQAMI+, weighted average of sensor nodes and key generating nodes was recorded as average energy consumed by SN nodes. Weights were set according to the number of number of key generating nodes in a network, <italic>i.e.</italic>, <italic>k</italic> + <italic>m</italic> = 8 in our case. Graphs are plotted on logarithmic scale because of large differences in readings of different schemes.</p>
<p><xref ref-type="fig" rid="f4-sensors-10-03911-v2">Figure 4</xref> compares the average energy consumed by a sensor node in each of the three schemes in all three phases. Our scheme proves to be more efficient than MUQAMI+ in all the three phases and better than LEAP+ in initial deployment and administrative key refreshment phase. We observe similar results when we compare the average energy consumption of a personal server in each of the three schemes in all three phases in <xref ref-type="fig" rid="f5-sensors-10-03911-v2">Figure 5</xref>. <xref ref-type="fig" rid="f6-sensors-10-03911-v2">Figure 6</xref> compares the average energy consumed by a node (taking into account sensor nodes and the personal server) in each of the three schemes in all three phases.</p></sec>
<sec sec-type="conclusions">
<label>7.</label>
<title>Conclusions and Future Work</title>
<p>This paper highlights differences between WSN and WBAN in terms of application characteristics and security requirements. It establishes that key management protocols for generic applications of WSN are overly complex for WBAN scenario and can not exploit the application characteristics of WBAN. After that, it presents BARI+, which is a key management scheme designed specifically for WBAN applications. Also, it provides analysis of our scheme and its comparison with other schemes.</p>
<p>Apart from attack prevention, it is also important to focus on attack detection in order to provide a complete security solution. Future direction of this research aims to focus on the detection of different types of attacks in WBAN.</p></sec></body>
<back>
<ack>
<p>This research was supported by the MKE (Ministry of Knowledge Economy), Korea, under the ITRC (Information Technology Research Center) support program supervised by the NIPA (National IT Industry Promotion Agency) (NIPA-2009-(C1090-0902-0002)). This work was also supported by KOSEF grant funded by the Korean government (MEST, No.2008-1342), and was supported by Basic Science Research Program funded by National Research Foundation (2009-0076798).</p></ack>
<ref-list>
<title>References</title>
<ref id="b1-sensors-10-03911-v2"><label>1.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Tilak</surname><given-names>S.</given-names></name><name><surname>Abu-Ghazaleh</surname><given-names>N.</given-names></name><name><surname>Heinzelman</surname><given-names>W.</given-names></name></person-group><article-title>A taxonomy of wireless microsensor network models</article-title><source>ACM Mobile Comput. Commun</source><year>2002</year><volume>6</volume><fpage>1</fpage><lpage>8</lpage></citation></ref>
<ref id="b2-sensors-10-03911-v2"><label>2.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Dierks</surname><given-names>T.</given-names></name><name><surname>Allen</surname><given-names>C.</given-names></name></person-group><source>The TLS Protocol Version 1.0</source><publisher-name>The Internet Society</publisher-name><publisher-loc>Reston, VA, USA</publisher-loc><month>January</month><year>1999</year><comment>RFC 2246.</comment></citation></ref>
<ref id="b3-sensors-10-03911-v2"><label>3.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Kohl</surname><given-names>J.</given-names></name><name><surname>Neuman</surname><given-names>C.</given-names></name></person-group><source>The Kerberos Network Authentication Service (V5)</source><publisher-name>The Internet Society</publisher-name><publisher-loc>Reston, VA, USA</publisher-loc><month>September</month><year>1993</year><comment>RFC 1510.</comment></citation></ref>
<ref id="b4-sensors-10-03911-v2"><label>4.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zhu</surname><given-names>S.</given-names></name><name><surname>Setia</surname><given-names>S.</given-names></name><name><surname>Jajodia</surname><given-names>S.</given-names></name></person-group><article-title>LEAP+: Efficient security mechanisms for large-scale distributed sensor networks</article-title><source>ACM Trans. Sen. Netw</source><year>2006</year><volume>2</volume><fpage>500</fpage><lpage>528</lpage><pub-id pub-id-type="doi">10.1145/1218556.1218559</pub-id></citation></ref>
<ref id="b5-sensors-10-03911-v2"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Younis</surname><given-names>M.F.</given-names></name><name><surname>Ghumman</surname><given-names>K.</given-names></name><name><surname>Eltoweissy</surname><given-names>M.</given-names></name></person-group><article-title>Location-aware combinatorial key management scheme for clustered sensor networks</article-title><source>IEEE Trans. Parallel Distrib. Syst</source><year>2006</year><volume>17</volume><fpage>865</fpage><lpage>882</lpage><pub-id pub-id-type="doi">10.1109/TPDS.2006.106</pub-id></citation></ref>
<ref id="b6-sensors-10-03911-v2"><label>6.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Raazi</surname><given-names>S.M.K.</given-names></name><name><surname>Lee</surname><given-names>H.</given-names></name><name><surname>Lee</surname><given-names>S.</given-names></name><name><surname>Lee</surname><given-names>Y.K.</given-names></name></person-group><article-title>MUQAMI+: A scalable and locally distributed key management scheme for clustered sensor networks</article-title><source>Annals Telecommun</source><year>2010</year><volume>65</volume><fpage>101</fpage><lpage>116</lpage><pub-id pub-id-type="doi">10.1007/s12243-009-0123-0</pub-id></citation></ref>
<ref id="b7-sensors-10-03911-v2"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Raazi</surname><given-names>S.M.K.</given-names></name><name><surname>Lee</surname><given-names>S.</given-names></name><name><surname>Lee</surname><given-names>Y.K.</given-names></name></person-group><article-title>TIMAR: An efficient key management scheme for ubiquitous health care environments</article-title><conf-name>Proceedings of the 5th International ICST Mobile Multimedia Communications Conference (Mobimedia’09)</conf-name><conf-loc>London, UK</conf-loc><conf-date>September 7–9, 2009</conf-date><fpage>1</fpage><lpage>7</lpage></citation></ref>
<ref id="b8-sensors-10-03911-v2"><label>8.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Otto</surname><given-names>C.</given-names></name><name><surname>Milenkovic</surname><given-names>A.</given-names></name><name><surname>Sanders</surname><given-names>C.</given-names></name><name><surname>Jovanov</surname><given-names>E.</given-names></name></person-group><article-title>System architecture of a wireless body area sensor network for ubiquitous health monitoring</article-title><source>J. Mob. Multimed</source><year>2006</year><volume>1</volume><fpage>307</fpage><lpage>326</lpage></citation></ref>
<ref id="b9-sensors-10-03911-v2"><label>9.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Szczepanski</surname><given-names>J.</given-names></name><name><surname>Wajnryb</surname><given-names>E.</given-names></name><name><surname>Amigó</surname><given-names>J.M.</given-names></name><name><surname>Sanchez-Vives</surname><given-names>M.V.</given-names></name><name><surname>Slater</surname><given-names>M.</given-names></name></person-group><article-title>Biometric random number generators</article-title><source>Comput. Secur</source><year>2004</year><volume>23</volume><fpage>77</fpage><lpage>84</lpage><pub-id pub-id-type="doi">10.1016/S0167-4048(04)00064-1</pub-id></citation></ref>
<ref id="b10-sensors-10-03911-v2"><label>10.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Poon</surname><given-names>C.</given-names></name><name><surname>Zhang</surname><given-names>Y.</given-names></name><name><surname>Bao</surname><given-names>S.</given-names></name></person-group><article-title>A novel biometrics method to secure wireless body area sensor networks for telemedicine and m-health</article-title><source>IEEE Commun. Mag</source><year>2006</year><volume>44</volume><fpage>73</fpage><lpage>81</lpage></citation></ref>
<ref id="b11-sensors-10-03911-v2"><label>11.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Cherukuri</surname><given-names>S.</given-names></name><name><surname>Venkatasubramanian</surname><given-names>K.K.</given-names></name><name><surname>Gupta</surname><given-names>E.K.S.</given-names></name></person-group><article-title>BioSec: A biometric based approach for securing communication</article-title><conf-name>Proceedings of Wireless Networks of Biosensors Implanted in the Human Body, Workshop on Wireless Security and Privacy (WiSPr), International Conference on Parallel Processing Workshops</conf-name><conf-loc>Kaohsiung, Taiwan</conf-loc><conf-date>October 6–9, 2003</conf-date></citation></ref>
<ref id="b12-sensors-10-03911-v2"><label>12.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Venkatasubramanian</surname><given-names>K.K.</given-names></name><name><surname>Gupta</surname><given-names>S.K.S.</given-names></name></person-group><article-title>Security for Pervasive Health Monitoring Sensor Applications</article-title><conf-name>Proceedings of the 4th International Conference on Intelligent Sensing and Information Processing (ICISIP’06)</conf-name><conf-loc>Kunming, Yunnan Province, China</conf-loc><conf-date>August 16–19, 2006</conf-date><fpage>197</fpage><lpage>202</lpage></citation></ref>
<ref id="b13-sensors-10-03911-v2"><label>13.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bui</surname><given-names>F.M.</given-names></name><name><surname>Hatzinakos</surname><given-names>D.</given-names></name></person-group><article-title>Biometric methods for secure communications in body sensor networks: resource-efficient key management and signal-level data scrambling</article-title><source>EURASIP J. Adv. Signal Process</source><year>2008</year><volume>2008</volume><pub-id pub-id-type="doi">10.1155/2008/529879</pub-id></citation></ref>
<ref id="b14-sensors-10-03911-v2"><label>14.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Falck</surname><given-names>T.</given-names></name><name><surname>Baldus</surname><given-names>H.</given-names></name><name><surname>Espina</surname><given-names>J.</given-names></name><name><surname>Klabunde</surname><given-names>K.</given-names></name></person-group><article-title>Plug ’n play simplicity for wireless medical body sensors</article-title><source>Mob. Netw. Appl</source><year>2007</year><volume>12</volume><fpage>143</fpage><lpage>153</lpage><pub-id pub-id-type="doi">10.1007/s11036-007-0016-2</pub-id></citation></ref>
<ref id="b15-sensors-10-03911-v2"><label>15.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Raazi</surname><given-names>S.M.K.</given-names></name><name><surname>Lee</surname><given-names>H.</given-names></name><name><surname>Lee</surname><given-names>S.</given-names></name><name><surname>Lee</surname><given-names>Y.K.</given-names></name></person-group><article-title>BARI: A distributed key management approach for wireless body area networks</article-title><source>CIS (2)</source><publisher-name>IEEE Computer Society</publisher-name><publisher-loc>Washington, DC, USA</publisher-loc><year>2009</year><fpage>324</fpage><lpage>329</lpage></citation></ref>
<ref id="b16-sensors-10-03911-v2"><label>16.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Li</surname><given-names>G.</given-names></name><name><surname>He</surname><given-names>J.</given-names></name><name><surname>Fu</surname><given-names>Y.</given-names></name></person-group><article-title>A hexagon-based key predistribution scheme in sensor networks</article-title><conf-name>Proceedings of the 2006 International Conference on Parallel Processing Workshops (ICPPW’06)</conf-name><conf-loc>Columbus, OH, USA</conf-loc><conf-date>August 14–18, 2006</conf-date><publisher-name>IEEE Computer Society</publisher-name><publisher-loc>Washington, DC, USA</publisher-loc><year>2006</year><fpage>175</fpage><lpage>180</lpage></citation></ref>
<ref id="b17-sensors-10-03911-v2"><label>17.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Chan</surname><given-names>H.</given-names></name><name><surname>Perrig</surname><given-names>A.</given-names></name><name><surname>Song</surname><given-names>D.</given-names></name></person-group><article-title>Random Key Predistribution Schemes for Sensor Networks</article-title><conf-name>Proceedings of the 2003 IEEE Symposium on Security and Privacy (SP’03)</conf-name><conf-loc>Berkeley, CA, USA</conf-loc><conf-date>May 11–14, 2003</conf-date><publisher-name>IEEE Computer Society</publisher-name><publisher-loc>Washington, DC, USA</publisher-loc><year>2003</year><fpage>197</fpage><lpage>213</lpage></citation></ref>
<ref id="b18-sensors-10-03911-v2"><label>18.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Du</surname><given-names>W.</given-names></name><name><surname>Deng</surname><given-names>J.</given-names></name><name><surname>Han</surname><given-names>Y.S.</given-names></name><name><surname>Varshney</surname><given-names>P.K.</given-names></name></person-group><article-title>A pairwise key pre-distribution scheme for wireless sensor networks</article-title><conf-name>Proceedings of the 10th ACM Conference on Computer and Communications Security (CCS’03)</conf-name><conf-loc>Washington, DC, USA</conf-loc><conf-date>October 27–30, 2003</conf-date><publisher-name>ACM</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2003</year><fpage>42</fpage><lpage>51</lpage></citation></ref>
<ref id="b19-sensors-10-03911-v2"><label>19.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Eschenauer</surname><given-names>L.</given-names></name><name><surname>Gligor</surname><given-names>V.D.</given-names></name></person-group><article-title>A key-management scheme for distributed sensor networks</article-title><conf-name>Proceedings of the 9th ACM Conference on Computer and Communications Security (CCS’02)</conf-name><conf-loc>Washington, DC, USA</conf-loc><conf-date>November 18–22, 2002</conf-date><publisher-name>ACM</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2002</year><fpage>41</fpage><lpage>47</lpage></citation></ref>
<ref id="b20-sensors-10-03911-v2"><label>20.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Çamtepe</surname><given-names>S.A.</given-names></name><name><surname>Yener</surname><given-names>B.</given-names></name></person-group><article-title>Combinatorial design of key distribution mechanisms for wireless sensor networks</article-title><source>IEEE/ACM Trans. Netw</source><year>2007</year><volume>15</volume><fpage>346</fpage><lpage>358</lpage><pub-id pub-id-type="doi">10.1109/TNET.2007.892879</pub-id></citation></ref>
<ref id="b21-sensors-10-03911-v2"><label>21.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Karlof</surname><given-names>C.</given-names></name><name><surname>Sastry</surname><given-names>N.</given-names></name><name><surname>Wagner</surname><given-names>D.</given-names></name></person-group><article-title>TinySec: A link layer security architecture for wireless sensor networks</article-title><conf-name>Proceedings of the 2nd International Conference on Embedded Networked Sensor Systems (SenSys’04)</conf-name><conf-loc>Baltimore, MD, USA</conf-loc><conf-date>November 3–5, 2004</conf-date><publisher-name>ACM</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2004</year><fpage>162</fpage><lpage>175</lpage></citation></ref>
<ref id="b22-sensors-10-03911-v2"><label>22.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Shaikh</surname><given-names>R.</given-names></name><name><surname>Lee</surname><given-names>S.</given-names></name><name><surname>Khan</surname><given-names>M.</given-names></name><name><surname>Song</surname><given-names>Y.</given-names></name></person-group><article-title>LSec: Lightweight security protocol for distributed wireless sensor networks</article-title><conf-name>Proceedings of the 11th IFIP International Conference on Personal Wireless Communications (PWC’06)</conf-name><conf-loc>Albacete, Spain</conf-loc><conf-date>September 20–22, 2006</conf-date><volume>4217</volume><fpage>367</fpage><lpage>377</lpage></citation></ref>
<ref id="b23-sensors-10-03911-v2"><label>23.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Paek</surname><given-names>K.J.</given-names></name><name><surname>Kim</surname><given-names>J.</given-names></name><name><surname>Hwang</surname><given-names>C.S.</given-names></name><name><surname>Song</surname><given-names>U.S.</given-names></name></person-group><article-title>An energy-efficient key management protocol for large-scale wireless sensor networks</article-title><conf-name>Proceedings of the 2007 International Conference on Multimedia and Ubiquitous Engineering (MUE’07)</conf-name><conf-loc>Seoul, Korea</conf-loc><conf-date>April 26–28, 2007</conf-date><publisher-name>IEEE Computer Society</publisher-name><publisher-loc>Washington, DC, USA</publisher-loc><year>2007</year><fpage>201</fpage><lpage>206</lpage></citation></ref>
<ref id="b24-sensors-10-03911-v2"><label>24.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Qiang</surname><given-names>H.</given-names></name><name><surname>Johnas</surname><given-names>C.</given-names></name><name><surname>Hisashi</surname><given-names>K.</given-names></name><name><surname>Bede</surname><given-names>L.</given-names></name><name><surname>Jinyun</surname><given-names>Z.</given-names></name></person-group><article-title>Fast authenticated key establishment protocols for self-organizing sensor networks</article-title><conf-name>Proceedings of the 2nd ACM International Conference on Wireless Sensor Networks and Applications (WSNA’03)</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>September 19, 2003</conf-date><publisher-name>ACM</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2003</year><fpage>141</fpage><lpage>150</lpage></citation></ref>
<ref id="b25-sensors-10-03911-v2"><label>25.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Kotzanikolaou</surname><given-names>P.</given-names></name><name><surname>Magkos</surname><given-names>E.</given-names></name><name><surname>Vergados</surname><given-names>D.</given-names></name><name><surname>Stefanidakis</surname><given-names>M.</given-names></name></person-group><article-title>Secure and practical key establishment for distributed sensor networks</article-title><source>Security and Communication Networks</source><publisher-name>Wiley-InterScience</publisher-name><publisher-loc>Malden, MA, USA</publisher-loc><year>2009</year></citation></ref>
<ref id="b26-sensors-10-03911-v2"><label>26.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Eltoweissy</surname><given-names>M.</given-names></name><name><surname>Heydari</surname><given-names>M.H.</given-names></name><name><surname>Morales</surname><given-names>L.</given-names></name><name><surname>Sudborough</surname><given-names>I.H.</given-names></name></person-group><article-title>Combinatorial optimization of group key management</article-title><source>J. Netw. Syst. Manage</source><year>2004</year><volume>12</volume><fpage>33</fpage><lpage>50</lpage><pub-id pub-id-type="doi">10.1023/B:JONS.0000015697.38671.ec</pub-id></citation></ref>
<ref id="b27-sensors-10-03911-v2"><label>27.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Dini</surname><given-names>G.</given-names></name><name><surname>Savino</surname><given-names>I.M.</given-names></name></person-group><article-title>An efficient key revocation protocol for wireless sensor networks</article-title><conf-name>Proceedings of the 2006 International Symposium on World of Wireless, Mobile and Multimedia Networks (WOWMOM’06)</conf-name><conf-loc>Buffalo, New York, NY, USA</conf-loc><conf-date>June 26–29, 2006</conf-date><publisher-name>IEEE Computer Society</publisher-name><publisher-loc>Washington, DC, USA</publisher-loc><year>2006</year><fpage>450</fpage><lpage>452</lpage></citation></ref>
<ref id="b28-sensors-10-03911-v2"><label>28.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lamport</surname><given-names>L.</given-names></name></person-group><article-title>Password authentication with insecure communication</article-title><source>Commun. ACM</source><year>1981</year><volume>24</volume><fpage>770</fpage><lpage>772</lpage><pub-id pub-id-type="doi">10.1145/358790.358797</pub-id></citation></ref>
<ref id="b29-sensors-10-03911-v2"><label>29.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Moharram</surname><given-names>R.</given-names></name><name><surname>Mukkamala</surname><given-names>R.</given-names></name><name><surname>Eltoweissy</surname><given-names>M.</given-names></name></person-group><article-title>TKGS: Threshold-based key generation scheme for wireless <italic>ad hoc</italic> networks</article-title><conf-name>Proceedings of IEEE International Conference on Computer Communication and Networking (ICCCN’04)</conf-name><conf-loc>Chicago, IL, USA</conf-loc><conf-date>October 2004</conf-date></citation></ref>
<ref id="b30-sensors-10-03911-v2"><label>30.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Venkatasubramanian</surname><given-names>K.</given-names></name><name><surname>Banerjee</surname><given-names>A.</given-names></name><name><surname>Gupta</surname><given-names>S.</given-names></name></person-group><article-title>Plethysmogram-based secure inter-sensor communication in Body Area Networks</article-title><conf-name>Proceedings of Military Communications Conference (MILCOM 2008)</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>November 17–19, 2008</conf-date><fpage>1</fpage><lpage>7</lpage></citation></ref>
<ref id="b31-sensors-10-03911-v2"><label>31.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Banerjee</surname><given-names>A.</given-names></name><name><surname>Venkatasubramanian</surname><given-names>K.</given-names></name><name><surname>Gupta</surname><given-names>S.K.S.</given-names></name></person-group><article-title>Challenges of implementing cyber-physical security solutions in body area networks</article-title><conf-name>Proceedings of the 4th International Conference on Body Area Networks (BodyNets’09)</conf-name><conf-loc>Getty Center, Los Angeles, CA, USA</conf-loc><conf-date>April 1–3, 2009</conf-date><publisher-name>ICST</publisher-name><publisher-loc>Brussels, Belgium</publisher-loc><year>2009</year><fpage>1</fpage><lpage>8</lpage></citation></ref>
<ref id="b32-sensors-10-03911-v2"><label>32.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Wang</surname><given-names>Y.</given-names></name><name><surname>Attebury</surname><given-names>G.</given-names></name><name><surname>Ramamurthy</surname><given-names>B.</given-names></name></person-group><article-title>A survey of security issues in wireless sensor networks</article-title><source>IEEE Commun. Surv. Tutor</source><year>2006</year><volume>8</volume><fpage>2</fpage><lpage>23</lpage></citation></ref>
<ref id="b33-sensors-10-03911-v2"><label>33.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Seetharam</surname><given-names>D.</given-names></name><name><surname>Rhee</surname><given-names>S.</given-names></name></person-group><article-title>An efficient pseudo random number generator for low-power sensor networks</article-title><conf-name>Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks (LCN’04)</conf-name><conf-loc>Tampa, FL, USA</conf-loc><conf-date>November 16–18, 2004</conf-date><publisher-name>IEEE Computer Society</publisher-name><publisher-loc>Washington, DC, USA</publisher-loc><year>2004</year><fpage>560</fpage><lpage>562</lpage></citation></ref>
<ref id="b34-sensors-10-03911-v2"><label>34.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Xing</surname><given-names>G.</given-names></name><name><surname>Lu</surname><given-names>C.</given-names></name><name><surname>Zhang</surname><given-names>Y.</given-names></name><name><surname>Huang</surname><given-names>Q.</given-names></name><name><surname>Pless</surname><given-names>R.</given-names></name></person-group><article-title>Minimum power configuration in wireless sensor networks</article-title><conf-name>Proceedings of the 6th ACM International Symposium on Mobile Ad Hoc Networking and Computing (MobiHoc’05)</conf-name><conf-loc>Urbana-Champaign, IL, USA</conf-loc><conf-date>May 25–27, 2005</conf-date><publisher-name>ACM</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2005</year><fpage>390</fpage><lpage>401</lpage></citation></ref>
<ref id="b35-sensors-10-03911-v2"><label>35.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Venugopalan</surname><given-names>R.</given-names></name><name><surname>Ganesan</surname><given-names>P.</given-names></name><name><surname>Peddabachagari</surname><given-names>P.</given-names></name><name><surname>Dean</surname><given-names>A.</given-names></name><name><surname>Mueller</surname><given-names>F.</given-names></name><name><surname>Sichitiu</surname><given-names>M.</given-names></name></person-group><article-title>Encryption overhead in embedded systems and sensor network nodes: modeling and analysis</article-title><conf-name>Proceedings of the 2003 International Conference on Compilers, Architecture and Synthesis for Embedded Systems (CASES’03)</conf-name><conf-loc>San Jose, CA, USA</conf-loc><conf-date>October 30–November 1, 2003</conf-date><publisher-name>ACM</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2003</year><fpage>188</fpage><lpage>197</lpage></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-10-03911-v2" position="float">
<label>Figure 1.</label>
<caption>
<p>System architecture of wireless body area networks.</p></caption>
<graphic xlink:href="sensors-10-03911-v2f1.gif"/></fig>
<fig id="f2-sensors-10-03911-v2" position="float">
<label>Figure 2.</label>
<caption>
<p>Example of a key management schedule with <italic>n</italic> slots.</p></caption>
<graphic xlink:href="sensors-10-03911-v2f2.gif"/></fig>
<fig id="f3-sensors-10-03911-v2" position="float">
<label>Figure 3.</label>
<caption>
<p>Flowchart of our proposed scheme.</p></caption>
<graphic xlink:href="sensors-10-03911-v2f3.gif"/></fig>
<fig id="f4-sensors-10-03911-v2" position="float">
<label>Figure 4.</label>
<caption>
<p>Comparison of Average Energy Consumed by a Sensor Node in different phases of each scheme.</p></caption>
<graphic xlink:href="sensors-10-03911-v2f4.gif"/></fig>
<fig id="f5-sensors-10-03911-v2" position="float">
<label>Figure 5.</label>
<caption>
<p>Comparison of average energy consumed by a personal server in different phases of each scheme.</p></caption>
<graphic xlink:href="sensors-10-03911-v2f5.gif"/></fig>
<fig id="f6-sensors-10-03911-v2" position="float">
<label>Figure 6.</label>
<caption>
<p>Comparison of average energy consumed by a node (including sensor nodes and the personal server) in different phases of each scheme.</p></caption>
<graphic xlink:href="sensors-10-03911-v2f6.gif"/></fig>
<table-wrap id="t1-sensors-10-03911-v2" position="float">
<label>Table 1.</label>
<caption>
<p>Differences between WBAN and WSN.</p></caption>
<table frame="hsides" rules="all">
<thead>
<tr>
<th align="left" valign="middle"/>
<th align="center" valign="middle"><bold>WBAN</bold></th>
<th align="center" valign="middle"><bold>WSN</bold></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top"><bold>Scale</bold></td>
<td align="left" valign="top">Small scale (Number of nodes may not exceed 20)</td>
<td align="left" valign="top">Large scale (Number of nodes may exceed even 1,000)</td></tr>
<tr>
<td align="left" valign="top"><bold>Size of Operational Area</bold></td>
<td align="left" valign="top">Very small (Size of human body). All nodes may be in communication range of each other</td>
<td align="left" valign="top">Spans area like battlefields or natural habitat large</td></tr>
<tr>
<td align="left" valign="top"><bold>Human Intervention</bold></td>
<td align="left" valign="top">Possible rather inevitable in some cases</td>
<td align="left" valign="top">Not possible in most cases</td></tr>
<tr>
<td align="left" valign="top"><bold>Key Management Support from application</bold></td>
<td align="left" valign="top">Yes, Sensor nodes need not generate random numbers</td>
<td align="left" valign="top">No</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-10-03911-v2" position="float">
<label>Table 2.</label>
<caption>
<p>Differences between the security requirements of WBAN and WSN.</p></caption>
<table frame="hsides" rules="cols">
<thead>
<tr>
<th align="left" valign="top"/>
<th align="left" valign="top"><bold>WBAN</bold></th>
<th align="left" valign="top"><bold>WSN</bold></th></tr>
<tr>
<th colspan="3" align="left" valign="top">
<hr/></th></tr></thead>
<tbody>
<tr>
<td align="left" valign="top"><bold>Message Integrity</bold></td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td></tr>
<tr>
<td align="left" valign="top"><bold>Node Authentication</bold></td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td></tr>
<tr>
<td align="left" valign="top"><bold>Prevention from Eavesdropping</bold></td>
<td align="left" valign="top">Required</td>
<td align="left" valign="top">Required</td></tr>
<tr>
<td align="left" valign="top"><bold>Node eviction through software</bold></td>
<td align="left" valign="top">Not necessary</td>
<td align="left" valign="top">Required</td></tr>
<tr>
<td align="left" valign="top"><bold>Strategies to prevent routing attacks</bold></td>
<td align="left" valign="top">Not required</td>
<td align="left" valign="top">Required</td></tr>
<tr>
<td align="left" valign="top"><bold>Prevention of attack propagation</bold></td>
<td align="left" valign="top">Not required</td>
<td align="left" valign="top">Required</td></tr></tbody></table></table-wrap>
<table-wrap id="t3-sensors-10-03911-v2" position="float">
<label>Table 3.</label>
<caption>
<p>List of Used Notations.</p></caption>
<table frame="hsides" rules="none">
<tbody>
<tr>
<td align="left" valign="top"><italic>WSN</italic></td>
<td align="left" valign="top"><bold>Wireless Sensor Network</bold></td></tr>
<tr>
<td align="left" valign="top"><italic>WBAN</italic></td>
<td align="left" valign="top"><bold>Wireless Body Area Network</bold></td></tr>
<tr>
<td align="left" valign="top"><italic>MS</italic></td>
<td align="left" valign="top"><bold>Medical Server</bold></td></tr>
<tr>
<td align="left" valign="top"><italic>PS</italic></td>
<td align="left" valign="top"><bold>Personal Server</bold></td></tr>
<tr>
<td align="left" valign="top"><italic>SN<sup>i</sup></italic></td>
<td align="left" valign="top"><bold>Sensor Node i</bold></td></tr>
<tr>
<td align="left" valign="top">
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">SN</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi mathvariant="italic">MS</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top"><bold>Key shared between Node</bold> <italic>i</italic> <bold>and the MS. It is preloaded in every node and refreshed whenever it is used</bold></td></tr>
<tr>
<td align="left" valign="top">
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">bsc</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top"><bold>Basic Key of Node</bold> <italic>i</italic> <bold>shared with the PS. It is preloaded in every node and is refreshed whenever it is used</bold></td></tr>
<tr>
<td align="left" valign="top"><italic>K<sub>comm</sub></italic></td>
<td align="left" valign="top"><bold>Communication Key</bold></td></tr>
<tr>
<td align="left" valign="top">
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>K</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">admin</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="top"><bold>Administrative Key</bold> <italic>i</italic></td></tr>
<tr>
<td align="left" valign="top"><italic>mi</italic></td>
<td align="left" valign="top"><bold>Message number</bold> <italic>i</italic> <bold>in a particular communication sequence</bold></td></tr>
<tr>
<td align="left" valign="top"><italic>E<sub>K</sub></italic>{<italic>A</italic>|<italic>B</italic>}</td>
<td align="left" valign="top"><bold>Values A and B are put together in a block/chunk and then the chunk is encrypted using Key</bold> <italic>K</italic></td></tr></tbody></table></table-wrap>
<table-wrap id="t4-sensors-10-03911-v2" position="float">
<label>Table 4.</label>
<caption>
<p>Storage requirements (in bytes) of each type of node in all three schemes.</p></caption>
<table frame="hsides" rules="all">
<thead>
<tr>
<th align="left" valign="middle"/>
<th align="center" valign="middle"><bold>Personal Server</bold></th>
<th align="center" valign="middle"><bold>Sensor Node</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><bold>MUQAMI+</bold></td>
<td align="center" valign="top">{<italic>z</italic> × {[<italic>l</italic> × (<italic>k</italic> + <italic>m</italic>)] + <italic>r</italic> − (<italic>k</italic> + <italic>m</italic>) + 2}} + (4 × <italic>r</italic>)</td>
<td align="center" valign="top">(<italic>z</italic> × ((<italic>k</italic> + 4) + [(2 × (<italic>l</italic> − 1) <italic>×</italic> (<italic>k</italic> + <italic>m</italic>))<italic>/r</italic>]))</td></tr>
<tr>
<td align="center" valign="top"><bold>LEAP+</bold></td>
<td align="center" valign="top"><italic>z</italic> × (<italic>r</italic> + 2)</td>
<td align="center" valign="top"><italic>z</italic> × (<italic>r</italic> + 2)</td></tr>
<tr>
<td align="center" valign="top"><bold>BARI+</bold></td>
<td align="center" valign="top">[(<italic>r</italic> + 2) × <italic>z</italic>] + (4 × <italic>r</italic>)</td>
<td align="center" valign="top">(4 × <italic>z</italic>) + 4</td></tr></tbody></table></table-wrap>
<table-wrap id="t5-sensors-10-03911-v2" position="float">
<label>Table 5.</label>
<caption>
<p>Average number of messages transmitted by each type of node in initial deployment phase of all three schemes.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle"/>
<th align="center" valign="middle"><bold>Personal Server</bold></th>
<th align="center" valign="middle"><bold>Sensor Node</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><bold>MUQAMI+</bold></td>
<td align="center" valign="top"><italic>r</italic></td>
<td align="center" valign="top">1</td></tr>
<tr>
<td align="center" valign="top"><bold>LEAP+</bold></td>
<td align="center" valign="top">2 × (<italic>r</italic> + 1)</td>
<td align="center" valign="top">2 × <italic>r</italic> + 1</td></tr>
<tr>
<td align="center" valign="top"><bold>BARI+</bold></td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">1</td></tr></tbody></table></table-wrap>
<table-wrap id="t6-sensors-10-03911-v2" position="float">
<label>Table 6.</label>
<caption>
<p>Average number of messages transmitted by each type of node when communication key is refreshed in all three schemes.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle"/>
<th align="center" valign="middle"><bold>Personal Server</bold></th>
<th align="center" valign="middle"><bold>Sensor Node</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="top"><bold>MUQAMI+</bold></td>
<td align="center" valign="top"><italic>k</italic> + <italic>m</italic></td>
<td align="center" valign="top">(<italic>k</italic> + <italic>m</italic>)<italic>/r</italic></td></tr>
<tr>
<td align="center" valign="top"><bold>LEAP+</bold></td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">−</td></tr>
<tr>
<td align="center" valign="top"><bold>BARI+</bold></td>
<td align="center" valign="top">1</td>
<td align="center" valign="top">−</td></tr></tbody></table></table-wrap>
<table-wrap id="t7-sensors-10-03911-v2" position="float">
<label>Table 7.</label>
<caption>
<p>Average number of messages transmitted by each type of node when administrative key is refreshed in all three schemes.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" valign="middle"/>
<th align="center" valign="middle"><bold>Personal Server</bold></th>
<th align="center" valign="middle"><bold>Sensor Node</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="middle"><bold>MUQAMI+</bold></td>
<td align="center" valign="middle">(<italic>k</italic> + <italic>m</italic>) × (1 + (1<italic>/l</italic>))</td>
<td align="center" valign="middle">((<italic>k</italic> + <italic>m</italic>)<italic>/r</italic>) × (1 + (1<italic>/l</italic>))</td></tr>
<tr>
<td align="center" valign="middle"><bold>LEAP+</bold></td>
<td align="center" valign="middle"><italic>r</italic></td>
<td align="center" valign="middle"><italic>r</italic></td></tr>
<tr>
<td align="center" valign="middle"><bold>BARI+</bold></td>
<td align="center" valign="middle">((2 × <italic>y</italic>) + 1)<italic>/r</italic></td>
<td align="center" valign="middle">1<italic>/r</italic></td></tr></tbody></table></table-wrap></sec></back></article>
