elliptic-curves-fq


Nameelliptic-curves-fq JSON
Version 2.2.0 PyPI version JSON
download
home_pagehttps://github.com/HaKa04/package-elliptic-curves-fq
SummaryECC Library
upload_time2024-03-17 13:41:06
maintainer
docs_urlNone
authorKaspar Hui
requires_python
licenseMIT
keywords python ecc finite fields
VCS
bugtrack_url
requirements numpy
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Bibliothek zur Aritmetik elliptischer Kurven

## Beschreibung :pencil:
Diese Bibliothek bietet Funktionalitaeten fuer elliptische Kurven ueber endlichen Koerpern $F_{p^n}$. Sie ermoeglicht unter anderem Berechnungen auf elliptischen Kurven.

## Verwendung :computer:
Um die Funktionalitaeten dieser Bibliothek zu nutzen, koennen Sie die folgenden Schritte ausfuehren:

1. **Installation :inbox_tray::**
   Sie koennen die elliptische Kurven Bibliothek mit pip installieren:

   ```sh
   pip install elliptic-curves-fq
   ```

2. **Importieren des Paketetes:**
   Hier wird gezeigt, wie man die Bibliothek verwenden kann. 

   ```python
   # Erforderliche Module importieren
   import elliptic_curves_fq
   ```

