How to generate cryptographically strong sequences of pseudo-random bits
SIAM Journal on Computing
How to construct random functions
Journal of the ACM (JACM)
Pseudo-random permutation generators and cryptographic composition
STOC '86 Proceedings of the eighteenth annual ACM symposium on Theory of computing
An efficient probabilistic public key encryption scheme which hides all partial information
Proceedings of CRYPTO 84 on Advances in cryptology
One-way functions and pseudorandom generators
STOC '85 Proceedings of the seventeenth annual ACM symposium on Theory of computing
RSA and Rabin functions: certain parts are as hard as the whole
SIAM Journal on Computing - Special issue on cryptography
Relations Among Complexity Measures
Journal of the ACM (JACM)
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
STOC '83 Proceedings of the fifteenth annual ACM symposium on Theory of computing
PROTECTING EXTERNALLY SUPPLIED SOFTWARE IN SMALL COMPUTERS
PROTECTING EXTERNALLY SUPPLIED SOFTWARE IN SMALL COMPUTERS
Efficient computation on oblivious RAMs
STOC '90 Proceedings of the twenty-second annual ACM symposium on Theory of computing
An efficient software protection scheme
CRYPTO '89 Proceedings on Advances in cryptology
Cryptographic defense against traffic analysis
STOC '93 Proceedings of the twenty-fifth annual ACM symposium on Theory of computing
Incremental cryptography and application to virus protection
STOC '95 Proceedings of the twenty-seventh annual ACM symposium on Theory of computing
Software protection and simulation on oblivious RAMs
Journal of the ACM (JACM)
Private information storage (extended abstract)
STOC '97 Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
Computationally private information retrieval (extended abstract)
STOC '97 Proceedings of the twenty-ninth annual ACM symposium on Theory of computing
The invasiveness of off-line memory checking
STOC '02 Proceedings of the thiry-fourth annual ACM symposium on Theory of computing
An efficient software protection scheme
Sec '01 Proceedings of the 16th international conference on Information security: Trusted information: the new decade challenge
Stack and Queue Integrity on Hostile Platforms
IEEE Transactions on Software Engineering
Efficiency Improvements of the Private Message Service
IHW '01 Proceedings of the 4th International Workshop on Information Hiding
Hardware assisted control flow obfuscation for embedded processors
Proceedings of the 2004 international conference on Compilers, architecture, and synthesis for embedded systems
HIDE: an infrastructure for efficiently protecting information leakage on the address bus
ASPLOS XI Proceedings of the 11th international conference on Architectural support for programming languages and operating systems
The Complexity of Online Memory Checking
FOCS '05 Proceedings of the 46th Annual IEEE Symposium on Foundations of Computer Science
A low-cost memory remapping scheme for address bus protection
Proceedings of the 15th international conference on Parallel architectures and compilation techniques
Secure coprocessors in electronic commerce applications
WOEC'95 Proceedings of the 1st conference on USENIX Workshop on Electronic Commerce - Volume 1
The complexity of online memory checking
Journal of the ACM (JACM)
A low-cost memory remapping scheme for address bus protection
Journal of Parallel and Distributed Computing
EUROCRYPT'96 Proceedings of the 15th annual international conference on Theory and application of cryptographic techniques
Oblivious RAMs without cryptogrpahic assumptions
Proceedings of the forty-second ACM symposium on Theory of computing
CRYPTO'10 Proceedings of the 30th annual conference on Advances in cryptology
Perfectly secure oblivious RAM without random oracles
TCC'11 Proceedings of the 8th conference on Theory of cryptography
Secure computation with information leaking to an adversary
Proceedings of the forty-third annual ACM symposium on Theory of computing
A light-weight solution to preservation of access pattern privacy in un-trusted clouds
ESORICS'11 Proceedings of the 16th European conference on Research in computer security
Advances in Software Engineering
On the (in)security of hash-based oblivious RAM and a new balancing scheme
Proceedings of the twenty-third annual ACM-SIAM symposium on Discrete Algorithms
A secure and auto-configurable environment for mobile agents in ubiquitous computing scenarios
UIC'06 Proceedings of the Third international conference on Ubiquitous Intelligence and Computing
Protecting circuits from leakage: the computationally-bounded and noisy cases
EUROCRYPT'10 Proceedings of the 29th Annual international conference on Theory and Applications of Cryptographic Techniques
Oblivious RAM with o((logn)3) worst-case cost
ASIACRYPT'11 Proceedings of the 17th international conference on The Theory and Application of Cryptology and Information Security
Hardness preserving constructions of pseudorandom functions
TCC'12 Proceedings of the 9th international conference on Theory of Cryptography
A secure processor architecture for encrypted computation on untrusted programs
Proceedings of the seventh ACM workshop on Scalable trusted computing
Trusted code execution in JavaCard
TrustBus'07 Proceedings of the 4th international conference on Trust, Privacy and Security in Digital Business
A fully homomorphic crypto-processor design: correctness of a secret computer
ESSoS'13 Proceedings of the 5th international conference on Engineering Secure Software and Systems
Distributed oblivious RAM for secure two-party computation
TCC'13 Proceedings of the 10th theory of cryptography conference on Theory of Cryptography
Memory access pattern protection for resource-constrained devices
CARDIS'12 Proceedings of the 11th international conference on Smart Card Research and Advanced Applications
Data-oblivious graph algorithms for secure computation and outsourcing
Proceedings of the 8th ACM SIGSAC symposium on Information, computer and communications security
Design space exploration and optimization of path oblivious RAM in secure processors
Proceedings of the 40th Annual International Symposium on Computer Architecture
Path ORAM: an extremely simple oblivious RAM protocol
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
PHANTOM: practical oblivious computation in a secure processor
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
PICCO: a general-purpose compiler for private distributed computation
Proceedings of the 2013 ACM SIGSAC conference on Computer & communications security
Generalized external interaction with tamper-resistant hardware with bounded information leakage
Proceedings of the 2013 ACM workshop on Cloud computing security workshop
Shroud: ensuring private access to large-scale data in the data center
FAST'13 Proceedings of the 11th USENIX conference on File and Storage Technologies
Hi-index | 0.00 |
Software protection is one of the most important issues concerning computer practice. There exist many heuristics and ad-hoc methods for protection, but the problem as a whole has not received the theoretical treatment it deserves. In this paper, we make the first steps towards a theoretic treatment of software protection: First, we distill and formulate the key problem of learning about a program from its execution. Second, assuming the existence of one-way permutations, we present an efficient way of executing programs such that it is infeasible to learn anything about the program by monitoring its executions.How can one efficiently execute programs without allowing an adversary, monitoring the execution, to learn anything about the program? Traditional cryptographic techniques can be applied to keep the contents of the memory unknown throughout the execution, but are not applicable to the problem of hiding the access pattern. The problem of hiding the access pattern efficiently corresponds to efficient simulation of Random Access Machines (RAM) on an oblivious RAM. We define an oblivious RAM to be a (probabilistic) RAM for which (the distribution of) the memory access pattern is independent of the input. We present an (on-line) simulation of t steps of an arbitrary RAM with m memory cells, by less than t·m&egr; steps of an oblivious RAM with 2m memory cells, where &egr;0 is an arbitrary constant.