Bitcoin Forum
September 17, 2019, 03:31:37 AM *
News: Latest Bitcoin Core release: 0.18.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: 1 2 [All]
  Print  
Author Topic: Can you Jerry-Rig your Rig?  (Read 2270 times)
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:02:26 PM
 #1

Hi,

I don't know much about coding and therefore do not exactly know how programs like the Bitcoin client and GUIminer operate.  So, here is my question...

Is there any way to essentially tell your computer to only hash out low values so that it solves the block quickly?  So, instead of random guessing, you're narrowing the parameters under which it can guess even further, thereby resulting in a more likely chance to solve the block? 

By the way, in the odd event that this is possible, that nobody has thought of it yet, and that someone decides to implement it for their gain, I want part of the consistent 50-BTC payout  Grin

1568691097
Hero Member
*
Offline Offline

Posts: 1568691097

View Profile Personal Message (Offline)

Ignore
1568691097
Reply with quote  #2

1568691097
Report to moderator
1568691097
Hero Member
*
Offline Offline

Posts: 1568691097

View Profile Personal Message (Offline)

Ignore
1568691097
Reply with quote  #2

1568691097
Report to moderator
1568691097
Hero Member
*
Offline Offline

Posts: 1568691097

View Profile Personal Message (Offline)

Ignore
1568691097
Reply with quote  #2

1568691097
Report to moderator
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1568691097
Hero Member
*
Offline Offline

Posts: 1568691097

View Profile Personal Message (Offline)

Ignore
1568691097
Reply with quote  #2

1568691097
Report to moderator
1568691097
Hero Member
*
Offline Offline

Posts: 1568691097

View Profile Personal Message (Offline)

Ignore
1568691097
Reply with quote  #2

1568691097
Report to moderator
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
July 13, 2011, 10:08:20 PM
 #2

The output of the hashing is unpredictable, you can't know what will change in the output if you change somthing in the input.

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:13:56 PM
 #3

The output of the hashing is unpredictable, you can't know what will change in the output if you change somthing in the input.


What's the relationship between the input and the output?  Isn't there some kind of determination of a certain output given by a certain input?  Will a given input always produce the same output?  My apologies, I don't quite get it. 

In another thread that I read, I envisioned it as a 'guess-the-number' game.  So, it'd be like if I told you to "guess a number between 1 and a million" where the only acceptable values are 0, 1, 2, and 3, and then after a difficulty increase, the only acceptable numbers are 0, 1, and 2, and so on.  There's no way to tell your computer to hash out all 0's for example?

grue
Legendary
*
Offline Offline

Activity: 2058
Merit: 1208



View Profile
July 13, 2011, 10:17:10 PM
 #4

In another thread that I read, I envisioned it as a 'guess-the-number' game.  So, it'd be like if I told you to "guess a number between 1 and a million" where the only acceptable values are 0, 1, 2, and 3, and then after a difficulty increase, the only acceptable numbers are 0, 1, and 2, and so on.  There's no way to tell your computer to hash out all 0's for example?
no, thats not how hashing works. go to the wiki

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
TiagoTiago
Hero Member
*****
Offline Offline

Activity: 616
Merit: 500


Firstbits.com/1fg4i :)


View Profile
July 13, 2011, 10:18:17 PM
 #5

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

(I dont always get new reply notifications, pls send a pm when you think it has happened)

Wanna gimme some BTC/BCH for any or no reason? 1FmvtS66LFh6ycrXDwKRQTexGJw4UWiqDX Smiley

The more you believe in Bitcoin, and the more you show you do to other people, the faster the real value will soar!

Do you like mmmBananas?!
grue
Legendary
*
Offline Offline

Activity: 2058
Merit: 1208



View Profile
July 13, 2011, 10:20:00 PM
 #6

What's the relationship between the input and the output?  Isn't there some kind of determination of a certain output given by a certain input?  Will a given input always produce the same output?  My apologies, I don't quite get it. 
this isn't elementary algebra

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:27:49 PM
 #7

What's the relationship between the input and the output?  Isn't there some kind of determination of a certain output given by a certain input?  Will a given input always produce the same output?  My apologies, I don't quite get it. 
this isn't elementary algebra

