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

Re: Basic Public key algorithms.



At 01:01 PM 9/2/95 CDT, [email protected] (Daniel R. Oelke)
wrote:
>After doing quite a bit of poking around, I am somewhat discouraged
>in my attempts to find a simple *pure* public key encryption method,
>without a lot of other stuff wrapped around it. 

Pure public-key is usually not very useful, since it's rather slow
for encrypting big messages by itself.  PKP has the patents to all public-
key systems until mid-1997, and for RSA until some time like 2001,
and Schnorr for longer.  Unfortunately, RSAREF (except for one version
where they slipped) requires non-commercial users to limit themselves
to the published interface or get explicit permission, and the published
interface always throws in DES with a random key for encryption.
Since you're talking embedded systems, you're probably commercial and
high enough volume that the cost for licensing RSA is probably low enough.

>What I need is to encrypt between 45 and 55 bits of information
>using a public key algorithm in an embedded environment. 

45-55 bits may be tough, depending on the constraints of your
environment - most public-key systems need 768-1024 bits of
key to be reasonably secure, and need to send an output field
at least that long to be decodeable.  If that's not a problem,
you've got some choices.  For instance, you could use Diffie-Hellman
to create a shared secret, and just XOR that with your material
(have the workstation generate a master x, g, and p, and
store g**x in your embedded system; choose a random y each time, and
send g**y mod p and the first |M| bits of (g**xy mod p) xor M.
To do that, you need to store g**x, g, and p, possibly in ROM,
and enough code to do modular exponentiation and random number generation;
hopefully your system will have some kind of quasi-physical source of
randomness.


#---
#                                Thanks;  Bill
# Bill Stewart, Freelance Information Architect, [email protected]
# Phone +1-510-247-0664 Pager/Voicemail 1-408-787-1281
#---