دراسة وشروحات الخواريزميات لتشفيرالبيانات -خواريزمية 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 درس اخر سأرفعه ريثما يتسني لي بعض من الوقت |