RSA: ما هو، الخوارزمية وتطبيق التشفير

المؤلف: IT Sectr نُشر: 2026-04-02 وقت القراءة: 9 دق

RSA هو نظام تشفير بالمفتاح العام يوفر التشفير والتوقيعات الرقمية بناءً على التعقيد الحسابي لتحليل الأعداد الكبيرة إلى عوامل. وفقًا للمنشور الخاص NIST 800-56B Rev. 2 (2023)، RSA بطول مفتاح 2048 بت يظل معيار الأمان للأنظمة الحكومية والتجارية. تُستخدم الخوارزمية على نطاق واسع في بروتوكولات TLS والتوقيعات الرقمية وتشفير البيانات في التطبيقات المحمولة.

الملامح الرئيسية

  • RSA هي خوارزمية تشفير غير متماثلة تستخدم زوجًا من المفاتيح: عام وخاص.
  • أمان الخوارزمية يعتمد على الصعوبة الرياضية لتحليل عدد كبير إلى عوامله الأولية.
  • حجم المفتاح 2048 بت يعتبر الحد الأدنى الموثوق به منذ 2023 وفقًا لـ NIST.
  • RSA تُستخدم في شهادات TLS والتوقيعات الرقمية وبروتوكولات المصادقة.
  • التطوير المحمول يستخدم RSA من خلال مكتبات التشفير المدمجة: Android Keystore و iOS Security Framework.

ما هو RSA؟

RSA هي خوارزمية تشفير بالمفتاح العام طورها رون ريفست وآدي شامير وليونارد أدليمان في عام 1977. الاسم مشتق من الأحرف الأولى من ألقاب المؤلفين. أصبحت الخوارزمية أول نظام تشفير غير متماثل قابل للتطبيق عمليًا حيث تختلف مفاتيح التشفير وفك التشفير.

تاريخ الإنشاء

نُشرت خوارزمية RSA في عام 1977 في مجلة Scientific American وهي مبنية على أعمال سابقة لويتفيلد ديفي ومارتن هيلمان في مجال التشفير بالمفتاح العام. حصل معهد ماساتشوستس للتكنولوجيا على براءة اختراع لـ RSA في عام 1983، والتي استمرت حتى عام 2000. وفقًا لتقرير RSA Laboratories (2023)، تظل الخوارزمية واحدة من أكثر معايير التشفير انتشارًا في العالم — فهي تُستخدم في مليارات الأجهزة يوميًا.

مبدأ عدم التماثل

على عكس التشفير المتماثل حيث يُستخدم نفس المفتاح لكل من التشفير وفك التشفير، RSA تعمل بزوج من المفاتيح المرتبطة رياضيًا. يمكن نشر المفتاح العام لأي شخص دون خطر اختراق النظام. المفتاح الخاص معروف فقط للمالك ولا يُنقل أبدًا عبر الشبكة. وفقًا لدراسة IBM Security X-Force Threat Intelligence Index (2024)، يُستخدم التشفير غير المتماثل في 96% من بروتوكولات نقل البيانات الآمنة الحديثة.

الأسس الرياضية

يعتمد أمان RSA على مشكلة التحليل إلى العوامل — تحليل ناتج ضرب عددين أوليين كبيرين إلى عوامل. إذا اخترت عددين أوليين p و q بطول 1024 بت لكل منهما، فإن ناتج ضربهما n سيكون 2048 بت. حساب p و q بمعرفة n فقط باستخدام الطرق الحديثة أمر مستحيل عمليًا: وفقًا لتقييم خبراء CNRS (2024)، فإن كسر RSA-2048 يتطلب أكثر من 300 مليار سنة من الحساب على حاسوب تقليدي.

كيف تعمل خوارزمية RSA

لننظر في دورة العمل الكاملة لـ RSA من توليد المفاتيح إلى تشفير وفك تشفير الرسالة. فهم هذه المراحل ضروري للتنفيذ الصحيح للخوارزمية في التطبيقات المحمولة.

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

