Atjaunināt sīkdatņu piekrišanu

E-grāmata: Hash Function BLAKE

  • Formāts: PDF+DRM
  • Sērija : Information Security and Cryptography
  • Izdošanas datums: 19-Dec-2014
  • Izdevniecība: Springer-Verlag Berlin and Heidelberg GmbH & Co. K
  • Valoda: eng
  • ISBN-13: 9783662447574
Citas grāmatas par šo tēmu:
  • Formāts - PDF+DRM
  • Cena: 91,01 €*
  • * ši ir gala cena, t.i., netiek piemērotas nekādas papildus atlaides
  • Ielikt grozā
  • Pievienot vēlmju sarakstam
  • Šī e-grāmata paredzēta tikai personīgai lietošanai. E-grāmatas nav iespējams atgriezt un nauda par iegādātajām e-grāmatām netiek atmaksāta.
  • Formāts: PDF+DRM
  • Sērija : Information Security and Cryptography
  • Izdošanas datums: 19-Dec-2014
  • Izdevniecība: Springer-Verlag Berlin and Heidelberg GmbH & Co. K
  • Valoda: eng
  • ISBN-13: 9783662447574
Citas grāmatas par šo tēmu:

DRM restrictions

  • Kopēšana (kopēt/ievietot):

    nav atļauts

  • Drukāšana:

    nav atļauts

  • Lietošana:

    Digitālo tiesību pārvaldība (Digital Rights Management (DRM))
    Izdevējs ir piegādājis šo grāmatu šifrētā veidā, kas nozīmē, ka jums ir jāinstalē bezmaksas programmatūra, lai to atbloķētu un lasītu. Lai lasītu šo e-grāmatu, jums ir jāizveido Adobe ID. Vairāk informācijas šeit. E-grāmatu var lasīt un lejupielādēt līdz 6 ierīcēm (vienam lietotājam ar vienu un to pašu Adobe ID).

    Nepieciešamā programmatūra
    Lai lasītu šo e-grāmatu mobilajā ierīcē (tālrunī vai planšetdatorā), jums būs jāinstalē šī bezmaksas lietotne: PocketBook Reader (iOS / Android)

    Lai lejupielādētu un lasītu šo e-grāmatu datorā vai Mac datorā, jums ir nepieciešamid Adobe Digital Editions (šī ir bezmaksas lietotne, kas īpaši izstrādāta e-grāmatām. Tā nav tas pats, kas Adobe Reader, kas, iespējams, jau ir jūsu datorā.)

    Jūs nevarat lasīt šo e-grāmatu, izmantojot Amazon Kindle.

This is a comprehensive description of the cryptographic hash function BLAKE, one of the five final contenders in the NIST SHA3 competition, and of BLAKE2, an improved version popular among developers. It describes how BLAKE was designed and why BLAKE2 was developed, and it offers guidelines on implementing and using BLAKE, with a focus on software implementation.

In the first two chapters, the authors offer a short introduction to cryptographic hashing, the SHA3 competition and BLAKE. They review applications of cryptographic hashing, they describe some basic notions such as security definitions and state-of-the-art collision search methods and they present SHA1, SHA2 and the SHA3 finalists. In the chapters that follow, the authors give a complete description of the four instances BLAKE-256, BLAKE-512, BLAKE-224 and BLAKE-384; they describe applications of BLAKE, including simple hashing with or without a salt and HMAC and PBKDF2 constructions; they review implementation techniques, from portable C and Python to AVR assembly and vectorized code using SIMD CPU instructions; they describe BLAKEs properties with respect to hardware design for implementation in ASICs or FPGAs; they explain BLAKE's design rationale in detail, from NISTs requirements to the choice of internal parameters; they summarize the known security properties of BLAKE and describe the best attacks on reduced or modified variants; and they present BLAKE2, the successor of BLAKE, starting with motivations and also covering its performance and security aspects. The book concludes with detailed test vectors, a reference portable C implementation of BLAKE, and a list of third-party software implementations of BLAKE and BLAKE2.

