Secure Intermittent Computing Protocol: Protecting State Across Power Loss
Secure Intermittent Computing Protocol: Protecting State Across Power Loss
978-3-9819263-2-3/DATE19/2019
c EDAA 728
Target
Type of Related Essential properties
Platform
solution Work
C I A Freshness Continuity Atomicity
Intermittent [1–4] - - - - - - Embedded
computing Ghodsi [5] - - - - - device
NVM memory Conventional
iNVM [6], SPE [7] - - - - -
encryption computer
ICE [8] - - Conventional
State
Ariadne [9] - computer with
continuity
Memoir [10] - protected module
Secure SECCS [11] - - - Embedded
checkpoints SICP(this work) devices
C: Confidentiality, I: Integrity, A: Authenticity.
Table II: Executable Size Overhead Table III: Energy and time overhead for SICP
within the checkpoint and startup process. INITIALIZE vice’s Vcc . This is accomplished with MSP430FR5994’s
and RESTORE are called automatically during system ADC12 B analog-to-digital converter, measuring Vcc against
startup, as shown in Figure 4. WIPE is also automatically the system’s Vref as described in TI’s FRAM Utilities [15].
triggered upon power loss. Only RESTORE is called during The MSP430FR5994 development board’s unmodified im-
program execution by the user declared checkpoint func- plementation, including one 10μF capacitor and three 100nF
tion secureCheckpoint(). The application code calls capacitors, has sufficient residual energy to consistently
secureCheckpoint() which in turn invokes REFRESH overwrite up to 16kB of memory following the trigger [16].
to generate a secure checkpoint. When Vcc falls below Vref , ADC12 B triggers the overwrite
Atomicity Support: The atomicity of the of STATE and SRAM via direct-memory-access using the
secureCheckpoint() function is ensured by using residual power source.
two state save packet buffers, SSA and SSB . All changes
to non-volatile memory are made to the alternate buffer, V. R ESULTS
such that the most recent state save packet remains valid We demonstrate SICP’s feasibility and measure the cost in
until the newly computed tag is ready. Once the new tag terms of energy, time and code size overhead incurred to pro-
computation is complete and stored in a temporary buffer, tect a sequence of checkpoints. We have utilized reference
the sic_copyTag() function is called to overwrite implementations for both AEAD designs. EAX(HW), which
the previous tag and set the newly created checkpoint as is a hybrid hardware AEAD primitive, is obtained by sub-
the only valid checkpoint in an atomic operation. This is stituting the software block cipher operations within EAX
achieved by disabling all interrupts for the copy duration of with the MSP430FR5994’s AES hardware accelerator [16].
48 cycles and relying on the residual energy of the device The comparison between the performance of the different
to ensure that even if power is lost, the copy operation AEAD schemes is specific to our protocol implementation
will complete before the system stops operating. Thus, and is not an evaluation of the different AEAD construc-
secureCheckpoint() completes the protocol operation tions themselves. All measurements were taken when the
without incident, ensuring the availability of the intermittent microcontroller was operating at 1 MHz and use a state size
device. of 2kB, a reasonable region for applications on a resource
nonce(): A majority of the nonces used in this protocol constrained device. The energy and time overhead of SICP
are provided by a 128-bit counter that is initialized to a functions must be measured separately when SSA and when
random number during the INITIALIZE process and incre- SSB are the valid state because the authenticity of SSA is
mented each time a new nonce is requested. The exception always checked first in the protocol. The two measurements
is for the nonce for TB in the INITIALIZE function. This are then averaged to present the following results.
nonce is generated randomly to ensure that no two different Overhead: Table II provides an estimate of the ex-
uses of a device create the same pattern of tags, even if the pected growth of a program’s memory footprint when sup-
exact same code is executed following a factory reset(). port for each component is added to the system. EAX(HW)
WIPE: The implementation of the WIPE operation and K ETJE SR represent the executable size overhead for
requires detection of power loss by monitoring the de- SICP functions along with their respective cryptographic