| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| questions++; Registriert seit: Jul 2010
Beiträge: 51
|
Ich wusste ehrlich gesagt nicht wohin ich diese Frage posten sollte, da ich nicht weiß wo der Fehler eigentlich liegt, aber da mir hier schon einmal so toll geholfen wurde, habe ich mich für dieses Forum entschieden ![]() Nun zum Problem Nr. 1: Der Zufallsgenerator (eigentlich "quadratischer Restgenerator", mit der Anleitung von Kuno Kohn) weist eine Schwäche auf (so wie ich ihn programmiert habe). Eigentlich sieht das ganze ja recht einfach aus (Vorkenntnisse nicht wirkich erforderlich), aber es ist folgende Eigenschaft, die für einen "Zufallsgenerator" eigentlich ziemlich unpraktisch ist und sich relativ leicht aus dieser Periode auslesen lässt: 10, 11, 8, 9, 14, 15, 12, 13, 2, 3, 0, 1 Die Periode ist ziemlich kurz und es kommen nicht alle Zahlen vor, aber das führe ich einfach mal auf meine nicht ganz optimal gewählten Parameter zurück (bessert mich bitte aus, falls es nicht so sein sollte); dass jede 2te Zahl aber die vorhergehende +1 ist, nervt allerdings schon ein bisschen. (Habs schon so programmiert dass nur jede 2te Zahl angezeigt wird, aber die ganz elegante Lösung ist das ja jetzt auch nicht) Meine Frage dazu: was ist an diesem Code PHP-Code: Nun zur zweiten Frage: Die RSA Verschlüsselung - Die funktioniert nicht einmal mit den in dem "Tutorial" gegebenen Zahlen... Die wieder entschlüsselte Nachricht ist nicht ganz diesselbe wie die originale. Mein Code: PHP-Code: )Bitte um Hilfe, mfg Peter PS.: Ich weiß, dass beide Systeme nicht wegen ihrer Schnelligkeit sondern wegen ihrer Sicherheit beliebt sind und das deshalb mit Flash ziemlich sinnlos ist (Decompiler?), aber ich habs trotzdem mal in Flash programmiert, weil ich es in einer Sprache programmieren wollte in der ich mich halbwegs auskenne.
__________________ Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen. |
| | |
| | #2 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
a) kein zufall, dass da ein bisschen über zufälle steht H.G.Seib - Zufallszahlen selbst gemacht b) RSA Verschlüsselung muss ich selbst erstmal gucken. so für den kleinen grenzverkehr langt auch H.G.Seib - Verschleiern (Cäsar-, Verschiebe-, Shift-chiffre) - Verschleiern (XOR) //möglichst große Primzahl jaja, aber das dach x0:Number = (a^2)%n geht in flash wohl nur mit integerzahlen? eine nummer könnte dafür mal eine nummer zu gross werden. "..Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen.." lustig, bei mir ist es grad umgekehr :-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (21-07-2010 um 17:49 Uhr) |
| | |
| | #3 (permalink) | |
| questions++; Registriert seit: Jul 2010
Beiträge: 51
| Zitat:
da muss ich mich erst einmal reinarbeiten...Coole Website btw ^^ (PHP oder MySQL kann man aber nicht anklicken oder?)Number oder Integer macht (zumindest bei meinen Größenordnungen) noch keine Probleme, werd's mir aber merken, falls es mal welche geben sollte ![]() @ hgseib: Brauchst du Hilfe mit Latein, Französisch oder Russisch (das lern ich aber noch kräftig)? ^^ (In AS kann ich in diesem Forum ja iwie niemandem helfen :'( ) Hat sonst jmd Ideen warum das nicht wirklich funktioniert?
__________________ Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen. | |
| | |
| | #4 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
"..aber da steht auch dass das ziemlich unsicher wäre.." ja sicher doch, ganz unsicher! dann entschlüssle doch bitte einmal: qss33g89zu851 kommt halt immer darauf an, wofür man was benützen möchte. für aus flash heraus z.b. einen punktestand zum server zu senden, dafür langts allemal. für wirklich wichtige sachen wird kein mensch flash benützen (war auch nie deine absicht, habe ich verstanden). ".. Number oder Integer macht (zumindest bei meinen Größenordnungen) noch keine Probleme.." so kann man sich täuschen. in diesem tutorial steht doch '10 hoch 77 mod 91'. das 'dach' ist der bitweise XOR operator und nicht zur berechnung von hochzahlen. trace(10+" hoch "+77+" mod "+91+" = "+Math.pow(10,77)%91); trace(Math.pow(10,77) +" und davon mod 91 ???"); flash ist nicht in der lage 77stellige zahlen so zu berechnen, da Number maximal 15 signifikante stellen ausweissen kann. keine ahnung, wie und warum modula überhaupt zu einem ergebnis kommt. jedenfalls kann das mit so gerundeten zahlen nie und nimmer stimmen. ich denke, dafür musst du schon eigene routinen schreiben, die 'unendlich' grosse zahlen vollständig berechnen. so einfach ist RSA dann doch nicht zu programmieren ;-)
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (22-07-2010 um 00:59 Uhr) |
| | |
| | #5 (permalink) | ||
| questions++; Registriert seit: Jul 2010
Beiträge: 51
|
So, kann leider nur zitieren, da ich mich selbst noch immer zu wenig auskenne und (leider) nicht Mathematik studiere ![]() Zitat:
Das meinte ich mit unsicher, dass da ein normalsterblicher Schüler wie ich sowieso nur Bahnhof versteht, weiß ich schon (könntest mir da jetzt auch sonst etwas hinwerfen, ich könnte dir wohl kaum widersprechen ^^)Dass das "^"-Zeichen nicht für "hoch" steht wusste ich nicht, doch richtig gelegen dass ich das Thema in einem Flash-Forum und nicht in einem Mathematik-Forum gepostet habe (Offtopic: sonst ist das "^" aber schon auch für "hoch" in Verwendung, oder? Zumindest beim Google-Rechner is es so ) Zitat:
)
__________________ Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen. | ||
| | |
| | #6 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
"..leider nicht sicher.." das ist so auch korrekt. nur, zum hacken benötigt man eine genügend grosse menge an daten um die z.b. statistisch auf den kopf stellen zu können. egal, wie unsicher meine verschlüsslung auch ist, den waren sinn des kurzen stücks, das ich angegeben hatte, den kann so noch nicht mal das pendagon entschlüsseln. einfach zu wenig informationen ;-) "..Zumindest beim Google-Rechner is es so.." den benutze ich jetzt weniger zum programmieren. aber du hast schon recht. bei C,C++ wird das dach anders interpretiert. irgendwie müssen sich die programmiersprachen ja unterscheiden :-) C++ ist die einzig richtige antwort. da du es aber (so habe ich es wohl verstanden) nicht zum benützen, sondern zum verstehen machen willst, dafür finde ich flash sogar noch besser, eben weil man sehr einfach seine ergebnisse sichtbar machen kann. meine mathe-kenntnisse beruhen auch nur auf volksschul-niveau und kontinuierliches nachhaken. mit absolut genauen zahlen rechnen z.b. programme wie mumath u.ä. (steht auch auf meiner liste in der richtung mal etwas zu machen) zahlen sind dann nur noch natürliche zahlen und als string gespeichert. nachkommazahlen gibts nicht. das wird alles als brüchen (zähler/nennen) behandelt. das ist die einzigste methode um z.b. 1/7 genau dar zu stellen. und z.b. wurzel aus 2 darf dabei nicht ausgerechnet werden, sondern muss als wurzel aus 2 berücksichtigt werden. etwas schneller geht es, wenn man nicht im 10er-system rechnet, sondern z.b. im 100.000er system. dann ist jede ziffer ein symbol(zahl) von 0 .. bis 99999. also alle rechenregeln plus, minus, mal. geteilt usw. wie in der schule gelernt rechnen, nur das es 'gedanklich' nicht nur 10 unterschiedliche ziffern gibt, sondern 100.000 ansonsten denke ich, das es da tricks gibt (da werde ich bei gelegenheit auch mal nach googlen). bekannt ist z.b. wenn die quersumme einer zahl durch 3 teilbar ist, dann ist es die ganze zahl auch. sinngemäss, die werden NICHT wirklich 10^77%91 ausrechnen. da gibt es bestimmt möglichkeiten das modulo(?) eleganter zu ermitteln? 10%91, 100%91, 1000%91 da gibt es bestimmt irgend welche gesetzmässigkeiten, die auf das ergebnis von 10....00%91 schliessen lassen.
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de |
| | |
| | #7 (permalink) |
| Neuer User Registriert seit: Sep 2006 Ort: Augsburg
Beiträge: 76
|
Algorithmus für Ausdrücke der Form a^b mod c wäre Square and Multiply. Binäre Exponentiation ? Wikipedia Das ganze liegt in O(log(c)) ist also extrem flott, egal in welcher Sprache .Gruß |
| | |
| | #8 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
ja, kommt auch demnächst dran ;-) [OT] mathe ist doch eine feine sache, gibt mir richtig spass und ist überhaupt nicht langweilig !!! habe gerade eben "Das Problem des Handlungsreisenden" mit dem "Ameisen-Algorithmus" programmiert.
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-07-2010 um 15:04 Uhr) |
| | |
| | #9 (permalink) |
| Techniker Registriert seit: Sep 2003 Ort: 64807
Beiträge: 16.109
|
obwohl, das ist nicht ganz das, was ich meine. mit 'Square and Multiply' kann man das schneller berechnen, aber das problem 'zahlen mit mehr als 15 signifikante ziffern haben zu müssen' bleibt. ich dachte mehr an sowas: Code: /*
trace(10%91);
trace(100%91);
trace(1000%91);
trace(10000%91);
trace(100000%91);
trace(1000000%91);
//
trace(10000000%91);
trace(100000000%91);
trace(1000000000%91);
trace(10000000000%91);
trace(100000000000%91);
trace(1000000000000%91);
////
10
9
90
81
82
1
10
9
90
81
82
1
*/
function moduloSerien(a,b) {
trace("moduloSerie: "+a+"%"+b);
var c=a;
var i=0;
do {
trace(i+": "+(c%b));
i++;
c*=a;
} while (c<99999999999999);
trace(c);
}
moduloSerien(26,7); das problem ist jetzt: wie kommt man am elegantesten zu der jeweiligen reihe und vermutlich gibt es reihen mit extrem vielen werten bis es (wenn überhaupt) zu einer wiederholung kommt? dann wäre noch diese überlegung möglich: wie kann man den wert teilen, ohne die potenzen selbst ausrechnen zu müssen, um einen restbetrag zu erhalten (mit weniger als 15 ziffern) von dem auch flash das modulo berechnen kann so in die richtung etwa: 10000%3 == 10000/3 rest X (9999/3 + 1/3) == rest 0 + rest 1 vermutlich mit ständig wechselndem multiplizieren und teilen (damit es zu keiner übergrossen zahl kommt) und die berechnungen als bruch behandeln.
__________________ die ultimative antwort auf alle programmierfragen: der debugger! - vor eine programmzeile klicken (==roter punkt) - im menü "debuggen" aufrufen - auf den grünen pfeil klicken - im swf etwas machen (der programmablauf hält beim roten punkt) - links die objekte auswählen, variable, interne... mal alles ansehen! mit dem debugger kann man sein programm schrittweisse abarbeiten und in alle variable reinsehen. mfg h.g.seib www.SeibsProgrammLaden.de Geändert von hgseib (24-07-2010 um 16:46 Uhr) |
| | |
| | #10 (permalink) |
| questions++; Registriert seit: Jul 2010
Beiträge: 51
|
Ok........werd mich erst mal etwas reinlesen müssen, sieht recht kompliziert aus (zumal wir Logarithmen noch nicht gelernt haben ) Aber danke, sieht nach einem vielversprechenden Lösungsansatz aus...
__________________ Ich spreche Deutsch, Englisch, Französisch, Latein und Russisch... nur mit AS will's nicht so ganz hinhauen. |
| | |
![]() |
| Lesezeichen |
| Stichworte |
| as3, mathematik, rsa, zufallsgenerator |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Flash 2] Hallo, ich hab eine Frage an Euch.... | Martina68 | Flash Einsteiger | 2 | 15-09-2009 00:39 |
| frage für die meister unter euch | flashass | Flash MX | 3 | 29-07-2006 00:35 |
| Frage an die Zocker unter euch (Max Payne2) | Matze82 | Am Rande | 19 | 06-06-2004 19:16 |
| Eine Frage für Mathematiker unter euch | knuddel_muddel | Flash MX | 2 | 27-08-2003 15:39 |
| eine kleine frage für euch... | pete225 | ActionScript 1 | 0 | 10-10-2001 11:45 |