www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Maple" - RSA mit maple
RSA mit maple < Maple < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

RSA mit maple: Facharbeit
Status: (Frage) beantwortet Status 
Datum: 18:47 So 25.02.2007
Autor: LeonL

Aufgabe
In meine Facharbeit zur Kryptologie bearbeite ich unter anderem das RSA-verfahren um dies zu vervollständigen wollte ich es mit maple als Anwendungsbeispiel hinzufügen.

Es hat auch alles recht gut geklappt bis ich auf einmal Probleme bekommen hab und auch nach langen Recherchen nicht mehr wusste wie es weitergehen könnte. Ich habe letztendlich hier einen Artikel zu dem Thema gefunden, wollte eigentlich dort meine Frage stellen dies ging aber irgendswie nicht. https://matheraum.de/read?t=206523 . Leider konnte ich, da ich nicht so maple-bewandert bin mit einigen Begirffen nichts anfangen. Ich hoffe mir kann geholfen werden hier sind schon mal meine ersten Ergebnisse mit dem Fehler.


> restart:
> p:=nextprime(5^13);

                           p := 1220703131

> q:=nextprime(3^15);

                            q := 14348909

> if p=q then ("p und q müssen sich unterscheiden") else print ("Ok") end if;
>

                                 "Ok"

> N:=p*q;

                        N := 17515758142734079

> L:=(p-1)*(q-1);

                        L := 17515756907682040

> delete(p,q) ;

                     delete(1220703131, 14348909)

> delete(L);

                      delete(17515756907682040)

> e:=rand(3..L-2)();

                        e := 11378251899082949

> if igcd(e,L)>1 then error("e unbrauchbar") else print("OK") end if;

                                 "OK"

> d:=1/e mod L;

                        d := 8667072330821589

> Zwischenprobe:=(d*e-1)/L; if type(Zwischenprobe,rational) then print("Probe OK") else error("Probe falsch") end if;

                  Zwischenprobe := 5630138207981699


                              "Probe OK"

> publickey:=[N,e];

         publickey := [17515758142734079, 11378251899082949]

> secretkey:=[N,d];

          secretkey := [17515758142734079, 8667072330821589]

> Klartext:="Hallo";

                         Klartext := "Hallo"

> y:=5125;

                              y := 5125

> x:=convert(Klartext,bytes);

                     x := [72, 97, 108, 108, 111]

> if (x)>=N then print("Nachricht zu lang!") else print("Text umgewandelt") end if;

Error, cannot evaluate boolean: 17515758142734079+[-72, -97, -108, -108, -111] <= 0



Um weiter Arbeiten zu können muss ich diesen Fehler beheben bin aber mittlerweile Ratlos außerdem fällt es mir dannach schwer die jeweiligen dinge zu kodieren und decodieren.


Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.



        
Bezug
RSA mit maple: Literaturtipp (mit Prog.)
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 02:58 Mo 26.02.2007
Autor: Peter_Pein

Ich kenne mich mit der Materie zwar nicht aus, weiß aber, wo etwas darüber steht (ist meistens hinreichend :-)).

Wolfram Koepf hat letztes Jahr ein Buch über Computeralgebra herausgebracht. Ein Kapitel (5) beschäftigt sich mit Kryptographie. Das RSA-Verfahren war, wenn ich mich recht erinnere, recht ausführlich besprochen worden.

Programmcode für Maple/Mathematica/MuPAD gibt es - zusammen mit exaktem Titel des Buches und ISBN - []hier.

Ich hoffe, es hilft ein wenig,
Peter


Bezug
        
Bezug
RSA mit maple: Länge von x = nops(x)
Status: (Antwort) fertig Status 
Datum: 03:12 Mo 26.02.2007
Autor: Peter_Pein

Hi Leon,

ich habe mir den Code mal angesehen und mir fiel auf, dass du if (x)>=... geschrieben hast. Vermutlich meinst du die Anzahl der Elemente in der Byteliste x. Dann solltest du if nops(x)>=... schreiben.

Des weiteren weiß ich nicht, was die beiden Aufrufe der Funktion "delete()" bewirken sollen. Hast du diese Fkt. an anderer Stelle definiert? In der Hilfedatei von Maple 10 finde ich nichts Brauchbares dazu.

Na denn, gut's Nächtle,
Peter


Bezug
                
Bezug
RSA mit maple: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:36 Mo 26.02.2007
Autor: LeonL

Schon einmal vielen Dank, das mit nops hat funktioniert.

Delete habe ich an der Stelle eingebracht um einfach die Werte zu löschen, da die nicht weiter gebraucht werden. Dies wollte ich in meiner Facharbeit einfach hinzufügen, um es so genau wie möglcih zu beschreiben, denn p und q können einem dritten zur Entschlüsselung dienen .Trotzdem habe ich jetzt Probleme bei der Codierung es klappt zwar mit einem Zahlenwert .......



> message:=1234567890;
>

                        message := 1234567890

> verschlüsseln:=power(message,e) mod N;

                  verschlüsseln := 6564184656086515

> entschlüsseln:=power(verschlüsseln,d) mod N;

                     entschlüsseln := 1234567890

sobald ich das aber mit meinem umgewandelten Klartext versuche bekomme ich Probleme und erlange zu keinem Ergebnis....

> Klartext:="Hallo";
>

                         Klartext := "Hallo"

> x:= convert(Klartext, 'bytes');

                     x := [72, 97, 108, 108, 111]

> if nops(klarbytes)>=N then print("Nachricht zu lang!") else print("Text umgewandelt") end if;

                          "Text umgewandelt"

> verschlüsseln:=power(x,e) mod N;

  verschlüsseln := power([72, 97, 108, 108, 111], 11378251899082949)

