To the 4 people asking: No. RUclips does its own (lossy) compression afterwards when you upload a video. So if you download it from RUclips, it's not the same file as the one which was uploaded.
Truly this is a remarkable area of study. Why just the other day I was looking at what appeared at first to be a picture of a herd of braying donkeys. It was only with careful scrutiny of the image I realized that O was actually staring at a picture of parliament.
Every time Dr. Pound makes a video he goes "oh I've written a program for this..." then they never show us the code! It would be fantastic if you guys could share Dr. Pound's work for learning purposes.
@mahneh7121I think it sounds to be relatively easy. You may use the Gimp script-fu to update the color registry in order to read and write the message. I would like to try it but I do not have time.
i would advise against this, for child safety reasons. some things arent simplified for the public on purpose, though im sure you just didnt think about it. ❤ itd be cool tho :)
A very interesting video on how e.g. the entire works of Shakespeare can be hidden in one digital photo. Kudos to Dr Pound for yet another extremely clear and understandable explanation of a complex topic!
A fairly good example of steganography that you may have come across without realising was the video game Spore. In it, you could drag the images of creatures/spaceships/buildings/etc. into the game's editor and it would then read the hidden data describing that creation from within the image and load it into the editor.
I must have watched a million Tech videos and read three times as many online articles before I found this guy here on computerphile and I have come to realize without question that this man is dangerous. Very few people possess this level of knowledge and the videos are by far the best on the internet. Keep up the good work!👍👍
There was a story about how a big company like Tesla found out who leaked their documents. Every employee that got those documents received his version. And the only difference was a double space-character somewhere in the doc. So after it got leaked, they only had to look where in that doc the double space was, and therefore found the whistleblower
I played around with this a bit in the late '80s. I wrote a program that would take a TGA file and put the message in the two least significant bits of each channel, just as he describes in the video. I found that I could tell the point at which the message stops, because the image just gets a bit less noisy and more clean. This could be an indication to someone else that you were hiding a message, if they were familiar with the process. My solution was to generate random numbers and do the rest of the pixel data randomly. If your message is encrypted (which it should be; steganography is no substitute for sound encryption), then it should be indistinguishable from randomness anyway, so this should successfully hide the fact that you've hidden a message to begin with. Of course, this isn't going to work with lossy algorithms like JPG. Today, just use PNG.
Shane Killian Hmmm, I see later in the video that he is doing it on JPGs using transform curves. Interesting, but it again wouldn't survive re-saving the image in a different format.
Shane Killian Another way would be for two people to have a key and based on the key and the amount of data, the program can put the data in the LSB of evenly distributed pixels maybe with a prng maybe using the key as a seed (which would look random) to select the interval and using the size of the data to put a limit on the size of the interval so you can fit it all in, all you would need would be the key and the size of the file and the program to decrypt it. That way the whole image would look very slightly noisy if you look closely, like it was badly compressed, and with smaller messages it would pretty much be entirely undetectable and probably quite good for that purpose. But of course there is still the problem of frequency analysis, especially with larger messages.
username_unavailable You could make it where two images are required. You'd come up with random numbers for one image, and then for the second image use that same random sequence XORed with the message. So a cryptanalysis of either image individually will just show indecipherable noise; you'd need to know which two images to combine. And again, have a layer of encryption below that in case they do find the message.
+Shane Killian Surprisingly, digital watermarking in the form of Cinavia content protection is indeed resistant to mangling by transcoding. Perhaps they key is merely robust erasure coding and having an extremely small identifier tag.
I'd advise against using PNGs for steganography. PNGs are usually used for storing content with lots of large uniform areas (and leverages this uniformity for file size reduction). If you hide data in the LSB in a PNG, 1, the resulting noise will be quite noticeable and 2, the file will be _huge_ (because there will no longer be large uniform areas it could compress).
Instead of trying to detect JSTEG, wouldn't it be possible to destroy the message by slightly altering the image? For instance, you could add a very slight blur, NR or USM which doesn't alter the image that much, but completely ruins any hidden message. Or add a small and complex distortion pattern, etc. In other words: if I upload a JSTEG image to facebook/whatsapp, and then the image gets recompressed/resized or noise reduction is applied, then it would be impossible for the receiving party to recover the message hidden inside.
***** Yep. That's an issue with steganography, it's quite easy for other algorithms to destroy your hidden data. But the same is true with older techniques. If you photocopied (or transcribed) a letter with hidden ink, you'd lose your hidden message.
Jesse Mitchell Similarly with the "early movie previews" and stuff that they mentioned at the end of the video, just re-encoding the video (maybe twice between different codecs?) will destroy the message too. Pictures that weren't directly saved (like if they were copy and pasted into paint or something) would lose the message too if saved into a different format.
109Rage Only if the format you are converting into has a lossy compression, otherwise changing the format would just get you the same image in another format.
rangedfighter 109Rage Even if you use lossy compression, I can imagine (but I'm not sure) that if the lossy compression leaves parts of some frames "unharmed" while every frame is watermarked many times (maybe 1000 times or more per frame), that the watermark would slip through. A watermark only needs to be 2 bytes maybe, how many copies of a movie would you really distribute? 16 bits would need 8 bytes to piggyback on. Maybe a watermark is 16 bytes, but still it would fit many times in a frame. Millions of frames in a video... You could analyse the illegal video, and see if a certain watermark value pops up 100 times more often than any other (damaged) value... I'm just guessing, I admit, but I think you can make it "lossy-compression-proof" up to a point.
Robstar In theory, lossy compression would leave low entropy frames unharmed. But that isn't the case. Most algorithms simply run their filter on everything indiscriminately, because in the end, it helps the compression ratio. And as you know, even if you were to encode a video correctly, RUclips's algorithms would still harm it. A watermarking method like you described might actually work (theoretically), but it would not be able to contain very much data. And to be retained at a decent frequency (these are some very viscous data culling algorithms we're talking about), the watermark would have to be visibly noticeable.
Technically, you could modify the least significant bit of all three color channels to give you three bits per pixel. For a 1920x1080 picture, that would give you enough space to embed a message that is (1920*1080*3) / 8 bytes large, or 777, 600 bytes, and it would be imperceivable, as each color channel would only be one bit different, like the difference in 255 and 254, you would not notice it. This assumes the image format preserves three channels of pixel information, like PNG.
This is brilliant. You can effectively store 1/4 as many bits of data in an image as the image has while only modifying the original image by less than 1/64th.
I love your videos, i bought like 8 books on security including the CISSP exam study, and I’m learning a ton from watching your videos. I even studied cryptography because i love computers, i used to love science, now its CS.
The guys who created the Fairlight Computer Musical Instrument went on to devise security protocols. One thing they did (this was in the 90s) was have a printer produce unique hard copies of a document by altering the kerning of the characters. The alteration was not only unique but coded so that if a copy was leaked, the software could scan it back and decode the kerning to identify whose copy it was. This looks like a hugely sophisticated version of that software. My brain hurts...
I made a program that takes the individual colors, picks two of them (based on a predefined pattern), and encodes the data in the least significant bit of both for every pixel. Optionally, you can even use an xor to encode the data instead, making it even more confusing.
If they did there'd be no way to get it out... RUclips compresses everything that people upload and their compression is lossy, so any extra information that may have been snuck into the original edit has been washed away to save computer bandwidth.
@@Benjamoomin64 If they used a repeating message and took into account the compression methods used then it should be possible. JPG itself is lossy but they take JStag takes that into account.
@@grn1 RUclips does lossy compressoen *on top of that* If you upload a video to RUclips and then redownload it, it won't be the same file anymore. It's irreversibly lossily compressed.
Least-significant bit can be detected because it makes certain colours less common or more common than they should be. For example, 255 (maximum 8-bit value, i.e. full intensity/white) is far more common than certain other 25X values usually.
TazeTSchnitzel Unless you apply good encryption, of course, in which case the LSBs should look random. Then again, maybe the LSBs in the original aren't random.
You could use this to hide a watermark, and then you could prove it's yours by comparing your image with the infringing source. If it has the watermark, it's definitely a copy. Edit: Ah, well he _did_ say about this at the end of the video. Ignore me!!!
I suspect it would not work if the image was slightly modified over the entire image, such as brightness going up or down by 1% would ruin the Steganography message. I guess it depends, because in most situations, people wouldn't modify the image.
one use: I have a website that has copyrighted images. What I do is, each time a user visits the site instead of just serving the raw image, the image is first passed through a script which hides the user's username in the image. That way if one of our images pop up somewhere on the internet it shouldn't be, I can find out which exact user is responsible for it.
Dante Tucker That's an awesome idea. I'm guessing you don't tell the user this? That would probably lead to them editing it to get rid of the watermark if at all possible.
@S H A classifier still breaks the value of the steganography. The encryption is an added layer of security. The purpose of the steganography was to hide that a message was being sent at all. If the classifier notices that there's a message, the fact that the message is being sent has been revealed. Or... in a more practical example, the watermark that was hidden is revealed. At the very least, it's revealed that there is a watermark... and we can almost definitely scrub over the watermark. So, if someone tries to scan and find their watermark, it won't be there.. because we were able to find it and scrub it out. So, we don't really have a way to prevent that yet... it's really security through obscurity.
I actually had a bit of steganography as my final exam for some class, the professor hid a message in a picture and told me to "extract" it any way i see fit :D
You could use the least significant bits as a bitplane, with a skip between data bits, and xor more significant bitplanes over those thus making the lowest plane look like it belongs in the picture. You could probably cram 3 or 4 bits per plane that way.
hiding more data usually will mean hiding another image inside the original, and the more modern approach seems to involve FFT of the original image, there are some papers about those methods, but they are a bit above my comprehension, but the approach seems much more robust against recompression, resizing, cropping and so on and there is plenty of proof that it is being used on social media by popular accounts, because the competition for attention and payoff is just too big, so they use quite dirty tricks to attract people, think subliminal messaging using adult content
You could do this with videos as well, and then you have the opportunity to perform transforms over time as well as across the image. But since I thought of it now, somebody has probably already done it. Is it something you could make a video of, computerphile ?
Shakespeare wrote 37 plays which on average had 22,600 words. This equals 836,200 words in total and if we assume that an average word has 4 characters this would amount to 3.34 million letters. Since every character equals 1 byte (according to ASCII, but correct me if I'm wrong) wouldnt this make the size of Shakespeare's work combined 3.3 Megabytes rather than 1.5 Megabytes as he said at 4:04 ?
At 7:28 the inerquartile computing unit is actually incorrect. I've studied it for about 3 years now and the complexion of the quadratic formula is hidden in the JPEG code. Cause if you document.write (a_bc) + SQL a=0b it will result in the quaritization of 0, hence the quadratic code is equal to 0, so it can't be it. Check my reply for my proof.
I did a small amusement app, "The Steganographer", with Javascript and PHP this Summer. The Big image should be atleast 4 times bigger than the one to be hidden. Don't forget besides the RGB components you can also use the ALPHA channel(the channel for transparency) to hide some bits!That increases the amount of info you can hide per pixel. Curiosity: The alpha channel on PHP has only 7 bits while alpha in Java(not Javascript) has 8 bits. You should also know that since .jpeg is not a lossless format, each time you create a .jpeg(to hide the small image in the big one), the data will be compressed( the string of bits will be slightly changed), so after when you try to extract the original data from the .jpeg(the smaller image) you won't be able to do that perfectly. A solution is to use .png, which is heavier but gets the job done cause it is not a lossless format. You can check The Steganographer of my channel if you want to.
So my question is: how do thinks like this work with compression? Concerning the stock photo/video leaking applications, wouldn't the message get a little corrupted if I re-comoressed/re-encoded the video?
Zach Hixson I included part of a Getty Images image in a banner for a crappy little web site that's had about 3 visitors in 4 years and the bastards still managed to find it somehow. Their lawyers are demanding €1200.
Two words come to mind: Alfred Hitchcock. Also, the whole message does not need to be in a single picture. It can be spread across multiple pictures and sent at different times and in a different order.
LSB would be easy to detect by a computer (with out a person looking at graininess) because you can test for values on the last bits that wouldn't result from standard compression because of the square rooting and squaring with the computer's limited decimal length.
What I do is provide a public and private key that enables a user to decrypt the file that I hide with steganography. This means that even if the image falls into the wrong hands the file(s) hidden in it cannot be removed without the public key file and the password - I also allow the hiding of files to be spread across multiple files. I also allow multiple passwords to reveal different files for the purposes of obfuscating the real files.
But you would still have to protect against the participants being discovered. Encryption means nothing against torture, if you’re a normal civilian. For instance, this is why I don’t actually know any of my passwords. They’re all retrieved.
When he showed the two least significant bits of the "steganographized" image, why was there a tree visible at all? If all the last bits were changed to the message, they should be completely random, not just a little. Please answer (I am currently studying this at uni and made my own algorithms and they produce complete noise.
Zolbat There are 4 cases when you replace the 2 last bits: both bits already have the right value, the lowest bit has already the right value, the higher bit already had the right value, no bit already has the right value. That means, in 3 out of 4 cases you still have some of the original data. If you would take random noise and hide it in the image, then you would have 50% of the original bits still remaining, which means you have a blurry version of the original image remaining. The more bits you take to hide your message, the less original bits remain in the image overall. If you took all 8 bits to encode your message, only 2^-7 of all bits would remain completly unchanged.
The reason why this works is because only the last important information is altered. Consider a 32 bit depth bitmap image. The photo part of the file contains 4 bite chunks that will encode each pixel (red, green, blue, alpha). Each bite chunk will then have eight bits that will be either 1 or 0. Note that not every bit is worth the same. If you change the two least significant bits, the largest effect you can have on any color in a pixel is +- 3. More though that if you change the wrong two bits, the change is much larger. The largest swing then would be 128+64 = 192. If you are getting random noise, make sure you are only changing the two least significant digits and not the most significant ones.
***** See my above post for the explanation. Not filling the entire image would produce a different result, with the two LSB-filtered images being exactly the same after a certain point, rather than what you see. Adam Billman Nobody is confused about how this procedure works. Rather, I think you've entirely misunderstood what the OP is talking about.
Wouldn't it also be trivial to either neutralise or obfuscate a stenographic watermark? The whole point of stenography is to hide the fact that there is a payload hidden inside another piece of content. Since there is incentive for adding these stenographic watermarks to images/audio/video, such as a prerelease DVD, with a basic level of insight you can safely predict and assume a watermark will exist on your prerelease DVD. Since you're already assuming there will be stenography, the entire advantage of using stenography has been lost. Since stenography needs to hide itself in ways where it can't be detected from just looking at it, this limits where the stenography could be contained. You don't even need to restore the files to their unwatermarked source (neutralise). It would be sufficient to just zero out all bits where stenography could be hiding, or randomize the bits where they could be hiding (both would be obfuscation) before uploading your prerelease DVD to the internet. Because the watermark is destroyed, they won't be able to link it back to you with watermarks. You still will have to check for any other defenses they might employ, but as i see it, watermarking to protect copyrights and identifying violators is only a defense against the incompetent, not a true defense.
· 0xFFF1 You make a good point, but you should consider that watermarking can still be very useful. An example: imagine a great youtube channel (Computerphile) puts lots of time and money in creating a video to monetize it (like this very video) on youtube. Then someone rips the digital video-file and uploads this video to his own channel to make some bucks. RUclips has an intension to avoid a situation in which this is possible. Here are watermarks extremely helpful, because youtube bots usually detect the stolen video before it even gets online, thanks to content id. You're right, with some effort you can go around watermarks, but I guess most of the people don't bother looking for loop holes.
· 0xFFF1 All of what you said is true - but ask yourself how many people know what stenography is, or that it even exists.... That's why it's valuable. Sure some people might be thoughtful enough to circumvent it, but even with videos like this going out to thousands of people and teaching them that it does exist - most people utterly lack the ability or care to do anything about it. Like any encryption or hidden message, really.... Some will be able to figure it out. Most will never. That makes it massively valuable already.
· 0xFFF1 Knowing that there is a watermark does not help at all. You still have to know where/how it is hidden, otherwise all you are doing by randomizing stuff is decreasing the quality. If removal of information in an image would lead to no visible change, it would have been optimized away already in compression. The content authors foremost care about the copies, where the quality is at least near to the original. If you mangled up your version by randomizing parts so much that their algorithm won't find it anymore, they still might not be fine with you copying stuff, but at least they know that the quality is now so mediocre, that it's useless. The way described in the video is just one of many. A movie has so many more ways to hide something, that randomizing fails completely. If you distribute to a known number of people you could easily give everyone a different version. You could insert/drop frames now and then (different for everyone), you could change the hue of certain objects/scenes, if you'd want to get really fancy you could encode stuff by changing the text/pattern of unimportant objects. With all the CG in todays movies it's easy to automate and hide such stuff. Or you could encode something in the audio, by changing some frequencies or timing or even play with the volume slightly. Non of those things will be removed by randomizing. Without the original you can't even tell that something has been done.
· 0xFFF1 Stenographics algorithms can be much more complicated and sophisticated than shown here. You could use multiple algorithms and some of them could alter randomized bits around images, which can be read out only if you have the seed that belongs to a certain copy of the material. I think getting rid of stenographic images completly if you don't know which ones are used is impossible without severely degrading your content. And if you are going to leak that DVD with bad video and audio, man who cares ? 70% of people won't bother to watch it. And even then traces of the watermark may be around, afterall just 5-10% of the watermark information would be enough to show that it's not random noise. If you know what you are looking for even randomly seeming things can give you away.
If the 2 LSBs of the original image are replaced with message bits, then why do the 2 LSBs of the steganographic image (4:33, 4:44) still contain information about the original tree? This part of the steganographic image should not depend on what image you're using for the 6 MSBs, so why's it still clearly trees?
I'm a bit puzzled by the image comparison at 4:43. If the 2 least significant bits are purely the encoded data, why is the image of the tree visible at all in the steganographic image? I'd expect it to look like white noise.
In the end of the video they tslk about tracing leaks of copyrighted material and such. It sounds like the more paranoid leak could add their own message or just general nonsense and it would write over whatever water mark was there and there would be very little difference visually. Although I guess they would need to know how the water mark was added and then add their message/nonsense over it for the entire image. It still seems doable especially if the original watermark was added in a commonly used way like those talked about in the video.
Steganography was used in World of Warcraft screenshots to record the server, time and account ID. To find cheaters who bragged posting screenshots cropped to remove their name.
Of course you could also paste a passworded ZIP onto the end of a JPEG in a hex editor and any photo viewer will ignore the invalid image data while something like 7-zip will detect and decompress the zipped data.
You could hide the entire Game of Thrones: A Song of Ice and Fire at 1,770,000 words in a single HD image. You could do it in 16-bit colour as you have 65,536 different pixel combinations as each pixel colour would have a different word attached to it. Surely there wouldn't be more than 65,536 different words. Though trying to make the picture in the end not look like mess would be challenging.
Why not take an image that both the sender and receiver have and change the color of the pixels by just a single bit in one of the three color channels. Then by sending a copy of the altered picture the recipient can substract the two images an use a pre agreed decoding scheme on the resulting difference matrices. In this way you can only extract the information if you have both the original picture, the altered picture and know the decoding scheme.
9:49 Why can't they use some random information to fill other 40% of the blocks? Also, 4:39 Will flickering of the monitor stop if you will film it in 30fps instead of 24fps?
Nice video. I've used a simple algorithm to encode much the same way a key for a challenge some years ago although haven't used LSB. Though even with eye comparison on the pixels you could tell miles away it was tempered with. Especially the red channel, unfortunately nobody got the key, but it was very fun indeed. I still have the two photos on my blog, original and tempered one, I should go with a follow up and study the cos func shown in this video.
It would be interesting if someone made some meme (or other viral spreading image) that they post in different locations with each location having a different embedded message. You could track where that specific image spreads from the most. (although it doesn't help track derivatives)
@@mumuderler6148 I would suggest checking the wikipedia page for "stenography," but there are ways to hide messages within images that are not immediately noticeable without closer inspection
So if you were going to leak a pre-release video onto the net, and you were worried (or smart enough to be worried) wether it was steganographically marked, couldn't you do something like randomly assigning (or setting all to 0) the least significant bits in the "raw" (highest available quality) source to take a 12% information loss (in the least visible way) or something similar equivalent to the JPEG coefficients before applying lossy compression to scramble any watermarking?
I'd have thought the usual questions would have cropped up: "What happens when you add jsteg text to an image already altered with jsteg?" "What happens if you use DCT on a jsteg image?" Are they mutually exclusive, does one overwrite the other, would they both fail decoding... A later video perhaps.
This seems like a race where the steganographers will always be one step ahead of those trying to detect the steganography. And it would not surprise me if there is a theorem (ahem) "hiding" here about how much data can be provably undetectably hidden.
so basicilly one can watermark a file with the computer it was made on and cannot be removed with windows commands since it were made on a another computer which windows consider maker
If you want to try this on your own images, CrypTego is a password manager that uses least-significant bit digital steganography on bitmap images. It encrypts the passwords/notes with AES-256 and then conceals them to an image. You'll find instructions on how to use it in my channel.
If someone screenshots an image and saves it as a different file type leaving it's own artifacts, would the steganography still be able to be detected?
WOW! What a fantastic video! I am an amateur photographer and have always wanted some way to discretely watermark my images. Is there a good public domain Steganography program or some utility in Photoshop (Elements) available?
If they re-encode the images, the message is probably lost using any of methods described in the video. But, there are other methods, such as breaking the image up into "blocks" of some size (just as a random example, say 4*4 pixels). Then you encode the 1's and 0's using those blocks. This is slightly more resilient to changes, because even if some pixels change, you can use the average value to determine what the original data probably was. You can also include error correcting codes, and so on.... Now, this all rather quickly decreases the amount of data you can store. You are trading away a lot of your available "space" for redundancy and resilience. But if all you need is to watermark the image, with a just a simple string of text only a few dozen bytes long, you would able to add a really huge amount of redundancy and resilience without worrying, and just repeating the message over and over across the image, including all the safeguards. That becomes a lot more difficult to remove.
I really love your videos but one thing I would really appreciate is that subtitles, especially in Dr. Mike's videos, please. I am really having a though time to understand his accent sometimes. 😅 And the present subtitles are not correct. Thank you for the great videos! :)
If you download this video you'll discover that every single frame contains "I'm the editor working hours in the basement, please send help"
bruh fr
That’s be the dopest
Really?
To the 4 people asking: No. RUclips does its own (lossy) compression afterwards when you upload a video. So if you download it from RUclips, it's not the same file as the one which was uploaded.
lol
Steganosaurus is my favourite dinosaur.
JustOneAsbesto Hehe, I was immediately thinking of dinosaurs as well when I read the title.
JustOneAsbesto the only dinosaur that can hide in plain sight! :)
+Adrian ,
Hi
can plz help to know this
My favourite type of writing is stenography.
From now on, I'm going to watermark all my image work with the tragedy of darth plaguis the wise
Big bruh
It's a story the jedi wont tell you.... but this image of a horse absolutely will.
Hide it within the meme image itself
You sir, are the choosen one
Not cryptography the Jedi would teach you.
Truly this is a remarkable area of study. Why just the other day I was looking at what appeared at first to be a picture of a herd of braying donkeys. It was only with careful scrutiny of the image I realized that O was actually staring at a picture of parliament.
Who's O?
He means "I". (Btw. did you get this recommended too?)
@@tobiumevolume9890 Yes but it was because I watch this channel occasionally, rather than a completely random recommendation.
Hahahahaha!
😂😂🤣🤣 so underrated !!!!!!
Every time Dr. Pound makes a video he goes "oh I've written a program for this..." then they never show us the code! It would be fantastic if you guys could share Dr. Pound's work for learning purposes.
I don't know anything about code, but I'm ready to learn. Been hacked for too long!
@@kb203 for hacked to hacker
@mahneh7121I think it sounds to be relatively easy. You may use the Gimp script-fu to update the color registry in order to read and write the message. I would like to try it but I do not have time.
It takes twice as much work to make code for release rather than just for goofing around. I can see why he wouldn't want to release unpolished code.
i would advise against this, for child safety reasons. some things arent simplified for the public on purpose, though im sure you just didnt think about it. ❤ itd be cool tho :)
A very interesting video on how e.g. the entire works of Shakespeare can be hidden in one digital photo. Kudos to Dr Pound for yet another extremely clear and understandable explanation of a complex topic!
I could listen to this guy for ages and never get bored. The topics he presents are so fascinating and he presents them very well. Nice work
A fairly good example of steganography that you may have come across without realising was the video game Spore. In it, you could drag the images of creatures/spaceships/buildings/etc. into the game's editor and it would then read the hidden data describing that creation from within the image and load it into the editor.
you telling me that there are secret messages in the rarest of pepes?
Old news
Dustin Breakey :O
Dustin Breakey in sinks too muh boy, or so I've been told by the elders
Knowing btards, there probably are.
No but there pieces of ultra rare pepes hidden in the rare pepes with steganography
My professor didn't give us any detailed explanation on this topic but you gave a wonderful one. Thank you!
I must have watched a million Tech videos and read three times as many online articles before I found this guy here on computerphile and I have come to realize without question that this man is dangerous. Very few people possess this level of knowledge and the videos are by far the best on the internet. Keep up the good work!👍👍
LOL, this is kid-sister-encoding stuff.
ok?
There was a story about how a big company like Tesla found out who leaked their documents.
Every employee that got those documents received his version. And the only difference was a double space-character somewhere in the doc.
So after it got leaked, they only had to look where in that doc the double space was, and therefore found the whistleblower
I played around with this a bit in the late '80s. I wrote a program that would take a TGA file and put the message in the two least significant bits of each channel, just as he describes in the video. I found that I could tell the point at which the message stops, because the image just gets a bit less noisy and more clean. This could be an indication to someone else that you were hiding a message, if they were familiar with the process.
My solution was to generate random numbers and do the rest of the pixel data randomly. If your message is encrypted (which it should be; steganography is no substitute for sound encryption), then it should be indistinguishable from randomness anyway, so this should successfully hide the fact that you've hidden a message to begin with.
Of course, this isn't going to work with lossy algorithms like JPG. Today, just use PNG.
Shane Killian Hmmm, I see later in the video that he is doing it on JPGs using transform curves. Interesting, but it again wouldn't survive re-saving the image in a different format.
Shane Killian Another way would be for two people to have a key and based on the key and the amount of data, the program can put the data in the LSB of evenly distributed pixels maybe with a prng maybe using the key as a seed (which would look random) to select the interval and using the size of the data to put a limit on the size of the interval so you can fit it all in, all you would need would be the key and the size of the file and the program to decrypt it. That way the whole image would look very slightly noisy if you look closely, like it was badly compressed, and with smaller messages it would pretty much be entirely undetectable and probably quite good for that purpose. But of course there is still the problem of frequency analysis, especially with larger messages.
username_unavailable You could make it where two images are required. You'd come up with random numbers for one image, and then for the second image use that same random sequence XORed with the message. So a cryptanalysis of either image individually will just show indecipherable noise; you'd need to know which two images to combine.
And again, have a layer of encryption below that in case they do find the message.
+Shane Killian Surprisingly, digital watermarking in the form of Cinavia content protection is indeed resistant to mangling by transcoding. Perhaps they key is merely robust erasure coding and having an extremely small identifier tag.
I'd advise against using PNGs for steganography. PNGs are usually used for storing content with lots of large uniform areas (and leverages this uniformity for file size reduction). If you hide data in the LSB in a PNG, 1, the resulting noise will be quite noticeable and 2, the file will be _huge_ (because there will no longer be large uniform areas it could compress).
Okay, the message at the start had me laughing.
*****
The one at 0:15 ;)
Piotr Grabowski meet me at noon? wtf whats funny about that? please explain
bastard Read the "original", non-hidden message!
Yes to all : I'm talking about the ORIGINAL un-hidden image. The reference to brown paper (Numberphile) particularly was funny.
+thechrisgrice well they do waste an awful lot of paper
Instead of trying to detect JSTEG, wouldn't it be possible to destroy the message by slightly altering the image? For instance, you could add a very slight blur, NR or USM which doesn't alter the image that much, but completely ruins any hidden message. Or add a small and complex distortion pattern, etc.
In other words: if I upload a JSTEG image to facebook/whatsapp, and then the image gets recompressed/resized or noise reduction is applied, then it would be impossible for the receiving party to recover the message hidden inside.
***** Yep. That's an issue with steganography, it's quite easy for other algorithms to destroy your hidden data. But the same is true with older techniques. If you photocopied (or transcribed) a letter with hidden ink, you'd lose your hidden message.
Jesse Mitchell Similarly with the "early movie previews" and stuff that they mentioned at the end of the video, just re-encoding the video (maybe twice between different codecs?) will destroy the message too. Pictures that weren't directly saved (like if they were copy and pasted into paint or something) would lose the message too if saved into a different format.
109Rage Only if the format you are converting into has a lossy compression, otherwise changing the format would just get you the same image in another format.
rangedfighter 109Rage Even if you use lossy compression, I can imagine (but I'm not sure) that if the lossy compression leaves parts of some frames "unharmed" while every frame is watermarked many times (maybe 1000 times or more per frame), that the watermark would slip through.
A watermark only needs to be 2 bytes maybe, how many copies of a movie would you really distribute? 16 bits would need 8 bytes to piggyback on. Maybe a watermark is 16 bytes, but still it would fit many times in a frame. Millions of frames in a video...
You could analyse the illegal video, and see if a certain watermark value pops up 100 times more often than any other (damaged) value...
I'm just guessing, I admit, but I think you can make it "lossy-compression-proof" up to a point.
Robstar In theory, lossy compression would leave low entropy frames unharmed. But that isn't the case. Most algorithms simply run their filter on everything indiscriminately, because in the end, it helps the compression ratio.
And as you know, even if you were to encode a video correctly, RUclips's algorithms would still harm it.
A watermarking method like you described might actually work (theoretically), but it would not be able to contain very much data. And to be retained at a decent frequency (these are some very viscous data culling algorithms we're talking about), the watermark would have to be visibly noticeable.
Technically, you could modify the least significant bit of all three color channels to give you three bits per pixel. For a 1920x1080 picture, that would give you enough space to embed a message that is (1920*1080*3) / 8 bytes large, or 777, 600 bytes, and it would be imperceivable, as each color channel would only be one bit different, like the difference in 255 and 254, you would not notice it.
This assumes the image format preserves three channels of pixel information, like PNG.
I am very glad you didn’t just show us the image and have us take your word for it that the images were different!
This is brilliant. You can effectively store 1/4 as many bits of data in an image as the image has while only modifying the original image by less than 1/64th.
Every time I research and implement something, Computerphile releases a video within a week on the same topic. GG Computerphile.
Wikileaks had an strange email with a load of photos of Antarctica in. this guy needs to look at them....
Im actually a shill for the meat industry, Mmmmm bacon
@@MuddledMe you damn right, ordo ab libtard
@@damiengates7581 damn jumping in with those insults
@@damiengates7581 What does "ordo ab libtard" mean?
@@General12th It’s some form of elvish, I can’t read it.
I love your videos, i bought like 8 books on security including the CISSP exam study, and I’m learning a ton from watching your videos. I even studied cryptography because i love computers, i used to love science, now its CS.
yeah its amazing there was a time when i would read tons of astronomy, but now its about cs
The guys who created the Fairlight Computer Musical Instrument went on to devise security protocols. One thing they did (this was in the 90s) was have a printer produce unique hard copies of a document by altering the kerning of the characters. The alteration was not only unique but coded so that if a copy was leaked, the software could scan it back and decode the kerning to identify whose copy it was.
This looks like a hugely sophisticated version of that software. My brain hurts...
I am thankful I know game design as knowing how PNG images are used to optimize textures helped me understand this greatly.
I made a program that takes the individual colors, picks two of them (based on a predefined pattern), and encodes the data in the least significant bit of both for every pixel. Optionally, you can even use an xor to encode the data instead, making it even more confusing.
Subtitles are great "Stake in a graphic", and the best thing is that it never writes the same thing for jsteg : "chased egg" is my favourite.
Who wants to bet that the edit team stuck a metric shit tonne of data in this video?
TheMan83554 me
If they did there'd be no way to get it out... RUclips compresses everything that people upload and their compression is lossy, so any extra information that may have been snuck into the original edit has been washed away to save computer bandwidth.
@@Benjamoomin64 If they used a repeating message and took into account the compression methods used then it should be possible. JPG itself is lossy but they take JStag takes that into account.
@@grn1 RUclips does lossy compressoen *on top of that*
If you upload a video to RUclips and then redownload it, it won't be the same file anymore. It's irreversibly lossily compressed.
I don't understand why the tree is visible at all on the right at 4:44. Shouldn't the last two bits be pure Shakespeare?
Least-significant bit can be detected because it makes certain colours less common or more common than they should be. For example, 255 (maximum 8-bit value, i.e. full intensity/white) is far more common than certain other 25X values usually.
TazeTSchnitzel Unless you apply good encryption, of course, in which case the LSBs should look random. Then again, maybe the LSBs in the original aren't random.
Maybe add some faint white noise (has to be colour) over the image, then start messing with the individual bits.
@@fllthdcrb That's the point, in a normal photo the LSB is *not* uniformly distributed, at least not locally. This is also mentioned in the video.
You could use this to hide a watermark, and then you could prove it's yours by comparing your image with the infringing source. If it has the watermark, it's definitely a copy.
Edit: Ah, well he _did_ say about this at the end of the video. Ignore me!!!
I suspect it would not work if the image was slightly modified over the entire image, such as brightness going up or down by 1% would ruin the Steganography message. I guess it depends, because in most situations, people wouldn't modify the image.
one use: I have a website that has copyrighted images. What I do is, each time a user visits the site instead of just serving the raw image, the image is first passed through a script which hides the user's username in the image. That way if one of our images pop up somewhere on the internet it shouldn't be, I can find out which exact user is responsible for it.
Dante Tucker That's an awesome idea. I'm guessing you don't tell the user this? That would probably lead to them editing it to get rid of the watermark if at all possible.
+Dante Tucker . Cool!
Don't give copyrighters any ideas
I cant understand a word of what he is saying. But I cant stop listening...
It isn't all that complicated if you've done even high school programming.
Same problem*
It's the accent man
I can imagine a deep learning algorithm that could look at images and find their messages.
Edit: god damit
I've been sharing the same thought ,but i think its quite hard since the model build will be targeting some fixed dataset or set of features .
A single image can be translated to any other information with infinitely different logics...
@S H A classifier still breaks the value of the steganography. The encryption is an added layer of security. The purpose of the steganography was to hide that a message was being sent at all. If the classifier notices that there's a message, the fact that the message is being sent has been revealed.
Or... in a more practical example, the watermark that was hidden is revealed. At the very least, it's revealed that there is a watermark... and we can almost definitely scrub over the watermark. So, if someone tries to scan and find their watermark, it won't be there.. because we were able to find it and scrub it out.
So, we don't really have a way to prevent that yet... it's really security through obscurity.
There are a bunch of em. (For those interested, look up "Deep learning for steganalysis using CNNs" by yinlang qion.)
encryption tho.
I actually had a bit of steganography as my final exam for some class, the professor hid a message in a picture and told me to "extract" it any way i see fit :D
In any way? Take his laptop hostage for a ransom of the answer.
@@matthewsanetra xD yeah
@John Price He used several methods we discussed during the classes to hide the message, it wasn't a difficult cypher.
You could use the least significant bits as a bitplane, with a skip between data bits, and xor more significant bitplanes over those thus making the lowest plane look like it belongs in the picture. You could probably cram 3 or 4 bits per plane that way.
hiding more data usually will mean hiding another image inside the original, and the more modern approach seems to involve FFT of the original image, there are some papers about those methods, but they are a bit above my comprehension, but the approach seems much more robust against recompression, resizing, cropping and so on
and there is plenty of proof that it is being used on social media by popular accounts, because the competition for attention and payoff is just too big, so they use quite dirty tricks to attract people, think subliminal messaging using adult content
You could do this with videos as well, and then you have the opportunity to perform transforms over time as well as across the image. But since I thought of it now, somebody has probably already done it. Is it something you could make a video of, computerphile ?
Great video, always wondered how steganography works! It'd be awesome if you could do a video explaining spectograms.
12:47 is called a Canary Trap thinking of probability of a leak and being cautious to catch the illegal exposure.
I was struggling with a stego CTF when this video just popped up. Thanks, it helped me solve the challenge :)
12:13 can steganograped information survive lossy compression of the host image file?
It would seem like it depends on the encoding method.
Shakespeare wrote 37 plays which on average had 22,600 words. This equals 836,200 words in total and if we assume that an average word has 4 characters this would amount to 3.34 million letters. Since every character equals 1 byte (according to ASCII, but correct me if I'm wrong) wouldnt this make the size of Shakespeare's work combined 3.3 Megabytes rather than 1.5 Megabytes as he said at 4:04 ?
At 7:28 the inerquartile computing unit is actually incorrect. I've studied it for about 3 years now and the complexion of the quadratic formula is hidden in the JPEG code. Cause if you document.write (a_bc) + SQL a=0b it will result in the quaritization of 0, hence the quadratic code is equal to 0, so it can't be it. Check my reply for my proof.
I did a small amusement app, "The Steganographer", with Javascript and PHP this Summer.
The Big image should be atleast 4 times bigger than the one to be hidden. Don't forget besides the RGB components you can also use the ALPHA channel(the channel for transparency) to hide some bits!That increases the amount of info you can hide per pixel.
Curiosity: The alpha channel on PHP has only 7 bits while alpha in Java(not Javascript) has 8 bits.
You should also know that since .jpeg is not a lossless format, each time you create a .jpeg(to hide the small image in the big one), the data will be compressed( the string of bits will be slightly changed), so after when you try to extract the original data from the .jpeg(the smaller image) you won't be able to do that perfectly. A solution is to use .png, which is heavier but gets the job done cause it is not a lossless format.
You can check The Steganographer of my channel if you want to.
So my question is: how do thinks like this work with compression? Concerning the stock photo/video leaking applications, wouldn't the message get a little corrupted if I re-comoressed/re-encoded the video?
DaneGraphics I was specifically asking about the two bit-centric method he was talking about though
Zach Hixson I included part of a Getty Images image in a banner for a crappy little web site that's had about 3 visitors in 4 years and the bastards still managed to find it somehow. Their lawyers are demanding €1200.
Zach Hixson They don't work with compression. Unless you can predict the compression and take it in account maybe. But that is unlikely.
ThaTyger That's what I thought
ThaTyger It can be used with compression, you just have to find the md5 hash.
Thank you, I enjoy the videos with him and these subjects.
Two words come to mind:
Alfred Hitchcock.
Also, the whole message does not need to be in a single picture.
It can be spread across multiple pictures and sent at different times and in a different order.
that's kind of the idea behind one video steganography method, using the frames and LSB for the message
This gentleman, Dr Mike, is absolutely fascinating... I only discovered this channel yesterday and Ive viewed a lot of the videos already.
LSB would be easy to detect by a computer (with out a person looking at graininess) because you can test for values on the last bits that wouldn't result from standard compression because of the square rooting and squaring with the computer's limited decimal length.
What I do is provide a public and private key that enables a user to decrypt the file that I hide with steganography. This means that even if the image falls into the wrong hands the file(s) hidden in it cannot be removed without the public key file and the password - I also allow the hiding of files to be spread across multiple files. I also allow multiple passwords to reveal different files for the purposes of obfuscating the real files.
But you would still have to protect against the participants being discovered.
Encryption means nothing against torture, if you’re a normal civilian.
For instance, this is why I don’t actually know any of my passwords. They’re all retrieved.
When he showed the two least significant bits of the "steganographized" image, why was there a tree visible at all? If all the last bits were changed to the message, they should be completely random, not just a little. Please answer (I am currently studying this at uni and made my own algorithms and they produce complete noise.
Zolbat There are 4 cases when you replace the 2 last bits: both bits already have the right value, the lowest bit has already the right value, the higher bit already had the right value, no bit already has the right value.
That means, in 3 out of 4 cases you still have some of the original data. If you would take random noise and hide it in the image, then you would have 50% of the original bits still remaining, which means you have a blurry version of the original image remaining.
The more bits you take to hide your message, the less original bits remain in the image overall. If you took all 8 bits to encode your message, only 2^-7 of all bits would remain completly unchanged.
The reason why this works is because only the last important information is altered. Consider a 32 bit depth bitmap image. The photo part of the file contains 4 bite chunks that will encode each pixel (red, green, blue, alpha). Each bite chunk will then have eight bits that will be either 1 or 0. Note that not every bit is worth the same. If you change the two least significant bits, the largest effect you can have on any color in a pixel is +- 3. More though that if you change the wrong two bits, the change is much larger. The largest swing then would be 128+64 = 192. If you are getting random noise, make sure you are only changing the two least significant digits and not the most significant ones.
***** See my above post for the explanation. Not filling the entire image would produce a different result, with the two LSB-filtered images being exactly the same after a certain point, rather than what you see.
Adam Billman Nobody is confused about how this procedure works. Rather, I think you've entirely misunderstood what the OP is talking about.
Wouldn't it also be trivial to either neutralise or obfuscate a stenographic watermark? The whole point of stenography is to hide the fact that there is a payload hidden inside another piece of content. Since there is incentive for adding these stenographic watermarks to images/audio/video, such as a prerelease DVD, with a basic level of insight you can safely predict and assume a watermark will exist on your prerelease DVD. Since you're already assuming there will be stenography, the entire advantage of using stenography has been lost. Since stenography needs to hide itself in ways where it can't be detected from just looking at it, this limits where the stenography could be contained. You don't even need to restore the files to their unwatermarked source (neutralise). It would be sufficient to just zero out all bits where stenography could be hiding, or randomize the bits where they could be hiding (both would be obfuscation) before uploading your prerelease DVD to the internet. Because the watermark is destroyed, they won't be able to link it back to you with watermarks. You still will have to check for any other defenses they might employ, but as i see it, watermarking to protect copyrights and identifying violators is only a defense against the incompetent, not a true defense.
· 0xFFF1 You make a good point, but you should consider that watermarking can still be very useful.
An example: imagine a great youtube channel (Computerphile) puts lots of time and money in creating a video to monetize it (like this very video) on youtube. Then someone rips the digital video-file and uploads this video to his own channel to make some bucks. RUclips has an intension to avoid a situation in which this is possible. Here are watermarks extremely helpful, because youtube bots usually detect the stolen video before it even gets online, thanks to content id.
You're right, with some effort you can go around watermarks, but I guess most of the people don't bother looking for loop holes.
· 0xFFF1 All of what you said is true - but ask yourself how many people know what stenography is, or that it even exists.... That's why it's valuable. Sure some people might be thoughtful enough to circumvent it, but even with videos like this going out to thousands of people and teaching them that it does exist - most people utterly lack the ability or care to do anything about it.
Like any encryption or hidden message, really.... Some will be able to figure it out. Most will never. That makes it massively valuable already.
Mythricia Only the initial distributor needs to figure it out, though.
· 0xFFF1
Knowing that there is a watermark does not help at all. You still have to know where/how it is hidden, otherwise all you are doing by randomizing stuff is decreasing the quality. If removal of information in an image would lead to no visible change, it would have been optimized away already in compression. The content authors foremost care about the copies, where the quality is at least near to the original. If you mangled up your version by randomizing parts so much that their algorithm won't find it anymore, they still might not be fine with you copying stuff, but at least they know that the quality is now so mediocre, that it's useless.
The way described in the video is just one of many. A movie has so many more ways to hide something, that randomizing fails completely. If you distribute to a known number of people you could easily give everyone a different version. You could insert/drop frames now and then (different for everyone), you could change the hue of certain objects/scenes, if you'd want to get really fancy you could encode stuff by changing the text/pattern of unimportant objects. With all the CG in todays movies it's easy to automate and hide such stuff. Or you could encode something in the audio, by changing some frequencies or timing or even play with the volume slightly. Non of those things will be removed by randomizing. Without the original you can't even tell that something has been done.
· 0xFFF1 Stenographics algorithms can be much more complicated and sophisticated than shown here. You could use multiple algorithms and some of them could alter randomized bits around images, which can be read out only if you have the seed that belongs to a certain copy of the material.
I think getting rid of stenographic images completly if you don't know which ones are used is impossible without severely degrading your content. And if you are going to leak that DVD with bad video and audio, man who cares ? 70% of people won't bother to watch it.
And even then traces of the watermark may be around, afterall just 5-10% of the watermark information would be enough to show that it's not random noise. If you know what you are looking for even randomly seeming things can give you away.
If the 2 LSBs of the original image are replaced with message bits, then why do the 2 LSBs of the steganographic image (4:33, 4:44) still contain information about the original tree? This part of the steganographic image should not depend on what image you're using for the 6 MSBs, so why's it still clearly trees?
4:20 - captions - has a value of free. Got to love the accent.
I'm a bit puzzled by the image comparison at 4:43. If the 2 least significant bits are purely the encoded data, why is the image of the tree visible at all in the steganographic image? I'd expect it to look like white noise.
same thought...
In the end of the video they tslk about tracing leaks of copyrighted material and such. It sounds like the more paranoid leak could add their own message or just general nonsense and it would write over whatever water mark was there and there would be very little difference visually. Although I guess they would need to know how the water mark was added and then add their message/nonsense over it for the entire image. It still seems doable especially if the original watermark was added in a commonly used way like those talked about in the video.
Invisible watermarking very much was, and is, a thing.
Steganography was used in World of Warcraft screenshots to record the server, time and account ID. To find cheaters who bragged posting screenshots cropped to remove their name.
So ... if you assume that its watermarked, all you would need to do to defeat the watermark randomize the last two LSBs of the image?
Of course you could also paste a passworded ZIP onto the end of a JPEG in a hex editor and any photo viewer will ignore the invalid image data while something like 7-zip will detect and decompress the zipped data.
You could hide the entire Game of Thrones: A Song of Ice and Fire at 1,770,000 words in a single HD image.
You could do it in 16-bit colour as you have 65,536 different pixel combinations as each pixel colour would have a different word attached to it. Surely there wouldn't be more than 65,536 different words.
Though trying to make the picture in the end not look like mess would be challenging.
That was awesome! Great video and a really cool concept
The dog probably doesn't care if you change his bits as long as you don't mess with his kibbles.
Expand upon this by doing a video on Numbers Stations!
awesome! I was thinking about this the other day! great video.
Would it not be easy to destroy digital watermark by placing a random message in least significant bit throughout the image.
Why not take an image that both the sender and receiver have and change the color of the pixels by just a single bit in one of the three color channels. Then by sending a copy of the altered picture the recipient can substract the two images an use a pre agreed decoding scheme on the resulting difference matrices.
In this way you can only extract the information if you have both the original picture, the altered picture and know the decoding scheme.
9:49 Why can't they use some random information to fill other 40% of the blocks?
Also, 4:39 Will flickering of the monitor stop if you will film it in 30fps instead of 24fps?
awesome work. need some steganography for images.
Nice video. I've used a simple algorithm to encode much the same way a key for a challenge some years ago although haven't used LSB. Though even with eye comparison on the pixels you could tell miles away it was tempered with. Especially the red channel, unfortunately nobody got the key, but it was very fun indeed.
I still have the two photos on my blog, original and tempered one, I should go with a follow up and study the cos func shown in this video.
Me too. 18 years, and no one has come forward for the reward offered.
It would be interesting if someone made some meme (or other viral spreading image) that they post in different locations with each location having a different embedded message. You could track where that specific image spreads from the most. (although it doesn't help track derivatives)
how can you track that?
@@mumuderler6148 I would suggest checking the wikipedia page for "stenography," but there are ways to hide messages within images that are not immediately noticeable without closer inspection
Me and the boys studying for the next Cicada
So if you were going to leak a pre-release video onto the net, and you were worried (or smart enough to be worried) wether it was steganographically marked, couldn't you do something like randomly assigning (or setting all to 0) the least significant bits in the "raw" (highest available quality) source to take a 12% information loss (in the least visible way) or something similar equivalent to the JPEG coefficients before applying lossy compression to scramble any watermarking?
I'd have thought the usual questions would have cropped up:
"What happens when you add jsteg text to an image already altered with jsteg?"
"What happens if you use DCT on a jsteg image?"
Are they mutually exclusive, does one overwrite the other, would they both fail decoding... A later video perhaps.
Encryption is actually quite important. Otherwise, the attacker can just test the file to see if it contains a message.
Great video. Excellent explanations
Awesome video. Can this be done with audio as well? I''d love to see a video about that.
What happens if you screen capture a steganographricly watermarked image at full resolution, larger resolution, and smaller resolution?
I know that it should not be possible to see, but I keep imagine that there is a hidden message in his sweater.
This seems like a race where the steganographers will always be one step ahead of those trying to detect the steganography.
And it would not surprise me if there is a theorem (ahem) "hiding" here about how much data can be provably undetectably hidden.
How do you show the image with everything removed except the least significant bits to compare the noise of the images?
Could you zoom in and screenshot the image to remove a stegonagraphic watermark? I mean theoretically all the pixels are now changed I would think.
As text file increases which we need to hide in an image , there ll b increasing the value of blurness in encrypted image or no
so basicilly one can watermark a file with the computer it was made on and cannot be removed with windows commands since it were made on a another computer which windows consider maker
So with the example of video leaks, a conversion to different format once or twice with some compression and what not should get rid of it?
Can you introduce the book to learn Steganography?
came for the basset hound, stayed for the interesting stuff
1:56 I thought that pixels were only 3 bytes (R, G and B). What is the fourth byte for?
Alpha, Transparency
Fantastic. This will be of absolutely no use to me, yet I'm watching it anyways.
The digital copyright usage seems quite smart!
.jpg >:)
Just not sufficiently durable. If you know you've copied an image - you'd take steps to hide any such 'watermark'.
Hi, interesting watch.
can information be too much to be hidden in another file(image,audio,video etc)
What's all that written on the board behind you? You have me curious does it relate to the topic of the video?
So... If you screenshot a full resolution jsteg, would it keep the secret message?
If you want to try this on your own images, CrypTego is a password manager that uses least-significant bit digital steganography on bitmap images. It encrypts the passwords/notes with AES-256 and then conceals them to an image. You'll find instructions on how to use it in my channel.
If someone screenshots an image and saves it as a different file type leaving it's own artifacts, would the steganography still be able to be detected?
WOW! What a fantastic video! I am an amateur photographer and have always wanted some way to discretely watermark my images. Is there a good public domain Steganography program or some utility in Photoshop (Elements) available?
Would steganography even work on Facebook or Instagram? Don't they re-arrange and re-compress the file? Wouldn't that effectively erase the message?
If they re-encode the images, the message is probably lost using any of methods described in the video. But, there are other methods, such as breaking the image up into "blocks" of some size (just as a random example, say 4*4 pixels). Then you encode the 1's and 0's using those blocks. This is slightly more resilient to changes, because even if some pixels change, you can use the average value to determine what the original data probably was. You can also include error correcting codes, and so on.... Now, this all rather quickly decreases the amount of data you can store. You are trading away a lot of your available "space" for redundancy and resilience. But if all you need is to watermark the image, with a just a simple string of text only a few dozen bytes long, you would able to add a really huge amount of redundancy and resilience without worrying, and just repeating the message over and over across the image, including all the safeguards. That becomes a lot more difficult to remove.
In the case of pre-release dvds I think the reencoding would destroy the hidden data, wouldn't it?
If the steganographic image is resized to smaller size meaning we lose information, is it possible to read the message?
So, are the words literally like a picture overlaid on the original picture by changing specific bits or do I have to "decrypt" it somehow?
There are Jsteg tools (assuming Jsteg was the steganography method) used to decrypt the image to reveal the hidden message. I hope i'm right
I know this has nothing to do with the video, but I was wondering what time the Inter-national Space Station uses?
Laser printers have hidden id that can be in each image printed (to id the origin of the printer).
Really !!!!??????
@@dubey_ji Yes.
Wait.
Why in the steganographic image formed just by the last 2 bits could you still see the tree?
I really love your videos but one thing I would really appreciate is that subtitles, especially in Dr. Mike's videos, please. I am really having a though time to understand his accent sometimes. 😅 And the present subtitles are not correct.
Thank you for the great videos! :)