პროგრამული უზრუნველყოფის დეველოპერებმა ახალი კოდირების სტანდარტი, Bijou64, წარადგინეს. ეს ინოვაციური მიდგომა ცვლადი სიგრძის მთელი რიცხვების (varint) ჩასაწერად გამოიყენება და მიზნად ისახავს არა მხოლოდ მონაცემთა კომპაქტურობას, არამედ სისტემის მაქსიმალურ წარმადობასა და უსაფრთხოებას.
რატომ გახდა საჭირო ახალი სტანდარტი?
ტრადიციულად, პროგრამირებაში ფართოდ გამოიყენება LEB128-ის ტიპის კოდირება. თუმცა, მას აქვს ერთი არსებითი ნაკლი: ერთი და იმავე რიცხვის ჩაწერა მრავალი განსხვავებული გზით არის შესაძლებელი. მაგალითად, ნული შეიძლება აისახოს როგორც ერთი ბაიტი, ან როგორც გრძელი თანმიმდევრობა, რომელიც კვლავ ნულს ნიშნავს.
ეს თავისებურება კიბერუსაფრთხოების რისკებს ქმნის. როდესაც სისტემა ვერ ასხვავებს მონაცემთა სხვადასხვა წარმოდგენას, შესაძლებელია ე.წ. „კანონიკური შეტევების“ განხორციელება. მსგავსი სისუსტეები წარსულში უკვე გახდა საფუძველი სერიოზული შეტევებისა ისეთ პროტოკოლებზე, როგორებიცაა JWT, Bitcoin-ის ტრანზაქციები და TLS სერტიფიკატები.
Bijou64-ის უპირატესობა
Bijou64-ის მთავარი პრინციპი სიმარტივეა: თითოეულ რიცხვს აქვს მხოლოდ ერთი, უნიკალური ჩანაწერი. ეს გამორიცხავს გაუგებრობებს და ამარტივებს მონაცემთა ვერიფიკაციას. დიზაინი ეფუძნება ორ ძირითად მექანიზმს:
- O(1) დეკოდირება: პირველივე ბაიტი მიუთითებს იმაზე, თუ რამდენი მონაცემი უნდა წაიკითხოს სისტემამ, რაც მეხსიერების მართვას ოპტიმალურს ხდის.
- ბლოკური სტრუქტურა: მონაცემები არ არის დანაწევრებული 7-ბიტიან სეგმენტებად, რაც თანამედროვე პროცესორებს საშუალებას აძლევს, მონაცემები გაცილებით სწრაფად დაამუშაონ.
ტესტირების შედეგად დადგინდა, რომ Bijou64 საშუალოდ 2-დან 10-ჯერ უფრო სწრაფია, ვიდრე გავრცელებული LEB128. განსაკუთრებით შთამბეჭდავია შედეგები დიდი ზომის მონაცემების შემთხვევაში, სადაც LEB128-ის მექანიზმი „ბიტი-ბიტით“ სკანირების გამო ნელდება.
პროცესორის მეგობრული არქიტექტურა
Bijou64-ის კოდირება ბუნებრივად ერგება თანამედროვე პროცესორების არქიტექტურას. ვინაიდან დეკოდირების პროცესი არ მოითხოვს რთულ განშტოებებს (branches), პროცესორის „ბრანჩ-პრედიქტორი“ ადვილად ახდენს ოპერაციების პროგნოზირებას. შედეგად, სისტემა სტაბილურად მაღალ სიჩქარეს ინარჩუნებს.
მიუხედავად იმისა, რომ ზოგიერთ კონკრეტულ სცენარში LEB128 მცირედით უფრო კომპაქტურია, Bijou64-ის სიჩქარისა და უსაფრთხოების უპირატესობა მას ბევრად უფრო ეფექტურ არჩევნად აქცევს მაღალი დატვირთვის მქონე სისტემებისთვის.






დისკუსია
0 კომენტარი
ჯერ კომენტარი არ არის — იყავი პირველი.