Abstract
We extend the notion of program checking to include programs which alter their environment. In particular, we consider programs which store and retrieve data from memory. The model we consider allows the checker a small amount of reliable memory. The checker is presented with a sequence of requests (on-line) to a data structure which must reside in a large but unreliable memory. We view the data structure as being controlled by an adversary. We want the checker to perform each operation in the input sequence using its reliable memory and the unreliable data structure so that any error in the operation of the structure will be detected by the checker with high probability.
We present checkers for various data structures. We prove lower bounds of logn on the amount of reliable memory needed by these checkers wheren is the size of the structure. The lower bounds are information theoretic and apply under various assumptions. We also show time-space tradeoffs for checking random access memories as a generalization of those for coherent functions.
Similar content being viewed by others
References
L. Adelman, M. Huang, and K. Kompella, Efficient checkers for number-theoretic computation, preprint.
M. Blum, W. Evans, P Gemmell, S. Kannan, and M. Naor, Checking the correctness of memories,Proc. 32nd IEEE Symposium on Foundations of Computer Science, pages 90–99, 1991.
M. Blum and S. Kannan, Designing programs that check their work,Proc. 21st ACM Symposium on Theory of Computing, pages 86–97, 1989.
M. Blum, M. Luby, and R. Rubinfeld, Self-testing and self-correcting programs with applications to numerical problems,Proc. 22nd ACM Symposium on Theory of Computing, pages 73–83, 1990.
M. Blum, M. Luby, and R. Rubinfeld,Program Result Checking Against Adaptive Programs and in Cryptographic Settings, DIMACS Series in Discrete Mathematics and Theoretical Computer Science, Vol. 2, pages 107–118, 1991.
A. Condon, Space bounded probabilistic game automata,Journal of the ACM, 38(2):472–494, April 1991.
C. Dwork and L. Stockmeyer, Finite states verifiers, I: the power of interaction,Journal of the ACM, 39(4):800–828, 1992.
L. Fortnow, J. Rompel, and M. Sipser, On the power of multi-prover interactive protocols,Proc. 3rd IEEE Structure in Complexity Theory, pages 156–161, 1988.
O. Goldreich, Towards a theory of software protection and simulation by oblivious RAMS,Proc. 19th ACM Symposium on Theory of Computing, pages 182–194, 1987.
O. Goldreich, S. Goldwasser, and S. Micali, How to construct random functions,Journal of the ACM, 33(4):792–807, October 1986.
J. Håstad, Pseudo-random generators under uniform assumptions,Proc. 22nd ACM Symposium on Theory of Computing, pages 395–405, 1990.
R. Impagliazzo, L. A. Levin, and M. Luby Pseudo-random generators from one-way functions,Proc. 21st ACM Symposium on Theory of Computing, pages 12–24, 1989.
R. Lipton, Efficient checking of computations,Proc. 7th Annual Symposium on Theoretical Aspects of Computer Science, pages 207–215, 1990.
R. Lipton,New Directions in Testing, DIMACS Series in Discrete Mathematics and Theoretical Computer Science, Vol. 2, pages 191–202, 1991.
R. Merkle. A certified digital signature, Manuscript, 1979. See alsoAdvances in Cryptology, Crypto '89 Proceedings, pages 218–238, 1990. Lecture Notes in Computer Science, Vol. 435, Springer-Verlag, Berlin.
J. Naor and M. Naor, Small-bias probability spaces: efficient constructions and applications,Proc. 22nd ACM Symposium on Theory of Computing, pages 213–223, 1990.
M. Naor and M. Yung, Universal one-way hash functions and their cryptographic applications,Proc. 21st ACM Symposium on Theory of Computing, pages 33–43, 1989.
R. Ostrovsky, Efficient computation on oblivious RAMS,Proc. 22nd ACM Symposium on Theory of Computing, pages 514–523, 1990.
N. Pippenger and M. J. Fischer, Relations among complexity measures,Journal of the ACM, 26(2):361–381, 1979.
J. Rompel, One way functions are necessary and sufficient for secure signatures,Proc. 22nd ACM Symposium on Theory of Computing, pages 387–394, 1990.
A. Yao, Coherent functions and program checkers,Proc. 22nd ACM Symposium on Theory of Computing, pages 84–94, 1990.
Author information
Authors and Affiliations
Additional information
Communicated by Jeffrey Scott Vitter.
This work was supported in part by NSF Grant CCR 88-13632. A preliminary version of this paper appeared at the 32nd IEEE Symposium on Foundations of Computer Science [2].
Rights and permissions
About this article
Cite this article
Blum, M., Evans, W., Gemmell, P. et al. Checking the correctness of memories. Algorithmica 12, 225–244 (1994). https://doi.org/10.1007/BF01185212
Received:
Revised:
Issue Date:
DOI: https://doi.org/10.1007/BF01185212