Pages:
Author

Topic: the dilemma of division in ECC-secp256k1 (Read 782 times)

member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
December 12, 2023, 02:17:57 AM
#37
pk_decimal= 109976111913671942994782547932288341104394192011282789345793555308339223784117
pub=03eeb9365c34d51c83060dd2fe898b8726143d86670c1f30e9cfc3d58f82973af9



pk is not for pub !

pub for pk is:

0495d913294063c97c009936a50efddbdabea78a91043c46fef15b5a93f2f9aa8b2e7234e4e7f81 467c5a06c85f2879c3e73f63f012185d313fb00a4d4041353f1

and

./km 0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 / 10000000000000000000000000000000000000000000000000000000000000000
Result: 03eeb9365c34d51c83060dd2fe898b8726143d86670c1f30e9cfc3d58f82973af9



0279b....  is a  pubkey of priv 1
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
December 12, 2023, 02:05:51 AM
#36


this is precision, and mistake in this

1754225779965324 / 7476542256 =


234630.624679147670425471611218029341396662869339101612642580910198763945834375 0180765379733580415679255675432646147007879627504642568557964691318665637459349 09620070767643903


I not undertand what is your task. But if you get G as a 1/ 7476542256 you have no problem with find point

of
234630.624679147670425471611218029341396662869339101612642580910198763945834375 0180765379733580415679255675432646147007879627504642568557964691318665637459349 09620070767643903


Then you div point of  234630.624679147670425471611218029341396662869339101612642580910198763945834375 0180765379733580415679255675432646147007879627504642568557964691318665637459349 09620070767643903 to 1/ 7476542256 , you aways take int without float part.


ecctools of iceland is good for this calcs


copper member
Activity: 900
Merit: 2243
November 27, 2023, 01:11:44 AM
#35
Quote
is it Ok to post in public about curve related stuff or do we need to do it privately?
It depends if something is long or short. For example, when I digged deeper into elliptic curves, I decided to not post all curves from the smallest to the 256-bit one, in some topic on bitcointalk. I decided to do that on GitHub, because it is too much content, and it is better to give someone a link, than to post all details on forum.

So, if you want to post something, that is too long to be posted here, then use other tools. Use pastebin, GitHub, or whatever, and just share a link. And if things are even more focused on your tools, then you can have some discussion in other places, for example on GitHub, inside some Pull Requests.

You know, bitcointalk is not your personal blog, and after reaching the point, where things are more related to your work, than to public discussions, it is usually a good idea to bring the whole discussion to your social media, and keep it there, leaving only links for someone, who may be interested, than posting everything here.

Quote
I believe in the spirit of transparency that's why I do everything here, if posting here is considered a crime or trolling, let me know so I stop.
It is not a crime. If it would be, then all topics related to puzzles would be taken down, because they contain a lot of details about elliptic curves, and they are sometimes too long, but they stay on forum, and those topics are not taken down for some reason.

For example: this forum is not GitHub. If you have a long piece of code, then make your own repo, and give a link to that, instead of posting every file on bitcointalk. It is also more convenient to do "git clone" than to copy-paste each file manually.

Quote
Now I know why everyone left this forum.
Well, sometimes things are too stupid to continue the discussion. In that case, usually I leave it as it is, and switch to other things. And then, I come back, when I can analyze them peacefully, and reply to something that is worth it, and ignore the rest.

But yes, forum is for discussion, not for posting every code change you can think about. So yes, for example Core developers moved from forum to other places, not because they don't like the forum, but because other tools like GitHub are more convenient for their purposes.
copper member
Activity: 1330
Merit: 899
🖤😏
November 26, 2023, 01:28:39 PM
#34
Disclaimer, that noob Legends_Never_Die is my alt I wanted to use to ask things I didn't know, or forgot.


@mc, are you interested for more discoveries? You remember when we could divide by 47 and multiply by 34 to get results? Now try 474747 and 343434, interestingly you will get the same results, and can be used for large numbers. So you just need to find the right combination.

@mods, is it Ok to post in public about curve related stuff or do we need to do it privately? I believe in the spirit of transparency that's why I do everything here, if posting here is considered a crime or trolling, let me know so I stop.

Now I know why everyone left this forum.
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
November 19, 2023, 05:12:51 PM
#33
@OP have you figured out yet on how to convert decimals float into integer? I'm especially eager to find such a key,
0.0000000000000000000000000000000000000000000000000000000000000001

As an example, how do I find that key on the curve?

Edit: in decimal it's like this 1/999999 =  0.000001 does that mean in secp256k1 that result is n or n-1 or n-2?

decimal
Code:
B=1/10000000000000000000000000000000000000000000000000000000000000000

>>>0.0000000000000000000000000000000000000000000000000000000000000001

python mod N

Code:
import bitcoin
Div=10000000000000000000000000000000000000000000000000000000000000000

