تابع شبه تصادفی اولیه (PRF) به شما امکان می دهد خروجی های پایدار، دلخواه و شبه تصادفی را برای یک ورودی مشخص تولید کنید.
از آنجایی که Tink بر روی مجموعه کلیدها کار می کند، این اولیه مجموعه ای از PRF ها را به جای یک PRF واحد نمایش می دهد. PRF ها با شناسه کلید 32 بیتی ایندکس می شوند. این می تواند برای چرخاندن کلید مورد استفاده برای ویرایش یک قطعه اطلاعات، بدون از دست دادن ارتباط قبلی استفاده شود.
PRF دارای ویژگی های زیر است:
- قطعی : محاسبه یک PRF برای یک ورودی داده شده همیشه همان خروجی را تولید می کند.
- تصادفی بودن : خروجی یک PRF از بایت های تصادفی قابل تشخیص نیست.
یک نوع کلید را انتخاب کنید
ما استفاده از HMAC_SHA256_PRF
را برای اکثر موارد توصیه می کنیم، اما گزینه های دیگری نیز وجود دارد.
به طور کلی موارد زیر صادق است:
- بسته به اندازه ورودی شما و مشخصات سخت افزاری که استفاده می کنید،
HMAC_SHA512_PRF
ممکن است سریعتر باشد یا نباشد. -
HMAC_SHA512_PRF
محافظه کارانه ترین حالتی است که می توان از آن برای تعداد نامحدودی پیام استفاده کرد. -
AES_CMAC_PRF
در سیستم هایی که از شتاب سخت افزاری AES-NI پشتیبانی می کنند سریع ترین است.
حداقل تضمین های امنیتی
- بدون آگاهی از کلید، PRF از یک تابع تصادفی قابل تشخیص نیست
- حداقل امنیت 128 بیتی، همچنین در سناریوهای چند کاربره (زمانی که مهاجم یک کلید خاص را هدف قرار نمی دهد، بلکه هر کلیدی را از مجموعه ای تا 232 کلید هدف قرار می دهد)
- حداقل 16 بایت خروجی موجود است
موارد استفاده نمونه
موارد استفاده برای PRF شامل ویرایش قطعی اطلاعات قابل شناسایی شخصی (PII)، توابع هش کلید شده، و ایجاد شناسههای فرعی است که اجازه اتصال به مجموعه داده اصلی را بدون دانستن کلید نمیدهد.
در حالی که PRF ها را می توان برای اثبات صحت یک پیام مورد استفاده قرار داد، استفاده از MAC primitive برای آن مورد توصیه می شود، زیرا پشتیبانی از تأیید، اجتناب از مشکلات امنیتی که اغلب در حین تأیید اتفاق می افتد، و پشتیبانی خودکار برای چرخش کلید را دارد. همچنین امکان الگوریتم های غیر قطعی را فراهم می کند.