avalanche effect
{{Short description|Concept in cryptography}}
{{about|cryptography||Snowball effect|and|Avalanche (disambiguation)}}
In cryptography, the avalanche effect is the desirable property of cryptographic algorithms, typically block ciphers and cryptographic hash functions, wherein if an input is changed slightly (for example, flipping a single bit), the output changes significantly (e.g., half the output bits flip). In the case of high-quality block ciphers, such a small change in either the key or the plaintext should cause a drastic change in the ciphertext. The actual term was first used by Horst Feistel,{{Cite journal|last=Feistel|first=Horst|year=1973|title=Cryptography and Computer Privacy|url=https://www.apprendre-en-ligne.net/crypto/bibliotheque/feistel/index.html|journal=Scientific American|volume=228|issue=5|pages=15–23|doi=10.1038/scientificamerican0573-15|bibcode=1973SciAm.228e..15F}} although the concept dates back to at least Shannon's diffusion.
File:Avalanche effect.svg hash function exhibits good avalanche effect. When a single bit is changed the hash sum becomes completely different.]]
If a block cipher or cryptographic hash function does not exhibit the avalanche effect to a significant degree, then it has poor randomization, and thus a cryptanalyst can make predictions about the input, being given only the output. This may be sufficient to partially or completely break the algorithm. Thus, the avalanche effect is a desirable condition from the point of view of the designer of the cryptographic algorithm or device. Failure to incorporate this characteristic leads to the hash function being exposed to attacks including collision attacks, length extension attacks, and preimage attacks.Upadhyay, D., Gaikwad, N., Zaman, M., & Sampalli, S. (2022). Investigating the Avalanche Effect of Various Cryptographically Secure Hash Functions and Hash-Based Applications. IEEE Access, 10, 112472–112486. https://doi.org/10.1109/ACCESS.2022.3215778
Constructing a cipher or hash to exhibit a substantial avalanche effect is one of the primary design objectives, and mathematically the construction takes advantage of the butterfly effect.{{cite conference |last1=Al-Kuwari |first1=Saif |last2=Davenport |first2=James H. |last3=Bradford |first3=Russell J. |date=2011 |title=Cryptographic Hash Functions: Recent Design Trends and Security Notions |conference=Inscrypt '10 |url=https://eprint.iacr.org/2011/565}} This is why most block ciphers are product ciphers. It is also why hash functions have large data blocks. Both of these features allow small changes to propagate rapidly through iterations of the algorithm, such that every bit of the output should depend on every bit of the input before the algorithm terminates.{{Citation needed|date=June 2010}}
Strict avalanche criterion
The strict avalanche criterion (SAC) is a formalization of the avalanche effect. It is satisfied if, whenever a single input bit is complemented, each of the output bits changes with a 50% probability. The SAC builds on the concepts of completeness and avalanche and was introduced by Webster and Tavares in 1985.{{cite book|first1=A. F.|last1= Webster |first2=Stafford E. |last2=Tavares|chapter=On the design of S-boxes|title=Advances in Cryptology – Crypto '85 |series=Lecture Notes in Computer Science|volume=218|pages= 523–534|year=1985|isbn=0-387-16463-4|publisher=Springer-Verlag New York, Inc. |location= New York, NY}}
Higher-order generalizations of SAC involve multiple input bits.
Boolean functions which satisfy the highest order SAC are always bent functions,
also called maximally nonlinear functions,
also called "perfect nonlinear" functions.{{cite report |last1=Adams |first1=C. M. |author-link1=Carlisle Adams |last2=Tavares |first2=S. E. |author-link2=Stafford Tavares |date=January 1990 |title=The Use of Bent Sequences to Achieve Higher-Order Strict Avalanche Criterion in S-box Design |version=Technical Report TR 90-013 |publisher=Queen's University |citeseerx=10.1.1.41.8374}}
Bit independence criterion
The bit independence criterion (BIC) states that output bits j and k should change independently when any single input bit i is inverted, for all i, j and k.{{Cite book|title=Cryptography and network security : principles and practice|last=William|first=Stallings|year=2016|isbn=9780134444284|edition= Seventh|location=Boston|pages=136|oclc=933863805}}
See also
References
{{Reflist}}
External links
{{Cryptography navbox | block | hash}}