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 একটি পাবলিক-কী ক্রিপ্টোগ্রাফিক অ্যালগরিদম যা ১৯৭৭ সালে রন রিভেস্ট, আদি শামির এবং লিওনার্ড অ্যাডলম্যান দ্বারা তৈরি করা হয়েছিল। নামটি লেখকদের উপাধির প্রথম অক্ষর থেকে গঠিত। অ্যালগরিদমটি প্রথম ব্যবহারিকভাবে প্রযোজ্য অ্যাসিমেট্রিক ক্রিপ্টোসিস্টেমে পরিণত হয়েছিল যেখানে এনক্রিপশন এবং ডিক্রিপশন কী ভিন্ন হয়।

সৃষ্টির ইতিহাস

RSA অ্যালগরিদমটি ১৯৭৭ সালে Scientific American ম্যাগাজিনে প্রকাশিত হয়েছিল এবং এটি হোয়াইটফিল্ড ডিফি এবং মার্টিন হেলম্যানের পাবলিক-কী ক্রিপ্টোগ্রাফির উপর পূর্ববর্তী কাজের ভিত্তিতে তৈরি। ম্যাসাচুসেটস ইনস্টিটিউট অফ টেকনোলজি ১৯৮৩ সালে RSA-এর জন্য একটি পেটেন্ট পেয়েছিল, যা ২০০০ সাল পর্যন্ত স্থায়ী ছিল। 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 শোরের অ্যালগরিদম ব্যবহার করে বহুপদী সময়ে ভাঙা যেতে পারে। এই অ্যালগরিদম, যা পিটার শোর ১৯৯৪ সালে প্রস্তাব করেছিলেন, O((log n)^3) অপারেশনে বড় সংখ্যার উৎপাদকে বিশ্লেষণ করতে পারে। IBM Quantum Roadmap (2025) অনুসারে, RSA-2048-এর ব্যবহারিক ক্র্যাকিং 2035 সালের আগে আশা করা যায় না, তবে NIST ইতিমধ্যে পোস্ট-কোয়ান্টাম অ্যালগরিদম CRYSTALS-Kyber এবং CRYSTALS-Dilithium-এ ধীরে ধীরে রূপান্তরের সুপারিশ করে।

মোবাইল ডেভেলপমেন্টে RSA-এর ব্যবহার

RSA সক্রিয়ভাবে মোবাইল অ্যাপ্লিকেশনে সুরক্ষিত ডেটা ট্রান্সমিশন, সার্ভার প্রমাণীকরণ এবং ডিজিটাল লেনদেন সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। উভয় প্রধান প্ল্যাটফর্মের স্ট্যান্ডার্ড ক্রিপ্টোগ্রাফিক API-এর মাধ্যমে একীকরণ করা হয়।

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-এর সাথে কাজ করার জন্য বিল্ট-ইন API প্রদান করে।
  • পোস্ট-কোয়ান্টাম মাইগ্রেশন — 2035 পর্যন্ত, RSA প্রধান মান থাকবে, তারপর নতুন অ্যালগরিদমে রূপান্তর শুরু হবে।

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন