vorherige Seite | 1 2 3 | nächste Seite |
Gepostet: |
|||||||||||
Vorneweg erst einmal: Keine Scheu vor dem Du, wir dutzen uns hier im Forum alle. Dann zum Faktor. Der Faktor muß auch bei der Entschlüsselungsfunktion gegeben sein, da der Klartext sonst nicht eindeutig wiederherstellbar wäre (genau wie der Summand bei der einfachen Verschiebemethode). Und zu guter letzt nochmal zu der Multiplikationsmethode. Da hab ich mal nachgeblättert und mir ist aufgefallen, daß du deine ursprüngliche Variante auch verwenden kannst, wenn du dich darauf beschränkst, nur solche Faktoren n zu verwenden, die mit dem Modul p keinen gemeinsamen Teiler haben, also gcd n p == 1. p kann dann aber beliebig sein. Bei meinem Vorschlag müßte ord w erst einmal um 1 verschoben werden, damit nicht mit den Zahlen von 0..255, sondern von 1..256 gerechnet wird (um ein eindeutiges Inverses zu garantieren). Die so verschobene Zahl kann dann mit n multipliziert werden und das Ergebnis modulo p=257 genommen werden. Da nun wieder eine Zahl zwischen 1..256 herauskommt, muß wieder um 1 zurückverschoben werden und das Ergebnis in einen Char umgewandelt werden. Die entsprechende encode-Funktion sieht dann so aus: encode "" _ = [] Die Entschlüsselungsfunktion dann nach dem selben Prinzip, nur eben mit n'. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
in manchen foren sind ein paar leute, die man nicht mit du anreden sollte, weil man weiß, sie sind schon "weit" üebr 18 Ich werd mich morgen mal versuchen, etwas hinzubekommen... dann danke ich dir^^... |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
bei nen "sie" würde ich mir auch ganz schön alt vorkommen... | |||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
ûnd noch was konstruktives zum thema? :D hmmm...donnerstag muss ich es fertig haben...bleiben mir ja nichtmehr viele tage :/ |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
soo...da nun mein pc ein problem hat und alle programme fast automatisch schließt(u.a. auch winhugs) kann ich das proggen der sache komplett vergessen... ich danke trotzdem für all eure bemühungen..:/ mfg Edit: Wenn ich es chiffriere, muss ich es dann nich auch mit mod 257 machen? bzw. 256? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
ja da solltest du auch modulo teilen ...sonnst kommt sowas raus... __ __ __ __ ____ ___ Main> caesar "z" 1 "{" Main> caesar1 "z" 1 "{" Main> hast du mal versucht hugs neuzuinstallieren? gruß jacke ps: die funktion von siracusa kann man zum ver und entschlüßeln verwenden... verschlüßeln: encode text n entschlüßeln : encode text (1/n) du solltest aber noch runden in die funktion einbauen..sonst klappt das nich so ganz mit den brüchen ...;-) |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
hugs neu install -> geht nicht...da meine systemdatein irgendwie im arsch(sry) sind und kaum ein prog somit richtig geht.. dein post mit dem 1/n usw. hab ich nun wieder nicht verstanden :/ ich hab nunmal im normalen hugs ohend atei zu laden erstmal :l Char und dann dies gemacht: --> ord 'r' * 8 = 912 mach ich aber ord 'r' = 144 * 8 = 1152 ....was nun? Oo <-- mfg <--Edit: verguckt *sry*--> ..ich probier bis nachher nochmal was hinzubekommen.. |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Genial! ich danke euch! ich hoffe mal, dass der Code nun so richtig ist, jedoch bin ich mir net sicher, da ich ja nur die Teile probieren konnte:
Eine kleine Erklärung, die ich vlt noch morgen vorlegen muss: multcaesar: gesucht ist das verschlüsselte w, bei einem modulo p=257, damit es beim zurückrechnen von jeder zahl darunter 1..256 ein Inverse-->(wie kann man das wort erklären?)<-- gibt, da 257 eine Primzahl ist, und einem Faktor n: c = n*w mod p (mal von dir geklaut^^) demultcaesar: w = n'c mod p n' multiplikative inverse zu n, wenn man jetzt noch wüsste was das "inverse" eigentlich ist, bzw. was der begriff bedeutet, wie man den erklären kann^^ bzw. was ist en e "umkehrfunktion" ^^ und inverse gibt eben die umkehrfunkt aus, wobei dee begriff mir so wenig sagt^^.. ------------------------------------------------ Ich danke Euch auf jeden Fall schonmal für alles^^....da werd ich wohl euch in nächster Zeit öfter beschäftigen :D |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hi nochmal, der Vorschlag von Jacke mit 1/n funktioniert hier eben nicht, weil man nicht wie gewohnt in den reelen Zahlen rechnet, sondern in einem Ring mit ganzen Zahlen. Und 1/n ergibt nicht wieder eine ganze Zahl. Das Inverse ist ein mathematischer Begriff. Du kannst dir das Inverse zu einem Element e aus einer Menge (z.B. reele Zahlen) wie so eine Art Anti-Element vorstellen, die beide zusammen wieder ein neutrales Element ergeben. Das Inverse von e bzgl. der Addidion ist also -e. Oder bzgl. der Multiplikation 1/e. Bei der Rechnung im Ring ist das finden des Inversen nur etwas komplizierter. Am besten läßt sich das durch eine Formel beschreiben. Wenn e und eine Primzahl p gegeben sind und folgende Gleichung ist erfüllt: e*e' mod p = 1. Dann ist das e' das Inverse zu e im Ring modulo p. Kannst ja bei Wikipedia mal nach "Körper (Algebra)" oder "Ring (Mathematik)" suchen. Dann noch zum Code: mult_inverse gibt bei dir noch ne Liste zurück. Soll aber ein int sein, du brauchst also nur noch head vor die Liste schreiben, dann wird das erste Element der Liste zurückgegeben. Und bei den anderen beiden Funktionen fehlen noch die Verschiebungen +1 und -1. Weil z.B. zu 0 kein Inverses existiert. Und der Modul muß in beiden Funktionen gleich sein, also 257. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
ach..bei multcaesar hatte ich das nur kopier...257 muss da logisch hin^^... das mit der verschiebung versteh ich im moment leider nicht : mit dem 1+ und -1 aber es müsste dann so aussehen oder(von dir mal kurz zu so abgeguckt^^):
so richtig? das mit dem inverse glaube ich verstanden zu haben...danke :) |
|||||||||||
Zum Seitenanfang | |||||||||||
vorherige Seite | 1 2 3 | nächste Seite |