PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Lange Zahlen (512BIT?,1024BIT?)


Unfug
2007-05-09, 15:29:29
Hi,

RSA verwendet ja enorm große Primzahlen um die Verschlüsselung zu garantieren. Meine Frage wäre: Wie kann man sowas denn in C# zum Bleistift programmieren? Hab schonmal irgendwo gehört/gesehen, daß die Zahlen als Hexdezimal gespeichert werden statt.
Ist das korrekt so? Gibt ja einige Programme die RSA als Verschlüsselungstechnik (VPN,Truecrypt?, Hamachi) verwenden. Muss ja irgendwie funktionieren.

Gruß

DaFakka
2007-05-09, 15:47:57
In Java gibt es die Klasse BigInteger, die einfach Strings so zusammenkloppt,
zumindest glaube ich das, um theoretisch beliebig grosse ganze Zahlen darzustellen. Evtl. gibt es sowas auch für C#

Gast
2007-05-09, 15:51:47
Hi,

RSA verwendet ja enorm große Primzahlen um die Verschlüsselung zu garantieren. Meine Frage wäre: Wie kann man sowas denn in C# zum Bleistift programmieren? Hab schonmal irgendwo gehört/gesehen, daß die Zahlen als Hexdezimal gespeichert werden statt.
Ist das korrekt so? Gibt ja einige Programme die RSA als Verschlüsselungstechnik (VPN,Truecrypt?, Hamachi) verwenden. Muss ja irgendwie funktionieren.

Gruß


Mit Hilfe von Arrays

Trap
2007-05-09, 15:58:19
Konzeptionell geht das so:
Man rechnet zur Basis 2^32 und benutzt einzelne unsigned ints als Ziffern.

Ich würd einfach mal googlen nach "C# bignum", es gibt einige die da schon was geschrieben haben.

Gnafoo
2007-05-09, 20:21:39
Das könnte dich interessieren:
http://www.codeproject.com/csharp/BigInteger.asp

Leider kommt man nur an den eigentlichen Code ran, wenn man sich angemeldet hat.

Ein Vorgehen wäre eben, indem man eine Klasse für solche Zahlen erstellt. Die Zahlenwerte können dabei in Arrays gespeichert werden und die Operationen für Addition, Subtraktion, Multiplikation, etc. pp. müssen dann selbst implementiert werden. (Die entsprechenden Operatoren können gegebenenfalls überschrieben werden, um die Handhabung zu vereinfachen.)

Bietchiebatchie
2007-05-10, 01:54:29
im .net framework 3.5 gibt es einen BigInteger-Typ. (Ich vermute mal einfach, dass du unter .net programmierst, da du c# erwähnst.)
Allerdings scheints es dazu noch keine Doku zu geben, zumindest hab ich in der msdn-suche grad nix gefunden.