Monday, 29 June 2015

Everything worth doing is too expensive.

Hidden messages within the noise...


1) The LSB of the first line of pixels contains a code of random binary data.
2) This code can be used to calculate a cross-correlation value with the LSBs of the next lines of pixels.
3) The deviation of the xcorr value from the mean determines whether the line contained 1 or 0 (information is noisy with only approx. 15% of the bits transmitted).

This technique shares some similarities with the way the GPS transmits information with poor SNR.

pic = imread('/home/plahteen/code.png');
[a b c] = size(pic);

% extract the correlation code
code = double(mod(pic(1,1:b,1), 2)) - 0.5;

% calculate xcorr with LSB and code
for x=1:a-1
    co = double(mod(pic(1+x,1:b,1),2)) - 0.5;
    X(x) = dot(co, code);
end

% convert signal into binary
X = X>mean(double(X));

% decode
sprintf(char(bin2dec(vec2mat(sprintf('%d', double(X)), 7))))


ans =



My attempt to reciprocate is cut brutally short as my body experiences a sudden lack of electrons.

No comments:

Post a Comment