Modulo C++ implementation (Diffie-Hellman-Schlüsselaustausch)

Dieses Thema im Forum "C/C++" wurde erstellt von trunksen, 01.05.2010.

  1. #1 trunksen, 01.05.2010
    trunksen

    trunksen Doppel-As

    Dabei seit:
    13.10.2006
    Beiträge:
    139
    Zustimmungen:
    0
    Ort:
    Österreich, Steiermark
    Hi!

    Also ich hoffe einmal (ich gehe fast davon aus :D ), dass einige Leute hier im

    Forum den Diffie-Hellman-Schlüsselaustausch kennen.

    Unser Professor hat uns die Aufgabe gestellt, dass sich Alice und Bob auf die Primzahl p = 113 und g = 3 einigen.
    Weiters wird m = 54 und n = 42 übertragen (in Wikipedia mit A und B bezeichnet)!

    Wir haben jetzt die Aufgabe (durch ausprobieren!!!) auf den (von Bob und Alice) zufällig gewählten Wert a und b zu kommen (weiters dann auch auf den Schlüssel ^^)

    d.h. man hat jetzt die Gleichungen:

    54 = 3^a mod 113
    42 = 3^b mod 113

    Ich habe jetzt Wirklich keine Lust habe, händisch die Zahlen von 1-111 einzusetzen um zu sehen ob die Modulo-Arithmetik dann passt.

    Daher meine Frage:

    Hat irgendjemand einen Tipp wie ich diese zwei modulo Gleichungen in ein C++ Programm einbinden kann, dass dann mithilfe einer Schleife a u. b von 1-111 durchläuft?

    mfg trunksen
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Gott_in_schwarz, 01.05.2010
    Zuletzt bearbeitet: 01.05.2010
    Gott_in_schwarz

    Gott_in_schwarz ar0

    Dabei seit:
    22.04.2007
    Beiträge:
    546
    Zustimmungen:
    0
    Ort:
    Niedersachsen
    fmod() und pow().
    Siehe auch hier.

    edit: Ich nehms zurück. Bei derart großen Zahlen brauchst du entweder eine spezielle Library, oder du machst es einfach in bc oder python, wozu ich raten würde.
     
  4. #3 Dhanawas, 01.05.2010
    Zuletzt bearbeitet: 01.05.2010
    Dhanawas

    Dhanawas Mitglied

    Dabei seit:
    25.11.2006
    Beiträge:
    28
    Zustimmungen:
    0
    Von C hab ich keine Ahnung, aber in Java z.B. gibt es die Klasse BigInteger mit der Methode modPow, die tut genau das, was du willst.

    Link

    Ansonsten eben selbst schreiben. Da gibt's schon 'nen Algorithmus. So große Zahlen kommen nicht vor, wenn man mit der dort angegebenen Methode rechnet.
     
  5. #4 bytepool, 01.05.2010
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    In C++? Du maehst deinen Rasen sicher auch mit ner Sense?

    In Python ist das trivial:
    Code:
    for i in range(1, 112):
       if ( (3 ** i) % 113) == 54:
          print i
    
    mfg,
    bytepool
     
  6. Pik-9

    Pik-9 Tripel-As

    Dabei seit:
    04.12.2008
    Beiträge:
    168
    Zustimmungen:
    0
    Welchen Datentypen verwendest du denn für die Zahlen?
    Notfalls würde ich bei großen Zahlen long double verwenden...
    oder habe ich da jetzt i-etwas falsch verstanden?
     
  7. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    An wen genau richtet sich Deine Frage? In C(++) kannst Du kein long double mit '%' verwenden, es ist ein Operator fuer ganze Zahlen.
     
  8. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: Modulo C++ implementation (Diffie-Hellman-Schlüsselaustausch)
Besucher kamen mit folgenden Suchen
  1. modulo implementieren

    ,
  2. modulo implementierung

Die Seite wird geladen...

Modulo C++ implementation (Diffie-Hellman-Schlüsselaustausch) - Ähnliche Themen

  1. Modulo auf sehr komplexe Zahlen anwenden

    Modulo auf sehr komplexe Zahlen anwenden: Mahltid folgendes Problem, habe zu Lernzwecken mich mit dem RSA-Verfahren zum Zerwürfeln von Nachrichten auseinandergesetzt. Das Ganze dann...
  2. Google arbeitet an eigener SSL-Implementation

    Google arbeitet an eigener SSL-Implementation: Heartbleed hat das Vertrauen in wichtige Techniken, die das Rückgrat des Internet bilden, erschüttert. OpenSSL entpuppte sich als unterfinanziert...
  3. Pyston: eine neue JIT-basierte Python-Implementation stellt sich vor

    Pyston: eine neue JIT-basierte Python-Implementation stellt sich vor: Der Cloud-Anbieter Dropbox sieht sich des öfteren vor Problemstellungen, die mit der im Unternehmen vorwiegend genutzten Sprache Python nur schwer...
  4. strongSwan IPsec Implementation 5.0.1

    strongSwan IPsec Implementation 5.0.1: strongSwan is a complete IPsec implementation for the Linux, Android, Maemo, FreeBSD, and Mac OS X operating systems. It interoperates with with...
  5. strongSwan IPsec Implementation 5.0.0

    strongSwan IPsec Implementation 5.0.0: strongSwan is a complete IPsec implementation for the Linux, Android, Maemo, FreeBSD, and Mac OS X operating systems. It interoperates with with...