N=115792089237316195423570985008687907852837564279074904382605163141518161494337

a=bitcoin.inv(Div,n)
print(a)
b=(a) % n
print(b)

python div

Code:
import bitcoin


target= "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798"

N= 10000000000000000000000000000000000000000000000000000000000000000

Div= bitcoin.divide(target, N)

print(Div)

1/10000000000000000000000000000000000000000000000000000000000000000 =
0.0000000000000000000000000000000000000000000000000000000000000001 =


pk_decimal= 109976111913671942994782547932288341104394192011282789345793555308339223784117
pub=03eeb9365c34d51c83060dd2fe898b8726143d86670c1f30e9cfc3d58f82973af9





member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
November 17, 2023, 01:38:39 PM
#32

But how in pubkeys you can separate float? how you know where is correct operation and where not? thats why i told that is usless with pubkeys

You would only need a known decimal.

If you did this with divisions with decimals, for example, dividing by 2, at 0.5(N/2) you would know where to stop. Therefore you just have to find a large divisor that returns a known decimal.
jr. member
Activity: 43
Merit: 1
November 13, 2023, 06:55:44 AM
#31
I have came back to this thread and something confused me a little:

I have asked myself, how did @mcdouglasx came to this magic number, that when divided it results to the exact decimal value that the 3765.8153570612637194174713249666 had? I am not that newbie at math, but i really couldn't find it out, lol. Maybe I'm today not thinking good, i apologize.

Code:
29181610088853736 / 35789976533256789

= 0.8153570612637194174713249666

if you have for example:
target= 14688653357788537

and you want to divide by X:
X=3576434789998

target/X= 4107.0658967045645844960056238489


To reduce to decimals, you just have to subtract X and divide sequentially.

a=target-X   =14685076922998539

a.1= a/X      = 4106.0658967045645844960056238489

b=a-X          =14681500488208541

b.1= b/X      =4105.0658967045645844960056238489


If you continue sequentially you will arrive to

235675266751 / 3576434789998 =  0,0658967045645844960056238489

All results will get the same decimals, until negative (when target is less than X).

235675266751 -3576434789998 = -3340759523247

-3340759523247 / 3576434789998 = -0,93410329543541550399437615106299


just mul rest to a divider

.8153570612637194174713249666 * 35789976533256789

But all this not suitable for pubkeys

Seeing the decimals is easy, but you must do it the way I explain, to reach the objective (in ecc with pubkeys).

But how in pubkeys you can separate float? how you know where is correct operation and where not? thats why i told that is usless with pubkeys
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
November 12, 2023, 08:51:51 PM
#30
I have came back to this thread and something confused me a little:

I have asked myself, how did @mcdouglasx came to this magic number, that when divided it results to the exact decimal value that the 3765.8153570612637194174713249666 had? I am not that newbie at math, but i really couldn't find it out, lol. Maybe I'm today not thinking good, i apologize.

Code:
29181610088853736 / 35789976533256789

= 0.8153570612637194174713249666

if you have for example:
target= 14688653357788537

and you want to divide by X:
X=3576434789998

target/X= 4107.0658967045645844960056238489


To reduce to decimals, you just have to subtract X and divide sequentially.

a=target-X   =14685076922998539

a.1= a/X      = 4106.0658967045645844960056238489

b=a-X          =14681500488208541

b.1= b/X      =4105.0658967045645844960056238489


If you continue sequentially you will arrive to

235675266751 / 3576434789998 =  0,0658967045645844960056238489

All results will get the same decimals, until negative (when target is less than X).

235675266751 -3576434789998 = -3340759523247

-3340759523247 / 3576434789998 = -0,93410329543541550399437615106299


just mul rest to a divider

.8153570612637194174713249666 * 35789976533256789

But all this not suitable for pubkeys

Seeing the decimals is easy, but you must do it the way I explain, to reach the objective (in ecc with pubkeys).
jr. member
Activity: 43
Merit: 1
November 12, 2023, 07:37:41 PM
#29
But all this not suitable for pubkeys
copper member
Activity: 1330
Merit: 899
🖤😏
November 12, 2023, 07:19:09 PM
#28
I think he just got it out of his sleeves, after all cryptography is something which you could consider as magic if you know nothing about the math equations behind it, I thought there could be some actual magics involved at first, but now I just know it's not magic.
If you are interested to learn more about such divisions, first divide your target by any number, then divide 1 by the same number, and then keep multiplying the result of 1 being divided until you see a similar fraction as the fraction resulted from your first division.

Just a simple example,
97/5 = 19.4
1/5 = 0.2
0.2 * 2 = 0.4
0.4 - 19.4 = 19.
jr. member
Activity: 43
Merit: 1
November 12, 2023, 06:42:17 PM
#27
I have came back to this thread and something confused me a little:

