الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خوارزمية Diffie-Hellman !

بدأه Snack3r في 7 أغسطس 2012 · 15 رد · 6,908 مشاهدة · في المقالات العلمية و التقنية
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
post-219439-024211100 1344289815_thumb.g

في هذه المقالة, سأضع بين أيديكم شرحا لخوارزمية Diffie-Hellman و كلي أمل بأن يستفيد الجميع.

post-219439-036542700 1344378418_thumb.p

قمتُ بإدخال بعض الروابط المهمة في بعض الكلمات للذين يريدون الاستزادة, الكتابة المُظللة, ذات اللون الأزرق تدل على وجود رابط, مثل هذه الكتابة الفريق العربي للبرمجة.

جميع الحقوق محفوظة © All rights reserved

post-219439-000982800 1344289763_thumb.j

فهرس المقالة :

  1. مُقدمة

    1. ما هو التشفير ؟
    2. التشفير في العصر القديم
    3. التشفير الحديث

    4. نظرة تحليلية على الخوارزمية
      1. فكرة الخوارزمية
      2. البروتوكول
      3. مثال تطبيقي
      4. التعقيد الزمني

[*]الخاتمة

[*]المراجع

1. مُقدمة

  • 1.1 ما هو التشفير ؟
  • 1.2 التشفير في العصر القديم
  • 1.3 التشفير الحديث

1.1 - ما هو التشفير ؟

هو عملية يتم فيها إخفاء المعلومات عن طريق مفتاح سري وخوارزمية, حيث يمكن للشخص الذي يعرف المفتاح و خوارزمية التشفير, فك الشفرة ( أي استعادة المعلومات الأصلية), يمكن أيضاً أن يقوم شخص آخر لا يعرف المفتاح و لا الخوارزمية بفك الشفرة !! و تُسمى العملية هنا "عملية غير مخولة".

في عام 1900 قبل الميلاد لم تكن هناك سوى مصطلحات هيروغليفية, استخدم الإنسان التشفير منذ حوالي ألفي عام قبل الميلاد لحماية رسائله السرية, وبلغ هذا الاستخدام ذروته في فترات الحروب, خوفا من وقوع الرسائل الحساسة في أيدي الأعداء, فالحروب دائما كانت الملهم الأكبر لظهور خوارزميات التشفير.(1)

1.2 - التشفير في العصر القديم

يُعد علم التشفير من أقدم العلوم الموجودة في يومنا هذا حيث تمتد أصوله إلى زمن الفراعنة و القياصرة أيضا, فقد كان الفراعنة أول من قام بعملية التشفير للتراسل بين قطاعات الجيش, دون أن ننسى أن أفضل طريقة استُخدمت في القدم هي طريقة يوليوس قيصر (Julius Caesar) وهو أحد قياصرة الروم, كما استخدم الصينيون القدامى طُرقا عديدة في علم التشفير والتعمية لنقل الرسائل السرية أثناء الحروب, فقد كانوا يستخدمون التشفير من أجل إخفاء الشكل الحقيقي للرسائل حتى لو سقطت في يد العدو فإنه يصعب عليه فهمها.

كما يُعتبر علماء المسلمين و العرب أول من اكتشف طرق استخراج المعمَّى(2), من أشهرهم العلامة يعقوب بن إسحاق الكندي و ابن وَحشِيَّة النبطي الذي كشف اللثام عن رموز الهيروغليفية قبل أن يكتشفها العالم الفرنسي Jean-François Champollion بعشرة قرون !! (3), و كذلك اشتهر ابن دريهم الذي كان لا يشق له غبار في فك التشفير فكانت تُعطى له الرسالة معماة فما إن يراها حتى يحولها في الحين إلى العربية ويقرئها .. وله قصيدة طويلة يشرح فيها مختلف الطرق في تعمية النصوص وكان يحسن قراءة الهيرغليفية.(4)

يعتبر البعض أن طريقة الألغاز كانت من أوائل الطرق الـُمستخدمة قديما في التشفير, فكانوا يأخذون جملة, مثل (ادفع لي أجرا ) ويدخلون كل حرف في بداية كلمة جديدة فتصبح (إذا دخل فاروق عليه لباس يبدو أكثر جمالا راتبه أكثر) وللحصول على الجملة المطلوبة نأخذ الحروف التي تبدأ بها كلمات الجملة الجديدة فنحصل على (ادفع لي أجرا).

لكن هذه الطريقة صعبة جداً خاصة إذا كانت حجم المعلومات المـُراد إرسالها كبيراً حيث تكمن صعوبتها في إيجاد جمل تحمل المعلومات المطلوبة ولها مدلول واضح لا يثير الشك، لذا فإن هذا النوع نادراً ما يُستخدم في الوقت الحالي.

1.3 - التشفير الحديث

في العصر الحديث, تُعد آلة Enigma التي استخدمها الجيش الألماني في الحرب العالمية الثانية, أبرز مثال على استخدام التعمية لتحقيق تفوق على العدو في مجال الاتصالات، وكانت الأبحاث التي جرت بشكل منفصل في كل من المؤسستين العسكريتين الأمريكية والبريطانية في سبعينيات القرن العشرين فتحا جديدا فيما صار يعرف الآن بتقنيات التعمية القوية المعتمدة على الحوسبة، وارتبطت التعمية بعلوم الجبر ونظرية الأعداد ونظرية التعقيد ونظرية المعلوماتية.

في نهاية السبعينات من القرن المنصرم, و مع الاستخدام المـُكثف لأجهزة الكمبيوتر, دخل علم التشفير مرحلة جديدة حيث أصبح البعض يُسميه "التشفير الحديث" (Modern cryptography) و مع التطور السريع الذي يشهده مجال الحماية و الأمن, أصبحت الحاجة ملحة لطرق تشفير قوية, لأن زيادة سرعة الكمبيوتر تعني قصر الوقت الذي يحتاجه الأخير لكسر أو كشف مفتاح تشفير معين.

يرجع الفضل في إظهار مفهوم التشفير الغير متناظر إلى الرائدين Whitfield Diffie و Martin Hellman, حيث قدَّما هذا المفهوم لأول مرة في المؤتمر الوطني للحاسوب في عام 1976 (5) قبل أن يتم نشره بعد بضعة أشهر (6) في "التوجهات الجديدة في علم التشفير" (New Directions in Cryptography).

post-219439-021393900 1344286447_thumb.p

يظل المخترع الأب مُختفيا خلف الكواليس - كما يحدث دائما في تاريخ التشفير - إذْ يعتبر البعض (7) أن الباحث الأمريكي Ralph Merkle هو أول من اكتشف فكرة "تشفير المفتاح العام" (Cryptography Asymmetric) بشكل مستقل, رغم أن كتاباته (8) عن الموضوع لم تُنشر إلا مؤخرا.

post-219439-091138600 1344286482_thumb.p

لم يستطع كل من W. Diffie و M. Hellman تقديم مثال حي على نظام المفتاح العام في البحث الذي قدماه سنة 1976. كان يجب عليهم أن ينتظروا سنة 1978 للحصول على مثال واقعي(9) مُقدم من طرف الثلاثي المميز :

Adi Shamir, Ronald Rivest and Leonard Adleman

post-219439-004836700 1344286587_thumb.p

2. نظرة تحليلية على الخوارزمية


  • 2.1 - فكرة الخوارزمية
  • 2.2 - البروتوكول
  • 2.3 – مثال تطبيقي
  • 2.4 - التعقيد الزمني

2.1 - فكرة الخوارزمية

تُعتبر خوارزمية D-H الأول من نوعها في موضوع تبديل المفاتيح, حيث تسمح لشخصين (عادة ما يُطلق عليهما Alice و Bob) بتبادل بيانات حساسة دون أن يفهمها الطرف الثالث (المتصنت) حتى و لو حصل على نسخة منها. تعتمد الخوارزمية في عملها على إنشاء مفتاح سري مشترك يمكن استخدامه فيما بعد لتشفير المحادثات باستخدام خوارزمية تشفير مفتاح متماثل Symmetric-key.

post-219439-037628900 1344286889_thumb.p

2.2 – البروتوكول

  • ليكن n و B العددان الصحيحان اللذان اختارهما كل من Alice و Bob علناً, n و B يجب أن يكونا أوليين فيما بينهما.
  • سريا, تختار Alice بدورها عددا صحيحا بشكل عشوائي, نُسميه a, ثم تحسب العدد post-219439-092129600 1344288962_thumb.p ثم تُرسل - علناً - العدد الجديد إلى Bob.
  • يقوم Bob بنفس الحركة السابقة: يختار بشكل سري عددا عشوائيا g ثم يحسب post-219439-032655000 1344288971_thumb.p ثم يُرسل الناتج إلى Alice.
  • من الآن فصاعدا, كل طرف يملك نتيجة حساب الآخر, Alice ما عليها سوى حساب post-219439-085715000 1344288981_thumb.p و Bob ما عليه سوى حساب post-219439-050439500 1344288989_thumb.p و انتهى الأمر !

في الحقيقة, فإن العددان السابقان متساويان :

post-219439-073764400 1344288997_thumb.p

الآن, أصبح Alice و Bob يمتلكان العدد post-219439-086684400 1344289004_thumb.p و الذي لا يعرفه أحد سواهما, يمكنهما استخدام هذا العدد كمفتاح, و يمكنها أن يتبادلا البيانات الحساسة أمام الجميع ...!

لكن, كيف يمكن هذا ؟؟

لا يُمكن للطرف الثالث (المتصنت) أن يعرف العدد a أو g (هذا العددان ضروريان لإيجاد العدد post-219439-086684400 1344289004_thumb.p ), العددان السابقان لا يدخلان ضمن المعلومات المتبادلة علنا, المعلومات التي يمكن للمتصنت الحصول عليها هي n, B, A and G و لتحديد a انطلاقا من A يجب تخطي عقبة Discrete logarithm التي من المستحيل "عمليا" كسرها حتى يومنا هذا.

كيف تتأكد Alice من وصول الرسالة إلى Bob و عدم تحريفها ؟

عندما تُرسل Alice رسالة سوف يتم تشفيرها بالمفتاح الخاص بها أو المفتاح العام التابع لــ Bob، بحيث تتحول هذه الرسالة إلى رموز لا يمكن فهمها ويتم إرفاق معها توقيع المـُرسل.

عند إذن يقوم المستقبل بإرسال نسخه من التوقيع الالكتروني إلى الجهة المختصة بإصدار الشهادة، لتتأكد من صحة التوقيع ومن ثم تقوم أجهزة الكمبيوتر التابعة للجهة المختصة بالتحقق من صحة التوقيع وتُعاد النتيجة للمستقبل مرة أخرى، ليتأكد من صحة وسلامة الرسالة، فيقوم المستقبل بقراءة الرسالة وذلك باستخدام مفتاحه الخاص إذا كان التشفير قد تم على أساس رقمه العام أو بواسطة الرقم العام للمرسل إذا تم التشفير بواسطة الرقم الخاص للمرسل، ومن ثم يجيب على المرسل باستخدام نفس الطريقة وهكذا تتكرر العملية، و يُستخدم أيضا مع التوقيع الالكتروني عملية الهاش التي توفر تكلفة أقل من تشفير الرسالة بحيث تقوم بإنشاء قيمة رقمية معينة تكون أصغر من الرسالة بحيث تضمن عدم تغييرها, عندما يستقبل المستخدم الرسالة و الهاش يقوم بعملية الهاش مرة أخرى على هذه الأخيرة ومن ثم يقارن ما بين الهاش الأصلي و الهاش المـُستقبل, إذا كانت القيم متساوية فهذا يدل على سلامة البيانات من التحريف والتزوير وإذا اختلفت القيم دل ذلك على تزوير الرسالة. (10)

2.3 – مثال تطبيقي

الجزء الأخضر يُمثل البيانات العامة التي يتم تبادلها أمام الجميع بينما يُمثل الجزء الأحمر البيانات الخاصة بكل طرف:

post-219439-069965700 1344288053_thumb.p

يُمكن لــ Alice و Bob أن يستخدما العدد 107 كمفتاح لتشفير الرسائل المـُتبادلة بينهما (11), عمليا نستخدم أعداد ضخمة جدا و لكن الهدف هنا هو توضيح الفكرة فقط.

2.4 - التعقيد الزمني

عند تطبيق الخوارزمية سيتم حساب أربع exponentiations mod p, باستخدام خوارزمية الأس المعياري السريع فإن وقت التنفيذ يتغير بتغير حجم العدد p الذي عادة ما يكون عددا أوليا ضخما. (12)

إذا أردنا تبادل مفتاح حجمه L سيكون عدد الـ binary operations يساوي post-219439-066200600 1344289223_thumb.p

3. الخاتمة

إلى هنا أصل بك أخي القارئ إلى نهاية هذه الجولة السريعة, بالطبع الموضوع شيق و يحتاج إلى الكثير من الشرح, ما زالت هناك العديد من النقاط التي كنت أود التحدث عنها (لكن أخاف أن يزيد الحجم عن حجم المقالة القياسي) مثل كتابة الخوارزمية بلغة الــ Java أو السي++ و إدراج خوارزمية DSS في D-H من أجل إضافة التواقيع الرقمية (Digital signature) إلى البيانات المـُتبادلة و الكثير الكثير من النقاط المهمة التي ربما أكتب عنها لاحقا.

4. المراجع

(1) : ما هو التشفير ؟ - موسوعة الأسئلة والإجابات الحرة

(2) : THE CODEBREAKERS, David Kahn, page 93 ; Kahn on Codes, David Kahn, page 41

(3) : كتاب علم التعمية واستخراج المعمَّى عند العرب

(4) : ابن الدريهم وجهوده في علم التعمية (التشفير), الدكتور محمد حسان الطيان

(5) : W. Diffie and M.E. Hellman, Multiuser cryptographic technics, Proceedings of AFIPS National Computer Conference, 109-112, 1976

(6) : W. Diffie and M.E. Hellman, New directions in cryptography, IEEE transactions on information theory, 22(1976), 644-654

(7) : A.J. Menezes, P.C Van Oorschot, S.A. Vanstone, Handbook of applied cryptography, CRC Press, 1997, p47

(8) : R.C. Merkle, Secure communications over insecure channels, Communications of the ACM, 21(1978),294-299

(9) : Ronald Rivest, Adi Shamir, Leonard Adleman, A Method for Obtaining Digital Signatures and Public-key Cryptosystems, Communications of the ACM, 21(1978), 120-126

(10) : التوقيع الالكتروني .. خطوة إلى الأمام, جريدة الخليج الإماراتية - الملحق الاقتصادي

(11) : Exemple d'algorithme asymétrique : Diffie-Hellman

(12) : La Naissance de la Cryptographie Asymétrique, Guénaël Renault, SALSA - LIP6/UPMC - 14 mars 2012

قمتُ بكتابة المقالة في ملف PDF تجدونه في المُرففقات.

شُكر خاص للأخ الفاضل Fear.83 الذي قام بتصميم الغلاف.

post-219439-019877100 1344289598_thumb.g

تحياتي.

Algorithme de Diffie-Hellman.pdf

المرفقات
Diffie-Hellman.pngRalph Merkle.pngRonald Rivest, Adi Shamir and Leonard Adleman.pngAlice and Bob.pngExample.pngtec1.pngtec2.pngtec3.pngtec4.pngtec5.pngtec6.pngtec7.pngBye.gifAll rights reserved.jpgBasmala.gifCouverture.png

تم تعديل هذه المشاركة بواسطة أحمد الشنقيطي في 8 أغسطس 2012 في 12:24 — السبب: إضافة ملف PDF

15
#2

رائعة :)

.Everyone has a dream

.I never thought that I would be the one I am on now

...No Pain No Gain

مشرف قسم السى/سى++ و الاسيمبلى سنة 2015 بأذن الله ...

تعديل: مشرف قسم السى/سى++ من 2012.

#3

ماشاء الله عليك أخي أحمد.مشكور علي الدرس أو المقالة كما سميتها.

في الحقيقة واجهت خوارزمية D-H في كتاب الهندسة العكسية للفريق العربي ولكني لم أفهمها جيدا وجاري القرائة وربما أفهمها.smile.gif

#5

ممتاز كالعادة احمد

اقتباس

أرجو منك أن تُخصص مقالات أخرى لبقية النقاط الموجودة في مشاركتك هذه.

وبالأخص النقطة الاولى Antivirus Techniques


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#6

ما شاء الله و تبارك الله أخي أحمد مقالة رائعة بكل ما تحمله الألفاظ من معنى ، تستحق أن ترفع لك القبعة tongue.gif

في انتظار المقالة على شكل pdf ...

بالتوفيق لك أخي الغالي ...

rS3eY.png
#7

شُكرا إخوتي :)

بالنسبة لموضوع الـ Antivirus Techniques, فأنا أدرسه حاليا, ربما تكون لي معه وقفة قريبة إن شاء الله :happy:

اقتباس
في انتظار المقالة على شكل pdf ...

تمت إضافة الكتاب في المرفقات.

تم تعديل هذه المشاركة بواسطة أحمد الشنقيطي في 8 أغسطس 2012 في 01:36

#8

شكر الله لك يا حبيبي واخي الودود كعهدي بك تلامس بكتاباتك أخلية الضعفاء امثالي لتضعنا على الطريق وقد كان ذلك فسر فإنا معك من السائرين , اما انا فلم اكمل الفهم بعد بما فيه الكفاية لكنني اتابع قراءة المقالة بشوق و أطمأنان دام حبرك وفكرك

#9

مرحبا بأخي العزيز و ابن بلدي :)

سُررت بمرورك :happy:

#10

السلام عليكم ورحمة الله وبركاته ،،

مقالة رائعة بالتأكيد ( لأن موضوعها جيد جدا )، لكن ربما من الصعب علي فهمها بهذا الكم البسيط من المعلومات.

هل تزيدنا بمزيد من المعلومات بمقالات خارج المسابقة، يكون فيها المزيد من التوضيحات واستيعاب اكثر للفكرة.

وجزاك الله خيرا.

لا إله إلا الله محمد رسول الله عليه الصلاة والسلام

سبحانك اللهم وبحمدك اشهد ان لا إله إلا انت استغفرك واتوب اليك

سأتقن الـ ++C و
PHP إن شاء الله تعالى ...

جاري العمل على
Microsoft Sql Server و MySQL ...

 

#11

السلام عليكم

مرحبا أخي عبد الله, سأحاول إن شاء الله أن أكتب المزيد من المقالات حول هذا الموضوع مع أن الأولوية الآن هي لقسم C/C++ الذي يحتاج حاليا إلى الكثير من الجهد.

#12

:ty:

مقالة ممتازة

#13
(( عبدالله )) كتب:

السلام عليكم ورحمة الله وبركاته ،،

مقالة رائعة بالتأكيد ( لأن موضوعها جيد جدا )، لكن ربما من الصعب علي فهمها بهذا الكم البسيط من المعلومات.

هل تزيدنا بمزيد من المعلومات بمقالات خارج المسابقة، يكون فيها المزيد من التوضيحات واستيعاب اكثر للفكرة.

وجزاك الله خيرا.

أوافقك الرأي أخي

#14

السلام عليكم

وصلني صباح اليوم إيميل من إدارة موقع كتب يُفيد بقبول الكتاب :

خوارزمية Diffie-Hellman ! (رؤية من الداخل ..)

تحياتي.

#15

مبروك أحمد الشنقيطي

لمزيد من النجاح


﴿وَمَا كَانَ اللَّهُ لِيُعَذِّبَهُمْ وَأَنْتَ فِيهِمْ ۚ وَمَا كَانَ اللَّهُ مُعَذِّبَهُمْ وَهُمْ يَسْتَغْفِرُونَ﴾

الأنفال ۳۳                                  
 

#16

موضوع ممتاز أخ أحمد أخوك Sembawyo :D



موضوع ممتاز أخ أحمد أخوك Sembawyo :D

 
Full Name : Ahmed Mohamed Abd El Hammed Salem
Job : Soft ware Developer
Mobile Number : (+2) 01110024783
Skype : SkipCoder
Email : DevAhmedSalim@Gmail.Com

يوماً ما سأجعل وطني يفخر بى

مواضيع مشابهة