Freitag, 27. Februar 2015

Revolutionärer Katastrophen-Chatbot


Der Chatbot, den ich in den kommenden Wochen erstellen will, soll in der heutigen handy-süchtigen Welt, den Menschen Abhilfe leisten, die sich auf Grund ihres evolutionären Stadiums nicht in der Lage sehen einen Notruf per Telefon im konventionellen Sinne abzugeben.






Damit die Rettungsleitstelle die geeigneten Rettungsmittel einsetzen kann, sind einige Informationen erforderlich. Deswegen wird nach folgendem Schema vorgegangen:


1. Wo ist es passiert?
  • genauer Notfall-Ort
  • Straßenname
  • Hausnummer/ Stockwerk
  • Kilometerangabe
  • Fahrtrichtung (bei Autobahn)

2. Was ist passiert?
  • welche Art von Notfall?
  • welche Fahrzeuge sind beteiligt?
  • laufen gefährliche Flüssigkeiten aus?
  • sind Personen eingeklemmt?

3. Wie viele Personen sind verletzt/erkrankt?

4. Welche Verletzungen/Erkrankungen?

5. Warten auf Rückfragen
  • fehlende Punkte werden erfragt
  • gibt es eine Rückschreibmail?
  • wer schreibt?

Schlussendlich soll dann auch, wenn möglich, eine ungefähre Ankunftszeit der Rettungskräfte angegeben werden.

x

x

folgt

Dienstag, 16. Dezember 2014

Dynasys - Räuber Beute

Eine Simulation der Fortpflanzung von Feldmäusen, die Nachkommen haben, die nicht sofort fortpflanzungsfähig sind:






http://www.claus-albowski.de/Simulation/Texte/08-Simulation%20Sonderfunktionen%20von%20Dynasys.pdf









Dienstag, 2. Dezember 2014

Dynasys

Mit Dynasys kann man nun am Computer Simulationen erstellen die man vorher als Wirkungsdiagramm skizziert hat:


Geburten sind abhängig von der Größe der Bevölkerung und der Geburtenrate (Parameter).
Tode sind abhängig von der Größe der Bevölkerung und der Todesart (Parameter).


Leider habe ich kein Dynasys für Mac gefunden und kann deshalb nicht meine Aufgaben hier reinstellen...

Wirkungsdiagramme

Mit Wirkungsdiagrammen kann man skizzieren was man später Programmieren möchte.

Dabei gehe ich wie folgt vor:

Von einem Kasten zu einem anderem zeichne ich einen Pfeil in Richtung des Verlaufs. 
Dabei gibt das + oder - jeweils an wie sich der Zustand auf den der Pfeil zeigt verändert, wenn sich der Zustand von dem der Pfeil kommt vergrößert.




  • Mehr Geburten führen zu Mehr Bevölkerung
  • Mehr Bevölkerung führt zu Mehr Geburten
  • Mehr Bevölkerung führt zu Mehr Todesfälle
  • Mehr Todesfälle führen zu Weniger Bevölkerung

Wachstumsberechnung





Formeln:

Bedeutung der Formelzeichen:

f(t) = Funktion des zu beschreibenden Sachverhalts
f(0) = Anfangsbestand
t = meistens Zeit
k = Wachstumskonstante
G = Grenze bzw. Kapazitätsgrenze oder Sättigungsgrenze


lineares Wachstum:
f(t) = k*t+f(0)

exponentielles Wachstum:
f(t) = f(0)*e^k*t

begrenztes Wachstum:
f(t) = G+(f(0)-G)*e^-k*t

logistisches Wachstum:
f(t) = (f(0)*G)/(f(0)+(G-f(0))*e^-G*k*t)

Vorteile von Simulationen


  • Vorhersagen einer Situation in der Zukunft machen
  • Simulationen sind preisgünstig im Vergleich zu realen Versuchen
  • Simulationen sind schnell durchzuführen
  • Vorgänge lassen sich vereinfachen oder kleiner darstellen
  • Simulationen lassen sich anwenden auch wenn die formelmäßige Behandlung zu kompliziert oder noch unerforscht ist.
  • Viele Versuche sind zu gefährlich um sie in der Realität auszuprobieren.
  • Eine Versuche sind auch aus ethischen Gründen nicht durchführbar.