No shit.

the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:32:07 PM
 #8

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question. 

bcpokey
Hero Member
*****
Offline Offline

Activity: 602
Merit: 500



View Profile
July 13, 2011, 10:37:26 PM
 #9

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question.  

Your questions are rather odd, I believe the suggestions to read up on hashing make sense. Bitcoin relies on SHA256, a strong cryptographic protocol, which wouldn't be very strong if you could simply break it by guessing easy to solve things.

The answer to why is more or less answered there, because it was designed to be difficult.
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:47:29 PM
 #10

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question.  

Your questions are rather odd, I believe the suggestions to read up on hashing make sense. Bitcoin relies on SHA256, a strong cryptographic protocol, which wouldn't be very strong if you could simply break it by guessing easy to solve things.

The answer to why is more or less answered there, because it was designed to be difficult.

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
July 13, 2011, 10:49:59 PM
 #11

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question. 

Your questions are rather odd, I believe the suggestions to read up on hashing make sense. Bitcoin relies on SHA256, a strong cryptographic protocol, which wouldn't be very strong if you could simply break it by guessing easy to solve things.

The answer to why is more or less answered there, because it was designed to be difficult.

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

If you can reverse a cryptographic hash, you will literally win the Internet.

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
grue
Legendary
*
Offline Offline

Activity: 2058
Merit: 1208



View Profile
July 13, 2011, 10:52:29 PM
 #12

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.
*sigh*
http://en.wikipedia.org/wiki/Avalanche_effect

or do you want me to explain the entire sha-1 process?

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:53:51 PM
 #13

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question. 

Your questions are rather odd, I believe the suggestions to read up on hashing make sense. Bitcoin relies on SHA256, a strong cryptographic protocol, which wouldn't be very strong if you could simply break it by guessing easy to solve things.

The answer to why is more or less answered there, because it was designed to be difficult.

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

If you can reverse a cryptographic hash, you will literally win the Internet.

Sounds like a hobby worth my time  Cool

the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 10:57:43 PM
 #14

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.
*sigh*
http://en.wikipedia.org/wiki/Avalanche_effect

or do you want me to explain the entire sha-1 process?

Sorry to take up too much of your time Oh Guru of Ultimate Wisdom.  You know, it's people like you who will turn people away from Bitcoin.  Not everyone is a techno-ultra-nerd extraordinaire. 

error
Hero Member
*****
Offline Offline

Activity: 588
Merit: 500



View Profile
July 13, 2011, 10:58:34 PM
 #15

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.
*sigh*
http://en.wikipedia.org/wiki/Avalanche_effect

or do you want me to explain the entire sha-1 process?

Sorry to take up too much of your time Oh Guru of Ultimate Wisdom.  You know, it's people like you who will turn people away from Bitcoin.  Not everyone is a techno-ultra-nerd extraordinaire. 

Wait, you aren't a techno-ultra-nerd extraordinaire, and you propose to break one of the world's strongest hash algorithms? I'm utterly confused now.

3KzNGwzRZ6SimWuFAgh4TnXzHpruHMZmV8
bcpokey
Hero Member
*****
Offline Offline

Activity: 602
Merit: 500



View Profile
July 13, 2011, 10:59:14 PM
 #16

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question.  

Your questions are rather odd, I believe the suggestions to read up on hashing make sense. Bitcoin relies on SHA256, a strong cryptographic protocol, which wouldn't be very strong if you could simply break it by guessing easy to solve things.

The answer to why is more or less answered there, because it was designed to be difficult.

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

I don't mean to be a jerk, but cryptography is one of the most complex mathematical subjects on the planet currently. The reason why the wiki is full of difficult to understand terminology is because it's really difficult to understand, even just the concept. It sounds like you are imagining something simple like a code that maps AB...Z:ZY...A, so if you know you're looking for the word banana, you put in abcdef and get zyxwvu, and you can just keep playing with the input until they match up, that is wrong, and probably the first thing cryptographers worked on making sure didn't happen, because brute force would make that a simple process. As I said, your question "why won't it work" is because a lot of incredibly intelligent people worked really hard to make sure that such things wouldn't work.
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 11:00:58 PM
 #17

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.
*sigh*
http://en.wikipedia.org/wiki/Avalanche_effect

