Cryptographic Techniques for Physical Security (Seminar Notes)

Transcription

1 Answare, ETIK, ELTE Jedlik Ányos Program RFID research project Cryptographic Techniques for Physical Security (Seminar Notes) Author: Daniel A. Nagy ELTECRYPT Research Group Supported by the National Office for Research and Technology (NKTH) in the framework of Jedlik Ányos Program with number of tender NKFP /

3 Preface The goal of this course is to familiarize participating students with the most important cryptographic techniques and design principles in the context of RFID (Radio Frequency IDentification) security. Unlike most courses and texts on cryptography, our primary focus is not the most traditional application of cryptography enciphering of (possibly very large) textual messages. Instead, we will study in detail several aspects of authentication, identification and authorization. In such applications, we will be typically dealing with short messages in low quantities. Instead of the usual long-distance point-to-point communication channel model, we will often assume short-distance broadcasts. Another important distinguishing feature of the security systems we will be studying is the fact that the computational resources of certain elements are severely constrained. Nevertheless, most principles and techniques studied in this course have applications far beyond RFID and are generally applicable in security system design. The language of course notes is English, as most of the literature on cryptography and information security is available in this language and it is important that students of this subject become familiar with English terminology. 2

4 1 Introduction to Security Many counting rods is victorious over few counting rods, How much more so over no counting rods. Sun Tzu: Ping Fa ( The Art of War, Denma Translation) 1.1 What is Security Engineering? Security considerations always arise in the context of conflicting interests. Specifically, when there is a possibility (or threat) of such an action (called attack) that is beneficial for the initiating party, the attacker, but harmful to some other party, the victim. While reasoning about security, we often assume the point of view of the potential victim, referring to potential attackers as adversaries. Yet, it is very important to keep in mind that the interests of providers and consumers of security are not perfectly aligned either. We are primarily concerned with rational adversaries (in the economic sense), who attack if they prefer the gains from the attack to the cost of performing the attack. While these are often difficult to quantify, using the usual micro-economic axioms about preferences, it is always possible to assign a scalar utility function to these gains and costs (see Debreu s Lemma in the supplement). In practice, we usually express them in terms of monetary value. The matter is further complicated by the fact that we can only guess the preferences of the adversaries and attackers can only estimate their costs and the gains; perfect foreknowledge is rarely available. Anything that imposes additional costs on the attacker is a security measure (a.k.a. defensive measure). These are not the only ways to mitigate threats (one can buy an insurance policy, for example), but alternatives are mostly outside of the scope of security engineering. Security measures fall in two main categories: proactive measures and reactive measures. Proactive measures make achieving the goals of the attacker more expensive, while reactive measures help punishing the attacker after completing the attack. Security measures also have costs associated with them; security measures that cost more than the loss caused by successful attacks are not worth deploying. It is important to emphasize that security measures often affect more than just the costs of the attacker and the defender. As side effects, they can alter the gains of the attacker and the losses of the victim. The losses of the victim and the gains of the attacker are often not commensurable, and the fact that we usually express them in the same (monetary or time) unit does not imply that they 3

5 1 Introduction to Security are. The preferences of the two sides can be very different. Security measures can successfully prevent attacks in three cases: 1. The adversary is not able to afford the increased cost of the attack. 2. The increased cost of the attack surpasses the gains (as perceived by the adversary). 3. The increased cost renders some alternative action preferable for the adversary. Correspondingly, in two cases attacks defy countermeasures: when effective countermeasures are beyond the means of the victim (predatory attack), and when effective countermeasures are not worth taking (parasitic attack). A possible avenue of attack that would not be prevented by the security measures in place is called vulnerability. Of course, the potential victim sleeps more soundly if the deployed security measures are of the first kind. For preventing the attack, these do not rely on the attacker being rational and well-informed, neither of which can be taken for granted. However, deploying such security measures is often not an option, either because they are unaffordable or because the potential losses do not justify the costs. In many cases, we resort to security measures of the second kind. These are effective against rational attackers that know about the costs and the gains of the attack, but are not necessarily aware of alternatives. Performing the attack would cause net loss to the attacker, so it is reasonable to assume that it will not be undertaken. Unfortunately, such security measures can also be unreasonably expensive, but even that is no reason to surrender. A security measure can make the attack expensive enough to make some alternative action on the part of the adversary (e.g. attacking someone else) preferable to attacking, even if the attack would still result in net gain. Certain threats, however, are not worth defending against. In such cases, other means of damage control, such as insurance or backup solutions, should be considered. Security systems are collections of security measures defending the same assets against a number of threats. Security engineering is the theory and practice of designing and maintaining security systems as to maximize the economic benefit emerging as a result of prevented losses from attacks and incurred costs of the deployed security measures. In the case of linear utility functions (which is often a reasonably accurate model assumption), security system design aims to maximize the difference between prevented losses and incurred costs. As security measures prevent attacks by imposing costs on the attacker (cryptographic measures, in particular, impose computational costs) in such a way that the adversaries decide against attacking, a large part of security engineering is threat modeling, in which we estimate the potential attackers capabilities, resources (budget) and likely preferences. Threat modeling is the topic of our next lecture. In the second part of this lecture, we will elaborate on the notion of security. 4

