RSA: یہ کیا ہے، الگورتھم اور خفیہ نگاری کا استعمال

مصنف: IT Sectr اشاعت: 2026-04-02 مطالعے کا وقت: 9 منٹ

RSA ایک عوامی کلید خفیہ نظام ہے جو بڑی تعدادوں کے اجزائے ضربی کی کمپیوٹیشنل پیچیدگی کی بنیاد پر خفیہ نگاری اور ڈیجیٹل دستخط فراہم کرتا ہے۔ NIST Special Publication 800-56B Rev. 2 (2023) کے مطابق، 2048 بٹ کلید کی لمبائی والا RSA سرکاری اور تجارتی نظاموں کے لیے سیکیورٹی کا معیار بنا ہوا ہے۔ الگورتھم TLS پروٹوکولز، ڈیجیٹل دستخطوں اور موبائل ایپلیکیشنز میں ڈیٹا خفیہ نگاری میں وسیع پیمانے پر استعمال ہوتا ہے۔

اہم نکات

  • RSA ایک غیر متناسب خفیہ نگاری الگورتھم ہے جو کلیدوں کا ایک جوڑا استعمال کرتا ہے: عوامی اور نجی۔
  • سیکیورٹی الگورتھم کی بنیاد ایک بڑی تعداد کو اس کے مفرد عوامل میں تحلیل کرنے کی ریاضیاتی دشواری پر ہے۔
  • کلید کا سائز 2048 بٹ NIST کے مطابق 2023 سے کم از کم قابل اعتماد معیار سمجھا جاتا ہے۔
  • RSA TLS سرٹیفکیٹس، ڈیجیٹل دستخطوں اور تصدیقی پروٹوکولز میں استعمال ہوتا ہے۔
  • موبائل ڈیولپمنٹ بلٹ ان کرپٹو لائبریریوں: Android Keystore اور iOS Security Framework کے ذریعے RSA استعمال کرتا ہے۔

RSA کیا ہے؟

RSA ایک عوامی کلید خفیہ نگاری الگورتھم ہے جسے 1977 میں رون ریویسٹ، آدی شامیر اور لیونارڈ ایڈل مین نے تیار کیا تھا۔ نام مصنفین کے کنیتوں کے پہلے حروف سے بنا ہے۔ الگورتھم پہلا عملی طور پر قابل اطلاق غیر متناسب خفیہ نظام بن گیا جہاں خفیہ نگاری اور خفیہ کشائی کی کلیدیں مختلف ہوتی ہیں۔

تخلیق کی تاریخ

RSA الگورتھم 1977 میں Scientific American میگزین میں شائع ہوا تھا اور یہ وائٹ فیلڈ ڈفی اور مارٹن ہیلمین کے عوامی کلید خفیہ نگاری پر پہلے کے کام پر مبنی ہے۔ میساچوسٹس انسٹی ٹیوٹ آف ٹیکنالوجی نے 1983 میں RSA کا پیٹنٹ حاصل کیا، جو 2000 تک جاری رہا۔ RSA Laboratories رپورٹ (2023) کے مطابق، الگورتھم دنیا میں سب سے زیادہ پھیلے ہوئے خفیہ نگاری معیارات میں سے ایک ہے — یہ روزانہ اربوں آلات میں استعمال ہوتا ہے۔

غیر متناسب ہونے کا اصول

متناسب خفیہ نگاری کے برعکس جہاں خفیہ نگاری اور خفیہ کشائی دونوں کے لیے ایک ہی کلید استعمال ہوتی ہے، RSA ریاضیاتی طور پر منسلک کلیدوں کے ایک جوڑے کے ساتھ کام کرتا ہے۔ عوامی کلید کو نظام سے سمجھوتہ کرنے کے خطرے کے بغیر کسی کے لیے بھی شائع کیا جا سکتا ہے۔ نجی کلید صرف مالک کو معلوم ہوتی ہے اور کبھی نیٹ ورک پر منتقل نہیں کی جاتی۔ IBM Security X-Force Threat Intelligence Index (2024) مطالعہ کے مطابق، جدید محفوظ ڈیٹا منتقلی پروٹوکولز کے 96% میں غیر متناسب خفیہ نگاری استعمال ہوتی ہے۔

ریاضیاتی بنیادیں

