تشفير ElGamal

في علم التشفير ، يُعد نظام تشفير ElGamal خوارزمية تشفير بالمفتاح العام تعتمد على تبادل مفاتيح Diffie-Hellman . وقد وصفه طاهر الجمال عام 1985. [ 1 ] يُستخدم تشفير ElGamal في برنامج GNU Privacy Guard المجاني ، والإصدارات الحديثة من PGP ، وأنظمة تشفير أخرى . أما خوارزمية التوقيع الرقمي (DSA) فهي شكل مُعدّل من نظام توقيع ElGamal ، ويجب عدم الخلط بينها وبين تشفير ElGamal.

يمكن تعريف تشفير ElGamal على أي مجموعة دوريةجي{\displaystyle G}يشبه هذا النظام مجموعة الضرب للأعداد الصحيحة بتردد n  إذا وفقط إذا كان n يساوي 1 أو 2 أو 4 أو p <sub>k</sub> أو 2 <sub> k</sub> ، حيث p عدد أولي فردي و k > 0. ويعتمد أمانه على صعوبة مسألة ديفي-هيلمان القرارية .جي{\displaystyle G}.

الخوارزمية

تقوم الخوارزمية أولاً بإجراء اتفاقية مفتاح ديفي-هيلمان لإنشاء سر مشتركs{\displaystyle s}ثم يستخدم هذا المفتاح كمفتاح تشفير لمرة واحدة لتشفير الرسالة. يتم تشفير ElGamal على ثلاث مراحل: توليد المفتاح، والتشفير، وفك التشفير. المرحلة الأولى هي تبادل المفاتيح فقط، بينما المرحلتان الأخيرتان تجمعان بين عمليات تبادل المفاتيح وعمليات معالجة الرسالة.

توليد المفاتيح

يقوم الطرف الأول، أليس، بإنشاء زوج من المفاتيح على النحو التالي:

  • قم بإنشاء وصف فعال لمجموعة حلقيةجي{\displaystyle G\,}من النظامq{\displaystyle q\,}مع مولد كهربائيز{\displaystyle g}. يتركهـ{\displaystyle e}يمثل عنصر الهوية لـجي{\displaystyle G}.
    ليس من الضروري إنشاء مجموعة ومولد لكل مفتاح جديد. في الواقع، قد يتوقع المرء أن يكون تطبيق ElGamal مُبرمجًا مسبقًا لاستخدام مجموعة معينة، أو مجموعة من حزمة معينة. يعتمد اختيار المجموعة في الغالب على حجم المفاتيح التي ترغب في استخدامها.
  • اختر عددًا صحيحًاx{\displaystyle x}عشوائياً من{1،...،q-1}{\displaystyle \{1,\ldots ,q-1\}}.
  • الحوسبةح:=زx{\displaystyle h:=g^{x}}.
  • يتكون المفتاح العام من القيم(جي،q،ز،ح){\displaystyle (G,q,g,h)}تنشر أليس هذا المفتاح العام وتحتفظ بهx{\displaystyle x}باعتبارها مفتاحها الخاص، والذي يجب أن يبقى سراً.

التشفير

يقوم طرف ثانٍ، يُدعى بوب، بتشفير رسالةم{\displaystyle M}إلى أليس تحت مفتاحها العام(جي،q،ز،ح){\displaystyle (G,q,g,h)}على النحو التالي:

  • قم بتصنيف الرسائلم{\displaystyle M}إلى عنصرم{\displaystyle m}لجي{\displaystyle G}باستخدام دالة تعيين قابلة للعكس.
  • اختر عددًا صحيحًاy{\displaystyle y}عشوائياً من{1،...،q-1}{\displaystyle \{1,\ldots ,q-1\}}.
  • الحوسبةs:=حy{\displaystyle s:=h^{y}}يُطلق على هذا اسم السر المشترك .
  • الحوسبةج1:=زy{\displaystyle c_{1}:=g^{y}}.
  • الحوسبةج2:=مs{\displaystyle c_{2}:=m\cdot s}.
  • بوب يرسل النص المشفر(ج1،ج2){\displaystyle (c_{1},c_{2})}إلى أليس.

