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

مارس (رمزنگاری) رمزگذاری قطعه‌ای (رمزگذاری قطعه‌ای) کلید متقارن مدتهای طولانی به عنوان یک عنصر پایه‌ای برای تهیه امنیت اطلاعات استفاده می‌شود. آن‌ها می‌توانند به عنوان یک عنصر اصلی در ساختمان سیستم‌های رمزنگاری زیادی همانند مولدهای عدد شبه تصادفی، پروتکل‌های تصدیق پیام، رمز دنباله‌ای و تابع درهم ساز خدمت کنند. در این جا مایک بلاک سایفر جدید به نام مارس معرفی می‌کنیم. مارس از ترکیبی از توابع برای رسیدن به امنیت بالا، سرعت بالا و انعطاف پذیری اجرا استفاده می‌کند.
استاندارد رمزنگاری داده‌ها
(DES)
دیگر برطرف‌کننده نیاز امنیت برای داده نبود بخاطر طول کلید کوتاه ۵۶ بیتی آن. امروزه کلیدهای کوتاه می‌توانند توسط حمله جستجوی فراگیر با امتحان کردن همه‌ای کلیدها شکسته شوند. این یکی از دلایل برگزاری کنفرانس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را به‌طور موازی انجام دهد. این تابع یکی از بهترین قسمتهای طراحی شده الگوریتم مارس است.
ترکیب رو به عقب
کدی بسیار شبیه ترکیب رو به جلو دارداما از نظر عملکرد بر عکس آن است. به جای جمع باکلید از تفریق استفاده می‌کند وجهت شیفت نیز برعکس می‌شود.
امنیت
پیش بینی می‌شود سطح امنیت مارس با کلید ۸بیتی ۲ باشد برای کلیدهای بالاتر از حداقل ۲۵۶بیت. هر جمله خطی و دیفرانسیلی در مقابل مارس باید پیچیدگی بیشتراز ۲ ۱۲۸ داشته باشد، که این معنی است که برای طول بلوک ۱۲۸ بیت این جمله‌ها غیر ممکن‌اند. در اثباتی که انجام شده نشان داده شده‌است که هیچ تقریب خطی قابل ساختمان دارای بایاس بیش از ۲ ۶۹ نیست بدین معنی که پیچیدگی داده بیشتر از ۲ ۱۲۸ است.
نتیجه‌گیری
مارس یک سایفر کلید متقارن سریع وامن است با یک ساختار ناهمگن، این عملکرد نسبتا خوبی نسبت به رمزهای موجود ارائه می‌دهد. هم پیاده‌سازی سخت‌افزاری و هم نرم‌افزاری مارس بطور قابل ملاحظه‌ای فشرده است که آن را برای استفاده ساختارهایی با منابع محدود همچون کارت هوشمند مناسب می‌کند. ترکیب سرعت بالا، امنیت بالا و انعطاف پذیری مارس آن را به عنوان یک انتخاب عالی برای نیازهای رمزگذاری در جهان اطلاعات تبدیل می‌کند