Informatik Security
Topic 3 Number-Theoretic Algorithms and Hardness Assumptions
Topic 3 Number-Theoretic Algorithms and Hardness Assumptions
-
- 1 / 37
-
Flashcards
Logaritmus / nach X umstellen:
y = 2^x
2^4 = 16
2^10 = 1024
log2 x = y
log2 16 = 4
log2 1024 = 10
Logarithmus zur Basis 2
Logaritmus / nach X umstellen:
y = 5^x
5^4 = 625
5^10 = 9765625
log5 x = y
log5 625 = 4
log5 9765625= 10
Logarithmus zur Basis 5
Logaritmus / nach X umstellen:
y = e^ax
e^4 = 54.59....
e^10 = 22026.46....
log x = y
log 54.59... = 4
log 22026.46.... = 10
Logarithmus zur Basis e (natürlicher logarithmus oder auch ln genannt)
e = 2,718 (eulersche Zahl)
Wie sollte der Algorithmus aussehen um ein Element INT aus einer additiven Gruppe zu generieren, welche in eineren Menge nicht vorkommt?
Wie sollte der Algorithmus aussehen um ein Element INT aus einer multiplikativen Gruppe zu finden?
Wie sollte der Algorithmus aussehen um ein Element der Gruppe mit der Ordnung q zu finden?
Wie sollte der Algorithmus aussehen um zufällige Primzahlen der bitlänge k zu generieren?
wenn die bitlänge 2 ist, dann kann es nur noch 2 oder 3 sein.
Wenn bitlänge länger, dann random bits aufrufen mit k-2 um zu Vorderst eine eins und zu hinterst auch eine eins aufzurufen.
Damit soll erreichtwerden dass nur ungerade zahlen (prim= immer ungerade) generiert werden und die Länge garantiert ist
Es gibt diverse Anzähle um zu überprüfen ob eine Zahl eine Primzahl ist.
Wie sieht der Algorithmus mit dem einfachsten/primitivste Ansatz aus und was für eine Laufzeit hat dieser?
Es gibt diverse Anzähle um zu überprüfen ob eine Zahl eine Primzahl ist.
Wie sieht der probalistische Ansatz und was für eine Laufzeit hat dieser?
Der probalistische Ansatz basiert darauf, dass die Primzahl mit einer zufälligen Zahl verglichen wird und geprüft wird ob sie eine Komposition davon ist. Je mehr Zufallszahlen getestet werden, umso mehr steigt die Wahrscheinlichkeit, dass eine Zahl Prim oder nicht ist.
Die Laufzeit des Algorithmus ist O(log(n)^6) wobei in der Praxis viel schneller ist.
Algorithmus: (n=zu testende Zahl, t=Anzahl durchläufe)
Alle Zahlen (ausser zwei) die mod 2 ergeben, sind gerade und somit automatisch keine Primzahlen.
Für Anzahl Durchläufe eine Zufallszahl generieren und schauen ob sie eine Komposition davon ist.
Es gibt diverse Anzähle um zu überprüfen ob eine Zahl eine Primzahl ist.
Wie sieht der Fermat Algorithmus aus und wieso sollte dieser nicht so verwendet werden?
Fermat's Theorem besagt, dass p eine Primzahl ist wenn a^(p-1) = 1 mod p für alle a € {1....p-1}
Es gibt jedoch Zahlen welche diese Bedingung erfüllen, jedoch kein Primzahlen sind: Carmichael numbers
Deshalb wird der Fermat Satz mit dem AKS Algorithmus kombiniert damit mit einer Wahrscheinlichkeit bestummen werden kann ob eine Zahl prim ist oder nicht
Es gibt diverse Anzähle um zu überprüfen ob eine Zahl eine Primzahl ist.
Wie sieht der am häufstigen verwendete Algorithmus aus?
Der Miller-Rabin test ist der meist verwendete Algorithmus da ein Durchlauf des Algorithmus bereits nur noch eine Chance von 0.25 hat um falsch zu liegen.
Der Algorithmus basiert auf den Fermat Satz: a^(n-1) - n = 0 mod n
a=zufällige Zahl (random number a<n)
n=zu prüfende Zahl
r und u= zahlen welche folgende Gleichung erfüllen müssen n-1=u2^r , grösser null sind und r ist ungerade
false= könnte prim sein / true= keine Primzahl
Wie sollte der Algorithmus aussehen um den gcd von zwei Zahlen herauszufinden? Tipp: Euclid
Wie ist die Laufzeit?
Wie sollte der Algorithmus aussehen um den gcd von zwei Zahlen herauszufinden und zusätzlich noch das Vielfache von diesem gcd? Tipp: Euclid
Wie ist die Laufzeit?
Für was soll der erweiterte Algorithmus besser sein als der einfache Euklid?
Welche Mathematisch Operation ist wohl die teuerste in vielen cryptografischen Applikationen?
Modularer Exponent = x^y mod n
Was ist eine "one-way" function? erklären Sie das anhand von der Funktion f(x)
Für alle x ist die Rechnung f(x) "einfach" zu berechnen. Der Rückweg, also f^-1(y) ist wiederum "hart" zu berechnen.
Wann ist eine mathematisch gesehen eine funktion "easy" und wann ist sie "hard"?
polynomial=easy (zb: O(1), O(log n), O(n), O(n log n), O(n^2))
super-polynomial=hard (zb: O(2^n), O(n!), O(n^n))
DL, CDH, DDH sind nicht in allen Gruppen sicher. Wo zum Beispiel ist DL nicht sicher?
DL ist in der Gruppe Zn nicht sicher da dort der erweiterte Euklid Algorithmus angewendet werden kann.
DL, CDH, DDH sind nicht in allen Gruppen sicher. Wo zum Beispiel ist DDH nicht sicher?
DDH ist in der Gruppe Z*p nicht sicher.
polynomial time reduction ??????
?????