کاست-۱۲۸

شماتیک یک نمونه کاست ۱۲۸ بلند
cast-128
اطلاعات رمزنگاری بلوکی
نام = CAST-128
طراحان = Stafford Tavares و Carlisle Adams
تاریخ انتشار = 1996
اندازه کلید = از 40 تا 128 بیت
اندازه بلوک داده = 64 بیت
سازوکار بکار گرفته شده = رمز فیستل
تعداد دورها = 12 یا 16
در رمزنگاری، cast-128 (معادل آن cast-5) یک رمزنگاری بلوکی است که در تعدادی از کاربردها، به ویژه به عنوان رمز پیش فرض در برخی از نسخه‌های PGP و GPG مورد استفاده است. هم چنین توسط ایجاد امنیت ارتباطات برای استفادهٔ دولت کانادا تأیید شده‌است.
الگوریتم توسط Stafford Tavares و Carlisle Adams در سال 1996 و با استفاده از رویه طراحی CAST، ایجاد شد. عضو دیگری از خانوادهٔ رمزهای CAST، یعنی cast-256(کاندیدای سابق مسابقه طراحی AES)از cast-128 مشتق شده بود.
به گفته برخی منابع، نام CAST بر اساس حروف نام مخترعان آن است. اگر چه در گزارش Bruce Schneier به ادعای نویسنده "به نام التماس کردن به تصاویر تصادفی است".
cast-128 یک ساختار 12 یا 16 دوری فیستل، بااندازه بلوک 64 بیتی واندازه کلید بین 40 تا 128 بیتی( اما تنها با افزایش 8 بیت) است. 16دور کامل، زمانیکه اندازه کلید از 80بیت بزرگتر باشد، مورد استفاده قرار می‌گیرد. قطعات شامل جعبه بزرگ 8×32 جایگزینی (s-box) بر پایه توابع خم، کلید وابسته به چرخش‌ها، جمع و تفریق مدوله شده و عمل XOR، می‌باشد . سه نوع متفاوت تابع دور وجود دارد، اما آن‌ها در ساختار مشابه‌اند و تفاوت آن‌ها فقط در انتخاب عمل دقیق(جمع، تفریق یا XOR) در مقاطع مختلف است.
هرچند امانت گذار (به انگلیسی: entrust)، رویهٔ طراحی CAST را برای ثبت اختراع نگه می‌دارد، CAST-128 در سراسر جهان بر اساس یک حق امتیاز رایگان برای استفاده‌های تجاری و غیر تجاری در دسترس است.
بردار تست
در ادامه یک نمونه بردارتست که ورودی و خروجی مورد انتظار برای الگوریتم بالا را فراهم می‌کند، وجود دارد. همچنین مقادیر زمانبند کلید، km و kr برای هردو عمل رمزنگاری و رمزگشایی فراهم شده‌اند.
رمزگذاری :
کلید 128بیتی = 01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A
متن آشکار = 01 23 45 67 89 AB CD EF
متن رمز = 23 8B 4F E5 84 7E 44 B2
| i | K[i] | Km[i] | Kr[i] |
| --- | --- | --- | --- |
| 1 | BC173E26 | BC173E26 | 00000015 |
| 2 | 78A207EF | 78A207EF | 0000001B |
| 3 | ECE0A7F5 | ECE0A7F5 | 00000001 |
| 4 | 7CB0FB6B | 7CB0FB6B | 00000005 |
| 5 | A5D2D636 | A5D2D636 | 00000003 |
| 6 | D78B9407 | D78B9407 | 0000001F |
| 7 | 56C069D3 | 56C069D3 | 0000001F |
| 8 | 82E8240C | 82E8240C | 0000001C |
| 9 | 33543749 | 33543749 | 00000010 |
| 10 | 8813D5C7 | 8813D5C7 | 0000001F |
| 11 | B9FCD732 | B9FCD732 | 00000012 |
| 12 | 59106B36 | 59106B36 | 00000001 |
| 13 | 496AF1A9 | 496AF1A9 | 0000001D |
| 14 | 18F8DC43 | 18F8DC43 | 00000019 |
| 15 | 8D9DEF0F | 8D9DEF0F | 00000001 |
| 16 | 83EDA384 | 83EDA384 | 0000000F |
رمزگشایی :
کلید 128بیتی = 01 23 45 67 12 34 56 78 23 45 67 89 34 56 78 9A
متن آشکار = 23 8B 4F E5 84 7E 44 B2
متن رمز = 01 23 45 67 89 AB CD EF
| i | K[i] | Km[i] | Kr[i] |
| --- | --- | --- | --- |
| 1 | BC173E26 | BC173E26 | 00000015 |
| 2 | 78A207EF | 78A207EF | 0000001B |
| 3 | ECE0A7F5 | ECE0A7F5 | 00000001 |
| 4 | 7CB0FB6B | 7CB0FB6B | 00000005 |
| 5 | A5D2D636 | A5D2D636 | 00000003 |
| 6 | D78B9407 | D78B9407 | 0000001F |
| 7 | 56C069D3 | 56C069D3 | 0000001F |
| 8 | 82E8240C | 82E8240C | 0000001C |
| 9 | 33543749 | 33543749 | 00000010 |
| 10 | 8813D5C7 | 8813D5C7 | 0000001F |
| 11 | B9FCD732 | B9FCD732 | 00000012 |
| 12 | 59106B36 | 59106B36 | 00000001 |
| 13 | 496AF1A9 | 496AF1A9 | 0000001D |
| 14 | 18F8DC43 | 18F8DC43 | 00000019 |
| 15 | 8D9DEF0F | 8D9DEF0F | 00000001 |
| 16 | 83EDA384 | 83EDA384 | 0000000F |