6 1 Introduction to Security 1.2 What is Secure? Security systems or components for such systems are often touted as secure by their respective vendors. Such absolute claims come across as naïve at best and misleading at worst. Security systems and their components always address specific threats. But, as discusseed in the previous part, the effectiveness of security measures is meaningful only in the context of protected assets, which is often not available when evaluating security systems and their components. Since one of the most efficient ways of reducing the cost of security is to spread the considerable cost of development and testing over a large number of deployed instances, there are immense benefits (discussed later in more detail) from using standard components in security design. Thus, we need objective criteria for evaluating the security of components and systems, when no or little information is available about the protected assets and their value to the defending party. Traditionally, in order to compare the security of various defensive measures, we use various metrics capturing the costs they impose on attackers (e.g. the minimal amount of time required to open a safe without knowing the combination, the expected number of trials for guessing a secret key, etc.). However, improvements in such metrics in components do not always translate into increased security for the system: Replacing a two-hour safe with a five-hour safe in a vault that is inspected every ten minutes is not likely to prevent attacks. Using encryption with a 256- bit symmetric key instead of 64 bits, will not prevent attacks either, if the key is derived from a 6-digit PIN. As a relatively recent development, an approach borrowed from the economic analysis of efficiency of resource allocation has been adopted in security by Ian Grigg [3]. Let us call a change in a security system Pareto-secure improvement, if it may prevent attacks without allowing for other attacks. Within a given security system, a component the replacement of which does not result in a Pareto-secure improvement is called Pareto-secure within the confines of the security system in question. This can happen for two reasons: either because the cost of attacking this component is unaffordable for the adversaries (as in the example with the patrolled vault) or because attacking other components is clearly preferable (as in the example of the 6- digit PIN). A component that is a Pareto-secure choice for all (conceivable) security systems is called Pareto-complete. From [3]: Using a Pareto-complete component is always sufficient. Designers prefer and select Pareto-complete components in order to reduce local calculation costs, risks of incomplete calculations, external costs of verification, and risks of future changes weakening the system. If unavailable, a Pareto-secure component is also sufficient, but it carries risks that the security system may face unpredictable changes in the future that are dramatic enough to challenge the security. It also carries external costs of analysis, in that verifiers of security need to confirm that a component is indeed Pareto-secure within that system. For Pareto-secure systems, it is necessary that all components be Pareto-secure. 5

7 1 Introduction to Security 1.3 Mathematical Supplement Debreu s Lemma: Let X denote a completely ordered subset of a finite-dimensional Euclidean space. If for every x X sets {x X x x } and {x X x x} are closed in X, then an ordering-preserving real-valued continuous function exists over the elements of X. See [1] for more details. 1.4 Exercises 1. What security measures are taken in a car? What do they protect? What threats do they counter and how? Which ones are proactive, which ones are reactive? 2. One security measure in 2004 S-Class Mercedes is a fingerprint scanner preventing unauthorized persons from starting the engine. Analyze this security measure from a costsbenefits point of view (hint: this measure was removed from the 2005 model). 3. Analyze the security of the public transit system against freeriders. 4. What components in your home security system are Pareto-secure? Are there any Paretocomplete ones? 5. Nonces are random codes used to distinguish each authorization session; a security measure often used for preventing attacks by replaying messages recorded in the past. How many binary digits would be a Pareto-complete choice for the length of nonces? 6

8 2 Multiple Threats and Defenses 2.1 Threat Modeling And so it is said Know the other and know oneself, Then victory is not in danger. Sun Tzu: Ping Fa ( The Art of War, Denma Translation) From [2]: Threat modeling is, for the most part, ad hoc. You think about the threats until you can t think of any more, then you stop. And then you re annoyed and surprised, when some attacker thinks of an attack you didn t. All security systems rely on some implicit or explicit assumptions about the nature of the threats they face. In many cases, security systems fail not because their way of countering anticipated threats is inadequate, but because attackers challenge the very assumptions upon which the security of the security system depends. Getting the threat model right is paramount to designing successful security systems. However, starting the above process from scratch each time is prone to result in unnecessary errors and wasted effort. Instead, Schneier recommends a systematic way of looking at threats, which allows us to re-use results from past work and use our present results in the future: organizing threats into what he calls an attack tree. Some action can be considered an attack either because it is causes losses directly or because it makes other attacks possible. Thus, following [2], attacks can be organized into a tree (actually, an acyclic directed graph) according to what other attacks do they make possible and whether they are sufficient or necessary for performing those attacks. Equivalently, one can think about these trees as (monotonous) logical expressions on the leaf actions, where sufficient actions are joined by or clauses, necessary actions are joined by and clauses. Attack trees reflect the (anticipated) options of attackers to achieve their goals. An actual attack consists of actions for which the logical expression corresponding to the attack tree is true, when setting the variables corresponding to these actions to true value. Because of the monotonous nature of the expression, any superset of actions is an attack as well. Conversely, if certain actions do not result in achieving the goal, neither does any subset thereof. Such a representation allows for a lot more than just saving some work on enumerating threats; it allows for predicting attack preferences and the costs of attacks, it allows for in- 7

9 2 Multiple Threats and Defenses Open Safe Pick Lock Learn Combo Cut Open Safe Install Improperly Find Written Combo Get Combo From Target Threaten Blackmail Eavesdrop Bribe and Listen to Conversation Get Target to State Combo Figure 2.1: Attack tree (example from [2]) corporating lessons learnt from past incidents that happened to different systems into security design, it allows for evaluating the effectiveness of various security measures and a lot more. Most importantly, it allows for efficient division of labor in security engineering. Using the attack tree for assessing the (minimal) costs of attacks and predicting the likely choices of a rational attacker is quite straightforward. The minimal cost of performing an action corresponding to a specific node of the attack tree can be expressed as the minimum of the costs of sufficient children or the total cost of necessary children (in case of linear utility functions, the sum of the minimal costs thereof). Even without knowing the preferences of our adversaries and the ability to model them with some scalar utility function, we can use the attack tree to determine which attack are possible, given some assumptions about the capabilities of the adversary. The evaluation of the effectiveness of various security measures is also significantly aided by representing threats in attack trees; security measures typically increase the cost of performing specific actions. How this changes the overall costs of attacks can be deduced from re-evaluating the attack tree. 8

10 2 Multiple Threats and Defenses 2.2 Cooperation in Security Several players with slightly different roles participate in the security process. They typically fall in one of the following categories: subject: one who would suffer the losses caused by the attack. Typically a person or an organization, defining the security policy. agent: one acting on behalf of the subject implementing the security policy, though not necessarily affected directly by the attacks. An agent may suffer only part of the losses caused by successful attacks. Typically an employee, a contractor or a customer. provider: one whose sole responsibility towards the subject is designing and/or deploying security solutions. Unlike agents, providers do not necessarily suffer any direct losses from attacks; all losses of the provider may be of indirect nature, through liabilities and reputation. trusted party: from [2] (quote attributed to a friend at the NSA ): Someone whom you know can violate your security policy without getting caught. Trusted parties are typically independent organizations (or individuals) involved with many other security systems of similar kind. While they have a common interest in security, their motivation and priorities may be very different. Of course, these roles are not necessarily distinct. When the subject is a group, the members are necessarily agents, who share some but not necessarily all interests of the group. When a security solution is developed, deployed and operated in-house (a scenario worth considering only for the extremely well-funded), providers are agents as well. All other participants can violate the security policy of the subject and thus have to be included in the threat model on one hand and provided with the necessary incentives on the other hand. Trusted parties (often called trusted third parties, when used to help transactions between parties with slightly different interests) deserve special attention, as they must, by definition, be distinct from the subject and thus necessarily constitute a weakness in any security system. Szabo eloquently argues in [4] the reasons (and some methods) to avoid TTPs when possible. Combining a trusted party with any other role (except the provider) will necessarily result in a conflict of interests compromising the integrity of one or both of the roles. Also, it is a fallacy to assume that the costs of the trusted party can be arbitrarily reduced by spreading the cost among the many users of the trusted party, because the more users rely on the trusted party the more is there to be gained from attacking it, thus the more costly its security becomes. Actually, common trusted parties can easily become an obstacle for scaleability for this very reason. 9

