とても楽しく問題を解くことができました!

Cryptoがほとんど解けたのも成長を感じられてとても嬉しい気持ちです。

image.png

Long Flag

100 pts (152 solves)

解説:

bytes_to_long関数を用いて long integerに変換しています。

そのため、long_to_bytes関数を用いることで、元に戻すことができます。

from Crypto.Util.number import bytes_to_long, long_to_bytes

c = 35774448546064092714087589436978998345509619953776036875880600864948129648958547184607421789929097085

print(long_to_bytes(c).decode())
#Alpaca{LO00OO000O00OOOO0O00OOO00O000OOONG}

trippple

100 pts (81 solves)

解説:

まず、 $n = p^3$なので、3乗根を求めることで、 $p$を求められます。

次に、$\varphi(n)$について考えてみましょう。

全体の要素数 $p^k$のうち、 $p$と公約数を持つ個数は少なくとも $p$の倍数は $p^{k-1}$存在します。