Shift-and-Add-Multiplikation

Größe: px
Ab Seite anzeigen:

Download "Shift-and-Add-Multiplikation"

Transkript

1 Shift-and-Add-Multiplikation In diesem Kapitel behandeln wir die Multiplikation zweier Körperelemente im binären Erweiterungskörper F 2 m, d.h. für Polynome a(x), b(x) œ Z 2 [x] f(x) und einem irreduziblen Polynom f(x) =x m + r(x) œ Z 2 [x] vom Grad m berechnen wir a(x) f b(x) =a(x)b(x) mod f(x). Im Prinzip können wir das bereits berechnen, indem wir die beiden Polynome a(x) und b(x) ausmultiplizieren und anschließend nach dem bereits genannten Verfahren reduzieren. Einen anderer Ansatz, bei dem immer nach Zwischenschritten modulo f(x) reduziert wird, beschreibt der folgende Algorithmus, der auch Shift-and-Add genannt wird. Der Vorteil bei diesem Algorithmus im Vergleich zur erstgenannten Variante liegt darin, dass man immer Polynome als Zwischenwerte erhält die höchstens den Grad m haben. Würde man die Polynome erst vollständig ausmultiplizieren, so hätte man Polynome mit Grad 2m, was für die praktische Implementierung bedeuten würde, dass man doppelt so lange Register benötigt. Bei kleinen Körpern spielt das kaum eine Rolle, aber bei Körpern mit beispielsweise Elementen, die auf einer resourcenbeschränkten Hardware implementiert werden sollen, ist das unter Umständen vorteilhaft. Ein weiterer Vorteil des Shift-and-Add ist die hardwarefreundliche Realisierbarkeit. Es lassen sich einfache Multiplizierer auf Basis einer einfachen Schieberegisteroperation implementieren. Grundlage des ersten Shift-and-Add-Algorithmus ist folgende Überlegung. Seien a(x) und b(x) die beiden Polynome und sei f(x) das Reduktionspolynom. Multiplizieren wir a(x) mit b(x),

2 40 michael braun dann können wir a(x) voll ausschreiben a(x) =a m 1 x m a 1 x + a 0 und jeden Summanden mit b(x) multiplizieren. Eine wesentliche Eigenschaft der Modulo-Operation besteht darin, dass wir nun modulo f(x), anstatt auf das gesamte ausmultiplizierte Polynom a(x)b(x), auf einzelne Summanden anwenden können, ohne das Endergebnis zu verändern. Insgesamt können wir also schreiben: a(x)b(x) mod f(x) = a 0 b(x) B 0 + a 1 xb(x) mod f(x) B 1 =xb 0 mod f(x) + a 2 x 2 b(x) mod f(x) B 2 =xb 1 mod f(x). + a m 1 x m 1 b(x) mod f(x) B m 1 =xb m 2 mod f(x) Man erkennt sofort, dass sich daraus ein Algorithmus ableiten lässt, denn vom niedrigsten Koe zienten a 0 bis zum höchsten Koe zienten a m 1 wird von Zeile zu Zeile der Wert b(x) neu := xb(x) alt mod f(x) berechnet und mit a i multipliziert und zum Gesamtergebnis dazuaddiert. Da a i nur Null oder Eins ist, ist die Multiplikation mit a i gleichbedeutend mit einer If-Abfrage: Entweder wird b(x) neu zum Ergebnis c(x) addiert, wenn a i = 1, oderb(x) neu wird nicht dazu addiert, wenn a i = 0 ist. Wir erhalten also den folgenden Algorithmus. Algorithmus 10 (R2L-Shift-and-Add (Polynome)). Input: f(x) =x m + r(x) œ Z 2 [x], a(x), b(x) œ Z 2 [x] f(x) Output: c(x) =a(x) f b(x) 1 c(x) := 0 2 for i := 0 to m 1 do 3 if a i = 1 then c(x) := c(x)+b(x) 4 b(x) := xb(x) mod f(x) 5 return c(x)

3 public-key-algorithmen 41 Der einzige noch nicht geklärte Teil ist die Berechnung in Zeile 4. Um diese Operation algorithmisch aufzubereiten, müssen wir uns zunächst überlegen, was es bedeutet ein Polynom b(x) mit x zu multiplizieren und danach modulo f(x) zu reduzieren. Es gilt: xb(x) mod f(x) = x(b m 1 x m 1 + b m 2 x m b 1 x + b 0 ) mod f(x) = b m 1 x m + b m 2 x m b 1 x 2 + b 0 x + b d 1 f(x) mod f(x) = b m 1 x m + b m 2 x m b 1 x 2 + b 0 x + b m 1 (x m + r(x)) mod f(x) = b m 1 x m + b m 2 x m b 1 x 2 + b 0 x + b m 1 x m + b m 1 r(x) =(b m 2 x m b 1 x 2 + b 0 x + 0)+b m 1 r(x) mod f(x). Das Ergebnis xb(x) mod f(x) lässt sich in zwei Schritten berechnen: ein Linksshift von b(x) in Vektordarstellung und anschließende Addition von f(x) (bzw. von r(x), wenn man das vorderste Bit b m 1 in xb(x) nicht berücksichtigt), falls das vorderste Bit von b(x) gleich Eins ist. Insgesamt ergibt sich nun folgende Verfeinerung des Multiplikationsalgorithmus Shift-and-Add, der seinen Namen von der den beiden so eben erklärten Schritten: (1) Schieben von b(x), und (2) Addition von g(x). In diesem Algorithmus verwenden wir die Vektordarstellungen der Polynome. Bezeichnet im folgenden u(x) = q d i=0 u i x i ein Polynom, so wird mit dem Vektor u = u d...u 1 u 0 das Polynom u(x) dargestellt. Des weiteren bezeichnet s ü u für Vektoren s, u gleicher Länge das komponentenweise xor und u<<1 den um eine Position nach Links verschobene Vektor u, d.h. es wird an u rechts der Wert 0 angehängt: u<<1 := u d...u 1 u 0 0. Algorithmus 11 (R2L-Shift-and-Add (Vektoren)). Input: a, b, r œ Z m 2 mit f(x) =xm + r(x) Output: c œ Z m 2 mit c(x) =a(x) f b(x) 1 c := 0 2 for i := 0 to m 1 do 3 if a i = 1 then c := c ü a 4 b := b<<1 5 if b m = 1 then b := b ü f 6 return c = c m 1...c 1 c 0

4 42 michael braun Der Aufwand zur Durchführung beträgt O (m2 ) Bitoperationen: Für jeden der m Schleifendurchläufe werden maximal zwei binäre Vektoren der Länge m addiert. Bei einer Softwareimplementierung auf einer Plattform mit q einem W -Bit-Prozessor, kann man Polynome a(x) = m 1 i=0 ai xi aus dem Körper F2m bzw. die entsprechenden binären Vektoren a = am 1... a1 a0 in einem Array A bestehend aus t = Ám/W Ë Wörtern speichern: A[t 1]... A[1]A[0] = am 1... a1 a0. tw m Bei xor- und Schiebeoperationen können bei geschickter Implementierung jeweils W Bit parallel verarbeitet werden. Der Aufwand der einzelnen Operationen kann damit um einen Faktor W reduziert werden. Bei einer Hardwareimplementierung kann durch die Verwendung von Schieberegistern der gewünschten Länge m der zeitliche Aufwand auf O (m) reduziert werden. Schiebe- und xoroperationen können in O (1) durchgeführt werden. Beispielsweise zeigt Abbildung 11 das Schaltwerk eines R2L-Shift-and-AddMultiplizierer in F25 mit f (x) = x5 + x b4 b3 b2 b1 b0 & & & & & c4 c3 c2 c1 c0 0 a 0, a1, a2,... Eine weitere Shift-and-Add-Variante erhalten wir aus a(x)b(x) durch sukzessives Ausklammern des Faktors x: a(x)b(x) = (... (am 1 b(x)x + am 2 b(x))x a1 b(x))x + a0 b(x). Diese Abfolge kann man realisieren (beginnend von m 1 bis 0), indem man das Ergebnispolynom c(x) zuerst mit x multipliziert und anschließend b(z ) dazuaddiert wird, falls ai = 1 ist. Analog wie bei dem R2L-Algorithmus wird das Ergebnis nach jeder Schiebeoperation modulo f (z ) gerechnet, indem das Polynom r (x) dazuaddiert wird, falls das höchstwertige Bit von c(x) Eins war. Abbildung 11: Multiplizierer für f (x) = x5 + x2 + 1

