There are lots of pressing problems.

Cyphers, as opposed to codes, have well-defined functions (be it an algorithm or a lookup table) which map the input to the output. The same functions are applied in the same way across the entire input. Unless the functions are such that the output is truly indistinguishable from a random oracle (or, indeed, any other Oracle product), information is exposed, both information about the message and information about the method for producing the cyphertext. Since randomness can tell you nothing, by definition, the amount of information exposed cannot exceed the the information limit proposed by Shannon for a channel whose bandwidth is equal to the non-randomness of the output.

(A channel is a channel is a channel. The rules don't care.)

So, obviously you want to know how to get at the greatest amount of the unencrypted data that's encoded in the non-randomness, and how do you actually then extract the contents?

In other words, is there a general purpose function that can do basic, naive cryptanalysis? And what, exactly, can such a function achieve given a channel of N bits and a message of M bits?

In other words, how much non-randomness can a cypher have before you definitely know there's enough information leakage in some arbitrary cypher for the most naive cryptanalysis possible (excluding brute-force, since that's not analytical and isn't naive since you have to know the cypher) to be able to break the cypher in finite time? (Even if that's longer than the universe is expected to last.)

Is there some function which can take the information leakage rate and the type and complexity of the cypher to produce a half-life of that class of cyphers, where you can expect half of a random selection of cyphers (out of all cyphers with the same characteristics) to be broken at around that estimated half-life point?

If you can do that, then you know how complex you can make your cypher for a competition page, and how simple you can afford it when building a TrueCrypt replacement.