## 4 Experimental Results
### Possible Applications  
Several possible applications of the presented data hiding framework can be envisaged. Here, we describe a commercial application. Let us suppose we have a set of different kinds of objects, each one described by a multimedia record: for example, the products sold in a shop may be described by their name, producer, weight/capacity, price and, possibly, a small icon. These data can be compressed, e.g., in zip format, and encoded, through Base45, in a sequence of symbols represented by a QR (Quick Response) code that can be printed on or near the object (like the shelf where the object is displayed). To avoid forging of QR codes, the zip compressed data can be signed with ECDSA [21,22] and the signature embedded in the Base45 sequence using the proposed framework (Figure 2). \begin{table}
\begin{tabular}{l c c c c} \hline \hline \multirow{2}{*}{**Base**} & \multicolumn{2}{c}{**Average (\(\pm\)std dev)**} & \multicolumn{2}{c}{**Average (\(\pm\)std dev)**} & \multirow{2}{*}{**Comparison**} \\  & **Payload per Input Byte** & & & **Payload per Output** \\  & **[bpb]** & & & **Payload per Output** \\ \hline Base45 & 0.20293 \(\pm\) 0.01094 & 0.13528 \(\pm\) 0.00729 & 1 & ++ \\ Base45 & 0.20224 \(\pm\) 0.01068 & 0.13482 \(\pm\) 0.00712 & 2 & ++ \\ Base45 & 0.18910 \(\pm\) 0.01059 & 0.12606 \(\pm\) 0.00706 & 3 & – \\ Base85 & 0.00917 \(\pm\) 0.00180 & 0.00734 \(\pm\) 0.00146 & 1 & + \\ Base85 & 0.01040 \(\pm\) 0.00285 & 0.00833 \(\pm\) 0.00230 & 2 & ++ \\ Base85 & 0.00781 \(\pm\) 0.00139 & 0.00625 \(\pm\) 0.00111 & 3 & – \\ \hline \hline \end{tabular}
\end{table} 
Table 6: Results of the Base45 and Base85 encodings applied to 109 compressed files (format b.z2). \begin{table}
\begin{tabular}{l c c c c} \hline \hline \multirow{2}{*}{**Base**} & \multicolumn{2}{c}{**Average (\(\pm\)std dev)**} & \multicolumn{2}{c}{**Average (\(\pm\)std dev)**} & \multirow{2}{*}{**Comparison**} \\  & **Payload per Input Byte** & & & **Payload per Output** \\  & **[bpb]** & & & **Payload per Output** \\ \hline Base45 & 0.19213 \(\pm\) 0.00248 & 0.12809 \(\pm\) 0.00165 & 1 & – \\ Base45 & 0.19203 \(\pm\) 0.00285 & 0.12802 \(\pm\) 0.00190 & 2 & – \\ Base45 & 0.19857 \(\pm\) 0.00284 & 0.13238 \(\pm\) 0.00189 & 3 & + \\ Base85 & 0.00818 \(\pm\) 0.00011 & 0.00654 \(\pm\) 0.00009 & 1 & – \\ Base85 & 0.00787 \(\pm\) 0.00042 & 0.00629 \(\pm\) 0.00033 & 2 & – \\ Base85 & 0.00897 \(\pm\) 0.00073 & 0.00718 \(\pm\) 0.00058 & 3 & + \\ \hline \hline \end{tabular}
\end{table} 
Table 7: Results of the Base45 and Base85 encodings applied to 28 compressed files (format.gz). \begin{table}
\begin{tabular}{l c c c c} \hline \hline \multirow{2}{*}{**Base**} & \multicolumn{2}{c}{**Average (\(\pm\)std dev)**} & \multicolumn{2}{c}{**Average (\(\pm\)std dev)**} & \multirow{2}{*}{**Comparison**} \\  & **Payload per Input Byte** & & & **Payload per Output** \\  & **[bpb]** & & & **Payload per Output** \\ \hline Base45 & 0.19574 \(\pm\) 0.01060 & 0.13049 \(\pm\) 0.00707 & 1 & = \\ Base45 & 0.19669 \(\pm\) 0.01436 & 0.13113 \(\pm\) 0.00957 & 2 & + \\ Base45 & 0.19334 \(\pm\) 0.01420 & 0.12890 \(\pm\) 0.00947 & 3 & – \\ Base85 & 0.00855 \(\pm\) 0.00125 & 0.00685 \(\pm\) 0.00103 & 1 & + \\ Base85 & 0.00985 \(\pm\) 0.00612 & 0.00789 \(\pm\) 0.00495 & 2 & + \\ Base85 & 0.00863 \(\pm\) 0.00160 & 0.00691 \(\pm\) 0.00128 & 3 & + \\ \hline \hline \end{tabular}
\end{table} 
Table 8: Results of the Base45 and Base85 encodings applied to 112 compressed files (formats: zip, bz2, gz). We performed some tests showing the possibility to embed an ECDSA signature of 448 bits (computed from a key of length 224 bits) into a compressed Base45 encoded string. In case the compressed string is not long enough for storing the signature, padding bytes are added to complete the signature embedding (the padding bytes are binary strings mapped by \(\beta\) to the set \(\mathbf{E}^{\prime}\) to maximize the payload). To correctly restore the original compressed string two bytes containing its length are prefixed before Base45 encoding.