5 public-key-algorithmen 43 Der entsprechende Algorithmus in Vektorschreibweise kann wie folgt formuliert werden. Aufgrund der Abarbeitung des Polynoms a(x) =a m 1 x m a 1 x + a 0 vom höchstwertigen zum niederwertigsten Bit, also von links nach rechts sprechen wir von der L2R-Shift-and-Add-Variante. Algorithmus 12 (L2R-Shift-and-Add (Vektoren)). Input: a, b, r œ Z m 2 mit f(x) =xm + r(x) Output: c œ Z m 2 mit c(x) =a(x) f b(x) 1 c := 0 2 for i := m 1 downto 0 do 3 c := c<<1 4 if c m = 1 then c := c ü f 5 if a i = 1 then c := c ü b 6 return c = c m 1...c 1 c 0 Die Hardwareimplementierung von L2R-Shift-and-Add benötigt nur ein veränderbares Register c im Gegensatz zu R2L-Shiftand-Add, bei der zwei modifizierbare Register b und c verwendet werden.

6

7 Polynommultiplikation nach Karatsuba-O man Durch volles Ausmultiplizieren von Polynomen a(x), b(x) œ Z p [x] mit Grad kleiner als m erhält man eine Komplexität O(m 2 ). Ziel dieses Kapitels ist die Beschreibung des Algorithmus nach Karatuba und O man, welcher asymptotisch einen Aufwand von O(m log2(3) ) O(m 1,59 ) hat. Dazu stellen wir Polynome a(x) = q m 1 i=0 a ix i durch zwei Polynome A 0, A 1 œ Z p [x] mit Grad kleiner als k := Ám/2Ë dar: a(z) =A 1 x k + A 0. Die Multiplikation zweier Polynome a(x), b(x) dieser Form ergibt: a(x)b(x) =(A 1 x k + A 0 )(B 1 x k + B 0 ) Nach Ausmultiplizieren gilt nun bzw. = A 1 B 1 x 2k +(A 1 B 0 + A 0 B 1 )x k + A 0 B 0. (A 0 +A 1 )(B 0 +B 1 )=A 0 B 0 + A 1 B 0 + A 0 B 1 + A 1 B 1 A 1 B 0 + A 0 B 1 =(A 0 +A 1 )(B 0 +B 1 ) A 0 B 0 A 1 B 1 Einsetzen in obige Gleichung ergibt a(x)b(x) =A 1 B 1 x 2k +[(A 0 +A 1 )(B 0 +B 1 ) A 0 B 0 A 1 B 1 ]x k + A 0 B 0 Anstelle von ursprünglichen vier Multiplikationen A 0 B 0, A 1 B 0, A 0 B 1 und A 1 B 1 halber Länge k m/2 müssen wir in dieser Gleichung drei Multiplikationen A 0 A 1, A 1 B 1, (A 0 +A 1 )(B 0 +B 1 )

8 46 michael braun halber Länge k durchführen, um a(x)b(x) zu berechnen. (Natürlich wurden bei dieser Betrachtung Additionen von Polynomen der Länge k zunächst vernachlässigt.) Die Abbildung 12 visualisiert dieses Verhalten. Zunächst erkennt man ganz links ein schwarzes Quadrat. Die Kantenlänge soll den Wert m darstellen. Ein ganz ausgefülltes Quadrat entspricht somit dem Aufwand O(m 2 ). Das mittlere Bild zeigt nun noch drei Multiplikationen der halben Kantenlänge k m/2. Iteriert man diesen Ansatz, dass man eine Multiplikation durch drei Multiplikationen von Polynomen halber Länge schreiben kann, so ergibt sich das Bild ganz rechts. Der schwarz dargestellte Fläche entspricht dem Aufwand bei iterierter Anwendung der Karatsuba-O man-umformung. Insgesamt ergibt sich eine Komplexität von O(m log 2(3) ) O(m 1,59 ). Zeigen kann man dies mit dem Mastertheorem. Geometrisch handelt es sich bei der Figur um ein Fraktal mit der Dimension log 2 (3) =1, 59. Abbildung 12: Asymptotisches Verhalten bei Karatsuba-O man klassisch: Karatsuba Karatsuba Asymptotisch ist Karatsuba-O man besser als die zuvor vorgestellten Methoden, aber der Mehraufwand durch Aufsplitten und den zusätzlichen Operationen wie Addition lohnt sich erst ab einem Grad von m 300. Neben Karatsuba-O man gibt weitere asymptotisch schnellere Multiplikationsmethoden als O(m 2 ): Diskrete Fouriertransformation: O(m log 2 (m)) Schönhage-Strassen: O(m log 2 (m) log 2 (log 2 (m))

9 Binäre Polynomquadierung Um ein binäres Polynom a(x) =a m 1 x m a 1 x + a 0 œ Z 2 [x] mit sich selbst zu multiplizieren, können wir natürlich die bisher beschriebenen Algorithmen verwenden. Nutzt man jedoch die Arithmetik der Koe zienten in Z 2 aus, so kann die Qudrierung e zienter gelöst werden. Es gilt a(x) 2 = a(x)a(x) =a m 1 x 2m a 1 x 2 + a 0. Da alle gemischten Koe zienten a i a j für i = j genau zweimal in der Summe auftreten, fallen diese modulo 2 weg und es bleiben ausschließlich die genannten Koe zienten bei der Quadrierung ürbig. In Vektorschreibweise erhalten wir a 2 = 0a m 1 0a m a 2 0a 1 0a 0, d.h. durch Aufspreizen des Vektors a und Einfügen von Nullen ergibt sich a 2. Der Aufwand zur Quadrierung beträgt somit O(m). Bei Softwareimplementierungen auf W -Bit-Plattformen kann dieses Aufspreizen beschleunigt werden, indem man z.b. alle 2 W /4 möglichen Bitfenster der Länge W /4 aufspreizt, Nullen einfügt und die Ergebnisse der Länge W /2 in einer Tabelle abspeichert. Bei dem Aufspreizen eines Arrays A für das Polynom a(x) werden dann sukzessive alle Fenster der Größe W /4 von A abgearbeitet und mittels Table-Lookup zu einem Array B zusammengesetzt, welches dann das Polynom b(x) =a(x) 2 darstellt. Bei Hardwareimplementierung kann man ähnlich den Shiftand-Add-Verfahren ein Schaltwerk angeben, welches durch direkte Verdrahtung die Quadrierung a(x) 2 und anschließende Reduktion modulo f(x) angibt.

10 48 michael braun Beispiel 10. Als Beispiel betrachten wir das Polynom den Körper F27. Ein unzerlegbares binäres Polynom vom Grad 7 ist f (x) = x7 + x + 1. Wir nehmen ganz allgemein a(x) = a6 x a1 x + a0. Durch Quadrieren und Reduktion modulo f (x) erhalten wir a(x)2 mod f (x) = a6 x12 + a5 x10 + a4 x8 + a3 x6 + a2 x4 + a1 x2 + a0 mod x7 + x + 1 = (a6 + a3 )x6 + a6 x5 + (a2 + a5 )x4 + a5 x3 + (a1 + a4 )x2 + a4 x + a0. Eine direkte Verdrahtung dieser modularen Quadrierung ergibt beispielsweise das Schaltwerk in Abbildung 13. a6 a5 a4 a3 a2 a1 a0 c6 c5 c4 c3 c2 c1 c0 Abbildung 13: Hardwarequadrierer in F27

11 Binäre Polynommultiplikation Im folgenden werden wir zwei binäre Polynome ausmultiplizieren. Dazu setzen wir, wie bereits im Shift-and-Add-Kapitel beschrieben, voraus dass wir eine W -Bit Plattform haben und die binären Polynome a(x) = q m 1 i=0 a ix i entsprechend in einem Array der Länge t = ÁW /më ablegen: A[t 1]...A[1]A[0] =0...0a m 1...a 1 a 0. Desweitern bezeichnet für ein W -Bit Wort U = U W 1...U 1 U 0 das Bit U i mit bit(u, i). Für Polynome a(x) = q m 1 i=0 a ix i und b(x) = q m 1 i=0 b ix i gilt: a(x)b(x) =a 0 x 0 b(x)+a 1 x 1 b(x)+...+ a m 1 x m 1 b(x). Entsprechend ergibt sich der folgende Algorithmus: Wir durchlaufen alle Koe zienten von a(x) und addieren im Falle, dass das Bit a i gleich Eins ist, das mit x i multiplizierte Polynom b(x) zum Akkumulator. In Vektor- bzw. Arrayschreibweise erhalten wir: 1 C := 0 2 for i := 0 to m 1 do 3 if a i = 1 then 4 C := C ü (B <<i) 5 return C Bitweises Abarbeiten des Polynoms a(x) als Array A ergibt eine geschachtelte Schleife:

12 50 michael braun 1 C := 0 2 for k := 0 to W 1 do 3 for j := 0 to t 1 do 4 if bit(a[j], k) =1 then 5 C := C ü (B <<(jw + k)) 6 return C Ist nun C = C[n 1]...C[1]C[0] ein binäres Array, so bezeichnen wir mit C{j} := C[n 1]...C[j + 1]C[j] das abgeschnittene Array. Mit Hilfe dieser Operation können wir die Operation durch den Ausdruck C := C ü (B <<(jw + k)) C{j} := C{j} ü(b <<k) beschreiben. Sukzessives Schieben des Registers B ergibt folgenden Algorithmus: Algorithmus 13 (R2L-Kamm-Multiplikation (Array)). Input: Arrays A, B mit binären Polynomen a(x), b(x) Output: Array C mit binärem Polynom c(x) =a(x)b(x) 1 C := 0 2 for k := 0 to W 1 do 3 for j := 0 to t 1 do 4 if bit(a[j], k) =1 then 5 C{j} := C{j} üb 6 if k = W 1 then B := B<<1 7 return C Anstatt beim niederwertigsten Bit zu beginnen, kann analog zum Shift-and-Add beim höchstwertigen Bit beginnen (Die Schleife für j kann trotzdem von 0 nach t 1 gelaufen werden, da die Operationen unabhängig von der Reihenfolge sind). In diesem Fall muss das Register C geschoben werden. Da C bis auf Länge 2t anwächst, benötigt die resultierende L2R-Kamm-Multiplikation mehr Schiebeoperationen als die R2L-Kamm-Multiplikation.

13 public-key-algorithmen 51 Algorithmus 14 (L2R-Kamm-Multiplikation (Array)). Input: Arrays A, B mit binären Polynomen a(x), b(x) Output: Array C mit binärem Polynom c(x) =a(x)b(x) 1 C := 0 2 for k := W 1 to 0 do 3 for j := 0 to t 1 do 4 if bit(a[j], k) =1 then 5 C{j} := C{j} üb 6 if k = 0 then C := C<<1 7 return C Anstatt die W Bit mit dem Laufindex k nacheinander abzuarbeiten, kann man diese auch in kleinere Fenster der Länge w, welche ein Teiler von Wortbreite W ist, aufteilen und Zwischenergebnisse für kleine Polynome vorberechnen. Algorithmus 15 (Table-Lookup-L2R-Kamm (Array)). Input: Arrays A, B mit binären Polynomen a(x), b(x) Output: Array C mit binärem Polynom c(x) =a(x)b(x) 1 berechne B u = u(x)b(x) für u(x) vom Grad <w 2 C := 0 3 for k := (W /w) 1 to 0 do 4 for j := 0 to t 1 do 5 u := [bit(a[j], wk +(w 1)),...,bit(A[j], wk)] 6 C{j} := C{j}üB u 7 if k = 0 then C := C<<w 8 return C Die Vorberechnung der Werte u(x)b(x) für Polynome u(x) vom Grad w kann beispielsweise mit der R2L-Methode durchgeführt werden.

14

15 Modulare binäre Polynomreduktion Durch die Multiplikation von zwei Polynomen jeweils vom Grad höchstens m 1 entsteht ein Polynom c(x) vom Grad höchstens 2m 2. Dieses Polynom muss nun modulo f(z) =x m + r(x) reduziert werden. Um das i-te Bit von c(x) für 2m 2 Ø i Ø m zu reduzieren wir allgemein folgender Schritt durchgeführt: c(x) mod f(x) = c i x i + c i 1 x n c 0 mod f(x) = c i x i + c i 1 x n c 0 + c i x i m f(x) mod f(x) = c i x i + c i 1 x n c 0 + c i x i m (x m + r(x)) mod f(x) =(c i 1 x n c 0 )+c i x i m r(x) mod f(x). In Array-Darstellung ergibt sich folgender Algorithmus: 1 for i := 2m 2 downto m do 2 if c i = 1 then 3 C := C ü (R <<(i m)) 4 return C (auf m Bit maskiert) Berechnen wir aus i den entsprechenden Index j, der angibt um viele ganze W -Bit Wörter der Shift durchgeführt wird und den Index k, der angibt, um viele Reststellen innerhalb eines W -Bit Wortes geschoben wird, so erhalten wir folgende Variante: 1 for i := 2m 2 downto m do 2 if c i = 1 then 3 j := (i m)/w ; k := (i m) jw 4 C := C ü (R <<(jw + k)) 5 return C (auf m Bit maskiert)

16 54 michael braun Substiutieren wir die Operation durch den Ausdruck C := C ü (R <<(jw + k)) C{j} := C{j} ü(r <<k) wie im letzten Kapitel, so erhalten wir eine weitere Variante 1 for i := 2m 2 downto m do 2 if c i = 1 then 3 j := (i m)/w ; k := (i m) jw 4 C{j} := C{j} ü(r <<k) 5 return C (auf m Bit maskiert) Da R immer nur jeweils um k Stellen zwischen 0 und W 1 geschoben werden muss, berechnen wir vorab die Werte U k := R<<kfür alle möglichen Werte 0 Æ k<w. Dies erspart uns die Schiebeoperationen bei der eigentlichen Reduktion: Algorithmus 16 (Reduktion). Input: Array C mit Polynom c(x) vom Grad höchstens 2m 2, Array R wobei f(x) =x m + r(x) unzerlegbar ist Output: Array C mit c(x) mod f(x) A Precomputation: for all k := 0 to W 1 do U k := R<<k 1 for i := 2m 2 downto m do 2 if c i = 1 then 3 j := (i m)/w ; k := (i m) jw 4 C{j} := C{j}üU k 5 return C (auf m Bit maskiert) Für Reduktionspolynome, bei denen nur wenige Bit gesetzt sind (3 oder 5), und die Bit eng bei einander liegen, kann man e zienter reduzieren als mit dem allgemeinen Algorithmus. Wir betrachten im folgenden eine optimierte Reduktion für das binäre Polynom f(x) =x x 7 + x 6 + x =r(x) In hexadezimaler Notation auf einer 32-Bit-Plattform wird dies als Array F [5]...F[1]F [0] =(0x8, 0x0, 0x0, 0x0, 0x0, 0xC9)

17 public-key-algorithmen 55 dargestellt. Um nun in einem Polynom c(x) = q 324 i=0 c ix i ein Bit c i für i Ø 163 zu reduzieren, so muss man nach den vorangegangenen Überlegungen c i x i 163 r(x) zu c(x) addieren. Folglich muss in c(x) an den Stellen i = i 156 i = i 157 i = i 160 i = i 163 der Wert c i addiert werden. Demnach ergibt sich folgender erster Reduktionsalgorithmus 1 for i := 324 downto 163 do 2 c i 156 := c i 156 ü c i 3 c i 157 := c i 157 ü c i 4 c i 160 := c i 160 ü c i 5 c i 163 := c i 163 ü c i 6 return c(x) Wir untersuchen nun, was es bedeutet im Polynom c(x) das Bit c i zu reduzieren, wenn c(x) in einem Array C[10]...C[1]C[0] abgelegt ist. Dazu sehen wir uns für i die beiden Grenzen in dem Datenwort C[j] an: Für i = 32j + 31 wird an den Stellen 32(j 4)+3, 32(j 4)+2, 32(j 5)+31, 32(j 5)+28 der Wert c i addiert. Für i = 32j wird an den Stellen 32(j 5)+4, 32(j 5)+3, 32(j 5), 32(j 6)+29 der Wert c i addiert. Folglich wird das Datenwort C[j] auf die Wörter C[j 4], C[j 5] und C[j 6] addiert. Entsprechend lässt sich eine Variante der speziellen Reduktion modulo f(x) für Arrays formulieren:

18 56 michael braun 1 for j := 10 downto 6 do 2 T := C[j] 3 C[j 6] := C[j 6] ü (T <<29) 4 C[j 5] := C[j 5] ü (T <<4) ü (T <<3) ü T ü (T >>3) 5 C[j 4] := C[j 4] ü (T >>28) ü (T >>29) 6 T := (C[5] >> 3) << 3 /* oder T := C[5]&0xF F F F F F F 8 */ 7 C[0] := C[0] ü (T <<4) ü (T <<3) ü T ü (T >>3) 8 C[1] := C[1] ü (T >>28) ü (T >>29) 9 C[5] := C[5]&0x7 10 return C Es können noch eine Schiebeoperation eingespart werden, wenn man den Linksshift in Zeile 6 direkt bei den Operationen in den Zeilen 7 und 8 verarbeitet. Algorithmus 17 (spezielle Reduktion). Input: Array C mit Polynom c(x) vom Grad höchstens 324 Output: Array C mit c(x) mod x x 7 + x 6 + x for j := 10 downto 6 do 2 T := C[j] 3 C[j 6] := C[j 6] ü (T <<29) 4 C[j 5] := C[j 5] ü (T <<4) ü (T <<3) ü T ü (T >>3) 5 C[j 4] := C[j 4] ü (T >>28) ü (T >>29) 6 T := C[5] >> 3 7 C[0] := C[0] ü (T <<7) ü (T <<6) ü (T <<3) ü T 8 C[1] := C[1] ü (T >>25) ü (T >>26) 9 C[5] := C[5]&0x7 10 return C

19 Euklidischer Algorithmus für binäre Polynome Algebraisch betrachtet bildet (Z, +, ) einen euklidischen Ring. Allgemein heißt ein Integritätsring (R, +, ) euklidisch, wenn es eine multiplikative Abbildung N : R\{0} æ N gibt (die so genannte Normfunktion), so dass für alle Ringelemente a, b œ R, b = 0, weitere Ringelemente s, r œ R existieren mit a = sb + r wobei r = 0 oder N(r) <N(b). Eine Abbildung N : R\{0} æn heißt genau dann multiplikativ, wennn(a b) =N(a) N(b) gilt für alle a, b œ R. Für den euklidischen Ring der ganzen Zahlen Z ist die Normfunktion entsprechend der Betrag N(a) = a. Einen weiteren euklidischen Ring, den wir nun betrachten werden, bildet der Polynomring Z 2 [x]. Für Polynome a œ Z 2 [x] ist die Normfunktion durch den Grad N(a) =deg(a) des Polynoms definiert. Im folgenden schreiben wir a, b, c,... als verkürzte Form für Polynome a(x), b(x), c(x),... Theorem 7. Für Polynome a, b œ Z 2 [x], b = 0, existieren eindeutige Polynome s, r œ Z 2 [x] mit a = sb + r, wobei r = 0 oder deg(r) < deg(b) gilt. Definition 6. Ein Polynom a œ Z 2 [x] teilt genau dann ein Polynom b œ Z 2 [x], wenneseinc œ Z 2 [x] gibt mit ac = b. Das Polynom a heißt dann auch ein Teiler von b. Definition 7. Eine Polynom t œ Z 2 [x] heißt genau dann der größter gemeinsamer Teiler von a, b œ Z 2 [x], wennt ein Teiler von a und b ist und falls jeder Teiler s œ Z 2 [x] von a und b das Polynom t teilt. Der größte gemeinsamen Teiler von a und b wird mit gcd(a, b) abgekürzt.

20 58 michael braun Analog zu den Regeln für die Menge der größten gemeinsamen Teiler ganzer Zahlen erhalten wir die gleichen Ergebnisse für Polynome, aus denen man leicht den euklidischen Algorithmus in der rekursiven und iterativen Version ableiten kann. Lemma 4. Für den größten gemeinsamen Teiler von a, b, s œ Z 2 [x] gilt: 1. gcd(a, a) =a 2. gcd(a,0)=a 3. gcd(a,1)=1 4. gcd(as, bs) =s gcd(a, b) 5. gcd(b, a + sb) =gcd(a, b) 6. gcd(b, a mod b) =gcd(a, b) Die entsprechende Variante des Lemmas von Bézout für Polynome lässt sich wie folgt formulieren. Lemma 5 (Bézout für Polynome). Für Polynome a, b œ Z 2 [x] existieren Polynome g, h œ Z 2 [x] mit ag + bh = gcd(a, b). Da sich die Versionen des euklidischen und steinschen Algorithmus für Polynome formulieren lassen, geben wir hier ausschließlich den erweiterten steinschen Algorithmus an. Grundlage ist folgendes Lemma. Lemma 6. Für die Menge der größten gemeinsamen Teiler von a, b œ Z 2 [x] gilt: 1. gcd(a, b) =x gcd(a/x, b/x), fallsa und b durch x teilbar sind. 2. gcd(a, b) =gcd(a/x, b), fallsa durch x teilbar und b nicht durch x teilbar ist. Bei dem erweiterten steinschen Algorithmus gehen wir von den beiden invarianten Gleichungen ag 1 + bh 1 = v ag 2 + bg 2 = u

21 public-key-algorithmen 59 mit deg(v) Ø deg(u) aus, die zu Beginn des Algorithmus mit v := a, u := b sowie g 1 := 1, h 1 := 0, g 2 := 0 und h 2 := 1 belegt werden, falls deg(a) Ø deg(b). Ansonsten werden a und b vertauscht. Wir können auch davon ausgehen, dass nicht a und b beide durch x teilbar sind, ansonsten, kann man aus beiden Polynomen wiederholt x ausklammern, bis dieser Zustand erreicht wird. Wir nehmen nun ohne Einschränkung der Allgemeinheit an, dass v durch x teilbar ist. Aufgrund von Lemma 6 muss die Gleichung ag 1 + bh 1 = v derart angepasst werden, dass auf der rechten Seite v/x steht. Je nach Teilbarkeit von g 1 und h 1 durch x entstehen die folgenden Fälle: 1. Falls h 1 und g 1 durch x teilbar sind, so kann die Gleichung wie folgt angepasst werden: a(g 1 /x)+b(h 1 /x) =v/x. 2. Falls h 1 durch x teilbar und g 1 nicht durch x teilbar ist, dann ist bh 1 durch x teilbar. Da v durch x teilbar ist, muss auch ag 1 durch x teilbar sein und somit auch a. Danichta und b gleichzeitig durch x teilbar sind, ist b nicht durch x teilbar. Folglich sind g 1 + b und h 1 + a durch x teilbar. Wir modifizieren nun die Ausgangsgleichung und erhalten ag 1 + bh 1 + ab + ab = v bzw. a(g 1 + b)+b(h 1 + a) =v. Da nun g 1 + b sowie h 1 + a durch x teilbar sind, können wir diese Gleichung nun durch x dividieren: a(g 1 + b)/x + b(h 1 + a)/x = v/x. 3. Falls h 1 nicht durch x teilbar und g 1 durch x teilbar ist, kann die Gleichung analog dem zweiten Fall angepasst werden: a(g 1 + b)/x + b(h 1 + a)/x = v/x.

22 60 michael braun 4. Falls h 1 nicht durch x teilbar und g 1 durch x teilbar ist, dann ist ag 1 durch x teilbar. Da v durch x teilbar ist, muss auch bh 1 durch x teilbar sein. Folglich ist b durch x teilbar und somit a nicht durch x teilbar, da nicht a und b gleichzeitig durch x teilbar sind. Demnach sind g 1 + b und h 1 + a durch x teilbar und wir erhalten erneut die Umformung: a(g 1 + b)/x + b(h 1 + a)/x = v/x. Insgesamt erhalten wir folgenden Algorithmus: Algorithmus 18. Erweiterter steinscher Algorithmus. Input: a, b œ Z 2 [x] mit deg(a) Ø deg(b) Output: (t, g, h) mit ag + bh = gcd(a, b) 1 a Õ := a, b Õ := b, e := 1 2 while a Õ and b Õ are divisible by x do a Õ := a Õ /x, b Õ := b Õ /x, e := xe 3 g 1 := 1, h 1 := 0, v := a Õ, g 2 := 0, h 2 := 1, u := b Õ 4 while u = 0 do 5 while v is divisible by x do 6 v := v/x 7 if g 1 and h 1 are divisible by x then g 1 := g 1 /x, h 1 := h 1 /x 8 else g 1 :=(g 1 + b Õ )/x, h 1 :=(h 1 + a Õ )/x 9 while u is divisible by x do 10 u := u/x 11 if g 2 and h 2 are divisible by x then g 2 := g 2 /x, h 2 := h 2 /x 12 else g 2 :=(g 2 + b Õ )/x, h 2 :=(h 2 + a Õ )/x 13 if deg(v) Ø deg(u) then v := v + u, g 1 := g 1 + g 2, h 1 := h 1 + h 2 14 else u := u + v, g 2 := g 2 + g 1, h 2 := h 2 + h 1 15 return (ev, eg 1, eh 1 ) Dieser Algorithmus kann nur zur Inversion im endlichen Körper F 2 m verwendet werden. Für ein Polynom b(x) = q m 1 i=0 b ix i œ Z 2 [x] und ein unzerlegbares Polynom f(x) =x m + r(x) œ Z 2 [x] soll also b 1 mod f(x) berechnet werden. Setzen wir a := f im Euklidischen Algorithmus, so erhalten wir Faktoren g, h œ Z 2 [x] mit fg + bh = gcd(f, b) =1.

23 public-key-algorithmen 61 Betrachten wir die Gleichung modulo f(x), gilt bh mod f = 1, d.h. h = b 1 mod f. Wir können nun den Algorithmus 19 entsprechend vereinfachen, wenn wir voraussetzen, dass a := f ein unzerlegbares Polynom ist und wir nur an den Koe zienten h interessiert sind. Zeile 1 und 2 fallen weg, f nicht durch x teilbar ist. Entsprechend tritt in obiger Fallunterscheidung der zweite Fall auch nicht auf. Dies vereinfacht die Fallunterscheidung im Algorithmusablauf, da die Modifikation f(g 1 /x)+b(h 1 /x) =v/x nur dann auftritt, wenn h 1 durch x teilbar ist und die Modifikation f(g 1 + b)/x + b(h 1 + f)/x = v/x, wennh 1 nicht durch x teilbar ist. Die Abbruchbedingung kann auch leicht verändert werden, da wir den größten gemeinsamen Teiler bereits kennen, gcd(f, b) =1. Wir müssen also nicht bis u = 0 gehen, sondern können abbrechen, wenn v = 1 oder u = 1 ist. Im ersten Fall muss h 1 zurückgeben werden, im zweiten Fall h 2. Algorithmus 19. Inversion. Input: f, b œ Z 2 [x] mit f(x) unzerlegbar und deg(b) < deg(f) Output: b 1 mod f 1 h 1 := 0, v := f, h 2 := 1, u := b 2 while u = 1 and v = 1 do 3 while v is divisible by x do 4 v := v/x 5 if h 1 is divisible by x then h 1 := h 1 /x 6 else h 1 :=(h 1 + f)/x 7 while u is divisible by x do 8 u := u/x 9 if h 2 is divisible by x then h 2 := h 2 /x 10 else h 2 :=(h 2 + a Õ )/x 11 if deg(v) Ø deg(u) then v := v + u, h 1 := h 1 + h 2 12 else u := u + v, h 2 := h 2 + h 1 13 if v = 1 return h 1 else return h 2

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein.

Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. Oft kommt es darauf an, Potenzen a n mod m zu berechnen. Dabei kann n eine sehr groÿe Zahl sein. 3 1384788374932954500363985493554603584759389 mod 28374618732464817362847326847331872341234 Wieso kann ein

Mehr

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik

2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Stefan Lucks Diskrete Strukturen (WS 2009/10) 57 2: Zahlentheorie / Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32,

Mehr

GF(2 2 ) Beispiel eines Erweiterungskörpers (1)

GF(2 2 ) Beispiel eines Erweiterungskörpers (1) GF(2 2 ) Beispiel eines Erweiterungskörpers (1) Im Kapitel 2.1 wurde bereits gezeigt, dass die endliche Zahlenmenge {0, 1, 2, 3} q = 4 nicht die Eigenschaften eines Galoisfeldes GF(4) erfüllt. Vielmehr

Mehr

Abschnitt: Algorithmendesign und Laufzeitanalyse

Abschnitt: Algorithmendesign und Laufzeitanalyse Abschnitt: Algorithmendesign und Laufzeitanalyse Definition Divide-and-Conquer Paradigma Divide-and-Conquer Algorithmen verwenden die Strategien 1 Divide: Teile das Problem rekursiv in Subproblem gleicher

Mehr

Public-Key-Algorithmen WS2015/2016

Public-Key-Algorithmen WS2015/2016 Public-Key-Algorithmen WS2015/2016 Lernkontrollfragen Michael Braun Was bedeuten die kryptographischen Schutzziele Vertraulichkeit, Integrität, Nachrichtenauthentizität, Teilnehmerauthentizität, Verbindlichkeit?

Mehr

DLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27

DLP. Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de ALZAGK SEMINAR. Bremen, den 18. Januar 2011. Fachbereich Mathematik und Informatik 1 / 27 DLP Adolphe Kankeu Tamghe papibobo@informatik.uni-bremen.de Fachbereich Mathematik und Informatik ALZAGK SEMINAR Bremen, den 18. Januar 2011 1 / 27 Inhaltsverzeichnis 1 Der diskrete Logarithmus Definition

Mehr

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke

bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke Rechnerarithmetik Rechnerarithmetik 22 Prof. Dr. Rainer Manthey Informatik II Übersicht bereits in A,3 und A.4: Betrachtung von Addierschaltungen als Beispiele für Schaltnetze und Schaltwerke in diesem

Mehr

11. Primfaktorzerlegungen

11. Primfaktorzerlegungen 78 Andreas Gathmann 11 Primfaktorzerlegungen Euch ist sicher aus der Schule bekannt, dass sich jede positive ganze Zahl a als Produkt a = p 1 p n von Primzahlen schreiben lässt, und dass diese Darstellung

Mehr

Kapitel 3 Mathematik. Kapitel 3.3. Algebra Gleichungen

Kapitel 3 Mathematik. Kapitel 3.3. Algebra Gleichungen TG TECHNOLOGISCHE GRUNDLAGEN Kapitel 3 Mathematik Kapitel 3.3 Algebra Gleichungen Verfasser: Hans-Rudolf Niederberger Elektroingenieur FH/HTL Vordergut 1, 877 Nidfurn 055-654 1 87 Ausgabe: Februar 009

Mehr

Lineare Gleichungssysteme

Lineare Gleichungssysteme Brückenkurs Mathematik TU Dresden 2015 Lineare Gleichungssysteme Schwerpunkte: Modellbildung geometrische Interpretation Lösungsmethoden Prof. Dr. F. Schuricht TU Dresden, Fachbereich Mathematik auf der

Mehr

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema 2x 4 + x 3 + x + 3 div x 2 + x 1 = 2x 2 x + 3 (2x 4 + 2x 3 2x 2 ) x 3 + 2x 2 + x + 3 ( x

Mehr

Einführung in die Informatik I

Einführung in die Informatik I Einführung in die Informatik I Algorithmen und deren Programmierung Prof. Dr. Nikolaus Wulff Definition Algorithmus Ein Algorithmus ist eine präzise formulierte Handlungsanweisung zur Lösung einer gleichartigen

Mehr

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens Mathematische Grundlagen der Kryptographie 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe Stefan Brandstädter Jennifer Karstens 18. Januar 2005 Inhaltsverzeichnis 1 Ganze Zahlen 1 1.1 Grundlagen............................

Mehr

Algorithmen zur Integer-Multiplikation

Algorithmen zur Integer-Multiplikation Algorithmen zur Integer-Multiplikation Multiplikation zweier n-bit Zahlen ist zurückführbar auf wiederholte bedingte Additionen und Schiebeoperationen (in einfachen Prozessoren wird daher oft auf Multiplizierwerke

Mehr

8 Diskrete Optimierung

8 Diskrete Optimierung 8 Diskrete Optimierung Definition 8.1. Ein Graph G ist ein Paar (V (G), E(G)) besteh aus einer lichen Menge V (G) von Knoten (oder Ecken) und einer Menge E(G) ( ) V (G) 2 von Kanten. Die Ordnung n(g) von

Mehr

Information in einem Computer ist ein

Information in einem Computer ist ein 4 Arithmetik Die in den vorhergehenden Kapiteln vorgestellten Schaltungen haben ausschließlich einfache, Boole sche Signale verarbeitet. In diesem Kapitel wird nun erklärt, wie Prozessoren mit Zahlen umgehen.

Mehr

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0

Advanced Encryption Standard. Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Advanced Encryption Standard Copyright Stefan Dahler 20. Februar 2010 Version 2.0 Vorwort Diese Präsentation erläutert den Algorithmus AES auf einfachste Art. Mit Hilfe des Wissenschaftlichen Rechners

Mehr

Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008

Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008 Aufgaben des MSG-Zirkels 10b Schuljahr 2007/2008 Alexander Bobenko und Ivan Izmestiev Technische Universität Berlin 1 Hausaufgaben vom 12.09.2007 Zahlentheorie 1 Aufgabe 1.1 Berechne die (quadratischen)

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2)

DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) DHBW Karlsruhe, Vorlesung Programmieren, Klassen (2) Aufgabe 3 Bankkonto Schreiben Sie eine Klasse, die ein Bankkonto realisiert. Attribute für das Bankkonto sind der Name und Vorname des Kontoinhabers,

Mehr

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1

Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 Praktikum Diskrete Optimierung (Teil 11) 17.07.2006 1 1 Primzahltest 1.1 Motivation Primzahlen spielen bei zahlreichen Algorithmen, die Methoden aus der Zahlen-Theorie verwenden, eine zentrale Rolle. Hierzu

Mehr

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung. Lineare Gleichungen mit einer Unbekannten Die Grundform der linearen Gleichung mit einer Unbekannten x lautet A x = a Dabei sind A, a reelle Zahlen. Die Gleichung lösen heißt, alle reellen Zahlen anzugeben,

Mehr

Einfache Differentialgleichungen

Einfache Differentialgleichungen Differentialgleichungen (DGL) spielen in der Physik eine sehr wichtige Rolle. Im Folgenden behandeln wir die grundlegendsten Fälle 1, jeweils mit einer kurzen Herleitung der Lösung. Dann schliesst eine

Mehr

Zusatztutorium, 25.01.2013

Zusatztutorium, 25.01.2013 Zusatztutorium, 25.01.2013 David Müßig muessig[at]mi.fu-berlin.de http://page.mi.fu-berlin.de/def/tutorium/ WiSe 12/13 1 Der Homomorphiesatz Der Homomorphiesatz scheint für viele eine Art rotes Tuch zu

Mehr

3.3 Eigenwerte und Eigenräume, Diagonalisierung

3.3 Eigenwerte und Eigenräume, Diagonalisierung 3.3 Eigenwerte und Eigenräume, Diagonalisierung Definition und Lemma 3.3.1. Sei V ein K-Vektorraum, φ End K (V ), λ K. Wir defnieren den zu λ gehörigen Eigenraum von φ als Dies ist ein Unterraum von V.

Mehr

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c)

