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 id
    انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.

-provider الاسم
-provider-path المسار
-provparam [الاسم:]المفتاح=القيمة
-propquery propq
    انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).

-config ملف_الضبط
    انظر "Configuration Option" في 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 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.