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