(C) David Vajda 20250315 Digitaltechnik - Basics TTL - Transistor Transistor Logic - Bipolor CMOS - Complementary Metal Oxid Semiconductor field effect transistor - Unipolar Transistor Bipolor Transistor PNP NPN Collector: C Basis: B Emitter: E Arbeitsstromkreis Steuerstromkreis Arbeitsstromkreis: Collector - Emitter Steuerstromkreis: Basis - Emitter Feld Effekt Transistor - Unipolor Source - S Drain - D Gate - G CMOS: Unipolor 74Cxx: CMOS 74HCxx: CMOS 74AHCxx: CMOS 74HCT.. TTL Kompatibel 74S 74AS 74ALS 74LS ... Bipolar Logik AND OR NOT Natuerliche Zahlen: 1... unendlich Rationale Zahlen: Mit Bruch Boolesche Algebra: {wahr,falsch} Schaltalgebra: {0,1} Variablen Eingangsvariablen: xn, ..., x4, x3, x2, x1, x0 Eingangsvariablen: a, b, c, ... Eingangsvariablen: A, B, C, ... Ausgangsvariable: y Ausgangsvariable: C UND/logisch A B C 0 0 0 0 1 0 1 0 0 1 1 1 ODER/logisch A B C 0 0 0 0 1 1 1 0 1 1 1 1 NOT/logisch A B 0 1 1 0 Schaltalgebra: 5V gleichstrom TTL-Gatter NOT: 7404 AND: 7408 OR: 7432 TTL-Gatter: 7404, 7408, 7432 7 Pins Westen 7 Pins Osten Eingangsvariable: 0 (0 Volt) 1 (5 Volt) Ausgangsvariable 0 (0 Volt) 1 (5 Volts) Daneben Versorgungsspannung Spannung von + Pol nach - Pol + entspricht: VCC - entspricht: GND Alternativen: VCC, VDD, VEE, AVCC, VPP, VSS VSS: GND VPP: Programmierspannung Eingangsvariable/Ausgangsvariable 0 - (0 Volt) entspricht Pegel GND 1 - (5 Volt) entspricht Pegel VCC Versorgungsspannung, zusaetzlich, zu Variable VCC: 5 Volt GND: 0 Volt VCC: 5 Volt: rotes kabel GND: 0 Volt: schwarzes kabel Pin 1: A Pin 2: B Pin 3: C Pin 7: GND Pin 14: VCC Zaehlweise IC - Osten: 1, 2, 3, 4, 5, 6, 7, von norden nach sueden Westen: 8, 9, 10, 11, 12, 13, 14, von sueden nach norden/ 14, 13, 12, 11, 10, 9, 8 von norden nach sueden 7404/7408/7432: NOT, AND, OR: AND, OR: 2 Eingaenge, 1 Ausgang UND/ODER Gatter 4 OR, 4 AND, 7404: 6 NOT OR/AND: A, B, C NOT: A, B OR/AND: A, B, C A, B: Eingang C: Ausgang NOT: A, B A: Eingang B: Ausgang A1, B1, C1 A2, B2, C2 A3, B3, C3 A4, B4, C4 DNF: NOT/NOT NOT AND OR Weitere IC's ROM PROM EPROM EEPROM Speicherbausteine - matrixfoermig, nicht fluechtige datenspeicher Programmierbare Logikbausteine PAL PLA GAL Enthalten ausdruecke: Programmiersprache: ABEL Spaeter: VHDL - FPGA Pins A0 .. A15/A0 .. A7 D0 .. D15/D0 .. D7 CE - Chip Enable OE - Output Enable WE - Write Enable VCC GND NC - Not Connected VPP - Programmierspannung 84... -- zweiter teil - verschluesselungsalgorithmus (C) David Vajda 20250315 Algorithmus/verschluesselungsalgorithmus - Basics Sortierte Folge von Zahlen: 2, 3, 4, 5, 6, 7, 8 Folge von Zahlen: 8, 2, 8, 4, 6, 3, 7, 4, 4, 3, 2, 7 Feld: Speicherbereich im Computer, der Folge von Zahlen enthaelt: Algorithmus Grundoperationen: Grundrechenarten: ADD, SUB, MUL, DIV, +, -, *, \ Addieren, Subtrahieren, Multiplizieren, Dividieren Vergleiche: <, =, > <, <=, ==, >=, >, != kleiner, gleich, groesser kleiner gleich, ... nicht gleich Transfer: <- <= := = oder so wiederholen von programmabschnitten entscheiden welcher der folgendenden programmabschnitten, mittels vergleiche vergleiche + sprung (programmabschnitt): bedingte verzweigung wiederholung, schleife bedingte ausfuehrung, if-then-else -----> Operationen Operanden: a, b, c, d, e, f, g ... oder ax, bx, dx, cx, ... oder r0, r1, r2, r3, ... oder i, j, x, y, z oder x0, x1, x2, x3, ... Algorithmus: Addiere zu jeder Zahl der folge jeweils einzeln eine 2: (8, 2, 8, 4, 6, 3, 7, 4, 4, 3, 2, 7) -> (10, 4, 10, 6, 8, 5, 9, 6, 6, 5, 4, 9) Addiere zu jeder Zahl der folge jeweils einzeln eine 1: (8, 2, 8, 4, 6, 3, 7, 4, 4, 3, 2, 7) -> (9, 5, 9, 5, 7, 4, 8, 5, 5, 4, 3, 8) Ueber eine wiederholung: Jede zahl jeweils einzeln des Feldes, der Folge von vorne nach hinten wiederhole solange bis am Ende des Feldes Addiere zu jedem Element/jeder Zahl im Feld jeweils einzeln eine 2/1/wert a ... wiederhole bis fertig Sortieralgorithmus: (8, 2, 8, 4, 6, 3, 7, 4, 4, 3, 2, 7) -> (2, 2, 3, 3, 4, 4, 4, 6, 7, 8, 8) Verschluesselungsalgorithmus symmetrisch assmmetrisch Klartext Verschluesselter Text Klartext wird verschluesselt mit schluessel zum verschluesselten Text zerschluesselter Text wird entschluesselt mit schluessel zum entschluesselten text Moeglichkeiten: Vertausche die Elemente einer Folge von zeichen (klartext) mittels eines schluessels in ihrer reihenfolge (wird so weit ich weiss nicht oder selten angewendet) Ersetze die Elemente einer Folge von Zeichen (klartext) durch jeweils andere Zeichen eines anderen Alphabets Ersetze die Elemente (Zeichen) eines Klartextes durch Zeichen des gleichen Alphabets, aber indem sinne, dass eine arithmetische Operation zwischen Schluessel und Klartext stattfindet ersetze jeweils die gleichen zeichen des klartextes durch die gleichen zeichen oder durch unterschiedliche Digitaltechnik: Kodierer: ordnet den zeichen eines zeichenvorrats die zeichen eines anderen zu: DIN 44300/181 Digitaltechnik: kodierer: Zeichenvorrat Verschluesselung: Alphabet Mathematik: Permutation: Teilmenge der Natuerlichen zahlen: 1, 2, 3, 4, 5 (urbildmenge) Zielmenge: 1->4, 2->5, 3->1, 4->2, 5->4, z.B. Permutation: Ordnet derselben untermenge der natuerlichen zahlen jeweils ein Element der selben menge zu in beliebiger reihenfolge - viele Permutationen injektiv: ein Element der zielmenge wird ein mal getroffen, nicht zwei mal surjektiv: jedes Element der Zielmenge wird ein Mal getoffen, es gibt keine luecken, keines wird ausgelassen bijektiv: beides kodierer - nicht unbedingt 1 kann zu 4 kodiert werden aber auch 2 zu 4: das ist nicht injektiv symmetrisches kodierverfahren: 1. moeglichkeit: perfekte permutation - das heisst, jedes element - wert - buchstabe - zeichen wird auf ein anderes abgebildet Text ABCD - wird zu BCDE durch addition von 1 zu zeichen 2. moeglichkeit: nicht injektiv: nicht statistisch einfach zu erraten Schluessel 1234 Text: ABCD -> BDFH assymetrisch - Trick der Mathematiker 1.) Informatik: Algorithmus kann jeder - jeder kann schleifen, sortieren 2.) Mathematik: Jeder kann Mathematik, aber keiner beweisen, nur: Mathematiker Graphentheorie: jeder kann es sich denken und nur die wenigstens finden beweise Assymetrisch: Algorithmus: paar Zahlen, ausserhalb des Schluessels, Schluessel, Klartext, wiederholungen, uebliche operationen, nicht sehr komplizier Assymmetrisch: PGP - Pretty good privacy - gpg - gnu pritty good privacy klartext, verschluesselter text schluessel: schluesselpaar: privat, oeffentlich durch Operationen wird der klartext zum verschluesselten, sie sind verknuepft schluessel sonst alleine bei assymmetrisch: schluesselpaar, oeffentlich, privat, sind verbunden sie muessen zusammen erzeugt werden sender/empfaenger klartext/geheime botschaft privater schluessel/oeffentlicher schluessel (schluesselpaar) sender/empfaenger in dem falle: benutzen alle B den oeffentlichen schluessel der von A oeffentlich preis gegeben wird A erzeugt oeffentlichen und privaten schluessel Vorsicht: Tricky: nicht der Sender ist A und der Empfaenger B Sondern der Empfaenger A und der Sender B B veroeffentlicht oeffentlichen schluessel, mit dem der sender die nachricht an den empfaenger verschluesselt empfaenger entschluesslt nachricht mit privaten, der zum oeffentlichen gehoert privat, oeffentlich empfaenger: privat oeffentlich, veroeffentlicht oeffentlichen an alle absender, entschluesselt mit privaten absender: oeffentlich, verschluesselt seine zu sendende nachricht mit dem des empfaengers assymetrisch: schluessel zum entschluesseln entspricht nicht schluessel zum verschluesseln: ABCD -> BCDE - schluessel 1 - verschluesseln + 1, entschluesseln -1 der gleiche, der weg der hin fuehrt, fuehrt auch zurueck assymetrisch verfahren: IDEA 64 128 Alternative zum unsicheren DES-Algorithmus 3DES 64 56, 112, 168 Nachfolgeversion des DES-Algorithmus (auch Triple-DES genannt) CAST5 64 128 In der Praxis wenig verbreitet BLOWFISH 64 128 Von Sicherheitsguru Bruce Schneier entworfen AES 128 128 Derzeit am weitesten verbreitet AES192 192 AES256 256 TWOFISH 128 256 Nachfolgeversion von Blowfish CAMELLIA128 128 128 Vergleichbar mit AES CAMELLIA192 192 CAMELLIA256 256 Prüfsummen (Hashfunktionen) SHA |