زمانبند کلید
در اصطلاح رمز نویسی، رمزهای محصولی نوع معینی از رمزها هستند که در آن رمزگذاری(رمزگشایی) در تعدادی دور انجام میشود. هر دور دارای پیکربندی کلی یکسانی میباشد، به استثنای تعدادی پارامتر کد شده با سخت افزار و یک قسمت از کلید رمز که زیر کلید نامیده میشود. زمانبند کلید الگوریتمی است که برای یک کلید معین، زیرکلیدهای این دورها را محاسبه میکند.
انواع
- بعضی از رمزها دارای زمانبند کلید سادهای میباشند. برای مثال، رمزگذاری بلوکی TEA به سادگی کلید ۱۲۸ بیتی را به ۴ قطعهٔ ۳۲ بیتی تقسیم میکند و از آنها بهطور مکرر در دورهای متوالی استفاده میکند.
- در زمانبند کلید DES، کلید ۵۶ بیتی به ۲ زیرکلید ۲۸ بیتی میشود، سپس بر روی هر نیمه بهطور جداگانه عملیاتی انجام میشود. در دورهای متوالی هر دو نیمه ۱ یا ۲ بیت(به تعداد معین شده در هر دور) به چپ میچرخند و سپس زیرکلید ۴۸ بیتی به وسیلهٔ Permuted Choice 2 انتخاب میشود ۲۴ بیت از نیمهٔ چپ و ۲۴ بیت از نیمهٔ راست. با عمل گردش مجموعههای مختلفی از بیتها برای هر زیر کلید استفاده میشوند، به عبارتی هر بیت کلید حدوداّ در ۱۴ دور از ۱۶ دور استفاده میشود.
- در تلاشی برای جلوگیری از به وجود آمدن رابطههای ساده بین کلید رمز و زیرکلیدها، و ممانعت از تحلیل رمز شبیه حمله به کلید و حملهٔ اسلاید(سراشیبی)، تعدادی از رمزهای مدرن از زمانبندهای کلید ماهرانه استفاده کردند، الگوریتمهایی که از توابع یک طرفه استفاده میکنند تا از زیر کلیدهای مشتق شده "کلید بسط یافته" بسازد. بعضی از رمزها، مثل (Rijndael(AES و Blowfish از خود الگوریتم رمز برای بسط کلید استفاده میکنند، بعضی با تعدادی از "nothing up my sleeve numbers" مقداردهی و شروع میشوند. دیگر رمزها شبیه RC5، کلید را با تابعی که تا حدودی یا کاملاّ با تابع رمز متفاوت است، بسط میدهد.
یادداشت
Knudsern و Mathiassen شواهد تجربی ارائه کردند که نشان داد زمانبند کلید باعث مقاومت و استحکام در مقابل تحلیل رمز تفاضلی و خطی، میشود. در نمونه رمز فیستل، دیده شده که با زمانبندهای کلید خوب طراحی شده و پیچیده میتوان به توزیع یکنواخت برای احتمالات محدودهٔ خطی و تفاضلی سریع تر از زمانبندهای کلید با طراحی ضعیف، رسید.