RSA کی سیکیورٹی اجزائے ضربی کے مسئلے پر مبنی ہے — دو بڑے مفرد اعداد کی پیداوار کو اجزائے ضربی میں تحلیل کرنا۔ اگر آپ ہر ایک 1024 بٹ کے مفرد اعداد p اور q منتخب کرتے ہیں، تو ان کی پیداوار n 2048 بٹ ہوگی۔ جدید طریقوں سے صرف n جان کر p اور q کا حساب لگانا عملی طور پر ناممکن ہے: CNRS ماہر تشخیص (2024) کے مطابق، RSA-2048 کو توڑنے کے لیے ایک کلاسیکی کمپیوٹر پر 300 ارب سال سے زیادہ کی حساب کتاب درکار ہوگی۔

RSA الگورتھم کیسے کام کرتا ہے

آئیے کلید کی تخلیق سے لے کر پیغام کی خفیہ نگاری اور خفیہ کشائی تک RSA کے مکمل کام کے چکر پر غور کریں۔ ان مراحل کو سمجھنا موبائل ایپلیکیشنز میں الگورتھم کے درست نفاذ کے لیے ضروری ہے۔

کلید کی تخلیق

عمل دو بڑے مفرد اعداد p اور q کے انتخاب سے شروع ہوتا ہے۔ ماڈیولس n = p x q کا حساب لگایا جاتا ہے، جو کلید کی لمبائی کا تعین کرتا ہے۔ پھر اولر کے ٹوٹینٹ فنکشن phi(n) = (p-1)(q-1) کا حساب لگایا جاتا ہے۔ ایک عوامی ایکسپوننٹ e منتخب کیا جاتا ہے جو phi(n) سے ہم اول ہو۔ نجی ایکسپوننٹ d کا حساب e کے ماڈیولر ضربی معکوس کے طور پر لگایا جاتا ہے۔ 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 کم کارکردگی کی وجہ سے ڈیٹا کی بڑی مقدار کو خفیہ کرنے کے لیے نہیں ہے — زیادہ سے زیادہ پیغام کا سائز کلید کی لمبائی منفی اوور ہیڈ بائٹس کے برابر ہے (OAEP کے ساتھ RSA-2048 کے لیے تقریباً 190 بائٹ)۔

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 بٹ کی کلید بنانے میں 2048 بٹ کی کلید کے مقابلے میں تقریباً 10 گنا زیادہ وقت لگتا ہے۔ لمبی کلید کے ساتھ خفیہ نگاری اور خفیہ کشائی کے آپریشنز کو زیادہ کمپیوٹیشنل وسائل درکار ہوتے ہیں، جو محدود بجلی کی کھپت والے موبائل آلات کے لیے اہم ہے۔

کوانٹم خطرہ

کوانٹم کمپیوٹنگ کی ترقی کے ساتھ، RSA شور کے الگورتھم کا استعمال کرتے ہوئے کثیر رقمی وقت میں توڑا جا سکتا ہے۔ یہ الگورتھم، جسے پیٹر شور نے 1994 میں تجویز کیا تھا، O((log n)^3) آپریشنز میں بڑی تعدادوں کے اجزائے ضربی نکال سکتا ہے۔ IBM Quantum Roadmap (2025) کے مطابق، RSA-2048 کے عملی توڑنے کی توقع 2035 سے پہلے نہیں ہے، تاہم NIST پہلے ہی پوسٹ کوانٹم الگورتھم CRYSTALS-Kyber اور CRYSTALS-Dilithium میں بتدریج منتقلی کی سفارش کرتا ہے۔

موبائل ڈیولپمنٹ میں RSA کا استعمال

RSA محفوظ ڈیٹا کی منتقلی، سرور کی تصدیق اور ڈیجیٹل لین دین کے تحفظ کو یقینی بنانے کے لیے موبائل ایپلیکیشنز میں فعال طور پر استعمال ہوتا ہے۔ انضمام دونوں بڑے پلیٹ فارمز کے معیاری خفیہ نگاری APIs کے ذریعے کیا جاتا ہے۔

Android Keystore

