Dec 142017

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

Overview.........................2

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

Miscellaneous...................24

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

Overview

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