<!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>
      <journal-title-group>
        <journal-title>ITTAP'</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Pattern Handling for Quantifying Hardware Components of Signature-Based Cybersecurity Systems</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Serhii Ya. Hilgurt</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Pukhov Institute for Modelling in Energy Engineering of NAS of Ukraine</institution>
          ,
          <addr-line>15, General Naumov str., Kyiv, 03164</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2022</year>
      </pub-date>
      <volume>2</volume>
      <fpage>22</fpage>
      <lpage>24</lpage>
      <abstract>
        <p>Cybersecurity Systems such as network intrusion detection systems (NIDS) successfully use artificial intelligence technologies and other anomaly-based approaches to detect malicious activity. But only the signature approach allows you to completely eliminate recognition errors. This is especially relevant for critical infrastructure facilities. However, a significant drawback of signature-based tools is the high computational complexity: the NIDS has in real time to look through an intensive flow of incoming data against a lot of signatures -registered signs of known attacks. Therefore, the developers of such systems turn to hardware implementation, primarily on a reconfigurable platform, that is, using field programmable gate arrays (FPGA). The property of FPGAs to quickly reprogram their internal structure gives reconfigurable cybersecurity systems unprecedented flexibility, allowing them to adapt to external conditions. There are many different approaches to construct schemes to recognize patterns (which are parts of the signatures), as well their variations, modifications and improvements. Choosing the optimal technical solution for recognizing a specific set of patterns is not a trivial task. Besides having qualitative information about the variety of known schemes, it is strongly needed to be able to quickly quantify reconfigurable components to build on them optimized signature-based cybersecurity systems. This requires in turn to effectively handling the patterns that are important parts of FPGA-based schemes of NIDS' recognition components. The paper proposes a pattern set formalization description and a technique to order patterns that simplifies calculating quantitative characteristics of recognition schemes without performing expensive procedure of digital circuit synthesis using CAD tool.</p>
      </abstract>
      <kwd-group>
        <kwd>1 NIDS</kwd>
        <kwd>signature analysis</kwd>
        <kwd>multi-pattern matching</kwd>
        <kwd>FPGA</kwd>
        <kwd>quick quantifying</kwd>
        <kwd>pattern sorting</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        The signature approach, due to the precise execution of the recognizing malicious activity, is still a
relevant technology used in such protection tools as network intrusion detection systems (NIDS) and
other cybersecurity tools. Due to the increase in the size of signature databases and the high
bandwidth of modern networks, traditional software solutions can no longer meet the demands placed
on the performance of such systems. Hardware approaches are increasingly used to speed up the
resource-intensive procedure of multi-pattern matching [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], which is carried out in signature means of
information protection. Reconfigurable accelerators (RA) based on FPGA are usually used as a
platform for the implementation of such solutions due to their almost software flexibility and
nearASIC performance [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        A comprehensive analysis of numerous studies from around the world was performed by author in
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Figure 1 schematically presents the relationships between the main approaches to the construction
of recognition modules of reconfigurable cyber defense systems, the technologies on which they are
based, and techniques for improving the performance indicators of the created developments. Here,
CAM is content-addressable memory, TCAM is a ternary associative memory, DFA is a deterministic
finite state automaton, NFA is a nondeterministic finite state automaton, H+R+Cmp is a cascade
recognition scheme based on a hash function, a non-volatile memory device, and digital comparators.
Actually, there are many more components of the hierarchy of approaches, technologies and
techniques in this area of research, as well as the connections between them. Most of them are not
shown in the figure for the sake of clarity.
      </p>
      <p>
        Here CAM – Content-addressable memory; TCAM – ternary CAM; DFA / NFA – deterministic /
nondeterministic finite automaton; H+R+Cmp – cascaded matching scheme based on hash-functions,
read-only memory and digital comparators [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Actually, there are much more elements in this
hierarchy of approaches, technologies and techniques, as well as the links between them. For clarity,
most of them are not shown in the figure.
      </p>
      <p>Each of approaches has advantages and disadvantages. Researchers offer modifications to the
basic circuits, use a variety of methods, tricks and techniques in an attempt to increase their efficiency
and overcome the shortcomings of each approach.</p>
      <p>
        There is a need for a tool to quantify the technical characteristics of each solution in order to work
with them productively. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] a hardware costs estimation technique was proposed to speed up the
calculation of the quantitative characteristics of signature-based cybersecurity systems. Several
examples of building so called estimation functions (EF) are given for the basic recognition schemes.
Nevertheless as he analysis shows, that the basic schemes actually aren’t used in practical
applications. On the other hand the creating of EFs for modifications of basic schemes are more
effective require ability to effectively operate with the patterns, because them play an important role
in FPGA-based schemes for NIDS.
      </p>
      <p>In this paper, a technique for dealing with patterns of signature databases is proposed, which
allows simplifying the procedures of estimation and comparison of various technical solutions of
reconfigurable signature-based cybersecurity systems.</p>
      <p>The rest of this paper is organized as follows. Section 2 briefly considers the approach to the
building based on content-addressable memory and digital comparators. Section 3 discusses the
ordering technique principles as a base for the formalization of pattern set properties. Section 4
introduces quantitative descriptions of hardware recognition schemes for making quick estimations of
resource costs. Experiments to test the proposed technique are given in the 5th section. Section 6
concludes the research.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Approach to the building of reconfiguring matching modules based on content-addressable memory and digital comparators</title>
      <p>
        The survey on hardware solutions for signature-based security systems [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] shows that when
building NIDS and other signature-based cybersecurity systems, the following three approaches using
the corresponding technical solutions based on appropriate circuit technologies show the best results:
 Content-addressable memory on digital comparators [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ];
 Bloom filter scheme that uses hash functions [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ];
 Aho–Corasick finite automata [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], [15], [16].
      </p>
      <p>
        Let’s remind some moments about the approach based on content-addressable memory and digital
comparators analyzed in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] to better understand the pattern dealing technique when building EFs for
some matching schemes. Namely the most effective modifications of the basic CAM scheme in the
sense of saving hardware will be considered.
      </p>
      <p>Content-addressable memory devices have been specifically designed to meet the needs of fast