Android پلیٹ فارم Android Keystore فراہم کرتا ہے — ایک نظامی خفیہ نگاری کلید ذخیرہ جو Trusted Execution Environment ہارڈویئر سطح سے محفوظ ہے۔ KeyStore میں بنائی گئی RSA کلیدیں ایپلیکیشن سے سمجھوتہ ہونے پر بھی ڈیوائس سے نکالی نہیں جا سکتیں۔ یہ روٹ رسائی والے مالویئر سمیت حملوں کی ایک وسیع رینج سے تحفظ فراہم کرتا ہے۔

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 کو A7 چپ اور نئے آلات پر Secure Enclave تک رسائی کے ساتھ Security Framework کے ذریعے ہینڈل کیا جاتا ہے۔ Secure Enclave ایک وقف شدہ کواکسیسر ہے جو مرکزی پروسیسر سے الگ تھلگ ہے، خفیہ نگاری کے آپریشنز انجام دیتا ہے اور کلیدوں کو ہارڈویئر والٹ میں محفوظ کرتا ہے۔ RSA کلیدیں Secure Enclave کے اندر اور سافٹ ویئر Keychain دونوں میں مختلف رسائی کی سطحوں کے ساتھ بنائی جا سکتی ہیں۔

عملی طور پر ہائبرڈ خفیہ نگاری

حقیقی موبائل ایپلیکیشنز میں، RSA بڑے ڈیٹا کی براہ راست خفیہ نگاری کے لیے شاذ و نادر ہی استعمال ہوتا ہے۔ معیاری طریقہ کار ہائبرڈ اسکیم ہے: ایپلیکیشن ایک AES سیشن کلید بناتی ہے، اسے سرور کی RSA عوامی کلید سے خفیہ کرتی ہے اور سرور کو بھیجتی ہے۔ تمام بعد کا ٹریفک AES سے خفیہ کیا جاتا ہے، جو RSA کے ذریعے براہ راست ڈیٹا کی منتقلی سے 100-1000 گنا تیز ہے۔

RSA کے فوائد اور حدود

کسی بھی خفیہ نگاری الگورتھم کی طرح، RSA میں طاقت اور کمزوریاں ہیں جنہیں محفوظ نظاموں کو ڈیزائن کرتے وقت مدنظر رکھنا چاہیے۔ ایک معروضی تشخیص کسی مخصوص کام کے لیے صحیح آلہ منتخب کرنے میں مدد کرتی ہے۔

اہم فوائد

RSA کا بنیادی فائدہ کلید کی تقسیم کے بنیادی مسئلے کو حل کرنا ہے — عوامی کلید کو پورے نظام سے سمجھوتہ کرنے کے خطرے کے بغیر آزادانہ طور پر شائع کیا جا سکتا ہے۔ الگورتھم کی استعداد ایک کلید کے جوڑے کے ساتھ خفیہ نگاری اور ڈیجیٹل دستخط دونوں کی حمایت میں ظاہر ہوتی ہے۔ مزید برآں، RSA کا ایک وسیع معاون ماحولیاتی نظام ہے: لائبریریاں تمام زبانوں اور پلیٹ فارمز کے لیے دستیاب ہیں۔

اہم حدود

RSA کی بنیادی کمزوری متناسب الگورتھم کے مقابلے میں کم کارکردگی ہے۔ جدید موبائل پروسیسر پر RSA-2048 کو خفیہ کشائی کرنے میں تقریباً 5-15 ملی سیکنڈ لگتے ہیں، جبکہ AES-256 اسی وقت میں گیگا بائٹس ڈیٹا پراسیس کرتا ہے۔ نیز، RSA شور کے الگورتھم کے ذریعے کوانٹم حملوں کا شکار ہے، جو طویل مدتی ڈیٹا تحفظ کی ضرورت والے نظاموں میں اس کے استعمال کو محدود کرتا ہے۔

استعمال کی سفارشات

موبائل منصوبوں کے لیے، NIST ماہرین سفارش کرتے ہیں: RSA کو صرف کلید کی خفیہ نگاری اور ڈیجیٹل دستخطوں کے لیے استعمال کریں، نئے منصوبوں کے لیے کم از کم 3072 بٹ کی کلید کی لمبائی منتخب کریں، RSA کو AES کے ساتھ ہائبرڈ اسکیم میں یکجا کریں، اور طویل مدتی منصوبہ بند منتقلی کے لیے پوسٹ کوانٹم معیارات کی ترقی کی نگرانی کریں۔

اکثر پوچھے گئے سوالات

RSA اور AES میں کیا فرق ہے؟

