Python + golfing-shortcuts
, 165165 161 bytes
A port of gcq's answer.
from s import*
def F(Y):R=lambda N:sj("".join,(Sl[Sl.find(I)-N]for I in Y));S={s("etaoinshrdlcumwfgypbvkjxqz".find(B)for B in R(A)):(A,R(A))for A in r(26)};return ;p(S[q(S)])