I have asked myself, how did @mcdouglasx came to this magic number, that when divided it results to the exact decimal value that the 3765.8153570612637194174713249666 had? I am not that newbie at math, but i really couldn't find it out, lol. Maybe I'm today not thinking good, i apologize.

Code:
29181610088853736 / 35789976533256789

= 0.8153570612637194174713249666

just mul rest to a divider

.8153570612637194174713249666 * 35789976533256789
member
Activity: 194
Merit: 14
November 12, 2023, 05:21:17 PM
#26
I have came back to this thread and something confused me a little:

I have asked myself, how did @mcdouglasx came to this magic number, that when divided it results to the exact decimal value that the 3765.8153570612637194174713249666 had? I am not that newbie at math, but i really couldn't find it out, lol. Maybe I'm today not thinking good, i apologize.

Code:
29181610088853736 / 35789976533256789

= 0.8153570612637194174713249666
copper member
Activity: 1330
Merit: 899
🖤😏
November 09, 2023, 05:03:58 AM
#25
Those keys are in decimal, you have to convert them to hex :
Code:
0x0000000000000000000000000000000000000000000000000000000000000eb5
Public key =
028bb9e12dc5e8ff3e4ba25775f1552e3b9be21f274250d511fce5cf15e73bbf2c
I wonder if you are really a puzzle hunter, what are you even doing btw, regarding solving a puzzle? I thought last year I told you to ask anything you want, but seems you rather stay idly by and let others claim the prize!
member
Activity: 194
Merit: 14
November 09, 2023, 04:32:26 AM
#24
How about we just try dividing the public key multiple times with multiple different numbers so in the end we can at least get a divided result of a new pubkey that is non float division?


You can, but your results will be with exponential increase, if there is a trick it will probably be focused on decimals.
For example:


Code:
134778443257800664321
>>03fb8da1e2dffa8f7764204f02a346b879a9ad3aeb030c021df712f5336f1a2f83

134778443257800664321/ 35789976533256789

=3765.8153570612637194174713249666
>>0333016a36cec3f851eab0ea9c76b5d3632c3bbf74701fb0f2f228c9f55a621bdc

29181610088853736
>>03d89db49bd82f8d6ede5f7a7fab7156edeba150571e502d8905748e3f7168450f

29181610088853736 / 35789976533256789

=0.815357061263719417471324966
>>031ff717b621c395e2c4531639601207d3137ea175c6264e1ddaa79c1715b402e0

3765.8153570612637194174713249666 - 0.815357061263719417471324966 = 3765
>>028bb9e12dc5e8ff3e4ba25775f1552e3b9be21f274250d511fce5cf15e73bbf2c



pk= 3765= 028bb9e12dc5e8ff3e4ba25775f1552e3b9be21f274250d511fce5cf15e73bbf2c


This is very nice example ! But i think there are some errors by your calculations. The "3765" Key doesnt represents the public key above, that you have mentioned. Or am i wrong?

Code:
3765.8153570612637194174713249666 - 0.815357061263719417471324966 = 3765
>>028bb9e12dc5e8ff3e4ba25775f1552e3b9be21f274250d511fce5cf15e73bbf2c

Code:
3765 = 03f6008de021c5cd46d9d811d44070a7d646105a552a68c389a11161ce9baaae2d
copper member
Activity: 1330
Merit: 899
🖤😏
November 08, 2023, 10:58:19 PM
#23

0.815357061263719417471324966
Now here is the important part, how many keys will result in the fraction above when divided and by what? You could divide trillion trillion different numbers by trillion trillion other different numbers and get the same result. So that's not going to work, however there is something else to think about, have you started to divide by 2, 3, 4, 5 etc by iterating through different values? You can try dividing this  134778443257800664321  by e.g, 333, then add 1 to it and divide by 333, so if the last digit of your number is 1, try all from 0 to 9, then compare the hex representations mod n, after that change the second digit from right, do the same, you could also change all the digits one by one and then divide to see what big changes you can detect in the results.

For instance, when you divide by a 1 digit number, you will only notice the resulting hex changes it's starting character, which is obvious. Maybe the best thing to do is to divide n and focus on that, then subtract 1 at a time from n then keep dividing, you can only understand things when you see the results in hex, decimal won't be too much of help, unless your brain can handle it.
member
Activity: 239
Merit: 53
New ideas will be criticized and then admired.
November 08, 2023, 12:40:49 PM
#22
How about we just try dividing the public key multiple times with multiple different numbers so in the end we can at least get a divided result of a new pubkey that is non float division?


You can, but your results will be with exponential increase, if there is a trick it will probably be focused on decimals.
For example:

Code:
134778443257800664321 / 35789976533256789

3765.8153570612637194174713249666


29181610088853736 / 35789976533256789

