<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
 <front>
  <journal-meta>
   <journal-id journal-id-type="publisher-id">
    eng
   </journal-id>
   <journal-title-group>
    <journal-title>
     Engineering
    </journal-title>
   </journal-title-group>
   <issn pub-type="epub">
    1947-3931
   </issn>
   <issn publication-format="print">
    1947-394X
   </issn>
   <publisher>
    <publisher-name>
     Scientific Research Publishing
    </publisher-name>
   </publisher>
  </journal-meta>
  <article-meta>
   <article-id pub-id-type="doi">
    10.4236/eng.2024.169023
   </article-id>
   <article-id pub-id-type="publisher-id">
    eng-136419
   </article-id>
   <article-categories>
    <subj-group subj-group-type="heading">
     <subject>
      Articles
     </subject>
    </subj-group>
    <subj-group subj-group-type="Discipline-v2">
     <subject>
      Engineering
     </subject>
    </subj-group>
   </article-categories>
   <title-group>
    Reversible Semi-Fragile Watermarking Technique for Integrity Control of Relational Database
   </title-group>
   <contrib-group>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Ali
      </surname>
      <given-names>
       Hamadou
      </given-names>
     </name> 
     <xref ref-type="aff" rid="aff1"> 
      <sup>1</sup>
     </xref>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Abdoul Aziz Issaka
      </surname>
      <given-names>
       Hassane
      </given-names>
     </name> 
     <xref ref-type="aff" rid="aff1"> 
      <sup>1</sup>
     </xref>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Lanciné
      </surname>
      <given-names>
       Camara
      </given-names>
     </name> 
     <xref ref-type="aff" rid="aff2"> 
      <sup>2</sup>
     </xref>
    </contrib>
    <contrib contrib-type="author" xlink:type="simple">
     <name name-style="western">
      <surname>
       Harouna
      </surname>
      <given-names>
       Naroua
      </given-names>
     </name> 
     <xref ref-type="aff" rid="aff3"> 
      <sup>3</sup>
     </xref>
    </contrib>
   </contrib-group> 
   <aff id="aff1">
    <addr-line>
     aDepartment of Mathematics, Dan Dicko Dankoulodo University of Maradi, Maradi, Niger
    </addr-line> 
   </aff> 
   <aff id="aff2">
    <addr-line>
     aSocial Science and Management University of Bamako, Bamako, Mali
    </addr-line> 
   </aff> 
   <aff id="aff3">
    <addr-line>
     aDepartment of Mathematics and Computer Science, Abdou Moumouni University, Niamey, Niger
    </addr-line> 
   </aff> 
   <pub-date pub-type="epub">
    <day>
     06
    </day> 
    <month>
     09
    </month>
    <year>
     2024
    </year>
   </pub-date> 
   <volume>
    16
   </volume> 
   <issue>
    09
   </issue>
   <fpage>
    309
   </fpage>
   <lpage>
    323
   </lpage>
   <history>
    <date date-type="received">
     <day>
      20,
     </day>
     <month>
      August
     </month>
     <year>
      2024
     </year>
    </date>
    <date date-type="published">
     <day>
      26,
     </day>
     <month>
      August
     </month>
     <year>
      2024
     </year> 
    </date> 
    <date date-type="accepted">
     <day>
      26,
     </day>
     <month>
      September
     </month>
     <year>
      2024
     </year> 
    </date>
   </history>
   <permissions>
    <copyright-statement>
     © Copyright 2014 by authors and Scientific Research Publishing Inc. 
    </copyright-statement>
    <copyright-year>
     2014
    </copyright-year>
    <license>
     <license-p>
      This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/
     </license-p>
    </license>
   </permissions>
   <abstract>
    Reversible watermarking schemes for relational database are usually classified into two groups: robust schemes and fragile schemes. The main limitation of existing reversible fragile methods is that they cannot differentiate between legal and malicious modifications. In this paper, we introduce a novel lossless semi-fragile scheme based on prediction-error expansion for content protection of relational database. In the proposed method, all attributes in a database relation are first classified according to their sensitivity to legitimate updates. Then, the watermark is embedded by expanding the prediction error of the two least significant digits of securely selected attributes. At watermark extraction, the proposed method has the ability to fully restore the original data while detecting and localizing tampering. The applicability of our method is demonstrated theoretically and experimentally.
   </abstract>
   <kwd-group> 
    <kwd>
     Semi-Fragile Watermarking
    </kwd> 
    <kwd>
      Integrity Control
    </kwd> 
    <kwd>
      Reversibility
    </kwd> 
    <kwd>
      Prediction-Error Expansion
    </kwd>
   </kwd-group>
  </article-meta>
 </front>
 <body>
  <sec id="s1">
   <title>1. Introduction</title>
   <p>With the increasing popularity of sharing data stores across the Internet, digital technology faces the challenge of preventing piracy of precious and sensitive data in different formats such as multimedia <xref ref-type="bibr" rid="scirp.136419-1">
     [1]
    </xref> <xref ref-type="bibr" rid="scirp.136419-2">
     [2]
    </xref>, and database <xref ref-type="bibr" rid="scirp.136419-3">
     [3]
    </xref>-<xref ref-type="bibr" rid="scirp.136419-7">
     [7]
    </xref>. Content owners allow their data to be accessed and used remotely, thereby exposing them to a threat of data theft. To tackle this situation, digital watermarking has been proposed as a promising technology for ownership proofing and data integrity control. Reversible schemes for relational data are usually classified in two categories: robust and fragile. Robust schemes are used for copyright protection <xref ref-type="bibr" rid="scirp.136419-8">
     [8]
    </xref>-<xref ref-type="bibr" rid="scirp.136419-12">
     [12]
    </xref>, while fragile schemes are designed for tamper detection and content integrity verification <xref ref-type="bibr" rid="scirp.136419-10">
     [10]
    </xref>-<xref ref-type="bibr" rid="scirp.136419-14">
     [14]
    </xref>. Yet, one of the main limitations of most tamper detection schemes is their complete fragileness, i.e., even a change of a single bit is detected as tampering. As a result, any legal update of the watermarked data would be regarded as malicious modification. A relatively few semi-fragile schemes were proposed for watermarking relational database <xref ref-type="bibr" rid="scirp.136419-13">
     [13]
    </xref>-<xref ref-type="bibr" rid="scirp.136419-15">
     [15]
    </xref>. The downside with these techniques is that they are irreversible, meaning that they introduce permanent distortions in the data. Although these errors are claimed to do not compromise the data usefulness, they are not tolerated in sensitive applications such as military and medical database systems.</p>
   <p>In this paper, we propose a new reversible blind and semi-fragile watermarking technique for authentication of relational data based on prediction-error expansion (PEE). The purpose of semi-fragile watermarking is to verify that the content has not been altered maliciously, while allowing modifications by legitimate updates. The contributions of the proposed scheme can be summarized as follows:</p>
   <p>The rest of this paper is organized as follows: In Section 2, previous work is discussed. An overview of PEE and the preprocessing phase are introduced in Section 3. In Section 4, the watermark embedding and detection procedures are explained in detail. The security analysis of the new scheme is described in Section 5. In Section 6, the proposed method is evaluated experimentally, and a comparison with some related works is provided. The conclusion is given in Section 7.</p>
  </sec><sec id="s2">
   <title>2. Related Work</title>
   <p>Reversible watermarking for integrity control is currently a great concern in medical and military relational database applications, where they contribute to sensitive decision-making.</p>
   <p>In <xref ref-type="bibr" rid="scirp.136419-13">
     [13]
    </xref>, Shah et al. proposed a semi-fragile watermarking scheme for relational database integrity verification. Besides detection and localization of database tampering, the proposed scheme allows modifications to the data that need periodic updates. Watermark embedding is performed by adjusting the text case of selected data values, thus preserving semantic meaning of data. However, this method cannot be applied to numeric relational data. Moreover, changes made to text attributes values are not reversible.</p>
   <p>In <xref ref-type="bibr" rid="scirp.136419-14">
     [14]
    </xref>, a semi-fragile watermarking technique for tamper detection of relational databases is proposed. The scheme associates a secret weight to database attributes according to their sensitivity to benign updates. The watermark is embedded in the least significant bits (LSB) of high-weighted attributes. Intermediate-weighted attributes can be legitimately modified up to a predefined level of distortion, while the low-weighted ones can be altered without any constraint. Consequently, the scheme can detect and localize malicious modifications when allowing authorized updates. However, the original data cannot be recovered.</p>
   <p>Murugan et al. proposed a zero-watermarking scheme for integrity checking of relational database <xref ref-type="bibr" rid="scirp.136419-15">
     [15]
    </xref>. In their method, all attributes and tuples are sorted to generate a new tuple by processing each attribute value of the existing tuples. The watermark, constructed using the hash values of the newly created tuple, the database relation and the secret key, is not actually encoded into the data. Instead, it is registered with a Certification Authority. The scheme is claimed to be semi-fragile, but only innocent attacks (tuple/attribute sorting) are allowed. In addition, the proposed algorithm is not reversible and requires re-watermarking in case of legal data modification.</p>
   <p>Contreras et al. <xref ref-type="bibr" rid="scirp.136419-16">
     [16]
    </xref> <xref ref-type="bibr" rid="scirp.136419-17">
     [17]
    </xref> proposed a lossless watermarking based on circular interpretation of bijective modulations for integrity verification of medical relational databases. The proposed technique modulates the relative angular position of the circular histogram center of mass of one numeric attribute in the relation. The foregoing scheme is a dual solution as it can be used for copyright protection, integrity control or traitor tracing. Nevertheless, it does not allow any legal data update.</p>
   <p>In <xref ref-type="bibr" rid="scirp.136419-18">
     [18]
    </xref>, a reversible fragile watermarking (RFW) technique for tamper detection and original data recovery in relational database was presented. In the proposed work, two optimization techniques, namely Orthogonal Learning Particle Swarm Optimization (OLPSO) and Fire Fly (FA) are used to ﬁnd the optimal locations in the database for embedding the watermark. In case of tampering, the method has the ability to restore the database back to the original state. One of the limitations of this method is its complete fragileness.</p>
   <p>A fragile, blind and reversible method for tamper detection in decision systems is presented in <xref ref-type="bibr" rid="scirp.136419-19">
     [19]
    </xref>. Based on rough set theory, the introduced scheme, first prepares a secure signature by encoding the information on reducts, rules and their support values. Then, it securely embeds the signature into the dataset. In case of alteration in reducts, the proposed technique can recover the original value. However, no legal update is allowed.</p>
   <p>In <xref ref-type="bibr" rid="scirp.136419-20">
     [20]
    </xref>, a RFW based on PEE is presented. The proposed scheme has the ability to detect and localize tampering at attribute level, while restoring the original data. However, it does not allow any legal modification.</p>
  </sec><sec id="s3">
   <title>3. Preliminary</title>
   <sec id="s3_1">
    <title>3.1. Prediction-Error Expansion</title>
    <p>The prediction-error expansion (PEE) was first proposed by Thodi and Rodriguez <xref ref-type="bibr" rid="scirp.136419-21">
      [21]
     </xref>. The mechanism of PEE-based embedding and extraction can be briefly described as follows:</p>
    <p>Let x be the intensity of a pixel in a gray-scale image, and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mover accent="true"> 
       <mi>
         x 
       </mi> 
       <mo>
         ^ 
       </mo> 
      </mover> 
     </math> its predicted value. For embedding a watermark bit i, the prediction-error 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         e 
       </mi> 
       <mo>
         = 
       </mo> 
       <mi>
         x 
       </mi> 
       <mo>
         − 
       </mo> 
       <mover accent="true"> 
        <mi>
          x 
        </mi> 
        <mo>
          ^ 
        </mo> 
       </mover> 
      </mrow> 
     </math> is expanded by shifting left its binary format so as to create a vacant LSB into which i is inserted. The expanded prediction-error 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          e 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
      </mrow> 
     </math> and the watermark value 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          x 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
      </mrow> 
     </math> are given by</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          e 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         2 
       </mn> 
       <mi>
         e 
       </mi> 
       <mo>
         + 
       </mo> 
       <mi>
         i 
       </mi> 
      </mrow> 
     </math> (1)</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          x 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mover accent="true"> 
        <mi>
          x 
        </mi> 
        <mo>
          ^ 
        </mo> 
       </mover> 
       <mo>
         + 
       </mo> 
       <msub> 
        <mi>
          e 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mi>
         x 
       </mi> 
       <mo>
         + 
       </mo> 
       <mi>
         e 
       </mi> 
       <mo>
         + 
       </mo> 
       <mi>
         i 
       </mi> 
      </mrow> 
     </math> (2)</p>
    <p>For watermark decoding, first, the prediction-error 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          e 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <msub> 
        <mi>
          x 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         − 
       </mo> 
       <mover accent="true"> 
        <mi>
          x 
        </mi> 
        <mo>
          ^ 
        </mo> 
       </mover> 
      </mrow> 
     </math> is computed from the watermark image. Then, the embedded bit i is extracted from the LSB</p>
    <p>position of 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          e 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
      </mrow> 
     </math>. Next, the original prediction-error is obtained by 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         e 
       </mi> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          ⌊ 
        </mo> 
        <mrow> 
         <mfrac> 
          <mrow> 
           <msub> 
            <mi>
              e 
            </mi> 
            <mi>
              w 
            </mi> 
           </msub> 
          </mrow> 
          <mn>
            2 
          </mn> 
         </mfrac> 
        </mrow> 
        <mo>
          ⌋ 
        </mo> 
       </mrow> 
      </mrow> 
     </math>. Finally, the original pixel value is restored as follows:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         x 
       </mi> 
       <mo>
         = 
       </mo> 
       <msub> 
        <mi>
          x 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         − 
       </mo> 
       <mi>
         e 
       </mi> 
       <mo>
         − 
       </mo> 
       <mi>
         i 
       </mi> 
      </mrow> 
     </math> (3)</p>
    <p>For example, assume 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         x 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         223 
       </mn> 
      </mrow> 
     </math>, 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         a 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         208 
       </mn> 
      </mrow> 
     </math>, 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         b 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         213 
       </mn> 
      </mrow> 
     </math> et 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         c 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         213 
       </mn> 
      </mrow> 
     </math>. Then, the prediction error is given by: 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         e 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         223 
       </mn> 
       <mo>
         − 
       </mo> 
       <mn>
         208 
       </mn> 
       <mo>
         = 
       </mo> 
       <mn>
         15 
       </mn> 
      </mrow> 
     </math>. Let 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         i 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         1 
       </mn> 
      </mrow> 
     </math> be the embedding watermark bit. The expanded prediction error and the watermarked pixel values can be computed as follows: 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          e 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         2 
       </mn> 
       <mo>
         ∗ 
       </mo> 
       <mn>
         15 
       </mn> 
       <mo>
         + 
       </mo> 
       <mn>
         1 
       </mn> 
       <mo>
         = 
       </mo> 
       <mn>
         31 
       </mn> 
      </mrow> 
     </math> and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          x 
        </mi> 
        <mi>
          w 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mn>
         208 
       </mn> 
       <mo>
         + 
       </mo> 
       <mn>
         31 
       </mn> 
       <mo>
         = 
       </mo> 
       <mn>
         239 
       </mn> 
      </mrow> 
     </math>. At detection phase, the concealed bit and the original prediction error are given by:</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         i 
       </mi> 
       <mo>
         = 
       </mo> 
       <mtext>
         LSB 
       </mtext> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            e 
          </mi> 
          <mi>
            w 
          </mi> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mn>
         1 
       </mn> 
      </mrow> 
     </math> and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         e 
       </mi> 
       <mo>
         = 
       </mo> 
       <mrow> 
        <mo>
          ⌊ 
        </mo> 
        <mrow> 
         <mfrac> 
          <mrow> 
           <mn>
             31 
           </mn> 
          </mrow> 
          <mn>
            2 
          </mn> 
         </mfrac> 
        </mrow> 
        <mo>
          ⌋ 
        </mo> 
       </mrow> 
       <mo>
         = 
       </mo> 
       <mn>
         15 
       </mn> 
      </mrow> 
     </math>. Lastly, the original pixel value can be restored as follows: 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         x 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         239 
       </mn> 
       <mo>
         − 
       </mo> 
       <mn>
         15 
       </mn> 
       <mo>
         − 
       </mo> 
       <mn>
         1 
       </mn> 
       <mo>
         = 
       </mo> 
       <mn>
         223 
       </mn> 
      </mrow> 
     </math>.</p>
    <p>In this work, we assume that the original pixel x is the two least significant digits (LSDs) of any numerical attributes to be selected for watermarking, and its predicted intensity 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mover accent="true"> 
       <mi>
         x 
       </mi> 
       <mo>
         ^ 
       </mo> 
      </mover> 
     </math> is the relevant tuple primary key hash value, which is known at both embedding and detection phases.</p>
   </sec>
   <sec id="s3_2">
    <title>3.2. Preprocessing</title>
    <p>The main goal of our solution is to construct a reversible semi-fragile watermark in such a way that, besides detecting malicious modifications, it could allow some legal updates. A fragile watermark is usually constructed from attribute using one-way hash functions such as MD5 or SHA. It is the property of one-way hash functions that any minor change to the input will randomize the output. Since, different attributes might have different degrees of sensitivity to legitimate modification, we can obtain a database semi-fragile watermarking if we can categorize attributes according to their importance in the database, and define some criteria for their inclusion in the hash calculation.</p>
    <p>Let 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         R 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <msub> 
          <mi>
            P 
          </mi> 
          <mi>
            k 
          </mi> 
         </msub> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            A 
          </mi> 
          <mn>
            0 
          </mn> 
         </msub> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            A 
          </mi> 
          <mn>
            1 
          </mn> 
         </msub> 
         <mo>
           , 
         </mo> 
         <mo>
           ⋯ 
         </mo> 
         <mo>
           , 
         </mo> 
         <msub> 
          <mi>
            A 
          </mi> 
          <mrow> 
           <mi>
             γ 
           </mi> 
           <mo>
             − 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
         </msub> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> be the database relation to watermark. 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          A 
        </mi> 
        <mn>
          0 
        </mn> 
       </msub> 
       <mo>
         , 
       </mo> 
       <msub> 
        <mi>
          A 
        </mi> 
        <mn>
          1 
        </mn> 
       </msub> 
       <mo>
         , 
       </mo> 
       <mo>
         ⋯ 
       </mo> 
       <mo>
         , 
       </mo> 
       <msub> 
        <mi>
          A 
        </mi> 
        <mrow> 
         <mi>
           γ 
         </mi> 
         <mo>
           − 
         </mo> 
         <mn>
           1 
         </mn> 
        </mrow> 
       </msub> 
      </mrow> 
     </math> are all numeric attributes, and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          k 
        </mi> 
       </msub> 
      </mrow> 
     </math> is the primary key. The design of our reversible semi-fragile scheme is as follows:</p>
    <p>Step 1. Attribute classification: Based on the sensitivity to benign updates, we define three classes of attributes, namely Sensitive attributes (S), Semi-Sensitive attributes (SS) and Non-Sensitive attributes (NS), such that 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         S 
       </mi> 
       <mo>
         ∪ 
       </mo> 
       <mi>
         S 
       </mi> 
       <mi>
         S 
       </mi> 
       <mo>
         ∪ 
       </mo> 
       <mi>
         N 
       </mi> 
       <mi>
         S 
       </mi> 
       <mo>
         = 
       </mo> 
       <mi>
         R 
       </mi> 
      </mrow> 
     </math> and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         S 
       </mi> 
       <mo>
         ∩ 
       </mo> 
       <mi>
         S 
       </mi> 
       <mi>
         S 
       </mi> 
       <mo>
         ∩ 
       </mo> 
       <mi>
         N 
       </mi> 
       <mi>
         S 
       </mi> 
       <mo>
         = 
       </mo> 
       <mo>
         ∅ 
       </mo> 
      </mrow> 
     </math>. Class S contains attributes that do not need to be updated once they are recorded. Examples of such attributes include primary key, social security numbers (SSN), age, blood group, account number, etc. SS attributes are those that can be legitimately modified within certain boundaries, i.e., up to a predefined level of distortion. For example, we can allow to update all parts of a phone number except the country code. If 00227******** is a phone number, then 00227 represents the country code and * denotes the updatable part. NS is the category of attributes that can be freely modified.</p>
    <p>Step 2. Legal update constraints for SS attributes: In order to allow legal modification of SS attributes, we need to define the degree of distortion that could be tolerated. For this purpose, we divide each SS attribute into two parts: a “rough portion” (SSR) and a “ﬂat portion” (SSF). The rough portion is the non-updateable part of the attribute. Any modification made to it should be detected as tampering. The flat portion of the attribute can be legitimately altered. For numeric attributes, it could be defined in terms of the number of least significant digits (LSDs) or least significant bits (LSBs) available for modification. Since different attributes may tolerate different levels of distortion, we define 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          ε 
        </mi> 
        <mi>
          k 
        </mi> 
       </msub> 
      </mrow> 
     </math> LSDs as legal alteration bandwidth for each attribute 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          A 
        </mi> 
        <mi>
          k 
        </mi> 
       </msub> 
      </mrow> 
     </math> of SS class.</p>
    <p>Step 3. Attribute Sorting: In a database relation, the order of attributes is normally not important. However, for ensuring the synchronization between the embedded and the extracted watermarks, this order should be the same at both embedding and detection phases. To satisfy this requirement, we define a recoverable secret “initial” order of attributes as follows. First, a name hash value is computed for each attribute using a secret key only known to the owner. Then, the attributes are virtually sorted in ascending order of their name hash values. Since attribute names, usually, do not change in a database relation, it is clear that the secret order can be efficiently recovered at watermark detection. As a result, attribute sorting operation will not be considered as an attack.</p>
   </sec>
  </sec><sec id="s4">
   <title>4. Proposed Scheme</title>
   <p>In this section, we describe in detail our semi-fragile watermarking technique. In one hand, the scheme should be robust to legitimate modifications and innocent (i.e., sorting) attacks. In the other hand, it should detect and localize malicious modifications. Moreover, since PEE is used our proposed scheme, the original relational data will be easily recovered at watermark detection.</p>
   <p>
    <xref ref-type="table" rid="table1">
     Table 1
    </xref> summarizes the notations used in the rest of this paper.</p>
   <table-wrap id="table1">
    <label>
     <xref ref-type="table" rid="table1">
      Table 1
     </xref></label>
    <caption>
     <title>
      <xref ref-type="bibr" rid="scirp.136419-"></xref>Table 1. Notations.</title>
    </caption>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td acenter" width="34.61%">Symbol<p style="text-align:center"></p></td> 
      <td class="custom-bottom-td acenter" width="65.39%">Description<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td acenter" width="34.61%">η<p style="text-align:center"></p></td> 
      <td class="custom-top-td acenter" width="65.39%">Number of tuples in the relation<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">γ<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Number of attributes in the relation<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">t<sub>i</sub>.A<sub>j</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">j<sup>th</sup> attribute of the i<sup>th</sup> tuple<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">t<sub>i</sub>.P<sub>k</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Primary key of i<sup>th</sup> tuple<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">h<sub>i</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Hash value of i<sup>th</sup> tuple’s primary key<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">H<sub>i</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Hash value of i<sup>th</sup> attribute<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">K<sub>s</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Secret key<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">g<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Number of groups<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">v<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Average number of tuples in a group<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">G<sub>j</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">j<sup>th</sup> group<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">e<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Prediction error<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">e<sub>w</sub><p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Expanded prediction error<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">W<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Embedded watermark<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">W*<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Extracted watermark<p style="text-align:center"></p></td> 
     </tr> 
     <tr> 
      <td class="acenter" width="34.61%">α<p style="text-align:center"></p></td> 
      <td class="acenter" width="65.39%">Number of sensitive attributes<p style="text-align:center"></p></td> 
     </tr> 
    </table>
   </table-wrap>
   <sec id="s4_1">
    <title>4.1. Data Grouping</title>
    <p>For tamper localization, our strategy consists in virtually splitting the database relation into g secret groups, in which a watermark is embedded independently. The grouping technique is presented in <xref ref-type="bibr" rid="scirp.136419-#a1">
      Algorithm 1
     </xref>. The relation R is securely partitioned based on the primary key hash values of tuples. Using the property that secure hash functions generate uniformly distributed message digests, our partitioning method will create groups of roughly equal size. Notice that the sorting operation is also virtual. It is necessary to enforce some correlation between tuples.</p>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td aleft" width="17.09%">Algorithm 1: Data grouping <p style="text-align:left"></p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td aleft" width="17.09%">1. for each tuple t<sub>i</sub> ∈ R do<p style="text-align:left"></p>2. h<sub>i </sub>= HMAC (K<sub>s</sub>||t<sub>i</sub>.P<sub>k</sub>||K<sub>s</sub>) // Primary key hash <p style="text-align:left"></p>3. j = h<sub>i</sub> mod g // group index<p style="text-align:left"></p>4. insert tuple t<sub>i</sub> into group G<sub>j</sub><p style="text-align:left"></p>5. end for<p style="text-align:left"></p>sort all tuples in G<sub>j</sub> in increasing order of their primary key hash<p style="text-align:left"></p>6. return (G<sub>1</sub>, G<sub>2</sub>,…,G<sub>g</sub>)<p style="text-align:left"></p></td> 
     </tr> 
    </table>
   </sec>
   <sec id="s4_2">
    <title>4.2. Watermark Embedding</title>
    <p>Usually, the more important an attribute is, the less it may be legally modified after watermark insertion. For this reason, in other to ensure reversibility, we choose to embed the semi-fragile watermark by expanding the prediction-error of the two LSDs of sensitive attributes. Since the distortions caused by this process are minor and not permanent, the data usefulness will not be compromised. The watermark embedding process in a given group, depicted in <xref ref-type="bibr" rid="scirp.136419-#a2">
      Algorithm 2
     </xref>, is explained as follows. First, a watermark is generated from the hash values of tuples as shown in <xref ref-type="bibr" rid="scirp.136419-#a3">
      Algorithm 3
     </xref>. Note that, NS attributes and SSF data are excluded in the hash calculation. Afterwards, the prediction-error of the selected sensitive attribute is expanded with the corresponding watermark bit. Finally, the new value of the two LSDs is combined with the corresponding most significant digits (MSD) to update the value of the watermarked attribute.</p>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td aleft" width="17.09%">Algorithm 2: Watermark embedding<p style="text-align:left"></p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td aleft" width="17.09%">1. W = GenWM ( ) //Watermark computation: see Algorithm 3<p style="text-align:left"></p>2. for each tuple t<sub>i</sub> do<p style="text-align:left"></p>3. select S attribute with index j = h<sub>i</sub> mod α <p style="text-align:left"></p>4. lsd = Get2LSD(t<sub>i</sub>.A<sub>j</sub>) //Extract the 2 LSDs<p style="text-align:left"></p>5. T = GetMSD(t<sub>i</sub>.A<sub>j</sub>) // Most significant digits of t<sub>i</sub>.A<sub>j</sub><p style="text-align:left"></p>6. e = lsd - h<sub>i</sub> //Prediction error<p style="text-align:left"></p>7. e<sub>w</sub> = 2*e + W[i] // expanded prediction error <p style="text-align:left"></p>8. newval = e<sub>w</sub> + h<sub>i </sub>// New value of the 2 LSDs<p style="text-align:left"></p>9. t<sub>i</sub>.A<sub>j</sub> = To_number(T, newval) //Update the watermarked attribute value<p style="text-align:left"></p>10. end for<p style="text-align:left"></p></td> 
     </tr> 
    </table>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td aleft" width="17.09%">Algorithm 3: GenWM( ) <p style="text-align:left"></p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td aleft" width="17.09%">1. h = HMAC(K<sub>s </sub>|| h<sub>0 </sub>||h<sub>1 </sub>||…|| h<sub>v-1</sub> || K<sub>s</sub>) //Hashing of primary key hash values <p style="text-align:left"></p>2. for each tuple t<sub>i</sub> do<p style="text-align:left"></p>3. H<sub>i</sub> = HMAC(K<sub>s </sub>||S|| SSR||K<sub>s</sub>) //tuple hash<p style="text-align:left"></p>4. end for<p style="text-align:left"></p>5. H = HMAC(h || H<sub>0 </sub>||H<sub>1 </sub>||…|| H<sub>v-1</sub> || K<sub>s</sub>) //Group hash<p style="text-align:left"></p>6. W = v MSB (H) //Watermark: assume length(H) &gt;= v<p style="text-align:left"></p>7. return W<p style="text-align:left"></p></td> 
     </tr> 
    </table>
   </sec>
   <sec id="s4_3">
    <title>4.3. Watermark Detection and Data Recovery</title>
    <p>The watermarked data may be exposed to attacks intending to modify the database content. An attack will succeed, if the pirate could maliciously modify S or SSR data, without disturbing the watermark. For watermark synchronization, it is important to restore the original order of attributes. In addition, as in the embedding stage, the relation is virtually divided into secret groups (<xref ref-type="bibr" rid="scirp.136419-#a1">
      Algorithm 1
     </xref>). For tamper detection, each group is authenticated independently. <xref ref-type="bibr" rid="scirp.136419-#a4">
      Algorithm 4
     </xref> outlines the steps involved in the detection process. First, a watermark W* is extracted from the suspicious group as shown by lines 1 through 6. Then, the original attribute value is restored. Lastly, the integrity of the group is verified by comparing the generated watermark W with the extracted one as described from line 11 through 14. The detection process is fully blind because it does not require the knowledge of the original database relation.</p>
    <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
     <tr> 
      <td class="custom-bottom-td aleft" width="100.00%">Algorithm 4: Watermark detection and recovery<p style="text-align:left"></p></td> 
     </tr> 
     <tr> 
      <td class="custom-top-td aleft" width="100.00%">1. for each tuple t<sub>i</sub> do<p style="text-align:left"></p>2. select S attribute with index j = h<sub>i</sub> mod α <p style="text-align:left"></p>3. lsd = Get2LSD(t<sub>i</sub>.A<sub>j</sub>)<p style="text-align:left"></p>4. T = GetMSD(t<sub>i</sub>.A<sub>j</sub>) // Most significant digits of t<sub>i</sub>.A<sub>j</sub><p style="text-align:left"></p>5. e<sub>w</sub> = lsd - h<sub>i</sub> // watermarked prediction error <p style="text-align:left"></p>6. W*[i] = LSB(e<sub>w</sub>) // recovering embedded bit<p style="text-align:left"></p> // Data Recovery <p style="text-align:left"></p>7. 
       <math xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
         <mi>
           e 
         </mi> 
         <mo>
           = 
         </mo> 
         <mrow> 
          <mo>
            ⌊ 
          </mo> 
          <mrow> 
           <mfrac> 
            <mrow> 
             <msub> 
              <mi>
                e 
              </mi> 
              <mi>
                w 
              </mi> 
             </msub> 
            </mrow> 
            <mn>
              2 
            </mn> 
           </mfrac> 
          </mrow> 
          <mo>
            ⌋ 
          </mo> 
         </mrow> 
        </mrow> 
       </math> // original prediction error <p style="text-align:left"></p>8. origlsd = lsd – e - W*[i] // original value of the 2 LSDs<p style="text-align:left"></p>9. t<sub>i</sub>.A<sub>j</sub> = To_number(T, origlsd) // attribute original value<p style="text-align:left"></p>10. end for<p style="text-align:left"></p>//Integrity verification<p style="text-align:left"></p>11. W = GenWM ( ) //Original watermark: see Algorithm 3<p style="text-align:left"></p>12. if W ≠ W<sup>*</sup> then<p style="text-align:left"></p>13. group not authentic<p style="text-align:left"></p>14. end if<p style="text-align:left"></p></td> 
     </tr> 
    </table>
   </sec>
  </sec><sec id="s5">
   <title>5. Security Analysis</title>
   <p>The objective of our scheme is to detect malicious modifications, while allowing some legal data updates. The goal of an attacker is to make his modiﬁcations undetectable so as to fail the watermark veriﬁcation. For this reason, we focus on the analysis of the error rate in tamper detection, which is the probability of successful attack. In other words, it is the probability that the embedded W matches the extracted watermark W* after tampering. In this analysis, we discuss common database attacks: single modification and massive modifications.</p>
   <sec id="s5_1">
    <title>5.1. Single Modification Attacks</title>
    <p>There are three single modifications: alter an attribute value, insert a tuple, delete a tuple. Assume that the attacker modifies a single value in the database. If the modification is made to a sensitive attribute or the rough part of a semi-sensitive attribute, the relevant group hash value will be randomized. Since the embedded watermark W is extracted from group hash, the watermark will also be randomized. After the modification, each bit of the embedded watermark W has equal probability to match the corresponding bit in the extracted watermark W*. Therefore, the error rate for detecting this attack is given by</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          e 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mi>
            v 
          </mi> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (4)</p>
    <p>where v is the watermark size, which is determined by the number of tuples in the group.</p>
    <p>Now, suppose that the pirate inserts a tuple into the protected relation. Due to our grouping technique, the newly inserted tuple will fall into a single group, thus increasing the associated watermark size v. Therefore, the failure rate in detecting this tampering is formulated as</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          e 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mrow> 
           <mi>
             v 
           </mi> 
           <mo>
             + 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (5)</p>
    <p>Similarly, the deletion of a single tuple will reduce the affected group size. Consequently, the relevant watermark will be randomized. Since there are 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         v 
       </mi> 
       <mo>
         − 
       </mo> 
       <mn>
         1 
       </mn> 
      </mrow> 
     </math> bits remaining in the watermark, we obtain</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          e 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mrow> 
           <mi>
             v 
           </mi> 
           <mo>
             − 
           </mo> 
           <mn>
             1 
           </mn> 
          </mrow> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (6)</p>
    <p>
     <xref ref-type="fig" rid="fig1">
      Figure 1
     </xref> shows the probability of error for the three single modification attacks using various watermark sizes. We can easily see that, in all cases, the failure rate is very low, and it decreases exponentially when the watermark length increases.</p>
    <fig id="fig1" position="float">
     <label>Figure 1</label>
     <caption>
      <title>Figure 1. Failure rates for single modification attacks.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/8104588-rId82.jpeg?20240929042909" />
    </fig>
   </sec>
   <sec id="s5_2">
    <title>5.2. Massive Modification Attacks</title>
    <p>This category of attacks includes multiple values alteration, multiple tuples insertion, and multiple tuples deletion.</p>
    <p>Consider the scenario where multiple attribute values are maliciously modified. Assume that 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         k 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mn>
           1 
         </mn> 
         <mo>
           ≤ 
         </mo> 
         <mi>
           k 
         </mi> 
         <mo>
           ≤ 
         </mo> 
         <mi>
           g 
         </mi> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> groups are affected. Since the probability that our</p>
    <p>scheme fails to detect a single value change in any group is 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mi>
            v 
          </mi> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math>, the overall probability that the modification does not affect any group watermark is obtained by</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          e 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mrow> 
           <mi>
             v 
           </mi> 
           <mi>
             k 
           </mi> 
          </mrow> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (7)</p>
    <p>Now, let 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         n 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           n 
         </mi> 
         <mo>
           ≥ 
         </mo> 
         <mn>
           2 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math>, be the number of inserted records. After grouping, each new tuple has equal probability to be assigned to any group. Assume that</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         k 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           ≤ 
         </mo> 
         <mi>
           g 
         </mi> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> groups are affected. When 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         n 
       </mi> 
       <mo>
         &gt; 
       </mo> 
       <mi>
         k 
       </mi> 
      </mrow> 
     </math>, an average of 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mfrac> 
        <mi>
          n 
        </mi> 
        <mi>
          k 
        </mi> 
       </mfrac> 
      </mrow> 
     </math> tuples are added to each group. Thus, the failure rate for any group is 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mrow> 
           <mi>
             v 
           </mi> 
           <mo>
             + 
           </mo> 
           <mfrac> 
            <mi>
              n 
            </mi> 
            <mi>
              k 
            </mi> 
           </mfrac> 
          </mrow> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math>. Therefore, the probability that all embedded watermarks remain unchanged after the attack is given by</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          e 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <msup> 
        <mrow> 
         <mrow> 
          <mo>
            ( 
          </mo> 
          <mrow> 
           <mfrac> 
            <mn>
              1 
            </mn> 
            <mrow> 
             <msup> 
              <mn>
                2 
              </mn> 
              <mrow> 
               <mi>
                 v 
               </mi> 
               <mo>
                 + 
               </mo> 
               <mfrac> 
                <mi>
                  n 
                </mi> 
                <mi>
                  k 
                </mi> 
               </mfrac> 
              </mrow> 
             </msup> 
            </mrow> 
           </mfrac> 
          </mrow> 
          <mo>
            ) 
          </mo> 
         </mrow> 
        </mrow> 
        <mi>
          k 
        </mi> 
       </msup> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mrow> 
           <mi>
             v 
           </mi> 
           <mi>
             k 
           </mi> 
           <mo>
             + 
           </mo> 
           <mi>
             n 
           </mi> 
          </mrow> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (8)</p>
    <p>As for multiple tuples insertion, the deletion of 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         n 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           n 
         </mi> 
         <mo>
           ≥ 
         </mo> 
         <mn>
           2 
         </mn> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> tuples could affect several groups. In this case, if 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         k 
       </mi> 
       <mrow> 
        <mo>
          ( 
        </mo> 
        <mrow> 
         <mi>
           k 
         </mi> 
         <mo>
           ≤ 
         </mo> 
         <mi>
           g 
         </mi> 
        </mrow> 
        <mo>
          ) 
        </mo> 
       </mrow> 
      </mrow> 
     </math> groups are changed, we have</p>
    <p>
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <msub> 
        <mi>
          P 
        </mi> 
        <mi>
          e 
        </mi> 
       </msub> 
       <mo>
         = 
       </mo> 
       <mfrac> 
        <mn>
          1 
        </mn> 
        <mrow> 
         <msup> 
          <mn>
            2 
          </mn> 
          <mrow> 
           <mi>
             v 
           </mi> 
           <mi>
             k 
           </mi> 
           <mo>
             − 
           </mo> 
           <mi>
             n 
           </mi> 
          </mrow> 
         </msup> 
        </mrow> 
       </mfrac> 
      </mrow> 
     </math> (9)</p>
    <p>The failure probabilities for massive attacks are all monotonic decreasing with the watermark size v and the number of relevant watermarks k. This is illustrated in <xref ref-type="fig" rid="fig2">
      Figure 2
     </xref> using different watermark sizes. For simplicity, we set 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         k 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         5 
       </mn> 
      </mrow> 
     </math> and 
     <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
       <mi>
         n 
       </mi> 
       <mo>
         = 
       </mo> 
       <mn>
         20 
       </mn> 
      </mrow> 
     </math>. Here again, we can see the error rates are extremely low.</p>
    <p>On the basis of the theoretical results, the proposed scheme is efficient enough to detect and localize traditional attacks.</p>
    <fig id="fig2" position="float">
     <label>Figure 2</label>
     <caption>
      <title>Figure 2. Failure rates for massive modification attacks.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/8104588-rId111.jpeg?20240929042909" />
    </fig>
   </sec>
  </sec><sec id="s6">
   <title>6. Experimental Results</title>
   <p>Our experiments were conducted on an Intel core i7-10510U CPU, 2.3 GHz with 16 GB RAM, running SQL Server 2016 and Microsoft Visual C#. For testing purpose, we used a generated database relation, which consists of 10 numerical attributes 
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        i 
      </mi> 
      <mi>
        d 
      </mi> 
      <mo>
        , 
      </mo> 
      <msub> 
       <mi>
         A 
       </mi> 
       <mn>
         1 
       </mn> 
      </msub> 
      <mo>
        , 
      </mo> 
      <mo>
        ⋯ 
      </mo> 
      <mo>
        , 
      </mo> 
      <msub> 
       <mi>
         A 
       </mi> 
       <mn>
         9 
       </mn> 
      </msub> 
     </mrow> 
    </math>, (id is the primary key) and 10,000 tuples. The attributes were categorized as follows: 
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        S 
      </mi> 
      <mo>
        = 
      </mo> 
      <mrow> 
       <mo>
         { 
       </mo> 
       <mrow> 
        <mi>
          i 
        </mi> 
        <mi>
          d 
        </mi> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           1 
         </mn> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           3 
         </mn> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           6 
         </mn> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           9 
         </mn> 
        </msub> 
       </mrow> 
       <mo>
         } 
       </mo> 
      </mrow> 
     </mrow> 
    </math>, 
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        S 
      </mi> 
      <mi>
        S 
      </mi> 
      <mo>
        = 
      </mo> 
      <mrow> 
       <mo>
         { 
       </mo> 
       <mrow> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           2 
         </mn> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           5 
         </mn> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           8 
         </mn> 
        </msub> 
       </mrow> 
       <mo>
         } 
       </mo> 
      </mrow> 
     </mrow> 
    </math> and 
    <math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"> <mrow> 
      <mi>
        N 
      </mi> 
      <mi>
        S 
      </mi> 
      <mo>
        = 
      </mo> 
      <mrow> 
       <mo>
         { 
       </mo> 
       <mrow> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           4 
         </mn> 
        </msub> 
        <mo>
          , 
        </mo> 
        <msub> 
         <mi>
           A 
         </mi> 
         <mn>
           7 
         </mn> 
        </msub> 
       </mrow> 
       <mo>
         } 
       </mo> 
      </mrow> 
     </mrow> 
    </math>. For watermark computation, we used SHA-1 as one-way hash function <xref ref-type="bibr" rid="scirp.136419-22">
     [22]
    </xref>.</p>
   <p>We tested the efficiency of our scheme in tamper detection and integrity checking. Experiments were performed for the three massive attacks. For each kind of experiment, we varied the watermark size v (i.e. the group size) from 10 to 90 with an increment of 40. Each experiment was repeated 10 times, and the average results were recorded as the detection rate. It is important to note that the detection rate is complementary to the failure rate. The detection probability is the percentage of correctly detected modifications.</p>
   <sec id="s6_1">
    <title>6.1. Multiple Values Alteration</title>
    <p>Two different experiments were performed for this attack: 1) alteration of sensitive data, and 2) alteration of non-sensitive data. For each experiment, we randomly modified 10% to 90% of the values with varying watermark sizes.</p>
    <p>In the first case, we only modified values from sensitive attributes (S) and rough portion of semi-sensitive attributes (SSR). The results are displayed in <xref ref-type="fig" rid="fig3">
      Figure 3
     </xref>. We observe that:</p>
    <fig id="fig3" position="float">
     <label>Figure 3</label>
     <caption>
      <title>Figure 3. Detection rate (%) for sensitive data alteration.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/8104588-rId122.jpeg?20240929042910" />
    </fig>
    <p>In the second case, only non-sensitive values (NS) and flat part of semi-sensitive attributes (SSF) were altered. The results are shown in <xref ref-type="fig" rid="fig4">
      Figure 4
     </xref>. We observe that, no matter what are the alteration rate and the watermark size v, the detection rate is 0%. This is obvious, because the performed modifications are legitimate. Therefore, this result confirms the semi-fragileness of our scheme.</p>
    <fig id="fig4" position="float">
     <label>Figure 4</label>
     <caption>
      <title>Figure 4. Detection rate (%) for NS and SSF data alteration.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/8104588-rId123.jpeg?20240929042910" />
    </fig>
   </sec>
   <sec id="s6_2">
    <title>6.2. Multiple Tuples Deletion</title>
    <p>
     <xref ref-type="fig" rid="fig5">
      Figure 5
     </xref> shows the results for multiple tuples deletion. We performed the experiments with varying deletion rates and watermark sizes. For small groups, we can observe that:</p>
    <fig id="fig5" position="float">
     <label>Figure 5</label>
     <caption>
      <title>Figure 5. Detection rate (%) for multiple tuples deletion.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/8104588-rId126.jpeg?20240929042910" />
    </fig>
   </sec>
   <sec id="s6_3">
    <title>6.3. Multiple Tuples Insertion</title>
    <p>To simulate this attack, we randomly and repeatedly inserted fake tuples into the watermarked groups. As a result, because of the fragileness of our scheme regarding illegal change, all relevant hash values and watermarks are randomized. As shown in <xref ref-type="fig" rid="fig6">
      Figure 6
     </xref>, we observe that the proposed method can fully detect tampered groups for different values of v.</p>
    <fig id="fig6" position="float">
     <label>Figure 6</label>
     <caption>
      <title>Figure 6. Detection rate (%) for multiple tuples deletion.</title>
     </caption>
     <graphic mimetype="image" position="float" xlink:type="simple" xlink:href="https://html.scirp.org/file/8104588-rId127.jpeg?20240929042910" />
    </fig>
   </sec>
   <sec id="s6_4">
    <title>6.4. Comparison with Related Works</title>
    <p>In <xref ref-type="table" rid="table2">
      Table 2
     </xref>, we present a comparison of our scheme with three most relevant recent works. We consider the following features: embedding channel (i.e., data type), data updateability (i.e. legitimate modification), innocent attacks (i.e. tuple/attribute sorting), tamper detection, and reversibility (i.e. data recovery). We can easily see that, at the difference of other techniques, our scheme can allow data updateability, while enabling data restoration and tamper detection.</p>
    <table-wrap id="table2">
     <label>
      <xref ref-type="table" rid="table2">
       Table 2
      </xref></label>
     <caption>
      <title>
       <xref ref-type="bibr" rid="scirp.136419-"></xref>Table 2. Comparison with previous works.</title>
     </caption>
     <table class="MsoTableGrid custom-table" border="0" cellspacing="0" cellpadding="0"> 
      <tr> 
       <td class="custom-bottom-td acenter" width="30.81%">Feature<p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="17.29%">Shah et al. <xref ref-type="bibr" rid="scirp.136419-13">
         [13]
        </xref><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="17.30%">Murugan et al. <xref ref-type="bibr" rid="scirp.136419-15">
         [15]
        </xref><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="17.29%">Khanduja et al. <xref ref-type="bibr" rid="scirp.136419-19">
         [19]
        </xref><p style="text-align:center"></p></td> 
       <td class="custom-bottom-td acenter" width="17.30%">Proposed scheme<p style="text-align:center"></p></td> 
      </tr> 
      <tr> 
       <td class="custom-top-td acenter" width="30.81%">Data type<p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="17.29%">Non-numeric<p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="17.30%">Any<p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="17.29%">Numeric<p style="text-align:center"></p></td> 
       <td class="custom-top-td acenter" width="17.30%">Numeric<p style="text-align:center"></p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="30.81%">Legitimate modification<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">Yes<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">No<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">No<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">Yes<p style="text-align:center"></p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="30.81%">Innocent attacks<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">Not resilient<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">Resilient<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">Not resilient<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">Resilient<p style="text-align:center"></p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="30.81%">Reversibility<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">No<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">No<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">Yes<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">Yes<p style="text-align:center"></p></td> 
      </tr> 
      <tr> 
       <td class="acenter" width="30.81%">Tamper detection<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">Yes<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">Yes<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.29%">Yes<p style="text-align:center"></p></td> 
       <td class="acenter" width="17.30%">Yes<p style="text-align:center"></p></td> 
      </tr> 
     </table>
    </table-wrap>
   </sec>
  </sec><sec id="s7">
   <title>7. Conclusion</title>
   <p>In this paper, a novel reversible semi-fragile watermarking method for integrity checking of relational databases is presented. To ensure data updateability, the database attributes are classified as sensitive, semi-sensitive and non-sensitive. The semi-fragile watermark is generated from the data characteristics to detect malicious modifications, while allowing legal updates. Innocent attacks such as tuple/attribute sorting are not considered as tampering. Moreover, due to the use of PEE, the scheme has the ability to recover back the original data from any authentic group. From the theoretical analysis and experimental results obtained, it was proved that the probability of detecting and localizing common attacks is extremely high.</p>
  </sec>
 </body><back>
  <ref-list>
   <title>References</title>
   <ref id="scirp.136419-ref1">
    <label>1</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Aberna, P. and Agilandeeswari, L. (2023) Digital Image and Video Watermarking: Methodologies, Attacks, Applications, and Future Directions. Multimedia Tools and Applications, 83, 5531-5591. &gt;https://doi.org/10.1007/s11042-023-15806-y 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref2">
    <label>2</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Gao, Z.Z., Cheng, Y. and Yin, Z.X. (2024) Fragile Model Watermarking: A Comprehensive Survey of Evolution, Characteristics, and Classification. 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref3">
    <label>3</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Rani, S. and Halder, R. (2022) Comparative Analysis of Relational Database Watermarking Techniques: An Empirical Study. IEEE Access, 10, 27970-27989. &gt;https://doi.org/10.1109/access.2022.3157866 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref4">
    <label>4</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Hamadou, A., Sun, X., Gao, L. and Shah, S.A. (2011) A Fragile Zero-Watermarking Technique for Authentication of Relational Databases. International Journal of Digital Content Technology and its Applications, 5, 189-200. &gt;https://doi.org/10.4156/jdcta.vol5.issue5.21 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref5">
    <label>5</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Camara, L., Li, J., Li, R. and Xie, W. (2014) Distortion-Free Watermarking Approach for Relational Database Integrity Checking. Mathematical Problems in Engineering, 2014, 1-10. &gt;https://doi.org/10.1155/2014/697165 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref6">
    <label>6</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Camara, L., Coulibaly, D., Hamadou, A. and Li, J. (2017) An Effective Approach for Non-Numeric Relational Database Verification. International Journal of Database Theory and Application, 10, 35-46. &gt;https://doi.org/10.14257/ijdta.2017.10.6.03 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref7">
    <label>7</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Gao, L., Wang, D. and Hamadou, A. (2013) New Fragile Database Watermarking Scheme with Restoration Using Reed-Solomon Codes. Journal of Computational and Theoretical Nanoscience, 10, 147-153. &gt;https://doi.org/10.1166/jctn.2013.2671 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref8">
    <label>8</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Li, D., Ma, C., Gao, H. and Jin, X. (2023) LBP Feature and Hash Function Based Dual Watermarking Algorithm for Database. Data&amp;Knowledge Engineering, 148, Article 102228. &gt;https://doi.org/10.1016/j.datak.2023.102228 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref9">
    <label>9</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Lin, C., Nguyen, T. and Chang, C. (2021) LRW-CRDB: Lossless Robust Watermarking Scheme for Categorical Relational Databases. Symmetry, 13, Article 2191. &gt;https://doi.org/10.3390/sym13112191 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref10">
    <label>10</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Hou, R., Xian, H., Wang, X. and Li, J. (2019) A Robust Reversible Watermarking Scheme for Relational Data. In: Li, J., Liu, Z.L. and Peng, H., Eds., Security and Privacy in New Computing Environments, Springer, 545-550. &gt;https://doi.org/10.1007/978-3-030-21373-2_44 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref11">
    <label>11</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Hu, D., Zhao, D. and Zheng, S. (2019) A New Robust Approach for Reversible Database Watermarking with Distortion Control. IEEE Transactions on Knowledge and Data Engineering, 31, 1024-1037. &gt;https://doi.org/10.1109/tkde.2018.2851517 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref12">
    <label>12</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Chang, C., Nguyen, T. and Lin, C. (2013) A Blind Reversible Robust Watermarking Scheme for Relational Databases. The Scientific World Journal, 2013, Article 717165. &gt;https://doi.org/10.1155/2013/717165 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref13">
    <label>13</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Arif Shah, S., Ali Khan, I., Hassan Kazmi, S.Z. and Binti Md Nasaruddin, F.H. (2021) Semi-Fragile Watermarking Scheme for Relational Database Tamper Detection. Malaysian Journal of Computer Science, 34, 1-12. &gt;https://doi.org/10.22452/mjcs.vol34no1.1 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref14">
    <label>14</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Hamadou, A., Sun, X., Shah, S. and Gao, L. (2011) A Weight-Based Semi-Fragile Watermarking Scheme for Integrity Verification of Relational Data. International Journal of Digital Content Technology and its Applications, 5, 148-157. &gt;https://doi.org/10.4156/jdcta.vol5.issue8.17 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref15">
    <label>15</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Murugan, R., John, A.T. and Ibrahim, S. (2020) A Semi-Fragile Watermarking Scheme for Integrity Checking of Relational Databases. International Journal of Recent Technology and Engineering, 8, 806-812. &gt;https://doi.org/10.35940/ijrte.f6996.038620 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref16">
    <label>16</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Franco-Contreras, J., Coatrieux, G., Cuppens, F., Cuppens-Boulahia, N. and Roux, C. (2014) Robust Lossless Watermarking of Relational Databases Based on Circular Histogram Modulation. IEEE Transactions on Information Forensics and Security, 9, 397-410. &gt;https://doi.org/10.1109/tifs.2013.2294240 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref17">
    <label>17</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Franco Contreras, J., Coatrieux, G., Chazard, E., Cuppens, F., Cuppens-Boulahia, N. and Roux, C. (2012) Robust Lossless Watermarking Based on Circular Interpretation of Bijective Transformations for the Protection of Medical Databases. 2012 Annual International Conference of the IEEE Engineering in Medicine and Biology Society, San Diego, 28 August-1 September 2012, 5875-5878. &gt;https://doi.org/10.1109/embc.2012.6347330 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref18">
    <label>18</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Unnikrishnan, K. and Pramod, K.V. (2017) Robust Optimal Position Detection Scheme for Relational Database Watermarking through HOLPSOFA Algorithm. Journal of Information Security and Applications, 35, 1-12. &gt;https://doi.org/10.1016/j.jisa.2017.04.005 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref19">
    <label>19</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Khanduja, V. and Chakraverty, S. (2018) Fragile Watermarking of Decision System Using Rough Set Theory. Arabian Journal for Science and Engineering, 43, 7621-7633. &gt;https://doi.org/10.1007/s13369-018-3120-7 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref20">
    <label>20</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Hamadou, A., Camara, L., Issaka Hassane, A.A. and Naroua, H. (2020) Reversible Fragile Watermarking Scheme for Relational Database Based on Prediction-Error Expansion. Mathematical Problems in Engineering, 2020, 1-9. &gt;https://doi.org/10.1155/2020/1740205 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref21">
    <label>21</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Thodi, D.M. and Rodriguez, J.J. (2004) Prediction-Error Based Reversible Watermarking. 2004 International Conference on Image Processing, Singapore, 24-27 October 2004, 1549-1552. &gt;https://doi.org/10.1109/icip.2004.1421361 
    </mixed-citation>
   </ref>
   <ref id="scirp.136419-ref22">
    <label>22</label>
    <mixed-citation publication-type="other" xlink:type="simple">
     Ferguson, N. and Schneier, B. (2003) Practical Cryptography. Wiley.
    </mixed-citation>
   </ref>
  </ref-list>
 </back>
</article>