CS 473: Algorithms, Fall 2019
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Key-Recovery Attacks on Universal Hash Function Based MAC Algorithms
Key-Recovery Attacks on Universal Hash Function Based MAC Algorithms Helena Handschuh1 and Bart Preneel2,3 1 Spansion, 105 rue Anatole France 92684 Levallois-Perret Cedex, France [email protected] 2 Katholieke Universiteit Leuven, Dept. Electrical Engineering-ESAT/COSIC, Kasteelpark Arenberg 10, bus 2446, B-3001 Leuven, Belgium [email protected] 3 IBBT, Van Crommenlaan, B-9000 Gent Abstract. This paper discusses key recovery and universal forgery at- tacks on several MAC algorithms based on universal hash functions. The attacks use a substantial number of verification queries but eventually allow for universal forgeries instead of existential or multiple forgeries. This means that the security of the algorithms completely collapses once a few forgeries are found. Some of these attacks start off by exploiting a weak key property, but turn out to become full-fledged divide and conquer attacks because of the specific structure of the universal hash functions considered. Partial information on a secret key can be exploited too, in the sense that it renders some key recovery attacks practical as soon as a few key bits are known. These results show that while universal hash functions offer provable security, high speeds and parallelism, their simple combinatorial properties make them less robust than conventional message authentication primitives. 1 Introduction Message Authentication Code (MAC) algorithms are symmetric cryptographic primitives that allow senders and receivers who share a common secret key to make sure the contents of a transmitted message has not been tampered with. Three main types of constructions for MAC algorithms can be found in the literature: constructions based on block ciphers, based on hash functions and based on universal hash functions. -
Fundamental Data Structures Contents
Fundamental Data Structures Contents 1 Introduction 1 1.1 Abstract data type ........................................... 1 1.1.1 Examples ........................................... 1 1.1.2 Introduction .......................................... 2 1.1.3 Defining an abstract data type ................................. 2 1.1.4 Advantages of abstract data typing .............................. 4 1.1.5 Typical operations ...................................... 4 1.1.6 Examples ........................................... 5 1.1.7 Implementation ........................................ 5 1.1.8 See also ............................................ 6 1.1.9 Notes ............................................. 6 1.1.10 References .......................................... 6 1.1.11 Further ............................................ 7 1.1.12 External links ......................................... 7 1.2 Data structure ............................................. 7 1.2.1 Overview ........................................... 7 1.2.2 Examples ........................................... 7 1.2.3 Language support ....................................... 8 1.2.4 See also ............................................ 8 1.2.5 References .......................................... 8 1.2.6 Further reading ........................................ 8 1.2.7 External links ......................................... 9 1.3 Analysis of algorithms ......................................... 9 1.3.1 Cost models ......................................... 9 1.3.2 Run-time analysis -
Security of Authentication Based on a Universal Hash-Function Family
c de Gruyter 2010 J. Math. Crypt. 4 (2010), 1–24 DOI 10.1515 / JMC.2010.xxx The power of primes: security of authentication based on a universal hash-function family Basel Alomair, Andrew Clark and Radha Poovendran Communicated by xxx Abstract. Message authentication codes (MACs) based on universal hash-function families are be- coming increasingly popular due to their fast implementation. In this paper, we investigate a family of universal hash functions that has been appeared repeatedly in the literature and provide a detailed algebraic analysis for the security of authentication codes based on this universal hash family. In particular, the universal hash family under analysis, as appeared in the literature, uses operation in the finite field Zp. No previous work has studied the extension of such universal hash family when computations are performed modulo a non-prime integer n. In this work, we provide the first such analysis. We investigate the security of authentication when computations are performed over arbi- trary finite integer rings Zn and derive an explicit relation between the prime factorization of n and the bound on the probability of successful forgery. More specifically, we show that the probability of successful forgery against authentication codes based on such a universal hash-function family is bounded by the reciprocal of the smallest prime factor of the modulus n. Keywords. Cryptography, authentication, finite integer rings, universal hash-function families. AMS classification. 11T71, 94A60, 94A62. 1 Introduction and related work Message authentication code (MAC) algorithms can be categorized, based on their se- curity, into unconditionally and conditionally secure MACs. -
New Bounds for Almost Universal Hash Functions
New bounds for almost universal hash functions Abstract Using combinatorial analysis and the pigeon-hole principle, we introduce a new lower (or combinatorial) bound for the key length in an almost (both pairwise and l-wise) universal hash function. The advantage of this bound is that the key length only grows in proportion to the logarithm of the message length as the collision probability moves away from its theoretical minimum by an arbitrarily small and positive value. Conventionally bounds for various families of universal hash functions have been derived by using the equivalence between pairwise universal hash functions and error-correcting codes, and indeed in this paper another (very similar) bound for almost universal hash functions can be calculated from the Singleton bound in coding theory. However, the latter, perhaps unexpectedly, will be shown to be not as tight as our combinatorial one. To the best of our knowledge, this is the first time that combinatorial analysis has been demonstrated to yield a better universal hash function bound than the use of the equivalence, and we will explain why there is such a mismatch. This work therefore potentially opens the way to re-examining many bounds for a number of families of universal hash functions, which have been solely derived from bounds in coding theory and/or other combinatorial objects. 1 Introduction and contribution Universal hash function H with parameters (, K, M, b) was introduced by Carter and Wegman [9, 43]. Each family, which is indexed by a K-bit key k, consists of 2K hash functions mapping a message representable by M bits into a b-bit hash output. -
Near-Optimal Space Perfect Hashing Algorithms
Fabiano Cupertino Botelho Supervisor - Nivio Ziviani Near-Optimal Space Perfect Hashing Algorithms PhD. dissertation presented to the Grad- uate Program in Computer Science of the Federal University of Minas Gerais as a par- tial requirement to obtain the PhD. degree in Computer Science. Belo Horizonte September 29, 2008 To my dear wife Jana´ına. To my dear parents Maria L´ucia and Jos´eV´ıtor. To my dear sisters Gleiciane and Cristiane. Acknowledgements To God for having granted me life and wisdom to realize a dream of childhood and for the great help in difficult moments. To my dear wife Jana´ına Marcon Machado Botelho for the love, understanding by several times when I could not give her the attention she deserves, companionship and en- couragement during moments in which I desired to give up everything. Jana thank you for sharing your life with me and the victories won during the entire doctorate. With the grace of God in our lives we will continue to be very happy. To my dear parents Maria L´ucia de Lima Botelho and Jos´eVitor Botelho for sacrifices made in the past that have given support for this achievement. To my dear sisters Cristiane Cupertino Botelho and Gleiciane Cupertino Botelho for the love of the best two sisters in the world. To my dear aunt M´arcia Novaes Alves and my dear uncle Sud´ario Alves for always welcome me with affection, giving me much support throughout my doctorate. To Prof. Nivio Ziviani for the excellent work of supervision and for being an example of professionalism and dedication to work. -
High Speed Hashing for Integers and Strings
High Speed Hashing for Integers and Strings Mikkel Thorup May 12, 2020 Abstract These notes describe the most efficient hash functions currently known for hashing integers and strings. These modern hash functions are often an order of magnitude faster than those presented in standard text books. They are also simpler to implement, and hence a clear win in practice, but their analysis is harder. Some of the most practical hash functions have only appeared in theory papers, and some of them require combining results from different theory papers. The goal here is to combine the information in lecture-style notes that can be used by theoreticians and practitioners alike, thus making these practical fruits of theory more widely accessible. 1 Hash functions The concept of truly independent hash functions is extremely useful in the design of randomized algorithms. We have a large universe U of keys, e.g., 64-bit numbers, that we wish to map ran- domly to a range [m]= 0,...,m 1 of hash values. A truly random hash function h : U [m] { − } → assigns an independent uniformly random variable h(x) to each key in x. The function h is thus a U -dimensional random variable, picked uniformly at random among all functions from U to [m]. | | Unfortunately truly random hash functions are idealized objects that cannot be implemented. More precisely, to represent a truly random hash function, we need to store at least U log2 m bits, and in most applications of hash functions, the whole point in hashing is that the universe| | is much arXiv:1504.06804v9 [cs.DS] 9 May 2020 too large for such a representation (at least not in fast internal memory). -
Algorithms in a Nutshell 2E
www.it-ebooks.info SECOND EDITION Algorithms in a Nutshell 2E George T. Heineman, Gary Pollice, and Stanley Selkow Boston www.it-ebooks.info Algorithms in a Nutshell 2E, Second Edition by George T. Heineman, Gary Pollice, and Stanley Selkow Copyright © 2010 George Heineman, Gary Pollice and Stanley Selkow. All rights re‐ served. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://safaribooksonline.com). For more information, contact our corporate/institutional sales department: 800-998-9938 or [email protected]. Editor: Mary Treseler Indexer: FIX ME! Production Editor: FIX ME! Cover Designer: Karen Montgomery Copyeditor: FIX ME! Interior Designer: David Futato Proofreader: FIX ME! Illustrator: Rebecca Demarest January -4712: Second Edition Revision History for the Second Edition: 2015-07-27: Early release revision 1 See http://oreilly.com/catalog/errata.csp?isbn=0636920032885 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. !!FILL THIS IN!! and related trade dress are trade‐ marks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their prod‐ ucts are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. -
Universal and Perfect Hashing
Lecture 10 Universal and Perfect Hashing 10.1 Overview Hashing is a great practical tool, with an interesting and subtle theory too. In addition to its use as a dictionary data structure, hashing also comes up in many different areas, including cryptography and complexity theory. In this lecture we describe two important notions: universal hashing (also known as universal hash function families) and perfect hashing. Material covered in this lecture includes: • The formal setting and general idea of hashing. • Universal hashing. • Perfect hashing. 10.2 Introduction We will be looking at the basic dictionary problem we have been discussing so far and will consider two versions, static and dynamic: • Static: Given a set S of items, we want to store them so that we can do lookups quickly. E.g., a fixed dictionary. • Dynamic: here we have a sequence of insert, lookup, and perhaps delete requests. We want to do these all efficiently. For the first problem we could use a sorted array with binary search for lookups. For the second we could use a balanced search tree. However, hashing gives an alternative approach that is often the fastest and most convenient way to solve these problems. For example, suppose you are writing an AI-search program, and you want to store situations that you’ve already solved (board positions or elements of state-space) so that you don’t redo the same computation when you encounter them again. Hashing provides a simple way of storing such information. There are also many other uses in cryptography, networks, complexity theory. 52 10.3. -
Optimal Algorithms for Minimal Perfect Hashing
Optimal algorithms for minimal perfect hashing George Havas and Bohdan S. Majewski Key Centre for Software Technology Department of Computer Science University of Queensland Queensland 4072 Australia Abstract Minimal perfect hash functions are used for memory e±cient storage and fast retrieval of items from static sets. We present an overview of previous solutions and analyze a new algorithm based on random graphs for generating order preserving minimal perfect hash functions. We show that the new algorithm is both time and space optimal in addition to being practical. The algorithm generates a minimal perfect hash function in two steps. First a special kind of function into a random graph is computed probabilistically. Then this function is re¯ned deterministically to a minimal perfect hash function. The ¯rst step uses linear random time, while the second runs in linear deterministic time. Key words: Data structures, probabilistic algorithms, analysis of algorithms, hashing, random graphs 1 Introduction Consider a set W of m words each of which is a ¯nite string of symbols over an ordered alphabet §. A hash function is a function h : W ! I that maps the set of words W into some given interval of integers I, say [0; k¡1], where k is an integer, and usually k ¸ m. The hash function, given a word, computes an address (an integer from I) for the storage or retrieval of that item. The storage area used to store items is known as a hash table. Words for which the same address is computed are called synonyms. Due to the existence of synonyms a situation called collision may arise in which two items w1 and w2 have the same address. -
Regular and Almost Universal Hashing: an Efficient Implementation
Regular and almost universal hashing: an efficient implementation D. Ivanchykhin1, S. Ignatchenko1, D. Lemire2 1OLogN Technologies AG, Triesen, Liechtenstein 2LICEF Research Center, TELUQ, Montreal, QC, Canada SUMMARY Random hashing can provide guarantees regarding the performance of data structures such as hash tables— even in an adversarial setting. Many existing families of hash functions are universal: given two data objects, the probability that they have the same hash value is low given that we pick hash functions at random. However, universality fails to ensure that all hash functions are well behaved. We might further require regularity: when picking data objects at random they should have a low probability of having the same hash value, for any fixed hash function. We present the efficient implementation of a family of non-cryptographic hash functions (PM+) offering good running times, good memory usage as well as distinguishing theoretical guarantees: almost universality and component-wise regularity. On a variety of platforms, our implementations are comparable to the state of the art in performance. On recent Intel processors, PM+ achieves a speed of 4.7 bytes per cycle for 32-bit outputs and 3.3 bytes per cycle for 64-bit outputs. We review vectorization through SIMD instructions (e.g., AVX2) and optimizations for superscalar execution. KEY WORDS: performance; measurement; random hashing, universal hashing, non-cryptographic hashing, avalanche effect 1. INTRODUCTION Hashing is ubiquitous in software. For example, most programming languages support hash tables, either directly, or via libraries. However, while many computer science textbooks consider random hashing, most software libraries use deterministic (i.e., non-random) hashing. -
Hashing Techniques: a Survey and Taxonomy
11 Hashing Techniques: A Survey and Taxonomy LIANHUA CHI, IBM Research, Melbourne, Australia XINGQUAN ZHU, Florida Atlantic University, Boca Raton, FL; Fudan University, Shanghai, China With the rapid development of information storage and networking technologies, quintillion bytes of data are generated every day from social networks, business transactions, sensors, and many other domains. The increasing data volumes impose significant challenges to traditional data analysis tools in storing, processing, and analyzing these extremely large-scale data. For decades, hashing has been one of the most effective tools commonly used to compress data for fast access and analysis, as well as information integrity verification. Hashing techniques have also evolved from simple randomization approaches to advanced adaptive methods considering locality, structure, label information, and data security, for effective hashing. This survey reviews and categorizes existing hashing techniques as a taxonomy, in order to provide a comprehensive view of mainstream hashing techniques for different types of data and applications. The taxonomy also studies the uniqueness of each method and therefore can serve as technique references in understanding the niche of different hashing mechanisms for future development. Categories and Subject Descriptors: A.1 [Introduction and Survey]: Hashing General Terms: Design, algorithms Additional Key Words and Phrases: Hashing, compression, dimension reduction, data coding, cryptographic hashing ACM Reference Format: Lianhua Chi and Xingquan Zhu. 2017. Hashing techniques: A survey and taxonomy. ACM Comput. Surv. 50, 1, Article 11 (April 2017), 36 pages. DOI: http://dx.doi.org/10.1145/3047307 1. INTRODUCTION Recent advancement in information systems, including storage devices and networking techniques, have resulted in many applications generating large volumes of data and requiring large storage, fast delivery, and quick analysis. -
Lecture 4: Hashing
Lecture 4: Hashing Rafael Oliveira University of Waterloo Cheriton School of Computer Science [email protected] September 21, 2020 1 / 78 Overview Introduction Hash Functions Why is hashing? How to hash? Succinctness of Hash Functions Coping with randomness Universal Hashing Hashing using 2-universal families Perfect Hashing Acknowledgements 2 / 78 Computational Model Before we talk about hash functions, we need to state our model of computation: Definition (Word RAM model) In the word RAMa model: all elements are integers that fit in a machine word of w bits Basic operations (comparison, arithmetic, bitwise) on such words take Θ(1) time We can also access any position in the array in Θ(1) time aRAM stands for Random Access Model 3 / 78 Naive approach: use an array A of m elements, initially A[i] = 0 for all i, and when a key is inserted, set A[i] = 1. Insertion: O(1), Deletion: O(1), Search: O(1) Memory: O(m log(m)) (this is very bad!) Want to also achieve optimal memory O(n log(m)). For this we will use a technique called hashing. A hash function is a function h : U ! [0; n − 1], where jUj = m >> n. A hash table is a data structure that consists of: a table T with n cells [0; n − 1], each cell storing O(log(m)) bits a hash function h : U ! [0; n − 1] From now on, we will define memory as # of cells. What is hashing? We want to store n elements (keys) from the set U = f0; 1;:::; m − 1g, where m >> n, in a data structure that supports insertions, deletions, search \as efficiently as possible." 4 / 78 Insertion: O(1), Deletion: O(1), Search: O(1) Memory: O(m log(m)) (this is very bad!) Want to also achieve optimal memory O(n log(m)).