الفريق العربي للهندسة العكسية
دراسة وشروحات الخواريزميات لتشفيرالبيانات -خواريزمية Algorithm DES - الدرس الثالث 3 - نسخة قابلة للطباعة

+- الفريق العربي للهندسة العكسية (https://www.at4re.net/f)
+-- قسم : منتديات الهندسة العكسية - Reverse Engineering Forums (https://www.at4re.net/f/forum-4.html)
+--- قسم : إكتشاف آفاق جديدة بعلم الهندسة العكسية - Discover New Prospects in RCE (https://www.at4re.net/f/forum-44.html)
+--- الموضوع : دراسة وشروحات الخواريزميات لتشفيرالبيانات -خواريزمية Algorithm DES - الدرس الثالث 3 (/thread-1530.html)



دراسة وشروحات الخواريزميات لتشفيرالبيانات -خواريزمية Algorithm DES - الدرس الثالث 3 - Polia - 06-04-2020

قبل ان ندخل في الموضوع اريد ان اعطي مقدمة صغيرة
هو انك حتى وان لا تعرف البرمجة فمعرفة شكل طريقة عمل اي غورتيم هو من دهب
واكيد يوما ما ستصيح مبرمجا وفي تلك الوقت يمكنك برمجة اي برنامج للتشفير او فك التشفير ولكن في حالة
اد كنت تعرف طريقة عمل هدا الغورتيم الدي ستستعمله في التشفير او فك التشفير
وعدم معرفتك لطريقة عمل هدا الغورتيم حتى وان كنت مبرمجا لا تستطيع برمجته. اما المبرمجين الحاليين
اثر دراستهم للغورتيم وفهمه يمكنه البدا في البرمجة.

في الدرس التاني قمنا بالتغيير الاول بالطاولة المسمى (PC-1)
على مفتاح DES وحصلنا على مفتاح يتكون من 56Bits
وبعدها قسمنا المفتاح المهيئ الى جزئين الجزء الاول سميناه C0 والتاني D0
وكل جزء يتكون من 28Bitsوهما للتدكير
C0=177AA0F
D0=8D52C06

قبل ان ندخل في الدرس التالث اريد ان اخبرك ان عندما اقول اليمين او اليسار اقصده بهدا الشكل
11112222
اليمين اليسار
لكي يبقى كل شيئ واضح في هدا الدرس


طيب ابتداءا من هنا لاجل حساب 16مفتاحا الموجودة في الخريطة التي سبق ورئيناها في الدرس الاول اوالتاني
K1,K2,K3,K4,K5,K6,K7,K8,K9,10,K11,12,13,14,15,16

سنقوم بعمليتين في كل دورة:
اولا- في كل دورة نقوم بدوران بت واحد او اتنان من الجهة اليسرى نحو اليمنى في كل جزئ من الجزئين
Cx وDx
سنقوم بدوران بت واحد في الدورة 1,2,9,16
و 2 بت في الدورة 3,4,5,6,7,8,10,11,12,13,14,15

تانيا- نقوم بمرور الناتج على طاولة للتغيير التي تسمى ب
(Permuted Choice 2, PC-2)
لاستنتاج مفتاح يتكون من 48Bits
علما ان هده هده الطاولة ستحدف البتات
9,18,22,25,35,38,43,54
وهكدا سيتحول المفتاح من 56Bits الى 48Bits

الطاولة هي:
Permuted Choice 2 (PC-2)
14-17-11-24-01-05
03-28-15-06-21-10
23-19-12-04-26-08
16-07-27-20-13-02
41-52-31-37-47-55
30-40-51-45-33-48
44-49-39-56-34-53
46-42-50-36-29-32



نبدا على بركة الله لحساب k1

ناخد C0 و D0 الدي حصلنا عليهم من قبل ونحولهم الى بناري لنقوم بالخطوة الاولى وهي دوران البت
 
C0= 0001011101111010101000001111 =177AA0F
D0= 1000110101010010110000000110 =8D52C06

بما اننا في الدورة الاولى سنقوم بدوران بت واحد من اليسار نحو اليمين
وفي نفس الوقت الناتج سيصبح C1 و D1 ونحوله الى الهيكس:
 
C1= 001011101111010101000001111 0 = 2EF541E
D1= 000110101010010110000000110 1 = 1AA580D

الان سنجمع C1 و D1 في سطر واحد لنستعد ونقوم بالخطوة التانية وهي استعمال طاولة (PC-2)
 
00101110111101010100000111100001101010100101100000001101

نقوم بترتيب هده البتات على الشكل التالي:
 
C1
01(0)—02(0)—03(1)—04(0)—05(1)—06(1)—07(1)
08(0)—09(1)—10(1)—11(1)—12(1)—13(0)—14(1)
15(0)—16(1)—17(0)—18(1)—19(0)—20(0)—21(0)
22(0)—23(0)—24(1)—25(1)—26(1)—27(1)—28(0)
D1
29(0)—30(0)—31(0)—32(1)—33(1)—34(0)—35(1)
36(0)—37(1)—38(0)—39(1)—40(0)—41(0)—42(1)
43(0)—44(1)—45(1)—46(0)—47(0)—48(0)—49(0)
50(0)—51(0)—52(0)—53(1)—54(1)—55(0)—56(1)

الان نقوم بتمرين تلك البتات على الطاولة التالية PC-2
اظن انه واضح ما نفعله هنا في الطاولة PC-2 في الاول لدينا 14(X)
ادن ننظر في الطاولة في الاعلى وننظر ما هو البت الموجو في الموقع 14
ناخده ونمرره الى طاولة PC-2 وهكدا حتى ننتهي ...
وسنلاحظ ان في الطاولة PC-2 لا تحتوي على بتات 9,18,22,25,35,38,43,54
اي ان في هده المرحلة يتم حدفها للحصول على مفتاج يتكون من 48Bits

 
Permuted Choice 2 (PC-2)
14(1)---17(0)---11(1)---24(1)---01(0)---05(1)
03(1)---28(0)---15(0)---06(1)---21(0)---10(1)
23(0)---19(0)---12(1)---04(0)---26(1)---08(0)
16(1)---07(1)---27(1)---20(0)---13(0)---02(0)
41(0)---52(0)---31(0)---37(1)---47(0)---55(0)
30(0)---40(0)---51(0)---45(1)---33(1)---48(0)
44(1)---49(0)---39(1)---56(1)---34(0)---53(1)
46(0)---42(1)---50(0)---36(0)---29(0)---32(1)

الان ما حصلنا عليه في الطاولة PC-2
سنقوم بجمع تلك البتات هكدا
 
101101
100101
001010
111000
000100
000110
101101
010001

ثم نقوم بجمعها في سطر واحد
 
101101100101001010111000000100000110101101010001

الى الحاسبة ونقوم بتحويله الى الهيكس
ونحصل على B652B8106B51
ادن K1 هي
 
K1= B652B8106B51


الان مع الدورة التانية لحساب K2

الان ناخد C1 و D1 الدي حصلنا عليهما في الاعلى وهما لتطبيق الخطوة الاولى وهي دوران البت
 
C1= 0010111011110101010000011110 = 2EF541E
D1= 0001101010100101100000001101 = 1AA580D

بما اننا في الدورة التانية سنقوم بدوران بت واحد من اليسار الى اليمين وفي نفس الوقت النتيجة
هي C2 و D2 ونحوله الى الهيكس في نفس الوقت وهي
 
C2= 010111011110101010000011110 0 = 5DEA83C
D2= 001101010100101100000001101 0 = 354B01A

الان سنجمع C2 و D2 في سطر واحد لنستعد ونقوم بالخطوة التانية وهي استعمال طاولة (PC-2)
 
01011101111010101000001111000011010101001011000000011010

نقوم بترتيب هده البتات على الشكل التالي
 
C2
01(0)—02(1)—03(0)—04(1)—05(1)—06(1)—07(0)
08(1)—09(1)—10(1)—11(1)—12(0)—13(1)—14(0)
15(1)—16(0)—17(1)—18(0)—19(0)—20(0)—21(0)
22(0)—23(1)—24(1)—25(1)—26(1)—27(0)—28(0)
D2
29(0)—30(0)—31(1)—32(1)—33(0)—34(1)—35(0)
36(1)—37(0)—38(1)—39(0)—40(0)—41(1)—42(0)
43(1)—44(1)—45(0)—46(0)—47(0)—48(0)—49(0)
50(0)—51(0)—52(1)—53(1)—54(0)—55(1)—56(0)

كما وفعلنا في الاعلى سنمررهده البتات على الطاولة هده وسيبقى لنا هدا الشكل:
 
Permuted Choice 2 (PC-2)
14(0)-17(1)-11(1)-24(1)-01(0)-05(1)-03(0)-28(0)
15(1)-06(1)-21(0)-10(1)-23(1)-19(0)-12(0)-04(1)
26(1)-08(1)-16(0)-07(0)-27(0)-20(0)-13(1)-02(1)
41(1)-52(1)-31(1)-37(0)-47(0)-55(1)-30(0)-40(0)
51(0)-45(0)-33(0)-48(0)-44(1)-49(0)-39(0)-56(0)
34(1)-53(1)-46(0)-42(0)-50(0)-36(1)-29(0)-32(1)

الان ما حصلنا عليه في الطاولة PC-2
سنقوم بجمع تلك البتات هكدا
 
01110100
11011001
11000011
11100100
00001000
11000101

ثم نقوم بجمعها في سطر واحد
 
011101001101100111000011111001000000100011000101

الى الحاسبة ونقوم بتحويله الى الهيكس
ونحصل على 74D9C3E408C5
ادن K2 هي

 
K2= 74D9C3E408C5


الان مع الدورة الثالثة لحساب K3

الان ناخد C2 و D2 الدي حصلنا عليهما في الاعلى وهما لتطبيق الخطوة الاولى وهي دوران البت
 
C2= 0101110111101010100000111100 = 5DEA83C
D2= 0011010101001011000000011010 = 354B01A

بما اننا في الدورة الثالثة سنقوم بدوران 2 بت من اليسار الى اليمين وفي نفس الوقت النتيجة
هي C3 و D3 ونحوله الى الهيكس في نفس الوقت وهي
 
C3= 01110111101010100000111100 01 = 77AA0F1
D3= 11010101001011000000011010 00 = D52C068

الان سنجمع C3 و D3 في سطر واحد لنستعد ونقوم بالخطوة التانية وهي استعمال طاولة (PC-2)
 
01110111101010100000111100011101010100101100000001101000

نقوم بترتيب هده البتات على الشكل التالي
 
C3
01(0)—02(1)—03(1)—04(1)—05(0)—06(1)—07(1)
08(1)-09(1)—10(0)—11(1)—12(0)—13(1)—14(0)
15(1)—16(0)-17(0)—18(0)—19(0)—20(0)—21(1)
22(1)—23(1)—24(1)—25(0)—26(0)—27(0)—28(1)
D3
29(1)—30(1)—31(0)—32(1)—33(0)—34(1)—35(0)
36(1)—37(0)—38(0)—39(1)—40(0)—41(1)—42(1)
43(0)—44(0)—45(0)—46(0)—47(0)—48(0)—49(0)
50(1)—51(1)—52(0)—53(1)—54(0)—55(0)—56(0)

كما وفعلنا في الاعلى سنمررهده البتات على الطاولة هده وسيبقى لنا هدا الشكل
 
Permuted Choice 2 (PC-2)
14(0)-17(0)-11(1)-24(1)-01(0)-05(0)-03(1)-28(1)
15(1)-06(1)-21(1)-10(0)-23(1)-19(0)-12(0)-04(1)
26(0)-08(1)-16(0)-07(1)-27(0)-20(0)-13(1)-02(1)
41(1)-52(0)-31(0)-37(0)-47(0)-55(0)-30(1)-40(0)
51(1)-45(0)-33(0)-48(0)-44(0)-49(0)-39(1)-56(0)
34(1)-53(1)-46(0)-42(1)-50(1)-36(1)-29(1)-32(1)

الان ما حصلنا عليه في الطاولة PC-2
سنقوم بجمع تلك البتات هكدا
 
00110011
11101001
01010011
10000010
10000010
11011111


ثم نقوم بجمعها في سطر واحد
 
001100111110100101010011100000101000001011011111


الى الحاسبة ونقوم بتحويله الى الهيكس
ونحصل على 33E9538282DF
ادن K3 هي
K3= 33E9538282DF


قمنا بتطبيق 3 دورات والمتبقي 13 دورة اظن ان الطريقة المستعملة في كل دورة شرحتها 3 مرات وهي واضحة كالشمس
فقط لا تنسى ما دكرته في الاول ان
سنقوم بدوران بت واحد في الدورة 1,2,9,16
و 2 بت في الدورة 3,4,5,6,7,8,10,11,12,13,14,15
الان الامر واضح لانتهاء وحساب Kx المتبقية

وهنا سادكر مباشرة ما تبقى لنا من kx لكي تصحح اي خطا اد قمت بمتابعة حساب كل K16

في الهيكس:
 
K1: B652B8106B51
K2: 74D9C3E408C5
K3: 33E9538282DF
K4: 2D6597179781
K5: 77059D1A0561
K6: 5F80B14AE904
K7: 9F88BE606598
K8: BE228EE9100B
K9: 713F872B8770
K10: 71BCC119CD02
K11: 51E4F64C4414
K12: F4C596C960CC
K13: 768327A0D289
K14: AB9037921627
K15: AD02FE9E0BA0
K16: 61D7DA0560A6

في binary :
K1
101101100101001010111000000100000110101101010001
K2
011101001101100111000011111001000000100011000101
K3
001100111110100101010011100000101000001011011111
K4
001011010110010110010111000101111001011110000001
K5
011101110000010110011101000110100000010101100001
K6
010111111000000010110001010010101110100100000100
K7
100111111000100010111110011000000110010110011000
K8
101111100010001010001110111010010001000000001011
K9
011100010011111110000111001010111000011101110000
K10
011100011011110011000001000110011100110100000010
K11
010100011110010011110110010011000100010000010100
K12
111101001100010110010110110010010110000011001100
K13
011101101000001100100111101000001101001010001001
K14
101010111001000000110111100100100001011000100111
K15
101011010000001011111110100111100000101110100000
K16
011000011101011111011010000001010110000010100110

الدرس الثالث انتهى وقد قمنا بتوليد مفاتيح
K1,K2,K3,K4,K5,K6,K7,K8,K9,10,K11,12,13,14,15,16
كلها من مفتاح الغورتيم DES
ونلتقي في الدرس الرابع للمتابعة

حالفني الحض بنقل هاته الثلاث مواضيع يوجد 21 درس اخر سأرفعه ريثما يتسني لي بعض من الوقت