## Bookshelf

The following references will help you understand the design, implementation, and use of Speak Freely.

Allard, J., Keith Moore, and David Treadwell. Plug into Serious Network Programming with the Windows Sockets API. Microsoft Systems Journal, Vol 8, No 7, 35, (July 1993). Excellent introduction to the Windows Sockets (WINSOCK) API used by Speak Freely for network communications. The WORMHOLE sample application presented in this article provided the model for Speak Freely, in particular suggesting that the Multiple Document Interface (MDI) was an excellent way to represent multiple simultaneous connections.

Davis, Ralph. Windows Network Programming. Reading (Mass.): Addison-Wesley, 1993. Documents the programming interface of a variety of networks, including a network-independent interface module for each. The chapter covering the Windows Sockets (WINSOCK) API is one of the clearest expositions of that facility I've encountered.

Denning, Dorothy E. Cryptography and Data Security. Reading (Mass.): Addison-Wesley, 1987. Thorough technical reference on the design and application of various methods. Includes an analysis of the strengths and weaknesses of DES.

Microsoft. Microsoft Windows Multimedia Programmer's Reference. Redmond, Washington: Microsoft Press, 1991. Documents the Windows Multimedia API, including the waveIn xxx and waveOut xxx functions used to receive and send audio, and the mmio Xxx functions used to read `.WAV` files. This book is useful only if you want to modify the source code of Speak Freely.

Schneier, Bruce. The IDEA Encryption Algorithm. Dr. Dobb's Journal, 208, 50, (December 1993). Detailed information on the design, cryptographic security, and implementation of IDEA, used by both PGP and Speak Freely. The source code included in this article was adapted to implement Speak Freely 's IDEA encryption.

Schneier, Bruce. Applied Cryptography (2nd ed.). New York: Wiley, 1996. This essential reference, by the inventor of the Blowfish encryption algorithm, provides extensive details and on most contemporary encryption algorithms, including assessment of security and performance. C source code is included for a variety of algorithms, including Blowfish, IDEA, and DES.

Schulzrinne. H., R. Frederick, and V. Jacobson. RTP: A Transport Protocol for Real-Time Applications. Internet RFC 1889 (January 1996). Standards track specification of RTP, the proposed protocol for all forms of real-time data on the Internet. This document is available on the Internet as http://www.ietf.org/rfc/rfc1889.txt.

Schulzrinne. H. RTP Profile for Audio and Video Conferences with Minimal Control. Internet RFC 1890 (January 1996). Specifies audio and video encodings (compression and encryption modes) used within RTP packets. Speak Freely's RTP support conforms to RFCs 1889 and 1890. This document is available on the Internet as http://www.ietf.org/rfc/rfc1890.txt.

Zimmerman, Philip R. The Official PGP User's Guide. Cambridge (Mass.): MIT Press, 1995. Written by the creator of PGP, this book provides practical information on how to obtain, install, and use PGP to securely exchange information (including Speak Freely keys) even with strangers, and discusses the strengths and weaknesses of the DES and IDEA cryptographic algorithms and the legal issues associated with secure communication between individuals.