[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

John Walker releases encrypting Speak Freely/Netfone

[John lives in Switzerland and renounced his US citizenship, so
there's no export issue...]

Date: Wed, 23 Aug 1995 07:14:10 -0400
Forwarded-by: [email protected] (David Farber)

From: John Walker <[email protected]>
Subject: Free secure Internet voice communication

I've just released to the public domain Release 5 of Speak Freely for
Windows and its Unix counterpart, Netfone for Sun and Silicon Graphics
workstations.  Assuming you have a fast enough connection to the
Internet (with reasonably consistent packet delivery time) and/or a
fast enough CPU to perform audio compression in real time, you can
talk to anybody on Earth connected to the Internet who's also running
the program.  The Windows and Unix versions have entirely different
user interfaces, but can intercommunicate.  Complete source code is

For communications security, IDEA, DES (less initial and final
permutations), and one-time pad (re-used for each sound packet)
encryption are available.  The intensely paranoid can enable any
combination of these.  The documentation explains how to use PGP to
securely exchange session keys before a conversation; an automatic
session key generator is provided.  DES is included for commercial
users who don't have a license to use the IDEA patent.  One-time pad
encryption is for those with machines too slow to run IDEA or DES in
real time.

I didn't include a public key mechanism because I wanted to avoid all
the confusion.  If somebody wants to navigate the narrow strait
between the RSA patent Scylla and Charybdis of export controls, the
programming work to implement public keys is straightforward and the
source code is yours to hack.

For further information, see:


which describes the Windows version in detail and contains pointers to
the Sun and SGI editions, as well as links to download source code and
a ready-to-run executable for Windows.  You can also obtain the
program by anonymous binary FTP:

Unix source code:

Windows executable:

Windows source code (for Visual C 1.5):

The Sun and SGI versions of this program are quite stable, and should
work for just about anybody with an adequate network connection.
Porting the code to other Unix workstations with audio hardware should
be relatively straightforward.  The Windows version has just been
finished and until it's shaken down on a variety of machines,
networks, sound cards, etc. may not work for everybody.

The Windows version requires a sound card with Windows Multimedia
drivers (I've tested it on a variety of Sound Blasters of various
generations) and a TCP/IP stack that supports WINSOCK (I'm using
NetManage Chameleon NFS).  Since multimedia and network hardware and
drivers vary tremendously from machine to machine, I wouldn't be
surprised if some tweaking were needed for various configurations.
The CPU speed required interacts with the speed of your network
connection; if you have a high-bandwidth connection to the Internet,
or you're talking to another person on a high-speed LAN, there's no
need to compress sound and the CPU load is minimal; just about any
machine will do.  If you need to compress in order to squeeze 8000
samples per second into a dial-up connection, then you need a CPU fast
enough to run GSM compression in real time: basically we're talking a
very fast 486 or Pentium.  If you turn on IDEA and/or DES encryption,
that also consumes CPU time.

Based on my experience with other Windows programs, it will probably
take months to track down misbehaviour due to strange hardware and
software configurations.  Complete, detailed bug reports are welcome.
I may not be able to respond individually, but the Web page will track
updates as they're released.  I have tested the program only on
vanilla 16 bit Windows 3.1.

The Windows version contains preliminary code to support direct
dial-up modem connections, acting as a phone scrambler.  Serial port
support in most Windows machines is so poor (unless you have a 16550A
UART and appropriate drivers, which most people don't) that this
feature isn't usable at present.  I've left the code in just in case
somebody with suitable hardware wants to bash it into working form.

If you add features, port the program to 32 bits, fix bugs, etc., let
me know so I can make your contributions generally available.

--------------------  <http://www.fourmilab.ch/>  -------------------
John Walker                      | A sufficiently advanced
Internet: [email protected]    | technology is indistinguishable
                                 | from a rigged demo.