[mercury-users] cryptography / RC4

Sandy Harris sandy at storm.ca
Wed Feb 13 16:17:36 AEDT 2002

Ralph Becket wrote:

> Michael Roe at Microsoft Research in Cambridge has implemented
> some standard crypto algorithms in Mercury.  He used the "reversibility"
> made possible thanks to Mercury's mode system to describe the crypto
> relation once and get both encryption and decryption procedures
> depending upon which mode ((in, out) vs (out, in)) was used.  This is
> rather nice, since it halves the opportunity of introducing bugs in the
> implementation.

At least in theory, you could write a function of three arguments:

foo( plaintext, ciphertext, key )

	in, out, in	encrypts
	out, in, in	decrypts

but the interesting one is:

	in, in, out	solve for the key

You need a bit of extension. e.g. if the cipher uses 64-bit blocks and
a 128-bit key, then you need at least two plaintext/ciphertext pairs
before it becomes soluble.

Of course, for well-designed ciphers, this should be astronomically

> On a related note, I know people at Cambridge Uni. have
> also toyed with the idea of using Mercury as a hardware description
> language whereby the same piece of code could be used to generate, say,
> both a multiplexer and a demultiplexer.  There's an interesting PhD in
> there somewhere if anybody's tempted... :)

There might be a PhD in the cipher stuff as well.
mercury-users mailing list
post:  mercury-users at cs.mu.oz.au
administrative address: owner-mercury-users at cs.mu.oz.au
unsubscribe: Address: mercury-users-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-users-request at cs.mu.oz.au Message: subscribe

More information about the users mailing list