große Zahlen (über 2048 bits)
-
Hi,
ich will RSA implementieren und stehe nun vor dem Problem, dass ich zahlen um die 2048 bits und mehr nicht speichern kann ... 32 bzw 64 bits geht ja noch mit standart Typen.
Wie kann ich nun 2048 Bits Zahlen speichern und damit rechnen???
PS: mit 2048 bits kann man zahlen bis 3231700607131100730071487668867e+616
MfG BehindTheScenes
-
-
nja, ich würde lieber so etwas selbst programmieren, jedoch brauche ich mehr infos ...
-
Wenn ich das richtig sehe (und du mit dem Schlüssel nicht rechnen musst, sondern meinetwegen nur ein bitweises Oder machen musst), brauchst du GMP nicht. Dann reicht dir einfach ein long[].
-
wie meinste das?
-
Ich vermute mal, es ist etwas in folgendem Sinne gemeint:
const int BLOCK_COUNT = 2048/sizeof(long) >> 3;//entspricht 2048/sizeof(long)/8 bzw. 2048/(sizeof(long)*8) long my2048Bits[BLOCK_COUNT];
-
Mit einem einfachen XOR wird man aber wohl eher nicht hinkommen, ein "paar" Multiplikationen (und Modulo-Operationen) werden wohl schon nötig sein.
-
hmm,
ich muss imprinzip nur:
modulo zwischen zwei riesigen werten ausrechnen, dann die riesigen werte dividieren und hochstellen(x^y)