1. A computer implemented system for purchasing software comprising: a supervising program executing on a user device, which is associated with a purchaser, where the integrity of the supervising program on the user device is ensured; and the supervising program having computer readable instructions that enable a purchaser to purchase software from a vendor while protecting the privacy of the purchaser from the vendor during the purchase by: creating, on the user device, a data structure including: an identification of said software; and a tag table identifier value associated with a tag table in the user's device, the tag table providing information about one or more tags that convey permission to use the software, the tag table identifier value identifying the tag table; where the tag table identifier value is independent of any identifying information associated with hardware of said user device and where use of the same tag table identifier value on multiple user devices is detectable by a communication protocol using a call-up mechanism; computing, by said user device, a function value of said data structure using a one-way function, where the tag table identifier value cannot be determined by the vendor; sending, by said user device, a message to the vendor comprising said function value and said identification of said software, where the tag table identifier is masked by the one-way function to avoid revealing the tag table identifier to the vendor; and wherein the call-up mechanism includes sending, at some time, by the supervising program from the user device, a call-up message to a guardian center, where the call-up message assists the guardian center in detecting whether another user device is using the same tag table identifier value.