I am working on an experiment to compare the efficiency of brute-force attacking block ciphers like AES and DES with reduced key sizes for different programming languages and library implementations. However, I am restricting it to using a ciphertext only attack, so I will generate 1 block of random plaintext, encrypt it, and then the program will attempt to decrypt the ciphertext by brute-forcing the key.
However, I am getting stuck when thinking about how to verify the attack has succeeded. If the plaintext I was using was a long enough article of standard English, I could do frequency analysis, and use this as a measure of confidence that the attack succeeded. However, with a purely random plaintext, I am not sure how to distinguish that any P' produced as the result of an attempt of the brute-force attack is the correct plaintext or not. Essentially, without knowing the plaintext, how do I know my attack has succeeded?
This led me to the topic of Authenticated Encryption, which I am very new to, and I'm not sure that I fully understand it. From my understanding, I could use Encrypt-then-MAC or MAC-then-Encrypt. If I were to do MAC-then-Encrypt, my MAC would be included in the decrypted plaintext, so I could verify that my attack had succeeded by checking that the MAC and plaintext correspond for any P'. I've seen mention that Encrypt-then-MAC is more secure, but I am not sure entirely sure why, and I am not sure if Encrypt-then-MAC would allow me to verify whether my attack has succeeded.
Any guidance in either AE or simply how to verify whether my attack has succeeded is greatly appreciated, thanks.