5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) 5.2 Das All-Pairs-Shortest-Paths-Problem (APSP-Problem) Kürzeste Wege zwischen allen Knoten. Eingabe: Gerichteter Graph G =(V, E, c) mit V = {1,...,n} und E {(v, w) 1 apple v, w apple n, v 6= w}. c : E!

Mehr

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher stefan@buettcher.org

Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme. Faktorisierung. Stefan Büttcher stefan@buettcher.org Ferienakademie 2001: Kryptographie und Sicherheit offener Systeme Faktorisierung Stefan Büttcher stefan@buettcher.org 1 Definition. (RSA-Problem) Gegeben: Ò ÔÕ, ein RSA-Modul mit unbekannten Primfaktoren

Mehr

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online

Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Themen heute Besprechung des 3. Übungsblattes MIMA-Interpreter MIMA-Aufgabe: Primzahltest Weitere MIMA-Aufgaben online Besprechung des 3. Übungsblattes Aufgabe 3 Speicherplätze für Mikrocode-Anweisungen

Mehr

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1

Sortieren durch Einfügen. Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Sortieren durch Einfügen Prof. Dr. W. Kowalk Sortieren durch Einfügen 1 Schon wieder aufräumen Schon wieder Aufräumen, dabei habe ich doch erst neulich man findet alles schneller wieder Bücher auf Regal

Mehr

Repetitionsaufgaben: Lineare Gleichungen

Repetitionsaufgaben: Lineare Gleichungen Kantonale Fachschaft Mathematik Repetitionsaufgaben: Lineare Gleichungen Zusammengestellt von Hannes Ernst, KSR Lernziele: - Lineare Gleichungen von Hand auflösen können. - Lineare Gleichungen mit Parametern

Mehr

Seminararbeit für das SE Reine Mathematik- Graphentheorie

Seminararbeit für das SE Reine Mathematik- Graphentheorie Seminararbeit für das SE Reine Mathematik- Graphentheorie Der binäre Rang, der symplektische Graph, die Spektralzerlegung und rationale Funktionen Vortrag am 24.01.2012 Heike Farkas 0410052 Inhaltsverzeichnis

Mehr

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe

Kapitel 4. Euklidische Ringe und die Jordansche Normalform. 4.1 Euklidische Ringe Kapitel 4 Euklidische Ringe und die Jordansche Normalform 4.1 Euklidische Ringe Die Ringe der ganzen Zahlen, Z, sowie Polynomringe über Körpern, K[X], wobei K ein Körper ist, haben die folgenden Gemeinsamheiten:

Mehr

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen Prof. Dr. Volker Schulz Universität Trier / FB IV / Abt. Mathematik 8. November 2010 http://www.mathematik.uni-trier.de/ schulz/elan-ws1011.html

Mehr

Grundlagen der Rechnerarchitektur

Grundlagen der Rechnerarchitektur Grundlagen der Rechnerarchitektur [CS3100.010] Wintersemester 2014/15 Heiko Falk Institut für Eingebettete Systeme/Echtzeitsysteme Ingenieurwissenschaften und Informatik Universität Ulm Kapitel 5 Rechnerarithmetik

Mehr

Codierungsverfahren SS 2011. Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur

Codierungsverfahren SS 2011. Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur Reed-Solomon-Codes zur Mehrblock-Bündelfehler-Korrektur Wie die zyklischen BCH-Codes zur Mehrbitfehler-Korrektur eignen sich auch die sehr verwandten Reed-Solomon-Codes (= RS-Codes) zur Mehrbitfehler-Korrektur.

Mehr

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44

Stephan Brumme, SST, 2.FS, Matrikelnr. 70 25 44 Aufgabe 33 a) Der Pseudobefehl move $rd,$rs wird als addu $rd,$0,$rs übersetzt. Dabei macht sich SPIM zunutze, dass das Register $0 immer Null ist. Somit wird das Register $rd ersetzt durch $rd=0+$rs=$rs,

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

Mehr

Numerische Behandlung des Eigenwertproblems

Numerische Behandlung des Eigenwertproblems Numerische Behandlung des Eigenwertproblems Zusammenfassung Das Ziel dieses Vortrages ist, zwei gute Methoden für die numerische Bestimmung der Eigenwerte zu zeigen und wie man diese mit Matlab anwenden

Mehr

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1 3.2 Binäre Suche Beispiel 6.5.1: Intervallschachtelung (oder binäre Suche) (Hier ist n die Anzahl der Elemente im Feld!) Ein Feld A: array (1..n) of Integer sei gegeben. Das Feld sei sortiert, d.h.: A(i)

Mehr

Laufzeit und Komplexität

Laufzeit und Komplexität Laufzeit und Komplexität Laufzeit eines Algorithmus Benchmarking versus Analyse Abstraktion Rechenzeit, Anzahl Schritte Bester, Mittlerer, Schlechtester Fall Beispiel: Lineare Suche Komplexitätsklassen

Mehr

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04

4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 4. Übungsblatt zu Mathematik für Informatiker I, WS 2003/04 JOACHIM VON ZUR GATHEN, OLAF MÜLLER, MICHAEL NÜSKEN Abgabe bis Freitag, 14. November 2003, 11 11 in den jeweils richtigen grünen oder roten Kasten

Mehr

Programmiertechnik II

Programmiertechnik II Analyse von Algorithmen Algorithmenentwurf Algorithmen sind oft Teil einer größeren Anwendung operieren auf Daten der Anwendung, sollen aber unabhängig von konkreten Typen sein Darstellung der Algorithmen

Mehr

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen. R. Brinkmann http://brinkmann-du.de Seite 1 13.0.010 Lineare Gleichungen Werden zwei Terme durch ein Gleichheitszeichen miteinander verbunden, so entsteht eine Gleichung. Enthält die Gleichung die Variable

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation

Übungsaufgaben. - Vorgehensweise entsprechend dem Algorithmus der schriftlichen Multiplikation Übungsaufgaben Anmerkung Allen Beispielen soll noch hinzugefügt sein, dass wertvolle Hinweise, also die Tipps und Tricks die der schnellen maschinellen Multiplikation zu Grunde liegen, neben dem toff zur

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

SOI 2013. Die Schweizer Informatikolympiade

SOI 2013. Die Schweizer Informatikolympiade SOI Die Schweizer Informatikolympiade Lösung SOI Wie schreibe ich eine gute Lösung? Bevor wir die Aufgaben präsentieren, möchten wir dir einige Tipps geben, wie eine gute Lösung für die theoretischen

Mehr

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit

1. Musterlösung. Problem 1: Average-case-Laufzeit vs. Worst-case-Laufzeit Universität Karlsruhe Algorithmentechnik Fakultät für Informatik WS 06/07 ITI Wagner Musterlösung Problem : Average-case-Laufzeit vs Worst-case-Laufzeit pt (a) Folgender Algorithmus löst das Problem der