0.815357061263719417471324966
Code:
3765.8153570612637194174713249666 - 0.815357061263719417471324966 = 3765



edit

Code:
134778443257800664321

>>03fb8da1e2dffa8f7764204f02a346b879a9ad3aeb030c021df712f5336f1a2f83

134778443257800664321/ 35789976533256789

=3765.8153570612637194174713249666
>>0333016a36cec3f851eab0ea9c76b5d3632c3bbf74701fb0f2f228c9f55a621bdc

29181610088853736
>>03d89db49bd82f8d6ede5f7a7fab7156edeba150571e502d8905748e3f7168450f

29181610088853736 / 35789976533256789

=0.815357061263719417471324966
>>031ff717b621c395e2c4531639601207d3137ea175c6264e1ddaa79c1715b402e0

3765.8153570612637194174713249666 - 0.815357061263719417471324966 = 3765
>>028bb9e12dc5e8ff3e4ba25775f1552e3b9be21f274250d511fce5cf15e73bbf2c



pk= 3765= 028bb9e12dc5e8ff3e4ba25775f1552e3b9be21f274250d511fce5cf15e73bbf2c
copper member
Activity: 1330
Merit: 899
🖤😏
November 07, 2023, 05:19:31 PM
#21
How about we just try dividing the public key multiple times with multiple different numbers so in the end we can at least get a divided result of a new pubkey that is non float division?
Since you don't know the key you are dividing, you will only get public keys as results, so how can you guess if the result is correct or not? When you are using -1 divide by 2, there are 50-50 chances of each division to be correct because there are 5 odd and 5 even numbers.
For example, target = 99, now you sub 1 to get 98, then divide 98/2 = 49, 49-1 = 48/2 = 24, 24-1 = 23/2 = 11.5 game over.
Unless you do this 99/2 = 49.5, 98/2 = 49, now if you subtract 1 from 49.5 you won't get 48.5 in EC, you'd get half of n+48.  But your other division result which is 49, you can divide that as well as it's -1, which would be 49/2 = 24.5, 48/2 = 24, then you can continue with 24.5/2 = game over, 24-1 = 23/2 = 11.5 game over, 24/2 = 12. 12-1 = 11/2 = 5.5 game over, 12/2 = 6, 6-1 = 5/2 = 2.5 game over, 6/2 = 3, 3/2 = 1.5 game over, 3-1 = 2/2 = 0 you just won.

But can you detect which one of the results were game over or not when you are dividing a key in 2^130 key space without knowing the key? If you can do that, you win the game.😉
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
November 07, 2023, 09:08:29 AM
#20
How about we just try dividing the public key multiple times with multiple different numbers so in the end we can at least get a divided result of a new pubkey that is non float division?

yes, for divide to 2 need sybsract 1,2 ana divide 2,2 one of pub will be without float

but this is real hard, most of time is waste of time, because needs divide 2**130  to 2**70 for get 2**60 pubkeya one of them will be 2**60 etc
member
Activity: 194
Merit: 14
November 07, 2023, 04:30:14 AM
#19
How about we just try dividing the public key multiple times with multiple different numbers so in the end we can at least get a divided result of a new pubkey that is non float division?
member
Activity: 873
Merit: 22
$$P2P BTC BRUTE.JOIN NOW ! https://uclck.me/SQPJk
November 05, 2023, 11:41:53 PM
#18
You don't necessarily need to brute force all the possible values of n, you could figure things out another way, but the complexity could be much more, because when we are dealing with unknown numbers, we have to guess and try almost all the keys.

However sometimes there are some relations where we can use to our advantage, this is just an example:
I used 20 decimal precision for the following :
Code:
226918604445/47 =
4828055413.7234042553
1/47 =
0.021276595744680851064
1/47 * 34 =
0.72340425531914893618
Target/47 - 1/47 * 34 =
4828055413

No fraction, if you want to know more about the possibilities, you have to do experiments with numbers. If you can do the same with other numbers, finding how many times you have to multiply n/x to reach the fraction for other numbers being divided, and if you can create a table of say 1 billion keys, then you could in theory divide many different keys by different numbers and start subtracting from them and you might find of the 1 billion keys while doing your subtraction like 4828055413.7234042553 if you have 0.7234042553 saved among the 1 billion keys, subtracting the bold part could solve a key when you land on 1/47 * 34, though this is just a demonstration.

The possibility of obtaining an integer from a division of two integers, in the best of cases is equal to the divisor, in your case 1/47 possibilities.

Code:
10665174408727/47 = 226918604441 
10665174408774/47 = 226918604442
10665174408774 - 10665174408727= 47

34 give nothing

.72340 is a 34 /17

226918604442 - 226918604441 = 1  =( pbkey + any nummb ) - bupkey - n +1 = 1, so imposible to identity of axact divide without float part
=
Pages:
Jump to: