digit20250315.txt


(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