Mehr

Approximationsalgorithmen

Approximationsalgorithmen Ausarbeitung zum Thema Approximationsalgorithmen im Rahmen des Fachseminars 24. Juli 2009 Robert Bahmann robert.bahmann@gmail.com FH Wiesbaden Erstellt von: Robert Bahmann Zuletzt berarbeitet von: Robert

Mehr

MGI Exkurs: Rechnen. Prof. Dr. Wolfram Conen Version 1.0a2. Prof. Dr. W. Conen, FH Gelsenkirchen, Version 1.0a2 1

MGI Exkurs: Rechnen. Prof. Dr. Wolfram Conen Version 1.0a2. Prof. Dr. W. Conen, FH Gelsenkirchen, Version 1.0a2 1 MGI Exkurs: Rechnen Prof. Dr. Wolfram Conen Version 1.0a2 Version 1.0a2 1 Schauen Sie sich um Computer und Netzwerke sind überall! Sie ermöglichen ein feingesponnenes Geflecht komplexer menschlicher Aktivitäten:

Mehr

3 Rechnen und Schaltnetze

3 Rechnen und Schaltnetze 3 Rechnen und Schaltnetze Arithmetik, Logik, Register Taschenrechner rste Prozessoren (z.b. Intel 4004) waren für reine Rechenaufgaben ausgelegt 4 4-Bit Register 4-Bit Datenbus 4 Kbyte Speicher 60000 Befehle/s

Mehr

Einführung in Computer Microsystems

Einführung in Computer Microsystems Einführung in Computer Microsystems Kapitel 9 Entwurf eines eingebetteten Systems für Anwendungen in der IT-Sicherheit Prof. Dr.-Ing. Sorin A. Huss Fachbereich Informatik Integrierte Schaltungen und Systeme

Mehr

Entwurf von Algorithmen - Kontrollstrukturen

Entwurf von Algorithmen - Kontrollstrukturen Entwurf von Algorithmen - Kontrollstrukturen Eine wichtige Phase in der Entwicklung von Computerprogrammen ist der Entwurf von Algorithmen. Dieser Arbeitsschritt vor dem Schreiben des Programmes in einer

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Zahlendarstellungen und Rechnerarithmetik*

Zahlendarstellungen und Rechnerarithmetik* Zahlendarstellungen und Rechnerarithmetik* 1. Darstellung positiver ganzer Zahlen 2. Darstellung negativer ganzer Zahlen 3. Brüche und Festkommazahlen 4. binäre Addition 5. binäre Subtraktion *Die Folien

Mehr

Algorithmische Methoden zur Netzwerkanalyse

Algorithmische Methoden zur Netzwerkanalyse Algorithmische Methoden zur Netzwerkanalyse Juniorprof. Dr. Henning Meyerhenke Institut für Theoretische Informatik 1 KIT Henning Universität desmeyerhenke, Landes Baden-Württemberg Institutund für Theoretische

Mehr

5. Übung: Binäres Rechnen und Fließkommazahlen Abteilung Verteilte Systeme, Universität Ulm

5. Übung: Binäres Rechnen und Fließkommazahlen Abteilung Verteilte Systeme, Universität Ulm 5. Übung: Binäres Rechnen und Fließkommazahlen Aufgabe 1: Binäres Rechnen a) Berechnen Sie: x = 01100101b*(0101101b-10110100b)+10101b. Alle Zahlen sind 8 Bit breit und in Zweierkomplement-Notation angegeben.

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 4 Einführung in die Programmiersprache Java (Teil II)... 4-2 4.4 Strukturierte Programmierung... 4-2 4.4.1 Strukturierung im Kleinen... 4-2 4.4.2 Addierer (do-schleife)... 4-3 4.4.3 Ein- Mal- Eins

Mehr

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Entscheidungsbäume Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen? Definition Entscheidungsbaum Sei T ein Binärbaum und A = {a 1,..., a n } eine zu sortierenden Menge. T ist ein Entscheidungsbaum

Mehr

Das Knapsack-Kryptosystem

Das Knapsack-Kryptosystem Das Knapsack-Kryptosystem Frank Hellweg 21. Februar 2006 1 Einleitung Das Knapsack-Kryptosystem wurde 1978 von den amerikanischen Kryptologen Martin Hellman und Ralph Merkle entwickelt [MH78] und war eines

Mehr

Primzahlzertifikat von Pratt

Primzahlzertifikat von Pratt Primzahlzertifikat von Pratt Daniela Steidl TU München 17. 04. 2008 Primzahltests in der Informatik "Dass das Problem, die Primzahlen von den Zusammengesetzten zu unterscheiden und letztere in ihre Primfaktoren

Mehr

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung)

Lösungsblatt zur Vorlesung. Kryptanalyse WS 2009/2010. Blatt 6 / 23. Dezember 2009 / Abgabe bis spätestens 20. Januar 2010, 10 Uhr (vor der Übung) Ruhr-Universität Bochum Lehrstuhl für Kryptologie und IT-Sicherheit Prof. Dr. Alexander May Mathias Herrmann, Alexander Meurer Lösungsblatt zur Vorlesung Kryptanalyse WS 2009/2010 Blatt 6 / 23. Dezember

Mehr

ax 2 + bx + c = 0, (4.1)

ax 2 + bx + c = 0, (4.1) Kapitel 4 Komplexe Zahlen Wenn wir uns auf die reellen Zahlen beschränken, ist die Operation des Wurzelziehens (also die Umkehrung der Potenzierung) nicht immer möglich. Zum Beispiel können wir nicht die

Mehr

3.1. Die komplexen Zahlen

3.1. Die komplexen Zahlen 3.1. Die komplexen Zahlen Es gibt viele Wege, um komplexe Zahlen einzuführen. Wir gehen hier den wohl einfachsten, indem wir C R als komplexe Zahlenebene und die Punkte dieser Ebene als komplexe Zahlen

Mehr

MINT-Circle-Schülerakademie

MINT-Circle-Schülerakademie 1 Einführung MINT-Circle-Schülerakademie Kurze Einführung, was Maple ist, wozu es dienen kann, wo es verwendet wird. Zur Einführung die folgenden Aufgaben bearbeiten lassen. Aufgabe 1. Gib unter Maple

Mehr

Fehler in numerischen Rechnungen

Fehler in numerischen Rechnungen Kapitel 1 Fehler in numerischen Rechnungen Analyse numerischer Rechnungen: - Welche möglichen Fehler? - Einfluss auf Endergebnis? - Nicht alles in der Comp.Phys./Numerical Analysis dreht sich um Fehler

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Modul 114. Zahlensysteme

Modul 114. Zahlensysteme Modul 114 Modulbezeichnung: Modul 114 Kompetenzfeld: Codierungs-, Kompressions- und Verschlüsselungsverfahren einsetzen 1. Codierungen von Daten situationsbezogen auswählen und einsetzen. Aufzeigen, welche

Mehr

Lenstras Algorithmus für Faktorisierung

Lenstras Algorithmus für Faktorisierung Lenstras Algorithmus für Faktorisierung Bertil Nestorius 9 März 2010 1 Motivation Die schnelle Faktorisierung von Zahlen ist heutzutage ein sehr wichtigen Thema, zb gibt es in der Kryptographie viele weit

Mehr

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik

Teil 2 - Softwaretechnik. Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2. Übersicht. Softwaretechnik Grundlagen der Programmierung 1 Modul: Programmierung B-PRG Grundlagen der Programmierung 1 Teil 2 Softwaretechnik Prof. Dr. O. Drobnik Professur Architektur und Betrieb verteilter Systeme Institut für

Mehr

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet

22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet 22. Algorithmus der Woche Partnerschaftsvermittlung Drum prüfe, wer sich ewig bindet Autor Volker Claus, Universität Stuttgart Volker Diekert, Universität Stuttgart Holger Petersen, Universität Stuttgart

Mehr

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Vorlesung 04.12.2006: Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz Datenstruktur BDD 1986 von R. Bryant vorgeschlagen zur Darstellung von aussagenlogischen Formeln (genauer: Booleschen Funktionen)

Mehr

2 Lösungen "Peptide de novo Sequencing"

2 Lösungen Peptide de novo Sequencing Lösungen "Peptide de novo Sequencing". Algorithm : PeptideSequencingOnlySux Input: a spectrum M with array of masses M = {m, m,, m n }, Σ, µ : Σ R >0 Output: the peptide string of the spectrum begin peptide

Mehr

Kostenmaße. F3 03/04 p.188/395