Das Runge Kutta Verfahren

Das Runge Kutta Verfahren ist genauer, benötigt jedoch auch mehr Speicherkapazität. 


Es ermittelt vereinfacht gesagt die Durchschnittsteigung zwischen zwei Punkten und rechnet mit dieser. 


Genauer gesagt wird aus den berechneten 4 Hilfssteigungen m1,m2,m3,m4   wird nun das gewichtete arithmetische Mittel:
  
m = 1/6*( m1+2m2+2m3+m4 )

Dieses Verfahren wird zwischen den nächsten zwei Punkten wiederholt.


Euler Cautchy Verfahren

Mit dem Euler Cautchy Verfahren lässt sich grob ein Simulationsgraph erstellen:


  1. Man bestimmt die Anfangssteigung des ersten Punkts.
  2. Man führt/zeichnet diese Steigung bis zum nächsten Punkt entlang der x-Achste weiter.
  3. Man bestimmt die Steigung des zweiten Punkts.
  4. Man zeichnet diese Steigung bis zum nächsten Punkt entlang der x-Achste weiter usw.

Nachteil ist die Ungenauigkeit des Graphens, jedoch wird bei diesem Verfahren wenig Speicherkapazität beansprucht.

Mittwoch, 11. Juni 2014

RSA Einführung, Einweg und Asymmetrie

RSA ist eine deutlich sichere Methode als Caesar und Vigenère um Nachrichten zu verschicken.

Sie beruht auf der Asymmetrie und der Einwegfunktion (der Falltürfunktion).


Einwegfunktion am Beispiel von RSA:

Da es sehr schwer ist eine sehr große Zahl, ursprünglich aus 2 sehr großen Primzahlen gebildet, in seine Primfaktoren zu zerlegen, ist die Funktion "Multipliziere zwei sehr große Primzahlen" eine Einwegfunktion. 


Asymmetrie am allgemeinem Beispiel:

Ich lege meinen Klartext in eine Kiste und mache ein Schloss (public key) drum, welches jeder sehen kann. Den Schlüssel (private key) dafür habe nur ich. Nun schicke ich die Kiste zum Empfänger, dieser tut sein Schloss (public key) um die Kiste drum, welches jeder sehen kann. Den Schlüssel (private key) dafür hat nur er. Dann schickt er mir die Kiste zurück und ich entferne mit meinem Schlüssel (private key) mein Schloss (public key). Dann schicke ich die Kiste zurück an den Empfänger. Der Kann dann mit seinem Schlüssel (private key) sein Schloss (public key) entfernen und die Nachricht lesen ohne das je ein Schlüssel übermittelt werden musste, was sehr unsicher ist.


Verschlüsselungsverfahren, die zwei verschiedene Schlüssel verwenden, einer zum Verschlüsseln und einer zum Entschlüsseln, sind asymmetrische Verschlüsselungsverfahren. Bei asymmetrischen Verfahren ist kein Schlüsselaustausch notwendig.



Halten wir fest:

Wählt Bob zwei (große!!) Primzahlen  und  und hält diese geheim, so kann er gefahrlos das Produkt  veröffentlichen. Niemand außer ihm wird an die Primfaktoren  und herankommen.



RSA ist knackbar, dauert jedoch nur sehr lange. 
Deswegen benutzen zum Beispiel schnelle Dienste wie mobile Datenübertragung nur einfache Schlüssel.
Sehr schwere Schlüssel werden, jedoch erst mit Rechnern die erst in einigen Jahren verfügbar sind, knackbar sein.



Quelle: http://www.matheprisma.uni-wuppertal.de/Module/RSA/, Seite 4/12

Vigenére knacken

