Dec 142017
RSA is an implementation for IBM-compatible microcomputers of the Rivest-Shamir-Adleman public-key cryptographic system.
File RSA-1.ZIP from The Programmer’s Corner in
Category Science and Education
RSA is an implementation for IBM-compatible microcomputers of the Rivest-Shamir-Adleman public-key cryptographic system.
File Name File Size Zip Size Zip Type
RSA.DOC 60098 16701 deflated
RSA.EXE 58739 31402 deflated

Download File RSA-1.ZIP Here

Contents of the RSA.DOC file

RSA.EXE Documentation - 1

Table of Contents

Command Line Arguments...........4

Program Options (No Frills)......7
Generate EKEY/DKEY Pair........8
Encode File....................9
Decode File...................11
Recover EKEY from DKEY....... 12
System Information............13
Change Key Descriptions.......14

Program Options (with Frills)...15
Enhancements over No Frills...16
Maintain KEYRACK..............17
Issue Command to DOS..........18

Digital Signatures..............19
The Algorithms..................20
Operation Times.................23

The program RSA.EXE and accompanying documentation RSA.DOC may be
distributed and freely used for any non-commercial purpose,
provided that no modification is made to either and provided that
the program is not distributed without the documentation.

Disclaimer: The author makes no representations or warranties
with respect to the program or documentation, and specifically
disclaims any implied warranty of fitness for any particular
purpose for the program or documentation.

RSA.EXE (V. 88.08.15) now includes frills such as windows/color/
sound and on-line time estimates for long-running operations.
The display-related frills should work on most machines. A no
frills command line option is also supported. The option
essentially duplicates the previous version of the program
(except for keyrack support). The option produces a scrolled
display format that should work on any MS DOS machine.

Any questions, comments, bug reports, etc., may be addressed to
Craig Hessel on the CPCUG (Capital PC User Group) BBS,
Washington, DC, (301) 738-9060. I'll answer whatever I can. If
you find this program useful, and wish to send money, I'm not
interested. Instead, support your local user group or the
CPCUG. CPCUG annual membership, at $25, is one of the best
bargains around.

RSA.EXE Documentation - 2


The program RSA.EXE is an implementation for IBM-compatible
microcomputers of the Rivest-Shamir-Adleman public-key
cryptographic system.

The system was discovered in 1977 by the three MIT researchers
and was subsequently reported in the February, 1978, issue of
Communications of the ACM. The short paper there is entitled "A
Method for Obtaining Digital Signatures and Public-Key
Cryptosystems". Ten years later, the RSA system is still the
only known secure public-key cryptosystem.

At the time, publication of the paper stirred controversy. The
viability of the system was not the source of the controversy.
At issue was the potential conflict between the right to academic
freedom and the interest of national security. The point may
well be moot now. In any case, the RSA system has created
intense interest in the once-esoteric mathematical study of ways
to factor large numbers. Factoring large numbers is thought to
be the only way to "crack" the RSA system.

A public-key cryptosystem is a cryptographic system that requires
each user to create two distinct, but related, keys -- a decoding
key, which is kept secret, and an encoding key, which is
publically revealed. Making the encoding key public allows
anyone to encode data and then safely transmit it over insecure
channels to the holder of the corresponding secret decoding key,
without the need for a secret preliminary exchange of keys or
encryption procedures.

Before the discovery of the RSA system, the science (or art) of
cryptography traditionally required a single key for use in both
encoding and decoding. This key had to be secretly exchanged or
agreed upon beforehand by the interested parties.

The decoding key of each key pair in a public-key system must be
related to the encoding key. Otherwise decoding would be
impossible. But in order for the secret decoding key to be
secure, the relationship must be unusual enough so that knowledge
of the general relationship and the specific encoding key is
still insufficient to deduce the corresponding decoding key.

In the RSA system, the public encoding key of a key pair is the
product of two large prime numbers. Prime numbers (2, 3, 5, 7,
11, 13, 17, ...) are numbers which cannot be written as the
product of smaller numbers. The corresponding secret decoding
key is essentially the two prime factors known separately. The
qualifier 'large' is important here. The number 91 would not be
a secure encoding key, since it is easy to deduce that 91 is the
product of primes 13 and 7. However, factoring a large product
into its component primes becomes very difficult as the size of
the primes increases.

RSA.EXE Documentation - 3

With the use of fast computers, parallel processing, and
sophisticated mathematical algorithms, prime products approaching
80 decimal digits in length can now be factored. Because
factoring is an old mathematical problem that has been studied by
some of the best minds in that field over several centuries,
advances in the ability to factor large numbers are likely to
occur in at best small increments (an argument in the original
RSA paper). As a case in point, a recent heralded improvement
using parallel processing extended by only a dozen or so digits
the length of numbers that could be factored in a reasonable
amount of time.

On the other hand, it is relatively easy even on a microcomputer
to find a pair of large prime numbers (a decoding key).
Multiplying the primes together to create the corresponding
encoding key is also a simple matter. Users of the RSA system
need only choose sufficiently large primes to begin with to stay
well ahead of current technology and mathematical research.

Nothing is free. There is a cost in speed associated with using
the RSA system, but it is minor. Manipulating large numbers is
inherently time-consuming. However, by using the RSA system to
encode a key for a secure, and invariably faster, private-key
system, and then by using that key for encryption, anyone can
quickly encode a large volume of data without losing the benefit
of public-key cryptography. This is what RSA.EXE, in fact, does.
The private-key system used here is not particularly fast. But
it is very secure. And you may similarly use any other secure
private-key system as a third encryption level to gain additional
speed, if you wish.

RSA.EXE has a default key size of 64 bytes, which is equivalent
to an encoding key in excess of 150 decimal digits. The program
supports key sizes up to twice that length. Details on the use
of RSA.EXE, a description of the public-key and private-key
algorithms, and some typical running times are presented in later
sections of this documentation. Also described later is the
digital signature feature of the RSA cryptosystem.

One point needs to be emphasized before going on. RSA.EXE is not
meant to be, nor is it particularly useful as, a "hard disk
security" system. Rather, the use of RSA.EXE assumes that both
you and any party with whom you are exchanging data have secure
bases of operation to start with. There are other utilities or
physical mechanisms available for securing hard disk data, if
that is what you are looking for. What RSA.EXE does provide is a
way of safely encoding data for transmission over public (or
insecure) channels, e.g., phone lines, microwave transmissions,
or bulletin boards, WITHOUT requiring any prior secure meeting or
secure exchange of secret keys. If you are new to the idea of
public-key cryptography, that concept usually takes awhile to
sink in.

RSA.EXE Documentation - 4

Command Line Arguments

Unless you have included the command line option I=OFF, RSA.EXE
initially displays the following information:


RSA Public-Key Cryptography with Digital Signatures (V. 88.08.15)

Usage: RSA [[

 December 14, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>