11 2 Multiple Threats and Defenses 2.3 Secrets Secrets (deliberately withheld information, known to some parties and unknown to others) play an important role in security in general and are central to cryptographic applications. Secrets can be protected assets as well as means to protect other assets. In this section, we will discuss some basic aspects of dealing with secrets Shared Secrets Unfortunately, two very different concepts are called shared secret in English. One is the same secret known to more than one party, the other is a secret that can be assembled from different secrets possessed by different parties. In this section, we deal with the former. Shared secrets have the following undesirable property: the losses incurred by the leaked secret are suffered by all parties, while the costs of protecting the secret are born by each one individually. Moreover, the gains from attacking the system by leaking the secret are won only by the traitor. Thus, depending on the actual figures for losses, costs and gains, there is a potential for what is known in game theory as prisoner s dilemma or tragedy of commons (see the supplement). As the aphorism attributed to Benjamin Franklin goes, three can keep a secret, if two of them are dead. There is a qualitative difference between secrets shared by two parties and secrets shared by three or more parties. The difference is the following: if the secret is leaked, in the case of two parties, it is known (to them) who the source of the leak was, so reactive security measures imposing various costs on the traitor are possible. If a secret is known to three or more parties, there is no way to defend it in the (likely) case of the tragedy of commons. Thus, secrets shared by three or more parties are to be avoided in security systems whenever possible. Of course, shared secrets between two parties are also more vulnerable than secrets known to one party, so it is instrumental to keep the value (both the loss of the victim and the gain of the attacker) of the secret bounded from above. Secrets the value of which keeps increasing over time without bounds should not be shared. Public key cryptography is usually the tool of choice to avoid shared secrets, because it allows the use of a secret in one party s possession by others without the need to share it Global Secrets A secret upon which the security of a whole system depends (e.g. a master key to all locks or a root password to all computers) is of equal value to the security of the whole system. During the lifetime of the system, its value is bound to increase. Thus, the protection of this secret easily becomes the most expensive part of the security system. If the secret cannot be changed (that 10

12 2 Multiple Threats and Defenses is the old secret cannot be rendered worthless for attackers), certain security measures taken in the past to protect it (the choice of the type of the key, etc.) may become inadequate over time. Using a probabilistic model, if the probability of a compromise during a fixed period of time has some lower bound (determined by decisions taken in the past), the probability that the compromise has not occurred converges to zero exponentially fast. Thus, parameters that cannot be changed (e.g. the structure of the security system, decryption keys for information that is available in encrypted form, or biometric information of authorized personnel) must not be used as global secrets. If possible, global secrets must be avoided in general. A global secret that is shared (especially between three or more parties) is a recipe for disaster. Such mistakes in security design have historically lead to spectacular failures Using Secrets as Security Measures When the cost imposed by a security measure on the attacker is that of finding out a secret, very small secrets are sufficient to thwart attacks by brute force (enumeration of all possibilities), since the size of the secret can be as small as the logarithm of the number of possibilities. Such secrets that are parameters of the security system set by the subject or its agents are called keys. The workings of the security system are known to the provider. If the security of the system or its components depends on the secrecy of information other than the keys, it becomes a shared secret between the subject and the provider, unless they are the same. If the same system or component is provided to many subjects, we have a secret known by many parties, which is extremely difficult to keep. This has two very important implications: For consumers shopping around for security systems or components, it means that providers claims that the security of the system would be weakened by disclosing its inner workings are best believed and such systems and components (and providers) are best avoided. For providers, in turn, it means that publishing the details of what they are selling makes good marketing sense; if their solutions are secure even under full disclosure of all details (except the keys, of course) it inspires confidence. All this, however, does not imply that subjects should also disclose everything. From their point of view, there is often no benefit from disclosing the details of the security system they use, while it may add to the costs of the attacker to keep certain things secret or even lie about them. It is very often beneficial to deceive the attacker regarding the costs and benefits of the attack; if the bluff is expensive to call and cheap to make, it is a valid security decision. The extreme case is the so-called dog-sign security, when the dominant cost on the attacker is that of finding out what the costs of an attack would be (like placing a beware of savage dog sign on a fence around a house with no dog). When the subject and the provider are the same, very sophisticated dog-sign security measures become perfectly rational choices (e.g. there are good reasons to believe that the US ballistic missile defense system is a dog-sign security measure). 11

13 2 Multiple Threats and Defenses 2.4 Mathematical Supplement Shared secret payment matrix: One holder of the shared secret can chose to protect it, and pay the costs (denoted by C) or to divulge it and not to pay the costs (which include the opportunity costs from receiving the benefits going to the traitor). If someone fails to protect the secret and it leaks, the losses that occur to the player in question are denoted by L. In the case of two parties, there might be some penalty P that is paid by the traitor, but not the others. Thus, we get the following payment matrix for one holder of the secret, given the two possible strategies (protecting vs. divulging) and the two possible behaviors of the rest (with non-negative C, L and P ): ( ) C L C L P L P The benefits from keeping the secret, if everybody else does equal L+P C, if someone else also divulges the secret, it becomes P C. If C > L + P, the rational behavior is to become a traitor, no matter what others do. Keep in mind that P = 0 for more than two participants, L is the loss to the individual (not the group) and C includes the opportunity cost of not receiving the bribe, so the dangerous situation is likely to be the case. 2.5 Exercises 1. The assumption that the success of the attack is a monotonic function of the various actions is not self-evident. Some avenues of attack may be mutually exclusive. Think of scenarios when the proposed threat model could lead to misplaced security measures. 2. The popular on-line auction web-site, ebay, combines the roles of a trusted third party (making sure that the auction is fair, in exchange for a percentage of the winning bid) and an agent (by automatically bidding on behalf of the users, who only need to tell their highest bid). This necessarily allows ebay to attack the users and get away with it. How? 3. The default configuration of ssh, a remote administration tool, disables remote root logins. Why? 4. Analyze the economics of disclosing vulnerabilities in widely deployed security systems. Find the optimal strategies for various players. Verify your conclusions by observations, if possible. 12

14 3 Cryptographic Primitives 3.1 Introduction Tastes do not exceed five, Yet all their variations cannot be tasted. Sun Tzu: Ping Fa ( The Art of War, Denma Translation) Cryptographic security measures, by their very nature, are much cheaper to deploy than to develop and test. Thus, in cryptography, development and testing costs can be spread over a large user base, thus reducing the costs of each individual. Also, because of the shaky mathematical foundations of cryptography and the inherent difficulty of the task, the testing of cryptographic components can never be considered finished. Popular components that are used in defending many assets (and thus would result in immense gains for successful attackers) inspire confidence (if they wouldn t be secure, they must have been attacked by now). Yet, there is no guarantee that successful attacks will not be devised against any specific component. Thus, following the herd by using popular standard components in security design is a wise strategy for several reasons: first, such components are subject to intensive research, both well-intended and malicious, so it is highly likely that flaws will be revealed before our particular security system gets attacked, secondly, in the event of discovering a weakness in such a component, the security community is highly motivated to develop alternatives. In most cases, alternatives are developed long before the need to replace a component becomes pressing. In order to facilitate the use of standard components, it is advantageous to design cryptographic systems and protocols using abstract components with well-defined security objectives (called primitives) and pick actual implementations afterwards. In this lecture, we will introduce some of the most popular cryptographic primitives and discuss their use in security systems. This chapter covers several lectures. 13

15 3 Cryptographic Primitives 3.2 One-Way Functions Introduction Mappings for which finding a pre-image (an argument yielding a specific function value) is computationally difficult are called one-way functions. The overwhelming majority of cryptographic measures hinges on the security of one-way functions. It is important to emphasize that the notion of computationally difficult does not have a generally applicable mathematical definition. The usual definitions from complexity theory, while useful, are sometimes neither necessary nor sufficient for security. Furthermore, because of open problems in complexity theory, it is not clear that families of functions, where the evaluation the function requires polynomial resources (in terms of the length of the argument, in the worst case), while finding a pre-image requires exponential resources (in the typical case) exist at all. Also, one must exercise caution when applying such asymptotic criteria to finite problems. Depending on the size of the argument and the size of the function value, useful one-way functions fall into one of the following categories: Substitution function: The argument and the value are of fixed, equal length. Compression function: The argument and the value are of fixed length, with the argument being longer. Expansion function: The argument and the value are of fixed length, with the argument being shorter. Hash function: The argument is a sequence of arbitrary length, the value is of fixed length. Keystream generator: The argument is of fixed length, the value is a pseudorandom sequence that can be evaluated to an arbitrary length. In addition to the one-way property, we often require collision resistance, which means that finding two different arguments for which the function yields the same value is also difficult (or even impossible). For compression functions and hash functions (a.k.a. message digests or digest functions), collision resistance typically means that finding two colliding arguments requires, on average, resources proportional to the square root of the range of the function The Random Oracle For design and evaluation purposes, we often use the random oracle [5] as a common abstraction for one-way functions mentioned above. The random oracle, which is available to all parties (including the adversaries) does the following: when given a binary vector of arbitrary length, 14

