From: mrr@scss3.cl.msu.edu (Mark Riordan)
Newsgroups: alt.security.ripem
Subject: RIPEM FAQ
Date: 7 Jan 93 02:21:30 GMT
Organization: Michigan State University
NNTP-Posting-Host: scss3.cl.msu.edu
X-Newsreader: TIN [version 1.1 PL6]

This newsgroup hadn't reached many sites (including mine), so I
just had my news admin recreate it.  I will therefore take this
opportunity to post the latest version of the RIPEM FAQ, written
by Marc VanHeyningen, mvanheyn@whale.cs.indiana.edu.
Though I didn't write it, I agree with everything in it.

Here it is:

Archive-name: ripem-faq
Last-update: Mon, 04 Jan 93 22:07:58 -0500

FREQUENTLY ASKED QUESTIONS ABOUT RIPEM

This is a (still rather rough) listing of likely questions and
information about RIPEM, a program for public key mail encryption.  It
was written and will be maintained by Marc VanHeyningen,
mvanheyn@whale.cs.indiana.edu.

Contents:
 1.  What is RIPEM?
 2.  How can I get RIPEM?
 3.  Will RIPEM run on my machine?
 4.  Will RIPEM work with my mailer?
 5.  What is RSA?
 6.  What is DES?
 7.  What is PEM, and how does RIPEM relate?
 8.  What's this about distributing and authenticating keys?
 9.  What is a fingerprint, like MD5?
 10. What is PGP?
 11. What about RPEM?
 12. What is MIME?
 13. I have this simple way to defeat the security of RIPEM...

1.  What is RIPEM?

RIPEM is a program which performs Privacy Enhanced Mail (PEM) using
the cryptographic techniques of RSA and DES.  It allows your electronic
mail to have the properties of authentication (i.e. who sent it can be
confirmed) and privacy (nobody can read it except the intended
recipient.)

RIPEM was written primarily by Mark Riordan (mrr@scss3.cl.msu.edu).
Most of the code is in the public domain, except for the RSA routines,
which are a library called RSAREF licensed from RSA Data Security Inc.

2.  How can I get RIPEM?

RIPEM contains cryptographic software which the U.S. government
considers munitions and thus is export-restricted, so it cannot be given
to anyone except a citizen of the U.S. or Canada.

Note that RSAREF is not in the public domain, and a license for it is
included with the distribution.  You should read it before using RIPEM.

The best way to get it is to ask a friend for a copy, since this will
reduce the load on those sites that do carry it (not to mention the
humans that run them.)

Mark Riordan on how to obtain RIPEM:
>HOW TO GET RIPEM
>
>RIPEM is distributed in both source and executable forms.
>The binaries are distributed merely as a convenience to you,
>as the source distribution contains all necessary source to
>build RIPEM, including the source to RSAREF.
>
>RIPEM is distributed via non-anonymous FTP from rpub.cl.msu.edu.
>You must apply for an "account" on this machine, as described below.
>
>I do not distribute RIPEM via email, because past experience has
>taught me that I can't handle the load.  However, RSA Data Security
>will soon begin distributing RIPEM along with RSAREF.  I believe
>that their distribution mechanism is electronic mail.
>
>You can also get RIPEM from friends or other sites that will
>eventually carry RIPEM.   But I specifically stipulate that you
>must abide by the RSAREF license terms, and you must not export
>RIPEM outside the USA and Canada.
>
>The following is the contents of the file GETTING_ACCESS, available
>on rpub.cl.msu.edu:
>
>   Dear FTP user,
>   
>   To access the RIPEM cryptographic software archive at rpub.cl.msu.edu,
>   you must have an "account" on my custom FTP server.  Traditional
>   anonymous FTP login is allowed, but anonymous users are prevented
>   from doing GETs on files containing cryptographic software.
>   Anonymous access is allowed so that you can get README-type files
>   like this one, and files containing descriptions of software
>   licensing terms.
>   
>   To apply for FTP access to rpub.cl.msu.edu, send an email message
>   to ripem@rpub.cl.msu.edu.   State your citizenship (must be USA or
>   Canadian, or you must be a permanent resident of one of these 
>	countries) and your willingness to comply with relevant export laws
>   and software licenses.  (You should get and read the file
>   "rsaref-license.txt" on this host, so you know what you are agreeing
>   to.)  Also state the "canonical" Internet domain name of your host.
>   (If you are not sure of the primary name of your host, FTP to
>   rpub.cl.msu.edu under user anonymous.  The FTP server will inform
>   you of your hostname.)  Also state the country in which your host
>   resides.
>   
>   Here's a sample email message you might send to ripem@rpub.cl.msu.edu:
>   
>      Dear Mark,
>   
>      Please give me access to rpub.cl.msu.edu.  I am an American
>      citizen, and I agree to comply with crypto export laws and
>      RSAREF license terms.  My hostname is hobbit.egr.bigu.edu;
>      this host is located in the United States.
>   
>      Thank you.
>   
>   When I receive your message, with luck I'll promptly issue you
>   a special FTP username and password by return email.  This username 
>   will work only from the hostname you specify in your message.
>   
>   In the case of RIPEM, you may redistribute the code, but only
>   to others in the USA and Canada, and only under the terms of
>   the RSAREF license agreement mentioned above.
>   
>   Thank you.
>
>(This rather complex distribution mechanism is largely an attempt
>to satisfy local admins, not a requirement of program license terms.)

3.  Will RIPEM run on my machine?

Probably.  It has already been ported to MS-DOS, Macintosh, and most
flavors of Unix (SunOS, NeXT, Linux, AIX, ULTRIX, etc.)  More ports are
expected, and help of users is invited.