or do you want me to explain the entire sha-1 process?

Sorry to take up too much of your time Oh Guru of Ultimate Wisdom.  You know, it's people like you who will turn people away from Bitcoin.  Not everyone is a techno-ultra-nerd extraordinaire. 

Wait, you aren't a techno-ultra-nerd extraordinaire, and you propose to break one of the world's strongest hash algorithms? I'm utterly confused now.

Yes, cause I'm fucking smart.  And I'm currently playing DDR for cardio which is why I'm postponing wikisearch  Cheesy 

the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 11:07:18 PM
 #18

like i said, you can't know what effect a change in the input will have in the output; the number you're guessing is part of the input, you can't just say you got an output without showing the inputs you used to get there

Yes, I heard you.  I believe 'why?' is a good follow up question.  

Your questions are rather odd, I believe the suggestions to read up on hashing make sense. Bitcoin relies on SHA256, a strong cryptographic protocol, which wouldn't be very strong if you could simply break it by guessing easy to solve things.

The answer to why is more or less answered there, because it was designed to be difficult.

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

I don't mean to be a jerk, but cryptography is one of the most complex mathematical subjects on the planet currently. The reason why the wiki is full of difficult to understand terminology is because it's really difficult to understand, even just the concept. It sounds like you are imagining something simple like a code that maps AB...Z:ZY...A, so if you know you're looking for the word banana, you put in abcdef and get zyxwvu, and you can just keep playing with the input until they match up, that is wrong, and probably the first thing cryptographers worked on making sure didn't happen, because brute force would make that a simple process. As I said, your question "why won't it work" is because a lot of incredibly intelligent people worked really hard to make sure that such things wouldn't work.

Not quite what I was imagining -- I suspected it wouldn't be that easy.  But I was utilizing the forum for quick, to the point, yet general-enough information that it would help narrow my searching.  I've been involved with Bitcoin for like 2 weeks.

nebiki
Sr. Member
****
Offline Offline

Activity: 700
Merit: 250



View Profile WWW
July 13, 2011, 11:08:11 PM
 #19

What's the relationship between the input and the output?  Isn't there some kind of determination of a certain output given by a certain input?  Will a given input always produce the same output?  My apologies, I don't quite get it. 
this isn't elementary algebra

hmmm... i'm not quite sure about that. our maths prof always goes like "as you've known since grade 9 ..." when talking about some shit you never heard before. for people like him it probably is elementary algebra.

       ▄██▄
       ▀██▀
  ▄            ▄
 ███████████  ███
  ▀            ▀
 ▄               ▄
███  ██████████████
 ▀               ▀
 ▄               ▄
██████████████  ███
 ▀               ▀
  ▄            ▄
 ███  ███████████
  ▀            ▀
       ▄██▄
       ▀██▀

H A R A
▬▬▬▬▬▬▬▬▬▬▬▬
           ███
        █████████
     ███████████████
  █████████████████████
█████████████████████████
██  █████████████████████
██     ██████████████████
██        ███████████████
██          █████████████
██          █████████████
███         █████████████
  ████      ███████████
     ████   ████████
        █████████
           ███





██████
███▀▀▀
███
███





███
███
███▄▄▄
██████

.GLOBAL & TRANSPARENT..
.BLOCKCHAIN-BASED..........
.DATA EXCHANGE................

██████
▀▀▀███
   ███
   ███





   ███
   ███
▄▄▄███
██████
TWITTER
GITHUB
REDDIT
FACEBOOK
BITCOINTALK
LINKEDIN
casascius
Mike Caldwell
VIP
Legendary
*
Offline Offline

Activity: 1386
Merit: 1044


The Casascius 1oz 10BTC Silver Round (w/ Gold B)


View Profile WWW
July 13, 2011, 11:10:14 PM
 #20

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

With a hash function there is no discernible pattern between the input and the output.  Hash functions were made complicated on purpose.  The only way to find out what the output for any given input is, is to run the function on it and see what comes out.  By design, even a minor change to the input always results in a drastic change to the output.

