hi there, i tried the implemented elgamal algorithm of encryption and decryption in matlab platform, i read many papers related to the subject and i found easy example. i tried to test it to see wether is it right or not but i didn’t get the right result as i expected, here is the code i tried:
p=23
g=11
a=6
y=mod(g^a,p)
k=3
m=10 % represents message i want to encrypt before sending it.
y1=mod(g^k,p) %first block of encryption process
y2=mod(m*y^k,p) %second block of encryption process
result=mod(y2*(y1^a)^-1,p) % result from this step must be the encrypted message which here equal to 10 but i received wrong answer, can any one please help me to fix it
انتظر ردكم يا شباب على الكود واتمنى اني الاقي الحل عندكم لاني بصراحه تعبت وانا احاول احل المشكله لكن للاسف ما عرفت احلها وانا لازم اسوي البرنامج
وهذا غير صحيح فى ألجوريثم الجمل
اولا لانه يجب ان يكون على هذه الصورة
y = g^a mod p
وفى هذه الحالة mod يعنى Primitive root modulo وعند استعمالك لها بالطريقة التى ذكرتها فانك تقوم بحساب المتبقى من القسمة
فعلى سبيل المثال عند تنفيذ الكود الاتى
أخى العزيز لازم تفهم الاول كيفية حساب Primitive root modulo يدويا علشان تقدر تطبقهم فى الماتلاب وفى هذا الموقع مجموعة دوال ممكن تفيدك http://www.cs.kuleuven.be/~dirkn/code/
الله يجزاك خير ويعطيك الف مليون عافيه ويوفقك دنيا واخره
والله يا الحبيب انا ماني خبير ولا محترف في الماتلاب بس احاول استفيد من اصحاب الخبره الموجودين هنا مثلك وشرواك بس ياليت يا غالي لو تقدر توضح لي بمثال وانا ان شاء الله احاول اطبقه على برنامجي ولك جزيل الشكر
جزاك الله خيرا اخى العزيز على كلامك الطيب لكن فى الحقيقة انا حاسس انك مش فاهم Primitive root modulo او مقراءتش الموضوع
المهم انك لازم تفهم Primitive root modulo كويس جدا انا بصراحة معنديش وقت اقراءه علشان اعرف طريقة عمله لكن انت ممكن تستعمل الدالة الموجود فى الموقع اللى ذكرة مباشرة لحساب الجذر الاولى او على الاقل ممكن تعرف طريقة عمل الدالة وتحاول تدمجها فى برنامجك