<!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>Implementation of Shor's Algorithm in a Digital Quantum Coprocessor</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Valeriy Hlukhov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Lviv Polytechnic National University</institution>
          ,
          <addr-line>12 Bandera str., Lviv, 29013</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The advantages of digital quantum coprocessors include a larger quantum volume, normal operating conditions, the presence of memory, the presence of a tested and reliable element base on which they can be implemented, and the availability of technology for using this element base. The element base refers to field programmable gate arrays (FPGAs). The paper presents the principles of building digital quantum gates, digital qubits and both homogeneous and heterogeneous digital quantum coprocessors. The capabilities of real quantum computers are usually illustrated by performing factorization of the number 15 using Shor's algorithm. This paper describes the implementation of quantum Shor's algorithm for factorizing the number 15 in a digital quantum coprocessor, which is implemented in FPGA. The difference between a real quantum coprocessor and a digital one is shown. A technique for determining the characteristics of a digital quantum coprocessor is described. Its probabilistic characteristics are also given.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Digital qubit</kwd>
        <kwd>digital quantum coprocessor</kwd>
        <kwd>heterogeneous coprocessor</kwd>
        <kwd>homogeneous coprocessor</kwd>
        <kwd>Shor's algorithm</kwd>
        <kwd>FPGA</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction1</title>
      <p>
        A quantum computer is a heterogeneous
device [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] that consists of a classical control
computer and its quantum accelerator [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] - a
quantum coprocessor. Real quantum
coprocessors are analog and probabilistic
devices. They consist of qubits, quantum gates
provide a change in their states. A classical
computer controls the operation of a quantum
coprocessor, checks the correctness of the results
of its work, and in case of an incorrect result, it
restarts the coprocessor to work.
      </p>
      <p>
        The possibility of creating logical (digital)
