GIS & Steganography - Part 2: As applied to MapInfo and ArcView

April 17, 2002
Share

Sharing is Caring

See Part 1

The question was, "Can you hide a message in a typical commercial GIS data set so that it does not noticeably affect the accuracy of the map and thus reveal itself?" With the help of Bill Huber, a well-known expert in ArcView and the moderator of the public ArcView mailing list, we set out to explore the problem.

Working in MapInfo, I took the route that exploits the (usually) unused precision in a typical MapInfo data set.It turns out that MapInfo stores its coordinate information as long integers, and typically lat/lon coordinates are converted to these integers by simply multiplying them by a million (1.0E+6).This means that in a global MapInfo data set coordinates are rounded off to the nearest 6 decimals of precision, or about 4 inches.

However, if your data covers a smaller area than the whole globe, you can increase MapInfo's coordinate precision over the extent of your data by specifying coordinate bounds.This causes MapInfo to use up to 2 billion (2.0E+9) units of precision between the explicit limits of your data, providing much higher coordinate precision while still being able to pack coordinates into integers.If your original data was digitized to only six decimal places, then increasing the resolution provides you with some free bits to play with steganography.

With this in mind, I took a data set of the New England states downloaded from the US Census Bureau's FTP site ftp://ftp.census.gov and set the bounds so they spanned 8 degrees in both directions around the data.This gave me about three more decimals of precision in which to hide a message in the coordinates.I calculated that each X-Y pair could safely hold 14 bits of message each, so by slicing the message into pieces I could pack it into successive coordinates without affecting the positional accuracy of the original data at all.

Though this method proves the concept, it is quite fragile.Simply generalizing the data again by removing the bounds destroys it completely.Reprojecting the coordinate system would also have an undesirable effect on the message.But it meets two criteria important to steganography and GIS: it is hidden to the casual observer, and does not alter the original data content.

Working with ArcView, Bill Huber took a different approach.Unlike MapInfo, ArcView stores coordinates using double precision floating point numbers and there is no way to alter that.So he elected to add false, closely spaced coordinates along the longest edge in a polygon.The information was stored in the relative distances between the false vertices; a long space represented a 1 bit while the short spaces represented a 0.Sentinel bytes with distinctive bit patterns surrounded the message so that its start and end could be recognized by a decoding program no matter which way it searched through the polygon.

This technique also creates messages invisible to the naked eye, and does not affect the positional accuracy of the real coordinates.In addition, it can withstand being subjected to alternate coordinate projections.However, one must be careful in choosing the distance between the false vertices.In our original experiment, Bill encoded a message in a map of Texas, and sent it to me as a Shape file.I ran it through MapInfo's Universal Translator (which is really a subset of Safe Software's FME translator), but the process used MapInfo's default six decimal precision, which wasn't high enough, and most of the message was destroyed.In a second attempt, Bill used larger spacings between the false vertices, and I was able decode that one perfectly, proving that the technique could be used across different GIS platforms.

See Part 1

See also these resources on the web...
Go here.

Share

Sharing is Caring


Geospatial Newsletters

Keep up to date with the latest geospatial trends!

Sign up

Search DM

Get Directions Magazine delivered to you
Please enter a valid email address
Please let us know that you're not a robot by using reCAPTCHA.
Sorry, there was a problem submitting your sign up request. Please try again or email editors@directionsmag.com

Thank You! We'll email you to verify your address.

In order to complete the subscription process, simply check your inbox and click on the link in the email we have just sent you. If it is not there, please check your junk mail folder.

Thank you!

It looks like you're already subscribed.

If you still experience difficulties subscribing to our newsletters, please contact us at editors@directionsmag.com