OPENSSL-KDF(1ssl) OpenSSL OPENSSL-KDF(1ssl)

openssl-kdf - محاسبه توابع اشتقاق کلید

openssl kdf [-help] [-cipher] [-digest] [-mac] [-kdfopt nm:v] [-keylen num] [-out filename] [-binary] [-provider name] [-provider-path path] [-provparam [name:]key=value] [-propquery propq] kdf_name

توابع اشتقاق کلید یک کلید اشتقاق‌یافته را از یک کلید سری یا گذرواژه تولید می‌کنند.

نمایش پیام راهنمای نحوه استفاده.
اندازه خروجی کلید اشتقاق‌یافته. این فیلد الزامی است.
نام فایل خروجی، یا خروجی استاندارد به صورت پیش‌فرض.
تولید خروجی کلید اشتقاق‌یافته به صورت باینری. در صورت مشخص نشدن، به صورت پیش‌فرض از قالب متنی هگزادسیمال استفاده می‌شود.
مشخص کردن رمز (سایفر) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به رمز نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست.
مشخص کردن دایجست (خلاصه پیام) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به دایجست نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست. برای مشاهده فهرست دایجست‌های پشتیبانی‌شده، از "openssl list -digest-commands" استفاده کنید.
مشخص کردن کد اصالت‌سنجی پیام (MAC) مورد استفاده توسط KDF. همه الگوریتم‌های KDF به MAC نیاز ندارند و استفاده از این گزینه در چنین مواردی خطاست.
ارسال گزینه‌ها به الگوریتم KDF. فهرست کاملی از پارامترها را می‌توان در بخش "PARAMETERS" در EVP_KDF(3) یافت. نام‌های متداول پارامترهای مورد استفاده توسط EVP_KDF_CTX_set_params() عبارتند از:
کلید سری را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که کلید فقط شامل نویسه‌های قابل چاپ باشد). طول رشته باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. برای بیشتر الگوریتم‌های KDF باید یک کلید مشخص شود.
جایگزینی برای گزینه key: که در آن کلید سری به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود.
گذرواژه را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که گذرواژه فقط شامل نویسه‌های قابل چاپ باشد). گذرواژه باید برای الگوریتم‌های PBKDF2 و scrypt مشخص شود.
جایگزینی برای گزینه pass: که در آن گذرواژه به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود.
یک نمک (salt) رمزنگاری غیرمحرمانه و یکتا را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که فقط شامل نویسه‌های قابل چاپ باشد). طول آن باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد. پارامتر نمک (salt) برای چندین الگوریتم KDF مانند EVP_KDF-PBKDF2(7) الزامی است.
جایگزینی برای گزینه salt: که در آن نمک به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود.
برخی پیاده‌سازی‌های KDF، مانند EVP_KDF-HKDF(7)، یک پارامتر 'info' برای پیوند دادن ماده کلید اشتقاق‌یافته به اطلاعات خاص برنامه و زمینه دریافت می‌کنند. آرگومان info، fixed info، other info یا shared info را به صورت یک رشته الفبایی-عددی مشخص می‌کند (تنها در صورتی استفاده شود که فقط شامل نویسه‌های قابل چاپ باشد). طول آن باید با هرگونه محدودیت‌های الگوریتم KDF مطابقت داشته باشد.
جایگزینی برای گزینه info: که در آن info به فرم هگزادسیمال (دو رقم هگز به ازای هر بایت) مشخص می‌شود.
این گزینه با گزینه -digest یکسان است.
این گزینه با گزینه -cipher یکسان است.
این گزینه با گزینه -mac یکسان است.
بخش "Provider Options" را در openssl(1)، provider(7) و property(7) ببینید.
نام یک الگوریتم KDF پشتیبانی‌شده مورد استفاده را مشخص می‌کند. نام الگوریتم‌های پشتیبانی‌شده شامل TLS1-PRF، HKDF، SSKDF، PBKDF2، SSHKDF، X942KDF-ASN1، X942KDF-CONCAT، X963KDF و SCRYPT است.

استفاده از TLS1-PRF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری و seed:

openssl kdf -keylen 16 -kdfopt digest:SHA2-256 -kdfopt key:secret \
            -kdfopt seed:seed TLS1-PRF

استفاده از HKDF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info:

openssl kdf -keylen 10 -kdfopt digest:SHA2-256 -kdfopt key:secret \
            -kdfopt salt:salt -kdfopt info:label HKDF

استفاده از SSKDF همراه با KMAC برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info:

openssl kdf -keylen 64 -kdfopt mac:KMAC-128 -kdfopt maclen:20 \
            -kdfopt hexkey:b74a149a161545 -kdfopt hexinfo:348a37a2 \
            -kdfopt hexsalt:3638271ccd68a2 SSKDF

استفاده از SSKDF همراه با HMAC برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info:

openssl kdf -keylen 16 -kdfopt mac:HMAC -kdfopt digest:SHA2-256 \
            -kdfopt hexkey:b74a149a -kdfopt hexinfo:348a37a2 \
            -kdfopt hexsalt:3638271c SSKDF

استفاده از SSKDF همراه با Hash برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، نمک (salt) و info:

openssl kdf -keylen 14 -kdfopt digest:SHA2-256 \
            -kdfopt hexkey:6dbdc23f045488 \
            -kdfopt hexinfo:a1b2c3d4 SSKDF

استفاده از SSHKDF برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک کلید سری، هش و session_id:

openssl kdf -keylen 16 -kdfopt digest:SHA2-256 \
            -kdfopt hexkey:0102030405 \
            -kdfopt hexxcghash:06090A \
            -kdfopt hexsession_id:01020304 \
            -kdfopt type:A SSHKDF

استفاده از PBKDF2 برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک گذرواژه و نمک (salt):

openssl kdf -keylen 32 -kdfopt digest:SHA256 -kdfopt pass:password \
            -kdfopt salt:salt -kdfopt iter:2 PBKDF2

استفاده از scrypt برای ایجاد یک کلید اشتقاق‌یافته با کدگذاری هگزادسیمال از یک گذرواژه و نمک (salt):

openssl kdf -keylen 64 -kdfopt pass:password -kdfopt salt:NaCl \
            -kdfopt n:1024 -kdfopt r:8 -kdfopt p:16 \
            -kdfopt maxmem_bytes:10485760 SCRYPT

سازوکارهای KDF در دسترس، به گزینه‌های استفاده‌شده در زمان ساخت OpenSSL بستگی خواهند داشت.

openssl(1), openssl-pkeyutl(1), EVP_KDF(3), EVP_KDF-SCRYPT(7), EVP_KDF-TLS1_PRF(7), EVP_KDF-PBKDF2(7), EVP_KDF-HKDF(7), EVP_KDF-SS(7), EVP_KDF-SSHKDF(7), EVP_KDF-X942-ASN1(7), EVP_KDF-X942-CONCAT(7), EVP_KDF-X963(7)

در OpenSSL 3.0 اضافه شد.

کپی‌رایت ۲۰۱۹-۲۰۲۳ نویسندگان پروژه OpenSSL. کلیه حقوق محفوظ است.

تحت مجوز آپاچی نسخه ۲.۰ («مجوز») منتشر شده است. شما مجاز به استفاده از این فایل نیستید مگر با رعایت شرایط این مجوز. می‌توانید نسخه‌ای از این مجوز را در فایل LICENSE در توزیع کد منبع یا در https://www.openssl.org/source/license.html دریافت کنید.

2026-08-25 3.6.4