Autor Beitrag
simlei
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

WIN XP
D7
BeitragVerfasst: Di 18.09.07 18:37 
Hallo, ich suche eine Langzahlbibliothek. Ich benötige sie um RSA zu implementieren und bekanntlich treten da (wenn die Amfangsprimzahlen, wie vorgesehen in dem Verfahren, am Anfang 200 Stellen lang sein sollen) seeeehr (seehr) große zahlen auf. Beispiel: ich habe mal mit Primzahlen mit 3 Stellen (irgendwas zwischen 100 und 200) probiert und die Zahlen mit Derive durchgerechnet - das Programm hat dann irgendwann eine Zahl gehabt die hieß 14009^12398 und ging über viele zeilen. Trotzdem hat das Ganze nur einige Sekunden gedauert (samt Modulooperation(!))

Ich suche also eine Bibliothek die vielleicht auch ein wenig auf Geschwindigkeit optimiert ist - (am besten auch bei Modulo aber wenns das nicht gibt gehts halt nicht.) Ich will ja keine 200 Stellen-Anfangswerte haben (Das ergebnis wäre zu riesig), das Beispiel mit den kleinen dreistelligen genügt mir (aber auch hier entsehen große zahlen - 14009^12398)

Naja, ich hoffe ihr habt so etwas in petto, thanks in advance ;)
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Di 18.09.07 19:16 
In meinem Taschenrechner (RAFX) sind große ganze Zahlen fertig implementiert große Gleitkommazahlen noch nicht. Da du aber von Primzahlen gesprochen hast denke ich sollte das ausreichen.

Ich hab einmal ein Post, wo ich diese vorstelle aber der ist nicht aktuell und hat Fehler. Deshalb sich die Funktionen einfach aus dem Taschenrechner raussuchen => Unit TBigintzahlimpl 0=>Deklaration der TBigintzahl aus Unit Konstanten übernehmen und alle virtuellen Funktionen rausstreichen und die Hilfsfunktionen aus RMath übernehmen dann ist die Klasse auch prozedural eigenständig lauffähig.

Die Funktionen die man primär braucht sind add sub mul und divmod danach sollte er ja meckern welche Funktionen er noch braucht
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 18.09.07 19:23 

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Calyptus
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 386

Win Xp Prof
D3, D6 Pers, D7 Ent
BeitragVerfasst: Di 18.09.07 19:38 
oder auch mal googlen was du zu "potenzieren mit großen Zahlen" findest. Das geht nämlich oft einfacher als man denkt...

_________________
Luft- und Raumfahrtechnik an der Uni Stuttgart
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Di 18.09.07 19:39 
Jup. Speziell bei Modulo-Operationen werden die Ergebnisse nicht größer als das Modul der Potenz-Gleichung.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
simlei Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 23

WIN XP
D7
BeitragVerfasst: Mi 19.09.07 16:55 
danke für die vorschläge, ich bin sicher da gibt es etwas rundum zufriedenstellendes :)

@ BenBe:
Ich weiß, wie Modulo funktioniert, und wie groß der Ergebnisraum ist, das sagt aber nichts über die Rechendauer (bei schlecht optimierten Algorithmen) aus.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 19.09.07 19:20 
user profile iconsimlei hat folgendes geschrieben:
danke für die vorschläge, ich bin sicher da gibt es etwas rundum zufriedenstellendes :)

@ BenBe:
Ich weiß, wie Modulo funktioniert, und wie groß der Ergebnisraum ist, das sagt aber nichts über die Rechendauer (bei schlecht optimierten Algorithmen) aus.


In der Theorie brauchen alle Algorithmen, die's gleiche tun, gleich lange ;-) Dass die Praxis unterschiedlich ist, wollt unser Theo.Inf.-Prof nur nicht für voll nehmen :mrgreen:

Hochoptimierte Langzahl-Bibliotheken sucht man bei Delphi aber etwas länger. Frag ggf. mal Hagen Redmann (negaH in der DP), ob er Dir da behilflich sein kann.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.