The book is oriented towards practice engineering and craftsmanship rather than theory. It is suitable for developers, engineers and security professionals engaged with BLAKE and cryptographic hashing in general and for applied cryptographyresearchers and students who need a consolidated reference and a detailed description of the design process, or guidelines on how to design a cryptographic algorithm.
1 Introduction
1(8)
1.1 Cryptographic Hashing
1(1)
1.2 The SHA3 Competition
2(3)
1.3 BLAKE, in a Nutshell
5(1)
1.4 Conventions
6(3)
2 Preliminaries
9(28)
2.1 Applications
9(6)
2.1.1 Modification Detection
9(1)
2.1.2 Message Authentication
10(1)
2.1.3 Digital Signatures
11(1)
2.1.4 Pseudorandom Functions
12(1)
2.1.5 Entropy Extraction and Key Derivation
13(1)
2.1.6 Password Hashing
13(1)
2.1.7 Data Identification
14(1)
2.1.8 Key Update
14(1)
2.1.9 Proof-of-Work Systems
14(1)
2.1.10 Timestamping
15(1)
2.2 Security Notions
15(5)
2.2.1 Security Models
15(2)
2.2.2 Classical Security Definitions
17(2)
2.2.3 General Security Definition
19(1)
2.3 Black-Box Collision Search
20(4)
2.3.1 Cycles and Tails
20(1)
2.3.2 Cycle Detection
21(1)
2.3.3 Parallel Collision Search
22(1)
2.3.4 Application to Meet-in-the-Middle
22(1)
2.3.5 Quantum Collision Search
23(1)
2.4 Constructing Hash Functions
24(7)
2.4.1 Merkle-Damgard
24(3)
2.4.2 HAIFA
27(1)
2.4.3 Wide-Pipe
27(1)
2.4.4 Sponge Functions
27(1)
2.4.5 Compression Functions
28(3)
2.5 The SHA Family
31(6)
2.5.1 SHA1
31(1)
2.5.2 SHA2
32(2)
2.5.3 SHA3 Finalists
34(3)
3 Specification of BLAKE
37(8)
3.1 BLAKE-256
37(4)
3.1.1 Constant Parameters
37(1)
3.1.2 Compression Function
38(2)
3.1.3 Iteration Mode
40(1)
3.2 BLAKE-512
41(2)
3.2.1 Constant Parameters
41(1)
3.2.2 Compression Function
42(1)
3.2.3 Iteration Mode
42(1)
3.3 BLAKE-224
43(1)
3.4 BLAKE-384
43(1)
3.5 Toy Versions
44(1)
4 Using BLAKE
45(10)
4.1 Simple Hashing
45(4)
4.1.1 Description
45(1)
4.1.2 Hashing a Large File with BLAKE-256
46(2)
4.1.3 Hashing a Bit with BLAKE-512
48(1)
4.1.4 Hashing the Empty String with BLAKE-512
49(1)
4.2 Hashing with a Salt
49(1)
4.2.1 Description
49(1)
4.2.2 Hashing a Bit with BLAKE-512 and a Salt
49(1)
4.3 Message Authentication with HMAC
50(3)
4.3.1 Description
50(1)
4.3.2 Authenticating a File with HMAC-BLAKE-512
50(3)
4.4 Password-Based Key Derivation with PBKDF2
53(2)
4.4.1 Basic Description
53(1)
4.4.2 Generating a Key with PBKDF2-HMAC-BLAKE-224
53(2)
5 BLAKE in Software
55(42)
5.1 Straightforward Implementation
55(5)
5.1.1 Portable C
55(3)
5.1.2 Other Languages
58(2)
5.2 Embedded Systems
60(4)
5.2.1 8-Bit AVR
60(2)
5.2.2 32-Bit ARM
62(2)
5.3 Vectorized Implementation Principle
64(1)
5.4 Vectorized Implementation with SSE Extensions
64(6)
5.4.1 Streaming SIMD Extensions 2 (SSE2)
64(1)
5.4.2 Implementing BLAKE-256 with SSE2
65(1)
5.4.3 Implementing BLAKE-512 with SSE2
66(4)
5.4.4 Implementations with SSSE3 and SSE4.1
70(1)
5.5 Vectorized Implementation with AVX2 Extensions
70(9)
5.5.1 Relevant AVX2 Instructions
71(2)
5.5.2 Implementing BLAKE-512 with AVX2
73(4)
5.5.3 Implementing BLAKE-256 with AVX2
77(2)
5.6 Vectorized Implementation with XOP Extensions
79(4)
5.6.1 Relevant XOP Instructions
80(1)
5.6.2 Implementing BLAKE with XOP
80(3)
5.7 Vectorized Implementation with NEON Extensions
83(5)
5.7.1 Relevant NEON Instructions
83(1)
5.7.2 Implementing BLAKE-256 with NEON
84(2)
5.7.3 Implementing BLAKE-512 with NEON
86(2)
5.8 Performance
88(9)
5.8.1 Speed Summary
89(1)
5.8.2 8-Bit AVR
90(1)
5.8.3 ARM Platforms
91(1)
5.8.4 x86 Platforms (32-bit)
91(1)
5.8.5 amd64 Platforms (64-bit)
92(1)
5.8.6 Other Platforms
93(4)
6 BLAKE in Hardware
97(10)
6.1 RTL Design
97(1)
6.2 ASIC Implementation
98(2)
6.2.1 High-Speed Design
98(2)
6.2.2 Compact Design
100(1)
6.3 FPGA Design
100(1)
6.4 Performance
101(6)
6.4.1 ASIC
102(1)
6.4.2 FPGA
102(3)
6.4.3 Discussion
105(2)
7 Design Rationale
107(24)
7.1 NIST Call for Submissions
107(4)
7.1.1 General Requirements
107(2)
7.1.2 Technical and Security Requirements
109(1)
7.1.3 Could SHA2 Be SHA3?
110(1)
7.2 Needs Analysis
111(3)
7.2.1 Ease of Implementation
112(1)
7.2.2 Performance
113(1)
7.2.3 Security
113(1)
7.2.4 Extra Features
114(1)
7.3 Design Philosophy
114(6)
7.3.1 Minimalism
115(4)
7.3.2 Robustness
119(1)
7.3.3 Versatility
120(1)
7.4 Design Choices
120(11)
7.4.1 General Choices
121(1)
7.4.2 Iteration Mode
122(1)
7.4.3 Core Algorithm
122(3)
7.4.4 Rotation Counts
125(1)
7.4.5 Permutations
126(2)
7.4.6 Number of Rounds
128(1)
7.4.7 Constants
128(3)
8 Security of BLAKE
131(34)
8.1 Differential Cryptanalysis
131(2)
8.1.1 Differences and Differentials
132(1)
8.1.2 Finding Good Differentials
133(1)
8.2 Properties of BLAKE's G Function
133(8)
8.2.1 Basic Properties
134(2)
8.2.2 Differential Properties of G
136(5)
8.3 Properties of the Round Function
141(10)
8.3.1 Bijectivity
141(1)
8.3.2 Diffusion and Low-Weight Differences
142(3)
8.3.3 Invertibility
145(2)
8.3.4 Impossible Differentials
147(4)
8.4 Properties of the Compression Function
151(3)
8.4.1 Finalization
151(1)
8.4.2 Local Collisions
152(1)
8.4.3 Fixed Points
152(1)
8.4.4 Fixed Point Collisions
153(1)
8.4.5 Pseudorandomness
153(1)
8.5 Security Against Generic Attacks
154(4)
8.5.1 Indifferentiability
154(1)
8.5.2 Length Extension
155(1)
8.5.3 Collision Multiplication
155(1)
8.5.4 Multicollisions
156(1)
8.5.5 Second Preimages
157(1)
8.6 Attacks on Reduced BLAKE
158(7)
8.6.1 Preimage Attacks
158(1)
8.6.2 Near-Collision Attack
159(1)
8.6.3 Boomerang Distinguisher
160(1)
8.6.4 Iterative Characteristics
161(2)
8.6.5 Breaking BLOKE
163(1)
8.6.6 Attack on a Variant with Identical Constants
163(2)
9 BLAKE2
165(20)
9.1 Motivations
165(1)
9.2 Differences with BLAKE
166(6)
9.2.1 Fewer Rounds
167(1)
9.2.2 Rotations Optimized for Speed
167(1)
9.2.3 Minimal Padding
168(1)
9.2.4 Finalization Flags
168(1)
9.2.5 Fewer Constants
168(1)
9.2.6 Little-Endianness
169(1)
9.2.7 Counter in Bytes
170(1)
9.2.8 Salt Processing
170(1)
9.2.9 Parameter Block
170(2)
9.3 Keyed Hashing (MAC and PRF)
172(1)
9.4 Tree Hashing
172(4)
9.4.1 Basic Mechanism
173(1)
9.4.2 Message Parsing
174(1)
9.4.3 Special Cases
174(1)
9.4.4 Generic Tree Parameters
175(1)
9.4.5 Updatable Hashing Example
175(1)
9.5 Parallel Hashing: BLAKE2sp and BLAKE2bp
176(1)
9.6 Performance
177(3)
9.6.1 Why BLAKE2 Is Fast in Software
177(1)
9.6.2 64-bit Platforms
178(1)
9.6.3 Low-End Platforms
179(1)
9.6.4 Hardware
180(1)
9.7 Security
180(5)
9.7.1 BLAKE Legacy
190
9.7.2 Implications of BLAKE2 Tweaks
181(1)
9.7.3 Third-Party Cryptanalysis
181(4)
10 Conclusion
185(10)
References
187(8)
A Test Vectors
195(14)
A.1 BLAKE-256
195(3)
A.1.1 One-Block Message
195(1)
A.1.2 Two-Block Message
196(2)
A.2 BLAKE-224
198(3)
A.2.1 One-Block Message
198(1)
A.2.2 Two-Block Message
199(2)
A.3 BLAKE-512
201(4)
A.3.1 One-Block Message
201(1)
A.3.2 Two-Block Message
202(3)
A.4 BLAKE-384
205(4)
A.4.1 One-Block Message
205(1)
A.4.2 Two-Block Message
206(3)
B Reference C Code
209(16)
B.1 blake.h
209(2)
B.2 blake224.c
211(3)
B.3 blake256.c
214(3)
B.4 blake384.c
217(3)
B.5 blake512.c
220(5)
C Third-Party Software
225(2)
C.1 BLAKE
225(1)
C.2 BLAKE2
226(1)
Index 227
Dr. Jean-Philippe Aumasson received his Ph.D. from EPFL (Lausanne) in 2009. He is principal cryptographer at Kudelski Security, part of the Kudelski group, in Switzerland. He has co-authored more than 30 research papers in the field of symmetric cryptography and cryptanalysis and regularly talks at security and hacking conferences.

Prof.-Dr. Willi Meier received his Ph.D. in Mathematics from ETH Zürich in 1975. He has been a professor of mathematics and computer science at the University of Applied Sciences, Northwestern Switzerland in Windisch since 1985. His current research interests include the analysis and design of cryptographic primitives such as stream ciphers and hash functions.

Prof. Raphael Phan received his Ph.D. from the Multimedia University (MMU) in 2005. He held academic positions at UK, Swiss and Australian universities before becoming professor of security engineering at MMU in 2012. He has served in the technical program committees of over 100 security conferences. His research interests include security, privacy and cryptology and more recently dark side cryptography and subtleness recognition.

Dr. Luca Henzen received his Ph.D. from ETH Zürich in 2007. He works for UBS AG, Switzerland. His research interests include the design of VLSI circuits for cryptographic applications and low-power systems.