How to Construct Random Functions

How to Construct Random Functions

October 1986 | ODED GOLDREICH, SHAFI GOLDWASSER, AND SILVIO MICHALI
This paper presents a constructive theory of randomness for functions based on computational complexity. The authors develop a pseudorandom function generator that transforms pairs (g, r), where g is a one-way function and r is a random k-bit string, into polynomial-time computable functions f_r: {1, ..., 2^k} → {1, ..., 2^k}. These functions cannot be distinguished from random functions by any probabilistic polynomial-time algorithm. The result has applications in cryptography, random constructions, and complexity theory. The paper introduces the concept of poly-random collections, which are sets of functions that are easy to select and evaluate, yet exhibit the properties of random functions to polynomial-time computation. The authors show that if one-way functions exist, then poly-random collections can be constructed. They also compare poly-random collections with one-way functions and cryptographically strong pseudorandom bit generators (CSB generators), demonstrating that poly-random collections offer greater flexibility and efficiency. The authors also discuss the implications of their results for cryptographic applications, including the construction of secure protocols and the use of poly-random collections in fair contract signing. They show that poly-random collections can be used to construct "ideal private key cryptosystems" and that they have applications in message authentication, secret identification number distribution, and cryptographic hashing. The paper concludes by demonstrating that poly-random collections cannot be polynomially inferred, even if the underlying one-way function is polynomially inferable. This result highlights the strength of poly-random collections as a tool for cryptographic applications.This paper presents a constructive theory of randomness for functions based on computational complexity. The authors develop a pseudorandom function generator that transforms pairs (g, r), where g is a one-way function and r is a random k-bit string, into polynomial-time computable functions f_r: {1, ..., 2^k} → {1, ..., 2^k}. These functions cannot be distinguished from random functions by any probabilistic polynomial-time algorithm. The result has applications in cryptography, random constructions, and complexity theory. The paper introduces the concept of poly-random collections, which are sets of functions that are easy to select and evaluate, yet exhibit the properties of random functions to polynomial-time computation. The authors show that if one-way functions exist, then poly-random collections can be constructed. They also compare poly-random collections with one-way functions and cryptographically strong pseudorandom bit generators (CSB generators), demonstrating that poly-random collections offer greater flexibility and efficiency. The authors also discuss the implications of their results for cryptographic applications, including the construction of secure protocols and the use of poly-random collections in fair contract signing. They show that poly-random collections can be used to construct "ideal private key cryptosystems" and that they have applications in message authentication, secret identification number distribution, and cryptographic hashing. The paper concludes by demonstrating that poly-random collections cannot be polynomially inferred, even if the underlying one-way function is polynomially inferable. This result highlights the strength of poly-random collections as a tool for cryptographic applications.
Reach us at info@study.space
Understanding How to construct random functions