The algorithm cannot be done in reverse.  Google it, find the implementation, and you'll see why.  Too many steps "throw away" bits of intermediate information along the way - information you would need to do the algorithm in reverse.  This is done repeatedly during each hash, and is intentional.

There isn't a way to get the input from an output - except by guessing inputs by trial and error and calculating the output and seeing if it matches the desired result.  

Companies claiming they got hacked and lost your coins sounds like fraud so perfect it could be called fashionable.  I never believe them.  If I ever experience the misfortune of a real intrusion, I declare I have been honest about the way I have managed the keys in Casascius Coins.  I maintain no ability to recover or reproduce the keys, not even under limitless duress or total intrusion.  Remember that trusting strangers with your coins without any recourse is, as a matter of principle, not a best practice.  Don't keep coins online. Use paper or hardware wallets instead.
bcpokey
Hero Member
*****
Offline Offline

Activity: 602
Merit: 500



View Profile
July 13, 2011, 11:10:40 PM
 #21

Well fair enough. Grue gave a good link on a general concept to explain why it wouldn't really work, so all is well and good. Especially since SHA-2 is superior to SHA-1.
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 11:15:53 PM
 #22

What's the relationship between the input and the output?  Isn't there some kind of determination of a certain output given by a certain input?  Will a given input always produce the same output?  My apologies, I don't quite get it. 
this isn't elementary algebra

hmmm... i'm not quite sure about that. our maths prof always goes like "as you've known since grade 9 ..." when talking about some shit you never heard before. for people like him it probably is elementary algebra.

Exactly.  I'm good at philosophical thinking, which makes me a quick learner.  And I'm sure coding has its analogues which will help make it easier to understand (for example, language -- syntax, grammar, content).  But the different terminology results in the same type of problem I would have trying to go to Mexico and understand what they're talking about, even if it's about everyday stuff.  Even if this was elementary algebra, no hablo Espanol de techno-nerdo (mas o menos).

grue
Legendary
*
Offline Offline

Activity: 2058
Merit: 1208



View Profile
July 13, 2011, 11:16:18 PM
 #23

Yes, cause I'm fucking smart.  And I'm currently playing DDR for cardio which is why I'm postponing wikisearch  Cheesy  
https://secure.wikimedia.org/wikipedia/en/wiki/Sha-1#SHA-1_pseudocode

find the inverse function for me, mmkay?

edit:
whoops, didnt know you posted before me Sad . ignore this post

It is pitch black. You are likely to be eaten by a grue.

Adblock for annoying signature ads | Enhanced Merit UI
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 11:17:29 PM
 #24

And I will, but you do realize that a person (me) with virtually no programming experience (except for coding an RPG in Qbasic when I was 12) will have a very hard time understanding that WIKI stuff which makes reference to things I've never heard of?  I'm not sure why you can't figure out a way to tell your computer to get around the problem.  Like, if you know what a given output needs to be, why cant you figure out what the input needs to be?  It is based on an algorithm after all.  Your computer isn't just guessing values 'randomly,' since randomness is another word for causation (caused by randomness).  Why can't you use the algorithm to determine what the relationship is between inputs and outputs such that you can determine why a certain input gives the output that it does?  My guess is that when TiagoTiago says "you can't know what effect a change in the input will have in the output," he really means "it's INFEASIBLE to try to know what effect a change in the input will have in the output."  It's gotta be possible.

With a hash function there is no discernible pattern between the input and the output.  Hash functions were made complicated on purpose.  The only way to find out what the output for any given input is, is to run the function on it and see what comes out.  By design, even a minor change to the input always results in a drastic change to the output.

The algorithm cannot be done in reverse.  Google it, find the implementation, and you'll see why.  Too many steps "throw away" bits of intermediate information along the way - information you would need to do the algorithm in reverse.  This is done repeatedly during each hash, and is intentional.

There isn't a way to get the input from an output - except by guessing inputs by trial and error and calculating the output and seeing if it matches the desired result.  

Finally.  Thanks, bro.  You're a bro.  That's you.

anty
Newbie
*
Offline Offline

Activity: 40
Merit: 0