4.  Will RIPEM work with my mailer?

Probably.  However, it may or may not be easy to do.  The users guide,
included with the distribution, discusses ways to use RIPEM with many
popular mailers.  If you come up with a configuration method for your
favorite mailer that lets things work easily and securely, post it and
it'll probably end up included in the distribution.  RIPEM itself does
not have a terribly elegant user interface, and it is hoped that better
ones for various mailers will be written.

5.  What is RSA?

RSA is a crypto system which is asymmetric, or public-key.  This means
that there are two different, related keys:  one to encrypt and one to
decrypt.  Because one cannot (reasonably) be derived from the other, you
may publish your encryption, or public key widely and keep your
decryption, or private key to yourself.  Anyone can use your public key
to encrypt a message, but only you hold the private key needed to
decrypt it.

Note that the above only provides for privacy.  For authentication, the
message (actually only a fingerprint of the message; see question 9) is
encrypted with the sender's private key.  The recipient can use the
sender's public key to decrypt it and confirm that the message must have
come from the sender.

RSA was named for the three men (Rivest, Shamir and Adlemann) who
invented it.  To find out more about RSA, ftp to rsa.com and look in
pub/faq or look in sci.crypt.

6.  What is DES?

DES is the Data Encryption Standard, a widely used symmetric, or
secret-key, crypto system.  Unlike RSA, DES uses the same key to encrypt
and decrypt messages.  However, DES is much faster than RSA.

RIPEM uses both DES and RSA; it generates a random key and encrypts your
mail with DES using that key.  It then encrypts that key with the
recipient's public RSA key and includes the result in the letter,
allowing the recipient to recover the DES key.

DES is sometimes considered weak because it is somewhat old and uses a
key length considered too short by modern standards.  However, it should
be reasonably safe against an opponent smaller than a large corporation
or government agency.

7.  What is PEM, and how does RIPEM relate?

PEM is Privacy Enhanced Mail, a system for allowing easy transfer of
encrypted electronic mail.  It is described in RFC 1113-1115 and some
draft documents not yet approved.

RIPEM is not really a complete implementation of PEM, because PEM
specifies certificates for authenticating keys, which RIPEM does not
handle at this time.

8.  What's this about distributing and authenticating keys?

For a remote user to be able to send secure mail to you, she must know
your public key.  For you to be able to confirm that the message
received came from her, you must know her public key.  It is important
that this information be accurate; if a "bad guy" convinces her that his
key is in fact yours, she will send messages which he can read.

RIPEM allows for three methods of key management:  a central server, the
distributed finger servers, and a flat file.  All three are described in
the RIPEM users guide which is part of the distribution.

9.  What is a fingerprint, like MD5?

MD5 is a message digest algorithm produced by RSA Data Security Inc.
It provides a 128-bit fingerprint, or cryptographically secure hash, of
the plaintext.  It is cryptographically secure because it is not
possible (in a reasonable amount of computation) to produce a different
plaintext which produces the same fingerprint.  Thus, instead of signing
the entire message with the sender's private key, only the MD5 of the
message needs to be signed for authentication.

MD5 is described in its entirety (including an implementation in C) in
RFC 1321.

10.  What is PGP?

PGP is another cryptographic mail program called Pretty Good Privacy.
PGP has been around longer than RIPEM, and works somewhat differently.

PGP is not compatible with RIPEM in any way, though PGP does also use RSA.

Some major differences between PGP and RIPEM:
- PGP has more key management features, particularly for users without
  a direct network connection.
- RIPEM conforms to the PEM RFCs (1113-1115) and thus has a greater
  probability of working with other PEM software.  PGP makes no attempt
  to be compatible with anything other than PGP (in fact, PGP 1.0 is not
  compatible with PGP 2.0.)
- RIPEM uses RSAREF, a library of RSA routines from RSA Data Security
  Inc.  RSAREF comes with a license which is believed to allow
  noncommercial use, but ask a lawyer if you want a real answer.
  PGP uses its own implementation of RSA which is not licensed; thus,
  it is a violation of U.S. patent law to use PGP in the U.S.
- Both PGP and RIPEM are export-restricted, and cannot be sent outside
  the U.S.  However, PGP already exists on many ftp sites in Europe and
  other places.

Whether you use PGP or RIPEM or whatever, the documentation to PGP is
recommended reading to anyone interested in such issues.

11.  What about RPEM?

RPEM stands for Rabin Privacy Enhanced Mail.  It was similar to RIPEM,
but used a public-key cipher other than RSA in an attempt to avoid the
patent on RSA.  It was written by Mark Riordan, the same author as
RIPEM.

Its distribution was halted when, contrary to the beliefs of many
(including Rabin), Public Key Partners (PKP) claimed that their patent
was broad enough to cover any public-key cipher whose strength rested in
the difficulty of factoring large primes, not just RSA.  This claim is
not universally accepted by any means, but was not challenged for
pragmatic reasons.

RPEM is not really used anymore.  It is not compatible with RIPEM or PGP.

12.  What is MIME?

MIME stands for Multipurpose Internet Mail Extensions, and is described
in RFC 1341.  You also can find out about it in the newsgroup comp.mail.mime.
How PEM should interact with MIME is not yet entirely clear; some people
use the stopgap solution of having a MIME type application/x-ripem in
order to send RIPEM messages as MIME ones.  I hope some standards will
emerge.

13.  I have this simple way to defeat the security of RIPEM...

You may wish to check the companion post "ripem-attacks" which discusses
some of the more obvious attacks on RIPEM's security and what procedures
will minimize the risk.  RIPEM's main hole is probably in key distribution.
Newsgroups: alt.security.ripem,sci.crypt