Abstract: A system for distributing digital data among a plurality of customers is provided which comprises a modular software architecture to accommodate different data preview, search, data compression and encryption functions, and different purchase transactions. A software kernel creates an operating environment in conjunction with the host operating system of a customer computer to accommodate these different services and functions and allow for the storage and retrieval of datasets from a variety of storage locations, such as portable storage devices at customer computers and shared memory devices accessible via communication networks. Computer-dependent product codes for requesting datasets and release codes for decrypting datasets are generated to protect against unauthorized use of selected datasets.