Giving Credit where Credit Is Due

ACM recognizes excellence through its eminent awards for technical and professional achievements and contributions in computer science and information technology. It also names as Fellows and Distinguished Members those members who, in addition to professional accomplishments, have made significant contributions to ACM's mission. ACM awards recognize achievements by young computing professionals, educators, theoretical computer scientists, software systems innovators, and pioneers who have made humanitarian and cross-discipline contributions.

How to Nominate

Award nominations deadlines occur throughout the year, with a heavy concentration in the Fall. Please refer to the Nomination Process page for each award, which includes not only information about the deadline but also guidance for preparing each type of nomination. ACM's conflict-of-interest guidelines apply to all award nominations.

Toward the goal of "secure network programming for the masses," the recipients conceived secure sockets as a high-level abstraction suitable for securing Internet applications. In 1993, at the Networking Research Laboratory, Department of Computer Sciences, University of Texas at Austin, the recipients designed and implemented the first secure sockets layer, named Secure Network Programming (SNP). Funding for this project was provided by NSA and NSF. SNP, designed as an application sublayer on top of sockets, provides a user interface closely resembling sockets. This resemblance was by design so that security could be retrofitted into existing application programs that use sockets with only minor modifications. SNP's secure sockets support both stream and datagram semantics with security guarantees (i.e., data origin authenticity, data destination authenticity, data integrity, and data confidentiality.) Many of the design choices in SNP can be found in today's secure sockets layer used between browsers and Internet servers, including: placing authenticated communication endpoints in the application layer, use of public key cryptography for authentication, a handshake protocol for establishing session state including a shared secret, use of symmetric key cryptography for data confidentiality, and managing contexts and credentials in the secure sockets layer.