Attacking Scrypt Via Cache Timing Side-Channel

Total Page:16

File Type:pdf, Size:1020Kb

Attacking Scrypt Via Cache Timing Side-Channel Attacking scrypt via Cache Timing Side-Channel Mark Matthew Anderson Stanford University Abstract running KDF algorithms make the process of enumerat- ing all possible inputs a very laborious task. For exam- This paper gives a motivation for the design of memory- ple, if a given KDF takes 1ms to process, it would take hard key derivation functions (KDFs), a summary of an amount of time on the order of 1028 years for a single a memory-hard password-based key derivation function machine to evaluate the KDF on all possible values of a called scrypt, and an overview of cache timing attacks. 128-bit input. A cache timing attack against scrypt is introduced and Though designed to take a long time to evaluate, an is- described in detail. Finally, additional work necessary sue with standard KDFs is that attackers are often able to to implement the attack and measures to prevent the at- accelerate their computation by means of algorithmic op- tack are discussed. Since it is an actively-used utility timizations and highly parallel or specialized hardware. for generating cryptographic keys, constructing a pass- Ruddick and Yan demonstrate such attacks on the pop- word stealing attack against scrypt raises serious secu- ular PBKDF2 [1]. By shortening the execution time of rity concerns for any applications that make use of it. the KDF, an attacker is able to eliminate any protection against a dictionary attack. 1 Introduction As a stronger measure to prevent dictionary attacks, researchers have designed KDFs that are memory inten- 1.1 Memory-Hard KDFs sive in addition to being time intensive. Designing a KDF to be memory-hard is a way to preserve the long KDFs are functions that compute random looking runtime of the KDF by impeding any efforts to accelerate cryptographic keys from human-generated passwords. its execution. Memory is an expensive and slow piece of Human-generated passwords are far from random; users hardware. When large amounts of memory are required often choose passwords that are based on predictable fac- to execute a function, parallelized hardware (like a GPU) tors, like words or phrases that are familiar or meaning- is ineffective at providing any speedup, since all the par- ful to the user. While these passwords are still somewhat allel hardware is competing for a fixed and small amount random, KDFs are used in practice to generate keys with of shared memory. Likewise, building specialized hard- far higher degrees of randomness by applying pseudo- ware with enough parallelism and memory to quickly random functions to the user’s input. The output of the evaluate the memory-hard KDF is impractical because KDF is intended to appear independent from the user’s the designs are prohibitively expensive. input and to be impossible to invert. The increased ran- domness provided by KDFs makes key guessing attacks 1.2 The scrypt Algorithm extremely unlikely to conduct successfully. In addition to generating an output that is difficult to The scrypt algorithm [2, 3] was designed by Colin predict and invert, standard KDFs are also designed to Percival to be a memory-hard KDF. It takes as input a take a relatively large amount of time to execute in or- password (PW), a salt (S), a memory cost parameter (C), der to reduce the practicality of dictionary attacks. If an indexing parameter (I), a parallelization parameter KDFs were quickly computable, an attacker could eas- (P), and a desired output length parameter (Ls). Note- ily find an output’s preimage by evaluating the KDF for worthy parameters within the function are an array of a large set of potential passwords and finding which input blocks to be mixed (B), and a parameter that corresponds produces an output that matches the target value. Long- to the length of the inputs and outputs of the function MHMix (LMHM). The scrypt algorithm is defined by information when data accesses or function calls in a pro- the following function: gram are dependent on this secret information. Yuval Yarom’s PRIME+PROBE method [4] is an ex- scrypt(PW;S;C;I;P;Ls) : ample of a cache timing attack, and is the best technique (B[0];:::;B[P − 1]) PBKDF2(PW;S;1;P · LMHM) to use against scrypt. The PRIME+PROBE method is for j = 0 to P − 1 do used to track the access patterns of data over time by B[ j] MHMix(B[ j];C;I) intentionally thrashing target data in the cache and ob- end for serving when the victim puts that data back in cache. return PBKDF2(PW;B[0]jj:::jjB[P − 1];1;Ls) First, the attacker flushes the victim’s data from cache (the PRIME stage) by accessing data that it knows will The MHMix function is what gives scrypt its memory- evict the victim’s data from cache. Then, after waiting hard property. MHMix takes as input a block to be to give the victim an opportunity to access its data, the expanded and hashed (B), a memory cost parameter (C), attacker attempts to access the data it put in cache (the and an indexing parameter (I). Parameters used within PROBE stage). If the time to retrieve the data is relatively the function are a temporary block placeholder (X), a short, that means that the victim did not access its data. If memory-consuming array of hashes (A), and an indexing the time to retrieve the data is relatively long, the victim variable (k). MHMix uses a hashing function Mix whose accessed the target data, which caused the attacker’s data details are important to the scrypt algorithm, but not to be evicted from cache, forcing the attacker to wait for directly pertinent to the cache timing attack. MHMix its data to be retrieved from a lower-level memory. takes the input block, hashes it many times while saving The PRIME+PROBE attack can be used any time the the hash results, and computes an output derived from attacker shares some level of processor cache with the some of the hash results that are chosen by interpreting victim. This can happen when the attacker and victim certain hash values as indices. Since the hash values will processes are two processes running on the same ma- be unique to each password input to scrypt, the indices chine or when the attacker and victim are working on of the hash values that are accessed and used in the separate virtual machines that are hosted on the same output will also be unique to each password. Since the machine. Note that it is not necessary that the attacker hash values that are needed to compute the true scrypt and victim be using the same core on a multi-core pro- output are password-dependent, an adversary conducting cessor, they only need to be sharing cache memory on a brute force dictionary attack against scrypt will be some level. unable to predict which values will contribute to the final output and will be forced to store all values to potentially 2 Attack on scrypt be used, making array A in MHMix use large amounts of memory. MHMix is defined as: 2.1 Vulnerability MHMix(B;C;I): What makes the cache timing attack on scrypt possible X B is the following code from the MHMix function: for j = 0 to C − 1 do A[ j] X k ((int)X) mod C X Mix(X;I) X Mix(X ⊕ A[k];I) end for As previously mentioned, A is the array that gives for j = 0 to C − 1 do scrypt its memory-hard property. A stores all the re- k ((int)X) mod C peated hashes of B, such that A[n] = Mixn(B), where X Mix(X ⊕ A[k];I) Mixn(B) is the result of hashing B n times (e.g. end for Mix2(B) = Mix(Mix(B;I);I)). In the above lines of return X code, elements of A are chosen to be used in calculation of the scrypt result by interpreting hash results, which 1.3 Cache Timing Attacks are unique to and derived from secret information (the evaluation of PBKDF2 on the user’s password), as inte- Cache timing attacks are a class of side-channel attacks gers and using them to index through A (with the variable that extract information based on the availability or un- k). Since these memory accesses are dependent on the availability of data in a processor’s cache. These attacks password, patterning the memory accesses observed dur- are used to determine when certain data or instructions ing an execution of scrypt will give information about are being used. Knowledge of when particular data or the result of the evaluation of PBKDF2 in the first step instructions are in use can disclose details about secret of the scrypt algorithm. 2 Learning enough information about the PBKDF2 hash index of the first element accessed in the output construc- of the victim’s password allows an adversary to re- tion stage of MHMix, the attacker learns the value of duce an attack on scrypt to an attack on PBKDF2, MixC(·) mod C evaluated on the input to MHMix. With thereby bypassing the memory-hardness of scrypt. knowledge of this value, the attacker can reduce the set More specifically, once the memory access pattern of of potential passwords to the subset whose correspond- scrypt is observed, the attacker can construct a dictio- ing DI are equal to this value. From here, the attacker nary of PBKDF2 hashes of potential passwords, com- can either continue to observe evaluations of MHMix in pute what their access patterns will be, and compare the this manner and further reduce the set of potential pass- observed memory access patterns to the access patterns words, or they can brute force through the reduced candi- of the hashes in the dictionary.
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]