RSA ایک غیر متناسب الگورتھم ہے جس میں کلیدوں کا ایک جوڑا ہے جو ڈیٹا کی چھوٹی مقداروں اور ڈیجیٹل دستخطوں کو خفیہ کرنے کے لیے استعمال ہوتا ہے۔ AES ایک متناسب الگورتھم ہے جس میں ایک مشترکہ کلید ہے، جو RSA سے 100-1000 گنا تیز چلتا ہے۔ جدید نظاموں میں، انہیں یکجا کیا جاتا ہے: RSA AES سیشن کلید کی منتقلی کی حفاظت کرتا ہے، جبکہ AES مرکزی ٹریفک کو خفیہ کرتا ہے۔

آج کل RSA کا کون سا کلید سائز محفوظ سمجھا جاتا ہے؟

2023 سے کم از کم محفوظ سائز NIST SP 800-131A Rev. 2 کے مطابق RSA-2048 ہے۔ 1024 بٹ کی کلیدیں امریکی سرکاری نظاموں کے لیے سرکاری طور پر ممنوع ہیں۔ نئے منصوبوں کے لیے 3072 بٹ کی سفارش کی جاتی ہے، جو سیکیورٹی مارجن اور 128 بٹ متناسب خفیہ نگاری کے برابر طاقت فراہم کرتا ہے۔

کیا موبائل ایپلیکیشنز میں RSA استعمال کیا جا سکتا ہے؟

ہاں، RSA موبائل ایپلیکیشنز میں بڑے پیمانے پر استعمال ہوتا ہے۔ Android RSA کلیدوں کے ہارڈویئر تخلیق اور محفوظ ذخیرہ کے لیے Android KeyStore فراہم کرتا ہے۔ iOS Secure Enclave سپورٹ کے ساتھ Security Framework فراہم کرتا ہے۔ بڑے ڈیٹا کی خفیہ نگاری کے لیے، ہائبرڈ RSA + AES اسکیم کی سفارش کی جاتی ہے، جہاں RSA صرف سیشن کلید کو خفیہ کرتا ہے۔

کیا RSA-2048 کو توڑا جا سکتا ہے؟

کلاسیکی کمپیوٹرز پر، RSA-2048 کو توڑنا عملی طور پر ناممکن ہے — موجودہ اندازوں کے مطابق، اس کے لیے 300 ارب سال سے زیادہ مسلسل حساب کتاب درکار ہوگی۔ تاہم، کافی کیوبٹس والا کوانٹم کمپیوٹر شور کے الگورتھم کا استعمال کرتے ہوئے منٹوں میں RSA-2048 کو توڑ سکتا ہے۔ IBM کے اندازوں کے مطابق، ایسا کمپیوٹر 2035 سے پہلے ظاہر نہیں ہوگا۔

RSA کے متبادل کیا ہیں؟

غیر متناسب الگورتھم میں، ECC (بیضوی منحنی خفیہ نگاری) مقبول ہے، جو چھوٹی کلید کی لمبائی کے ساتھ مساوی سیکیورٹی فراہم کرتا ہے — 256 بٹ ECC RSA-3072 کے برابر ہے۔ پوسٹ کوانٹم دور کے لیے، NIST نے 2024 میں خفیہ نگاری کے لیے CRYSTALS-Kyber اور ڈیجیٹل دستخطوں کے لیے CRYSTALS-Dilithium کا انتخاب کیا۔

خلاصہ

  • RSA ایک غیر متناسب خفیہ نگاری الگورتھم ہے جو بڑی تعدادوں کے اجزائے ضربی کی دشواری پر مبنی ہے۔
  • کلید کا جوڑا — خفیہ نگاری کے لیے عوامی اور خفیہ کشائی کے لیے نجی، کلید کی تقسیم کا مسئلہ حل کرتا ہے۔
  • 2048 بٹ سائز 2023 سے کم از کم سیکیورٹی معیار ہے۔
  • کارکردگی RSA کی متناسب خفیہ نگاری سے 2-3 درجے کم ہے، اس لیے یہ ہائبرڈ اسکیموں میں استعمال ہوتا ہے۔
  • ڈیجیٹل دستخط RSA کا استعمال کرتے ہوئے انٹرنیٹ کے 85% TLS سرٹیفکیٹس میں استعمال ہوتے ہیں۔
  • موبائل پلیٹ فارمز Android اور iOS RSA کے ساتھ کام کرنے کے لیے بلٹ ان APIs فراہم کرتے ہیں۔
  • پوسٹ کوانٹم منتقلی — 2035 تک، RSA مرکزی معیار رہے گا، پھر نئے الگورتھم میں منتقلی شروع ہوگی۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں