<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.2 20190208//EN" "https://jats.nlm.nih.gov/publishing/1.2/JATS-journalpublishing1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" article-type="research-article" dtd-version="1.2" xml:lang="en">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">IJESD</journal-id>
<journal-title-group><journal-title>International Journal of Embedded Systems and Design</journal-title></journal-title-group>
<publisher><publisher-name>Thomson &amp; Ryberg Publications</publisher-name></publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.62715/ijesd.2026.v1.i1.pp20-25</article-id>
<article-id pub-id-type="publisher-id">55211c5f54</article-id>
<article-categories><subj-group subj-group-type="heading"><subject>Methodology Article</subject></subj-group></article-categories>
<title-group><article-title>A Fault Injection Test Bench for Evaluating Secure Boot Resilience in Open Instruction Set Processors</article-title></title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes"><name><surname>Grant</surname><given-names>Naveen</given-names></name><xref ref-type="aff" rid="aff1"><sup>1</sup></xref><xref ref-type="corresp" rid="cor1">*</xref></contrib>
<contrib contrib-type="author"><name><surname>Zulu</surname><given-names>Kavita</given-names></name><xref ref-type="aff" rid="aff2"><sup>2</sup></xref></contrib>
<contrib contrib-type="author"><name><surname>Harkness</surname><given-names>Anna</given-names></name><xref ref-type="aff" rid="aff3"><sup>3</sup></xref></contrib>
<aff id="aff1"><label>1</label>Department of Electrical Electronics, Mekong Graduate Institute of Electrical Electronics, Philippines</aff>
<aff id="aff2"><label>2</label>Department of Electrical Electronics, Irrawaddy Research Institute of Electrical Electronics, Philippines</aff>
<aff id="aff3"><label>3</label>Department of Electrical Electronics, Ural University Centre for Electrical Electronics, Taiwan</aff>
</contrib-group>
<author-notes><corresp id="cor1">* Correspondence: <email>naveen.grant@mekong.edu</email></corresp></author-notes>
<pub-date pub-type="epub" iso-8601-date="2026-04-06"><day>06</day><month>04</month><year>2026</year></pub-date>
<volume>1</volume>
<issue>1</issue>
<fpage>20</fpage>
<lpage>25</lpage>
<history>
<date date-type="received" iso-8601-date="2025-11-18"><day>18</day><month>11</month><year>2025</year></date>
<date date-type="accepted" iso-8601-date="2026-01-30"><day>30</day><month>01</month><year>2026</year></date>
</history>
<permissions><copyright-statement>© 2026 The Author(s)</copyright-statement><copyright-year>2026</copyright-year><license license-type="open-access" xlink:href="https://creativecommons.org/licenses/by/4.0/"><license-p>This is an open access article distributed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).</license-p></license></permissions>
<self-uri xlink:href="https://trpub.org/article.php?id=55211c5f54"/>
<abstract><p>Secure boot is the root of trust in most embedded devices, and it can be defeated without breaking any cryptography if a physical fault makes the processor skip or corrupt the instruction that acts on the verification result. Processors built on the open RISC-V instruction set are moving into products where such attacks are in scope, and they offer evaluators something closed cores do not: access, in many cases, to the register-transfer level design. This article proposes a test bench and an accompanying procedure for evaluating how well a secure boot implementation on a RISC-V target resists voltage, clock and electromagnetic fault injection. The bench combines a target board prepared for glitching, a low-cost injection platform, a triggering path derived from the boot sequence, and a host controller that sweeps injection parameters and classifies outcomes. The procedure runs in six phases, from threat model to countermeasure re-test, and separates the characterisation of the fault model on instrumented code from the campaign against the boot code itself. Recommendations are given for outcome classification, for reporting success rates with confidence intervals, and for linking physical results to simulation at the instruction and register-transfer levels. The bench and procedure are proposals built from published practice. They have not been validated experimentally in this article.</p></abstract>
<kwd-group kwd-group-type="author">
<kwd>Fault injection</kwd>
<kwd>Secure boot</kwd>
<kwd>RISC-V</kwd>
<kwd>Voltage glitching</kwd>
<kwd>Electromagnetic fault injection</kwd>
<kwd>Hardware security evaluation</kwd>
</kwd-group>
</article-meta>
</front>
<body>
<sec id="sec1"><title>1. Introduction</title>
<p>A secure boot chain starts from immutable code, checks the integrity and authenticity of the next stage before running it, and repeats the check at each hand-over. The architecture was described by Arbaugh et al. (1997) and is now assumed by platform firmware guidance such as NIST SP 800-193 (Regenscheid, 2018). Its security argument rests on the signature scheme. Its implementation rests on a handful of instructions: a comparison, a conditional branch, a return value. If one of those misbehaves at the right instant, an unsigned image runs.</p>
<p>Fault injection makes instructions misbehave. Since Boneh et al. (1997) showed that a single computational fault can expose a private key, the technique has grown from a threat to smart cards into a general tool against embedded software (Bar-El et al., 2006; Barenghi et al., 2012). Published attacks on boot loaders have bypassed signature checks and read-out protection on commercial devices with voltage and electromagnetic pulses (Cui and Housley, 2017; Van den Herrewegen et al., 2021).</p>
<p>Processors that implement the RISC-V instruction set (Waterman and Asanovic, 2019) are now used as security controllers, application cores and roots of trust. Their boot code needs the same scrutiny as any other, and evaluators need a repeatable way to apply it. This article proposes a test bench and a procedure for that purpose. It describes what to build, in what order to work and what to record. It reports no experimental campaign, and the bench has not been validated here.</p>
</sec>
<sec id="sec2"><title>2. Background</title>
<p>The design draws on three strands of published work: the physical means of injecting faults, the fault models observed on microcontrollers, and the particular features of open instruction set targets.</p>
<sec id="sec2-2"><title>2.1. Injection techniques</title>
<p>Four techniques account for most practical attacks. Voltage glitching briefly lowers or raises the supply so that a critical path misses timing; the shape of the glitch matters as well as its width and delay, as Bozzato et al. (2019) showed with arbitrary waveforms. Clock glitching inserts a shortened cycle and applies where the attacker controls an external clock. Electromagnetic fault injection induces currents with a pulsed coil near the package and adds spatial selectivity without decapsulation (Moro et al., 2013). Optical injection with a laser or flash on an exposed die is the most precise and the most demanding in preparation (Skorobogatov and Anderson, 2003). Open hardware such as ChipWhisperer has brought the first three within reach of an ordinary laboratory (O&#x27;Flynn and Chen, 2014).</p>
</sec>
<sec id="sec2-3"><title>2.2. Fault models on software</title>
<p>The effect most often exploited is the skipped or replaced instruction. Moro et al. (2013) traced electromagnetic faults on a 32-bit microcontroller to corruption of the instruction as it is fetched, which at the software level looks like one instruction being replaced by another. More powerful effects are possible: Timmers et al. (2016) showed that a fault during a load can place attacker-controlled data in the program counter on a 32-bit Arm core. The survey by Yuce et al. (2018) connects such physical effects to their consequences for embedded software and to the design of countermeasures, among them instruction duplication schemes whose correctness against single skips has been formally verified (Moro et al., 2014).</p>
</sec>
<sec id="sec2-4"><title>2.3. Open instruction set targets</title>
<p>RISC-V targets differ from closed cores in ways that affect an evaluation. Many are available as register-transfer level source, so a fault observed on silicon or on a field-programmable gate array can be compared with simulation of the same design. Laurent et al. (2019) used that access to show that faults in registers hidden from the programmer, such as pipeline and forwarding registers, produce behaviours that an instruction-level model does not predict. The instruction encoding matters too. Where the compressed extension is enabled, 16-bit and 32-bit instructions are mixed, and a corrupted word may be decoded as a different sequence altogether. Privilege is managed through machine mode and physical memory protection as defined in the privileged specification (Waterman et al., 2021), and the configuration of those registers during boot is itself a target.</p>
</sec>
</sec>
<sec id="sec3"><title>3. Architecture of the Proposed Bench</title>
<p>The bench has five elements. The first is the target. A board is prepared by removing decoupling capacitors from the core supply rail, inserting a shunt resistor for power measurement, and exposing the reset and clock lines. Where the processor is a soft core, a gate array board built for security evaluation serves the same purpose, with the reservation noted later that faults in programmable logic are not the faults of the final silicon. The second element is the injector: a crowbar or multiplexer circuit for voltage glitches, a clock generator able to insert a partial cycle, and optionally a pulsed electromagnetic probe on a motorised stage.</p>
<p>The third element is the trigger, which fixes the time reference for each attempt. A dedicated output pin toggled by instrumented firmware is the cleanest reference and is used during characterisation. For production boot code the trigger has to come from outside: the release of reset, a pattern on a serial or flash bus, or a feature in the power trace recognised in real time. The fourth element is observation. The serial console, a status pin and, where it is open, the debug port tell the bench what the target did after each attempt. The fifth is the host controller, a script that sets the parameters, arms the injector, resets the target, collects the response and logs every attempt with its settings.</p>
</sec>
<sec id="sec4"><title>4. The Evaluation Procedure</title>
<p>The procedure has six phases. Table 1 lists them with their outputs. The ordering reflects a principle taken from evaluation practice: establish that faults can be induced, and of what kind, before spending time on the code that matters.</p>
<table-wrap id="tbl1"><label>Table 1</label><caption><p>Phases of the proposed evaluation procedure and the output of each</p></caption><table frame="hsides" rules="groups"><thead><tr><th>Phase</th><th>Activity</th><th>Output</th></tr></thead><tbody><tr><td>1. Threat model</td><td>State attacker access, equipment class and the assets the boot chain protects</td><td>Scope statement and success criteria</td></tr><tr><td>2. Bench calibration</td><td>Confirm glitch shape at the pin and trigger jitter with an oscilloscope</td><td>Calibration record</td></tr><tr><td>3. Fault characterisation</td><td>Sweep parameters over instrumented loops and register patterns</td><td>Parameter map and observed fault model</td></tr><tr><td>4. Timing localisation</td><td>Locate boot checks in time using traces and bus activity</td><td>Candidate injection windows</td></tr><tr><td>5. Boot campaign</td><td>Attack each window with the characterised parameters; classify outcomes</td><td>Per-window outcome counts and intervals</td></tr><tr><td>6. Countermeasure re-test</td><td>Repeat phase 5 with hardening enabled, including multi-fault attempts</td><td>Comparison report and residual risk</td></tr></tbody></table></table-wrap>
<sec id="sec4-2"><title>4.1. Phases 1 and 2: Scope and calibration</title>
<p>The threat model states whether the attacker has unlimited physical access, how many devices may be consumed, and which class of equipment is assumed. It also defines success. For secure boot the usual criteria are execution of an unauthenticated image, re-enabling of a locked debug interface, and disclosure of key material. Calibration then checks that the bench does what the script believes: the glitch is observed at the target pin and not at the generator, and the spread of the trigger delay is measured, because jitter larger than one clock period blurs every later result.</p>
</sec>
<sec id="sec4-3"><title>4.2. Phase 3: Characterising the fault model</title>
<p>Characterisation runs on firmware written for the purpose. A typical test program raises the trigger, executes a counted loop or a sequence of register moves with known results, and prints the final state. The controller sweeps glitch delay, width and, for electromagnetic injection, probe position and pulse amplitude. Each attempt falls into one of four classes: no effect, reset or mute, crash with an exception, or a wrong result with continued execution. The last class is the useful one. Inspecting the wrong results shows whether instructions are being skipped, operands corrupted or loads disturbed, and the parameter region in which this happens most reliably becomes the starting point for the campaign. Test collections designed for fault analysis can supply the instrumented code.</p>
</sec>
<sec id="sec4-4"><title>4.3. Phase 4: Locating the boot checks in time</title>
<p>Figure 1 pairs the stages of a generic boot chain with the operations in each that a fault might usefully disturb. Locating those operations in time is the task of the fourth phase. Reading the image from flash produces visible bus activity, the digest computation has a regular power signature whose length scales with the image, and the signature verification follows it. The windows of interest are short: the comparison of the computed and expected values, the branch on its result, and the write that records the verdict. Where source or a disassembly of the boot code is available, the windows can be predicted by cycle counting and then confirmed against the traces.</p>
<fig id="fig1"><label>Figure 1</label><caption><p>Stages of a generic secure boot chain and the operations a fault may target in each</p></caption><graphic xlink:href="IJESD_V1I1_2026_04_Figure1.png" mimetype="image" mime-subtype="png"/></fig>
</sec>
<sec id="sec4-5"><title>4.4. Phase 5: The boot campaign</title>
<p>The campaign applies the characterised parameters to each candidate window with an unsigned or tampered image in place. The outcome classes are extended with the success criteria fixed in the first phase. Every attempt is logged with its parameters, since a single success needs to be reproducible to count. Results are reported per window as the number of successes among the attempts made, together with a confidence interval for the underlying rate. The score interval of Wilson (1927) behaves well for the small proportions typical of this work. A window with no success after many attempts supports only an upper bound on the success rate, and the report should say so in those terms.</p>
</sec>
<sec id="sec4-6"><title>4.5. Phase 6: Re-testing with countermeasures</title>
<p>Software hardening of boot code commonly includes repeating the verification, encoding the verdict in constants with a large Hamming distance in place of zero and one, checking that execution arrived by the expected path, and inserting random delays. Hardware adds glitch detectors and redundant logic. The final phase repeats the campaign with these measures enabled. Because duplicated checks can be defeated by two well-timed faults, the bench should support multiple glitches per boot. The comparison of success rates before and after hardening, under an unchanged injection set-up, is the main product of the evaluation.</p>
</sec>
</sec>
<sec id="sec5"><title>5. Linking the Bench to Simulation</title>
<p>An open design allows the physical results to be explained and extended. At the instruction level, an emulator can replay the boot code while skipping or corrupting each instruction in turn, which lists every single fault that leads to a bypass under the assumed model and indicates where the bench should aim. At the register-transfer level the same exercise can be run on pipeline and control registers, which addresses the hidden-state effects that instruction-level models miss (Laurent et al., 2019). Agreement between the faults found physically and those the simulation predicts raises confidence in both. Disagreement is informative as well, since it shows the limits of the fault model in use.</p>
</sec>
<sec id="sec6"><title>6. Limitations and What Remains to Be Shown</title>
<p>The bench is a proposal and its usefulness is untested here. Several points would need to be established by applying it. Repeatability comes first: whether two laboratories following the procedure on the same target obtain comparable parameter maps and success rates. Transfer is a second question. A soft core on a gate array shares its logic design with the eventual chip and nothing of its physical layout, so results on one may say little about the other. Coverage is limited by the techniques included; laser injection, which the bench omits on grounds of cost, may reach faults the others do not. A negative result has limited meaning in any case, since the absence of a successful fault under a given budget of attempts and equipment is not evidence of immunity. Electromagnetic and high-voltage pulse equipment also brings electrical hazards that a laboratory must manage under its own safety rules.</p>
</sec>
<sec id="sec7"><title>7. Conclusion</title>
<p>Evaluating secure boot against fault injection requires modest equipment and a disciplined method more than it requires rare expertise. The bench proposed here assembles a prepared target, an affordable injector, a trigger path, observation channels and a logging controller, and the six-phase procedure moves from fault characterisation on known code to a measured campaign against the boot chain and its countermeasures. For RISC-V targets the availability of the design source allows physical results to be tied back to simulation, an opportunity that closed cores rarely afford. Whether the procedure yields consistent and transferable results is the question that experimental use must now answer.</p>
</sec>
<sec id="sec8"><title>Conflict of interest</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
<sec id="sec9"><title>Funding</title>
<p>To be declared by the author(s) before publication.</p>
</sec>
</body>
<back>
<ref-list><title>References</title>
<ref id="ref1"><label>1</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Arbaugh, W.A., Farber, D.J. and Smith, J.M.</string-name></person-group> (<year>1997</year>). <article-title>A secure and reliable bootstrap architecture</article-title>. <source>Proceedings of the 1997 IEEE Symposium on Security and Privacy</source>, <fpage>65-71</fpage></mixed-citation></ref>
<ref id="ref2"><label>2</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Bar-El, H., Choukri, H., Naccache, D., Tunstall, M. and Whelan, C.</string-name></person-group> (<year>2006</year>). <article-title>The sorcerer&#x27;s apprentice guide to fault attacks</article-title>. <source>Proceedings of the IEEE</source>, <volume>94(2)</volume>, <fpage>370-382</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/JPROC.2005.862424">https://doi.org/10.1109/JPROC.2005.862424</ext-link></mixed-citation></ref>
<ref id="ref3"><label>3</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Barenghi, A., Breveglieri, L., Koren, I. and Naccache, D.</string-name></person-group> (<year>2012</year>). <article-title>Fault injection attacks on cryptographic devices: Theory, practice, and countermeasures</article-title>. <source>Proceedings of the IEEE</source>, <volume>100(11)</volume>, <fpage>3056-3076</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1109/JPROC.2012.2188769">https://doi.org/10.1109/JPROC.2012.2188769</ext-link></mixed-citation></ref>
<ref id="ref4"><label>4</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Boneh, D., DeMillo, R.A. and Lipton, R.J.</string-name></person-group> (<year>1997</year>). <article-title>On the importance of checking cryptographic protocols for faults</article-title>. <source>Advances in Cryptology, EUROCRYPT 1997, Lecture Notes in Computer Science</source>, <volume>1233</volume>, <fpage>37-51</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/3-540-69053-0_4">https://doi.org/10.1007/3-540-69053-0_4</ext-link></mixed-citation></ref>
<ref id="ref5"><label>5</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Bozzato, C., Focardi, R. and Palmarini, F.</string-name></person-group> (<year>2019</year>). <article-title>Shaping the glitch: Optimizing voltage fault injection attacks</article-title>. <source>IACR Transactions on Cryptographic Hardware and Embedded Systems</source>, <volume>2019(2)</volume>, <fpage>199-224</fpage></mixed-citation></ref>
<ref id="ref6"><label>6</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Cui, A. and Housley, R.</string-name></person-group> (<year>2017</year>). <article-title>BADFET: Defeating modern secure boot using second-order pulsed electromagnetic fault injection</article-title>. <source>Proceedings of the 11th USENIX Workshop on Offensive Technologies (WOOT)</source></mixed-citation></ref>
<ref id="ref7"><label>7</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Laurent, J., Beroulle, V., Deleuze, C. and Pebay-Peyroula, F.</string-name></person-group> (<year>2019</year>). <article-title>Fault injection on hidden registers in a RISC-V Rocket processor and software countermeasures</article-title>. <source>Proceedings of the Design, Automation and Test in Europe Conference (DATE)</source>, <fpage>252-255</fpage></mixed-citation></ref>
<ref id="ref8"><label>8</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Moro, N., Dehbaoui, A., Heydemann, K., Robisson, B. and Encrenaz, E.</string-name></person-group> (<year>2013</year>). <article-title>Electromagnetic fault injection: Towards a fault model on a 32-bit microcontroller</article-title>. <source>Proceedings of the Workshop on Fault Diagnosis and Tolerance in Cryptography (FDTC)</source>, <fpage>77-88</fpage></mixed-citation></ref>
<ref id="ref9"><label>9</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Moro, N., Heydemann, K., Encrenaz, E. and Robisson, B.</string-name></person-group> (<year>2014</year>). <article-title>Formal verification of a software countermeasure against instruction skip attacks</article-title>. <source>Journal of Cryptographic Engineering</source>, <volume>4(3)</volume>, <fpage>145-156</fpage></mixed-citation></ref>
<ref id="ref10"><label>10</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>O&#x27;Flynn, C. and Chen, Z.</string-name></person-group> (<year>2014</year>). <article-title>ChipWhisperer: An open-source platform for hardware embedded security research</article-title>. <source>Constructive Side-Channel Analysis and Secure Design (COSADE), Lecture Notes in Computer Science</source>, <volume>8622</volume>, <fpage>243-260</fpage></mixed-citation></ref>
<ref id="ref11"><label>11</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Regenscheid, A.</string-name></person-group> (<year>2018</year>). <article-title>Platform Firmware Resiliency Guidelines</article-title>. <source>NIST Special Publication 800-193, National Institute of Standards and Technology, Gaithersburg, MD</source> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.6028/NIST.SP.800-193">https://doi.org/10.6028/NIST.SP.800-193</ext-link></mixed-citation></ref>
<ref id="ref12"><label>12</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Skorobogatov, S.P. and Anderson, R.J.</string-name></person-group> (<year>2003</year>). <article-title>Optical fault induction attacks</article-title>. <source>Cryptographic Hardware and Embedded Systems, CHES 2002, Lecture Notes in Computer Science</source>, <volume>2523</volume>, <fpage>2-12</fpage></mixed-citation></ref>
<ref id="ref13"><label>13</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Timmers, N., Spruyt, A. and Witteman, M.</string-name></person-group> (<year>2016</year>). <article-title>Controlling PC on ARM using fault injection</article-title>. <source>Proceedings of the Workshop on Fault Diagnosis and Tolerance in Cryptography (FDTC)</source>, <fpage>25-35</fpage></mixed-citation></ref>
<ref id="ref14"><label>14</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Van den Herrewegen, J., Oswald, D., Garcia, F.D. and Temeiza, Q.</string-name></person-group> (<year>2021</year>). <article-title>Fill your boots: Enhanced embedded bootloader exploits via fault injection and binary analysis</article-title>. <source>IACR Transactions on Cryptographic Hardware and Embedded Systems</source>, <volume>2021(1)</volume>, <fpage>56-81</fpage></mixed-citation></ref>
<ref id="ref15"><label>15</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Waterman, A. and Asanovic, K. (eds.)</string-name></person-group> (<year>2019</year>). <article-title>The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA, Document Version 20191213</article-title>. <source>RISC-V Foundation</source></mixed-citation></ref>
<ref id="ref16"><label>16</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Waterman, A., Asanovic, K. and Hauser, J. (eds.)</string-name></person-group> (<year>2021</year>). <article-title>The RISC-V Instruction Set Manual, Volume II: Privileged Architecture, Document Version 20211203</article-title>. <source>RISC-V International</source></mixed-citation></ref>
<ref id="ref17"><label>17</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Wilson, E.B.</string-name></person-group> (<year>1927</year>). <article-title>Probable inference, the law of succession, and statistical inference</article-title>. <source>Journal of the American Statistical Association</source>, <volume>22(158)</volume>, <fpage>209-212</fpage></mixed-citation></ref>
<ref id="ref18"><label>18</label><mixed-citation publication-type="other"><person-group person-group-type="author"><string-name>Yuce, B., Schaumont, P. and Witteman, M.</string-name></person-group> (<year>2018</year>). <article-title>Fault attacks on secure embedded software: Threats, design, and evaluation</article-title>. <source>Journal of Hardware and Systems Security</source>, <volume>2(2)</volume>, <fpage>111-130</fpage> <ext-link ext-link-type="uri" xlink:href="https://doi.org/10.1007/s41635-018-0038-1">https://doi.org/10.1007/s41635-018-0038-1</ext-link></mixed-citation></ref>
</ref-list>
</back>
</article>