I won’t actually try to crack this since writing the program would take more time than I’m inclined to spend here, but the principle is simple: Do frequency analysis based on assuming the key is a particular length. If taking every 5th character gives you a letter frequency that resembles English, but taking every 4th or 6th character does not, then the key is 5 letters long. Proceed from there.
Yup. (One handy trick is to take message—shift(message,k) mod 26 for candidate values of k, and see which has a histogram that looks most like that of (English text minus other English text). But it’s probably actually better to find good candidate shifts for each evenly-spaced subset of the text and look for ones that match up.)
JRMayne’s latest sample is still pretty short. It might require human cleverness to solve. If I have time tomorrow (and unless someone else has done it first) I may have a go.
I won’t actually try to crack this since writing the program would take more time than I’m inclined to spend here, but the principle is simple: Do frequency analysis based on assuming the key is a particular length. If taking every 5th character gives you a letter frequency that resembles English, but taking every 4th or 6th character does not, then the key is 5 letters long. Proceed from there.
Yup. (One handy trick is to take message—shift(message,k) mod 26 for candidate values of k, and see which has a histogram that looks most like that of (English text minus other English text). But it’s probably actually better to find good candidate shifts for each evenly-spaced subset of the text and look for ones that match up.)
JRMayne’s latest sample is still pretty short. It might require human cleverness to solve. If I have time tomorrow (and unless someone else has done it first) I may have a go.
(No, didn’t have time. Sorry. Probably no time on Monday either...)