【CTF-加密】[GHCTF 2024 新生赛]2024九省联考
风二西
2024年05月03日 20:38

题目解析

key1=pow(g1,a*(p-1),n)

c=(pow(key1,b,n)*m)%n

key1=(g1^a*(p-1))%n

key1=((g1^a)^(p-1))%n

#设g1^a=ga

key1=(ga^(p-1))%n

key1=ga^(p-1)+kn

#两边同时莫上p

key1%p=ga^(p-1)%p+kn%p

#根据费马小定理

#a^(p-1)%p=1 p为素数,n=p*q

key1%p=1+0

key1%p=1

key1-1=kp

#利用公约数

p=gcd(key1-1,n)

c=(pow(key1,b,n)*m)%n

#key1=(ga^(p-1))%n

c=(((ga^(p-1))%n)^b%n*m)%n

c=((ga^(p-1))^b%n*m)%n

c=((ga^b)^(p-1)%n*m)%n

#设ga^b=gab

c=gab^(p-1)%n*m)%n

c=gab^(p-1)*m+kn

#两边同时莫上p

c%p=gab^(p-1)%p*m%p

#根据费马小定理

#a^(p-1)%p=1 p为素数,n=p*q

c%p=m%p

#因为m<p

p=gcd(key1-1,n)

c%p=m