16 3 Cryptographic Primitives she responds with a sequence of independent random bits coming from a Bernoulli distribution with parameter p = 1 until stopped. The only constraint on the oracle is that given the same 2 vector, she responds with the same sequence. In security proofs, we often replace certain parts of the security system with queries of one or more random oracles (available to all parties, including attackers) and prove security for this ideal system. However, this method has received ample criticism on the grounds that it is possible to design protocols that are secure under random oracle assumptions, but any implementation would render them insecure (see [6] for details). Clearly, security under random oracle assumptions is necessary; the exact conditions when it is sufficient is still subject to intensive research. Random oracle assumptions are stronger than mere collision-resistance Linear Cryptanalysis Supposedly one-way functions are said to have a linear bias, if the modulo 2 sum of some input bits and some output bits is 0 with a probability different from 1 (where the probability measure 2 is defined uniformly over all possible inputs of equal length). Such bias can be fruitfully exploited for finding pre-images, collisions and other violations of security assumptions. Linear cryptanalysis was first presented by Matsui and Yamagishi in 1992 [7] and has drawn the attention of the cryptographic community when Matsui successfully applied it to the US government Data Encryption Standard (DES) cipher [8] Differential Cryptanalysis Differential cryptanalysis deals with pairs of inputs and corresponding outputs. If certain differences in inputs lead to certain differences in outputs with a probability that is larger than what is statistically warranted then the function is said to have differential characteristics. Such characteristics can be used for statistical attacks in a similar manner. Although differential cryptanalysis was first presented by Biham and Shamir in 1990 [9], it has been discovered more than a decade earlier at the US National Security Agency (NSA) and possibly elsewhere Application Notes One-way functions with no additional special properties have several direct applications. In this section, we give a brief overview of some of these applications Authentication Using a Publicly Readable Database Suppose that authorized access is granted to parties presenting some secret pass-code over a channel that is secure against eavesdropping (identification is done by some other means). 15

17 3 Cryptographic Primitives The equipment performing the authorization is also assumed to be trustworthy. However, the database which is used to verify what codes are authorized is readable by potential attackers. We want to impose computational costs on attackers who want to learn valid pass-codes from the database. An obvious thing to do is to store one-way mappings of passcodes using some one-way function. During authorization, the same function is applied to the presented pass-code and the result is compared to that in the database. If, for some reason, there is a possibility that several identities share the same pass-code, using the above solution would tell adversaries which ones have identical pass-codes. In order do deny attackers this information and make sure that all records are different, a unique sequence (called salt) can be added to each pass-code before the one-way transformation. The salt value should be stored along with the one-way image of the pass-code so that it is available at the time of verification. If the entropy of pass-codes is low enough so that an attack by enumeration (a.k.a. dictionary attack) may yield a valid pass-code in a reasonably short time, salting imposes the additional cost of having to do the enumeration for each identity separately. An additional measure may be using several iterations (typically tens of thousands) of the one-way function on the salted pass-code. This may increase the time required for each enumeration by a multiplicative factor rendering the exercise excessively expensive for the attacker at the cost of introducing additional delay at verification time. However, the effectiveness of this measure may be questionable: attackers may have access to a lot more computational power than that available in the equipment used for verification. Also, there is no guarantee that the iterated function cannot be computed more efficiently. Finally, it is worth mentioning that a common mistake is using an iterated oneway function without salting. This defeats the purpose of the security measure, as the dictionary attack may be performed rapidly using a dictionary of pre-computed images; the additional cost imposed on the attackers can be spread over an arbitrary number of attacks on similar systems Authentication Over an Insecure Channel If all the equipment used in the authentication can be considered trustworthy (that is it is protected by various physical security measures, as is often the case in RFID), but the communication channel is easy to eavesdrop (such as a radio channel), the proving party may generate a unique salt and send the one-way image of the salted pass-code and the salt to the verifying party, which, in case of successful authentication records the salt value to prevent attacks by replaying recorded messages. There are other similar authentication protocols (e.g. when the salt, called challenge in this context, is provided by the verifying party), which will be discussed in detail later. Using simple one-way functions, it is not possible to authenticate over an insecure channel using a publicly readable database. For that, one needs either commutative or trapdoor families 16