Kostenmaße. F3 03/04 p.188/395 Kostenmaße Bei der TM nur ein Kostenmaß: Ein Schritt (Konfigurationsübergang) kostet eine Zeiteinheit; eine Bandzelle kostet eine Platzeinheit. Bei der RAM zwei Kostenmaße: uniformes Kostenmaß: (wie oben);

Mehr

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754.

Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754. Aufgabe 1) Die folgenden Umwandlungen/Berechnungen beziehen sich auf das 32-Bit Single-Precision Format nach IEEE-754. a) Stellen Sie die Zahl 7,625 in folgender Tabelle dar! b) Wie werden denormalisierte

Mehr

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen...

1. Grundlagen... 2. 2. Sortieren... 6. 1.1. Vertauschen... 13. 1.2. Selektion... 16. 1.3. Einfügen... 19. 1.4. Quicksort... 22. 3. Suchen... Suchen und Sortieren In diesem Kapitel behandeln wir Algorithmen zum Suchen und Sortieren Inhalt 1. Grundlagen... 2 2. Sortieren... 6 1.1. Vertauschen... 13 1.2. Selektion... 16 1.3. Einfügen... 19 1.4.

Mehr

7 Rechnen mit Polynomen

7 Rechnen mit Polynomen 7 Rechnen mit Polynomen Zu Polynomfunktionen Satz. Zwei Polynomfunktionen und f : R R, x a n x n + a n 1 x n 1 + a 1 x + a 0 g : R R, x b n x n + b n 1 x n 1 + b 1 x + b 0 sind genau dann gleich, wenn

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Elemente der Analysis II

Elemente der Analysis II Elemente der Analysis II Kapitel 3: Lineare Abbildungen und Gleichungssysteme Informationen zur Vorlesung: http://www.mathematik.uni-trier.de/ wengenroth/ J. Wengenroth () 15. Mai 2009 1 / 35 3.1 Beispiel

Mehr

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15

Übersicht. Schleifen. Schleifeninvarianten. Referenztypen, Wrapperklassen und API. 9. November 2009 CoMa I WS 08/09 1/15 Übersicht Schleifen Schleifeninvarianten Referenztypen, Wrapperklassen und API CoMa I WS 08/09 1/15 CoMa I Programmierziele Linux bedienen Code umschreiben strukturierte Datentypen Anweisungen und Kontrollstrukturen

Mehr

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen

HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen 9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam

Mehr

Suchen und Sortieren Sortieren. Heaps

Suchen und Sortieren Sortieren. Heaps Suchen und Heaps (Folie 245, Seite 63 im Skript) 3 7 21 10 17 31 49 28 14 35 24 42 38 Definition Ein Heap ist ein Binärbaum, der die Heapeigenschaft hat (Kinder sind größer als der Vater), bis auf die

Mehr

Elementare logische Operationen

Elementare logische Operationen RECHNERARCHITEKTUR 2 - ELEMENTARE LOGISCHE OPERATIONEN 1 Elementare logische Operationen Modifizieren, Testen,Vergleichen In diesem Abschnitt wollen wir zeigen, wie man mit den elementaren logischen Verknüpfungen

Mehr

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten! Mathefritz 5 Terme und Gleichungen Meine Mathe-Seite im Internet kostenlose Matheaufgaben, Skripte, Mathebücher Lernspiele, Lerntipps, Quiz und noch viel mehr http:// www.mathefritz.de Seite 1 Copyright

Mehr

Nichtlineare Optimierung ohne Nebenbedingungen

Nichtlineare Optimierung ohne Nebenbedingungen Kapitel 2 Nichtlineare Optimierung ohne Nebenbedingungen In diesem Abschnitt sollen im wesentlichen Verfahren zur Bestimmung des Minimums von nichtglatten Funktionen in einer Variablen im Detail vorgestellt

Mehr

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2

KANALCODIERUNG AUFGABEN. Aufgabe 1. Aufgabe 2 AUFGABEN KANALCODIERUNG Aufgabe Wir betrachten den Hamming-Code mit m = 5 Prüfbits. a) Wie gross ist die Blocklänge n dieses Codes? b) Wie viele gültige Codewörter umfasst dieser Code? c) Leiten Sie die

Mehr

MATHEMATISCHE ANALYSE VON ALGORITHMEN

MATHEMATISCHE ANALYSE VON ALGORITHMEN MATHEMATISCHE ANALYSE VON ALGORITHMEN Michael Drmota Institut für Diskrete Mathematik und Geometrie, TU Wien michael.drmota@tuwien.ac.at www.dmg.tuwien.ac.at/drmota/ Ringvorlesung SS 2008, TU Wien Algorithmus

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013 Aufgabenblatt 3 18. November

Mehr

Vorlesung 16.11.2012 Inhaltsverzeichnis. Einfache Rechnungen

Vorlesung 16.11.2012 Inhaltsverzeichnis. Einfache Rechnungen Vorlesung 16.11.01 Inhaltsverzeichnis 1.. 3. 4. 5. 6. Einfache Rechnungen Hilfe! Gleitkommazahlen Formales Rechnen Polynome Endliche Körper Einfache Rechnungen Sage kann alles was ein Taschenrechner kann,

Mehr

Die reellen Lösungen der kubischen Gleichung

Die reellen Lösungen der kubischen Gleichung Die reellen Lösungen der kubischen Gleichung Klaus-R. Löffler Inhaltsverzeichnis 1 Einfach zu behandelnde Sonderfälle 1 2 Die ganzrationale Funktion dritten Grades 2 2.1 Reduktion...........................................

Mehr

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren

Stefan Lucks Krypto und Mediensicherheit (2009) 4: Stromchiffren 4: Stromchiffren Zwei Grundbausteine der symmetrischen Kryptographie: Stromchiffren Verschlüsseln beliebig langer Klartexte, interner Zustand Blockchiffren Verschlüsseln von Blocks einer festen Größe,

Mehr

3 Quellencodierung. 3.1 Einleitung

3 Quellencodierung. 3.1 Einleitung Source coding is what Alice uses to save money on her telephone bills. It is usually used for data compression, in other words, to make messages shorter. John Gordon 3 Quellencodierung 3. Einleitung Im

Mehr

Die quadratische Gleichung und die quadratische Funktion

Die quadratische Gleichung und die quadratische Funktion Die quadratische Gleichung und die quadratische Funktion 1. Lösen einer quadratischen Gleichung Quadratische Gleichungen heißen alle Gleichungen der Form a x x c = 0, woei a,, c als Parameter elieige reelle

Mehr

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time

Undirected Single-Source Shortest Paths with Positive Integer Weights in Linear Time Universität Konstanz Mathematisch-naturwissenschaftliche Sektion Fachbereich Mathematik und Statistik Wintersemester 2001/02 Mikkel Thorup: Undirected Single-Source Shortest Paths with Positive Integer

Mehr

Eigenwerte und Eigenvektoren von Matrizen

Eigenwerte und Eigenvektoren von Matrizen Eigenwerte und Eigenvektoren von Matrizen Das Eigenwertproblem Sei A eine quadratische Matrix vom Typ m,m. Die Aufgabe, eine Zahl λ und einen dazugehörigen Vektor x zu finden, damit Ax = λx ist, nennt

Mehr

1 C A = A. y 1 y 2. x 1 x 2. x n B @ B @ C A. y m

1 C A = A. y 1 y 2. x 1 x 2. x n B @ B @ C A. y m Kapitel Systeme Ein System ist eine Anordnung von miteinander verbundenen Komponenten zur Realisierung einer technischen Aufgabenstellung. Ein System kann als Operator aufgefasst werden, der Eingangsgrößen

Mehr

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen. 13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen. Sie heißt linear, wenn sie die Form y (n) + a n 1 y (n 1)

Mehr

Algorithmen & Datenstrukturen 1. Klausur

Algorithmen & Datenstrukturen 1. Klausur Algorithmen & Datenstrukturen 1. Klausur 7. Juli 2010 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 35 2 30 3 30 4 15 5 40 6 30 Gesamt 180 1 Seite 2 von 14 Aufgabe 1) Programm Analyse

Mehr

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik

Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik Lektion 1: Von Nullen und Einsen _ Die binäre Welt der Informatik Helmar Burkhart Departement Informatik Universität Basel Helmar.Burkhart@unibas.ch Helmar Burkhart Werkzeuge der Informatik Lektion 1:

Mehr

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder Programmieren in PASCAL Bäume 1 1. Baumstrukturen Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder 1. die leere Struktur oder 2. ein Knoten vom Typ Element

Mehr