Kryptographie I - Zusammenfassung

Caesar et al.

Caesar

MASC

Verschlüsseln

z.B. mit Schlüsselwort ERLANGEN

x A B C D E F G H
f(x) E R L A N G H I

Entschlüsseln

Mit Tabelle.

TRANSMAT

Verschlüsseln

Schlüssel aus zwei natürlichen Zahlen n,m

Zeilenweise in m×n Matrix schreiben
z.B. (m,n)=(3,4), Text DEPARTMENT MATHEMATIK

DEPA THEM
RTME ATIK
NTMA WXYZ

Entschlüsseln

Schlüsseltext spaltenweise in m×n Matrix schreiben und zeilenweise auslesen.

TRANSSPA

Verschlüsseln

Mit Schlüssel ERLANGEN und Text AMFREITAGENTFAELLTDIEVORLESUNG

E R L A N G E N
2 8 5 1 6 4 3 7
A M F R E I T A
G E N T F A E L
L T D I E V O R
L E S U N G    

Wobei in der zweiten Zeile jeweils der Index des Zeichens im Schlüsselwort unter stabiler Sortierung ist.

Den Chiffretext durch spaltenweises Auslesen mit Reihenfolge aus Zeile 2.
RTIUAGLLTEOIAVGFNDSEFENALRMETE

Entschlüsseln

ALBC-2

f((xy))=(k1k2k4k5)(xy)(k3k6)

STROM

Text m1 m2
Schlüssel k1 k2
Chiffretext f(m1,k1) f(m2,k2)

AUTOKEY

Text W I N T E R S E M E S T E R
Schlüssel F R E I T A G W I N T E R S

PLAYFAIR

Wir ersetzen I mit J.

Verschlüsseln

mit Schlüsselwort KRYPTOGRAPHIE in 5×5-Matrix

K R Y P T
O G A H I
E B C D F
L M N Q S
U V W X Z

Teile Text in Blöcke der Länge 2, evtl mit eingesetztem X
WASSERWA, SX, SE, RX

VIGENÈRE

Text A U C H I M O K T O B E R
Schlüssel F R E I T A G F R E I T A

ADFGVX

Kasiski-Test

Zahlentheorie

Primfaktorzerlegung

ggT(±Πpiai,±Πpibi)=Πpimin(ai,bi)ggT(±Πpiai,0)=ΠpiaiggT(0,0)=0 kgV(±Πpiai,±Πpibi)=Πpimax(ai,bi)kgV(±Πpiai,0)=0kgV(0,0)=0

Euklidischer Algorithmus

Satz von Bézout
ggT(a,b)=xa+yb

z.B für ggT(10,7):

10=17+37=23+13=31+0

1=723=72(1017)=210+37
Also ist 3 multiplikativ invers 7 in Z/10Z

Die Gleichung ax+by=c

  • genau dann lösbar, wenn ggT(a,b)c

Invertierbarkeit

Sei nN und aZ

  • a hat genau dann ein Inverses in Z/nZ, wenn ggT(n,a)=1

Eulersche φ-Funktion

  • ggT(m,n)=1φ(mn)=φ(m)φ(n)

Die Gleichung axbmodm

Seien a,bZ und mN, au+mv=ggT(a,m)

  • axbmodm ist genau dann lösbar, wenn ggT(a,m)b
  • Gilt ggT(a,m)b, dann gilt
    x0=bggT(a,m)uax0bmodm
  • Gilt ax0bmodm, dann folgt
    {xZaxbmodm}={x0+imggT(a,m)iZ}
  • Gilt ggT(a,m)b, dann gibt es genau ggT(a,m)modm verschiedene Lösungen

Chinesischer Restesatz

xa1modm1xa2modm2xa3modm3 t=m1m2m3t1=tm1=m2m3t2=tm2t3=tm3

Die Lösung ist dann eindeutig in Z/tZ

d1t11modm1d2t21modm2d3t31modm3

xd1t1a1+d2t2a2+d3t3a3modt

Fibonacci

n 0 1 2 3 4
fn 0 1 1 2 3  

Primzahltests

Fermat

kleiner Satz von Fermat
für p prim und aZ
apamodp
ggT(a,p)=1ap11modp
Satz von Euler

für nN,aZ und ggT(a,n)=1, dann gilt
aφ(n)1modn

Insbesondere
axaxmodφ(n)(modn)

Fermat-Pseudoprimzahl zur Basis a

n zusammengesetzt, aber ggT(a,n)=1 und an11modn

Miller-Rabin

Miller-Rabin-Primzahltest zur Basis a

Sei nN ungerade und n>a.
Wir zerlegen n1=2q, q1mod2 und b=aqmodn.
Wenn
b=1 oder b2in1modn,0i1
besteht n den Miller-Rabin-Test zur Basis a

