Aufgabenblatt 4 IT-Security Angewandte Informatik WS 2016/17
|
|
- Heidi Busch
- vor 7 Jahren
- Abrufe
Transkript
1 Aufgabenblatt 4 IT-Security Angewandte Informatik WS 2016/17 Lernziele 6 Punkte Bibliothek BigInt (Schnelle) Algorithmen für Multiplikation und Division Erweiterter Euklid'scher Algorithmus Für dieses Aufgabenblatt benötigen Sie viel Zeit. Aufgaben Es soll der Beginn einer Bibliothek für Algorithmen mit beliebig hoher Genauigkeit erstellt werden. In diesem Aufgabenblatt wird der erste Teil dazu erstellt; in späteren Aufgabenblättern werden diese Routinen benutzt und eventuell ergänzt, d.h. wer die letzten beiden Aufgabenblätter bearbeiten möchte, muss dieses Blatt in jedem Falle erfolgreich lösen. Als Programmiersprachen sind möglich: C (empfohlen), C++, Java, C#, PHP, JavaScript, Python, Pascal/Delphi. Auf keinen Fall dürfen fertige Bibliotheken, z.b. BigInteger bei Java, bei der Lösung benutzt werden. Selbstverständlich sind diese Bibliotheken zum Testen benutzbar. Wichtig ist: Testen, Testen und Testen. Dazu können Sie ein Framework, wie z.b. cunit, junit etc. und die gerade erwähnten Bibliotheken benutzen. Sie können auch externe Werkzeuge wie z.b. bc (Shell) dazu benutzen, Testdaten zu generieren. In jeden Falle muss jede Routine mit jeweils mindestens 10 Tests, besser mehr, die auch Extremfälle beinhalten, getestet werden. Ein Programm, das dies tut sei es ein Hauptprogramm, das die Routinen entsprechend aufruft, oder sei es eine Testklasse ist notwendig zur Bearbeitung dieses Aufgabenblatts. Es ist eine Entscheidung zu treffen, wie viele Bits breit eine Stelle in einer Integer-Variablen (Zelle) sein soll bzw. die Basis oder der Modulo-Wert für eine Zelle. Für 32bit-Maschinen wäre dies 16, für 64bit-Maschinen 32. Die benutzten Bits einer Zellen sollten immer eine 2er-Potenz sein. Dann ist eine Datenstruktur zu definieren, die (a) den Wert als Array von unsigned int, (b) eine Angabe über die Array-Größe und (c) eine Angabe darüber, welches Array-Element von der höchsten Wertigkeit betrachtet, einen - 1 -
2 Wert ungleich 0 hat (d.h. alle höherwertigen Zellen haben den Wert 0), beinhaltet. Dieser Datentyp möge BigInt heißen; es lassen sich damit positive sowie negative ganze Zahlen darstellen. Die nächste Entscheidung betrifft die Fehlerbehandlung: Wird beim Overflow, Underflow eine Exception geworfen oder ein Errorcode geliefert? Im letzteren Fall muss z.b. der Aufrufer als Return-Wert den Errorcode vom Ergebnis unterscheiden können. Diese Entscheidung hat Einfluss auf die Signaturen der Methoden. Wer gerne in Java (oder C#) programmiert, kann sich an die Signaturen von Java anlehnen (Siehe z.b. Web-Link Nr. 7). Dann sieht die Parameterversorgung etwas anders aus. Die folgenden Signaturen orientieren sich an den prozeduralen Ansatz. Bis auf zwei sollen in diesem Aufgabenblatt alle folgenden Routinen realisiert werden; es wird sich in späteren Aufgabenblättern herausstellen, dass diese Bibliothek erweitert werden muss. Es werden hier die Signaturen in einer Freistilnotation angegeben; diese müssen dann entsprechend der Programmiersprache umgeschrieben werden, z.b. als Klassen oder Module. Das betrifft auch die Fehlerbehandlung und die Return-Codes. Nun die Kernfunktionen: func BigInt add(bigint x, y) - Schulbuchaddition func BigInt sub(bigint x, y) Schulbuchsubtraktion func BigInt mul(bigint x, y) Schulbuchmultiplikation func BigInt mulkara(bigint x, y) Karazuba-Multiplikation. Diese Routine ist für dieses Aufgabenblatt optional. func BigIntMod div(bigint x, y) Schulbuchdivision Der Returnwert vom Typ BigIntMod ist eine Struktur bestehend aus dem Divisionsergebnis und dem Rest. func BigInt power(bigint x, y>0) Schnelle Exponentiation x y func BigInt powermod(bigint x, y>0, m>0) Exponentiation x y mod func BigInt powermodprim(bigint x, y>0, p>1) Exponentiation x y mod p, wobei p eine Primzahl ist. Hierbei kann mit dem kleinen Satz von Fermat optimiert werden (Randbedingungen beachten). func BigInt powermodprim2(bigint x, y>0, p>1, q>1) Potenzierung x y mod p*q, wobei p und q zwei Primzahlen sind. Hierbei kann mit dem chinesischen Restzahlensatz optimiert werden. Diese Routine ist für dieses Aufgabenblatt optional. func BigInt gcd(bigint x>0, y>0) Euklid'scher Algorithmus. Dieser kann in der binären Form realisiert werden. func BigIntgcd egcd(bigint x>0, y>0) Erweiterter Euklid'scher Algorith
3 mus. Dieser kann in der binären Form realisiert werden. Der Returnwert vom Typ BigIntgcd ist eine Struktur bestehend aus dem ggt-wert und den beiden Faktoren u und v der Linearkombination, deren Werte auch negativ sein können. Nun die Konverter-Routinen - dies sind zugleich auch die Erzeugungsroutinen: func BigInt string2bigint(string x) Konvertieren einer Dezimalzahl in einem String nach BigInt, auch negative Zahlen func String bigint2string(bigint x) Konvertieren einer BigInt-Zahl nach einem Dezimalzahl-String, auch negative Zahlen func BigInt int2bigint(int x) Konvertieren einer int-zahl zu BigInt, auch negative Zahlen, int kann 32bit oder auch 64bit breit sein. Nun die absehbaren Hilfsroutinen: func int eq(bigint x, y) liefert true, falls x = y ist func bool gt(bigint x, y) liefert true, falls x > y ist Bei Bedarf können noch die Varianten ge(x>=y), lt(x<y) oder le(x<=0) realisiert werden. Das hängt vom Bedarf in anderen Algorithmen ab. func bool even(bigint x) liefert ein True, falls unterstes Bit 0 ist func bool bit(bigint x, int y>=0) liefert das Bit an der Position y, von 0 angezählt, even() ist daher not bit(x,0) func BigInt shift(bigint x, int y>=0) Verschiebt x um y Bits nach rechts, also eine Division mit 2er-Potenzen func int zerobits(bigint x) - liefert die Anzahl der untersten Bits, die 0 sind, ohne dass eine 1 dazwischen ist. Diese Routine wird für die binären Versionen des Euklid schen Algorithmus benötigt. func BigInt reduce(bigint x, m>1) Reduziert x auf den Bereich 0..m-1; es wird die MOD-Operation durchgeführt. Beachten Sie die Behandlung negativer x-werte. func BigInt resize(bigint x) bestimmt die Anzahl der Zellen, die ungleich 0 sind, d.h. ohne einen Vorlauf von 0. Diese Routine sollte intern immer aufgerufen werden, wenn die Zahl der Zellen sich geändert haben könnte. func BigInt copy(bigint x, int b>=0) kopiert die unteren b Bits von x als Return-Wert. Ist b gleich 0, dann wird die gesamte Zahl kopiert. Diese Routine wird für die Karazuba-Multiplikation benötigt. Mit b=0 wird die Zahl geklont. Der Sinn bzw. Zweck dieser Routinen ergibt sich aus den kryptographischen - 3 -
4 Algorithmen. Bitte beachten Sie folgendes Prinzip: Es kommt auf Korrektheit und nicht auf Performanz an. Lieber langsam und korrekt statt schnell und (manchmal) inkorrekt. Der Sinn der Aufgaben besteht darin, dass Sie die Algorithmen durch Programmieren verstehen. Noch ein paar Hinweise: Damit die Strukturen BigInt nicht kopiert zu werden brauchen, arbeiten Sie wie bei Java intern mit Pointern. Um das Leben einfacher zu gestalten allokatieren Sie alle BigInt-Arrays gleichlang mit 2048 bit (oder mehr); das sollte für den Hausgebrauch reichen. Die Abfrage auf Overflow und Underflow müssen Sie in jedem Fall programmieren. Dadurch ersparen Sie sich eine Verlängerung. Einige Routinen verkürzen den relevanten Teil der Zahlen (Bereich der unteren Zellen ungleich 0), so dass dann die Routine resize() aufgerufen werden muss. Bei den Grundrechenarten ist es hilfreich, dass beide Operanden gleich lang sind. Daher erweitern Sie den kürzeren Operanden auf die relevante Größe des längeren Operanden, auch wenn darunter die Performanz leidet. Links k html Abnahme Zur Abnahme des "Moduls" BigInt gehören folgende Dateien: Testfälle mit Reports, Source-Code und Projektdateien, z.b. nbproject oder make-dateien etc. Die Tests müssen der minimalen Bedingung genügen, dass alle Programmpfade einmal durchlaufen werden. Bitte vergessen Sie nicht die Extremfälle, z.b
5 Die Vorführung besteht in folgenden Ablauf: (1) Source-Code-Begutachtung, (2) Übersetzung und (3) Testlauf. Auch diese Aufgabe kann per abgegeben werden, dann mit allen Sourcen, Übersetzungsdateien, z.b. make bzw. netbeans-projekte, einschließlich der Tests. Alles muss ohne weiteres auf dem Rechner des Dozenten laufen können (Java, C++, Linux, CentOS 6.8). Programmieren Sie also portabel
IT-Security. Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen
IT-Security Teil 8b: Rechnen mit beliebiger Genauigkeit Algorithmen 06.06.17 1 Überblick Potenzieren Quadrieren Euklid'scher Algorithmus In den meisten Fällen wird nur mit positiven Werten gerechnet. Bei
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
MehrLiteratur. ISM SS 2018 Teil 3/Restklassen
Literatur [3-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [3-2] Schmeh, Klaus: Kryptografie. dpunkt, 5. Auflage, 2013 [3-3] Hoffmann,
MehrAufgabenblatt 5. Verteilte Anwendungen Wirtschaftsinformatik SS Lernziele. Aufgaben 5 Punkte
Aufgabenblatt 5 Verteilte Anwendungen Wirtschaftsinformatik SS 2018 Lernziele Algorithmus zur Verteilung der CPU-Last Primzahlentest Aufgaben 5 Punkte Es soll in einem verteilten System die CPU-Last auf
MehrProgrammieren in Python
Ausgaben und Zahlen Programmieren in Python 2. Ausgaben und Zahlen Malte Helmert Albert-Ludwigs-Universität Freiburg In dieser Lektion geht es darum, ein erstes Gefühl für Python zu bekommen. Wir beschränken
MehrStudent: Alexander Carls Matrikelnummer: Aufgabe: Beschreibung des euklidischen Algorithmus Datum:
Berufsakademie Stuttgart / Außenstelle Horb Studienbereich Technik Studiengang Informationstechnik Kurs IT2006, 2.Semester Dozent: Olaf Herden Student: Alexander Carls Matrikelnummer: 166270 Aufgabe: Beschreibung
MehrArrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3
Programmieren mit Java Modul 3 Arrays Theorieteil Inhaltsverzeichnis 1 Modulübersicht 3 2 Eindimensionale Arrays 3 2.1 Arrays deklarieren.............................. 3 2.2 Arrays erzeugen................................
MehrLiteratur. ITSec SS 2017 Teil 7/Restklassen
Literatur [7-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [7-2] Schmeh, Klaus: Kryptografie. dpunkt, 5. Auflage, 2013 [7-3] Hoffmann,
MehrZahlentheorie, Arithmetik und Algebra I. Felix Teufel Hallo Welt! -Seminar - LS 2
Zahlentheorie, Arithmetik und Algebra I Felix Teufel 26.07.2017 Hallo Welt! -Seminar - LS 2 Überblick Modulare Arithmetik Größter gemeinsamer Teiler Primzahlen Eulersche Φ-Funktion RSA Quellen 26.07.2017
MehrIT-Security. Teil 7: Restklassen
IT-Security Teil 7: Restklassen 20.04.17 1 Literatur [7-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [7-2] Schmeh, Klaus: Kryptografie.
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Matthias Wieczorek Computer-Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp ZAIK Universität zu Köln WS 07/08 1 / 6 Datentypen Arten von Datentypen
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2017 Rüdiger Göbl, Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45
MehrInformatik II, SS 2018
Informatik II - SS 2018 (Algorithmen & Datenstrukturen) Vorlesung 20 (9.7.2018) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrInformatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 20 (13.7.2016) String Matching (Textsuche) Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrProgrammieren 1 C Überblick
Programmieren C Überblick. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
MehrInhalt. n Algorithmus. n Euklidscher Algorithmus. n Sortieren. n Programmiersprachen. n Entwicklungsschritte eines Programms.
Inhalt Algorithmus Euklidscher Algorithmus Sortieren Programmiersprachen Entwicklungsschritte eines Programms Algorithmen 1 Algorithmus Eindeutige Beschreibung eines allgemeinen Verfahrens unter Verwendung
MehrPython Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut mselva@math.uni-koeln.de 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php
MehrProgrammieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3
Übung zur Vorlesung Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Allgemeines Aufgabenblatt 3 Abgabe: 10.12.2013, vor der Vorlesung (14:15 Uhr, AM 1) Max.
MehrProjekt 3 Variablen und Operatoren
Projekt 3 Variablen und Operatoren Praktisch jedes Programm verarbeitet Daten. Um mit Daten programmieren zu können, muss es Möglichkeiten geben, die Daten in einem Programm zu verwalten und zu manipulieren.
Mehr16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2
16. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen Motivation Fehlerbehandlung
MehrKapitel 2: Zahlentheoretische Algorithmen Gliederung
Gliederung 1. Grundlagen 2. Zahlentheoretische Algorithmen 3. Sortierverfahren 4. Ausgewählte Datenstrukturen 5. Dynamisches Programmieren 6. Graphalgorithmen 7. String-Matching 8. Kombinatorische Algorithmen
MehrKapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08
Kapitel 4 Programmierkurs Birgit Engels, Anna Schulze Wiederholung Kapitel 4 ZAIK Universität zu Köln WS 07/08 1 / 23 2 Datentypen Arten von Datentypen Bei der Deklaration einer Variablen(=Behälter für
MehrProgrammierkurs (Java) 30. Oktober 2017 Institut für Informatik ÜBUNGBLATT 02. Dieses Übungsblatt wird in der Woche des 06. November besprochen.
Programmierkurs (Java) 30. Oktober 2017 Institut für Informatik Winter 2017/18 Dr. V. Weil ÜBUNGBLATT 02 Online-Abgabe bis spätestens 06.11.2017 um 14:00 Uhr; Online-Abgabe nur mit Benutzernamen und Passwort.
MehrGliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest
Gliederung Algorithmen und Datenstrukturen I Materialien zur Vorlesung D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg 1 Winter 2009/10,
MehrKryptographische Protokolle
Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit
MehrLiteratur. [9-3] [9-4]
Literatur [9-1] Willems, Wolfgang: Codierungstheorie und Kryptographie. Mathematik Kompakt, Birkhäuser, 2008 [9-2] Socher, Rolf: Algebra für Informatiker. Hanser, 2012 [9-3] https://de.wikipedia.org/wiki/fermatscher_primzahltest
MehrStandard.lib. Inhalt. WAGO-I/O-PRO 32 Bibliothek
Anhang A Weitere Bibliotheken WAGO-I/O-PRO 32 Bibliothek Standard.lib Inhalt ASCIIBYTE_TO_STRING...3 REAL_STATE...4 STANDARD_VERSION...6 STRING_COMPARE...7 STRING_TO_ASCIIBYTE...8 WAGO-I/O-PRO 32 Standard.lib
MehrLiteratur und Links. Webtechnologien WS 2017/18 Teil 1/Entwicklung
Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html http://sourceforge.net/projects/xampp/files/ [1-3] http://aktuell.de.selfhtml.org/extras/download.shtml
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 21 (29.7.2014) String Matching (Textsuche) II Algorithmen und Komplexität Textsuche / String Matching Gegeben: Zwei Zeichenketten (Strings)
MehrIT-Security. Teil 14: Primzahltest
IT-Security Teil 14: Primzahltest 08.05.17 1 Literatur [14-1] Willems, Wolfgang: Codierungstheorie und Kryptographie. Mathematik Kompakt, Birkhäuser, 2008 [14-2] Socher, Rolf: Algebra für Informatiker.
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrLiteratur und Links. Webtechnologien SS 2017 Teil 1/Entwicklung
Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html http://sourceforge.net/projects/xampp/files/ [1-3] http://aktuell.de.selfhtml.org/extras/download.shtml
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrIT-Security. Teil 8a: Rechnen mit beliebiger Genauigkeit Basisoperationen
IT-Security Teil 8a: Rechnen mit beliebiger Genauigkeit Basisoperationen 02.06.17 1 Literatur [8-1] https://www.cs.colorado.edu/~srirams/courses/csci2824- spr14/gmptutorial.html [8-2] https://www.mitchr.me/ss/examplecode/gmp.html
MehrWebtechnologien Teil 1: Entwicklungsumgebung(en)
Webtechnologien Teil 1: Entwicklungsumgebung(en) 05.04.17 1 Literatur und Links [1-1] Seidler, Kai; Vogelsang, Kay: Das XAMPP Handbuch. Addison-Wesley, 2006 [1-2] http://www.apachefriends.org/download.html
MehrIT-Sicherheitsmanagement. Teil 3: Restklassen
IT-Sicherheitsmanagement Teil 3: Restklassen 26.10.18 1 Literatur I [3-1] Beutelspacher, A.; Schwenk, J.; Wolfenstetter, K.-D.: Moderne Verfahren der Kryptographie. 4. Auflage, Vieweg 2001 [3-2] Schmeh,
Mehr1. Grundlegende Konzepte der Informatik
1. Grundlegende Konzepte der Informatik Inhalt Algorithmen Darstellung von Algorithmen mit Programmablaufplänen Beispiele für Algorithmen Aussagenlogik Zahlensysteme Kodierung Peter Sobe 1 Zahlensysteme
MehrInformatik Vorkurs - Vorlesung 2
Informatik Vorkurs - Vorlesung 2 Variablen, Arrays, Zahlensysteme Torben Achilles, 9. Oktober 2018 Inhalt Variablen & Datentypen Arrays Zahlensysteme 9. Oktober 2018 Torben Achilles Informatik Vorkurs
MehrOrganisatorisches. Bishara Sabbagh (Lehrbeauftragter)
Organisatorisches Burkhard Messer, TA C 830, Tel. 5019-2511 E-Mail: burkhard.messer@htw-berlin.de Regeln für E-Mail beachten: Es kann nicht sichergestellt werden, dass E-Mails ankommen. Web: http://wi.f4.htw-berlin.de/users/messer/
Mehr(Digital) Sorting. October 25, Algorithms & Datastructures 2 Exercises WS 2016
(Digital) Sorting October 2, 2016 Algorithms & Datastructures 2 Exercises WS 2016 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz kurz@pervasive.jku.at
MehrInformatik II, SS 2014
Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 20 (23.7.2014) All Pairs Shortest Paths, String Matching (Textsuche) Algorithmen und Komplexität Vorlesungsevaluation Sie sollten alle eine
MehrIT-Security. Teil 15: Zufall
IT-Security Teil 15: Zufall 09.05.17 1 Literatur [15-1] http://de.wikipedia.org/wiki/kryptographisch_sicherer_zufallszahlen generator [15-2] https://gnupg.org/documentation/manuals/gcrypt/fips-prng- Description.html
Mehr15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2
15. Ausnahmebehandlung Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Motivation Fehlerbehandlung Übung
MehrInformatik I Übung, Woche 41
Giuseppe Accaputo 8. Oktober, 2015 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
MehrUrsprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrKlausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte
Universität Düsseldorf Mathematisch-naturwissenschaftliche Fakultät Institut für Informatik Prof. Dr. Michael Schöttner Florian Klein Kevin Beineke Janine Haas Klausur zur Vorlesung Informatik 1 im Wintersemester
MehrInformatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
MehrDie Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp
Ursprünge Die Syntax von Java Borland Software Corp 1995 Syntax: Pascal Objektorientierte Prorammierung optional Plattformen: Windows (Linux, Mac OS X) Sun Microsystems 1995 Syntax: C/C++ Objektorientiert
MehrÜbungsblatt 2. Thema: Formale Sprachen & Grammatiken, Boolesche Logik, Zahlendarstellung, Java
Informatik I WS 05/06 Prof. Dr. W. May Dipl.-Inform. Oliver Fritzen Dipl.-Inform. Christian Kubczak Übungsblatt 2 Ausgegeben am: 04.11.2005 Abgabe bis: 15.11.2005 Thema: Formale Sprachen & Grammatiken,
MehrInformatik II (D-ITET)
Informatik II (D-ITET) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Ueberblick + Administratives Besprechung der Vorlesung Einfuehrungsthemen: Eclipse, JUnit, Serienabgabe
MehrWerkstatt Multiplikation Posten: Fakultät. Informationsblatt für die Lehrkraft. ! F a k u l t ät M M % R- CM _ X = hlen
Informationsblatt für die Lehrkraft Fa ltä mi gr en! F a k u l t ät ON/ CA C- CE R- CM _ 7 4 1 0 M 8 5 2. M+ 9 6 3 % : X = + ku t t oss Za hlen Informationsblatt für die Lehrkraft Thema: Schultyp: Vorkenntnisse:
MehrAlgorithmen und Datenstrukturen SS Übungsblatt 1: Grundlagen
Ludwig-Maximilians-Universität München München, 16.04.2018 Institut für Informatik Prof. Dr. Thomas Seidl Anna Beer, Florian Richter Algorithmen und Datenstrukturen SS 2018 Übungsblatt 1: Grundlagen Tutorien:
MehrÜbung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
MehrProjekt Systementwicklung
Projekt Systementwicklung Effiziente Codierung: Laufzeitoptimierung Prof. Dr. Nikolaus Wulff Effiziente Codierung Der Wunsch effizienten Code zu schreiben entstammt mehreren Quellen: Zielplattformen mit
MehrSFZ FN Sj. 12/13. Python 4 Grundlagen. W.Seyboldt. Python, SFZ FN, Sj 12/13
SFZ FN Sj. 12/13 Python 4 Grundlagen 1 Python, SFZ FN, Sj 12/13 Python Methoden: def teilt(t, n): ''' Kommentar. ''' Berechnungen return var Statt der Variable var bei Return kann auch eine Methode oder
MehrLangzahlarithmetik implementieren Ac 1990 bis 2016
Langzahlarithmetik implementieren Ac 1990 bis 2016 Wie konstruiert man einen BigInteger-Typ (Langzahlarithmetik)? Zur Berechnung von sehr großen Ganzzahlen ( Big Integers ) kann man Register verwenden,
MehrÜbung zu Algorithmen und Datenstrukturen (für ET/IT)
Übung zu Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2018 Mai Bui Computer Aided Medical Procedures Technische Universität München Administratives Zentralübung (Mittwoch, 09:45 11:15) Programmierbeispiele
MehrProgrammierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom bis zum 22.5.
Programmierstarthilfe SS 2009 Fakultät für Ingenieurwissenschaften und Informatik 4. Blatt Für die Woche vom 18.5. bis zum 22.5.2009 (KW 21) Organisatorisches Die Webseiten zur Veranstaltung sind unter
MehrProf. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015
Technische Universität Dortmund Informatik VII (Graphische Systeme) Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015 Übungsaufgaben zum Vorkurs Informatik Wintersemester 2015/2016 Teil I
MehrInformatik I Übung, Woche 41
Giuseppe Accaputo 9. Oktober, 2014 Plan für heute 1. Fragen & Nachbesprechung Übung 3 2. Zusammenfassung der bisherigen Vorlesungsslides 3. Tipps zur Übung 4 Informatik 1 (D-BAUG) Giuseppe Accaputo 2 Nachbesprechung
MehrZentralübung zur Vorlesung Diskrete Strukturen
WS 2010/11 Zentralübung zur Vorlesung Diskrete Strukturen Dr. Werner Meixner Fakultät für Informatik TU München http://www14.in.tum.de/lehre/2010ws/ds/uebung/ 1. Dezember 2010 ZÜ DS ZÜ VI Übersicht: 1.
MehrWiMa-Praktikum 1. Woche 8
WiMa-Praktikum 1 Universität Ulm, Sommersemester 2017 Woche 8 Lernziele In diesem Praktikum sollen Sie üben und lernen: Besonderheiten der For-Schleife in Matlab Wiederholung des Umgangs mit Matrizen und
MehrEinführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann
Einführung in Java Arne Hüffmeier Michelle Liebers, Dennis Hoffmann Tilman Lüttje, Jean Wiele Angelehnt an Java-Vorkurs der Freitagsrunde 1 / 64 1 Einführung Java Geschichte 2 Programmieren in Java Einführung
MehrLehrstuhl für Angewandte Informatik I SS 2003 Prof. Dr. Andreas Henrich 23. September Konzepte der Programmierung. Klausur
Lehrstuhl für Angewandte Informatik I SS 2003 Prof. Dr. Andreas Henrich 23. September 2003 Konzepte der Programmierung Klausur Bearbeitungszeit: Hilfsmittel: Hinweise: 90 Minuten Taschenrechner (nicht
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrDas Studium an der Abteilung Informatik setzt Programmierkenntnisse voraus.
Informatik für Studienanfänger an der Abteilung Informatik Das Studium an der Abteilung Informatik setzt Programmierkenntnisse voraus. Es werden folgende Kenntnisse gefordert: Einfache Datentypen (short,
Mehr6. Zeiger Allgemeines Definition eines Zeigers
6. Zeiger www.c-programme.de Stefan Thiemert Kapitel 6 - Seite 1 von 6 6. 1. Allgemeines Zeiger spielen in der Programmierung eine wichtige Rolle. Sie sind wichtig, bei der Arbeit mit Arrays und Funktionen.
MehrVerbund/Struktur (record/struct)
Arrays. Iteratoren. Verbund/Struktur (record/struct) Ein Verbund oder Struktur ist eine statische Datenstruktur Ein Verbund ist eine Menge von Elementen (meistens von unterschiedlichen Typen), die eine
MehrEuklidischer Algorithmus
Euklidischer Algorithmus Ermitteln des größten gemeinsamen Teilers mit Euklid: function ggt (m, n) Hierbei ist m begin 0undn 0vorausgesetzt. if m = 0 then return n else return ggt (n mod m, m) fi end Man
MehrIT-Security. Teil 3a: Rechnen mit beliebiger Genauigkeit Basisoperationen
IT-Security Teil 3a: Rechnen mit beliebiger Genauigkeit Basisoperationen 05.02.19 1 Literatur [3-1] https://www.cs.colorado.edu/~srirams/courses/csci2824-spr14/ gmptutorial.html [3-2] https://www.mitchr.me/ss/examplecode/gmp.html
MehrDas RSA-Verfahren - Einsatz von Standardalgorithmen in der Kryptologie
Das RSA-Verfahren - Einsatz von Standardalgorithmen in der Kryptologie 2 Verschlüsseln durch modulares Rechnen modulares Addieren modulares Multiplizieren modulares Potenzieren Verschlüsselung mit öffentl.
Mehr1 Algorithmische Grundlagen
1 Algorithmische Grundlagen Klocke/17.03.2003 1.1 1.1 Begriffsklärung Fragen Begriffsklärungen Abstraktionsebenen für Algorithmen und Datenstrukturen Algorithmus Qualität von Algorithmen Klocke/17.03.2003
MehrDatenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer
Präsenzübung Datenstrukturen und Algorithmen (SS 2013) Prof. Dr. Leif Kobbelt Thomas Ströder, Fabian Emmes, Sven Middelberg, Michael Kremer Dienstag, 28. Mai 2013 Nachname: Vorname: Matrikelnummer: Studiengang:
MehrADS: Algorithmen und Datenstrukturen 2
ADS: Algorithmen und Datenstrukturen 2 Teil 11 Prof. Peter F. Stadler & Dr. Christian Höner zu Siederdissen Bioinformatik/IZBI Institut für Informatik & Interdisziplinäres Zentrum für Bioinformatik Universität
MehrAlgebraische Grundlagen
Algebraische Grundlagen Steffen Reith Steffen.Reith@hs-rm.de Hochschule RheinMain 21. Januar 2015 Steffen Reith Algebraische Grundlagen 21. Januar 2015 1 / 17 Grundlagen & Geschichte In der Algebra werden
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Wintersemester 2012/13 1. Vorlesung Kapitel 1: Sortieren Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I Das Problem Eingabe Gegeben: eine Folge A = a 1, a 2,..., a
MehrEinführung in die Programmierung mit VBA
Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen
MehrAlgorithmen und Datenstrukturen 1. EINLEITUNG. Algorithmen und Datenstrukturen - Ma5hias Thimm 1
Algorithmen und Datenstrukturen 1. EINLEITUNG Algorithmen und Datenstrukturen - Ma5hias Thimm (thimm@uni-koblenz.de) 1 Allgemeines Einleitung Zu den Begriffen: Algorithmen und Datenstrukturen systematische
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrOOP Aufgabenblatt 7 6. Dezember 2013
1 Prof. Dr. Th. Letschert OOP Aufgabenblatt 7 6. Dezember 2013 Aufgabe 1 Hausaufgabe Nr. 4 (Klein) Implementieren Sie, ohne Arrays oder eine sonstige Kollektion zu nutzen, folgende Fingerübungen zu Rekursion
MehrEinführung in die Informatik I
Einführung in die Informatik I LOOP Programme, rekursive Funktionen und der Turm von Hanoi Prof. Dr. Nikolaus Wulff Berechenbarkeit Mitte des 20. Jahrhunderts beantworteten Pioniere, wie Alan M. Turing
MehrAssembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
MehrGanzzahlige Division mit Rest
Modulare Arithmetik Slide 1 Ganzzahlige Division mit Rest Für a,b Æ mit a b gibt es stets eine Zerlegung von a der Form a = q b+r mit 0 r b 1. Hierbei gilt q = a b (salopp formuliert: b passt q-mal in
Mehr2: Restklassen 2.1: Modulare Arithmetik
2: Restklassen 2.1: Modulare Arithmetik Uhr: Stunden mod 24, Minuten mod 60, Sekunden mod 60,... Rechnerarithmetik: mod 2 w, w {8, 16, 32, 64} Prüfziffern mod 10 oder mod 11... 71 S. Lucks Diskr Strukt.
MehrIT-Security Angewandte Informatik. Organisatorisches und Leistungskriterien Wintersemester 2018/19
IT-Security Angewandte Informatik Organisatorisches und Leistungskriterien Wintersemester 2018/19 Burkhard Messer HTW Berlin FB 4 Wirtschaftsinformatik 05.10.18 1 Organisatorisches Burkhard Messer, TA
MehrVom Testkonzept zu JUnit
Testen und Testkonzept Dipl.-Inf. (FH) Christopher Olbertz 2. Dezember 2014 Testen und Testkonzept Warum testen? Wichtig, obwohl bei Programmierern unbeliebt Stellt weitgehend korrekte Funktionsweise eines
MehrZahlentheorie, Arithmetik und Algebra II
Zahlentheorie, Arithmetik und Algebra II Michael Sammler 24.06.2015 Michael Sammler Zahlentheorie, Arithmetik und Algebra II 24.06.2015 1 / 47 Gliederung 1 Lineare Rekurrenzen 2 Big Integer 3 Simultane
MehrKapitel 3: Variablen
Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber
MehrProgramm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?
Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 1 Einführung Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München 2 Grundlagen von Algorithmen
MehrEinführung in die Informatik I
Einführung in die Informatik I Das Rechnen in Zahlensystemen zur Basis b=2, 8, 10 und 16 Prof. Dr. Nikolaus Wulff Zahlensysteme Neben dem üblichen dezimalen Zahlensystem zur Basis 10 sind in der Informatik
MehrAuf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt.
432 433 434 435 Auf dieser und den beiden folgenden Folien wurde jeweils ein neues Objekt der Klasse FigurMalerei erstellt und die angegebene Methode ausgeführt. 436 437 438 439 440 441 442 443 Die verkürzte
Mehr