Eventually, of course, variations of substitution algorithms appeared. These algorithms used multiple alphabets and could not be cracked by simple frequency analysis. One of these, the Vigenere Square, used 26 copies of the alphabet and a key word to determine which unique substitution was to be used on each letter of the message.This complex, poly alphabetic algorithrm, developed by the 16th century French diplomat, Blaise de Vigenere, was not broken for 300 years. One of the reasons for its success was the infinite variety of keys- the key space that could be used. The key itself, a word or even a random combination of letters, could be of varied length, and any possible combination of characters could be used. In general, the larger the key space, the harder a code is to crack.