admin Admin
عدد المساهمات : 146 تاريخ التسجيل : 06/11/2012 الموقع : سطيف
| موضوع: تطبيق التشفير rsa با الدلفي الأربعاء ديسمبر 19, 2012 8:27 pm | |
| السلام عليكم وتحياتي لجميع الاعضاء اليوم سنتحدث عن طريقة طريقة عمل تشفير Rsa هذا التشفير يستعمل في بعض المواقع وانظمة التشفير كا الناغرا 2 مثلا او الاتصالات الهاتفية .... التشفير يعتمد على مفتاحين la clé publique et la clé privée يعني المفتاح الذي يشفر ليس هو من يفك الشفير على عكس كل انظمة التشفير وهو يعرف با العلاقة التالية للتشفير Pour encrypter un message, on fait: c = m^e mod n
ولفك التشفير
Pour décrypter: m = c^d mod n
حيث
m = message en clair c = message encrypté (e,n) constitue la clé publique (d,n) constitue la clé privée n est le produit de 2 nombres premiers ^ est l'opération de mise à la puissance (a^b : a puissance b
mod est l'opération de modulo (reste de la division entière
للمزيد من المعلومات
http://sebsauvage.net/comprendre/encryptage/crypto_rsa.html
وفكرة توليد الاعداد الاولية
http://fr.wikipedia.org/wiki/Crible_d%27%C3%89ratosth%C3%A8ne
التشفير يعتمد على حجم المتغيرات ويلزم يكون كبير جدا للحصول على تشفير اقوى
لا يمكن ان نستعمل المتغيرات المعروفة ولا يكفي المتغير
Int64
او
Extended
لذلك برمجت وحدات تقوم بهذا العمل مثال وحدة
DFFLibV13
او
cHugeInt
وهذان الاخيران يسمحان لنا بتطيق عملية
Puissance ou modulo
لما يسمى
Big integer
با النسبة لوحدة
cHugeInt
تحتوي على الكثير من العمليات وما يهمنا هو الامر
HugeWordPowerAndMod
يعني قوة وحاصل قسمة
وتطبيقه كا الاتي
بعد فتح مشروع جديد وتعريف الوحدة
cHugeInt
يتم تعريف المتغيرات كا الاتي
Msg1, Msg2,final, Prime2: HugeWord;
c = m^e mod n
حيث
C=msg1 M=msg2 E=final N=prime2
نقوم بحقن المتغيرات
begin
HugeWordInit(Msg1);
HugeWordInit(Msg2);
HugeWordInit(final);
HugeWordInit(Prime2);
HexToHugeWord('6F36AE4B5FAC4A8CB41DAB1CC5045AEC0AAF87700076DCA81F972D8EEBACEA7EAEDDC96A04B6B9C383C1F0B69155A375B934EF1EFD20E3472DF687EB6B31AA00', Msg2);
HexToHugeWord( '03', final);
HexToHugeWord('A748CFA4ABD7DA5C5E98675020C4DFC843559754FE8B039F4333F1205228856E484DA8A375DDDE600FF69C24D06E05AE7CC2A8415696DFF81568DC0158660875', Prime2);
هنا حقنت قيم الهيكس كما يمكن حقن قيم نصية اذا اردت ادخال قيم الاعداد با
Dec نستعمل AnsiString
تنفيذ العلاقة
HugeWordPowerAndMod( Msg1, Msg2,final, Prime2 );
الننتيجة مثلا تم عرضها على
edit1.Text:=HugeWordToHex(Msg1) ;
ثم تحرير المتغيرات
HugeWordFree(Msg1);
HugeWordFree(Msg2); HugeWordFree(final); HugeWordFree(Prime2);
تحميل الوحدة
http://www.star7-dz.com/user.asp?id=45&f=cHugeInt.rar
ارجوا ان تكون الفكرة وصلت وبا التوفيق لكم
| |
|