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.

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

Signature generation <strong>and</strong> verification algorithms.<br />

An agent A produces a signature s for a message m, which can later be<br />

verified by any agent B. The signature generation algorithm is defined as<br />

follows:<br />

sig : M × K → S<br />

The verification algorithm is defined as follows:<br />

ver : M × S × K → {1}<br />

such that for any m, s <strong>and</strong> pk we have: ver(m, s, pk) =<br />

� 1, if s = sig(m, sk), sk = Sk(A), <strong>and</strong> pk = P k(A) for some agent A<br />

We assume each time an agent generates a pair <strong>of</strong> secret <strong>and</strong> public<br />

keys, (sk, pk), the secret key sk matches the public key pk, that is, for any<br />

message m, we have ver(m, sig(m, sk), pk) = 1.<br />

Digital signature schemes with message recovery<br />

Digital signature schemes with message recovery denote the schemes for which<br />

a priori knowledge <strong>of</strong> the message that has been signed is not required for the<br />

verification algorithm. In this case, the original message can be recovered from<br />

the signature itself. Examples <strong>of</strong> schemes providing digital signatures with message<br />

recovery are RSA [174], Rabin [171], <strong>and</strong> Nyberg-Rueppel [18] public-key<br />

signature schemes. We describe below the three algorithms: the signature generation,<br />

the verification, the public key generation, <strong>and</strong> the key generation algorithms.<br />

Key generation algorithms.<br />

Each agent A creates a pair <strong>of</strong> keys, a secret key <strong>and</strong> a correspondant public<br />

key. The agent A will use his secret key to sign messages, <strong>and</strong> his public<br />

key will be used by other agents for verifying A ′ s signatures. The key<br />

generation algorithm is defined as follows:<br />

G : A × R → K ∗ K<br />

We remark that the second argument <strong>of</strong> the function G represents a r<strong>and</strong>omly<br />

generated number, the use <strong>of</strong> this r<strong>and</strong>om number allows any agent<br />

A to have a different pair <strong>of</strong> keys for each session, <strong>and</strong> that using the same<br />

key generation function. Furthermore, we remark that the two functions<br />

Sk <strong>and</strong> P k denote the two parts <strong>of</strong> the key generation algorithm G, <strong>and</strong><br />

we denote respectively by Sk(A) <strong>and</strong> P k(A) the secret <strong>and</strong> public keys <strong>of</strong><br />

A ∈ A;

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

Saved successfully!

Ooh no, something went wrong!