30.01.2013 Views

Logical Analysis and Verification of Cryptographic Protocols - Loria

Logical Analysis and Verification of Cryptographic Protocols - Loria

Logical Analysis and Verification of Cryptographic Protocols - Loria

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

82 CHAPTER 4. PROTOCOLS WITH VULNERABLE SIGNATURE SCHEMES<br />

4.1 Signature schemes<br />

4.1.1 Definition <strong>of</strong> signature schemes<br />

The idea <strong>of</strong> digital signature first appeared in W. Diffie <strong>and</strong> M.E. Hellman’s seminal<br />

paper [101]. A digital signature <strong>of</strong> a message is a number dependent on some<br />

secret known only to the signer, <strong>and</strong>, additionally, on the content <strong>of</strong> the message<br />

being signed. Signatures must be verifiable; if a dispute arises as to whether a<br />

party signed a document (caused by either a lying signer trying to repudiate a<br />

signature it did create, or a fraudulent claimant), an unbiased third party should<br />

be able to resolve the matter equitably, without requiring access to the signers<br />

secret information (secret key). To this end, each agent A possesses a pair <strong>of</strong><br />

keys: a public key, pkA <strong>and</strong> a secret key, skA. The agent A uses his secret key<br />

skA to sign messages, <strong>and</strong> pkA is the key used by the other agents to verify A’s<br />

signatures. The secret key <strong>of</strong> an agent is called signing key, <strong>and</strong> his public key is<br />

called verifying key.<br />

Formally, we define a key generation algorithm G to be an algorithm that takes<br />

an agent’s name A <strong>and</strong> a r<strong>and</strong>om number as arguments <strong>and</strong> returns a pair <strong>of</strong><br />

public <strong>and</strong> secret keys, respectively denoted by P k(A) <strong>and</strong> Sk(A), corresponding<br />

to that agent. We define a digital signature generation algorithm (or signature<br />

generation algorithm), denoted by sig, to be an algorithm that takes a secret key<br />

(also called signing key), sk, <strong>and</strong> a message, m, as inputs, <strong>and</strong> generates a message,<br />

sig(m, sk), representing the digital signature <strong>of</strong> m using the secret key sk.<br />

We define a digital signature verification algorithm (or verification algorithm), denoted<br />

by ver, to be an algorithm testing whether a message s is a valid signature<br />

<strong>of</strong> a message m using the public key pk (also called verifying key).<br />

Definition 43 (digital signature scheme) A digital signature scheme (or simply a signature<br />

scheme) is defined by three algorithms: the signature generation algorithm “sig ′′ ,<br />

the verification algorithm “ver ′′ , the key generation algorithm “G ′′ .<br />

Example 20 (Example <strong>of</strong> signature schemes) We give here a classical digital signature<br />

scheme: the signature scheme proposed by W. Diffie <strong>and</strong> M. E. Hellman [101]. To<br />

create a signature scheme, W. Diffie <strong>and</strong> M. E. Hellman proposed to use a “trap-door<br />

function” f (informally, a “trap-door function” f is a function for which it is easy to<br />

evaluate f(x) for any argument x but for which, given only f(x), it is computationally<br />

infeasible to find any y with f(y) = f(x) without the secret “trap-door” information).<br />

In their signature scheme, an agent A publishes the “trap-door function” f <strong>and</strong> anyone<br />

can validate any A ′ s signature by checking that f(signature) = message. Only the<br />

agent A possesses the “trap-door” information allowing him to invert f, <strong>and</strong> compute<br />

a signature y such that f(y) = x where x is the message to sign.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!