Seite 1 von 1

Caesar Verschlüsselung/ceasar cipher in R

Verfasst: Do Sep 21, 2017 11:05 pm
von bewini
Hallo zusammen. Ich sitze vor einer Aufgabe und komme einfach nicht weiter.
###
Die Aufgabe lautet:
Die Wissenschaft der Kryptologie beschaftigt sich mit der Ver- und Entschlusselung von Informationen.
Die Caesar-Verschlusselung ist eine Methode, die zu den einfachen Substitutionsverfahren zahlt1. Dabei
wird ein Alphabet von Klartextbuchstaben abgebildet in ein Alphabet von Geheimtextbuchstaben. Diese
Abbildung erfolgt zyklisch durch eine Verschiebung um k Positionen nach links. Betrachtet man zum
Beispiel das Alphabet der Kleinbuchstaben, dann ergibt sich mit k = 3 folgende (zyklische) Verschiebung:
Klartext a b c d . . . x y z
Geheimtext d e f g . . . a b c
Aus dem Wort "klartext" wird in Geheimschrift dann das Wort "noduwhaw".

a) Schreiben Sie eine Funktion encrypt(), die einen Klartext mit der Caesar-Verschlusselung chiriert.
Die Grundstruktur der Funktion soll folgendermaen aussehen:
encrypt <- function(text, verschiebung){
...
...
...
}
Das Argument text dient zur Ubergabe des Klartextes, das Argument verschiebung gibt die Anzahl
der Positionen an, um die ein Alphabet rotiert werden soll.
Ruckgabe der Funktion ist eine Liste mit folgenden Elementen:
Den originalen Klartext,
den verschlusselten Geheimtext,
die Verschiebung, die zur Verschlusselung verwendet wurde.
Die Funktion soll auerdem folgende Spezikationen erfullen:
Entgegen obigem Beispiel sind die zu verschusselnden Zeichen nicht nur Kleinbuchstaben,
sondern (in dieser Reihenfolge!) Grobuchstaben, Kleinbuchstaben, Leerzeichen und die
Satzzeichen "Punkt", "Komma", "Ausrufezeichen" und "Fragezeichen".
Die Funktion soll keine Umlaute berucksichtigen.
Die Elemente des Outputs sollen sinnvoll bezeichnet werden.
Der Output der Funktion soll von der Objektklasse encrypt sein.
###


Was ich bisher habe:

encrypt <- function(text, verschiebung)
{intToUtf8(utf8ToInt(text) + verschiebung)}

text <- "Hallo"
text
verschiebung <- 3
verschiebung

chifrtext <- encrypt(text, verschiebung)
chifrtext
###
Das funktioniert auch ganz gut, nur leider ist dabei die bestimmte Reihenfolge nicht berücksichtigt (Großbuchstaben, Kleinbuchstaben, Leerzeichen, Punkt, Komma, Ausrufezeichen, Fragezeichen).

Meine Frage nun: Hat jemand eine Idee wie man das unter bringt?
Wäre um schnelle Antwort sehr dankbar!
LG

Re: Caesar Verschlüsselung/ceasar cipher in R

Verfasst: Fr Sep 22, 2017 8:25 am
von bigben
Hi,

in einem ersten Schritt solltest Du klären, wie Du einen einzelnen Buchstaben codierst. Dafür kann es nützlich sein, die korrekte Abfolge aller Buchstaben als Vektor zu haben, z. B. so:

Code: Alles auswählen

abfolge <- c(LETTERS, letters, " ", ".", ",", "!", "?")
An dieser Stelle codierst Du auch die richtige Reihenfolge.

Als nächstes könnte Dir die Funktion which() helfen, einen Buchstaben in diesem Vekor zu finden. Mit der Plus-Funktion `+` und der Modulofunktion `%%` kannst Du dann den dafür einzusetzenden Buchstaben finden.

Führt Dich das in die richtige Richtung?

LG,
Bernhard

Re: Caesar Verschlüsselung/ceasar cipher in R

Verfasst: Fr Sep 22, 2017 2:33 pm
von EDi
Hat ein Kommilitone von dir schon gefragt... Hat google wohl noch nicht indiziert...

viewtopic.php?f=7&t=562&p=2187&hilit=encrypt#p2187

Re: Caesar Verschlüsselung/ceasar cipher in R

Verfasst: Mo Sep 25, 2017 10:04 am
von jogo
Hallo bewini,

willkommen im Forum!
Ich habe gesehen, dass Du Deine Frage wortgleich in mindestens ein weiteres Forum gestellt hast.
Möchtest Du nicht die dortigen Leser darüber informieren, dass hier bereits Deine Frage bearbeitet wird?
Meiner Meinung nach gebietet dies der Anstand.

Gruß, Jörg

Re: Caesar Verschlüsselung/ceasar cipher in R

Verfasst: Mo Sep 25, 2017 1:25 pm
von bigben
Hier gibt es übrigens den Vollltext der Aufgabe: https://moodle.lmu.de/mod/resource/view.php?id=78899