# Watermarking Protocols: A Short Guide for Beginners
## 3 Security Primitives
### Joint Watermarking  
Joint watermarking proposes a different approach to designing watermarking protocols. Its main aim is to distribute the computing load to protect contents among buyers and content providers. It operates in two phases. The former enables a content provider to encrypt multimedia digital content by heavily distorting some of its perceptually significant parts. In particular, distortion is obtained by adding a specific noise signal to the content. The latter enables a buyer to decrypt such content by partially removing the noise signal added to it, thus introducing changes in the content, which can be considered as a detectable watermark. A significant example of joint watermarking based on the spread spectrum embedding technique is described in [53; 54]. The example shows how a content \(X\) can be encrypted and distributed to \(N\) buyers by employing a long-term master encryption look-up table (LUT) **E** whose size is \(T\). The entries of **E** are denoted as \(\textbf{E}(0)\), \(\textbf{E}(1),\ldots\), \(\textbf{E}(T\!-\!1)\), and represent independent and identically distributed (i.i.d.) random variables characterized by a Gaussian distribution with variance \(\sigma_{E}^{2}\). In particular, to encrypt the copy of \(X\) for the \(k\)-th buyer, the content provider has to generate two LUTs, denoted as \(\textbf{W}_{k}\) and \(\textbf{D}_{k}\), personalized for that buyer. The former represents a watermark LUT whose entries are i.i.d. random variables following a Gaussian distribution with variance \(\sigma_{W}^{2}\). The latter represents the personalized decryption LUT built by combining componentwise the encryption and watermark LUTs according to the following expression:  
\[\textbf{D}_{k}(t)=-\textbf{E}(t)+\textbf{W}_{k}(t)\]  
for \(t=0,1,\ldots,T\!-\!1\). Then, the content provider creates a content-dependent key, denoted as \(sk_{X}\), and encrypts \(X\) by applying the following procedure. Firstly, it uses \(sk_{X}\) to generate a set of pseudo-random \(M\times R\) values in the range \([0;T\!-\!1]\), each denoted as \(t_{ih}\) and with \(0\leq i\leq M\!-\!1\) and \(0\leq h\leq R\!-\!1\). Then, \(M\) significant content features of \(X\), each denoted as \(x_{i}\), are encrypted by employing the encryption LUT **E**. In particular, the encrypted value of \(x_{i}\), denoted as \(c_{i}\), is obtained by adding \(R\) entries of **E** identified by the indexes (\(t_{i0},\ldots,t_{i(R-1)}\)) included in the set of \(M\times R\) values according to the following expression:  
\[c_{i}=x_{i}+\sum_{h=0}^{R-1}\textbf{E}(t_{ih}) \tag{3}\]  
Once encryption of \(X\) is completed, the content can be sent to the \(N\) buyers together with the key \(sk_{X}\). Moreover, each buyer also receives the personalized decryption LUT. This means that the \(k\)-th buyer receives \(\textbf{D}_{k}\) for \(k=1,2,\ldots,N\). Joint watermarking is carried out by each of the \(N\) buyers in two phases: in the former, the \(k\)-th buyer has to reconstruct the same sequence of indexes \(t_{ih}\) by employing the content-dependent key \(sk_{X}\); in the latter, the \(k\)-th buyer adds \(R\) entries of the decryption LUT \(\textbf{D}_{k}\) to each encrypted feature \(c_{i}\) according to the following expression, thus obtaining the decrypted and watermarked content feature \(y_{k,i}\) corresponding to \(x_{i}\):  
\[y_{k,i}=c_{i}\!+\!\sum_{h=0}^{R-1}\textbf{D}_{k}(t_{ih})=x_{i}\!+\!\sum_{h=0} ^{R-1}\textbf{W}_{k}(t_{ih})=x_{i}\!+\!w_{k,i} \tag{4}\]  
\(w_{k,i}\) represents the \(i\)-th watermark component of the \(k\)-th copy of \(X\). It is calculated as the sum of the \(R\) entries of the \(k\)-th watermark LUT \(\textbf{W}_{k}\). As a result, the \(k\)-th buyer can receive a personalized watermarked copy of \(X\), denoted as \(Y_{k}=X+W_{k}\). Joint watermarking is characterized by computational simplicity since it makes it possible, in the first instance, to watermark digital content without resorting to complex homomorphic public-key encryption operations.