June 2nd, 2006, 09:18 AM
I am completely new to this field. I want to implement an entry level project to understand the process of image encryption better. I would like to hide text or if easily possible an image into another one.
I have looked up on some random google searches and found LSB algorithm which uses to store one bit data in each of the 3 bits used for storing colors.
1) Is the lsb alg ogood enough to be implemented as a first project into field?
2) What is the structure of an jpeg image with headers and pixel bit positions?
3) How can i convert a jpeg to binary and find values for pixel colors and position to insert data in case of LSB algo?
4) Is the implementation feasible in VB.Net?
June 2nd, 2006, 10:42 AM
OK MM I know this is not what you were asking, but sometimes it is helpful to look at things from the other aspect, that is, detection?
This tool and the information on this site might better help your understanding?
If you cannot do someone any good: don't do them any harm....
As long as you did this to one of these, the least of my little ones............you did it unto Me.
What profiteth a man if he gains the entire World at the expense of his immortal soul?
June 2nd, 2006, 11:27 AM
The CDC (cult of the dead cow) used to have an excellent paper on this. They even had a browser called camera shy that would display stego images that were hidden within normal pages. I'm sure that someone has the archives hosted out there.
LSB will be fine to start with. There are far more complex methods used in steganography. Eric Cole has a book out on this subject called hiding in plain sight. You may want to check it out.
Our scars have the power to remind us that our past was real. -- Hannibal Lecter.
Talent is God given. Be humble. Fame is man-given. Be grateful. Conceit is self-given. Be careful. -- John Wooden
June 2nd, 2006, 02:11 PM
I used to play with steganography. S-Tools was my favorite app although it's a bit dated now (10 years old). The encryption schemes for S-Tools are IDEA, DES, Triple-DES and MDC. DES is easily cracked from what I understand. I also experimented with the Camera-Shy webbrowser for a time but found it quite ineffective picking up the DES-encrypted jpg's I used on a test site. I might have a copy of it somewhere but it would take some digging around.
Wikipedia has a nice overview:
“Everybody is ignorant, only on different subjects.” — Will Rogers
June 2nd, 2006, 02:46 PM
Hello and thanx for all the replies.
I am currently unable to find an answer to the ques 2 and 3 i posted above. On searching i have come across websites that offer to convert image for me to ascii or binary but i want an algo to do that embedded inside the applicaton that i create. Although i searched a lot but still i am unable to find an algo for conversion.
Please specify an algo for the conversion and some info about the format of the jpeg.
The wiki link was a good one.
\"The Smilie Wars\" ... just arrived after the great crusades
.... computers come to the rescue .... ah technology at last has some use.
June 2nd, 2006, 11:23 PM
camera shy browser <-- in google... 3rd or 4th link
work it harder, make it better, do it faster, makes us stronger
June 3rd, 2006, 12:21 AM
This should give you plenty of information to get you started.
It also references you to here: http://www.guillermito2.net/index-tmp.html which is one of my favorite sites.
As the paper by Niels Provos and Peter Honeyman entitled, "Detecting Steganographic Content on the Internet
" states, "The JPEG image format uses a discrete cosine transform (DCT) to transform successive 8_8-pixel blocks of the image into 64 DCT coefficients each. The least significant bits (LSB) of the quantized DCT coefficients are used as redundant bits into which the hidden message is embedded." In other words, each pixel block in a jpeg contains a small area that is basically worthless with regards to the image quality; however, this bit does provide a steganographer an excellent place to store data.
If you gain a basic understanding on how LSBs are manupulated in steganography software, you should easily be able to come up with an algorithm to do it yourself. Play around with some of the basic programs as well and try and see what it's actually doing.
This may help you as well:
Watch how it is done in C#:
(There are a series of these articles on different aspects as well)
And steganography in .NET:
There are only two kinds of programming languages: those people always bitch about and those nobody uses.