matching. They operate in the opposite manner to traditional random access memory (RAM) devices.
If the RAM stores the given data at a certain address and finds it at this address, then the CAM, on the
contrary, looks for the location (i.e. address, or cell number) of the data in the storage device by their
content or indicates absence. Digital comparators (DCs) are the fast-acting basis of CAMs; therefore,
further these two names are sometimes used as synonyms.</p>
      <p>The easiest way to detect the presence of a suspicious pattern in a data stream is a set of DCs that
compare the bytes of the input sequence with all the characters of this pattern. The Figure 2 a shows
an example that is able to recognize "ABC" pattern. It contains input conveyor composed of 8-bit
registers RGi, three digital comparators CMPi, – one for every character, and the "AND" gate. In
common case the number of elements depends from pattern set parameters. This scheme has been
called the Basic Content-Addressable Memory Scheme, or BsCAM Scheme.</p>
      <p>BsCAM scheme provides very high performance. In fact, it is able to output the result in one clock
cycle after the input data is fed. Its structure is regular, that is also an advantage. The main drawback
of the scheme is the huge hardware costs. To create a BsCAM scheme, you need as many DCs as
there are characters in the pattern dictionary. In addition, multi-input AND gates are needed to join
the output signals from comparators.</p>
      <p>
        To reduce the hardware costs of the CAM-based recognizing scheme the DCs can be reused. In the
extreme case only one DC is allocated for each character, and the resulting match signal is obtained
by joining digital delay circuits with help of AND gates, as shown in example in Figure 2 b. In this
figure, the delay circuits DEL1 and DEL2 provide one cycle and two cycle’s delays respectively.
Such a solution is called the Recognition Scheme Based on Decoded CAM or DCAM Scheme,
because the full set of DCs in fact composes a decoder [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], [17].
      </p>
      <p>
        Further research has made it possible to achieve a greater reduction in hardware costs with a partial
recognition scheme. Long patterns can be split into shorter pieces and matched sequentially. It is
enough to delay only the partial match signal instead of using many circuits of long delay for large
patterns. Figure 3 shows a 31-character pattern recognition scheme built according to this idea. This
solution has been called the Partially Decoded CAM Recognition Scheme or DpCAM Scheme [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ],
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>Experience shows that DCAM and DpCAM schemes can reduce the consumption of FPGA
hardware resources by about half compared to the basic scheme.</p>
      <p>As we can see in the Figures 2 and 3, information that the pattern set contains actually "wired" in