18 3 Cryptographic Primitives of one-way functions, both of which will be discussed later Stream Cipher Using a Keystream Generator Keystreams can be used as one-time pads. It is very important not to reuse the same keystream for encrypting two different streams. In order to use the same key for encrypting different streams, one can use salting techniques similar to those discussed in Section and prepending the salt vector to the encrypted keystream. The actual argument for the keystream generator is either the concatenation of the key and the salt, or a (possibly iterated) one-way image thereof. The role of the second one-way function (typically a compression function or a hash function) in this case is to thwart related key attacks in case the key-stream generator turns out to be vulnerable to such. One alternative to iterated compression or hash functions is discarding a large part of the keystream before using the rest as a one-time pad Ciphertext Feedback (CFB) Encryption Using a Compression Function Let f : {0, 1} m {0, 1} n denote a one-way function where m > n. We can use this compression function to encrypt a sequence of plaintext blocks P 0, P 1... of n bits each into a sequence of ciphertext blocks of identical length C 0, C 1... using a key K {0, 1} m n and a known initialization vector I 0 {0, 1} n that should be different for different messages encrypted with the same key. Encryption goes as follows: for each i N, C i = P i f(i i K) and I i+1 = C i, where denotes bitwise modulo 2 sum (exclusive or). For decryption, we need the same f, K and I 0 : P i = C i f(i i K) and I i+1 = C i. In a more general setting, one can use the same compression function f to encrypt a sequence of blocks at most n bits each. Let us denote the block length by k n. In this case, C i, P i {0, 1} k and I i {0, 1} n. Instead of f(i i K), only the first k bits should be used and I i+1 = I (n k) i C i that is I i+1 is the concatenation of the last n k bits of I i and C i. Unlike the stream cipher in Section , this method of encryption is self-synchronizing in the sense that a decryption using the correct key K will result in correctly decrypted blocks after a while, even if decryption was started in the wrong state. It is also worth mentioning, that compression functions can be used as keystream generators as well, using either the so-called output feedback (OFB) or counter (CTR) mode. We will revisit this mode of operation when discussing implementation details of various cryptographic primitives. 17

19 3 Cryptographic Primitives 3.3 Homomorphic One-Way Functions Introduction A one-way function f is called homomorphic with respect to some algebraic operation defined on its domain if it is cheap to compute f(x Y ) from f(x) and f(y ), without knowing the values of X or Y. For example, it is conjectured that in certain finite groups exponentiation is a one-way transformation (that is g x is a one-way function of x, where g is a generator element of the group in question); it is homomorphic with respect to addition modulo the order of g, since g x+y = g x g y Application Notes In some applications, such homomorphism of one-way functions can be exploited by attackers, just like any other algebraic property, as it may yield non-trivial information about the argument of the one-way function, given the value, which is undesirable in general. However, homomorphic one-way functions (perhaps, with other special properties) can be used for securing distributed computing (so that those performing parts of some computational task cannot learn sensitive information about the whole). Typical uses include voting, payment and other applications in financial cryptography. Homomorphic one-way functions are important building blocks of more sophisticated cryptographic primitives, such as blind signatures. 3.4 Block Ciphers Introduction Block ciphers are pairs of special compression functions e : {0, 1} n+k {0, 1} n and d : {0, 1} n+k {0, 1} n such that d(e(xk)k) = X and e(d(xk)k) = X for any X {0, 1} n and K {0, 1} k. Thus, block ciphers can be used to encrypt and decrypt blocks of n bits using a symmetric key of k bits (n and k are called, respectively, block size and key size of the block cipher). To reflect this use, we often denote e(xk) by e K (X) and, similarly, d(xk) by d K (X) and regard a block cipher as a family of automorphisms. The algebraic properties of block ciphers (regarded as automorphisms) determine how they can be used. For general-purpose block ciphers, it is desirable that they do not have any algebraic structure; since there are 2 n! possible automorphisms, a block cipher with similar block and key lengths (that implies 2 k 2 n!) can easily avoid being closed under composition. 18

20 3 Cryptographic Primitives Application Notes Either direction of the block cipher can be used as a general-purpose compression function, but block ciphers are typically slower than compression functions without pairs. For example, PGP-compatible encryption systems use only the encryption direction of the supported block ciphers as a compression function for CFB encryption; the decryption direction is not used. Block ciphers can be used in a number of other ways to encrypt and decrypt streams of data (e.g. ECB, CBC, etc.), which are outside of the scope of this course. For our purposes, block ciphers will be used to encrypt and decrypt blocks of data. It is generally safe to encrypt different blocks using the same key, especially if the number of blocks is insufficient for statistical attacks such as those mentioned before. 3.5 Commutative Block Ciphers Introduction A block cipher for which e A (e B (X)) = e B (e A (X)) and e A (d B (X)) = d B (e A (X)) is called commutative. For a long time, commutative block ciphers were not even considered, as they were deemed useless. In an undergraduate paper, Ralph Merkle proposed to use commutative ciphers to achieve something that was thought to be impossible for millennia: to transmit a message over a communication channel that can be eavesdropped, without a pre-shared secret. In his paper, he notes that using any commutative cipher (such as one-time pads) won t work; one needs commutative block ciphers (although he didn t call them such). The paper was rejected on the grounds that commutative block ciphers could not exist, as they would allow for something clearly impossible. Thus, public key cryptography was not born until the seminal paper by Diffie and Hellman in 1976 [11]. The contribution of Merkle was acknowledged in the follow-up patent [12] granted in Several government agencies (especially GCHQ in the UK) claim to have invented public key cryptosystems before that, but there is little evidence of actually using it Application Notes Merkle proposed to use the following three-way communication for sending a secret message M from Alice to Bob: 1. Alice generates a secret key A and sends e A (M) to Bob. 2. Bob receives the message, generates a secret key B and sends e B (e A (M)) back to Alice. 19

