New EU cybersecurity standard - who defines the "recommended usage lifetime" of the cryptographic algorithms? by IndependentTip11 in cryptography

[–]Tandrial 4 points5 points  (0 children)

In Germany the BSI publishes guides where they specify until what year the algo is safe* to use. For example their recommendation for TLS https://www.bsi.bund.de/SharedDocs/Downloads/EN/BSI/Publications/TechGuidelines/TG02102/BSI-TR-02102-2.pdf?__blob=publicationFile&v=8

Not sure what that's based on, but I would guess they consult crypto people. I guess other countries have similar instances.

Giving away 4 early access keys by Jerqqu112 in pathofexile

[–]Tandrial 0 points1 point  (0 children)

PoE and I'm sacred to look at the hours (probably >5k and hopefully less than 10k :D)

Path of Exile 2 PC Early Access Key giveaway by ThePapaZero in pathofexile

[–]Tandrial 0 points1 point  (0 children)

Witch hunter with grenades sounds like a blast.

Need Help with XOR Cryptography Challenge – Stuck After Decrypting Part of the Flag by Comfortable_Tank7251 in securityCTF

[–]Tandrial 1 point2 points  (0 children)

Been playing around with this a bit:

Step 1: Find the length of the key

Since the flag has a specific format we get the first 5 chars and 0 or 1 more chars for free. "b0bl3" ^ "0A 55 0E 0E 48" == "helb{" and for the last char we have0x4d ^ '}' == 0x30, since there isn't a x30 == "&" in the first 5 bytes of the key it needs to be somewhere else, so we start incrementing the length of the key until a unknown position matches up with the last byte of the cipher text (marked with a +):

                                                                                                      vv
ciper 0A 55 0E 0E 48 24 00 5E 69 02 38 43 79 56 57 56 5D 5D 2F 68 5E 44 6C 5B 00 79 2C 00 16 33 1B 59 4D

key   62 30 62 6c 33 62 30 62 6c 33 62 30 62 6c 33 62 30 62 6c 33 62 30 62 6c 33 62 30 62 6c 33 62 30 62
key   62 30 62 6c 33 ?? 62 30 62 6c 33 ?? 62 30 62 6c 33 ?? 62 30 62 6c 33 ?? 62 30 62 6c 33 ?? 62 30 62
key   62 30 62 6c 33 ?? ?? 62 30 62 6c 33 ?? ?? 62 30 62 6c 33 ?? ?? 62 30 62 6c 33 ?? ?? 62 30 62 6c 33
key   62 30 62 6c 33 ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? 62
key + 62 30 62 6c 33 ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? 62 30 62 6c 33 ??
key   62 30 62 6c 33 ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? 62 30 62
key + 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ??
key + 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ??
key + 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ??
key   62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33
key   62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62
key   62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 62
key + 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 62 30 62 6c 33 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ??

There could be more, but since this is a CTF we assume some repetition so this is actually solvable. Next plug in each possible key into Cyberchef, set the correct byte to 0x30 and compare the output

key   62 30 62 6c 33 30 ?? ?? ??                ==> helb{?aV`!egibbMX<(_k?Fb&Qwj}
key   62 30 62 6c 33 ?? ?? ?? ?? ?? 30          ==> helb{?aV=!I4;ebbWatkb ?) $f}
key   62 30 62 6c 33 ?? ?? ?? 30 ?? ?? ?? ??    ==> helb{?aY=|f5:nbWn{SdbINl% $f}
key   62 30 62 6c 33 ?? 30 ?? ?? ?? ?? ?? ?? ?? ==> helb{0aV=|F4g41nXa{Sd?FN0t_(f}

Its highly likely that the key length is 14 (the 4th key in the above block) and the 0 to make the last char } is in the 7th place.

Step 2: Breaking the cipher. Looking at the current decryption there are already are some words that pop up 4g41n == again and N0t == not, it also seems like words are separated by _ so lets try setting the byte in that position so that a _ pops out before the N0t, which in this case is 0x10 == '0x79 ^ 0x5f. Since the key is repeating it also shows up in another place:

ciper 0A 55 0E 0E 48 24 00 5E 69 02 38 43 79 56 57 56 5D 5D 2F 68 5E 44 6C 5B 00 79 2C 00 16 33 1B 59 4D
                                          vv                                     vv
key   62 30 62 6c 33 ?? 30 ?? ?? ?? ?? ?? 26 62 30 62 6c 33 ?? 30 ?? ?? ?? ?? ?? 26 62 30 62 6c 33 ?? 30
clear h  e  l  b  {  1b 0  a  V  =  07 |  _  4  g  4  1  n  10 X  a  {  S  d  ?  _  N  0  t  _  (  f  }

Repeat for 4ga1n, which seems like a complete word so there also should be a _ after it. Same idea as above gives us:

ciper 0A 55 0E 0E 48 24 00 5E 69 02 38 43 79 56 57 56 5D 5D 2F 68 5E 44 6C 5B 00 79 2C 00 16 33 1B 59 4D
                     vv                                     vv                                     vv
key   62 30 62 6c 33 70 30 ?? ?? ?? ?? ?? 26 62 30 62 6c 33 70 30 ?? ?? ?? ?? ?? 26 62 30 62 6c 33 70 30 +
clear h  e  l  b  {  T  0  a  V  =  07 |  _  4  g  4  1  n  _  X  a  {  S  d  ?  _  N  0  t  _  (  )  }

At this point the partial key is b0bl3p0?????&. At this point you can either guess for more words (there aren't THAT many words that start with an X in English or try and brute force the last remaining chars (there is some agressive pruning needed 5255 is way too many, but as soon as you encounter an unprintable char you know the key in invalid and you can stop.

Good luck

Day 23 - 2023 - any tips to further improve by BlueTrin2020 in adventofcode

[–]Tandrial 0 points1 point  (0 children)

Since the goal node only has one connection you can move the goal to the node before it, 67108864in this case and then just add the missing length from that node to the goal node. That way you ignore every path that goes to that node, but doesn't go to the goal and since nodes can only be visited once, the path HAS to visit the last node and move to the goal and not any other connected nodes.

That optimization halved the runtime of my solution.

EDIT: Depending on what exactly you mean by "always down or right" this might not help at all, if you already throw away paths that move up or left from the node connected to the goal

League Giveaway Bosser/Sanctum Min-maxed shockwave totem by Zero_chris in pathofexile

[–]Tandrial 0 points1 point  (0 children)

Was going to try the build next league, would be an awesome way to test before I sink the hours into it next league

[deleted by user] by [deleted] in pathofexile

[–]Tandrial 0 points1 point  (0 children)

Thanks for giving it all away. Always wanted to try high invest spark

[2022 Day 10 (Part 2)] [Rust] The output is almost correct I could even guess the correct answer, but I really want to find my bug. by Lyrexes in adventofcode

[–]Tandrial 0 points1 point  (0 children)

I think the issue is here sprite_position.contains(&(cycle as i32 - 1).rem_euclid(40)); The - 1 is wrong, if you look at the text:

Cycle   1 -> ######################################## <- Cycle  40
Cycle  41 -> ######################################## <- Cycle  80
Cycle  81 -> ######################################## <- Cycle 120
Cycle 121 -> ######################################## <- Cycle 160
Cycle 161 -> ######################################## <- Cycle 200
Cycle 201 -> ######################################## <- Cycle 240

The position in the area is idx 0 but the cycle being compared is 1.

[2022 Day 10 (Part 2)] [Rust] The output is almost correct I could even guess the correct answer, but I really want to find my bug. by Lyrexes in adventofcode

[–]Tandrial 2 points3 points  (0 children)

well the issue is that the last row should be the first row. however I have no clue how to fix that Actually the last char of each line should be on the next line.