Cryptography Overview

Authentication and Digital Signatures

Suppose Alice and Bob are disputing a contract. Alice says that Bob must uphold certain obligations because he agreed to them in a contract. Bob says that this is not the contract he signed. He offers as evidence his copy of the contract and sure enough, it differs from Alice’s. One of them has altered their copy of the contract, but who? Or maybe the dispute centers on Bob’s assertion that he never signed a contract, that the signature at the bottom is not his. In that case, either Bob is not telling the truth or Alice forged his signature.

If the contract was signed physically, there are ways to determine the truth. Contracts are often filed with government agencies, so comparing Bob’s and Alice’s copies with the third party’s copy reveals who made alterations. Witnesses may also sign the contract and later testify that both parties did sign it, and the signatures are not forgeries. For electronic documents, there is also a method to determine if a document has been altered or if someone truly did sign it. This method is the digital signature.

There are two types of signature algorithms. The first is a public-key cryptosystem that can perform block encryption, while the second is only capable of digital signatures. The RSA algorithm is an example of the first type. The Digital Signature Algorithm, DSA, is an example of an algorithm of the second type. Crypto-C includes the RSA and DSA signature methods.

A digital signature uses a public/private key pair to sign a document. First the signer digests the document, as described in “Message Digests” on page 47, then encrypts it with their private key. A good digital signature algorithm possesses the following properties:

Only the owner of a private/public key pair can generate a signature. Knowledge of the public key does not enable anyone else to forge a signature.

Knowledge of the public key enables anyone to verify the signature.

The digital signature guarantees the authenticity of the message and its author.

The digital signature is computationally unique for each message and signer. While a normal signature can be imitated, a digital signature is immune to imitation.

Any altering of the message renders the signature invalid.

Note: If a digital signature is invalid, you cannot be sure it was a deliberate forgery. Transmission errors will also produce errors in a digital signature.

For example, to create a digital signature on a contract:

C h a p t e r 3 C r y p t o g r a p h y

5 7

Page 79
Image 79
RSA Security 5.2.2 manual Authentication and Digital Signatures