View Profile WWW
July 13, 2011, 11:27:32 PM
 #25

There's a fundamental problem when you try to reverse hashing functions:
Due to the bit-shifting you lose information. Information you need to guess when you want to reverse it, creating loads of possibilities.

Bit-shifting work like this: You got the initial bits, e.g.
01010101
now you shift to the right by, lets say 4 bits it fill it with 0s:
00000101
You just lost 4 bits of information. You now have to guess the lost 4 bits to reverse the operation: 2^4=16 possible variations.

It could be one of these:
01011111
01011110
01011101
01011100
01011000
01011001
01011010
01011011
01010000
01010001
01010010
01010011
01010111
01010110
01010101
01010100

But a hashing function doesn't consist of one bit-shifting operation but multiple iterations, based on each other. And of course it's based on more than 8 bits.
In between these shift operations the hashing functions performs some other operations, like multiplications, to get rid of the 0s we just added.

So basically at each operation you want to reverse you have another operation that it's based on which also leads to more guessing and so on.
Work, that you can only verify to be correct after you've checked each guessed version until you hit the right one. So basically you are better off just guessing inputs until you hit the right one.

Disclaimer: I'm basing this on my knowledge of the MD5 hashing algorithm, but SHA-2 uses shift operations, too.
the joint
Legendary
*
Offline Offline

Activity: 1806
Merit: 1010



View Profile
July 13, 2011, 11:34:25 PM
 #26

There's a fundamental problem when you try to reverse hashing functions:
Due to the bit-shifting you lose information. Information you need to guess when you want to reverse it, creating loads of possibilities.

Bit-shifting work like this: You got the initial bits, e.g.
01010101
now you shift to the right by, lets say 4 bits it fill it with 0s:
00000101
You just lost 4 bits of information. You now have to guess the lost 4 bits to reverse the operation: 2^4=16 possible variations.

It could be one of these:
01011111
01011110
01011101
01011100
01011000
01011001
01011010
01011011
01010000
01010001
01010010
01010011
01010111
01010110
01010101
01010100

But a hashing function doesn't consist of one bit-shifting operation but multiple iterations, based on each other. And of course it's based on more than 8 bits.
In between these shift operations the hashing functions performs some other operations, like multiplications, to get rid of the 0s we just added.

So basically at each operation you want to reverse you have another operation that it's based on which also leads to more guessing and so on.
Work, that you can only verify to be correct after you've checked each guessed version until you hit the right one. So basically you are better off just guessing inputs until you hit the right one.

Disclaimer: I'm basing this on my knowledge of the MD5 hashing algorithm, but SHA-2 uses shift operations, too.

Also helpful.  Thank you!

DrHaribo
Legendary
*
Offline Offline

Activity: 2632
Merit: 1020


Bitminter.com Operator


View Profile WWW
July 18, 2011, 06:30:50 AM
 #27

Here's how it works:

http://en.wikipedia.org/wiki/Sha-256

There may be a shortcut hidden in there, but noone's found it yet.  Wink

▶▶▶ Bitminter.com - Your trusted mining pool since 2011.
zard_cz
Newbie
*
Offline Offline

Activity: 16
Merit: 0


View Profile
July 18, 2011, 11:28:19 AM
 #28

I see a bit of confusion here about what is actually going on.

True, the hash-function is not reversible in sense that you can not know for certain what the input was. This is a problem in general if we were to get a document from a signature but in our case we have the majority of the input already and we are modifying only a small part to get difference in the hashes (as hash by itself is the same for the same input, we need to vary a bit of it).

It is theoretically possible to calculate an input for a hash of our choosing, the problem here is that the reverse hash function is so computationally complex at the moment that it is not even remotely feasible to perform it.

This is true for the general state of encryption and if that assumption is broken (which it may, you never know), we will have many more pressing issues to worry about than easy bitcoin generation.


The problem illustration commonly use is to imagine a multiplication of two very very large primes. Forward step is fine, we can multiply very large numbers relatively easily. The problem comes when we want to reverse the operation - at the moment there is no efficient way get these two primes back from the product.


Does that make sense/helps?
Pages: 1 2 [All]
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!