Miller-Rabin-Pseudoprimzahl zur Basis a
n zusammengesetzt, aber besteht Miller-Rabin-Test zur Basis a
  • Carmichael-Zahlen

    "Fermat-Pseudoprimzahl für alle a "
    Sei nN, n zusammengesetzt. n ist eine Carmichael-Zahl, wenn für alle bZ, b,n koprim:
    bn11modn

    Korselt-Kriterium
    nN, n zusammengesetzt, ist genau dann eine Carmichael-Zahl, wenn für alle Primteiler p von n gilt p1n1 und n ist quadratfrei, d.h. für alle Primteiler p gilt p2n.

Ordnung

ordn(a)=min{kBak1modn}

Sei nN,aZ,ggT(a,n)=1

  • ak1modnordn(a)k
  • {kBak1modn}={ordn(a)N}
  • ordn(a)φ(n)
  • akalmodnklmodordn(a)

Primitive Wurzel

Ist ordp(g)=p1, dann ist g Primitivwurzel modulo p

Ist g Primitivwurzel modulo p?

Sei p1=q1e1q2e2qnen.
g ist Primitivwurzel modulo p genau dann wenn
gp1qi1modp
für alle i

Diskrete Logarithmen

gxamodn

  • Ist bestimmt in ordn(g)
  • Ist genau dann lösbar wenn ordn(a)ordn(g)

RSA

Methode

Schlüsselerzeugung

Wähle Primzahlen p,q und berechne N=pq.
Dann ist φ(N)=(p1)(q1)
Wähle e>1 mit ggT(e,φ(N))=1
Berechne d=e1modφ(N)

Öffentlicher Schlüssel (N,e)
Privater Schlüssel (N,d)

Verschlüsseln von m

c=memodN

Entschlüsseln von m

m=cdmodN

Signieren von m

Alice signiert mit ihrem privaten Schlüssel (N,d)

h=hash(m)s=hdmodN

Bob verifiziert mit Alices öffentlichen Schlüssel (N,e)

h=hash(m)h=semodN

Die Signatur ist gültig, wenn h=h

Faktorisierungsmethoden und Angriffe

Fermat

Sei N eine ungerade natürliche Zahl. Wir suchen
N=u2w2
da dann
N=(uw)(u+w)

  • Beispiel N=2263

    2263=48

    u u2N u2N
    48 41 6.4
    49 138 11.75
    52 441 21

    2263=522212=(5221)(52+21)=3173

Bei Kenntnis des öffentlichen und privaten Schlüssels

Gegeben sei öffentlicher Schlüssel (N,e) und privater Schlüssel (N,d).

  1. k:=edN
  2. k:=k+1 solange bis ked1
  3. s=N+1ed1k und Δ=s24N
  4. Wenn s24NΔ2, gehe zu 2, sonst N=sΔ2s+Δ2

Bei Kenntnis eines Exponenten für Z/NZ

Mit Kettenbrüchen

Kettenbruchentwicklung

z.B für α=449211

449=2211+27211=727+2227=122+2522=45+25=22+12=21+0

Somit hat α die Kettenbruchentwicklung [2,7,1,4,2,2]

Näherungsbrüche

Sei [a0,a1,a2,] die Kettenbruchentwicklung von aR so ist [a0,a1,,an] der n-te Näherungsbruch von a.

[2]=2[2,3]=2+13[2,3,5]=2+13+15

Im Fall dN14 kann N mit Kettenbruchentwicklungen faktorisiert werden.
e(p1)(q1)kd=1d(p1)(q1)

Weitere Methoden

Diffie-Hellman

Alice und Bob einigen sich auf Primzahl p und g, 2gp2.
Alice wählt geheim eA und sendet fA=geAmodp
Bob wählt geheim eB und sendet fB=geBmodp
kABgeAeBfAeBfBeAmodp

ElGamal

Schlüsselerzeugung

Wähle Primzahl p und Primitivwurzel g modulo p, 3gp1 und gp1.
Wähle e,0ep2 und berechne
f=gemodp

Öffentlicher Schlüssel (p,g,f)
Privater Schlüssel e

Verschlüsseln von m

Wähle z,0zp2 zufällig.
c1=gzmodpc2=mfzmodp
Cyphertext ist (c1,c2)

Entschlüsseln von (c1,c2)

m=c1p1ec2modpm=c2c1ec2(c1e)1(alternativ)

Signieren von m

Alice signiert mit öffentlichen Schlüssel (p,g,f) und privaten Schlüssel e
Wähle zufällig z,0zp2 mit ggT(z,p1)=1

h=hash(m)b=gzmodpc=z1(hbe)mod(p1)

Wobei 0bp1 und 0cp2
Die Signatur ist (b,c)

Bob verifiziert Alices Signatur (b,c) mit Alices öffentlichen Schlüssel (p,g,f).

h=hash(m)t=fbbcmodpt=ghmodp

Die Signatur ist gültig, wenn 0bp1 und t=t

Pollardsche ρ-Methode

Author: Florian Guthmann

Created: 2023-03-10 Fri 12:19

Validate