-
Das RSA-Verfahren
Wie wir schon im Diffie-Hellman-Protokoll gelernt haben, soll unsere Einwegfunktion in eine Richtung einfach sein, und in die andere Richtung sehr aufwendig/unmöglich sein. Eine andere Variante ist als das RSA-Verfahren bekannt. Dabei haben wir keinen gemeinsammen geheimen Schlüssel, sonderen nur noch unsere öffentlichen und privaten Schlüssel.
Schlüsselgenerierung
- Wähle die …
-
Diffie-Hellman Protokoll
Warum?
Das große Problem bei symmetrischen Verschlüsselungsverfahren, die Cäsar oder Vigenere ist der Schlüsselaustausch. Es ist halt einfach schwierig einen Schlüssel zu verteilen und dann auch noch sicher zu halten. Besonders ist uns ja bei Vigenere aufgefallen, dass es uns als Angreife mit steigender Menge an Nachrichten immer einfacher wird …
-
Vigénere Verfahren
Ansatz
Im Grunde genommen ist das Vigénere-Verfahren eine Erweiterung von Cäsar. Dabei Verschlüsseln wir nicht mit einem konstanten offset, wie bei Cäsar, sondern mit einem Schlüsselwort. Dabei wird dann das Schlüsselwort so lange hintereinandergeschrieben, bis es die Länge des zu verschlüsselnden textes erreicht. Dann wird dabei der Index des Schlüssel-Buchstaben …
-
Kryptologie
Kryptologie beschreibt die Kommunikation zwischen zwei Parteien ohne die Inteferenz oder das Mitlesen von Dritten
-
Cäsar Verschlüsselung
Die Cäsar Verschlüsselung ist eine der einfachsten Verschlüsselungsarten
-
Dijkstra-Algorithmus
Der Dijkstra ist ein bekannter und belibter greedy pathfinding-Algorithmus
-
Spannbäume
Ein Spannbaum ist in der Graphentheorie ein Teilgraph eines ungerichteten Graphen, der ein Baum ist und alle Knoten dieses Graphen enthält.
-
Grundlagen der Graphentheorie
Der Aufbau eines Computers ist seit den ersten Modellen weitestgehend unverändert. Auch wenn sich innerhalb der einzelnen Komponenten einiges geändert hat, bleibt der Aufbau des Computers gleich und auch im kleinen Modell nachvollziehbar. Ein Graph ist eine Menge von Knoten, welche durch Kanten verbunden werden. Und damit kann man eine Menge tolle Dinge machen. :)
-
Grundlagen eines Computers
Der Aufbau eines Computers ist seit den ersten Modellen weitestgehend unverändert. Auch wenn sich innerhalb der einzelnen Komponenten einiges geändert hat, bleibt der Aufbau des Computers gleich und auch im kleinen Modell nachvollziehbar.
-
Grenzen der Automatisierbarkeit
Schon Alan Turing hat sich darüber Gedanken gemacht, welche Problem sich automatisiert lösen lassen, und ob man für jedes Problem eine Maschine bauen könnte.
-
Turingmaschine
Die Turingmaschine ist der nächste Schritt in unserer Reise durch die Automaten. Mit einer Turingmaschine kann man schon sehr vortgeschrittene Probleme lösen, deren Grenzen eigentlich nur an die Grenzen unserer modernen Computer stoßen.
-
Kellerautomat
Ein Kellerautomat ist eine Erweiterung des endlichen Automatens, welcher über einen Speicher verfügt.
-
Grammatiken und formale Sprachen
Jede Sprache ist nach bestimmten Regeln aufgebaut. Grammatiken beschreiben diese.
-
Automaten
Ein endlicher deterministischer Automat(DEA) hat eine endliche Anzahl an Zuständen, von welchen er einen immer als aktuellen Zustand hat.
-
Urheberrecht
Im Internet hat jedes digitale Werk irgendeinen Besitzer. Und dieser kann über seine Werke Berechtigungen verteilen, wie er will. Um dies zu vereinfachen gibt es Lizenzen, wie das Creative Commons Modell, wo dann immer jeder am Namen erkennen kann, was man darf und was nicht.
-
Grundlagen der Datenübertragung
Um Daten über eine digitale Verbindung übertragen zu können, muss sich auf einen code geeignet werden.
-
Netzwerktopologien
Netzwerke haben verschiedene Formen und damit einhergehende Vor- und Nachteile
-
OSI-Schichtenmodell
Den Datenverkehr über Netzwerke kann man mit dem OSI-Schichtenmodell abstrakt darstellen und verschiedenen Ebenen verschiedene Aufgaben zuordenen.
Schicht Ebene Aufgabe 7 Anwendung Kommunikation zwischen Programmen (HTTP, IMAP, SMTP) 6 Präsentation Übersetzung zwischen Anwendungs- und Netzwerkformaten (SSL) 5 Sitzung Verbindungen können gemanaged werden (zwischen server und client) (Wird von TCP auch … -
ER-Diagramme
Unterrichtsreihe Datenbankentwurf
-
Tabellen
Tabellen sind ein einfacher Weg, um Daten zu speichern und zu verknüpfen. Sie werden auch dazu verwendet, um Datenbanken darzustellen und um mit ihnen zu interagieren. Tabellen sind grundsätzlich folgendermaßen Aufgebaut:
Die Kunst beim Datenbankentwurf ist es dabei den Anwendungsfall so in eine Datenbank umzusetzten, dass keine Anomalien auftreten. Anomalien …
-
Binärbäume
Ein Binärbaum ist eine hirarische Datenstruktur. Das bedeutet, dass er nicht linear ist und damit nicht die Objekte in einer einfachen Reihenfolge darstellt. Ein Baum besteht aus Knoten, die mit Kanten verbunden werden. Dabei kann man ihn abstrakt als Wurzel beschreiben, die eine linkes und ein rechtes kind hat. Dieses …
-
Stacks, Queues und Listen
Lineare Datenstrukturen Generell
Eine Lineare Datenstruktur ist eine Datenstruktur die Objekt (Klassen, Primitive, etc...) in reihenfolge speichern kann. Beispiele dafür sind Arrays, Listen oder Queues. Im folgenden beschäftige ich mich mit dynamischen linearen Datenstrukturen, die ihre Struktur (Speicherbelegung) dynamisch an die anzahl der Listenelemente anpassen und damit flexibel groß sein …
-
Backtracking
Grundsätzliches Prinzip
Backtracking arbeitet grundsätzlich nach dem Trial-and Error printzip. Es wird also so lange nach einer Lösung gesucht, bis sie gefunden wird. Wenn abzusehen ist, dass der aktuelle Lösungsweg nicht zur Lösung führen wird, wird ein Schritt zurück gegangen und nach einer alterantiven Lösung gesucht. Am einfachsten werden Backtracking …
-
Komplexität
Mitschriften aus dem Unterricht
Komplexitaet von suchen
- gegeben ist ein feld mit n elementen
- Benchmarking ist nicht aussagekräftig
- Nicht die Algorithmen, sondern die Umgebung (Computer, architektur, betriebssystem, etc.) wird dabei betrachtet
- Besser ist die Betrachtung in Einzelschritten des Algorithmus
- Bestimmung in abstrakter Zeiteinheit
- Unabhängig von environment
Beispiel anhand der Schritte …
-
Suche
Lineare Suche
Bei der Linearen Suche wird über jedes Element in der Liste gelaufen und mit dem gesuchten Element verglichen. Wenn die Elemente gleich sind, wird der Index zurück gegeben. Wenn kein Element gefunden wird, wird -1 zurück gegeben.
graph TD Z([Start]) --> A[index=0 … -
Sortieren
Sortierverfahren
Selection Sort
Es gibt das min und das max selection sort verfahren. Beim Min-Selection sort wird immer aus einem unsortierten bereich das minimum herausgesucht und dann als letztes Element der sortierten Menge angefügt.
Struktogram
Java Implementierung
public static void minSort(int[] a) { for (int iUnsorted = 0; iUnsorted < a …
-
Rekursion
Rekursion
Eine Prozedur teilt ein Problem auf indem es sich immer wieder selbstaufruft, bis es zu einer einfachen Lösung kommt. Eine rekursive Berechnung geht von dem zu berechnenden Folgeglied aus und berechnet von dort ausgehend immer weitere Folgeglieder.
Rekursionsschreibweise:
- Basis ist der startpunkt
- z.B.
f(0)=0, f(1 …
- z.B.
- Basis ist der startpunkt
-
GUI mit Java
Was haben wir gemacht
- GUI erstellung mit dem Java-Editor
- Temperaturumwandler GUI
- Taschenrechner GUI
- Game of life GUI
- Game of life Simulator programmiert
- GUI erstellung mit dem Java-Editor