مارس (رمزنگاری)
مارس (رمزنگاری) رمزگذاری قطعه‌ای (رمزگذاری قطعه‌ای) کلید متقارن مدت‌های طولانی به عنوان یک عنصر پایه‌ای برای تهیه امنیت اطلاعات استفاده می‌شود. آن‌ها می‌توانند به عنوان یک عنصر اصلی در ساختمان سیستم‌های رمزنگاری زیادی همانند مولدهای عدد شبه تصادفی، پروتکل‌های تصدیق پیام، رمز دنباله‌ای و تابع درهم ساز خدمت کنند. در این جا مایک بلاک سایفر جدید به نام مارس معرفی می‌کنیم. مارس از ترکیبی از توابع برای رسیدن به امنیت بالا، سرعت بالا و انعطاف‌پذیری اجرا استفاده می‌کند.
استاندارد رمزنگاری داده‌ها دیگر برطرف‌کنندهٔ نیاز امنیت برای داده نبود به خاطر طول کلید کوتاه ۵۶ بیتی آن. امروزه کلیدهای کوتاه می‌توانند توسط حمله جستجوی فراگیر با امتحان کردن همه‌ای کلیدها شکسته شوند. این یکی از دلایل برگزاری کنفرانسAES2 بود. مارس توانست در کنفرانس AES۲که در March ۱۹۹۹ برگزار شد به عنوان پنجمین و آخرین الگوریتم فینالیست که توسط آی بی ام معرفی شده بود انتخاب شود و از خانواده AES می‌باشد. در تیم طراحی مارس شخصی به نام Don Coppersmith حضور داشت که قبلاً حدود ۲۰ سال پیش جزوه تیم طراحی DES بوده و همانطور که می‌دانید DES نیز توسط آی بی ام طراحی شده‌است. این پروژه به صورت خاص برای این طراحی شده که در برابر پیشرفت‌های آیندهٔ رمز نگاری مقاومت کند و این کار از طریق اتخاذ رویکردی لایه بندی انجام می‌گیرد. مارس طوری طراحی شده تا از عملگرهای قدرتمند ی که در کامپیوترهای امروزی پشتیبانی شده بیشترین استفاده را بکند و در این سیستم رمز ما ترکیب منحصربه‌فردی از جدول جستجو وS-boxها ضرب، جمع و تفریق و چرخش‌های ثابت و وابسته به داده را داریم. مارس دارای بلاک‌هایی با طول بیست و طول کلید متغیر بین۱۲۸تا ۴۴۸ بیت می‌باشد. مارس کلمه گرا است یعنی محاسبات داخلی براساس کلمه انجام می‌گیرد. برخلاف اکثر بلاک سایفرها ساختاری نا همگن دارد.
جمع، تفریق، Xor: این عملگرهای ساده برای ترکیب کردن داده‌ها و مقادیر کلید با همدیگر استفاده می‌شوند.
جدول جستجو: همانند S-box در Des ,رمز مارس نیز یک جدول جستجو دارد که شامل۵۱۲کلمه۳۲بیتی (یا دو جدول۲۵۶تایی) می‌باشد. مشکل این جدول پیاده‌سازی نرم‌افزاری آهستهٔ آن است به همین دلیل این جستجو در مارس کم استفاده می‌شود. و فقط برای Fast avalanche برای بیت‌های کلید مورد استفاده قرار می‌گیرد.
چرخش ثابت
چرخش وابسته به داده: این چرخش ممکن است منجر به ضعف دیفرانسیلی شود که این مشکل را با ترکیب آن با ضرب حل می‌کنیم.
ضرب‌ها: همهٔ ضرب‌ها در مارس به پیمانه ۲ می‌رسد. مشکل قبلی استفاده از ضرب در رمزنگاری سرعت پایین آن بود، که این مشکل دیگر برطرف شده، اکثر معماری‌ها می‌توانند ضرب را در دو سیکل ساعت کامل کنند. مسئله‌ای که برای ضرب داریم اینست که یک ضرب‌کننده فضای بسیار بیشتری نسبت به جمع‌کننده‌ها و واحدهای منطقی نیاز دارد.
استاندارد رمزنگاری داده‌ها مارس از یک بسط دهندهٔ کلید برای گسترش n کلید بین ۴ و ۱۴ کلمه به ۴۰ کلید استفاده می‌کندهمچنین از یک جدول شامل ۵۱۲ کلمه ۳۲بیتی برای S-box استفاده می‌کنید برای مقابله با حملات خطی و دیفرانسیلی همچنین در پروسه بسط کلید استفاده می‌شوند.
سه مرحله دارد: ۱: ۸کلمه ۳۲بیتی را با استفاده از یک تبدیل خطی ساده به ۴۰کلمه ۳۲بیتی تبدیل می‌کند. ۲: ما استفاده از۷روند از شبکه فایستل نوع اول روی خروجی‌های مرحله قبل تغییراتی انجام می‌دهد تا هر گونه رابطه خطی موجود در آن از بین ببرد. ۳:به بررسی کلمه‌هایی می‌پردازد که در عمل رمز گذاری/رمزگشایی الگوریتم مارس استفاده می‌شود در صورت نیاز آن را ضرب کرده و تغییر دهد. محدودیتی که برای کلید وجود دارد اینست که دو بیت سمت راست کلمات کلید ۱ است. نباید۱۰ تا صفر یا یک پشت سر هم داشته باشند. به این دلیل که برای ضرب در تابع E-Function استفاده می‌شوند و کلمات کلید بدون این خاصیت به کلیدی ضعیف تر تبدیل می‌شوند که به جمله‌های دیفرانسیلی منجر می‌شود.
ابتدا کلمات داده با۴ کلید جمع می‌شوند سپس ۸ دور از شبکه فایستل نوع سوم اجرا می‌شوند. شبکه فایستل نوع سوم یعنی اینکه در آن همیشه یک کلمه هست که استفاده می‌شود برای تغییر به سه کلمهٔ دیگر. تغییرات به وسیلهٔ S-box انجام می‌گیرد. خروجیS-boxها جمع می‌شوند با بقیه کلمات علاوه بر این چندین شیفت انجام می گیرد. برعکس مرحله ترکیب رو به عقب است. این روند هابر پایهS-box هستند. دلیل این عملیات ترکیبی از بین بردن تقارن و افزایش امنیت در فاز ترکیب رو به عقب و ترکیب رو به جلو است.
یک شبکه فایستل نوع ۳ است. دارای ۸ روند روبه جلو و ۸ روند روبه عقب است. در این مرحله E-Function به جای S-box استفاده می‌کند.
ویژگی هایE-Function
یک ورودی می‌گیرد وسه خروجی می‌دهد. برای اینکه مطمئن شویم امنیت دارد سه خروجی این تابع رادر ۸روند اول متفاوت نسبت به ۸روند دوم استفاده می‌کنیم. در این تابع ما عملگرهای مختلف را طوری ترکیب کرده‌ایم بیشترین استفاده را از آن‌ها بکنیم. این تابع طوری طراحی شده که دو تا از پرهزینه‌ترین عملیات ضرب, S-box ,Lookupرا به‌طور موازی انجام دهد. این تابع یکی از بهترین قسمت‌های طراحی شدهٔ الگوریتم مارس است.
کدی بسیار شبیه ترکیب رو به جلو دارداما از نظر عملکرد بر عکس آن است. به جای جمع با کلید از تفریق استفاده می‌کند وجهت شیفت نیز برعکس می‌شود.
پیش‌بینی می‌شود سطح امنیت مارس با کلید ۸بیتی ۲ باشد برای کلیدهای بالاتر از حداقل ۲۵۶بیت. هر جمله خطی و دیفرانسیلی در مقابل مارس باید پیچیدگی بیشتراز ۲ داشته باشد، که این معنی است که برای طول بلوک ۱۲۸ بیت این جمله‌ها غیر ممکن‌اند. در اثباتی که انجام شده نشان داده شده‌است که هیچ تقریب خطی قابل ساختمان دارای بایاس بیش از ۲ نیست بدین معنی که پیچیدگی داده بیشتر از ۲ است.
مارس یک سایفر کلید متقارن سریع وامن است با یک ساختار ناهمگن، این عملکرد نسبتاًِّ خوبی نسبت به رمزهای موجود ارائه می‌دهد. هم پیاده‌سازی سخت‌افزاری و هم نرم‌افزاری مارس به‌طور قابل ملاحظه‌ای فشرده است که آن را برای استفاده ساختارهایی با منابع محدود همچون کارت هوشمند مناسب می‌کند. ترکیب سرعت بالا، امنیت بالا و انعطاف‌پذیری مارس آن را به عنوان یک انتخاب عالی برای نیازهای رمزگذاری در جهان اطلاعات تبدیل می‌کند.