Cryptography

Challenge
Link

Xorror (300 pts)

Buka Rekening (340 pts)

Xorror (300 pts)

Description

-

Solution

Diberikan source code sebagai berikut

import random
from Crypto.Util.number import *

def roror(m):
    for i in range(m, 1234567891011121314151617):
        m^=i
    return m

msg = open('message.txt','rb').read()

f = open('output.txt','w')
x = [random.randint(1,9) for i in range(len(msg))]
n = getPrime(64)
enc = [n]
for i in range(len(msg)):
    enc.append(msg[i]^((x[i]*roror(x[i]))%n))
f.write(str(enc))
f.write('\n')
f.close()

Roror akan memakan waktu yang ckup lama untuk dijalankan, namun dari analisis yang dilakukan diketahui bahwa fungsi roror dapat dioptimasi dengan cara berikut

Jadi selanjutnya tinggal implementasi dan bruteforce 9 kemungkinan yang ada untuk setiap byte msg. Ambil nilai terkecil untuk setiap byte karena itu nilai valid msg. Berikut solver yang kami gunakan

Flag : IFEST23{APA_film_xorror_favorittt_mu??_1ba83b4}

Buka Rekening (340 pts)

Description

-

Solution

Diberikan source code sebagai berikut

Jabarkan persamaan yang didapat (ppow)

Dengan berasumsi bahwa nilai nilai x*(p^y)+1 < n maka kita bisa langsung dapatkan nilai p atau faktornya. Berikut solver yang kami gunakan

Flag : IFEST23{m4s1_tr4ns4ksi_p3rt4ma_l4_y4_c3c1ng_c3c1ng}

Last updated