comp.lang.ada
 help / color / mirror / Atom feed
From: John Howard <jhoward@sky.net>
To: David Downie <cs323389@student.uq.edu.au>
Subject: Re: Ada & Encryption / Compression
Date: 1997/03/05
Date: 1997-03-05T00:00:00+00:00	[thread overview]
Message-ID: <Pine.GSO.3.93.970305115055.7933B-100000@sky.net> (raw)
In-Reply-To: 5fikh7$ras$1@nargun.cc.uq.edu.au


On 5 Mar 1997, David Downie wrote:
> I am thinking about writing an RSA encryption (or some other encryption)
> package. I would like to do it in Ada (rather than the suggested C), but
> am not an Ada expert and do not know if I would just be making things
> difficult for myself.
>
> Has anyone had any similar (bit level) experience and can comment or
> perhaps point me somewhere?

Forget about doing your own RSA encryption.
1)  RSA is patented.  You'd have to wait for the patent to expire.
2)  RSA can't be implemented unless you know the two large prime numbers
    it uses (which are a secret).  As of a year ago, RSA was still not
    reported as cracked to reveal the two primes.  Presumably many skilled 
    researchers have tried to crack RSA.

Forget about doing your own LZW compression.
1)  Lempel-Ziv Welch is not public domain.  LZW is used in GIF, TIFF, and
    Adobe PDF formats.
2)  Lempel-Ziv Huffman (LZH) is public domain.
3)  Run Length Encoding (RLE) is public domain.

See:

Digital Cash (Commerce on the Net), by Peter Wayner. Publ. by Academic
Press, 1996. PP. 271, Softcover, ISBN 0-12-738763-3.  [List: $34.95]

  One chapter explains RSA and DES and other schemes.  More an 
  introductory overview but with enough details for implementation by a 
  programmer who is equiped from elsewhere with large primes.


Differential Cryptanalysis of the Data Encryption Standard, by E. Biham &
A. Shamir. Publ. by Springer-Verlag, 1993.  PP. 188, Hardcover, ISBN 
0-387-97930-1. [List: $42.95, (North America only) sale price: $34.50 ends 
March 14; www.springer-ny.com]

  Tells how to crack some DES variants.  Useful to anyone implementing a
  sophisticated encryption scheme.


Alternatively, you can locate and download the Turbo Pascal sources from 
SWAG (source ware archive group).  It has a few simple encryption and 
compression examples.  You could recode these as filters for Ada 95 
streams.  (SWAG IS SEVERAL MEGABYTES UNCOMPRESSED)

Lastly there is stream specific source code in Turbo Pascal (not related 
to SWAG).  Filename: streams13.zip or higher.  Streams implements about a 
dozen filters and a few perform simple encryption or compression.

Translating a couple Turbo Pascal filters into Ada 95 filters is feasible 
for an intermediate-level programmer.

[For simple encryption use a filter employing XOR operation and a linear 
congruential "random" number generator based upon the position within the
stream and the direction state.  This allows for encryption while moving 
backward or forward within the stream.

For sophisticated encryption use a DES variant as a filter.

For loss-less compression use LZH and RLE as filters.]

-- John Howard <jhoward@sky.net>               -- Team Ada  Team OS/2 --





  reply	other threads:[~1997-03-05  0:00 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-03-05  0:00 Ada & Encryption / Compression David Downie
1997-03-05  0:00 ` John Howard [this message]
1997-03-06  0:00   ` Larry Kilgallen
1997-03-05  0:00 ` Bob Klungle
1997-03-05  0:00 ` Laurent Pautet
1997-03-05  0:00 ` Norman H. Cohen
1997-03-06  0:00 ` David L Brown
1997-03-06  0:00   ` Larry Kilgallen
1997-03-06  0:00     ` William W Pritchett
1997-03-06  0:00       ` BSAFE Bindings for Ada (was: Ada & Encryption / Compression) Larry Kilgallen
1997-03-07  0:00     ` Ada & Encryption / Compression John Howard
1997-03-08  0:00       ` Larry Kilgallen
1997-03-08  0:00         ` Robert Dewar
1997-03-09  0:00           ` Larry Kilgallen
1997-03-08  0:00         ` Robert Dewar
1997-03-09  0:00           ` Larry Kilgallen
1997-03-09  0:00             ` Robert Dewar
1997-03-06  0:00   ` Laurent Pautet
1997-03-06  0:00 ` Ronald Cole
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox