# Idea behind internal SHA-2 functions

In the SHA-2 family, specifically SHA-256, there are functions called Sigma0 and Sigma1, which look like this:

Sigma0(b, c, d)
{
Return (b & c) ^ (~b & d);
}


I don't really understand the logic or idea behind this. I looked on the internet a lot, but I couldn't find an answer to my question.

So does anybody know why they chose this specific function? Is it part of some secure block cipher or permutation algorithm? I couldn't find anything about the Ch and Maj online, nor what I'm asking now.

• That is too deep. Check this question What makes SHA256 secure?. Dec 31, 2019 at 16:53
• Do you mean I have to find another place to ask? I don't really know any... Dec 31, 2019 at 18:20
• Not exactly, The functions are must be considered all together to achieve, the avalanche, confusion, and diffusion... Dec 31, 2019 at 18:32
• Analyze here Dec 31, 2019 at 18:46
• Thanks, so they are just build to be as random as possible and all of them together are "random enough", right? Jan 1, 2020 at 9:27