How to construct random functions

  • Authors:
  • Oded Goldreich;Shafi Goldwasser;Silvio Micali

  • Affiliations:
  • Massachusetts Institute of Technology, Cambridge;Massachusetts Institute of Technology, Cambridge;Massachusetts Institute of Technology, Cambridge

  • Venue:
  • Journal of the ACM (JACM)
  • Year:
  • 1986

Quantified Score

Hi-index 0.01

Visualization

Abstract

A constructive theory of randomness for functions, based on computational complexity, is developed, and a pseudorandom function generator is presented. This generator is a deterministic polynomial-time algorithm that transforms pairs (g, r), where g is any one-way function and r is a random k-bit string, to polynomial-time computable functions ƒr: {1, … , 2k} → {1, … , 2k}. These ƒr's cannot be distinguished from random functions by any probabilistic polynomial-time algorithm that asks and receives the value of a function at arguments of its choice. The result has applications in cryptography, random constructions, and complexity theory.