3. **Klassen, Funktionen und ihre Verwendungen :gear::**
   - **start_point** Stellt den Startpunkt der sicheren elliptischen Kurve über dem schnell implementierten Körper $F_{47^{46}}$ mit integrierter Aretmetik.
     ```python
     from elliptic_curves_fq import start_point
     # Beispielcode fuer start_point
     Startpunkt = start_point()
     print(Startpunkt.on_Curve())
     privater_Schlüssel = 1000000
     öffentlicher_Schlüssel = Startpunkt * privater_Schlüssel
     test = öffentlicher_Schlüssel + Startpunkt
     ```
     
   - **Fp:** Stellt ein endlichen Koerper $F_p$ bereit und unterstuetzt arithmetische Operationen wie Addition, Subtraktion, Multiplikation, Division und Potenzieren durch Ueberschreiben der vorhandenen Operationen von Python. 

     - **Parameter:**
       - `element` (int): Ein Element im endlichen Koerper.
       - `p` (int): Eine Primzahl, die den endlichen Koerper definiert.

     ```python
     from elliptic_curves_fq import Fp
     # Beispielcode fuer Fp
     p = 23
     element = Fp(7, p)
     print(element)  # Ausgabe: 7
     print(element + 20) # Ausgabe 4
     print(element - 10) # Ausgabe 20
     print(element ** 2) # Ausgabe 3
     ```
   - **get_irreductible_polynomial:** Generiert ein irreduziblen Polynoms ueber einem endlichen Koerper $F_{p}$.

     - **Parameter:**
       - `p` (int): Die Primzahl, die den endlichen Koerper definiert.
       - `n` (int): Der Grad des Polynoms.

     ```python
     from elliptic_curves_fq import get_irreductible_polynomial
     # Beispielcode fuer get_irreductible_polynomial
     p = 17
     n = 3
     poly, attempts = get_irreductible_polynomial(p, n)
     print(poly)  # Ausgabe: [1, 7, 1, 10]
     print(attempts)  # Ausgabe: 3 (Anzahl der Versuche, die benoetigt wurden, um das irreduzible Polynom zu generieren.)
     ```

   - **Fpn:** Ermoeglicht das Rechnen mit endlichen Koerpern $F_{p^n}$ und bietet Methoden wie Addition, Subtraktion, Multiplikation, Division und Potenzieren durch Ueberschreiben der vorhandenen Operationen von Python.

     - **Parameter:**
       - `p` (int): Eine Primzahl, die $F_p$ definiert.
       - `irreducible_poly` (list): Ein irreduzibles Polynom ueber diesem Koerper. Definiert den Koerper $F_{p^n}$ 
       - `element` (list): Ein Element von $F_{p^n}$.

     ```python
     from elliptic_curves_fq import Fpn
     # Beispielcode fuer Fpn
     p = 17
     irreducible_poly = [1, 1, 1, 2]  
     element = Fpn(p, irreducible_poly, [1, 2, 3]) 
     print(element)  # Ausgabe: [1, 2, 3]
     print(element + [5,4,3]) #Ausgabe [6, 6, 6]
     print(element * [2,1,3]) #Ausgabe [6, 2, 3]
     print(element ** 5) #Ausgabe [6, 7, 12]
     ```

   - **curve:** Ermoeglicht die Arbeit mit elliptischen Kurven ueber endlichen Koerpern $F_{p}$. Eine elliptische Kurve hat die folgende Form $$y^2 = x^3 + ax + b$$

     - **Parameter:**
       - `a` (int): Der Koeffizient 'a' der elliptischen Kurve.
       - `b` (int): Der Koeffizient 'b' der elliptischen Kurve.
       - `p` (int): Eine Primzahl, die den endlichen Koerper definiert.
       - `start_point` (list[int,int]): Ein Startpunkt auf der elliptischen Kurve.
       - `ord` (int): Die Ordnung der Kurve. Wenn die Ordnung nicht bestummen wurde: None
     - Die Koeffizienten a und b werden direkt zu Objekten der Klasse Fp gemacht. 

     ```python
     from elliptic_curves_fq import curve
     # Beispielcode fuer curve
     p = 17
     a = 12  
     b = 6  
     start_point = [8,11]  
     curve = curve(a, b, p, start_point, None)
     print(curve)  # Ausgabe: curve( a = 12, b = 6, p = 17, Startpoint = (8, 11), ord = None)
     ```

   - **curve_Fpn:** Ermoeglicht die Arbeit mit elliptischen Kurven ueber endlichen Koerpern $F_{p^n}$. 

     - **Parameter:**
       - `a` (list): Der Koeffizient 'a' der elliptischen Kurve.
       - `b` (list): Der Koeffizient 'b' der elliptischen Kurve.
       - `p` (int): Eine Primzahl, die die Basis fuer den endlichen Koerper $F_p$ ist.
       - `irreducible_poly` (list): Ein irreduzibles Polynom ueber $F_p$ , welches den Koerper $F_{p^n}$ definiert.
       - `start_point` (list[list,list]): Ein Startpunkt auf der elliptischen Kurve.
       - `ord` (int): Die Ordnung der Kurve.
     - Die Koeffizienten a und b werden direkt zu Objekten der Klasse Fpn gemacht.
     ```python
     from elliptic_curves_fq import curve_Fpn
     # Beispielcode fuer curve_Fpn
     p = 17
     irreducible_poly = [1, 1, 1, 2]  
     a = [1, 12, 8]  
     b = [2, 7, 6]  
     start_point = [[9, 10, 11],[7, 2, 4]]  
     curve = curve_Fpn(a, b, p, irreducible_poly, start_point, None)
     print(curve)  # Ausgabe: curve_Fpn( a = [1, 12, 8], b =[2, 7, 6], p = 17, ir_poly = [1, 1, 1, 2], Startpoint = ([9, 10, 11], [7, 2, 4]), ord = None)
     ```

   - **get_random_curve :game_die::** Ermoeglicht das Erstellen einer neuen zufaelligen Kurve. 

     - **Parameter:**
       - `p` (int): Eine Primzahl, die den endlichen Koerper definiert.
       - `degree` (int): Der Grad des irreduziblen Polynom fuer die Kurve.
       - `should_print` (bool): Ein Parameter, der bestimmt, ob die Kurve gedruckt werden soll.

     ```python
     from elliptic_curves_fq import get_randomcurve
     # Beispielcode fuer get_random_curve
     p = 17
     degree = 7
     get_randomcurve(p,degree) # Ausgabe unter anderem: Kurve wurde erfolgreich generiert. Hier die Kurve um abzuspeichern. 
     # Kurve = curve_Fpn([15, 5, 14, 5, 3, 10, 16],[11, 10, 7, 8, 13, 4, 4],17,[1, 6, 14, 13, 4, 8, 13, 8],[[10, 15, 9, 13, 7, 2, 6],[6, 0, 12, 15, 2, 1, 12]],None)
     curve = get_randomcurve(p,degree,should_print=False)
     start_point = curve.startpoint 
     ```

   - **Points:** Ermoeglicht die Arithmetik elliptischer Kurve und unterstuetzt Operationen wie Punktaddition, Punktvervielfachung und andere Funktionen im Kontext elliptischer Kurven. 

     - **Parameter:**
       - `curve` (object): Die elliptische Kurve, mit der der Punkt verbunden ist.
       - `point` (list): Ein Punkt auf der elliptischen Kurve.
     - Der Attribute x und y vom Punkt werden direkt in Objekte der Klassen Fp respektive Fpn umgewandelt.
     ```python
     from elliptic_curves_fq import Points, curve_Fpn

     curve = curve_Fpn([1, 12, 8], [2, 7, 6], 17, [1, 1, 1, 2], [[9, 10, 11],[7, 2, 4]], None)  # Beispielkurve
     point = curve.startpoint 
     point2 = Points([[3, 12, 16], [1, 4, 13]],curve) 

     print(point)  # Ausgabe: ([9, 10, 11], [7, 2, 4])
     print(point2) # Ausgabe: ([3, 12, 16],[1, 4, 13])
     print(point + point2 ) # Ausgabe ([12, 8, 1], [1, 0, 5])
     print(point * 3500) #Ausgabe ([8, 8, 2], [11, 11, 2])
     ```
   - **main_schoof :** Zur Bestimmer Anzahl der Punkten auf einer bestimmten Kurve über dem Koerper $F_{47^{46}}$

     - **Parameter:**
       - `a` (numpy array): Paramter a der Kurve
       - `b` (numpy array): Paramter a der Kurve
       - `x` (numpy array): x Koordinate eines Puntes auf der Kurve
       - `y` (numpy array): y Koordinate eines Puntes auf der Kurve
       - cores (int): Zur verfügung stehenden Cores zur paralelisierung. 8 reichen für die maximale Geschwindigkeit.
     ```python
     from elliptic_curves_fq import get_randomcurve, fast_schooftest_multy_process
     import numpy as np
     q = 47**46
     Curve = get_randomcurve(47,[1]+ [0]*45 + [2])
     a = np.array(Curve.a.value,dtype=int)
     b = np.array(Curve.b.value,dtype=int)
     x = np.array(Curve.startpoint.x.value,dtype=int)
     y = np.array(Curve.startpoint.y.value,dtype=int)
     print(fast_schooftest_multy_process.main_schoof(a,b,x,y,8))
     ```

   - **Gespeicherte Kurven :floppy_disk::**
   Ich stelle Kurven zur Verfuegung, damit nicht immer eine neue ertsellt werden muss. Alle Kurven bis auf die Kurve P_192 wurden von mir generiert. 
      - **P_192:** Sichere NIST-Kurve ueber Fp mit p ungefaehr 2^192
      - **FBillionPowerTo20:** Eigene Kurve ueber $F(p^n)$ mit p ungefaehr 1 Billion und n = 20.
      - **P991:** Eigene Kurve ueber $F(991^3)$. Die Parameter sind zufaellig.
      - **P23:** Eigene Kurve ueber $F(23^3)$. Die Parameter sind zufaellig.
      - **ord353:** Eigene Kurve ueber $F(7^3)$. Die Ordnung der elliptischen Kurve ist 353 und somit prim. Jeder Punkt ist ein Generator.
      - **testcurvemod5:** Eigene Kurve ueber $F(5^3)$.
      - **kurzmod5:** Eigene kleinste moegliche Kurve ueber $F(5^2)$.
      - **Ascii:** Eigene Kurve ueber $F(131^8)$.
      - **ten_power_12_power_150:** Eine spezielle Kurve mit extrem hohen Werten mit p ungefaehr 1 Billion und n = 150

    Die Kurven sind als Funktionen abgespeichert. Jede Funktion hier hat kein Argument, und man erhaelt die zugehoerige Kurve.
     ```python
     from elliptic_curves_fq import ord353
     #Beispiel Code
     Kurve = ord353()
     startpunkt = Kurve.startpoint
     ```

