Sunday, February 17, 2019

Is SHA-3 (Keccak) already broken?

The other day I needed to add SHA-3 (Keccak) support to a project in order to ensure interoperability with some other applications. I actually wanted to add SHA-3 support back when it first came out before I had a specific use for it, but at the time, I looked at some code samples, and it looked way too confusing. However, when looking for code samples the other day, I found some more straightforward implementations, that were clear enough that I could figure out how it worked and write my own implementation.

I’ve implemented over a dozen hash algorithms, for reasons I won’t go into here. One upside to doing this is that I can get a decent understanding of how it works internally so I can be familiar with its pros and cons. Now understanding how SHA-3 (Keccak) works, and comparing it to some other hash algorithms, I’m actually somewhat appalled by what I’m seeing.

Hash Properties Overview

Cryptographic hash algorithms (like the Secure Hash Algorithm family) take a file, document, or some other set of data, and produce a fixed size series of bytes to describe the data. Typically between 20 and 64 bytes. These hashes are supposed to change drastically if even a single bit is altered in the input data that is being hashed. They’re also supposed to ensure it’s computationally difficult to produce data targeting a specific hash.

There’s two main properties desired in a cryptographic hash algorithm:

1) That it should be too difficult to generate two documents that have the same hash. This ensures that if party A shows party B a document, and gets them to approve the document’s hash in some sort of whitelist or signature, that party A cannot use a different document against B’s whitelist or signature that is now also approved without consent of B.

2) That if a certain set of data is whitelisted or signed by a party, that it would be too difficult to generate a different set of data that matches a whitelisted or signed hash.

These two properties are really similar. The only difference is whether you’re targeting a preexisting hash that exists somewhere, or generating two different sets of data that can have any hash, as long as they’re identical.

If the first property is not applicable for a hash algorithm, it may still be usable for cases where you’re not accepting data generated by a third party, but only validating your own. If the second property is not applicable, there may still be some use cases where the hash algorithm can be used, especially if only a certain subset of hashes can have data generated against them which match. However, if either property does not hold true, you generally should be using some other hash algorithm, and not rely on something which is broken.

Classical Cryptographic Hash Algorithm Design

For decades hash algorithms basically did the following:
  1. Initialize a “state” of a particular size, generally the output size, with a series of fixed values.
  2. Break the data up into a series of blocks of a larger particular size.
  3. Take each block and use bit operations and basic math operations (addition, subtraction, multiplication) on its data, ignoring overflow, to reduce the block to a much smaller size, generally the output size, to be merged with the “state”. Each block is processed with some fixed data.
  4. Combine each of those states. This might be done by xoring or adding them altogether, and throwing away any overflow.
  5. Append the size of the data to the final block, producing an extra block if neccesary, performing steps 3 and 4 upon it.
  6. Return the state as the result.

SHA-3 Competition

All hash algorithms sooner or later don’t quite hold up to their expectations. Although this isn’t always a problem. For example, if a hash algorithm is supposed to take 1000 years to brute force a match to an existing hash, and someone figures out an algorithm to do it in 950 years, it doesn’t provide the security it theoretically advertises, but the margin of security is so high, it doesn’t matter.

However, in some recent years, real attacks violating one of the two key cryptographic hash properties which could be performed in hours or even minutes have been found against the popular MD5 and SHA-1 algorithms. These attacks don’t necessarily invalidate MD5 and SHA-1 from every potential use, but it’s bad enough that they should be avoided whenever possible, and should not be relied upon for security.

There’s also an issue with these classical hash algorithms regarding how the states are chained and returned as the hash. It makes it easy for hashes to be misused in some cases. Someone who doesn’t necessarily know what data matches a particular hash, can still calculate the hash of data + data2. This might be an issue in certain naïve usages of these hash algorithms.

Further, all the classical algorithms were shown to not quite hold up to their expectations, even though they’re still considered secure enough for the time being. This led to a desire to create a new series of hash algorithms which have a different structure than the classical ones. Therefore a competition was held to create some new ones and determine the best candidates for future use and to earn the title “SHA-3”.


One of the SHA-3 competition finalists was BLAKE. This hash algorithm was composed of a few different components. Its authors suggested studying BLAKE leaving out each of them, to understand how strong BLAKE was based on a majority of its components. After the competition was over, and after much study, it was realized that one of the components of BLAKE wasn’t necessary, and that the amount of operations overall could be reduced to improve its speed, without really hurting its security. Taking that alongside some interesting ideas introduced alongside Skein and Keccak, two other finalists, BLAKE2 was created. BLAKE2 is one of the fastest cryptographic hash algorithms, and is also considered to be one of the strongest available.

BLAKE2 works as follows:
  1. Initialize a “state” of a particular size, with a series of fixed values, mostly zeros.
  2. Break the data up into a series of blocks of a larger particular size.
  3. Take each block, the block number, and a flag, and use bit operations and addition, ignoring overflow, reducing the size of these in half, to be merged with the “state”. Each block+number+flag is processed with some fixed data.
  4. Combine each of those states.
  5. The flag used alongside the final block is different than all prior blocks.
  6. Return the state as the result.

Theoretically BLAKE2 is stronger than classical hashes, because there is data added to each block that is processed, which cannot be simply influenced by passing data to it. This makes computing data to go from state A to state B more difficult, because you would need a different set of data to do so depending on where the block you’re trying to replace is. Calculating a hash from another hash for data + data2 is more difficult, because of the flag change. The state for data would be different if more blocks were appended to the data.


The actual winner of the SHA-3 competition was the Keccak algorithm. It was chosen because it was really different from classical hashes (not necessarily a good thing), and really fast in hardware implementations.

Keccak works as follows:
  1. Initialize a large “state” of a particular size, with zeros.
  2. Break the data up into a series of blocks of a smaller particular size.
  3. Take each block, and use bit operations, to be merged with the larger “state”. Each block is processed with some fixed sparse data.
  4. Combine each of those states.
  5. The final block has two bits flipped.
  6. Return a small portion of the state as the result.

Like BLAKE2, Keccak aims to be stronger than classical hashes because there is state data larger than the size of the block, which cannot be immediately influenced by data (but can still be influenced). Calculating a hash based upon another with appended data is also difficult, because the result is a truncated state. The bit flips in the final block would help as well.

My thoughts

After implementing Keccak and understanding its design, I became alarmed by how much is missing. The use of pure bit operations make it easier to compute in reverse, aside from a few AND operations. The computation of the final state uses bit flippings inside the block, as opposed to outside beyond it, making it easier to tamper with (although theoretically still difficult). But most importantly, the utter lack of using a block counter or data size anywhere.

Classical hash algorithms make it difficult to insert blocks anywhere in the middle of data and get a matching hash. Even if you were able to compute some data to go from state A back to state A, you could not insert this somewhere, because the data size at the end must then be different, resulting in a different hash. Same goes for BLAKE2 because of its block counter appended to each block it processes. Keccak has absolutely nothing here.

Keccak’s initial state is all zeros, something which every Keccak hash must use. If you could compute data which is a multiple of the block size which when processed in Keccak would go from state all zeros to state all zeros, you have just broken Keccak. You would be able to prepend this data as many times as you want to the beginning of any other set of data, and produce the exact same hash. This would apply to every single Keccak hash produced, it targets all Keccak hashes in existence.

Now, I’m no expert cryptographer. Perhaps Keccak’s bit operations ensure that a state of all zeros could never be produced from it. Maybe there even exists a proof for this which is in a document or article I haven’t seen yet. However, if there is no such proof, then Keccak may be broken much worse than even the classical hash algorithms are. With the classical algorithms that are broken, you generally have to break each hash with a very large amount of computations specific to each hash result you want broken. With Keccak here, once a prefix becomes known, you can just prepend it, no computation necessary.

Improving Keccak

Of course if Keccak is indeed broken in this fashion, it’s not hard to fix. The data size could be processed in the end, or a block counter could be used alongside each block like BLAKE2, the state is certainly large enough to be able to handle it. If one were to change Keccak, I’d also move the bit flippings at the end to occur beyond the block size inside the state, just to make it more difficult to tamper with the final result. In the mean time though, is Keccak, and therefore SHA-3, even safe to use?


For the three kinds of length extension attacks that may exist (prepending, inserting, appending), it appears that classical hashes defeat the first two and have some issues with the third. BLAKE2 defeats them all. Keccak does an okay job against the third, but offers no protection against the first two. A known attack existing against the first would be catastrophic. This is fixable if the algorithm is improved.


Stephan said...

A few points:
- Preimage attack (second on your list) implies collision attack (first on your list).
- Brute forcing a collision is much easier (square root) than brute forcing a preimage.
- SHA1 and MD5 are basically just broken with regards to collision, because their hash lengths is now in the range of bruteforceability. (Hash lengths of 128 bits means collision attack of 64 bits (sqrt(2^128) = 2^64), which is in the range of bruteforceability.)
- Your description of how basic hash algorithms work (namely Merkle-Damgard construction) lacks of an important step: Transformation of the input into a prefix-free string in order to avoid attacks that append inputs.

I have not looked into them in detail yet, but it looks to me as if the new hash algorithms are heavily inspired by how cryptographic random-number generators work. There is an internal state that is larger than the output and you can feed in as much entropy as you want.

Your analysis is very interesting though. I cannot wait to see some interesting comments on this by people who have looked into it more deeply.

insane coder said...

Hi 施特凡,

I linked to the Wikipedia page about preimages and collisions right before my "list" for those that want to learn more about those.

Obviously if you can brute force a hash you can create two data sets with the same hash. However, there may be techniques available that allow the creation of two data sets with the same hash without being required to brute force a hash. People were generating two documents with the same MD5 in a few seconds on a Pentium 4, several years before it became feasible to brute force an MD5 hash with a server farm or stack of GPUs, which usually takes a few minutes.

Regarding the Merkle–Damgård construction, I did not go into full details, as my objective was to focus on the high level aspects and compare and contrast them with BLAKE2 and Keccak. Stuff like compression, sponges, block ciphers, padding, and more was left out on purpose. I intentionally did not cover why HMAC (or other algorithms) does stuff the way it does to avoid prefix and suffix issues.

I have not looked at every new hash algorithm either. However, from what I recall about BLAKE2, the full output is not larger than the internal state (excluding the counters). However, most of the modern hash algorithms offer features to make KDF, MAC, and PRF construction fairly easy. BLAKE2 is built upon ChaCha20 which is a CSPRNG internally.

I too eagerly await the interesting comments. I also hope someone can prove that a prefix block or blocks breaking Keccak is not possible. Although from people I spoke to so far on the topic, they don't think it is.

Bob said...

The simple answer is that the sponge mode of operation, which is the mode used by SHA-3, [guarantees that it cannot be distinguished from the ideal hash with effort less than approximately 2^(c/2) operations](, where c is the capacity of the hash function. This is often called indifferentiability. In SHA-3, c=448,512,8769,or 1024 depending on the output length. This rules out any generic attacks of cost < 2^(c/2) that could break the hash with reasonable probability.

With respect to the core permutation, which needs to approximate a randomly sampled permutation, it does indeed only use xor, rotation and bitwise and. But repeated 24 times, and with a very well thought-out linear layer, this is sufficient to deter all known attacks. In fact, much fewer rounds would be necessary for this hash to be considered secure; 24 rounds constitute an enormous security margin.

So yes, you could find some output that would lead back to the all-zero state. But this would require either an astronomical computation cost (e.g., more than all the energy in the galaxy put together), or an unknown breakthrough in cryptanalysis that would help a highly conservative design (for reference, most conservative block ciphers designed in the 90s, such as AES, Serpent, Twofish, etc, are still as secure as they were then). None of these things seem likely to happen anytime soon.

Stephan said...

@Bob: You cannot say that it is secure because it meets the security definition. That is circular. The questions is: Why and how does it meet the security definition?
I think the Insane Coder is looking for an intuitive understanding /why/ and /how/ the transformation (sponge) function is making this attack hard.

insane coder said...

Hi 施特凡,

You are correct.

However, to go a step beyond that. We all know that ciphers and hashes get weaker over time. People find ways to break rounds in the process. People find exploits for certain aspects. The outcome is that attacks exist that are better than brute force.

At some point, if an attack exists that can be performed by a government or a large corporation with a massive farm, you have to wonder how susceptible your algorithm is. The key here is that your typical algorithm does not have an achilles heel. It's highly unlikely that anyone is going to spend billions of dollars just to break a single digest produced that is used by software people like us are developing. However, if you can spend a billion dollars to break every single digest produced in a particular algorithm that's being used? That might be a feasible target and worth pouring a huge investment into.

4 rounds of Keccak can already be broken with minimal resources. Possibly even 6 rounds. Yet, the Keccak team recently introduced a 12 round variant because they believe that's strong too:

Now if I have two hash algorithms in front of me, both with the same theoretical security margin, but one probably has an achilles heel and the other does not, why would I use the one with the achilles heel?

insane coder said...

While talking this over with some colleagues, a truly scary thought came up.

What if Keccak has a kleptographic backdoor in it?

Dual_EC_DRBG is a random number algorithm that NIST standardized back in the 2000s. Researchers realized its design allowed for a backdoor, where if the constants used by it were computed in a certain way, those who computed those constants could use some secret data generated during those computations to predict the random output. Several years later, Snowden more or less confirmed that indeed this occurred, and the NSA has a backdoor into the algorithm.

Now we look at Keccak. Of all the popular hash algorithms in use, it's the only one which does nothing to prevent prepend and insertion attacks. This could be an oversight by its developers, or it could be just one part of hiding an intentional backdoor to break the hash in certain ways. Although we haven't proven that a zero to zero sequence must exist, we cannot immediately disprove it either (would love to see a proof!).

Now the round and rotation constants look like nothing up my sleeve numbers, but Bernstein, et al., demonstrate that use of nothing-up-my-sleeve numbers as the starting point in a complex procedure for generating cryptographic objects, such as elliptic curves, may not be sufficient to prevent insertion of back doors. If there are enough adjustable elements in the object selection procedure, the universe of possible design choices and of apparently simple constants can be large enough so that a search of the possibilities allows construction of an object with desired backdoor properties. Now this is not a case of elliptic curves, but those round constants for Keccak look really sparse. No other popular hash algorithm uses such sparse constants. The Keccak team describes the algorithm they used to generate their constants, but out of all the possible algorithms used, there is no rationale for why this one was picked over something less sparse.

Now you may say to yourself: But insane coder, so what if skeleton keys to break all instances of Keccak hashes can exist, there is no reason to believe they do and that some entity already has them. So what if the round constants look too simple, that doesn't mean anything. You're just being paranoid!

To this I respond, cryptography is about being paranoid. Consider the amount of research we now have into Post-Quantum-Computing cryptographic algorithms. Quantum Computers that actually can compute and break anything significant are science fiction, and there's a good chance they will never exist in our universe. Yet research is currently pouring tons of resources into this paranoia.

Seriously, why should we use an algorithm which might be compromised when we have other options?

Stephan said...

I found some time to look at the algorithm and at least can answer one of your initial questions: There cannot be a transfer from the zero state to the zero state because of the Iota step in the f function, where constants are added in each round (after the rotations, additions and permutations).

insane coder said...

Hello 施特凡,

Yes constants can be xor'ed in. But those same constants can be xor'ed out.

How does this step prevent the f function from ever outputting all zeros?

Or are you saying how it's added with the 5 variables cycling prevents this?

insane coder said...

Hello 施特凡,

Using the inversion code found here:

We computed a state that when run through the Keccak F function would output all zeros.

These are the 25 64-bit state values that permuted through all 24 Keccak rounds would result in all zeros:

Here it is in C99 if you want to test it:
uint64_t state[25] =

If we know of a series of input a multiple of the block size that would produce this internal state, then we have successfully determined a zero to zero cycle.

We also have some leeway in that there are multiple internal states that would permute to zero. For SHA3-256, there should be multiple solutions where we can change the first 17 values and this will still work.

My colleagues and I have determined that there are multiple 272 byte inputs to SHA3-256 and 216 bytes of input to SHA3-512 that would cause a state cycle.

insane coder said...

Some math regarding this topic:

In Keccak, for every f(x) = y, there exists a non-empty z that f(z||x) = y, and the value of z is actually independent of the values of x and y. There's also more than one possible z, and f(z||z||x) = y as well as f(z||z||z||x) = y and so on.

In the realm of a two block z (a skeleton key) for SHA3-256, the first block of input would need to produce an internal state where the last 8 64-bit integers match the numbers I posted above. Regarding the first 17 integers, whatever the state is from the first block, the input for the second block would be the first 17 integers from the state xor'd against the first 17 numbers from above. This means that what we need for the second block of input here is fully known, and all we care about targeting in our first block are those 8 64-bit values (which matches the security level).

Since we have 2^1088 inputs for the first block, targeting 512 bits, there should exist approximately 2^(1088-512) skeleton keys, which is ~2^576 for SHA3-256. Under NIST's initial desire to lower the security level for SHA3-256, it would have been 2^(1344-256), which is ~2^1088 skeleton keys. These skeleton keys exist independently of the padding bit flips suggested by the initial Keccak proposal and what SHA-3 ending up using.

Apparently this problem was already identified back in 2011, as a colleague of mine just found this paper:
What we know is just more of a simplification of that, and we've already computed the (much) easier half of the problem. The concept which really bothered me in this article is mentioned by the paper: it seems that one property present in older designs (MD5, SHA-1, SHA-2) that we took for granted and there was no attempt to define it precisely as a property (or requirement) for SHA3. Therefore, For all other known cryptographic hash functions (MD5, SHA-1, SHA-2, SHA-3 candidates), there is not known explicit form for a class of second preimages for an arbitrary message M. However, for Keccak one class of second preimages is known and is defined.

Therefore we can conclude that Keccak is an algorithm which allows for backdoors. We cannot assume at this point that anyone has the skeleton keys for this backdoor, but we also cannot assume that no one has a skeleton key.

Troubling to consider is that Keccak has its roots in Panama which as a hash function offered a 2^128 security level against collisions, but using some of its mathematical properties actually has a break in 2^6. It was created and broken several years later by some of Keccak's authors. The highly skilled Keccak team, extremely knowledgeable regarding this kind of novel structure used in these algorithms, improved Panama against these earlier attacks they found, producing Keccak. However, by the same token, they would also have the skill to hide a backdoor in the algorithm. There's a decent chance they have some skeleton keys at their disposal if they created an algorithm which has some mathematical property others are not yet aware of.

Knowing this, why should we use an algorithm which might be compromised when we have other options?

CotsandCuddles said...

Nice article!! really great informative article
Buy Pop It Fidget Toys for Boys and Girls at Price in India

ghostus said...

world of apk free of apk and modded games all arefree and ready to download visit

Free Games
apk world
latest version
updated version

Varun Lekho said...

Emirates ID does lie aged by way of UAE citizens as much a travel record in accordance with a journey inside the GCC Banks and Finance Companies hold taken that a mandatory want in imitation of procedure functions because of savings purposes.
Emirates ID
id status

navah said...

Buy Face Serum Online in india It will help for your skin once you apply to your skin

yadongbizz said...

It’s really a cool and useful piece of info. I’m glad that you shared this useful info with us. Please keep us informed like this. Thanks for sharing. 야동

Please visit once. I leave my blog address below

butterfly said...

It's perfect time to make a few plans for the future and it is time to be happy. I've learn this submit and if I may just I desire to recommend you some attention-grabbing things or advice. Maybe you could write subsequent articles referring to this article. I want to read even more issues approximately it!

Also visit my web page :


butterfly said...

Hi there very cool web site!! Man .. Excellent .. Superb ..

I will bookmark your web site and take the feeds additionally…I am satisfied to search out a lot of helpful information right
here in the publish, we want work out more techniques on this regard, thanks for sharing.

메이저사이트 목록

butterfly said...

Thanks for this helpful article. Looking forward to having my portfolio. You can also read some of my great reviews about Best


butterfly said...

Nice post. I learn something totally new and challenging on websites I stumbleupon everyday. It’s always useful to read content from other authors and use a little something from other websites. |


Unknown said...

Thanks for putting this much efforts to write this content. This is just too good to be shared more. Keep sharing such useful information. where to hire web designer

RD said...

How to Download Project IGI 1 | PC Game
Download Now

SAFE SITES18 said...

This is one of the best website I have seen in a long time thank you so much. 토토

SAFE SITES18 said...

There is visibly a bundle to know about this. I think you made certain good factors in features also. 카지노사이트

Suresh said...

How to get Indian Bank CIF number

Pilot Industries Limited said...

Nice article Thanks you for sharing this.
Calcium Lead Alloys said...

I went over this internet site and I think you have a lot of great info , saved to favorites.

Kirpal Export Overseas said...

Interesting and Amazing blog, Thanks for this useful knowledge-sharing blog.
Henna Powder Hair Colors

Ministry of Cleaning said...

Post renovation cleaning services prevent home owners from any messes and can help establish a healthy new environment.

The following is a list of the benefits of post renovation cleaning:
- Post renovation cleanings prevent homeowners from any messes that may occur on their property, and can help establish a healthy new environment.
- It's important to hire professionals for the cleaning process, as they will leave your home looking like it did before you started working on renovations.

Unknown said...

Nice Post Thanks for sharing . You can also visit our Website if you need any help related to
Furniture Delivery
Courier Services
Car Transport
Man And Van
Motorcycle Transport

Unknown said...

I am Jeevika. I love to write articles and blogs . Hope you will enjoy reading them. I am giving the list of my blog here so please visit - 
Cat Water Fountain
Cat Litter Box Furniture
Can Cats Eat Avocado
Can Cats Eat Peanut Butter
Can Cats Eat Avocados

vrdigitalau said...

SEO services Sydney are important for any business that wants to reach a wider audience online. By using the services of a professional SEO company, you can improve your website's ranking in search engine results pages, helping you to attract more customers and boost your bottom line. If you're looking for an SEO company in Sydney, be sure to get in touch with us today - we'd be happy to help!

Anonymous said...

Thanks for provide great informatic and looking beautiful blog, really nice required information & the things i never imagined and i would request, wright more blog and blog post like that for us. Thanks you once agian. math tutoring

Essien said...

Nice posts! I have found this site educative and inspiring, thanks for the amazing write-up, nice post keep it up. Also visit my site GST 107 past questions & solutions pdf format

Bella Swan said...

Keccak's initial state is all zeros, something which every Keccak hash must use. If you could compute data which is a multiple of the block size which when processed in Keccak would go from state all zeros to state all zeros, you have just broken Keccak.
You are also read more cryptocurrency to buy now said...

I really like your blog it's really informative. Keep sharing this kind of blog. has proved to be one of the consummate providers in the industry of assignment help in UK. We provide Oxford assignment help with assignment writing covering almost all existing areas of study ranging from management, arts, mathematics, physics, to nursing as well. Our services rest on two basic principles being quality and authenticity and as soon as you deliver your request; our assignment experts will guide you with a solution within the provided deadlines. 

Assistance With Other Course Assessments

BSBPMG522 Assessment Answer || BSBSUS401 Assessment Answer || BSBWHS501 Assignment Solution || CHC30113 Assessment Answer || CHCDIV002 Assessment Answer || CHCECE007 Assessment Answer

Visit Website said...

Good Imformation Sir
KGF Full Movie Hindi

बिजली का आविष्कार किसने किया था

Attack Movie Download

छत्रपति संभाजी महाराज जीवनी

Hirak Kalita said...

Thanks for the best info, really helpfulNews Site

didi said...

Thanks for sharing with us

pagalmix said...

Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.

Bro. Jay said...

Thanks for sharing. Telugu Christian Lyrics

Trend burner said...

Daily cricket news and updates on crypto market make sure check out

Online Cricket Score said...

Odisha Govt Job Anganwadi new Vacancy 2022

Manas Baraiya said...

Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.
SSRMovies Hindi
moviesflix bollywood
YoMovies Live
ORGMovies Bollywood


I’m so lucky that I have got this site that imparted me the high quality of information easily. 바카라사이트

brightermeal said...

Excellent post. Keep posting such kind of information on your page.

brightermeal said...

This is the most frequently utilized adaptation, in view of its crazy elements. You can download GBWhatsApp 10.20 most recent adaptation from the connection beneath.

WhatsApp Messenger MOD APK

shayari said...

thank you..

ArshineFeed said...

Arshine Feed Biotech Co.,LTD. (Arshine Feed) is the wholly owned subsidiary of Arshine Group. Our products cover a wide range of feed additives, such as Amino acids, Vitamins, Probiotics, Enzymes, Antiseptic, Antioxidant, Acidifier, Neutraceuticals and Coloring Agents etc. The company is committed to improving the nutritional intake for Broilers, Layers, Swines, Ruminants as well as fish-prawn-crab through scientific breeding programs and formulations.

Health Vetra said...

Thanks For Sharing Your Knowledge. For More News See Tech Waping

Key to Success said...
This comment has been removed by the author.
Key to Success said...

Good Article - The Reality of the “Law of Attraction” - Open your mind

SAFE SITES18 said...

Greetings! Very helpful advice in this particular article. 온라인바둑이

Nischay Sabharwal said...

Thanks for sharing this valuable content

jhoni said...

Hy every one I am jhony and work in web designing community I have a little problem with website developing to add meeting tab on top how can I add that.

Du Topic said...

kgf chapter 2 full movie download filmyzilla

Rosy rose said...

I am incapable of reading articles online very often, but I’m happy I did today. It is very well written, and your points are well-expressed. I request you warmly, please, don’t ever stop writing.Do you want to buy the best Chromebook for artists? Below we have picked out the top 9 to help you with your decision. Click the blue buttons for more info on 먹튀사이트신고

casinositeone.JDS said...

wow, its a incredible information. thanks for sharing. 카지노사이트

casinositeone.JDS said...

i think this article would be nice if you put some image to help describing the topic. 카지노사이트

casinositeone.JDS said...

Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article. 카지노사이트

casinositeone.JDS said...

I will make sure to be reading your blog more. 카지노사이트

Karl Marx said...

This is nice but I prefer to play games like total conquest, beyblade rivals etc in my free time. If you like total conquest game, download mod apk now.

Barbara said...

Download mortal kombat and enjoy playing the game

Tubewell Steel & Engg.Co. said...

It's a really informative post, You may also check out HDPE Pipe Manufacturers in India, HDPE Pipe PE 80 or visit Tubewell Steel & Engg.Co

Movie house said...
This comment has been removed by the author.
Yellow Dyes said...
This comment has been removed by the author.
ireland assignment help said...

I have been reading your blog posts for month and its been the greatest thing I am doing in past few months. keep up the good work for sharing the information. masters thesis writing help

Online Cricket Score said...


Emblix Academy said...

Digital Marketing course in Hyderabad – At EMLIX Academy, we offer a complete Digital marketing course that is perfect for students and working professionals. They cater to their students with a number of modules in place to prepare them for the needs and wants of the digital marketing field. By using the Internet and rising prevalence of mobile devices, we can aim to improve the employment rates in our country. EMBLIX Academy claims to be one of the top Digital Marketing Training institutes in Hyderabad, Academy aspires to be a pioneer in the world of digital marketing. They operate regular and training sessions all over Hyderabad Digital Marketing Training in Hyderabad

f60host said...

It's a very informative post; you should also checkout our product What Are Subdomains?, on F60 Host

Divya Mani said...

Lassi N Shakes is Top 10 Burger Franchise in India that offers tasty shakes and more with a fine dining experience. The main menu includes patties, cheese-stuffed burgers, vegetarian and non-vegetarian burgers, sandwiches that are loaded said...

Thanks for your post. WATCH WRESTLING

Anand said...

Loved it man!!! just superbly written...
Excellent writing skills, worth reading. Keep it up, also visit our website for more said...

Hi, I read your blog post and your blog post is great.
Estrenos Doramas

ireland assignment help said...

You supply some vital information on your blog and am glad that I stumble on this blog. I will definitely come back to read more of your content. help in assignment writing

Kepala Bergetar said...

Tonton Melayu Drama Kepala Bergetar Dan Download Malay Telefilem. Kbergetar Watch Online Tonton Live Episod Drama Video.

Ajay said...

Are you looking for a Hacking Course in Hindi? We have the perfect course for you! Learn everything you need to know about hacking, from the basics to the advanced techniques. Enroll now and get started today!

Unknown said...

You are working great on the content and quality of this Digital Evrima at the same time. said...
This comment has been removed by the author.
Online Cricket Score said...


Online Cricket Score said...


Online Cricket Score said...

Cricket Match Live

Sachin said...

Visesh Infotech Share Price Target 2022, 2023, 2024 , 2025 and 2030
If you want to invest in Visesh Infotech Limited then you will get your answer in this post. we will also discuss the strengths and weaknesses of Visesh infotech Ltd.

Share price target

Kriti Singh said...

Akmakeovers is the leading Airbrush Makeup Artist in the Dehi NCR. We offer a wide range of services to our clients, including wedding makeup, special event makeup, and more. Our team of highly skilled and experienced makeup artists will help you look your best on your big day. Contact us today to book a consultation.

Health Vetra said...

Get the latest news related to Government Jobs, PM Kisan, Laxmi Bhandar, PMJay, UP Scholarship Status, and many more government schemes only on Tech Waping.


Best Amazing Tools For YouTube Video Download.You can download any videos in just two simple steps.You can download likes movies,songs anything you want.First of all you can visit then search any video if you want and u can see download option.

Click Now

Radhika Sharma said...

The Cube Orange Flight Controller Set is a new Pixhawk flight controllers, Equipped with High Performance H7 Processor.Situational Awareness by Integrated ADS-B

Windows live support online said...

With Office 365, businesses can access their documents and tools from anywhere, at any time, which can help increase productivity. Additionally, the suite includes collaboration tools that allow team members to work together on documents in real time, which can further increase productivity.

myassignmenthelp21 said...

Great Post
Are you feeling overwhelmed with online exams in Singapore? Let My Assignment Help Singapore take the burden off your shoulders with our online exam help Singapore services. Our experienced online exam helpers are available to assist you with any online exam, ensuring that you achieve the best results possible. With our affordable prices and fast turnaround times, you can trust us to provide you with the best online exam help in Singapore. Contact My Assignment Help Singapore today to learn more.

Malaysia Translators said...

Nice post
Malaysia Translators is proud to be the leading translation company in Malaysia, offering a range of language services to meet the diverse needs of their clients. From legal and medical documents to marketing materials and website localization, their team has the expertise to handle any translation project.

Digital marketing company in Dubai said...

This is an informative post. You have done a good job and we can see the effort you have taken. Keep up the good work. Custom website design in Dubai

Alghubaiba said...

Great post on baseboard installation ! I appreciate the clear and concise instructions you provided. Your step-by-step guide is easy to follow and makes the installation process seem less intimidating. I also appreciate the tips you included, such as measuring twice and using a coping saw for tight corners. Keep up the great work!안전놀이터 said...

I appreciate your post thanks for sharing the information. 안전놀이터

CV Writing Services said...

Great post offers exceptional CV writing services in Ireland. Our dedicated team of professionals will craft a captivating and professional CV that highlights your skills and experience. Get noticed by employers with our expertly written CVs tailored to your needs.

Wilson said...

Thanks for sharing a good quality content. I am really gained a more information. Keep sharing like this important topics...
litigio de divorcio de nueva jersey
how to get a protective order in virginia

Pema wangmo said...

Thank you so much for sharing nice content. For business growth and improve, check; Digital Marketing Institute in Noida

zairkhan said...

Your blog is a treasure trove of knowledge and inspiration. Thank you for consistently delivering valuable content that keeps me engaged and informed.

Jameshleo said...

great post thanks for sharing, We provide an assignment helper in malaysia who is highly experienced and knowledgeable. We guarantee the highest quality of work and quick delivery within the deadline. Our prices are also competitive and budget-friendly. One of the key factors that set assignment helpers in Malaysia apart is its commitment to hiring only native speakers for essay writing. This ensures that the content produced is not only grammatically accurate but also culturally relevant and well-structured. Native speakers have an innate understanding of language nuances and can effectively convey ideas in a way that resonates with the target audience.

Carla Strasser said...

ver chuan cua may Xerox IV 2060 s kich chin tr cho W

Carla Strasser said...

Calling all bargain hunters! Use our coupon to pick up a 99 cent domain and collect everything you need to get your idea online today. Discover a variety of hosting plans to suit every budget, and affordable tools to help your website thrive. newestcarsmodel

Carla Strasser said...

Equipped with a powerful AMD Cezanne Octo Core Ryzen 7 5800H processor, the Lenovo Yoga Slim 7 Pro 16ACH6 (82QQ0035EN) multimedia laptop with a 16-inch IPS 2.5K High Definition 16/10th touchscreen display with better-than-average


Richard said...

Thanks for the support, good blogg for the support of the best site for legal servicesWhat Is the Penalty for Reckless Driving in Virginia

TubeTec Piping Solutions said...

This is a very useful blog. TubeTec Piping Solutions is the best Carbon Steel Pipe Manufacturers in India

Richard said...
This comment has been removed by the author.
Ely Girl said...

The 8171 Ehsaas NADRA Gov Pk program is a commendable initiative that aims to provide financial assistance to those in need, reduce poverty, create employment

Ehsaas Program Registration online
8171 Ehsaas Program

Repute Agency said...

Wonderful Post.
Best digital branding company in coimbatore
digital marketing companies Coimbatore
best digital marketing companies in coimbatore

Shubham raj thakur said...

Join Top Css web design course in delhi

hastenchemical said...

Fly Ash in Texas is a widely used byproduct of coal combustion, commonly employed in construction projects to enhance concrete durability and reduce environmental impact.

Anna Thomas said...

Diving into the intricacies of multiple hash algorithms not only offers valuable insights into their inner workings but also equips you with a comprehensive understanding of their strengths and weaknesses. Similarly, when considering office refurbishment, a deep understanding of the process and options empowers you to make informed decisions, ensuring a workspace that aligns perfectly with your needs and goals. It's all about knowledge and expertise contributing to better outcomes in various domains.

Charbonnel said...

Adding SHA-3 support to your project is a smart move for ensuring compatibility. It's great that you found clearer code samples this time around, making implementation easier. Now, enjoy the sweet reward of your efforts with a delectable truffle in Jeddah to celebrate your coding success!

Barber Shop said...

Adding SHA-3 support to a project for interoperability is like a office renovation in the tech world, ensuring compatibility and seamless integration across systems. Both actions aim to modernize and adapt, fostering cohesion and efficiency in their respective domains.

new evolution inter deco said...

Exploring new technology integration, like SHA-3 support, is a proactive approach to ensuring future compatibility. In a similar vein, if you're looking to upgrade and modernize your workspace, consider the expertise of fit out company abu Dubai like Danube Home Fitout Abu Dhabi for a seamless transformation of your office environment.

Barber Shop said...

Adapting your project for interoperability is essential, just as choosing the Best Barber Shop in Canada is crucial for ensuring your grooming needs are met with precision and excellence. Both endeavors require attention to detail and expertise to achieve the desired results.

new evolution inter deco said...

Adding SHA-3 support for interoperability is crucial, much like collaborating with fit out contractors Dubai to ensure your workspace is designed to meet your specific needs and standards. Both endeavors aim to enhance efficiency and compatibility in their respective domains.

MNK said...

Helpful article

BroadMind - IELTS coaching in Madurai

abigailuna said...

As of September 2021, SHA-3 (Keccak) remains secure and robust as designed by the National Institute of Standards and Technology (NIST). However, cryptographic algorithm security is subject to ongoing research, and potential vulnerabilities may emerge over time. To stay updated on SHA-3's security, refer to the latest reports, research, and advisories in cryptography to ensure the safety of your applications and systems. Divorcio Barato Nueva York

Curt Renwick said...

Nice Blog!! Thanks for sharing this useful information. "Virtual Public Speaker For Hire

Bus Rental Dubai said...

Your passion for this topic is evident in your writing and it's truly contagious and motivating!
Bus Rental Ajman

Marielucas said...

Sending Free Christmas Cards is not just a tradition; it's a collective effort to wrap the world in the spirit of giving, sharing, and creating magical moments.
Funny Birthday Cards