Previous | Table of Contents | Next |
Signing Documents with Symmetric Cryptosystems and an Arbitrator
Alice wants to sign a digital message and send it to Bob. With the help of Trent and a symmetric cryptosystem, she can.
Trent is a powerful, trusted arbitrator. He can communicate with both Alice and Bob (and everyone else who may want to sign a digital document). He shares a secret key, KA, with Alice, and a different secret key, KB, with Bob. These keys have been established long before the protocol begins and can be reused multiple times for multiple signings.
How does Trent know that the message is from Alice and not from some imposter? He infers it from the messages encryption. Since only he and Alice share their secret key, only Alice could encrypt a message using it.
Is this as good as a paper signature? Lets look at the characteristics we want:
If Bob wants to show Carol a document signed by Alice, he cant reveal his secret key to her. He has to go through Trent again:
These protocols work, but theyre time-consuming for Trent. He must spend his days decrypting and encrypting messages, acting as the intermediary between every pair of people who want to send signed documents to one another. He must keep a database of messages (although this can be avoided by sending the recipient a copy of the senders encrypted message). He is a bottleneck in any communications system, even if hes a mindless software program.
Harder still is creating and maintaining someone like Trent, someone that everyone on the network trusts. Trent has to be infallible; if he makes even one mistake in a million signatures, no one is going to trust him. Trent has to be completely secure. If his database of secret keys ever got out or if someone managed to modify his programming, everyones signatures would be completely useless. False documents purported to be signed years ago could appear. Chaos would result. Governments would collapse. Anarchy would reign. This might work in theory, but it doesnt work very well in practice.
Digital Signature Trees
Ralph Merkle proposed a digital signature scheme based on secret-key cryptography, producing an infinite number of one-time signatures using a tree structure [1067,1068]. The basic idea of this scheme is to place the root of the tree in some public file, thereby authenticating it. The root signs one message and authenticates its sub-nodes in the tree. Each of these nodes signs one message and authenticates its sub-nodes, and so on.
Signing Documents with Public-Key Cryptography
There are public-key algorithms that can be used for digital signatures. In some algorithmsRSA is an example (see Section 19.3)either the public key or the private key can be used for encryption. Encrypt a document using your private key, and you have a secure digital signature. In other casesDSA is an example (see Section 20.1)there is a separate algorithm for digital signatures that cannot be used for encryption. This idea was first invented by Diffie and Hellman [496] and further expanded and elaborated on in other texts [1282,1328,1024,1283,426]. See [1099] for a good survey of the field.
The basic protocol is simple:
This protocol is far better than the previous one. Trent is not needed to either sign or verify signatures. (He is needed to certify that Alices public key is indeed her public key.) The parties do not even need Trent to resolve disputes: If Bob cannot perform step (3), then he knows the signature is not valid.
Previous | Table of Contents | Next |