XOR, XORtool
Last updated
Was this helpful?
Last updated
Was this helpful?
(ΠΠΎΠ³ΠΈΜΡΠ΅ΡΠΊΠΎΠ΅ ΡΠ»ΠΎΠΆΠ΅ΜΠ½ΠΈΠ΅, ΠΈΡΠΊΠ»ΡΡΠ°ΜΡΡΠ΅Π΅ Β«ΠΠΠΒ», ΡΡΡΠΎΠ³Π°Ρ Π΄ΠΈΠ·ΡΡΠ½ΠΊΡΠΈΡ, XOR, ΠΏΠΎΡΠ°Π·ΡΡΠ΄Π½ΠΎΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ±ΠΈΡΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΆΠ΅Π³Π°Π»ΠΊΠΈΠ½ΡΠΊΠΎΠ΅ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅).
ΠΠΎΠ³ΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π΄Π»Ρ Π±ΡΠ»Π΅Π²ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΉ Ρ Π±ΠΈΡΠ°ΠΌΠΈ.
Π‘Π²ΠΎΠΉΡΡΠ° XOR:
a XOR 0 = a a XOR a = 0 a XOR b = b XOR a (a XOR b) XOR b = a
ΠΠ°Π³Π»Π°Π΄Π½ΡΠ΅ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ XOR: ( Π½Π° ΡΠ·ΡΠΊΠ΅ Python):
Π Π΅Π²Π΅ΡΡ ΡΠ΅ΠΊΡΡΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π½Π° ΡΠ·ΡΠΊΠ΅ Java:
(Crypto) hack.lu CTF 2011 Simplexor (200)
To get a better security we deceided to encrypt our most secret document with the secure xor-algorithm. Unfortunately we lost the key. Now we are sad. Can you help us recovering the key?
ΠΠ»Ρ Π±ΠΎΠ»ΡΡΠ΅ΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΌΡ Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π»ΠΈ Π½Π°Ρ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ XOR-Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°. ΠΠ»ΡΡ Π±ΡΠ» ΠΏΠΎΡΠ΅ΡΡΠ½. Π‘ΠΌΠΎΠΆΠ΅ΡΠ΅ Π»ΠΈ Π²Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΊΠ»ΡΡ? (Π€Π°ΠΉΠ» ΠΏΡΠΈΠ»Π°Π³Π°Π΅ΡΡΡ)
Writeup: Π’.ΠΊ. ΡΠ°ΠΉΠ» Π±ΡΠ» Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½ Ρ ΠΏΠΎΠΌΠΎΡΡΡ XOR Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ XORtool ΠΈΠ»ΠΈ Cryptool.
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΡΠ΅ΠΌ Base64.
$ base64 -d simplexor.txt >ciphertext.bin
ΠΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΠΌ ΠΏΠΎΠ΄Π±ΠΎΡ Π΄Π»ΠΈΠ½Ρ ΠΊΠ»ΡΡΠ°. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΡΠΊΡΠΈΠΏΡΠΎΠΌ Π½Π° Python.
git clone https://github.com/hellman/xortool.git
ΠΠ°Π½Π½ΡΠΉ ΡΠΊΡΠΈΠΏΡ ΡΠΌΠ΅Π΅Ρ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°ΠΉΠ» Π½Π° ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π²Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠΉ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΏΠΎΠ΄Π±ΠΈΡΠ°ΡΡ ΠΊΠ»ΡΡ, ΠΈ
ΡΠΎΡ ΡΠ°Π½ΡΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠ°.
ΠΠΎΠ·ΠΌΠΎΠΆΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° ΠΊΠ»ΡΡΠ°:
2: 4.9 % 4: 7.3 % 6: 4.8 % 8: 9.5 % 10: 4.8 % 12: 7.1 % 14: 4.9 % 16: 14.1 % 18: 4.8 % 20: 7.1 % 22: 4.9 % 24: 9.2 % 26: 4.8 % 28: 7.0 % 30: 4.8 % 16 Π·Π½Π°ΠΊΠΎΠ² - Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΠΎΡΡΠ½Π°Ρ Π΄Π»ΠΈΠ½Π° Π½Π°ΡΠ΅Π³ΠΎ ΠΊΠ»ΡΡΠ°. ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΡΠΎ, ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ:
$ xortool ciphertext.bin -c 20 Probable key lengths: ... 1 possible key(s) of length 16: WklF6e5TEc5XmEG8
$ xxd xortool_out/0_WklF6e5TEc5XmEG8 | head 0000000: 2e72 4b08 367f 3e03 1646 4700 6054 7f32 .rK.6.>..FG.`T.2 0000010: 2e38 512f 6320 7435 2020 2020 2020 2020 .8Q/c t5 0000020: 2d04 2020 200f 5623 0829 2d10 2f65 450d -. .V#.)-./eE.
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π½Π°Ρ ΠΊΠ»ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π΄Π»ΠΈΠ½Π½Π΅Π΅. ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΊΡΠΈΠΏΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ, ΠΌΠ΅Π½ΡΡΠΈΠΌΠΈ 32. ΠΠ°ΡΡΠ°Π²ΠΈΠΌ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ, ΡΠΊΠ°ΠΆΠ΅ΠΌ, Ρ 257.
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΠΌΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΡΠΈ. ΠΡΠΎΠ²Π΅ΡΠΈΠΌ Π²ΡΡ ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅.
ΠΡΠ»ΠΈΡΠ½ΠΎ! ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΊΠ»ΡΡ Π½Π°ΠΉΠ΄Π΅Π½. Flag: liWvhnPry60NRl41weWY7IueaAEc5XmEG8ZOlF6JCWmj8hbvmYkkwFox5Tz1HLvdKl