تبادل مفتاح ديفي-هيلمان

من ويكيبيديا، الموسوعة الحرة
اذهب إلى: تصفح، ‏ ابحث

تبادل مفتاح ديفي-هيلمان (بالإنجليزية: Diffie-Hellman key exchange وتختصر إلى D-H) هو بروتوكول تشفيري يسمح لجماعتين من الأشخاص ليس لديهما معرفة مسبقة ببعضهما بإنشاء مفتاح سري مشترك على قناة محادثات غير مؤمنة. هذا المفتاح يمكن استخدامه فيما بعد لتشفير المحادثات اللاحقة باستخدام خوارزمية تشفير بالمفتاح المتماثل. هو من اول البروتوكلات التي ظهرت في مجال كربتوغرافية المفتاح العلني وقد ظهر لاول مرة عام 1976, وفيه يعرض ديفي وهيلمان وسيلة محددة بعينها للقيام بمهمة تبادل المفاتيح وهذا بواسطة مسألة رياضية تسمى مسألة اللوغاريتم المتقطع .

عرض المسألة[عدل]

عندنا طرفان يريدان التواصل , نرمز للطرفين ب- A و- B , هذان الطرفان متصلان بشبكة ليست امنة ونفرض انه ليس بينها اي وسيلة اتصال امنة , يريدان تشفير الرسائل وفكها بواسطة مفتاح سري مشترك اي فقط هما من يعرف هذا المفتاح . نفرض ان الطرفين يتعاملان بالارقام وان الارقام تقع في مجال محدود منته.

خوارزمية التبادل[عدل]

اولا وقبل بدأ التواصل هناك عنصران معروفان لكل متصل بالشبكة المتصل بها A و B : عدد أولي q , وجذر بدائي \alpha . نفرض أن A و- B يريدان تبادل مفتاح :

  1. يختار A عددا عشوائيا X_A < q , ويحسب :  Y_A=\alpha^{X_A}\mod q
  2. يختار B عددا عشوائيا X_B < q , ويحسب :  Y_B=\alpha^{X_B}\mod q
  3. يرسل A :  \ Y_A ويرسل B :  \ Y_B للطرف الاخر . (القيمتين X_A و- X_B سريتين )
  4. يحسب A : K_A={Y_B}^{X_A} \mod q
  5. يحسب B : K_B={Y_A}^{X_B} \mod q

المفتاح المشترك هو K_A او  K_B وذلك لانَّ :

 K_A={Y_B}^{X_A} \mod q={\alpha^{X_B}}^{X_A} \mod q ={\alpha^{X_A}}^{X_B} \mod q ={Y_A}^{X_B} \mod q =K_B

مثال[عدل]

نفرض أنَّ : q=353 ونأخذ جذر بدائي لهذا العدد الاولي في هذه الحالة : \alpha=3 نفرض أنَّ A و- B يختاران المفتاحين : X_A=97 , X_B=233 . كل منهما يحسب المفتاح العلني :

A يحسب : Y_A=3^{97} \mod 353 =40

B يحسب : Y_B=3^{233} \mod 353 =248

بعد تبادل المفاتيح يحسب كل منهما المفتاح المشترك :

 K_A={Y_B}^{X_A} \mod q=248^{97} \mod 353 = 160

 K_B={Y_A}^{X_B} \mod q=40^{97} \mod 353 = 160

امان الخوارزمية[عدل]

يعد تمام عملية التبادل , المتطفل او من ليس A او B يرى العناصر التالية :  \alpha \ , q \ , Y_B \ , Y_A . وليميز هذا المتطفل عدد B او A السري عليه ان يحسبه من القيم التي يراها . لذا عليه استخراج اللوغاريتم المتقطع الخاص ب- Y_A او Y_B . هذه المسألة معروف انها من المسائل الصعبة عندما تكون الاعداد كبيرة (بمفهوم معين هي مساوية لمسألة التفكيك لعوامل ) .

مصادر[عدل]

  • cryptography and network security , William Stallings