CryptKit 0.9 released

Bryan bryan at eevolved.com
Fri Nov 30 12:42:27 EST 2001


Your interest is appreciated Phil.

> If i included this kit in my programs, how ease would it be for a user to
> install it? 

Well, that would depend on your client's platform. Seeing as the kit is based 
on C modules, those modules need to be compiled for each platform ( posix, 
win32, alpha, etc ). The good news is that the kit uses distutils, which 
would permit a potential packager to build the modules from source with a 
one-line command. (*hint* *hint*). You can expect the win32 binary installers 
to appear within a few days.

If the packages for your platform exist, installation is a one-line command:

# python setup.py build_ext install


> Would it be more difficult than as pure Python solution?

Yes C extension modules are more difficult to distribute and install, but a 
pure python implementation would not provide sufficient speed for real-world 
applications at today's average machine speeds. Maybe when we all have 1 THZ 
boxes :)

> What are ECC and NR?

Elliptic Curve Cryptography permits public/private key encryption and 
signing. Smaller keys == faster operations.  For instance, the security of a 
1024 bit RSA is approximately equivalent to that of a 160 bit ECC.

http://www.rsa.com/rsalabs/ecc/elliptic_curve.html


Nyberg-Rueppel is a signature scheme that is well suited to use with elliptic 
curves.

http://crypto.ee.ncku.edu.tw/pdf/41.pdf


> Can this be used for digigal sugnatures as well as encryption?

Sure, couldn't be easier:

>>> from ecc.ecc import ecc
>>> e,f=ecc(1),ecc(2)
>>> e_pub_key, f_pub_key = e.publicKey(), f.publicKey()

>>> # Signing / Verification
>>> msg = 'Hello World!'
>>> sig = e.sign(msg)
>>> f.verify(msg,e_pub_key,sig)
1

>>> # Tamper with the message
>>> msg += 'a'
>>> f.verify(msg,e_pub_key,sig)
0


> Sounds reasonable. But what about including others, for backward
> compatibility e.g. with OpenPGP?

The kit doesn't aim for compatibility with other protocols and standards. If 
you are looking for that type of library, consider M2Crypto and the like.  
Instead, Cryptkit's intended users are developpers who need small, fast 
secure sockets for their applications. Implementing extraneous algorithms 
would greatly increase the library size while really only being of use to a 
select few programmers.  You're welcome to code support for other standards 
and send me patches, but I will bundle them seperately from the main release.

Take care and happy coding,
-- 
<=====================================>
Bryan Mongeau
Lead Developer, Director
eEvolved Real-Time Technologies Inc.
Website: http://www.eevolved.com
Public key: http://eevolved.com/bcm.pk
<=====================================>

"A human being is a part of a whole, called by us _universe_, a part limited 
in time and space. He experiences himself, his thoughts and feelings as 
something separated from the rest... a kind of optical delusion of his 
consciousness. This delusion is a kind of prison for us, restricting us to 
our personal desires and to affection for a few persons nearest to us. Our 
task must be to free ourselves from this prison by widening our circle of 
compassion to embrace all living creatures and the whole of nature in its 
beauty."-- Einstein




More information about the Python-list mailing list