ازرق تايمز


    تطبيق التشفير rsa با الدلفي

    شاطر
    avatar
    المدير
    المدير العام
    المدير العام

    الدولة :
    ذكر
    القوس
    عدد المساهمات : 188
    نقاط : 530
    تاريخ الميلاد : 30/11/1970
    تاريخ التسجيل : 01/11/2012
    العمر : 47

    تطبيق التشفير rsa با الدلفي

    مُساهمة من طرف المدير في السبت يناير 12, 2013 12:31 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

    ارجوا ان تكون الفكرة وصلت وبا التوفيق لكم




      الوقت/التاريخ الآن هو الأحد مايو 27, 2018 4:34 am