23.03.2017 Views

wilamowski-b-m-irwin-j-d-industrial-communication-systems-2011

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

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

Security in Industrial Communication Systems 22-7<br />

• Data integrity: To protect the transmitted data against unauthorized modification, digital signatures<br />

or message authentication codes (MACs) are commonly used. In both cases, the producer calculates<br />

a secure tag with a fixed length. The producer transmits it together with the message over<br />

the network. The consumer retrieves both, calculates the same secure tag, and verifies whether<br />

the received tag corresponds to the calculated one. If the verification process was successful, the<br />

consumer has proved the integrity of the message.<br />

• Data freshness: Data freshness is guaranteed by including a time-variant parameter. Usually, a<br />

number used only once (nonce) is taken as unique identifier (e.g., random number, monotonically<br />

increasing counter, time stamp). However, to avoid a malicious manipulation of the unique token<br />

during transmission, it has to be used in combination with an encryption and/or a MAC or digital<br />

signature algorithm.<br />

Today, many different cryptographic algorithms that are suitable to guarantee the security objectives<br />

mentioned above exist. Most of them are based on the Kerckhoff’s principle ([KER], see Section 22.2):<br />

While the algorithm itself can be made publicly available, only key parameters must be kept secret (secret<br />

keys). Generally, such a cryptographic algorithm works as follows: the producer that wants to securely<br />

transmit data via an insecure <strong>communication</strong> channel (e.g., public network) generates a secured version<br />

of the unprotected data by using an algorithm, secret keys, and some other kind of public input<br />

parameters. The consumer on the other side of the <strong>communication</strong> channel receives the secured data<br />

and applies the reverse operation to retrieve the plain version of the data.<br />

Depending on the secret keys used at both sides, cryptographic algorithms can be classified into symmetric<br />

and asymmetric algorithms. In the case of symmetric algorithms, it is relatively easy to derive the<br />

secret at the consumer site out of the secret on the producer site. In symmetric algorithms, the secrets on<br />

the producer and consumer site are the same. Typical examples of symmetric encryption algorithms are<br />

DES [DES], AES [AES], Camellia [R37], and SAFER [SAF]. Popular MAC calculation algorithms that<br />

use symmetric algorithms are CMAC [R44] and HMAC [HMA].<br />

In asymmetric algorithms (also called public key algorithms), each entity has a so-called public/<br />

private key pair where the public key is made publicly available and the private key is only known to<br />

the entity itself. In the case of asymmetric encryption algorithms, the public key of the consumer is<br />

used to encrypt the data at the producer site. The consumer is able to decrypt the data using its private<br />

key. In the case of asymmetric signature calculation and verification algorithms, the producer signs<br />

the tag of the data using its private key and the consumer is able to verify the signature using the public<br />

key of the producer. Asymmetric algorithms rely on the fact that it is computationally infeasible<br />

to derive the private key out of the public key. Popular asymmetric encryption algorithms are RSA<br />

[RSA], ElGamal encryption system [ELG], and elliptic curve integrated encryption scheme (ECIES)<br />

[HAN]. Typical examples of digital signature generation and verification algorithms based on asymmetric<br />

algorithms are the digital signature algorithm (DSA) [DSS], ElGamal signature scheme [ELG],<br />

and elliptic curve DSA (ECDSA) [HAN].<br />

In addition to symmetric and asymmetric algorithms that are generally referred to as keyed algorithms,<br />

there are cryptographic algorithms that do not need any secret parameters at all. These so-called<br />

unkeyed algorithms do not directly guarantee any of the security objectives mentioned above. Moreover,<br />

they are often used in combination with keyed algorithms. A typical example is a cryptographic hash<br />

function that may be used in combination with other algorithms to guarantee data integrity. A cryptographic<br />

hash function is a computationally efficient one-way function that maps an input of arbitrary<br />

length to an output of fixed length. The main property of such a function is collision resistance: It is<br />

computationally infeasible to find two distinct inputs that have the same hash value as output. The<br />

most commonly used cryptographic hash functions are MD5 [R13] and functions from the SHA family<br />

[SHA]. Cryptographic hash functions are used to calculate the tag that is used in MAC and digital signatures.<br />

Other examples of unkeyed algorithms are pseudo random bit generators where the generated<br />

pseudo random number may be used as nonces to guarantee data freshness.<br />

© <strong>2011</strong> by Taylor and Francis Group, LLC

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

Saved successfully!

Ooh no, something went wrong!