لاحظ أنه إذا كان المرء يعرف النص المشفر(ج1،ج2){\displaystyle (c_{1},c_{2})}والنص الأصليم{\displaystyle m}يمكن للمرء بسهولة العثور على السر المشتركs{\displaystyle s}، منذج2م-1=s{\displaystyle c_{2}\cdot m^{-1}=s}لذلك، جديدy{\displaystyle y}وبالتالي جديدs{\displaystyle s}يتم إنشاء هذا الإجراء لكل رسالة لتحسين الأمان. ولهذا السبب،y{\displaystyle y}ويُطلق عليه أيضاً اسم المفتاح المؤقت .

فك التشفير

أليس تفك شفرة نص مشفر(ج1،ج2){\displaystyle (c_{1},c_{2})}بمفتاحها الخاصx{\displaystyle x}على النحو التالي:

  • الحوسبةs:=ج1x{\displaystyle s:=c_{1}^{x}}. منذج1=زy{\displaystyle c_{1}=g^{y}}،ج1x=زxy=حy{\displaystyle c_{1}^{x}=g^{xy}=h^{y}}وبالتالي فهو نفس السر المشترك الذي استخدمه بوب في التشفير.
  • الحوسبةs-1{\displaystyle s^{-1}}، عكسs{\displaystyle s}في المجموعةجي{\displaystyle G}يمكن حساب ذلك بإحدى الطرق العديدة. إذاجي{\displaystyle G}هي مجموعة جزئية من مجموعة ضربية من الأعداد الصحيحة بتردد ن{\displaystyle n}، أينن{\displaystyle n}إذا كان العدد أوليًا، فيمكن حساب معكوسه الضربي المعياري باستخدام خوارزمية إقليدس الموسعة . وثمة بديل آخر وهو حسابs-1{\displaystyle s^{-1}}مثلج1q-x{\displaystyle c_{1}^{qx}}هذا هو عكسs{\displaystyle s}بسبب نظرية لاغرانج ، بما أنsج1q-x=زxyز(q-x)y=(زq)y=هـy=هـ{\displaystyle s\cdot c_{1}^{qx}=g^{xy}\cdot g^{(qx)y}=(g^{q})^{y}=e^{y}=e}.
  • الحوسبةم:=ج2s-1{\displaystyle m:=c_{2}\cdot s^{-1}}ينتج عن هذه العملية الحسابية الرسالة الأصليةم{\displaystyle m}، لأنج2=مs{\displaystyle c_{2}=m\cdot s}؛ لذلكج2s-1=(مs)s-1=مهـ=م{\displaystyle c_{2}\cdot s^{-1}=(m\cdot s)\cdot s^{-1}=m\cdot e=m}.
  • رسم خريطةم{\displaystyle m}العودة إلى الرسالة النصية العاديةم{\displaystyle M}.

الاستخدام العملي

كغيرها من أنظمة المفاتيح العامة، يُستخدم نظام التشفير ElGamal عادةً كجزء من نظام تشفير هجين ، حيث تُشفّر الرسالة نفسها باستخدام نظام تشفير متناظر، ثم يُستخدم ElGamal لتشفير المفتاح المتناظر فقط. وذلك لأن أنظمة التشفير غير المتناظرة، مثل ElGamal، عادةً ما تكون أبطأ من الأنظمة المتناظرة لتحقيق نفس مستوى الأمان ، لذا يُعدّ تشفير الرسالة، التي قد تكون كبيرة الحجم، باستخدام تشفير متناظر أسرع، ثم استخدام ElGamal فقط لتشفير المفتاح المتناظر، الذي يكون عادةً صغيرًا جدًا مقارنةً بحجم الرسالة.

حماية

يعتمد أمان مخطط ElGamal على خصائص المجموعة الأساسيةجي{\displaystyle G}بالإضافة إلى أي نظام حشو مستخدم في الرسائل. إذا كان افتراض ديفي-هيلمان الحسابي (CDH) صحيحًا في المجموعة الدورية الأساسيةجي{\displaystyle G}إذاً، فإن وظيفة التشفير تكون أحادية الاتجاه . [ 2 ]

