სიმეტრიული კრიპტოსისტემა

სიმეტრიული კრიპტოსისტემა წარმოადგენს ისეთ სისტემას, რომელშიც ინფორმაციის შიფრაცია/დეშიფრაციისათვის გამოიყენება 1 გასაღები. მოკავშირე მხარეებს შორის ინფორმაციის გაცვლის დაწყებამდე გასაღები უნდა იყოს შეთანხმებული და შენახულ იქნას საიდუმლოდ მანამდე, სანამ ინფორმაციის საიდუმლოება უნდა იქნეს უზრუნველყოფილი. იდეალური სიმეტრიული ალგორითმის უსაფრთხოება მთლიანად განისაზღვრება გასაღების უსაფრთხოებით. სანამ უსაფრთხო და დაცულია გასაღები, მანამ დაცულია თვითონ სისტემაც. სიმეტრიული ალგორითმით შიფრაცია და დეშიფრაცია აღინიშნება შემდეგნაირად: EK(M)=C DK(C)=M სადაც M — ტექსტია, C — შიფროტექსტი, K — გასაღები, E და D — შესაბამისად შიფრაციის და დეშიფრაციის ალგორითმები. E და D უნდა იყოს ურთიერთშექცევადი ფუნქციები, ანუ უნდა სრულდებოდეს პირობა : M=DK(EK(M)) სიმეტრიული შიფრები იყოფა 2 ნაწილად: ბლოკური შიფრი და ნაკადური შიფრი. ბლოკური შიფრები საწყის ინფორმაციას ყოფენ ბიტების (ან ბაიტების)განსაზღვრული სიგრძის ბლოკებად და შემდგომ შიფრავენ გასაღების გამოყენებით. ბლოკების სიგრძის სტანდარტული მნიშვნელობებია 64, 128 ან 256 ბიტი. გამომავალი შიფროტექსტიც წარმოადგენს განსაზღვრული სიგრძის (ხშირად იგივე, რაც შემავალი ტექსტის სიგრძე) ბლოკს. გამომავალი შიფროტექსტის ბლოკების ერთმანეთთან დამოკიდებულების შესაქმნელად გამოიყენება ე.წ. მოქმედების რეჟიმები. გამოიყენება ე.წ. იტერაციული შიფრები, რომლის დროსაც ტექსტის 1 ბლოკი რამდენიმეჯერ მუშავდება.თითოეულ იტერაციას ეწოდება რაუნდი. როგორც წესი, თანამედროვე შიფრებში რაუნდების რაოდენობა 4-32-ია. მათი უმეტესობა ემყარება ე.წ. ფეისტელის ქსელებს, რომელიც ავტომატურად უზრუნველყოფს შიფრაციის და დაშიფრაციის ალგორითმების ურთიერთშექცევადობას, მაშინაც კი, როდესაც მასში შეუქცევადი მათემატიკური ფუნქციები გამოიყენება. ძირითადი შემადგენელი ნაწილებია S-ბლოკები, არითმეტიკული ოპერაციები, ბულის ოპერაციები (XOR) და სხვადასხვა პერმუტაციები. ბლოკური შიფრების მაგალითია AES, TWOFISH, SKIPJACK, DES, IDEA, CAST და სხვ. ნაკადური შიფრები მოქმედებენ არა ბლოკებზე, არამედ ცალკეულ ბიტებზე. შიფროტექსტის ყოველი გამომავალი ბიტი დამოკიდებულია გასაღებზე, შიფრის მდგომარეობაზე და შიფროტექსტის წინა ბიტებზე. უმეტესად გამოიყენება ისეთ გარემოში, სადაც წინასწარ ცნობილი არაა, რა მოცულობის ინფორმაცია უნდა გადაიცეს. ასეთი შიფრების მაგალითია RC4,SEAL და სხვა. სიმეტრიულ ალგორითმებში გასაღების სიგრძე, როგორც წესი, შეადგენს 40, 56, 64, 80, 128, 192 ან 256 ბიტს. რაც მეტია გასაღების სიგრძე, მით რთულდება მისი ამოცნობა უხეში ძალის მეთოდით (უხეში ძალის მეთოდი). ამჟამად გასაღების მინიმალურ სიგრძედ მიღებულია 80 ბიტი. სიმეტრიული ალგორითმების უპირატესობა მისი სიმარტივე და შესაბამისად მეტი სისწრაფეა. სიმეტრიული ალგორითმის სიჩქარე ასიმეტრიულთან შედარებით დაახლოებით 800—1000-ჯერ მეტია, რაც მიიღწევა მარტივი არითმეტიკული გამოთვლების გამოყენებით. სიმეტრიულ ალგორითმებს ასევე ახასიათებთ რამდენიმე ნაკლი:1) თუ მონაცემები იცვლება N პირს შორის, მაშინ თითოეულ პირს ესაჭიროება N-1 გასაღები, სულ კი საჭიროა N(N-1)/2 გასაღები. პირთა რაოდენობის ზრდასთან ერთად საჭირო გასაღებების ოდენობა კვადრატულად იზრდება. 2)საჭირო ხდება წინასწარ გასაღების გაცვლა. ამ დროს იგივე პრობლემა წარმოიშვება, რაც ზოგადად ინფორმაციის გაცვლის დროს - გასაღებიც ასევე საიდუმლოდ უნდა იქნას გადაცემული, რათა უცხომ არ შეძლოს მისი მოპოვება. წინააღმდეგ შემთხვევაში ყველა ის შეტყობინება, რომელიც დაშიფრულ იქნება ამ გასაღებით, ცნობილი გახდება მოწინააღმდეგისათვისაც. ამ პრობლემის გადასაჭრელად გამოიყენება გასაღების მართვის სხვადასხვა ალგორითმები. სიმეტრიული კრიპტოსისტემების წინააღმდეგ კრიპტოანალიზი იყენებს ისეთ მეთოდებს, როგორებიცაა შეტევა ცნობილი ტექსტით, შეტევა არჩეული ტექსტით, წრფივი და დიფერენციალური კრიპტოანალიზი. დაცული ალგორითმის შექმნისას ყურადღება უნდა მიექცეს გასაღების სიგრძეს, ბლოკის სიგრძეს, რაუნდების რაოდენობას. ასევე მნიშვნელოვანია ის გარემოებაც, თუ რამდენად სწორადაა არჩეული გასაღები. გასაღების გენერირებისათვის, როგორც წესი, ფსევდოშემთხვევითი გასაღების გენერატორი გამოიყენება. ამ გენერატორებში ან მათი ინციალიზაციის ვექტორებში შემთხვევითობის ფაქტორის სიმცირემ შესაძლოა დამატებითი მასალა მისცეს კრიპტოანალიტიკოსს ანალიზისათვის.