# مولّد مفاتيح EC

أنشئ زوج مفاتيح للمنحنى الإهليلجي على P-256 أو P-384 أو P-521 لتواقيع ES256 وES384 وES512، وECDH وشهادات TLS. تتضمن النتيجة المفتاح الخاص بصيغة PKCS #8 PEM غير مشفرة، والمفتاح العام بصيغة SPKI PEM، وسطر مفتاح عام OpenSSH ecdsa-sha2 يتضمن بصمة SHA-256 وبصمة JWK وفق RFC 7638. يُنشأ كل زوج جديدًا باستخدام وحدة crypto في Node، ولا يُخزَّن مطلقًا.

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

### أي منحنى ينبغي أن أختار؟

يُعد P-256 (المعروف أيضًا باسم prime256v1 أو secp256r1) المنحنى الأوسع دعمًا، ويوفر أمانًا يعادل نحو 128 بت. يوفر P-384 نحو 192 بت، وتفرضه بعض الملفات التعريفية الحكومية مثل CNSA. أما P-521 فهو أكبر منحنيات NIST وأقلها دعمًا، لذا اختره فقط إذا طلبه النظام.

### أي خوارزمية JWT تناسب كل منحنى؟

توقّع مفاتيح P-256 باستخدام ES256، ومفاتيح P-384 باستخدام ES384، ومفاتيح P-521 باستخدام ES512. يربط JOSE كل خوارزمية بمنحنى واحد بعينه، لذا يرفض مولّد JWT المفتاح الذي يستخدم منحنى غير مناسب. تعرض النتيجة الخوارزمية المطابقة لمفتاحك.

### ما التنسيقات التي تُعاد؟

يكون المفتاح الخاص بترميز PEM وفق PKCS #8 (BEGIN PRIVATE KEY)، والمفتاح العام بترميز PEM وفق SubjectPublicKeyInfo (BEGIN PUBLIC KEY) مع المنحنى المسمى. وتحصل أيضًا على سطر ecdsa-sha2-nistp256 أو nistp384 أو nistp521 الذي يتوقعه OpenSSH في authorized_keys.

### كيف أحصل على تنسيق SEC1 (BEGIN EC PRIVATE KEY)؟

لا تزال بعض الأدوات تتطلب ترميز SEC1 الأقدم. باستخدام OpenSSL 3، شغّل openssl pkey -in key.pem -traditional -out key-ec.pem، أو openssl ec -in key.pem -out key-ec.pem. يظل المفتاح نفسه دون تغيير.

### هل يمكنني إنشاء طلب توقيع شهادة بهذا المفتاح؟

نعم. احفظ ملف PEM الخاص ثم شغّل openssl req -new -key key.pem -subj "/CN=example.com" -out request.csr، ثم تحقّق من الطلب باستخدام مفكك ترميز CSR. تقبل سلطات الشهادات مفاتيح P-256 وP-384 لشهادات TLS.

### لماذا تكون مفاتيح EC أصغر من مفاتيح RSA؟

تحقق تشفيرات المنحنيات الإهليلجية مستوى الأمان نفسه باستخدام مفاتيح أقصر بكثير، لذا يعادل مفتاح P-256 تقريبًا مفتاح RSA بطول 3072 بت. وتكون التواقيع أقصر ويكون التوقيع أسرع. ويتسع المفتاح العام في 65 بايتًا على P-256.

### هل المفتاح الخاص محمي بعبارة مرور؟

لا، يُعاد دون تشفير كي تتمكن الأدوات الأخرى من قراءته مباشرة. شفّره للتخزين باستخدام openssl pkey -in key.pem -aes256 -out key-encrypted.pem. لا تودع أبدًا مفتاحًا خاصًا غير مشفر في مستودع.

### ما استخدام بصمة JWK؟

بصمة RFC 7638 هي تجزئة SHA-256 بصيغة base64url لأعضاء crv وkty وx وy في المفتاح. وهي معرّف ثابت للمفتاح لا يعتمد على تنسيق PEM أو JWK، وتناسب الاستخدام كقيمة kid في ترويسات JWT ومستندات JWKS.

### هل يُخزَّن زوج المفاتيح؟

لا. يُنشأ الزوج في الذاكرة لطلبك، ويُعاد مرة واحدة، ولا يُسجّل أو يُحفظ مطلقًا. انسخ المفتاحين قبل مغادرة الصفحة، إذ لا يمكن عرضهما مجددًا.

### ما الذي يغيّره حقل التعليق؟

يضيف تسمية فقط إلى نهاية سطر المفتاح العام في OpenSSH، مثل user@laptop، لتسهيل التعرّف على المفتاح في authorized_keys. تظل البصمات وبيانات المفتاح كما هي. يمكن أن يصل طول التعليق إلى 200 حرفًا.

إعلانك هنا؟

[راسلنا عبر البريد الإلكتروني](mailto:hi@dennn.is?subject=%D8%A7%D9%84%D8%A5%D8%B9%D9%84%D8%A7%D9%86%20%D8%B9%D9%84%D9%89%20OneClick%20Pro)

[إعلان مجموعة إضافات جاهزة للوكلاء من أجل WordPress.](https://sleekwp.com/?ref=oneclickpro)
