Tuesday, June 12, 2007

Papyros: platform independent parallel processing

Papyros, written by George Sakkis, appears to be a fairly simple way to use surplus cycles on other machines. Written in Python, it is platform independent using a master-slave model. Remote communication is handled by Pyro. To parallelize your program, some code changes are necessary, but they appear to be minimal. Each slave platform needs to have a Python app running to receive the processing requests, but other than that, all "wierdness" happens on the master.

I don't see any special security provisions so it's fair to assume all players must be mutually trusted. YMMV.

Labels: ,

Monday, June 11, 2007

Fast stream ciphers from eSTREAM

Several years ago the EU (European Union), through a project called NESSIE, analyzed and recommended a number of cryptographic primitives. You can learn more about NESSIE from the links below. One category in which they were not satisfied and made no recommendation is stream ciphers, so they launched a new project, eSTREAM, expressly for the evaluation of stream ciphers. eSTREAM is now in Phase 3, the final evaluation phase, and there are a number of promising candidates.

Personally, I like Salsa20. I benchmarked Salsa20 as encrypting over 100 MB per second on a lowly 1.5 GHz G4 PPC mini Mac. ...128-bit encryption strength, memory resident data (no I/O), and before Python's GC kicked in. This is more than 3x faster than AES-128 on the same machine. Others I like are Sosemanuk and Phelix, but Phelix didn't advance to Phase 3. Ugh. Well, two out of three isn't bad.

The core routines are written in C so I wrote ctypes wrappers to access Salsa20, Sosemanuk, Phelix and others. I'm making that code available, free for any use.


Labels: , , ,

Sunday, June 10, 2007

A Python ctypes wrapper for LibTomCrypt

Recently I wrote a Python ctypes wrapper for LibTomCrypt. I'm making that code available, free for any use.

pyTomCrypt v0.20 implements most of Tom's crypto library:
    - public key algorithms: RSA, DSA, ECDSA, ECDH
    - hash algorithms:
      md2, md4, md5, rmd128, rmd160, rmd256, rmd320,
      sha1, sha224, sha256, sha384, sha512, tiger, whirlpool
    - symmetric ciphers:
      aes, rijndael, twofish, blowfish, des, des3, cast5,
      kasumi, anubis, kseed, khazad, noekeon, rc2, rc5, rc6,
      xtea, skipjack
    - modes: ecb, cbc, ctr, cfb, ofb
    - MACs: HMAC, OMAC, PMAC, Pelican, XCBC, F9
    - PRNGs: fortuna, rc4, sprng, yarrow, sober128
and is based on:
    - libtomcrypt 1.17
    - libtommath 0.41 (default)
    - tomsfastmath 0.12 (optional)



Labels: , ,

For me, an experiment.

I am not a blogger, or at least I don't think I am one, but I've noticed I have a few things to say.  ...or at least there have been a few emails that could be considered of general interest.  Rather than pushing email, I really should try a pull mechanism and give Blogging a go.  If all this works and I indeed have something to say, I'll continue.

So, what will you likely find here?  Today I tinker with Python, crypto, simulation, agents, machine learning, mini Macs, wirewrapping, and hopefully soon, robotics.  I've been at this since the early '60s (my days with a Burroughs E-103) so I suppose some history might creep in.