Pages:
Author

Topic: Mechanical hashing - page 2. (Read 410 times)

copper member
Activity: 906
Merit: 2258
June 24, 2022, 04:10:21 AM
#7
Quote
SHA-256 is not reversible by rotating a crank in reverse.
It actually is, if you have the whole needed context. You can compute rounds backwards, if you have all data. Using IV and w-values from w[0] to w[15] is one option, but you can also go backwards, use Exit Hash, use the last 16 w-values, and compute everything backwards, you will then reach IV. I can demonstrate it further in my topic about hash functions if you cannot see that.

The only thing that is "irreversible" is getting IV and Exit Hash as your input, and getting data as your output. But if you have data, then you can go backward or forward, you can go from IV to Exit Hash, or from Exit Hash to IV, many operations are perfectly reversible.

Edit: Here you go, see this post about "irreversibility": https://bitcointalksearch.org/topic/m.60342783
sr. member
Activity: 1190
Merit: 469
June 24, 2022, 03:24:46 AM
#6
It could work on-the-fly, and modify w-values on-the-fly, then going backwards could be possible by rotating it mechanically in the opposite direction.

SHA-256 is not reversible by rotating a crank in reverse. 
copper member
Activity: 906
Merit: 2258
June 23, 2022, 12:38:11 PM
#5
Quote
Not sure about a "mechanical" solution, but if you want to do it with paper and pencil...
I did it with paper and pencil. And no conversion from hexadecimal to binary was needed, except rotations. But I know that mechanically it should be possible. When it comes to addition, it is possible to create "addition table", like this:
Code:
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| + | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 0 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 2 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 0 | 1 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 3 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 0 | 1 | 2 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 4 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 0 | 1 | 2 | 3 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 5 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 6 | 6 | 7 | 8 | 9 | a | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 7 | 7 | 8 | 9 | a | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 8 | 8 | 9 | a | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| 9 | 9 | a | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| a | a | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| b | b | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| c | c | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| d | d | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| e | e | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| f | f | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
I created more such tables, for moving values during addition, multiplication (needed to validate k-values), and other things like that. After few hours, I could add hexadecimal numbers as well as decimal ones. Constructing similar tables for rotations is also possible, but it is harder. So yes, I know how to do it by hand, and I can reach a bit better hashrate than on this video, but it is still not sufficient. I think about something similar to a mechanical calculator, but it should work on SHA-256 (or even better: should also allow hashing things multiple times), should use hexadecimal (or binary, or other power-of-two-based system) keyboard, and allow quite fast calculation, by setting IV, setting data, and then it should turn Initialization Vector into Exit Hash. It could work on-the-fly, and modify w-values on-the-fly, then going backwards could be possible by rotating it mechanically in the opposite direction.
legendary
Activity: 3472
Merit: 4801
June 23, 2022, 11:14:48 AM
#4
Not sure about a "mechanical" solution, but if you want to do it with paper and pencil...

http://www.righto.com/2014/09/mining-bitcoin-with-pencil-and-paper.html

https://www.youtube.com/watch?v=y3dqhixzGVo
sr. member
Activity: 966
Merit: 421
Bitcoindata.science
June 23, 2022, 08:59:42 AM
#3
Looking at a device like a chaotic fluid where Hashing is simply done through hydrodynamics. We could liken it to stirring a muddy fluid a sort of mechanical device just like in a microfluidic device  which can be can be used in a digital information system.

This chaotic maps can encode information about the underlying flow dynamics into the relative arrangements of advected particle which in our case study is SHA-256 hash function with arbitrary message of 512-bit
https://www.pnas.org/doi/10.1073/pnas.1721852115
legendary
Activity: 1568
Merit: 6660
bitcoincleanup.com / bitmixlist.org
June 23, 2022, 05:30:10 AM
#2
Or what about a device with an LED screen that simply does one round of initialization on an input, but allows you to customize the round by choosing which states to combine with others, how they combine (XOR, right-rotate and others)?

There would be a button and keypad that lets you input a random string for hashing (the button is for starting and resetting the input), and another "Hash 1 round" button.

Would definitely resemble more like a raspberry pi with an embedded screen, or TI-85, and would make it much easier to represent 2^64 states (or a similar large number) than a mechanical device.
copper member
Activity: 906
Merit: 2258
June 23, 2022, 01:40:11 AM
#1
To explain better, how crypto works, for less-technical and less-digital people, there is a need to explain hash functions mechanically, without involving any electricity. I think it should be technically possible to make a mechanical device, where any user could set any Initialization Vector for SHA-256, set any 512-bit message, and see the result of hashing this block once by SHA-256. That could be used to better explain, how mining works. If someone will make something like that, I will buy it for Bitcoin. I saw some interesting projects here, maybe this idea could inspire someone to make something like that for some hash functions, for example SHA-256.
Pages:
Jump to: