Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "not safe for sanity"
-
POSTMORTEM
"4096 bit ~ 96 hours is what he said.
IDK why, but when he took the challenge, he posted that it'd take 36 hours"
As @cbsa wrote, and nitwhiz wrote "but the statement was that op's i3 did it in 11 hours. So there must be a result already, which can be verified?"
I added time because I was in the middle of a port involving ArbFloat so I could get arbitrary precision. I had a crude desmos graph doing projections on what I'd already factored in order to get an idea of how long it'd take to do larger
bit lengths
@p100sch speculated on the walked back time, and overstating the rig capabilities. Instead I spent a lot of time trying to get it 'just-so'.
Worse, because I had to resort to "Decimal" in python (and am currently experimenting with the same in Julia), both of which are immutable types, the GC was taking > 25% of the cpu time.
Performancewise, the numbers I cited in the actual thread, as of this time:
largest product factored was 32bit, 1855526741 * 2163967087, took 1116.111s in python.
Julia build used a slightly different method, & managed to factor a 27 bit number, 103147223 * 88789957 in 20.9s,
but this wasn't typical.
What surprised me was the variability. One bit length could take 100s or a couple thousand seconds even, and a product that was 1-2 bits longer could return a result in under a minute, sometimes in seconds.
This started cropping up, ironically, right after I posted the thread, whats a man to do?
So I started trying a bunch of things, some of which worked. Shameless as I am, I accepted the challenge. Things weren't perfect but it was going well enough. At that point I hadn't slept in 30~ hours so when I thought I had it I let it run and went to bed. 5 AM comes, I check the program. Still calculating, and way overshot. Fuuuuuuccc...
So here we are now and it's say to safe the worlds not gonna burn if I explain it seeing as it doesn't work, or at least only some of the time.
Others people, much smarter than me, mentioned it may be a means of finding more secure pairs, and maybe so, I'm not familiar enough to know.
For everyone that followed, commented, those who contributed, even the doubters who kept a sanity check on this without whom this would have been an even bigger embarassement, and the people with their pins and tactical dots, thanks.
So here it is.
A few assumptions first.
Assuming p = the product,
a = some prime,
b = another prime,
and r = a/b (where a is smaller than b)
w = 1/sqrt(p)
(also experimented with w = 1/sqrt(p)*2 but I kept overshooting my a very small margin)
x = a/p
y = b/p
1. for every two numbers, there is a ratio (r) that you can search for among the decimals, starting at 1.0, counting down. You can use this to find the original factors e.x. p*r=n, p/n=m (assuming the product has only two factors), instead of having to do a sieve.
2. You don't need the first number you find to be the precise value of a factor (we're doing floating point math), a large subset of decimal values for the value of a or b will naturally 'fall' into the value of a (or b) + some fractional number, which is lost. Some of you will object, "But if thats wrong, your result will be wrong!" but hear me out.
3. You round for the first factor 'found', and from there, you take the result and do p/a to get b. If 'a' is actually a factor of p, then mod(b, 1) == 0, and then naturally, a*b SHOULD equal p.
If not, you throw out both numbers, rinse and repeat.
Now I knew this this could be faster. Realized the finer the representation, the less important the fractional digits further right in the number were, it was just a matter of how much precision I could AFFORD to lose and still get an accurate result for r*p=a.
Fast forward, lot of experimentation, was hitting a lot of worst case time complexities, where the most significant digits had a bunch of zeroes in front of them so starting at 1.0 was a no go in many situations. Started looking and realized
I didn't NEED the ratio of a/b, I just needed the ratio of a to p.
Intuitively it made sense, but starting at 1.0 was blowing up the calculation time, and this made it so much worse.
I realized if I could start at r=1/sqrt(p) instead, and that because of certain properties, the fractional result of this, r, would ALWAYS be 1. close to one of the factors fractional value of n/p, and 2. it looked like it was guaranteed that r=1/sqrt(p) would ALWAYS be less than at least one of the primes, putting a bound on worst case.
The final result in executable pseudo code (python lol) looks something like the above variables plus
while w >= 0.0:
if (p / round(w*p)) % 1 == 0:
x = round(w*p)
y = p / round(w*p)
if x*y == p:
print("factors found!")
print(x)
print(y)
break
w = w + i
Still working but if anyone sees obvious problems I'd LOVE to hear about it.36 -
I did the thing and stuck it out at my shitty job. Tomorrow, I get to quit the most abusive place I have ever worked. I got a new job at a shop that's a 15 minute drive away vs an hour commute. No more SCRUM with a gun to my head. No more getting yelled at for learning on my own and not working fast enough. No more making Grindr, but for CEOs. I have never been so happy. Thank you for the encouragement to find something else. Thank you for giving me hope. Thank you for being there, and being my sanity, my safe place.9
-
Naaarf
Refactoring the whole day.
Someone who prefers while(list(...) = each(...)) or for($x=0; $x < count($array); $x++) wrote the following code, too.
if ($indexed == null || $indexed == "0" && $row[$x]["indexed"] == 0 || $indexed == "1" && $row[$x]["indexed"] == 1) ....
It's buggy. Why does this not surprise me?
This stuff. Whole day.
My brain feels foggy.5 -
WHERE TO FIND A TRUSTED HACKER FOR ANY HACKING SERVICE = DIGITAL HACK RECOVERY
I had stored my Bitcoin wallet details in a digital note on my phone, thinking it was safe. It seemed like the most convenient option at the time—always accessible and secure behind my phone's encryption. However, my sense of security was shattered when my phone got hacked, and I lost access to my wallet. The moment I realized what had happened, a wave of panic washed over me. I had invested a significant amount of money into Bitcoin over the years, and the value had grown substantially. I was staring at the possibility of losing $400,000, my entire nest egg, in the blink of an eye. The anxiety was unbearable.For weeks, I tried everything I could think of to recover my funds. I consulted with tech-savvy friends, searched endlessly online, and even attempted various recovery tools, but nothing worked. Each failed attempt only heightened my fear that my Bitcoin was gone for good. It was a constant emotional roller coaster—one minute, I felt a glimmer of hope, and the next, I was plunged back into despair. I couldn’t eat, sleep, or think about anything else. I was consumed by the thought of losing everything I had worked so hard to build.Just when I was about to give up, I came across Digital Hack Recovery. At first, I was hesitant. Could I really trust someone to recover my wallet? Would they be able to help, or was this just another dead end? Despite my doubts, I decided to reach out to them—it was my last hope. From the moment I made contact, I felt a sense of relief. The team at Digital Hack Recovery was incredibly professional and understanding. They didn’t just treat me like another client; they treated my case with the urgency and care it deserved. They took the time to understand the details of my situation, and their thoroughness immediately put me at ease.The recovery process was far from easy. There were challenges and setbacks along the way, and there were moments when I feared the worst. But Digital Hack Recovery never gave up. They kept me informed at every step, explaining the technical aspects in a way that made sense and reassured me that they were doing everything possible to recover my Bitcoin. I discovered they had a range of tools and techniques at their disposal that I had never even heard of before—things that went far beyond the standard recovery methods I had tried on my own.After what felt like an eternity, I received the news I had been desperately hoping for—they had recovered my wallet. I was overwhelmed with relief and gratitude. The weight that had been pressing down on me for weeks was finally lifted. Digital Hack Recovery didn’t just recover my Bitcoin; they restored my peace of mind and taught me a valuable lesson about the importance of digital security.If you find yourself in a situation where you’ve lost access to your Bitcoin wallet due to hacking or any other digital mishap, I cannot recommend Digital Hack Recovery highly enough. They went above and beyond to ensure I got back what was rightfully mine. Their expertise, dedication, and compassion made all the difference. I’m forever grateful to them for saving not just my $400,000 but also my sanity. contact them via⁚ WhatsApp +19152151930, Email⁚ digital
hack recovery @ techie . com or visit their Website⁚ https : // digital hack recovery . com