Author

Topic: SHA-256 All Possible Combination & Breaking the code Hypothesis (Read 415 times)

hero member
Activity: 2114
Merit: 603
Now since Quantum works by learning mechanism that is you give teach it some examples and based on which it can intellectually learn billions of inputs and outputs based on that data.

So one day it could happen that there will some meaning to these seeds based on mathematical calculations. It will need huge computing power may be 100's of teraflops at any given time but it could be possible to know what was done on that seed.
In theory, QC will be able to crack some types of encryption in the future, but this is still theoretical.

Yeah after reading all these answers may be there is harsh reality that we may not be able to decode everything that goes into the SHA.

But,

pointing out to the statement here, there is possibility that the passwords made out of the "text" input can be broken down to original hints. I mean, a text when you put into SHA generator then you will have same input again and again. QC might just able to figure out that constant repetitive inputs giving out similar SHA's.

Its again broader stuff, I am still not able to convey my thoughts properly here. Will look into it again.



Meanwhile I will continue to post beginners guide for Blockchain into parent thread.

Thanks for the help guys.

Will lock the thread now.
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
Part - I : All Possible Combinations

I am pretty sure its hexadecimal property makes it limited to a number of possible combinations. I have made an excel which will describe this number. I guess searching the number online can also give the same results.

A short heads up : SHA will have 64 characters length as shown in the picture below. I am calling it Master Seed[Hypothetical] where all the characters are "0" which is nothing but singularity. A seed where no hexadecimal is there, it's just start point for our reference.

I'm assuming you're trying to find SHA256 collisions?

It looks like you're starting with a zeroed seed, and then flipping 8 bits for each character at a time in each guess, since each character has 8 bits. Maybe instead of working at a character level, you could make guesses for each hash value, there are 8 of them in SHA256. https://en.wikipedia.org/wiki/SHA-2#Pseudocode

The problem with what you're doing is that there are no math properties of characters in a SHA256 digest. There are mathematical properties in the 8 32-bit hash values because a bunch of discrete mathematics operations are done on them to get new hash values. And then they are concatenated together to give the SHA256 hash.

What I mean is that you could make an initial guess of the hash values like this:

(first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):
h0 := 0x6a09e667
h1 := 0xbb67ae85
h2 := 0x3c6ef372
h3 := 0xa54ff53a
h4 := 0x510e527f
h5 := 0x9b05688c
h6 := 0x1f83d9ab
h7 := 0x5be0cd19

And then you can keep one of these hash values constant and repeatedly replace the others with different values using some kind of modulo function. As each of these values are 4 hex numbers long you can verify 4 hex characters at a time. But it makes more sense to verify them at the integer level by storing the target SHA256 hash as an 8 element array of 32-bit ints and comparing integers for equality directly.
legendary
Activity: 3150
Merit: 2185
Playgram - The Telegram Casino
Kaggle ran a competition several years ago in which competitors had to create a model to predict the output of a pseudo-random generator. The prize was $1000 for the 37th place model (divided by the number of entries the team placed), and there were no other prizes.

Thanks for the link, that's pretty funny and very educative. Them rewarding the price money to a completey arbitrary rank makes it even better and drives the point home quite well.



there is a posiblility with a brute force attack's (theory) .The problem how many ASIC do you need  for make it?

More than you could physically fit on earth, requiring orders of magnitudes more electricity than human civilization will be producing in the foreseeable future.

Also you'd need to design and build completely different ASICs then the ones that are currently used in mining. Calculating nonces is literally the only thing these ASICs can and ever will do. For any other purpose you'd need to build different oens from scratch.


If you have the real tools you can make it because the problem  is not the all posible combination is infinite .

If you have interstellar travel you can make it to every star in the Milky Way because our galaxy is not infinite. But for practical purposes it might as well be.
newbie
Activity: 14
Merit: 0
there is a posiblility with a brute force attack's (theory) .The problem how many ASIC do you need  for make it?t(using a pool for looking a private key with one address like target like Pizza's 10k BTC account for example)?.  do you have a SHA-256 when you are assuming that each HEX will not reply you can also use combinationhttps://betterexplained.com/articles/easy-permutations-and-combinations/ then you combine the mumber of hashing of all  BTC miner (of course you need to modified it , like fpga programm for running within one big data database like Apache Spark for handling the big ammount of hashing per second)  with the number of all posiblities(the strong of SHA-256-->1664) and one bynary tree search  for reduce the time to the half. https://algs4.cs.princeton.edu/32bst/  it is a lie that BTC it is unhacking . If you have the real tools you can make it because the problem  is not the all posible combination is infinite . The problem is that one ordinary computer can not go well against that for the N=NP problem http://news.mit.edu/2009/explainer-pnp with normal mathematic can not found never in your life but with algorithms and one huge farm with modified ASIC (for example all the Asic miner just try to solve the puzzle of the  nonce .Instead of that we can modifed it for go against the key of one private account ) . Maybe song like FUD but with this method are you using TNT instead of one hammer against the bitcoin algorithms.
copper member
Activity: 1666
Merit: 1901
Amazon Prime Member #7
To make matters worse, not even machine learning works as described above. Cryptographic hashes by definition output pseudorandom data. There's no pattern or bias to be found and accordingly nothing for a neural network to be learnt.
Kaggle ran a competition several years ago in which competitors had to create a model to predict the output of a pseudo-random generator. The prize was $1000 for the 37th place model (divided by the number of entries the team placed), and there were no other prizes.

Since the competition seems ridiculous, i checked the website and found out the competition only run for 2 days and ended at 1st April.
Are you sure it's not April Fools' Prank? or that's the way you prove that you can't predict output of psuedorandom function?
Lol, it may have been an April fools day prank. They listed a winner, so I presume they actually paid out the person/team that ranked 37th. If it was an April fools day prank, it probably had the additional purpose of getting people to learn what kinds of problems machine learning can actually solve, as Kaggle has many contests for people to solve problems that can be solved with machine learning.
copper member
Activity: 1666
Merit: 1901
Amazon Prime Member #7
Now since Quantum works by learning mechanism that is you give teach it some examples and based on which it can intellectually learn billions of inputs and outputs based on that data.

So one day it could happen that there will some meaning to these seeds based on mathematical calculations. It will need huge computing power may be 100's of teraflops at any given time but it could be possible to know what was done on that seed.

I hate to break it to you but you're mixing up machine learning with quantum computing. Those are two wholly different technologies based on fundamentally different concepts.

To make matters worse, not even machine learning works as described above. Cryptographic hashes by definition output pseudorandom data. There's no pattern or bias to be found and accordingly nothing for a neural network to be learnt.
Kaggle ran a competition several years ago in which competitors had to create a model to predict the output of a pseudo-random generator. The prize was $1000 for the 37th place model (divided by the number of entries the team placed), and there were no other prizes.

I am not quite sure what point the OP is trying to get across. Provided a working RNG is used to generate a seed, you cannot calculate a SHA-256 private key based on a public key, or based on an encrypted message to the private key with current, non-QC technology. In theory, QC will be able to crack some types of encryption in the future, but this is still theoretical.
hero member
Activity: 2114
Merit: 603

The number is limited, but even the entire bitcoin network, which currently generates 2.4x1017 hashes per second, would take 4.8x1059 seconds, or 1.5x1050 centuries to go through all possible values. That is 1000000000000000000000000000000000000000000 times the age of the universe.

And reiterating what @pooya87 wrote, where would you store the event record? There aren't enough atoms on the Earth to store that much information.

In the end, computational power and clever algorithms are not going to do it. You will need to find major exploits in the hash algorithm.


I am astonished with this answer.

That just gave me goosebumps while reading it! Damn!



My theory will end up non-conclusive if this is the case.

But there are still many questions ..

Allow me some time to re-visit them and I will express them right here. Since I have gotten three answers above, they have kicked something in my mind.

Answers to few queries which you guys actually defending may not happen but the answer is right there.

For example, storage of all events that happened, and are happening right now. There got to be some way to extract it from the previous actions. The event did occur and for confirmation purposes original input remains intact I hope so.

Thats jumbling one. I will keep on reading.

This is exciting to discuss it here with cool minds.  Cheesy
legendary
Activity: 4522
Merit: 3426
I apologize for repeating what others have already written ...

...
Next part is we will replace each decimal out of 64 with rest of the characters that is 0-9 and A-F.
...

When you use the word "decimal", it is very confusing. The word you should be using is "digit". "Decimal" is the name of the base-10 number system, just as "hexadecimal" is base-16 and "binary" is base-2.


...
End Result : All possible combinations are fixed to: Possible Combinations : ( 1.1579208923732𝐸+77 ) + 64 of it.
...

An easier way to come up with the result: because there are 64 digits and each digit can have 16 values, the number of possible values is 1664, or, 1.158x1077.


...
Now since Quantum works by learning mechanism...

That is not how a quantum computer works. Regardless, machine learning works by identifying patterns. In theory, SHA-256 hashes have no patterns, so machine learning is not likely to do very well. On the other hand, if there are any patterns, ML might be able to find them.


...
So every seconds N-number of seeds are getting generated.

Over the period of time as per[Part - I : All Possible Combinations] we will end up finishing all the possible combinations in the ROW-1 of excel which are 1.1579208923732 E+77, a limited number!
...

The number is limited, but even the entire bitcoin network, which currently generates 2.4x1017 hashes per second, would take 4.8x1059 seconds, or 1.5x1050 centuries to go through all possible values. That is 1000000000000000000000000000000000000000000 times the age of the universe.

And reiterating what @pooya87 wrote, where would you store the event record? There aren't enough atoms on the Earth to store that much information.

In the end, computational power and clever algorithms are not going to do it. You will need to find major exploits in the hash algorithm.
legendary
Activity: 3150
Merit: 2185
Playgram - The Telegram Casino
My knowledge regarding QC might be tiny but our sole purpose is to have teraflops of computing power. It could be coming from machine learning or i dont know some high tech stuff.

Except that the "sole purpose is to have teraflops of computing power" applies to neither quantum computing nor to machine learning in any meaningful way.

The upside of quantum computing is not that it can compute more, but that it needs to compute less for a very specific set of mathematical operations.

Machine learning is not enabling large amounts of computing power, it is enabled by large amounts of computing power.

There are indeed ciphers and cryptographic hashes which quantum computing might deprecate, but SHA-256 is not one of them for lack of a quantum algorithm that would offer an advantage over classical computation. Maybe we'll find one in the future, but for now that would be pure speculation and absolutely unrelated to anything machine learning.

Applying machine learning to essentially break cryptographic functions by understanding input-output correlations is a cute idea but pointless. If there's any correlation between input and output, than it's not a proper cryptographic function.
hero member
Activity: 2114
Merit: 603

I will get back on this in short.


Now since Quantum works by learning mechanism that is you give teach it some examples and based on which it can intellectually learn billions of inputs and outputs based on that data.

So one day it could happen that there will some meaning to these seeds based on mathematical calculations. It will need huge computing power may be 100's of teraflops at any given time but it could be possible to know what was done on that seed.

I hate to break it to you but you're mixing up machine learning with quantum computing. Those are two wholly different technologies based on fundamentally different concepts.

To make matters worse, not even machine learning works as described above. Cryptographic hashes by definition output pseudorandom data. There's no pattern or bias to be found and accordingly nothing for a neural network to be learnt.


No you are not breaking anything.

My knowledge regarding QC might be tiny but our sole purpose is to have teraflops of computing power. It could be coming from machine learning or i dont know some high tech stuff.

Quote
Cryptographic hashes by definition output pseudorandom data. There's no pattern or bias to be found and accordingly nothing for a neural network to be learnt.

This is what one has to extract from the QC's. We don't need patterns, we need data.

@pooya87 rightly pointed out whether its data that we will need or combinations. I am actually thinking on that now.

This is why I already stated it's not fully understood stuff. I am gonna put up more thoughts in this with some concrete supporting material to get full picture.
legendary
Activity: 3150
Merit: 2185
Playgram - The Telegram Casino
Now since Quantum works by learning mechanism that is you give teach it some examples and based on which it can intellectually learn billions of inputs and outputs based on that data.

So one day it could happen that there will some meaning to these seeds based on mathematical calculations. It will need huge computing power may be 100's of teraflops at any given time but it could be possible to know what was done on that seed.

I hate to break it to you but you're mixing up machine learning with quantum computing. Those are two wholly different technologies based on fundamentally different concepts.

To make matters worse, not even machine learning works as described above. Cryptographic hashes by definition output pseudorandom data. There's no pattern or bias to be found and accordingly nothing for a neural network to be learnt.
legendary
Activity: 3472
Merit: 10611
You see where I am going with this?
yeah but i still find hexadecimal representation more confusing than at least working with bytes (base-256).

Quote
It's always evolving with each input and it's just assumption that it will successful know all the input that was there in the past for a specific seed.
you use the word "know" but knowing comes from either having it stored in memory to look it up or have the capability to compute a ton of hashes to find a collision.
notice that i said collision, since you can never know the message that was hashed ever even if you could find another message that produces the same hash.

Quote
Or may be I need to read more before I can know I am predicting it right.
maybe search a little about different attacks against hash algorithms like preimage and second preimage attack which seems to be what you are describing here.

Quote
But, it will reveal identity of every transaction that happened in the past. Lets say BTC transaction may be.
what do you mean by "identity of every transaction"? SHA256 is not used to hide anything in a transaction. the only thing that you may have been thinking of is the public key or the scripts that are hashed: alongside RIPEMD160 for P2PKH and P2SH and P2WPKH scripts and a single SHA256 for P2WSH scripts. but even if you were able to reverse that (which will always be impossible) you are still left with a public key or a script that requires breaking ECDSA too.
hero member
Activity: 2114
Merit: 603

why did you complicate everything with hexadecimal representation. SHA256, as the name suggests, produces a 256-bit result. each bit can have 2 values (0 or 1) so the total number of combinations are 2256 which is equal to 1.15e+77

No no. I get the point that its about 0 or 1 value. But since our hash is made up of 0-9 and A-F human understandable language we will have to consider the same when we will have to reverse the whole stuff.

I mean, A is 01000001, B is 01000010 and so on. Ok thats fine. That is about computer reading it that way.

But for me its gonna be 0-9 and A-F with the combinations generating a seed for me. And the number of them are as stated earlier.

You see where I am going with this?


Quote
i am not familiar with how QC works but SHA is working with integers (unsigned int to be exact) and there is lots and lots of operations in one round of SHA, i don't think you can use the number of OPs you reported here as a calculating point for computing SHA

Now what I said here was to give input to QC where it understand how SHA is giving out / more or less behaving with the input data based on the algorithm. It's always evolving with each input and it's just assumption that it will successful know all the input that was there in the past for a specific seed.

Quote
you still have to store those hashes and the data that created that hash somewhere. 1.15e+77 byte memory does not exist and that doesn't even consider the size of the data.

Its possible. Since you talking about memory and I am talking about the combination.
Simply this
Code:
"559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd" means letter "A". 
What we need is above combination. Not the one what you saying.

Or may be I need to read more before I can know I am predicting it right.

Quote
it is not "breaking the code" your explanation sounds like collision to me. and if we get closer to the day where it may become a possibility we switch to stronger hash algorithms just like we have before.

Surely we will have far more secure algorithm if that happens.

But, it will reveal identity of every transaction that happened in the past. Lets say BTC transaction may be.
legendary
Activity: 3472
Merit: 10611
Part - I : All Possible Combinations
End Result : All possible combinations are fixed to: Possible Combinations : ( 1.1579208923732𝐸+77 ) + 64 of it.
why did you complicate everything with hexadecimal representation. SHA256, as the name suggests, produces a 256-bit result. each bit can have 2 values (0 or 1) so the total number of combinations are 2256 which is equal to 1.15e+77

Quote
In the future, lets say we have Quantum Computer with 30-qubit power which would make trillions of floating-point operations per second
i am not familiar with how QC works but SHA is working with integers (unsigned int to be exact) and there is lots and lots of operations in one round of SHA, i don't think you can use the number of OPs you reported here as a calculating point for computing SHA

Quote
Teaching the QC (Quantum Computer) to know from where these Seeds generated.
you still have to store those hashes and the data that created that hash somewhere. 1.15e+77 byte memory does not exist and that doesn't even consider the size of the data.

Quote
One day they will come to an end, one day all the combinations will be used for something, from space to enter in paragraph we create a seed. May be with some brilliant theories, with some hypothetical assumptions one could just Break the code?
it is not "breaking the code" your explanation sounds like collision to me. and if we get closer to the day where it may become a possibility we switch to stronger hash algorithms just like we have before.
hero member
Activity: 2114
Merit: 603
This thread is purely on study basis, all thoughts, references and input are welcomed.

I am making this discussion because I am studying blockchain and it's working, being a guy from Pharmacuetical science I am learning it slowly and publishing my work.

Parent Thread Here : Blockchain - Understanding it step by step.



While learning about SHA (Secure Hash Algorithm) it came to my mind that it does have some limitations in terms of how many combination it can have.

We know that it is impossible to break the SHA and get what was original input. Since whenever we have input it will create almost gibberish output of 64 character SHA. Im not concern about its bite size and all since it has got nothing to with input, it's a constant.


Part - I : All Possible Combinations

I am pretty sure its hexadecimal property makes it limited to a number of possible combinations. I have made an excel which will describe this number. I guess searching the number online can also give the same results.

A short heads up : SHA will have 64 characters length as shown in the picture below. I am calling it Master Seed[Hypothetical] where all the characters are "0" which is nothing but singularity. A seed where no hexadecimal is there, it's just start point for our reference.




Next part is we will replace each decimal out of 64 with rest of the characters that is 0-9 and A-F.
We will keep one decimal constant each time and will replace all the other decimals with all the available characters.

For example,
In below image you can see, I have kept first decimal "0" as constant while imagined that rest of the decimals can be replaced 16 times to give out different Seeds.

Below image explains this:



"0" is easy start point hence used it. Now each time one row is completed I will keep the second decimal constant and will again replace all the decimal thus giving another set of seeds.

Doing this with single row we can achieve number of possible combinations which are 1.1579208923732 E+77

This I will keep doing total 64 times X-axis to Y-axis which will give out all the possible combinations.

* Calculation sheet is big so not all of them are fit into one snap. Check the excel for full part.




End Result : All possible combinations are fixed to: Possible Combinations : ( 1.1579208923732𝐸+77 ) + 64 of it.                                                                                                                
                                                                                                               
                                                                                                               



Part - I : Breaking the Code Hypothesis


This is gonna be very difficult for me to explain as it is very complicated to imagine first and then describe my thoughts to you.

I will try to make it very easier so that I deliver what I want to say and get inputs from your side.


Let us consider that we are creating seeds everyday for something. Whether a noob is trying to checkout how SHA works and just type in some gibberish stuff, or there is a data server which securing some password or may be there is gambling site which creating numerous bets and thus seeds for it.

So every seconds N-number of seeds are getting generated.

Over the period of time as per[Part - I : All Possible Combinations] we will end up finishing all the possible combinations in the ROW-1 of excel which are 1.1579208923732 E+77, a limited number!

Now for theoretical base lets just assume all the stuff that needed to have a seed was created by using possible combinations using this ROW only.

In the future, lets say we have Quantum Computer with 30-qubit power which would make trillions of floating-point operations per second[Reference : How Quantum Computer Works] which will be programmed for making scanning through historical events of transaction.

What I mean by this is:

Teaching the QC (Quantum Computer) to know from where these Seeds generated.

May be like this :

For Letters In Capital:
 
Code:
A : 559aead08264d5795d3909718cdd05abd49572e84fe55590eef31a88a08fdffd
B : df7e70e5021544f4834bbee64a9e3789febc4be81470df629cad6ddb03320a5c
C : 6b23c0d5f35d1b11f9b683f0b0a617355deb11277d91ae091d399c655b87940d
D : 3f39d5c348e5b79d06e842c114e6cc571583bbf44e4b0ebfda1a01ec05745d43
E : ------
F : -----
---
--
- So on for all languages !

For Letters In Small:

Code:
a : ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb
b : 3e23e8160039594a33894f6564e1b1348bbd7a0088d42c4acb73eeaed59c009d
c : 2e7d2c03a9507ae265ecf5b5356885a53393a2029d241394997265a1a25aefc6
d : 18ac3e7343f016890c510e93f935261169d9e3f565436429830faf0934f4f8e4
---
--
- So on for all languages !


Now there comes more complicated events from the past as well :

For example,

thousands of bets generating on betting site:

For this lets say algorithm gives you output of some multiplier by using input such as time of bet, how much money was at stake etc.

So ,

Data:

Output : x2.5   Input : Bets Player 120, Bets Value : $ 1200, Bets Time: 12:45, Bets Date: 11/05/2020

Code:
Seed : 86ecde3b95c9d60651374714b1893def8ae51430c31a522ac26e4f8e7a9d8cca

So on for all few million bets !



Now since Quantum works by learning mechanism that is you give teach it some examples and based on which it can intellectually learn billions of inputs and outputs based on that data.

So one day it could happen that there will some meaning to these seeds based on mathematical calculations. It will need huge computing power may be 100's of teraflops at any given time but it could be possible to know what was done on that seed.



Using Permutation-Combinations, Data Sets, Nature of Seed (where it was used), Neglecting and Accepting possibilities to give output, such theorem can be brought together to know everything that was in the blockchain.

This is solely based on number of possible combinations.

One day they will come to an end, one day all the combinations will be used for something, from space to enter in paragraph we create a seed. May be with some brilliant theories, with some hypothetical assumptions one could just Break the code?





Please do take this Hypothesis as beginning of spark and something that is not yet fully studied. I just want to put-forth few possibilities that such mathematical expression can surely be possible which will help us break the code.

I respect the blockchain integrity but since it is extrapolation of what we input and output of a code that we have written ourselves will surely have some black holes.

This is completely open discussion thread, you can either take it seriously if someone has already had idea like this OR you can just have fun reading this and enjoy the impossible future prospects.




**Let me know if I have posted it in right section or not.**


Jump to: