بسم الله الرحمن الرحيم
كل سنه وانتم طيبين يا اخوانى الاعزاء...............................................
هذا الدرس لكل مبرمج مغرم بعلم التشفير هذا الدرس لازم له التركيز الشديد وانا اقول التركيز الشديد وانتوا هتعرفوا ليه دى الوقت .....................
تفتكروا اول درس كتبته عن التشفير كان بيستخدم ايه كان بيستخدم caesar cipher وانا شرحته بالتفصيل ابحثوا عليه وراجعوه معايا كده علشان تفهموا بدايات علم التشفير ........
التشفير يا اخوانى نوعين فى
--------------------------
1-التشفير الكلاسيك.----< بيستخدم -----<
ا-subsitution
ب-transpoistions. وهنشرح كل واحده بالتفصيل الممل...
2-التشفير الجماعى او ما نطلق عليه الباكجيتش او البلوك .........
------------------------------------------------
درس النهارده عن اول نوع خانه واحد او الاستبدال.......وهوا استبدال الحروف على حسب داله معينه رياضيه تختلف قوتها على حسب المفتاح المستخدم.......او key algorithm .....
يا جماعه ارجوكم فتحوا دماغكم معايا............................. واشربوا كوبايه شاى معايا كده وركزوا كويس.....................
التشفير ده اسمه الهيل تشفير الهيل............
هوا بصراحه مش سكيور اوى حيث انه 3 بيت طول المفتاح بتاعه مقارنه بال 286 -512 مثل AES and MD5 بس لو فهمتوا ده هتفهموا الباقى لانه ده يعتبر المبدا المستخدم فى حالات الاستبدال......
يا جماعه انا هشرح هنا كيفيه التشفير بهذا المقياس وفك التشفير تانى وفى مفاجاه بعد ما اخلص هقولكم عليها بس خليكم معايا....................
-----------------------------------------------------------------------------------------------
مقياس التشفير الهيل.
--------------------
يا جماعه ارجو من كل واحد فيكم قبل ما نبدا حاجتين.
1-يفتح دماغه معايا
2-يجيب ورقه وقلم ويكتب اللى هقوله عليه دى الوقت ....ياد مستنى ايه قوم بقى هات ورقه وقلم.
جيب ورقه وقلم واعمل جدول واكتب فيه الحروف الابجديه من A الى Z وابدا رقم الحروف اعطى قيمه A = صفر وبعدين امشى على كده على طول هتلاقى انك وصلت الى رقم خمسه وعشرين لقيمه Z=25.
اوك بدا الشغل بقى
دى الوقت مقياس الهيل بيستخدم حاجه بنسميها matrices and column vectors)) او الماتركس او بالعربى المصفوفات .....
الماتريكس بيتكون من مجموعه متراصه فوق بعضها بينطبق عليهم كل العمليات الرياضيه من جمع او طرح او قسمه .....هكذا.
فى مقياسنا للتشفير سنستخدم مفتاح ماتركس معين 3*3 او مصفوفه 3*3 اى بتتكون من 3 اعمده و3 صفوف كما بالشكل الاتى.
Key[K]=
17 17 5
21 18 21
2 2 19
هذا هو المفتاح المستخدم(K)
المعادله المستخدمه للتشفير هي كالاتى:
-------------------------------------
C = KP Mod 26
خلوا بالكم هنا
-------------
P= اول ثلاثه حروف من الكلمه المراد تشفيرها ولنفرض انها (snouto)
C= ثلاثه حروف المقابلين بعد التشفير.
mod 26 = خارج القسمه وليس القسمه راجعوا الدرس الاول ليا فى المنتدى.
---------------------------------
طيب دى الوقت فاكرين الورقه اللى خليتكم تكتبوها اللى فيها الجدول اللى مكتوب فيها الحروف الابجديه .....
طيب دى الوقت ركزوا معايا احنا دى الوقت عاوزين نشفر الكلمه (snouto) على حسب المعادله اللى فوق .....
اه انا سامع واحد بيقول اننا نوجد رقم كل حرف فى الجدول ده مظبوط والله ميه ميه ....
لو شوفت اول ثلاثه حروف هتلاقيهم (18 13 14) صح ولا مش صح ده بقى اللى بنسميه (column vectors) ده 1*3 بس احنا عاوزين نضربه فى الماتريكس او المفتاح اللى فوق بصوا معايا ........
على حسب المعادله اللى فوق : هيكون المعادله كالتالى -----<
C = 17 17 5 18
21 18 21 * 13
2 2 19 14
اه ايه بقى اللى عملناه دى الوقت احنا خلينا التركيب من 1*3 الى 3*1 بالنسبه لثلاثه حروف الاولنيين.......
بعد الضرب سيكون الناتج :
-------------------------
بصوا وركزوا هيكون الضرب ازاى بس بالتفصيل تحت فى اخر الدرس...........
C = 17 * 18 + 17 * 13 + 5 * 14
21 * 18 + 18 * 13 + 21 * 14 mod 26
2 * 18 + 2 * 13 + 19 * 14
جربوا تحلو الجمع ده والضرب وكل ناتج فى عمود هيكون الناتج كالاتى:
----------------------------------------------------------------------
C(CipherText) = 597
906 mod 26
322
بعدين تمسكوا كل رقم فى الثلاثه صفوف وتعملو خارج القسمه :
ازاى خارج القسمه ممكن اى مبرمج فيجوال بيسك او اى مبرمج اكيد عارف خارج القسمه بيتعمل ازاى فى البرمجه بالنسبه لمبرمجين الفيجوال بيسك بيكون كالاتى:
--------------------------------------------------------------
dim output as integer
output = 597 mod 26
بالنسبه لمبرمجين السى شارب او البى اتش بى :
----------------------------------------------
int output;
output = 597 % 26
بالنسبه للى عاوزين يحلوها باديهم بتتعمل كده :
----------------------------------------------
597 / 26 = 22,96545421654542
26*22 = 572.
597-572 = (25).
نرجع بقى للمعادله بعد خارج قسمه كل رقم :
--------------------------------------------
C(CipherText) = 597
906 mod 26 = 25
322 22
16
اذن الثلاثه حروف الاولى بعد التشفير ستكون كالتالى:
---------------------------------------------------
C(CipherText) = 25
22
16
ايوه انا سامع واحد بيقولى ان الثلاثه ارقام تقابل
(ZWQ) فى الجدول صح ايوه صح
وهكذا عل باقى ثلاثه حروف الباقيين انا حاسيس بواحد عاوز يقولى حاجه ايوه صح انا عارف انت عاوز تقول ايه التشفير ده لا ينفع الا على الكلمه اللى عدد حروفها .3 ومضاعفاتها يعنى (3,6,9,12) .....ولذلك بتلاقى فى بعض المواقع العربيه والاجنبيه يقولك لازم كلمه السر بتاعتك تكون 8 او مضاعفتها بس ده مش شرط يكون المقياس المستخدم هوا نفس المقياس ده لا يا هكر ده مقياس سهل ان الواحد يفكه لان طول المفتاح بتاعه هوا 3 بيت بس سهل جدا فكه بطريقه known cipher text attacks
--------------------------------------------------------------------------------------
فك التشفير
يا جماعه هنا هنفك التشفير وليس كسره لان هنا بنفك بمعرفه المفتاح وده لا يعتبر كسر بالنسبه لمعرفه كيفيه الكسر انا بدى دوره فى كسر المقاييس بتسمى Advanced Cryptanalysis Attacks وكل واحد بيحب المجال ده وعاوز يكمل معايا ارجو المتابعه معى او مراسلتى على البيانات اللى فى اسفل الدرس....
المهم فك التشفير بيكون كالتالى:
--------------------------------
P(PlainText) = K-1 C mod 26
P=Stored Plaintext
K-1= معكوس الماتركيس حيث ان معكوس الماتريكس فى الماتريكس نفسه يساوى مصفوفه الوحده
Identity Matrix = k * k-1
طيب فى حاله المفتاح اللى احنا استخدمناه هيكون معكوسه :
k-1 = 4 9 15
15 17 6
24 0 17
نفس الطريقه المتبعه لفك التشفير هى نفسها المستخدمه فى التشفير ....
-----------------------------------------------------------------------------------------------
تمارين عمليه :
--------------
1- شفر باقى الثلاثه حروف من كلمه snouto.
2- فك تشفير الكلمه المشفره اللى هتطلع وابعت خطوات الحل على البيانات التاليه:
-------------------------------------------------------------------------------------------
الاسم :
------
محمد ابراهيم محمد سامى .
الموقع :
-------
البريد الالكترونى :
-----------------
malcodez@egy-market.com
matrix_623@yahoo.com
الموبايل :
----------
0106231078
----------------------------------------------------------
اشكركم جزيلا واتمنى ان يحوز الدرس على رضاكم ........الملف مرفق