Stolen information worth £300m recovered by GCHQ