მოგესალმებათ CYBSECGROUP ფორუმი
№1 კიბერ ფორუმი საქართველოში, თქვენ გაქვთ შესაძლებლობა გაეცნოთ საინტერესო პროექტებს, საინტერესო გარემოში
რეგისტრაცია

XOR | OR | AND

ვაკო ბატიაშვილი

I am Groot!!!
ადმინისტრატორი
Alien 👽
ივნ 27, 2018
107
178
#1
დღეს განვიხილავთ კრიპტოგრაფიაში ფართოდ გამოყენებად ბიტურ ოპერატორებს. ვისაც არ წაგიკთხავ მარტივი შიფრები გთხოვთ გადახედოთ ამ სტატიას და შედმეგ დამოხივდეთ უკან. როგორც უკვე აღვნიშნე XOR, OR, AND არიან ბიტური ოპერატორები. განვიხილოთ მარტივი მაგალითები და გავიგებთ მათი მუშაობის პრინციპს უკეთ

^ - XOR
& - AND
| - OR
ამ ოპერატორებს ჩავწერ ასე. ახლავე გაითვალისწინეთ რომ შემდეგში არ დაიბნათ. დავიწყოთ XOR -ით
13 ^ 36=41 რანაირად?
მოკლედ რა ხდება 13 რომ გადავიყვანოთ 1 ბიტიან ორობითში იქნება 00001101. 36 გადავიყვანოთ 1 ბიტიან ორობითში 00100100. ახლა მიდნა რომ ეს ორი ორობითი ერთმანეთის ქვემოთ დავწეროთ

0 0 0 0 1 1 0 1 -13
0 0 1 0 0 1 0 0 -36
--------------------------

0 0 1 0 1 0 0 1 -41
ახლა განვიხილოდ რა მოხდა. სადაც განსხვავებული ბაიტები დაემთხვა იქ დააბრუნა 1 იანი ხოლო სადაც ერთნაირები დაემთხვა იქ დაგვიბრუნა ნულიანი

1.jpg
შესაბამისად შედეგს თუ გადავიყვანთ ორობითიდან ათობითში მივიღებთ 41-ს (დედას გეფიცებით დამთხვევაა)
გავაგრძელოთ და გადავიდეთ სხვა ოპერატორებზე 13 & 36=4 რანაირად?

0 0 0 0 1 1 0 1 -13
0 0 1 0 0 1 0 0 -36
--------------------------

0 0 0 0 0 1 0 0 - 4
ეს ოპერატორი კი ასე მოიქცა
2.jpg
სადაც ერთიანები დაემთხვა იქ დააბრუნა 1 იანი. ამ შემთხვევაში მესამე ბაიტი. თუ გნებავთ ნულიდან დაითვალეთ და მეორე ბაიტი გამოვა. მარა მესამე ეს დამიჯერეთ :D

0 0 0 0 1 1 0 1 -13
0 0 1 0 0 1 0 0 -36
--------------------------

0 0 1 0 1 1 0 1 -45

3.jpg
შედეგი სახეზეა.
როგორ გამოვიყენოთ ეს კრიპტოგრაფიაში? ავიღოთ მარტივი ორობითი სტრინგი იყოს GrInch

01000111 01110010 01001001 01101110 01100011 01101000 დავქსოროთ 13 თან და
01001010 01111111 01000100 01100011 01101110 01100101 შედეგიც სახეზეა. აშკარად სხვა რიცხვი მივიღეთ. მისი დეკოდირება ძალიან მარტივია თუ ეს რიცხვი ვიცით რომელიც ფაქტობრივად გასაღებია. მაგრამ ერთი პრობლემა OR ოპერატორის შემთხვევაში 9|36 და 13|36 გვაძლევს ერთსა და იმავე შედეგს. დანარჩენების შემთხვევაში ასე ვიქცევით. ავიღებთ გასაღებიან ორიბითს და ხელახლა დავქსორავთ 13 თან (თუ კოდირებისას ქსორი გამოიყენეს, თუ & გამოიყეენს შესაბამის ოპერაციას ვაკეთებთ ხელახლა) და მივიღებთ თავდაპირველს. შეგიძიათ გატესტოთ. ანალოგურად შეგიძლიათ მოიქცეთ თუ გინდათ რომ გამოიყენოთ სტრინგი გასაღებად და არა ინტეგერის ტიპის რიცხვი. ანუ ისევ გვაქვს დასაშიფრი სტრინგი GrInch ორობითში 01000111 01110010 01001001 01101110 01100011 01101000
და გასაღები Green. Green-ს გადავიყვანთ ორობითში 01000111 01110010 01100101 01100101 01101110 და ავიღებთ დასაშიფრი სიტყვის პირველ ბიტს. 01000111 მას ჯერ დავქსორავთ(აუცილებელი არაა ქსორ გამოიყენოთ, ეს მაგალითისთვის ვთქვი) 01000111-ამასთან შემდეგ 01110010-ამასთან შემდეგ 01100101 -ამასთან შემდეგ 01100101 -ამასთან და ბოლოს 01101110 -ამასთან. რომ მორჩება გადავალთ დასაშიფრი სიტყვის მეორე ბიტზე. და ასე მივიღებთ გასაღებიან ორობითს. რაც უფრო დიდი იქნება გასაღები უფრო რთული იქნება შიფრის გატეხვა. თუმცა უფრო დატვირთული პროცესის გავლა მოუწევს მოწყობილობას და უფრო ნელა იმუშავებს.
თუ რამე გაუგებარი იყო თქვენთვის დაწერეთ. აუცილებლად გიპასუხებთ დიდი სიამოვნებით.
მოიწონეთ სტატია და გაუზიარეთ მეგობრებს. თქვენ ამით არაფერი დაგაკლდებათ ხოლო ავტორს, რომელმაც ამის წერაზე, დაედითებაზე და ასეთებზე იწვალა სტიმულს მისცემთ.
ამ შემთხვევაში კი მე ვარ ავტორი მაგრამ მარტო მე არ მეხება. ასე რომ გთხოვთ ესაც გაითვალისწინოთ.
 
მოწონებები: WebDux, * Dark Grizzly, Zgarbu and 3 others

W0RLD3ND3R

Hacktivist 🌐
აქტიური მომხმარებელი
Alien 👽
ივნ 30, 2018
90
72
#2
ამ ვიდეოზე არასდროს მეცინება ხოლმე, მაგრამ მგონი მოუხდა;დ კარგი სტატიაა, წარმატებები~
 
მოწონებები: Dimitri Khetaguri