Юлий Цезарь был, якобы первым, кто придумал собственно шифр. Алфавит размещается на
круге по часовой стрелке (при этом в русском алфавите, после А идет Б, а после Я - А). Для
зашифровки буквы текста заменяются буквами, отстоящими по кругу на заданное число букв
дальше по часовой стрелке. Если, скажем, сдвиг на 3, то вместо i-й используется (i+3)-я буква,
например, вместо А пишется Г а вместо Я пишется В. При расшифровке наоборот берут букву на
заданное число букв ближе, т. е. двигаясь против часовой стрелки.
Шифр Цезаря расшифровать легко. Известны вероятности букв p[i],i =1,2,...,n, в языке
сообщения ( n - число букв в алфавите). подсчитаем частоты букв f[i] в зашифрованном
сообщении. Если оно не очень короткое, то f[i] должны сравнительно хорошо согласовываться
с p[i]: f[i] = p[i-s] для некоторого сдвига s. Затем начнем делать перебор по сдвигам. Когда сдвиг
не угадан, общее различие между p[i] и f[i+s] , равное D(s) = S | p[i] - f[i+s] | ( суммирование
берется по всем i от 1 до n), будет велико, а когда сдвиг угадан - мало. Минимизация D(s) по
всем s = 1,2,...,n дает ключ к расшифровке кода Цезаря. Напишите и испытайте программу
взлома шифра Цезаря.