This book covers key concepts of cryptography, from encryption and digital signatures to cryptographic protocols, presenting techniques and protocols for key exchange, user ID, electronic elections and digital cash. Advanced topics include bit security of one-way functions and computationally perfect pseudorandom bit generators. Assuming no special background in mathematics, it includes chapter-ending exercises and the necessary algebra, number theory and probability theory in the appendix. This edition offers new material including a complete description of the AES, a section on cryptographic hash functions, new material on random oracle proofs, and a new section on public-key encryption schemes that are provably secure against adaptively-chosen-ciphertext attacks.
Helmut Knebl Books



Algorithms and Data Structures
Foundations and Probabilistic Methods for Design and Analysis
- 364 pages
- 13 hours of reading
Probabilistic methods are emphasized as essential for developing simple and efficient algorithms in this textbook. Each chapter features at least one problem solved with a randomized algorithm, showcasing practical applications. The discussion of data structures is tailored to support algorithm implementation, ensuring a focused approach. The selected algorithms are chosen for their broad applicability, making this resource valuable for students in computer science.
Algorithmen und Datenstrukturen
- 359 pages
- 13 hours of reading
In diesem Lehrbuch werden Algorithmen und Datenstrukturen anschaulich und nachvollziehbar vermittelt, da sie heute allgegenwärtig und vielfältig sind. Algorithmen sind ein zentrales Thema der Informatik und Gegenstand intensiver Forschung. Das Buch entstand aus Vorlesungen für Studierende der Informatik sowie der Medien- und Wirtschaftsinformatik an der Technischen Hochschule Nürnberg und behandelt grundlegende Themen der Bachelorkurse sowie fortgeschrittene Inhalte aus Masterkursen. Das erste Kapitel führt in relevante Grundlagen und Designprinzipien ein. Die folgenden Kapitel sind nach Problembereichen strukturiert: Sortieren und Suchen (Kapitel 2), Hashverfahren (Kapitel 3), Bäume zur Datenspeicherung und -komprimierung (Kapitel 4), fundamentale Graphenalgorithmen wie Tiefen- und Breitensuche (Kapitel 5) sowie die Berechnung minimaler aufspannender Bäume und kürzester Wege in gewichteten Graphen sowie die Lösung des Flussproblems in Netzwerken (Kapitel 6). Probabilistische Methoden sind entscheidend für effiziente Algorithmen und werden in jedem Kapitel behandelt. Die notwendigen mathematischen Grundlagen werden im ersten Kapitel und im Anhang erläutert. Zudem stehen Lösungen zu zahlreichen Übungsaufgaben zum Download bereit.