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

CryptoLib 1.0 now available



[Note! This is posted for Jack Lacy; please direct responses to him
at [email protected].  -matt]

Announcing CryptoLib - Release 1.0		12/13/95
   Jack Lacy, AT&T Bell Labs

CryptoLib is a portable and efficient library of primitives
for building cryptographic applications.  It runs under most versions
of Unix as well as DOS, Windows and Windows-NT (and 95).

We are pleased to make CryptoLib source code available without charge
to researchers and developers in the US and Canada.  (Because of export
restrictions on cryptographic software, we are only able to make the
software available within the US and Canada to US and Canadian citizens
and US permanent residents.)

CryptoLib is intended for research and experimental use, and is
distributed without warranty or support.  In particular, please
note the following license conditions:

 *              Copyright (c) 1995 by AT&T.
 * Permission to use, copy, and modify this software without fee
 * is hereby granted, provided that this entire notice is included in
 * all copies of any software which is or includes a copy or
 * modification of this software and in all copies of the supporting
 * documentation for such software.
 *
 * This software may be subject to export controls.
 *
 * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 * WARRANTY.  IN PARTICULAR, NEITHER THE AUTHORS NOR AT&T MAKE ANY
 * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
 * OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.

The attached describes the library and some timing results.

To obtain source code send electronic mail to:

	[email protected]

with a statement of the following form:

	"I am a U.S. or Canadian citizen or a legal permanent resident of the
	U.S. and am aware that some parts of CryptoLib may be restricted under
	United States export regulations.  I have read and understand the
	CryptoLib license."

	Name:
	Location:
	E-mail:
	Are you licensed to use the RSA patent?
	   If yes, give name of licensed organization:
		
===============================================================================

CryptoLib includes the following:

	arbitrary length bignums.

	bigmath package:
		bigAdd, bigSubtract, bigMultiply, bgiDivide,
		bigLeftShift, bigRightShift,
		bigAnd, bigOr, bigXor, bigCopy,
		Euclid's extended GCD,
		modular reduction and exponentiation

	crypto primitives
		DES and 3DES + modes
		Diffie-Hellman
		DSA (Signing and verification roughly equally efficient)
		El Gamal
		Rabin's scheme
		Random Number generation (PSEUDO and TRUE)
		MD[2,4,5]
		Prime generation
		RSA (provided only if you convince me that you have a license)
		SHA
		truerand (For Unix, NT and 95)
		quantization (Defense against Kocher's timing attack)
		quantized RSA, DSA and El Gamal private key operations.
		
	support functions
		asn1.c
		ioutils.c
		netIface.c

Some timing information:

All times assume 32X32 bit assembly of multiplication primitives.

bigPow times (a^b mod c with a,b,c the same length)

		512 bits	1024 bits
		--------	---------
bigPow		0.12s		0.72s		Sparc II Brickell bigpow
		0.43s		3.0s		Sparc II with asm (gcc)
		0.12s		0.78s		Sparc 10 with asm
		0.03s		0.17s		Sparc 10 with asm (Brickell)
		0.084s		0.45s		SGI Indigo (150MHz)
		0.109s		0.75s		100 MHz Pentium (gcc under DOS)

Strong Prime Generation -- ProbTestAttempts = 5
100 primes generated in each test.  Times below are:
(total test time)/100 = avg. time per prime generated.
Using Gordon's strong prime algorithm.

    256		512	1024	Machine
    ---		---	----	-------
    2.8s	24.0s	5.11m	Sparc II 
    .45s	2.7s	77s	100 MHz pentium
	


	RSA Times (64 bit public exponent, message encrypted is full length)
	---------

		512	768	1024 bits	machine
		---	---	---------	-------
encrypt		30ms	50ms	80ms		sparc II
decrypt		160ms	480ms	930ms

encrypt		15ms	33ms	56ms		100 MHz Pentium (Under NT)
decrypt		38ms	104ms	214ms


	DSA Times
	---------

		512	768	1024 bits	machine
		---	---	---------	-------
sign		99ms	166ms	216ms		sparc II (Brickell speedup)
verify		156ms	316ms	416ms

sign		21ms	38ms	49ms		100 MHz Pentium (Under NT)
verify		27ms	43ms	71ms