Take the 2-minute tour ×
Cryptography Stack Exchange is a question and answer site for software developers, mathematicians and others interested in cryptography. It's 100% free, no registration required.

I'm trying to sign a contract with another party, without using handwritten signatures.

I've just read through Applied Cryptography, but there doesn't seem to be a protocol that can solve this problem. Digital signatures simply don't work. Even if the other party signs the contract with his private key and I can verify it using his public key taken from a Certificate Authority, he can claim that he had lost his private key, and an imposer had signed the document.

In fact, he can shamelessly broadcast his own private key anonymously over the internet moments before he signed the document with me, thus securing his "proof" that everyone has his private key at a time before the document was signed. Besides this, there are many other reasons why digital signatures cannot achieve non-repudiation, as elaborated by D.W. in another post.

What alternatives do we have?

How can we make digital signing work?

share|improve this question
    
One could use a hardware security module that will only sign a message when given the right password. $\hspace{.36 in}$ –  Ricky Demer Feb 11 at 19:47
2  
@RickyDemer Sadly, I have lost said device. Oh and I had written down the password on a post-it attached to the device. What a shame... –  orlp Feb 11 at 20:54

3 Answers 3

up vote 4 down vote accepted

No. Cryptography alone cannot solve this problem.

Solving this problem requires a combination of technical (e.g., cryptography, systems security) and non-technical (e.g., legal, regulatory, contractual) solutions. Even the technical part is not solely a cryptography question; it as much about systems security.

share|improve this answer

I think destroying the private key and using a notary could be some kind of solution to that problem.

  1. Both Parties create a private and public key.
  2. The public keys are signed by a CA.
  3. Both parties sign the document with their private key.
  4. After signing the document both parties destroy their private key.

After step 4 nobody can claim that he lost the private key and that somebody else did sign the document. Of course, all these steps must be supervised by a notary.

Ideally, both parties generate their keys on a computer with a fresh operating system and without and internet connection. This reduces the probability that a) malware is installed and b) that key material is transmitted to someone else. When the keys are generated the data on the computer must be destroyed. Again, all those steps should be supervised by a notary.

share|improve this answer

A theoretical concept for that is covered by so called contract signing protocols.

There are quite some research papers into this direction, such as the seminal paper and follow up works in the field of (optimistic) contract signing. For instance, this one or this one.

Such protocols always involve a trusted third party, although this party might not be required to be involved in the contract signing itself.

This fact that some trusted third party is required is not really surprising, as in the non-digital world we already early recognised that without a notary such stuff cannot really be done in a fair way ;)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.