Secrets Hidden in Images (Steganography) - Computerphile

Поделиться
HTML-код
  • Опубликовано: 3 авг 2015
  • Secret texts buried in a picture of your dog? Image Analyst Dr. Mike Pound explains the art of steganography in digital images.
    The Problem with JPEG: • The Problem with JPEG ...
    The Bayer Filter: • Capturing Digital Imag...
    Super Computer & the Milky Way: • Supercomputer and the ...
    JPEG Discrete Cosine Transform (DCT): • JPEG DCT, Discrete Cos...
    / computerphile
    / computer_phile
    This video was filmed and edited by Sean Riley.
    Computer Science at the University of Nottingham: bit.ly/nottscomputer
    Computerphile is a sister project to Brady Haran's Numberphile. More at www.bradyharan.com

Комментарии • 654

  • @orazioballal7819
    @orazioballal7819 3 года назад +704

    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"

    • @didyoustealmyfood8729
      @didyoustealmyfood8729 3 года назад +6

      bruh fr

    • @mba4677
      @mba4677 2 года назад +2

      That’s be the dopest

    • @siladlawan6614
      @siladlawan6614 2 года назад +1

      Really?

    • @Max_G4
      @Max_G4 2 года назад +81

      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.

    • @ekxo1126
      @ekxo1126 2 года назад

      lol

  • @JustOneAsbesto
    @JustOneAsbesto 8 лет назад +1825

    Steganosaurus is my favourite dinosaur.

    • @HiAdrian
      @HiAdrian 8 лет назад +8

      JustOneAsbesto Hehe, I was immediately thinking of dinosaurs as well when I read the title.

    • @MattSiegel
      @MattSiegel 8 лет назад +128

      JustOneAsbesto the only dinosaur that can hide in plain sight! :)

    • @Vanjkav
      @Vanjkav 8 лет назад

      +Adrian ,

    • @emmanuelpeter3813
      @emmanuelpeter3813 5 лет назад +2

      Hi
      can plz help to know this

    • @SumriseHD
      @SumriseHD 4 года назад

      My favourite type of writing is stenography.

  • @samnub7912
    @samnub7912 6 лет назад +363

    From now on, I'm going to watermark all my image work with the tragedy of darth plaguis the wise

    • @cessposter
      @cessposter 3 года назад +7

      Big bruh

    • @lindseynoble1
      @lindseynoble1 3 года назад +21

      It's a story the jedi wont tell you.... but this image of a horse absolutely will.

    • @retrodragon2249
      @retrodragon2249 3 года назад +4

      Hide it within the meme image itself

    • @SethuSenthil
      @SethuSenthil 3 года назад +2

      You sir, are the choosen one

    • @Voltaic_Fire
      @Voltaic_Fire 3 года назад +5

      Not cryptography the Jedi would teach you.

  • @CliveReyes
    @CliveReyes 2 года назад +179

    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.

    • @mahneh7121
      @mahneh7121 2 года назад +12

      This program would be easy. You load the image to using an image loader to a script. And also load the text. You compare last 2 bits of the image iterating over the bits of the text. I dont think he wrote how get the text back (or he did not show it). But if you store a vector as you go flipping bits, you can get it back.

    • @kb203
      @kb203 Год назад +3

      I don't know anything about code, but I'm ready to learn. Been hacked for too long!

    • @whannabi
      @whannabi Год назад +1

      ​@@kb203 for hacked to hacker

    • @Nets-nutsBr
      @Nets-nutsBr 11 месяцев назад

      ​​​@@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.

    • @russell2952
      @russell2952 9 месяцев назад +2

      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.

  • @garethdean6382
    @garethdean6382 8 лет назад +904

    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.

    • @typo691
      @typo691 5 лет назад +13

      Who's O?

    • @tobiumevolume9890
      @tobiumevolume9890 5 лет назад +9

      He means "I". (Btw. did you get this recommended too?)

    • @typo691
      @typo691 5 лет назад +6

      @@tobiumevolume9890 Yes but it was because I watch this channel occasionally, rather than a completely random recommendation.

    • @percyblakeney3743
      @percyblakeney3743 4 года назад

      Hahahahaha!

    • @tanmaybhayani
      @tanmaybhayani 4 года назад +3

      😂😂🤣🤣 so underrated !!!!!!

  • @Mysteryem
    @Mysteryem 8 лет назад +70

    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.

  • @TommiHimberg
    @TommiHimberg 8 лет назад +70

    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!

  • @Svin4y
    @Svin4y 5 лет назад +69

    I cant understand a word of what he is saying. But I cant stop listening...

    • @Voltaic_Fire
      @Voltaic_Fire 3 года назад +3

      It isn't all that complicated if you've done even high school programming.

    • @connectbibek256
      @connectbibek256 2 года назад +1

      Same problem*

    • @user-jm6gp2qc8x
      @user-jm6gp2qc8x 2 года назад +1

      It's the accent man

  • @lollelolle1
    @lollelolle1 4 года назад +15

    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

  • @thechrisgrice
    @thechrisgrice 8 лет назад +396

    Okay, the message at the start had me laughing.

    • @pg1282
      @pg1282 8 лет назад +14

      *****
      The one at 0:15 ;)

    • @higheststrpk
      @higheststrpk 8 лет назад +3

      Piotr Grabowski meet me at noon? wtf whats funny about that? please explain

    • @vincentpelletier57
      @vincentpelletier57 8 лет назад +9

      bastard Read the "original", non-hidden message!

    • @thechrisgrice
      @thechrisgrice 8 лет назад +26

      Yes to all : I'm talking about the ORIGINAL un-hidden image. The reference to brown paper (Numberphile) particularly was funny.

    • @512TheWolf512
      @512TheWolf512 8 лет назад +1

      +thechrisgrice well they do waste an awful lot of paper

  • @dustinbreakey4707
    @dustinbreakey4707 8 лет назад +972

    you telling me that there are secret messages in the rarest of pepes?

    • @SleeveBlade
      @SleeveBlade 8 лет назад +18

      Old news

    • @StyGamerz
      @StyGamerz 8 лет назад +6

      Dustin Breakey :O

    • @Requiemes
      @Requiemes 8 лет назад +4

      Dustin Breakey in sinks too muh boy, or so I've been told by the elders

    • @hellterminator
      @hellterminator 8 лет назад +19

      Knowing btards, there probably are.

    • @tapwater424
      @tapwater424 8 лет назад +76

      No but there pieces of ultra rare pepes hidden in the rare pepes with steganography

  • @jody4210
    @jody4210 3 года назад +3

    My professor didn't give us any detailed explanation on this topic but you gave a wonderful one. Thank you!

  • @MuddledMe
    @MuddledMe 7 лет назад +165

    Wikileaks had an strange email with a load of photos of Antarctica in. this guy needs to look at them....

    • @MuddledMe
      @MuddledMe 7 лет назад +55

      Im actually a shill for the meat industry, Mmmmm bacon

    • @damiengates7581
      @damiengates7581 4 года назад

      @@MuddledMe you damn right, ordo ab libtard

    • @MorgurEdits
      @MorgurEdits 4 года назад +10

      @@damiengates7581 damn jumping in with those insults

    • @General12th
      @General12th 3 года назад +2

      @@damiengates7581 What does "ordo ab libtard" mean?

    • @btat16
      @btat16 3 года назад +2

      @@General12th It’s some form of elvish, I can’t read it.

  • @bambel4997
    @bambel4997 6 лет назад +1

    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!

  • @shanedk
    @shanedk 8 лет назад +76

    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.

    • @shanedk
      @shanedk 8 лет назад +4

      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.

    • @forevatrolling
      @forevatrolling 8 лет назад +2

      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.

    • @shanedk
      @shanedk 8 лет назад +4

      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.

    • @MikeTrieu
      @MikeTrieu 8 лет назад +1

      +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.

    • @hellterminator
      @hellterminator 8 лет назад +10

      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).

  • @richard102879
    @richard102879 5 лет назад +12

    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!👍👍

  • @PhilippeCarphin
    @PhilippeCarphin 7 лет назад +21

    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.

  • @TheJespeon
    @TheJespeon 8 лет назад +122

    I just remember feeling like some sort of turbo hacker for following a tutorial when I was like 13 to hide a rar archive in an image file.

    • @lastplace199
      @lastplace199 6 лет назад +17

      I remember when people still used rar files.

    • @cd2320
      @cd2320 6 лет назад +1

      lastplace199 what’s a rar file?

    • @lastplace199
      @lastplace199 6 лет назад +13

      Christopher Davis Not sure if sarcastic or not. -_-

    • @yxor
      @yxor 5 лет назад +30

      Christopher Davis its a rare file

    • @Chris_Cross
      @Chris_Cross 4 года назад +7

      I remember feeling like a hacker for using cmd.exe to make it so when you change an extension of an image file (.png for example) to .txt it has a secret message at the end.

  • @lukasdon0007
    @lukasdon0007 8 лет назад +209

    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.

    • @TheCreatorJames
      @TheCreatorJames 8 лет назад +150

      ***** 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.

    • @109Rage
      @109Rage 8 лет назад +29

      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.

    • @rangedfighter
      @rangedfighter 8 лет назад +22

      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.

    • @Robstar0
      @Robstar0 8 лет назад +22

      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.

    • @TheCreatorJames
      @TheCreatorJames 8 лет назад +12

      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.

  • @joshinils
    @joshinils 8 лет назад +2

    Thank you, I enjoy the videos with him and these subjects.

  • @TheCreatorJames
    @TheCreatorJames 8 лет назад +1

    Every time I research and implement something, Computerphile releases a video within a week on the same topic. GG Computerphile.

  • @penjackerrekcajnep1037
    @penjackerrekcajnep1037 8 лет назад +2

    Great video, always wondered how steganography works! It'd be awesome if you could do a video explaining spectograms.

  • @rich1051414
    @rich1051414 6 лет назад +9

    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.

  • @callummunro7380
    @callummunro7380 7 лет назад +243

    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!!!

    • @FusionDeveloper
      @FusionDeveloper 7 лет назад +8

      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.

    • @DanteTucker
      @DanteTucker 7 лет назад +68

      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.

    • @callummunro7380
      @callummunro7380 7 лет назад +5

      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.

    • @FusionDeveloper
      @FusionDeveloper 7 лет назад +1

      +Dante Tucker . Cool!

    • @pokemonplanet4153
      @pokemonplanet4153 7 лет назад +32

      Don't give copyrighters any ideas

  • @afterdeth
    @afterdeth 8 лет назад

    That was awesome! Great video and a really cool concept

  • @abhim7
    @abhim7 8 лет назад +37

    Just read the paper at 0:20 !! 😂😂😂

  • @sk8rdman
    @sk8rdman 8 лет назад +1

    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.

  • @rustyhguitar1
    @rustyhguitar1 8 лет назад +3

    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...

  • @TheMan83554
    @TheMan83554 8 лет назад +245

    Who wants to bet that the edit team stuck a metric shit tonne of data in this video?

    • @Private27281
      @Private27281 6 лет назад +1

      TheMan83554 me

    • @Benjamoomin64
      @Benjamoomin64 4 года назад +65

      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.

    • @grn1
      @grn1 3 года назад +1

      @@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.

    • @Max_G4
      @Max_G4 2 года назад +1

      @@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.

  • @ericsbuds
    @ericsbuds 8 лет назад +1

    awesome! I was thinking about this the other day! great video.

  • @jacobstory8895
    @jacobstory8895 5 лет назад +2

    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.

  • @cantona7449
    @cantona7449 5 лет назад

    This gentleman, Dr Mike, is absolutely fascinating... I only discovered this channel yesterday and Ive viewed a lot of the videos already.

  • @MilciadesAndrion
    @MilciadesAndrion 3 года назад

    Great video. Excellent explanations

  • @cain8628
    @cain8628 4 года назад +4

    Me and the boys studying for the next Cicada

  • @ChristopherKing288
    @ChristopherKing288 7 лет назад +10

    Encryption is actually quite important. Otherwise, the attacker can just test the file to see if it contains a message.

  • @dannythomsen
    @dannythomsen 6 лет назад +4

    I was struggling with a stego CTF when this video just popped up. Thanks, it helped me solve the challenge :)

  • @robertcrier3551
    @robertcrier3551 4 года назад +2

    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.

    • @akaskmsskssk6927
      @akaskmsskssk6927 2 года назад

      yeah its amazing there was a time when i would read tons of astronomy, but now its about cs

  • @drditup
    @drditup 7 лет назад +7

    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 ?

  • @hikari_no_yume
    @hikari_no_yume 8 лет назад +6

    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.

    • @fllthdcrb
      @fllthdcrb 8 лет назад +1

      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.

    • @muizzsiddique
      @muizzsiddique 6 лет назад

      Maybe add some faint white noise (has to be colour) over the image, then start messing with the individual bits.

    • @TruthNerds
      @TruthNerds 4 года назад +1

      ​@@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.

  • @LPChip
    @LPChip 6 лет назад

    Awesome video. Can this be done with audio as well? I''d love to see a video about that.

  • @zinqtable1092
    @zinqtable1092 8 лет назад +334

    I can imagine a deep learning algorithm that could look at images and find their messages.
    Edit: god damit

    • @chanandlerbingooos
      @chanandlerbingooos 7 лет назад +13

      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 .

    • @LudwigvanBeethoven2
      @LudwigvanBeethoven2 6 лет назад +26

      A single image can be translated to any other information with infinitely different logics...

    • @ganondorf5573
      @ganondorf5573 5 лет назад +9

      @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.

    • @tomr6955
      @tomr6955 5 лет назад +6

      But you didn't edit your comment

    • @sreeganeshvr7561
      @sreeganeshvr7561 4 года назад +2

      There are a bunch of em. (For those interested, look up "Deep learning for steganalysis using CNNs" by yinlang qion.)

  • @aaronMcAnalley
    @aaronMcAnalley 8 лет назад

    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.

  • @esteveslisboeta
    @esteveslisboeta 5 лет назад

    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.

  • @hpekristiansen
    @hpekristiansen 8 лет назад +12

    I know that it should not be possible to see, but I keep imagine that there is a hidden message in his sweater.

  • @khadijahalsmiere3718
    @khadijahalsmiere3718 4 года назад

    Thank you so so so very much for this lesson.

  • @stevelucky7579
    @stevelucky7579 3 года назад

    Great Scott!

  • @Carlordau
    @Carlordau 6 лет назад

    4:20 - captions - has a value of free. Got to love the accent.

  • @mountp1391
    @mountp1391 2 года назад

    awesome work. need some steganography for images.

  • @alexandrugheorghe5610
    @alexandrugheorghe5610 8 лет назад +1

    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.

  • @suivzmoi
    @suivzmoi 8 лет назад +17

    12:13 can steganograped information survive lossy compression of the host image file?

    • @ashraile
      @ashraile 2 года назад

      It would seem like it depends on the encoding method.

  • @vengefulenigma
    @vengefulenigma 8 лет назад +8

    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

    • @matthewsanetra
      @matthewsanetra 4 года назад +4

      In any way? Take his laptop hostage for a ransom of the answer.

    • @theolodger
      @theolodger 3 года назад

      @@matthewsanetra xD yeah

    • @johnprice4847
      @johnprice4847 Год назад

      Wdym in any way? Your decoding method should depend on the encoding method?

    • @vengefulenigma
      @vengefulenigma Год назад

      @@johnprice4847 He used several methods we discussed during the classes to hide the message, it wasn't a difficult cypher.

    • @johnprice4847
      @johnprice4847 Год назад

      @@vengefulenigma oh, so you had to guess which one he used?

  • @NijosoSefzaps
    @NijosoSefzaps 8 лет назад +13

    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
      @mumuderler6148 2 года назад

      how can you track that?

    • @NijosoSefzaps
      @NijosoSefzaps 2 года назад

      @@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

  • @tomysshadow
    @tomysshadow 6 лет назад

    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.

  • @ZachHixsonTutorials
    @ZachHixsonTutorials 8 лет назад +20

    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?

    • @ZachHixsonTutorials
      @ZachHixsonTutorials 8 лет назад

      DaneGraphics I was specifically asking about the two bit-centric method he was talking about though

    • @Nilguiri
      @Nilguiri 8 лет назад +3

      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.

    • @SyntheticFuture
      @SyntheticFuture 8 лет назад +9

      Zach Hixson They don't work with compression. Unless you can predict the compression and take it in account maybe. But that is unlikely.

    • @ZachHixsonTutorials
      @ZachHixsonTutorials 8 лет назад

      ThaTyger That's what I thought

    • @ArchaicVirus
      @ArchaicVirus 6 лет назад +1

      ThaTyger It can be used with compression, you just have to find the md5 hash.

  • @ImmaterialDigression
    @ImmaterialDigression 8 лет назад +11

    The digital copyright usage seems quite smart!

    • @randomcatdude
      @randomcatdude 6 лет назад

      .jpg >:)

    • @millomweb
      @millomweb 4 года назад

      Just not sufficiently durable. If you know you've copied an image - you'd take steps to hide any such 'watermark'.

  • @LeethLee1
    @LeethLee1 5 лет назад

    Amazing stuff

  • @domicio1577
    @domicio1577 5 лет назад

    Great content.

  • @crazysquirrel9425
    @crazysquirrel9425 4 года назад +5

    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.

    • @tonaxysam
      @tonaxysam 6 месяцев назад

      that's kind of the idea behind one video steganography method, using the frames and LSB for the message

  • @phookadude
    @phookadude 8 месяцев назад

    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.

    • @dsfs17987
      @dsfs17987 4 месяца назад

      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

  • @_____7704
    @_____7704 5 лет назад +2

    Expand upon this by doing a video on Numbers Stations!

  • @g1zm02k
    @g1zm02k 8 лет назад

    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.

  • @syler2547
    @syler2547 8 лет назад

    How do you show the image with everything removed except the least significant bits to compare the noise of the images?

  • @pawwilon
    @pawwilon 8 лет назад

    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?

  • @xavinitram96
    @xavinitram96 8 лет назад +12

    more... MORE.... MOOOREEEE!!!!! :D

  • @nicholashylton6857
    @nicholashylton6857 8 лет назад

    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?

  • @Slarti
    @Slarti 8 лет назад

    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.

    • @peoplethesedaysberetarded
      @peoplethesedaysberetarded Год назад

      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.

  • @MrPAINFULLRAGE
    @MrPAINFULLRAGE 5 лет назад +2

    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.

  • @luis241661
    @luis241661 8 лет назад

    What happens if you screen capture a steganographricly watermarked image at full resolution, larger resolution, and smaller resolution?

  • @priyadarshinininganure7775
    @priyadarshinininganure7775 5 лет назад

    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

  • @xion1305
    @xion1305 5 лет назад

    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.

  • @jimharmon9917
    @jimharmon9917 7 лет назад

    It was said that if the image gets recompressed, it's still there. Does this hold if the image format is changed - say from JPG to BMP or TIF?

  • @ZalvadorZali
    @ZalvadorZali 8 лет назад

    How would you extract the encoded information within the jsteg image?

  • @Jordatech
    @Jordatech 8 лет назад

    This is really cool stiff !

  • @qm3ster
    @qm3ster Год назад +1

    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?

  • @badatpseudoscience
    @badatpseudoscience 3 года назад

    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?

  • @aspie96
    @aspie96 7 лет назад

    Wait.
    Why in the steganographic image formed just by the last 2 bits could you still see the tree?

  • @Bvic3
    @Bvic3 4 года назад +1

    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.

  • @censoredone1374
    @censoredone1374 4 года назад

    What's all that written on the board behind you? You have me curious does it relate to the topic of the video?

  • @SupLuiKir
    @SupLuiKir 8 лет назад +9

    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.

    • @radioactiveduckie111
      @radioactiveduckie111 8 лет назад +5

      · 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.

    • @Mythricia1988
      @Mythricia1988 8 лет назад

      · 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.

    • @FirefoxisredExplorerisblueGoog
      @FirefoxisredExplorerisblueGoog 8 лет назад +1

      Mythricia Only the initial distributor needs to figure it out, though.

    • @superdau
      @superdau 8 лет назад +9

      · 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.

    • @rangedfighter
      @rangedfighter 8 лет назад

      · 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.

  • @gulllars4620
    @gulllars4620 8 лет назад

    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?

  • @stewiegriffin6503
    @stewiegriffin6503 6 лет назад

    great video

  • @ManpreetSingh-ew8qs
    @ManpreetSingh-ew8qs 3 года назад

    so if i have set of .jpeg images with positive and negative examples and i wanna train machine learning then should i transform image format to DCT matrix and train classifier on that? and if so do in need to convert RGB to Y'crcb format before that?
    btw very nice channel on youtube you guys are really great :-)

  • @sadade32
    @sadade32 8 лет назад +1

    This sounds like something fun to hack around with :)

  • @_modiX
    @_modiX 4 года назад

    how can compression preserve such a steganography watermark, though?

  • @qitvision9873
    @qitvision9873 8 лет назад

    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.

  • @TinyDeskEngineer
    @TinyDeskEngineer Год назад

    Fantastic. This will be of absolutely no use to me, yet I'm watching it anyways.

  • @nilloc93
    @nilloc93 7 лет назад

    this was also done (with no level of subtlety) to distribute the 3d printer files for the liberator pistol

  • @robertjencks3679
    @robertjencks3679 8 лет назад +2

    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.

  • @KnuckleHunkybuck
    @KnuckleHunkybuck 4 года назад +1

    The dog probably doesn't care if you change his bits as long as you don't mess with his kibbles.

  • @ifell3
    @ifell3 6 лет назад

    So someone gave me a photo and said do not release it, that had a jsteg in it, but then I wrote another jsteg to it, would it not over right the first?

  • @pushparajvaghela3476
    @pushparajvaghela3476 5 лет назад +1

    Would it not be easy to destroy digital watermark by placing a random message in least significant bit throughout the image.

  • @xmanrongngau5655
    @xmanrongngau5655 Год назад

    Can you introduce the book to learn Steganography?

  • @AChannelFrom2006
    @AChannelFrom2006 4 года назад

    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.

  • @DigitalAshTCG
    @DigitalAshTCG 7 лет назад

    What then happens if you screen shot a file with a message in it? is the message lost? covered up by other noise? Either in full or in part?

  • @robertfelton7275
    @robertfelton7275 8 лет назад

    I know this has nothing to do with the video, but I was wondering what time the Inter-national Space Station uses?

  • @Discount_Friendly
    @Discount_Friendly 8 лет назад

    can you do a video on slow scan t.v, is being able to store an image on a sound-wave

  • @keksimus__maximus
    @keksimus__maximus 8 лет назад +1

    came for the basset hound, stayed for the interesting stuff

  • @Zolbat
    @Zolbat 8 лет назад +6

    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.

    • @rangedfighter
      @rangedfighter 8 лет назад +9

      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.

    • @einstin2
      @einstin2 8 лет назад

      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.

    • @Vulcapyro
      @Vulcapyro 8 лет назад +3

      ***** 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.

  • @ralfosha_x
    @ralfosha_x 10 месяцев назад

    Well, thank goodness for screenshots and screen recorders.

  • @CelmorSmith
    @CelmorSmith 8 лет назад

    So hidden messages via JStack can be removed if I screenshot an an Image and save it even in the same format and resolution but the message via the method from the first example from a bitmap image will be captures by a screenshot as long as I save it as a bitmap again, right?
    Making a screenshot of any image and saving it in a jpeg format will remove every hidden message then?