کالین پرسیوال توسعهدهنده و پژوهشگر امنیت است که طراحی scrypt را در کارنامه خود دارد. موضوع این طرح مسئلهای آشنا برای هر سامانه مبتنی بر گذرواژه است. کاربر ممکن است یک عبارت قابل حفظ انتخاب کند، اما مهاجم پس از دستیابی به داده ذخیرهشده میتواند تعداد زیادی حدس را خارج از سامانه اصلی امتحان کند. پرسیوال در جریان کار روی Tarsnap این مسئله را از منظر هزینه سختافزار بررسی کرد. حاصل آن طرحی بود که نیاز به حافظه را وارد هزینه هر حدس میکند.
حافظه بهعنوان بخشی از هزینه
در یک تابع بسیار سریع، مهاجم میتواند تعداد زیادی واحد محاسبه را موازی کند. افزودن هزینه پردازش مفید است، اما سود سختافزار تخصصی به نوع عملیات بستگی دارد. ایده scrypt این است که انجام محاسبه به دسترسی به حافظه نیز وابسته باشد. با انتخاب پارامتر مناسب، موازیسازی حدسها به منابع بیشتری نیاز پیدا میکند. این ویژگی به معنای غیرممکنشدن حدس نیست. اگر گذرواژه از ابتدا بسیار قابل پیشبینی باشد، هیچ تابع مشتقسازی آن را به یک راز تصادفی بلند تبدیل نمیکند.
مشخصات RFC 7914 ورودیها، پارامترها و بردارهای آزمون scrypt را ثبت کرده است. این سند را پرسیوال و سایمون جوزفسون نوشتهاند. وجود بردار آزمون برای پیادهساز اهمیت مستقیم دارد. پیش از مقایسه سرعت یا تنظیم هزینه، باید مطمئن شد نتیجه برای ورودی شناختهشده با نتیجه مشخصات تطابق دارد. اشتباه در اندازه پارامتر یا در تفسیر بایتها میتواند دو پیادهسازی ظاهراً مشابه را ناسازگار کند.
فاصله میان طراحی و استقرار
وقتی سامانهای هزینه مشتقسازی را تنظیم میکند، با دو محدودیت روبهروست. عملیات باید برای کاربر عادی در زمان قابل قبول پایان یابد و سرور باید توان پاسخگویی به درخواستهای همزمان را داشته باشد. پارامتری که روی رایانه توسعهدهنده مناسب است ممکن است روی دستگاه کوچک یا در ساعت پرترافیک هزینه متفاوتی ایجاد کند. بنابراین اندازهگیری روی محیط واقعی و ثبت نسخه و پارامترها بخش مهم تصمیم است.
کار پرسیوال نمونهای از ارتباط مهندسی محصول و پژوهش رمزنگاری کاربردی است. یک نیاز عملی برای حفاظت از داده، او را به پرسش درباره اقتصاد حمله رساند و پاسخ در قالب طرحی قابل پیادهسازی و آزمون منتشر شد. خوانندهای که مشخصات را مطالعه میکند میتواند نقش نمک، حافظه و طول خروجی را جداگانه ببیند. این تفکیک کمک میکند تفاوت میان هزینه محاسباتی مهاجم و کیفیت راز انتخابی کاربر را هنگام ارزیابی سامانه از دست ندهد.