Cryptography in Context
Total Page:16
File Type:pdf, Size:1020Kb
Cryptography in Context Cryptography in Context Gerard Tel iv Contents Contents v Preface ix 1 On the Secure Hash Algorithm family (Wouter Penard and Tim van Werkhoven) 1 1.1 Introduction . 1 1.2 Description of the SHA Algorithms . 4 1.3 Generic Attacks . 8 1.4 Specialized Attacks . 13 1.5 Implications of Attacks . 17 1.6 Conclusion . 17 2 Security and privacy of RFID tags (Jeroen van Wolffelaar) 19 2.1 RFID tags . 19 2.2 Case: Baja Beach Club . 20 2.3 Case: Biometric passports . 22 2.4 Case: OV-chipkaart . 24 2.5 Conclusions . 27 3 Xbox Securtity (Miloslav Valco) 29 3.1 Microsoft's Financial Gambles . 29 3.2 Andrew "bunnie" Huang . 31 3.3 RC4 . 33 3.4 Tiny Encryption Algorithm . 35 3.5 The Visor Hack . 36 3.6 Xbox Linux Project . 36 3.7 Discussion and conclusion . 37 4 Multiple Encryption (Ronald Chu & Mark Jeronimus) 39 4.1 Introduction . 39 4.2 definitions . 40 4.3 Known attacks . 40 4.4 Applications . 45 4.5 Summary and conclusions . 47 v vi Contents 5 Phishing (Marnix Kammer and Barbara Pieters) 49 5.1 Phishing and cryptography . 49 5.2 Forms of phishing . 50 5.3 Changes in human-computer interaction to prevent phishing . 53 5.4 Technical solutions to prevent phishing . 56 5.5 Summary and conclusions . 64 6 Electronic Voting 2.0 (Jeiel Schalkwijk) 67 6.1 The current state of voting machines . 67 6.2 Cryptographic systems . 70 6.3 ThreeBallot . 71 6.4 Moran and Naor's protocol . 72 6.5 Conclusion . 75 7 Coupon Systems (Eric van Dalen) 77 7.1 Coupon Security Requirements . 78 7.2 Multi-coupons . 80 7.3 Conclusion . 84 8 Broadcast Encryption (Henri Kas and Jeroen Weijers) 85 8.1 Introduction . 85 8.2 Algorithms . 87 8.3 Subset-Cover algorithms . 90 8.4 Free riders . 93 9 Software Implementation of Cryptographic Algorithms (Marco Devesas Campos, Jose Fernandes) 95 9.1 Introduction . 95 9.2 Anatomy of a modern processor . 97 9.3 Techniques for Efficient Implementations . 99 9.4 Side-channels . 102 9.5 Summary and Conclusions . 107 10 Reputation-Based Trust (Wesley van Beelen) 109 10.1 Reputation system attacks . 110 10.2 Automated Distributed Computation Environment . 110 10.3 Summary and Conclusions . 114 11 Advanced Encryption Standard (William van Hemert) 117 11.1 History about AES . 117 11.2 General properties of AES . 118 11.3 Different components of AES . 119 11.4 The encryption and decryption process . 125 11.5 Research about AES . 126 11.6 Known vulnerabilities . 127 11.7 Summary and conclusions . 129 11.8 Used resources . 130 Cryptography in Context vii 12 Certificates and Root Keys (Bas van Schaik and Steven Woudenberg) 131 12.1 Introduction . 131 12.2 Certificates and Certificate Authorities . 132 12.3 Possible attacks . 137 12.4 Certificate revocation . 138 12.5 Applications . 140 12.6 Other solutions . 142 12.7 Summary . 143 13 Quantum Factorisation (Bas den Heijer and Christiaan Ypma) 145 13.1 The Quantum World . 145 13.2 Integer Factorization . 147 13.3 Quantum Computer Implementations . 150 14 Steganography and Steganalysis (J.S. de Wit) 153 14.1 Hiding Information . 153 14.2 Steganography Detection . 155 14.3 Conclusion . 158 15 Multivariate Cryptography (Merel Rietbergen) 159 15.1 Preliminaries . 159 15.2 Multivariate Quadratic Cryptography . 162 15.3 Attack on HFE: Gr¨obnerBases . 165 15.4 Conclusion . 169 16 Montgomery Multiplications (Tessa van der Hoorn & Hugo Duivesteijn) 171 16.1 Montgomery . 171 16.2 Description of the algorithm . 172 16.3 Example . 174 16.4 Montgomery Multiplications with binary numbers . 177 16.5 Computation time . 177 16.6 Concluding remarks . 178 Bibliography 179 Index 187 viii Contents Preface This reader contains 16 papers, written by students of Utrecht University as part of the Cryptography course of Fall 2007. The course treats the theory of Cryptography, underlying many solutions in computer and IT security. The challenge for the students is, to connect this theory to actual security products in their project study. The papers were presented during a symposium on January 31, 2008. Photo's of this event can be found on gerardtel.nl (select the year 2008 and the series 5. Cryptography in Context). For the purpose of the symposium, the presentations were divided into four themes, namely Broken Dreams (Chapters 1 through 4), about systems of which the security was broken, Safe Digital Society (Chapters 5 through 8), about security used in a nation-wide scale to support the economical or democratic infrastructure, Deployed Systems (Chapters 9 through 12), about security products used in a smaller scale, and How to Compute (Chapters 13 through 16), about cryptographic algorithms. The session chairs during the symposium were Thomas van Dijk, Johan Kwisthout, Eelko Penninkx, and Marinus Veldhorst. I hope the reader will be a nice souvenir for the speakers and writers, and that it will provide for all others an interesting overview of some computer security topics. Two of the papers are especially recommended: the ones by Wouter Penard and Tim van Werkhoven, and by Merel Rietbergen received the highest grade possible: a 10 mark. Gerard Tel (course teacher), Utrecht, February 2008. ix Chapter 1 On the Secure Hash Algorithm family Written by Wouter Penard and Tim van Werkhoven. 1.1 Introduction This chapter is on the Secure Hash Algorithm family, better known as the SHA hash functions. We will first introduce secure hash algorithms as part of digital signature schemes and derive properties a hash function is required to have from this context. SHA was originally designed for this purpose. Next we give a short overview of the history of the SHA family, showing when new members of the family were introduced and note a couple important milestones in the academic analysis of the functions. In the second section we will review how the SHA algorithms work, focusing espe- cially on the SHA-1 hash function. After dissecting the SHA-1 hash function itself, we will relate and compare it to the other hash functions in the SHA family, SHA-0 and SHA-2. Besides analyzing the specific SHA functions, we will also treat the generic structure of hash functions, as these are relevant for the security of a hash function. We will cover the different aspects in some detail and illustrate how naive implementation of hash functions can be hazardous, some attacks can be mounted against any hash function if they are not implemented correctly. The main part of this chapter will focus on the weaknesses found in the SHA-0 hash function by different researchers. We will explain in more detail how the SHA-0 function was initially broken by treating the so-called differential collision search against this function. And in this way aim to provide the reader with some insight how attacks against the SHA functions are build up. After explaining how the idea works, we will 1 2 On the Secure Hash Algorithm family explain why this attack is less successful against the SHA-0 successor, SHA-1. Finally we will look at SHA-2 and summarize the cryptanalysis results for the SHA family. The last part will deal with the implications of broken hash functions, and how and in which scenarios these are especially dangerous. Although the weaknesses found may not seem all too severe, these attacks can indeed have serious consequences, as we will see in the final section. 1.1.1 Purpose of Cryptographic Hash Algorithms A hash function is a function which takes an arbitrary length input and produces a fixed length ‘fingerprint' string. Common usage of such a function is as index into a hashtable. Cryptographic hash functions have several additional properties which makes them suitable to use as a means to check the integrity of a message and as part of digital signature schemes. Such a scheme consists of a secret key ks, a public key kp and two functions Sign(M; ks), which produces signature S, and Verify(M; S; kp), which returns a boolean indicating if the given S is a valid signature for message M. Such a signature should prove the authenticity and integrity of the message; Such that we can be sure it really was the sender of the message who sent it, and that it really was this message he sent. Finally we can use the signature to prove that the sender sent it and no one else could have done so: non-repudiation A function requirement is that Verify(M; Sign(M; ks); kp) = true for a key pair (ks; kp). On the other hand it should be impossible to create a forged signature. It is possible to distinguish between two types of forgeries, Existential and Universal forg- eries. In the first case.