Um die Vigenére-Verschlüsselung zu knacken sind 3 Schritte notwendig:

  1. Im Geheimtext müssen gleiche Buchstabenfolgen gesucht werden, die sich wiederholen. Jede mehrmals vorkommende Buchstabenfolge wird notiert und der Abstand zur Gleichen ermittelt.
  2. Die Länge des Schlüsselworts kann nur aus einem Teiler der Abstände bestehen.
  3. Das Schlüsselwort kann mit Hilfe einer Tabelle ermittelt werden. Hier gibt es so viele Spalten, wie das Schlüsselwort lang ist und für jeden Buchstaben im Alphabet eine Zeile. Dann wird durch die Häufigkeitsanalyse ermittelt, wie die einzelnen Buchstaben des Schlüsselworts lauten.

Vigenére-Verschlüsselung

Die bekannteste Art der polyalphabetischen Chiffrierung ist die Vigenère-Verschlüsselung.

Zur Chiffrierung der Nachrichten benötigt man ein Schlüsselwort (nicht mehr nur einen Schlüsselbuchstaben wie bei Caesar und das Vigenère-Quadrat. Dabei kann das Schlüsselwort jede beliebige Buchstabenfolge sein.
Das Schlüsselwort wird so häufig wiederholt, wie der Klartext lang ist. Und dann wird mithilfe des Vigenère-Quadrats jeder Buchstabe für sich, wie bei Caesar, chiffriert.


Schlüsselwort
BOND
Schlüsselwort

BONDBONDBONDBONDBONDBO
Klartext
TREFFINDERGRUENENTANNE
Geheimtext

UFRIGWAGFFTUVSAHOHNQOS


Um die Vigenére-Verschlüsselung zu implementieren muss ersteinmal der Algorithmus von Caesar geändert werden:




  1. Die Eingabe des Schlüssels ist nicht mehr ein char sondern ein String.
  2. Beim casten des Schlüssels wird nun nicht mehr nur der Charakter Schlüssel sondern der jeweilige Schlüsselbuchstabe in den ASCII Code konvertiert.
  3. Beim chiffrieren eines Textes muss ein Index für den Schlüssel mit der Länge des Schlüssels festgelegt werden. Er beginnt bei 0 und erhöht sich jeweils um 1 nach einem Schleifendurchlauf. Dabei muss modulo gerechnet werden mit der Länge des Schlüssels.
Beim dechiffrieren läuft das Prozedere genau andersrum.


Quelle: http://www.gat-blankenburg.de/pages/fach/info/vigen.htm

Die Häufigkeitsanalyse

Die Häufigkeitsanalyse ist eine Methode zur Entschlüsselung (Dechiffrierung) verschlüsselter Texte. Sie kann den Schlüssel einer geheimen Botschaft ermitteln, dadurch, dass jeder Buchstabe statistisch unterschiedlich häufig verwendet wird. Somit kann zu jedem verschlüsselten Buchstaben der statistisch passendste Buchstabe gesucht. Somit kann die Verschiebung des Alphabets durch den Schlüssel ermittelt werden. Am einfachsten geht dies mit den Buchstaben E und N. Die Häufigkeitsanalyse wird bei der Caesar und Vigenère-Verschlüsselung angewendet.

Hier findet Ihr die unterschiedlichen Häufigkeiten der Buchstaben im Deutsch und im Englischen um damit Eure geheimen Botschaften zu entschlüsseln:

Buchstabe
Deutsch
Englisch
Buchstabe
Deutsch
Englisch
a
6,5 %
8,2 %
n
9,8 %
6,7 %
b
1,9 %
1,5 %
o
2,5 %
7,5 %
c
3,0 %
2,8 %
p
0,8 %
1,9 %
d
5,1 %
4,3 %
q
0,02 %
0,1 %
e
17,4 %
12,7 %
r
7,0 %
6,0 %
f
1,7 %
2,2 %
s
7,3 %
6,3 %
g
3,0 %
2,0 %
t
6,2 %
9,1 %
h
4,8 %
6,1 %
u
4,4 %
2,8 %
i
7,6 %
7,0 %
v
0,7 %
1,0 %
j
0,3 %
0,2 %
w
1,9 %
2,4 %
k
1,2 %
0,8 %
x
0,03 %
0,2 %
l
3,4 %
4,0 %
y
0,04 %
2,0 %
m
2,5 %
2,4 %
z
1,1 %
0,1 %