--000e0cd4a7180ae264046ad1e027
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit

Well, here's my abortive attempt at solving it :) Attaching the code
anyway in case anyone wants to use it. It's more along the lines of
using ruby as a tool to explore the cipher.

martin

--000e0cd4a7180ae264046ad1e027
Content-Type: application/x-ruby; name="crypto.rb"
Content-Disposition: attachment; filename="crypto.rb"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_fv6q787g0

IyBzdGFydCB3aXRoIG91ciBjeXBoZXJ0ZXh0CiRvcmlnID0gPDxIRVJFCllSRkZKIE9TTFhBIFBR
UFFZIEFQVlJSIERQTlNBIFpBUElLCk9YTVFKIEJPSU1ZIFhNU1paIEZSSUhFIEFVWEpTIElPUk9S
CklFQUhCIFFZQVBRIFlSSFhKIFNUUklGIE9SSUVYIEtPSUtEClJFQVFLIEpIQk9JIFFTRklRIEFK
SFBBIFFQS0lGIEZSRUtPClhNUUpCIE9JR0FBIExSS0lTIFBSTlNBIFoxM1ZJIFBJS09YCk1RSkJP
IElHTlNBIFpJUFZSIEZGWUpNIFJYSlNZIElFVVNICkhFUkUKCiMgZ2V0IHJpZCBvZiB0aGUgc3Bh
Y2luZwpjeXAgPSAkb3JpZy5nc3ViKC9ccysvLCAnJykKCiMgY291bnQgZnJlcXVlbmNpZXMKZiA9
IEhhc2gubmV3KDApCmN5cC5lYWNoX2NoYXIge3xpfCBmW2ldICs9IDF9CgokbGV0dGVycyA9IGYu
a2V5cy5zb3J0X2J5IHt8aXwgLWZbaV19Lm1hcCB7fHh8IFt4LCAxMDAuMCAqIGZbeF0gLyAoNSoz
NildfQpwICRsZXR0ZXJzCgojIHBhc3RlIGluIHRoZSBsZXR0ZXIgZnJlcXVlbmN5IGNoYXJ0IGZy
b20gd2lraXBlZGlhCiRjaGFydCA9ICV7CmEgCTguMTY3JQpiIAkxLjQ5MiUKYyAJMi43ODIlCmQg
CTQuMjUzJQplIAkxMi43MDIlCmYgCTIuMjI4JQpnIAkyLjAxNSUKaCAJNi4wOTQlCmkgCTYuOTY2
JQpqIAkwLjE1MyUKayAJMC43NzIlCmwgCTQuMDI1JQptIAkyLjQwNiUKbiAJNi43NDklCm8gCTcu
NTA3JQpwIAkxLjkyOSUKcSAJMC4wOTUlCnIgCTUuOTg3JQpzIAk2LjMyNyUKdCAJOS4wNTYlCnUg
CTIuNzU4JQp2IAkwLjk3OCUKdyAJMi4zNjAlCnggCTAuMTUwJQp5IAkxLjk3NCUKeiAJMC4wNzQl
Cn0uZ3N1YigvJS8sICcnKS5zcGxpdCgvXG4vKQoKJGNoYXJ0LnNoaWZ0CiRjaGFydCA9ICRjaGFy
dC5tYXAge3xpfCBpLnNwbGl0KC9ccysvKX0ubWFwIHt8cHwgW3BbMF0sIHBbMV0udG9fZl19LnNv
cnRfYnkge3xwfCAtcFsxXX0KcCAkY2hhcnQKCiMgb2theSwgbm93IHdlJ3JlIGdldHRpbmcgc29t
ZXdoZXJlLiBsZXQncyBsaW5lIHRoZSB0d28gdXAKYyA9ICRsZXR0ZXJzLnppcCgkY2hhcnQpLm1h
cCB7fGEsYnwgW2FbMF0sIGJbMF1dfQpwIGMKCiMgcGFzdGUgaW4gdGhlIHN1YnN0aXR1dGlvbiBj
aGFydCBzbyB3ZSBjYW4gaGFuZHR3ZWFrIGl0CnN1YiA9IFtbIkkiLCAiZSJdLCBbIlIiLCAidCJd
LCBbIkEiLCAiYSJdLCBbIk8iLCAibyJdLCBbIlMiLCAiaSJdLCBbIlEiLCAibiJdLAogIFsiUCIs
ICJzIl0sIFsiSiIsICJoIl0sIFsiRiIsICJyIl0sIFsiWCIsICJkIl0sIFsiSyIsICJsIl0sIFsi
WSIsICJjIl0sIAogIFsiRSIsICJ1Il0sIFsiSCIsICJtIl0sIFsiTSIsICJ3Il0sIFsiQiIsICJm
Il0sIFsiWiIsICJnIl0sIFsiViIsICJ5Il0sIAogIFsiTiIsICJwIl0sIFsiRCIsICJiIl0sIFsi
VSIsICJ2Il0sIFsiTCIsICJrIl0sIFsiRyIsICJqIl0sIFsiVCIsICJ4Il0sIAogIFsiMSIsICJx
Il0sIFsiMyIsICJ6Il1dCgpvID0gJG9yaWcuZHVwCnN1Yi5lYWNoIHt8aSwganwgby5nc3ViISBp
LCBqfQpwdXRzIG8gIyA9PgojIGN0cnJoIG9pa2RhIHNuc25jIGFzeXR0IGJzcGlhIGdhc2VsCiMg
b2R3bmggZm9ld2MgZHdpZ2cgcnRlbXUgYXZkaGkgZW90b3QKIyBldWFtZiBuY2FzbiBjdG1kaCBp
eHRlciBvdGV1ZCBsb2VsYgojIHR1YW5sIGhtZm9lIG5pcmVuIGFobXNhIG5zbGVyIHJ0dWxvCiMg
ZHduaGYgb2VqYWEga3RsZWkgc3RwaWEgZ3F6eWUgc2Vsb2QKIyB3bmhmbyBlanBpYSBnZXN5dCBy
cmNodyB0ZGhpYyBldXZpbQoKIyBvaCB3ZWxsIDopIHRyeSBzb21ldGhpbmcgZWxzZQojIGxldCdz
IG1ha2Ugc3ViIGEgaGFzaCwgZm9yIGVhc2llciB0d2Vha2luZwokc3VicyA9IEhhc2hbKnN1Yi5m
bGF0dGVuXQpjbGFzcyA8PCAkc3VicwogIGRlZiBhc3NpZ24oeCwgeSkKICAgIG9sZCA9IHNlbGYu
aW5kZXgoeSkKICAgIHNlbGZbb2xkXSA9IHNlbGZbeF0KICAgIHNlbGZbeF0gPSB5CiAgZW5kCgog
IGRlZiBkaXNwbGF5CiAgICBzZWxmLmtleXMuc29ydF9ieSB7fHh8IHNlbGZbeF19Lm1hcCB7fHh8
IFt4LCBzZWxmW3hdXX0udHJhbnNwb3NlLm1hcCgmOmpvaW4pCiAgZW5kCmVuZAoKcCAkc3Vicwpk
ZWYgdHJ5KCp4eXMpCiAgbyA9ICRvcmlnLmR1cAogIHh5cy5lYWNoIHt8eHl8IAogICAgeCwgeSA9
IHh5LnRvX3Muc3BsaXQoLy8pCiAgICB4ID0geC51cGNhc2UKICAgICRzdWJzLmFzc2lnbih4LHkp
CiAgfQogICRzdWJzLmVhY2gge3xpLCBqfCBvLmdzdWIhIGksIGp9CiAgcHV0cyAKICBwdXRzICRj
aGFydC5tYXAoJjpmaXJzdCkuam9pbgogIHB1dHMgJGxldHRlcnMubWFwKCY6Zmlyc3QpLmpvaW4K
ICBwdXRzICRzdWJzLmRpc3BsYXkKICBwdXRzIG8uemlwKCRvcmlnKQplbmQKCmRlZiBtZXRob2Rf
bWlzc2luZyhtZXRoKQogIG1ldGgudG9fcwplbmQKCiMgbG90cyBvZiBGRiAtIG1heWJlIEYgPSBl
IAp0cnkgZmUgIyBub3BlLCBtYXliZSBGID0gcz8KdHJ5IGZzICMgdGhlIHdvcmQgJ2dyZXknIGhh
cyBhcHBlYXJlZCA6KSBhbHNvICdiZXBpYScsIHN1Z2dlc3RpbmcgYSBjb2xvdXIgdGhlbWUKdHJ5
IGRzICMgbmFoCnRyeSBmdCAjIE5TQSA9IHRoZT8KdHJ5IG50LCBzaCwgYWUgIyBub3RlICJ0aGUg
Z3JheSIuIHN0aWxsIHBvbmRlcmluZyBhbGwgdGhvc2UgRkZzCnRyeSBybywgZm4gIyBSIGlzIGhp
Z2gtcHJvYmFiaWxpdHkgdG9vCnRyeSBqeSAjIHNvcnJ5Pwp0cnkgeXMsIGZyICMgc29ycnkgaT8K
dHJ5IG9pCg--000e0cd4a7180ae264046ad1e027--