the structure of the recognition circuit. Therefore the parameters of the patterns significantly affect the
properties of the hardware matching scheme. That is why it is very important to formalize these
parameters in order to operate with them. And first of all it is necessary a technique to sort patterns in
a set.</p>
      <p>As we see in Figures 2 and 3, the information contained in the set of patterns is actually
"hardwired" into the structure of the recognition scheme. Therefore, the peculiarities of pattern set
significantly affect the properties of the hardware matching scheme. That is why it is very important
to formalize these peculiarities in order to effectively operate with them, and first of all, a technique
for sorting patterns in a set is needed.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Pattern ordering technique</title>
      <p>Let's represent the set of patterns that the cybersecurity system matching module should recognize
as an array of its members and a list of its parameters:</p>
      <p>P  p1, p2 , p3, ... pk , ... pσ σ, , mmin , mmax , δ, μ, μ z , ν,
where p1, p2 , p3 , ... pk , ... pσ – the set of patterns itself, σ – the number of patterns in the set,  –
the total number of symbols in the set of patterns, mmin – the length of the shortest pattern in the set,
mmax – the length of the longest pattern in the set, δ – the length distribution function, μ – the first
self-similarity function, μ z – the first partial self-similarity function, ν – the second self-similarity
function. Patterns are fixed sequences of symbols, each code of which belongs to a certain alphabet
 . In the case of encoding by bytes   0016 , 0116 , 0216 ,..., FF16 .</p>
      <p>Self-similarity functions μ , μ z and ν are quantitative parameters of the pattern set that
characterize the degree of similarity of patterns among themselves, determining the redundancy
present in a set of patterns, which can be used to reduce the number of comparison operations when
performing multi-pattern matching. These functions play an important role for quantifying the
recognizing schemes, especially – for effective modifications of basic matching schemes grounded on
CAMs and DCs. To provide quick quantification procedures, using self-similarity functions and
length distribution function as well, it is necessary to formalize pattern sets of the NIDS’ signature
database in order to have possibility to operate them in mathematically strict manner. Below, a
technique for patterns handling is discussed, which is based on a proposed certain sorting order.</p>
      <p>Let's sort all the patterns in the set P by increasing length, as shown in Figure 4. Columns made of
squares here represent strings of characters.</p>
      <p>Let's call "a package" a subset of patterns of the same length, ignoring how the patterns within this
subset are ordered. Let's enter the index j such that it coincides with the length of the patterns in the
package j = mmin, mmin +1, mmin +2, … mj, … mmax, and each subsequent value of this index must be
necessarily one more than the previous one, that is, there are no gaps in the numbering. Then the
length of each pattern in the set will be equal to the index of its package: mj = j.</p>
      <p>The reverse statement is not true, since for some indices j there may not be patterns of
correspondent length. Therefore, the total number of packets in the set of patterns P is generally less
than the difference in the lengths of the extreme dimensions (mmax – mmin).</p>
      <p>Let's define the length distribution function δ as a function of the index j equal to the number of
patterns in the corresponding package: in the example in Figure 2 j = 3, 4, 5, … mmax, δ3  4 ,
δ4  1, δ5  0 , δ6  2 , δmmax   2 .</p>
      <p>Using the length distribution function, it is convenient to calculate the number of non-zero packets
and the total number of characters  in the set. The total number of characters is equal to the sum of
characters in each packet, which in turn is equal to the product of the length of the lines by their
number in the packet:</p>
      <p>Then the number of packets in the set P:
 
mmax
 j m j 
jmmin
mmax
 j j .</p>
      <p>jmmin
0, x  0
NotZx  
1, x  0
.</p>
      <p>To count the number of packets  in the set P, we need to define the zero inequality function:
 
j mmin
mmax
 NotZ 
j .</p>
      <p>To estimate quantitative parameters of technical solutions for signature cybersecurity systems, it is
also necessary to determine the self-similarity functions of the set of patterns P.</p>
      <p>The first self-similarity function μ (s, l) of the set of patterns P is equal to the total number of
symbols with the code s( s   ), located at the l-th position of all patterns of this set (the numbering
of the position j of the symbol in the pattern is carried out from the end of the pattern to the
beginning). For example, for P = {"SHIP", "HIS", "HER", "IN"} μ ("S", 4) = 1; μ ("H", 3) = 3;
μ ("I", 2) = 3; μ ("P", 1) = 1; μ ("S", 1) = 1; μ ("N", 4) = 0; μ ("N", 3) = 0; μ ("N", 2) = 0, where the
image of the character in quotes indicates its code in the corresponding encoding.</p>
      <p>It is difficult to write down the expression for the first self-similarity function μ in an analytical
