Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

RSA & 10^80 & Bignums
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 11.09.2005, 21:48    Titel: RSA & 10^80 & Bignums Antworten mit Zitat

Also gut... Ich hab jetzt seit einiger Zeit ein RIESEN Problem im wahrsten sinne des Wortes...

Alles begann, als ich einmal in Wikipedia von der RSA Verschlüsselung und Primzahlen gelesen hab, natürlich wollte ich das nachahmen und stieß auf ein Problem:

Kein einziger Datentyp war groß genug, um eine Zahl die größer als 10^38 ist zu fassen. Ich brauche eure hilfe, wie kann ich das realisieren, dass ich mmit Zahlen in der größenordnung 10^80 arbeiten kann und dann aucvh ncoht einen primzahlen check durchführen kann? mit dem Kopf durch die Mauer wollen durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Michael712
aka anfänger, programmierer


Anmeldungsdatum: 26.03.2005
Beiträge: 1593

BeitragVerfasst am: 11.09.2005, 21:50    Titel: Antworten mit Zitat

Hallo.

Ich bin mir da nicht sicher, aber bei FreeBasic ist eine Lib dabei, die big_int oder so ähnlich heißt. Ich glaube dass das damit geht. Sonst musst du nach den anderen Mathematik librarys gucken.(alle bei fb dabei)

Mfg
Michael
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 11.09.2005, 21:53    Titel: Antworten mit Zitat

gibts da nciht ein tut, wie ich die benutze??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
d.j.peters
Gast





BeitragVerfasst am: 12.09.2005, 02:34    Titel: Antworten mit Zitat

Hallo psygate,
da Du vermutlich "nur" ganze "positive" Zahlen im Bereich von 10 hoch 80 brauchst ist es möglich sich so etwas zu Programmieren aber sehr aufwendig.

Hier ein fertiges BASIC mit 2800 stelligen Zahlen oder so.
http://archives.math.utk.edu/software/msdos/number.theory/ubasic/.html

Grüsse Joshy
Nach oben
vspickelen



Anmeldungsdatum: 12.06.2005
Beiträge: 13
Wohnort: Holland

BeitragVerfasst am: 12.09.2005, 13:06    Titel: Antworten mit Zitat

Und hier eine BASIC Langzahl-Lib mit Beispiel-Programmen für RSA:
http://mitglied.lycos.de/vspickelen/Largefiles/Nachladen.htm

Grützi,
vspickelen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
d.j.peters
Gast





BeitragVerfasst am: 13.09.2005, 22:47    Titel: Antworten mit Zitat

Hi vspickelen,
gut zu wissen kannte ich noch nicht.

Danke für den Link.

Grüsse Joshy
Nach oben
Triton



Anmeldungsdatum: 10.09.2004
Beiträge: 155
Wohnort: Berlin

BeitragVerfasst am: 14.09.2005, 17:59    Titel: Antworten mit Zitat

Zitat:
Kein einziger Datentyp war groß genug, um eine Zahl die größer als 10^38 ist zu fassen. Ich brauche eure hilfe, wie kann ich das realisieren, dass ich mmit Zahlen in der größenordnung 10^80 arbeiten kann und dann aucvh ncoht einen primzahlen check durchführen kann?


So einfach ist das nicht.

Ich selbst hatte mal mit sowas angefangen (allerdings unter BlitzBasic).

Ansatzpunkt ist, dass man alles mit Strings macht. Die können unendlich lang/groß werden (bis der Speicher voll ist - zumindest bei BB) und somit wäre da genug platz.

Jetzt muss man sich allerdings die ganzen Rechenoperationen neuschreiben.
D.h man bräuchte also + - * / mod. Das dies Stellenweise geht, haben wir
spätestens dann gelernt, als wir in der Schule schriftlich Addieren/Multiplizieren etc. gelernt haben.

Das wird zwar ätzend langsam, aber ne andere Möglichkeit kenne ich nicht.


Und wieso eigentlich nur 10^80?
Das lässt sich ja noch relativ schnell knacken - die größte derzeit bekannte Mersenne-Primzahl ist 2^25.964.951 -1 zwinkern durchgeknallt geschockt
_________________
Coding: silizium-net.de | Portfolio: Triton.ch.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 14.09.2005, 20:40    Titel: Antworten mit Zitat

auf QB-City gabs mal nen Taschenrechnerwettbewerb.. Da waren zwei von drei versionen mit strings.. die kriegen große zahlen zusammen (meiner zumindest, man muss halt die beschränkung rausnehmen). Die dritte Version war mit Arrays, ich glaub von EXP. Wie große Zahlen die bearbeitet weiß ich nicht..
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 15.09.2005, 14:49    Titel: Antworten mit Zitat

Das ist wahr, aber es gibt bei 10^80 sehr sehr viele möglickeiten, also, hat jemand eine gute library??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 15.09.2005, 18:11    Titel: Antworten mit Zitat