Ich habe das alles auch schon mit dem Programm Mupad durchgeführt dort erwies sich eigentlich alles als wesentlich einfacher und hier reichte auch der Befehl verschlüsseln:= powermod(x, e, N) aus aber bei maple kommen nur probleme auf, da wir aber im Unterricht uns nur mit Maple befassen wollte ich dieses auch in meiner Facharbeit verwenden.

Schon einmal vielen dank für weitere Hilfen.

Bezug
                        
Bezug
RSA mit maple: Antwort
Status: (Antwort) fertig Status 
Datum: 08:21 Di 27.02.2007
Autor: Martin243

Hallo,

du schreibst aber nicht, ob jetzt eine Fehlermeldung kommt oder nicht...

Na ja, den älteren Beitrag zu Maple-RSA hast du ja schon gefunden. Du hättest ruhig reinschauen können, auch wenn er auf den ersten Blick kompliziert erscheint. Dort habe ich nämlich u.a. die map-Funktion benutzt. Sie ist dafür da, Funktionen auf ganze Listen anzuwenden.
Wenn also f eine Funktion mit einem skalaren Argument ist, dann kannst du sie per map(f, [1,2,3,4,5]); auf eine ganze Liste (also einen ganzen Klartext z.B.) anwenden.


Gruß
Martin

Bezug
                                
Bezug
RSA mit maple: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:14 Di 27.02.2007
Autor: LeonL

Hallo nocheinmal vielen Dank.

Also eine Fehlermeldung habe ich auch nicht erhalten nur maple gibt keinen festen Ausdruck an, der zum entschlüsseln benötigt wird.

Ich habe mich mit dem älteren beitrag schon genauer befasst, konnte aber leider nur recht wenig damit anfangen, da der Ausdruck map mich einfach verwirrt und ich es nicht hinbekommen ihn anzuwenden.
Tut mir leid wenn ich schon bei so etwas versage aber ich kenne mich mit maple leider nur bedingt aus. Ich weiss einfach nicht wie ich den befehl auf meine jetzige ausarbeitung anwenden kann.
Schon mal vielen dank für weitere hilfen und ich möchte mich nochmal für meine geringen Kentnisse entschuldigen.

Bezug
                                        
Bezug
RSA mit maple: Antwort
Status: (Antwort) fertig Status 
Datum: 18:22 Di 27.02.2007
Autor: Martin243

Hallo,

genug entschuldigt ;) Es war nicht so gemeint. Ich dachte nur, vielleicht entdeckst du ja wertvolle Tipps...

Aber zuerst etwas anderes:
Die Funktion delete gibt es bei Maple gar nicht. Die betreffende Zeile hat überhaupt keine Wirkung! Was du meinst ist unassign. Hier muss aber das Argument in einzelne Anführungsstriche gestellt werden. Wenn du also den Wert der Variablen a löscghen willst, musst du eingeben:
unassign('a');
Übrigens ist das Löschen an dieser Stelle falsch, da du den Wert von L nachher noch beim rand-Aufruf brauchst.

Zum eigentlichen Thema (map):
Versuch es mal mit:
verschlüsseln:=map (xx -> power(xx,e) mod N, x);

Hier wird die anonyme Funktion "xx -> power(xx,e) mod N" auf jeden Eintrag von x angewandt. Ich denke, das hast du gesucht. In Maple kann man eben nicht gleich alles vektorwertig rechnen.


Gruß
Martin

Bezug
                                                
Bezug
RSA mit maple: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:06 Di 27.02.2007
Autor: LeonL

Juhuu super danke es funktioniert endlich :-) ,

hing da schon ewig dran und fand einfach die Lösung nicht und war schon kurz vorm verzweifeln. Sie haben mir echt den Tag gerettet. Also vielen vielen dank.

Das mit delete hatte ich so aus Mupad übernommen und da es keine Fehlermeldung gab dachte ich es würde auch hier stimmen, mit der anordnung hatten sie auch recht habs jetzt behoben und bin echt froh endlich durch zu sein:-) .




Nur eine Frage hätte ich noch wissen sie den maple Ausdruck der aussagt, das eine Sache ohne Rest teilbar ist, denn diesen müsste ich in der folgenden Zeile noch ersetzen, denn der begriff rational ist hier unangebracht.

> Zwischenprobe:=(d*e-1)/L; if type(Zwischenprobe,rational) then print("Probe OK") else error("Probe falsch") end if;

Bezug
                                                        
Bezug
RSA mit maple: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 09:56 Mi 28.02.2007
Autor: Martin243

Hallo,

für die Teilbarkeit von a durch b kannst du in Maple eine der folgenden Beziehungen nutzen:
lcm(a,b) = a  (kleinstes gemeinsames Vielfaches)
gcd(a,b) = b  (größter gemeinsamer Teiler)
a mod b = 0  (Modulo-Division)


Gruß
Martin


Bezug
                                                                
Bezug
RSA mit maple: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 17:01 Mi 28.02.2007
Autor: LeonL

danke,
aber ich suche eher einen festen Begriff und keine "Rechenform", möchte halt einfach rational ersetzen.

> Zwischenprobe:=(d*e-1)/L; if type(Zwischenprobe,rational) then print("Probe OK") else error("Probe falsch") end if;


Bezug
                                                                        
Bezug
RSA mit maple: ganzzahlig=integer
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 03:09 Mi 07.03.2007
Autor: Peter_Pein

Hi,


du meinst, dass Zwischenprobe ganzzahlig sein soll?
Dann verwende type(Zwischenprobe, integer).

Oder falls Zp eine positive ganze Zahl sein soll:
type(Zp, posint)

Gruß, Peter


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Maple"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]