form; however, using the proposed technique, it is simply to calculate all its values algorithmically to
use in the software implementation.</p>
      <p>The first partial self-similarity function μ z (s, j) of the set of patterns P is equal to the total number
of symbols with the code s( s   ), located periodically at positions (j – 1) k z, j = 2, 3, 4, … (z – 1),
k = 1, 2, 3, ... mj z  of all patterns of this set (the numbering of the position of the j symbol in the
pattern is also carried out from the end of the pattern to the beginning). For example, for z =4 and P =
{"43214321", "HGFA4EDA4CBA", "555515555", "277727} μ z ("4", 4) = 4; μ z ("3", 3) = 2; μ z ("2,
2) = 4; μ z ("1", 1) = 3; μ z ("A", 1) = 3; μ z ("A", 3) = 0, where the image of the character in quotes
also indicates its code in the corresponding encoding.</p>
      <p>
        The first and second self-similarity functions make it possible to expose redundancy when
estimating quantitative characteristics of a recognition schemes based on decoded and partially
decoded CAM, respectively [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], [17].
      </p>
      <p>
        The second self-similarity function ν of the set of patterns P quantitatively determines the degree
of coincidence of fragments of different patterns of the signature database. It is also difficult to
formulate an analytical notation for the ν function, but it is implicitly present in signature databases
and plays an important role in estimating the quantitative characteristics of recognizing schemes
based on the Aho–Corasick algorithm [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Estimation of hardware costs</title>
      <p>In order to ensure the methodical rigor of the comparison of technical solutions, it is necessary to
bring the calculation of resources of different types to some single conventional unit. Such a unit can
be a primitive element of the FPGA internal structure, say, a Look Up Table (LUT). Then it can be
assumed that all calculations are performed in conditional LUT (CLT). Using this approach, the value
R of the resources required for the synthesis of any digital component will be written in the form:
R  L  α F  βB  γM ,
(1)
where L – amount of FPGA logics resources, which is required to synthesize this component (in
LUTs), F – amount of distributed memory resources (in flip-flops), B – amount of block memory
resources (in BRAM blocks), M – volume of on-board memory of reconfigurable accelerator (in Mb),
α,β, γ – normalization coefficients of different type resources in relation to LUTs.</p>
      <p>The hardware cost estimation function is defined as an expression that, for a given recognition
scheme to be synthesized within a reconfigurable accelerator with given parameters, and a given set
of patterns Pi to be recognized by this scheme, outputs a numerical estimate of the hardware costs Ri
required to build this scheme. The EFs are constructed by direct calculation of all types of resources
according to (1).</p>
      <p>
        The work [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] shows how to find the EF expression for the BsCAM matching scheme:
mmax
RBsCAM  
jmmin


  j 1    σ 1
δ j  x j  x 1   α 8 mmax  mmin  у 1 


mmax

jmmin 1 


 mmax  
  δi 1 
 i j   .
      </p>
      <p>у 1  
 
 
where x – the number of inputs of the LUT for a given FPGA, y – FAN-OUT property of internal
1, x  8
circuits of the given FPGA, x   – a qualifier function to define number of LUTs
2, x  8
required to realize a 8-bit logic function depending on how many inputs the LUTs have.</p>
      <p>As we can see, the formula (2) doesn’t contain any self-similarity function. I.e. BsCAM scheme
doesn’t exploit redundancy available in pattern set. This indicates the low efficiency of the basic
scheme in terms of resource consumption.</p>
      <p>The expression of EF for the DCAM scheme (we omit intermediate calculations again) has a little
more complex appearance:</p>
      <p>mmax   j 1 255 
RDCAM  256x       NotZμs, j  
j2   z  1 s0 
 mmax
 mmax δ j  j 1  α 255  j2
jmmin  x 1 s0 

</p>
      <p>
NotZμs, j   μs, j   2 
y 1
 .



(2)
(3)
(4)</p>
    </sec>
    <sec id="sec-5">
      <title>5. Experiments</title>
      <p>
        Let's check the proposed technique of handling patterns on the example of the implementation of
the parallel combining method [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>This method makes it possible to reduce the cost of building a pattern recognition module (PRM),
which consists of several matching blocks (MBi), which are built on the basis of recognition schemes</p>
      <p>The expression (3) already has a self-similarity function, namely, the first self-similarity
function μ . This indicates the DCAM scheme is more effective in terms of resource consumption
compared to the BsCAM scheme.</p>
      <p>The EF for DpCAM scheme looks like even more complex:</p>
      <p>z1  255  j 1 μ z1 s, j  1 </p>
      <p>RDpCAM  256 x  j2  s0  z  1 NotZμ z1 s, j    y 1   
mmax   j    z 
  δ j   
jmmin   z 1   x 
 z1 
255   NotZμ z1 s, j  1
 1   j modx(z 1)   1  s0  j2 y 1  .</p>
      <p> 
 </p>
      <p>Nevertheless, this recognizing circuit (which uses the first partial self-similarity function μ z ) is a
little more effective compared to the DCAM scheme.</p>
      <p>Expressions (3) and (4) look cumbersome, but they are calculated easily and quickly, because they
contain mainly addition and rounding operations. The grate advance of using EF to quickly estimate
hardware resources is that it is not necessary to perform time consuming procedures of synthesizing
digital circuits using a CAD for FPGA project compilation.
of different nature (Figure 5). It is possible to achieve saving of resources due to the distribution of
patterns between recognition blocks in such a way that the advantages of each scheme are highlighted
and the disadvantages are eliminated.</p>
      <p>Assume that the PRM of a cybersecurity system consists of two MBs connected in parallel. Their
input is concurrent with a stream of data that has to be checked for malicious content. The challenge
is to optimally partition the pattern set so that the total amount of hardware required to generate the
entire PRM is minimal.</p>
      <p>To solve the task, the pattern set can be sorted by some characteristic, for example, by length. The
first MB synthesizes to recognize patterns starting from the shortest to some with number j. The
second MB constructs to recognize the remaining patterns. Sorting can also be done by the number of
patterns of the same length. I.e. we assign the 1st portion of patterns to recognize MB1 is the largest
group of patterns with the same number of characters. The 2nd part for MB1 is the closest packet in
size, etc. You can also use a sort order that has the value of multiplying the length of the patterns by
the number of them in the packet.</p>
      <p>The Figure 6 shows the hardware costs minimization procedure under the following conditions:</p>
      <p>Matching scheme of MB1 – BsCAM, MB2 – the Large Bloom Filter scheme (LBF);
 Method of ordering – by multiplication the length by quantity type;
 The pattern set – from free signature database "Community Ruleset" of the NIDS Snort,
ver. 3.0, which contains  = 4208 patterns from mmin = 1 to mmax = 364 character length, in total
 = 82081 characters;
 Reconfigurable accelerator – VC709 Evaluation Kit from Xilinx (Virtex-7 VX690T FPGA,
Xilinx).</p>
      <p>The abscissa shows the number of characters in the patterns that MB2 recognizes and MB1 doesn’t
recognize. I.e. at the left edge of chart all patterns are matched by MB1 and none – by MB2; at the
right edge – vice versa.</p>
      <p>The ordinate axis shows the amount of hardware costs in CLTs is needed to build every of MBs or
the entire PRM. The curve for the MB1 is depicted by dashed line; for MB2 – by dot-dash line, and for
PRM – by solid line.</p>
      <p>The Equipment cost line for PRM has an explicit minimum, at which the entire device requires
37% less resources than the component MB1 (when it processes all patterns alone), and 39% less than
the component MB2 (when it does).</p>
      <p>The Figure 7 depicts the experiment results under the same conditions, but MBi are built now
using not basic, but modified matching schemes: MB1 created by DpCAM scheme based on CAM
and comparators whereas the MB2 – by Simplified Bloom Filter (SBF) scheme.</p>
      <p>As we can see, the cost curve for the second case, when the PRM constructed from more effective
modifications of matching schemes, has a pronounced minimum as well. The entire device shows
31% less costs requirements than the MB1 (if it recognizes all the patterns), and 41% less than the
component MB2. On the other hand, the absolute values of hardware costs are approximately two
times less than for basic circuits.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>The task of multi-pattern string matching that signature-based security systems perform is
computational-intensive, and software solutions on traditional processors do not provide necessary
performance already. Hardware accelerators using FPGA are suitable platform for this purpose.
Content addressable memory based on digital comparators, Bloom filter based on hash-functions and
Aho–Corasick algorithm implemented as a finite automaton are most promising approaches to
building matching schemes. Researchers over the world have proposed a lot of modifications and
improvements to the basic solutions of each approach. In fact, pattern set is "hardwired" into the
structure of the recognition circuit. Therefore, its properties are very important and have to be
formalized to effectively operate with matching schemes, and first of all. A technique for sorting
patterns in a set is needed.</p>
      <p>The contribution of this work is as follows. A pattern set description formalization and a technique
to order patterns that simplifies calculating quantitative characteristics of recognition schemes are
proposed. This allows applying more effective modifications of matching schemes to build pattern
recognition modules for signature-based cybersecurity systems. Due to the use of estimation functions
an expensive procedure of digital circuit synthesis using CAD tool can be eliminated.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgment</title>
      <p>This work was supported in part by the Informatization Program of the National Academy of
Sciences of Ukraine for 2020-2024.
[15] W. Jiang, Y. H. E. Yang, V. K. Prasanna, Scalable multi-pipeline architecture for high
performance multi-pattern string matching, in: Proceedings of the 24th IEEE International
Parallel and Distributed Processing Symposium, IPDPS 2010. doi:10.1109/IPDPS.2010.
5470374.
[16] C. H. Lin, S. C. Chang, Efficient Pattern Matching Algorithm for Memory Architecture, IEEE
Transactions on Very Large Scale Integration (VLSI) Systems, Article volume 19, 1 (January
2011) 33-41. doi:10.1109/tvlsi.2009.2028346.
[17] I. Sourdis, D. Pnevmatikatos, Pre-decoded CAMs for efficient and high-speed NIDS pattern
matching, in: Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom
Computing Machines, Proceedings, 2004, pp. 258-267. doi:10.1109/fccm.2004.46.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>B.</given-names>
            <surname>Smyth</surname>
          </string-name>
          , Computing Patterns in Strings, Pearson Addison Wesley, Essex,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>R.</given-names>
            <surname>Abdulhammed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Faezipour</surname>
          </string-name>
          ,
          <string-name>
            <surname>K. M. Elleithy</surname>
          </string-name>
          ,
          <article-title>Network Intrusion Detection Using Hardware Techniques: A Review</article-title>
          ,
          <source>in: Proceedings of the IEEE Long Island Systems, Applications and Technology Conference (Lisat)</source>
          ,
          <year>2016</year>
          , p.
          <fpage>7</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>V.</given-names>
            <surname>Jyothi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. K.</given-names>
            <surname>Addepalli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Karri</surname>
          </string-name>
          ,
          <article-title>DPFEE: A High Performance Scalable Pre-Processor for Network Security Systems</article-title>
          ,
          <source>IEEE Transactions on Multi-Scale Computing Systems, Article</source>
          volume
          <volume>4</volume>
          ,
          <issue>1</issue>
          (January-March
          <year>2018</year>
          )
          <fpage>55</fpage>
          -
          <lpage>68</lpage>
          . doi:
          <volume>10</volume>
          .1109/tmscs.
          <year>2017</year>
          .
          <volume>2765324</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>S. Y.</given-names>
            <surname>Hilgurt</surname>
          </string-name>
          ,
          <article-title>A survey on hardware solutions for signature-based security systems</article-title>
          ,
          <source>in: 1st International Workshop on Information Technologies: Theoretical and Applied Problems</source>
          <year>2021</year>
          (
          <article-title>ITTAP 2021)</article-title>
          , vol.
          <volume>3039</volume>
          :
          <string-name>
            <surname>CEUR-WS</surname>
          </string-name>
          ,
          <year>2021</year>
          , pp.
          <fpage>6</fpage>
          -
          <lpage>23</lpage>
          , Available online: http://ceur-ws.
          <source>org/Vol3039.</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hilgurt</surname>
          </string-name>
          ,
          <article-title>A Concise Review of FPGA-Based Hardware Solutions for Network Intrusion Detection</article-title>
          ,
          <source>in: 2021 IEEE 8th International Conference on Problems of Infocommunications, Science and Technology (PIC S&amp;T)</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>164</fpage>
          -
          <lpage>168</lpage>
          , doi: 10.1109/PICST54195.
          <year>2021</year>
          .
          <volume>97</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>S.</given-names>
            <surname>Hilgurt</surname>
          </string-name>
          ,
          <article-title>Parallel combining different approaches to multi-pattern matching for FPGA-based security systems, Advances in cyber-physical systems</article-title>
          , volume
          <volume>5</volume>
          ,
          <issue>1</issue>
          (
          <year>2020</year>
          )
          <fpage>8</fpage>
          -
          <lpage>15</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Guccione</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Levi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Downs</surname>
          </string-name>
          ,
          <article-title>A reconfigurable content addressable memory</article-title>
          ,
          <source>in: Proceedings of the Parallel and Distributed Processing</source>
          , vol.
          <year>1800</year>
          ,
          <year>2000</year>
          , pp.
          <fpage>882</fpage>
          -
          <lpage>889</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Y. H.</given-names>
            <surname>Cho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. H.</given-names>
            <surname>Mangione-Smith</surname>
          </string-name>
          ,
          <article-title>Deep packet filter with dedicated logic and read only memories</article-title>
          ,
          <source>in: Proceedings of the 12th Annual IEEE Symposium on Field-Programmable Custom Computing Machines</source>
          ,
          <year>2004</year>
          , pp.
          <fpage>125</fpage>
          -
          <lpage>134</lpage>
          . doi:
          <volume>10</volume>
          .1109/fccm.
          <year>2004</year>
          .
          <volume>25</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>I.</given-names>
            <surname>Sourdis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. N.</given-names>
            <surname>Pnevmatikatos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Vassiliadis</surname>
          </string-name>
          ,
          <article-title>Scalable multigigabit pattern matching for packet inspection</article-title>
          ,
          <source>IEEE Transactions on Very Large Scale Integration (VLSI) Systems</source>
          , Article volume
          <volume>16</volume>
          ,
          <issue>2</issue>
          (
          <year>February 2008</year>
          )
          <fpage>156</fpage>
          -
          <lpage>166</lpage>
          . doi:
          <volume>10</volume>
          .1109/tvlsi.
          <year>2007</year>
          .
          <volume>912036</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>B. H.</given-names>
            <surname>Bloom</surname>
          </string-name>
          ,
          <article-title>Space/Time Trade-offs in Hash Coding with Allowable Errors, Communications of the ACM</article-title>
          , Article volume
          <volume>13</volume>
          ,
          <issue>7</issue>
          (
          <year>1970</year>
          )
          <fpage>422</fpage>
          -
          <lpage>426</lpage>
          . doi:
          <volume>10</volume>
          .1145/362686.362692.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>S.</given-names>
            <surname>Dharmapurikar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Attig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Lockwood</surname>
          </string-name>
          ,
          <article-title>Design and Implementation of a String Matching System for Network Intrusion Detection using FPGA-based Bloom Filters, All Computer Science</article-title>
          and Engineering Research,
          <source>Report Number: WUCSE-2004-12</source>
          ,
          <fpage>2004</fpage>
          -
          <volume>03</volume>
          -25, Washington University in St. Louis,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>S.</given-names>
            <surname>Geravand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ahmadi</surname>
          </string-name>
          ,
          <article-title>Bloom filter applications in network security: A state-of-the-art survey</article-title>
          ,
          <source>Computer Networks</source>
          , Article volume
          <volume>57</volume>
          ,
          <issue>18</issue>
          (
          <year>December 2013</year>
          )
          <fpage>4047</fpage>
          -
          <lpage>4064</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.comnet.
          <year>2013</year>
          .
          <volume>09</volume>
          .003.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Aho</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Corasick</surname>
          </string-name>
          ,
          <article-title>Efficient String Matching: An Aid to Bibliographic Search, Communications of the ACM</article-title>
          , vol.
          <volume>18</volume>
          ,
          <issue>6</issue>
          (
          <year>1975</year>
          )
          <fpage>333</fpage>
          -
          <lpage>340</lpage>
          . doi:
          <volume>10</volume>
          .1145/360825.360855.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>J.</given-names>
            <surname>Lunteren</surname>
          </string-name>
          ,
          <article-title>High-performance pattern-matching for intrusion detection</article-title>
          ,
          <source>in: Proceedings of the 25th IEEE International Conference on Computer Communications, volumes 1-7</source>
          ,
          <year>2006</year>
          , pp.
          <fpage>1409</fpage>
          -
          <lpage>1421</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>