skip to main content
article
Free Access

Public protection of software

Published:01 October 1987Publication History
Skip Abstract Section

Abstract

One of the overwhelming problems that software producers must contend with is the unauthorized use and distribution of their products. Copyright laws concerning software are rarely enforced, thereby causing major losses to the software companies. Technical means of protecting software from illegal duplication are required, but the available means are imperfect. We present protocols that enable software protection, without causing substantial overhead in distribution and maintenance. The protocols may be implemented by a conventional cryptosystem, such as the DES, or by a public key cryptosystem, such as the RSA. Both implementations are proved to satisfy required security criteria.

References

  1. 1 ADAPSO. Proposal for software authorization system standards. ADAPSO, 1300 N. 17th St. Arlington, Va., Oct. 1985.Google ScholarGoogle Scholar
  2. 2 ALBERT, D. J. AND MORSE, S.P. Combating software piracy by encryption and key management. Computer (Apr. 1984).Google ScholarGoogle Scholar
  3. 3 DANCOTEC COMPUTER. Copybook User Guide. Dancotec, Bakkefaldet 36, 2840 Holt, Denmark, Mar. 1986.Google ScholarGoogle Scholar
  4. 4 DOLEV, D., EVEN, S., AND KARP, R.M. On the security of ping-pong protocols. Inf. Control 55 (1982}, 57-68.Google ScholarGoogle Scholar
  5. 5 DIFFIE, W., AND HELLMAN, M. New directions in cryptography. IEEE Trans. Inf. Theory IT-22 (1976).Google ScholarGoogle Scholar
  6. 6 HERZBERG, A., AND KARMI, G. On software protection. In Proceedings of the 4th Jerusalem Conference on Information Technology. (Jerusalem, Apr. 1984). North-Holland, Amsterdam, 1984.Google ScholarGoogle Scholar
  7. 7 HERZBERG, A., AND PINTER, S. S. The transaction system model and security engineering. To be published.Google ScholarGoogle Scholar
  8. 8 JONGE, W., AND CHAUM, D. Attacks on some RSA signatures. In Advances in Cryptology-- CR YPTO 85 (1985). Springer Verlag, New York, 1985, pp. 18-27. Google ScholarGoogle Scholar
  9. 9 KENT, S. W. Protecting externally supplied software in small computers. Tech. Rep. 255. Massachusetts Institute of Technology/LCS, Cambridge, Mass., Sept. 1980. Google ScholarGoogle Scholar
  10. 10 MERRITT, M. J. Cryptographic protocols. GIT-ICS-83/06. Ph.D. dissertation, The Georgia Institute of Technology, Atlanta, Ga., 1983. Google ScholarGoogle Scholar
  11. 11 NATIONAL BUREAU OF STANDARDS. Data Encryption Standard. FIPS Publication 46, National Bureau of Standards, U.S. Department of Commerce, Washington, D.C. Jan. 1977.Google ScholarGoogle Scholar
  12. 12 RIVEST, R. L., SHAMIR, A., AND ADLEMAN, L. A method for obtaining digital signatures and public-key cryptosystems. Commun. ACM 21, 2 (Feb. 1978), 120-126. Google ScholarGoogle Scholar
  13. 13 SIMMONS, G.J. How to (selectively) broadcast a secret. In Proceedings of the 1985 Symposium on Security and Privacy (Oakland, Calif., Apr. 1985). IEEE, New York, 1985, pp. 108-113.Google ScholarGoogle Scholar
  14. 14 SIMMONS, G. J., PURD~, G. B., AND STUDIER, J.A. A software protection scheme. In Proceedings of the 1982 Symposium on Security and Privacy (Oakland, Calif., 1982). IEEE, New York, 1982, pp. 99-103.Google ScholarGoogle Scholar

Index Terms

  1. Public protection of software

            Recommendations

            Reviews

            James P. Anderson

            This paper is about a serious problem of modern computing, that is, protecting widely distributed programs from being copied and used by individuals who have not paid for them. The authors present a number of different protocols for secure distribution of encrypted software to end-users both directly and through distributors. In this approach to protecting widely distributed software, the producer distributes the product in encrypted form. The paper is concerned with the way that the program gets to the end-user in a secure (enciphered) state such that no intermediary attacker can obtain constructive use of the program no matter what he or she does. The paper addresses the subissues of user (host) identification and authentication, the secure transmission of cryptovariables, and the robustness of the protocol in an environment where the attacker is, in principle, part of the system. The protocols are presented in considerable detail and their security properties are proved using a transaction system as a model of the protocols and their properties. As indicated above, the protocols cover direct and indirect distribution of software and the replacement of keys damaged in a failed computer. Protocols based on both asymmetric (public) and symmetric (conventional) keyed cryptosystems are presented, along with proof of their security properties for the direct distribution of software. The overall scheme hinges on making the computers store and execute encrypted programs. To accomplish this, the processor part of a computer must be modified to let it decrypt the encrypted program as it is being used. The authors briefly discuss the architectural changes that must be made to a computer to permit it to decrypt an encrypted program. Two architectures are presented, a pipeline architecture and a cache architecture. In the former, the instructions are decrypted as they are fetched from program storage. Buffers are employed to compensate for any speed mismatches that may occur. In the cache version, the entire program is decrypted as it is loaded into a protected execution storage that is mapped onto the computer's main storage for execution but is otherwise not accessible to the user. The authors indicate that a prototype version of the cache architecture is being constructed for an IBM PC with an expected total cost of less than $100. Quite clearly, the cost effectiveness of such storage schemes hinges on the ability to protect the cryptofunction and/or the execution storage of the modified system. This paper does not deal with any of the severe engineering issues that are raised by this requirement. The interested reader should consult the recent papers by White and Comerford [1] and Weingart [2] for more detail on what a “protected CPU” entails. Overall, this is quite a good paper. The part comparing the author's scheme with other schemes is written as though the reader is familiar with all of the details of those other schemes. In spite of this, the paper is readable and is recommended to individuals interested in protecting software as well as in the considerable problems of secure distribution of cryptographic variables.

            Access critical reviews of Computing literature here

            Become a reviewer for Computing Reviews.

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in

            Full Access

            • Published in

              cover image ACM Transactions on Computer Systems
              ACM Transactions on Computer Systems  Volume 5, Issue 4
              Nov. 1987
              112 pages
              ISSN:0734-2071
              EISSN:1557-7333
              DOI:10.1145/29868
              Issue’s Table of Contents

              Copyright © 1987 ACM

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 1 October 1987
              Published in tocs Volume 5, Issue 4

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • article

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader