**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 |

منابع
-----

* مشارکت‌کنندگان ویکی‌پدیا. «CAST-128». در *دانشنامهٔ ویکی‌پدیای انگلیسی*، بازبینی‌شده در ۲۹ ژوئن ۲۰۱۲.

پیوند به بیرون
--------------

* RFC 2144 — The CAST-128 Encryption Algorithm
* CAST related publications
* SCAN's entry for CAST-128
* List of algorithms approved for Canadian government use