这两天做了一个crypto的题,涉及到挺多的数学知识,还是非常的有意思,记录下解题的过程。 这个题,应该是2018 0ctf的PSN crypto的变种题。 和他们不一样的地方主要有一个,就是这题的4个sbox是不一样的。 解题中主要参看了以下文章: https://gist.github.com/ngg/f534e51c14a832d69c41289837078773 https://introspelliam.github.io/2018/04/03/crypto/%E7%BA%BF%E6%80%A7%E5%88%86%E6%9E%90%E6%B3%95/ https://www.engr.mun.ca/~howard/PAPERS/ldc_tutorial.pdf
和0ctf不同的是,我们需要计算3个sbox的线性关系。 并且需要三轮ps执行后得到,p,c的的对应关系,进行最后一轮的key爆破,每次爆破两个字节。