تبدأ العملية باختيار عددين أوليين كبيرين p و q. يُحسب المعامل n = p x q، الذي يحدد طول المفتاح. ثم تُحسب دالة أويلر phi(n) = (p-1)(q-1). يُختار الأس العام e الذي يكون أوليًا نسبيًا مع phi(n). يُحسب الأس الخاص d كمعكوس ضربي معياري لـ e بمعامل phi(n). وفقًا لـ NIST SP 800-56B Rev. 2، يجب أن يكون الحد الأدنى لطول n 2048 بت لضمان حماية كافية.

java
import java.security.KeyPairGenerator;
import java.security.KeyPair;
import java.security.SecureRandom;

public class RSAKeyGenerator {
    public static KeyPair generateKeyPair() throws Exception {
        KeyPairGenerator generator = KeyPairGenerator.getInstance("RSA");
        generator.initialize(2048, new SecureRandom());
        return generator.generateKeyPair();
    }
}

التشفير وفك التشفير

لتشفير رسالة m، يحولها المرسل إلى عدد صحيح أصغر من n ويحسب النص المشفر c = m^e mod n. يستخدم المستلم المفتاح الخاص d لاستعادة الرسالة الأصلية: m = c^d mod n. من المهم ملاحظة أن RSA غير مصمم لتشفير كميات كبيرة من البيانات بسبب الأداء المنخفض — الحد الأقصى لحجم الرسالة يساوي طول المفتاح مطروحًا منه بايتات الحمل (حوالي 190 بايت لـ RSA-2048 مع OAEP).

java
import javax.crypto.Cipher;
import java.security.PublicKey;
import java.util.Base64;

public class RSAEncryptor {
    public static String encrypt(String data, PublicKey publicKey) throws Exception {
        Cipher cipher = Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
        cipher.init(Cipher.ENCRYPT_MODE, publicKey);
        byte[] encrypted = cipher.doFinal(data.getBytes());
        return Base64.getEncoder().encodeToString(encrypted);
    }
}

التوقيع الرقمي باستخدام RSA

RSA تُستخدم أيضًا لإنشاء التوقيعات الرقمية — آلية للتحقق من صحة وسلامة البيانات. يوقع المالك تجزئة الرسالة بمفتاحه الخاص، ويمكن لأي شخص التحقق من التوقيع باستخدام المفتاح العام. وفقًا لتقرير Sectigo Certificate Transparency (2025)، أكثر من 85% من شهادات TLS على الإنترنت تستخدم RSA للتوقيعات الرقمية، مما يجعل الخوارزمية أساس الثقة للاتصالات عبر الويب.

kotlin
import java.security.Signature

fun signData(data: ByteArray, privateKey: java.security.PrivateKey): ByteArray {
    val signature = Signature.getInstance("SHA256withRSA")
    signature.initSign(privateKey)
    signature.update(data)
    return signature.sign()
}

fun verifySignature(
    data: ByteArray, signedData: ByteArray, publicKey: java.security.PublicKey
): Boolean {
    val signature = Signature.getInstance("SHA256withRSA")
    signature.initVerify(publicKey)
    signature.update(data)
    return signature.verify(signedData)
}

أحجام المفاتيح ومستوى الأمان

يؤثر طول المفتاح بشكل مباشر على القوة التشفيرية لـ RSA. مع زيادة القدرة الحاسوبية، يتم مراجعة الحد الأدنى المقبول لحجم المفتاح بانتظام من قبل هيئات المعايير الدولية. لننظر في التوصيات الحالية من NIST والجهات التنظيمية الأخرى.

طول المفتاحالمكافئ المتماثلالحالة
1024 بت80 بتمحظور منذ 2023
2048 بت112 بتالحد الأدنى المعياري
3072 بت128 بتموصى به للأنظمة الجديدة
4096 بت256 بتللبيانات السرية

التأثير على الأداء

زيادة طول مفتاح RSA تؤثر بشكل كبير على وقت تنفيذ العمليات. توليد مفتاح بطول 4096 بت يستغرق حوالي 10 أضعاف وقت مفتاح 2048 بت. تتطلب عمليات التشفير وفك التشفير بمفتاح أطول موارد حسابية أكثر، وهو أمر بالغ الأهمية لـ الأجهزة المحمولة ذات استهلاك الطاقة المحدود.

التهديد الكمي

مع تطور الحوسبة الكمية، يمكن كسر RSA باستخدام خوارزمية شور في وقت متعدد الحدود. هذه الخوارزمية، التي اقترحها بيتر شور في عام 1994، يمكنها تحليل الأعداد الكبيرة إلى عوامل في O((log n)^3) عملية. وفقًا لخارطة طريق IBM Quantum (2025)، من المتوقع أن يحدث الكسر العملي لـ RSA-2048 في موعد لا يتجاوز 2035، ومع ذلك توصي NIST بالفعل بـ الانتقال التدريجي إلى خوارزميات ما بعد الكم CRYSTALS-Kyber و CRYSTALS-Dilithium.

تطبيق RSA في التطوير المحمول

RSA تُستخدم بنشاط في التطبيقات المحمولة لضمان نقل البيانات بشكل آمن والتحقق من صحة الخوادم وحماية المعاملات الرقمية. يتم التكامل من خلال واجهات برمجة التطبيقات التشفيرية القياسية لكلتا المنصتين الرئيسيتين.

Android Keystore

توفر منصة Android Android Keystore — مخزن نظامي للمفاتيح التشفيرية محمي بمستوى الأجهزة Trusted Execution Environment. لا يمكن استخراج مفاتيح RSA المولدة في KeyStore من الجهاز حتى في حالة اختراق التطبيق. هذا يوفر حماية ضد مجموعة واسعة من الهجمات، بما في ذلك البرامج الضارة ذات الوصول الجذري.

kotlin
import android.security.keystore.KeyGenParameterSpec
import android.security.keystore.KeyProperties
import java.security.KeyPairGenerator

fun generateKeyInAndroidKeystore() {
    val generator = KeyPairGenerator.getInstance(
        KeyProperties.KEY_ALGORITHM_RSA,
        "AndroidKeyStore"
    )
    val spec = KeyGenParameterSpec.Builder(
        "rsa_key_pair",
        KeyProperties.PURPOSE_ENCRYPT or KeyProperties.PURPOSE_DECRYPT
    )
        .setKeySize(2048)
        .setBlockModes(KeyProperties.BLOCK_MODE_ECB)
        .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
        .build()
    generator.initialize(spec)
    val keyPair = generator.generateKeyPair()
}

iOS Security Framework

في iOS، يتم التعامل مع RSA من خلال Security Framework مع الوصول إلى Secure Enclave على الأجهزة المزودة بشريحة A7 والإصدارات الأحدث. Secure Enclave هو معالج مساعد مخصص معزول عن المعالج الرئيسي يقوم بعمليات التشفير ويخزن المفاتيح في قبو أجهزة. يمكن توليد مفاتيح RSA داخل Secure Enclave وفي Keychain البرمجي بمستويات وصول مختلفة.

التشفير الهجين عمليًا

في التطبيقات المحمولة الحقيقية، نادرًا ما يُستخدم RSA لتشفير البيانات الكبيرة مباشرة. الممارسة القياسية هي نظام هجين: يولد التطبيق مفتاح جلسة AES، ويشفره بالمفتاح العام RSA للخادم ويرسله إلى الخادم. يتم تشفير كل حركة المرور اللاحقة باستخدام AES، وهو أسرع 100-1000 مرة من نقل البيانات مباشرة عبر RSA.

مزايا وقيود RSA

مثل أي خوارزمية تشفير، RSA لها نقاط قوة وضعف يجب مراعاتها عند تصميم الأنظمة الآمنة. التقييم الموضوعي يساعد في اختيار الأداة المناسبة لمهمة محددة.

المزايا الرئيسية

الميزة الرئيسية لـ RSA هي حل المشكلة الأساسية لتوزيع المفاتيح — يمكن نشر المفتاح العام بحرية دون خطر اختراق النظام بأكمله. تتجلى عالمية الخوارزمية في دعم كل من التشفير و التوقيعات الرقمية بزوج واحد من المفاتيح. بالإضافة إلى ذلك، لدى RSA نظام بيئي داعم واسع: المكتبات متاحة لجميع اللغات والمنصات.

القيود الرئيسية

العيب الرئيسي لـ RSA هو الأداء المنخفض مقارنة بالخوارزميات المتماثلة. فك تشفير RSA-2048 على معالج محمول حديث يستغرق حوالي 5-15 مللي ثانية، بينما يعالج AES-256 غيغابايتات من البيانات في نفس الوقت. أيضًا، RSA عرضة للهجمات الكمية عبر خوارزمية شور، مما يحد من استخدامه في الأنظمة التي تتطلب حماية طويلة الأجل للبيانات.

توصيات الاستخدام

لمشاريع المحمول، يوصي خبراء NIST: استخدام RSA فقط لتشفير المفاتيح والتوقيعات الرقمية، اختيار طول مفتاح لا يقل عن 3072 بت للمشاريع الجديدة، دمج RSA مع AES في نظام هجين، ومتابعة تطور معايير ما بعد الكم للهجرة المخططة على المدى الطويل.

الأسئلة الشائعة

ما الفرق بين RSA و AES؟

RSA هي خوارزمية غير متماثلة بزوج من المفاتيح تُستخدم لتشفير كميات صغيرة من البيانات والتوقيعات الرقمية. AES هي خوارزمية متماثلة بمفتاح مشترك واحد، تعمل أسرع 100-1000 مرة من RSA. في الأنظمة الحديثة يتم دمجهما: RSA تحمي نقل مفتاح جلسة AES، بينما AES تشفر حركة المرور الرئيسية.

ما حجم مفتاح RSA الذي يعتبر آمنًا اليوم؟

الحد الأدنى الآمن للحجم منذ 2023 هو RSA-2048 وفقًا لـ NIST SP 800-131A Rev. 2. المفاتيح 1024 بت محظورة رسميًا للأنظمة الحكومية الأمريكية. للمشاريع الجديدة، يُوصى بـ 3072 بت، مما يوفر هامش أمان وقوة مكافئة لتشفير متماثل 128 بت.

هل يمكن استخدام RSA في التطبيقات المحمولة؟

نعم، RSA تُستخدم على نطاق واسع في التطبيقات المحمولة. توفر Android KeyStore لتوليد الأجهزة والتخزين الآمن لمفاتيح RSA. يوفر iOS Security Framework مع دعم Secure Enclave. لتشفير البيانات الكبيرة، يُوصى بنظام هجين RSA + AES، حيث يشفر RSA فقط مفتاح الجلسة.

هل يمكن كسر RSA-2048؟

على الحواسيب التقليدية، كسر RSA-2048 مستحيل عمليًا — وفقًا للتقديرات الحالية، سيتطلب أكثر من 300 مليار سنة من الحساب المستمر. ومع ذلك، يمكن للحاسوب الكمي بعدد كافٍ من الكيوبتات كسر RSA-2048 في دقائق باستخدام خوارزمية شور. وفقًا لتقديرات IBM، لن يظهر مثل هذا الحاسوب قبل 2035.

ما هي بدائل RSA الموجودة؟

بين الخوارزميات غير المتماثلة، ECC (تشفير المنحنى الإهليلجي) شائع، يوفر أمانًا مكافئًا بطول مفتاح أقصر — ECC 256 بت يعادل RSA-3072. لعصر ما بعد الكم، اختارت NIST CRYSTALS-Kyber للتشفير و CRYSTALS-Dilithium لـ التوقيعات الرقمية في 2024.

الخلاصة

  • RSA هي خوارزمية تشفير غير متماثلة تعتمد على صعوبة تحليل الأعداد الكبيرة إلى عوامل.
  • زوج المفاتيح — عام للتشفير وخاص لفك التشفير، يحل مشكلة توزيع المفاتيح.
  • حجم 2048 بت هو الحد الأدنى لمعيار الأمان منذ 2023.
  • أداء RSA أقل بمقدار 2-3 مراتب من التشفير المتماثل، لذلك يُستخدم في الأنظمة الهجينة.
  • التوقيعات الرقمية باستخدام RSA تُستخدم في 85% من شهادات TLS على الإنترنت.
  • المنصات المحمولة Android و iOS توفر واجهات برمجة تطبيقات مدمجة للعمل مع RSA.
  • الهجرة ما بعد الكم — حتى 2035، سيبقى RSA المعيار الرئيسي، ثم سيبدأ الانتقال إلى الخوارزميات الجديدة.

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا