.\" Copyright 2009 Colin Percival .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .Dd February 13, 2025 .Dt SCRYPT 1 .Os .Sh "نام (NAME)" .Nm scrypt .Nd رمزنگاری و رمزگشایی فایل‌ها .Sh "خلاصه دستور (SYNOPSIS)" .Nm .Brq Cm enc | Cm dec | Cm info .Op Fl f .Op Fl -logN Ar value .Op Fl M Ar maxmem .Op Fl m Ar maxmemfrac .Op Fl P .Op Fl p Ar value .Op Fl -passphrase Ar method:arg .Op Fl r Ar value .Op Fl t Ar maxtime .Op Fl v .Ar infile .Op Ar outfile .Nm .Fl -version .Sh "توضیحات (DESCRIPTION)" .Nm Cm enc فایل .Ar infile را رمزنگاری کرده و در صورت مشخص بودن، نتیجه را در .Ar outfile و در غیر این صورت در خروجی استاندارد می‌نویسد. از کاربر خواسته می‌شود یک عبارت عبور را (دو بار) وارد کند تا برای تولید کلید رمزنگاری مشتق‌شده استفاده شود. .Pp .Nm Cm dec فایل .Ar infile را رمزگشایی کرده و در صورت مشخص بودن، نتیجه را در .Ar outfile و در غیر این صورت در خروجی استاندارد می‌نویسد. از کاربر خواسته می‌شود عبارت عبوری که در زمان رمزنگاری برای تولید کلید رمزنگاری مشتق‌شده استفاده شده بود را وارد کند. .Pp .Nm Cm info اطلاعات مربوط به پارامترهای رمزنگاری استفاده‌شده برای .Ar infile را ارائه می‌دهد. .Pp مگر اینکه از طریق .Fl -passphrase به‌گونه دیگری مشخص شده باشد، .Nm عبارت‌های عبور را از ترمینال کنترل‌کننده خود، یا در صورت عدم موفقیت، از ورودی استاندارد (stdin) می‌خواند. اعلان‌ها تنها زمانی چاپ می‌شوند که .Nm در حال خواندن عبارت عبور از یک ترمینال باشد. .Sh "گزینه‌ها (OPTIONS)" .Bl -tag -width "-m maxmemfrac" .It Fl f اجرای عملیات را اجبار می‌کند حتی اگر پیش‌بینی شود که به مقدار بیش از حدی از حافظه یا زمان پردازنده (CPU) نیاز دارد. هیچ هشداری درباره فراتر رفتن از محدودیت‌های حافظه یا زمان پردازنده چاپ نمی‌شود. .It Fl -logN Ar value پارامتر کاری N را روی .Pf 2^ Ar value تنظیم می‌کند. اگر .Fl -logN تنظیم شده باشد، .Fl r و .Fl p نیز باید تنظیم شوند. در صورت ارائه چنین پارامترهای صریحی، محدودیت‌های منابع تعیین‌شده توسط .Fl M , .Fl m و .Fl t اعمال نمی‌شوند. .It Fl M Ar maxmem حداکثر از .Ar maxmem بایت حافظه RAM برای محاسبه کلید رمزنگاری مشتق‌شده استفاده می‌کند. .It Fl m Ar maxmemfrac حداکثر از کسر .Ar maxmemfrac از حافظه RAM موجود برای محاسبه کلید رمزنگاری مشتق‌شده استفاده می‌کند. حداکثر مقدار ممکن برای .Ar maxmemfrac برابر 0.5 است. .It Fl P مترادف منسوخ‌شده برای .Fl -passphrase Ar dev:stdin-once . .It Fl p Ar value پارامتر کاری p را روی .Ar value تنظیم می‌کند. اگر .Fl p تنظیم شده باشد، .Fl -logN و .Fl r نیز باید تنظیم شوند. در صورت ارائه چنین پارامترهای صریحی، محدودیت‌های منابع تعیین‌شده توسط .Fl M , .Fl m و .Fl t اعمال نمی‌شوند. .It Fl -passphrase Ar method:arg عبارت عبور را با استفاده از روش مشخص‌شده می‌خواند. .Bl -tag -width aa .It Ar dev:tty-stdin تلاش می‌کند عبارت عبور را از dev/tty/ بخواند؛ اگر موفق نشد، آن را از ورودی استاندارد (stdin) می‌خواند. این رفتار پیش‌فرض است. .It Ar dev:stdin-once تلاش می‌کند عبارت عبور را از ورودی استاندارد (stdin) بخواند، و این کار را حتی هنگام رمزنگاری تنها یک بار انجام می‌دهد. اگر .Ar infile نیز ورودی استاندارد (یا '-') باشد، نمی‌توان از این گزینه استفاده کرد. .It Ar dev:tty-once تلاش می‌کند عبارت عبور را از dev/tty/ بخواند، و این کار را حتی هنگام رمزنگاری تنها یک بار انجام می‌دهد. .It Ar env:VAR عبارت عبور را از متغیر محیطی مشخص‌شده توسط .Ar VAR می‌خواند. .Pp .Bf Em ذخیره عبارت عبور در یک متغیر محیطی ممکن است یک خطر امنیتی باشد. .Ef تنها در صورتی از این گزینه استفاده کنید که کاملاً مطمئن باشید چه کاری انجام می‌دهید. .It Ar file:FILENAME عبارت عبور را از فایل مشخص‌شده توسط .Ar FILENAME می‌خواند. .Pp .Bf Em ذخیره عبارت عبور در یک فایل ممکن است یک خطر امنیتی باشد. .Ef تنها در صورتی از این گزینه استفاده کنید که کاملاً مطمئن باشید چه کاری انجام می‌دهید. .El .It Fl r Ar value پارامتر کاری r را روی .Ar value تنظیم می‌کند. اگر .Fl r تنظیم شده باشد، .Fl -logN و .Fl p نیز باید تنظیم شوند. در صورت ارائه چنین پارامترهای صریحی، محدودیت‌های منابع تعیین‌شده توسط .Fl M , .Fl m و .Fl t اعمال نمی‌شوند. .It Fl t Ar maxtime حداکثر از .Ar maxtime ثانیه زمان پردازنده (CPU) برای محاسبه کلید رمزنگاری مشتق‌شده استفاده می‌کند. .It Fl v پارامترهای رمزنگاری (N, r, p) و محدودیت‌های حافظه/پردازنده را چاپ می‌کند. .It Fl -version نسخه scrypt را چاپ کرده و خارج می‌شود. .El .Pp در .Nm Cm enc , محدودیت‌های حافظه و زمان پردازنده با انتخاب پارامترهای مناسب برای تابع اشتقاق کلید .Nm اعمال می‌شوند. در .Nm Cm dec , محدودیت‌های حافظه و زمان پردازنده با خروج همراه با خطا در صورتی که رمزگشایی فایل به حافظه یا زمان پردازنده بسیار زیادی نیاز داشته باشد، اعمال می‌گردند. .Sh "وضعیت خروج (EXIT STATUS)" ابزار .Nm در صورت موفقیت با وضعیت 0 و در صورت بروز خطا با مقداری بزرگتر از 0 خارج می‌شود. .Pp توجه داشته باشید که اگر فایل رمزنگاری‌شده ورودی معیوب باشد، .Nm Cm dec ممکن است پیش از تشخیص معیوب بودن ورودی و خروج با وضعیت غیر صفر، خروجی تولید کند؛ بنابراین کاربران باید خروجی را به مکانی امن هدایت کرده و پیش از استفاده از داده‌های رمزگشایی‌شده، وضعیت خروج .Nm را بررسی نمایند. .Sh "پارامترهای الگوریتم (ALGORITHM PARAMETERS)" الگوریتم scrypt دارای سه پارامتر کاری قابل تنظیم است: N, r, p. هنگام رمزگشایی، scrypt همواره از مقادیر مشخص‌شده در هدر رمزنگاری استفاده خواهد کرد. هنگام رمزنگاری، scrypt مقادیر مناسب را بر اساس سرعت و حافظه سیستم شما (تحت تأثیر .Fl M , .Fl m و/یا .Fl t ) انتخاب می‌کند، مگر اینکه پارامترهای صریح را از طریق .Fl -logN , .Fl p , .Fl r مشخص نمایید. .Sh "همچنین ببینید (SEE ALSO)" .Rs .%A "Colin Percival" .%T "Stronger Key Derivation via Sequential Memory-Hard Functions" .%R "BSDCan'09" .%D "May 2009" .Re .Rs .%A "Colin Percival" .%A "Simon Josefsson" .%T "The scrypt Password-Based Key Derivation Function" .%R "IETF RFC 7914" .%D "August 2016" .Re .Sh "تاریخچه (HISTORY)" ابزار .Nm در مه ۲۰۰۹ توسط Colin Percival به عنوان نمایشی از تابع اشتقاق کلید .Nm نوشته شد. تابع اشتقاق کلید .Nm در مارس ۲۰۰۹ توسط Colin Percival ابداع شد تا امکان محافظت از فایل‌های کلید سیستم پشتیبان‌گیری .Nm Tarsnap با یک عبارت عبور فراهم گردد.