(Wie) kann man gigantische Variabeln erzeugen?



  • Hi Leute

    Ich bin momentan daran, mir eine kleine Verschlüsselungssoftware zu erstellen. Theoretisch und im sehr kleinen Rahmen("Texte" mit 3 Buchstaben) auch praktisch, scheint mein Konzept gut zu funktionieren. Allerdings brauche ich um Textnachrichten in der Länge von ca einer SMS (das wäre schön) verschlüsseln zu können Variabeln mit ca 1000 Stellen.

    unsigned long long Variable;
    

    war bisher meine grösste Variable, die liegt aber leider nichtmal ansatzweise in der gewünschten Grössenordnung.

    Ich glaube nicht, dass ich die Zahl einfach in ein Array aufteilen kann, da ich damit rechnen können muss (multiplikation und modulo rechnen).

    Schnell muss das ganze überhaupt nicht sein.

    Kann man eine so grosse Variable erzeugen mit der man rechnen kann?
    ein String z.B kann ja locker auch diese Grösse erreichen..?😕

    Wäre sehr dankbar für Ideen und Anregungen 🙂

    mfg
    hobbycryptographer



  • Ersten 2 Beiträge enthalten links zu Bibliotheken (für integer):
    https://www.c-plusplus.net/forum/300546-full

    Ansonsten kann man das natürlich auch selbst implementieren.



  • Wobei hier natürlich die Frage ist, warum du eine einzelne Zahl mit 1000 Stellen brauchst und nicht zB 100 Zalen mit jeweils 10 Stellen.

    Denn idR willst du passende Datenstrukturen zu deinem Algorithmus verwenden. Wenn du zB eh nur bits bearbeitest, dann bräuchtest du ja keinen einzelnen riesen Integer sondern nur eine Datenstruktur die dich auf genug Bits operieren lässt.


  • Mod

    Shade Of Mine schrieb:

    Wobei hier natürlich die Frage ist, warum du eine einzelne Zahl mit 1000 Stellen brauchst und nicht zB 100 Zalen mit jeweils 10 Stellen.

    Klingt so, als wolle er RSA selber implementieren.



  • Ich meine, für RSA braucht man aber keine Integer die so groß sind.
    Durch ensprechende Rechenschritte kann man die Zahl glaube ich immer "recht klein" halten.
    Denke aber mal, da können andere hier mehr zu sagen, bzw kann man ja auch online nachlesen.



  • Hallo zusammen,

    Wie ihr richtig erraten habt versuche ich tatsächlich eine kleine RSA zu implementieren, allerdings ist mir nicht klar wie ich die werte "recht klein" halten könnte, aus prinzipiellen gründen nicht 😕 ..

    Ich werde also versuchen, das mit GMP zu implementieren und dann berichten wie ich voran komme 🙂



  • hobbycryptographer schrieb:

    Hallo zusammen,

    Wie ihr richtig erraten habt versuche ich tatsächlich eine kleine RSA zu implementieren, allerdings ist mir nicht klar wie ich die werte "recht klein" halten könnte, aus prinzipiellen gründen nicht 😕 ..

    Ich werde also versuchen, das mit GMP zu implementieren und dann berichten wie ich voran komme 🙂

    Ich auch nicht. Klar kann man größere Zahlen als Array von mehreren kleinen Zahlen darstellen und damit rechnen aber wer das schonmal versucht hat selbst zu programmieren weiß wieviel Arbeit das ist. Mit GMP bist du sicher gut beraten.

    PS: Wenn du unter Windows arbeitest versuch erst gar nicht GMP ans laufen zu kriegen sondern benutz den Fork namens MPIR.



  • Ich glaub "Wieso nicht?" macht da nen Denkfehler.
    AFAIK kann man bei RSA die Zahlen schon klein halten, aber halt nicht kleiner als die Key-Länge.
    (Die Zwischenergebnisse würden ja ohne Trick extremst gross, also auch viel viel grösser als die Key-Länge.)
    Wenn man sich also mit 16~32 Bit Keys zufrieden gäbe, dann könnte schon sein dass man ohne "big numbers" Library auskommt.
    Da bei RSA aber eher Schlüssellängen jenseits der 512 Bit verwendet werden...



  • Ich glaub "Wieso nicht?" macht da nen Denkfehler.

    Ja hatte ich. Dachte es scheitert an den Zwischenergebnissen.



  • hobbycryptographer schrieb:

    Schnell muss das ganze überhaupt nicht sein.

    dann brauchst du auch kein C++ zu nehmen.

    python -c "print pow(10, 1000)"
    

Anmelden zum Antworten