The Skein hash proposed for SHA-3 boasts some impressive speed results, which I suspect would be applicable for the Threefish block cipher at its heart - but, if Skein is approved for SHA-3, would this imply that Threefish is considered secure as well? That is, would any vulnerability in Threefish imply a vulnerability in SHA-3? (and thus, a lack of known issues and a general trust in SHA-3 imply the same for Threefish)
Does the security of Skein as a hash imply the security of Threefish as a block cipher?
841 Views Asked by bdonlan At
2
There are 2 best solutions below
1
Matthew Flaschen
On
Disregard my previous answer. I misunderstood the relationship between Skein and Threefish. I still don't think Skein being approved absolutely proves Threefish is generally secure (it's possible Threefish is only secure when used in a particular manner), but it would be an indication.
Related Questions in CRYPTOGRAPHY
- Do I have to randomize key in OpenSSL
- An exception of type 'System.Security.Cryptography.CryptographicException': keyset does not exist
- crypto.BadPaddingException: data hash wrong (EKYC-Response)
- Decrypted string returns "Length of the data to decrypt is invalid"
- Generate signature using private key with OpenSSL API
- Recovering an ECPublicKey from Java to JavaCard
- Proxy tool for CoAP integrated with DTLS
- Using CmsEnvelopedData with CmsSignedData to verify signed data
- Unchecked returned value causing unexpected states and conditions
- SQL-Server Verify SHA2_512 hash procedure
- SagePay Protocol 3.00 Encryption Error with ASP.NET
- Encrypting with PHP; decrypting with CryptoJS
- How can I write a function to recreate the original text obscured here by css magic?
- What encoding does [BouncyCastle] PKCS10CertificationRequest.getEncoded() return?
- Is integer comparison in Python constant time?
Related Questions in THEORY
- What is the best nomenclature for a task that "only happens once" or a task that "repeats"?
- c++ dynamically declared array fails to work
- Finding least Common ancestor in Binary Tree with o(h^2) for a change
- Lower Bound (via testing) vs. Upper Bound (via proof) for Correctness
- Tensor networks vs. Neural networks
- Is the following approach correct to find "Longest Path In a Tree"?
- Standards/specifications for WYSIWYG text editor development
- What are ways a debug statement could "fix" bugs in a program?
- Is it theoretically possible to run software parallel to the OS?
- optimizing 3D in free roaming games
- How to find (a*b)%m for large a and b?
- Is performance of "less/greater than than" better than "less/greater than or equal to"
- Why does tail call optimization need an op code?
- Finding Bridges in a graph C++ (BOOST)?
- What are the good practices in layered programming?
Related Questions in SHA-3
- How to calaculate HMAC-SHA3 in Android using Crypto.js?
- Difference between js and dart to generate an address with a private key
- Crypto++ : Hash generation hangs on windows 10
- Generating HMAC SHA3-512 in netcore2.1
- How to convert an sha3 hash to an big integer in golang
- SHA-3 variable length hash same as truncating normal hash in Java using BouncyCastle
- How to find the original value from the keccak 256 hash value in python?
- php-sha3 not working since upgrade to 5.4
- pysha3 not giving the right answer
- What is the hash method producing 128-bit output (32 hex chars) with lowest collision likelyhood?
- Converting a TRON address to Base58 doesn't work
- SHA-3: Implementation of Theta function according to FIPS-202 not behaving as expected
- Certificate Verify, "error:068000C7:asn1 encoding routines::unknown signature algorithm"
- How to generate SHA3-256 in .NET Core?
- What hashing algorithms can be used for Subresource-Integrity?
Related Questions in SKEIN
- Does the security of Skein as a hash imply the security of Threefish as a block cipher?
- Is there a Skein implementation that works on on AWS Lambda?
- How do I kill a YARN container to test failure scenarios
- xkcd: Externalities
- Dask - new cluster creation fails, HDFS files owed by "dask" user
- Redshift AES Decrypt UDF
- Using Skein for File integrity checking
- Random "/usr/bin/env: 'python3.6': No such file or directory" when working with dask-yarn
- Getting Skein to Work with Python
- Why am I getting different results from different skein hash APIs?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Nope. The security of Skein does not imply the security of Threefish. Putting it positively, if someone finds a weakness in Threefish then this does not imply that Skein is also insecure.
The question however, is quite intersting an applies to other hash functions too. Skein uses a Davis-Meyer construction with some modification. MD5, SHA1 and many other hash functions are also using this Davis-Meyer construction and hence they are in principle based on a block cipher. Just in case of MD5 or SHA1 that block cipher does not have a name and I'm not aware of much research on how suitable these constructs are.
The requirements for a good block cipher and for a good hash function are different. Somewhat simplified, if E is a block cipher and it is not feasible to find two keys K, K' and two messages M, M' such that EK(M) xor M = EK'(M') xor M' then E is suitable for constructing a hash function using Davis-Meyer. But to be secure as a block cipher E would need other properties. E would have to resist chosen-ciphertext attacks, chosen-plaintext attacks etc.
Furthermore, if E is a good block cipher then that does also not mean it gives a good hash function. Microsoft had to learn this the hard way with the hash they used in the XBOX. This hash was based on the block cipher TEA that had a weakness that was insignificant for a block cipher, but proved fatal when used for a hash function.
To be fair, there are some relations between being a good block cipher and being suitable for a hash function. E.g., in both cases differential attacks need to be avoided. Hence some design methods used for construction good block ciphers can be used to construct good hash functions.
Let me also add that some of the proposals for SHA-3 are based on AES. So far, I haven't seen much support for favoring AES based hash functions, just because AES is already a standard. These hash functions are analyzed just like any other SHA-3 proposal.