Techniques used by cryptanalysts