<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article">
  <front>
    <journal-meta>
      <journal-id journal-id-type="publisher-id">OALibJ</journal-id>
      <journal-title-group>
        <journal-title>Open Access Library Journal</journal-title>
      </journal-title-group>
      <issn pub-type="epub">2333-9705</issn>
      <publisher>
        <publisher-name>Scientific Research Publishing</publisher-name>
      </publisher>
    </journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.4236/oalib.1105423</article-id>
      <article-id pub-id-type="publisher-id">OALibJ-92905</article-id>
      <article-categories>
        <subj-group subj-group-type="heading">
          <subject>Articles</subject>
        </subj-group>
        <subj-group subj-group-type="Discipline-v2">
          <subject>Biomedical&amp;Life Sciences</subject>
          <subject> Business&amp;Economics</subject>
          <subject> Chemistry&amp;Materials Science</subject>
          <subject> Computer Science&amp;Communications</subject>
          <subject> Earth&amp;Environmental Sciences</subject>
          <subject> Engineering</subject>
          <subject> Medicine&amp;Healthcare</subject>
          <subject> Physics&amp;Mathematics</subject>
          <subject> Social Sciences&amp;Humanities</subject>
        </subj-group>
      </article-categories>
      <title-group>
        <article-title>


          ECDSA Private Keys Study of Security

        </article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" xlink:type="simple">
          <name name-style="western">
            <surname>Panagiotis</surname>
            <given-names>V. Kontogiannis</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">
            <sup>1</sup>
          </xref>
        </contrib>
        <contrib contrib-type="author" xlink:type="simple">
          <name name-style="western">
            <surname>T.</surname>
            <given-names>Varvarigou</given-names>
          </name>
          <xref ref-type="aff" rid="aff1">
            <sup>1</sup>
          </xref>
        </contrib>
      </contrib-group>
      <aff id="aff1">
        <addr-line>National Technical University of Athens, Athens, Greece</addr-line>
      </aff>
      <pub-date pub-type="epub">
        <day>04</day>
        <month>06</month>
        <year>2019</year>
      </pub-date>
      <volume>06</volume>
      <issue>06</issue>
      <fpage>1</fpage>
      <lpage>20</lpage>
      <history>
        <date date-type="received">
          <day>24,</day>
          <month>April</month>
          <year>2019</year>
        </date>
        <date date-type="rev-recd">
          <day>2,</day>
          <month>June</month>
          <year>2019</year>
        </date>
        <date date-type="accepted">
          <day>5,</day>
          <month>June</month>
          <year>2019</year>
        </date>
      </history>
      <permissions>
        <copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement>
        <copyright-year>2014</copyright-year>
        <license>
          <license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p>
        </license>
      </permissions>
      <abstract>
        <p>


          Cryptocurrencies are a mean of executing online transactions. They use a variety of cryptographic techniques to secure and verify these transactions, which are functionally supported by the Blockchain platform. Blockchain is a continuously growing, distributed ledger of files that contains all transactions between users of cryptocurrencies in a verifiable and permanent manner. It consists of blocks that are connected and secured cryptographically. Cryptocurrencies use algorithms to produce pairs of public and private keys. These pairs, cryptographically merged with a message between the participants, are the building blocks of the relevant transactions. Bitcoin uses the ECDSA algorithm to produce the above-mentioned keys. The purpose of our work is to present some useful motifs for the domain parameters of base point (P) and the order (n) of the subgroup produced by it, while choosing the elliptic curve and the Galois field on which we formulate the algorithm, in order to obtain safer private keys. The results of the research are experimental due to the limited infrastructure, but explanatory for the purpose of our work. The resulting conclusions highlight the value of the proper selection of the structural parameters of these algorithms and possible alternatives to the curve, field and domain parameters that can be used.

        </p>
      </abstract>
      <kwd-group>
        <kwd>ECDSA</kwd>
        <kwd> ECDLP</kwd>
        <kwd> Private Keys</kwd>
        <kwd> Blockchain</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="s1">
      <title>1. Introduction</title>
      <p>The most important issue a cryptocurrency such as Bitcoin has to offer to its users is the ability to handle a large volume of transactions in a short period of time with security and verifiability.</p>
      <p>
        Often the developer’s task with respect to the key generation algorithm is the right choice of the algorithm’s domain parameters that will provide a sufficient combination of the above properties. For the Bitcoin cryptocurrency, the elliptic curve secp256k1 defined by the standards for an efficient cryptographic group (SECG) is the one used by the ECDSA algorithm, as discussed further in [<xref ref-type="bibr" rid="scirp.92905-ref1">1</xref>] . Although safer curves have been proposed, speed, volume of work, but above all infrastructure, force developers to compromise looking for other security controls.
      </p>
      <p>
        For the purpose of the research, we focused exclusively on the security of the algorithm, which we applied for specific experimental data. The resulting conclusions concern the selection of appropriate domain parameters on the specific safe elliptical curves from the NSA survey conducted by the United States of America, best explained by [<xref ref-type="bibr" rid="scirp.92905-ref2">2</xref>] , on Galois field ( F p ).
      </p>
    </sec>
    <sec id="s2">
      <title>2. Theoretical Background</title>
      <sec id="s2_1">
        <title>2.1. Hash Function</title>
        <p>
          In Bitcoin, on the Blockchain platform, the user’s digital addresses are the result of fragmentation of a public key part Q produced by the ECDSA algorithm [<xref ref-type="bibr" rid="scirp.92905-ref3">3</xref>] . Hash functions have four very powerful properties, thoroughly examined by [<xref ref-type="bibr" rid="scirp.92905-ref4">4</xref>] , that contribute to the security of transactions between users. Specifically:
        </p>
        <p>• Collision resistance: Collision resistance: Concept in which a hash function H is resistant to collisions of input values if it is infeasible to lead to a common output value from different input values. Otherwise, for x , y with x ≠ y we arrive at H ( x ) = H ( y ) .</p>
        <p>• Preimage resistance: For a predetermined output value y, it is infeasible to find the input value x that has it as output, i.e. it is difficult to find any preselected input value x, so that H ( x ) = y .</p>
        <p>• Second preimage resistance: It is not possible for a different input value x ′ , with x ′ ≠ x , to arrive at a valid H ( x ) = H ( x ′ ) .</p>
        <p>• Hiding: A hash function has the ability to be hidden if for a hidden value i, which is selected from a distribution with a high min-entropy, for a given value F ( i ∥ z ) it is impossible to find the value z.</p>
        <p>
          Note that all addresses consist of letters and numbers, which are the output values of the Bitcoin-based hash function, with input values the corresponding parts of the public keys Q. The amount, the addresses of the contracted users and the dates of the transactions, as shown in <xref ref-type="fig" rid="fig1">Figure 1</xref>, are few of the elements contained on the Blockchain platform.
        </p>
      </sec>
      <sec id="s2_2">
        <title>2.2. Elliptic Curves</title>
        <p>
          Elliptic curves are the first mathematical tool used to create the ECDSA algorithm, as discussed in [<xref ref-type="bibr" rid="scirp.92905-ref5">5</xref>] . Selecting a suitable curve that will simultaneously support the collateral needs of the platform is a building block.
        </p>
        <p>Elliptic curve: A curve whose shape is given by the equation:</p>
        <p>y 2 = x 3 + A x + B ,     with   A , B ∈ ℤ</p>
        <p>where the basic condition is the discriminant Δ = 4 ⋅ A 3 + 27 ⋅ B 2 ≠ 0</p>
        <p>Its points are given by the set:</p>
        <p>E = { ( x , y ) : y 2 = x 3 + A x + B } ∪ { O } , where O is the point at infinity.</p>
        <p>
          Algebraic properties: For two points P 1 = ( x 1 , y 1 ) and P 2 = ( x 2 , y 2 ) on an elliptic curve of the form E : y 2 = x 3 + A x + B , the following properties, further explained by [<xref ref-type="bibr" rid="scirp.92905-ref6">6</xref>] :
        </p>
        <p>Apply</p>
        <p>&#167; If P 1 ≠ P 2 with x 1 = x 2 , then P 1 + P 2 = 0 .</p>
        <p>&#167; If P 1 = P 2 and y 1 = 0 , then P 1 + P 2 = 2 P 1 = 0 .</p>
        <p>&#167; If P 1 ≠ P 2 and x 1 ≠ x 2 , then { λ = y 2 − y 1 x 2 − x 1 β = − λ x 1 + y 1 = y 1 x 2 − y 2 x 1 x 2 − x 1 ⇒ Point Addition.</p>
        <p>&#167; If P 1 = P 2 with y 1 ≠ 0 , then { λ = 3 x 1 2 + A 2 y 1 β = − λ x 1 + y 1 = − x 3 + A x + 2 B 2 y ⇒ Point Doubling.</p>
        <p>It is true from the foregoing that in general:</p>
        <p>P 1 + P 2 = ( λ 2 − x 1 − x 2 , − λ 3 + λ ( x 1 + x 2 ) − β )</p>
        <p>
          Schematic examples of the above are illustrated in <xref ref-type="fig" rid="fig2">Figure 2</xref>.
        </p>
      </sec>
      <sec id="s2_3">
        <title>2.3. Galois Fields</title>
        <p>
          The second mathematical theory that supports ECDSA are the finite fields, commonly known as Galois fields, as mentioned in [<xref ref-type="bibr" rid="scirp.92905-ref7">7</xref>] .
        </p>
        <p>• Field: A set of numbers defining the operations of addition, multiplication, and consequently subtraction and division, which satisfy all the essential properties of these operations.</p>
        <p>• Galois fields are all fields of form F p = { 0 , 1 , 2 , ⋯ , p − 1 } with p prime number. These fields have a finite number of elements. The results of all operations are divided by modulo p and are all prime field values.</p>
        <p>For example, F 29 is { 0 , 1 , 2 , 3 , ⋯ , 28 } . Examples of numerical operations are:</p>
        <p>&#167; Addition: 17 + 20 = 8, because 37 mod 29 = 8</p>
        <p>&#167; Subtraction: 17 − 20 = 26, due to −3 mode 29 = 26</p>
        <p>&#167; Multiplication: 17*20 = 21, because 340 mod 29 = 21</p>
        <p>&#167; Division: 17 − 1 = 12, due to 17*12 mod 29 = 1</p>
        <p>Some very basic properties of Galois fields useful for conducting research are:</p>
        <p>1) Subfield-Field Expansion: For field F, we call K a subfield of F, when this is a field provided with the same operations as F, all elements of which belong to the original F. By analogy, F is an extension of subfield K.</p>
        <p>2) Galois Field Base: Algebraically a finite field F p n can be a vector space of the F p subfield, where the vectors will be the elements of the first and gradual sizes the elements of the second (depending on the operation we perform). For B = { b 1 , b 2 , ⋯ , b n } a base and a ∈ F p n , a subfield element α can be unique as a = a 1 ⋅ b 1 + a 2 ⋅ b 2 + ⋯ + a n ⋅ b n with ( a 1 , a 2 , ⋯ , a n ) elements of the F p field.</p>
        <p>3) Existence and Uniqueness: For every prime number p and positive integer n there is a finite field with p n elements, i.e. F p n . Any other finite field with the same number of elements is isomorphic to the previous one.</p>
        <p>4) Subfield Criterion: For F q a finite field with q = p n elements, we have that any subfield of F q m has an order p m , where m is a positive divisor of n. Conversely, for m positive divisor of n, there is exactly one subfield F q m of F q with p m elements.</p>
        <p>Note: The Galois fields are widely used in modern cryptography. Specifically in software applications, in the development of processors due to the field arithmetic and the creation of fast desktop multipliers. These are only a few of the improvements they have been brought by Galois fields.</p>
      </sec>
      <sec id="s2_4">
        <title>2.4. Weierstrass Equation, Isoforms and Hasse Theorem</title>
        <p>
          The ECDSA algorithm is constructed from a specific elliptic curve (secp256k1) on a Galois field. The merge of the two previous theories is the Weierstrass equation, best explained by [<xref ref-type="bibr" rid="scirp.92905-ref8">8</xref>] , which stated as follows:
        </p>
        <p>Weierstrass equation: For an arbitrary (finite) field we define the Weierstrass equation of the elliptic curve E on the field, i.e. E/F, which is of the form:</p>
        <p>E : y 2 + a 1 ⋅ x y + a 3 ⋅ y = x 3 + a 2 ⋅ x 2 + a 4 ⋅ x + a 6     with   ( x , y ) ∈ F .</p>
        <p>where:</p>
        <p>For α 1 , α 2 , α 3 , α 4 , α 6 ∈ F we have Δ ≠ 0 , where Δ is the discriminant of Ε.</p>
        <p>In general, the above equation must be transformed into more friendly forms for use by any key pair generation algorithm. The following isomorphism is appropriate.</p>
        <p>
          Weierstrass isomorphism (mentioned in [<xref ref-type="bibr" rid="scirp.92905-ref5">5</xref>] ): For two distinct elliptic curves of Weierstrass form, E 1 , E 2 , on a finite field F with formulas:
        </p>
        <p>E 1 : y 2 + a 1 ⋅ x y + a 3 ⋅ y = x 3 + a 2 ⋅ x 2 + a 4 ⋅ x + a 6 E 2 : y 2 + a ′ 1 ⋅ x y + a ′ 3 ⋅ y = x 3 + a ′ 2 ⋅ x 2 + a ′ 4 ⋅ x + a ′ 6</p>
        <p>The curves are called isomorphic on the field if there are u , r , s , t ∈ F , with u ≠ 0 , so for the transformation:</p>
        <p>( x , y ) → ( u 2 ⋅ x + r , u 3 ⋅ y + u 2 ⋅ s ⋅ x + t )</p>
        <p>Starting with E 1 , we end up in E 2 .</p>
        <p>Basically, we use isomorphism:</p>
        <p>( x , y ) → ( x − 3 a 1 2 − 12 a 2 36 , y − 3 a 1 ⋅ x 216 − a 1 3 + 4 a 1 ⋅ a 2 − 12 a 3 24 )</p>
        <p>Which leads us to the known form of short Weierstrass elliptic curves over Galois field F p , p prime, with the formula:</p>
        <p>y 2 = x 3 + a ⋅ x + b     where   4 ⋅ a 3 + 27 ⋅ b 2 ( mod p ) ≠ 0 .</p>
        <p>
          Riemann’s hypothesis for elliptic curves (mentioned in [<xref ref-type="bibr" rid="scirp.92905-ref12">12</xref>] ): For E an elliptic curve with points on a finite field F q , with # E ( F q n ) the number of these points applies:
        </p>
        <p>| # E ( F q n ) − 1 − q n | ≤ 2 ⋅ q n 2 , ∀ n ≥ 1.</p>
        <p>
          By selecting n = 1 we have | # E ( F q ) − 1 − q | ≤ 2 ⋅ q , ∀ n ≥ 1 -Hasse theorem [<xref ref-type="bibr" rid="scirp.92905-ref9">9</xref>]
        </p>
        <p>Note: The order of the field, i.e. the number of points of the elliptic curve on the Galois field is to be denoted by N. According to Hasse theorem, an easy first estimate of the order of the curve is calculated.</p>
        <p>Using similar isomorphisms, we result from the generalized Weierstrass equation in two other very useful elliptical curve cryptographic forms (ECC).</p>
        <p>Specifically:</p>
        <p>• Montgomery equation: concerning elliptic curves on Galois F p fields of the form:</p>
        <p>B ⋅ y 2 = x 3 + A ⋅ x 2 + x ,     where   B ⋅ ( A 2 − 4 ) ( mod p ) ≠ 0</p>
        <p>• Edwards equation: concerning elliptic curves over Galois F p fields of the form:</p>
        <p>x 2 + y 2 = 1 + d ⋅ x 2 ⋅ y 2 ,     where   d ⋅ ( 1 − d ) ( mod p ) ≠ 0</p>
        <p>Note: It is possible, through proper transformation, to determine one form of elliptic curve equation from another. Specifically:</p>
        <p>• For a Montgomery elliptic curve through transformation, ( x , y ) → ( B ⋅ u − A 3 , B ⋅ v ) we pass into a short Weierstrass form with the equation:</p>
        <p>v 2 = u 3 + a ⋅ u + b ,     where   a = 3 − A 2 3 ⋅ B 2     and     b = 2 ⋅ A 3 − 9 ⋅ A 27 ⋅ B 3</p>
        <p>• For an Edward elliptic curve through transformation ( x , y ) → ( u / v , ( u − 1 ) / ( u + 1 ) ) we pass into Montgomery with the following equation:</p>
        <p>B ⋅ v 2 = u 3 + A ⋅ u 2 + u ,     where   A = 2 ⋅ ( 1 + d ) 1 − d     and     B = 4 1 − d</p>
        <p>Note: Generally, all elliptical equations on Galois F p , p &gt; 3 fields can be in the form of a short Weierstrass equation.</p>
        <p>
          Rational points (explained in detail in [<xref ref-type="bibr" rid="scirp.92905-ref10">10</xref>] ): Αll points ( x , y ) , with x , y ∈ F p of the elliptic curves on the respective Galois F p fields that satisfy their curve equations. If we have short Weierstrass or Montgomery equations, there is the O-point at infinity, while for Edward equations there is not.
        </p>
      </sec>
      <sec id="s2_5">
        <title>2.5. Elliptic Curves Discrete Logarithmic Problem (ECDLP)</title>
        <p>
          Elliptic Curve Cryptography (ECC) supports its safety in the difficulty of solving the discrete logarithmic elliptic curve problem (ECDLP). This means that the implementation of the ECDSA used to produce a key pair (𝑑, 𝑄) should support its functions in a robust pair of elliptic curve and Galois field, as explained in [<xref ref-type="bibr" rid="scirp.92905-ref11">11</xref>] .
        </p>
        <p>ECDLP (Short Weierstrass): We consider an elliptic curve E defined on a finite field F p , with characteristic p i.e.:</p>
        <p>E : y 2 = x 3 + A ⋅ x + B ,     where   A , B ∈ F p with   restriction   4 ⋅ A 3 + 27 ⋅ B 2 ( mod p ) ≠ 0</p>
        <p>For two points of E ( F p ) , let P, Q we look for the integer x , x ∈ ℕ for which:</p>
        <p>Q = x ⋅ P</p>
        <p>
          Complexity of Pohlig-Hellman―ECDSA (resilience, thoroughly explained by [<xref ref-type="bibr" rid="scirp.92905-ref12">12</xref>] ): The Pohlig-Hellman algorithm is used for calculating discrete logarithms with input a set of points of order n and having complexity O ( n ) .
        </p>
        <p>By parameterizing n = ∏ i p i e i we degrade Pohlig-Hellman into a Baby-giant step algorithm, which results in the complexity of the algorithm to increase to O ( ∑ i e i ( log n + p i ) )</p>
        <p>Let an elliptic curve E be defined on a Galois field F p , whose order is the number # E ( F p ) = N . Based on the above, order N can be presented as the product of prime numbers, i.e. N = p 1 p 2 ⋯ p n which are the orders of subgroups produced by base points P. This makes it more difficult to solve ECDLP, which implies that the ECDSA algorithm is resilient to model-based attacks.</p>
        <p>We prefer orders n i ≡ p i to be large prime numbers.</p>
        <p>Domain parameters of ECDSA</p>
        <p>The domain parameters are the composite elements on which ECDSA is designed to produce the requested keys for trading. Although the users of the platform know their values, it is common for security reasons to list the hash function outputs with input values, the values of the domain parameters. Bitcoin’s ECDSA uses the elliptic curve secp256k1 with domain parameters T = ( p , a , b , G , n , h ) where:</p>
        <p>&#167; p = 2 256 − 2 32 − 2 9 − 2 8 − 2 7 − 2 6 − 2 4 − 1 ,is the size of the Galois field F p .</p>
        <p>&#167; The coefficients a = 0, b = 7 of the above curve.</p>
        <p>&#167; The generation point G = 0279BE667E F9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B 16F81798, from which we produce the subset of the elliptic curve points in the field.</p>
        <p>&#167; n = FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141, the order of the base point G.</p>
        <p>&#167; The cofactor h = 1.</p>
        <p>The base point is the one from which the algorithm generates the subgroup of elliptic curve points applied to the Galois field. We prefer the order of the subgroup produced for security reasons to be a large prime number. If N is the order of the curve, then we look for the largest prime number n that divides the order of the curve. Simply selecting a base point with a non-prime subgroup n order makes the algorithm vulnerable to attacks because it is not adequately supported by the ECDLP.</p>
        <p>The process of finding the order n is fulfilled by the procedure of elliptic curve scalar point multiplication, i.e. by solving the equation:</p>
        <p>n ⋅ P ( mod p ) = 0 , where P is a point of E ( F p ) .</p>
        <p>Cofactor h = N = # E ( F p ) n , with h ∈ ℕ is used to calculate the base point G by solving the equation:</p>
        <p>n ⋅ ( h ⋅ P ) = n ⋅ G = 0 with G = h ⋅ P .</p>
      </sec>
      <sec id="s2_6">
        <title>2.6. Model-Based Attacks versus ECDSA</title>
        <p>
          In the present work, we will unleash three model-based methods of attack, such as Brute force, Baby-giant step and Pollard's rho. The methods will violate the ECDSA algorithm to steal the private key d of the transaction, as explained by [<xref ref-type="bibr" rid="scirp.92905-ref13">13</xref>] . This creates serious problems for the victim of the violation and for the Blockchain platform, whose prestige is irreversibly impaired. The purpose of the research is to demonstrate at an experimental level that any change in the domain parameters of the elliptic curve and the Galois field of the algorithm, as defined by the NSA survey, is dangerous to the security of the algorithm and by extension to the users’ private keys, as discussed in [<xref ref-type="bibr" rid="scirp.92905-ref14">14</xref>] .
        </p>
        <p>Brute force: Calculates the products x 1 ⋅ P , x 2 ⋅ P , x 3 ⋅ P , ⋯ for random values x 1 , x 2 , x 3 , ⋯ until x ⋅ P = Q is verified for some value. The length of time until the above verification, is O ( p ) . Clearly the most time-consuming method requiring a powerful computing system for comparable results over the next. The symbolism O is Landau’s big O notation.</p>
        <p>Baby giant step: First, we transform the equality Q = x ⋅ P that we verify as:</p>
        <p>Q − a ⋅ m ⋅ P = b ⋅ P</p>
        <p>Reminder: Generally, any integer x , x ∈ ℤ can be written as a product of three arbitrary integers a , m , b ∈ ℤ , so that x = a ⋅ m + b .</p>
        <p>So, in the next step two vector lists of the starting points P , Q of E ( F q ) are created with the previous coefficients ( x 1 , x 2 , x 3 , ⋯ ) i.e.:</p>
        <p>Vector   1 : x 1 ⋅ P , x 2 ⋅ P , x 3 ⋅ P , ⋯ Vector   2 : Q − x 1 ⋅ P , Q − x 2 ⋅ P , Q − x 2 ⋅ P , ⋯</p>
        <p>The process ends when a collision of the following form occurs:</p>
        <p>x i ⋅ P = Q − x j ⋅ P ,     where   i , j = 1 , 2 , 3 , ⋯</p>
        <p>The expected execution time is O ( q ) and is clearly less than the equivalent of the exhaustive method (Brute force).</p>
        <p>(Pollard’s Attack): with this method, we search for discrete pairs ( a , A ) and ( b , B ) of modulo n integers to verify equality:</p>
        <p>a ⋅ P + b ⋅ Q = A ⋅ P + B ⋅ Q ,     with   a , b , A , B ∈ ℤ</p>
        <p>Specifically we calculate the value</p>
        <p>x = ( a − A ) ⋅ ( B − b ) − 1 mod n</p>
        <p>Briefly</p>
        <p>1) For a given point X ∈ 〈 P 〉 and integers ( c , d ) with X = c ⋅ P + d ⋅ Q , a random iteration function f : 〈 P 〉 → 〈 P 〉 is defined, which calculates X = f ( X ) and c &#175; , d &#175; ∈ [ 0 , n − 1 ] with X &#175; = c &#175; ⋅ P + d &#175; ⋅ Q .</p>
        <p>
          2) Subsequently we define a random partition of 〈 P 〉 , the set { S 1 , S 2 , ⋯ , S L } in order the L sets to have an even approximate size. Typical values of L are 16 (2<sup>4</sup>) and 32 (2<sup>5</sup>).
        </p>
        <p>3) For X = c ⋅ P + d ⋅ Q we have f ( X ) = X &#175; = c &#175; ⋅ P + d &#175; ⋅ Q where c &#175; = c + a j mod n and d &#175; = d + b j mod n .</p>
        <p>Finally, each point X 0 ∈ 〈 P 〉 defines a sequence { X i } i ≥ 0 of points, where X i = f ( X i − 1 ) , i ≥ 1 . Because the 〈 P 〉 set is finite, we will definitely come to a collision. This means that there will be a small index w for which X w = X w + s , s ≥ 1 . In conclusion we have X i = X i − s , ∀ i ≥ w + s .</p>
        <p>W is called “tail length”, while s is the “length of the circle”. A collision is expected after π ⋅ n / 2 values, while the tail and cycle lengths are respectively t ~ π ⋅ n / 8 and s ~ π ⋅ n / 8 . The algorithm used to find this collision is the Floyd Cycle Finding algorithm. We calculate point pairs ( X i , X 2 i ) for i = 1 , 2 , 3 , ⋯ and terminate the process when X i = X 2 i . There is a collision when for two points X i , X j ⇒ X i = X j for i ≠ j . The expected number of pairs to be compared is k ∈ [ w , w + s ] and for random iterated function f is 1.0308 ⋅ n .</p>
        <p>Advantages of ECDSA:</p>
        <p>1) With respect to earlier cryptographic tools such as RSA, DSA, elliptic curve algorithms offer greater security for a certain key size. This is also observed for small key sizes, which by definition are much more vulnerable than larger ones.</p>
        <p>2) Time and memory space required to produce and distribute messages in the case of ECDSA is significantly smaller than in previous tools. In this way, the platform becomes accessible to more users and researchers.</p>
        <p>3) From an economic point of view, systems based on elliptic curve algorithms are more cost-efficient than older algorithms in storage, cooling and energy.</p>
        <p>Disadvantages of ECDSA:</p>
        <p>1) Cryptographic tools are primarily free to access by all kinds of users, allowing the creation of tools for violating any kind of platform.</p>
        <p>2) Encrypted information, authentic and digitally signed, can be difficult to access even for a legitimate user at critical decision time, especially when the platform is tampered with.</p>
        <p>3) Cryptography by definition does not protect against the vulnerabilities and threats that result from bad design of systems, protocols and processes.</p>
      </sec>
      <sec id="s2_7">
        <title>2.7. Experimental Analysis</title>
        <p>At this point, we present all the experimental results that emerged from the research. Specifically, we have implemented the ECDSA key pair generation algorithm for two Galois F 50101 and F 100153 fields with appropriate base points of our choice. We then launched three model-based attacks such as Brute force, Baby-giant step and Pollard rho to steal private keys used in transactions. By counting the time required to carry out the wrenching of the private key, we have arrived at significant practical conclusions.</p>
        <p>Before the tables and diagrams are presented, we must mention the modifications to the algorithm and the assumptions made for the better conduct of the survey. Analytically:</p>
        <p>• We modified the GitHub mini_ecdsa algorithm, as referenced in the relevant bibliography, designed to calculate the first 10 - 12 base points of order only prime number. Specifically, by finding one of the points of the elliptic curve on the Galois field, we examined the order of the subgroup we create when that point is used as a base point. If order n is prime number then we would consider it for study, otherwise we are going to be checked at the next points. This double check to find points increases waiting time in many hours per elliptic curve, but it serves the rest of the research to a large extent.</p>
        <p>• The Galois fields we studied are objectively very small than those used in key-generation algorithms. The reason is the limited infrastructure. It is noticeable that the wait for double check increases exponentially, when the size of the Galois field increases. The results, however, are similar and expected.</p>
        <p>• From the above points, we have chosen as base points those for which the largest possible subgroup n order has been obtained. It is known that the larger the n order is, the greater the security in minor attacks, that we are not studying in this research. In addition, it was observed that for larger n order larger private keys are emerging, which is very important for research.</p>
        <p>• Despite the elasticity of the base point selection algorithm, we remain “loyal” to the ECDLP problem on which the ECDSA algorithm is based, i.e. the base point selection that gives as an order n prime number.</p>
        <p>
          • In applying the algorithm, we additionally chose elliptic curves with Edward equations, which we transformed into short Weierstrass. The reason is that the mini_ecdsa algorithm, best explained in [<xref ref-type="bibr" rid="scirp.92905-ref15">15</xref>] , has been chosen to study elliptical curves of the form:
        </p>
        <p>y 2 = x 3 + a ⋅ x 2 + b ⋅ x + c defined on F p , p prime number.</p>
        <p>The above equation is an intermediate form of Short Weierstrass and Montgomery.</p>
        <p>In particular, the equations of the above form are:</p>
        <p>
          Having properly transformed the elliptic curves, which are displayed in <xref ref-type="table" rid="table1">Table 1</xref>, we pass on the level of the analysis of the results, as shown in <xref ref-type="table" rid="table2">Table 2</xref>.
        </p>
        <table-wrap id="table1" >
          <label>
            <xref ref-type="table" rid="table1">Table 1</xref>
          </label>
          <caption>
            <title> All the elliptic curves and their equations used for the research purposes in Weierstrass form</title>
          </caption>
          <table>
            <tbody>
              <thead>
                <tr>
                  <th align="center" valign="middle" >Curve</th>
                  <th align="center" valign="middle" >Equation</th>
                </tr>
              </thead>
              <tr>
                <td align="center" valign="middle" >secp256k1</td>
                <td align="center" valign="middle" >y 2 = x 3 + x + 7</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve25519</td>
                <td align="center" valign="middle" >y 2 = x 3 + 486662 x 2 + x</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve383187</td>
                <td align="center" valign="middle" >y 2 = x 3 + 229969 x 2 + x</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-221</td>
                <td align="center" valign="middle" >y 2 = x 3 + 117050 x 2 + x</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-551</td>
                <td align="center" valign="middle" >y 2 = x 3 + 530438 x 2 + x</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Anomalous</td>
                <td align="center" valign="middle" >y 2 = x 3 + 1.535 e 62 ⋅ x + 7.444 e 60</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >BN(2,254)</td>
                <td align="center" valign="middle" >y 2 = x 3 + 2</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >BrainpollP256t1</td>
                <td align="center" valign="middle" >y 2 = x 3 − 3 x + 4.621 e 76</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve1174</td>
                <td align="center" valign="middle" >y 2 = x 3 − 28489 x + 1926947</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-222</td>
                <td align="center" valign="middle" >y 2 = x 3 + 13333333333 x</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-382</td>
                <td align="center" valign="middle" >y 2 = x 3 − 94211737 x + 352268124782</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-521</td>
                <td align="center" valign="middle" >y 2 = x 3 + 14833242554 x + 6219980097646</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Ed448-Goldilocks</td>
                <td align="center" valign="middle" >y 2 = x 3 − 318383 x + 692424</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-383</td>
                <td align="center" valign="middle" >y 2 = x 3 + 2065150 x 2 + x</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >NIST P-224</td>
                <td align="center" valign="middle" >y 2 = x 3 − 3 x + 1.896 e 67</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <table-wrap id="table2" >
          <label>
            <xref ref-type="table" rid="table2">Table 2</xref>
          </label>
          <caption>
            <title>
              Applying all model based methods in all above-mentioned elliptic curves on F<sub>50101</sub> Galois field
            </title>
          </caption>
          <table>
            <tbody>
              <thead>
                <tr>
                  <th align="center" valign="middle"  colspan="8"  >
                    Galois Field F<sub>50101</sub>
                  </th>
                </tr>
              </thead>
              <tr>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle"  colspan="3"  >Method (Time in sec)</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve</td>
                <td align="center" valign="middle" >Base Point P</td>
                <td align="center" valign="middle" >Order n</td>
                <td align="center" valign="middle" >Private Key d</td>
                <td align="center" valign="middle" >Point P</td>
                <td align="center" valign="middle" >Brute Force</td>
                <td align="center" valign="middle" >Baby-Giant Step</td>
                <td align="center" valign="middle" >Pollard’s rho</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >secp256k1</td>
                <td align="center" valign="middle" >(99, 11,436)</td>
                <td align="center" valign="middle" >137</td>
                <td align="center" valign="middle" >52</td>
                <td align="center" valign="middle" >(35,925, 39,101)</td>
                <td align="center" valign="middle" >0.008</td>
                <td align="center" valign="middle" >0.001</td>
                <td align="center" valign="middle" >0.002</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve25519</td>
                <td align="center" valign="middle" >(1288, 23,396)</td>
                <td align="center" valign="middle" >181</td>
                <td align="center" valign="middle" >156</td>
                <td align="center" valign="middle" >(48,651, 17,578)</td>
                <td align="center" valign="middle" >0.225</td>
                <td align="center" valign="middle" >0.004</td>
                <td align="center" valign="middle" >0.005</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve383187</td>
                <td align="center" valign="middle" >(88, 17,366)</td>
                <td align="center" valign="middle" >1049</td>
                <td align="center" valign="middle" >988</td>
                <td align="center" valign="middle" >(12,662, 41,418)</td>
                <td align="center" valign="middle" >0.023</td>
                <td align="center" valign="middle" >0.01</td>
                <td align="center" valign="middle" >0.006</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-221</td>
                <td align="center" valign="middle" >(15, 14,998)</td>
                <td align="center" valign="middle" >12,547</td>
                <td align="center" valign="middle" >11123</td>
                <td align="center" valign="middle" >(2847, 24,111)</td>
                <td align="center" valign="middle" >4.239</td>
                <td align="center" valign="middle" >0.068</td>
                <td align="center" valign="middle" >0.032</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-551</td>
                <td align="center" valign="middle" >(4, 3728)</td>
                <td align="center" valign="middle" >3119</td>
                <td align="center" valign="middle" >1440</td>
                <td align="center" valign="middle" >(33,896, 38,549)</td>
                <td align="center" valign="middle" >0.289</td>
                <td align="center" valign="middle" >0.011</td>
                <td align="center" valign="middle" >0.008</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Anomalous</td>
                <td align="center" valign="middle" >(378, 6853)</td>
                <td align="center" valign="middle" >211</td>
                <td align="center" valign="middle" >104</td>
                <td align="center" valign="middle" >(49,646, 42,661)</td>
                <td align="center" valign="middle" >0.014</td>
                <td align="center" valign="middle" >0.002</td>
                <td align="center" valign="middle" >0.004</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >BN(2,254)</td>
                <td align="center" valign="middle" >(61, 4601)</td>
                <td align="center" valign="middle" >1021</td>
                <td align="center" valign="middle" >319</td>
                <td align="center" valign="middle" >(16,955, 40,535)</td>
                <td align="center" valign="middle" >0.237</td>
                <td align="center" valign="middle" >0.006</td>
                <td align="center" valign="middle" >0.004</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >BrainpollP256t1</td>
                <td align="center" valign="middle" >(16, 25,549)</td>
                <td align="center" valign="middle" >25,057</td>
                <td align="center" valign="middle" >23719</td>
                <td align="center" valign="middle" >(5992, 11700)</td>
                <td align="center" valign="middle" >9.736</td>
                <td align="center" valign="middle" >0.085</td>
                <td align="center" valign="middle" >0.022</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve1174</td>
                <td align="center" valign="middle" >(26, 44,099)</td>
                <td align="center" valign="middle" >4549</td>
                <td align="center" valign="middle" >4345</td>
                <td align="center" valign="middle" >(929, 5479)</td>
                <td align="center" valign="middle" >1.864</td>
                <td align="center" valign="middle" >0.04</td>
                <td align="center" valign="middle" >0.026</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-222</td>
                <td align="center" valign="middle" >(184, 13,447)</td>
                <td align="center" valign="middle" >701</td>
                <td align="center" valign="middle" >552</td>
                <td align="center" valign="middle" >(45,080, 196)</td>
                <td align="center" valign="middle" >0.096</td>
                <td align="center" valign="middle" >0.006</td>
                <td align="center" valign="middle" >0.005</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-382</td>
                <td align="center" valign="middle" >(16, 2607)</td>
                <td align="center" valign="middle" >4999</td>
                <td align="center" valign="middle" >4913</td>
                <td align="center" valign="middle" >(20,242, 13,648)</td>
                <td align="center" valign="middle" >1.25</td>
                <td align="center" valign="middle" >0.027</td>
                <td align="center" valign="middle" >0.009</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-521</td>
                <td align="center" valign="middle" >(280, 28,472)</td>
                <td align="center" valign="middle" >991</td>
                <td align="center" valign="middle" >831</td>
                <td align="center" valign="middle" >(18,354, 4898)</td>
                <td align="center" valign="middle" >0.158</td>
                <td align="center" valign="middle" >0.008</td>
                <td align="center" valign="middle" >0.005</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Ed448-Goldilocks</td>
                <td align="center" valign="middle" >(694, 9865)</td>
                <td align="center" valign="middle" >499</td>
                <td align="center" valign="middle" >99</td>
                <td align="center" valign="middle" >(911, 12,900)</td>
                <td align="center" valign="middle" >0.012</td>
                <td align="center" valign="middle" >0.002</td>
                <td align="center" valign="middle" >0.006</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-383</td>
                <td align="center" valign="middle" >(76, 7159)</td>
                <td align="center" valign="middle" >349</td>
                <td align="center" valign="middle" >252</td>
                <td align="center" valign="middle" >(46,426, 38,837)</td>
                <td align="center" valign="middle" >0.036</td>
                <td align="center" valign="middle" >0.004</td>
                <td align="center" valign="middle" >0.004</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >NIST P-224</td>
                <td align="center" valign="middle" >(78, 4999)</td>
                <td align="center" valign="middle" >1931</td>
                <td align="center" valign="middle" >1703</td>
                <td align="center" valign="middle" >(10,585, 26,862)</td>
                <td align="center" valign="middle" >0.356</td>
                <td align="center" valign="middle" >0.012</td>
                <td align="center" valign="middle" >0.004</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>Remarks:</p>
        <p>1) For all curves defined on the field, the private key is stolen in a very short time. Fact expected due to the small size of the Galois field and the limited base point options.</p>
        <p>2) Some curves like Curve1174 and Ed448-Goldilocks show much longer resistance against the Brute force method. However, all curves succumb almost immediately to Baby-giant step and Pollard’s rho attacks. The reason is their search model and quick verification of the corresponding ECDLP solution.</p>
        <p>3) The higher the n order of the subgroup of the base point P, the larger the d private key created. For the public key Q this is not observed. In all cases where a large private d key is observed, the times for all the model-based methods are comparatively much longer than for other elliptic curves for which the subgroup order n gives small-sized private keys.</p>
        <p>4) The theory of the complexity of the Pohlig-Hellman algorithm is verified as to the difficulty of solving the ECDLP problem for large orders n of subgroups, and therefore the ECDSA algorithm’s durability.</p>
        <p>
          Correspondingly, for the Galois Field F<sub>100153</sub> the results of the survey are displayed in <xref ref-type="table" rid="table3">Table 3</xref>.
        </p>
        <p>
          Corresponding observations with field results F<sub>50101</sub> also arise here. By comparing the tables, we also observe:
        </p>
        <p>1) For elliptic curves such as secp256k1 and Curve1174 when doubling the Galois field there is a longer tolerance for the Brute force method only. The other smarter methods used to steal the private key consume almost equal times.</p>
        <table-wrap id="table3" >
          <label>
            <xref ref-type="table" rid="table3">Table 3</xref>
          </label>
          <caption>
            <title> Applying all model based methods in the above-mentioned curves on F50101 Galois field</title>
          </caption>
          <table>
            <tbody>
              <thead>
                <tr>
                  <th align="center" valign="middle"  colspan="8"  >
                    Galois Field F<sub>100153</sub>
                  </th>
                </tr>
              </thead>
              <tr>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle" ></td>
                <td align="center" valign="middle"  colspan="3"  >Method (Time in sec)</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve</td>
                <td align="center" valign="middle" >Base Point P</td>
                <td align="center" valign="middle" >Order n</td>
                <td align="center" valign="middle" >Private Key d</td>
                <td align="center" valign="middle" >Public Key Q</td>
                <td align="center" valign="middle" >Brute Force</td>
                <td align="center" valign="middle" >Baby-Giant Step</td>
                <td align="center" valign="middle" >Pollard’s rho</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >secp256k1</td>
                <td align="center" valign="middle" >(149, 62,878)</td>
                <td align="center" valign="middle" >1933</td>
                <td align="center" valign="middle" >1360</td>
                <td align="center" valign="middle" >(4678, 2942)</td>
                <td align="center" valign="middle" >0.446</td>
                <td align="center" valign="middle" >0.013</td>
                <td align="center" valign="middle" >0.009</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve25519</td>
                <td align="center" valign="middle" >(2318, 11,352)</td>
                <td align="center" valign="middle" >179</td>
                <td align="center" valign="middle" >102</td>
                <td align="center" valign="middle" >(69,082, 18,748)</td>
                <td align="center" valign="middle" >0.022</td>
                <td align="center" valign="middle" >0.003</td>
                <td align="center" valign="middle" >0.003</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve383187</td>
                <td align="center" valign="middle" >(1258, 2668)</td>
                <td align="center" valign="middle" >733</td>
                <td align="center" valign="middle" >701</td>
                <td align="center" valign="middle" >(79,043, 21,484)</td>
                <td align="center" valign="middle" >0.17</td>
                <td align="center" valign="middle" >0.008</td>
                <td align="center" valign="middle" >0.006</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-221</td>
                <td align="center" valign="middle" >(1843, 70,129)</td>
                <td align="center" valign="middle" >107</td>
                <td align="center" valign="middle" >100</td>
                <td align="center" valign="middle" >(64,009, 10,304)</td>
                <td align="center" valign="middle" >0.013</td>
                <td align="center" valign="middle" >0.002</td>
                <td align="center" valign="middle" >0.003</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-551</td>
                <td align="center" valign="middle" >(2115, 86,231)</td>
                <td align="center" valign="middle" >271</td>
                <td align="center" valign="middle" >101</td>
                <td align="center" valign="middle" >(44,889, 47,472)</td>
                <td align="center" valign="middle" >0.021</td>
                <td align="center" valign="middle" >0.003</td>
                <td align="center" valign="middle" >0.005</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Anomalous</td>
                <td align="center" valign="middle" >(2995, 96,951)</td>
                <td align="center" valign="middle" >43</td>
                <td align="center" valign="middle" >40</td>
                <td align="center" valign="middle" >(61381, 17502)</td>
                <td align="center" valign="middle" >0.004</td>
                <td align="center" valign="middle" >0.001</td>
                <td align="center" valign="middle" >0.001</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >BN(2, 254)</td>
                <td align="center" valign="middle" >(240, 321)</td>
                <td align="center" valign="middle" >1231</td>
                <td align="center" valign="middle" >994</td>
                <td align="center" valign="middle" >(57435, 36387)</td>
                <td align="center" valign="middle" >0.294</td>
                <td align="center" valign="middle" >0.008</td>
                <td align="center" valign="middle" >0.004</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >BrainpollP256t1</td>
                <td align="center" valign="middle" >(2368, 5807)</td>
                <td align="center" valign="middle" >83</td>
                <td align="center" valign="middle" >61</td>
                <td align="center" valign="middle" >(46,066, 25,833)</td>
                <td align="center" valign="middle" >0.004</td>
                <td align="center" valign="middle" >0.001</td>
                <td align="center" valign="middle" >0.001</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Curve1174</td>
                <td align="center" valign="middle" >(8, 93683)</td>
                <td align="center" valign="middle" >99551</td>
                <td align="center" valign="middle" >96542</td>
                <td align="center" valign="middle" >(15,179, 6830)</td>
                <td align="center" valign="middle" >66.859</td>
                <td align="center" valign="middle" >0.231</td>
                <td align="center" valign="middle" >0.086</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-222</td>
                <td align="center" valign="middle" >(3, 98740)</td>
                <td align="center" valign="middle" >1229</td>
                <td align="center" valign="middle" >781</td>
                <td align="center" valign="middle" >(77,951, 68,281)</td>
                <td align="center" valign="middle" >0.274</td>
                <td align="center" valign="middle" >0.013</td>
                <td align="center" valign="middle" >0.01</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-382</td>
                <td align="center" valign="middle" >(785, 3790)</td>
                <td align="center" valign="middle" >148</td>
                <td align="center" valign="middle" >148</td>
                <td align="center" valign="middle" >(65,000, 4657)</td>
                <td align="center" valign="middle" >0.029</td>
                <td align="center" valign="middle" >0.004</td>
                <td align="center" valign="middle" >0.006</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >E-521</td>
                <td align="center" valign="middle" >(858, 16,707)</td>
                <td align="center" valign="middle" >893</td>
                <td align="center" valign="middle" >760</td>
                <td align="center" valign="middle" >(82,041, 45,996)</td>
                <td align="center" valign="middle" >0.186</td>
                <td align="center" valign="middle" >0.009</td>
                <td align="center" valign="middle" >0.005</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >Ed448-Goldilocks</td>
                <td align="center" valign="middle" >(6, 85,750)</td>
                <td align="center" valign="middle" >50021</td>
                <td align="center" valign="middle" >35057</td>
                <td align="center" valign="middle" >(77,073, 78,269)</td>
                <td align="center" valign="middle" >12.331</td>
                <td align="center" valign="middle" >0.105</td>
                <td align="center" valign="middle" >0.031</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >M-383</td>
                <td align="center" valign="middle" >(22, 72,669)</td>
                <td align="center" valign="middle" >6229</td>
                <td align="center" valign="middle" >6161</td>
                <td align="center" valign="middle" >(60,238, 81,175)</td>
                <td align="center" valign="middle" >1.678</td>
                <td align="center" valign="middle" >0.033</td>
                <td align="center" valign="middle" >0.009</td>
              </tr>
              <tr>
                <td align="center" valign="middle" >NIST P-224</td>
                <td align="center" valign="middle" >(3079, 50,355)</td>
                <td align="center" valign="middle" >229</td>
                <td align="center" valign="middle" >174</td>
                <td align="center" valign="middle" >(25,906, 3547)</td>
                <td align="center" valign="middle" >0.024</td>
                <td align="center" valign="middle" >0.003</td>
                <td align="center" valign="middle" >0.002</td>
              </tr>
            </tbody>
          </table>
        </table-wrap>
        <p>2) On the contrary, for curves such as BrainpollP256t1 and M-221, doubling the field made them more vulnerable even to the Brute force method. For the other two methods, we observe as expected very short times.</p>
        <p>At the diagram level, the times for all the model-based methods for the elliptical curves Curve1174, M-221, NIST P-224, secp256k1 are displayed in Graph 1.</p>
        <p>Likewise the diagram level and the time tolerance for all the model-based methods for the elliptical curves Brainpoll256t1 and Anomalous are displayed in Graph 2.</p>
        <p>Important Note: You may wonder why search for candidate base points P takes many hours, while model-based attacks squeeze the private key d in much shorter times. It is sufficient to consider that the equations of the elliptic curves we chose are very large, which delays the finding of E ( F p ) points starting from a absolutely random point search in combination with the integer division defined in the Galois field. In addition, the order n check performed at each such point further delays the whole process. On the contrary, solving the Q = d ⋅ P equation of the ECDLP for calculating d takes place much faster, since the public keys Q and the base point P are known to all users of any platform.</p>
        <p>Study of d private keys</p>
        <p>The private key d is clearly the most important building block of a transaction taking place at Bitcoin. For this reason, it is the target of potential hackers who,</p>
        <disp-formula id="scirp.92905-formula1">
          <graphic  xlink:href="//html.scirp.org/file/92905x178.png"  xlink:type="simple"/>
        </disp-formula>
        <p>Graph 1. Tolerance of secp256k1, NIST P-224, M-221 and Curve1174 against all model based attacks on both Galois fields.</p>
        <p>use one of the above-mentioned model-based methods of attack or their variants, seek to steal it within a reasonable period of time. Ownership of a user’s account is determined by who knows the private key, i.e. it controls the account. For this reason, users should never disclose or make public their private keys, because their theft has irreversible consequences. The ECDSA algorithm, which takes into account the developer-defined structural parameters, is responsible for creating the private keys and, consequently, for the security of the system.</p>
        <p>Below we study cases of making private keys from the algorithm for some elliptic curves from those we studied in the Galois field F 100153 . By maintaining specific domain parameters, such as the base point P and the order n of the subgroup, we have studied the impact on the production of private keys. Note that</p>
        <disp-formula id="scirp.92905-formula2">
          <graphic  xlink:href="//html.scirp.org/file/92905x180.png"  xlink:type="simple"/>
        </disp-formula>
        <p>Graph 2. Tolerance of BrainpollP256t1 and Anomalous against all model based attacks on the Galois fields.</p>
        <p>these results are the outcome of great search in all above-mentioned elliptic curves. The following were chosen because of their representative image for the purpose of the survey, but this did not mean that there were no alternatives.</p>
        <p>Note: Usually for the same domain parameters, the ECDSA algorithm allows code-level creation of many private keys that serve the same needs with the same efficiency. This is most common for huge Galois fields.</p>
        <p>In the first phase, we defined the E elliptic curve M-383 according to the formula:</p>
        <p>E : y 2 = x 3 + 2065150 ⋅ x 2 + x     with   x ∈ ℝ ,</p>
        <p>
          In the finite Galois field mentioned, maintaining the base point P ( 22 , 72669 ) stable, for which a subgroup of points of the curve with order n = 6229 is created, a value which is objectively large prime number in relation to the field. Below in <xref ref-type="table" rid="table4">Table 4</xref> are indicative results in tabular form:
        </p>
        <p>We notice that with the creation of three different key pairs ( Q , d ) , as the size of the private key increases, the algorithm’s “resistance” to model-based attacks increases, with the exception of Pollard rho. Corresponding picture is observed in all elliptic curves of the survey.</p>
        <p>Diagramically, the stealing times are plotted per model-based method in Graph 3.</p>
        <p>Conclusion: From an algorithm perspective, it is possible to improve the security of a user’s account by generating a large-sized private key. This security involves model-based methods such as Brute force and the Baby-giant step and variations thereof. Pollard rho does not appear to be affected to some extent. Finally, the size of the public key does not affect the results at all.</p>
        <p>Two further elliptic curves, Curve1174 and BrainpollP256t1, were then studied. Their equations are:</p>
        <p>y 2 = x 3 − 28486 ⋅ x + 1926947 &amp; y 2 ≅ x 3 − 3 ⋅ x + 4.621 ⋅ 10 76 , x ∈ ℝ</p>
        
          </sec>
       </sec>
      </body>
            
            <back>
          <ref-list>
            <title>References</title>
            <ref id="scirp.92905-ref1">
              <label>1</label>
              <mixed-citation publication-type="other" xlink:type="simple">Secp256k1. https://en.bitcoin.it/wiki/Secp256k1</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref2">
              <label>2</label>
              <mixed-citation publication-type="other" xlink:type="simple">Lange, T. and Bernstein, D.J. (2013) SafeCurves: Choosing Safe Curves for Elliptic-Curve Cryptography. https://safecurves.cr.yp.to/refs.html</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref3">
              <label>3</label>
              <mixed-citation publication-type="other" xlink:type="simple">Entropy (Information Theory). https://en.wikipedia.org/wiki/Entropy_(information_theory)</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref4">
              <label>4</label>
              <mixed-citation publication-type="other" xlink:type="simple">Narayanan, A., Bonneau, J., Felten, E., Miller, A. and Goldfender, S. (2015) Bitcoin and Cryptocurrency Technologies. Princeton University, Princeton, NJ.</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref5">
              <label>5</label>
              <mixed-citation publication-type="other" xlink:type="simple">Johnson, D., Menezes, A. and Vanstone, S. (2001) The Elliptic Curve Digital Signature Algorithm (ECDSA). Department of Combinatorics &amp; Optimization, University of Waterloo. http://www.cs.miami.edu/home/burt/learning/Csc609.142/ecdsa-cert.pdf</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref6">
              <label>6</label>
              <mixed-citation publication-type="other" xlink:type="simple">Silverman, J.H. (2006) An Introduction to the Theory of Elliptic Curves. Brown University and NTRU Cryptosystems, Inc. https://www.math.brown.edu/~jhs/Presentations/WyomingEllipticCurve.pdf</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref7">
              <label>7</label>
              <mixed-citation publication-type="other" xlink:type="simple">Benvenuto, C.J. (2012) Galois Field in Cryptography. https://sites.math.washington.edu/~morrow/336_12/papers/juan.pdf</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref8">
              <label>8</label>
              <mixed-citation publication-type="other" xlink:type="simple">Edward Curve. https://en.wikipedia.org/wiki/Edwards_curve</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref9">
              <label>9</label>
              <mixed-citation publication-type="other" xlink:type="simple">Hasse’s Theorem on Elliptic Curves.https://en.wikipedia.org/wiki/Hasse%27s_theorem_on_elliptic_curves</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref10">
              <label>10</label>
              <mixed-citation publication-type="other" xlink:type="simple">Rational Point. https://en.wikipedia.org/wiki/Rational_point</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref11">
              <label>11</label>
              <mixed-citation publication-type="other" xlink:type="simple">Rykwalder, E. (2014) The Math Behind Bitcoin.https://www.coindesk.com/math-behind-bitcoin/</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref12">
              <label>12</label>
              <mixed-citation publication-type="other" xlink:type="simple">Corbellini, A. (2015) Elliptic Curve Cryptography: A Gentle Introduction. http://andrea.corbellini.name/2015/05/17/elliptic-curve-cryptography-a-gentle-introduction/</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref13">
              <label>13</label>
              <mixed-citation publication-type="other" xlink:type="simple">Kha-lique, A., Sood, S. and Singh, K. (2010) Implementation of Elliptic Curve Digital Signature Algorithm. Internatuonal Journal of Computer Applications, 2, No. 2. http://www.ijcaonline.org/volume2/number2/pxc387876.pdf</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref14">
              <label>14</label>
              <mixed-citation publication-type="other" xlink:type="simple">Corbellini, A. (2015) Elliptic Curve Cryptography: Breaking Security and a Comparison with RSA. http://andrea.corbellini.name/2015/06/08/elliptic-curve-cryptography-breaking-security-and-a-comparison-with-rsa/</mixed-citation>
            </ref>
            <ref id="scirp.92905-ref15">
              <label>15</label>
              <mixed-citation publication-type="other" xlink:type="simple">Qubd (2017) https://github.com/qubd/mini_ecdsa/blob/master/mini_ecdsa.py</mixed-citation>
            </ref>
          </ref-list>
        </back>
</article>