# SHAKE256

> cryptographic hash function

**Wikidata**: [Q110651453](https://www.wikidata.org/wiki/Q110651453)  
**Source**: https://4ort.xyz/entity/shake256

## Summary
SHAKE256 is a cryptographic hash function that belongs to the SHA-3 family and is an extendable-output function (XOF). It produces variable-length hash outputs and is defined in RFC 8702 for use in cryptographic applications.

## Key Facts
- SHAKE256 is part of the SHA-3 family of cryptographic hash functions
- It is classified as both a cryptographic hash function and an extendable-output function
- SHAKE256 has the ITU/ISO/IEC object ID: 2.16.840.1.101.3.4.2.12
- It is described in RFC 8702: Use of the SHAKE One-Way Hash Functions in the Cryptographic Message Syntax (CMS)
- SHAKE256 is also known by the alias SHAKE-256
- It has only 1 sitelink count, indicating limited web presence compared to other SHA-3 functions

## FAQs
### Q: What is SHAKE256 used for?
A: SHAKE256 is used as a cryptographic hash function that can produce variable-length outputs, making it useful for applications requiring flexible hash sizes. It's particularly valuable in cryptographic message syntax and other security protocols.

### Q: How is SHAKE256 different from other SHA-3 functions?
A: SHAKE256 is an extendable-output function (XOF), unlike SHA-3's fixed-output functions. This means it can generate hash outputs of any desired length, providing more flexibility than standard SHA-3 hash functions.

### Q: What standard defines SHAKE256?
A: SHAKE256 is defined in RFC 8702, which specifies its use in the Cryptographic Message Syntax (CMS). This standard ensures interoperability and proper implementation across different systems.

## Why It Matters
SHAKE256 represents an important advancement in cryptographic hash functions by providing extendable-output capabilities within the SHA-3 family. Its ability to generate variable-length hash outputs makes it uniquely suited for applications where fixed-size hashes are insufficient or where different output lengths are needed for different security requirements. As part of the SHA-3 standard, SHAKE256 benefits from the rigorous security analysis and design principles that make SHA-3 functions resistant to known cryptographic attacks. The function's inclusion in RFC 8702 for CMS applications demonstrates its practical importance in securing digital communications and data integrity verification. By offering flexibility in output length while maintaining the security properties expected of SHA-3 functions, SHAKE256 fills a specific niche in cryptographic toolkits that wasn't addressed by earlier hash function families.

## Notable For
- Being an extendable-output function (XOF) within the SHA-3 family, allowing variable-length hash outputs
- Its specific standardization in RFC 8702 for Cryptographic Message Syntax applications
- Having a unique ITU/ISO/IEC object identifier that distinguishes it from other SHA-3 functions
- Providing flexibility in cryptographic applications where different output lengths are beneficial
- Being part of the NIST-standardized SHA-3 family, ensuring strong security properties

## Body
### Technical Classification
SHAKE256 is formally classified as both a cryptographic hash function and an extendable-output function (XOF). This dual classification reflects its ability to provide the security properties of cryptographic hashes while offering the flexibility of variable output lengths.

### Relationship to SHA-3 Family
As part of the SHA-3 family, SHAKE256 shares the underlying Keccak permutation-based design that distinguishes SHA-3 from earlier SHA families. The SHA-3 functions were selected through a public NIST competition to provide a new, alternative cryptographic hash standard.

### Extendable-Output Function Properties
Unlike SHA-256 or SHA-3-256 which produce fixed 256-bit outputs, SHAKE256 can generate hash outputs of any desired length. This is achieved through its XOF design, where the output length is specified as a parameter rather than being fixed by the function name.

### Standardization and Implementation
The function is standardized in RFC 8702, which specifically addresses its use in Cryptographic Message Syntax (CMS). This standardization ensures consistent implementation across different platforms and applications, which is crucial for interoperability in cryptographic systems.

### Security Properties
SHAKE256 inherits the security properties of the SHA-3 family, including resistance to collision attacks, preimage attacks, and second preimage attacks. The extendable nature of the function does not compromise these fundamental security properties when used appropriately.