•Yinglei Wang, Wing-kei Yu, Sarah Q. Xu, Edwin Kan, and G. Edward Suh • Cornell University • Tuan Tran Introduction Steganography? Yes Presentation Outline Overview Flash Memory Background Information Hiding Algorithm Evaluation Conclusion 3 Overview The goal of the hiding technique is to make the detection, retrieval, and removal of hidden information sufficiently time consuming for an attacker. 4 Overview Flash Interface Requirements for the technique Work with flash and float-gate non-volatile memory which can read, program and erase to specific memory location. Can be implemented as a software update. 5 Flash Memory Background Float Gate Transistors The floating gate is an insulated conductor surrounded by oxide. Information is stored as the presence or absence of trapped charge on the floating gate. 6 Flash Memory Background Float Gate Transistors Flash cells without charge are read as 1. Flash cells have charge are read as 0. Single-Level Cells: one bit is stored per cell. Multi-Level Cells: multiple bits are stored per cell. 7 Flash Memory Background Flash Organization and Operation Read: transistor is turned on and the amount of current is detected. Erase: pushes charge off the floating-gate by applying a large negative voltage on the control gate. Write: stores charge on the floating-gate Page: the smallest unit in which data is read or written Block: the smallest unit for an erase operation Flash does not provide bit-level write or erase. 8 Flash Memory Background Aging The voltages involved place great stress on the device oxide, wearing out the device. The bit is rendered non-operational, leaving it in a stuck-at state. The program time that is required to flip a state from ‘1’ to ‘0’ for a cell tends to reduce. 9 Flash Memory Background Partial Programming Program time: the time it takes to program a Flash cell. Flash memory interface requires all bits in a page to be programmed together. The program time only reveals how long programming the entire page takes. 10 Flash Memory Background Partial Programming Partial program: aborting a program operation before completion. Partial programs: will accumulate charge on the floating gate and eventually result in the cell entering a stable programmed state. The number of partial program operations to flip a bit from 1 to 0 represents the program time for the bit. 11 Information Hiding Algorithm Overview The program time is the time it takes for a bit to change from the erased state (1) to the programmed state (0). Need to be able to intentionally change and control each bit’s program time. Stress some bits within a page more than others by controlling the value written to it. 12 Information Hiding Algorithm Overview The program times of individual bits vary significantly due to manufacturing variations. Encode one bit of hidden information using many bits in Flash memory. Use a key (hiding key) to select which Flash bits will be grouped together. 13 Information Hiding Algorithm Hiding Algorithm: Choose set of page/block. Divide the bits into fixed size group. The algorithm determines which value ( 0 or 1) need to be written. 14 Information Hiding Algorithm Hiding Algorithm: Decide on a N to exert on Flash. N is chosen to ensure good BER. Each page is programmed N time to imprint the payload into Flash. 15 Information Hiding Algorithm Recovery Algorithm: Use partial programming to measure the program time. Choose M such that at the end of M partial programs, more than half of the bits, are programmed. If bits do not flip, its program time is set to constant. 16 Information Hiding Algorithm Recovery Algorithm: Compute the median program time. If bit’s program time is above the median, set it to 1. If bit’s program time is below the median, set it to 0. X is chosen empirically. 17 Information Hiding Algorithm Recovery Algorithm: Divide bits into group. Compute average program time for each group. Bit’s payload is set to 1 if the average program time of the group is below Th, 0 otherwise. Th: the average program times of the more-stressed and less-stressed groups 18 Evaluation Setup Use custom Flash test board. Use multiple types of memory flash chip. Used the first 4,096 bits of 16,896-bit pages. 19 Evaluation Robustness – Bit Error Rate Bit Error Rate : metric for measuring robustness. Hide a randomly generated message into Flash memory and compared the retrieved message with the original. Select 5120 groups and 5000 PE cycles: BER = 0.0029 20 Evaluation Robustness BER decreases as the hiding stress increases. More stress increases the program time difference between bits hiding 1s and 0s. 21 Evaluation Robustness BER decreases with an increasing group size. The capacity decreases as more physical bits are included. the statistical variations among groups will decrease as the group size increases. 22 Evaluation Robustness Neighboring pages have a strong influence on each other. Subset of pages with specific interval K. There is not much benefit to using a group size beyond 128 and a page interval beyond 4. 23 Evaluation Effectiveness Aim to simulate the normal usage of the Flash chip. In each program operation for the initial stress, random data are programmed. As initial stress level increases, the BER also increases 24 Evaluation Performance For hiding : Throughput :16.6 bits/second. Higher with smaller number of PE cycles or group. For reading: Throughput: 564 bit/second. Higher if hiding scheme uses a smaller number of Flash bits to encode each hidden bit. 25 Evaluation Detectability Information hiding scheme uses per-bit program time. The hiding operation does not change normal Flash functions. An attacker needs to rely on checking the analog properties of the Flash memory. 26 Evaluation Detectability There is no visible pattern in per-page program time. The program time of a page shows distinct values. The program time values for each chip stay the same. 27 Evaluation Retrieval without the Hiding Key 10% of Correct Group Members Group size is a security parameter 28 Evaluation Erase Tolerance Stress the chip after hiding info. Program every bit of the page to 0. BER is quite reasonable. 29 Evaluation Different Flash Models Tested several different Flash memory models. Chips from the same manufacturer perform similarly. In MLC chip: Bits split into a fast group and a slow group. Only the faster programming bits work for info hiding. 30 Conclusion Demonstrate a technique to hide information using the program time of individual bits in Flash memory. Using groups of bits to store one bit of payload allows the technique to effectively hide information robustly with low bit error rates. Without the key, measuring analog characteristics of the Flash chip can not reveals whether the chip contains hidden information. 31 Q&A 32