5. **Weitere Informationen :page_facing_up::**
   - Die vollstaendige Dokumentation fuer die Bibliothek finden Sie in meinem [GitHub](https://github.com/HaKa04/package-elliptic-curves-fq) Account im Odrner docs. 
   
## License :scroll:
Dieses Projekt steht unter der MIT License - Sehen sie unter LICENSE fuer Details nach.

Ich hoffe, dass Sie diese Bibliothek nuetzlich finden. Bitte zoegern Sie nicht, bei Fragen oder Anregungen mich unter kaspar.hui@gmail.com zu kontaktieren.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/HaKa04/package-elliptic-curves-fq",
    "name": "elliptic-curves-fq",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "python,ECC,Finite Fields",
    "author": "Kaspar Hui",
    "author_email": "<kaspar.hui@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/4d/f1/7d46ee5473736fdd94ce7411ce963a4eaed2f65042f9c052fe4ff8aa4a5c/elliptic_curves_fq-2.2.0.tar.gz",
    "platform": null,
    "description": "# Bibliothek zur Aritmetik elliptischer Kurven\r\n\r\n## Beschreibung :pencil:\r\nDiese Bibliothek bietet Funktionalitaeten fuer elliptische Kurven ueber endlichen Koerpern $F_{p^n}$. Sie ermoeglicht unter anderem Berechnungen auf elliptischen Kurven.\r\n\r\n## Verwendung :computer:\r\nUm die Funktionalitaeten dieser Bibliothek zu nutzen, koennen Sie die folgenden Schritte ausfuehren:\r\n\r\n1. **Installation :inbox_tray::**\r\n   Sie koennen die elliptische Kurven Bibliothek mit pip installieren:\r\n\r\n   ```sh\r\n   pip install elliptic-curves-fq\r\n   ```\r\n\r\n2. **Importieren des Paketetes:**\r\n   Hier wird gezeigt, wie man die Bibliothek verwenden kann. \r\n\r\n   ```python\r\n   # Erforderliche Module importieren\r\n   import elliptic_curves_fq\r\n   ```\r\n\r\n3. **Klassen, Funktionen und ihre Verwendungen :gear::**\r\n   - **start_point** Stellt den Startpunkt der sicheren elliptischen Kurve \u00c3\u00bcber dem schnell implementierten K\u00c3\u00b6rper $F_{47^{46}}$ mit integrierter Aretmetik.\r\n     ```python\r\n     from elliptic_curves_fq import start_point\r\n     # Beispielcode fuer start_point\r\n     Startpunkt = start_point()\r\n     print(Startpunkt.on_Curve())\r\n     privater_Schl\u00c3\u00bcssel = 1000000\r\n     \u00c3\u00b6ffentlicher_Schl\u00c3\u00bcssel = Startpunkt * privater_Schl\u00c3\u00bcssel\r\n     test = \u00c3\u00b6ffentlicher_Schl\u00c3\u00bcssel + Startpunkt\r\n     ```\r\n     \r\n   - **Fp:** Stellt ein endlichen Koerper $F_p$ bereit und unterstuetzt arithmetische Operationen wie Addition, Subtraktion, Multiplikation, Division und Potenzieren durch Ueberschreiben der vorhandenen Operationen von Python. \r\n\r\n     - **Parameter:**\r\n       - `element` (int): Ein Element im endlichen Koerper.\r\n       - `p` (int): Eine Primzahl, die den endlichen Koerper definiert.\r\n\r\n     ```python\r\n     from elliptic_curves_fq import Fp\r\n     # Beispielcode fuer Fp\r\n     p = 23\r\n     element = Fp(7, p)\r\n     print(element)  # Ausgabe: 7\r\n     print(element + 20) # Ausgabe 4\r\n     print(element - 10) # Ausgabe 20\r\n     print(element ** 2) # Ausgabe 3\r\n     ```\r\n   - **get_irreductible_polynomial:** Generiert ein irreduziblen Polynoms ueber einem endlichen Koerper $F_{p}$.\r\n\r\n     - **Parameter:**\r\n       - `p` (int): Die Primzahl, die den endlichen Koerper definiert.\r\n       - `n` (int): Der Grad des Polynoms.\r\n\r\n     ```python\r\n     from elliptic_curves_fq import get_irreductible_polynomial\r\n     # Beispielcode fuer get_irreductible_polynomial\r\n     p = 17\r\n     n = 3\r\n     poly, attempts = get_irreductible_polynomial(p, n)\r\n     print(poly)  # Ausgabe: [1, 7, 1, 10]\r\n     print(attempts)  # Ausgabe: 3 (Anzahl der Versuche, die benoetigt wurden, um das irreduzible Polynom zu generieren.)\r\n     ```\r\n\r\n   - **Fpn:** Ermoeglicht das Rechnen mit endlichen Koerpern $F_{p^n}$ und bietet Methoden wie Addition, Subtraktion, Multiplikation, Division und Potenzieren durch Ueberschreiben der vorhandenen Operationen von Python.\r\n\r\n     - **Parameter:**\r\n       - `p` (int): Eine Primzahl, die $F_p$ definiert.\r\n       - `irreducible_poly` (list): Ein irreduzibles Polynom ueber diesem Koerper. Definiert den Koerper $F_{p^n}$ \r\n       - `element` (list): Ein Element von $F_{p^n}$.\r\n\r\n     ```python\r\n     from elliptic_curves_fq import Fpn\r\n     # Beispielcode fuer Fpn\r\n     p = 17\r\n     irreducible_poly = [1, 1, 1, 2]  \r\n     element = Fpn(p, irreducible_poly, [1, 2, 3]) \r\n     print(element)  # Ausgabe: [1, 2, 3]\r\n     print(element + [5,4,3]) #Ausgabe [6, 6, 6]\r\n     print(element * [2,1,3]) #Ausgabe [6, 2, 3]\r\n     print(element ** 5) #Ausgabe [6, 7, 12]\r\n     ```\r\n\r\n   - **curve:** Ermoeglicht die Arbeit mit elliptischen Kurven ueber endlichen Koerpern $F_{p}$. Eine elliptische Kurve hat die folgende Form $$y^2 = x^3 + ax + b$$\r\n\r\n     - **Parameter:**\r\n       - `a` (int): Der Koeffizient 'a' der elliptischen Kurve.\r\n       - `b` (int): Der Koeffizient 'b' der elliptischen Kurve.\r\n       - `p` (int): Eine Primzahl, die den endlichen Koerper definiert.\r\n       - `start_point` (list[int,int]): Ein Startpunkt auf der elliptischen Kurve.\r\n       - `ord` (int): Die Ordnung der Kurve. Wenn die Ordnung nicht bestummen wurde: None\r\n     - Die Koeffizienten a und b werden direkt zu Objekten der Klasse Fp gemacht. \r\n\r\n     ```python\r\n     from elliptic_curves_fq import curve\r\n     # Beispielcode fuer curve\r\n     p = 17\r\n     a = 12  \r\n     b = 6  \r\n     start_point = [8,11]  \r\n     curve = curve(a, b, p, start_point, None)\r\n     print(curve)  # Ausgabe: curve( a = 12, b = 6, p = 17, Startpoint = (8, 11), ord = None)\r\n     ```\r\n\r\n   - **curve_Fpn:** Ermoeglicht die Arbeit mit elliptischen Kurven ueber endlichen Koerpern $F_{p^n}$. \r\n\r\n     - **Parameter:**\r\n       - `a` (list): Der Koeffizient 'a' der elliptischen Kurve.\r\n       - `b` (list): Der Koeffizient 'b' der elliptischen Kurve.\r\n       - `p` (int): Eine Primzahl, die die Basis fuer den endlichen Koerper $F_p$ ist.\r\n       - `irreducible_poly` (list): Ein irreduzibles Polynom ueber $F_p$ , welches den Koerper $F_{p^n}$ definiert.\r\n       - `start_point` (list[list,list]): Ein Startpunkt auf der elliptischen Kurve.\r\n       - `ord` (int): Die Ordnung der Kurve.\r\n     - Die Koeffizienten a und b werden direkt zu Objekten der Klasse Fpn gemacht.\r\n     ```python\r\n     from elliptic_curves_fq import curve_Fpn\r\n     # Beispielcode fuer curve_Fpn\r\n     p = 17\r\n     irreducible_poly = [1, 1, 1, 2]  \r\n     a = [1, 12, 8]  \r\n     b = [2, 7, 6]  \r\n     start_point = [[9, 10, 11],[7, 2, 4]]  \r\n     curve = curve_Fpn(a, b, p, irreducible_poly, start_point, None)\r\n     print(curve)  # Ausgabe: curve_Fpn( a = [1, 12, 8], b =[2, 7, 6], p = 17, ir_poly = [1, 1, 1, 2], Startpoint = ([9, 10, 11], [7, 2, 4]), ord = None)\r\n     ```\r\n\r\n   - **get_random_curve :game_die::** Ermoeglicht das Erstellen einer neuen zufaelligen Kurve. \r\n\r\n     - **Parameter:**\r\n       - `p` (int): Eine Primzahl, die den endlichen Koerper definiert.\r\n       - `degree` (int): Der Grad des irreduziblen Polynom fuer die Kurve.\r\n       - `should_print` (bool): Ein Parameter, der bestimmt, ob die Kurve gedruckt werden soll.\r\n\r\n     ```python\r\n     from elliptic_curves_fq import get_randomcurve\r\n     # Beispielcode fuer get_random_curve\r\n     p = 17\r\n     degree = 7\r\n     get_randomcurve(p,degree) # Ausgabe unter anderem: Kurve wurde erfolgreich generiert. Hier die Kurve um abzuspeichern. \r\n     # Kurve = curve_Fpn([15, 5, 14, 5, 3, 10, 16],[11, 10, 7, 8, 13, 4, 4],17,[1, 6, 14, 13, 4, 8, 13, 8],[[10, 15, 9, 13, 7, 2, 6],[6, 0, 12, 15, 2, 1, 12]],None)\r\n     curve = get_randomcurve(p,degree,should_print=False)\r\n     start_point = curve.startpoint \r\n     ```\r\n\r\n   - **Points:** Ermoeglicht die Arithmetik elliptischer Kurve und unterstuetzt Operationen wie Punktaddition, Punktvervielfachung und andere Funktionen im Kontext elliptischer Kurven. \r\n\r\n     - **Parameter:**\r\n       - `curve` (object): Die elliptische Kurve, mit der der Punkt verbunden ist.\r\n       - `point` (list): Ein Punkt auf der elliptischen Kurve.\r\n     - Der Attribute x und y vom Punkt werden direkt in Objekte der Klassen Fp respektive Fpn umgewandelt.\r\n     ```python\r\n     from elliptic_curves_fq import Points, curve_Fpn\r\n\r\n     curve = curve_Fpn([1, 12, 8], [2, 7, 6], 17, [1, 1, 1, 2], [[9, 10, 11],[7, 2, 4]], None)  # Beispielkurve\r\n     point = curve.startpoint \r\n     point2 = Points([[3, 12, 16], [1, 4, 13]],curve) \r\n\r\n     print(point)  # Ausgabe: ([9, 10, 11], [7, 2, 4])\r\n     print(point2) # Ausgabe: ([3, 12, 16],[1, 4, 13])\r\n     print(point + point2 ) # Ausgabe ([12, 8, 1], [1, 0, 5])\r\n     print(point * 3500) #Ausgabe ([8, 8, 2], [11, 11, 2])\r\n     ```\r\n   - **main_schoof :** Zur Bestimmer Anzahl der Punkten auf einer bestimmten Kurve \u00c3\u00bcber dem Koerper $F_{47^{46}}$\r\n\r\n     - **Parameter:**\r\n       - `a` (numpy array): Paramter a der Kurve\r\n       - `b` (numpy array): Paramter a der Kurve\r\n       - `x` (numpy array): x Koordinate eines Puntes auf der Kurve\r\n       - `y` (numpy array): y Koordinate eines Puntes auf der Kurve\r\n       - cores (int): Zur verf\u00c3\u00bcgung stehenden Cores zur paralelisierung. 8 reichen f\u00c3\u00bcr die maximale Geschwindigkeit.\r\n     ```python\r\n     from elliptic_curves_fq import get_randomcurve, fast_schooftest_multy_process\r\n     import numpy as np\r\n     q = 47**46\r\n     Curve = get_randomcurve(47,[1]+ [0]*45 + [2])\r\n     a = np.array(Curve.a.value,dtype=int)\r\n     b = np.array(Curve.b.value,dtype=int)\r\n     x = np.array(Curve.startpoint.x.value,dtype=int)\r\n     y = np.array(Curve.startpoint.y.value,dtype=int)\r\n     print(fast_schooftest_multy_process.main_schoof(a,b,x,y,8))\r\n     ```\r\n\r\n   - **Gespeicherte Kurven :floppy_disk::**\r\n   Ich stelle Kurven zur Verfuegung, damit nicht immer eine neue ertsellt werden muss. Alle Kurven bis auf die Kurve P_192 wurden von mir generiert. \r\n      - **P_192:** Sichere NIST-Kurve ueber Fp mit p ungefaehr 2^192\r\n      - **FBillionPowerTo20:** Eigene Kurve ueber $F(p^n)$ mit p ungefaehr 1 Billion und n = 20.\r\n      - **P991:** Eigene Kurve ueber $F(991^3)$. Die Parameter sind zufaellig.\r\n      - **P23:** Eigene Kurve ueber $F(23^3)$. Die Parameter sind zufaellig.\r\n      - **ord353:** Eigene Kurve ueber $F(7^3)$. Die Ordnung der elliptischen Kurve ist 353 und somit prim. Jeder Punkt ist ein Generator.\r\n      - **testcurvemod5:** Eigene Kurve ueber $F(5^3)$.\r\n      - **kurzmod5:** Eigene kleinste moegliche Kurve ueber $F(5^2)$.\r\n      - **Ascii:** Eigene Kurve ueber $F(131^8)$.\r\n      - **ten_power_12_power_150:** Eine spezielle Kurve mit extrem hohen Werten mit p ungefaehr 1 Billion und n = 150\r\n\r\n    Die Kurven sind als Funktionen abgespeichert. Jede Funktion hier hat kein Argument, und man erhaelt die zugehoerige Kurve.\r\n     ```python\r\n     from elliptic_curves_fq import ord353\r\n     #Beispiel Code\r\n     Kurve = ord353()\r\n     startpunkt = Kurve.startpoint\r\n     ```\r\n\r\n5. **Weitere Informationen :page_facing_up::**\r\n   - Die vollstaendige Dokumentation fuer die Bibliothek finden Sie in meinem [GitHub](https://github.com/HaKa04/package-elliptic-curves-fq) Account im Odrner docs. \r\n   \r\n## License :scroll:\r\nDieses Projekt steht unter der MIT License - Sehen sie unter LICENSE fuer Details nach.\r\n\r\nIch hoffe, dass Sie diese Bibliothek nuetzlich finden. Bitte zoegern Sie nicht, bei Fragen oder Anregungen mich unter kaspar.hui@gmail.com zu kontaktieren.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "ECC Library",
    "version": "2.2.0",
    "project_urls": {
        "Homepage": "https://github.com/HaKa04/package-elliptic-curves-fq"
    },
    "split_keywords": [
        "python",
        "ecc",
        "finite fields"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e6e04507b80f38c4eb183806647d507e1d8da3b1f5b7fc8a1627b9220f8baf66",
                "md5": "88cfcc53bf316b2e46543cbc1ad05aa2",
                "sha256": "3e86600e2d962c167648afe2399e3f2bb77a9cc744e5eb937d994c77505e8451"
            },
            "downloads": -1,
            "filename": "elliptic_curves_fq-2.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "88cfcc53bf316b2e46543cbc1ad05aa2",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 45907,
            "upload_time": "2024-03-17T13:41:04",
            "upload_time_iso_8601": "2024-03-17T13:41:04.402510Z",
            "url": "https://files.pythonhosted.org/packages/e6/e0/4507b80f38c4eb183806647d507e1d8da3b1f5b7fc8a1627b9220f8baf66/elliptic_curves_fq-2.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4df17d46ee5473736fdd94ce7411ce963a4eaed2f65042f9c052fe4ff8aa4a5c",
                "md5": "e41d0d88fa949bbf3ca0f174993b1f1a",
                "sha256": "fde84dafa94d47f427fe9914a9dd958526232559939b81b6e41c072ba708cbeb"
            },
            "downloads": -1,
            "filename": "elliptic_curves_fq-2.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e41d0d88fa949bbf3ca0f174993b1f1a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 30944,
            "upload_time": "2024-03-17T13:41:06",
            "upload_time_iso_8601": "2024-03-17T13:41:06.823942Z",
            "url": "https://files.pythonhosted.org/packages/4d/f1/7d46ee5473736fdd94ce7411ce963a4eaed2f65042f9c052fe4ff8aa4a5c/elliptic_curves_fq-2.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-17 13:41:06",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "HaKa04",
    "github_project": "package-elliptic-curves-fq",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.26.3"
                ]
            ]
        }
    ],
    "lcname": "elliptic-curves-fq"
}
        
Elapsed time: 0.21593s