Planlaşdırıldığından daha zəif
Orqkomitənin Kitoşima proqramlaşdırma müsabiqəsinin üzvləri, gizli mesajlarını qorumaq üçün kriptoqrafik proqram təminatından istifadə etməyə qərar verdilər. Bu məqsədlə, Kodai Software şirkətindən mürəkkəb riyazi şifrə əsaslı bir proqram hazırlamalarını istədilər.
İT layihələrinin icrası ilə bağlı hesabatların təhlili göstərdi ki, bir çox layihə ya vaxtında, ya büdcə çərçivəsində, ya da tələb olunan xüsusiyyətlər və funksiyalarla tamamlanmır. Bu vəziyyət də fərqli olmadı. Kodai Software mürəkkəb şifrəni təyin olunmuş müddətə qədər hazırlaya bilmədi və şirkət daha sadə bir variant təklif etdi. Bu variantda əvəzləmə üsulu ilə şifrləmə həyata keçirilirdi. Orqkomitə üzvləri bu qərardan narazı qaldılar və məhsulun tam spesifikasiyasını tələb etdilər, lakin başqa seçim olmadığı üçün təqdim olunan proqramdan istifadə etməyə məcbur oldular.
Gələcəkdə, şifrləmə öncəsi mətni verilmiş, şifrləmə sonrası alınan mətni isə şifrlənmiş adlandıracağıq.
Sadə hərf əvəzləmə şifrəsi istifadə olunur və əvəzləmə qaydası cütlər toplusu ilə verilir. Cüt iki nizamsız hərfdən ibarətdir, yəni cütdəki hərflərin sırası əhəmiyyət daşımır. Bu o deməkdir ki, (A, B) cütü və (B, A) cütü eyni məna daşıyır. Bir əvəzləmə qaydasında bir hərf bir cütdən çox cütdə ola bilməz. Mətndə bu cütdən hər hansı bir hərf göründükdə, o, bu cütdəki digər hərflə əvəz olunur. Cütlər spesifikasiyasında göstərilməyən hərflər dəyişməz qalır.
Məsələn, verilmiş mətn üçün
ABCDEFGHIJKLMNOPQRSTUVWXYZ
f{(A, Z), (B, Y)} əvəzləmə qaydasının istifadəsi aşağıdakı şifrlənmiş mətni verir:
ZYCDEFGHIJKLMNOPQRSTUVWXBA
Bu bizim üçün böyük bir şans ola bilər, çünki əvəzləmə qaydaları zəif qorunmuş görünür. Bəlkə, biz orqkomitə üzvlərindən bəzi əlaqələri öyrənə bilərik. Sizin vəzifəniz şifrlənmiş mətni oxuyub verilmiş mesajı çıxaran deşifrə proqramı hazırlamaqdır.
Şifrlənmiş mesaj bir və ya bir neçə şifrlənmiş mətn sözündən ibarətdir. Şifrlənmiş mətn sözü verilmiş mətn sözündən əvəzləmə qaydalarının tətbiqi ilə yaradılır. Sizdə mətnə daxil ola biləcək sözlərin siyahısı var, mətnə başqa sözlər daxil ola bilməz. Siyahıdakı bəzi sözlər mətndə istifadə olunmaya bilər.
Həmişə verilmiş mətnin şifrlənmiş mətnə müəyyən əvəzləmə qaydasının tətbiqi ilə əldə edildiyi bir namizəd sözlər ardıcıllığının mövcudluğu təmin edilir. Qeyd edin ki, elə hallar ola bilər ki, mövcud şifrlənmiş mətn və namizəd sözlər siyahısı ilə başlanğıc mətni dəqiq müəyyən etmək mümkün deyil.
Giriş verilənləri
Giriş məlumatları bir neçə məlumat dəstindən ibarətdir, hər biri şifrlənmiş mesaj mətnini və namizəd sözlər siyahısını aşağıdakı formatda ehtiva edir.
n word1 . . . wordn sequence
Birinci sətirdəki n namizəd sözlərin sayını göstərən müsbət tam ədəddir. Növbəti n sətirin hər biri bir namizəd sözdür. Dəstin sonuncu sətirində bir və ya bir neçə sözdən ibarət olan, boşluqla ayrılmış və nöqtə ilə bitən şifrlənmiş ardıcıllıq verilir.
Hər bir ardıcıllığın simvollarının sayının 1-dən çox və 80-ə bərabər və ya az olduğunu, boşluqlar və nöqtə daxil olmaqla, qəbul edə bilərsiniz. Siyahıda namizəd sözlərin sayı 20-dən çox deyil. Yalnız A-dan Z-yə qədər olan 26 böyük hərf sözlərdə istifadə olunur və hər bir sözün uzunluğu 1-dən 20-yə qədərdir.
Bir sıfırdan ibarət sətir giriş məlumatlarının sonunu göstərir.
Çıxış verilənləri
Hər bir giriş məlumat dəsti üçün proqramınız ayrı bir sətirdə deşifrə olunmuş mesajı çap etməlidir. Çıxış sətirindəki iki bitişik söz bir boşluqla ayrılmalıdır, son söz isə nöqtə və sətir keçidi ilə müşayiət olunmalıdır. Əgər başlanğıc mətni dəqiq müəyyən etmək mümkün deyilsə, çıxış sətiri dərhal nöqtə ilə izlənən bir tire içərməlidir.