<?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/s100908683</article-id>
<article-id pub-id-type="publisher-id">sensors-10-08683</article-id>
<article-categories>
<subj-group>
<subject>Article</subject></subj-group></article-categories>
<title-group>
<article-title>Broadcast Authentication for Wireless Sensor Networks Using Nested Hashing and the Chinese Remainder Theorem</article-title></title-group>
<contrib-group>
<contrib contrib-type="author">
<name><surname>Eldefrawy</surname><given-names>Mohamed Hamdy</given-names></name><xref ref-type="aff" rid="af1-sensors-10-08683"><sup>1</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Khan</surname><given-names>Muhammad Khurram</given-names></name><xref ref-type="aff" rid="af1-sensors-10-08683"><sup>1</sup></xref><xref ref-type="corresp" rid="c1-sensors-10-08683"><sup>*</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Alghathbar</surname><given-names>Khaled</given-names></name><xref ref-type="aff" rid="af1-sensors-10-08683"><sup>1</sup></xref><xref ref-type="aff" rid="af2-sensors-10-08683"><sup>2</sup></xref></contrib>
<contrib contrib-type="author">
<name><surname>Cho</surname><given-names>Eun-Suk</given-names></name><xref ref-type="aff" rid="af3-sensors-10-08683"><sup>3</sup></xref></contrib></contrib-group>
<aff id="af1-sensors-10-08683">
<label>1</label> Center of Excellence in Information Assurance (CoEIA), King Saud University, PO Box 92144, Riyadh 11653, Saudi Arabia; E-Mails: <email>meldefrawy@ksu.edu.sa</email> (M.H.E.); <email>kalghathbar@ksu.edu.sa</email> (K.A.)</aff>
<aff id="af2-sensors-10-08683">
<label>2</label> Information Systems Department, College of Computer and Information Sciences, King Saud University, Saudi Arabia</aff>
<aff id="af3-sensors-10-08683">
<label>3</label> Department of Multimedia, Hannam University, 133 Ojeong-dong, Daedeok-gu, Daejeon 306-791, Korea; E-Mail: <email>eunsukk@empal.com</email> (E.S.C.)</aff>
<author-notes>
<corresp id="c1-sensors-10-08683">
<label>*</label>Author to whom correspondence should be addressed; E-Mail: <email>mkhurram@ksu.edu.sa</email>; Tel.: +966-1-4696457.</corresp></author-notes>
<pub-date pub-type="collection">
<year>2010</year></pub-date>
<pub-date pub-type="epub">
<day>17</day>
<month>9</month>
<year>2010</year></pub-date>
<volume>10</volume>
<issue>9</issue>
<fpage>8683</fpage>
<lpage>8695</lpage>
<history>
<date date-type="received">
<day>23</day>
<month>7</month>
<year>2010</year></date>
<date date-type="rev-recd">
<day>23</day>
<month>8</month>
<year>2010</year></date>
<date date-type="accepted">
<day>6</day>
<month>9</month>
<year>2010</year></date></history>
<permissions>
<copyright-statement>© 2010 by the authors; licensee MDPI, 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 (http://creativecommons.org/licenses/by/3.0/).</p></license></permissions>
<abstract>
<p>Secure broadcasting is an essential feature for critical operations in wireless sensor network (WSNs). However, due to the limited resources of sensor networks, verifying the authenticity for broadcasted messages is a very difficult issue. μTESLA is a broadcast authentication protocol, which uses network-wide loose time synchronization with one-way hashed keys to provide the authenticity verification. However, it suffers from several flaws considering the delay tolerance, and the chain length restriction. In this paper, we propose a protocol which provides broadcast authentication for wireless sensor networks. This protocol uses a nested hash chain of two different hash functions and the Chinese Remainder Theorem (CRT). The two different nested hash functions are employed for the seed updating and the key generation. Each sensor node is challenged independently with a common broadcasting message using the CRT. Our algorithm provides forward and non-restricted key generation, and in addition, no time synchronization is required. Furthermore, receivers can instantly authenticate packets in real time. Moreover, the comprehensive analysis shows that this scheme is efficient and practical, and can achieve better performance than the μTESLA system.</p></abstract>
<kwd-group>
<kwd>wireless sensor network</kwd>
<kwd>authenticated broadcast</kwd>
<kwd>nested hashing chains</kwd>
<kwd>Chinese Remainder Theorem</kwd></kwd-group></article-meta></front>
<body>
<sec sec-type="intro">
<label>1.</label>
<title>Introduction</title>
<p>Achieving broadcast security is a must for wireless sensor networks; hence it is necessary for the base station to broadcast commands and data to sensor nodes. Without secure communication, sensors may be involved in incorrect operations and can’t meet the network requirements. The current security solutions for wired and wireless networks cannot be utilized for a wireless sensor network because of the energy, memory and computation restrictions of the latter. These limitations make the design and operation completely dissimilar to those of regular wireless networks. Broadcast authentication based on asymmetric key cryptography cannot deal with the limited resource constrains. Symmetric key cryptography and hash functions are cheaper in their computational requirements and are more widely utilized in sensor networks [<xref ref-type="bibr" rid="b1-sensors-10-08683">1</xref>,<xref ref-type="bibr" rid="b2-sensors-10-08683">2</xref>]. WSNs’ broadcast authentication was first covered by TESLA [<xref ref-type="bibr" rid="b3-sensors-10-08683">3</xref>], and μTESLA [<xref ref-type="bibr" rid="b4-sensors-10-08683">4</xref>] that provides the asymmetric cryptographic property of authenticated broadcast through delayed disclosing (time-varying) of symmetric keys. The base-station installs a key chain by repeatedly applying a one way hash function (OWHF) to an initial random value, called seed. The chain construction allows nodes to verify the authenticity of the disclosed keys. Loosely time synchronized and MAC (Message Authentication Code) generations are required. Revelation of session keys by the base-station is delayed, thus allowing nodes to verify the key validity.</p>
<p>Multilevel μTESLA [<xref ref-type="bibr" rid="b5-sensors-10-08683">5</xref>] is proposed to reduce the need to reinitialize the network by implementing multiple levels of key chains, in which high-level keys are used to communicate root-keys (or commitments) for low-level chains, which are used in turn for broadcast authentication as in standard μTESLA. Network lifetime is extended. Significant computation and storage are required. Receivers can’t deal with the received messages instantly and have to store them within one or several time intervals. Considering the broadcasting of urgent messages like alerts and alarms; the TESLA family has great shortcomings in dealing with such matters. Furthermore, the delayed authentication can be subject to Denial-of-Services (DoS) attacks. Merkle tree utilization [<xref ref-type="bibr" rid="b6-sensors-10-08683">6</xref>] was introduced to overcome this shortage in bandwidth and storage resources utilization. TIK [<xref ref-type="bibr" rid="b7-sensors-10-08683">7</xref>] was proposed to achieve immediate authentication based on sensitive time synchronization between the sink and the receiving nodes. However, this technique is not suitable for WSNs, as mentioned by its inventors. Sensor nodes have a limited battery life, which can make using asymmetric key techniques impractical as they use much more energy for their mathematical calculations. We propose a new algorithm that uses two different types of hash functions, which come with a nested chain and the Chinese Reminder Theorem in order to get a common broadcasting message. The resulting chain provides the forwardness and the infiniteness, and no process restarting is required. The proposed protocol is compared with others in terms of its computational cost and security attributes.</p>
<p>The rest of this paper is organized as follows: Section 2 discusses the related work, Section 3 discuses the required attributes, Section 4 proposes our new algorithm, Section 5 evaluates our scheme’s performance, Section 6 analyzes the security attributes, and finally Section 7 concludes the paper.</p></sec>
<sec>
<label>2.</label>
<title>Related Work</title>
<p>The following subsection discuses some of the schemes related to WSN authentication broadcasting. Their efficiency and shortcomings according to the desirable security attributes that will be discussed will also be illustrated.</p>
<sec>
<label>2.1.</label>
<title>Lamport’s Scheme</title>
<p>Hash chains were first proposed by Lamport [<xref ref-type="bibr" rid="b8-sensors-10-08683">8</xref>]. They involve applying a hash function <italic>h</italic>(·) <italic>N</italic> times to a seed (<italic>s</italic>) to form a hash chain of length <italic>N</italic>:
<disp-formula id="FD1">
<label>(1)</label>
<mml:math display="block">
<mml:mrow>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:mo>…</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>,</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>N</mml:mi></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>The user calculates the <italic>i</italic>-th key according to this relation:
<disp-formula id="FD2">
<label>(2)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>i</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula></p>
<p>The host authenticates the user by checking that the following equality holds:
<disp-formula id="FD3">
<label>(3)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>h</mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mi>t</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>i</mml:mi>
<mml:mo>+</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>where the value <italic>h</italic><sup><italic>N</italic>−<italic>i</italic>+1</sup>(<italic>s</italic>) is already saved in the host system’s file from the previous <italic>i</italic>-th authentication. After any successful authentication, the system password file is updated with the new key. This scheme has a limitation on the number of authentications, so that after reaching <italic>N</italic> authentications, a process restart is required. In addition, it is vulnerable to an opponent who sends small challenge values to users that respond with the chain initial values [<xref ref-type="bibr" rid="b9-sensors-10-08683">9</xref>]. This attack can be referred to as a small challenge attack. Also, the users are charged with computational processes through the initialization phase, which makes the system unsuitable for WSNs.</p></sec>
<sec>
<label>2.2.</label>
<title>Bicakci et al.’s Scheme</title>
<p>The infinite length hash chains (ILHC) proposed by [<xref ref-type="bibr" rid="b10-sensors-10-08683">10</xref>] use a public-key algorithm, <italic>A</italic>, to produce a forward and infinite one way function (OWF). Bicakci <italic>et al</italic>. utilized RSA [<xref ref-type="bibr" rid="b11-sensors-10-08683">11</xref>], where d is the private key and e is the public key. The OTP originating from initial input “<italic>s</italic>” using the RSA public-key algorithm for the <italic>i</italic>-th authentication is:
<disp-formula id="FD4">
<label>(4)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:msup>
<mml:mrow>
<mml:mi>A</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo>,</mml:mo>
<mml:mi>d</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>and the verification of the <italic>i</italic>-th key is done by:
<disp-formula id="FD5">
<label>(5)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msub>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo>
<mml:mo>=</mml:mo>
<mml:mi>A</mml:mi>
<mml:mi>   </mml:mi>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mi>k</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:mi>e</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></disp-formula>increasing the number of cascaded exponentiations increases the computational complexity, making this algorithm very difficult to implement in limited computation devices [<xref ref-type="bibr" rid="b12-sensors-10-08683">12</xref>].</p></sec>
<sec>
<label>2.3.</label>
<title>Chinese Remainder Theorem (CRT)</title>
<p>If the integers <italic>n</italic><sub>1</sub>, <italic>n</italic><sub>2</sub>,…,<italic>n</italic><italic><sub>k</sub></italic> are pair-wise relatively prime, then the system of simultaneous congruence:
<disp-formula id="FD6">
<label>(6)</label>
<mml:math display="block">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>⋮</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mi>k</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>k</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula>has a unique solution: 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mi>x</mml:mi>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∑</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>k</mml:mi></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:msubsup>
<mml:mrow>
<mml:mi>N</mml:mi></mml:mrow>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:mi>N</mml:mi></mml:mrow></mml:mrow></mml:math></inline-formula> where;
<disp-formula id="FD7">
<label>(7)</label>
<mml:math display="block">
<mml:mrow>
<mml:mi>N</mml:mi>
<mml:mo>=</mml:mo>
<mml:munderover>
<mml:mo>∏</mml:mo>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>=</mml:mo>
<mml:mn>1</mml:mn></mml:mrow>
<mml:mi>k</mml:mi></mml:munderover>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD8">
<label>(8)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mfrac>
<mml:mi>N</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>
<disp-formula id="FD9">
<label>(9)</label>
<mml:math display="block">
<mml:mrow>
<mml:msubsup>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi>
<mml:mrow>
<mml:mo>−</mml:mo>
<mml:mn>1</mml:mn></mml:mrow></mml:msubsup>
<mml:msub>
<mml:mi>N</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>≡</mml:mo>
<mml:mn>1</mml:mn>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula></p></sec>
<sec>
<label>2.4.</label>
<title>TESLA Family Broadcast Authentication</title>
<p>Timed Efficient Stream Loss-tolerant Authentication (TESLA) [<xref ref-type="bibr" rid="b3-sensors-10-08683">3</xref>] is a multicast stream authentication protocol. Keys used to authenticate the <italic>i</italic>-th message is disclosed along with <italic>(i + 1)</italic>-th message. μTESLA [<xref ref-type="bibr" rid="b4-sensors-10-08683">4</xref>] provides authentication for data broadcasts, and requires that base station and sensor nodes be loosely time synchronized. According to Lamport’s scheme, a base station (BS) randomly selects the last key <italic>k<sub>n</sub></italic>, the chain seed, and applies a one-way public function <italic>h</italic>(·) to generate the rest of keys: <italic>k</italic><sub>0</sub>, <italic>k</italic><sub>1</sub>,..., <italic>k<sub>n</sub></italic><sub>−1</sub> as <italic>k<sub>i</sub></italic> = <italic>h</italic>(<italic>k<sub>i</sub></italic><sub>+1</sub>). Given <italic>k<sub>i</sub></italic>, every sensor node can generate the sequence <italic>k</italic><sub>0</sub>, <italic>k</italic><sub>1</sub>, ..., <italic>k<sub>n</sub></italic><sub>−1</sub>. However, given <italic>k<sub>i</sub></italic>, no one can generate <italic>k<sub>i</sub></italic><sub>+1</sub>. At <italic>i</italic>-th time slot, BS sends an authenticated message <italic>MAC<sub>k<sub>i</sub></sub></italic> (<italic>message</italic>). Sensor nodes store the message till the verification key in the <italic>(i + 1)</italic>-th time slot is disclosed. Sensor nodes verify disclosed key <italic>k<sub>i</sub></italic><sub>+1</sub> by using key <italic>k<sub>i</sub></italic> as <italic>k<sub>i</sub></italic> = <italic>h</italic>(<italic>k<sub>i</sub></italic><sub>+1</sub>). In μTESLA, nodes are required to store a message until the authentication key is disclosed. This operation may create storage problems, and encourages DoS types of attacks.</p>
<p>μTESLA has been expanded to Multi-level μTESLA [<xref ref-type="bibr" rid="b4-sensors-10-08683">4</xref>] by simplifying the key distribution phase and introducing a new concept of a multi-level key chain generation using pseudo-random functions that improves the protocol efficiency. Multi-level μTESLA reduces the need to reinitialize the network (although re-initialization is still required) by implementing multiple levels of key chains, in which high-level keys are used to communicate root-keys (or commitments) for low-level chains which are used in turn for broadcast authentication as in standard μTESLA. The chains are further connected in that each root-key is derived from the corresponding high-level chain using another pseudo-random function. Network lifetime is extended many times over, but it is still limited. A problem would result if a receiver dropped a related commitment distribution message initializing a new low-level chain; it would be unable to verify any broadcast data received during this entire lifetime of the chain itself. The data would still be verifiable eventually as the receiver could use any later commitment distribution message to reconstruct all the lost high-level keys and the corresponding chains. This would require significant computation and storage.</p></sec>
<sec>
<label>2.5.</label>
<title>CRTBA Broadcast Authentication</title>
<p>The scheme proposed in [<xref ref-type="bibr" rid="b13-sensors-10-08683">13</xref>] is divided into three phases: Distribution, Message Signing, and finally Message Authentication phase. Before deployment all nodes are loaded with the chain seed, <italic>k<sub>n</sub></italic>, the OWHF <italic>h</italic>(·), and two different modules values, <italic>n<sub>A</sub></italic> and <italic>n<sub>B</sub></italic> for the CRT. When the BS needs to broadcast a message <italic>m</italic> to sensor nodes for the <italic>i</italic>-th session, BS calculates the MAC of the message m using <italic>k<sub>i</sub></italic> to get <italic>M</italic> = <italic>MAC<sub>k<sub>i</sub></sub></italic> (<italic>m</italic>). After that BS cipher <italic>k<sub>i</sub></italic> and <italic>M</italic> using the two secrets values <italic>n<sub>A</sub></italic> and <italic>n<sub>B</sub></italic> through the CRT to get: <italic>U</italic> ≡ <italic>k<sub>i</sub></italic> mod <italic>n<sub>A</sub></italic> and <italic>U</italic> ≡ <italic>M</italic> mod <italic>n<sub>B</sub></italic>, then it broadcast <italic>U</italic>. Upon the occurrence of <italic>U</italic> reception by sensor nodes, they recover <italic>k<sub>i</sub></italic> from <italic>U</italic>, and then apply the OWHF <italic>h</italic>(·), to check 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub>
<mml:mover>
<mml:mo>=</mml:mo>
<mml:mo>?</mml:mo></mml:mover>
<mml:msup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi>i</mml:mi>
<mml:mo>−</mml:mo>
<mml:mi>j</mml:mi></mml:mrow></mml:msup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:math></inline-formula> where <italic>k<sub>j</sub></italic> is the last authentic key that sensor nodes have received. Finally, to verify the message integrity, the sensor nodes compute the corresponding MAC using <italic>k<sub>i</sub></italic> of the received message and then compare the result. Unfortunately, this scheme also has a length restriction considering the use of a backward hashing chain to generate keys.</p></sec></sec>
<sec>
<label>3.</label>
<title>Required Attributes</title>
<p>Here we list a number of desirable security attributes for authenticated broadcast:</p>
<sec sec-type="methods">
<label>3.1.</label>
<title>Data Integrity</title>
<p>Data integrity ensures that data has not been altered by unauthorized entities.</p></sec>
<sec sec-type="methods">
<label>3.2.</label>
<title>Data Origin Authentication</title>
<p>Data Origin Authentication guarantees the origin of data. It is a fundamental step in achieving entity authentication in protocols as well as establishing keys. We may say that data origin authentication implies data integrity. So it is not possible to achieve data integrity without data origin authentication.</p></sec>
<sec>
<label>3.3.</label>
<title>Freshness</title>
<p>Packets that have been captured and replayed at a later time should be ignored by the sensor nodes.</p></sec>
<sec>
<label>3.4.</label>
<title>Delay Tolerance</title>
<p>No time synchronization should be required in the system for data verification. Each packet must be verifiable without having to wait for additional data.</p></sec>
<sec>
<label>3.5.</label>
<title>Confidentiality</title>
<p>Confidentiality ensures that data is only available to those authorized to obtain it.</p></sec>
<sec>
<label>3.6.</label>
<title>Denial-of-Service Attack</title>
<p>The denial of service attack is an attempt to make a node resource unavailable to its intended users.</p></sec>
<sec>
<label>3.7.</label>
<title>Small Challenge Attack</title>
<p>This attack challenges the backward hashing with small values to respond with the chain initial values.</p></sec>
<sec>
<label>3.8.</label>
<title>Limitation for an N times Authentications</title>
<p>Process re-initialization after <italic>N</italic> of authentications is necessary.</p></sec></sec>
<sec>
<label>4.</label>
<title>Our Approach</title>
<p>The basic idea of our scheme is to expand Lamport’s scheme [<xref ref-type="bibr" rid="b8-sensors-10-08683">8</xref>] with some modifications that produce the desirable infiniteness and forwardness, avoiding the use of public key cryptography. The shortcoming of those two parameters, infiniteness and forwardness, causes the insufficiency shown with respect to the previous work.</p>
<p>Thus we need to integrate Lamport’s scheme using two different one way hash functions, <italic>h<sub>A</sub></italic>(·) and <italic>h<sub>B</sub></italic>(·), one for the seed chain and the other for the session key’s production, as shown in <xref ref-type="fig" rid="f1-sensors-10-08683">Figure 1</xref>.</p>
<sec>
<label>4.1.</label>
<title>Key Pre-loading Phase</title>
<p>Each node <italic>n<sub>j</sub></italic> is loaded with two unique CRT modules 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>. Those modules, regarding the all nodes, are relatively primes. Also all sensors are loaded with key seed〈<italic>s</italic>〉 and the two different hash functions, <italic>h<sub>A</sub></italic>(·) and <italic>h<sub>B</sub></italic>(·). From the other way the base station is loaded with all this information considering the all the CRT modules for all the network’s nodes, the key seed〈<italic>s</italic>〉, and the two different hash functions <italic>h<sub>A</sub></italic>(·) and <italic>h<sub>B</sub></italic>(·).</p></sec>
<sec>
<label>4.2.</label>
<title>Message Authentication</title>
<p>Before the broadcasting operation, BS has to do the following:
<list list-type="roman-lower">
<list-item>
<p>Calculate the session key 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> for the <italic>i</italic>-th authentication.</p></list-item>
<list-item>
<p>Encrypt the broadcasted message <italic>m</italic> concatenated with the session key <italic>k<sub>x<sub>i</sub>, y<sub>i</sub></sub></italic> with the session key to get <italic>U</italic> = <italic>E<sub>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></sub></italic> (<italic>m</italic>‖<italic>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></italic>)</p></list-item>
<list-item>
<p>Calculate the broadcasted chain indexes, <italic>X</italic>, for the all <italic>N</italic> nodes considering the CRT
<disp-formula id="FD10">
<label>(10)</label>
<mml:math display="block">
<mml:mrow>
<mml:mtable>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>2</mml:mn></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>⋮</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mo>⋮</mml:mo></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>N</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr>
<mml:mtr>
<mml:mtd>
<mml:mrow>
<mml:mi>X</mml:mi>
<mml:mo>≡</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>N</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:math></disp-formula></p></list-item></list></p>
<p>The BS constructs the broadcasted packet to be <italic>P<sub>i</sub></italic> = {<italic>E<sub>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></sub></italic> (<italic>m</italic>‖<italic>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></italic>)‖<italic>X</italic>} and then broadcast it to all sensors.</p></sec>
<sec>
<label>4.3.</label>
<title>Authentication Verification</title>
<p>Upon the reception of <italic>P<sub>i</sub></italic> by the all sensors, they will need to ensure that the broadcast packets come from the authenticated BS. The verification process is done as follows:
<list list-type="roman-lower">
<list-item>
<p>Each sensor node will extract <italic>X</italic> to perform the module operation to obtain the chain indexes, e.g., <italic>n</italic><sub>1</sub> will get 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mi>x</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>≡</mml:mo>
<mml:mi>X</mml:mi>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mi>y</mml:mi>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>≡</mml:mo>
<mml:mi>X</mml:mi>
<mml:mi> </mml:mi>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mn>1</mml:mn></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>After getting the chain indexes, they will perform the key generation according to these indexes by using the two different hash functions to get this 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>.</p></list-item>
<list-item>
<p>By decrypting D<italic><sub>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></sub></italic> (<italic>U</italic>), sensors will be able to get the message m and the session key <italic>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></italic>.</p></list-item>
<list-item>
<p>Then the sensor nodes need to compare the two sessions they have established and received, if the comparison is positive, then sensor nodes will recover the message. Otherwise the received broadcast message has been altered. The message integrity also checked implicitly through the authentication verification, that way tampering with <italic>U</italic> in a way of message modification will sequentially affect the received session key.</p></list-item>
<list-item>
<p>After the completion of one session, sensor nodes and BS have to update the current seed to the next one:
<disp-formula id="FD11">
<label>(11)</label>
<mml:math display="block">
<mml:mrow>
<mml:msub>
<mml:mi>s</mml:mi>
<mml:mi mathvariant="italic">nxt</mml:mi></mml:msub>
<mml:mo>=</mml:mo>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>s</mml:mi></mml:mrow>
<mml:mrow>
<mml:mi mathvariant="italic">crt</mml:mi></mml:mrow></mml:msub>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula></p></list-item></list></p></sec></sec>
<sec sec-type="methods">
<label>5.</label>
<title>Performance Analysis</title>
<p>In this section, we are going to analyze the performance of our algorithm with respect to the storage and computational cost [<xref ref-type="bibr" rid="b14-sensors-10-08683">14</xref>].</p>
<sec sec-type="methods">
<label>5.1.</label>
<title>Storage Analysis</title>
<p>The storage complexity is the amount of memory (RAM size) required to store security credentials. The storage complexity affects the hardware price of sensor nodes. Our proposal requires the base station to save two keys for each sensor nodes to build the conference <italic>X</italic>, two different hash functions <italic>h<sub>A</sub></italic>(·) and <italic>h<sub>B</sub></italic>(·), and one seed〈<italic>s</italic>.〉 This storage overhead is neglected to the base station, since the base station regarded as resource-rich node. In the other way, sensor node <italic>n<sub>j</sub></italic> has to store two privet keys 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mi>n</mml:mi>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mi>r</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>, and one seed 〈<italic>s</italic>〉, each one of them is 160-bit. This tells us that the memory required for credentials per module (RAM) is 160 × 3-bit = 480-bit = 60-bytes. Hash functions <italic>h<sub>A</sub></italic>(·) and <italic>h<sub>B</sub></italic>(·) are implemented, written in nesC code for TinyOS, in approximately 20 Kbyte of memory (ROM.)</p></sec>
<sec sec-type="methods">
<label>5.2.</label>
<title>Computation Analysis</title>
<p>Considering the computational complexity, base station has to build the congruent <xref ref-type="disp-formula" rid="FD10">equation (10)</xref> to reach the chain indexes for all sensors, <italic>X</italic>, also it has to perform two different hash operations to build the session key <italic>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></italic> this computation is affordable in the base station. Alternatively sensor nodes have to do two different modulo operation and to perform the same two different hash operations according to <italic>h<sub>A</sub></italic>(·) and <italic>h<sub>B</sub></italic>(·). This also is very easy to the sensor nodes. Rather than the previous techniques which use backward hash functions. Those previous techniques cost the sensor nodes to perform hashing operations for many times, especially through the chain initial values.</p>
<p><bold>Example:</bold> Considering the chain length to be N = 1,000 the number of required hash operation considering Lamport scheme will be. (N + 1) × (N/2) = 500,500. On the contrary the usage of nested hashing will require the sensors to perform 2<italic>N</italic> hash operations which are equal to 2,000, according to our illustration. This could show how the nested hashing using two different hash chains is very cheap, in a very simple way.</p>
<p>Now, we consider the required execution time for a sensor node to calculate the session key 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>. The utilization of the microprocessor Sparc(400) as the sensor nodes’ platform, will give us the following: the required time to digitize a plain text of size 80 bytes using MD5 will cost us a = 39 μs and also, the required time to digitize a plain text of size 64 bytes using SHA-1 will cost us b = 56 μs as shown in <xref ref-type="table" rid="t2-sensors-10-08683">Table 2</xref> [<xref ref-type="bibr" rid="b15-sensors-10-08683">15</xref>], such that the total time required to calculate the session key 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>k</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub>
<mml:mo>,</mml:mo>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msub>
<mml:mo>=</mml:mo>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is <italic>t<sub>exec</sub></italic> = <italic>a</italic>×<italic>x<sub>i</sub></italic> + <italic>b</italic>×<italic>y<sub>i</sub></italic>. Considering that the maximum values for <italic>x<sub>i</sub></italic> and <italic>y<sub>i</sub></italic> are <italic>w</italic> = 10, hence t<sub>exec</sub> = 10(56 + 39) = 0.95 ms. Note we have considered the worst case, hence we have considered the largest input plaintext for the both two hash algorithms, but in fact the plain text size will be no more than 160-bits = 20-bytes, rather than the 80 bytes or 64 bytes.</p>
<p>However, the time required for individual modulo operations 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:mtext>mod</mml:mtext>
<mml:mi> </mml:mi>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> for node <italic>n<sub>j</sub></italic> is tiny compared to the calculation of the two different hash operations.</p></sec></sec>
<sec sec-type="methods">
<label>6.</label>
<title>Security Analysis</title>
<p>According to the security attributes we have mentioned above, we are going to evaluate our approach:</p>
<sec sec-type="methods">
<label>6.1.</label>
<title>Data Integrity</title>
<p>An implicit check for data integrity has been provided. Any data modifications that could be done will consequently affect the received vector <italic>U</italic> = <italic>E<sub>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></sub></italic> (<italic>m</italic>‖<italic>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></italic>) which will be discovered through the key checking, by comparing the two sessions they have established and received.</p></sec>
<sec sec-type="methods">
<label>6.2.</label>
<title>Data Origin Authentication</title>
<p>Sending an original copy of the session key concatenated with the message and then encrypting them with the same key provides the originality authentication in a straightforward way. No one has the ability to build the broadcasted packet <italic>P<sub>i</sub></italic> = {<italic>E<sub>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></sub></italic> (<italic>m</italic>‖<italic>k<sub>x<sub>i</sub>,y<sub>i</sub></sub></italic>)‖<italic>X</italic>} except for the base-station or an intruder that has captured the entire congruence keys 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> for all nodes. This broadcast message has to provide the positivity authentication check considering the all sensor nodes.</p></sec>
<sec>
<label>6.3.</label>
<title>Freshness</title>
<p>Our proposal allows the base station to challenge the sensor nodes with unpredictable uniformly distributed values of (x<sub>i</sub>, y<sub>i</sub>). According to these values, and according to the seed updating every session, new refreshed keys have been established every session, so the communication system has a new and refreshed session key, and previous messages cannot be replayed. If we suppose that x<sub>i</sub> and y<sub>i</sub> can take one value of forward m values, the probability of successfully guessing a challenge will be the joint probability of x<sub>i</sub> and y<sub>i</sub>, which is equal to 1/m<sup>2</sup>. We can refer to this property as the ability to resist predictable attacks.</p></sec>
<sec>
<label>6.4.</label>
<title>Delay Tolerance</title>
<p>Our proposed scheme provides an instant authentication. Every broadcasted packet contains the authentication information for itself, independently of previous and following messages. The authentication process is done in the same session.</p></sec>
<sec>
<label>6.5.</label>
<title>Confidentiality</title>
<p>Confidentiality cannot be guaranteed if one or more nodes have been compromised. If an intruder acquires the ability to capture one node or more he will be able to solve the congruent equation using the captured node <italic>n<sub>j</sub></italic> congruent keys 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>A</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula> and 
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>r</mml:mi></mml:mrow>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>n</mml:mi></mml:mrow>
<mml:mi>j</mml:mi></mml:msub></mml:mrow>
<mml:mi>B</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula>. The CRTBA [<xref ref-type="bibr" rid="b13-sensors-10-08683">13</xref>] algorithm also did not cover this property, furthermore the broadcasted messages are sent in the plain form without encryption. Actually, regarding certain applications like the broadcasting of urgent alert notifications and warning systems need instant message authentication rather than confidentiality.</p></sec>
<sec>
<label>6.6.</label>
<title>Denial of Service Attacks</title>
<p>In μTESLA scheme, the sensor nodes can’t authenticate the received message immediately after reception. The intruder can send a large amount of forged messages to consume the sensor nodes buffer. The instant authentication provided in our scheme, overcomes this weakness. The authentication process is done in the same session independently of the previous or the next sessions. This vulnerability is overcome without resources an extra bandwidth or an extra storage memory like [<xref ref-type="bibr" rid="b5-sensors-10-08683">5</xref>] and [<xref ref-type="bibr" rid="b6-sensors-10-08683">6</xref>].</p></sec>
<sec>
<label>6.7.</label>
<title>Limitation for an N times Authentications</title>
<p>All TESLA families and also CRTBA, use backward hash chain. The backward chain has a restriction of an <italic>N</italic> time for authentications; a process restart is required after reaching this number of authentications. Our algorithm utilizes a new technique of employing two nested and different hash functions for the key production. This technique uses forward hashing and has no need for process restarting after reaching any number of authentications.</p></sec>
<sec>
<label>6.8.</label>
<title>Small Challenge Attack</title>
<p>Utilizing a one way hash function to construct a hashing chain in the backward fashion encourages a new kind of attack called small challenge attack. This type of attack discloses the hash chain initial values. These initial values help the intruder to extract the remaining chain values by hashing those initial values. Our algorithm covers this vulnerability by the utilization of two different and nested hash functions in the forward fashion, which prevents this kind of attack.</p></sec>
<sec>
<label>6.9.</label>
<title>Brute Force Attack</title>
<p>The ability of generating a truly random sequence of key bits can defeat a brute force attack, as a brute force attack would have no way of distinguishing one key from the other. Relying on the generation of random number can impede the brute force. The nested hashing progress random values for <italic>i</italic>-th authentication (x<sub>i</sub>, y<sub>i</sub>). play a great role in preventing this type of attacks according to the entropy of their random generation.</p></sec></sec>
<sec sec-type="conclusions">
<label>7.</label>
<title>Conclusions</title>
<p>A new wireless sensor network broadcast authentication scheme based on forward hashing using two different nested hashes and the Chinese Reminder Theorem (CRT) has been presented. The broadcasting messages are built using the congruence of the CRT. The two different hashing systems are utilized in the session key generation in a forward and unlimited way. This scheme achieves better characteristics than the other schemes, we discussed. Our proposal is not limited to a certain number of authentications, and also does not involve computationally expensive techniques (PKC) to provide infiniteness. A detailed security analysis has been performed that covers many types of attacks that could influence our scheme. Our scheme satisfies all the security attributes, we have discussed, except for the confidentiality in case of one node or more has been captured. This scheme is applicable for alerting and warning systems that need instant broadcast authentication rather than message confidentiality.</p></sec></body>
<back>
<ref-list>
<title>References</title>
<ref id="b1-sensors-10-08683"><label>1.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Fan</surname><given-names>Y</given-names></name><name><surname>Chen</surname><given-names>IR</given-names></name><name><surname>Eltoweissy</surname><given-names>M</given-names></name></person-group><article-title>On Optimal Key Disclosure Interval for μTESLA: Analysis of Authentication Delay <italic>Versus</italic> Network Cost</article-title><conf-name>Proceedings of International Conference on Wireless Networks, Communications and Mobile Computing</conf-name><conf-loc>Hawaii, HI, USA</conf-loc><conf-date>13–16 June 2005</conf-date><volume>13</volume><fpage>304</fpage><lpage>309</lpage></citation></ref>
<ref id="b2-sensors-10-08683"><label>2.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Shi</surname><given-names>E</given-names></name><name><surname>Perrig</surname><given-names>A</given-names></name></person-group><article-title>Designing Secure Sensor Networks</article-title><source>IEEE Wirel. Commun</source><year>2004</year><volume>11</volume><fpage>38</fpage><lpage>43</lpage></citation></ref>
<ref id="b3-sensors-10-08683"><label>3</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Perrig</surname><given-names>A</given-names></name><name><surname>Canetti</surname><given-names>R</given-names></name><name><surname>Tygar</surname><given-names>J</given-names></name><name><surname>Song</surname><given-names>D</given-names></name></person-group><article-title>The TESLA Broadcast Authentication Protocol</article-title><source>CrytoBytes</source><year>2002</year><volume>5</volume><fpage>2</fpage><lpage>13</lpage></citation></ref>
<ref id="b4-sensors-10-08683"><label>4.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Liu</surname><given-names>D</given-names></name><name><surname>Ning</surname><given-names>P</given-names></name></person-group><article-title>Efficient Distribution Key Chain Commitments for Broadcast Authentication in Distributed Sensor Networks</article-title><conf-name>Proceedings of the 10th Annual Network and Distributed System Security Symposium</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>6–7 February 2003</conf-date><volume>2</volume><fpage>263</fpage><lpage>276</lpage></citation></ref>
<ref id="b5-sensors-10-08683"><label>5.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Liu</surname><given-names>D</given-names></name><name><surname>Ning</surname><given-names>P</given-names></name></person-group><article-title>Multi-level μTESLA: Broadcast Authentication for Distributed Sensor Networks</article-title><source>ACM Trans. Embed. Comput. Syst</source><year>2004</year><volume>3</volume><fpage>800</fpage><lpage>836</lpage><pub-id pub-id-type="doi">10.1145/1027794.1027800</pub-id></citation></ref>
<ref id="b6-sensors-10-08683"><label>6.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Liu</surname><given-names>D</given-names></name><name><surname>Ning</surname><given-names>P</given-names></name><name><surname>Zhu</surname><given-names>S</given-names></name><name><surname>Jajodia</surname><given-names>S</given-names></name></person-group><article-title>Practical broadcast authentication in sensor networks</article-title><conf-name>Proceedings of Annual International Conference on Mobile and Ubiquitous Systems: Networking and Services</conf-name><conf-loc>San Diego, CA, USA</conf-loc><conf-date>17–21 July 2005</conf-date><fpage>118</fpage><lpage>129</lpage></citation></ref>
<ref id="b7-sensors-10-08683"><label>7.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Hu</surname><given-names>Y</given-names></name><name><surname>Perrig</surname><given-names>A</given-names></name><name><surname>Honson</surname><given-names>D</given-names></name></person-group><article-title>Packet Leashes. A Defense against Wormhole Attacks in Wireless <italic>Ad hoc</italic> Networks</article-title><conf-name>Proceedings of INFOCOM</conf-name><conf-loc>San Francisco, CA, USA</conf-loc><conf-date>30 March–3 April 2003</conf-date></citation></ref>
<ref id="b8-sensors-10-08683"><label>8.</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>Comm. 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="b9-sensors-10-08683"><label>9.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Chefranov</surname><given-names>A</given-names></name></person-group><article-title>One-Time Password Authentication with Infinite Hash Chains</article-title><source>Novel Algorithms and Techniques in Tele-communications, Automation and Industrial Electronics</source><publisher-name>Springer</publisher-name><publisher-loc>New York, NY, USA</publisher-loc><year>2008</year><fpage>283</fpage><lpage>286</lpage></citation></ref>
<ref id="b10-sensors-10-08683"><label>10.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Bicakci</surname><given-names>K</given-names></name><name><surname>Baykal</surname><given-names>N</given-names></name></person-group><article-title>Infinite Length Hash Chains and Their Applications</article-title><conf-name>Proceedings of 11th IEEE International Workshops on Enabling Technologies: Infrastructure for Collaborating Enterprises</conf-name><conf-loc>Pittsburgh, PA, USA</conf-loc><conf-date>10–12 June 2002</conf-date><fpage>57</fpage><lpage>61</lpage></citation></ref>
<ref id="b11-sensors-10-08683"><label>11.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Rivest</surname><given-names>R</given-names></name><name><surname>Shamir</surname><given-names>A</given-names></name><name><surname>Adleman</surname><given-names>L</given-names></name></person-group><article-title>A Method for Obtaining Digital Signatures and Public-Key Cryptosystems</article-title><source>Comm. ACM</source><year>1978</year><volume>21</volume><fpage>120</fpage><lpage>126</lpage><pub-id pub-id-type="doi">10.1145/359340.359342</pub-id></citation></ref>
<ref id="b12-sensors-10-08683"><label>12.</label><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Khan</surname><given-names>MK</given-names></name><name><surname>Alghathbar</surname><given-names>K</given-names></name></person-group><article-title>Cryptanalysis and Security Improvements of “Two-Factor User Authentication in Wireless Sensor Networks”</article-title><source>Sensors</source><year>2010</year><volume>10</volume><fpage>2450</fpage><lpage>2459</lpage><pub-id pub-id-type="doi">10.3390/s100302450</pub-id><pub-id pub-id-type="pmid">22294935</pub-id></citation></ref>
<ref id="b13-sensors-10-08683"><label>13.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Zhang</surname><given-names>J</given-names></name><name><surname>Yu</surname><given-names>W</given-names></name><name><surname>Liu</surname><given-names>X</given-names></name></person-group><article-title>CRTBA: Chinese Remainder Theorem-Based Broadcast Authentication in Wireless Sensor Networks</article-title><conf-name>Proceedings of Computer Network and Multimedia Technology</conf-name><conf-loc>Wuhan, China</conf-loc><conf-date>18–20 January 2009</conf-date></citation></ref>
<ref id="b14-sensors-10-08683"><label>14.</label><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Eldefrawy</surname><given-names>M</given-names></name><name><surname>Khan</surname><given-names>MK</given-names></name><name><surname>Alghathbar</surname><given-names>K</given-names></name></person-group><article-title>A Key Agreement Algorithm with Rekeying for Wireless Sensor Networks Using Public Key Cryptography</article-title><conf-name>Proceedings of International Conference on Anti-counterfeiting, Security, and Identification (ASID)</conf-name><conf-loc>Chengdu, China</conf-loc><conf-date>18–20 July 2010</conf-date></citation></ref>
<ref id="b15-sensors-10-08683"><label>15.</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 International Conference on Compilers, Architecture and Synthesis for Embedded Systems</conf-name><conf-loc>San Jose, CA, USA</conf-loc><conf-date>30 October–1 November 2003</conf-date></citation></ref>
<ref id="b16-sensors-10-08683"><label>16.</label><citation citation-type="book"><person-group person-group-type="author"><name><surname>Khan</surname><given-names>MK</given-names></name><name><surname>Zhang</surname><given-names>J</given-names></name></person-group><article-title>Improving the Security of “A Flexible Biometrics Remote User Authentication Scheme”</article-title><source>Computer Standards and Interfaces</source><publisher-name>Elsevier Science</publisher-name><publisher-loc>North Holland, The Netherlands</publisher-loc><year>2007</year><volume>29</volume><fpage>84</fpage><lpage>87</lpage></citation></ref></ref-list>
<sec sec-type="display-objects">
<title>Figures and Tables</title>
<fig id="f1-sensors-10-08683" position="float">
<label>Figure 1.</label>
<caption>
<p>Session key production considering a nested hash chain using two different hashes.</p></caption>
<graphic xlink:href="sensors-10-08683f1.gif"/></fig>
<fig id="f2-sensors-10-08683" position="float">
<label>Figure 2.</label>
<caption>
<p>The Proposed Broadcasting Authentication Scheme in Wireless Sensor Network.</p></caption>
<graphic xlink:href="sensors-10-08683f2.gif"/></fig>
<table-wrap id="t1-sensors-10-08683" position="float">
<label>Table 1.</label>
<caption>
<p>The Proposed Scheme Notation.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle"><bold>Notation</bold></th>
<th align="center" valign="middle"><bold>Description</bold></th></tr></thead>
<tbody>
<tr>
<td align="right" valign="middle"><italic>h<sub>A</sub></italic> (·)</td>
<td align="left" valign="middle">Represents the first hash function</td></tr>
<tr>
<td align="right" valign="middle"><italic>h<sub>B</sub></italic> (·)</td>
<td align="left" valign="middle">Represents the second hash function</td></tr>
<tr>
<td align="right" valign="middle">(<italic>x<sub>i</sub></italic>, <italic>y<sub>i</sub></italic>)</td>
<td align="left" valign="middle">The nested hashing progress values for <italic>i</italic>-th authentication</td></tr>
<tr>
<td align="right" valign="middle">
<inline-formula>
<mml:math>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>B</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>y</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mrow>
<mml:mo>(</mml:mo>
<mml:mrow>
<mml:msubsup>
<mml:mrow>
<mml:mi>h</mml:mi></mml:mrow>
<mml:mi>A</mml:mi>
<mml:mrow>
<mml:msub>
<mml:mrow>
<mml:mi>x</mml:mi></mml:mrow>
<mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:msubsup>
<mml:mo stretchy="false">(</mml:mo>
<mml:mi>s</mml:mi>
<mml:mo stretchy="false">)</mml:mo></mml:mrow>
<mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula></td>
<td align="left" valign="middle">Hashing the seed by <italic>h<sub>A</sub></italic> (·) for <italic>x<sub>i</sub></italic> times followed by <italic>h<sub>B</sub></italic> (·) hashing for <italic>y<sub>i</sub></italic> times for the <italic>i</italic>-th session</td></tr>
<tr>
<td align="right" valign="middle"><italic>k<sub>x<sub>i</sub>, y<sub>i</sub></sub></italic></td>
<td align="left" valign="middle">Session key for the <italic>i</italic>-th authentication</td></tr>
<tr>
<td align="right" valign="middle"><italic>U</italic></td>
<td align="left" valign="middle">The encryption of the concatenated message with the session by the session key</td></tr>
<tr>
<td align="right" valign="middle"><italic>P<sub>i</sub></italic></td>
<td align="left" valign="middle">The podcasted packet for the <italic>i</italic>-th authentication</td></tr>
<tr>
<td align="right" valign="middle"><italic>X</italic></td>
<td align="left" valign="middle">The broadcasted chain indexes, calculated by the CRT</td></tr>
<tr>
<td align="right" valign="middle"><italic>S<sub>crt</sub></italic></td>
<td align="left" valign="middle">The current seed</td></tr>
<tr>
<td align="right" valign="middle"><italic>S<sub>nxt</sub></italic></td>
<td align="left" valign="middle">The next seed</td></tr></tbody></table></table-wrap>
<table-wrap id="t2-sensors-10-08683" position="float">
<label>Table 2.</label>
<caption>
<p>Execution times [<italic>μs</italic>] for two different hash algorithms, platforms and plaintext sizes [bytes].</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="center" valign="middle"><bold>Algorithm</bold></th>
<th align="center" valign="middle"><bold>Size</bold></th>
<th align="center" valign="middle"><bold>Atmega103</bold></th>
<th align="center" valign="middle"><bold>Atmega128</bold></th>
<th align="center" valign="middle"><bold>M16C/10</bold></th>
<th align="center" valign="middle"><bold>StrongARM</bold></th>
<th align="center" valign="middle"><bold>Xscale(400)</bold></th>
<th align="center" valign="middle"><bold>Xscale(200)</bold></th>
<th align="center" valign="middle"><bold>Sparc(440)</bold></th></tr></thead>
<tbody>
<tr>
<td align="center" valign="middle">MD5</td>
<td align="center" valign="middle">0</td>
<td align="center" valign="middle">5,863</td>
<td align="center" valign="middle">1,466</td>
<td align="center" valign="middle">1,083</td>
<td align="center" valign="middle">46</td>
<td align="center" valign="middle">26</td>
<td align="center" valign="middle">53</td>
<td align="center" valign="middle">23</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">1:26</td>
<td align="center" valign="middle">5,890</td>
<td align="center" valign="middle">1,473</td>
<td align="center" valign="middle">1,075</td>
<td align="center" valign="middle">46</td>
<td align="center" valign="middle">26</td>
<td align="center" valign="middle">53</td>
<td align="center" valign="middle">23</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">62:80</td>
<td align="center" valign="middle">10,888</td>
<td align="center" valign="middle">2,722</td>
<td align="center" valign="middle">2,011</td>
<td align="center" valign="middle">74</td>
<td align="center" valign="middle">45</td>
<td align="center" valign="middle">90</td>
<td align="center" valign="middle">39</td></tr>
<tr>
<td align="center" valign="middle">SHA-1</td>
<td align="center" valign="middle">1</td>
<td align="center" valign="middle">15,249</td>
<td align="center" valign="middle">3,812</td>
<td align="center" valign="middle">2,651</td>
<td align="center" valign="middle">69</td>
<td align="center" valign="middle">51</td>
<td align="center" valign="middle">102</td>
<td align="center" valign="middle">27</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">3</td>
<td align="center" valign="middle">15,781</td>
<td align="center" valign="middle">3,945</td>
<td align="center" valign="middle">5,303</td>
<td align="center" valign="middle">69</td>
<td align="center" valign="middle">50</td>
<td align="center" valign="middle">103</td>
<td align="center" valign="middle">27</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">65</td>
<td align="center" valign="middle">14543</td>
<td align="center" valign="middle">3636</td>
<td align="center" valign="middle">7955</td>
<td align="center" valign="middle">133</td>
<td align="center" valign="middle">102</td>
<td align="center" valign="middle">205</td>
<td align="center" valign="middle">55</td></tr>
<tr>
<td align="center" valign="middle"/>
<td align="center" valign="middle">64</td>
<td align="center" valign="middle">31,107</td>
<td align="center" valign="middle">7,777</td>
<td align="center" valign="middle">10,907</td>
<td align="center" valign="middle">145</td>
<td align="center" valign="middle">103</td>
<td align="center" valign="middle">207</td>
<td align="center" valign="middle">56</td></tr></tbody></table></table-wrap></sec></back></article>
