სტრიმის შიფრი vs ბლოკის შიფერი | State Cipher vs Block Cipher
კრიპტოგრაფიაში, ნაკადის შიფრები და ბლოკის შიფრები არის ორი დაშიფვრის/გაშიფვრის ალგორითმი, რომლებიც მიეკუთვნება სიმეტრიული გასაღების შიფრების ოჯახს. როგორც წესი, შიფრი იღებს უბრალო ტექსტს შეყვანად და აწარმოებს შიფრულ ტექსტს, როგორც გამოსავალს. ბლოკის შიფრები შიფრავს ფიქსირებული სიგრძის ბიტების ბლოკს უცვლელი ტრანსფორმაციის გამოყენებით. ნაკადის შიფრები შიფრავს ბიტების ნაკადებს სხვადასხვა სიგრძით და იყენებს ცვალებად ტრანსფორმაციას თითოეულ ბიტზე.
რა არის Stream Cipher?
სტრიმის შიფრები მიეკუთვნება სიმეტრიული გასაღების შიფრების ოჯახს. ნაკადის შიფრები აერთიანებს უბრალო ტექსტის ბიტებს ფსევდო შემთხვევითი შიფრული ბიტების ნაკადთან XOR (ექსკლუზიური ან) ოპერაციის გამოყენებით.ნაკადის შიფრები შიფრავს უბრალო ტექსტის ციფრებს ერთ ჯერზე, თანმიმდევრული ციფრების განსხვავებული ტრანსფორმაციებით. იმის გამო, რომ თითოეული ციფრის დაშიფვრა დამოკიდებულია შიფრული ძრავის ამჟამინდელ მდგომარეობაზე, ნაკადის შიფრები ასევე ცნობილია როგორც სახელმწიფო შიფრები. როგორც წესი, ერთი ბიტი/ნაკბენი გამოიყენება როგორც ერთნიშნა. უსაფრთხოების პრობლემების თავიდან ასაცილებლად, უნდა დარწმუნდეთ, რომ ერთი და იგივე საწყისი მდგომარეობა არ არის გამოყენებული ერთზე მეტჯერ. ყველაზე ფართოდ გამოყენებული ნაკადის შიფრია RC4.
რა არის ბლოკის შიფერი?
ბლოკის შიფრი არის კიდევ ერთი სიმეტრიული გასაღების შიფრი. ბლოკის შიფრები მოქმედებენ ბლოკებზე (ბიტების ჯგუფებზე) ფიქსირებული სიგრძით. ბლოკის შიფრები იყენებენ ფიქსირებულ (უცვლელად) ტრანსფორმაციას ბლოკის ყველა ციფრისთვის. მაგალითად, როდესაც x-bit ბლოკის უბრალო ტექსტი (საიდუმლო გასაღებთან ერთად) მოცემულია ბლოკის შიფრის ძრავის შესატანად, ის აწარმოებს შიფრული ტექსტის შესაბამის x-bit ბლოკს. ფაქტობრივი ტრანსფორმაცია დამოკიდებულია საიდუმლო გასაღებზე. ანალოგიურად, გაშიფვრის ალგორითმი აღადგენს ღია ტექსტის თავდაპირველ x-bit ბლოკს შიფრული ტექსტის x-bit ბლოკის გამოყენებით და ზემოაღნიშნული საიდუმლო გასაღების შეყვანის სახით.იმ შემთხვევაში, თუ შეყვანის შეტყობინება ძალიან გრძელია ბლოკის ზომასთან შედარებით, ის დაიყოფა ბლოკებად და ეს ბლოკები (ინდივიდუალურად) დაშიფრული იქნება იმავე გასაღების გამოყენებით. თუმცა, იმის გამო, რომ ერთი და იგივე გასაღები გამოიყენება, ყოველი განმეორებითი თანმიმდევრობა უბრალო ტექსტში ხდება იგივე განმეორებითი თანმიმდევრობა შიფრულ ტექსტში და ამან შეიძლება გამოიწვიოს უსაფრთხოების შეშფოთება. პოპულარული ბლოკის შიფრებია DES (მონაცემთა დაშიფვრის სტანდარტი) და AES (დაშიფვრის გაფართოებული სტანდარტი).
რა განსხვავებაა Stream Cipher-სა და Block Cipher-ს შორის?
მიუხედავად იმისა, რომ ორივე ნაკადის შიფრები და ბლოკის შიფრები მიეკუთვნება სიმეტრიული დაშიფვრის შიფრების ოჯახს, არსებობს რამდენიმე ძირითადი განსხვავება. ბლოკის შიფრები შიფრავს ბიტების ფიქსირებული სიგრძის ბლოკებს, ხოლო ნაკადის შიფრები აერთიანებს უბრალო ტექსტის ბიტებს ფსევდორანდომ შიფრული ბიტების ნაკადთან XOR ოპერაციის გამოყენებით. მიუხედავად იმისა, რომ ბლოკის შიფრები იყენებენ ერთსა და იმავე ტრანსფორმაციას, ნაკადის შიფრები იყენებენ განსხვავებულ ტრანსფორმაციას ძრავის მდგომარეობის მიხედვით. ნაკადის შიფრები ჩვეულებრივ უფრო სწრაფად სრულდება, ვიდრე ბლოკის შიფრები.ტექნიკის სირთულის თვალსაზრისით, ნაკადის შიფრები შედარებით ნაკლებად რთულია. ნაკადის შიფრები არის ტიპიური უპირატესობა ბლოკის შიფრებთან შედარებით, როდესაც ჩვეულებრივი ტექსტი ხელმისაწვდომია სხვადასხვა რაოდენობით (მაგ. უსაფრთხო wifi კავშირი), რადგან ბლოკის შიფრები არ შეიძლება იმუშაონ პირდაპირ ბლოკის ზომაზე მოკლე ბლოკებზე. მაგრამ ზოგჯერ, განსხვავება ნაკადის შიფრებსა და ბლოკის შიფრებს შორის არ არის ძალიან ნათელი. მიზეზი ის არის, რომ მუშაობის გარკვეული რეჟიმის გამოყენებისას, ბლოკის შიფრი შეიძლება გამოყენებულ იქნას ნაკადის შიფრის როლში, რაც საშუალებას აძლევს მას დაშიფროს ხელმისაწვდომი მონაცემთა უმცირესი ერთეული.