  Extended Asynchronous DRAM Refresh (eADR) proposed by Intel extends the
persistence domain from the Non-Volatile Memory (NVM) to CPU caches and offers
the persistence guarantee. Due to allowing lazy persistence and decreasing the
amounts of instructions, eADR-based NVM systems significantly improve
performance. Existing designs however fail to provide efficient encryption
schemes to ensure data confidentiality in eADR-based NVM systems. It is
challenging to guarantee both data persistence and confidentiality in a
cost-efficient manner due to the transient persistence property of caches in
eADR. Once the system crashes, eADR flushes the unencrypted data from the cache
into NVM, in which security issues occur due to no encryption. To bridge the
gap between persistence and confidentiality, we propose cost-efficient BBE and
Sepencr encryption schemes that efficiently match different eADR execution
models from ideal to practice. Under the ideal eADR execution model, BBE
supports the encryption module via the battery of eADR upon crashes. Under the
practical eADR execution model, Sepencr generates the one-time paddings (OTPs)
at the system startup to encrypt the cached data in case the system crashes.
Our evaluation results show that compared with an intuitive in-cache encryption
scheme in eADR-based systems, our designs significantly reduce performance
overheads while efficiently ensuring data confidentiality.