إذا كان افتراض ديفي-هيلمان (DDH) الخاص بالقرار صحيحًا فيجي{\displaystyle G}عندئذٍ، يحقق ElGamal الأمن الدلالي . [ 2 ] [ 3 ] لا يُستدل على الأمن الدلالي من فرضية ديفي-هيلمان الحسابية وحدها. انظر فرضية ديفي-هيلمان القرارية لمناقشة المجموعات التي يُعتقد أن هذه الفرضية تنطبق عليها.

تشفير ElGamal قابل للتغيير بشكل مطلق ، وبالتالي فهو غير آمن في مواجهة هجوم النص المشفر المُختار . على سبيل المثال، بالنظر إلى تشفير(ج1،ج2){\displaystyle (c_{1},c_{2})}رسالة ما (ربما غير معروفة)م{\displaystyle m}يمكن للمرء بسهولة إنشاء تشفير صالح(ج1،2ج2){\displaystyle (c_{1},2c_{2})}نص الرسالة2م{\displaystyle 2m}.

لتحقيق أمان النص المشفر المختار، يجب تعديل النظام بشكل إضافي، أو استخدام نظام حشو مناسب. وبحسب التعديل، قد يكون افتراض DDH ضروريًا أو غير ضروري.

تم اقتراح مخططات أخرى مرتبطة بـ ElGamal تحقق الحماية ضد هجمات النص المشفر المختار. نظام التشفير Cramer–Shoup آمن في مواجهة هجوم النص المشفر المختار بافتراض صحة DDH لـجي{\displaystyle G}لا يعتمد برهانها على نموذج أوراكل العشوائي . وهناك مخطط آخر مقترح هو DHIES ، [ 4 ] والذي يتطلب برهانه افتراضًا أقوى من افتراض DDH.

كفاءة

تشفير ElGamal احتمالي ، مما يعني أنه يمكن تشفير نص عادي واحد إلى العديد من النصوص المشفرة المحتملة، مع النتيجة التي ينتج عنها أن تشفير ElGamal العام ينتج عنه توسع بنسبة 1:2 في الحجم من النص العادي إلى النص المشفر.

يتطلب التشفير باستخدام خوارزمية ElGamal عمليتي رفع للأس ؛ إلا أن هاتين العمليتين مستقلتان عن الرسالة ويمكن حسابهما مسبقًا عند الحاجة. أما فك التشفير فيتطلب عملية رفع للأس واحدة وحساب معكوس المجموعة، ويمكن دمج هاتين العمليتين بسهولة في عملية رفع واحدة للأس.

انظر أيضاً

للمزيد من القراءة

مراجع

  1. طاهر الجمال (1985). "نظام تشفير بالمفتاح العام ونظام توقيع قائم على اللوغاريتمات المنفصلة" (ملف PDF) . معاملات IEEE في نظرية المعلومات . 31 (4): 469-472 . CiteSeerX 10.1.1.476.4791 . doi : 10.1109/TIT.1985.1057074 . S2CID 2973271 .  (نُشرت نسخة المؤتمر في CRYPTO '84، الصفحات 10-18)
  2. 1 2 مايك روسوليك (13 ديسمبر 2008). "مخطط تشفير إلجامال" . جامعة إلينوي في أوربانا-شامبين . مؤرشف من الأصل في 22 يوليو 2016.
  3. تسيونيس، يانيس؛ يونغ، موتي (24-05-2006). "حول أمان التشفير القائم على ElGamal". التشفير بالمفتاح العام . سلسلة محاضرات في علوم الحاسوب. المجلد 1431. الصفحات 117-134 . doi : 10.1007/BFb0054019 . ISBN   978-3-540-69105-1.
  4. عبد الله، ميشيل؛ بيلار، ميهير؛ روغاواي، فيليب (1 يناير 2001). "افتراضات أوراكل ديفي-هيلمان وتحليل DHIES" . مواضيع في علم التشفير - CT-RSA 2001. سلسلة محاضرات في علوم الحاسوب. المجلد 2020. الصفحات 143-158 . doi : 10.1007/3-540-45353-9_12 . ISBN   978-3-540-41898-6.