| The emerging Non-Volatile Memory(NVM)has many desirable properties such as non-volatile,byte-addressable,fast access speed and high data density,and can be used as persistent memory,which serves as working memory and storage device at the same time.Instead of reading bytes from disk and re-building data structures in memory,the data stored in persistent memory can be accessed directly by the program,reducing the overhead of data persistence.Unlike Dynamic Random Access Memory(DRAM),the data in persistent memory can be read after a system shutdown,which is easy to be stolen through physical access to a device.Therefore,memory encryption is important for protecting data from attackers in persistent memory.However,designing an efficient encrypted persistent memory has two challenges.Firstly,data crash consistency not only need to be maintained between user data,but also need to be maintained between user data and encryption metadata.It is more difficult to maintain data crash consistency in encrypted persistent memory compared with traditional persistent memory.Secondly,the data persistence and encryption will lead to high overhead of memory requests and affect the system performance.Undo logging,redo logging and shadow memory are widely used data persisting strategies,which can meet the demands of users for flexibility and software-transparent persistent memory systems.However,different data persisting strategies have different memory access patterns,need to be studied further.An efficient encrypted persistent memory based on undo logging is proposed.In order to construct a recoverable persistent memory,the secure metadata need to be persisted and keep consistent with the ciphertext of log data,which incurs extra persisting overhead.To reduce the secure metadata persisting overhead,log data and program data are encrypted by different data encryption methods.At the same time,a log management strategy cooperating with the hybrid encryption scheme is designed,which can ensure that log data can be decrypted correctly during system recovery.The experiment results show that the proposed system can increase the transaction throughput on average by 22.0%,compared with the encrypted persistent memory system using counter mode data encryption method.An efficient encrypted persistent memory based on redo logging is proposed.In the encrypted persistent memory,the redo log data encryption consumes extra system encryption resource and affects the log request processing.After studying the memory access pattern of redo logging,a log-aware memory encryption strategy is proposed,which can reduce the log data encryption overhead effectively,and speed up the log request processing on the critical path.In addition,a compacted log data structure is designed to reduce the amount of counter data in the log entry,which can mitigate the overhead of counter data persistence.The experiment results show that the system proposed can increase the transaction throughput on average by 54.5%,compared with a state-of-the-art encrypted persistent memory system based on undo logging.An efficient encrypted persistent memory based on shadow memory checkpointing is proposed.When the on-chip address mapping table overflows,traditional persistent memory based on shadow memory checkpointing has to start checkpoint committing immediately before the current epoch ends.In order to mitigate the above data persisting overhead,an optimized address mapping structure is proposed to maintain the crash consistency of program data in shadow memory.And the undo logging is used to keep the crash consistency of counter data for reducing the encryption overhead.Moreover,hybrid memory encryption strategy is used to encrypt the dirty data write-back requests during checkpoint committing,to reduce the system stall time.The experiment results show that the proposed encrypted persistent memory system can reduce the execution time on average by 16.1%,compared with the baseline. |