<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Formation of the Interval Stego Key for the Digital Watermark Used in Integrity Monitoring of FPGA-based Systems</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Odessa National Polytechnic University</institution>
          ,
          <addr-line>Odessa</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Ternopil National Economic University</institution>
          ,
          <addr-line>Ternopil</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>0000</fpage>
      <lpage>0003</lpage>
      <abstract>
        <p>The operation of programmable computer systems is determined by their program code. Possibilities of maliciously changing program code potentially pose a security risk. Therefore, monitoring the program code integrity is one of the main components of security for programmable systems. This paper is devoted to program code integrity monitoring of computer systems built on the FPGA chips. Integrity monitoring methods are considered, within which monitoring data are embedded into the program code in the form of a digital watermark. Such digital watermark does not affect the operation of the FPGA and does not change the characteristics of the system. The advantages of this approach are that the fact of the presence of monitoring data in the program code and the fact of performing integrity monitoring is hidden from an outside observer. The paper notes the problem of the need to recovery the initial state of program code when performing integrity monitoring. To perform this procedure, the digital watermark must contain the data necessary for recovery. The effective volume of a digital watermark depends on the size and structure of the FPGA program code, as well as on the limitations defined by the watermark embedding key (stego key). Most of this volume is occupied by the data necessary to recovery the initial state. Under these conditions, there is often a shortage of the effective volume of a digital watermark for storing monitoring data. The paper proposes a solution to this problem due to a new approach to the formation of a stego key for embedding a digital watermark in the FPGA program code. An experimental assessment of the approach proposed in the paper is performed. The advantages of the proposed approach are shown in comparison with the existing methods of embedding the digital watermark in the FPGA program code.</p>
      </abstract>
      <kwd-group>
        <kwd>Integrity Monitoring</kwd>
        <kwd>Digital Watermarks</kwd>
        <kwd>FPGA-Based Systems</kwd>
        <kwd>LUT-Oriented Architecture</kwd>
        <kwd>Program Code of FPGA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Most modern computer systems contain programmable components: microprocessors,