The Data Encryption Standard (DES) As mentioned earlier there are two main types of cryptography in use today - symmetric or secret key cryptography and asymmetric or public key cryptography. Symmetric

Introduction Electronic transactions and activities taken place over Internet need to be protected against all kinds of interference, accidental or malicious. The general task of the information technology

1 Digital Signatures A digital signature is a fundamental cryptographic primitive, technologically equivalent to a handwritten signature. In many applications, digital signatures are used as building blocks

Lecture topics Cryptography basics Using SSL to secure communication links in J2EE programs Programmatic use of cryptography in Java Cryptography basics Encryption Transformation of data into a form that

EXAM questions for the course TTM4135 - Information Security May 2013 Part 1 This part consists of 5 questions all from one common topic. The number of maximal points for every correctly answered question

Content Teaching Academy at James Madison University 1 2 The Battle Field: Computers, LANs & Internetworks 3 Definitions Computer Security - generic name for the collection of tools designed to protect

The Misuse of RC4 in Microsoft Word and Excel Hongjun Wu Institute for Infocomm Research, Singapore hongjun@i2r.a-star.edu.sg Abstract. In this report, we point out a serious security flaw in Microsoft

RSA Attacks By Abdulaziz Alrasheed and Fatima 1 Introduction Invented by Ron Rivest, Adi Shamir, and Len Adleman [1], the RSA cryptosystem was first revealed in the August 1977 issue of Scientific American.

system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users. From a high-level standpoint, attacks on computer systems and networks can be grouped

Authenticated Encryption: Relations among Notions and Analysis of the Generic Composition Paradigm By Mihir Bellare and Chanathip Namprempre Some slides were also taken from Chanathip Namprempre's defense

Cryptography: Authentication, Blind Signatures, and Digital Cash Rebecca Bellovin 1 Introduction One of the most exciting ideas in cryptography in the past few decades, with the widest array of applications,

Communication System Security, Chapter 3, Draft, L.D. Chen and G. Gong, 2008 1 Chapter 3. Network Domain Security A network can be considered as the physical resource for a communication system. This chapter

Modes of Operation Steven M. Bellovin February 3, 2009 1 Using Cryptography As we ve already seen, using cryptography properly is not easy Many pitfalls! Errors in use can lead to very easy attacks You

SECURITY ANALYSIS OF A SINGLE SIGN-ON MECHANISM FOR DISTRIBUTED COMPUTER NETWORKS Abstract: The Single sign-on (SSO) is a new authentication mechanism that enables a legal user with a single credential

Symmetric Crypto Pierre-Alain Fouque Birthday Paradox In a set of N elements, by picking at random N elements, we have with high probability a collision two elements are equal N=365, about 23 people are

Cryptography Lecture 8 Digital signatures, hash functions A Message Authentication Code is what you get from symmetric cryptography A MAC is used to prevent Eve from creating a new message and inserting

Computer Networks Network Security and Ethics Week 14 College of Information Science and Engineering Ritsumeikan University Security Intro for Admins l Network administrators can break security into two

Notes on Network Security - Introduction Security comes in all shapes and sizes, ranging from problems with software on a computer, to the integrity of messages and emails being sent on the Internet. Network

A Secure RFID Ticket System For Public Transport Kun Peng and Feng Bao Institute for Infocomm Research, Singapore Abstract. A secure RFID ticket system for public transport is proposed in this paper. It

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography What Is Steganography? Steganography Process of hiding the existence of the data within another file Example:

More effective protection for your access control system with end-to-end security By Jeroen Harmsen The first article on end-to-end security appeared as long ago as 1981. The principle originated in ICT

Chair for Network Architectures and Services Department of Informatics TU München Prof. Carle Network Security Chapter 13 Some More Secure Channel Issues Outline In the course we have yet only seen catastrophic