ჩანაცვლებადი შიფრი

ჩანაცვლებადი შიფრი წარმოადგენს კრიპტოგრაფიულ ალგორითმს, რომელშიც ხდება ღია ტექსტში ინფორმაციის ერთეულების ჩანაცვლება შესაბამისი შიფროტექსტით. ეს ერთეულები შესაძლოა წარმოადგენდეს ერთ სიმბოლოს(უმრავლეს შემთხვევაში), ან ორ და მეტ სიმბოლოთა ჯგუფს. გადანაცვლებადი შიფრისგან საპირისპიროდ, სადაც იცვლება სიმბოლოთა პოზიციები და თვით სიმბოლოები უცვლელი რჩება, ჩანაცვლებად შიფრში პოზიციები უცვლელი რჩება, ხოლო სიმბოლოები იცვლება.
არსებობს ჩანაცვლებადი შიფრის რამდენიმე ტიპი. მარტივი ჩანაცვლებადი შიფრი ოპერირებს ცალკეულ სიმბოლოებზე, ხოლო პოლიგრაფული - ორ ან მეტ სიმბოლოზე ერთდროულად. მონოალფაბეტური შიფრი იყენებს ჩამნაცვლებელი სიმბოლოების მხოლოდ ერთ ნაკრებს, ხოლო პოლიალფაბეტურმა შიფრმა ღია ტექსტის ერთი სიმბოლოს ჩასანაცვლებლად შეიძლება სხვადასხვა დროს სხვადასხვა ჩამნაცვლებელი სიმბოლო გამოიყენოს, განსაზღვრული მიმდევრობით.
მარტივი ჩანაცვლება
მარტივი ჩანაცვლებადი შიფრი წარმოადგენს ანბანურ ცხრილს - წინასწარ განსაზღვრული წესით ჩამოწერილ ანბანის სიმბოლოებს ანუ ჩანაცვლების ანბანს. ეს ანბანი შეიძლება წაძრული იყოს საწყისი ვარიანტიდან რამდენიმე ბიჯით (კეისრის შიფრი), შეიძლება იყოს უკუმიმდევრობით (ატბაში), ან სხვა ნებისმიერი მიმდევრობით. ასევე შესაძლებელია გასაღების გამოყენებაც - ირჩევენ კოდურ სიტყვას, რომელშიც სიმბოლოები არ მეორდება, და ბოლოში მიაწერენ ანბანის დანარჩენ სიმბოლოებს, რომლებიც ამ კოდურ სიტყვაში არაა. ჩანაცვლების ანბანის შესადგენად ასევე გამოდგება ნებისმიერი სიმბოლო ნებისმიერი სხვა ალფაბეტიდან , ციფრები ან გრაფიკული გამოსახულებები.
მაგალითები
შიფრაციის დროს, ღია ტექსტის ყოველ სიმბოლოს ცვლიან ჩანაცვლების ანბანიდან შესაბამისი სიმბოლოთი, ხოლო დეშიფრაციის დროს პირიქით - შიფროტექსტის ყოველ სიმბოლოს ცვლიან ჩვეულებრივი ანბანის შესაბამისი სიმბოლოთი.
შესაძლებელია შეიქმნას ჩანაცვლების ანბანის N! ვარიანტი, სადაც N - ღია ტექსტის ანბანის სიმბოლოთა რაოდენობაა. მიუხედავად იმისა, რომ ეს საკმაოდ დიდი რიცხვია, შიფრაციის აღწერილ მეთოდი ძალიან სუსტია - იგი ვერ ფარავს იმ ენის სიხშირულ მახასიათებლებს, რომელზეც ღია ტექსტია დაწერილი. ამის გამო მარტივი სიხშირული ანალიზით იოლი დასადგენია შიფროტექსტის სიმბოლოების შესაბამისობა საწყისი ანბანის სიმბოლოებთან. კრიპტოანალიტიკოსს შეუძლია ივარაუდოს, რა ენაზეა დაწერილი ღია ტექსტი, და მოძებნოს შიფროტექსტში რომელი სიმბოლოები აკმაყოფილებს ამ ენისათვის დამახასიათებელ სიხშირულ პარამეტრებს. შიფროტექსტში სიმბოლოთა თუნდაც მცირე ოდენობის (ჩვეულებრივ, 2-3) ამოცნობის შემთხვევაში სხვა სიმბოლოების ამოცნობის პროცესი მნიშვნელოვნად მარტივდება - ყოველი სიმბოლოს ამოცნობისას კრიპტოანალიტიკოსი მათ შიფროტექსტში ჩაანაცვლებს ოროგონალი სიმბოლოებით, რითაც კიდევ უფრო მეტი ტექსტი გახდება იოლად აღქმადი და კიდევ უფრო მეტი სიმბოლოების ამოცნობა გახდება შესაძლებელი. ასევე აიოლებს ამოცნობას კონკრეტული ენის სინტაქსური მახასიათებლები.
ჰომოფონური ჩანაცვლება
მარტივი ჩანაცვლების ნაკლის აღმოსაფხვრელად და სიხშირული ანალიზის გასართულებლად დაიწყეს ღია ტექსტის ყოველი სიმბოლოს ჩანაცვლება რამდენიმე სიმბოლოთი. ასეთ ჩანაცვლებას ახდენდნენ ძირითადად იმ სიმბოლოებზე, რომლებიც ხშირად გვხდებოდა მოცემულ ენაში. ამით შიფროტექსტში სიმბოლოთა სიხშირული განაწილება თითქმის თანაბრდებოდა და კრიპტოანალიზი გაცილებით რთულდებოდა. ასეთი შიფრაციის დროს საჭირო ხდება გაცილებით გრძელი ჩანაცვლების ანბანის შექმნა, ვიდრე ორიგინალი ანბანია. ამიტომ, ხშირად იყენებდნენ რიცხვებისგან შემდგარ ანბანს, დიდი და პატარა ასოების ვარიაციებს, შებრუნებულ/ამოტრიალებულს და დამოუკიდებლად შექმნილ სიმბოლოებსაც კი . შიფრაციის აღნიშნული მეთოდი გამოიყენებოდა XV საუკუნიდან XIX საუკუნის მიწურულამდე. არსებობდა.ე.წ. ნომენკლატორები - დიაგრამები, სადაც აღწერილი იყო შიფრაციისათვის ჩანაცვლების ანბანი. დროთა განმავლობაში კრიპტოანალიზის მეთოდების დახვეწას შიფრატორები მარტივად, ნომენკლატორში ჩამნაცვლებელი სიმბოლოების დამატებით პასუხობდნენ, რის გამოც XIX საუკუნის ბოლოს ზოგიერთი ნომენკლატორის ზომა 50 000 სიმბოლოს აღწევდა.
დღესდღეობით, ჰომოფონური ჩანაცვლებადი შიფრები პრაქტიკულად აღარ გამოიყენება და მხოლოდ ისტორიულ ინტერესის საგანს წარმოადგენს.
პოლიალფაბეტური ჩანაცვლება
პოლიალფაბეტური ჩანაცვლების შიფრი, დისკების სახით) პირველად აღწერილ იქნა 1467 წელს ლეონ ბატისტა ალბერტის მიერ. იოჰან ტრითემიუსი თავის წიგნში სტეგანოგრაფია წერდა შიფრაციის იგივე მეთოდზე. შერეული ალფაბეტის გამოყენების გაცილებით დახვეწილი მეთოდი აღწერა ჯიოვანი ბატისტა დელა პორტამ 1563 წელს, წიგნში De Furtivis Literarum Notis.
პოლიალფაბეტურ შიფრში გამოიყენება ჩანაცვლების მრავალი ანბანი. ყველა ეს ანბანი ჩამოიწერება ერთ ცხრილში, რომელსაც ტაბლო ეწოდება. ლათინური ანბანისათვის, ტაბლო წარმოადგენს 26X26 განზომილების ცხრილს. თითოეულ ანბანში სიმბოლოების მიმდევრობა განსაზღვრავს შიფრაციის პროცესს. ვინაიდან საკმარისად დიდი ღია ტექსტისათვის, ანბანთა გამოყენება შიფრაციის დროს მეორდება, ამიტომ ამ მეთოდით დაშიფრული ტექსტის გატეხვაც საკმაოდ იოლია.
ამ ალგორითმის ყველაზე პოპულარულ რეალიზაციას წარმოადგენს ვიჟენერის შიფრი, რომელიც 1585 წელს გამოქვეყნდა და 1863 წლამდე გაუტეხელ შიფრად ითვლებოდა (ასეც უწოდებდნენ: le chiffre indéchiffrable - გაუშიფრავი შიფრი (ფრანგულად)). ტაბლოს პირველი სტრიქონი ივსებოდა საწყისი ანბანით, ხოლო ყოველი შემდგომი სტრიქონი უბრალოდ წაიძვრებოდა ერთი ბიჯით მარჯვნივ. შიფრაციის დროს, გასაღები განსაზღვრავდა, თუ რომელი ჩანაცვლების ანბანი უნდა გამოყენებულიყო მიმდინარე სიმბოლოს ჩასანაცვლებლად.
1863 წელს ფრიდრიხ კასისკიმ გამოაქვეყნა მეთოდი (შესაძლოა ჩარლზ ბებიჯისგან დამოუკიდებლად აღმოჩენილი და შემუშავებული), რომელიც საშუალებას იძლეოდა გამოთვლილიყო ვიჟენერის შიფრის გასაღების სიგრძე. ამის შემდეგ შესაძლებელი ხდებოდა შიფროტექსტიდან გამორჩეულიყო ის სიმბოლოები, რომლებიც ერთი და იმავე ჩანაცვლების ანბანით დამუშავდა შიფრაციის დროს, და მათზე ტარდებოდა მარტივი უკუჩანაცვლების ოპერაციები. შედეგად ნაბიჯ-ნაბიჯ ხდებოდა პირვანდელი ღია ტექსტის აღდგენა.
მიუხედავად ამ კრიპტოანალიზისა, დღესაც კი ვიჟენერის შიფრი ითვლება საკმაოდ ძლიერ შიფრად, იმ პირობით, რომ გამოყენებულ იქნება შერეული ანბანები, გასაღები იქნება შემთხვევითი და ღია ტექსტის სიგრძე (ლათინური ანბანისათვის) იქნება ნაკლები, ვიდრე გასაღების სიგრძე X 27.6. ეს პირობები პრაქტიკაში რთული დასაცველია, ამიტომ ვიჟენერის შიფრის საიმედოობა კითხვის ნიშნის ქვეშ დგება ხოლმე.
თანამედროვე ნაკადური შიფრები შეიძლება განხილულ იქნეს, როგორც პოლიალფაბეტური შიფრის აბსტრაქტული ვარიანტი, რომელშიც გასაღები უსასრულოდ დიდი სიგრძისაა, ხოლო თავად გასაღები - არაგანმეორებადი და შემთხვევითი
პოლიგრაფული ჩანაცვლება
პოლიგრაფულ ჩანაცვლების შიფრში ღია ტექსტის არა ერთი სიმბოლო, არამედ სიმბოლოთა ჯგუფი. ამ მეთოდის უპირატესობაა სიმბოლოთა სიხშირული განაწილების გათანაბრება, თუმცა არასრულად. ამავე დროს ჩასანაცვლებელ ჯგუფთა დიდ სიმრავლის გამო რთულდება შიფროტექსტის კრიპტოანალიზი. მაგ. ქართული ანბანისათვის, თუ ჩანაცვლება მოხდება წყვილ-წყვილად, მაშინ იარსებებს 33x33=1089 ჯგუფი.
პირველი პრაქტიკული დიგრაფული შიფრი გამოიგონა ჩარლზ ვიტსტოუნმა 1854 წელს. სხვა პოლიგრაფული შიფრები აღწერა ფელიქს დელასტელიმ 1901 წელს, მათ შორის ტრიგრაფული შიფრი.1929 წელს ლესტერ ჰილმა გამოიგონა ჰილის შიფრი, რომელშიც ხდებოდა სომბოლოთა დიდი ჯგუფების ჩანაცვლება, წრფივი ალგებრის დახმარებით. ყოველი სიმბოლო განიხილება როგორც რიცხვი, A=0, B=1, C=2 და ა.შ. N სიმბოლოსგან შემდგარი ჯგუფი განიხილება, როგორც N განზომილების ვექტორი, და მრავლდება N×N მატრიცაზე. ეს მატრიცა წარმოადგენს გასაღებს და დგება, იმ პირობით რომ ჰქონდეს შებრუნებული (რათა შესაძლებელი გახდეს დეშიფრაცია).
ჰილის შიფრი ტყდება ცნობილი ღია ტექსტის შეტევით, ვინაიდან მასში ხდება მხოლოდ წრფივი გარდაქმნები. კრიპტოანალიზის გასართულებლად აუცილებელია შეტანილ იქნას არაწრფივი მათემატიკური გარდაქმნები, რასაც ე.წ. ფეისტელის ქსელებამდე მივყავართ. ეს უკანასკნელი კი თანამედროვე ბლოკური შიფრების ძირითად მოდულს წარმოადგენს.
მექანიკური შიფრატორები
პირველ მსოფლიო ომსა და კომპიუტერების საყოველთა გავრცელებამდე (1950-1960-იანი წლები) პერიოდში შიფრაციისათვის ფართოდ გამოიყენებოდა ჩანაცვლების პოლიალფაბეტური შიფრები, რომლებიც მექანიკური ან ელექტრომექანიკური აპარატების სახით იყო რეალიზებული. ზოგიერთი რეალიზაცია ერთდროულად გამოჩნდა და დაპატენტდა კიდეც 1919 წელს. მათ შორის გამორჩეული იყო გერმანული საშიფრი მანქანა ენიგმა, რომელსაც გერმანელი სამხედროები 1930 წლიდან იყენებდნენ. ყველა ეს მანქანა მსგავსი სქემით მოქმედებდა - შეტანილი სომბოლოები ჩანაცვლდებოდა სახვა სიმბოლოებით, რომელთაც თვით მანქანა ირჩევდა განსაზღვრული წესით. ეს ჩანაცვლების წესები წინასწარ დაიტანებოდა როტორულ დისკებზე. დისკები მექანიკურად იყო დაკავშირებული ერთმანეთთან, რაც ჩანაცვლების ანბანთა ასტრონომულ რაოდენობას უზრუნველყოფდა. მიუხედავად ამისა, ზოგიერთი ამ მანქანებით დაშიფრული ინფორმაციის გატეხვა მაინც მოხერხდა - ნაწილი მეორე მსოფლიო ომის დაწყებამდე, ნაწილი კი ომის პერიოდში. ომის მიმდინარეობის დროს, პოლონელმა კრიპტოანალიტიკოსმა მარიან რეჯევსკიმ შეძლო ენიგმას პირველი წარმატებული კრიპტოანალიზი განეხორციელებინა. შედეგები გადაეცა დიდი ბრიტანეთის კრიპტოანალიტიკურ ცენტრს (Bletchley Park), სადაც ომის წლებშივე შექმნეს მანქანა (Bombe) ამ შიფრატორის საწყისი პარამეტრების აღსადგენად.
ამავე დროს, ორი მსგავსი როტორული შიფრატორი, SIGABA და Typex დღემდე გაუტეხელია.
ერთჯერადი ბლოკნოტი
ერთჯერადი ბლოკნოტი წარმოადგენს გამორჩეულ ჩანაცვლების შიფრს. იგი გამოიგონეს მეორე მსოფლიო ომის დასასრულს აშშ-ში. კლოდ შენონმა მათემატიკურად დაამტკიცა მისი კრიპტომედეგობა. ერთჯერად ბლოკნოტს მხოლოდ პირობითად შეიძლება ეწოდოს ჩანაცვლების შიფრი, რადგან მასში სიმბოლოების არა ჩანაცვლება, არამედ გასაღების სიმბოლოებთან ერთგვარი კომბინირება ხდება (მაგ. XOR ოპერაციით).
ერთჯერადი ბლოკნოტი უმეტეს შემთხვევაში არაპრაქტიკულია. რადგამ მოითხოვს იმავე (ან მეტი) სიგრძის გასაღებს, ვიდრე ღია ტექსტია, ამავე დროს გასაღები უნდა იყოს აბსოლუტურად შემთხვევითი, გამოყენებულ უნდა იქნას მხოლოდ და მხოლოდ ერთხელ, და მუდმივად დაცული რჩებოდეს კრიპტოსისტემის გარეშე პირებისგან. წინააღმდეგ შემთხვევაში, ერთჯერადი ბლოკნოტის გატეხვა შესაძლებელი ხდება. მაგ. ამერიკელმა კრიპტოანალიტიკოსებმა შეძლეს გაეშიფრათ საბჭოთა აგენტების მიერ მეორე მსოფლიო ომის დროს გაგზავნილი შეტყობინებები, რომლებიც ერთჯერადი ბლოკნოტით იყო დაშიფრული. ამის მიზეზი გახდა გასაღების არაშემთხვევითობა.
თანამედროვე ჩანაცვლების შიფრები
დღესდღეობით შიფრები, რომლებიც კალმისა და ფურცლის დახმარებით გამოიყენებოდა, უკვე დავიწყებას ეძლევა. თანამედროვე კრიპტოგრაფია გადასულია ელექტროგამომთვლელი მანქანების, კომპიუტერების გამოყენებაზე. თუმცა ჩანაცვლების შიფრის იდეა კვლავაც გამოიყენება თანამედროვე ბლოკურ შიფრებში (DES, AES).ისინი შეიძლება განვიხილოთ, როგორც ჩანაცვლების შიფრი, რომელიც ბიტებზე ოპერირებს. ამისათვის ისინი იყენებენ სპეციალურ ჩანაცვლების ცხრილებს, რომელთაც S-box ეწოდებათ.
კრიპტოგრაფია