microcontrollers, programmable logic integrated circuits [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. The operation of
systems of this kind is ensured both by the physical links of the components, and by a set
of software codes that configure the components. Changing the program code of
programmable components leads to a change in the operation of systems built on the
basis of such components. Therefore, an important constituent of computer systems
security is to ensure the integrity of the program code for programmable components
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In this paper, we consider the problem of ensuring the integrity of the program
code of FPGA (Field Programmable Gate Arrays) chips [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. FPGA is a
twodimensional matrix of elementary programmable units of several types [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
The program code of the FPGA chips determines the configuration of each of the
units in the matrix to perform a specific function, and also forms a system of links
between the units. FPGA structure provides natural parallel computing processes. The
calculations within this structure are distributed in the space of the chip [
        <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
        ]. Because
of this, FPGAs differ from microprocessors in significantly greater performance.
      </p>
      <p>
        High performance is the reason for the frequent use of FPGA in safety-critical
systems – systems that control high-risk technical objects [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">9-11</xref>
        ]. Under these conditions,
the integrity of the FPGA program code is one of the safety factors of this kind of
system.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Literature Review and Goal of the Paper</title>
      <p>
        The most commonly used approaches to monitoring the integrity of program code are
based on the use of a hash sums [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Hash sums for these purposes are calculated
using cryptographic hash functions [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. The disadvantage of traditional methods for
monitoring the integrity of program codes is that the hash sums is stored either openly
or can be detected in the structure of the information object as a result of its analysis.
So, an approach is known [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] in which the hash sum is placed in memory next to the
program code. Another frequently used approach [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] is the inclusion of a hash sum
in the information object of the program code as one of its fields. These approaches
do not make it possible to hide the fact that integrity monitoring is performed, and do
not make it possible to hide the monitoring information.
      </p>
      <p>
        There is also an approach [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], in the framework of which, the hash sum is
attached to the information object of the program code not in open but in encrypted
form. This approach hides monitoring information, but makes open to the outside
observer the very fact that integrity monitoring is performed. This leads to the
possibility of using a sufficiently wide range of techniques to discover and falsify the hash
sum.
      </p>
      <p>
        There is an advanced approach to storing a hash sum that eliminates the above
disadvantages. This approach consists in the fact that the hash sum is not attached to the
information object of the program code, but is embedded in it in the form of a digital
watermark (DWM) [
        <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
        ]. DWM is embedded in an information object using
digital steganography methods [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. Several methods [
        <xref ref-type="bibr" rid="ref20 ref21">20, 21</xref>
        ] have been developed for
embedding DWM into FPGA program code. These methods are based on the use of
LUT (Look Up Table) units program codes for embedding the DWM bits. The
implementation of these methods is performed using equivalent transformations. These
transformations do not change the logic functions implemented by the LUT units, and
do not affect the operation of the FPGA.
      </p>
      <p>In DWM-based methods for integrity monitoring, there is a need to recovery of
initial state for the information object of the program code at the time of monitoring. In
order to recovery the initial state, in addition to the monitoring data, DWM must
contain data on which recovery can be performed. The effective volume of DWM
depends on the size and structure of the FPGA program code, as well as on the
restrictions determined by the DWM embedding stego key. Most of this volume is
occupied by data, necessary to recovery the initial state. Under these conditions, there is
often a shortage of the effective volume of a digital watermark for storing monitoring
data.</p>
      <p>The goal of this paper is to increase the effective volume of DWM used in integrity
monitoring of FPGA program code.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Analysis of Factors that Affect the Effective Volume of a</title>
    </sec>
    <sec id="sec-4">
      <title>Monitoring Digital Watermark</title>
      <p>Factor of the embedding path length. Within the framework of the monitoring
methods under consideration, the DWM contains three fields: MISRec – information
necessary to recovery the initial state of the FPGA program code at the time the
integrity monitoring was performed; Hash – hash sum; S – is the service field needed to
define the boundaries of the MISRec and Hash fields.</p>
      <p>DWM is located in the FPGA code space along the embedding path. The amount of
bits of the embedding path depends on the size of the FPGA program code and on the
stego key.</p>
      <p>The effective volume of DWM is the volume available in it to store the monitoring
hash sum:</p>
      <p>LHash = LEmbPath – LISRec – LS;
(1)
where LHash – effective volume of DWM, expressed in amount of bits; LEmbPath –
amount of LUT units, which are along the embedding path (the amount of bits that are
available for DWM embedding); LISRec and LS – the lengths of fields MISRec and S,
respectively.</p>
      <p>In the process of embedding DWM, the program code of only part of the LUT
FPGA units undergoes a change. These LUT units form an embedding path. To
recovery the initial state of the program code, it is necessary to recovery only the initial
state of the LUT units, which are along the embedding path.</p>
      <p>
        The main approach used to recovery the initial state: 1) lossless compression
[
        <xref ref-type="bibr" rid="ref22 ref23">22, 23</xref>
        ] of the target bits of program code in the LUT units, which are along the
embedding path; 2) putting the compression results in the MISRec DWM field. When
using this approach, expression (1) takes the following form:
      </p>
      <p>LHash = LEmbPath – LCom(EmbPath) – LS;
(2)
where LCom(EmbPath) – target bits compression result length.</p>
      <p>
        The effective volume of DWM required to perform integrity monitoring must be at
least 128 (160 or 256) bits – the size of the most widely used hash sums. As a result:
LEmbPath – LCom(EmbPath) – LS ≥ (128 or 160 or 256).
(3)
The feasibility of relation (3) depends on two factors: the length of field LEmbPath
and the compression ratio provided by the selected lossless compression method. The
compression ratio also depends on the length of field LEmbPath, and in addition it
depends on the data in this field and on the compression method used. An approach to
the use of multi-method compression was proposed in [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]. This approach gives an
increase in the compression ratio in this situation, however, it is applicable only in the
case when a unique stego key is generated for each act of successful embedding of
control data into the FPGA program code. In the case when it is necessary to use a
universal stego key for many containers, this approach cannot be applied. In addition,
with a low LEmbPath value, even this approach does not allow us to obtain the
feasibility of relation (3).
      </p>
      <p>Thus, when using effective compression methods, the main reserve for increasing
the difference LEmbPath – LCom(EmbPath) for the feasibility of relation (3) is to
increase the length of the embedding path (LEmbPath). However, an increase in the
length of the embedding path leads to an increase in the amount of LUT units whose
program code changes. Such an increase could potentially reduce the resistance of the
monitoring system to attacks on monitoring data. This reduces the advantages of a
steganographic approach to storing monitoring data.</p>
      <p>Conclusion: an increase in the length of the embedding path is a positive factor
for increasing the effective volume of DWM, but it is a potentially negative factor for
the resistance of the monitoring system to attacks. Therefore, the length of the
embedding path should be chosen exactly so as to ensure relation (3), but no more.
Factor of the stego key. The length of the embedding path depends on the stego key
and on the structure of the links between the LUT units. The basic version of a stego
key for a LUT-container (FPGA program code) is a set of the following components:
Skey = &lt;EnumRule, DThreshold, AddrRule&gt;
(4)
where EnumRule – rule that determines the order of the enumeration for units in the
LUT container to obtain an ordered set of units that are part of the embedding path;
DThreshold – parameter that determines the limit on the number of connections to the
outputs of the LUT units included in the embedding path; AddrRule – rule that determines
the address of target bit in program code for each LUT unit of the embedding path.</p>
      <p>The length of the embedding path depends on the parameters EnumRule and
DThreshold. The EnumRule parameter can be described as a fixed value, an iterative
rule, or a template. This parameter determines the numbering distance between the
LUT units that are included in the embedding path. The DThreshold parameter is a
numeric threshold that is used when deciding whether to include the LUT units in the
embedding path. This threshold sets the allowable amount of LUT units connected to
the output of the units, regarding which such a decision is made. Reducing the
EnumRule and the DThreshold leads to an increase in the length of the embedding
path, as well as to an increase in the volume of modifiable FPGA program code.</p>
      <p>Factor of stego key usage mode. Two modes of stego key use are possible.
1. Specialized stego key mode. In this mode, a stego key is generated for each
individual FPGA container and DWM. If this mode is used, the stego key must be
transferred to the integrity monitoring system for each monitored object via some reliable
communication channel. When using this mode, you can select the key parameters that
provide the most suitable length of the embedding path. However, for integrity
monitoring, this mode is not practical to use because of the complexity of key distribution.
2. Universal stego key mode. In this mode, the stego key is generated once, after
which it is used by the DWM embedding modules and integrity monitoring modules.
This mode is the most commonly used in integrity monitoring systems. The problem
of stego key formation in this mode is as follows. A situation is possible in which,
when using the universal key for the next container, it will not be possible to ensure
the feasibility of condition (3). In this case, it is possible to reduce the size of the hash
sum, but this reduces the resistance of the monitoring system to attacks on monitoring
information.</p>
      <p>Thus, we can state that the effective DWM volume and the feasibility of condition
(3) depend on the length of the embedding path. This length depends on the values of
the stego key components. When using the universal stego key mode, there is a
contradiction between the effective DWM volume and the fraction of LUT units included
in the embedding path.
4</p>
    </sec>
    <sec id="sec-5">
      <title>The Proposed Approach to Increase the Effective Volume of</title>
    </sec>
    <sec id="sec-6">
      <title>DWM by Using Interval Stego Key</title>
      <p>We propose a method for formation a stego key that allows to adapt the effective
DWM volume to the structure of the LUT container.</p>
      <p>The first principle of the method is that instead of the point values of the components
of the universal stego key, it is proposed to use value intervals. It is proposed to use
interval values for components on whose value the length of the embedding path
depends. For each such parami component, an interval of paramimin … paramimax values
is formed. Moreover, smaller values from these intervals correspond to a shorter
embedding path and a smaller fraction of the target LUTs.</p>
      <p>At the first attempt to embedding, the minimum value from the interval is selected
as the corresponding component of the stego key. If in this case relation (3) is not
true, then the next greater value is selected from the interval. The component priority
of the key determines the order of increasing interval components.</p>
      <p>If relation (3) is not true when the maximum values paramimax of all interval
components are reached, then the actions regulated by the second principle of the method are
applied. For the basic method of embedding DWM, the following components are
proposed as interval components of the stego key: EnumRule and DThreshold (4).</p>
      <p>The second principle of the method is that for the embedding and extraction of
DWM, a sequence of methods Methods = &lt;m1, m2, … mn&gt; is used (this sequence is a
component of the stego key). The first time you try to embedding, the first method of
sequence is used. If the result of the embedding (taking into account the first principle
of the proposed method) does not lead to the truth of relation (3), then we proceed to
the next method of the sequence Methods. If using this procedure the last method of
the sequence Methods is reached and relation (3) is still not true, then the decision on
further actions is applied based on the third principle of the method.</p>
      <p>
        The third principle of the method determines the way of deciding on further actions
if the use of any of the methods in Methods did not lead to the truth of relation (3).
Special component mfinal of the stego key indicates whether to apply the method of
preliminary preparation of the information object [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Thus, the mfinal parameter
determines the admissibility of losing the initial state of an information object by
switching to the functional equivalent of this state. If the mfinal parameter is equal to
zero, then the use of the preliminary preparation method is invalid. In this case, the
traditional approach is used, which consists in reducing the size of the hash sum.
In accordance with the first three principles of the method, an interval stego key is
defined as a tuple of the following form:
      </p>
      <p>Skey = &lt;EnumRule, DThreshold, priority, Methods, mfinal, AddrRule&gt;
(5)
where EnumRule = (EnumRulemin … EnumRulemax); DThreshold = (DThresholdmin …
DThresholdmax); Methods = &lt;m1, m2, … , mn&gt;; mi = &lt;MethodIdi, MethodParamsi&gt;.
The fourth principle of the method determines how the Methods sequence is formed.
The methods of this sequence should be arranged in order of potential increase in the
embedding path length or the DWM effective volume.</p>
      <p>The fifth principle of the method determines the way of extraction DWM in the case
of the use of the interval stego key. When extraction, the procedure of searching for
specific values (which were used during the embedding) from the intervals is
performed. The selection of these values is carried out in accordance with the procedure
defined by the first principle of the method. After that, DWM extraction is performed.
Further, based on the information contained in the service field S, DWM is divided
into three fields: S, MISRec and Hash. Next, the MISRec field is decompressed. After this,
the truth of the relation is checked:</p>
      <p>LDecom(MISRec) = LEmbPath = LS + LISRec + LHash
(6)
where LDecom(MISRec) – length of field MISRec decompression result; LEmbPath – length
of embedding path; LS, LISRec, LHash – lengths of the respective fields of DWM.
In fig. 1 shows a flowchart for the implementation of the proposed embedding
method. The flowchart is shown for the case of using two methods included in the
Methods component: the basic DWM embedding method and the embedding method
adapted to FPGAs containing Adaptive Logic Modules (ALM).</p>
    </sec>
    <sec id="sec-7">
      <title>Experimental Assessment of the Proposed Method</title>
      <p>The method proposed in the work was implemented as a software application. For
this, software modules were used that implement: a) the basic DWM embedding
method; b) the embedding method adapted to FPGAs containing ALM; c) the method
of embedding DWM with the preliminary preparation of the information object of the
FPGA program code. The functioning procedure of the developed software
application is as follows. The application receives the interval stego key. After that, values
are sequentially selected from the interval components and transferred to the
corresponding DWM embedding modules. In the process of embedding, condition (3) is
checked. In general, the functioning of the developed application corresponds to the
flowchart shown in Fig. 1.</p>
      <p>E=EnumRulemin…EnumRulemax
T=DThresholdmin…DThresholdmax</p>
      <p>Basic DWM
embedding method
Start</p>
      <p>End</p>
      <p>E = EnumRulemax &amp;
T = DThresholdmax
0 1
0
(3)
1
End</p>
      <p>P1=Param1min…Param1max
… … … … … …
Pk=Paramkmin…Paramkmax</p>
      <p>Embedding method
adapted to FPGAs
containing ALM</p>
      <p>P1 = Param1max &amp;
Pk = Paramkmax
0 1
0
1
(3)
End
1
(3)
0</p>
      <p>Embedding with the
preliminary preparation
of the information object</p>
      <p>
        Hash size
reduction
1
mfinal
0
In the environment of the developed software, an experiment was carried out
necessary to assessment the proposed method. The initial data of the experiment were 6
FPGA projects. These projects have a different amount of FPGA hardware resources
used and different design missions. The synthesis of the projects was carried out in
the CAD Intel Quartus Prime [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. As target FPGA chips Intel Cyclone IV [
        <xref ref-type="bibr" rid="ref26 ref27">26, 27</xref>
        ]
and Cyclone V [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] were applied. The experiment process was as follows. Two stego
keys were formed: point key and interval key. As parameters of the point key, the
minimum values of the corresponding interval components of the interval key were
used. Next, DWM was formed using both keys. After that, the effective DWM
volume was calculated. If the volume turned out to be sufficient to store the hash sum,
then DWM was embedding in the container. After that, DWM extraction was
performed and the possibility of dividing it into separate fields was checked.
      </p>
    </sec>
    <sec id="sec-8">
      <title>Conclusions and Directions of the Further Research</title>
      <p>The paper proposes a method that increases the effective volume of DWM used in
FPGA program code integrity monitoring tasks. If the effective volume is small, the
hash sum cannot be stored in the DWM. The proposed method eliminates this
disadvantage.</p>
      <p>The proposed method differs from existing methods in that instead of the point
components of the stego key, interval components are used. This allows the use of a
universal stego key for many containers. However, the key components in each case
are adapted to obtain the most suitable effective DWM volume. When you embedding
DWM, the values of the interval components are iterated sequentially. At the same
time, on each iteration, the sufficiency of the effective DWM volume is checked to
store the hash sum. When extracting DWM, the values of the interval components of
the key are sequentially enumerated. The paper proposes a relation that allows you to
make a decision about the interval element that was used when DWM embedding.
An experimental evaluation of the proposed method showed its effectiveness in
comparison with existing methods. Namely, the method provides an effective volume of
DWM sufficient to store hash sums (in integrity monitoring tasks). For FPGA projects
that were used in the experiment, the average increase in the effective volume of the
DWM was 22.8%. This, in most experimental cases, made it possible to use a hash
sum with greater cryptographic strength than before applying the proposed method.</p>
      <p>Application of the proposed method simultaneously with an increase in the
effective volume of DWM increases the amount of LUT units, the program code of which
changes during the embedding of DWM. We assume that this could potentially reduce
the resistance of such an embedding to steganalysis. At the moment, there are no
well-developed methods of steganalysis for FPGA containers. Conventional
steganalysis methods are not effective for containers of this kind. Because of this, a decrease
in resistance to traditional stegoanalysis can be considered insignificant. However,
with the development of stegoanalysis methods oriented to FPGA containers, the
problem of reducing resistance when applying the proposed method will become
relevant. We consider that this question creates the direction for further research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Andina</surname>
            , J.: FPGAs: Fundamentals,
            <given-names>Advanced</given-names>
          </string-name>
          <string-name>
            <surname>Features</surname>
          </string-name>
          , and
          <article-title>Applications in Industrial Electronics</article-title>
          . CRC Press, Boca Raton, USA (
          <year>2017</year>
          ).
          <source>doi: 10.1201/9781315162133</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Raj</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>FPGA-Based Embedded System Developer's Guide</article-title>
          . CRC Press, Boca Raton, USA (
          <year>2018</year>
          ).
          <source>doi: 10.1201/9781315156200</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Lysenko</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bobrovnikova</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Savenko</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>A Botnet Detection Approach Based on the Clonal Selection Algorithm</article-title>
          .
          <source>In: DESSERT 2018 - 9th IEEE International Conference on Dependable Systems, Services and Technologies</source>
          , pp.
          <fpage>449</fpage>
          -
          <lpage>453</lpage>
          . Kyiv,
          <string-name>
            <surname>Ukraine</surname>
          </string-name>
          (
          <year>2018</year>
          ) doi: 10.1109/DESSERT.
          <year>2019</year>
          .8770035
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Vanderbauwhede</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benkrid</surname>
            ,
            <given-names>K</given-names>
          </string-name>
          . (Eds.):
          <article-title>High-performance computing using FPGAs</article-title>
          . Springer, New-York, USA (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Unsalan</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tar</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Digital System Design with FPGA</article-title>
          . New-York,
          <string-name>
            <surname>McGraw-Hill</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Tyurin</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>LUTs Sliding Backup</article-title>
          .
          <source>IEEE Transactions on Device and Materials Reliability. 19, No</source>
          <volume>1</volume>
          ,
          <fpage>221</fpage>
          -
          <lpage>225</lpage>
          (
          <year>2019</year>
          ). doi:
          <volume>10</volume>
          .1109/TDMR.
          <year>2019</year>
          .2898724
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Amano</surname>
          </string-name>
          , H.:
          <article-title>Principles and Structures of FPGAs</article-title>
          . Springer, Singapore (
          <year>2018</year>
          ). doi:
          <volume>10</volume>
          .1007/
          <fpage>978</fpage>
          -981-13-0824-6
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Waidyasooriya</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hariyama</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uchiyama</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Design of FPGA-Based Computing Systems with OpenCL</article-title>
          . Springer, Cham, Switzerland (
          <year>2018</year>
          ). doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -68161-0
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Drozd</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznietsov</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martynyuk</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drozd</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A method of the hidden faults elimination in FPGA projects for the critical applications</article-title>
          .
          <source>In: DESSERT 2018 - 9th IEEE International Conference on Dependable Systems, Services and Technologies</source>
          , pp.
          <fpage>231</fpage>
          -
          <lpage>234</lpage>
          . Kyiv,
          <string-name>
            <surname>Ukraine</surname>
          </string-name>
          (
          <year>2018</year>
          ). doi:
          <volume>10</volume>
          .1109/DESSERT.
          <year>2018</year>
          .
          <volume>8409131</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Drozd</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kharchenko</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rucinski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          et. al.:
          <article-title>Development of Models in Resilient Computing</article-title>
          .
          <source>In: DESSERT 2019 - 10th IEEE International Conference on Dependable Systems, Services and Technologies</source>
          , pp.
          <fpage>2</fpage>
          -
          <lpage>7</lpage>
          . Leeds, UK (
          <year>2019</year>
          ) doi: 10.1109/DESSERT.
          <year>2019</year>
          .
          <volume>8770035</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Hovorushchenko</surname>
            ,
            <given-names>T</given-names>
          </string-name>
          , Pomorova,
          <string-name>
            <surname>O.</surname>
          </string-name>
          :
          <article-title>Ontological approach to the assessment of information sufficiency for software quality determination</article-title>
          .
          <source>SEUR-WS</source>
          ,
          <volume>1614</volume>
          ,
          <fpage>332</fpage>
          -
          <lpage>348</lpage>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Vacca</surname>
          </string-name>
          , J.:
          <article-title>Computer and information security handbook, 3rd edition</article-title>
          . Morgan Kaufmann, Waltham, Mass (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Bishop</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <source>Computer Security. 2nd edition</source>
          . Addison-Wesley, Boston, USA (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Katz</surname>
          </string-name>
          , J.:
          <article-title>Introduction to Modern Cryptography, 2nd edition</article-title>
          . CRC Press, USA (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Conklin</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          et al.:
          <article-title>Principles of Computer Security, 4th edition</article-title>
          .
          <source>McGraw-Hill</source>
          ,
          <article-title>(</article-title>
          <year>2015</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Stallings</surname>
          </string-name>
          , W.:
          <article-title>Cryptography and Network Security: Principles and Practice, 7th edition</article-title>
          . Pearson Education,
          <string-name>
            <given-names>UK</given-names>
            ,
            <surname>Harlow</surname>
          </string-name>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Shih</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Digital Watermarking and Steganography: Fundamentals and Techniques. 2nd edition</article-title>
          . CRC Press, Boca Raton, USA (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Nematollahi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vorakulpipat</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosales</surname>
          </string-name>
          , H.:
          <source>Digital Watermarking: Techniques and Trends</source>
          . Springer, Singapore (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Yahya</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Steganography Techniques for Digital Images</article-title>
          . Springer (
          <year>2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Zashcholkin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ivanova</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>LUT-object Integrity Monitoring Methods Based on Low Impact Embedding of Digital Watermark</article-title>
          .
          <source>In: 14th International Conference on Advanced Trends in Radioelecrtronics, Telecommunications and Computer Engineering (TCSET2018)</source>
          , pp.
          <fpage>519</fpage>
          -
          <lpage>523</lpage>
          . Lviv-Slavske,
          <source>Ukraine</source>
          (
          <year>2018</year>
          ). doi:
          <volume>10</volume>
          .1109/TCSET.
          <year>2018</year>
          .8336255
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Zashcholkin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drozd</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          :
          <article-title>The Detection Method of Probable Areas of Hardware Trojans Location in FPGA-based Components of Safety-Critical Systems</article-title>
          . In: DESSERT-2018
          <source>- 9th IEEE International Conference on Dependable Systems, Services and Technologies</source>
          , pp.
          <fpage>220</fpage>
          -
          <lpage>225</lpage>
          . Kiev, Ukraine (
          <year>2018</year>
          ). doi:
          <volume>10</volume>
          .1109/DESSERT.
          <year>2018</year>
          .8409130
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>McAnlis</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Haecky</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Understanding Compression: Data Compression for Modern Developers</article-title>
          .
          <string-name>
            <surname>O'Reilly Media</surname>
          </string-name>
          , USA (
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Sayood</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <article-title>Introduction to Data Compression, 5th edition</article-title>
          . Morgan Kaufmann (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Drozd</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Antoshchuk</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drozd</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zashcholkin</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          et. al.:
          <article-title>Checkable FPGA Design: Energy Consumption, Throughput and Trustworthiness</article-title>
          . In: Green IT Engineering: Social,
          <article-title>Business and Industrial Applications, Studies in Systems, Decision and</article-title>
          <string-name>
            <surname>Control</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Kharchenko</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Kondratenko</surname>
          </string-name>
          , J.
          <source>Kacprzyk (edits)</source>
          , vol.
          <volume>171</volume>
          , pp.
          <fpage>73</fpage>
          -
          <lpage>94</lpage>
          , Springer, Berlin, Heidelberg (
          <year>2019</year>
          ). doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -00253-
          <issue>4</issue>
          _
          <fpage>4</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>25. Intel Quartus Prime. https://www.intel.com/content/www/us/en/software/programmable /quartus-prime/overview.html.</mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>26. Intel Cyclone FPGA series. https://www.intel.com/content/www/us/en/products/programmable /cyclone-series.html.</mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <article-title>Intel Cyclone IV Device Handbook</article-title>
          , https://www.intel.com/content/dam/www /programmable /us/en/pdfs/ literature/hb/cyclone-iv/cyclone4-handbook.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Intel Cyclone V Device Handbook</surname>
          </string-name>
          , https://www.intel.com/content/dam/www /programmable/us/en/pdfs/ literature/hb/cyclone-iv/cyclone5-handbook.pdf.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>