probabilistic devices that can work according to
the same formulas as real quantum coprocessors
and can implement quantum algorithms is shown
in previous works [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. The possibility of
creating digital quantum gates, digital qubits and,
based on them, digital quantum coprocessors is
shown. The hardware base for digital quantum
coprocessors is FPGA. Unlike real quantum
coprocessors, digital ones operate at normal
temperatures (like classical computers) and have
a larger quantum volume. This makes the
development of such coprocessors actual and
important.
      </p>
      <p>
        Quantum computers possible field use is large
numbers factorization [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. This operation is
used to hack information security systems that
use public key algorithms, such as RSA [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
Shor's algorithm [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is used for this. The main
elements of the quantum coprocessor that
implements Shor's algorithm are Hadamard
elements, quantum Fourier transform, modular
exponentiation [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and qubit state meters. In real
quantum coprocessors, these elements (except
for meters) consist of qubits; changes in their
states are provided by quantum gates.
      </p>
      <p>
        In previous works, the implementation of
digital Hadamard elements and digital quantum
Fourier transform on FPGAs was shown [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
In one FPGA, it is possible to create a quantum
Fourier transform from thousands of digital
qubits. The internal state of a digital qubit can be
represented by binary code θ in the range from
0.00...0 to 1.00...0. Also, options for encoding
the states of digital qubits with binary codes of
various lengths - from 3 to 32 bits were
considered [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Simulation of individual quantum gates is
used to simulate quantum algorithms. To
simulate the reversibility of a qubit, models of
reversible logic architecture [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] and gates [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]
have been developed. In this work, more
complex logic circuits are simulated to ensure
reversibility of quantum circuits.
      </p>
    </sec>
    <sec id="sec-2">
      <title>2. Purpose of work</title>
      <p>The aim of the work is to show the possibility
of performing quantum algorithms (using the
example of factoring the number 15 by Shor's
factorization algorithm) in a digital quantum
coprocessor implemented on the FPGA. For this,
the possibility of implementing modular
exponentiation on the FPGA and the possibility
of the effect of the results of this operation on the
states of digital qubits is shown, which allows us
to determine the period of y = axmodM function
(determining the period of a function is the main
task of a quantum coprocessor in the
implementation of Shor's algorithm).</p>
    </sec>
    <sec id="sec-3">
      <title>3. Qubit</title>
      <p>
        Qubit quantum state 
can be represented
(Figure 2) as a simple displacement of end point
of unit radius [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. The probability pj of
obtaining state
      </p>
      <p>
        j as a result of quantum state

measurement is equal to p j  2j . In this
N 1
case, the sum of all probabilities P  i2  1 .
j0
In unit circle (Figure 2) which is used in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]
p0  cos2  and p1  sin2  respectively.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Digital gates, qubits and quantum coprocessors</title>
      <p>A digital quantum gate that is used to change
the state of a digital qubit can be represented as a
logic circuit Figure 1.</p>
      <p>The digital quantum gate includes an ALU, a
comparator, and a pipelined register.</p>
      <p>ALU transforms the code of the previous state
DataIn of the qubit under the influence of the
Instruction with the possible use of the measured
state QI of the neighboring qubit (or states of
qubits). The new DataO status code is compared
in a comparator with the random variable Asin_f
to obtain the measured state of the qubit QO ' .
The output of the gate is the qubit state code
DataOut and the measured state QO of the
qubit, which are taken from the output of the
pipeline register.</p>
      <p>DataIn
QI
Instruction
Asin_f</p>
      <p>ALU</p>
      <p>DateO
B
Comparator
A</p>
      <p>QO '</p>
      <p>RG</p>
      <p>DateOut
QO</p>
      <p>In a heterogeneous digital quantum
coprocessor, a random variable at the input of
each digital quantum gate is generated by a
separate pseudo-random code generator (PRNG)
and a Read-Only-Memory (ROM) based
functional converter. The converter changes the
random variable A according to the formula
A sin_ f  D  arcsin</p>
      <p>A (Figure 3).</p>
      <p>QI
DataIn
Instruction</p>
      <p>Random</p>
      <p>Number A
QO1 DQCell
QI1</p>
      <p>QIj
QI1
QO1 DQCell</p>
      <p>StateOut</p>
      <p>Digital qubit circuit for a homogeneous
coprocessor Figure 5 has only one difference in
comparison with the circuit in Figure 4: all
random variables Asin_f for each digital
quantum gate are generated using one
pseudorandom code generator and one functional
converter.</p>
      <p>A schematic diagram of a digital quantum
coprocessor is shown in Figure 6. In
heterogeneous coprocessor, the number of
pseudo-random code generators and functional
transformers coincides with the number of digital
quantum gates. Both oscillators and transformers
are located near the digital quantum gates
(Figure 3) inside the digital qubits of the Qline
circuit in Figure 6.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Shor’s algorithm</title>
      <p>
        In Shor's algorithm [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], the problem of
factorizing the number M is reduced to the
problem of determining the period r of the
function y = axmodM, which is calculated by the
controlled units CU (Figure 7), where a is an
arbitrary integer. This is precisely the problem
that a quantum computer solves. It is shown that
the greatest common divisor GCD(ar/2+1, M) can
be a divisor of the number M. The subsequent
finding of the greatest common divisor is
performed by a classical computer.
      </p>
      <p>
        If n  log2 N  is the required number of
bits to represent the number N to be factored than
the upper quantum register in Figure 7 requires at
least 2n qubits, because Shor’s algorithm
requires x to take values between 0 and at least
N2 and the modular exponentiation function can
be written [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] as
ax mod M  ( a20 mod M )x0 ( a21 mod M )x1 ( a22n1 mod M )x2n1 (1)
      </p>
      <p>Figure 7 of Shor's algorithm implementation
illustrates quantum superiority very well. If we
take only the upper part (Figure 8) of Figure 7
diagram, then the quantum Fourier transform
will determine the frequency of the white noise
that the Hadamard elements create. After the
initial reset, each Hadamard element transfers the
qubit to the neutral position, when the angle
θ = π/4 and the state of each qubit with the same
probability p0 =p1 = 0,5 can be measured both as
0 and as 1. And the measured state of the upper
register in Figure 8 can take any value from 0 to
22n-1. The state spectrum of the upper register
will include all 22n states.
H
H</p>
      <p>X</p>
      <p>QFT
t
n
e
m
e
rs
u
a
e
M</p>
      <p>Let's conduct a thought experiment - imagine
that in some way with a period t we find out the
state of the upper register without changing
states of its qubits. Each time we will receive a
new state code, the possible codes will be in the
range from 0 to 22n-1. Now imagine that t runs to
0. Then at each moment of time the state of the
upper register will contain all codes in the range
from 0 to 22n-1.</p>
      <p>If, on the other hand, modular exponentiation
is performed over the outputs of the upper
register (CU in Figure 7), then at each "moment"
only states that give the same result of modular
exponentiation at the output of the CU be in the
spectrum of upper register states. That is, at each
"moment" of time, the spectrum of states will be
different. For example, for the function
y = 2xmod15 spectrum is presented in Figure 9.</p>
      <p>At some "moment" at the output of CU there
will be a result y = 1, then in the spectrum of
upper register states there will be 0, 4, 8, 12, …
codes (Figure 10). The distance between the
same codes, that is, the period of y = 2xmod15
function will be equal to r = 4. This period will
be determined using the quantum Fourier
transform (as the reciprocal of the repetition rate
F of the extracted codes r = 1/F). At another
"moment", the CU output will have the result y =
4, then in the spectrum of upper register states
there will be 2, 6, 10, 14, ... codes (Figure 11).</p>
      <p>y=2xmod15</p>
      <p>But the period of y = 2xmod15 function will
still be r = 4. And it will again be determined
using the quantum Fourier transform. Whatever
the result at the CU output, in the corresponding
spectrum of states there will be only codes that
allow determining the period of the function
y = 2xmod15 in one measurement and this period
will be r = 4. Determining the period of a
function in one measurement illustrates quantum
superiority. This does not take into account the
time to create a quantum circuit Figure 7.</p>
      <p>
        The period of the y = axmodM function can be
determined not only by quantum, but also by
logical (digital) methods in several clock cycles.
For example, in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] it is proposed to
approach the solution of the problem from the
other side: fix r = 2, and determine the random
variable a from the given r = 2. With this
approach, a quantum computer is no longer
needed. But Shor's algorithm is convenient for
demonstrating quantum superiority using
separate examples - for determining the result in
one measurement.
      </p>
      <p>
        Also, one of the limitations of Shor's
algorithm is the requirement for the parity of the
period r. It was shown in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] that this
condition is optional. The period r can be odd if
a is a square.
      </p>
      <p>Once again, we recall that all the "moments"
in a quantum computer are one and the same
moment in time (Figure 10, Figure 11).</p>
      <p>Attaching (Figure 7) an additional circuit to
the upper register changes the state spectrum at
any given "moment" in time. This is similar to a
high-pass filter in analog technology
connecting a capacitor removes high frequencies
from the spectrum, removes interference.</p>
      <p>Convenient examples are used to illustrate the
quantum superiority in determining the period of
y = axmodM function. In the example considered
earlier, when M = 15 = 3 * 5, period r is power
of 2: r = 4 = 22 and both factors are Fourier
primes, they can be represented as 22m  1 :
3  220  1, 5  221  1 . With such factors,
formula (1) will have the form (2):
(2)
ax mod M  ( a20 mod M )x0 ( a21 mod M )x1 ( a22n1 mod M )x2n1 =</p>
      <p>Formula (2) makes it possible to find the
period using a digital quantum coprocessor.</p>
      <p>The height of the bars in Figure 10, Figure 11
illustrates the probability of receiving the code x
as a result of mentally measuring the upper
register state of the circuit Figure 7. Thus,
Figure 10 corresponds to the upper register in
Figure 7 measured xx...x00 state, and
Figure 11 corresponds to its xx...x10 state.</p>
      <p>The implementation of Shor's algorithm in a
digital quantum coprocessor is shown in
Figure 12.</p>
      <p>The lower register in Figure 12 is a classic
digital logic circuit, signals at its outputs
formation (for the considered example of finding
the period of y = axmodM function with a = 2,
M = 15) is shown by Table 1 and Table 2.
Measuring the states of the developed digital
quantum qubits does not change the code of this
state, which is indicated by the letter D on the
meter symbol in the circuit Figure 12.</p>
      <p>The calculated values of y = axmodM function
transform the state X into a state X C
correlated with the function values. For the
considered example, this transformation is
described in Table 3.</p>
      <p>D
D</p>
      <p>D
Quantum part
Classical part
t
n
e
m
rseeau
M
0
tirseeg
r 0
R
e
p
p
U
0</p>
    </sec>
    <sec id="sec-6">
      <title>6. Discussions</title>
      <p>Further, Figure 13 - Figure 20 show the
results of the quantum part of Shor's algorithm
(determining the period of the function
y = axmodM (a = 2, M = 15) in the digital
quantum coprocessor Figure 7 with 8 digital
qubits in the upper register, the width of each
qubit is 8 bits. The research was carried out on
two types of coprocessors - homogeneous and
heterogeneous. For statistic, each study was
repeated 4096 times with the same input data. In
this case, the frequency of occurrence of each
result (the probability of the result) was recorded.</p>
      <p>Since the upper register with 2n = 8 qubits
was used, the number of different measured
codes at the output of the Fourier quantum
transform is N = 22n = 256.</p>
      <p>In Figure 13 - Figure 20, these 256 codes are
plotted along the horizontal axis, from 0 to 255.
The figures show the codes that, as a result of the
study, were found most often (high probability
states – State_HP). The vertical axis shows the
probability (Probability) of the occurrence of the
indicated codes, the value of the probability
(Value) is indicated in percent.</p>
      <p>First of all figures show the results of white
noise states generator Figure 8 study, the state of
the qubits at the output of the upper register is</p>
      <p>X  xxxxxxxx . Figure 13 and Figure 14
show how such white noise is perceived by
quantum Fourier transformer in homogeneous
(Figure 13) and heterogeneous (Figure 14) digital
quantum coprocessors. Measurement of such
quantum state can give any code in the range
0255 with equal probability. A heterogeneous
coprocessor perceives white noise more
correctly.
1
Controlled Unit CU 21  CU4 , a  2, a2  4
a
x1=0
(multiplication
by 1)
( x1x0 )( x1 x0 )( x1x0 )( x1 x0 )</p>
      <p>After the quantum Fourier transform,
determining the number of repetitions of the
measured codes gives the following results: both
homogeneous and heterogeneous quantum
coprocessors correctly determine that there are
no repetitions of codes when carrying out a large
number of measurements (the number of
repetitions is F = 0). A homogeneous
coprocessor generates such result with
probability of 84.195% (Figure 15), and
heterogeneous - with probability 32.805 %
(Figure 16).</p>
      <p>After confirming correct operation of both
digital quantum elements of Hadamard and
quantum Fourier transformer, which is also built
from digital qubits, studies of Shor's algorithm
implementation (Figure 7) were continued.
Figure 17 and Figure 18 show how the quantum
Fourier transform perceives correlated with
y = axmodM function upper register state X C
in homogeneous (Figure 17) and heterogeneous
(Figure 18) digital quantum coprocessors.</p>
      <p>And in this case, the heterogeneous
coprocessor perceives correlated states more
correctly.</p>
      <p>y = 2xmod15 function has period T = 4. The
discrete Fourier transform should most often
form the result F = N/T = 256/4 = 64. Despite the
difference in the perception of correlated upper
register states, both homogeneous and
heterogeneous quantum coprocessors correctly
determine the repetition rate of codes when
carrying out a large number of measurements,
they correctly determine the number of
repetitions F = 64. A homogeneous coprocessor
generates such a result with probability 21.439 %
(Figure 19), and heterogeneous - with probability
15.341 % (Figure 20).</p>
    </sec>
    <sec id="sec-7">
      <title>7. Implementation</title>
      <p>
        In this example, adding a lower register and
an upper register state converter (Figure 12) adds
practically nothing to the hardware costs of a
discrete Fourier transform implementation
(Figure 8). These costs were determined in
previous works [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. It was shown that on one
FPGA it is possible to implement the discrete
      </p>
    </sec>
    <sec id="sec-8">
      <title>8. Conclusions</title>
      <p>The article shows the possibility of
determining the period of the y = axmodM
function in a digital quantum coprocessor.
Determination of the period is necessary for the
execution of Shor's factorization algorithm.</p>
      <p>The possibility of implementing Shor's
factorization algorithm using two types of
implemented on FPGA digital quantum
coprocessors - homogeneous and heterogeneous
- is shown. For the research, the factorization of
the number 15 was chosen (a = 2, M = 15).
Determining the period of the y = axmodM
function is a task of a quantum coprocessor.</p>
      <p>The studies were carried out on coprocessors
with 8 digital qubits, the state of each qubit was
encoded using 8 bits.</p>
      <p>A homogeneous digital quantum coprocessor
has the best performance: the probability of
obtaining a correct result is 21.439%, and that of
a heterogeneous one is 15.341%.</p>
      <p>The coprocessor is focused on
implementation in FPGA. The presented results
were obtained after simulating
VHDLdescriptions of coprocessors.</p>
      <p>The digital quantum coprocessor outputs each
subsequent result at the system frequency of the
FPGA. In the simulation, this frequency was 1
GHz (period was 1 ns).</p>
    </sec>
    <sec id="sec-9">
      <title>9. References</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>X.</given-names>
            <surname>Fu</surname>
          </string-name>
          et al.,
          <article-title>“A heterogeneous quantum computer architecture</article-title>
          ,” in
          <source>2016 ACM International Conference on Computing Frontiers (CF'16)</source>
          ,
          <fpage>323</fpage>
          -
          <lpage>330</lpage>
          ,
          <year>2016</year>
          , doi: http://dx.doi.org/10.1145/2903150.2906 827.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L.</given-names>
            <surname>Riesebos</surname>
          </string-name>
          et al.,
          <article-title>"Quantum Accelerated Computer Architectures,"</article-title>
          <source>2019 IEEE International Symposium on Circuits and Systems (ISCAS)</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>4</lpage>
          , doi: 10.1109/ISCAS.
          <year>2019</year>
          .
          <volume>8702488</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>V.</given-names>
            <surname>Hlukhov</surname>
          </string-name>
          . “
          <string-name>
            <surname>FPGA-Based Digital</surname>
          </string-name>
          Quantum Computer Verification”.
          <source>The 11th IEEE International Conference on Dependable Systems, Services and Technologies</source>
          , DESSERT'
          <year>2020</year>
          .
          <fpage>14</fpage>
          -
          <issue>18</issue>
          <year>May</year>
          ,
          <year>2020</year>
          , Kyiv, Ukraine. In press.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>V.</given-names>
            <surname>Hlukhov</surname>
          </string-name>
          , “
          <article-title>FPGA-Based Homogeneous and Heterogeneous Digital Quantum Coprocessors”</article-title>
          ,
          <source>Advances in Science, Technology and Engineering Systems Journal (ASTESJ)</source>
          ,
          <year>2020</year>
          ,
          <volume>5</volume>
          (
          <issue>6</issue>
          ),
          <fpage>1643</fpage>
          -
          <lpage>1650</lpage>
          , DOI: 10.25046/aj0506195.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Smolin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vargo</surname>
          </string-name>
          ,
          <article-title>Pretending to factor large numbers on a quantum computer</article-title>
          ,
          <source>arXiv: 1301.7007v 1 [quant-ph]</source>
          (
          <year>2013</year>
          ). http://arxiv.org/abs/1301.7007.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>J. A.</given-names>
            <surname>Smolin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Smith</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vargo</surname>
          </string-name>
          ,
          <article-title>Oversimplifying quantum factoring</article-title>
          .
          <source>Nature</source>
          <volume>499</volume>
          ,
          <fpage>163</fpage>
          -
          <lpage>165</lpage>
          (
          <issue>11</issue>
          <year>July 2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Zhang</surname>
          </string-name>
          and
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>"Quantum polynomial-time fixed-point attack for RSA," in China Communications</article-title>
          , vol.
          <volume>15</volume>
          , no.
          <issue>2</issue>
          , pp.
          <fpage>25</fpage>
          -
          <lpage>32</lpage>
          , Feb.
          <year>2018</year>
          , doi: 10.1109/CC.
          <year>2018</year>
          .
          <volume>8300269</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>P.</given-names>
            <surname>Shor</surname>
          </string-name>
          , “
          <article-title>Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer,”</article-title>
          <source>in 35th Annual Symposium on Foundations of Computer Science</source>
          ,
          <volume>124</volume>
          -
          <fpage>134</fpage>
          ,
          <year>1994</year>
          , available at: https://www.jstor.org/stable/2653075?seq=1 , accessed 25 Nov.
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pavlidis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Gizopoulos</surname>
          </string-name>
          .
          <article-title>Fast Quantum Modular Exponentiation Architecture for Shor's Factorization Algorithm</article-title>
          .
          <source>July 2014. Quantum Information &amp; Computation</source>
          <volume>14</volume>
          (
          <issue>7</issue>
          &amp;8):
          <fpage>0649</fpage>
          -
          <lpage>0682</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>B.</given-names>
            <surname>Dey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Khalil</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kumar</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Bayoumi</surname>
          </string-name>
          ,
          <article-title>"A Reversible-Logic based Architecture for Artificial Neural Network,"</article-title>
          <source>2020 IEEE 63rd International Midwest Symposium on Circuits and Systems (MWSCAS)</source>
          ,
          <year>2020</year>
          , pp.
          <fpage>505</fpage>
          -
          <lpage>508</lpage>
          , doi: 10.1109/MWSCAS48704.
          <year>2020</year>
          .
          <volume>9184662</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>Quantum-computing.ibm.com. Shor's algorithm</article-title>
          .
          <source>Reversible classical circuits</source>
          ,
          <year>2020</year>
          . URL: https://quantumcomputing.ibm.com/composer/docs/iqx/gui de/shors-algorithm.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>E.</given-names>
            <surname>Grumbling</surname>
          </string-name>
          , M. Horowitz (eds.). “
          <article-title>Quantum computing: progress and prospects”</article-title>
          .
          <source>The National Academies of Sciences, Engineering</source>
          , and Medicine. Washington, DC: National Academies Press.
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>