The ability to successfully hide data is becoming increasingly important for modern computer users, who often store private and sensitive data on their personal devices. Although encryption can hide data contents, encryption alone cannot hide the presence of encrypted data. Instead, we would like to hide data with plausible deniability so that even potent adversaries cant tell if system is even hiding data.This work presents a new approach for hiding sensitive data within a larger data set on NAND flash devices. From a technical perspective, flash is well-suited for data hiding because it offers high-density, fast random access, and non-volatile storage, but with an abundance of internal randomness that is typically masked by on-device firmware. On the practical side, flash is ubiquitous in embedded systems, mobile phones, USB thumb drives, and in solid-state disks (SSDs) on personal laptops—precisely the type of devices that are most likely to be lost, stolen, or confiscated. SSDs are also significant in data centers and servers, which could also be the subject of search or seizure.This paper presents a new technique to hide data in flash by manipulating the voltage level of pseudo-randomly-selected flash cells to encode two bits (rather than one) in the cell. In this model, we have one “public” bit interpreted using an SLC-style encoding, and extract a private bit using an MLCstyle encoding. The locations of cells that encode hidden data is based on a secret key known only to the hiding user.