Caesar Verschlüsselung/ceasar cipher in R

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
bewini

Caesar Verschlüsselung/ceasar cipher in R

Beitrag 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
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Caesar Verschlüsselung/ceasar cipher in R

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Caesar Verschlüsselung/ceasar cipher in R

Beitrag 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
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Caesar Verschlüsselung/ceasar cipher in R

Beitrag 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
bigben
Beiträge: 2777
Registriert: Mi Okt 12, 2016 9:09 am

Re: Caesar Verschlüsselung/ceasar cipher in R

Beitrag von bigben »

Hier gibt es übrigens den Vollltext der Aufgabe: https://moodle.lmu.de/mod/resource/view.php?id=78899
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten