SCRYPT(1) General Commands Manual SCRYPT(1)

scrypt — رمزنگاری و رمزگشایی فایل‌ها

scrypt {enc | dec | info} [-f] [--logN value] [-M maxmem] [-m maxmemfrac] [-P] [-p value] [--passphrase method:arg] [-r value] [-t maxtime] [-v] infile [outfile] scrypt --version

scrypt enc فایل infile را رمزنگاری کرده و در صورت مشخص بودن، نتیجه را در outfile و در غیر این صورت در خروجی استاندارد می‌نویسد. از کاربر خواسته می‌شود یک عبارت عبور را (دو بار) وارد کند تا برای تولید کلید رمزنگاری مشتق‌شده استفاده شود.

scrypt dec فایل infile را رمزگشایی کرده و در صورت مشخص بودن، نتیجه را در outfile و در غیر این صورت در خروجی استاندارد می‌نویسد. از کاربر خواسته می‌شود عبارت عبوری که در زمان رمزنگاری برای تولید کلید رمزنگاری مشتق‌شده استفاده شده بود را وارد کند.

scrypt info اطلاعات مربوط به پارامترهای رمزنگاری استفاده‌شده برای infile را ارائه می‌دهد.

مگر اینکه از طریق --passphrase به‌گونه دیگری مشخص شده باشد، scrypt عبارت‌های عبور را از ترمینال کنترل‌کننده خود، یا در صورت عدم موفقیت، از ورودی استاندارد (stdin) می‌خواند. اعلان‌ها تنها زمانی چاپ می‌شوند که scrypt در حال خواندن عبارت عبور از یک ترمینال باشد.

اجرای عملیات را اجبار می‌کند حتی اگر پیش‌بینی شود که به مقدار بیش از حدی از حافظه یا زمان پردازنده (CPU) نیاز دارد. هیچ هشداری درباره فراتر رفتن از محدودیت‌های حافظه یا زمان پردازنده چاپ نمی‌شود.
value
پارامتر کاری N را روی 2^value تنظیم می‌کند. اگر --logN تنظیم شده باشد، -r و -p نیز باید تنظیم شوند. در صورت ارائه چنین پارامترهای صریحی، محدودیت‌های منابع تعیین‌شده توسط -M, -m و -t اعمال نمی‌شوند.
maxmem
حداکثر از maxmem بایت حافظه RAM برای محاسبه کلید رمزنگاری مشتق‌شده استفاده می‌کند.
maxmemfrac
حداکثر از کسر maxmemfrac از حافظه RAM موجود برای محاسبه کلید رمزنگاری مشتق‌شده استفاده می‌کند. حداکثر مقدار ممکن برای maxmemfrac برابر 0.5 است.
مترادف منسوخ‌شده برای --passphrase dev:stdin-once.
value
پارامتر کاری p را روی value تنظیم می‌کند. اگر -p تنظیم شده باشد، --logN و -r نیز باید تنظیم شوند. در صورت ارائه چنین پارامترهای صریحی، محدودیت‌های منابع تعیین‌شده توسط -M, -m و -t اعمال نمی‌شوند.
method:arg
عبارت عبور را با استفاده از روش مشخص‌شده می‌خواند.
dev:tty-stdin
تلاش می‌کند عبارت عبور را از dev/tty/ بخواند؛ اگر موفق نشد، آن را از ورودی استاندارد (stdin) می‌خواند. این رفتار پیش‌فرض است.
dev:stdin-once
تلاش می‌کند عبارت عبور را از ورودی استاندارد (stdin) بخواند، و این کار را حتی هنگام رمزنگاری تنها یک بار انجام می‌دهد. اگر infile نیز ورودی استاندارد (یا '-') باشد، نمی‌توان از این گزینه استفاده کرد.
dev:tty-once
تلاش می‌کند عبارت عبور را از dev/tty/ بخواند، و این کار را حتی هنگام رمزنگاری تنها یک بار انجام می‌دهد.
env:VAR
عبارت عبور را از متغیر محیطی مشخص‌شده توسط VAR می‌خواند.
ذخیره عبارت عبور در یک متغیر محیطی ممکن است یک خطر امنیتی باشد.
تنها در صورتی از این گزینه استفاده کنید که کاملاً مطمئن باشید چه کاری انجام می‌دهید.
file:FILENAME
عبارت عبور را از فایل مشخص‌شده توسط FILENAME می‌خواند.
ذخیره عبارت عبور در یک فایل ممکن است یک خطر امنیتی باشد.
تنها در صورتی از این گزینه استفاده کنید که کاملاً مطمئن باشید چه کاری انجام می‌دهید.
value
پارامتر کاری r را روی value تنظیم می‌کند. اگر -r تنظیم شده باشد، --logN و -p نیز باید تنظیم شوند. در صورت ارائه چنین پارامترهای صریحی، محدودیت‌های منابع تعیین‌شده توسط -M, -m و -t اعمال نمی‌شوند.
maxtime
حداکثر از maxtime ثانیه زمان پردازنده (CPU) برای محاسبه کلید رمزنگاری مشتق‌شده استفاده می‌کند.
پارامترهای رمزنگاری (N, r, p) و محدودیت‌های حافظه/پردازنده را چاپ می‌کند.
نسخه scrypt را چاپ کرده و خارج می‌شود.

در scrypt enc, محدودیت‌های حافظه و زمان پردازنده با انتخاب پارامترهای مناسب برای تابع اشتقاق کلید scrypt اعمال می‌شوند. در scrypt dec, محدودیت‌های حافظه و زمان پردازنده با خروج همراه با خطا در صورتی که رمزگشایی فایل به حافظه یا زمان پردازنده بسیار زیادی نیاز داشته باشد، اعمال می‌گردند.

ابزار scrypt در صورت موفقیت با وضعیت 0 و در صورت بروز خطا با مقداری بزرگتر از 0 خارج می‌شود.

توجه داشته باشید که اگر فایل رمزنگاری‌شده ورودی معیوب باشد، scrypt dec ممکن است پیش از تشخیص معیوب بودن ورودی و خروج با وضعیت غیر صفر، خروجی تولید کند؛ بنابراین کاربران باید خروجی را به مکانی امن هدایت کرده و پیش از استفاده از داده‌های رمزگشایی‌شده، وضعیت خروج scrypt را بررسی نمایند.

الگوریتم scrypt دارای سه پارامتر کاری قابل تنظیم است: N, r, p. هنگام رمزگشایی، scrypt همواره از مقادیر مشخص‌شده در هدر رمزنگاری استفاده خواهد کرد. هنگام رمزنگاری، scrypt مقادیر مناسب را بر اساس سرعت و حافظه سیستم شما (تحت تأثیر -M, -m و/یا -t) انتخاب می‌کند، مگر اینکه پارامترهای صریح را از طریق --logN, -p, -r مشخص نمایید.

Colin Percival, Stronger Key Derivation via Sequential Memory-Hard Functions, BSDCan'09, May 2009. Colin Percival and Simon Josefsson, The scrypt Password-Based Key Derivation Function, IETF RFC 7914, August 2016.

ابزار scrypt در مه ۲۰۰۹ توسط Colin Percival به عنوان نمایشی از تابع اشتقاق کلید scrypt نوشته شد. تابع اشتقاق کلید scrypt در مارس ۲۰۰۹ توسط Colin Percival ابداع شد تا امکان محافظت از فایل‌های کلید سیستم پشتیبان‌گیری Tarsnap با یک عبارت عبور فراهم گردد.

February 13, 2025 Linux 6.12.111+deb13-amd64