GPU-Assisted Password Hashing: the Example of Scrypt

Total Page:16

File Type:pdf, Size:1020Kb

GPU-Assisted Password Hashing: the Example of Scrypt GPU-Assisted Password Hashing: The Example of scrypt Thorsten Kranz Master’s Thesis. April 14, 2014. Chair for Embedded Security – Prof. Dr.-Ing. Christof Paar Advisor: Dr. Markus Dürmuth EMSEC Abstract Many big leaks of password data in the past have emphasized the importance of protecting stored passwords. Traditionally, cryptographic hash functions have been used to this end. However, an attacker equipped with special hardware is able to run a parallelized guessing attack on such hashes. Therefore, new ideas for password hashing functions have been presented. In 2009, scrypt was published as a password hashing function that is designed to be very expensive to attack with custom hardware. In this thesis, we present a GPU-based attack on scrypt. We examine the behavior of the different cost determining parameters for the GPU and the CPU. Furthermore, we compare the hash rates achievable for scrypt and bcrypt. Our measurements show that particularly the block size parameter 푟 of scrypt is well- suited for thwarting a GPU-assisted attack. However, the hash rates show that scrypt is not as successful as bcrypt in preventing GPU-assisted attacks for cost parameters that are reasonable in an interactive login scenario. Our results imply that the factors between costs for ASIC hardware crackers of scrypt and bcrypt that have been estimated by scrypt’s author do not hold for graphics cards. i Declaration I hereby declare that this submission is my own work and that, to the best of my knowledge and belief, it contains no material previously published or written by another person nor material which to a substantial extent has been accepted for the award of any other degree or diploma of the university or other institute of higher learning, except where due acknowledgment has been made in the text. Erklärung Hiermit versichere ich, dass ich die vorliegende Arbeit selbstständig verfasst und keine anderen als die angegebenen Quellen und Hilfsmittel benutzt habe, dass alle Stellen der Arbeit, die wörtlich oder sinngemäß aus anderen Quellen übernommen wurden, als solche kenntlich gemacht sind und dass die Arbeit in gleicher oder ähnlicher Form noch keiner Prüfungsbehörde vorgelegt wurde. Thorsten Kranz Contents 1 Introduction 1 1.1 Contribution . .3 1.2 Related Work . .3 1.3 Outline . .4 2 Background 5 2.1 Password Security . .5 2.1.1 Passwords as Means of Authentication . .5 2.1.2 Online Attacks vs Offline Attacks . .6 2.1.3 Naive Password Hashing . .6 2.1.4 Attacks on Naive Password Hashing . .8 2.1.5 Advanced Password Hashing . 11 2.2 scrypt . 12 2.2.1 Overview . 13 2.2.2 scryptROMix . 13 2.2.3 scryptBlockMix . 14 2.2.4 Salsa20/8 Core . 15 2.2.5 Size Restrictions . 17 3 Cost Estimations 19 3.1 Provided Information . 19 3.2 Example: Cost Estimations for MD5 . 21 3.3 Counting the Cryptographic Primitives . 22 3.4 Estimating the Memory Costs for bcrypt and scrypt . 26 3.5 Compression Functions vs Hashes . 27 4 Implementation 31 4.1 CUDA C Programming . 31 4.1.1 Heterogeneous Model . 31 4.1.2 Thread Hierarchy . 32 4.1.3 Memory Model . 33 4.2 CUDA Based Password Hashing with scrypt . 35 4.2.1 Host Implementation . 35 4.2.2 Device Implementation . 38 5 Results 45 5.1 CPU Running Times . 45 iv Contents 5.2 GPU Hash Rates . 47 5.2.1 The N Parameter . 48 5.2.2 The r Parameter . 48 5.2.3 The p Parameter . 49 5.2.4 More Results . 50 5.3 Comparing scrypt with bcrypt . 50 6 Conclusion 55 6.1 Future Work . 55 A Acronyms 57 B GeForce GTX 480 - Device Query 59 C Measurements 61 List of Figures 63 List of Tables 65 List of Algorithms 67 List of Listings 69 Bibliography 71 1 Introduction In today’s world, passwords are omnipresent. The average Internet user is requested to authenticate with user name and password multiple times per day: when signing in as a user of an operating system, when checking emails, when logging in to a social network, when using online banking, and so forth. In the case of online services, that require a login, large amounts of passwords have to be stored on the server-side. Experience has shown that it is not easy at all to protect those passwords from unauthorized access. Just recently, 130 million encrypted passwords of Adobe users showed up on the Internet together with user names and password hints, directly revealing lots of passwords due to bad implementation [Sop13]. Table 1.1 lists the most famous password leaks from the last years. Year Affected entity # of passwords Implementation details 2013 Adobe [Tec13] ≈ 130,000,000 Encrypted. Unsalted. 2012 gamigo [For12] ≈ 8,000,000 Hashed. Unsalted. 2012 LinkedIn [Tec12a] ≈ 6,000,000 Hashed. Unsalted. 2012 eHarmony [Tec12b] ≈ 1,500,000 Hashed. Unsalted. 2009 RockYou [Dev10, Tec09] ≈ 32,000,000 Plain. Table 1.1: Overview of the most famous password leaks in the last years. It should be pointed out that Table 1.1 only includes breaches were the according password files have been posted on the Internet and could be associated with anentity. There are three things to note here. First, it must be assumed that there also exist many password leaks that never show up on the Internet, since this might adversely affect the criminal intentions of the attackers. To gain knowledge of such a breach,the affected entity must notice it and also make it public. A famous example for thatisthe breach of Sony’s Playstation Network in 2011 [Reu11]. 77 million users were affected and, according to Sony, the stolen data also included hashed passwords [Pla11]. But it would be naive to assume that every breach is detected and also made public as in this particular case. The second thing to realize is that the number of leaked passwords showing up on the Internet is always a best-case scenario. Especially in those cases where password hashes are posted without according user names, it is conceivable that the original attacker published merely that fraction of the passwords that he did not manage to crack on his own. Finally, every day there are also lots of passwords published on the Internet that cannot be associated with a definite entity, that is, we do not know where these passwords come from and if they are actually real. Putting all those arguments together, one must assume that there is a large dark figure of leaked passwords, even 2 1 Introduction though the numbers we can be sure of are already sufficient for motivating research for better ways of implementing password storage. This implementation can be divided into two layers as depictured in Figure 1.1. On the one hand, a data breach should not occur in the first place. This first layer in password security involves software engineering, database programming, and security policies. Breaches might for example take place due to SQL injections or thoughtless disposal of old backups. As we just motivated, such breaches prove to be hard to thwart. Therefore, we need a second security layer that takes effect in the event of password theft. Such a scenario is called an offline attack, that is, the attacker has stored the password file on a local disk and is not subject to any restrictions imposed by online authentication. This thesis will cover the latter of those security layers while preventing password leaks will not be taken into account. Figure 1.1: Passwords are secured with two layers. The first layer prevents data theft, the second layer protects the passwords for the case that the first layer fails. To thwart the security threats that arise from offline attacks, techniques like hashing and salting are applied. Nevertheless, since trying out different passwords as input of a hash function is an embarrassingly parallel problem and hash functions are typically created to be computable as fast as possible, an attacker applied with parallel hardware still represents a big threat in such a scenario. In most cases of hashed and unsalted leaks, it only takes a few days for way above 50% of the hashes to be solved. More than 90% of the hashes from gamigo, LinkedIn, and eHarmony have been recovered and are now publicly accessible in the form of so called password dictionaries. While applying salting will significantly slow down the cracking process, it is still desirable to have a particularly suited hash function that is harder to attack. This is all the more true when we also want to protect against attackers with large resources, such as intelligence agencies. In contrast to “small” attackers who are typically equipped with a GPU, or maybe with an FPGA, those “large” attackers might use ASICs that can compute way more hashes per second. For that reason, algorithms [PM99, Kal00] and techniques [ALN97, Man96, KSHW98] have been proposed with the specific goal of slowing down the process of trying out many inputs. Since continuous hardware improvements must be taken into account, the computational cost is typically parameterized. One of these algorithms is called scrypt [Per09] and is 1.1 Contribution 3 based on the idea of making parallel hardware implementations expensive by forcing large utilization of RAM. The author claims that scrypt is significantly more expensive to attack than other well-known password hash functions. This thesis describes an implementation of the scrypt algorithm on a GPU. The cost of cracking passwords is measured for various parameters. Based on the results, the scrypt algorithm is evaluated and compared to the bcrypt algorithm. 1.1 Contribution Our main contribution is the implementation and evaluation of a GPU-based exhaustive search for passwords protected with scrypt.
Recommended publications
  • Implementation and Performance Analysis of PBKDF2, Bcrypt, Scrypt Algorithms
    Implementation and Performance Analysis of PBKDF2, Bcrypt, Scrypt Algorithms Levent Ertaul, Manpreet Kaur, Venkata Arun Kumar R Gudise CSU East Bay, Hayward, CA, USA. [email protected], [email protected], [email protected] Abstract- With the increase in mobile wireless or data lookup. Whereas, Cryptographic hash functions are technologies, security breaches are also increasing. It has used for building blocks for HMACs which provides become critical to safeguard our sensitive information message authentication. They ensure integrity of the data from the wrongdoers. So, having strong password is that is transmitted. Collision free hash function is the one pivotal. As almost every website needs you to login and which can never have same hashes of different output. If a create a password, it’s tempting to use same password and b are inputs such that H (a) =H (b), and a ≠ b. for numerous websites like banks, shopping and social User chosen passwords shall not be used directly as networking websites. This way we are making our cryptographic keys as they have low entropy and information easily accessible to hackers. Hence, we need randomness properties [2].Password is the secret value from a strong application for password security and which the cryptographic key can be generated. Figure 1 management. In this paper, we are going to compare the shows the statics of increasing cybercrime every year. Hence performance of 3 key derivation algorithms, namely, there is a need for strong key generation algorithms which PBKDF2 (Password Based Key Derivation Function), can generate the keys which are nearly impossible for the Bcrypt and Scrypt.
    [Show full text]
  • Optimizing a Password Hashing Function with Hardware-Accelerated Symmetric Encryption
    S S symmetry Article Optimizing a Password Hashing Function with Hardware-Accelerated Symmetric Encryption Rafael Álvarez 1,* , Alicia Andrade 2 and Antonio Zamora 3 1 Departamento de Ciencia de la Computación e Inteligencia Artificial (DCCIA), Universidad de Alicante, 03690 Alicante, Spain 2 Fac. Ingeniería, Ciencias Físicas y Matemática, Universidad Central, Quito 170129, Ecuador; [email protected] 3 Departamento de Ciencia de la Computación e Inteligencia Artificial (DCCIA), Universidad de Alicante, 03690 Alicante, Spain; [email protected] * Correspondence: [email protected] Received: 2 November 2018; Accepted: 22 November 2018; Published: 3 December 2018 Abstract: Password-based key derivation functions (PBKDFs) are commonly used to transform user passwords into keys for symmetric encryption, as well as for user authentication, password hashing, and preventing attacks based on custom hardware. We propose two optimized alternatives that enhance the performance of a previously published PBKDF. This design is based on (1) employing a symmetric cipher, the Advanced Encryption Standard (AES), as a pseudo-random generator and (2) taking advantage of the support for the hardware acceleration for AES that is available on many common platforms in order to mitigate common attacks to password-based user authentication systems. We also analyze their security characteristics, establishing that they are equivalent to the security of the core primitive (AES), and we compare their performance with well-known PBKDF algorithms, such as Scrypt and Argon2, with favorable results. Keywords: symmetric; encryption; password; hash; cryptography; PBKDF 1. Introduction Key derivation functions are employed to obtain one or more keys from a master secret. This is especially useful in the case of user passwords, which can be of arbitrary length and are unsuitable to be used directly as fixed-size cipher keys, so, there must be a process for converting passwords into secret keys.
    [Show full text]
  • Security Policy: Informacast Java Crypto Library
    FIPS 140-2 Non-Proprietary Security Policy: InformaCast Java Crypto Library FIPS 140-2 Non-Proprietary Security Policy InformaCast Java Crypto Library Software Version 3.0 Document Version 1.2 June 26, 2017 Prepared For: Prepared By: Singlewire Software SafeLogic Inc. 1002 Deming Way 530 Lytton Ave, Suite 200 Madison, WI 53717 Palo Alto, CA 94301 www.singlewire.com www.safelogic.com Document Version 1.2 © Singlewire Software Page 1 of 35 FIPS 140-2 Non-Proprietary Security Policy: InformaCast Java Crypto Library Abstract This document provides a non-proprietary FIPS 140-2 Security Policy for InformaCast Java Crypto Library. Document Version 1.2 © Singlewire Software Page 2 of 35 FIPS 140-2 Non-Proprietary Security Policy: InformaCast Java Crypto Library Table of Contents 1 Introduction .................................................................................................................................................. 5 1.1 About FIPS 140 ............................................................................................................................................. 5 1.2 About this Document.................................................................................................................................... 5 1.3 External Resources ....................................................................................................................................... 5 1.4 Notices .........................................................................................................................................................
    [Show full text]
  • Viacoin Whitepaper
    Viacoin Whitepaper Viacoin Dev Team September 12, 2017 Last updated on September 22, 2017 Abstract Viacoin is an open source crypto-currency created in 2014, derived from the [6]Bitcoin protocol that supports embedded consensus with an extended OP_RETURN of 120 byte. Viacoin features Scrypt Merged mining, also called Auxiliary proof of work or AuxPoW, and 25x faster transactions than Bitcoin. Viacoin mining reward halving takes place every 6 months and has a total supply of 23,000,000 coins. The inflation rate of Viacoin is low due to minimal mining reward. As the block reward of Viacoin is low, miners are given incentive to mine Viacoin through Merged mining (AuxPoW). Viacoin is currently mined by one of the biggest mining pools (F2Pool) with a very high hashrate. Other features include a mining difficulty adjustment algorithm to address flaws in Kimoto’s Gravity Well (DarkGravityWave), Versionbits to allow for 29 simultaneous Soft Fork changes to be implemented at a time, Segwit and the Lightning Network Note: The whitepaper, documentation, designs are in research and development phase and subject to change. 1 1 Scrypt In cryptography, [7]Scrypt is a password based key derivation function created by Colin Percival. The al- gorithm was designed to make it costly to perform large-scale custom hardware attacks by requiring large amounts of memory. In 2012, the algorithm was published by the IETF as an internet draft intended to become an informational RFC, but a version of Scrypt is now used as a proof of work scheme by cryptocur- rencies like Viacoin. Scrypt is a memory hard key derivation function, it requires a reasonably large amount of Random Ac- cess Memory to be evaluated.
    [Show full text]
  • Performance Analysis of Cryptographic Hash Functions Suitable for Use in Blockchain
    I. J. Computer Network and Information Security, 2021, 2, 1-15 Published Online April 2021 in MECS (http://www.mecs-press.org/) DOI: 10.5815/ijcnis.2021.02.01 Performance Analysis of Cryptographic Hash Functions Suitable for Use in Blockchain Alexandr Kuznetsov1 , Inna Oleshko2, Vladyslav Tymchenko3, Konstantin Lisitsky4, Mariia Rodinko5 and Andrii Kolhatin6 1,3,4,5,6 V. N. Karazin Kharkiv National University, Svobody sq., 4, Kharkiv, 61022, Ukraine E-mail: [email protected], [email protected], [email protected], [email protected], [email protected] 2 Kharkiv National University of Radio Electronics, Nauky Ave. 14, Kharkiv, 61166, Ukraine E-mail: [email protected] Received: 30 June 2020; Accepted: 21 October 2020; Published: 08 April 2021 Abstract: A blockchain, or in other words a chain of transaction blocks, is a distributed database that maintains an ordered chain of blocks that reliably connect the information contained in them. Copies of chain blocks are usually stored on multiple computers and synchronized in accordance with the rules of building a chain of blocks, which provides secure and change-resistant storage of information. To build linked lists of blocks hashing is used. Hashing is a special cryptographic primitive that provides one-way, resistance to collisions and search for prototypes computation of hash value (hash or message digest). In this paper a comparative analysis of the performance of hashing algorithms that can be used in modern decentralized blockchain networks are conducted. Specifically, the hash performance on different desktop systems, the number of cycles per byte (Cycles/byte), the amount of hashed message per second (MB/s) and the hash rate (KHash/s) are investigated.
    [Show full text]
  • Package 'Scrypt'
    Package ‘scrypt’ August 9, 2019 Type Package Title Key Derivation Functions for R Based on Scrypt Version 0.1.3 Copyright RStudio, Inc.; Colin Percival Maintainer Bob Jansen <[email protected]> Description Functions for working with the scrypt key derivation functions originally described by Colin Percival <https://www.tarsnap.com/scrypt/scrypt.pdf> and in Percival and Josefsson (2016) <doi:10.17487/RFC7914>. Scrypt is a password-based key derivation function created by Colin Percival. The algorithm was specifically designed to make it costly to perform large-scale custom hardware attacks by requiring large amounts of memory. License FreeBSD Depends R (>= 3.0.0) URL https://github.com/rstudio/rscrypt Imports Rcpp (>= 0.10.6) LinkingTo Rcpp NeedsCompilation yes Author Bob Jansen [ctb, cre], Andy Kipp [aut], Colin Percival [aut, cph], RStudio [cph] Repository CRAN Date/Publication 2019-08-09 13:30:08 UTC R topics documented: scrypt-package . .2 hashPassword . .2 verifyPassword . .3 Index 5 1 2 hashPassword scrypt-package scrypt key derivation functions for R Description scrypt is an R package for working with scrypt. Scrypt is a password-based key derivation function created by Colin Percival. The algorithm was specifically designed to make it costly to perform large-scale custom hardware attacks by requiring large amounts of memory. Details Package: scrypt Type: Package Version: 0.1 Date: 2014-01-07 License: GPLv3 The scrypt package can be used for hashing and verifying passwords, or encrypting and decrypting data. Additionally, the scrypt
    [Show full text]
  • A Survey of Password Attacks and Safe Hashing Algorithms
    International Research Journal of Engineering and Technology (IRJET) e-ISSN: 2395-0056 Volume: 04 Issue: 12 | Dec-2017 www.irjet.net p-ISSN: 2395-0072 A Survey of Password Attacks and Safe Hashing Algorithms Tejaswini Bhorkar Student, Dept. of Computer Science and Engineering, RGCER, Nagpur, Maharashtra, India ---------------------------------------------------------------------***--------------------------------------------------------------------- Abstract - To authenticate users, most web services use pair of message that would generate the same hash as that of the username and password. When a user wish to login to a web first message. Thus, the hash function should be resistant to application of the service, he/she sends their user name and second-pre-image. password to the web server, which checks if the given username already exist in the database and that the password is identical to 1.2 Hashing Algorithms the password set by that user. This last step of verifying the password of the user can be performed in different ways. The user Different hash algorithms are used in order to generate hash password may be directly stored in the database or the hash value values. Some commonly used hash functions include the of the password may be stored. This survey will include the study following: of password hashing. It will also include the need of password hashing, algorithms used for password hashing along with the attacks possible on the same. • MD5 • SHA-1 Key Words: Password, Hashing, Algorithms, bcrypt, scrypt, • SHA-2 attacks, SHA-1 • SHA-3 1.INTRODUCTION MD5: Web servers store the username and password of its users to authenticate its users. If the web servers store the passwords of This algorithm takes data of arbitrary length and produces its users directly in the database, then in such case, password message digest of 128 bits (i.e.
    [Show full text]
  • Crush-Crypto-Deep-Dive-Litecoin-LTC.Pdf
    Deep Dive into Litecoin (LTC) Cryptocurrency for instant, near-zero cost payments October 16, 2018 What is Litecoin? • Open source, P2P cryptocurrency that enables fast and near-zero payments between anyone, anywhere in the world. • Created in October 2011 by an ex- Google and ex-Coinbase engineer, Charlie Lee, as an alternative to Bitcoin. • The goal was to solve some of the issues faced by Bitcoin, such as transaction times, high transaction fees, and concentrated mining pools, and enable larger-scale adoption by individuals and businesses. For additional resources, please visit www.CrushCrypto.com. 2 Copyright © Crush Crypto. All Rights Reserved. User and merchant adoption • Litecoin can be used by individuals Select card wallets to make purchases in the real world more easily than most other cryptocurrencies because it is supported by a growing number of wallets and crypto debit cards. • Litecoin has also made progress on the merchant side as they have Select gateway wallets been expanding their point-of- sale payment gateway and banking services to make it easier for merchants to accept Litecoin as a form of payment. For additional resources, please visit www.CrushCrypto.com. 3 Copyright © Crush Crypto. All Rights Reserved. Network usage stats • The Litecoin network has decent usage. On average, Litecoin processes around 20,000 to 30,000 on-chain transactions a day. • The chart below shows the usage of the Litecoin network for the past two years: For additional resources, please visit www.CrushCrypto.com. 4 Copyright © Crush Crypto. All Rights Reserved. Litecoin versus Bitcoin • Hashing algorithm: Both use proof-of-work as its consensus algorithm, however, Litecoin uses a different hashing algorithm – scrypt instead of Secure Hash Algorithm (SHA) 256.
    [Show full text]
  • Just in Time Hashing
    Just in Time Hashing Benjamin Harsha Jeremiah Blocki Purdue University Purdue University West Lafayette, Indiana West Lafayette, Indiana Email: [email protected] Email: [email protected] Abstract—In the past few years billions of user passwords prove and as many users continue to select low-entropy have been exposed to the threat of offline cracking attempts. passwords, finding it too difficult to memorize multiple Such brute-force cracking attempts are increasingly dangerous strong passwords for each of their accounts. Key stretching as password cracking hardware continues to improve and as serves as a last line of defense for users after a password users continue to select low entropy passwords. Key-stretching breach. The basic idea is to increase guessing costs for the techniques such as hash iteration and memory hard functions attacker by performing hash iteration (e.g., BCRYPT[75] can help to mitigate the risk, but increased key-stretching effort or PBKDF2 [59]) or by intentionally using a password necessarily increases authentication delay so this defense is hash function that is memory hard (e.g., SCRYPT [74, 74], fundamentally constrained by usability concerns. We intro- Argon2 [12]). duce Just in Time Hashing (JIT), a client side key-stretching Unfortunately, there is an inherent security/usability algorithm to protect user passwords against offline brute-force trade-off when adopting traditional key-stretching algo- cracking attempts without increasing delay for the user. The rithms such as PBKDF2, SCRYPT or Argon2. If the key- basic idea is to exploit idle time while the user is typing in stretching algorithm cannot be computed quickly then we their password to perform extra key-stretching.
    [Show full text]
  • Cryptocurrencies: Core Information Technology and Information System Fundamentals Enabling Currency Without Borders
    Information Systems Education Journal (ISEDJ) 13 (3) ISSN: 1545-679X May 2015 Cryptocurrencies: Core Information Technology and Information System Fundamentals Enabling Currency Without Borders Anthony Serapiglia [email protected] CIS Department St. Vincent College Latrobe, PA 15650 Constance Serapiglia [email protected] Robert Morris University Coraopolis, PA 15108 Joshua McIntyre [email protected] St. Vincent College Latrobe, PA 15650 Abstract Bitcoin, Litecoin, Dogecoin, et al ‘cryptocurrencies’ have enjoyed a meteoric rise in popularity and use as a way of performing transactions on the Internet and beyond. While gaining market valuations of billions of dollars and generating much popular press in doing so, little has been academically published on the Computer Science / Information Systems (CS/IS) foundations of this phenomena. This paper describes these foundations. In doing so, it is hoped that the success of the cryptocurrency payment systems can be used to demonstrate to CS/IS students how computer theory can be integrated into other disciplines with dramatic results. Keywords: Bitcoin, Litecoin, Cryptography, Peer-to-Peer Networking, Mining, GPU 1. INTRODUCTION boards, personal blogs, and live chats/personal messages within the user community (Schwartz, The purpose of this paper is to add to academic 2014). Because of this, there is a barrier in literature concerning the cryptocurrency understanding and implementing phenomena. Currently, there is precious little cryptocurrencies. In the general media and to documentation and formal research in the area. the general population there is a gap in The technology is fast moving and being pushed awareness as to what is fact, and what is either by a user community that is not traditional in gossip or rumor as to exactly what research or business structure.
    [Show full text]
  • Security Policy: Java Crypto Module
    FIPS 140-2 Non-Proprietary Security Policy: Java Crypto Module FIPS 140-2 Non-Proprietary Security Policy Trend Micro Java Crypto Module Software Version 1.0 Document Version 1.2 August 30, 2018 Prepared For: Prepared By: Trend Micro Inc. SafeLogic Inc. 225 E. John Carpenter Freeway, Suite 1500 530 Lytton Ave, Suite 200 Irving, Texas 75062 Palo Alto, CA 94301 www.trendmicro.com www.safelogic.com Document Version 1.1 © Trend Micro Page 1 of 34 FIPS 140-2 Non-Proprietary Security Policy: Java Crypto Module Abstract This document provides a non-proprietary FIPS 140-2 Security Policy for the Trend Micro Java Crypto Module. Document Version 1.1 © Trend Micro Page 2 of 34 FIPS 140-2 Non-Proprietary Security Policy: Java Crypto Module Table of Contents 1 Introduction .............................................................................................................................................. 5 1.1 About FIPS 140 ............................................................................................................................................. 5 1.2 About this Document .................................................................................................................................... 5 1.3 External Resources ....................................................................................................................................... 5 1.4 Notices .........................................................................................................................................................
    [Show full text]
  • Scrypt: a New Key Derivation Function Doing Our Best to Thwart Tlas Armed with Asics
    scrypt: A new key derivation function Doing our best to thwart TLAs armed with ASICs Colin Percival Tarsnap [email protected] May 9, 2009 Colin Percival Tarsnap [email protected] scrypt: A new key derivation function scrypt: A new key derivation function Making bcrypt obsolete Colin Percival Tarsnap [email protected] May 9, 2009 Colin Percival Tarsnap [email protected] scrypt: A new key derivation function scrypt: A new key derivation function Are you sure your SSH keys are safe? Colin Percival Tarsnap [email protected] May 9, 2009 Colin Percival Tarsnap [email protected] scrypt: A new key derivation function What are key derivation functions? You have a password. You want a generate a derived key from that password. Verifying passwords for user authentication. Encrypting or signing files. In most situations where passwords are used, they are passed to a key derivation function first. In most situations where key derivation functions aren’t used, they should be! Examples of key derivation functions: DES CRYPT [R. Morris, 1979] MD5 CRYPT [P. H. Kamp, 1994] bcrypt [N. Provos and D. Mazi`eres, 1999] PBKDF2 [B. Kaliski, 2000] MD5 (not really a key derivation function!) Colin Percival Tarsnap [email protected] scrypt: A new key derivation function Security of key derivation functions Attack model: Assume that the attacker can mount an offline attack. Attacker has access to /etc/master.passwd and wants to find the users’ passwords. Attacker has an encrypted file and wants to decrypt it. For all reasonable key derivation functions, the only feasible attack is to repeatedly try passwords until you find the right one.
    [Show full text]