მარტივი შიფრების მიმოხლივა | Cyber Community | Hi-Tech World - CYBSECGROUP
Welcome to the CYBSECGROUP Forum
You have the opportunity to get acquainted with interesting projects in an interesting environment
Registration

მარტივი შიფრების მიმოხლივა

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

I am Groot!!!
Founder CEO
Alien 👽
Jun 27, 2018
999
1,743
#1
ამ ტოპიპჯში განვიხილავ მარტივ შიფრებს. ამგალითად base64, binary, hexa. მოკლედ დავიწყოთ და ავიღოთ სატესტო სტრინგი. მაგალითად CYBER SEC TESTERS. და გვინდა რომ ეს დავშიფროთ binary -ში. გავითვალისწინოთ რომ გამოვიყენოთ ASCII ენკოდირების სისტემა ვინაიდან UTF-8 სცდება 1 ბიტიან ჩანაწერს. ახლავე აგიხსნით რატომ. ერთ ბიტიან ჩანაწერში ეტევა მხოლოდ ეს სიმბოლოები
Code:
\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ ABCDEFGHIJKLMNOPQRSTUVWXYZ 
[\\]^_` abcdefghijklmnopqrstuvwxyz {|}~
\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿
ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþ
თუმცაღა როგროც მიხვდებოდით ძირითადად მაინც ascii -ის 96 ხილვადი სიმბოლო გამოიყენება. დანარჩენი 31 უხილავია.

asciifull.gif
ხოლო 127 დან 255 ანუ დანარჩენი სიმბოლოები რაც დარჩა ეგენი ასკი ენკოდრიების დანამატებად ითვლება
extend.gif
აქვე წერია რომელ სიმბოლოს რა შეესაბამება ჰექსაში ანუ თექვსმეტობით თვლის სისტემაში, ოქტალში ანუ რვაობითში და დესიმალში ანუ ათობით თვლის სისტემაში. ვინაიდან ვითვლით ჩვენ ათობითში ამოვარჩიოთ ჩვენი არჩეული სიმბოლოების შესატყვის ირიცხვები სურათის მიხედვით. მე რომ არ ვეძებო სურათზე პითონს დავიხმარებ.
1534157523474.png
პატარ კოდის რომ ხელით გადაწერა არ მოგიწიოთ

Python:
a="CYBER SEC TESTERS"
for i in a:
    print(i," - ",ord(i))
ისღა დაგვრჩენია რომ ეს ათობითის რიცხვები გადავიყვანოთ ორობითში, თექვსმეტობითში ან იმ თვლის სისტემაში რომელიც ჩვენ გვინდა. დასაწყისისთის დავიწყოთ 67 ით.
არსებობს ორი გზა გადაყვანის. პირველი ვყოფთ ორზე და მიღებულ ნაშთებს ვიწერთ რევერსულად. ანუ
67/2 მოთავსდება 33 ჯერ ნაშთი 1
33/2 მოთავსდება 16 ჯერ ნაშთი 1
16/2 მოთავსდება 8 ჯერ ნაშთი 0
8/2 მოთავსდება 4 ჯერ ნაშთი 0
4/2 მოთავსდება 2 ჯერ ნაშთი 0
2/2 მოთავსდება 1 ნაშთი 0
1/2 მოთავსდება 0 ნაშთი 1
მიღებულ ნაშთებს ვწერთ ამ შემთხვევაში ქვემოდან ზემოთ. ფურცელზე თუ გამოიყვანო მარჯვნიდან მარცხნივ მოგიწევთ ალბათ.
ანუ 1 0 0 0 0 1 1 ვინაიდნა ერთ ბიტიან ჩანაწერში 8 სიმბოლო უნდა იყოს. (კომპიუტერი ასეა მოწყობილი მე ვერ შევცვლი :D) წინ ვუწერთ 0-ებს სანამ საერთო რაოდენობა არ გახდება 8-ს ტოლი. ანუ რა გამოვა 0 1 0 0 0 0 1 1
და არსებობს კიდევ ერთი ასეთი გზა.
67-ს ვშლით 2 -ის ხარისხებად.
ანუ 64+2+1
64 არის 2 -ის მეექვსე ხარისხი 2 არის 2 ის პირველი ხარისხი ხოლო 1 არის 2 ის 0 ხარისხი. ვინაიდნა ვიცით რომ ერთ ბიტიანი ჩანაწერია გამოვყოფ 8 უჯრას.


__ __ __ __ __ __ __ __
7 6 5 4 3 2 1 0​

როგორც ვთქვი 64 არის 2 ის მეექვსე ხარისხი. ანუ მარჯვნიდან 7 დე უჯრაში. (კომპიუტერის ენაზე მეექვსე გამოდის ვინაიდან 0 დან იწყებს თვლას) ვწერთ 1 იანს
__ 1 __ __ __ __ __ __
7 6 5 4 3 2 1 0​

ანალოგიურად ვიქცევით დანარჩენებზეც. ანუ ვავსებთ ერთიანებით უჯრებს რიგით ნომრებით 1 და 0

__ 1 __ __ __ __ 1 1
7 6 5 4 3 2 1 0​
ხოლო დანარჩენ უჯრებს ვავსებთ ნულიანებით
0 1 0 0 0 0 1 1
7 6 5 4 3 2 1 0​
ესაც ასე. ახლა ამის გადაყვანა ძაან მარტივია 16 ობითში. ვინაიდნა ვიცით რომ 16 არის 2 ის მეოთხე ხარისხი. ჩვენს 1 ბიტიან ჩანაწერს ანუ 8 სიმბოლოს ვყოფთ 4-4 ად. ანუ გამოდის ასე

0 1 0 0 0 0 1 1 ორივე ნაწილი გადაგვყავს 10 ობითში. როგორ? 0100. 1 იანი ხომ ვნახეთ რომ 2 ის ხარიხსები იყო წეღან? ანუ ამ შემთხვევაში 2-ს ავიყვანთ 2 ხარისხში. და გამოვა 4 ხოლო 0011 კი გამოდის 2 ის 1 ხარისხს + 2 ის ნული ხარისხი ანუ 2+1 ანუ გამოვიდა 3. ტექსვეტობითში როგორ ხდება ახლა ეს? თექსვმეტობითში არის მხოლოდ ეს სიმბოლოები 0123456789ABCDEF. 10-A 11-B 12-C 13-D 14-E 15-F. დანარჩენს ყველას თავისი მნიშნველობა აქვს. ანუ თუ ჩვენი ორიბითის ერთი ნაწილი იქნებოდა 1100 რაც რომ გადავიყვანოთ იქნება 12 ხოლო მეორე კი 1001 რაც რომ გადავიყვანოთ არის 9 ჩაიწერებოდა ასე C9 ხოლო ზემოთ მოყვანილ მაალითში გამოვა 43. ანდაც ამდენი რომ არ იწვალოთ პითნში დაწერთ format(67,"0b") ხოლო თუ შევსება გვინდა ერთ ბიტამდეformat(67,"08b"). გადაიყვანს ორობითში. format(67,"x") გადაიყვანს თექსვმეტობითში. რაც შეეხება base64-ს იქ გვაქვს 64 სიმბოლო. და ასე ხდება დაშიფვრა. ათობითის რიცხვები გადადის ორობითში ანუ ბინარიში. იყოფა ექვს ნაწილად. თუ საერთო რაოდენობა ექვსის ჯერადი არაა. მაშინ ბოლოში დაამატებს იმდენ 0-ს რომ გახდეს 6 ის ჯერადი. ამას ჰქვია პადინგი.თითოეული გაყოფის შედეგად მიღებულ წევრბს აქცევს ისევთ ათობითის წევრებად და მუშაობს ამ ცხრილის მიხედვით, ჰექსას პრინციპით.
1534159399893.png
ანუ თუ გადაყვანილი რიცხვი იქნება 0 მას შეცვლის A სიმბოლოთი 18- S სიმბოლთი. ხოლო თუ დამატებულმა 8 ნულმა სულ გაანულა ბიტი ასეთი რაღაც მოხდება
1534159875202.png
და დაიმატებს = სიმბოლოებს. ესაა პადინგის სიმბოლოები. და იმისთვისაა რომ აი მაგალთად ამ შემთხვევაში რომ დარჩა მხოლოდ 2 სიმბოლო ეგ შეევსო ბოლომდე. დამატებისას იმატებს 1 ბიტს. ხოლო ბიტში როცა მხოლოდ პადინგის ნულებია რამე ხომ უნდა დაწეროს. ამიტომ წერს ტოლობას. მაგიტომ არ წერია იმ ცხრილში ტოლობა და მაგიტომ გვხდებახოლმე ხშირად. დღეისთვის სულ ეს იყო. იაქტიურეთ. თუ რამე ვერ გაიგეთ დაწერთ და გიპასუხებთ
 

Attachments

nad1ba

Loading... 👽
CSG Member
Jul 4, 2019
3
1
#2
კარგად გაქვს ახსნილი :) CYBSECGROUP Link Hidden ეს არის ჰექს ედითორ ნეო, პროგრამა რომლითაც შეიგიძლია გახსნა ფაილი და ამ ფაილში მოთავსებული ინფორმაცია ნახო 2 ობით 8 ობით 10 ობით ან 16 ობით სისტემაში, სხვამრავალი კარგი ფუნქციაც აქვს ამ დესკაპს.
 

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

I am Groot!!!
Founder CEO
Alien 👽
Jun 27, 2018
999
1,743
#3
კარგად გაქვს ახსნილი :)CYBSECGROUP Link Hidden ეს არის ჰექს ედითორ ნეო, პროგრამა რომლითაც შეიგიძლია გახსნა ფაილი და ამ ფაილში მოთავსებული ინფორმაცია ნახო 2 ობით 8 ობით 10 ობით ან 16 ობით სისტემაში, სხვამრავალი კარგი ფუნქციაც აქვს ამ დესკაპს.
მე Ida Pro ბევრად მირჩევია ^^ მარა აქ არაფერშუაში იყო ეგ. ეგ უფრო რევერსული ინჟინერიაა და არა შიფრები.
 
Likes: nad1ba