| OPENSSL-GENPKEY(1ssl) | OpenSSL | OPENSSL-GENPKEY(1ssl) |
الاسم
openssl-genpkey - توليد مفتاح خاص أو زوج مفاتيح
موجز
openssl genpkey [-help] [-out اسم_الملف] [-outpubkey اسم_الملف] [-outform DER|PEM] [-verbose] [-quiet] [-pass معطى] [-تعمية] [-paramfile ملف] [-algorithm خوارزمية] [-pkeyopt خيار:قيمة] [-genparam] [-text] [-rand ملفات] [-writerand ملف] [-engine معرف]
[-provider الاسم] [-provider-path المسار] [-provparam [الاسم:]المفتاح=القيمة] [-propquery استعلام_الخصائص] [-config ملف_الضبط]
الوصف
يولد هذا الأمر مفتاحًا خاصًا أو زوج مفاتيح.
الخيارات
- -help
- اطبع رسالة الاستخدام.
- -out اسم_الملف
- يُخرِج المفتاح الخاص إلى الملف المحدد. إذا لم يُحدد هذا المعطى، يُستخدم المخرج القياسي.
- -outpubkey اسم_الملف
- يُخرِج المفتاح العام إلى الملف المحدد. إذا لم يُحدد هذا المعطى، فلن يُخرَج المفتاح العام.
- -outform DER|PEM
- تنسيق
المخرج،
باستثناء
حالة إعطاء
-genparam؛
المبدئي هو
PEM. انظر
openssl-format-options(1)
للتفاصيل.
عند إعطاء -genparam، يُتجاهل الخيار -outform.
- -verbose
- أخرِج "نقاط الحالة" أثناء توليد المفاتيح.
- -quiet
- لا تُخرِج "نقاط الحالة" أثناء توليد المفاتيح.
- -pass معطى
- مصدر كلمة مرور ملف المخرج. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).
- -تعمية
- يُعمي المفتاح الخاص باستخدام الخوارزمية المحددة. يمكن تحديد الخوارزمية باستخدام اسم تقبله الدالة EVP_get_cipherbyname(). على سبيل المثال، استخدم الصيغة -aes-128-cbc لتحديد خوارزمية تعمية AES بمفتاح طوله 128 بت في وضع CBC.
- -algorithm خوارزمية
- خوارزمية
المفتاح
العام
المستخدمة
مثل RSA أو DSA أو DH
أو DHX. في حال
استخدامه،
يجب أن يسبق
هذا الخيار
أي خيارات
-pkeyopt.
الخياران
-paramfile و -algorithm
متنافيان.
قد تضيف
المحركات
أو
المزودون
خوارزميات
إضافية إلى
الخوارزميات
القياسية
المدمجة.
أسماء الخوارزميات المدمجة الصالحة لتوليد المفتاح الخاص هي RSA و RSA-PSS و EC و X25519 و X448 و ED25519 و ED448 و ML-DSA و ML-KEM.
أسماء الخوارزميات المدمجة الصالحة لتوليد المعاملات (انظر الخيار -genparam) هي DH و DSA و EC.
لاحظ أن اسم الخوارزمية X9.42 DH قد يُستخدم كمرادف لمفاتيح DHX، و PKCS#3 يشير إلى مفاتيح DH. بعض الخيارات غير مشتركة بين مفاتيح DH و DHX.
- -pkeyopt خيار:قيمة
- اضبط
الخيار opt
لخوارزمية
المفتاح
العام على
القيمة value.
تعتمد
مجموعة
الخيارات
الدقيقة
المدعومة
على
خوارزمية
المفتاح
العام
المستخدمة
وتطبيقها.
انظر
"خيارات
توليد
المفاتيح"
و "خيارات
توليد
المعاملات"
أدناه
لمزيد من
التفاصيل.
لسرد قيم opt الممكنة لخوارزمية ما، استخدم: openssl genpkey -algorithm XXX -help
- -genparam
- ولّد مجموعة من المعاملات بدلاً من مفتاح خاص. في حال استخدامه، يجب أن يسبق هذا الخيار أي خيارات -algorithm أو -paramfile أو -pkeyopt.
- -paramfile اسم_الملف
- تولد بعض خوارزميات المفاتيح العامة مفتاحاً خاصاً بناءً على مجموعة من المعاملات. يمكن توفيرها باستخدام هذا الخيار. إذا استُخدم هذا الخيار، فإن خوارزمية المفتاح العام المستخدمة تُحدد بواسطة المعاملات. في حال استخدامه، يجب أن يسبق هذا الخيار أي خيارات -pkeyopt. الخياران -paramfile و -algorithm متنافيان.
- -text
- اطبع تمثيلاً نصياً (غير معمى) للمفاتيح الخاصة والعامة والمعاملات جنباً إلى جنب مع بنية PEM أو DER.
- -rand ملفات، -writerand ملف
- انظر "خيارات الحالة العشوائية" في openssl(1) لمزيد من التفاصيل.
- -engine معرف
- انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.
- -provider الاسم
- -provider-path المسار
- -provparam [الاسم:]المفتاح=القيمة
- -propquery استعلام_الخصائص
- انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).
- -config ملف_الضبط
- انظر "خيار الضبط" في openssl(1).
خيارات توليد المفاتيح
تختلف الخيارات المدعومة لكل خوارزمية وكل تطبيق للخوارزمية. خيارات تطبيقات OpenSSL مفصلة أدناه. لا توجد خيارات توليد مفاتيح محددة لخوارزميات X25519 أو X448 أو ED25519 أو ED448.
خيارات توليد مفتاح RSA
- rsa_keygen_bits:عدد_البتات
- عدد البتات في المفتاح المولد. إذا لم يُحدد، يُستخدم 2048.
- rsa_keygen_primes:عدد_الأعداد_الأولية
- عدد الأعداد الأولية في المفتاح المولد. إذا لم يُحدد، يُستخدم 2.
- rsa_keygen_pubexp:القيمة
- قيمة الأس العام لـ RSA. يمكن أن تكون قيمة عشرية كبيرة أو قيمة سداسية عشرية إذا سبقت بـ "0x". القيمة المبدئية هي 65537.
خيارات توليد مفتاح RSA-PSS
ملاحظة: مبدئياً لا توجد قيود معاملات لمفتاح RSA-PSS.
- rsa_keygen_bits:عدد_البتات، rsa_keygen_primes:عدد_الأعداد_الأولية، rsa_keygen_pubexp:القيمة
- هذه الخيارات لها نفس المعنى كما في خوارزمية RSA.
- rsa_pss_keygen_md:البصمة
- إذا ضُبط، فسيُقيد المفتاح ولن يمكنه استخدام سوى البصمة المحددة للتوقيع.
- rsa_pss_keygen_mgf1_md:digest
- إذا ضُبط، فسيُقيّد المفتاح ولا يمكنه استخدام سوى digest كمعلمة MGF1 الخاصة به.
- rsa_pss_keygen_saltlen:len
- إذا ضُبط، فسيُقيّد المفتاح وتحدد len الحد الأدنى لطول الملح (salt).
خيارات توليد مفتاح EC
يمكن أيضًا استخدام خيارات توليد مفتاح EC لتوليد المعلمات.
- ec_paramgen_curve:curve
- منحنى EC المراد استخدامه. يدعم OpenSSL أسماء منحنيات NIST مثل "P-256".
- ec_param_enc:encoding
- الترميز المراد استخدامه للمعلمات. يجب أن تكون معلمة encoding إما named_curve أو explicit. القيمة المبدئية هي named_curve.
خيارات توليد مفتاح ML-DSA
- hexseed:seed
- يحدد هذا seed
(البذرة)
الاختيارية
لـ ML-DSA بصيغة
ست عشرية.
البذرة هي 32
بايت، مما
يعطي 64
رقمًا ست
عشريًا. عند
التوليد من
بذرة
صريحة،
يُحدد
المفتاح
بالكامل
بواسطة
قيمة
البذرة. إذا
كان بإمكان
مستخدمين
آخرين رؤية
وسائط سطر
الأوامر
للعملية
الجارية،
فقد يؤدي
هذا الخيار
إلى كشف
المفتاح
السري، لذا
يُفضل
تجنبه،
باستثناء
الاختبارات.
راجع EVP_PKEY-ML-DSA(7) لمزيد من التفاصيل.
خيارات توليد مفتاح ML-KEM
- hexseed:seed
- يحدد هذا seed
(البذرة)
الاختيارية
لـ ML-KEM بصيغة
ست عشرية.
البذرة هي 64
بايت، مما
يعطي 128
رقمًا ست
عشريًا. عند
التوليد من
بذرة
صريحة،
يُحدد
المفتاح
بالكامل
بواسطة
قيمة
البذرة. إذا
كان بإمكان
مستخدمين
آخرين رؤية
وسائط سطر
الأوامر
للعملية
الجارية،
فقد يؤدي
هذا الخيار
إلى كشف
المفتاح
السري، لذا
يُفضل
تجنبه،
باستثناء
الاختبارات.
راجع EVP_PKEY-ML-KEM(7) لمزيد من التفاصيل.
خيارات توليد مفتاح DH
- group:name
- خيار paramfile ليس مطلوبًا إذا استُخدمت مجموعة مسماة هنا. راجع قسم "خيارات توليد معلمات DH" أدناه.
خيارات توليد المعلمات
يمكن أن تختلف الخيارات التي تدعمها كل خوارزمية، بل وكل تطبيق لخوارزمية ما. خيارات تطبيقات OpenSSL مفصلة أدناه.
خيارات توليد معلمات DSA
- dsa_paramgen_bits:numbits
- عدد البتات في العدد الأولي المولّد. إذا لم يُحدد، فسيُستخدم 2048.
- dsa_paramgen_q_bits:numbits
- qbits:numbits
- عدد البتات في المعلمة q. يجب أن يكون واحدًا من 160 أو 224 أو 256. إذا لم يُحدد، فسيُستخدم 224.
- dsa_paramgen_md:digest
- digest:digest
- الملخص (digest) المراد استخدامه أثناء توليد المعلمات. يجب أن يكون واحدًا من sha1 أو sha224 أو sha256. إذا ضُبط، فسيوافق عدد البتات في q حجم مخرجات الملخص المحدد وسيُتجاهل خيار dsa_paramgen_q_bits. إذا لم يُضبط، فسيُستخدم ملخص يعطي مخرجات توافق عدد البتات في q، أي sha1 إذا كان طول q هو 160، أو sha224 إذا كان 224، أو sha256 إذا كان 256.
- properties:query
- سلسلة query لخاصية digest المراد استخدامها عند جلب ملخص من مزود.
- type:type
- نوع التوليد المراد استخدامه. اضبط هذا على 1 لاستخدام توليد معلمات FIPS186-2 القديم. القيمة المبدئية 0 تستخدم توليد معلمات FIPS186-4.
- gindex:index
- الفهرس المراد استخدامه للتوليد القياسي والتحقق من المولد g. اضبط هذا على قيمة موجبة تتراوح بين 0..255 لاستخدام هذا الوضع. القيم الأكبر ستستخدم البايت الأدنى فقط. يجب بعد ذلك إعادة استخدام هذا index أثناء التحقق من صحة المفتاح للتحقق من قيمة g. إذا لم تُضبط هذه القيمة، فلن يكون g قابلاً للتحقق. القيمة المبدئية هي -1.
- hexseed:seed
- بيانات البذرة seed المراد استخدامها بدلاً من توليد بذرة عشوائية داخلياً. يجب استخدام هذا لأغراض الاختبار فقط. سيؤدي هذا إما إلى إنتاج قيم ثابتة للمعلمات المولدة أو سيفشل إذا لم تولد البذرة أعداداً أولية صالحة.
خيارات توليد معلمات DH
لمعظم حالات الاستخدام، يُوصى باستخدام خيار group بدلاً من خيارات type. لاحظ أن خيار group لا يُستخدم مبدئياً إذا لم تُحدد خيارات لتوليد المعلمات.
- group:name
- dh_param:name
- استخدم
مجموعة DH
مسماة
لاختيار
قيم ثابتة
لمعلمات DH.
ستُتجاهل
جميع
الخيارات
الأخرى إذا
ضُبطت هذه
القيمة.
القيم الصالحة المرتبطة بـ algorithm من نوع "DH" هي: "ffdhe2048" و "ffdhe3072" و "ffdhe4096" و "ffdhe6144" و "ffdhe8192" و "modp_1536" و "modp_2048" و "modp_3072" و "modp_4096" و "modp_6144" و "modp_8192".
القيم الصالحة المرتبطة بـ algorithm من نوع "DHX" هي أسماء RFC5114 التالية: "dh_1024_160" و "dh_2048_224" و "dh_2048_256".
- dh_rfc5114:num
- إذا ضُبط هذا الخيار، فستُستخدم معلمات RFC5114 المناسبة بدلاً من توليد معلمات جديدة. يمكن أن تكون القيمة num واحدة من 1 أو 2 أو 3، وهي تعادل استخدام خيار group مع أحد الأسماء "dh_1024_160" أو "dh_2048_224" أو "dh_2048_256". ستُتجاهل جميع الخيارات الأخرى إذا ضُبطت هذه القيمة.
- pbits:numbits
- dh_paramgen_prime_len:numbits
- عدد البتات في المعلمة الأولية p. القيمة المبدئية هي 2048.
- qbits:numbits
- dh_paramgen_subprime_len:numbits
- عدد البتات في المعلمة الأولية الفرعية q. القيمة المبدئية هي 224. هذا ذو صلة فقط إذا استُخدم بالاقتران مع خيار dh_paramgen_type لتوليد معلمات DHX.
- safeprime-generator:value
- dh_paramgen_generator:value
- القيمة المراد استخدامها للمولد g. القيمة المبدئية هي 2. يجب أن يكون خيار algorithm هو "DH" لاستخدام هذه المعلمة.
- type:string
- اسم نوع معلمات DH المراد توليدها. القيم الصالحة هي:
- "generator"
- استخدم مولد أعداد أولية آمن مع خيار safeprime_generator. يجب أن يكون خيار algorithm هو "DH".
- "fips186_4"
- توليد معلمات FIPS186-4. يجب أن يكون خيار algorithm هو "DHX".
- "fips186_2"
- توليد معلمات FIPS186-4. يجب أن يكون خيار algorithm هو "DHX".
- "group"
- يمكن استخدامه مع خيار pbits لاختيار واحد من "ffdhe2048" أو "ffdhe3072" أو "ffdhe4096" أو "ffdhe6144" أو "ffdhe8192". يجب أن يكون خيار algorithm هو "DH".
- "default"
- يختار نوعاً مبدئياً بناءً على algorithm. يُستخدم هذا بواسطة مزود OpenSSL المبدئي لضبط النوع من أجل التوافق مع الإصدارات السابقة. إذا كان algorithm هو "DH" فسيُستخدم "generator". وإذا كان algorithm هو "DHX" فسيُستخدم "fips186_2".
- dh_paramgen_type:value
- نوع معلمات DH المراد توليدها. القيم الصالحة هي 0 أو 1 أو 2 أو 3 والتي تقابل ضبط خيار type على "generator" أو "fips186_2" أو "fips186_4" أو "group".
- digest:digest
- الملخص المراد استخدامه أثناء توليد المعلمات. يجب أن يكون واحدًا من sha1 أو sha224 أو sha256. إذا ضُبط، فسيوافق عدد البتات في qbits حجم مخرجات الملخص المحدد وسيُتجاهل خيار qbits. إذا لم يُضبط، فسيُستخدم ملخص يعطي مخرجات توافق عدد البتات في q، أي sha1 إذا كان طول q هو 160، أو sha224 إذا كان 224، أو sha256 إذا كان 256. يُستخدم هذا فقط في توليد مفاتيح "fips186_4" و "fips186_2".
- properties:query
- سلسلة query لخاصية digest المراد استخدامها عند جلب ملخص من مزود. يُستخدم هذا فقط في توليد مفاتيح "fips186_4" و "fips186_2".
- gindex:index
- الفهرس المراد استخدامه للتوليد القياسي والتحقق من المولد g. اضبط هذا على قيمة موجبة تتراوح بين 0..255 لاستخدام هذا الوضع. القيم الأكبر ستستخدم البايت الأدنى فقط. يجب بعد ذلك إعادة استخدام هذا index أثناء التحقق من صحة المفتاح للتحقق من قيمة g. إذا لم تُضبط هذه القيمة، فلن يكون g قابلاً للتحقق. القيمة المبدئية هي -1. يُستخدم هذا فقط في توليد مفاتيح "fips186_4" و "fips186_2".
- hexseed:seed
- بيانات البذرة seed المراد استخدامها بدلاً من توليد بذرة عشوائية داخلياً. يجب استخدام هذا لأغراض الاختبار فقط. سيؤدي هذا إما إلى إنتاج قيم ثابتة للمعلمات المولدة أو سيفشل إذا لم تولد البذرة أعداداً أولية صالحة. يُستخدم هذا فقط في توليد مفاتيح "fips186_4" و "fips186_2".
خيارات توليد معلمات EC
خيارات توليد معلمات EC هي نفسها خيارات توليد المفاتيح. راجع "خيارات توليد مفتاح EC" أعلاه.
ملاحظات
يُشجع على استخدام برنامج genpkey بدلاً من الأدوات المساعدة الخاصة بخوارزمية معينة لأنه يمكن استخدام خيارات خوارزمية إضافية وخوارزميات يوفرها المحرك (ENGINE).
أمثلة
توليد مفتاح RSA سري باستخدام المعلمات المبدئية:
openssl genpkey -algorithm RSA -out key.pem
عمِّ مفتاح الخرج الخاص باستخدام AES بطول 128 بت وعبارة المرور "hello":
openssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello
ولِّد مفتاح RSA بطول 2048 بت باستخدام 3 كأُس عام:
openssl genpkey -algorithm RSA -out key.pem \
-pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:3
ولِّد معلمات DSA بطول 2048 بت يمكن الاستيثاق منها: قيم الخرج لـ gindex و seed مطلوبة لأغراض الاستيثاق من المفتاح ولا تُحفظ في ملف pem الناتج).
openssl genpkey -genparam -algorithm DSA -out dsap.pem -pkeyopt pbits:2048 \
-pkeyopt qbits:224 -pkeyopt digest:SHA256 -pkeyopt gindex:1 -text
ولِّد مفتاح DSA من المعلمات:
openssl genpkey -paramfile dsap.pem -out dsakey.pem
ولِّد مفتاح DH بطول 4096 بت باستخدام مجموعة الأعداد الأولية الآمنة ffdhe4096:
openssl genpkey -algorithm DH -out dhkey.pem -pkeyopt group:ffdhe4096
ولِّد مفتاح X9.42 DH بطول 2048 بت مع مجموعة فرعية بطول 256 بت باستخدام RFC5114 group3:
openssl genpkey -algorithm DHX -out dhkey.pem -pkeyopt dh_rfc5114:3
ولِّد مفتاح DH باستخدام ملف معلمات DH:
openssl genpkey -paramfile dhp.pem -out dhkey.pem
أخرج معلمات DH لمجموعة الأعداد الأولية الآمنة ffdhe2048:
openssl genpkey -genparam -algorithm DH -out dhp.pem -pkeyopt group:ffdhe2048
أخرج معلمات X9.42 DH بطول 2048 بت مع مجموعة فرعية بطول 224 بت باستخدام RFC5114 group2:
openssl genpkey -genparam -algorithm DHX -out dhp.pem -pkeyopt dh_rfc5114:2
أخرج معلمات X9.42 DH بطول 2048 بت مع مجموعة فرعية بطول 224 بت باستخدام توليد مفاتيح FIP186-4:
openssl genpkey -genparam -algorithm DHX -out dhp.pem -text \
-pkeyopt pbits:2048 -pkeyopt qbits:224 -pkeyopt digest:SHA256 \
-pkeyopt gindex:1 -pkeyopt dh_paramgen_type:2
أخرج معلمات X9.42 DH بطول 1024 بت مع مجموعة فرعية بطول 160 بت باستخدام توليد مفاتيح FIP186-2:
openssl genpkey -genparam -algorithm DHX -out dhp.pem -text \
-pkeyopt pbits:1024 -pkeyopt qbits:160 -pkeyopt digest:SHA1 \
-pkeyopt gindex:1 -pkeyopt dh_paramgen_type:1
أخرج معلمات DH بطول 2048 بت:
openssl genpkey -genparam -algorithm DH -out dhp.pem \
-pkeyopt dh_paramgen_prime_len:2048
أخرج معلمات DH بطول 2048 بت باستخدام مولد:
openssl genpkey -genparam -algorithm DH -out dhpx.pem \
-pkeyopt dh_paramgen_prime_len:2048 \
-pkeyopt dh_paramgen_type:1
ولِّد معلمات EC:
openssl genpkey -genparam -algorithm EC -out ecp.pem \
-pkeyopt ec_paramgen_curve:secp384r1 \
-pkeyopt ec_param_enc:named_curve
ولِّد مفتاح EC من المعلمات:
openssl genpkey -paramfile ecp.pem -out eckey.pem
ولِّد مفتاح EC مباشرة:
openssl genpkey -algorithm EC -out eckey.pem \
-pkeyopt ec_paramgen_curve:P-384 \
-pkeyopt ec_param_enc:named_curve
ولِّد مفتاح X25519 خاصاً:
openssl genpkey -algorithm X25519 -out xkey.pem
ولِّد مفتاح ED448 خاصاً:
openssl genpkey -algorithm ED448 -out xkey.pem
ولِّد مفتاح ML-DSA-65 خاصاً:
openssl genpkey -algorithm ML-DSA-65 -out ml-dsa-key.pem
ولِّد مفتاح ML-KEM-768 خاصاً:
openssl genpkey -algorithm ML-KEM-768 -out ml-kem-key.pem
التاريخ
أُضيفت القدرة على استخدام أسماء منحنيات NIST، وتوليد مفتاح EC مباشرة، في الإصدار 1.0.2 من OpenSSL. أُضيفت القدرة على توليد مفاتيح X25519 في الإصدار 1.1.0 من OpenSSL. أُضيفت القدرة على توليد مفاتيح X448 و ED25519 و ED448 في الإصدار 1.1.1 من OpenSSL.
خيار -engine أصبح مهجوراً في OpenSSL 3.0.
أُضيف دعم لـ ML-DSA و ML-KEM في الإصدار 3.5 من OpenSSL.
حقوق النسخ
حقوق النشر 2006-2025 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.
مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط https://www.openssl.org/source/license.html.
ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>
هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 7 أبريل 2026 | 3.6.2 |