1. I still cannot understand how and why this work...can you elaborate on this please?
2. what do you mean by "At least I know that if you have the correct base key for the right bit flip?
thanks
Python code:
xor_masks = {
67: 0b1100111100000011110111001010001111100110101111010011111001010001,
66: 0b10111110011010001001010001011000011010100101000011100101000010001,
65: 0b101011111000111010011101100101011111010010011011001011110011000,
64: 0b100011111010111000001101100001001111011011101110110100101011,
63: 0b1100110001101000010000001001010011001100001001011111110111,
62: 0b100111000010101010111110000101001001111011100101010000010001,
61: 0b110000110110100101011100100010111101000010011011011011111001,
60: 0b111111100001011110011111011010110010011000010001000001,
59: 0b10110110100100110100010001111000001101010100101110110000,
58: 0b100111001100010100100011110101101111001110110010111011110,
57: 0b10100110110100011011011111000011010100010100111100011,
56: 0b1100010111001110100100111000101001110110000000000100000,
55: 0b10101010000011110000001100100100110000001111011101011,
54: 0b11100100100000100100100101010010100101110000010111100,
53: 0b111111110000111011100011011100000011100110110010011,
52: 0b1000001010001111010011011001101000110000111000011,
51: 0b101011111000111101011110010111111111011000101011,
50: 0b1110101000010101111000011110100010110110010101011,
49: 0b100010111110100010010100111111101010000010110010,
48: 0b10100100001100100101000001100011100010001100100,
47: 0b100110010100111101111010010101100001101000101,
46: 0b100010011111001111100011101110010101010111011,
45: 0b11011101000000110101111010111100001111111010,
44: 0b11111110101001100101001011100101001110000,
43: 0b10100001011000100110110000011101001101110,
42: 0b10101110111011110001110100111001001110000,
41: 0b1010110001111001011001010011001110100100,
40: 0b1011001010001101101101100110000101001,
39: 0b11010010100000011111001111110000010110,
38: 0b1110111000111110100000101001100101111,
37: 0b100010101000100010101001010101101100,
36: 0b11000100001011111011111010110000011,
35: 0b1101010001001011011110111010001111,
34: 0b10110101100110100110111011100010,
33: 0b1010110100100110101011100100111,
32: 0b1000111100111010101100111010001,
31: 0b10101100000001100010111000,
30: 0b10011010110011001010011011,
29: 0b1000000111011010101011100001,
28: 0b10011011101001001100010111,
27: 0b1010100111100011110001010,
26: 0b101111111100110110010001,
25: 0b1011010000100011010,
24: 0b1000111101010111111011,
23: 0b1010101001000110101101,
22: 0b100100001101111110000,
21: 0b1000101101011001011,
20: 0b101101001110101010,
19: 0b101000101101100000,
18: 0b1111011111110010,
17: 0b1000100110110000,
16: 0b11011011001001,
15: 0b1011100001100,
14: 0b1011011001111,
13: 0b101110011111,
12: 0b10110000100,
11: 0b1101111100,
10: 0b111111101,
9: 0b101100,
8: 0b11111,
7: 0b110011,
6: 0b1110,
5: 0b1010,
4: 0b111,
3: 0b0,
2: 0b0,
1: 0b0
}
def generate_private_keys():
print("Puzzle | Private Key")
print("-------------------")
for puzzle in range(1, 68):
if puzzle in xor_masks:
puzzle_end = 2**puzzle - 1
private_key = puzzle_end ^ xor_masks[puzzle]
print(f"{puzzle:6} | {private_key}")
else:
print(f"{puzzle:6} | (Missing XOR mask)")
generate_private_keys()
Is it clearer now? If not, then nothing.

Hi, still no understand why this works...and why it is more efficient than bruteforcing.
also, "private_key = puzzle_end ^ xor_masks[puzzle]" is useless given that you xor the end of the range which is all 1s with the "mask", so in reality your "mask" is the opposite bits of the private key ALWAYS...meaning it gives you nothing!