
A traditional encryption algorithm (or encryption) is a function that transforms a message into an apparently random illegible series, using an encryption key that can be reverted (ie, obtain the original message) only by those who know the key. Through encryption, private information can be sent publicly over the Internet without any risk of others having access to it.
SHA is one of the many hash functions. A hash function is like a signature for a text or file. SHA-256 is a hash of 64 hexadecimal digits (a summary, for example bd4526534df7b33772c2f1ee26d97c39ff11379c8848e4e19d74ad849ef66423) almost single of a fixed size of 256 bits (32 bytes). A hash is only calculated in one direction and can not be decoded back.
Wikipedia: The SHA family (Secure Hash Algorithm, Secure Hash Algorithm) is a system of related cryptographic hash functions of the National Security Agency of the United States (NSA) and published by the National Institute of Standards and Technology (NIST). The first member of the family was published in 1993 is officially called SHA. However, today, it is not officially called SHA-0 to avoid confusion with its successors. Two years later the first successor of SHA was published under the name of SHA-1. There are four more variants that have been published since then whose differences are based on a somewhat modified design and increased output ranges: SHA-224, SHA-256, SHA-384, and SHA-512 (calling SHA-2 to all of them) "
In 1998, an attack on SHA-0 was found but it was not confirmed for SHA-1, it is unknown if it was the NSA who discovered it, but it increased the safety of SHA-1.
SHA-1 has been examined very closely by the cryptographic community and no effective attack has been found. However, in 2004, a number of significant attacks were reported on cryptographic hash functions with a structure similar to SHA-1, which has raised questions about the long-term safety of SHA-1.
SHA-0 and SHA-1 produce a 160-bit summary output (20 bytes) of a message that can have a maximum size of 264 bits, and is based on principles similar to those used by Professor Ronald L. Rivest of MIT in the design of message summary algorithms MD4 and MD5.
The resistance of the SHA-1 algorithm was compromised throughout the year 2005. After MD5, among others, was seriously compromised in 2004 by a team of Chinese researchers, the lifetime of SHA-1 was seen for sentence although it is still used more than SHA-2.
The importance of breaking a hash function should be interpreted in the following way: A hash allows you to create a fingerprint, theoretically unique, of a file. A collision between hashes would suppose the possibility of the existence of two documents with the same footprint. That is why cryptographers and cryptographic algorithms are in a constant race to avoid collisions in security applications.
Applications of SHA-256
SHA-2 is used in a large number of security tools and protocols. Some of them are TLS, SSL, PGP, SSH, S / MIME, IPsec and Bitcoin.
In the Bitcoin protocol, SHA-256 is used in the creation of public keys or addresses and in Bitcoin mining.
Creation of addresses or public keys in the Bitcoin protocol with SHA-256
The process of creating a Bitcoin public address starts with a private and public key pair of an ECDSA elliptic curve. The public addresses (for example, 31uEbMgunupShBVTewXjtqbBv5MndwfXhb) that we see when we use a Bitcoin wallet / wallet client have gone through a public key creation and hashing process in which the SHA-256 and RIPEMD-160 hash functions are used to maximize their security.
For example, using the online tool Xorbin to create a hash with SHA-256 with the word "AjedrezDREZ" (without brackets) we obtain this 64-digit hash: bd4526534df8090778b712996d97c39ff11379c8848e4e19d74ad849ef66423.
Bitcoin mining with SHA-256
Bitcoin was the first cryptocurrency that SHA-2 used as part of its proof-of-work scheme. The rise of ASIC mining in Bitcoin has led to the creation of other cryptocurrencies such as Litecoin, which uses Scrypt (another cryptographic algorithm) for the job test. Bitcoin uses the SHA-256 algorithm to verifiably generate the numbers in a manner that requires a predictable amount of CPU effort. Generating a SHA-256 hash with a lower value than the current target solves a block and gives a reward called coinbase (it should not