Skip to main content <#maincontent> We will keep fighting for all libraries - stand with us! Internet Archive logo A line drawing of the Internet Archive headquarters building façade. Search icon An illustration of a magnifying glass. Search icon An illustration of a magnifying glass. Upload icon An illustration of a horizontal line over an up pointing arrow. Upload User icon An illustration of a person's head and chest. Sign up | Log in Web icon An illustration of a computer application window Wayback Machine Texts icon An illustration of an open book. Books Video icon An illustration of two cells of a film strip. Video Audio icon An illustration of an audio speaker. Audio Software icon An illustration of a 3.5" floppy disk. Software Images icon An illustration of two photographs. Images Donate icon An illustration of a heart shape Donate Ellipses icon An illustration of text ellipses. More Hamburger icon An icon used to represent a menu that can be toggled by interacting with this icon. Internet Archive Audio Live Music Archive Librivox Free Audio Featured * All Audio * This Just In * Grateful Dead * Netlabels * Old Time Radio * 78 RPMs and Cylinder Recordings Top * Audio Books & Poetry * Computers, Technology and Science * Music, Arts & Culture * News & Public Affairs * Spirituality & Religion * Podcasts * Radio News Archive Images Metropolitan Museum Cleveland Museum of Art Featured * All Images * This Just In * Flickr Commons * Occupy Wall Street Flickr * Cover Art * USGS Maps Top * NASA Images * Solar System Collection * Ames Research Center Software Internet Arcade Console Living Room Featured * All Software * This Just In * Old School Emulation * MS-DOS Games * Historical Software * Classic PC Games * Software Library Top * Kodi Archive and Support File * Vintage Software * APK * MS-DOS * CD-ROM Software * CD-ROM Software Library * Software Sites * Tucows Software Library * Shareware CD-ROMs * Software Capsules Compilation * CD-ROM Images * ZX Spectrum * DOOM Level CD Books Books to Borrow Open Library Featured * All Books * All Texts * This Just In * Smithsonian Libraries * FEDLINK (US) * Genealogy * Lincoln Collection Top * American Libraries * Canadian Libraries * Universal Library * Project Gutenberg * Children's Library * Biodiversity Heritage Library * Books by Language * Additional Collections Video TV News Understanding 9/11 Featured * All Video * This Just In * Prelinger Archives * Democracy Now! * Occupy Wall Street * TV NSA Clip Library Top * Animation & Cartoons * Arts & Music * Computers & Technology * Cultural & Academic Films * Ephemeral Films * Movies * News & Public Affairs * Spirituality & Religion * Sports Videos * Television * Videogame Videos * Vlogs * Youth Media Search the history of over 835 billion web pages on the Internet. Search the Wayback Machine Search icon An illustration of a magnifying glass. Mobile Apps * Wayback Machine (iOS) * Wayback Machine (Android) Browser Extensions * Chrome * Firefox * Safari * Edge Archive-It Subscription * Explore the Collections * Learn More * Build Collections Save Page Now Capture a web page as it appears now for use as a trusted citation in the future. Please enter a valid web address * About * Blog * Projects * Help * Donate * Contact * Jobs * Volunteer * People * Sign up for free * Log in Search metadata Search text contents Search TV news captions Search radio transcripts Search archived web sites Advanced Search * About * Blog * Projects * Help * Donate Donate icon An illustration of a heart shape * Contact * Jobs * Volunteer * People Full text of "Steganography " See other formats Implementation of Spread Spectrum Image Steganography by Frederick S. Brundick and Lisa M. Marvel ARL-TR-2433 March 2001 Approved for public release; distribution is unlimited. 20010320 126 The findings in this report are not to be construed as an official Department of the Army position unless so designated by other authorized documents. Citation of manufacturer’s or trade names does not constitute an official endorsement or approval of the use thereof. Destroy this report when it is no longer needed. Do not return it to the originator. Army Research Laboratory Aberdeen Proving Ground, MD 21005-5067 ARL-TR-2433 March 2001 Implementation of Spread Spectrum Image Steganography Frederick S. Brundick and Lisa M. Marvel Computational and Information Sciences Directorate, ARL Approved for public release; distribution is unlimited. ee 2 A I AE Abstract | Steganographic techniques are useful to convey hidden information by using various types of typically-transmitted multimedia data as cover for concealed communication. Spread Spectrum Image Steganography (SSIS) is a data-hiding/hidden-communication method that uses digital imagery as a cover signal. This report describes an SSIS prototype system for embedding messages in images and extracting messages from stegoimages. The components, which were written in the Java and C programming languages, were kept modular to provide a workbench for further experimentation. We discuss experiments that were performed with the system, along with possible avenues of future research to improve the SSIS process. Table of Contents Page List.Or Figtres oie eB AGORA Sy shen eo God ee KR anal eer oe Be a Vv TSE Oe PAD ISs 2) tase nly Se Gad ete ase de a Se See heh HD a gh Ae Ge Se Nes Vv dis Tat POdUChION 4 = oe5c6 os tet eR a dees ne el dS Gp ee Rae eee: 1 2. Spread Spectrum Image Steganography... . 6... - ee eee ees 2 3. “System Components: 6 Ao iwia/a aang eee eae ee ORE OES Fal 3 3.1 ORSIMEWS. 4 ik a Bon ae ee ea oe Oe we Se $e ee ee 8 3 3.2 Error-Correcting Code (ECC) «6... ee ee 4 3.3 [nterica vet sew. 2 a ere eee aa eee ek eee rae hs, ate hee we eid 4 3.4 Message: Brabedder: c.caa9 xis Stitt eS eee ee a ee eS 4 3.5 Message Extractor a4 ka cors oa Ge AGU eee oe Be oe oes 5 3.6 Rirtor Maps t's Sg ya a ee He Be eae a ee es ee Mook 3) Sa Deinterleaver and ECC Decoder ........... 2.20026 eee eee 6 4... Prototype: SyVsteMin ee eect i OA ae Ae es ORES OO Oe eR 6 4} Overview Ho tes og eh ee ee ea eae Be CA oe eas 6 4.2 Hiding a Message 2. 2. oc we ee ee 6 4.3 Extracting a Message . 0. 6. 0 ee et es 9 5. Implementation Details. 2... 1 ee ee ee ee 9 6. luaboratoty Excursions ai. 4. 9 4-3 Gage fe ee ee Ge ee oe eg 12 6.1 Image Estimation ©... 6 ee 12 6.2 Préeniteune s.4. 2 pete Gow Eee bh eee Da See eas 13 6.3 Stegoimage Modification .. 2... . ee ee ee 14 7. “Puture Research: :-< x-2-5.ae «Gee 25d 2 Ge NG Ra EE ee he os 14 S. Surimiaty- Care ts oak ata oe anette ey eae PHASE AES ES 14 Oy SRETEPEN CES sy sek ocoetay howd ae Bieta we ba Botld Git Boe Ge ee ee 17 Disthibution: bist: <¢ 2.8.22 wath Peggle eR Be ee AU ae Ee a, 19 Report Docuinéntation Page. s a4 6 6 baw ee ee ald 2 AS ew ee Pa ey 21 ill INTENTIONALLY LEFT BLANK. Figure ee ee pee ae oy a Table Go) he urs List of Figures Page Simplified Steganography Embedder............. 2.00000 eee 2 Simplified Steganography Extractor... 2... ee es 3 Corman d Went) s.0.c0 sie: RE len oh a: ay a ch oh A RL BS Bt Bad ede 6 Ineape- Browser: .xs6 d-due Bice Gee Eee ee ae ee ae et ce eee Bee 7 Using Text Browser After Selecting Cover Image. ..... wipes als aoe Gee 8 Entering Message Key Prior to Embedding ...........-.52-00-- 8 Original Image and Stegoumage 52... 3-84 iw Reta he oe ee 9 Entering Message Key Prior to Extraction .........-+05 ee eee 10 Error Map and Extracted Message . 2... 1. ee ee ee ees 10 Error Map With Obvious Edges .. 2 2 1. oe ee 13 List of Tables Page Error-Correcting Codes. ........... le eee ie Ge es 11 BER asa Function of Power s.2 22% 4.44 44 o eked ae ew Oe ee ES 12 BER for Prefiltered Images o.0 gc-0 ae fo ee we i a ee te he 13 INTENTIONALLY LEFT BLANK. vi 1. Introduction The prevalence of multimedia data in our electronic world exposes a new avenue for communication using digital steganography. Steganographic techniques are useful to convey hidden information by using various types of typically-transmitted multimedia data as cover for concealed communication. The inability to detect the hidden data, perceptually or by computer analysis, is paramount for surreptitious operation. There are many applications for techniques that embed information within digital images. The dispatch of hidden messages is an obvious function, but today’s technology stimulates even more subtle uses. In-band captioning, such as movie subtitles, is one such use where textual information can be embedded within the image. The ability to deposit image cre- ation and revision information within the image provides a form of revision tracking as another possible application of digital steganography. This avoids the need for maintaining two separate media, one containing the image itself and one containing the revision data. Authentication and tamperproofing as security measures are yet other functions that could be provided. Digital image steganographic techniques can also provide forward and back- ward compatibility by embedding information in an image in an imperceptible manner. If a system has the ability to decode the embedded information, new, enhanced capabilities could be provided. If a system did not have the capability to decode the information, the image would be displayed without degradation, leaving the viewer unaware that the hidden data exist. These are but a few of the possible uses of image steganography. Spread Spectrum Image Steganography (SSIS), is a data-hiding/hidden-communication method that uses digital imagery as a cover signal. SSIS provides the ability to hide and recover, error free, a significant quantity of information bits within digital images, avoiding detection by an observer. Furthermore, SSIS is a blind scheme because the original image is not needed to extract the hidden information. The proposed recipient need only possess a key in order to reveal the hidden message. The very existence of the hidden information is virtually undetectable. This report describes an SSIS prototype system for embedding messages in images and extracting messages from stegoimages. Portability was a major consideration when designing this application. The research and initial experimentation had been performed in MATLAB and C under the UNIX operating system, while the target system for the prototype was a laptop running Windows 95. This was achieved by rewriting the MATLAB portions in ANSI C and by using Java for the graphical user interface (GUI). The initial intention for building the prototype was to provide a vehicle by which to demonstrate the concepts of SSIS. However, the prototype was found to be very useful from a research standpoint. It was important to build flexibility into the system to provide a workbench for further experimentation. Each of the major components was written as a separate program, which also allowed multiple researchers to work on different areas of the problem. In addition, tests could be performed without having to modify the prototype. After providing background information on the steganography process, we will discuss the components of the SSIS prototype and how they work together to function as an intact system. The methods used to derive empirical values are explained, along with some excur- sions into alternative ideas and a brief analysis of the results. 2. Spread Spectrum Image Steganography Spread Spectrum Image Steganography (SSIS) works by storing a message as Gaussian noise in an image (Marvel, Boncelet, and Retter 1998, Marvel et al. 1999). At low noise power levels, the image degradation is undetectable by the human eye, while at higher levels the noise appears as speckles or “snow.” The process consists of the following major steps, as illustrated in figure 1: 1. 2 3 4, 5 6 Cover Image Create encoded message by adding redundancy via error-correcting code. . Add padding to make the encoded message the same size as the image. . Interleave the encoded message. Generate a pseudorandom noise sequence, 7. . Use encoded message, m, to modulate the the sequence, generating noise, s. . Combine the noise with the original image, f. Pseudorandom Noise Generator Figure 1. Simplified Steganography Embedder. Figure 2 shows the decoding process. Notice that the original image is not required to recover the hidden message. A filter is used to extract the noise from the stegoimage, resulting in an approximation of the original image. The better this filter works, the fewer errors in the extracted message. This is discussed further in section 6.2. Received Stegoimage Restoration Filter Pseudorandom Noise Generator Figure 2. Simplified Steganography Extractor. The reverse process, of extracting and restoring the original message, is of course very similar: 1. Filter the stegoimage, g, to get an approximation of the original image, ft 2. Subtract the approximation of the original image from the stegoimage to get an estimate of the noise, §, added by the embedder. 3. Generate the same pseudorandom noise sequence, n. 4. Demodulate by comparing the extracted noise with the regenerated noise. 5. Deinterleave the estimate of the encoded message, rn, and remove the padding. 6.. Use error-correcting decoder to repair the message as needed. 3. System Components 3.1 Overview During the initial research phase of the SSIS work, each major step was performed by a different component. The image manipulation had been done with MATLAB, an integrated technical computing environment that combines numeric computation, advanced graphics and visualization, and a high-level programming language (MathWorks 1999). When this prototype was built, the operations that had been performed with MATLAB were rewritten in C for portability. The discussion that follows gives a summary of each component and its operation. 3.2 Error-Correcting Code (ECC) A family of ECC programs was written (in the C programming language) to read a message file and insert error-correcting codes. Each program uses a different set of codewords to enable it to correct a specific bit error rate (BER) (Retter 1995). The BER is computed as a percentage that represents the number of bits in error divided by the total number of bits. For the block codes used here, the BER is computed on a block-by-block basis with a block equivalant to a segment of bits that is equal to the number of input bits. There is a tradeoff between the BER correcting capability and the message payload. This can be related to the the rate of ECC, which indicates the ratio of the number of input bits to the output bits. Typically, codes that have a low rate (less than 0.3) can correct a significant number of errors but at the cost of a large overhead. Use of a low rate code results in a low payload throughput. A higher rate ECC, on the other hand, may not correct as many errors but incurs less overhead and thereby has a higher payload throughput. Four different sets of codewords were generated to cover a range of BERs. 3.3. Interleaver Gaussian noise is added to the image by having each bit in the encoded message alter each pixel in the image. This requires that the message and image be the same size, so the encoded message is padded with zeroes. Experimentation has shown that filtering to remove the noise from the stegoimage at the receiver causes errors typically to occur in bursts, usually correlating to the edges in the image. The ECC works much better if the errors are not clustered together since the ECC BER is computed on a block basis. Therefore, the ECC has a better opportunity to decode correctly when the errors are spread uniformly throughout the entire image. To minimize the chance that an encoding block will have more errors than it can correct, the encoded message bits are interleaved or redistributed throughout the message. This act causes the number of errors in any encoding block to occur in an equally likely fashion. 3.4 Message Embedder Another C program, based on code developed in MATLAB, was written to combine the cover image with the modified message. The user provides a key and the variance (power) of the noise. In order to store a large payload, a high rate ECC must be used, which in turn requires a low BER. This may be achieved by employing a larger power, but that degrades the quality of the stegoimage. A series of debug flags may be set when the program is run to record the computations and verify that everything is working properly. The embedder was validated by examining the results at each stage. A stegoimage must be independent of the computer architecture that was used to create it. A standard graphics format was used for the images, and the byte-oriented algorithm used by the ECC avoided architectural byte-ordering problems.* The only architectural issue involved the code to generate the pseudorandom noise. The library functions available on the UNIX and Windows platforms were drastically different and did not even return the same size numbers, much less the same sequence. The pertinent functions were extracted from the GNU? C library (Free Software Foundation 1996). Tests showed that a Sun and a PC generated the same sequence when given the same key. 3.5 Message Extractor During the early stages of the work, the message extractor was a separate program. Since the embedder and extractor share much of the same code, they were later combined into a single program. This had the unplanned benefit of allowing various experiments to be performed as shown in section 6. The user still provides the key for the random number sequence in order to extract the message. He may also specify which one of several built-in restoration filters is used on the stegoimage. To avoid constantly adding new filters to the program and to make it easy to test filters for which source code was not readily available, an option was included to let the user provide a prefiltered image. In figure 2, the Restoration Filter box is removed, and the user supplies the filtered image, q , directly. 3.6 Error Maps The extracted message may have errors because the restoration filter may not perfectly generate the original cover image. These errors often occur along edges in the image. Even when the cover image was supplied as the filtered image during testing, the message was not always correct. The reason for this is truncation errors caused when noise was added to an image pixel resulting in a value less than 0 (black) or greater than 255 (white). A Perl script (Wall, Christiansen, and Schwartz 1996) was written to compare an original and extracted message and count the number of bits that are incorrect; in other words, it computes the BER. It also creates a new image, where a white pixel indicates the message bit was correctly extracted and a black pixel indicates an error. These images, called error maps, showed the errors are not random and occur along edges and white or black areas in the image as shown later. *The Sun used to develop the software is big-endian, while Intel chips are little-endian. ?The GNU project includes a portable C compiler and library functions. 3.7 Deinterleaver and ECC Decoder The bits that make up the extracted message are restored to their original positions by reversing the interleaving process. The process is completed by running the extracted and deinterleaved message through the C program that matches the original code (i.e., uses the same codewords). The final result is a file that contains the recovered message. 4. Prototype System 4.1 Overview A program was written in Java 1.2 (Flanagan 1999) to allow anyone to run all of the above components without being aware of the details. It allows the user to choose a cover image from a group of thumbnail images, select a text file, and create a stegoimage. They may also browse thumbnails of stegoimages (images with messages hidden in them), pick one, and extract the original message. Because the prototype system is GUI-based, much of the explanation that follows is in the form of screen dumps. 4.2 Hiding a Message When the prototype is first started, it reads and stores all of the sample text files along with the message sizes and titles. It then presents the user with a simple prompt to “Select an option from the Command menu.” The menu is shown in figure 3 with the user about to select Create Stego Image. . Figure 3. Command Menu. Once the user has entered the stegoimage creation mode, the main window displays two empty panes. The one on the left is for the cover image, while the right-hand pane is a scrollable area for the display of the message to be hidden. A button under each pane allows the user to select the files he wants. Figure 4 shows the image browser with the sample set of cover (or “plain”) images, while figure 5 shows the text browser on top of the main window. The number after each message title is the size of the message in characters. Faicover image Browser Figure 4. Image Browser. In figure 6, the user has chosen both a cover image and a text message. The DolIt button appeared, the user clicked it, and now a dialog is asking the user to enter a password to be used as the embedding key. The password is converted into an integer as required for the random number generator, or the user may enter an integer key directly. The image, message, key, and some other values are passed to the C programs that insert the ECC and create the stegoimage. The original image and the stegoimage are displayed so the user may see the degradation in image quality. This is shown in figure 7. The message file is saved for later comparison with the extracted message so that the errors may be displayed and the BER computed. The Paris Peace Treaty of 1783 (WVhich ended the Revolutionary War} : fie menes holy and ine Providence to e most serene Gearge the Third, of Great Britain, ender of the faith, unebourg, W arch-treasurer and prince elector of the Holy Roman Empire etc., and of the United States of America, to forget all pas qa misunderstandings and differences that arn cabanas intavnimtad tan anna Figure 6. Entering Message Key Prior to Embedding. eqanoqTaphy Prototune Figure 7. Original Image and Stegoimage. 4.3 Extracting a Message The sequence of steps to recover a hidden message from a stegoimage begins with the user selecting Extract Message from the command menu, which causes the main window to display a single, empty pane. Clicking on the Stego file button opens an image browser like the one in figure 4, only this time it displays thumbnail images of the stegoimage files. Once again, clicking the DolIt button causes the password dialog to appear as shown in figure 8. The C programs manipulate the stegoimage—extracting, deinterleaving, and correcting the message. The error map* and final message are both displayed, and the process is complete. This is demonstrated in figure 9. Notice that the sky contains very few errors, while the sharp lines caused by the vehicle antennae are clearly visible, caused by the inability of the current filter to remove noise in the edge areas. The text in the right-hand pane has some errors, indicating the error-correction scheme did not repair all of the errors. 5. Implementation Details The prototype steganography system must run with a minimum of user intervention. The ECC programs currently support four sets of codewords as shown in table 1. More correcting code must be added as the error rate increases (becomes worse), which reduces the size of “The error map is not required, but is displayed to show that the estimated message contains errors that must be corrected. Figure 8. Entering Message Key Prior to Extraction. Steganagi aphy Prototype The Paris Peace Treaty of 1783 (hich ended the Revolutionary Wor Inthe name of the most holy and ve } undivided Trinity. | ithaving pleased the Divine Providence to disPose the hearts of the most serene and most potent Prince George the Third, by the grace of God, king of Great Britain, France, and Ireland, defender ofthe faith, dule of Brunswick and Lunebourg, arch-treasurer and prince elector of the Holy Ramad Empire etc., and ofthe United States of America, to forgeu ail past misunderstandings and differences trad bain senbanni iwdamninéaad sha an Figure 9. Error Map and Extracted Message. 10 the payload. The payload in bits per pixel is the payload divided by the ECC rate or bit ratio (e.g., 40/155 = 0.2581). The last column—payload capacity in characters—is based on the 256 x 256 pixel cover images used in the prototype.” If the text message is compressed, the overall capacity may be increased, but compression schemes may be fragile and may fail when the data contains errors. Table 1. Error-Correcting Codes BER Correcting | Payload | Payload Capability (bpp) (char) Code (155,40) (378,36) (889,35) (2040,32) The BER for various stego powers must be computed in order to determine the power required for each payload size. A message was hidden into the same cover image using a variety of powers. Each was then extracted and the BER computed by comparing the extracted (but not error-corrected!) message with the original message. Table 2 contains the error rates for two of the sample images. The goal is to use the smallest power to hide a message, thus minimizing the amount of noise in the stegoimage, which corresponds to its visual appearance. These values are emboldened in table 2. Notice that Image 1 achieves all four error rates and thus may embed a message up to each specified size. Image 2 starts at a lower BER but does not get much better, so it is incapable of hiding a message of 2114 characters. The BER is always higher than the desired value of 12%. A power of 150 has an error rate of 16%" and the picture quality is becoming unacceptable. A payload capacity file was created for each of the cover images. It contains pairs of numbers listing the threshold powers and message sizes that were determined empirically. When the user selects a cover image and a message, the image’s capacity file is read to determine what power should be used to generate the stegoimage. If the message exceeds the capacity of the image, an error message is displayed and the user is prompted to choose a different. message or cover image. When the user wishes to extract the message from a stegoimage, he must supply the same key which was used as the embedding key. Normally, he would also give the power of the noise. Since this value was provided during the embedding process without his knowledge, it is incorporated into the name of the stegoimage file. In a fielded system, the user would be told what power had been used to generate the image, and this value would somehow be conveyed, as part of the key, to the person who performs the extraction. *For example, (0.2581 x 256 x 256)/8 = 2114.36 hidden characters. tIncreasing the stego power results in smaller improvements of the BER, approaching a limit of just under 16%. ll Table 2. BER as a Function of Power Power | BER _ | Payload BER 28.5690 25.3815 23.7106 23.2391 21.2021 22.0413 19.3634 21.1685 18.1107 20.5292 17.1417 20.0500 16.2643 19.6060 15.5838 19.2245 14.8941 18.8339 14.4165 18.5989 13.8596 18.3060 13.4476 18.0389 13.1241 17.8650 12.8143 17.6682 12.4878 17.5140 12.2711 17.3676 11.9614 17.2623 11.7783 17.1204 11.5616 17.0166 11.3571 16.9357 Laboratory Excursions The modular design of the prototype steganography system makes it very easy to con- duct experiments. Because the embedding and extraction of a message in a stegoimage is performed in a single program, it is very easy to share code. The Java front end was not used in the laboratory tests because it limits the user’s choice of parameters. The various programs were either invoked manually or with an automated script. This is work in progress, so general observations are made, but a detailed analysis of the results is not possible at this time. 6.1 Image Estimation The first step in extracting a message from a stegoimage consists of applying a restoration filter to the stegoimage. If the filter perfectly reconstructs the original cover image, the embedded message should be recovered with no errors. However, the extracted message sometimes contained errors caused by truncation, as explained in section 3.6. 12 The better the filter works, the fewer errors there are in the extracted message. A stegoim- age was created and subjected to a variety of filtering programs. The filtered stegoimages were then supplied to the message extraction program, and the BER was computed for each one. In this way a number of filters were (and continue to be) evaluated, and a few were incorporated into the steganography program. 6.2 Prefiltering Edges that appear in an image are a major source of extraction errors. The edges in © figure 10 are readily apparent; both the outline of the mountain and the window frames on the building are clearly visible. An experiment was conducted where a filter was applied to the cover image before the message was added to it. This had the effect of smoothing out the edges, and the BER of the extracted message was reduced dramatically as shown in table 3. However, the stegoimages produced had a blurry, slightly out-of-focus appearance and were deemed visually unacceptable at this time. tite bt Bs ny e: $55 Figure 10. Error Map With Obvious Edges. Table 3. BER for Prefiltered Images Image Prefiltered A 19.28 6.78 B 24.24 10.29 C 12.81 6.43 13 6.3. Stegoimage Modification A related idea approaches the filtering problem from a different direction. Instead of finding a better filter or blindly prefiltering the cover image, take the extraction process into account. Generate the stegoimage the usual way, then immediately extract the message. The original message is still available, and errors may be readily detected. The embedder may be modified to call the appropriate extraction functions and use the errors as immediate feedback to make corrections. Various adaptive techniques are being explored, and early results have shown that the BER may be reduced significantly with little effect on the quality of the stegoimage. 7. Future Research SSIS is made up of several components, and each of them may be enhanced to improve the entire process. For example, one of the ECC codeword sets has been replaced with a set that fixes more errors, and a fifth ECC scheme is being tested. Another idea is to add some intel- ligence to the error-correcting process. It is known that edges cause problems, so some form of edge detection must be used to augment the ECC algorithm (Marvel and Retter 2000). A solution to the truncation problem may lie in scaling the data so that all pixel values are in the range of the original image. Preliminary tests show that adding a feedback loop to the embedding process reduces extraction errors without degrading the stegoimage, although care must be taken to ensure the image is not altered in an unacceptable manner. A filter that produces mediocre results with the standard algorithm may turn out to be much better when feedback is included. All changes made to the stegoimage must be transparent to the extractor; no out-of-band data may be exchanged between the sender and recipient (besides the key and stego power) before the message is extracted. A more elaborate approach is to automate the entire process. The current prototype requires the user to select the cover image for his message, and the power used in the embedding is based on a fixed table of message sizes. The embedding and extraction portions of the SSIS process are fairly quick, and it may be possible to iterate on a range of powers to determine the best to use for a given message and image combination. An algorithm to determine picture quality, by comparing the cover image and stegoimages, may be added to automatically determine if a power results in an acceptable image. 8. Summary SSIS has been shown to be a powerful way to transmit messages via normal channels without an observer detecting them. The prototype system described in this report is both functional and portable, using languages available on a variety of platforms. The modular design of the system allows components to be replaced with more powerful ones and lends 14 itself to casual experimentation by multiple researchers. Some of the “what-if” excursions that have been conducted were not anticipated during the development phase of SSIS. More experiments are expected as the process is refined further. 15 INTENTIONALLY LEFT BLANK. 16 9. References Flanagan, D. Java in a Nutshell. Sebastopol, CA: O’Reilly & Associates, 1999. Free Software Foundation. GNU C Library. http://www.gnu.org/software/libc/, 1996. Marvel, L. M., C. G. Boncelet, Jr., and C. T. Retter. “Methodology of Spread-Spectrum Im- age Steganography,” ARL-TR-1698, U.S. Army Research Laboratory, Aberdeen Proving Ground, MD, June 1998. Marvel, L. M., C. G. Boncelet, Jr., and C. T. Retter. “Spread Spectrum Image Steganog- raphy,” JEEE Transactions on Image Processing, Vol 8, No 8, pp 1075-1083, August 1999. Marvel, L. M. and C. T. Retter. “The Use of Side Information in Image Steganography,” To be presented at the 2000 International Symposium on Information Theory and Its Applications (ISITA’2000), Honolulu, HI, 5-8 November 2000. MathWorks. MATLAB. http://www.mathworks.com/products/matlab, 1999. Retter, C. T. “Binary Weight Distributions of Low Rate Reed-Solomon Codes,” ARL-TR- 915, U.S. Army Research Laboratory, Aberdeen Proving Ground, MD, December 1995. Wall, L., T .Christiansen, and R. L. Schwartz. Programming Perl. Sebastopol, CA: O’Reilly & Associates, 1996. INTENTIONALLY LEFT BLANK. 18 NO. OF” COPIES NO. OF ORGANIZATION 2 DEFENSE TECHNICAL 1 INFORMATION CENTER DTIC DDA 8725 JOHN J KINGMAN RD STE 0944 FT BELVOIR VA 22060-6218 HQDA DAMO FDT 400 ARMY PENTAGON WASHINGTON DC 20310-0460 OSD 3 OUSD(A&T)/ODDDR&E(R) RJTREW THE PENTAGON WASHINGTON DC 20301-7100 DPTY CG FOR RDA 1 US ARMY MATERIEL CMD AMCRDA 5001 EISENHOWER AVE ALEXANDRIA VA 22333-0001 INST FOR ADVNCD TCHNLGY THE UNIV OF TEXAS AT AUSTIN PO BOX 202797 AUSTIN TX 78720-2797 4 DARPA B KASPAR 3701 N FAIRFAX DR ARLINGTON VA 22203-1714 US MILITARY ACADEMY MATH SCI CTR OF EXCELLENCE MADN MATH MAJ HUBER THAYER HALL WEST POINT NY 10996-1786 DIRECTOR US ARMY RESEARCH LAB AMSRL D DR SMITH 2800 POWDER MILL RD ADELPHI MD 20783-1197 19 COPIES ORGANIZATION DIRECTOR US ARMY RESEARCH LAB AMSRL DD 2800 POWDER MILL RD ADELPHI MD 20783-1197 DIRECTOR US ARMY RESEARCH LAB AMSRL CI AI R (RECORDS MGMT) 2800 POWDER MILL RD ADELPHI MD 20783-1145 DIRECTOR US ARMY RESEARCH LAB AMSRL CILL 2800 POWDER MILL RD ADELPHI MD 20783-1145 DIRECTOR US ARMY RESEARCH LAB AMSRL CI AP 2800 POWDER MILL RD ADELPHI MD 20783-1197 ABERDEEN PROVING GROUND DIR USARL AMSRL CI LP (BLDG 305) NO. OF NO. OF COPIES ORGANIZATION COPIES ORGANIZATION ABERDEEN PROVING GROUND 19 DIR USARL AMSRL CI DR N RADHAKRISHNAN ‘DR J GANTT AMSRL CIC DR J GOWENS AMSRL CICN H HARRELSON (4 CPS) AMSRL CI CT F BRUNDICK (5 CPS) G HARTWIG DR L MARVEL (5 CPS) DR C RETTER 20 REPORT DOCUMENTATION PAGE pel ape ee Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this 4. TITLE AND SUBTITLE 5. FUNDING NUMBERS Implementation of Spread Spectrum Image Steganography AH480TEP20 6. AUTHOR(S) Frederick S. Brundick and Lisa M. Marvel 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) 8. PERFORMING ORGANIZATION REPORT NUMBER U.S. Army Research Laboratory ARL-TR-2433 ATTN: AMSRL-CI-CT Aberdeen Proving Ground, MD 21005-5067 9. SPONSORING/MONITORING AGENCY NAMES(S) AND ADDRESS(ES) 10.SPONSORING/MONITORING AGENCY REPORT NUMBER 41. SUPPLEMENTARY NOTES 12a. DISTRIBUTION/AVAILABILITY STATEMENT 12b. DISTRIBUTION CODE Approved for public release; distribution is unlimited. 13. ABSTRACT(Maximum 200 words) Steganographic techniques are useful to convey hidden information by using various types of typically-transmitted multimedia data as cover for concealed communication. Spread Spectrum Image Steganography (SSIS) is a data-hiding/hidden-communication method that uses digital imagery as a cover signal. This report describes an SSIS prototype system for embedding messages in images and extracting messages from stegoimages. The components, which were written in the Java and C programming languages, were kept modular to provide a workbench for further experimentation. We discuss experiments that were performed with the system, along with possible avenues of future research to improve the SSIS process. 14, SUBJECT TERMS 15. NUMBER OF PAGES steganography, capacity, hidden communication, implementation 23 16. PRICE CODE 17. SECURITY CLASSIFICATION 18. SECURITY CLASSIFICATION 19. SECURITY CLASSIFICATION OF REPORT OF THIS PAGE OF ABSTRACT UNCLASSIFIED UNCLASSIFIED UNCLASSIFIED NSN 7540-01-280-5500 Standard Form 298 (Rev. 2-89) 21 Prescribed by ANSI Std. 239-18 298-102 INTENTIONALLY LEFT BLANK. 22 USER EVALUATION SHEET/CHANGE OF ADDRESS This Laboratory undertakes a continuing effort to improve the quality of the reports it publishes. Your comments/answers to the items/questions below will aid us in our efforts. 1. ARL Report Number/Author_ARL-TR-2433 (Brundick) Date of Report_March 2001 2. Date Report Received 3. Does this report satisfy a need? (Comment on purpose, related project, or other area of interest for which the report will be used.) 4. Specifically, how is the report being used? (Information source, design data, procedure, source of ideas, etc.) 5. Has the information in this report led to any quantitative savings as far as man-hours or dollars saved, operating costs avoided, or efficiencies achieved, etc? If so, please elaborate. 6. General Comments. What do you think should be changed to improve future reports? (Indicate changes to organization, technical content, format, etc.) ee Organization CURRENT Name E-mail Name ADDRESS Street or P.O. Box No. City, State, Zip Code 7. If indicating a Change of Address or Address Correction, please provide the Current or Correct address above and the Old or Incorrect address below. Organization OLD Name ADDRESS Street or P.O. Box No. City, State, Zip Code (Remove this sheet, fold as indicated, tape closed, and mail.) (DO NOT STAPLE) NO POSTAGE NECESSARY DEPARTMENT OF THE ARMY ] | | | | IF MAILED OFFICIAL BUSINESS IN THE UNITED STATES BUSINESS REPLY MAIL FIRST CLASS PERMIT NO 0001, APG, MD POSTAGE WILL BE PAID BY ADDRESSEE DIRECTOR U.S. ARMY RESEARCH LABORATORY ATIN AMSRL CI CT ABERDEEN PROVING GROUND MD 21005-5067