virtual monotonic counters and count-limited objects using a tpm without a trusted os
A trusted monotonic counter is a valuable primitive that enables a wide variety of highly scalable offline and decentralized applications that would otherwise be prone to replay attacks, including offline payment, e-wallets, virtual trusted storage, and digital rights management (DRM). In this paper, we show how one can implement a very large number of virtual monotonic counters on an untrusted machine with a Trusted Platform Module (TPM) or similar device, without relying on a trusted OS. We first present a log-based scheme that can be implemented with the current version of the TPM (1.2) and used in certain applications. We then show how the addition of a few simple features to the TPM makes it possible to implement a hash-tree-based scheme that not only offers improved performance and scalability compared to the log-based scheme, but also makes it possible to implement count-limited objects (or `` clobs '' for short) -- i.e., encrypted keys, data, and other objects that can only be used when an associated virtual monotonic counter is within a certain range. Such count-limited objects include n-time use keys , n-out-of-m data blobs , n-copy migratable objects , and other variants, which have many potential uses in digital rights management (DRM), digital cash, itinerant computing, and other application areas.
trusted storage e-wallet memory integrity checking stored-value key delegation certified execution