.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_ecdhzgen" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_ecdhzgen \- بازیابی مقدار راز مشترک (Z) از یک نقطه عمومی و یک کلید خصوصی مشخص‌شده .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_ecdhzgen\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_ecdhzgen\f[R](1) \- مقدار راز مشترک (Z) را از یک نقطه عمومی و یک کلید خصوصی مشخص‌شده بازیابی می‌کند\&. این دستور ضرب نقطه ورودی داده‌شده (QB) در کلید خصوصی (ds) را انجام داده و مختصات نقطه حاصل را برمی‌گرداند (Z = (xZ , yZ) ≔ [hds]QB؛ که در آن h کوفاکتور خم است)\&. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-c\f[R], \f[B]\-\-key\-context\f[R]=\f[I]FILE\f[R]: .RS 2 .PP شیء زمینه که به کلید ECC اشاره دارد\&. می‌تواند یک فایل یا شماره هندل (handle number) باشد\&. بخش «قالب شیء زمینه» (Context Object Format) را ببینید\&. .RE .IP \[bu] 2 \f[B]\-p\f[R], \f[B]\-\-key\-auth\f[R]=\f[I]AUTH\f[R]: .RS 2 .PP مقدار احراز هویت برای شیء کلید ECC\&. .RE .IP \[bu] 2 \f[B]\-u\f[R], \f[B]\-\-public\f[R]=\f[I]FILE\f[R]: .RS 2 .PP نقطه ورودی ECC به نام Q\&. .RE .IP \[bu] 2 \f[B]\-k\f[R], \f[B]\-\-public\-key\f[R]=\f[I]FILE\f[R]: .RS 2 .PP کلید عمومی ورودی ECC همراه با نقطه Q\&. .RE .IP \[bu] 2 \f[B]\-o\f[R], \f[B]\-\-output\f[R]=\f[I]FILE\f[R] .RS 2 .PP مسیر فایل برای ذخیره راز ecdh محاسبه‌شده یا نقطه Z را مشخص می‌کند\&. .RE .IP \[bu] 2 \f[B]\-\-cphash\f[R]=\f[I]FILE\f[R] .RS 2 .PP مسیر فایل برای ثبت هش پارامترهای دستور\&. این مقدار معمولاً به عنوان cpHash شناخته می‌شود\&. نکته: هنگامی که این گزینه انتخاب شود، ابزار در واقع دستور را اجرا نخواهد کرد و صرفاً مقدار cpHash را بازمی‌گرداند\&. .RE .SS "مراجع (References)" .SH "مشخص‌کننده‌های الگوریتم (Algorithm Specifiers)" گزینه‌هایی که الگوریتم دریافت می‌کنند از «نام‌های مناسب» (nice\-names) پشتیبانی می‌کنند\&. .PP دو دسته اصلی رشته‌های مشخص‌کننده الگوریتم وجود دارد: ساده و پیچیده\&. تنها الگوریتم‌های خاصی بر اساس نوع کاربرد و شرایط توسط TPM پذیرفته خواهند شد\&. .SS "مشخص‌کننده‌های ساده (Simple specifiers)" این‌ها رشته‌هایی بدون داده‌های مشخص‌کننده اضافی هستند\&. هنگام ایجاد اشیاء، بخش‌های تعیین‌نشده شیء با مقادیر پیش‌فرض در نظر گرفته می‌شوند\&. فهرست «مشخص‌کننده‌های ساده» شناخته‌شده در زیر آمده است\&. .SS "نامتقارن (Asymmetric)" .IP \[bu] 2 rsa .IP \[bu] 2 ecc .SS "متقارن (Symmetric)" .IP \[bu] 2 aes .IP \[bu] 2 camellia .IP \[bu] 2 sm4 .SS "الگوریتم‌های درهم‌سازی (Hashing Algorithms)" .IP \[bu] 2 sha1 .IP \[bu] 2 sha256 .IP \[bu] 2 sha384 .IP \[bu] 2 sha512 .IP \[bu] 2 sm3_256 .IP \[bu] 2 sha3_256 .IP \[bu] 2 sha3_384 .IP \[bu] 2 sha3_512 .SS "درهم‌سازی کلیددار (Keyed Hash)" .IP \[bu] 2 hmac .IP \[bu] 2 xor .SS "طرح‌های امضا (Signing Schemes)" .IP \[bu] 2 rsassa .IP \[bu] 2 rsapss .IP \[bu] 2 ecdsa .IP \[bu] 2 ecdaa .IP \[bu] 2 ecschnorr .IP \[bu] 2 sm2 .SS "طرح‌های رمزنگاری نامتقارن (Asymmetric Encryption Schemes)" .IP \[bu] 2 oaep .IP \[bu] 2 rsaes .IP \[bu] 2 ecdh .SS "حالت‌ها (Modes)" .IP \[bu] 2 ctr .IP \[bu] 2 ofb .IP \[bu] 2 cbc .IP \[bu] 2 cfb .IP \[bu] 2 ecb .SS "متفرقه (Misc)" .IP \[bu] 2 null .SS "مشخص‌کننده‌های پیچیده (Complex Specifiers)" اشیاء، هنگامی که برای ایجاد توسط TPM مشخص می‌شوند، الگوریتم‌های متعددی دارند که در داده‌های عمومی آن‌ها قرار می‌گیرد؛ مواردی مانند نوع، طرح و جزئیات نامتقارن، اندازه کلید و غیره\&. در ادامه قالب کلی برای تعیین این داده‌ها آمده است: \f[CR]::\f[R] .SS "مشخص‌کننده‌های نوع (Type Specifiers)" این بخش از مشخص‌کننده الگوریتم پیچیده الزامی است\&. باقی‌مانده جزئیات طرح و بخش متقارن بر اساس نوع مشخص‌شده و نوع شیء در حال ایجاد، مقدار پیش‌فرض به خود می‌گیرند\&. .IP \[bu] 2 aes \- مقدار پیش‌فرض AES: aes128 .IP \[bu] 2 aes128\f[CR]\f[R] \- الگوریتم AES با ۱۲۸ بیت و حالت اختیاری (\f[I]ctr\f[R]|\f[I]ofb\f[R]|\f[I]cbc\f[R]|\f[I]cfb\f[R]|\f[I]ecb\f[R])\&. اگر حالت مشخص نشود، مقدار پیش‌فرض \f[I]null\f[R] خواهد بود\&. .IP \[bu] 2 aes192\f[CR]\f[R] \- مشابه aes128\f[CR]\f[R]، به جز اندازه کلید ۱۹۲ بیتی\&. .IP \[bu] 2 aes256\f[CR]\f[R] \- مشابه aes128\f[CR]\f[R]، به جز اندازه کلید ۲۵۶ بیتی\&. .IP \[bu] 2 sm4 \- مقدار پیش‌فرض SM4: sm4128 .IP \[bu] 2 sm4128 or sm4_128 \f[CR]\f[R] \- الگوریتم SM4 با ۱۲۸ بیت و حالت اختیاری (\f[I]ctr\f[R]|\f[I]ofb\f[R]|\f[I]cbc\f[R]|\f[I]cfb\f[R]|\f[I]ecb\f[R])\&. اگر حالت مشخص نشود، مقدار پیش‌فرض \f[I]null\f[R] خواهد بود\&. .IP \[bu] 2 ecc \- منحنی بیضوی، مقدار پیش‌فرض ecc256\&. .IP \[bu] 2 ecc192 or ecc_nist_p192 \- منحنی ECC NIST با طول ۱۹۲ بیت .IP \[bu] 2 ecc224 or ecc_nist_p224 \- منحنی ECC NIST با طول ۲۲۴ بیت .IP \[bu] 2 ecc256 or ecc_nist_p256 \- منحنی ECC NIST با طول ۲۵۶ بیت .IP \[bu] 2 ecc384 or ecc_nist_p384 \- منحنی ECC NIST با طول ۳۸۴ بیت .IP \[bu] 2 ecc521 or ecc_nist_p521 \- منحنی ECC NIST با طول ۵۲۱ بیت .IP \[bu] 2 ecc_sm2 or ecc_sm2_p256 \- منحنی SM2 با طول ۲۵۶ بیت .IP \[bu] 2 rsa \- مقدار پیش‌فرض RSA: rsa2048 .IP \[bu] 2 rsa1024 \- الگوریتم RSA با اندازه کلید ۱۰۲۴ بیت\&. .IP \[bu] 2 rsa2048 \- الگوریتم RSA با اندازه کلید ۲۰۴۸ بیت\&. .IP \[bu] 2 rsa3072 \- الگوریتم RSA با اندازه کلید ۳۰۷۲ بیت\&. .IP \[bu] 2 rsa4096 \- الگوریتم RSA با اندازه کلید ۴۰۹۶ بیت\&. .SS "مشخص‌کننده‌های طرح (Scheme Specifiers)" مورد بعدی یک فیلد اختیاری است و می‌توان از آن صرف‌نظر کرد\&. .PP طرح‌ها معمولاً \f[B]طرح‌های امضا\f[R] یا \f[B]طرح‌های رمزنگاری نامتقارن\f[R] هستند\&. بیشتر طرح‌های امضا یک الگوریتم درهم‌سازی را مستقیماً پس از طرح امضا دریافت می‌کنند\&. اگر الگوریتم درهم‌سازی ذکر نشود، پیش‌فرض آن \f[I]sha256\f[R] خواهد بود\&. برخی هیچ آرگومانی دریافت نمی‌کنند و برخی چندین آرگومان می‌پذیرند\&. .SS "طرح‌های با الگوریتم درهم‌سازی اختیاری (Hash Optional Scheme Specifiers)" پس از این مشخص‌کننده‌های طرح، یک خط تیره و یک الگوریتم درهم‌سازی معتبر قرار می‌گیرد؛ به عنوان مثال: \f[CR]oaep\-sha256\f[R]\&. .IP \[bu] 2 oaep .IP \[bu] 2 ecdh .IP \[bu] 2 rsassa .IP \[bu] 2 rsapss .IP \[bu] 2 ecdsa .IP \[bu] 2 ecschnorr .IP \[bu] 2 sm2 .SS "طرح‌های با چند گزینه (Multiple Option Scheme Specifiers)" پس از این مشخص‌کننده طرح، یک مقدار شمارش (حداکثر اندازه UINT16) و سپس یک خط تیره (\-) و یک الگوریتم درهم‌سازی معتبر می‌آید\&. .IP \[bu] 2 ecdaa برای مثال: ecdaa4\-sha256\&. .PP اگر مقداری برای شمارش تعیین نشود، پیش‌فرض آن ۴ خواهد بود\&. .SS "طرح‌های بدون گزینه (No Option Scheme Specifiers)" این مشخص‌کننده طرح هیچ آرگومانی نمی‌پذیرد\&. .IP \[bu] 2 rsaes .SS "مشخص‌کننده‌های جزئیات متقارن (Symmetric Details Specifiers)" این فیلد اختیاری است و بر اساس \f[I]نوع\f[R] شیء در حال ایجاد و ویژگی‌های آن به مقادیر پیش‌فرض تنظیم می‌شود\&. به‌طور کلی، هر مشخص‌کننده معتبر \f[B]متقارن\f[R] از فهرست \f[B]مشخص‌کننده‌های نوع\f[R] قابل استفاده است\&. در صورت عدم تعیین، جزئیات متقارن یک شیء نامتقارن به‌طور پیش‌فرض \f[I]aes128cfb\f[R] در نظر گرفته می‌شود\&. .SS "مثال‌ها (Examples)" .SS "ایجاد یک کلید rsa2048 با طرح رمزنگاری نامتقارن rsaes" \f[CR]tpm2_create \-C parent.ctx \-G rsa2048:rsaes \-u key.pub \-r key.priv\f[R] .SS "ایجاد یک کلید ecc256 با طرح امضای ecdaa با تعداد ۴ و هش sha384" \f[CR]/tpm2_create \-C parent.ctx \-G ecc256:ecdaa4\-sha384 \-u key.pub \-r key.priv\f[R] الگوریتم‌های رمزنگاری \f[I]ALGORITHM\f[R]\&. .SH "گزینه‌های مشترک (COMMON OPTIONS)" این مجموعه گزینه‌ها میان بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که بسیاری از کاربران انتظار دارند\&. .IP \[bu] 2 \f[B]\-h\f[R], \f[B]\-\-help=[man|no\-man]\f[R]: صفحه راهنمای ابزار را نمایش می‌دهد\&. به‌طور پیش‌فرض، تلاش می‌کند صفحه‌خوان راهنما (manpager) را برای ابزار فراخوانی کند؛ اما در صورت عدم موفقیت، خلاصه کوتاهی از ابزار را خروجی می‌دهد\&. این رفتار مشابه مشخص کردن آرگومان گزینه «man» است؛ اما اگر «man» صریحاً درخواست شده باشد، ابزار خطاهای man را در stderr گزارش می‌کند\&. اگر گزینه «no\-man» مشخص شود، یا فراخوانی manpager ناموفق باشد، گزینه‌های کوتاه در stdout چاپ می‌شوند\&. .RS 2 .PP استفاده موفقیت‌آمیز از ویژگی صفحات راهنما نیازمند نصب بودن صفحات راهنما یا قرار داشتن آن‌ها در \f[I]MANPATH\f[R] است؛ برای جزئیات بیشتر به man(1) مراجعه کنید\&. .RE .IP \[bu] 2 \f[B]\-v\f[R], \f[B]\-\-version\f[R]: نمایش اطلاعات نسخه این ابزار و tctiهای پشتیبانی‌شده و خروج\&. .IP \[bu] 2 \f[B]\-V\f[R], \f[B]\-\-verbose\f[R]: افزایش اطلاعاتی که ابزار در حین اجرا در کنسول چاپ می‌کند\&. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند\&. .IP \[bu] 2 \f[B]\-Q\f[R], \f[B]\-\-quiet\f[R]: خاموش کردن خروجی عادی ابزار به stdout\&. .IP \[bu] 2 \f[B]\-Z\f[R], \f[B]\-\-enable\-errata\f[R]: فعال‌سازی اعمال اصلاحیه‌های خطا (errata fixups)\&. زمانی مفید است که لازم باشد اصلاحیه خطا روی دستورات ارسالی به TPM اعمال شود\&. تنظیم متغیر محیطی TPM2TOOLS_ENABLE_ERRATA معادل این گزینه است\&. .IP \[bu] 2 \f[B]\-z\f[R], \f[B]\-\-pwd\-session\f[R]: استفاده از نشست گذرواژه به‌جای نشست HMAC برای احراز هویت\&. یک گذرواژه متن‌آشکار (clear text) برای مجاز کردن اقدام به TPM ارسال می‌شود\&. این گزینه می‌تواند برای جلوگیری از بروز مشکل در صورت استفاده از نشست‌های بدون سالت (unsalted) در حالت OpenSSL FIPS به کار رود\&. اگر از مقادیر احراز هویت (auth) استفاده می‌شود، باید از یک نشست همراه با سالت برای احراز هویت استفاده گردد\&. .IP \[bu] 2 \f[B]\-R\f[R], \f[B]\-\-autoflush\f[R]: فعال کردن تخلیه خودکار (autoflush) برای اشیاء موقت که توسط دستور ایجاد شده‌اند\&. اگر شیء والد از یک فایل بافتار بارگذاری شود، شیء والد موقت نیز تخلیه خواهد شد\&. تخلیه خودکار همچنین با تنظیم متغیر محیطی TPM2TOOLS_AUTOFLUSH بر روی yes یا true فعال می‌شود\&. .SH "پیکربندی TCTI (TCTI Configuration)" رابط TCTI یا «Transmission Interface» سازوکار ارتباطی با TPM است\&. TCTIها را می‌توان برای ارتباط با TPM در بسترهای مختلف تغییر داد\&. .PP برای کنترل TCTI، این ابزارها موارد زیر را در نظر می‌گیرند: .IP "1." 3 گزینه خط فرمان \f[B]\-T\f[R] یا \f[B]\-\-tcti\f[R] .IP "2." 3 متغیر محیطی: \f[I]TPM2TOOLS_TCTI\f[R]\&. .PP \f[B]نکته:\f[R] گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد\&. .PP TCTIهای شناخته‌شده کنونی عبارتند از: .IP \[bu] 2 tabrmd \- مدیر منابع، موسوم به \c .UR https://github.com/tpm2-software/tpm2-abrmd tabrmd .UE \c \&. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف هستند\&. .IP \[bu] 2 mssim \- معمولاً برای ارتباط با شبیه‌ساز نرم‌افزاری TPM استفاده می‌شود\&. .IP \[bu] 2 device \- هنگام ارتباط مستقیم با فایل دستگاه TPM استفاده می‌شود\&. .IP \[bu] 2 none \- هیچ اتصالی با TPM برقرار نمی‌کند\&. برخی از ابزارها امکان استفاده از گزینه‌های خارج از TPM را دارند و بنابراین از عدم استفاده از TCTI پشتیبانی می‌کنند\&. ابزارهایی که از آن پشتیبانی نمی‌کنند، در صورت تلاش برای استفاده بدون اتصال TCTI با خطا مواجه می‌شوند\&. از \f[I]هیچ\f[R] گزینه‌ای پشتیبانی نمی‌کند و \f[I]باید دقیقاً\f[R] به صورت متن «none» ارائه شود\&. .PP آرگومان‌های گزینه خط فرمان یا متغیر محیطی به قالب زیر هستند: .PP \f[CR]:\f[R] .PP تعیین یک رشته خالی برای هر یک از \f[CR]\f[R] یا \f[CR]\f[R] به ترتیب منجر به استفاده از مقدار پیش‌فرض برای آن بخش می‌شود\&. .SS "پیش‌فرض‌های TCTI (TCTI Defaults)" هنگامی که TCTI مشخص نشده باشد، TCTI پیش‌فرض با استفاده از معناشناسی \f[I]dlopen(3)\f[R] جستجو می‌شود\&. ابزارها TCTIهای \f[I]tabrmd\f[R]، \f[I]device\f[R] و \f[I]mssim\f[R] را \f[B]به همان ترتیب\f[R] جستجو می‌کنند و \f[B]نخستین مورد یافت‌شده را به کار می‌برند\f[R]\&. می‌توانید با استفاده از گزینه \f[B]\-v\f[R] برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیش‌فرض انتخاب خواهد شد\&. جفت کلید\-مقدار «default\-tcti» مشخص می‌کند که کدام‌یک از TCTIهای یادشده پیش‌فرض است\&. .SS "TCTIهای سفارشی (Custom TCTIs)" هر TCTI که رابط TCTI پویا را پیاده‌سازی کند می‌تواند بارگذاری شود\&. ابزارها در داخل از \f[I]dlopen(3)\f[R] استفاده می‌کنند و مقدار خام \f[I]tcti\-name\f[R] برای جستجو استفاده می‌شود\&. بنابراین، این مقدار می‌تواند مسیری به کتابخانه اشتراکی یا نام کتابخانه‌ای باشد که بر اساس معناشناسی \f[I]dlopen(3)\f[R] درک می‌شود\&. .SH "گزینه‌های TCTI (TCTI OPTIONS)" این مجموعه گزینه‌ها برای پیکربندی ماژول‌های مختلف شناخته‌شده TCTI موجود به کار می‌روند: .IP \[bu] 2 \f[B]device\f[R]: برای TCTI از نوع device، می‌توان فایل دستگاه نویسه‌ای TPM را برای استفاده توسط این TCTI مشخص کرد\&. مقدار پیش‌فرض \f[I]/dev/tpm0\f[R] است\&. .RS 2 .PP مثال: \f[B]\-T device:/dev/tpm0\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]device:/dev/tpm0\[rq]\f[R] .RE .IP \[bu] 2 \f[B]mssim\f[R]: برای TCTI از نوع mssim، می‌توان نام دامنه یا نشانی IP و شماره درگاه مورد استفاده شبیه‌ساز را مشخص کرد\&. مقادیر پیش‌فرض 127.0.0.1 و 2321 هستند\&. .RS 2 .PP مثال: \f[B]\-T mssim:host=localhost,port=2321\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]mssim:host=localhost,port=2321\[rq]\f[R] .RE .IP \[bu] 2 \f[B]abrmd\f[R]: برای TCTI از نوع abrmd، قالب رشته پیکربندی مجموعه‌ای از جفت‌های ساده کلید\-مقدار است که با نویسه «,» از یکدیگر جدا می‌شوند\&. هر کلید و مقدار با نویسه «=» تفکیک می‌شوند\&. .RS 2 .IP \[bu] 2 ماژول TCTI abrmd از دو کلید پشتیبانی می‌کند: .RS 2 .IP "1." 3 `bus_name` : نام سرویس tabrmd روی گذرگاه (یک رشته)\&. .IP "2." 3 `bus_type` : نوع نمونه dbus (یک رشته) محدود به `session` و `system`\&. .RE .PP مشخص کردن نام tcti برابر با tabrmd و رشته پیکربندی \f[CR]bus_name=com.example.FooBar\f[R]: .IP .EX \[rs]\-\-tcti=tabrmd:bus_name=com.example.FooBar .EE .PP مشخص کردن tcti پیش‌فرض (abrmd) و رشته پیکربندی \f[CR]bus_type=session\f[R]: .IP .EX \[rs]\-\-tcti:bus_type=session .EE .PP \f[B]نکته\f[R]: abrmd و tabrmd مترادف هستند\&. .RE .SH "مثال‌ها (EXAMPLES)" .IP .EX tpm2_createprimary \-C o \-c prim.ctx \-Q tpm2_create \-C prim.ctx \-c key.ctx \-u key.pub \-r key.priv \-G ecc256:ecdh tpm2_ecdhkeygen \-u ecdh.pub \-o ecdh.priv \-c key.ctx tpm2_ecdhzgen \-u ecdh.pub \-o ecdh.dat \-c key.ctx .EE .SH "کدهای بازگشتی (Returns)" ابزارها می‌توانند هر یک از کدهای زیر را بازگردانند: .IP \[bu] 2 0 \- موفقیت‌آمیز\&. .IP \[bu] 2 1 \- خطای عمومی و نامشخص\&. .IP \[bu] 2 2 \- خطای مدیریت گزینه‌ها\&. .IP \[bu] 2 3 \- خطای احراز هویت\&. .IP \[bu] 2 4 \- خطای مربوط به TCTI\&. .IP \[bu] 2 5 \- طرح پشتیبانی‌نشده\&. قابل اعمال بر tpm2_testparams\&. .SH "اشکالات (BUGS)" \c .UR https://github.com/tpm2-software/tpm2-tools/issues مسائل گیت‌هاب (Github Issues) .UE \c .SH "راهنما (HELP)" مشاهده \c .UR https://lists.linuxfoundation.org/mailman/listinfo/tpm2 فهرست پستی (Mailing List) .UE \c .SH "مجوز (LICENSE)" این اثر تحت \c .UR https://creativecommons.org/licenses/by/4.0 مجوز بین‌المللی ارجاع ۴٫۰ کریپتیو کامانز (CC BY 4.0) .UE \c \&.