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

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو


مارس (رمزنگاری) رمزگذاری قطعه‌ای (رمزگذاری قطعه‌ای) کلید متقارن مدتهای طولانی بعنوان یک عنصر پایه‌ای برای تهیه امنیت اطلاعات استفاده می‌شود. آنها می‌توانند به عنوان یک عنصر اصلی در ساختمان سیستم‌های رمزنگاری زیادی همانند مولدهای عدد شبه تصادفی، پروتکل‌های تصدیق پیام، رمز دنباله‌ای وتابع درهم ساز خدمت کنند. در این جا مایک بلاک سایفر جدید به نام مارس معرفی می‌کنیم. مارس از ترکیبی از توابع برای رسیدن به امنیت بالا، سرعت بالا وانعطاف پذیری اجرا استفاده می‌کند. استاندارد رمزنگاری داده‌ها

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

ترکیب رو به عقب[ویرایش]

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

امنیت[ویرایش]

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

نتیجه‌گیری[ویرایش]

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

منابع[ویرایش]


  • C.Burwick, D.Coppersmith, E.D'Avignon, R.Gennaro,S.Halevi, C.Jutla, S.Matyas, L.O'Connor, M.Peyravian,D.Sa�ord, N.Zunic, "MARS - a candidate cipher for AES",IBM Corporation, September 1999.


  • NIST (2000), Report on the Development of the Advanced
  • B. Preneel et al. (2000), Comments by the NESSIE Projecton the AES Finalists.