Why doesn't steganography increase the size of an uncompressed image?
Clash Royale CLAN TAG#URR8PPP
up vote
5
down vote
favorite
So I have this question. I downloaded a .BMP off google due to .BMPs being not compressed. Just a 1024x768 .BMP image which its size os of 2.25Mb. I put the image in a steganography application.. inserted hidden text within it, encrypted and everything. How come the resulting image (Steganographied Image) is still 2.25Mb in size? Isn't it supposed to get bigger?
steganography
New contributor
add a comment |Â
up vote
5
down vote
favorite
So I have this question. I downloaded a .BMP off google due to .BMPs being not compressed. Just a 1024x768 .BMP image which its size os of 2.25Mb. I put the image in a steganography application.. inserted hidden text within it, encrypted and everything. How come the resulting image (Steganographied Image) is still 2.25Mb in size? Isn't it supposed to get bigger?
steganography
New contributor
It depends on the algorithm. Please add the application's name into your question,
â kelalaka
4 hours ago
2
Interesting experiment: compress the original and modified image with a lossless compression program (bzip2, zip, gzip, xz..), with the same settings. You'll often find that the original compress to a smaller size than the resulting image. That's especially true for originals that compress well, and relatively large message (especially, encrypted) in the embedded content.
â fgrieu
1 hour ago
add a comment |Â
up vote
5
down vote
favorite
up vote
5
down vote
favorite
So I have this question. I downloaded a .BMP off google due to .BMPs being not compressed. Just a 1024x768 .BMP image which its size os of 2.25Mb. I put the image in a steganography application.. inserted hidden text within it, encrypted and everything. How come the resulting image (Steganographied Image) is still 2.25Mb in size? Isn't it supposed to get bigger?
steganography
New contributor
So I have this question. I downloaded a .BMP off google due to .BMPs being not compressed. Just a 1024x768 .BMP image which its size os of 2.25Mb. I put the image in a steganography application.. inserted hidden text within it, encrypted and everything. How come the resulting image (Steganographied Image) is still 2.25Mb in size? Isn't it supposed to get bigger?
steganography
steganography
New contributor
New contributor
edited 14 mins ago
Gilles
7,27532549
7,27532549
New contributor
asked 5 hours ago
Matthew Goodlip
291
291
New contributor
New contributor
It depends on the algorithm. Please add the application's name into your question,
â kelalaka
4 hours ago
2
Interesting experiment: compress the original and modified image with a lossless compression program (bzip2, zip, gzip, xz..), with the same settings. You'll often find that the original compress to a smaller size than the resulting image. That's especially true for originals that compress well, and relatively large message (especially, encrypted) in the embedded content.
â fgrieu
1 hour ago
add a comment |Â
It depends on the algorithm. Please add the application's name into your question,
â kelalaka
4 hours ago
2
Interesting experiment: compress the original and modified image with a lossless compression program (bzip2, zip, gzip, xz..), with the same settings. You'll often find that the original compress to a smaller size than the resulting image. That's especially true for originals that compress well, and relatively large message (especially, encrypted) in the embedded content.
â fgrieu
1 hour ago
It depends on the algorithm. Please add the application's name into your question,
â kelalaka
4 hours ago
It depends on the algorithm. Please add the application's name into your question,
â kelalaka
4 hours ago
2
2
Interesting experiment: compress the original and modified image with a lossless compression program (bzip2, zip, gzip, xz..), with the same settings. You'll often find that the original compress to a smaller size than the resulting image. That's especially true for originals that compress well, and relatively large message (especially, encrypted) in the embedded content.
â fgrieu
1 hour ago
Interesting experiment: compress the original and modified image with a lossless compression program (bzip2, zip, gzip, xz..), with the same settings. You'll often find that the original compress to a smaller size than the resulting image. That's especially true for originals that compress well, and relatively large message (especially, encrypted) in the embedded content.
â fgrieu
1 hour ago
add a comment |Â
2 Answers
2
active
oldest
votes
up vote
7
down vote
If you consider the mechanics of embedding the image in it's simplest form, then all you do is repurpose some of the existing bits. The following is a Wikipedia extract from an article on steganography:-
For example, a 24-bit bitmap uses 8 bits to represent each of the three color values (red, green, and blue) of each pixel. The blue alone has 28 different levels of blue intensity. The difference between 11111111 and 11111110 in the value for blue intensity is likely to be undetectable by the human eye. Therefore, the least significant bit can be used more or less undetectably for something else other than color information. If that is repeated for the green and the red elements of each pixel as well, it is possible to encode one letter of ASCII text for every three pixels.
which kinda looks like this:-
except that your message is encrypted. So the image remains exactly the same size.
The issue facing you (and your software) is how many bits can you alter and remain unnoticed? One certainly. The above example uses two and the altered image looks similar. Could you use three then? Clearly seven bits would totally destroy the image and tip off the attackers. It's a balance between leveraging the unavoidable noise introduced by the image digitisation process, the artistic scene and how dangerously you like to live.
Generally the blue channel is the noisiest from a CMOS/CCD sensor point of view. You might be able to inject additional bits into that channel without significant human detection.
Note: There are more advanced embedding methods that can alter the discrete cosine transform coefficients inside a JPEG file. This allows JPEGs to hide messages that would otherwise be impossible in this lossy format. There's a pretty good summary of advanced methods within the introduction to Data hiding inside JPEG images with high resistance to steganalysis using a novel technique: DCT-M3.
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
add a comment |Â
up vote
5
down vote
The entire goal of Steganography is that someone examining the image cannot determine whether there is an encoded message in there or not.
Now, your original .BMP image consisted of 1024x768 3 byte values (the red, green and blue values).
Because that's the format of the original image, the image with the encoded message had to be in the same format. If Steganography changed the format, that might be a tip off that the image included a message.
Instead, the image with the message had to also consist of 1024x768 3 byte values, and so it is also $1024 times 768 times 3 = 2.25 text Meg$ long.
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
add a comment |Â
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
7
down vote
If you consider the mechanics of embedding the image in it's simplest form, then all you do is repurpose some of the existing bits. The following is a Wikipedia extract from an article on steganography:-
For example, a 24-bit bitmap uses 8 bits to represent each of the three color values (red, green, and blue) of each pixel. The blue alone has 28 different levels of blue intensity. The difference between 11111111 and 11111110 in the value for blue intensity is likely to be undetectable by the human eye. Therefore, the least significant bit can be used more or less undetectably for something else other than color information. If that is repeated for the green and the red elements of each pixel as well, it is possible to encode one letter of ASCII text for every three pixels.
which kinda looks like this:-
except that your message is encrypted. So the image remains exactly the same size.
The issue facing you (and your software) is how many bits can you alter and remain unnoticed? One certainly. The above example uses two and the altered image looks similar. Could you use three then? Clearly seven bits would totally destroy the image and tip off the attackers. It's a balance between leveraging the unavoidable noise introduced by the image digitisation process, the artistic scene and how dangerously you like to live.
Generally the blue channel is the noisiest from a CMOS/CCD sensor point of view. You might be able to inject additional bits into that channel without significant human detection.
Note: There are more advanced embedding methods that can alter the discrete cosine transform coefficients inside a JPEG file. This allows JPEGs to hide messages that would otherwise be impossible in this lossy format. There's a pretty good summary of advanced methods within the introduction to Data hiding inside JPEG images with high resistance to steganalysis using a novel technique: DCT-M3.
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
add a comment |Â
up vote
7
down vote
If you consider the mechanics of embedding the image in it's simplest form, then all you do is repurpose some of the existing bits. The following is a Wikipedia extract from an article on steganography:-
For example, a 24-bit bitmap uses 8 bits to represent each of the three color values (red, green, and blue) of each pixel. The blue alone has 28 different levels of blue intensity. The difference between 11111111 and 11111110 in the value for blue intensity is likely to be undetectable by the human eye. Therefore, the least significant bit can be used more or less undetectably for something else other than color information. If that is repeated for the green and the red elements of each pixel as well, it is possible to encode one letter of ASCII text for every three pixels.
which kinda looks like this:-
except that your message is encrypted. So the image remains exactly the same size.
The issue facing you (and your software) is how many bits can you alter and remain unnoticed? One certainly. The above example uses two and the altered image looks similar. Could you use three then? Clearly seven bits would totally destroy the image and tip off the attackers. It's a balance between leveraging the unavoidable noise introduced by the image digitisation process, the artistic scene and how dangerously you like to live.
Generally the blue channel is the noisiest from a CMOS/CCD sensor point of view. You might be able to inject additional bits into that channel without significant human detection.
Note: There are more advanced embedding methods that can alter the discrete cosine transform coefficients inside a JPEG file. This allows JPEGs to hide messages that would otherwise be impossible in this lossy format. There's a pretty good summary of advanced methods within the introduction to Data hiding inside JPEG images with high resistance to steganalysis using a novel technique: DCT-M3.
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
add a comment |Â
up vote
7
down vote
up vote
7
down vote
If you consider the mechanics of embedding the image in it's simplest form, then all you do is repurpose some of the existing bits. The following is a Wikipedia extract from an article on steganography:-
For example, a 24-bit bitmap uses 8 bits to represent each of the three color values (red, green, and blue) of each pixel. The blue alone has 28 different levels of blue intensity. The difference between 11111111 and 11111110 in the value for blue intensity is likely to be undetectable by the human eye. Therefore, the least significant bit can be used more or less undetectably for something else other than color information. If that is repeated for the green and the red elements of each pixel as well, it is possible to encode one letter of ASCII text for every three pixels.
which kinda looks like this:-
except that your message is encrypted. So the image remains exactly the same size.
The issue facing you (and your software) is how many bits can you alter and remain unnoticed? One certainly. The above example uses two and the altered image looks similar. Could you use three then? Clearly seven bits would totally destroy the image and tip off the attackers. It's a balance between leveraging the unavoidable noise introduced by the image digitisation process, the artistic scene and how dangerously you like to live.
Generally the blue channel is the noisiest from a CMOS/CCD sensor point of view. You might be able to inject additional bits into that channel without significant human detection.
Note: There are more advanced embedding methods that can alter the discrete cosine transform coefficients inside a JPEG file. This allows JPEGs to hide messages that would otherwise be impossible in this lossy format. There's a pretty good summary of advanced methods within the introduction to Data hiding inside JPEG images with high resistance to steganalysis using a novel technique: DCT-M3.
If you consider the mechanics of embedding the image in it's simplest form, then all you do is repurpose some of the existing bits. The following is a Wikipedia extract from an article on steganography:-
For example, a 24-bit bitmap uses 8 bits to represent each of the three color values (red, green, and blue) of each pixel. The blue alone has 28 different levels of blue intensity. The difference between 11111111 and 11111110 in the value for blue intensity is likely to be undetectable by the human eye. Therefore, the least significant bit can be used more or less undetectably for something else other than color information. If that is repeated for the green and the red elements of each pixel as well, it is possible to encode one letter of ASCII text for every three pixels.
which kinda looks like this:-
except that your message is encrypted. So the image remains exactly the same size.
The issue facing you (and your software) is how many bits can you alter and remain unnoticed? One certainly. The above example uses two and the altered image looks similar. Could you use three then? Clearly seven bits would totally destroy the image and tip off the attackers. It's a balance between leveraging the unavoidable noise introduced by the image digitisation process, the artistic scene and how dangerously you like to live.
Generally the blue channel is the noisiest from a CMOS/CCD sensor point of view. You might be able to inject additional bits into that channel without significant human detection.
Note: There are more advanced embedding methods that can alter the discrete cosine transform coefficients inside a JPEG file. This allows JPEGs to hide messages that would otherwise be impossible in this lossy format. There's a pretty good summary of advanced methods within the introduction to Data hiding inside JPEG images with high resistance to steganalysis using a novel technique: DCT-M3.
edited 3 hours ago
answered 4 hours ago
Paul Uszak
6,35111332
6,35111332
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
add a comment |Â
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
Does all steganography use LSB methods? Like how can i tell that an image is using LSB rather then another method?
â Matthew Goodlip
4 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip No. My (poor) note relates to advanced techniques in JPEGs like this - sciencedirect.com/science/article/pii/S209044791730031X
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
@MatthewGoodlip It's difficult to tell what method is used (with encryption) as the encrypted message is computationally indistinguishable from random noise that might be there naturally. Two BMPs can be differenced pixel by pixel to highlight changes if you have an original. But that won't work on a pair of JPEGs.
â Paul Uszak
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
Is there by any chance a way to contact you without using the reply method Paul? As i have a couple more queries to ask as you've been the most helpful
â Matthew Goodlip
3 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
@MatthewGoodlip I have a gmail account in the expected format...
â Paul Uszak
2 hours ago
add a comment |Â
up vote
5
down vote
The entire goal of Steganography is that someone examining the image cannot determine whether there is an encoded message in there or not.
Now, your original .BMP image consisted of 1024x768 3 byte values (the red, green and blue values).
Because that's the format of the original image, the image with the encoded message had to be in the same format. If Steganography changed the format, that might be a tip off that the image included a message.
Instead, the image with the message had to also consist of 1024x768 3 byte values, and so it is also $1024 times 768 times 3 = 2.25 text Meg$ long.
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
add a comment |Â
up vote
5
down vote
The entire goal of Steganography is that someone examining the image cannot determine whether there is an encoded message in there or not.
Now, your original .BMP image consisted of 1024x768 3 byte values (the red, green and blue values).
Because that's the format of the original image, the image with the encoded message had to be in the same format. If Steganography changed the format, that might be a tip off that the image included a message.
Instead, the image with the message had to also consist of 1024x768 3 byte values, and so it is also $1024 times 768 times 3 = 2.25 text Meg$ long.
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
add a comment |Â
up vote
5
down vote
up vote
5
down vote
The entire goal of Steganography is that someone examining the image cannot determine whether there is an encoded message in there or not.
Now, your original .BMP image consisted of 1024x768 3 byte values (the red, green and blue values).
Because that's the format of the original image, the image with the encoded message had to be in the same format. If Steganography changed the format, that might be a tip off that the image included a message.
Instead, the image with the message had to also consist of 1024x768 3 byte values, and so it is also $1024 times 768 times 3 = 2.25 text Meg$ long.
The entire goal of Steganography is that someone examining the image cannot determine whether there is an encoded message in there or not.
Now, your original .BMP image consisted of 1024x768 3 byte values (the red, green and blue values).
Because that's the format of the original image, the image with the encoded message had to be in the same format. If Steganography changed the format, that might be a tip off that the image included a message.
Instead, the image with the message had to also consist of 1024x768 3 byte values, and so it is also $1024 times 768 times 3 = 2.25 text Meg$ long.
answered 4 hours ago
poncho
87.2k2130221
87.2k2130221
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
add a comment |Â
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
Aaaaa okay. Now if i have let's say.. 5 applications that do steganography.. some with encryption some just hide the text within the image. How can i compare them if all of the applications end with the same 2.25Mb size result?
â Matthew Goodlip
4 hours ago
add a comment |Â
Matthew Goodlip is a new contributor. Be nice, and check out our Code of Conduct.
Matthew Goodlip is a new contributor. Be nice, and check out our Code of Conduct.
Matthew Goodlip is a new contributor. Be nice, and check out our Code of Conduct.
Matthew Goodlip is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcrypto.stackexchange.com%2fquestions%2f63450%2fwhy-doesnt-steganography-increase-the-size-of-an-uncompressed-image%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
It depends on the algorithm. Please add the application's name into your question,
â kelalaka
4 hours ago
2
Interesting experiment: compress the original and modified image with a lossless compression program (bzip2, zip, gzip, xz..), with the same settings. You'll often find that the original compress to a smaller size than the resulting image. That's especially true for originals that compress well, and relatively large message (especially, encrypted) in the embedded content.
â fgrieu
1 hour ago