wie gesagt, nimm am besten einfach eine der QB-Wettbewerbseinsendungen, frag ganz lieb und mach dann ne Lib draus oder so zwinkern
Meine kannste benutzen wenn du willst.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 15.09.2005, 22:05    Titel: Antworten mit Zitat

Moin,

Ein parr kleine Fragen mal:
- Kann ich davon ausgehen, dass du nur Integerzahlen brauchst?
- kann es sein, dass es sich um 256bit Zahlen handelt? (das wären 8* 32bit Integer)
- Welche Rechenoperatoren brauchst du? +,- und * sind nicht sooo tragisch, shifts sollten auch noch recht einfach machbar sein

CU2
Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 16.09.2005, 16:35    Titel: Antworten mit Zitat

hm... die idee mit den strings hat mir gefallen... die befehle die ich brauche sind:

+,-,*,/,\,mod,xor,or,and usw, eigentlich die normalen befehle. Besonders nötig wäre ein "Primzahlcheck", der checkt, ob meine gigazahl auch wirkliche eine primzahl ist. durchgeknallt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Triton



Anmeldungsdatum: 10.09.2004
Beiträge: 155
Wohnort: Berlin

BeitragVerfasst am: 16.09.2005, 17:05    Titel: Antworten mit Zitat

Na den sollte man nun wirklich noch selbst hinbekommen zwinkern
_________________
Coding: silizium-net.de | Portfolio: Triton.ch.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 16.09.2005, 17:40    Titel: Antworten mit Zitat

mod usw schon, aber wie mach ich das mit dem primzahlcheck?? weinen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 16.09.2005, 23:33    Titel: Antworten mit Zitat

wenn du dividieren kannst ist das dann ja kein problem mehr lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 18.09.2005, 16:01    Titel: Antworten mit Zitat

Moin,

wenn es sich um Verschlüsselungn handelt, sollt man mit Priemzahlen aufpassen - das schränkt die Zahl der durchzuprobierenden Varianten doch schon extrem ein ...

CU2
Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
psygate



Anmeldungsdatum: 05.04.2005
Beiträge: 304
Wohnort: Wien und der Computer

BeitragVerfasst am: 19.09.2005, 14:18    Titel: Antworten mit Zitat

Im grunde richtig, aber, eine normale zahl kann man einfach wieder berechnen: ein beispiel:

(Bitte nciht ernst nehmen, bei 10^80 stellen großen zahlen wird dann etwas kniffeliger!)

Also, nehmen wir 20 und 42. (Ich übertreibe einfach mal!)

20*42=840.................Demnach ist 840 unser Public key.
Jetzt kann man aber einfach die nachricht entschlüsseln, weil sich 840 leicht factorisieren lässt, genauso wie 20 und 42. Damit wäre unser code entschlüsselt.

aber:

13*19=247.............................247 ist unser puvlic key.

247 kann aber nun nur in 13 und 19 factorisirt werden, eine andere möglichkeit gibt es nciht!
Somit wäre es viel schwerer, da es lange dauert, um eine 10^80 stellen lange primzahl zu finden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Triton



Anmeldungsdatum: 10.09.2004
Beiträge: 155
Wohnort: Berlin

BeitragVerfasst am: 19.09.2005, 15:42    Titel: Antworten mit Zitat

Zitat:
10^80 stellen lange primzahl zu finden

Allerdings. Ich bezweifle, dass das jemals möglich sein wird.
De längste bisher bekannte ist dagegen nur schlappe 8 mio Stellen lang zwinkern
_________________
Coding: silizium-net.de | Portfolio: Triton.ch.vu
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
OdinX



Anmeldungsdatum: 29.07.2005
Beiträge: 253
Wohnort: SG Schweiz

BeitragVerfasst am: 19.09.2005, 22:16    Titel: Antworten mit Zitat

Umso besser wenn gerade mit Freebasic eine höhere gefunden wird.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden MSN Messenger
tilli



Anmeldungsdatum: 10.09.2005
Beiträge: 73

BeitragVerfasst am: 20.09.2005, 01:22    Titel: Antworten mit Zitat

Moin,
bekanntermaßen ist nichts auf dieser Welt absolut sicher, außer der TOD...

Die Frage ist doch eher, ob durch die Wahl einer Teilweise- Priemzahl nicht alles ncoh schwieriger wird:

Die Priemzahlen kann man in eine Liste eintragen - das ist im Schnitt so jede 50ste.

Wenn der Text nun entschlüsselt teilweise einen sinnvollen Code ergibt, dann ist es nicht gerade viel - es könnte auch ein Zufallsergebnis sein.

Leider kenne ich das dahinter steckende System nicht so genau.

Ich denke das Produkt aus 2 oder 3 Priemzahlen des Bereiches 10^(80/3) sollte noch viel weniger ratbare Zahlen ergeben... Jetzt weis ich allerdings nicht, ob zum Codieren eine entsprechende Priemzahl nicht dringend nötig ist ... Um die eindeutigkeit zu bewerkstelligen. Dann müsste man sie nehmen - oder den Algorythmus abändern - das ist dann die Variante, bei der am ehesten keiner drauf kommt lächeln

CU2
Tilli
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz