Vijener Şifrələməsi
Vijener şifrəsi, ən qədim və ən geniş yayılmış şifrələmə metodlarından biridir. Bu metod ilk dəfə 1553-cü ildə Covanni Battista Bellaso tərəfindən təsvir edilmiş və 1586-cı ildə Blez de Vijener tərəfindən təkmilləşdirilmişdir.
Vijener şifrəsi, açıq mətnin hər bir hərfini şifrələnmiş mətnin bir hərfinə çevirir. Bu proses, açıq mətnin hər bir hərfini müvafiq mövqedəki açarın hərfi ilə birləşdirməklə həyata keçirilir. Əgər açar açıq mətndən qısadırsa, o zaman açar təkrarlanır. Məsələn, uzunluğu 3 olan bir açar və uzunluğu 7 olan bir açıq mətn üçün hərflər aşağıdakı kimi birləşdiriləcəkdir (k[i]
- açar hərfi, p[i]
- mətn hərfi və c[i]
- alınan şifrələnmiş mətn hərfi).
Açar hərfi, mətn hərfinin əlifbada "irəliyə doğru" neçə mövqe "sürüşdürülməli" olduğunu göstərir. Əgər açar hərfi A-dırsa, müvafiq açıq mətn hərfi bir mövqeyə, B isə iki mövqeyə və s. sürüşdürüləcəkdir. Əlifba dairəvi hesab olunur, yəni son hərfdən (Z) sonra A gəlir. Diqqət yetirin ki, A (açar) ilə A (açıq mətn) birləşdirildikdə B-yə gətirib çıxaracaq, bu, adi Vijener şifrəsi üçün bir qədər qeyri-adi ola bilər. Tapşırığın şərtinin sonunda verilmiş Vijener kvadratı, açıq mətn hərflərinin şifrələnmiş mətn yaratmaq üçün açar hərfləri ilə necə birləşdirildiyi barədə ümumi təsəvvür verir.
Sizin vəzifəniz, verilmiş açarla Vijener şifrəsindən istifadə edərək mesajları şifrələyən bir proqram yazmaqdır.
Giriş məlumatları
Bir neçə testdən ibarətdir. Hər bir test iki sətirdən ibarətdir: birinci sətir şifrələmə açarı, ikinci isə açıq mətn. Açar və açıq mətn ingilis əlifbasının böyük hərflərindən {A, B, C, ..., Z} ibarətdir. Açarın uzunluğu 1 ilə 1000 arasında, açıq mətnin uzunluğu isə 1 ilə 10^5
daxil olmaqla dəyişir.
Giriş məlumatları bir sıfırdan ibarət sətirlə tamamlanır.
Çıxış məlumatları
Hər bir test üçün mesajın şifrələnmiş versiyasını çıxarın.