Cryptography Reference
In-Depth Information
6. If the difference is smaller than the threshold, keep the pair and
encode information in it. Let a pair where
B 1 >B 2 signify a 1
B 1 <B 2 signify a 0 . Add or subtract small
amounts from individual elements to make sure the informa-
tion is correct. To add some error resistance, make sure that
|B 1 − B 2 | >S
and let a pair where
,where
S
is a measure of the signal strength.
Throwing out wildly different pairs where the difference is greater
than
helps ensure that the modifications will not be too large. Both
the sender and the receiver can detect these wildly different blocks
and exclude them from consideration.
Again, choosing the correct sizes for the blocks, the threshold
T
T
and the signal strength
requires a certain amount of artistic sense.
Bigger blocks mean more room for the law of averages to work at
the cost of greater bandwidth. Decreasing the value of
S
reduces the
amount of changes that might need to be made to the data in order
to encode the right value at the cost of excluding more information.
One implementation based on the work of Brian Chen and Greg
Wornell hid one bit in every 8
T
8 block of pixels.[CW00, CW99, Che00,
CMBF08] It compared the 64 pixels in each block with a reference
pattern by computing a weighted average of the difference. Then it
added or subtracted enough to each of the 64 pixels until the com-
parison came out to be even or odd. Spreading the changes over the
64 pixels reduces the distortion.
This reference pattern acted like a key for the quantization by
weighting it. Let this reference pattern be a matrix,
×
w i,j ,andthedata
be
m i,j .Toquantizeeachblock,compute:
=
i,j
x
w i,j m i,j .
Now, replace
x
with a quantized value,
q
, by setting
m i,j =
m i,j
w i,j (
x − q
)
/b
,where
b
is the number of pixels or data points in the
block. In the 8
would be 64 . The distortion is
spread throughout the block and weighted by the values of
×
8 example above,
b
w i,j .
The reference pattern does not need to be the same for each block
and it doesn't need even to be confined to any block-like structure. In
the most extreme case, a cryptographically secure pseudo-random
stream could be used to pick the data values at random and effec-
tively split them into weighted blocks.
14.4.1 Minimizing Quantization Errors
In one surprising detail, the strategy of increasing the block size be-
gins to fail when the data values are tightly quantized. Larger blocks
Search WWH ::




Custom Search