As you should recall, our zeros hiding method inserts data into the dropped coefficients of the DCT. The bit-o-steg algorithm hides data within the coefficients that were not dropped. The critical part of bit-o-steg is the key used to encrypt the data. This user defined key selects which nonzero coefficients to change and which bits to change within each coefficient. The simplest key would be a key of [1]. This would change each coefficient sequentially and change the last bit in the coefficient.
As you can see in figure 1, we chose a key of [1 2]. The key will select the first coefficient and its least significant bit and input the first bit of the hidden data into that coefficient bit. Then the key will count two coefficients and take the second least significant bit and repeat the hiding process. Since this is the end of the key, it repeats, selecting the next coefficient. The length of this key has no real bound, but it must ensure that all data is hidden before reaching the last DCT coefficient in the image. There is, however, a range of values that must be selected for the key to work. Since the key alters bits, values between one and eight must be used. However, if larger values are used, it will alter the image greatly since it changes more and more significant bits.
Retrieving the data is impossible unless you have the special key used to hide the data. Once you get the key you simply reverse apply the key, extracting rather than inputting the bits and reconstruct your hidden data stream from those bits.