Кіріспе
Көп әріпті шифрлау жүйесінің қарапайым түрі – Вигенер шифры (viʒnɛːʁ) – әліпбилік мәтінді шифрлау әдісі, онда ашық мәтіннің әрбір әрпі әртүрлі Цезарь шифрымен кодталады, оның жылжу мөлшері басқа мәтіннің сәйкес әрпімен, яғни кілтпен анықталады. Мысалы, егер ашық мәтін «түнде шабуыл» болса және кілт OCULORHINOLARINGOLOGY болса, онда ашық мәтіннің бірінші әрпі «а» әліпбиде 14 позицияға жылдырылады (өйткені кілттің бірінші әрпі «O» әліпбидің 14-ші әрпі, 0-ден санағанда), нәтижесінде «о» шығады; екінші әрпі «t» 2 позицияға жылдырылады (өйткені кілттің екінші әрпі «C» 2-ні білдіреді), нәтижесінде «v» шығады; үшінші әрпі «t» 20 позицияға жылдырылады («U»), айналыммен; және т.б., нәтижесінде «ovnlqbpvt hznzouz» хабары алынады. Егер хабарды алушы кілтті білсе, ол осы процесті кері қайтара отырып, ашық мәтінді қалпына келтіре алады. Сондықтан Вигенер шифры – полиалфавиттік алмастырудың ерекше жағдайы. Алғаш рет 1553 жылы Джован Баттиста Белласо сипаттаған бұл шифрды түсіну және іске асыру оңай, бірақ ол үш ғасырдан кейін, 1863 жылға дейін оны бұзуға жасалған барлық әрекеттерге қарсы тұрды. Осының нәтижесінде ол «le chiffrage indéchiffrable» (француз тілінде «талдауға келмейтін шифр») деген аталымға ие болды. Көптеген адамдар Вигенер шифрына ұқсас шифрлау схемаларын қолдануға тырысты. 1863 жылы Фридрих Касиски Вигенер шифрларын шешудің жалпы әдісін алғаш рет жариялады. 19 ғасырда бұл схема қате түрде Блез де Вигенерге (1523–1596) жатқызылды және осылайша қазіргі атауын алды.
The Vigenère cipher (viʒnɛːʁ) is a method of encrypting alphabetic text where each letter of the plaintext is encoded with a different Caesar cipher, whose increment is determined by the corresponding letter of another text, the key. For example, if the plaintext is attacking tonight and the key is OCULORHINOLARINGOLOGY, then
the first letter a of the plaintext is shifted by 14 positions in the alphabet (because the first letter O of the key is the 14th letter of the alphabet, counting from 0), yielding o;
the second letter t is shifted by 2 (because the second letter C of the key means 2) yielding v;
the third letter t is shifted by 20 (U) yielding n, with wrap around;
and so on; yielding the message ovnlqbpvt hznzouz. If the recipient of the message knows the key, they can recover the plaintext by reversing this process. The Vigenère cipher is therefore a special case of a polyalphabetic substitution. First described by Giovan Battista Bellaso in 1553, the cipher is easy to understand and implement, but it resisted all attempts to break it until 1863, three centuries later. This earned it the description le chiffrage indéchiffrable (French for 'the indecipherable cipher'). Many people have tried to implement encryption schemes that are essentially Vigenère ciphers. In 1863, Friedrich Kasiski was the first to publish a general method of deciphering Vigenère ciphers. In the 19th century, the scheme was misattributed to Blaise de Vigenère (1523–1596) and so acquired its present name.
Тарих
Полиалфавиттік шифрдың ең алғашқы жақсы құжатталған сипаттамасын Леон Баттиста Альберти 1467 жылы жасаған, ол шифрлік әліпбилерді ауыстыру үшін металл шифр дискісін қолданған. Альбертидің жүйесі бірнеше сөзден кейін ғана әліпбилерді ауыстырды, ал ауыстырулар шифрланған мәтінде тиісті әліпбидің әріптерін жазу арқылы көрсетілді. Кейіннен Иоганн Тритмиус өзінің "Полиграфия" атты еңбегінде (1508 жылы қолжазба түрінде аяқталып, 1518 жылы алғаш рет басылып шыққан) Вигенер шифрының маңызды құралы – "табула ректа" дегенді ойлап тапты. Дегенмен, Тритмиус шифры шифрлік әліпбилерді ауыстыру үшін прогрессивті, бірақ қатты және болжамды жүйе ұсынды. 1586 жылы Блез де Вигенер полиалфавиттік шифрдың бір түрін жариялады, ол автокілт шифры деп аталды, себебі оның кілті Франция королі Генрих III сарайындағы бастапқы қарапайым мәтінге негізделген. Алайда, қазір Вигенер шифры деп танылатын шифр, бастапқыда Джован Баттиста Белласоның 1553 жылғы "La cifra del Sig. Giovan Battista Bellaso" кітабында сипатталған шифрға негізделген. Ол Тритмиус жасаған "табула ректа" үлгісін пайдаланды, бірақ әр әріпті шифрлеу үшін қайталанатын "қарсы белгіні" (кілтті) қосты. Альберти мен Тритмиус алмастырудың белгілі бір үлгісін қолданғанда, Белласоның схемасы алмастыру үлгісін жаңа кілтті таңдау арқылы оңай өзгертуге мүмкіндік берді. Кілттер әдетте екі тарапқа да бұрыннан белгілі сөздер немесе қысқа сөз тіркестері болды, немесе хабарламамен бірге "байланыстан тыс" берілді. Белласо әдісі тек кілттің қауіпсіздігін қамтамасыз етуді қажет етті. Қысқа кілт сөз тіркесін, мысалы, бұрынғы жеке әңгіме арқылы қорғау салыстырмалы түрде оңай болғандықтан, Белласо жүйесі айтарлықтай қауіпсіз болды. Алайда, қазіргі Вигенер шифрынан айырмашылығы, Белласо шифры әр әріпке 26 түрлі "ауысымды" (әртүрлі Цезарь шифрларын) емес, әр әріп жұбына 13 ауысымды енгізді. 19 ғасырда, негізінен Белласо жасаған шифрдың өнертабысы Вигенерге қате атрибуцияланды. Дэвид Кан өзінің "Кодтар" кітабында осы қате атрибуцияны өкінішпен атап өтті, тарихтың "осы маңызды үлеске немқұрайлы қарап, оның орнына оған [Вигенерге] регрессивті және қарапайым шифрды тағайындағанын" айтты, оның бұған еш қатысы болмаған. Вигенер шифры өте күшті репутацияға ие болды. Белгілі жазушы және математик Чарльз Латвидж Доджсон (Льюис Кэрролл) 1868 жылы балалар журналындағы "Әліппе шифры" мақаласында Вигенер шифрын бұзу мүмкін емес деп атады. 1917 жылы "Scientific American" журналы Вигенер шифрын "аудармаға келмейтін" деп сипаттады. Бұл репутация негізсіз болды. Чарльз Бэббидж 1854 жылға дейін шифрдың бір түрін бұзғанын көрсетті, бірақ жұмысын жарияламады. Касиски шифрды толығымен бұзып, 19 ғасырда әдісін жариялады, бірақ тіпті 16 ғасырда да кейбір білікті криптоаналитиктер кейде шифрды бұза алатын. Мысалы, Америка Конфедерациялық Штаттары Америка Азамат соғысы кезінде Вигенер шифрын іске асыру үшін мыс шифр дискісін қолданды. Конфедерацияның хабарлары құпия емес еді, ал Одақ оның хабарларын үнемі бұзып шығарды. Соғыс бойында Конфедерация басшылығы негізінен үш кілт сөз тіркесіне сүйенді: "Манчестер Блеф", "Толық Жеңіс" және соғыс аяқталғанда "Қиямет келді". Кілттің ұзындығы хабарламамен бірдей және қайта пайдаланбайтын толығымен кездейсоқ кілтті қолданатын Вигенер шифры бір реттік блокқа айналады, бұл теориялық тұрғыдан бұзу мүмкін емес шифр. Гилберт Вернам бұзылған шифрды жөндеуге тырысты (1918 жылы Вернам-Вигенер шифрын жасады), бірақ ол қолданған технология тым қиын болды.
Криптоанализ
Вигенер шифрының идеясы, барлық басқа полиалфавиттік шифрлар сияқты, қарапайым жиілік талдауын қолдануға кедерлес болу үшін ашық мәтіннің әріптерінің жиілігін жасыру болып табылады. Мысалы, егер P – ағылшын тіліндегі ашық мәтіннен шифрланған мәтінде ең көп кездесетін әріп болса, онда P әрпі e әрпіне сәйкес келеді деп болжауға болады, себебі e – ағылшын тіліндегі ең көп қолданылатын әріп. Дегенмен, Вигенер шифрын қолдану арқылы e әрпі хабардың әртүрлі бөліктерінде әртүрлі шифрланған әріптермен шифрлануы мүмкін, бұл қарапайым жиілік талдауын күшсіздендіреді. Вигенер шифрының басты кемшілігі – кілттің қайталануы. Егер криптоаналитик кілттің ұзындығын n дұрыс анықтаса, шифрланған мәтінді n аралас Цезарь шифры ретінде қарастыруға болады, оларды жеке-жеке бұзу оңай. Кілттің ұзындығын n-нің барлық мүмкін мәндерін сынау арқылы табуға болады, ал Касиски зерттеуі мен Фридман тестісі кілттің ұзындығын анықтауға көмектеседі (төменде қараңыз: және).
Жиілік талдау
Кілттің ұзындығы белгілі болғаннан кейін шифрланған мәтінді осы санға тең бағандарға қайта жазуға болады, әр баған кілттің бір әрпіне сәйкес келеді. Әрбір баған – бір Цезарь шифрымен шифрланған ашық мәтін. Цезарь кілті (ауысым) – дәл сол баған үшін қолданылған Вигенер кілтінің әрпі. Цезарь шифрын бұзуға қолданылатын тәсілдерге ұқсас әдістерді пайдаланып, шифрланған мәтіннің әрпін анықтауға болады. Касиски тексеруінің жетілдірілген түрі, Керкхофф әдісі деп аталады, әр бағанның әріптерінің жиілігін ауыстырылған ашық мәтін жиіліктерімен салыстырып, сол баған үшін кілт әрпін (Цезарь ауысымын) анықтайды. Кілттің барлық әрпі белгілі болған соң, криптоаналитик шифрланған мәтінді ғана дешифрлеуі және ашық мәтінді ашуы керек. Егер Вигенер кестесі әдеттегі әліпбилік реттіліктерді пайдаланбастан, реттелген болса, Керкхофф әдісі қолданылмайды, бірақ кілттің ұзындығын анықтау үшін Касиски тексеруі мен сәйкестік сынақтарын пайдалануға болады.
Бофорт нұсқасы
Бір қарапайым нұсқасы – Вигенер шифрлау әдісімен шифрлауды және Вигенер шифрлау әдісімен шифрды ашу. Бұл әдіс кейде "Вариант Бофорт" деп аталады. Ол Франсис Бофорт жасаған Бофорт шифрынан өзгеше, ол Вигенерге ұқсас болғанымен, сәл өзгертілген шифрлау механизмі мен кестесін пайдаланады. Бофорт шифры – өзара шифр.
Гронсфельд шифры
Вигенер шифрының сырттай берілген күштілігіне қарамастан, ол Еуропа бойынша кеңінен таралған жоқ. Гронсфельд шифры Гаспар Шотттың Гонсфельд графына (Josse Maximilaan van Gronsveld né van Bronckhorst) жатқызған түрі, бірақ шындығында 1560-1570 жылдары Мантуя герцогының елшісі бұл шифрды одан да ертерек қолданған. Ол Вигенер шифрымен бірдей, бірақ тек 0-ден 9-ға дейінгі сандарға сәйкес келетін 10 түрлі шифрлық әліпбиді пайдаланады: 0123 Gronsfeld кілті ABCD Вигенер кілтімен толықтай сәйкес келеді. Гронсфельд шифрының кілті сөз болмағандықтан оның қауіпсіздігі артады, бірақ тек 10 шифрлық әліпбиді пайдалануы оны әлсіздетеді. Оның кемшіліктеріне қарамастан, Гронсфельд шифры Германия мен Еуропа бойынша кеңінен қолданысқа енді.
Вигенердің автоматты кілт шифры
Вигенер шындығында, күштірек шифрды – автокілт шифрын ойлап тапты. Бірақ "Вигенер шифры" деген атау оның орнына қарапайым көп әріпті шифрмен байланысты болды. Шындығында, екі шифр көбінесе шатастырылып, кейде екеуін де бұзуға болмайтын шифр деп атаған. Бэббидж шын мәнінде әлдеқайда күшті автокілт шифрын бұзған, бірақ Касискиге тұрақты кілтті көп әріпті шифрлардың алғашқы жарияланған шешімін тапқаны үшін көбінесе мақтау беріледі.