مارس (رمزنگاری)

عملگرها

جمع، تفریق، 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را به‌طور موازی  انجام دهد. این تابع یکی از بهترین قسمت‌های طراحی شدهٔ الگوریتم مارس است.

ترکیب رو به عقب

کدی بسیار شبیه ترکیب رو به جلو دارداما از نظر عملکرد بر عکس آن است. به جای جمع باکلید از تفریق استفاده می‌کند وجهت شیفت نیز برعکس می‌شود.

امنیت

پیش‌بینی می‌شود سطح امنیت مارس با کلید ۸بیتی ۲ باشد برای کلیدهای بالاتر از حداقل ۲۵۶بیت. هر جمله خطی و دیفرانسیلی در مقابل مارس باید پیچیدگی بیشتراز ۲۱۲۸ داشته باشد، که این معنی است که برای طول بلوک ۱۲۸ بیت این جمله‌ها غیر ممکن‌اند. در اثباتی که انجام شده نشان داده شده‌است که هیچ تقریب خطی قابل ساختمان دارای بایاس بیش از  ۲۶۹ نیست بدین معنی که پیچیدگی داده بیشتر از ۲۱۲۸ است.

نتیجه‌گیری

مارس یک سایفر کلید متقارن سریع وامن است با یک ساختار ناهمگن، این عملکرد نسبتاًِّ خوبی نسبت به رمزهای موجود ارائه می‌دهد. هم پیاده‌سازی سخت‌افزاری و هم نرم‌افزاری مارس بطور قابل ملاحظه‌ای فشرده است که آن را برای استفاده ساختارهایی با منابع محدود همچون کارت هوشمند مناسب می‌کند. ترکیب سرعت بالا، امنیت بالا و انعطاف‌پذیری مارس آن را به عنوان یک انتخاب عالی برای نیازهای رمزگذاری در جهان اطلاعات تبدیل می‌کند