Playfair Şifrəsi
Playfair şifrəsi, əl ilə simmetrik şifrələmə texnikasıdır və ilk digraf əvəzetmə şifrəsi kimi tanınır. Bu metod 1854-cü ildə Charles Wheatstone tərəfindən icad edilmişdir, lakin şifrənin populyarlaşmasına kömək edən Lord Playfairin adı ilə tanınır.
Playfair şifrəsi, hər bir ingilis əlifbası hərfini (istisna olaraq 'Q' hərfi olmadan) yalnız bir dəfə ehtiva edən 5 x 5 ölçülü bir cədvəldən istifadə edir. Bu cədvəl şifrələmə açarını təşkil edir. Cədvəli daha asan yadda saxlamaq üçün adətən açar ifadədən istifadə olunur. Əvvəlcə cədvəlin boş yerlərini açar ifadənin hərfləri ilə doldurun (təkrarlanan hərfləri və boşluqları nəzərə almadan), sonra qalan boş yerləri əlifbanın qalan hərfləri ilə doldurun. Açar ifadə cədvəlin üst sıralarında soldan sağa yazılır. Məsələn, açar ifadə "playfair example" olarsa, şifrələmə açarı belə olur:
Mesajı şifrələmək üçün bütün boşluqları çıxarın və mesajı digraflara (hər biri 2 hərfdən ibarət qruplara) bölün. Məsələn, "Hello World" "HE LL OW OR LD" kimi olur. Sonra bu digrafları açar cədvəlində xəritələndirin və aşağıdakı qaydalara uyğun olaraq hərf birləşmələrinə tətbiq edin:
Hər iki hərf eynidirsə (və ya yalnız bir hərf qalıbsa), ilk hərfdən sonra 'X' əlavə edin. Yeni cütlüyü şifrələyin və davam edin (bu, qalan bütün digrafları dəyişdirir).
Hərflər cədvəlinizin eyni sırasında yerləşirsə, onları müvafiq olaraq dərhal sağdakı hərflərlə əvəz edin (əgər orijinal cütdəki hərf sıranın sağ tərəfindədirsə, sıranın sol tərəfinə dolanaraq). Yuxarıdakı cədvəllə, 'CH' digrafı 'DB' ilə şifrələnəcəkdir.
Hərflər cədvəlinizin eyni sütununda yerləşirsə, onları müvafiq olaraq dərhal aşağıdakı hərflərlə əvəz edin (əgər orijinal cütdəki hərf sütunun alt tərəfindədirsə, sütunun üst tərəfinə dolanaraq). Yuxarıdakı cədvəllə, 'VA' digrafı 'AE' ilə şifrələnəcəkdir.
Hərflər eyni sıra və ya sütunda deyilsə, onları müvafiq olaraq eyni sırada olan, lakin orijinal cüt tərəfindən müəyyən edilmiş düzbucağın digər künclərində olan hərflərlə əvəz edin. Sıra vacibdir: şifrələnmiş cütün ilk hərfi, açıq mətn cütünün ilk hərfi ilə eyni sırada olan hərfdir. Yuxarıdakı cədvəllə, 'KM' digrafı 'SR' ilə şifrələnəcəkdir.
Açar ifadəni və şifrələnəcək açıq mətni oxuyan və şifrələnmiş mətni çıxaran bir proqram yazın.
Şifrələnəcək mətndə ardıcıl iki 'x' və ya son simvol olaraq 'x' olmayacaq, çünki bu, yuxarıdakı birinci qaydanın sonsuz təkrarlanmasına səbəb ola bilər.
Giriş verilənləri
Giriş iki sətirdən ibarətdir. Birinci sətir açar ifadəni ehtiva edir. İkinci sətir şifrələnəcək mətni ehtiva edir. Hər sətir 1 ilə 1000 arasında simvol ehtiva edəcək, daxil olmaqla. Hər bir simvol kiçik ingilis hərfi, 'a' - 'z' (q istisna olmaqla) və ya boşluq simvolu olacaq. Heç bir sətir boşluqla başlamayacaq və ya bitməyəcək.
Çıxış verilənləri
Çıxışda şifrələnmiş mətni böyük hərflərlə ehtiva edən tək bir sətir olmalıdır. Çıxışda boşluq olmamalıdır.