## Archive for the ‘Free software’ Category

### Solving the symmetric key distribution problem for digital signatures using the BitCoin peer-to-peer infrastructure

2011-07-14

It appears that the lead time to quantum computers is decreasing while the lead time for eliminating our amazingly widespread dependence on public key cryptosystems is increasing. So we should develop alternatives and quit creating new dependences. Here I discuss a small part of the problem, the digital signature protocol. The BitCoin peer-to-peer currency network happens to use an elliptic curve public key system to sign payment authorizations. Wikipedia says that this cryptosystem, although better than the system based on factoring large integers, is still vulnerable to quantum computer attack. But the BitCoin infrastructure (comprising among other things millions of dollars of privately owned and operated GPU’s distributed across the globe) also provides a way out of the problem, via its hashchain, a sort of distributed timestamp protocol.

Nothing here is particularly new, but as far as I know, the combination has not been proposed (or patented, I hope).

Instead of using public and private keys, we use public and private GUID’s together with a secure iterated hash function, hash(N, message) with 0 < hash() < H, and a secure symmetric key function crypt(message,key) with 0 < key < H.  The private GUID is pvt = hash(1, H * random()), and the public GUID is pub = hash(N, pvt) .

Suppose Alice wants to sign messages. She chooses a random private GUID pvt, stores it safely, and computes her public GUID  pub = hash(N, pvt), where N limits the number of signatures Alice can make using this GUID.

To sign her K-th message, Alice computes msghash = hash(1, message), sigkey = hash(NK, pvt), and sig = crypt(msghash, sigkey), and submits {pubK, sig} to the network together with a transaction fee in bitcoins. If the fee is large enough, and if the block chain does not already contain a signature with public GUID pub and a larger serial number K, the transaction will soon be included in a block.  After the transaction is verified, Alice discloses sigkey.  Anyone can compute msghash = crypt(sig, sigkey), verify that hash(K, sigkey) == pub, that crypt(msghash, sigkey) == sig, and given message, that hash(1, message) == msghash, but noone can use the newly disclosed sigkey to sign a different message unless they can succeed in subverting the blockchain.  Unlike a public key signature, this signature requires reference to the blockchain for verification, but when quantum computers arrive, the public key free lunch is over.

It should be possible to use this approach to enhance the digital signature used in the bitcoin protocol without increasing the verification latency time by including {pubK, sig} in the bitcoin transaction as well as the public key signature, and requiring publication of sigkey (but not necessarily inclusion of sigkey in the block chain) before the bitcoin transaction is accepted as verified.

2007-07-13

Bottom line: you can now automatically upgrade flash plugin (but not adobe reader) whenever yum -y update gets run.

If you want, look at Adobe’s instructions (click on the “yum” option), but they don’t tell you much about what gets installed where, and they don’t give the md5sum, sha1sum, or the gpg key fingerprint.

Archimerged knows it’s immoral to do this (sorry Richard, we all have our faults), and maybe he’ll get annoyed enough (with the advertisements and restrictions Adobe forces on him) to switch to gnash and never use reader, but seeing as he is neither virtuous nor annoyed enough to switch, he downloaded adobe-release-1.0-0.noarch.rpm into a directory by itself. Being naturally suspicious, he ran
rpm -qlp *.rpm
to see what installing it would do. He also recorded the checksums so you can see if you got the same file Ark did. (Adobe ought to publish these).
md5sum *.rpm
e7fc18fa7e15e75be00814d2d4394634 [...]rpm
sha1sum *.rpm
26801152f27f01038fe1fd9f91df5faa44f2393b [...]rpm
rpm -Uvh *.rpm
After the GPG key is unpacked, import it to see the fingerprint. Adobe ought to sign this key but last time Ark looked even Red Hat didn’t sign the keys in /etc/pki/rpm-gpg/.
gpg: key F6777C67: public key "Adobe Systems [...]" imported
gpg --fingerprint ff677c67
pub 1024D/F6777C67 2007-02-28
Key fingerprint = 78A8 75E9 7F09 06BD 6355 73FA 3A69 BD24 F677 7C67
uid Adobe Systems Incorporated (Linux RPM Signing Key)
sub 2048g/7EB7D08B 2007-02-28

Then,
yum -y install flash-plugin
and it is mostly done. To check what got installed, Ark thinks there might be a yum command, but he knows the rpm command, which is
rpm -ql flash-plugin.
The results are
/usr/lib/flash-plugin
/usr/lib/flash-plugin/homecleanup
/usr/lib/flash-plugin/libflashplayer.so
/usr/lib/flash-plugin/setup
/usr/share/doc/flash-plugin-9.0.48.0

Finally, Ark looked at homecleanup and ran it with --delete. It deleted some old flash plugins installed in home directories.

Adobe doesn’t provide any authentication on the adobe-release RPM, but actually Ark seriously doubts that his download was compromised. If a few other people report the same checksums and key fingerprints, it will be certain.

### Laura DiDio, BIFF smear Pamela Jones of Groklaw

2007-06-20

Archimerged has submitted this story to Digg. Digg it! [Update: Unfortunately, he spelled DiDio’s name wrong. Sorry about that. There doesn’t seem to be any way to correct that on Digg short of resubmitting the story].

“Link to this article in your own blogs, by all means, also, if you write about that article and quote a sentence or two from it. That way when that LinuxInsider article appears in searches on Google and other search engines, so will your correction. It all helps to protect my good name, which I obviously care about and should care about.” — PJ

Misleading story in LinuxInsider which quotes Laura DiDio’s inaccurate statements, and which inaccurately summarizes Ubuntu founder and Canonical CEO Mark Shuttleworth’s statement:

Shuttleworth himself places the emphasis of his announcement not on the open source nature of his company’s software, but on the fact that it’s distributed for free.

But what Shuttleworth actually said is not quite the same:

In the Ubuntu community, we believe that the freedom in free software is what’s powerful, not the openness of the code,

“Distributed for free” is not the same as “freedom in free software”.

BIFF would like PJ to drop dead, etc., and libels her.

### Sidetracked again, working on gnucash

2006-07-16

Archimerged has decided it is time to do the accounting and get automatic downloads of financial information set up. Gnucash version 2.0 has just been released, with the conversion to Gnome 2 finally finished. So he it trying out the online banking interface. It doesn’t work yet, but there are segfaults which can be fixed, and now that the upheaval is over, he has some patches to merge and submit… Hopefully back to energy design soon.