Problem 44924. Create State Array for initiating SHA-3-224 Hash
Create binary represented state array (as the initial input to the sponge function (f)) from any length character array (N) with width (b=1600), digest length (d=224) and lane size (w=64) using SHA-3 Standard:
https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf
Convert character array to binary representation using UTF-8 value of each character. Output state array will be a matrix with size (5,5,64). Padding in accordance with the standard is required. XOR of the rate bits (r) with the padded message stream is required (see figure 7, page 18). Just the first 1600 bit input to the first function (f) represented as a state array (see section 3.1.2) is required for the output.
Solution Stats
Problem Comments
-
2 Comments
Alfonso Nieto-Castanon
on 23 Aug 2020
this looks like a very cool problem, perhaps a bit of a summary description of the standard (c.f. 27-page doc) may help make it a bit more enticing for curious but non-crypto-oriented people like myself?
David Hill
on 19 Oct 2020
Added some references to the problem description.
Solution Comments
Show commentsGroup

Advanced Cryptography Algorithms and Mathematics
- 21 Problems
- 0 Finishers
- Determine RSA keys (public and private) given two prime number character strings (p and q)
- Create State Array for initiating SHA-3-224 Hash
- RSA encryption using public key
- RSA decryption
- Mask Generation Function (MGF1) for PKCS #1 Standard utilizing Optimal Asymmetric Encryption Padding for RSA Cryptography
- Optimal Asymmetric Encryption Padding of message for RSA Cryptography
- Optimal Asymmetric Encryption Padding decoding of message for RSA Cryptography
- Find R*Rp-N*Np=1 given gcd(R,N)=1
- Montgomery Reduction Algorithm (REDC)
- Inverse Number Theoretic Transform (iNTT)
- Number Theoretic Transform (NTT)
- Montgomery Multiplication
- Output the Montgomery Form of the Input Matrix
- RIPEMD160 Hash
- SHA256 Hashing
- Binary Array to Hex Representation
- String to Binary Representation
- AES-256 KeyExpansion()
- AES SubBytes() Transformation
- Elliptic Curve Cryptography (ECC) Point Addition
- Obtain the Bitcoin address associated to a given private key
Problem Recent Solvers2
Problem Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!