تشفير RSA بالمفتاح العام
شفّر رسالة قصيرة بمفتاح RSA عام (PEM) بـ RSA-OAEP SHA-256 أو OAEP SHA-1 أو PKCS#1 v1.5. ولّد زوج مفاتيح تجريبيًا بنقرة واحدة. محليًا فقط.
حشو OAEP هو الموصى به. تستخدم MGF1 دالة التجزئة نفسها، مثل Web Crypto و openssl pkeyutl -pkeyopt rsa_oaep_md.
لا يشفّر RSA إلا بيانات قصيرة: لمفتاح 2048 بت الحد الأقصى 190 بايت (OAEP SHA-256) أو 214 بايت (OAEP SHA-1) أو 245 بايت (PKCS#1 v1.5). للبيانات الأطول شفّرها بـ AES ثم شفّر مفتاح AES وحده بـ RSA.
تشفير RSA عشوائي: تشفير النص نفسه مرتين يعطي نصين مشفّرين مختلفين، ويُفك تشفير كليهما بشكل صحيح.
يعمل بالكامل في متصفحك. لا يتم رفع بياناتك أبدًا.
ما هو تشفير RSA؟
تشفّر رسالة قصيرة أو مفتاحًا متماثلًا بمفتاح RSA عام بصيغة PEM (SPKI BEGIN PUBLIC KEY، أو PKCS#1 BEGIN RSA PUBLIC KEY، أو شهادة X.509، أو مفتاح خاص يُؤخذ منه الجزء العام). لا يستطيع فك الناتج إلا مالك المفتاح الخاص المطابق.
كيفية استخدام تشفير RSA
- الصق المفتاح العام (PEM) للمستلم، أو انقر توليد زوج مفاتيح تجريبي (2048 بت) لتجربة الأداة.
- اختر الحشو: يُنصح بـ RSA-OAEP (SHA-256)؛ وطابِق ما تتوقعه الشيفرة المستقبِلة.
- اكتب النص الصريح (أو غيّر ترميز الإدخال إلى Hex لتشفير بايتات خام مثل مفتاح AES).
- انقر تشفير وانسخ النص المشفّر بصيغة Base64 أو Hex.
مثال
"Hello RSA" with a 2048-bit public key, RSA-OAEP (SHA-256), Base64 output
A 344-character Base64 string (256 bytes) that changes on every run
RSA-OAEP عشوائي، فلا يوجد ناتج ثابت؛ وفك تشفيره بالمفتاح الخاص يعيد «Hello RSA».
متى تستخدم تشفير RSA
استخدم RSA لتشفير أسرار صغيرة، كلمة مرور أو رمزًا أو مفتاح AES مولَّدًا عشوائيًا، لشخص تملك مفتاحه العام. لا تستخدمه للبيانات الكبيرة: شفّر البيانات بـ AES وشفّر مفتاح AES وحده بـ RSA (التشفير الهجين)، أو استخدم PGP. فضّل OAEP؛ ولا تستخدم PKCS#1 v1.5 إلا إذا كان نظام قديم يتطلبه.
كيف يعمل تشفير RSA
يحسب تشفير RSA القيمة c = mᵉ mod n على الرسالة بعد حشوها. يقنّع OAEP (PKCS#1 v2.2) الرسالة بواسطة MGF1 مع SHA-256 أو SHA-1 وبايتات بذرة عشوائية؛ بينما يضيف PKCS#1 v1.5 حشوًا عشوائيًا غير صفري في البداية. الحشو عشوائي، لذا يعطي تشفير النص نفسه مرتين نصين مشفّرين مختلفين. ويساوي طول النص المشفّر طول المقياس (256 بايت لمفاتيح 2048 بت). والحد الأقصى لحجم الرسالة هو k − 2·hLen − 2 بايت لـ OAEP وk − 11 لـ v1.5 (190 و214 و245 بايت لمفتاح 2048 بت). تُحلَّل المفاتيح ويُجرى التشفير بواسطة node-forge، والنتائج متوافقة مع OpenSSL وWeb Crypto وNode.js.
حالات الاستخدام الشائعة
- تشفير مفتاح جلسة AES لاختبارات التشفير الهجين
- التأكد من أن خادمك يفك نص OAEP-SHA256 المشفّر القادم من المتصفح
- إرسال سر قصير إلى شخص أعطاك مفتاحه العام
- إنتاج بيانات اختبار PKCS#1 v1.5 لواجهة API قديمة
- تعلّم كيف تعتمد حدود حجم الرسالة في RSA على حجم المفتاح والحشو
ملاحظة أمنية
تُعالَج المفاتيح والرسائل داخل متصفحك فقط. لا تلصق مفاتيح خاصة إنتاجية في أي موقع لا تتحكم به؛ ولّد زوج مفاتيح تجريبيًا بدلًا من ذلك.
الأسئلة الشائعة
لماذا رسالتي طويلة جدًا؟
لا يستطيع RSA تشفير سوى بضع مئات من البايتات. ومع مفتاح 2048 بت يسمح OAEP SHA-256 بـ 190 بايت. شفّر البيانات الأطول بـ AES واستخدم RSA لمفتاح AES فقط.
أي حشو أختار؟
RSA-OAEP مع SHA-256 للأنظمة الجديدة (RSA-OAEP في Web Crypto مع hash: 'SHA-256'، وفي OpenSSL pkeyutl -pkeyopt rsa_padding_mode:oaep -pkeyopt rsa_oaep_md:sha256). ويُعد OAEP SHA-1 الافتراضي في كثير من المكتبات الأقدم (Java RSA/ECB/OAEPWithSHA-1AndMGF1Padding). أما PKCS#1 v1.5 فللتوافق مع الأنظمة القديمة فقط.
لماذا يتغير النص المشفّر في كل مرة؟
يضيف كلا الحشوين بايتات عشوائية قبل التشفير. وهذا يمنع المهاجمين من تخمين الرسائل القصيرة بتشفير مرشحات بأنفسهم.
هل أستطيع التشفير بمفتاح خاص؟
يمكنك لصق مفتاح خاص، ويُستخدم نصفه العام في التشفير. أما «التشفير بالمفتاح الخاص» بمعنى التوقيع فعملية مختلفة وغير متاحة هنا.