## 2 Data Containers for an Optical Encryption
### MCDDC's Features and Parameters  
We developed MCDDC using the same principles as QR codes but removed and changed all undesirable elements. The most important difference is a use of BCH instead of RS. BCH operates in binary format, and its minimal fragment is strictly one module. Therefore, one incorrect module in BCH corresponds to one lost bit, instead of eight in RS. Since modern data content is measured in gigabytes, MCDDC by default is a sequence of messages. We discarded all patterns associated with positioning and orientation and combined all service elements in one block to maximize useful data area. The service block was put into the center of the first message, with the following messages containing only encoded data. The structure of MCDDC's messages is presented in Figure 1.  
In general, all MCDDC messages have a fuzzy outline instead of straight borders. A fuzzy outline is an advantage for data container, when it is used in optical encryption systems that do not transform an input image spectrum into a white noise. In these systems, it is possible to trace outlines of an input image in an encoded one; therefore, straight outlines can give out the size of the input image. The service block has a size of 52 \(\times\) 64 modules and contains all the necessary information about parameters of MCDDC. There are 10 sub-blocks, one for each parameter; the most important of which are:  
* Full size of a message (taking into account the width of the fuzzy outline if it is present). * BCH error correction level. This parameter shows the error correction capabilities of the used code, not MCDDC itself. MCDDC error correction level is lower due to the normal distribution of the noise in a message and can vary for different encryption systems. * Number of gray levels in messages. * Width of the fuzzy outline or its absence. * Number of interconnected messages. Another important difference between MCDDC and QR code is a data scrambling. RS and BCH encode data by blocks with typical size of tens and hundreds of bits. In MCDDC, after all non-service data are encoded, they are scrambled. It allows to mitigate the effect of errors localization. If there is a cluster of errors, scrambling spreads them over a number of blocks. It drastically reduces the likelihood that a number of errors in any one block prematurely exceed the BCH error correction capabilities. The full range of available-to-user MCDDC parameters and its comparison to QR code are presented in Table 1. \begin{table}
\begin{tabular}{c c c} \hline \hline
**Feature** & **QR Code** & **MCDDC** \\ \hline Available sizes & 40 values in the range & All values in the range \\  & 21–177 modules & 64–8192 modules \\ Aspect ratio & 1:1 & Any value \\ Input error correction level & 7, 15, 25 or 30\% & 1–21.7\% \\ Container experimental error & 0.7\% & 0.5–16.3\% \\ correction level & 0.33–0.75 & 0.08–0.86 \\ Density of data encoding & 16 & 8192 \\ Maximum number of connected & No & Yes \\ messages & Present & Absent \\ Data scrambling & 2 & Any value \\ Large structured blocks & & Fuzzy \\ (positioning and orientation patterns) & & \\ Number of gray levels in & 2 & Any value \\ messages & & Fuzzy \\ Outlines & 2 & \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Comparison of QR code and MCDDC features. Figure 1: The structure of MCDDC’s messages (color online). To determine container experimental error correction level, we used noise pollution simulation with \"salt and pepper\" kind of noise and \"one module--one pixel\" container representation when single QR code module corresponds to a single pixel in an image [48]. The low results of QR code (the only one available value of 0.7%) are due to its unsuitability for such representation. In experiments with coherent illumination, one module of QR code is usually represented by a block of several dozens of pixels, but it led to a very low density of data encoding. Due to the bit format of BCH, MCDDC can successfully operate in this representation.